diff --git a/.github/workflows/branch-policy.yml b/.github/workflows/branch-policy.yml deleted file mode 100644 index 058eaaf..0000000 --- a/.github/workflows/branch-policy.yml +++ /dev/null @@ -1,54 +0,0 @@ -name: Branch Policy - -on: - pull_request: - branches: [main, beta, development] - -jobs: - check-source-branch: - name: Branch Policy Check - runs-on: ubuntu-latest - steps: - - name: Verify source branch - run: | - SOURCE="${{ github.head_ref }}" - TARGET="${{ github.base_ref }}" - - # hotfix/* is always allowed - if [[ "$SOURCE" == hotfix/* ]]; then - echo "✅ Hotfix branch '$SOURCE' is allowed to merge into '$TARGET'." - exit 0 - fi - - case "$TARGET" in - main) - if [ "$SOURCE" = "beta" ]; then - echo "✅ Branch '$SOURCE' is allowed to merge into main." - else - echo "❌ Branch '$SOURCE' is not allowed to merge into main." - echo "Only 'beta' and 'hotfix/*' branches can be merged into main." - exit 1 - fi - ;; - beta) - if [ "$SOURCE" = "development" ]; then - echo "✅ Branch '$SOURCE' is allowed to merge into beta." - else - echo "❌ Branch '$SOURCE' is not allowed to merge into beta." - echo "Only 'development' and 'hotfix/*' branches can be merged into beta." - exit 1 - fi - ;; - development) - if [[ "$SOURCE" == feature/* ]]; then - echo "✅ Branch '$SOURCE' is allowed to merge into development." - else - echo "❌ Branch '$SOURCE' is not allowed to merge into development." - echo "Only 'feature/*' and 'hotfix/*' branches can be merged into development." - exit 1 - fi - ;; - *) - echo "✅ No branch policy for target '$TARGET'." - ;; - esac diff --git a/.github/workflows/branch-protection.yml b/.github/workflows/branch-protection.yml new file mode 100644 index 0000000..67cdd60 --- /dev/null +++ b/.github/workflows/branch-protection.yml @@ -0,0 +1,10 @@ +name: Branch Protection + +on: + pull_request: + branches: [main, beta] + +jobs: + protect: + uses: ConductionNL/.github/.github/workflows/branch-protection.yml@main + secrets: inherit diff --git a/.github/workflows/code-quality.yml b/.github/workflows/code-quality.yml index 2c4a305..1c98049 100644 --- a/.github/workflows/code-quality.yml +++ b/.github/workflows/code-quality.yml @@ -1,70 +1,36 @@ name: Code Quality on: + push: + branches: [main, development, feature/**, bugfix/**, hotfix/**] pull_request: branches: [main, master, development] - -concurrency: - group: quality-${{ github.head_ref || github.ref }} - cancel-in-progress: true + workflow_dispatch: jobs: - php-checks: - name: ${{ matrix.check.name }} - runs-on: ubuntu-latest - strategy: - fail-fast: false - matrix: - check: - - { name: "PHP Lint", command: "composer lint" } - - { name: "PHPCS", command: "./vendor/bin/phpcs --standard=phpcs.xml" } - - { name: "PHPMD", command: "./vendor/bin/phpmd lib text phpmd.xml" } - - { name: "Psalm", command: "./vendor/bin/psalm --threads=1 --no-cache --output-format=github" } - - { name: "PHPStan", command: "./vendor/bin/phpstan analyse --memory-limit=1G" } - - { name: "PHPUnit", command: "./vendor/bin/phpunit --colors=always" } - - steps: - - name: Checkout - uses: actions/checkout@v4 - - - name: Setup PHP - uses: shivammathur/setup-php@v2 - with: - php-version: '8.1' - extensions: mbstring, xml, ctype, iconv, intl, dom, filter, gd, json, posix, zip, soap - tools: composer:v2 - - - name: Cache Composer dependencies - uses: actions/cache@v4 - with: - path: vendor - key: ${{ runner.os }}-composer-${{ hashFiles('**/composer.lock') }} - restore-keys: ${{ runner.os }}-composer- - - - name: Install dependencies - run: composer install --no-progress --prefer-dist --optimize-autoloader - - - name: ${{ matrix.check.name }} - run: ${{ matrix.check.command }} - frontend-quality: - name: Frontend Quality - runs-on: ubuntu-latest - - steps: - - name: Checkout - uses: actions/checkout@v4 - - - name: Setup Node.js - uses: actions/setup-node@v4 - with: - node-version: '20' - cache: 'npm' - - - name: Install dependencies - run: npm ci - - - name: ESLint - run: npm run lint - - - name: Stylelint - run: npm run stylelint + quality: + uses: ConductionNL/.github/.github/workflows/quality.yml@main + with: + app-name: procest + php-version: "8.3" + php-test-versions: '["8.3", "8.4"]' + nextcloud-test-refs: '["stable31", "stable32"]' + enable-psalm: true + enable-phpstan: true + enable-phpmetrics: false + enable-frontend: true + enable-eslint: true + enable-phpunit: true + # Newman disabled: ZGW compliance tests have 95%+ failure rate because + # the ZGW API implementation is still in progress. Re-enable once the + # API passes at least the core CRUD assertions. + enable-newman: false + newman-collection-path: "data" + newman-environment-path: "tests/zgw/zgw-environment.json" + newman-seed-command: "bash apps/procest/tests/zgw/seed-consumers.sh" + additional-apps: '[{"repo":"ConductionNL/openregister","app":"openregister","ref":"feature/php-linting"}]' + enable-sbom: true + enable-playwright: true + enable-playwright-coverage: true + playwright-coverage-threshold: 75 + playwright-seed-command: 'php occ maintenance:repair' diff --git a/.github/workflows/documentation.yml b/.github/workflows/documentation.yml index 79f44b9..9ca1c34 100644 --- a/.github/workflows/documentation.yml +++ b/.github/workflows/documentation.yml @@ -2,66 +2,12 @@ name: Documentation on: push: - branches: - - development + branches: [documentation] pull_request: - branches: - - development + branches: [documentation] jobs: deploy: - name: Deploy Documentation - runs-on: ubuntu-latest - # Only deploy on push, not on pull requests - if: github.event_name == 'push' - permissions: - contents: write - steps: - - uses: actions/checkout@v4 - with: - fetch-depth: 0 - - - name: Setup Node.js 18 - uses: actions/setup-node@v3 - with: - node-version: '18' - - - name: Clear build cache and install dependencies - timeout-minutes: 3 - run: | - cd docusaurus - rm -rf node_modules/.cache - rm -rf .docusaurus - rm -rf build - npm run ci - - - name: Verify build output - run: | - cd docusaurus/build - if [ ! -f index.html ]; then - echo "ERROR: index.html not found in build directory!" - exit 1 - fi - - - name: Create .nojekyll and CNAME files - run: | - cd docusaurus/build - touch .nojekyll - echo "procest.app" > CNAME - - - name: Deploy to GitHub Pages - uses: peaceiris/actions-gh-pages@v3 - with: - github_token: ${{ secrets.GITHUB_TOKEN }} - publish_dir: ./docusaurus/build - publish_branch: gh-pages - user_name: 'github-actions[bot]' - user_email: 'github-actions[bot]@users.noreply.github.com' - force_orphan: false - allow_empty_commit: true - keep_files: false - - - name: Verify deployment - run: | - git fetch origin gh-pages - echo "Deployment completed. Latest commit: $(git rev-parse origin/gh-pages)" + uses: ConductionNL/.github/.github/workflows/documentation.yml@main + with: + cname: procest.app diff --git a/.github/workflows/issue-triage.yml b/.github/workflows/issue-triage.yml new file mode 100644 index 0000000..7520819 --- /dev/null +++ b/.github/workflows/issue-triage.yml @@ -0,0 +1,20 @@ +name: Issue Triage + +on: + issues: + types: [opened, labeled] + workflow_dispatch: + inputs: + backlog-existing: + description: "Triage all existing untriaged open issues" + type: boolean + default: true + +jobs: + triage: + uses: ConductionNL/.github/.github/workflows/issue-triage.yml@feature/openspec-project-sync + with: + app-name: procest + backlog-existing: ${{ github.event_name == 'workflow_dispatch' && inputs.backlog-existing || false }} + secrets: + PROJECT_TOKEN: ${{ secrets.PROJECT_TOKEN }} diff --git a/.github/workflows/openspec-sync.yml b/.github/workflows/openspec-sync.yml new file mode 100644 index 0000000..f29c654 --- /dev/null +++ b/.github/workflows/openspec-sync.yml @@ -0,0 +1,15 @@ +name: OpenSpec Sync + +on: + push: + branches: [development] + paths: ['openspec/**'] + workflow_dispatch: + +jobs: + sync: + uses: ConductionNL/.github/.github/workflows/openspec-sync.yml@feature/openspec-project-sync + with: + app-name: procest + secrets: + PROJECT_TOKEN: ${{ secrets.PROJECT_TOKEN }} diff --git a/.github/workflows/release-beta.yml b/.github/workflows/release-beta.yml new file mode 100644 index 0000000..265fda0 --- /dev/null +++ b/.github/workflows/release-beta.yml @@ -0,0 +1,12 @@ +name: Beta Release + +on: + push: + branches: [beta] + +jobs: + release: + uses: ConductionNL/.github/.github/workflows/release-beta.yml@main + with: + app-name: procest + secrets: inherit diff --git a/.github/workflows/release-stable.yml b/.github/workflows/release-stable.yml new file mode 100644 index 0000000..3a56e67 --- /dev/null +++ b/.github/workflows/release-stable.yml @@ -0,0 +1,12 @@ +name: Stable Release + +on: + push: + branches: [main] + +jobs: + release: + uses: ConductionNL/.github/.github/workflows/release-stable.yml@main + with: + app-name: procest + secrets: inherit diff --git a/.github/workflows/sync-to-beta.yml b/.github/workflows/sync-to-beta.yml new file mode 100644 index 0000000..979a373 --- /dev/null +++ b/.github/workflows/sync-to-beta.yml @@ -0,0 +1,10 @@ +name: Sync to Beta + +on: + push: + branches: [development] + +jobs: + sync: + uses: ConductionNL/.github/.github/workflows/sync-to-beta.yml@main + secrets: inherit diff --git a/.gitignore b/.gitignore index 16ea727..9aa62e1 100644 --- a/.gitignore +++ b/.gitignore @@ -4,3 +4,9 @@ /docusaurus/node_modules/ /docusaurus/build/ /docusaurus/.docusaurus/ +docs/.docusaurus/ +docs/node_modules/ + +.phpunit.cache/ +coverage/ +phpmetrics/ diff --git a/.phpunit.cache/test-results b/.phpunit.cache/test-results new file mode 100644 index 0000000..ada7a49 --- /dev/null +++ b/.phpunit.cache/test-results @@ -0,0 +1 @@ +{"version":2,"defects":{"OCA\\Procest\\Tests\\Unit\\Service\\SettingsServiceTest::testUpdateSettingsOnlyUpdatesRecognizedKeys":8},"times":{"OCA\\Procest\\Tests\\Unit\\Service\\SettingsServiceTest::testIsOpenRegisterAvailableReturnsTrue":0.001,"OCA\\Procest\\Tests\\Unit\\Service\\SettingsServiceTest::testIsOpenRegisterAvailableReturnsFalse":0,"OCA\\Procest\\Tests\\Unit\\Service\\SettingsServiceTest::testGetSettingsReturnsAllConfigKeys":0.001,"OCA\\Procest\\Tests\\Unit\\Service\\SettingsServiceTest::testUpdateSettingsOnlyUpdatesRecognizedKeys":0.005,"OCA\\Procest\\Tests\\Unit\\Service\\SettingsServiceTest::testGetConfigValueDelegatesToAppConfig":0.001,"OCA\\Procest\\Tests\\Unit\\Service\\SettingsServiceTest::testSetConfigValueDelegatesToAppConfig":0.001,"OCA\\Procest\\Tests\\Unit\\Service\\SettingsServiceTest::testLoadConfigurationFailsWithoutOpenRegister":0.001}} \ No newline at end of file diff --git a/README.md b/README.md index b5fb69f..beca8da 100644 --- a/README.md +++ b/README.md @@ -209,10 +209,25 @@ Full documentation is available at **[procest.app](https://procest.app)** - **[OpenRegister](https://github.com/ConductionNL/openregister)** — Object storage layer (required dependency) - **[OpenCatalogi](https://github.com/ConductionNL/opencatalogi)** — Application catalogue +## Support + +For support, contact us at [support@conduction.nl](mailto:support@conduction.nl). + +For a Service Level Agreement (SLA), contact [sales@conduction.nl](mailto:sales@conduction.nl). + ## License -AGPL-3.0-or-later +This project is licensed under the [EUPL-1.2](LICENSE). + +### Dependency license policy + +All dependencies (PHP and JavaScript) are automatically checked against an approved license allowlist during CI. The following SPDX license families are approved for use in dependencies: + +- **Permissive:** MIT, ISC, BSD-2-Clause, BSD-3-Clause, 0BSD, Apache-2.0, Unlicense, CC0-1.0, CC-BY-3.0, CC-BY-4.0, Zlib, BlueOak-1.0.0, Artistic-2.0, BSL-1.0 +- **Copyleft (EUPL-compatible):** LGPL-2.0/2.1/3.0, GPL-2.0/3.0, AGPL-3.0, EUPL-1.1/1.2, MPL-2.0 +- **Font licenses:** OFL-1.0, OFL-1.1 +Dependencies with licenses not on this list will fail CI unless explicitly approved in `.license-overrides.json` with a documented justification. ## Authors Built by [Conduction](https://conduction.nl) — open-source software for Dutch government and public sector organizations. diff --git a/REVIEW.md b/REVIEW.md new file mode 100644 index 0000000..a3e4ac1 --- /dev/null +++ b/REVIEW.md @@ -0,0 +1,218 @@ +# Procest -- Final Review + +**Date:** 2026-03-21 +**Version:** 0.1.10 +**Reviewer:** Claude Opus 4.6 (automated) +**Previous review:** 2026-03-20 + +--- + +## 1. OpenSpec Structure + +| Metric | Count | +|--------|-------| +| Specs | 43 | +| Active changes | 0 | +| Archived changes | 50 | + +All changes have been processed and archived. No active changes remain in `openspec/changes/`. The 43 specs cover the full breadth of Procest functionality: core case management, ZGW API mapping, dashboard, task management, roles/decisions, admin settings, i18n, multi-tenant SaaS, Prometheus metrics, and many domain-specific modules (VTH, WOO, DSO, legesberekening, complaint management, etc.). + +**Verdict: PASS** + +--- + +## 2. Unit Tests + +``` +PHPUnit 10.5.63 +OK (33 tests, 94 assertions) +``` + +All 33 tests pass with 94 assertions across 4 test classes: +- `ZgwAuthMiddlewareTest` (8 tests) -- confidentiality levels, controller filtering, exception handling +- `SettingsServiceTest` (7 tests) -- config CRUD, OpenRegister availability +- `ZgwMappingServiceTest` (11 tests) -- mapping CRUD, defaults, resource keys +- `ZgwPaginationHelperTest` (7 tests) -- pagination logic, edge cases, zero division + +**Verdict: PASS** + +--- + +## 3. Code Quality + +| Check | Result | +|-------|--------| +| PHP Lint | 0 errors (34 files) | +| PHPCS | 0 errors, 0 warnings (34/34 files clean) | + +**Verdict: PASS** + +--- + +## 4. Browser Testing + +### 4.1 Dashboard (`/apps/procest/dashboard`) +- **Status: RENDERS** -- Loads correctly with KPI cards (Open Cases, Overdue, Completed This Month, My Tasks), "Cases by Status" chart, "My Work" preview, and quick actions (New Case, New Task, Refresh). +- **Note:** Data fetch fails with 404s from OpenRegister (registers 92, schemas 197/198/204/205 not found in current environment). This is an environment configuration issue, not a code bug -- the schemas need to be seeded via the admin settings "Re-import configuration" button. + +### 4.2 My Work (`/apps/procest/my-work`) +- **Status: RENDERS** -- Shows tabbed view (All/Cases/Tasks) with counts, "Show completed" toggle, and empty state with loading indicator. + +### 4.3 Cases (`/apps/procest/cases`) +- **Status: RENDERS** -- Cards/Table toggle, Add Item button, Actions menu, "No items found" empty state. +- **Console error:** `Object type "case" is not registered in the object store` -- the object store types are not initialized because the register/schemas are not configured in this environment. + +### 4.4 Tasks (`/apps/procest/tasks`) +- **Status: RENDERS** -- Same layout as Cases with Cards/Table toggle, Add Item, Actions, and empty state. +- **Console error:** `Object type "task" is not registered` -- same root cause as Cases. + +### 4.5 Admin Settings (`/settings/admin/procest`) +- **Status: FULLY RENDERS** -- Four sections: + 1. **Version Information** -- v0.1.10, "Up to date" badge, "Re-import configuration" button + 2. **Configuration** -- 9 fields: Register (92), Case schema (204), Task schema (205), Status schema (empty), Role schema (206), Result schema (207), Decision schema (209), Case type schema (197), Status type schema (198) + 3. **Case Type Management** -- Cards/Table CRUD view (currently empty) + 4. **ZGW API Mapping** -- Table with 12 ZGW resource types (zaak, zaaktype, status, statustype, resultaat, resultaattype, rol, roltype, eigenschap, besluit, besluittype, informatieobjecttype) all showing "Not configured" with Edit/Reset buttons + +### 4.6 Root Route Bug (PERSISTS FROM PREVIOUS REVIEW) +- **CRITICAL:** Navigating to `/apps/procest/` returns HTTP 404. +- **Root cause:** In `appinfo/routes.php`, two routes share the name `dashboard#page`: + - Line 8: `['name' => 'dashboard#page', 'url' => '/', 'verb' => 'GET']` + - Line 116: `['name' => 'dashboard#page', 'url' => '/{path}', 'verb' => 'GET', 'requirements' => ['path' => '.+'], 'defaults' => ['path' => '']]` + + Symfony router uses route names as keys, so the second entry overwrites the first. The catch-all requires `path` to match `.+` (one or more characters), which does not match an empty path. +- **Impact:** The Procest navigation icon in the Nextcloud header links to `/apps/procest/` which 404s. Users must navigate to `/apps/procest/dashboard` manually. +- **Fix:** Either rename the first route to a distinct name (e.g., `dashboard#index`) or change the catch-all pattern from `.+` to `.*`. + +**Verdict: PARTIAL PASS -- root route 404 is a real bug (unchanged since previous review)** + +--- + +## 5. API Endpoints + +| Endpoint | Status | Notes | +|----------|--------|-------| +| `GET /api/health` | 200 | `{"status":"ok","version":"0.1.10","checks":{"database":"ok","filesystem":"ok"}}` | +| `GET /api/metrics` | 200 | Prometheus format: procest_info, procest_up, cases_total, cases_overdue_total, tasks_total, tasks_overdue_total | +| `GET /api/zgw/zaken/v1/zaken` | 200 | ZGW paginated response `{"count":0,"next":null,"previous":null,"results":[]}` | +| `GET /api/zgw/catalogi/v1/zaaktypen` | 403 | ZGW JWT auth required (middleware working correctly) | +| `GET /api/settings` | 403 | CSRF check (expected for curl without session token) | + +**Verdict: PASS** + +--- + +## 6. Documentation + +### 6.1 Feature Docs (`docs/features/`) +7 feature docs + 1 README: +- `administration.md` -- Admin panel, OpenRegister integration +- `case-management.md` -- Case lifecycle, CMMN concepts +- `case-types.md` -- Configuration system +- `dashboard.md` -- KPI cards, charts, quick actions +- `my-work.md` -- Personal workload aggregation (Werkvoorraad) +- `roles-decisions.md` -- Participation, outcomes, decisions +- `task-management.md` -- CMMN HumanTask concepts + +### 6.2 Screenshots (`docs/screenshots/`) +2 screenshots present: +- `dashboard.png` (37 KB) +- `my-work.png` (37 KB) + +**Missing screenshots:** Cases list, Tasks list, Case detail, Task detail, Admin settings. + +**Verdict: PARTIAL PASS -- feature docs complete, screenshots incomplete** + +--- + +## 7. Architecture Summary + +### Backend (34 PHP files) +- **Controllers (11):** Dashboard, Settings, ZgwMapping, Zrc, Ztc, Drc, Brc, Ac, Nrc, Health, Metrics +- **Services (12):** ZgwService, ZgwMappingService, ZgwBusinessRulesService, ZgwBrcRulesService, ZgwDrcRulesService, ZgwZrcRulesService, ZgwZtcRulesService, ZgwDocumentService, ZgwPaginationHelper, ZgwRulesBase, NotificatieService, SettingsService +- **Middleware:** ZgwAuthMiddleware (JWT validation + 8 confidentiality levels) +- **Dashboard Widgets (3):** CasesOverview, MyTasks, OverdueCases +- **Repair Steps (2):** InitializeSettings, LoadDefaultZgwMappings +- **Listener:** DeepLinkRegistrationListener + +### Frontend (34 Vue + 19 JS files) +- **Views:** Dashboard, MyWork, CaseList, CaseDetail, CaseCreateDialog, TaskList, TaskDetail, TaskCreateDialog +- **Case Components:** ActivityTimeline, AddParticipantDialog, DeadlinePanel, ParticipantsSection, QuickStatusDropdown, ResultSection, StatusTimeline +- **Dashboard Widgets:** KpiCards, ActivityFeed, MyWorkPreview, OverduePanel, StatusChart +- **Settings Views:** AdminRoot, CaseTypeAdmin, CaseTypeDetail, CaseTypeList, Settings, UserSettings, ZgwMappingSettings, GeneralTab, StatusesTab +- **Store Modules:** object, settings, zgwMapping +- **i18n:** English (`en.json`) + Dutch (`nl.json`) +- **Widget Entry Points:** casesOverviewWidget.js, myTasksWidget.js, overdueCasesWidget.js + +### ZGW API Coverage (5 components + Autorisaties) +| Component | Endpoints | +|-----------|-----------| +| ZRC (Zaken) | CRUD, zaakeigenschappen (CRUD), zaakbesluiten, _zoek, audit trail | +| ZTC (Catalogi) | CRUD, publish (zaaktypen/besluittypen/informatieobjecttypen), audit trail | +| DRC (Documenten) | CRUD, download, lock/unlock, chunked upload (bestandsdelen), audit trail | +| BRC (Besluiten) | CRUD, audit trail | +| NRC (Notificaties) | webhook, CRUD, audit trail | +| AC (Autorisaties) | applicaties CRUD | + +### CI/CD (8 GitHub workflows) +branch-protection, code-quality, documentation, issue-triage, openspec-sync, release-beta, release-stable, sync-to-beta + +### ZGW Newman Test Suite +Located in `tests/zgw/` with run scripts, environment config, and 8 result files from previous test runs. + +--- + +## 8. Changes Since Previous Review (2026-03-20) + +| Item | Previous | Current | +|------|----------|---------| +| Unit tests | Not run | 33/33 pass, 94 assertions | +| PHPCS | Not checked | 0 errors, 0 warnings | +| Screenshots | 0 | 2 (dashboard.png, my-work.png) | +| Root route 404 | Reported | Still present (unchanged) | +| Object type registration errors | Present | Still present (environment config issue) | +| NcButton Vue warnings | 12 warnings | Not observed in this session | +| Cases list | Showed "Object type not registered" | Same -- empty state renders correctly | +| Archived changes | Unknown | 50 | + +--- + +## 9. Issues Found + +### CRITICAL +1. **Root route returns 404** -- `/apps/procest/` gives 404 due to duplicate route name `dashboard#page` in `appinfo/routes.php` (lines 8 and 116). The catch-all `/{path}` with `.+` requirement overwrites the root `/` route. Users clicking the Procest nav icon in the Nextcloud header get a "Page not found" error. **Persists from previous review.** + +### WARNING +2. **Object store types not registered** -- Console errors `Object type "case" is not registered in the object store` and `Object type "task" is not registered` on Cases and Tasks pages. Root cause: the `createObjectStore` calls depend on register/schema IDs that reference schemas not present in this test environment. Running "Re-import configuration" from admin settings should resolve this. + +3. **Status schema ID empty** -- The admin settings show the Status schema field as empty while all other schema fields have values. This likely causes status-related features to fail. + +4. **ZGW mappings all "Not configured"** -- All 12 ZGW resource mappings show "Not configured". The LoadDefaultZgwMappings repair step should auto-configure these on install. + +5. **Missing screenshots** -- Only 2 of ~7 expected screenshots exist (dashboard, my-work). Missing: cases, tasks, case-detail, task-detail, admin-settings. + +### SUGGESTION +6. **Documentation nav link is dead** -- The "Documentation" sidebar nav item links to `#` (no-op). Should link to actual documentation or be removed. + +7. **"Completed This Month" text truncation** -- KPI card label is cut off on standard viewport widths. + +--- + +## 10. Overall Assessment + +| Category | Score | Notes | +|----------|-------|-------| +| OpenSpec structure | 10/10 | 43 specs, 50 archived, 0 active -- fully clean | +| Unit tests | 10/10 | 33/33 pass, 94 assertions, 4 well-structured test classes | +| Code quality | 10/10 | Zero PHPCS/lint issues across 34 PHP files | +| Browser: Dashboard | 8/10 | All components render; data empty due to env config | +| Browser: My Work | 8/10 | Renders with filters and toggle | +| Browser: Cases/Tasks | 7/10 | UI renders, object types not registered (env issue) | +| Browser: Admin Settings | 9/10 | Full settings page with 4 sections | +| Browser: Root route | 3/10 | 404 on `/apps/procest/` -- critical navigation bug | +| API endpoints | 9/10 | Health, metrics, ZGW APIs all respond correctly | +| Documentation | 7/10 | 7 feature docs present; screenshots incomplete | +| Architecture | 9/10 | Comprehensive ZGW implementation, clean separation | + +**Overall: 90/110 (82%) -- GOOD with one critical routing bug** + +The app demonstrates strong architecture with comprehensive ZGW API coverage across 6 components, clean code quality (zero PHPCS issues), and solid unit test coverage. The OpenSpec structure is exemplary with 43 specs and all 50 changes properly archived. The critical blocker is the root route 404 which has persisted across reviews -- this is a one-line fix (change `.+` to `.*` in the catch-all route pattern, or rename the duplicate route) that would resolve the most impactful user-facing issue. diff --git a/appinfo/info.xml b/appinfo/info.xml index 6971b39..1366b24 100644 --- a/appinfo/info.xml +++ b/appinfo/info.xml @@ -24,6 +24,8 @@ **Requires:** [OpenRegister](https://apps.nextcloud.com/apps/openregister) (install from the [Nextcloud App Store](https://apps.nextcloud.com/apps/openregister)). Free and open source under the AGPL license. + +**Support:** For support, contact support@conduction.nl. For a Service Level Agreement (SLA), contact sales@conduction.nl. ]]> - 0.1.9 + 0.1.10 agpl Conduction Procest @@ -71,6 +75,8 @@ Vrij en open source onder de AGPL-licentie. OCA\Procest\Repair\InitializeSettings + OCA\Procest\Repair\LoadDefaultZgwMappings + OCA\Procest\Repair\SeedBezwaarBeroepData diff --git a/appinfo/routes.php b/appinfo/routes.php index 34fb35f..195cc12 100644 --- a/appinfo/routes.php +++ b/appinfo/routes.php @@ -4,9 +4,119 @@ return [ 'routes' => [ + // Dashboard + Settings. ['name' => 'dashboard#page', 'url' => '/', 'verb' => 'GET'], ['name' => 'settings#index', 'url' => '/api/settings', 'verb' => 'GET'], ['name' => 'settings#create', 'url' => '/api/settings', 'verb' => 'POST'], - ['name' => 'settings#load', 'url' => '/api/settings/load', 'verb' => 'POST'], + ['name' => 'settings#load', 'url' => '/api/settings/load', 'verb' => 'POST'], + // ZGW Mapping Management. + ['name' => 'zgw_mapping#index', 'url' => '/api/zgw-mappings', 'verb' => 'GET'], + ['name' => 'zgw_mapping#show', 'url' => '/api/zgw-mappings/{resourceKey}', 'verb' => 'GET'], + ['name' => 'zgw_mapping#update', 'url' => '/api/zgw-mappings/{resourceKey}', 'verb' => 'PUT'], + ['name' => 'zgw_mapping#destroy', 'url' => '/api/zgw-mappings/{resourceKey}', 'verb' => 'DELETE'], + ['name' => 'zgw_mapping#reset', 'url' => '/api/zgw-mappings/{resourceKey}/reset', 'verb' => 'POST'], + + // ── DRC (Documenten) ──────────────────────────────────────────── + // Special endpoints (must precede wildcard routes). + ['name' => 'drc#download', 'url' => '/api/zgw/documenten/v1/enkelvoudiginformatieobjecten/{uuid}/download', 'verb' => 'GET'], + ['name' => 'drc#lock', 'url' => '/api/zgw/documenten/v1/enkelvoudiginformatieobjecten/{uuid}/lock', 'verb' => 'POST'], + ['name' => 'drc#unlock', 'url' => '/api/zgw/documenten/v1/enkelvoudiginformatieobjecten/{uuid}/unlock', 'verb' => 'POST'], + // Bestandsdelen (chunked upload). + ['name' => 'drc#uploadChunk', 'url' => '/api/zgw/documenten/v1/bestandsdelen/{uuid}', 'verb' => 'PUT'], + // Audit trail. + ['name' => 'drc#audittrailIndex', 'url' => '/api/zgw/documenten/v1/{resource}/{uuid}/audittrail', 'verb' => 'GET'], + ['name' => 'drc#audittrailShow', 'url' => '/api/zgw/documenten/v1/{resource}/{uuid}/audittrail/{auditUuid}', 'verb' => 'GET'], + // CRUD. + ['name' => 'drc#index', 'url' => '/api/zgw/documenten/v1/{resource}', 'verb' => 'GET'], + ['name' => 'drc#create', 'url' => '/api/zgw/documenten/v1/{resource}', 'verb' => 'POST'], + ['name' => 'drc#show', 'url' => '/api/zgw/documenten/v1/{resource}/{uuid}', 'verb' => 'GET'], + ['name' => 'drc#update', 'url' => '/api/zgw/documenten/v1/{resource}/{uuid}', 'verb' => 'PUT'], + ['name' => 'drc#patch', 'url' => '/api/zgw/documenten/v1/{resource}/{uuid}', 'verb' => 'PATCH'], + ['name' => 'drc#destroy', 'url' => '/api/zgw/documenten/v1/{resource}/{uuid}', 'verb' => 'DELETE'], + + // ── ZRC (Zaken) ───────────────────────────────────────────────── + // Nested sub-resource routes (must precede wildcard routes). + ['name' => 'zrc#zaakeigenschappenIndex', 'url' => '/api/zgw/zaken/v1/zaken/{zaakUuid}/zaakeigenschappen', 'verb' => 'GET'], + ['name' => 'zrc#zaakeigenschappenCreate', 'url' => '/api/zgw/zaken/v1/zaken/{zaakUuid}/zaakeigenschappen', 'verb' => 'POST'], + ['name' => 'zrc#zaakeigenschappenShow', 'url' => '/api/zgw/zaken/v1/zaken/{zaakUuid}/zaakeigenschappen/{uuid}', 'verb' => 'GET'], + ['name' => 'zrc#zaakeigenschappenUpdate', 'url' => '/api/zgw/zaken/v1/zaken/{zaakUuid}/zaakeigenschappen/{uuid}', 'verb' => 'PUT'], + ['name' => 'zrc#zaakeigenschappenPatch', 'url' => '/api/zgw/zaken/v1/zaken/{zaakUuid}/zaakeigenschappen/{uuid}', 'verb' => 'PATCH'], + ['name' => 'zrc#zaakeigenschappenDestroy', 'url' => '/api/zgw/zaken/v1/zaken/{zaakUuid}/zaakeigenschappen/{uuid}', 'verb' => 'DELETE'], + // Zaakbesluiten sub-resource. + ['name' => 'zrc#zaakbesluitenIndex', 'url' => '/api/zgw/zaken/v1/zaken/{zaakUuid}/besluiten', 'verb' => 'GET'], + // Zoek endpoint. + ['name' => 'zrc#zoek', 'url' => '/api/zgw/zaken/v1/zaken/_zoek', 'verb' => 'POST'], + // Audit trail. + ['name' => 'zrc#audittrailIndex', 'url' => '/api/zgw/zaken/v1/{resource}/{uuid}/audittrail', 'verb' => 'GET'], + ['name' => 'zrc#audittrailShow', 'url' => '/api/zgw/zaken/v1/{resource}/{uuid}/audittrail/{auditUuid}', 'verb' => 'GET'], + // CRUD. + ['name' => 'zrc#index', 'url' => '/api/zgw/zaken/v1/{resource}', 'verb' => 'GET'], + ['name' => 'zrc#create', 'url' => '/api/zgw/zaken/v1/{resource}', 'verb' => 'POST'], + ['name' => 'zrc#show', 'url' => '/api/zgw/zaken/v1/{resource}/{uuid}', 'verb' => 'GET'], + ['name' => 'zrc#update', 'url' => '/api/zgw/zaken/v1/{resource}/{uuid}', 'verb' => 'PUT'], + ['name' => 'zrc#patch', 'url' => '/api/zgw/zaken/v1/{resource}/{uuid}', 'verb' => 'PATCH'], + ['name' => 'zrc#destroy', 'url' => '/api/zgw/zaken/v1/{resource}/{uuid}', 'verb' => 'DELETE'], + + // ── ZTC (Catalogi) ────────────────────────────────────────────── + // Publish endpoints (must precede wildcard routes). + ['name' => 'ztc#publishZaaktype', 'url' => '/api/zgw/catalogi/v1/zaaktypen/{uuid}/publish', 'verb' => 'POST'], + ['name' => 'ztc#publishBesluittype', 'url' => '/api/zgw/catalogi/v1/besluittypen/{uuid}/publish', 'verb' => 'POST'], + ['name' => 'ztc#publishInformatieobjecttype', 'url' => '/api/zgw/catalogi/v1/informatieobjecttypen/{uuid}/publish', 'verb' => 'POST'], + // Audit trail. + ['name' => 'ztc#audittrailIndex', 'url' => '/api/zgw/catalogi/v1/{resource}/{uuid}/audittrail', 'verb' => 'GET'], + ['name' => 'ztc#audittrailShow', 'url' => '/api/zgw/catalogi/v1/{resource}/{uuid}/audittrail/{auditUuid}', 'verb' => 'GET'], + // CRUD. + ['name' => 'ztc#index', 'url' => '/api/zgw/catalogi/v1/{resource}', 'verb' => 'GET'], + ['name' => 'ztc#create', 'url' => '/api/zgw/catalogi/v1/{resource}', 'verb' => 'POST'], + ['name' => 'ztc#show', 'url' => '/api/zgw/catalogi/v1/{resource}/{uuid}', 'verb' => 'GET'], + ['name' => 'ztc#update', 'url' => '/api/zgw/catalogi/v1/{resource}/{uuid}', 'verb' => 'PUT'], + ['name' => 'ztc#patch', 'url' => '/api/zgw/catalogi/v1/{resource}/{uuid}', 'verb' => 'PATCH'], + ['name' => 'ztc#destroy', 'url' => '/api/zgw/catalogi/v1/{resource}/{uuid}', 'verb' => 'DELETE'], + + // ── BRC (Besluiten) ───────────────────────────────────────────── + // Audit trail. + ['name' => 'brc#audittrailIndex', 'url' => '/api/zgw/besluiten/v1/{resource}/{uuid}/audittrail', 'verb' => 'GET'], + ['name' => 'brc#audittrailShow', 'url' => '/api/zgw/besluiten/v1/{resource}/{uuid}/audittrail/{auditUuid}', 'verb' => 'GET'], + // CRUD. + ['name' => 'brc#index', 'url' => '/api/zgw/besluiten/v1/{resource}', 'verb' => 'GET'], + ['name' => 'brc#create', 'url' => '/api/zgw/besluiten/v1/{resource}', 'verb' => 'POST'], + ['name' => 'brc#show', 'url' => '/api/zgw/besluiten/v1/{resource}/{uuid}', 'verb' => 'GET'], + ['name' => 'brc#update', 'url' => '/api/zgw/besluiten/v1/{resource}/{uuid}', 'verb' => 'PUT'], + ['name' => 'brc#patch', 'url' => '/api/zgw/besluiten/v1/{resource}/{uuid}', 'verb' => 'PATCH'], + ['name' => 'brc#destroy', 'url' => '/api/zgw/besluiten/v1/{resource}/{uuid}', 'verb' => 'DELETE'], + + // ── AC (Autorisaties) ─────────────────────────────────────────── + ['name' => 'ac#index', 'url' => '/api/zgw/autorisaties/v1/applicaties', 'verb' => 'GET'], + ['name' => 'ac#create', 'url' => '/api/zgw/autorisaties/v1/applicaties', 'verb' => 'POST'], + ['name' => 'ac#show', 'url' => '/api/zgw/autorisaties/v1/applicaties/{uuid}', 'verb' => 'GET'], + ['name' => 'ac#update', 'url' => '/api/zgw/autorisaties/v1/applicaties/{uuid}', 'verb' => 'PUT'], + ['name' => 'ac#patch', 'url' => '/api/zgw/autorisaties/v1/applicaties/{uuid}', 'verb' => 'PATCH'], + ['name' => 'ac#destroy', 'url' => '/api/zgw/autorisaties/v1/applicaties/{uuid}', 'verb' => 'DELETE'], + + // ── NRC (Notificaties) ────────────────────────────────────────── + // Notificaties webhook endpoint. + ['name' => 'nrc#notificatieCreate', 'url' => '/api/zgw/notificaties/v1/notificaties', 'verb' => 'POST'], + // Audit trail. + ['name' => 'nrc#audittrailIndex', 'url' => '/api/zgw/notificaties/v1/{resource}/{uuid}/audittrail', 'verb' => 'GET'], + ['name' => 'nrc#audittrailShow', 'url' => '/api/zgw/notificaties/v1/{resource}/{uuid}/audittrail/{auditUuid}', 'verb' => 'GET'], + // CRUD. + ['name' => 'nrc#index', 'url' => '/api/zgw/notificaties/v1/{resource}', 'verb' => 'GET'], + ['name' => 'nrc#create', 'url' => '/api/zgw/notificaties/v1/{resource}', 'verb' => 'POST'], + ['name' => 'nrc#show', 'url' => '/api/zgw/notificaties/v1/{resource}/{uuid}', 'verb' => 'GET'], + ['name' => 'nrc#update', 'url' => '/api/zgw/notificaties/v1/{resource}/{uuid}', 'verb' => 'PUT'], + ['name' => 'nrc#patch', 'url' => '/api/zgw/notificaties/v1/{resource}/{uuid}', 'verb' => 'PATCH'], + ['name' => 'nrc#destroy', 'url' => '/api/zgw/notificaties/v1/{resource}/{uuid}', 'verb' => 'DELETE'], + + // GIS Proxy endpoints. + ['name' => 'gis_proxy#proxy', 'url' => '/api/gis/proxy', 'verb' => 'POST'], + ['name' => 'gis_proxy#capabilities', 'url' => '/api/gis/capabilities', 'verb' => 'GET'], + + // Prometheus metrics endpoint. + ['name' => 'metrics#index', 'url' => '/api/metrics', 'verb' => 'GET'], + // Health check endpoint. + ['name' => 'health#index', 'url' => '/api/health', 'verb' => 'GET'], + + // SPA catch-all — serves the Vue app for any frontend route (history mode) + ['name' => 'dashboard#page', 'url' => '/{path}', 'verb' => 'GET', 'requirements' => ['path' => '.+'], 'defaults' => ['path' => '']], ], ]; diff --git a/composer.json b/composer.json index ad940e0..7877201 100644 --- a/composer.json +++ b/composer.json @@ -18,6 +18,7 @@ "php": "^8.1" }, "require-dev": { + "cyclonedx/cyclonedx-php-composer": "^6.2", "edgedesign/phpqa": "^1.27", "nextcloud/coding-standard": "^1.4", "nextcloud/ocp": "^31.0", @@ -74,7 +75,8 @@ }, "config": { "allow-plugins": { - "dealerdirect/phpcodesniffer-composer-installer": true + "dealerdirect/phpcodesniffer-composer-installer": true, + "cyclonedx/cyclonedx-php-composer": true }, "optimize-autoloader": true, "sort-packages": true, diff --git a/composer.lock b/composer.lock index 82a0e13..eb58eb5 100644 --- a/composer.lock +++ b/composer.lock @@ -4,7 +4,7 @@ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", "This file is @generated automatically" ], - "content-hash": "803cd8aac5b40e587401c298c7161696", + "content-hash": "62d90425388f53bfb9c7a9ba6ea08f54", "packages": [], "packages-dev": [ { @@ -318,6 +318,86 @@ ], "time": "2025-08-20T19:15:30+00:00" }, + { + "name": "composer/spdx-licenses", + "version": "1.5.9", + "source": { + "type": "git", + "url": "https://github.com/composer/spdx-licenses.git", + "reference": "edf364cefe8c43501e21e88110aac10b284c3c9f" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/composer/spdx-licenses/zipball/edf364cefe8c43501e21e88110aac10b284c3c9f", + "reference": "edf364cefe8c43501e21e88110aac10b284c3c9f", + "shasum": "" + }, + "require": { + "php": "^5.3.2 || ^7.0 || ^8.0" + }, + "require-dev": { + "phpstan/phpstan": "^1.11", + "symfony/phpunit-bridge": "^3 || ^7" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "1.x-dev" + } + }, + "autoload": { + "psr-4": { + "Composer\\Spdx\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nils Adermann", + "email": "naderman@naderman.de", + "homepage": "http://www.naderman.de" + }, + { + "name": "Jordi Boggiano", + "email": "j.boggiano@seld.be", + "homepage": "http://seld.be" + }, + { + "name": "Rob Bast", + "email": "rob.bast@gmail.com", + "homepage": "http://robbast.nl" + } + ], + "description": "SPDX licenses list and validation library.", + "keywords": [ + "license", + "spdx", + "validator" + ], + "support": { + "irc": "ircs://irc.libera.chat:6697/composer", + "issues": "https://github.com/composer/spdx-licenses/issues", + "source": "https://github.com/composer/spdx-licenses/tree/1.5.9" + }, + "funding": [ + { + "url": "https://packagist.com", + "type": "custom" + }, + { + "url": "https://github.com/composer", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/composer/composer", + "type": "tidelift" + } + ], + "time": "2025-05-12T21:07:07+00:00" + }, { "name": "composer/xdebug-handler", "version": "3.0.5", @@ -734,6 +814,179 @@ }, "time": "2023-03-18T01:37:41+00:00" }, + { + "name": "cyclonedx/cyclonedx-library", + "version": "v4.0.0", + "source": { + "type": "git", + "url": "https://github.com/CycloneDX/cyclonedx-php-library.git", + "reference": "c95a371894c4e32bea42bfa024f2ab5092cbb292" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/CycloneDX/cyclonedx-php-library/zipball/c95a371894c4e32bea42bfa024f2ab5092cbb292", + "reference": "c95a371894c4e32bea42bfa024f2ab5092cbb292", + "shasum": "" + }, + "require": { + "ext-dom": "*", + "ext-json": "*", + "ext-libxml": "*", + "opis/json-schema": "^2.0", + "php": "^8.1" + }, + "conflict": { + "composer/spdx-licenses": "<1.5" + }, + "require-dev": { + "composer/spdx-licenses": "^1.5", + "ext-simplexml": "*", + "roave/security-advisories": "dev-latest" + }, + "suggest": { + "composer/spdx-licenses": "used in license factory", + "package-url/packageurl-php": "for parsing and crafting PackageURL strings" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "4.x-dev" + }, + "composer-normalize": { + "indent-size": 4, + "indent-style": "space" + } + }, + "autoload": { + "psr-4": { + "CycloneDX\\Core\\": "src/Core/", + "CycloneDX\\Contrib\\": "src/Contrib/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "Apache-2.0" + ], + "authors": [ + { + "name": "Jan Kowalleck", + "email": "jan.kowalleck@gmail.com", + "homepage": "https://github.com/jkowalleck" + } + ], + "description": "Work with CycloneDX documents.", + "homepage": "https://github.com/CycloneDX/cyclonedx-php-library/#readme", + "keywords": [ + "CycloneDX", + "HBOM", + "OBOM", + "SBOM", + "SaaSBOM", + "bill-of-materials", + "bom", + "models", + "normalizer", + "owasp", + "package-url", + "purl", + "serializer", + "software-bill-of-materials", + "spdx", + "validator", + "vdr", + "vex" + ], + "support": { + "docs": "https://cyclonedx-php-library.readthedocs.io", + "issues": "https://github.com/CycloneDX/cyclonedx-php-library/issues", + "source": "https://github.com/CycloneDX/cyclonedx-php-library/" + }, + "funding": [ + { + "url": "https://owasp.org/donate/?reponame=www-project-cyclonedx&title=OWASP+CycloneDX", + "type": "other" + } + ], + "time": "2026-02-17T11:46:50+00:00" + }, + { + "name": "cyclonedx/cyclonedx-php-composer", + "version": "v6.2.0", + "source": { + "type": "git", + "url": "https://github.com/CycloneDX/cyclonedx-php-composer.git", + "reference": "934440a5ef7c3c3cdb58c3c3d389d412630ccbf6" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/CycloneDX/cyclonedx-php-composer/zipball/934440a5ef7c3c3cdb58c3c3d389d412630ccbf6", + "reference": "934440a5ef7c3c3cdb58c3c3d389d412630ccbf6", + "shasum": "" + }, + "require": { + "composer-plugin-api": "^2.3", + "composer/spdx-licenses": "^1.5.7", + "cyclonedx/cyclonedx-library": "^4.0", + "package-url/packageurl-php": "^1.0", + "php": "^8.1" + }, + "require-dev": { + "composer/composer": "^2.3.0", + "marc-mabe/php-enum": "^4.6", + "roave/security-advisories": "dev-latest" + }, + "type": "composer-plugin", + "extra": { + "class": "CycloneDX\\Composer\\Plugin", + "branch-alias": { + "dev-master": "6.x-dev" + }, + "composer-normalize": { + "indent-size": 4, + "indent-style": "space" + } + }, + "autoload": { + "psr-4": { + "CycloneDX\\Composer\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "Apache-2.0" + ], + "authors": [ + { + "name": "Jan Kowalleck", + "email": "jan.kowalleck@gmail.com", + "homepage": "https://github.com/jkowalleck" + } + ], + "description": "Creates CycloneDX Software Bill-of-Materials (SBOM) from PHP Composer projects", + "homepage": "https://github.com/CycloneDX/cyclonedx-php-composer/#readme", + "keywords": [ + "CycloneDX", + "SBOM", + "bill-of-materials", + "bom", + "composer", + "package-url", + "purl", + "software-bill-of-materials", + "spdx" + ], + "support": { + "issues": "https://github.com/CycloneDX/cyclonedx-php-composer/issues", + "source": "https://github.com/CycloneDX/cyclonedx-php-composer/" + }, + "funding": [ + { + "url": "https://owasp.org/donate/?reponame=www-project-cyclonedx&title=OWASP+CycloneDX", + "type": "other" + } + ], + "time": "2026-02-17T13:23:10+00:00" + }, { "name": "dealerdirect/phpcodesniffer-composer-installer", "version": "v1.2.0", @@ -1669,6 +1922,262 @@ }, "time": "2025-12-06T11:45:25+00:00" }, + { + "name": "opis/json-schema", + "version": "2.6.0", + "source": { + "type": "git", + "url": "https://github.com/opis/json-schema.git", + "reference": "8458763e0dd0b6baa310e04f1829fc73da4e8c8a" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/opis/json-schema/zipball/8458763e0dd0b6baa310e04f1829fc73da4e8c8a", + "reference": "8458763e0dd0b6baa310e04f1829fc73da4e8c8a", + "shasum": "" + }, + "require": { + "ext-json": "*", + "opis/string": "^2.1", + "opis/uri": "^1.0", + "php": "^7.4 || ^8.0" + }, + "require-dev": { + "ext-bcmath": "*", + "ext-intl": "*", + "phpunit/phpunit": "^9.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.x-dev" + } + }, + "autoload": { + "psr-4": { + "Opis\\JsonSchema\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "Apache-2.0" + ], + "authors": [ + { + "name": "Sorin Sarca", + "email": "sarca_sorin@hotmail.com" + }, + { + "name": "Marius Sarca", + "email": "marius.sarca@gmail.com" + } + ], + "description": "Json Schema Validator for PHP", + "homepage": "https://opis.io/json-schema", + "keywords": [ + "json", + "json-schema", + "schema", + "validation", + "validator" + ], + "support": { + "issues": "https://github.com/opis/json-schema/issues", + "source": "https://github.com/opis/json-schema/tree/2.6.0" + }, + "time": "2025-10-17T12:46:48+00:00" + }, + { + "name": "opis/string", + "version": "2.1.0", + "source": { + "type": "git", + "url": "https://github.com/opis/string.git", + "reference": "3e4d2aaff518ac518530b89bb26ed40f4503635e" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/opis/string/zipball/3e4d2aaff518ac518530b89bb26ed40f4503635e", + "reference": "3e4d2aaff518ac518530b89bb26ed40f4503635e", + "shasum": "" + }, + "require": { + "ext-iconv": "*", + "ext-json": "*", + "php": "^7.4 || ^8.0" + }, + "require-dev": { + "phpunit/phpunit": "^9.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.x-dev" + } + }, + "autoload": { + "psr-4": { + "Opis\\String\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "Apache-2.0" + ], + "authors": [ + { + "name": "Marius Sarca", + "email": "marius.sarca@gmail.com" + }, + { + "name": "Sorin Sarca", + "email": "sarca_sorin@hotmail.com" + } + ], + "description": "Multibyte strings as objects", + "homepage": "https://opis.io/string", + "keywords": [ + "multi-byte", + "opis", + "string", + "string manipulation", + "utf-8" + ], + "support": { + "issues": "https://github.com/opis/string/issues", + "source": "https://github.com/opis/string/tree/2.1.0" + }, + "time": "2025-10-17T12:38:41+00:00" + }, + { + "name": "opis/uri", + "version": "1.1.0", + "source": { + "type": "git", + "url": "https://github.com/opis/uri.git", + "reference": "0f3ca49ab1a5e4a6681c286e0b2cc081b93a7d5a" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/opis/uri/zipball/0f3ca49ab1a5e4a6681c286e0b2cc081b93a7d5a", + "reference": "0f3ca49ab1a5e4a6681c286e0b2cc081b93a7d5a", + "shasum": "" + }, + "require": { + "opis/string": "^2.0", + "php": "^7.4 || ^8.0" + }, + "require-dev": { + "phpunit/phpunit": "^9" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.x-dev" + } + }, + "autoload": { + "psr-4": { + "Opis\\Uri\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "Apache-2.0" + ], + "authors": [ + { + "name": "Marius Sarca", + "email": "marius.sarca@gmail.com" + }, + { + "name": "Sorin Sarca", + "email": "sarca_sorin@hotmail.com" + } + ], + "description": "Build, parse and validate URIs and URI-templates", + "homepage": "https://opis.io", + "keywords": [ + "URI Template", + "parse url", + "punycode", + "uri", + "uri components", + "url", + "validate uri" + ], + "support": { + "issues": "https://github.com/opis/uri/issues", + "source": "https://github.com/opis/uri/tree/1.1.0" + }, + "time": "2021-05-22T15:57:08+00:00" + }, + { + "name": "package-url/packageurl-php", + "version": "1.1.2", + "source": { + "type": "git", + "url": "https://github.com/package-url/packageurl-php.git", + "reference": "32058ad61f0d8b457fa26e7860bbd8b903196d3f" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/package-url/packageurl-php/zipball/32058ad61f0d8b457fa26e7860bbd8b903196d3f", + "reference": "32058ad61f0d8b457fa26e7860bbd8b903196d3f", + "shasum": "" + }, + "require": { + "php": "^7.3 || ^8.0" + }, + "require-dev": { + "ext-json": "*", + "phpunit/phpunit": "9.6.16", + "roave/security-advisories": "dev-latest" + }, + "type": "library", + "extra": { + "composer-normalize": { + "indent-size": 4, + "indent-style": "space" + } + }, + "autoload": { + "psr-4": { + "PackageUrl\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Jan Kowalleck", + "email": "jan.kowalleck@gmail.com", + "homepage": "https://github.com/jkowalleck" + } + ], + "description": "Builder and parser based on the package URL (purl) specification.", + "homepage": "https://github.com/package-url/packageurl-php#readme", + "keywords": [ + "package", + "package-url", + "packageurl", + "purl", + "url" + ], + "support": { + "issues": "https://github.com/package-url/packageurl-php/issues", + "source": "https://github.com/package-url/packageurl-php/tree/1.1.2" + }, + "funding": [ + { + "url": "https://github.com/sponsors/jkowalleck", + "type": "github" + } + ], + "time": "2024-02-05T11:20:07+00:00" + }, { "name": "pdepend/pdepend", "version": "2.16.2", diff --git a/coverage-report/clover.xml b/coverage-report/clover.xml new file mode 100644 index 0000000..e99e06a --- /dev/null +++ b/coverage-report/clover.xml @@ -0,0 +1,8687 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/css/dashboardWidgets.css b/css/dashboardWidgets.css new file mode 100644 index 0000000..6953895 --- /dev/null +++ b/css/dashboardWidgets.css @@ -0,0 +1,8 @@ +.icon-procest-widget { + background-image: url("../img/app-dark.svg"); + filter: var(--background-invert-if-dark); +} + +body.theme--dark .icon-procest-widget { + background-image: url("../img/app.svg"); +} diff --git a/data/ZGW OAS tests.postman_collection.json b/data/ZGW OAS tests.postman_collection.json new file mode 100644 index 0000000..36f12dd --- /dev/null +++ b/data/ZGW OAS tests.postman_collection.json @@ -0,0 +1,18401 @@ +{ + "info": { + "_postman_id": "70a0aa28-c2a0-41c2-a18f-1da2dbf84479", + "name": "ZGW OAS tests", + "description": "Dit is de Postman test suite voor de OAS specificaties van de ZGW API's, elke folder bevat tests die verifieren of de API's voldoen aan de OAS specificaties van die API's. Het gaat om de volgende OAS schema's:\n\n- Zaken API: https://zaken-api.vng.cloud/api/v1/schema/\n- Documenten API: https://documenten-api.vng.cloud/api/v1/schema/\n- Catalogi API: https://catalogi-api.vng.cloud/api/v1/schema/\n- Besluiten API: https://besluiten-api.vng.cloud/api/v1/schema/\n- Notificaties API: https://notificaties-api.vng.cloud/api/v1/schema/\n- Autorisaties API: https://autorisaties-api.vng.cloud/api/v1/schema/\n\n**LET OP:** voor deze tests zijn de environment variabelen `client_id` en `secret` nodig, dit moeten credentials zijn die geregistreerd zijn binnen de Autorisaties API, en hiervoor moet dus ook een bestaande applicatie met superuser rechten aanwezig zijn in het systeem. Aan de hand van deze credentials wordt binnen de testsuite een JSON Web Token gegenereerd, die vervolgens gebruikt wordt in de Authorization headers van iedere API call", + "schema": "https://schema.getpostman.com/json/collection/v2.1.0/collection.json", + "_exporter_id": "8783588", + "_collection_link": "https://go.postman.co/collection/9365542-70a0aa28-c2a0-41c2-a18f-1da2dbf84479?source=collection_link" + }, + "item": [ + { + "name": "setUp", + "item": [ + { + "name": "Delete Applicatie for AC tests", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "var results = pm.response.json().results;", + "if(results.length > 0) {", + " for(i=0; i\",\n \"omschrijving\": \"\",\n \"vertrouwelijkheidaanduiding\": \"\",\n \"doel\": \"\",\n \"aanleiding\": \"\",\n \"indicatieInternOfExtern\": \"\",\n \"handelingInitiator\": \"\",\n \"onderwerp\": \"\",\n \"handelingBehandelaar\": \"\",\n \"doorlooptijd\": \"\",\n \"opschortingEnAanhoudingMogelijk\": \"\",\n \"verlengingMogelijk\": \"\",\n \"publicatieIndicatie\": \"\",\n \"productenOfDiensten\": [\n \"\",\n \"\"\n ],\n \"referentieproces\": {\n \"naam\": \"\",\n \"link\": \"\"\n },\n \"catalogus\": \"\",\n \"besluittypen\": [\n \"\"\n ],\n \"gerelateerdeZaaktypen\": [\n {\n \"zaaktype\": \"\",\n \"aardRelatie\": \"\",\n \"toelichting\": \"\"\n },\n {\n \"zaaktype\": \"\",\n \"aardRelatie\": \"\",\n \"toelichting\": \"\"\n }\n ],\n \"beginGeldigheid\": \"\",\n \"versiedatum\": \"\",\n \"omschrijvingGeneriek\": \"\",\n \"toelichting\": \"\",\n \"servicenorm\": \"\",\n \"verlengingstermijn\": \"\",\n \"trefwoorden\": [\n \"\",\n \"\"\n ],\n \"publicatietekst\": \"\",\n \"verantwoordingsrelatie\": [\n \"\",\n \"\"\n ],\n \"selectielijstProcestype\": \"\",\n \"eindeGeldigheid\": \"\"\n}" + }, + "url": { + "raw": "{{baseUrl}}/zaaktypen/", + "host": [ + "{{baseUrl}}" + ], + "path": [ + "zaaktypen", + "" + ] + } + }, + "status": "Gone", + "code": 410, + "_postman_previewlanguage": "json", + "header": [ + { + "key": "API-version", + "value": "", + "description": "Geeft een specifieke API-versie aan in de context van een specifieke aanroep. Voorbeeld: 1.2.1." + }, + { + "key": "Content-Type", + "value": "application/json" + } + ], + "cookie": [], + "body": "{\n \"code\": \"\",\n \"title\": \"\",\n \"status\": \"\",\n \"detail\": \"\",\n \"instance\": \"\",\n \"type\": \"\"\n}" + }, + { + "name": "Forbidden", + "originalRequest": { + "method": "PUT", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n \"identificatie\": \"\",\n \"omschrijving\": \"\",\n \"vertrouwelijkheidaanduiding\": \"\",\n \"doel\": \"\",\n \"aanleiding\": \"\",\n \"indicatieInternOfExtern\": \"\",\n \"handelingInitiator\": \"\",\n \"onderwerp\": \"\",\n \"handelingBehandelaar\": \"\",\n \"doorlooptijd\": \"\",\n \"opschortingEnAanhoudingMogelijk\": \"\",\n \"verlengingMogelijk\": \"\",\n \"publicatieIndicatie\": \"\",\n \"productenOfDiensten\": [\n \"\",\n \"\"\n ],\n \"referentieproces\": {\n \"naam\": \"\",\n \"link\": \"\"\n },\n \"catalogus\": \"\",\n \"besluittypen\": [\n \"\"\n ],\n \"gerelateerdeZaaktypen\": [\n {\n \"zaaktype\": \"\",\n \"aardRelatie\": \"\",\n \"toelichting\": \"\"\n },\n {\n \"zaaktype\": \"\",\n \"aardRelatie\": \"\",\n \"toelichting\": \"\"\n }\n ],\n \"beginGeldigheid\": \"\",\n \"versiedatum\": \"\",\n \"omschrijvingGeneriek\": \"\",\n \"toelichting\": \"\",\n \"servicenorm\": \"\",\n \"verlengingstermijn\": \"\",\n \"trefwoorden\": [\n \"\",\n \"\"\n ],\n \"publicatietekst\": \"\",\n \"verantwoordingsrelatie\": [\n \"\",\n \"\"\n ],\n \"selectielijstProcestype\": \"\",\n \"eindeGeldigheid\": \"\"\n}" + }, + "url": { + "raw": "{{baseUrl}}/zaaktypen/", + "host": [ + "{{baseUrl}}" + ], + "path": [ + "zaaktypen", + "" + ] + } + }, + "status": "Forbidden", + "code": 403, + "_postman_previewlanguage": "json", + "header": [ + { + "key": "API-version", + "value": "", + "description": "Geeft een specifieke API-versie aan in de context van een specifieke aanroep. Voorbeeld: 1.2.1." + }, + { + "key": "Content-Type", + "value": "application/json" + } + ], + "cookie": [], + "body": "{\n \"code\": \"\",\n \"title\": \"\",\n \"status\": \"\",\n \"detail\": \"\",\n \"instance\": \"\",\n \"type\": \"\"\n}" + }, + { + "name": "OK", + "originalRequest": { + "method": "PUT", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n \"identificatie\": \"\",\n \"omschrijving\": \"\",\n \"vertrouwelijkheidaanduiding\": \"\",\n \"doel\": \"\",\n \"aanleiding\": \"\",\n \"indicatieInternOfExtern\": \"\",\n \"handelingInitiator\": \"\",\n \"onderwerp\": \"\",\n \"handelingBehandelaar\": \"\",\n \"doorlooptijd\": \"\",\n \"opschortingEnAanhoudingMogelijk\": \"\",\n \"verlengingMogelijk\": \"\",\n \"publicatieIndicatie\": \"\",\n \"productenOfDiensten\": [\n \"\",\n \"\"\n ],\n \"referentieproces\": {\n \"naam\": \"\",\n \"link\": \"\"\n },\n \"catalogus\": \"\",\n \"besluittypen\": [\n \"\"\n ],\n \"gerelateerdeZaaktypen\": [\n {\n \"zaaktype\": \"\",\n \"aardRelatie\": \"\",\n \"toelichting\": \"\"\n },\n {\n \"zaaktype\": \"\",\n \"aardRelatie\": \"\",\n \"toelichting\": \"\"\n }\n ],\n \"beginGeldigheid\": \"\",\n \"versiedatum\": \"\",\n \"omschrijvingGeneriek\": \"\",\n \"toelichting\": \"\",\n \"servicenorm\": \"\",\n \"verlengingstermijn\": \"\",\n \"trefwoorden\": [\n \"\",\n \"\"\n ],\n \"publicatietekst\": \"\",\n \"verantwoordingsrelatie\": [\n \"\",\n \"\"\n ],\n \"selectielijstProcestype\": \"\",\n \"eindeGeldigheid\": \"\"\n}" + }, + "url": { + "raw": "{{baseUrl}}/zaaktypen/", + "host": [ + "{{baseUrl}}" + ], + "path": [ + "zaaktypen", + "" + ] + } + }, + "status": "OK", + "code": 200, + "_postman_previewlanguage": "json", + "header": [ + { + "key": "API-version", + "value": "", + "description": "Geeft een specifieke API-versie aan in de context van een specifieke aanroep. Voorbeeld: 1.2.1." + }, + { + "key": "Content-Type", + "value": "application/json" + } + ], + "cookie": [], + "body": "{\n \"identificatie\": \"\",\n \"omschrijving\": \"\",\n \"vertrouwelijkheidaanduiding\": \"\",\n \"doel\": \"\",\n \"aanleiding\": \"\",\n \"indicatieInternOfExtern\": \"\",\n \"handelingInitiator\": \"\",\n \"onderwerp\": \"\",\n \"handelingBehandelaar\": \"\",\n \"doorlooptijd\": \"\",\n \"opschortingEnAanhoudingMogelijk\": \"\",\n \"verlengingMogelijk\": \"\",\n \"publicatieIndicatie\": \"\",\n \"productenOfDiensten\": [\n \"\",\n \"\"\n ],\n \"referentieproces\": {\n \"naam\": \"\",\n \"link\": \"\"\n },\n \"catalogus\": \"\",\n \"besluittypen\": [\n \"\"\n ],\n \"gerelateerdeZaaktypen\": [\n {\n \"zaaktype\": \"\",\n \"aardRelatie\": \"\",\n \"toelichting\": \"\"\n },\n {\n \"zaaktype\": \"\",\n \"aardRelatie\": \"\",\n \"toelichting\": \"\"\n }\n ],\n \"beginGeldigheid\": \"\",\n \"versiedatum\": \"\",\n \"url\": \"\",\n \"omschrijvingGeneriek\": \"\",\n \"toelichting\": \"\",\n \"servicenorm\": \"\",\n \"verlengingstermijn\": \"\",\n \"trefwoorden\": [\n \"\",\n \"\"\n ],\n \"publicatietekst\": \"\",\n \"verantwoordingsrelatie\": [\n \"\",\n \"\"\n ],\n \"selectielijstProcestype\": \"\",\n \"statustypen\": [\n \"\"\n ],\n \"resultaattypen\": [\n \"\"\n ],\n \"eigenschappen\": [\n \"\"\n ],\n \"informatieobjecttypes\": [\n \"\"\n ],\n \"roltypen\": [\n \"\"\n ],\n \"eindeGeldigheid\": \"\",\n \"concept\": \"\"\n}" + }, + { + "name": "Not acceptable", + "originalRequest": { + "method": "PUT", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n \"identificatie\": \"\",\n \"omschrijving\": \"\",\n \"vertrouwelijkheidaanduiding\": \"\",\n \"doel\": \"\",\n \"aanleiding\": \"\",\n \"indicatieInternOfExtern\": \"\",\n \"handelingInitiator\": \"\",\n \"onderwerp\": \"\",\n \"handelingBehandelaar\": \"\",\n \"doorlooptijd\": \"\",\n \"opschortingEnAanhoudingMogelijk\": \"\",\n \"verlengingMogelijk\": \"\",\n \"publicatieIndicatie\": \"\",\n \"productenOfDiensten\": [\n \"\",\n \"\"\n ],\n \"referentieproces\": {\n \"naam\": \"\",\n \"link\": \"\"\n },\n \"catalogus\": \"\",\n \"besluittypen\": [\n \"\"\n ],\n \"gerelateerdeZaaktypen\": [\n {\n \"zaaktype\": \"\",\n \"aardRelatie\": \"\",\n \"toelichting\": \"\"\n },\n {\n \"zaaktype\": \"\",\n \"aardRelatie\": \"\",\n \"toelichting\": \"\"\n }\n ],\n \"beginGeldigheid\": \"\",\n \"versiedatum\": \"\",\n \"omschrijvingGeneriek\": \"\",\n \"toelichting\": \"\",\n \"servicenorm\": \"\",\n \"verlengingstermijn\": \"\",\n \"trefwoorden\": [\n \"\",\n \"\"\n ],\n \"publicatietekst\": \"\",\n \"verantwoordingsrelatie\": [\n \"\",\n \"\"\n ],\n \"selectielijstProcestype\": \"\",\n \"eindeGeldigheid\": \"\"\n}" + }, + "url": { + "raw": "{{baseUrl}}/zaaktypen/", + "host": [ + "{{baseUrl}}" + ], + "path": [ + "zaaktypen", + "" + ] + } + }, + "status": "Not Acceptable", + "code": 406, + "_postman_previewlanguage": "json", + "header": [ + { + "key": "API-version", + "value": "", + "description": "Geeft een specifieke API-versie aan in de context van een specifieke aanroep. Voorbeeld: 1.2.1." + }, + { + "key": "Content-Type", + "value": "application/json" + } + ], + "cookie": [], + "body": "{\n \"code\": \"\",\n \"title\": \"\",\n \"status\": \"\",\n \"detail\": \"\",\n \"instance\": \"\",\n \"type\": \"\"\n}" + }, + { + "name": "Internal server error", + "originalRequest": { + "method": "PUT", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n \"identificatie\": \"\",\n \"omschrijving\": \"\",\n \"vertrouwelijkheidaanduiding\": \"\",\n \"doel\": \"\",\n \"aanleiding\": \"\",\n \"indicatieInternOfExtern\": \"\",\n \"handelingInitiator\": \"\",\n \"onderwerp\": \"\",\n \"handelingBehandelaar\": \"\",\n \"doorlooptijd\": \"\",\n \"opschortingEnAanhoudingMogelijk\": \"\",\n \"verlengingMogelijk\": \"\",\n \"publicatieIndicatie\": \"\",\n \"productenOfDiensten\": [\n \"\",\n \"\"\n ],\n \"referentieproces\": {\n \"naam\": \"\",\n \"link\": \"\"\n },\n \"catalogus\": \"\",\n \"besluittypen\": [\n \"\"\n ],\n \"gerelateerdeZaaktypen\": [\n {\n \"zaaktype\": \"\",\n \"aardRelatie\": \"\",\n \"toelichting\": \"\"\n },\n {\n \"zaaktype\": \"\",\n \"aardRelatie\": \"\",\n \"toelichting\": \"\"\n }\n ],\n \"beginGeldigheid\": \"\",\n \"versiedatum\": \"\",\n \"omschrijvingGeneriek\": \"\",\n \"toelichting\": \"\",\n \"servicenorm\": \"\",\n \"verlengingstermijn\": \"\",\n \"trefwoorden\": [\n \"\",\n \"\"\n ],\n \"publicatietekst\": \"\",\n \"verantwoordingsrelatie\": [\n \"\",\n \"\"\n ],\n \"selectielijstProcestype\": \"\",\n \"eindeGeldigheid\": \"\"\n}" + }, + "url": { + "raw": "{{baseUrl}}/zaaktypen/", + "host": [ + "{{baseUrl}}" + ], + "path": [ + "zaaktypen", + "" + ] + } + }, + "status": "Internal Server Error", + "code": 500, + "_postman_previewlanguage": "json", + "header": [ + { + "key": "API-version", + "value": "", + "description": "Geeft een specifieke API-versie aan in de context van een specifieke aanroep. Voorbeeld: 1.2.1." + }, + { + "key": "Content-Type", + "value": "application/json" + } + ], + "cookie": [], + "body": "{\n \"code\": \"\",\n \"title\": \"\",\n \"status\": \"\",\n \"detail\": \"\",\n \"instance\": \"\",\n \"type\": \"\"\n}" + }, + { + "name": "Unauthorized", + "originalRequest": { + "method": "PUT", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n \"identificatie\": \"\",\n \"omschrijving\": \"\",\n \"vertrouwelijkheidaanduiding\": \"\",\n \"doel\": \"\",\n \"aanleiding\": \"\",\n \"indicatieInternOfExtern\": \"\",\n \"handelingInitiator\": \"\",\n \"onderwerp\": \"\",\n \"handelingBehandelaar\": \"\",\n \"doorlooptijd\": \"\",\n \"opschortingEnAanhoudingMogelijk\": \"\",\n \"verlengingMogelijk\": \"\",\n \"publicatieIndicatie\": \"\",\n \"productenOfDiensten\": [\n \"\",\n \"\"\n ],\n \"referentieproces\": {\n \"naam\": \"\",\n \"link\": \"\"\n },\n \"catalogus\": \"\",\n \"besluittypen\": [\n \"\"\n ],\n \"gerelateerdeZaaktypen\": [\n {\n \"zaaktype\": \"\",\n \"aardRelatie\": \"\",\n \"toelichting\": \"\"\n },\n {\n \"zaaktype\": \"\",\n \"aardRelatie\": \"\",\n \"toelichting\": \"\"\n }\n ],\n \"beginGeldigheid\": \"\",\n \"versiedatum\": \"\",\n \"omschrijvingGeneriek\": \"\",\n \"toelichting\": \"\",\n \"servicenorm\": \"\",\n \"verlengingstermijn\": \"\",\n \"trefwoorden\": [\n \"\",\n \"\"\n ],\n \"publicatietekst\": \"\",\n \"verantwoordingsrelatie\": [\n \"\",\n \"\"\n ],\n \"selectielijstProcestype\": \"\",\n \"eindeGeldigheid\": \"\"\n}" + }, + "url": { + "raw": "{{baseUrl}}/zaaktypen/", + "host": [ + "{{baseUrl}}" + ], + "path": [ + "zaaktypen", + "" + ] + } + }, + "status": "Unauthorized", + "code": 401, + "_postman_previewlanguage": "json", + "header": [ + { + "key": "API-version", + "value": "", + "description": "Geeft een specifieke API-versie aan in de context van een specifieke aanroep. Voorbeeld: 1.2.1." + }, + { + "key": "Content-Type", + "value": "application/json" + } + ], + "cookie": [], + "body": "{\n \"code\": \"\",\n \"title\": \"\",\n \"status\": \"\",\n \"detail\": \"\",\n \"instance\": \"\",\n \"type\": \"\"\n}" + }, + { + "name": "Not found", + "originalRequest": { + "method": "PUT", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n \"identificatie\": \"\",\n \"omschrijving\": \"\",\n \"vertrouwelijkheidaanduiding\": \"\",\n \"doel\": \"\",\n \"aanleiding\": \"\",\n \"indicatieInternOfExtern\": \"\",\n \"handelingInitiator\": \"\",\n \"onderwerp\": \"\",\n \"handelingBehandelaar\": \"\",\n \"doorlooptijd\": \"\",\n \"opschortingEnAanhoudingMogelijk\": \"\",\n \"verlengingMogelijk\": \"\",\n \"publicatieIndicatie\": \"\",\n \"productenOfDiensten\": [\n \"\",\n \"\"\n ],\n \"referentieproces\": {\n \"naam\": \"\",\n \"link\": \"\"\n },\n \"catalogus\": \"\",\n \"besluittypen\": [\n \"\"\n ],\n \"gerelateerdeZaaktypen\": [\n {\n \"zaaktype\": \"\",\n \"aardRelatie\": \"\",\n \"toelichting\": \"\"\n },\n {\n \"zaaktype\": \"\",\n \"aardRelatie\": \"\",\n \"toelichting\": \"\"\n }\n ],\n \"beginGeldigheid\": \"\",\n \"versiedatum\": \"\",\n \"omschrijvingGeneriek\": \"\",\n \"toelichting\": \"\",\n \"servicenorm\": \"\",\n \"verlengingstermijn\": \"\",\n \"trefwoorden\": [\n \"\",\n \"\"\n ],\n \"publicatietekst\": \"\",\n \"verantwoordingsrelatie\": [\n \"\",\n \"\"\n ],\n \"selectielijstProcestype\": \"\",\n \"eindeGeldigheid\": \"\"\n}" + }, + "url": { + "raw": "{{baseUrl}}/zaaktypen/", + "host": [ + "{{baseUrl}}" + ], + "path": [ + "zaaktypen", + "" + ] + } + }, + "status": "Not Found", + "code": 404, + "_postman_previewlanguage": "json", + "header": [ + { + "key": "API-version", + "value": "", + "description": "Geeft een specifieke API-versie aan in de context van een specifieke aanroep. Voorbeeld: 1.2.1." + }, + { + "key": "Content-Type", + "value": "application/json" + } + ], + "cookie": [], + "body": "{\n \"code\": \"\",\n \"title\": \"\",\n \"status\": \"\",\n \"detail\": \"\",\n \"instance\": \"\",\n \"type\": \"\"\n}" + }, + { + "name": "Bad request", + "originalRequest": { + "method": "PUT", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n \"identificatie\": \"\",\n \"omschrijving\": \"\",\n \"vertrouwelijkheidaanduiding\": \"\",\n \"doel\": \"\",\n \"aanleiding\": \"\",\n \"indicatieInternOfExtern\": \"\",\n \"handelingInitiator\": \"\",\n \"onderwerp\": \"\",\n \"handelingBehandelaar\": \"\",\n \"doorlooptijd\": \"\",\n \"opschortingEnAanhoudingMogelijk\": \"\",\n \"verlengingMogelijk\": \"\",\n \"publicatieIndicatie\": \"\",\n \"productenOfDiensten\": [\n \"\",\n \"\"\n ],\n \"referentieproces\": {\n \"naam\": \"\",\n \"link\": \"\"\n },\n \"catalogus\": \"\",\n \"besluittypen\": [\n \"\"\n ],\n \"gerelateerdeZaaktypen\": [\n {\n \"zaaktype\": \"\",\n \"aardRelatie\": \"\",\n \"toelichting\": \"\"\n },\n {\n \"zaaktype\": \"\",\n \"aardRelatie\": \"\",\n \"toelichting\": \"\"\n }\n ],\n \"beginGeldigheid\": \"\",\n \"versiedatum\": \"\",\n \"omschrijvingGeneriek\": \"\",\n \"toelichting\": \"\",\n \"servicenorm\": \"\",\n \"verlengingstermijn\": \"\",\n \"trefwoorden\": [\n \"\",\n \"\"\n ],\n \"publicatietekst\": \"\",\n \"verantwoordingsrelatie\": [\n \"\",\n \"\"\n ],\n \"selectielijstProcestype\": \"\",\n \"eindeGeldigheid\": \"\"\n}" + }, + "url": { + "raw": "{{baseUrl}}/zaaktypen/", + "host": [ + "{{baseUrl}}" + ], + "path": [ + "zaaktypen", + "" + ] + } + }, + "status": "Bad Request", + "code": 400, + "_postman_previewlanguage": "json", + "header": [ + { + "key": "API-version", + "value": "", + "description": "Geeft een specifieke API-versie aan in de context van een specifieke aanroep. Voorbeeld: 1.2.1." + }, + { + "key": "Content-Type", + "value": "application/json" + } + ], + "cookie": [], + "body": "{\n \"code\": \"\",\n \"title\": \"\",\n \"status\": \"\",\n \"detail\": \"\",\n \"instance\": \"\",\n \"invalidParams\": [\n {\n \"name\": \"\",\n \"code\": \"\",\n \"reason\": \"\"\n },\n {\n \"name\": \"\",\n \"code\": \"\",\n \"reason\": \"\"\n }\n ],\n \"type\": \"\"\n}" + }, + { + "name": "Unsupported media type", + "originalRequest": { + "method": "PUT", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n \"identificatie\": \"\",\n \"omschrijving\": \"\",\n \"vertrouwelijkheidaanduiding\": \"\",\n \"doel\": \"\",\n \"aanleiding\": \"\",\n \"indicatieInternOfExtern\": \"\",\n \"handelingInitiator\": \"\",\n \"onderwerp\": \"\",\n \"handelingBehandelaar\": \"\",\n \"doorlooptijd\": \"\",\n \"opschortingEnAanhoudingMogelijk\": \"\",\n \"verlengingMogelijk\": \"\",\n \"publicatieIndicatie\": \"\",\n \"productenOfDiensten\": [\n \"\",\n \"\"\n ],\n \"referentieproces\": {\n \"naam\": \"\",\n \"link\": \"\"\n },\n \"catalogus\": \"\",\n \"besluittypen\": [\n \"\"\n ],\n \"gerelateerdeZaaktypen\": [\n {\n \"zaaktype\": \"\",\n \"aardRelatie\": \"\",\n \"toelichting\": \"\"\n },\n {\n \"zaaktype\": \"\",\n \"aardRelatie\": \"\",\n \"toelichting\": \"\"\n }\n ],\n \"beginGeldigheid\": \"\",\n \"versiedatum\": \"\",\n \"omschrijvingGeneriek\": \"\",\n \"toelichting\": \"\",\n \"servicenorm\": \"\",\n \"verlengingstermijn\": \"\",\n \"trefwoorden\": [\n \"\",\n \"\"\n ],\n \"publicatietekst\": \"\",\n \"verantwoordingsrelatie\": [\n \"\",\n \"\"\n ],\n \"selectielijstProcestype\": \"\",\n \"eindeGeldigheid\": \"\"\n}" + }, + "url": { + "raw": "{{baseUrl}}/zaaktypen/", + "host": [ + "{{baseUrl}}" + ], + "path": [ + "zaaktypen", + "" + ] + } + }, + "status": "Unsupported Media Type", + "code": 415, + "_postman_previewlanguage": "json", + "header": [ + { + "key": "API-version", + "value": "", + "description": "Geeft een specifieke API-versie aan in de context van een specifieke aanroep. Voorbeeld: 1.2.1." + }, + { + "key": "Content-Type", + "value": "application/json" + } + ], + "cookie": [], + "body": "{\n \"code\": \"\",\n \"title\": \"\",\n \"status\": \"\",\n \"detail\": \"\",\n \"instance\": \"\",\n \"type\": \"\"\n}" + }, + { + "name": "Conflict", + "originalRequest": { + "method": "PUT", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n \"identificatie\": \"\",\n \"omschrijving\": \"\",\n \"vertrouwelijkheidaanduiding\": \"\",\n \"doel\": \"\",\n \"aanleiding\": \"\",\n \"indicatieInternOfExtern\": \"\",\n \"handelingInitiator\": \"\",\n \"onderwerp\": \"\",\n \"handelingBehandelaar\": \"\",\n \"doorlooptijd\": \"\",\n \"opschortingEnAanhoudingMogelijk\": \"\",\n \"verlengingMogelijk\": \"\",\n \"publicatieIndicatie\": \"\",\n \"productenOfDiensten\": [\n \"\",\n \"\"\n ],\n \"referentieproces\": {\n \"naam\": \"\",\n \"link\": \"\"\n },\n \"catalogus\": \"\",\n \"besluittypen\": [\n \"\"\n ],\n \"gerelateerdeZaaktypen\": [\n {\n \"zaaktype\": \"\",\n \"aardRelatie\": \"\",\n \"toelichting\": \"\"\n },\n {\n \"zaaktype\": \"\",\n \"aardRelatie\": \"\",\n \"toelichting\": \"\"\n }\n ],\n \"beginGeldigheid\": \"\",\n \"versiedatum\": \"\",\n \"omschrijvingGeneriek\": \"\",\n \"toelichting\": \"\",\n \"servicenorm\": \"\",\n \"verlengingstermijn\": \"\",\n \"trefwoorden\": [\n \"\",\n \"\"\n ],\n \"publicatietekst\": \"\",\n \"verantwoordingsrelatie\": [\n \"\",\n \"\"\n ],\n \"selectielijstProcestype\": \"\",\n \"eindeGeldigheid\": \"\"\n}" + }, + "url": { + "raw": "{{baseUrl}}/zaaktypen/", + "host": [ + "{{baseUrl}}" + ], + "path": [ + "zaaktypen", + "" + ] + } + }, + "status": "Conflict", + "code": 409, + "_postman_previewlanguage": "json", + "header": [ + { + "key": "API-version", + "value": "", + "description": "Geeft een specifieke API-versie aan in de context van een specifieke aanroep. Voorbeeld: 1.2.1." + }, + { + "key": "Content-Type", + "value": "application/json" + } + ], + "cookie": [], + "body": "{\n \"code\": \"\",\n \"title\": \"\",\n \"status\": \"\",\n \"detail\": \"\",\n \"instance\": \"\",\n \"type\": \"\"\n}" + }, + { + "name": "Too many requests", + "originalRequest": { + "method": "PUT", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n \"identificatie\": \"\",\n \"omschrijving\": \"\",\n \"vertrouwelijkheidaanduiding\": \"\",\n \"doel\": \"\",\n \"aanleiding\": \"\",\n \"indicatieInternOfExtern\": \"\",\n \"handelingInitiator\": \"\",\n \"onderwerp\": \"\",\n \"handelingBehandelaar\": \"\",\n \"doorlooptijd\": \"\",\n \"opschortingEnAanhoudingMogelijk\": \"\",\n \"verlengingMogelijk\": \"\",\n \"publicatieIndicatie\": \"\",\n \"productenOfDiensten\": [\n \"\",\n \"\"\n ],\n \"referentieproces\": {\n \"naam\": \"\",\n \"link\": \"\"\n },\n \"catalogus\": \"\",\n \"besluittypen\": [\n \"\"\n ],\n \"gerelateerdeZaaktypen\": [\n {\n \"zaaktype\": \"\",\n \"aardRelatie\": \"\",\n \"toelichting\": \"\"\n },\n {\n \"zaaktype\": \"\",\n \"aardRelatie\": \"\",\n \"toelichting\": \"\"\n }\n ],\n \"beginGeldigheid\": \"\",\n \"versiedatum\": \"\",\n \"omschrijvingGeneriek\": \"\",\n \"toelichting\": \"\",\n \"servicenorm\": \"\",\n \"verlengingstermijn\": \"\",\n \"trefwoorden\": [\n \"\",\n \"\"\n ],\n \"publicatietekst\": \"\",\n \"verantwoordingsrelatie\": [\n \"\",\n \"\"\n ],\n \"selectielijstProcestype\": \"\",\n \"eindeGeldigheid\": \"\"\n}" + }, + "url": { + "raw": "{{baseUrl}}/zaaktypen/", + "host": [ + "{{baseUrl}}" + ], + "path": [ + "zaaktypen", + "" + ] + } + }, + "status": "Too Many Requests", + "code": 429, + "_postman_previewlanguage": "json", + "header": [ + { + "key": "API-version", + "value": "", + "description": "Geeft een specifieke API-versie aan in de context van een specifieke aanroep. Voorbeeld: 1.2.1." + }, + { + "key": "Content-Type", + "value": "application/json" + } + ], + "cookie": [], + "body": "{\n \"code\": \"\",\n \"title\": \"\",\n \"status\": \"\",\n \"detail\": \"\",\n \"instance\": \"\",\n \"type\": \"\"\n}" + } + ] + }, + { + "name": "Werk een ZAAKTYPE deels bij.", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "pm.test(\"Werk een ZAAKTYPE deels bij geeft 200\", function() {", + " pm.response.to.have.status(200);", + "});", + "", + "pm.test(\"Werk een ZAAKTYPE deels bij past attributen aan\", function() {", + " pm.expect(pm.response.json().omschrijving).to.be.equal(\"aangepast2\");", + "});" + ], + "type": "text/javascript" + } + } + ], + "request": { + "method": "PATCH", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n \"omschrijving\": \"aangepast2\"\n}" + }, + "url": { + "raw": "{{created_zaaktype_url}}", + "host": [ + "{{created_zaaktype_url}}" + ] + }, + "description": "Werk een ZAAKTYPE deels bij. Dit kan alleen als het een concept betreft." + }, + "response": [ + { + "name": "Not acceptable", + "originalRequest": { + "method": "PATCH", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n \"identificatie\": \"\",\n \"omschrijving\": \"\",\n \"vertrouwelijkheidaanduiding\": \"\",\n \"doel\": \"\",\n \"aanleiding\": \"\",\n \"indicatieInternOfExtern\": \"\",\n \"handelingInitiator\": \"\",\n \"onderwerp\": \"\",\n \"handelingBehandelaar\": \"\",\n \"doorlooptijd\": \"\",\n \"opschortingEnAanhoudingMogelijk\": \"\",\n \"verlengingMogelijk\": \"\",\n \"publicatieIndicatie\": \"\",\n \"productenOfDiensten\": [\n \"\",\n \"\"\n ],\n \"referentieproces\": {\n \"naam\": \"\",\n \"link\": \"\"\n },\n \"catalogus\": \"\",\n \"besluittypen\": [\n \"\"\n ],\n \"gerelateerdeZaaktypen\": [\n {\n \"zaaktype\": \"\",\n \"aardRelatie\": \"\",\n \"toelichting\": \"\"\n },\n {\n \"zaaktype\": \"\",\n \"aardRelatie\": \"\",\n \"toelichting\": \"\"\n }\n ],\n \"beginGeldigheid\": \"\",\n \"versiedatum\": \"\",\n \"omschrijvingGeneriek\": \"\",\n \"toelichting\": \"\",\n \"servicenorm\": \"\",\n \"verlengingstermijn\": \"\",\n \"trefwoorden\": [\n \"\",\n \"\"\n ],\n \"publicatietekst\": \"\",\n \"verantwoordingsrelatie\": [\n \"\",\n \"\"\n ],\n \"selectielijstProcestype\": \"\",\n \"eindeGeldigheid\": \"\"\n}" + }, + "url": { + "raw": "{{baseUrl}}/zaaktypen/", + "host": [ + "{{baseUrl}}" + ], + "path": [ + "zaaktypen", + "" + ] + } + }, + "status": "Not Acceptable", + "code": 406, + "_postman_previewlanguage": "json", + "header": [ + { + "key": "API-version", + "value": "", + "description": "Geeft een specifieke API-versie aan in de context van een specifieke aanroep. Voorbeeld: 1.2.1." + }, + { + "key": "Content-Type", + "value": "application/json" + } + ], + "cookie": [], + "body": "{\n \"code\": \"\",\n \"title\": \"\",\n \"status\": \"\",\n \"detail\": \"\",\n \"instance\": \"\",\n \"type\": \"\"\n}" + }, + { + "name": "OK", + "originalRequest": { + "method": "PATCH", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n \"identificatie\": \"\",\n \"omschrijving\": \"\",\n \"vertrouwelijkheidaanduiding\": \"\",\n \"doel\": \"\",\n \"aanleiding\": \"\",\n \"indicatieInternOfExtern\": \"\",\n \"handelingInitiator\": \"\",\n \"onderwerp\": \"\",\n \"handelingBehandelaar\": \"\",\n \"doorlooptijd\": \"\",\n \"opschortingEnAanhoudingMogelijk\": \"\",\n \"verlengingMogelijk\": \"\",\n \"publicatieIndicatie\": \"\",\n \"productenOfDiensten\": [\n \"\",\n \"\"\n ],\n \"referentieproces\": {\n \"naam\": \"\",\n \"link\": \"\"\n },\n \"catalogus\": \"\",\n \"besluittypen\": [\n \"\"\n ],\n \"gerelateerdeZaaktypen\": [\n {\n \"zaaktype\": \"\",\n \"aardRelatie\": \"\",\n \"toelichting\": \"\"\n },\n {\n \"zaaktype\": \"\",\n \"aardRelatie\": \"\",\n \"toelichting\": \"\"\n }\n ],\n \"beginGeldigheid\": \"\",\n \"versiedatum\": \"\",\n \"omschrijvingGeneriek\": \"\",\n \"toelichting\": \"\",\n \"servicenorm\": \"\",\n \"verlengingstermijn\": \"\",\n \"trefwoorden\": [\n \"\",\n \"\"\n ],\n \"publicatietekst\": \"\",\n \"verantwoordingsrelatie\": [\n \"\",\n \"\"\n ],\n \"selectielijstProcestype\": \"\",\n \"eindeGeldigheid\": \"\"\n}" + }, + "url": { + "raw": "{{baseUrl}}/zaaktypen/", + "host": [ + "{{baseUrl}}" + ], + "path": [ + "zaaktypen", + "" + ] + } + }, + "status": "OK", + "code": 200, + "_postman_previewlanguage": "json", + "header": [ + { + "key": "API-version", + "value": "", + "description": "Geeft een specifieke API-versie aan in de context van een specifieke aanroep. Voorbeeld: 1.2.1." + }, + { + "key": "Content-Type", + "value": "application/json" + } + ], + "cookie": [], + "body": "{\n \"identificatie\": \"\",\n \"omschrijving\": \"\",\n \"vertrouwelijkheidaanduiding\": \"\",\n \"doel\": \"\",\n \"aanleiding\": \"\",\n \"indicatieInternOfExtern\": \"\",\n \"handelingInitiator\": \"\",\n \"onderwerp\": \"\",\n \"handelingBehandelaar\": \"\",\n \"doorlooptijd\": \"\",\n \"opschortingEnAanhoudingMogelijk\": \"\",\n \"verlengingMogelijk\": \"\",\n \"publicatieIndicatie\": \"\",\n \"productenOfDiensten\": [\n \"\",\n \"\"\n ],\n \"referentieproces\": {\n \"naam\": \"\",\n \"link\": \"\"\n },\n \"catalogus\": \"\",\n \"besluittypen\": [\n \"\"\n ],\n \"gerelateerdeZaaktypen\": [\n {\n \"zaaktype\": \"\",\n \"aardRelatie\": \"\",\n \"toelichting\": \"\"\n },\n {\n \"zaaktype\": \"\",\n \"aardRelatie\": \"\",\n \"toelichting\": \"\"\n }\n ],\n \"beginGeldigheid\": \"\",\n \"versiedatum\": \"\",\n \"url\": \"\",\n \"omschrijvingGeneriek\": \"\",\n \"toelichting\": \"\",\n \"servicenorm\": \"\",\n \"verlengingstermijn\": \"\",\n \"trefwoorden\": [\n \"\",\n \"\"\n ],\n \"publicatietekst\": \"\",\n \"verantwoordingsrelatie\": [\n \"\",\n \"\"\n ],\n \"selectielijstProcestype\": \"\",\n \"statustypen\": [\n \"\"\n ],\n \"resultaattypen\": [\n \"\"\n ],\n \"eigenschappen\": [\n \"\"\n ],\n \"informatieobjecttypes\": [\n \"\"\n ],\n \"roltypen\": [\n \"\"\n ],\n \"eindeGeldigheid\": \"\",\n \"concept\": \"\"\n}" + }, + { + "name": "Unsupported media type", + "originalRequest": { + "method": "PATCH", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n \"identificatie\": \"\",\n \"omschrijving\": \"\",\n \"vertrouwelijkheidaanduiding\": \"\",\n \"doel\": \"\",\n \"aanleiding\": \"\",\n \"indicatieInternOfExtern\": \"\",\n \"handelingInitiator\": \"\",\n \"onderwerp\": \"\",\n \"handelingBehandelaar\": \"\",\n \"doorlooptijd\": \"\",\n \"opschortingEnAanhoudingMogelijk\": \"\",\n \"verlengingMogelijk\": \"\",\n \"publicatieIndicatie\": \"\",\n \"productenOfDiensten\": [\n \"\",\n \"\"\n ],\n \"referentieproces\": {\n \"naam\": \"\",\n \"link\": \"\"\n },\n \"catalogus\": \"\",\n \"besluittypen\": [\n \"\"\n ],\n \"gerelateerdeZaaktypen\": [\n {\n \"zaaktype\": \"\",\n \"aardRelatie\": \"\",\n \"toelichting\": \"\"\n },\n {\n \"zaaktype\": \"\",\n \"aardRelatie\": \"\",\n \"toelichting\": \"\"\n }\n ],\n \"beginGeldigheid\": \"\",\n \"versiedatum\": \"\",\n \"omschrijvingGeneriek\": \"\",\n \"toelichting\": \"\",\n \"servicenorm\": \"\",\n \"verlengingstermijn\": \"\",\n \"trefwoorden\": [\n \"\",\n \"\"\n ],\n \"publicatietekst\": \"\",\n \"verantwoordingsrelatie\": [\n \"\",\n \"\"\n ],\n \"selectielijstProcestype\": \"\",\n \"eindeGeldigheid\": \"\"\n}" + }, + "url": { + "raw": "{{baseUrl}}/zaaktypen/", + "host": [ + "{{baseUrl}}" + ], + "path": [ + "zaaktypen", + "" + ] + } + }, + "status": "Unsupported Media Type", + "code": 415, + "_postman_previewlanguage": "json", + "header": [ + { + "key": "API-version", + "value": "", + "description": "Geeft een specifieke API-versie aan in de context van een specifieke aanroep. Voorbeeld: 1.2.1." + }, + { + "key": "Content-Type", + "value": "application/json" + } + ], + "cookie": [], + "body": "{\n \"code\": \"\",\n \"title\": \"\",\n \"status\": \"\",\n \"detail\": \"\",\n \"instance\": \"\",\n \"type\": \"\"\n}" + }, + { + "name": "Forbidden", + "originalRequest": { + "method": "PATCH", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n \"identificatie\": \"\",\n \"omschrijving\": \"\",\n \"vertrouwelijkheidaanduiding\": \"\",\n \"doel\": \"\",\n \"aanleiding\": \"\",\n \"indicatieInternOfExtern\": \"\",\n \"handelingInitiator\": \"\",\n \"onderwerp\": \"\",\n \"handelingBehandelaar\": \"\",\n \"doorlooptijd\": \"\",\n \"opschortingEnAanhoudingMogelijk\": \"\",\n \"verlengingMogelijk\": \"\",\n \"publicatieIndicatie\": \"\",\n \"productenOfDiensten\": [\n \"\",\n \"\"\n ],\n \"referentieproces\": {\n \"naam\": \"\",\n \"link\": \"\"\n },\n \"catalogus\": \"\",\n \"besluittypen\": [\n \"\"\n ],\n \"gerelateerdeZaaktypen\": [\n {\n \"zaaktype\": \"\",\n \"aardRelatie\": \"\",\n \"toelichting\": \"\"\n },\n {\n \"zaaktype\": \"\",\n \"aardRelatie\": \"\",\n \"toelichting\": \"\"\n }\n ],\n \"beginGeldigheid\": \"\",\n \"versiedatum\": \"\",\n \"omschrijvingGeneriek\": \"\",\n \"toelichting\": \"\",\n \"servicenorm\": \"\",\n \"verlengingstermijn\": \"\",\n \"trefwoorden\": [\n \"\",\n \"\"\n ],\n \"publicatietekst\": \"\",\n \"verantwoordingsrelatie\": [\n \"\",\n \"\"\n ],\n \"selectielijstProcestype\": \"\",\n \"eindeGeldigheid\": \"\"\n}" + }, + "url": { + "raw": "{{baseUrl}}/zaaktypen/", + "host": [ + "{{baseUrl}}" + ], + "path": [ + "zaaktypen", + "" + ] + } + }, + "status": "Forbidden", + "code": 403, + "_postman_previewlanguage": "json", + "header": [ + { + "key": "API-version", + "value": "", + "description": "Geeft een specifieke API-versie aan in de context van een specifieke aanroep. Voorbeeld: 1.2.1." + }, + { + "key": "Content-Type", + "value": "application/json" + } + ], + "cookie": [], + "body": "{\n \"code\": \"\",\n \"title\": \"\",\n \"status\": \"\",\n \"detail\": \"\",\n \"instance\": \"\",\n \"type\": \"\"\n}" + }, + { + "name": "Internal server error", + "originalRequest": { + "method": "PATCH", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n \"identificatie\": \"\",\n \"omschrijving\": \"\",\n \"vertrouwelijkheidaanduiding\": \"\",\n \"doel\": \"\",\n \"aanleiding\": \"\",\n \"indicatieInternOfExtern\": \"\",\n \"handelingInitiator\": \"\",\n \"onderwerp\": \"\",\n \"handelingBehandelaar\": \"\",\n \"doorlooptijd\": \"\",\n \"opschortingEnAanhoudingMogelijk\": \"\",\n \"verlengingMogelijk\": \"\",\n \"publicatieIndicatie\": \"\",\n \"productenOfDiensten\": [\n \"\",\n \"\"\n ],\n \"referentieproces\": {\n \"naam\": \"\",\n \"link\": \"\"\n },\n \"catalogus\": \"\",\n \"besluittypen\": [\n \"\"\n ],\n \"gerelateerdeZaaktypen\": [\n {\n \"zaaktype\": \"\",\n \"aardRelatie\": \"\",\n \"toelichting\": \"\"\n },\n {\n \"zaaktype\": \"\",\n \"aardRelatie\": \"\",\n \"toelichting\": \"\"\n }\n ],\n \"beginGeldigheid\": \"\",\n \"versiedatum\": \"\",\n \"omschrijvingGeneriek\": \"\",\n \"toelichting\": \"\",\n \"servicenorm\": \"\",\n \"verlengingstermijn\": \"\",\n \"trefwoorden\": [\n \"\",\n \"\"\n ],\n \"publicatietekst\": \"\",\n \"verantwoordingsrelatie\": [\n \"\",\n \"\"\n ],\n \"selectielijstProcestype\": \"\",\n \"eindeGeldigheid\": \"\"\n}" + }, + "url": { + "raw": "{{baseUrl}}/zaaktypen/", + "host": [ + "{{baseUrl}}" + ], + "path": [ + "zaaktypen", + "" + ] + } + }, + "status": "Internal Server Error", + "code": 500, + "_postman_previewlanguage": "json", + "header": [ + { + "key": "API-version", + "value": "", + "description": "Geeft een specifieke API-versie aan in de context van een specifieke aanroep. Voorbeeld: 1.2.1." + }, + { + "key": "Content-Type", + "value": "application/json" + } + ], + "cookie": [], + "body": "{\n \"code\": \"\",\n \"title\": \"\",\n \"status\": \"\",\n \"detail\": \"\",\n \"instance\": \"\",\n \"type\": \"\"\n}" + }, + { + "name": "Gone", + "originalRequest": { + "method": "PATCH", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n \"identificatie\": \"\",\n \"omschrijving\": \"\",\n \"vertrouwelijkheidaanduiding\": \"\",\n \"doel\": \"\",\n \"aanleiding\": \"\",\n \"indicatieInternOfExtern\": \"\",\n \"handelingInitiator\": \"\",\n \"onderwerp\": \"\",\n \"handelingBehandelaar\": \"\",\n \"doorlooptijd\": \"\",\n \"opschortingEnAanhoudingMogelijk\": \"\",\n \"verlengingMogelijk\": \"\",\n \"publicatieIndicatie\": \"\",\n \"productenOfDiensten\": [\n \"\",\n \"\"\n ],\n \"referentieproces\": {\n \"naam\": \"\",\n \"link\": \"\"\n },\n \"catalogus\": \"\",\n \"besluittypen\": [\n \"\"\n ],\n \"gerelateerdeZaaktypen\": [\n {\n \"zaaktype\": \"\",\n \"aardRelatie\": \"\",\n \"toelichting\": \"\"\n },\n {\n \"zaaktype\": \"\",\n \"aardRelatie\": \"\",\n \"toelichting\": \"\"\n }\n ],\n \"beginGeldigheid\": \"\",\n \"versiedatum\": \"\",\n \"omschrijvingGeneriek\": \"\",\n \"toelichting\": \"\",\n \"servicenorm\": \"\",\n \"verlengingstermijn\": \"\",\n \"trefwoorden\": [\n \"\",\n \"\"\n ],\n \"publicatietekst\": \"\",\n \"verantwoordingsrelatie\": [\n \"\",\n \"\"\n ],\n \"selectielijstProcestype\": \"\",\n \"eindeGeldigheid\": \"\"\n}" + }, + "url": { + "raw": "{{baseUrl}}/zaaktypen/", + "host": [ + "{{baseUrl}}" + ], + "path": [ + "zaaktypen", + "" + ] + } + }, + "status": "Gone", + "code": 410, + "_postman_previewlanguage": "json", + "header": [ + { + "key": "API-version", + "value": "", + "description": "Geeft een specifieke API-versie aan in de context van een specifieke aanroep. Voorbeeld: 1.2.1." + }, + { + "key": "Content-Type", + "value": "application/json" + } + ], + "cookie": [], + "body": "{\n \"code\": \"\",\n \"title\": \"\",\n \"status\": \"\",\n \"detail\": \"\",\n \"instance\": \"\",\n \"type\": \"\"\n}" + }, + { + "name": "Too many requests", + "originalRequest": { + "method": "PATCH", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n \"identificatie\": \"\",\n \"omschrijving\": \"\",\n \"vertrouwelijkheidaanduiding\": \"\",\n \"doel\": \"\",\n \"aanleiding\": \"\",\n \"indicatieInternOfExtern\": \"\",\n \"handelingInitiator\": \"\",\n \"onderwerp\": \"\",\n \"handelingBehandelaar\": \"\",\n \"doorlooptijd\": \"\",\n \"opschortingEnAanhoudingMogelijk\": \"\",\n \"verlengingMogelijk\": \"\",\n \"publicatieIndicatie\": \"\",\n \"productenOfDiensten\": [\n \"\",\n \"\"\n ],\n \"referentieproces\": {\n \"naam\": \"\",\n \"link\": \"\"\n },\n \"catalogus\": \"\",\n \"besluittypen\": [\n \"\"\n ],\n \"gerelateerdeZaaktypen\": [\n {\n \"zaaktype\": \"\",\n \"aardRelatie\": \"\",\n \"toelichting\": \"\"\n },\n {\n \"zaaktype\": \"\",\n \"aardRelatie\": \"\",\n \"toelichting\": \"\"\n }\n ],\n \"beginGeldigheid\": \"\",\n \"versiedatum\": \"\",\n \"omschrijvingGeneriek\": \"\",\n \"toelichting\": \"\",\n \"servicenorm\": \"\",\n \"verlengingstermijn\": \"\",\n \"trefwoorden\": [\n \"\",\n \"\"\n ],\n \"publicatietekst\": \"\",\n \"verantwoordingsrelatie\": [\n \"\",\n \"\"\n ],\n \"selectielijstProcestype\": \"\",\n \"eindeGeldigheid\": \"\"\n}" + }, + "url": { + "raw": "{{baseUrl}}/zaaktypen/", + "host": [ + "{{baseUrl}}" + ], + "path": [ + "zaaktypen", + "" + ] + } + }, + "status": "Too Many Requests", + "code": 429, + "_postman_previewlanguage": "json", + "header": [ + { + "key": "API-version", + "value": "", + "description": "Geeft een specifieke API-versie aan in de context van een specifieke aanroep. Voorbeeld: 1.2.1." + }, + { + "key": "Content-Type", + "value": "application/json" + } + ], + "cookie": [], + "body": "{\n \"code\": \"\",\n \"title\": \"\",\n \"status\": \"\",\n \"detail\": \"\",\n \"instance\": \"\",\n \"type\": \"\"\n}" + }, + { + "name": "Not found", + "originalRequest": { + "method": "PATCH", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n \"identificatie\": \"\",\n \"omschrijving\": \"\",\n \"vertrouwelijkheidaanduiding\": \"\",\n \"doel\": \"\",\n \"aanleiding\": \"\",\n \"indicatieInternOfExtern\": \"\",\n \"handelingInitiator\": \"\",\n \"onderwerp\": \"\",\n \"handelingBehandelaar\": \"\",\n \"doorlooptijd\": \"\",\n \"opschortingEnAanhoudingMogelijk\": \"\",\n \"verlengingMogelijk\": \"\",\n \"publicatieIndicatie\": \"\",\n \"productenOfDiensten\": [\n \"\",\n \"\"\n ],\n \"referentieproces\": {\n \"naam\": \"\",\n \"link\": \"\"\n },\n \"catalogus\": \"\",\n \"besluittypen\": [\n \"\"\n ],\n \"gerelateerdeZaaktypen\": [\n {\n \"zaaktype\": \"\",\n \"aardRelatie\": \"\",\n \"toelichting\": \"\"\n },\n {\n \"zaaktype\": \"\",\n \"aardRelatie\": \"\",\n \"toelichting\": \"\"\n }\n ],\n \"beginGeldigheid\": \"\",\n \"versiedatum\": \"\",\n \"omschrijvingGeneriek\": \"\",\n \"toelichting\": \"\",\n \"servicenorm\": \"\",\n \"verlengingstermijn\": \"\",\n \"trefwoorden\": [\n \"\",\n \"\"\n ],\n \"publicatietekst\": \"\",\n \"verantwoordingsrelatie\": [\n \"\",\n \"\"\n ],\n \"selectielijstProcestype\": \"\",\n \"eindeGeldigheid\": \"\"\n}" + }, + "url": { + "raw": "{{baseUrl}}/zaaktypen/", + "host": [ + "{{baseUrl}}" + ], + "path": [ + "zaaktypen", + "" + ] + } + }, + "status": "Not Found", + "code": 404, + "_postman_previewlanguage": "json", + "header": [ + { + "key": "API-version", + "value": "", + "description": "Geeft een specifieke API-versie aan in de context van een specifieke aanroep. Voorbeeld: 1.2.1." + }, + { + "key": "Content-Type", + "value": "application/json" + } + ], + "cookie": [], + "body": "{\n \"code\": \"\",\n \"title\": \"\",\n \"status\": \"\",\n \"detail\": \"\",\n \"instance\": \"\",\n \"type\": \"\"\n}" + }, + { + "name": "Unauthorized", + "originalRequest": { + "method": "PATCH", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n \"identificatie\": \"\",\n \"omschrijving\": \"\",\n \"vertrouwelijkheidaanduiding\": \"\",\n \"doel\": \"\",\n \"aanleiding\": \"\",\n \"indicatieInternOfExtern\": \"\",\n \"handelingInitiator\": \"\",\n \"onderwerp\": \"\",\n \"handelingBehandelaar\": \"\",\n \"doorlooptijd\": \"\",\n \"opschortingEnAanhoudingMogelijk\": \"\",\n \"verlengingMogelijk\": \"\",\n \"publicatieIndicatie\": \"\",\n \"productenOfDiensten\": [\n \"\",\n \"\"\n ],\n \"referentieproces\": {\n \"naam\": \"\",\n \"link\": \"\"\n },\n \"catalogus\": \"\",\n \"besluittypen\": [\n \"\"\n ],\n \"gerelateerdeZaaktypen\": [\n {\n \"zaaktype\": \"\",\n \"aardRelatie\": \"\",\n \"toelichting\": \"\"\n },\n {\n \"zaaktype\": \"\",\n \"aardRelatie\": \"\",\n \"toelichting\": \"\"\n }\n ],\n \"beginGeldigheid\": \"\",\n \"versiedatum\": \"\",\n \"omschrijvingGeneriek\": \"\",\n \"toelichting\": \"\",\n \"servicenorm\": \"\",\n \"verlengingstermijn\": \"\",\n \"trefwoorden\": [\n \"\",\n \"\"\n ],\n \"publicatietekst\": \"\",\n \"verantwoordingsrelatie\": [\n \"\",\n \"\"\n ],\n \"selectielijstProcestype\": \"\",\n \"eindeGeldigheid\": \"\"\n}" + }, + "url": { + "raw": "{{baseUrl}}/zaaktypen/", + "host": [ + "{{baseUrl}}" + ], + "path": [ + "zaaktypen", + "" + ] + } + }, + "status": "Unauthorized", + "code": 401, + "_postman_previewlanguage": "json", + "header": [ + { + "key": "API-version", + "value": "", + "description": "Geeft een specifieke API-versie aan in de context van een specifieke aanroep. Voorbeeld: 1.2.1." + }, + { + "key": "Content-Type", + "value": "application/json" + } + ], + "cookie": [], + "body": "{\n \"code\": \"\",\n \"title\": \"\",\n \"status\": \"\",\n \"detail\": \"\",\n \"instance\": \"\",\n \"type\": \"\"\n}" + }, + { + "name": "Bad request", + "originalRequest": { + "method": "PATCH", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n \"identificatie\": \"\",\n \"omschrijving\": \"\",\n \"vertrouwelijkheidaanduiding\": \"\",\n \"doel\": \"\",\n \"aanleiding\": \"\",\n \"indicatieInternOfExtern\": \"\",\n \"handelingInitiator\": \"\",\n \"onderwerp\": \"\",\n \"handelingBehandelaar\": \"\",\n \"doorlooptijd\": \"\",\n \"opschortingEnAanhoudingMogelijk\": \"\",\n \"verlengingMogelijk\": \"\",\n \"publicatieIndicatie\": \"\",\n \"productenOfDiensten\": [\n \"\",\n \"\"\n ],\n \"referentieproces\": {\n \"naam\": \"\",\n \"link\": \"\"\n },\n \"catalogus\": \"\",\n \"besluittypen\": [\n \"\"\n ],\n \"gerelateerdeZaaktypen\": [\n {\n \"zaaktype\": \"\",\n \"aardRelatie\": \"\",\n \"toelichting\": \"\"\n },\n {\n \"zaaktype\": \"\",\n \"aardRelatie\": \"\",\n \"toelichting\": \"\"\n }\n ],\n \"beginGeldigheid\": \"\",\n \"versiedatum\": \"\",\n \"omschrijvingGeneriek\": \"\",\n \"toelichting\": \"\",\n \"servicenorm\": \"\",\n \"verlengingstermijn\": \"\",\n \"trefwoorden\": [\n \"\",\n \"\"\n ],\n \"publicatietekst\": \"\",\n \"verantwoordingsrelatie\": [\n \"\",\n \"\"\n ],\n \"selectielijstProcestype\": \"\",\n \"eindeGeldigheid\": \"\"\n}" + }, + "url": { + "raw": "{{baseUrl}}/zaaktypen/", + "host": [ + "{{baseUrl}}" + ], + "path": [ + "zaaktypen", + "" + ] + } + }, + "status": "Bad Request", + "code": 400, + "_postman_previewlanguage": "json", + "header": [ + { + "key": "API-version", + "value": "", + "description": "Geeft een specifieke API-versie aan in de context van een specifieke aanroep. Voorbeeld: 1.2.1." + }, + { + "key": "Content-Type", + "value": "application/json" + } + ], + "cookie": [], + "body": "{\n \"code\": \"\",\n \"title\": \"\",\n \"status\": \"\",\n \"detail\": \"\",\n \"instance\": \"\",\n \"invalidParams\": [\n {\n \"name\": \"\",\n \"code\": \"\",\n \"reason\": \"\"\n },\n {\n \"name\": \"\",\n \"code\": \"\",\n \"reason\": \"\"\n }\n ],\n \"type\": \"\"\n}" + }, + { + "name": "Conflict", + "originalRequest": { + "method": "PATCH", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n \"identificatie\": \"\",\n \"omschrijving\": \"\",\n \"vertrouwelijkheidaanduiding\": \"\",\n \"doel\": \"\",\n \"aanleiding\": \"\",\n \"indicatieInternOfExtern\": \"\",\n \"handelingInitiator\": \"\",\n \"onderwerp\": \"\",\n \"handelingBehandelaar\": \"\",\n \"doorlooptijd\": \"\",\n \"opschortingEnAanhoudingMogelijk\": \"\",\n \"verlengingMogelijk\": \"\",\n \"publicatieIndicatie\": \"\",\n \"productenOfDiensten\": [\n \"\",\n \"\"\n ],\n \"referentieproces\": {\n \"naam\": \"\",\n \"link\": \"\"\n },\n \"catalogus\": \"\",\n \"besluittypen\": [\n \"\"\n ],\n \"gerelateerdeZaaktypen\": [\n {\n \"zaaktype\": \"\",\n \"aardRelatie\": \"\",\n \"toelichting\": \"\"\n },\n {\n \"zaaktype\": \"\",\n \"aardRelatie\": \"\",\n \"toelichting\": \"\"\n }\n ],\n \"beginGeldigheid\": \"\",\n \"versiedatum\": \"\",\n \"omschrijvingGeneriek\": \"\",\n \"toelichting\": \"\",\n \"servicenorm\": \"\",\n \"verlengingstermijn\": \"\",\n \"trefwoorden\": [\n \"\",\n \"\"\n ],\n \"publicatietekst\": \"\",\n \"verantwoordingsrelatie\": [\n \"\",\n \"\"\n ],\n \"selectielijstProcestype\": \"\",\n \"eindeGeldigheid\": \"\"\n}" + }, + "url": { + "raw": "{{baseUrl}}/zaaktypen/", + "host": [ + "{{baseUrl}}" + ], + "path": [ + "zaaktypen", + "" + ] + } + }, + "status": "Conflict", + "code": 409, + "_postman_previewlanguage": "json", + "header": [ + { + "key": "API-version", + "value": "", + "description": "Geeft een specifieke API-versie aan in de context van een specifieke aanroep. Voorbeeld: 1.2.1." + }, + { + "key": "Content-Type", + "value": "application/json" + } + ], + "cookie": [], + "body": "{\n \"code\": \"\",\n \"title\": \"\",\n \"status\": \"\",\n \"detail\": \"\",\n \"instance\": \"\",\n \"type\": \"\"\n}" + } + ] + }, + { + "name": "Opvragen en bewerken van ZAAKTYPEn nodig voor ZAKEN in de Zaken API.", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "pm.test(\"Publiceer een ZAAKTYPE aan geeft 200\", function() {", + " pm.response.to.have.status(201);", + "});", + "", + "pm.test(\"Publiceer een ZAAKTYPE zet concept op False\", function() {", + " pm.expect(pm.response.json().concept).to.be.equal(false);", + "});" + ], + "type": "text/javascript", + "packages": {} + } + } + ], + "request": { + "method": "POST", + "header": [ + { + "key": "Accept", + "value": "application/json" + }, + { + "key": "Content-Type", + "value": "application/json" + } + ], + "url": { + "raw": "{{created_zaaktype_url}}/publish", + "host": [ + "{{created_zaaktype_url}}" + ], + "path": [ + "publish" + ] + }, + "description": "Een ZAAKTYPE beschrijft het geheel van karakteristieke eigenschappen van\nzaken van eenzelfde soort." + }, + "response": [] + }, + { + "name": "Verwijder een ZAAKTYPE.", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "pm.test(\"Verwijder een ZAAKTYPE geeft 204\", function() {", + " pm.response.to.have.status(204);", + "});" + ], + "type": "text/javascript" + } + } + ], + "request": { + "method": "DELETE", + "header": [ + { + "key": "Accept", + "value": "application/json" + }, + { + "key": "Content-Type", + "value": "application/json" + } + ], + "url": { + "raw": "{{created_zaaktype_url}}", + "host": [ + "{{created_zaaktype_url}}" + ] + }, + "description": "Verwijder een ZAAKTYPE. Dit kan alleen als het een concept betreft." + }, + "response": [] + }, + { + "name": "Create concept Zaaktype", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "if(pm.response.code == 201) {", + " pm.globals.set(\"created_zaaktype_url\", pm.response.json().url);", + "}" + ], + "type": "text/javascript" + } + } + ], + "request": { + "method": "POST", + "header": [ + { + "key": "Accept", + "value": "application/json" + }, + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n\t\"identificatie\": \"1\",\n \"omschrijving\": \"zrc_tests_2\",\n \"vertrouwelijkheidaanduiding\": \"openbaar\",\n \"doel\": \"test doel\",\n \"aanleiding\": \"test aanleiding\",\n \"indicatieInternOfExtern\": \"extern\",\n \"handelingInitiator\": \"indienen\",\n \"onderwerp\": \"openbare ruimte\",\n \"handelingBehandelaar\": \"behandelen\",\n \"doorlooptijd\": \"P10D\",\n \"opschortingEnAanhoudingMogelijk\": false,\n \"verlengingMogelijk\": true,\n \"publicatieIndicatie\": false,\n \"productenOfDiensten\": [\n \"https://ref.tst.vng.cloud/standaard/\"\n ],\n \"selectielijstProcestype\": \"{{procestype_url}}\",\n \"referentieproces\": {\n \"naam\": \"test\",\n \"link\": \"\"\n },\n \"catalogus\": \"{{catalogus_url}}\",\n \"statustypen\": [\n \"http://localhost:8002/api/v1/statustypen/ecb7fc03-5c11-46be-917f-e70e16c77554\",\n \"http://localhost:8002/api/v1/statustypen/14734ec8-04f8-4c18-a009-e190ff448ca9\"\n ],\n \"resultaattypen\": [\n \"http://localhost:8002/api/v1/resultaattypen/eead9dcd-9544-4862-8a03-b55643f95228\"\n ],\n \"eigenschappen\": [\n \"http://localhost:8002/api/v1/eigenschappen/d417bd46-a2a8-46d7-bb8c-4c8dc214301b\"\n ],\n \"informatieobjecttypen\": [],\n \"besluittypen\": [],\n \"gerelateerdeZaaktypen\": [],\n \"beginGeldigheid\": \"2019-01-01\",\n \"versiedatum\": \"2019-01-01\",\n \"concept\": true,\n \"verlengingstermijn\": \"P5D\"\n}" + }, + "url": { + "raw": "{{ztc_url}}/zaaktypen", + "host": [ + "{{ztc_url}}" + ], + "path": [ + "zaaktypen" + ] + }, + "description": "Maak een ZAAKTYPE aan.\n\nEr wordt gevalideerd op:\n- geldigheid `catalogus` URL, dit moet een catalogus binnen dezelfde API zijn\n- Uniciteit `catalogus` en `omschrijving`. Dezelfde omeschrijving mag enkel\n opnieuw gebruikt worden als het zaaktype een andere geldigheidsperiode\n kent dan bestaande zaaktypen." + }, + "response": [] + } + ], + "description": "Folder for zaaktypen" + }, + { + "name": "besluittypen", + "item": [ + { + "name": "Alle BESLUITTYPEn opvragen.", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "pm.test(\"Alle BESLUITTYPEn opvragen geeft 200\", function() {", + " pm.response.to.have.status(200);", + "});" + ], + "type": "text/javascript", + "packages": {} + } + } + ], + "request": { + "method": "GET", + "header": [ + { + "key": "Accept", + "value": "application/json" + }, + { + "key": "Content-Type", + "value": "application/json" + } + ], + "url": { + "raw": "{{ztc_url}}/besluittypen?catalogus={{catalogus_url}}&status=concept&page=1", + "host": [ + "{{ztc_url}}" + ], + "path": [ + "besluittypen" + ], + "query": [ + { + "key": "catalogus", + "value": "{{catalogus_url}}" + }, + { + "key": "zaaktypen", + "value": "{{zaaktype_url}}", + "disabled": true + }, + { + "key": "informatieobjecttypen", + "value": "{{informatieobjecttype_url}}", + "disabled": true + }, + { + "key": "status", + "value": "concept" + }, + { + "key": "page", + "value": "1" + } + ] + }, + "description": "Deze lijst kan gefilterd wordt met query-string parameters." + }, + "response": [] + }, + { + "name": "Maak een BESLUITTYPE aan.", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "pm.test(\"Maak een BESLUITTYPE aan geeft 201\", function() {", + " pm.response.to.have.status(201);", + "});", + "", + "if(pm.response.code == 201) {", + " pm.environment.set(\"created_besluittype_url\", pm.response.json().url);", + " pm.environment.set(\"besluittype_body\", pm.request.body.raw);", + "}" + ], + "type": "text/javascript", + "packages": {} + } + } + ], + "request": { + "method": "POST", + "header": [ + { + "key": "Accept", + "value": "application/json" + }, + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n \"catalogus\": \"{{catalogus_url}}\",\n \"omschrijving\": \"besluittype test\",\n \"zaaktypen\": [],\n\t\"publicatieIndicatie\": false,\n\t\"informatieobjecttypen\": [],\n\t\"beginGeldigheid\": \"2019-01-01\"\n}" + }, + "url": { + "raw": "{{ztc_url}}/besluittypen", + "host": [ + "{{ztc_url}}" + ], + "path": [ + "besluittypen" + ] + }, + "description": "Maak een BESLUITTYPE aan." + }, + "response": [] + }, + { + "name": "Een specifiek BESLUITTYPE opvragen.", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "pm.test(\"Een specifiek BESLUITTYPE opvragen geeft 200\", function() {", + " pm.response.to.have.status(200);", + "});" + ], + "type": "text/javascript" + } + } + ], + "request": { + "method": "GET", + "header": [ + { + "key": "Accept", + "value": "application/json" + }, + { + "key": "Content-Type", + "value": "application/json" + } + ], + "url": { + "raw": "{{created_besluittype_url}}", + "host": [ + "{{created_besluittype_url}}" + ] + }, + "description": "Een specifieke BESLUITTYPE opvragen." + }, + "response": [] + }, + { + "name": "Werk een BESLUITTYPE in zijn geheel bij.", + "event": [ + { + "listen": "prerequest", + "script": { + "exec": [ + "// Retrieve the body template and modify as needed", + "var body = JSON.parse(pm.environment.get(\"besluittype_body\"));", + "pm.environment.set(\"omschrijving\", \"aangepaste omschrijving\");", + "body.omschrijving = pm.environment.get(\"omschrijving\");", + "", + "// Store the modified body, allowing it to be used in the main request", + "pm.environment.set(\"request_body\", JSON.stringify(body));" + ], + "type": "text/javascript", + "packages": {} + } + }, + { + "listen": "test", + "script": { + "exec": [ + "pm.test(\"Werk een BESLUITTYPE in zijn geheel bij geeft 200\", function() {", + " pm.response.to.have.status(200);", + "});", + "", + "pm.test(\"Werk een BESLUITTYPE in zijn geheel bij past attributen aan\", function() {", + " pm.expect(pm.response.json().omschrijving).to.be.equal(pm.globals.get(\"omschrijving\"));", + "});" + ], + "type": "text/javascript", + "packages": {} + } + } + ], + "request": { + "method": "PUT", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{{request_body}}" + }, + "url": { + "raw": "{{created_besluittype_url}}", + "host": [ + "{{created_besluittype_url}}" + ] + }, + "description": "Werk een BESLUITTYPE in zijn geheel bij. Dit kan alleen als het een concept\nbetreft." + }, + "response": [ + { + "name": "Not acceptable", + "originalRequest": { + "method": "PUT", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n \"catalogus\": \"\",\n \"zaaktypes\": [\n \"\"\n ],\n \"publicatieIndicatie\": \"\",\n \"informatieobjecttypes\": [\n \"\"\n ],\n \"beginGeldigheid\": \"\",\n \"omschrijving\": \"\",\n \"omschrijvingGeneriek\": \"\",\n \"besluitcategorie\": \"\",\n \"reactietermijn\": \"\",\n \"publicatietekst\": \"\",\n \"publicatietermijn\": \"\",\n \"toelichting\": \"\",\n \"eindeGeldigheid\": \"\"\n}" + }, + "url": { + "raw": "{{baseUrl}}/besluittypen/", + "host": [ + "{{baseUrl}}" + ], + "path": [ + "besluittypen", + "" + ] + } + }, + "status": "Not Acceptable", + "code": 406, + "_postman_previewlanguage": "json", + "header": [ + { + "key": "API-version", + "value": "", + "description": "Geeft een specifieke API-versie aan in de context van een specifieke aanroep. Voorbeeld: 1.2.1." + }, + { + "key": "Content-Type", + "value": "application/json" + } + ], + "cookie": [], + "body": "{\n \"code\": \"\",\n \"title\": \"\",\n \"status\": \"\",\n \"detail\": \"\",\n \"instance\": \"\",\n \"type\": \"\"\n}" + }, + { + "name": "Too many requests", + "originalRequest": { + "method": "PUT", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n \"catalogus\": \"\",\n \"zaaktypes\": [\n \"\"\n ],\n \"publicatieIndicatie\": \"\",\n \"informatieobjecttypes\": [\n \"\"\n ],\n \"beginGeldigheid\": \"\",\n \"omschrijving\": \"\",\n \"omschrijvingGeneriek\": \"\",\n \"besluitcategorie\": \"\",\n \"reactietermijn\": \"\",\n \"publicatietekst\": \"\",\n \"publicatietermijn\": \"\",\n \"toelichting\": \"\",\n \"eindeGeldigheid\": \"\"\n}" + }, + "url": { + "raw": "{{baseUrl}}/besluittypen/", + "host": [ + "{{baseUrl}}" + ], + "path": [ + "besluittypen", + "" + ] + } + }, + "status": "Too Many Requests", + "code": 429, + "_postman_previewlanguage": "json", + "header": [ + { + "key": "API-version", + "value": "", + "description": "Geeft een specifieke API-versie aan in de context van een specifieke aanroep. Voorbeeld: 1.2.1." + }, + { + "key": "Content-Type", + "value": "application/json" + } + ], + "cookie": [], + "body": "{\n \"code\": \"\",\n \"title\": \"\",\n \"status\": \"\",\n \"detail\": \"\",\n \"instance\": \"\",\n \"type\": \"\"\n}" + }, + { + "name": "Unsupported media type", + "originalRequest": { + "method": "PUT", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n \"catalogus\": \"\",\n \"zaaktypes\": [\n \"\"\n ],\n \"publicatieIndicatie\": \"\",\n \"informatieobjecttypes\": [\n \"\"\n ],\n \"beginGeldigheid\": \"\",\n \"omschrijving\": \"\",\n \"omschrijvingGeneriek\": \"\",\n \"besluitcategorie\": \"\",\n \"reactietermijn\": \"\",\n \"publicatietekst\": \"\",\n \"publicatietermijn\": \"\",\n \"toelichting\": \"\",\n \"eindeGeldigheid\": \"\"\n}" + }, + "url": { + "raw": "{{baseUrl}}/besluittypen/", + "host": [ + "{{baseUrl}}" + ], + "path": [ + "besluittypen", + "" + ] + } + }, + "status": "Unsupported Media Type", + "code": 415, + "_postman_previewlanguage": "json", + "header": [ + { + "key": "API-version", + "value": "", + "description": "Geeft een specifieke API-versie aan in de context van een specifieke aanroep. Voorbeeld: 1.2.1." + }, + { + "key": "Content-Type", + "value": "application/json" + } + ], + "cookie": [], + "body": "{\n \"code\": \"\",\n \"title\": \"\",\n \"status\": \"\",\n \"detail\": \"\",\n \"instance\": \"\",\n \"type\": \"\"\n}" + }, + { + "name": "Conflict", + "originalRequest": { + "method": "PUT", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n \"catalogus\": \"\",\n \"zaaktypes\": [\n \"\"\n ],\n \"publicatieIndicatie\": \"\",\n \"informatieobjecttypes\": [\n \"\"\n ],\n \"beginGeldigheid\": \"\",\n \"omschrijving\": \"\",\n \"omschrijvingGeneriek\": \"\",\n \"besluitcategorie\": \"\",\n \"reactietermijn\": \"\",\n \"publicatietekst\": \"\",\n \"publicatietermijn\": \"\",\n \"toelichting\": \"\",\n \"eindeGeldigheid\": \"\"\n}" + }, + "url": { + "raw": "{{baseUrl}}/besluittypen/", + "host": [ + "{{baseUrl}}" + ], + "path": [ + "besluittypen", + "" + ] + } + }, + "status": "Conflict", + "code": 409, + "_postman_previewlanguage": "json", + "header": [ + { + "key": "API-version", + "value": "", + "description": "Geeft een specifieke API-versie aan in de context van een specifieke aanroep. Voorbeeld: 1.2.1." + }, + { + "key": "Content-Type", + "value": "application/json" + } + ], + "cookie": [], + "body": "{\n \"code\": \"\",\n \"title\": \"\",\n \"status\": \"\",\n \"detail\": \"\",\n \"instance\": \"\",\n \"type\": \"\"\n}" + }, + { + "name": "Bad request", + "originalRequest": { + "method": "PUT", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n \"catalogus\": \"\",\n \"zaaktypes\": [\n \"\"\n ],\n \"publicatieIndicatie\": \"\",\n \"informatieobjecttypes\": [\n \"\"\n ],\n \"beginGeldigheid\": \"\",\n \"omschrijving\": \"\",\n \"omschrijvingGeneriek\": \"\",\n \"besluitcategorie\": \"\",\n \"reactietermijn\": \"\",\n \"publicatietekst\": \"\",\n \"publicatietermijn\": \"\",\n \"toelichting\": \"\",\n \"eindeGeldigheid\": \"\"\n}" + }, + "url": { + "raw": "{{baseUrl}}/besluittypen/", + "host": [ + "{{baseUrl}}" + ], + "path": [ + "besluittypen", + "" + ] + } + }, + "status": "Bad Request", + "code": 400, + "_postman_previewlanguage": "json", + "header": [ + { + "key": "API-version", + "value": "", + "description": "Geeft een specifieke API-versie aan in de context van een specifieke aanroep. Voorbeeld: 1.2.1." + }, + { + "key": "Content-Type", + "value": "application/json" + } + ], + "cookie": [], + "body": "{\n \"code\": \"\",\n \"title\": \"\",\n \"status\": \"\",\n \"detail\": \"\",\n \"instance\": \"\",\n \"invalidParams\": [\n {\n \"name\": \"\",\n \"code\": \"\",\n \"reason\": \"\"\n },\n {\n \"name\": \"\",\n \"code\": \"\",\n \"reason\": \"\"\n }\n ],\n \"type\": \"\"\n}" + }, + { + "name": "Gone", + "originalRequest": { + "method": "PUT", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n \"catalogus\": \"\",\n \"zaaktypes\": [\n \"\"\n ],\n \"publicatieIndicatie\": \"\",\n \"informatieobjecttypes\": [\n \"\"\n ],\n \"beginGeldigheid\": \"\",\n \"omschrijving\": \"\",\n \"omschrijvingGeneriek\": \"\",\n \"besluitcategorie\": \"\",\n \"reactietermijn\": \"\",\n \"publicatietekst\": \"\",\n \"publicatietermijn\": \"\",\n \"toelichting\": \"\",\n \"eindeGeldigheid\": \"\"\n}" + }, + "url": { + "raw": "{{baseUrl}}/besluittypen/", + "host": [ + "{{baseUrl}}" + ], + "path": [ + "besluittypen", + "" + ] + } + }, + "status": "Gone", + "code": 410, + "_postman_previewlanguage": "json", + "header": [ + { + "key": "API-version", + "value": "", + "description": "Geeft een specifieke API-versie aan in de context van een specifieke aanroep. Voorbeeld: 1.2.1." + }, + { + "key": "Content-Type", + "value": "application/json" + } + ], + "cookie": [], + "body": "{\n \"code\": \"\",\n \"title\": \"\",\n \"status\": \"\",\n \"detail\": \"\",\n \"instance\": \"\",\n \"type\": \"\"\n}" + }, + { + "name": "Internal server error", + "originalRequest": { + "method": "PUT", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n \"catalogus\": \"\",\n \"zaaktypes\": [\n \"\"\n ],\n \"publicatieIndicatie\": \"\",\n \"informatieobjecttypes\": [\n \"\"\n ],\n \"beginGeldigheid\": \"\",\n \"omschrijving\": \"\",\n \"omschrijvingGeneriek\": \"\",\n \"besluitcategorie\": \"\",\n \"reactietermijn\": \"\",\n \"publicatietekst\": \"\",\n \"publicatietermijn\": \"\",\n \"toelichting\": \"\",\n \"eindeGeldigheid\": \"\"\n}" + }, + "url": { + "raw": "{{baseUrl}}/besluittypen/", + "host": [ + "{{baseUrl}}" + ], + "path": [ + "besluittypen", + "" + ] + } + }, + "status": "Internal Server Error", + "code": 500, + "_postman_previewlanguage": "json", + "header": [ + { + "key": "API-version", + "value": "", + "description": "Geeft een specifieke API-versie aan in de context van een specifieke aanroep. Voorbeeld: 1.2.1." + }, + { + "key": "Content-Type", + "value": "application/json" + } + ], + "cookie": [], + "body": "{\n \"code\": \"\",\n \"title\": \"\",\n \"status\": \"\",\n \"detail\": \"\",\n \"instance\": \"\",\n \"type\": \"\"\n}" + }, + { + "name": "Forbidden", + "originalRequest": { + "method": "PUT", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n \"catalogus\": \"\",\n \"zaaktypes\": [\n \"\"\n ],\n \"publicatieIndicatie\": \"\",\n \"informatieobjecttypes\": [\n \"\"\n ],\n \"beginGeldigheid\": \"\",\n \"omschrijving\": \"\",\n \"omschrijvingGeneriek\": \"\",\n \"besluitcategorie\": \"\",\n \"reactietermijn\": \"\",\n \"publicatietekst\": \"\",\n \"publicatietermijn\": \"\",\n \"toelichting\": \"\",\n \"eindeGeldigheid\": \"\"\n}" + }, + "url": { + "raw": "{{baseUrl}}/besluittypen/", + "host": [ + "{{baseUrl}}" + ], + "path": [ + "besluittypen", + "" + ] + } + }, + "status": "Forbidden", + "code": 403, + "_postman_previewlanguage": "json", + "header": [ + { + "key": "API-version", + "value": "", + "description": "Geeft een specifieke API-versie aan in de context van een specifieke aanroep. Voorbeeld: 1.2.1." + }, + { + "key": "Content-Type", + "value": "application/json" + } + ], + "cookie": [], + "body": "{\n \"code\": \"\",\n \"title\": \"\",\n \"status\": \"\",\n \"detail\": \"\",\n \"instance\": \"\",\n \"type\": \"\"\n}" + }, + { + "name": "Not found", + "originalRequest": { + "method": "PUT", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n \"catalogus\": \"\",\n \"zaaktypes\": [\n \"\"\n ],\n \"publicatieIndicatie\": \"\",\n \"informatieobjecttypes\": [\n \"\"\n ],\n \"beginGeldigheid\": \"\",\n \"omschrijving\": \"\",\n \"omschrijvingGeneriek\": \"\",\n \"besluitcategorie\": \"\",\n \"reactietermijn\": \"\",\n \"publicatietekst\": \"\",\n \"publicatietermijn\": \"\",\n \"toelichting\": \"\",\n \"eindeGeldigheid\": \"\"\n}" + }, + "url": { + "raw": "{{baseUrl}}/besluittypen/", + "host": [ + "{{baseUrl}}" + ], + "path": [ + "besluittypen", + "" + ] + } + }, + "status": "Not Found", + "code": 404, + "_postman_previewlanguage": "json", + "header": [ + { + "key": "API-version", + "value": "", + "description": "Geeft een specifieke API-versie aan in de context van een specifieke aanroep. Voorbeeld: 1.2.1." + }, + { + "key": "Content-Type", + "value": "application/json" + } + ], + "cookie": [], + "body": "{\n \"code\": \"\",\n \"title\": \"\",\n \"status\": \"\",\n \"detail\": \"\",\n \"instance\": \"\",\n \"type\": \"\"\n}" + }, + { + "name": "Unauthorized", + "originalRequest": { + "method": "PUT", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n \"catalogus\": \"\",\n \"zaaktypes\": [\n \"\"\n ],\n \"publicatieIndicatie\": \"\",\n \"informatieobjecttypes\": [\n \"\"\n ],\n \"beginGeldigheid\": \"\",\n \"omschrijving\": \"\",\n \"omschrijvingGeneriek\": \"\",\n \"besluitcategorie\": \"\",\n \"reactietermijn\": \"\",\n \"publicatietekst\": \"\",\n \"publicatietermijn\": \"\",\n \"toelichting\": \"\",\n \"eindeGeldigheid\": \"\"\n}" + }, + "url": { + "raw": "{{baseUrl}}/besluittypen/", + "host": [ + "{{baseUrl}}" + ], + "path": [ + "besluittypen", + "" + ] + } + }, + "status": "Unauthorized", + "code": 401, + "_postman_previewlanguage": "json", + "header": [ + { + "key": "API-version", + "value": "", + "description": "Geeft een specifieke API-versie aan in de context van een specifieke aanroep. Voorbeeld: 1.2.1." + }, + { + "key": "Content-Type", + "value": "application/json" + } + ], + "cookie": [], + "body": "{\n \"code\": \"\",\n \"title\": \"\",\n \"status\": \"\",\n \"detail\": \"\",\n \"instance\": \"\",\n \"type\": \"\"\n}" + }, + { + "name": "OK", + "originalRequest": { + "method": "PUT", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n \"catalogus\": \"\",\n \"zaaktypes\": [\n \"\"\n ],\n \"publicatieIndicatie\": \"\",\n \"informatieobjecttypes\": [\n \"\"\n ],\n \"beginGeldigheid\": \"\",\n \"omschrijving\": \"\",\n \"omschrijvingGeneriek\": \"\",\n \"besluitcategorie\": \"\",\n \"reactietermijn\": \"\",\n \"publicatietekst\": \"\",\n \"publicatietermijn\": \"\",\n \"toelichting\": \"\",\n \"eindeGeldigheid\": \"\"\n}" + }, + "url": { + "raw": "{{baseUrl}}/besluittypen/", + "host": [ + "{{baseUrl}}" + ], + "path": [ + "besluittypen", + "" + ] + } + }, + "status": "OK", + "code": 200, + "_postman_previewlanguage": "json", + "header": [ + { + "key": "API-version", + "value": "", + "description": "Geeft een specifieke API-versie aan in de context van een specifieke aanroep. Voorbeeld: 1.2.1." + }, + { + "key": "Content-Type", + "value": "application/json" + } + ], + "cookie": [], + "body": "{\n \"catalogus\": \"\",\n \"zaaktypes\": [\n \"\"\n ],\n \"publicatieIndicatie\": \"\",\n \"informatieobjecttypes\": [\n \"\"\n ],\n \"beginGeldigheid\": \"\",\n \"url\": \"\",\n \"omschrijving\": \"\",\n \"omschrijvingGeneriek\": \"\",\n \"besluitcategorie\": \"\",\n \"reactietermijn\": \"\",\n \"publicatietekst\": \"\",\n \"publicatietermijn\": \"\",\n \"toelichting\": \"\",\n \"eindeGeldigheid\": \"\",\n \"concept\": \"\"\n}" + } + ] + }, + { + "name": "Werk een BESLUITTYPE deels bij.", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "pm.test(\"Werk een BESLUITTYPE deels bij geeft 200\", function() {", + " pm.response.to.have.status(200);", + "});", + "", + "pm.test(\"Werk een BESLUITTYPE deels bij past attributen aan\", function() {", + " pm.expect(pm.response.json().omschrijving).to.be.equal(\"aangepast2\");", + "});" + ], + "type": "text/javascript" + } + } + ], + "request": { + "method": "PATCH", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n\t\"omschrijving\": \"aangepast2\"\n}" + }, + "url": { + "raw": "{{created_besluittype_url}}", + "host": [ + "{{created_besluittype_url}}" + ] + }, + "description": "Werk een BESLUITTYPE deels bij. Dit kan alleen als het een concept betreft." + }, + "response": [ + { + "name": "OK", + "originalRequest": { + "method": "PATCH", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n \"catalogus\": \"\",\n \"zaaktypes\": [\n \"\"\n ],\n \"publicatieIndicatie\": \"\",\n \"informatieobjecttypes\": [\n \"\"\n ],\n \"beginGeldigheid\": \"\",\n \"omschrijving\": \"\",\n \"omschrijvingGeneriek\": \"\",\n \"besluitcategorie\": \"\",\n \"reactietermijn\": \"\",\n \"publicatietekst\": \"\",\n \"publicatietermijn\": \"\",\n \"toelichting\": \"\",\n \"eindeGeldigheid\": \"\"\n}" + }, + "url": { + "raw": "{{baseUrl}}/besluittypen/", + "host": [ + "{{baseUrl}}" + ], + "path": [ + "besluittypen", + "" + ] + } + }, + "status": "OK", + "code": 200, + "_postman_previewlanguage": "json", + "header": [ + { + "key": "API-version", + "value": "", + "description": "Geeft een specifieke API-versie aan in de context van een specifieke aanroep. Voorbeeld: 1.2.1." + }, + { + "key": "Content-Type", + "value": "application/json" + } + ], + "cookie": [], + "body": "{\n \"catalogus\": \"\",\n \"zaaktypes\": [\n \"\"\n ],\n \"publicatieIndicatie\": \"\",\n \"informatieobjecttypes\": [\n \"\"\n ],\n \"beginGeldigheid\": \"\",\n \"url\": \"\",\n \"omschrijving\": \"\",\n \"omschrijvingGeneriek\": \"\",\n \"besluitcategorie\": \"\",\n \"reactietermijn\": \"\",\n \"publicatietekst\": \"\",\n \"publicatietermijn\": \"\",\n \"toelichting\": \"\",\n \"eindeGeldigheid\": \"\",\n \"concept\": \"\"\n}" + }, + { + "name": "Forbidden", + "originalRequest": { + "method": "PATCH", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n \"catalogus\": \"\",\n \"zaaktypes\": [\n \"\"\n ],\n \"publicatieIndicatie\": \"\",\n \"informatieobjecttypes\": [\n \"\"\n ],\n \"beginGeldigheid\": \"\",\n \"omschrijving\": \"\",\n \"omschrijvingGeneriek\": \"\",\n \"besluitcategorie\": \"\",\n \"reactietermijn\": \"\",\n \"publicatietekst\": \"\",\n \"publicatietermijn\": \"\",\n \"toelichting\": \"\",\n \"eindeGeldigheid\": \"\"\n}" + }, + "url": { + "raw": "{{baseUrl}}/besluittypen/", + "host": [ + "{{baseUrl}}" + ], + "path": [ + "besluittypen", + "" + ] + } + }, + "status": "Forbidden", + "code": 403, + "_postman_previewlanguage": "json", + "header": [ + { + "key": "API-version", + "value": "", + "description": "Geeft een specifieke API-versie aan in de context van een specifieke aanroep. Voorbeeld: 1.2.1." + }, + { + "key": "Content-Type", + "value": "application/json" + } + ], + "cookie": [], + "body": "{\n \"code\": \"\",\n \"title\": \"\",\n \"status\": \"\",\n \"detail\": \"\",\n \"instance\": \"\",\n \"type\": \"\"\n}" + }, + { + "name": "Too many requests", + "originalRequest": { + "method": "PATCH", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n \"catalogus\": \"\",\n \"zaaktypes\": [\n \"\"\n ],\n \"publicatieIndicatie\": \"\",\n \"informatieobjecttypes\": [\n \"\"\n ],\n \"beginGeldigheid\": \"\",\n \"omschrijving\": \"\",\n \"omschrijvingGeneriek\": \"\",\n \"besluitcategorie\": \"\",\n \"reactietermijn\": \"\",\n \"publicatietekst\": \"\",\n \"publicatietermijn\": \"\",\n \"toelichting\": \"\",\n \"eindeGeldigheid\": \"\"\n}" + }, + "url": { + "raw": "{{baseUrl}}/besluittypen/", + "host": [ + "{{baseUrl}}" + ], + "path": [ + "besluittypen", + "" + ] + } + }, + "status": "Too Many Requests", + "code": 429, + "_postman_previewlanguage": "json", + "header": [ + { + "key": "API-version", + "value": "", + "description": "Geeft een specifieke API-versie aan in de context van een specifieke aanroep. Voorbeeld: 1.2.1." + }, + { + "key": "Content-Type", + "value": "application/json" + } + ], + "cookie": [], + "body": "{\n \"code\": \"\",\n \"title\": \"\",\n \"status\": \"\",\n \"detail\": \"\",\n \"instance\": \"\",\n \"type\": \"\"\n}" + }, + { + "name": "Unauthorized", + "originalRequest": { + "method": "PATCH", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n \"catalogus\": \"\",\n \"zaaktypes\": [\n \"\"\n ],\n \"publicatieIndicatie\": \"\",\n \"informatieobjecttypes\": [\n \"\"\n ],\n \"beginGeldigheid\": \"\",\n \"omschrijving\": \"\",\n \"omschrijvingGeneriek\": \"\",\n \"besluitcategorie\": \"\",\n \"reactietermijn\": \"\",\n \"publicatietekst\": \"\",\n \"publicatietermijn\": \"\",\n \"toelichting\": \"\",\n \"eindeGeldigheid\": \"\"\n}" + }, + "url": { + "raw": "{{baseUrl}}/besluittypen/", + "host": [ + "{{baseUrl}}" + ], + "path": [ + "besluittypen", + "" + ] + } + }, + "status": "Unauthorized", + "code": 401, + "_postman_previewlanguage": "json", + "header": [ + { + "key": "API-version", + "value": "", + "description": "Geeft een specifieke API-versie aan in de context van een specifieke aanroep. Voorbeeld: 1.2.1." + }, + { + "key": "Content-Type", + "value": "application/json" + } + ], + "cookie": [], + "body": "{\n \"code\": \"\",\n \"title\": \"\",\n \"status\": \"\",\n \"detail\": \"\",\n \"instance\": \"\",\n \"type\": \"\"\n}" + }, + { + "name": "Gone", + "originalRequest": { + "method": "PATCH", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n \"catalogus\": \"\",\n \"zaaktypes\": [\n \"\"\n ],\n \"publicatieIndicatie\": \"\",\n \"informatieobjecttypes\": [\n \"\"\n ],\n \"beginGeldigheid\": \"\",\n \"omschrijving\": \"\",\n \"omschrijvingGeneriek\": \"\",\n \"besluitcategorie\": \"\",\n \"reactietermijn\": \"\",\n \"publicatietekst\": \"\",\n \"publicatietermijn\": \"\",\n \"toelichting\": \"\",\n \"eindeGeldigheid\": \"\"\n}" + }, + "url": { + "raw": "{{baseUrl}}/besluittypen/", + "host": [ + "{{baseUrl}}" + ], + "path": [ + "besluittypen", + "" + ] + } + }, + "status": "Gone", + "code": 410, + "_postman_previewlanguage": "json", + "header": [ + { + "key": "API-version", + "value": "", + "description": "Geeft een specifieke API-versie aan in de context van een specifieke aanroep. Voorbeeld: 1.2.1." + }, + { + "key": "Content-Type", + "value": "application/json" + } + ], + "cookie": [], + "body": "{\n \"code\": \"\",\n \"title\": \"\",\n \"status\": \"\",\n \"detail\": \"\",\n \"instance\": \"\",\n \"type\": \"\"\n}" + }, + { + "name": "Internal server error", + "originalRequest": { + "method": "PATCH", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n \"catalogus\": \"\",\n \"zaaktypes\": [\n \"\"\n ],\n \"publicatieIndicatie\": \"\",\n \"informatieobjecttypes\": [\n \"\"\n ],\n \"beginGeldigheid\": \"\",\n \"omschrijving\": \"\",\n \"omschrijvingGeneriek\": \"\",\n \"besluitcategorie\": \"\",\n \"reactietermijn\": \"\",\n \"publicatietekst\": \"\",\n \"publicatietermijn\": \"\",\n \"toelichting\": \"\",\n \"eindeGeldigheid\": \"\"\n}" + }, + "url": { + "raw": "{{baseUrl}}/besluittypen/", + "host": [ + "{{baseUrl}}" + ], + "path": [ + "besluittypen", + "" + ] + } + }, + "status": "Internal Server Error", + "code": 500, + "_postman_previewlanguage": "json", + "header": [ + { + "key": "API-version", + "value": "", + "description": "Geeft een specifieke API-versie aan in de context van een specifieke aanroep. Voorbeeld: 1.2.1." + }, + { + "key": "Content-Type", + "value": "application/json" + } + ], + "cookie": [], + "body": "{\n \"code\": \"\",\n \"title\": \"\",\n \"status\": \"\",\n \"detail\": \"\",\n \"instance\": \"\",\n \"type\": \"\"\n}" + }, + { + "name": "Bad request", + "originalRequest": { + "method": "PATCH", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n \"catalogus\": \"\",\n \"zaaktypes\": [\n \"\"\n ],\n \"publicatieIndicatie\": \"\",\n \"informatieobjecttypes\": [\n \"\"\n ],\n \"beginGeldigheid\": \"\",\n \"omschrijving\": \"\",\n \"omschrijvingGeneriek\": \"\",\n \"besluitcategorie\": \"\",\n \"reactietermijn\": \"\",\n \"publicatietekst\": \"\",\n \"publicatietermijn\": \"\",\n \"toelichting\": \"\",\n \"eindeGeldigheid\": \"\"\n}" + }, + "url": { + "raw": "{{baseUrl}}/besluittypen/", + "host": [ + "{{baseUrl}}" + ], + "path": [ + "besluittypen", + "" + ] + } + }, + "status": "Bad Request", + "code": 400, + "_postman_previewlanguage": "json", + "header": [ + { + "key": "API-version", + "value": "", + "description": "Geeft een specifieke API-versie aan in de context van een specifieke aanroep. Voorbeeld: 1.2.1." + }, + { + "key": "Content-Type", + "value": "application/json" + } + ], + "cookie": [], + "body": "{\n \"code\": \"\",\n \"title\": \"\",\n \"status\": \"\",\n \"detail\": \"\",\n \"instance\": \"\",\n \"invalidParams\": [\n {\n \"name\": \"\",\n \"code\": \"\",\n \"reason\": \"\"\n },\n {\n \"name\": \"\",\n \"code\": \"\",\n \"reason\": \"\"\n }\n ],\n \"type\": \"\"\n}" + }, + { + "name": "Not acceptable", + "originalRequest": { + "method": "PATCH", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n \"catalogus\": \"\",\n \"zaaktypes\": [\n \"\"\n ],\n \"publicatieIndicatie\": \"\",\n \"informatieobjecttypes\": [\n \"\"\n ],\n \"beginGeldigheid\": \"\",\n \"omschrijving\": \"\",\n \"omschrijvingGeneriek\": \"\",\n \"besluitcategorie\": \"\",\n \"reactietermijn\": \"\",\n \"publicatietekst\": \"\",\n \"publicatietermijn\": \"\",\n \"toelichting\": \"\",\n \"eindeGeldigheid\": \"\"\n}" + }, + "url": { + "raw": "{{baseUrl}}/besluittypen/", + "host": [ + "{{baseUrl}}" + ], + "path": [ + "besluittypen", + "" + ] + } + }, + "status": "Not Acceptable", + "code": 406, + "_postman_previewlanguage": "json", + "header": [ + { + "key": "API-version", + "value": "", + "description": "Geeft een specifieke API-versie aan in de context van een specifieke aanroep. Voorbeeld: 1.2.1." + }, + { + "key": "Content-Type", + "value": "application/json" + } + ], + "cookie": [], + "body": "{\n \"code\": \"\",\n \"title\": \"\",\n \"status\": \"\",\n \"detail\": \"\",\n \"instance\": \"\",\n \"type\": \"\"\n}" + }, + { + "name": "Conflict", + "originalRequest": { + "method": "PATCH", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n \"catalogus\": \"\",\n \"zaaktypes\": [\n \"\"\n ],\n \"publicatieIndicatie\": \"\",\n \"informatieobjecttypes\": [\n \"\"\n ],\n \"beginGeldigheid\": \"\",\n \"omschrijving\": \"\",\n \"omschrijvingGeneriek\": \"\",\n \"besluitcategorie\": \"\",\n \"reactietermijn\": \"\",\n \"publicatietekst\": \"\",\n \"publicatietermijn\": \"\",\n \"toelichting\": \"\",\n \"eindeGeldigheid\": \"\"\n}" + }, + "url": { + "raw": "{{baseUrl}}/besluittypen/", + "host": [ + "{{baseUrl}}" + ], + "path": [ + "besluittypen", + "" + ] + } + }, + "status": "Conflict", + "code": 409, + "_postman_previewlanguage": "json", + "header": [ + { + "key": "API-version", + "value": "", + "description": "Geeft een specifieke API-versie aan in de context van een specifieke aanroep. Voorbeeld: 1.2.1." + }, + { + "key": "Content-Type", + "value": "application/json" + } + ], + "cookie": [], + "body": "{\n \"code\": \"\",\n \"title\": \"\",\n \"status\": \"\",\n \"detail\": \"\",\n \"instance\": \"\",\n \"type\": \"\"\n}" + }, + { + "name": "Unsupported media type", + "originalRequest": { + "method": "PATCH", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n \"catalogus\": \"\",\n \"zaaktypes\": [\n \"\"\n ],\n \"publicatieIndicatie\": \"\",\n \"informatieobjecttypes\": [\n \"\"\n ],\n \"beginGeldigheid\": \"\",\n \"omschrijving\": \"\",\n \"omschrijvingGeneriek\": \"\",\n \"besluitcategorie\": \"\",\n \"reactietermijn\": \"\",\n \"publicatietekst\": \"\",\n \"publicatietermijn\": \"\",\n \"toelichting\": \"\",\n \"eindeGeldigheid\": \"\"\n}" + }, + "url": { + "raw": "{{baseUrl}}/besluittypen/", + "host": [ + "{{baseUrl}}" + ], + "path": [ + "besluittypen", + "" + ] + } + }, + "status": "Unsupported Media Type", + "code": 415, + "_postman_previewlanguage": "json", + "header": [ + { + "key": "API-version", + "value": "", + "description": "Geeft een specifieke API-versie aan in de context van een specifieke aanroep. Voorbeeld: 1.2.1." + }, + { + "key": "Content-Type", + "value": "application/json" + } + ], + "cookie": [], + "body": "{\n \"code\": \"\",\n \"title\": \"\",\n \"status\": \"\",\n \"detail\": \"\",\n \"instance\": \"\",\n \"type\": \"\"\n}" + }, + { + "name": "Not found", + "originalRequest": { + "method": "PATCH", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n \"catalogus\": \"\",\n \"zaaktypes\": [\n \"\"\n ],\n \"publicatieIndicatie\": \"\",\n \"informatieobjecttypes\": [\n \"\"\n ],\n \"beginGeldigheid\": \"\",\n \"omschrijving\": \"\",\n \"omschrijvingGeneriek\": \"\",\n \"besluitcategorie\": \"\",\n \"reactietermijn\": \"\",\n \"publicatietekst\": \"\",\n \"publicatietermijn\": \"\",\n \"toelichting\": \"\",\n \"eindeGeldigheid\": \"\"\n}" + }, + "url": { + "raw": "{{baseUrl}}/besluittypen/", + "host": [ + "{{baseUrl}}" + ], + "path": [ + "besluittypen", + "" + ] + } + }, + "status": "Not Found", + "code": 404, + "_postman_previewlanguage": "json", + "header": [ + { + "key": "API-version", + "value": "", + "description": "Geeft een specifieke API-versie aan in de context van een specifieke aanroep. Voorbeeld: 1.2.1." + }, + { + "key": "Content-Type", + "value": "application/json" + } + ], + "cookie": [], + "body": "{\n \"code\": \"\",\n \"title\": \"\",\n \"status\": \"\",\n \"detail\": \"\",\n \"instance\": \"\",\n \"type\": \"\"\n}" + } + ] + }, + { + "name": "Opvragen en bewerken van BESLUITTYPEn nodig voor BESLUITEN in de Besluiten\nAPI.", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "pm.test(\"Opvragen en bewerken van BESLUITTYPEn nodig voor BESLUITEN in de BesluitenAPI geeft 200\", function() {", + " pm.response.to.have.status(201);", + "});", + "", + "pm.test(\"Publiceer een BESLUITTYPE zet concept op False\", function() {", + " pm.expect(pm.response.json().concept).to.be.equal(false);", + "});" + ], + "type": "text/javascript", + "packages": {} + } + } + ], + "request": { + "method": "POST", + "header": [ + { + "key": "Accept", + "value": "application/json" + }, + { + "key": "Content-Type", + "value": "application/json" + } + ], + "url": { + "raw": "{{created_besluittype_url}}/publish", + "host": [ + "{{created_besluittype_url}}" + ], + "path": [ + "publish" + ] + }, + "description": "Alle BESLUITTYPEn van de besluiten die het resultaat kunnen zijn van het\nzaakgericht werken van de behandelende organisatie(s)." + }, + "response": [] + }, + { + "name": "Verwijder een BESLUITTYPE.", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "pm.test(\"Verwijder een BESLUITTYPE geeft 204\", function() {", + " pm.response.to.have.status(204);", + "});" + ], + "type": "text/javascript" + } + } + ], + "request": { + "method": "DELETE", + "header": [ + { + "key": "Accept", + "value": "application/json" + }, + { + "key": "Content-Type", + "value": "application/json" + } + ], + "url": { + "raw": "{{created_besluittype_url}}", + "host": [ + "{{created_besluittype_url}}" + ] + }, + "description": "Verwijder een BESLUITTYPE. Dit kan alleen als het een concept betreft." + }, + "response": [] + } + ], + "description": "Folder for besluittypen" + }, + { + "name": "catalogussen", + "item": [ + { + "name": "Alle CATALOGUSsen opvragen.", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "pm.test(\"Alle CATALOGUSsen opvragen geeft 200\", function() {", + " pm.response.to.have.status(200);", + "});", + "", + "if(pm.response.code == 200) {", + " if(pm.response.json().count) {", + " pm.globals.set(\"catalogus_url\", pm.response.json().results[0].url);", + " postman.setNextRequest(\"Een specifieke CATALOGUS opvragen.\");", + " }", + "}" + ], + "type": "text/javascript", + "packages": {} + } + } + ], + "request": { + "method": "GET", + "header": [ + { + "key": "Accept", + "value": "application/json" + }, + { + "key": "Content-Type", + "value": "application/json" + } + ], + "url": { + "raw": "{{ztc_url}}/catalogussen?domein=ZGWT&rsin=000000000&page=1", + "host": [ + "{{ztc_url}}" + ], + "path": [ + "catalogussen" + ], + "query": [ + { + "key": "domein", + "value": "ZGWT" + }, + { + "key": "domein__in", + "value": "ZGWT", + "disabled": true + }, + { + "key": "rsin", + "value": "000000000" + }, + { + "key": "rsin__in", + "value": "000000000", + "disabled": true + }, + { + "key": "page", + "value": "1" + } + ] + }, + "description": "Deze lijst kan gefilterd wordt met query-string parameters." + }, + "response": [] + }, + { + "name": "Maak een CATALOGUS aan.", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "pm.environment.set(\"catalogus_url\", pm.response.json().url);" + ], + "type": "text/javascript", + "packages": {} + } + } + ], + "request": { + "method": "POST", + "header": [ + { + "key": "Accept", + "value": "application/json" + }, + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n\t\"domein\": \"ZGWT\",\n\t\"rsin\": \"000000000\",\n\t\"contactpersoonBeheerNaam\": \"Test Persoon\"\n}" + }, + "url": { + "raw": "{{ztc_url}}/catalogussen", + "host": [ + "{{ztc_url}}" + ], + "path": [ + "catalogussen" + ] + }, + "description": "Maak een CATALOGUS aan." + }, + "response": [] + }, + { + "name": "Een specifieke CATALOGUS opvragen.", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "pm.test(\"Een specifieke CATALOGUS opvragen geeft 200\", function() {", + " pm.response.to.have.status(200);", + "});" + ], + "type": "text/javascript" + } + } + ], + "request": { + "method": "GET", + "header": [ + { + "key": "Accept", + "value": "application/json" + }, + { + "key": "Content-Type", + "value": "application/json" + } + ], + "url": { + "raw": "{{catalogus_url}}", + "host": [ + "{{catalogus_url}}" + ] + }, + "description": "Een specifieke CATALOGUS opvragen." + }, + "response": [] + } + ], + "description": "Folder for catalogussen" + }, + { + "name": "eigenschappen", + "item": [ + { + "name": "Alle EIGENSCHAPpen opvragen.", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "pm.test(\"Alle EIGENSCHAPpen opvragen geeft 200\", function() {", + " pm.response.to.have.status(200);", + "});" + ], + "type": "text/javascript", + "packages": {} + } + } + ], + "request": { + "method": "GET", + "header": [ + { + "key": "Accept", + "value": "application/json" + }, + { + "key": "Content-Type", + "value": "application/json" + } + ], + "url": { + "raw": "{{ztc_url}}/eigenschappen?status=concept&page=1", + "host": [ + "{{ztc_url}}" + ], + "path": [ + "eigenschappen" + ], + "query": [ + { + "key": "zaaktype", + "value": "{{zaaktype_url}}", + "disabled": true + }, + { + "key": "status", + "value": "concept" + }, + { + "key": "page", + "value": "1" + } + ] + }, + "description": "Deze lijst kan gefilterd wordt met query-string parameters." + }, + "response": [] + }, + { + "name": "Maak een EIGENSCHAP aan.", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "pm.test(\"Maak een EIGENSCHAP aan geeft 201\", function() {", + " pm.response.to.have.status(201);", + "});", + "", + "pm.environment.set(\"eigenschap_url\", pm.response.json().url);", + "pm.environment.set(\"eigenschap_body\", pm.request.body.raw);" + ], + "type": "text/javascript", + "packages": {} + } + } + ], + "request": { + "method": "POST", + "header": [ + { + "key": "Accept", + "value": "application/json" + }, + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n\t\"naam\": \"test eigenschap2\",\n\t\"definitie\": \"for test\",\n\t\"zaaktype\": \"{{created_zaaktype_url}}\",\n \"specificatie\": {\n \"formaat\": \"tekst\",\n \"lengte\": \"5\",\n \"kardinaliteit\": \"1\",\n \"waardenverzameling\": [\"test\"]\n }\n}" + }, + "url": { + "raw": "{{ztc_url}}/eigenschappen", + "host": [ + "{{ztc_url}}" + ], + "path": [ + "eigenschappen" + ] + }, + "description": "Maak een EIGENSCHAP aan. Dit kan alleen als het bijbehorende ZAAKTYPE een\nconcept betreft." + }, + "response": [] + }, + { + "name": "Een specifieke EIGENSCHAP opvragen.", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "pm.test(\"Een specifieke EIGENSCHAP opvragen geeft 200\", function() {", + " pm.response.to.have.status(200);", + "});" + ], + "type": "text/javascript" + } + } + ], + "request": { + "method": "GET", + "header": [ + { + "key": "Accept", + "value": "application/json" + }, + { + "key": "Content-Type", + "value": "application/json" + } + ], + "url": { + "raw": "{{eigenschap_url}}", + "host": [ + "{{eigenschap_url}}" + ] + }, + "description": "Een specifieke EIGENSCHAP opvragen." + }, + "response": [] + }, + { + "name": "Werk een EIGENSCHAP in zijn geheel bij.", + "event": [ + { + "listen": "prerequest", + "script": { + "exec": [ + "// Retrieve the body template and modify as needed", + "var body = JSON.parse(pm.environment.get(\"eigenschap_body\"));", + "body.toelichting = \"aangepast\";", + "", + "// Store the modified body, allowing it to be used in the main request", + "pm.environment.set(\"request_body\", JSON.stringify(body));" + ], + "type": "text/javascript", + "packages": {} + } + }, + { + "listen": "test", + "script": { + "exec": [ + "pm.test(\"Werk een EIGENSCHAP in zijn geheel bij geeft 200\", function() {", + " pm.response.to.have.status(200);", + "});", + "", + "pm.test(\"Werk een EIGENSCHAP in zijn geheel bij past attributen aan\", function() {", + " pm.expect(pm.response.json().toelichting).to.be.equal(\"aangepast\");", + "});" + ], + "type": "text/javascript", + "packages": {} + } + } + ], + "request": { + "method": "PUT", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{{request_body}}" + }, + "url": { + "raw": "{{eigenschap_url}}", + "host": [ + "{{eigenschap_url}}" + ] + }, + "description": "Werk een EIGENSCHAP in zijn geheel bij. Dit kan alleen als het\nbijbehorende ZAAKTYPE een concept betreft." + }, + "response": [ + { + "name": "Too many requests", + "originalRequest": { + "method": "PUT", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n \"naam\": \"\",\n \"definitie\": \"\",\n \"zaaktype\": \"\",\n \"specificatie\": {\n \"formaat\": \"\",\n \"lengte\": \"\",\n \"kardinaliteit\": \"\",\n \"groep\": \"\",\n \"waardenverzameling\": [\n \"\",\n \"\"\n ]\n },\n \"toelichting\": \"\"\n}" + }, + "url": { + "raw": "{{baseUrl}}/eigenschappen/", + "host": [ + "{{baseUrl}}" + ], + "path": [ + "eigenschappen", + "" + ] + } + }, + "status": "Too Many Requests", + "code": 429, + "_postman_previewlanguage": "json", + "header": [ + { + "key": "API-version", + "value": "", + "description": "Geeft een specifieke API-versie aan in de context van een specifieke aanroep. Voorbeeld: 1.2.1." + }, + { + "key": "Content-Type", + "value": "application/json" + } + ], + "cookie": [], + "body": "{\n \"code\": \"\",\n \"title\": \"\",\n \"status\": \"\",\n \"detail\": \"\",\n \"instance\": \"\",\n \"type\": \"\"\n}" + }, + { + "name": "Not acceptable", + "originalRequest": { + "method": "PUT", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n \"naam\": \"\",\n \"definitie\": \"\",\n \"zaaktype\": \"\",\n \"specificatie\": {\n \"formaat\": \"\",\n \"lengte\": \"\",\n \"kardinaliteit\": \"\",\n \"groep\": \"\",\n \"waardenverzameling\": [\n \"\",\n \"\"\n ]\n },\n \"toelichting\": \"\"\n}" + }, + "url": { + "raw": "{{baseUrl}}/eigenschappen/", + "host": [ + "{{baseUrl}}" + ], + "path": [ + "eigenschappen", + "" + ] + } + }, + "status": "Not Acceptable", + "code": 406, + "_postman_previewlanguage": "json", + "header": [ + { + "key": "API-version", + "value": "", + "description": "Geeft een specifieke API-versie aan in de context van een specifieke aanroep. Voorbeeld: 1.2.1." + }, + { + "key": "Content-Type", + "value": "application/json" + } + ], + "cookie": [], + "body": "{\n \"code\": \"\",\n \"title\": \"\",\n \"status\": \"\",\n \"detail\": \"\",\n \"instance\": \"\",\n \"type\": \"\"\n}" + }, + { + "name": "Gone", + "originalRequest": { + "method": "PUT", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n \"naam\": \"\",\n \"definitie\": \"\",\n \"zaaktype\": \"\",\n \"specificatie\": {\n \"formaat\": \"\",\n \"lengte\": \"\",\n \"kardinaliteit\": \"\",\n \"groep\": \"\",\n \"waardenverzameling\": [\n \"\",\n \"\"\n ]\n },\n \"toelichting\": \"\"\n}" + }, + "url": { + "raw": "{{baseUrl}}/eigenschappen/", + "host": [ + "{{baseUrl}}" + ], + "path": [ + "eigenschappen", + "" + ] + } + }, + "status": "Gone", + "code": 410, + "_postman_previewlanguage": "json", + "header": [ + { + "key": "API-version", + "value": "", + "description": "Geeft een specifieke API-versie aan in de context van een specifieke aanroep. Voorbeeld: 1.2.1." + }, + { + "key": "Content-Type", + "value": "application/json" + } + ], + "cookie": [], + "body": "{\n \"code\": \"\",\n \"title\": \"\",\n \"status\": \"\",\n \"detail\": \"\",\n \"instance\": \"\",\n \"type\": \"\"\n}" + }, + { + "name": "Unauthorized", + "originalRequest": { + "method": "PUT", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n \"naam\": \"\",\n \"definitie\": \"\",\n \"zaaktype\": \"\",\n \"specificatie\": {\n \"formaat\": \"\",\n \"lengte\": \"\",\n \"kardinaliteit\": \"\",\n \"groep\": \"\",\n \"waardenverzameling\": [\n \"\",\n \"\"\n ]\n },\n \"toelichting\": \"\"\n}" + }, + "url": { + "raw": "{{baseUrl}}/eigenschappen/", + "host": [ + "{{baseUrl}}" + ], + "path": [ + "eigenschappen", + "" + ] + } + }, + "status": "Unauthorized", + "code": 401, + "_postman_previewlanguage": "json", + "header": [ + { + "key": "API-version", + "value": "", + "description": "Geeft een specifieke API-versie aan in de context van een specifieke aanroep. Voorbeeld: 1.2.1." + }, + { + "key": "Content-Type", + "value": "application/json" + } + ], + "cookie": [], + "body": "{\n \"code\": \"\",\n \"title\": \"\",\n \"status\": \"\",\n \"detail\": \"\",\n \"instance\": \"\",\n \"type\": \"\"\n}" + }, + { + "name": "Not found", + "originalRequest": { + "method": "PUT", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n \"naam\": \"\",\n \"definitie\": \"\",\n \"zaaktype\": \"\",\n \"specificatie\": {\n \"formaat\": \"\",\n \"lengte\": \"\",\n \"kardinaliteit\": \"\",\n \"groep\": \"\",\n \"waardenverzameling\": [\n \"\",\n \"\"\n ]\n },\n \"toelichting\": \"\"\n}" + }, + "url": { + "raw": "{{baseUrl}}/eigenschappen/", + "host": [ + "{{baseUrl}}" + ], + "path": [ + "eigenschappen", + "" + ] + } + }, + "status": "Not Found", + "code": 404, + "_postman_previewlanguage": "json", + "header": [ + { + "key": "API-version", + "value": "", + "description": "Geeft een specifieke API-versie aan in de context van een specifieke aanroep. Voorbeeld: 1.2.1." + }, + { + "key": "Content-Type", + "value": "application/json" + } + ], + "cookie": [], + "body": "{\n \"code\": \"\",\n \"title\": \"\",\n \"status\": \"\",\n \"detail\": \"\",\n \"instance\": \"\",\n \"type\": \"\"\n}" + }, + { + "name": "Bad request", + "originalRequest": { + "method": "PUT", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n \"naam\": \"\",\n \"definitie\": \"\",\n \"zaaktype\": \"\",\n \"specificatie\": {\n \"formaat\": \"\",\n \"lengte\": \"\",\n \"kardinaliteit\": \"\",\n \"groep\": \"\",\n \"waardenverzameling\": [\n \"\",\n \"\"\n ]\n },\n \"toelichting\": \"\"\n}" + }, + "url": { + "raw": "{{baseUrl}}/eigenschappen/", + "host": [ + "{{baseUrl}}" + ], + "path": [ + "eigenschappen", + "" + ] + } + }, + "status": "Bad Request", + "code": 400, + "_postman_previewlanguage": "json", + "header": [ + { + "key": "API-version", + "value": "", + "description": "Geeft een specifieke API-versie aan in de context van een specifieke aanroep. Voorbeeld: 1.2.1." + }, + { + "key": "Content-Type", + "value": "application/json" + } + ], + "cookie": [], + "body": "{\n \"code\": \"\",\n \"title\": \"\",\n \"status\": \"\",\n \"detail\": \"\",\n \"instance\": \"\",\n \"invalidParams\": [\n {\n \"name\": \"\",\n \"code\": \"\",\n \"reason\": \"\"\n },\n {\n \"name\": \"\",\n \"code\": \"\",\n \"reason\": \"\"\n }\n ],\n \"type\": \"\"\n}" + }, + { + "name": "Internal server error", + "originalRequest": { + "method": "PUT", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n \"naam\": \"\",\n \"definitie\": \"\",\n \"zaaktype\": \"\",\n \"specificatie\": {\n \"formaat\": \"\",\n \"lengte\": \"\",\n \"kardinaliteit\": \"\",\n \"groep\": \"\",\n \"waardenverzameling\": [\n \"\",\n \"\"\n ]\n },\n \"toelichting\": \"\"\n}" + }, + "url": { + "raw": "{{baseUrl}}/eigenschappen/", + "host": [ + "{{baseUrl}}" + ], + "path": [ + "eigenschappen", + "" + ] + } + }, + "status": "Internal Server Error", + "code": 500, + "_postman_previewlanguage": "json", + "header": [ + { + "key": "API-version", + "value": "", + "description": "Geeft een specifieke API-versie aan in de context van een specifieke aanroep. Voorbeeld: 1.2.1." + }, + { + "key": "Content-Type", + "value": "application/json" + } + ], + "cookie": [], + "body": "{\n \"code\": \"\",\n \"title\": \"\",\n \"status\": \"\",\n \"detail\": \"\",\n \"instance\": \"\",\n \"type\": \"\"\n}" + }, + { + "name": "Conflict", + "originalRequest": { + "method": "PUT", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n \"naam\": \"\",\n \"definitie\": \"\",\n \"zaaktype\": \"\",\n \"specificatie\": {\n \"formaat\": \"\",\n \"lengte\": \"\",\n \"kardinaliteit\": \"\",\n \"groep\": \"\",\n \"waardenverzameling\": [\n \"\",\n \"\"\n ]\n },\n \"toelichting\": \"\"\n}" + }, + "url": { + "raw": "{{baseUrl}}/eigenschappen/", + "host": [ + "{{baseUrl}}" + ], + "path": [ + "eigenschappen", + "" + ] + } + }, + "status": "Conflict", + "code": 409, + "_postman_previewlanguage": "json", + "header": [ + { + "key": "API-version", + "value": "", + "description": "Geeft een specifieke API-versie aan in de context van een specifieke aanroep. Voorbeeld: 1.2.1." + }, + { + "key": "Content-Type", + "value": "application/json" + } + ], + "cookie": [], + "body": "{\n \"code\": \"\",\n \"title\": \"\",\n \"status\": \"\",\n \"detail\": \"\",\n \"instance\": \"\",\n \"type\": \"\"\n}" + }, + { + "name": "Unsupported media type", + "originalRequest": { + "method": "PUT", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n \"naam\": \"\",\n \"definitie\": \"\",\n \"zaaktype\": \"\",\n \"specificatie\": {\n \"formaat\": \"\",\n \"lengte\": \"\",\n \"kardinaliteit\": \"\",\n \"groep\": \"\",\n \"waardenverzameling\": [\n \"\",\n \"\"\n ]\n },\n \"toelichting\": \"\"\n}" + }, + "url": { + "raw": "{{baseUrl}}/eigenschappen/", + "host": [ + "{{baseUrl}}" + ], + "path": [ + "eigenschappen", + "" + ] + } + }, + "status": "Unsupported Media Type", + "code": 415, + "_postman_previewlanguage": "json", + "header": [ + { + "key": "API-version", + "value": "", + "description": "Geeft een specifieke API-versie aan in de context van een specifieke aanroep. Voorbeeld: 1.2.1." + }, + { + "key": "Content-Type", + "value": "application/json" + } + ], + "cookie": [], + "body": "{\n \"code\": \"\",\n \"title\": \"\",\n \"status\": \"\",\n \"detail\": \"\",\n \"instance\": \"\",\n \"type\": \"\"\n}" + }, + { + "name": "Forbidden", + "originalRequest": { + "method": "PUT", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n \"naam\": \"\",\n \"definitie\": \"\",\n \"zaaktype\": \"\",\n \"specificatie\": {\n \"formaat\": \"\",\n \"lengte\": \"\",\n \"kardinaliteit\": \"\",\n \"groep\": \"\",\n \"waardenverzameling\": [\n \"\",\n \"\"\n ]\n },\n \"toelichting\": \"\"\n}" + }, + "url": { + "raw": "{{baseUrl}}/eigenschappen/", + "host": [ + "{{baseUrl}}" + ], + "path": [ + "eigenschappen", + "" + ] + } + }, + "status": "Forbidden", + "code": 403, + "_postman_previewlanguage": "json", + "header": [ + { + "key": "API-version", + "value": "", + "description": "Geeft een specifieke API-versie aan in de context van een specifieke aanroep. Voorbeeld: 1.2.1." + }, + { + "key": "Content-Type", + "value": "application/json" + } + ], + "cookie": [], + "body": "{\n \"code\": \"\",\n \"title\": \"\",\n \"status\": \"\",\n \"detail\": \"\",\n \"instance\": \"\",\n \"type\": \"\"\n}" + }, + { + "name": "OK", + "originalRequest": { + "method": "PUT", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n \"naam\": \"\",\n \"definitie\": \"\",\n \"zaaktype\": \"\",\n \"specificatie\": {\n \"formaat\": \"\",\n \"lengte\": \"\",\n \"kardinaliteit\": \"\",\n \"groep\": \"\",\n \"waardenverzameling\": [\n \"\",\n \"\"\n ]\n },\n \"toelichting\": \"\"\n}" + }, + "url": { + "raw": "{{baseUrl}}/eigenschappen/", + "host": [ + "{{baseUrl}}" + ], + "path": [ + "eigenschappen", + "" + ] + } + }, + "status": "OK", + "code": 200, + "_postman_previewlanguage": "json", + "header": [ + { + "key": "API-version", + "value": "", + "description": "Geeft een specifieke API-versie aan in de context van een specifieke aanroep. Voorbeeld: 1.2.1." + }, + { + "key": "Content-Type", + "value": "application/json" + } + ], + "cookie": [], + "body": "{\n \"naam\": \"\",\n \"definitie\": \"\",\n \"zaaktype\": \"\",\n \"url\": \"\",\n \"specificatie\": {\n \"formaat\": \"\",\n \"lengte\": \"\",\n \"kardinaliteit\": \"\",\n \"groep\": \"\",\n \"waardenverzameling\": [\n \"\",\n \"\"\n ]\n },\n \"toelichting\": \"\"\n}" + } + ] + }, + { + "name": "Werk een EIGENSCHAP deels bij.", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "pm.test(\"Werk een EIGENSCHAP deels bij geeft 200\", function() {", + " pm.response.to.have.status(200);", + "});", + "", + "pm.test(\"Werk een EIGENSCHAP deels bij past attributen aan\", function() {", + " pm.expect(pm.response.json().toelichting).to.be.equal(\"aangepast2\");", + "});" + ], + "type": "text/javascript" + } + } + ], + "request": { + "method": "PATCH", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n\t\"toelichting\": \"aangepast2\"\n}" + }, + "url": { + "raw": "{{eigenschap_url}}", + "host": [ + "{{eigenschap_url}}" + ] + }, + "description": "Werk een EIGENSCHAP deels bij. Dit kan alleen als het bijbehorende\nZAAKTYPE een concept betreft." + }, + "response": [ + { + "name": "OK", + "originalRequest": { + "method": "PATCH", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n \"naam\": \"\",\n \"definitie\": \"\",\n \"zaaktype\": \"\",\n \"specificatie\": {\n \"formaat\": \"\",\n \"lengte\": \"\",\n \"kardinaliteit\": \"\",\n \"groep\": \"\",\n \"waardenverzameling\": [\n \"\",\n \"\"\n ]\n },\n \"toelichting\": \"\"\n}" + }, + "url": { + "raw": "{{baseUrl}}/eigenschappen/", + "host": [ + "{{baseUrl}}" + ], + "path": [ + "eigenschappen", + "" + ] + } + }, + "status": "OK", + "code": 200, + "_postman_previewlanguage": "json", + "header": [ + { + "key": "API-version", + "value": "", + "description": "Geeft een specifieke API-versie aan in de context van een specifieke aanroep. Voorbeeld: 1.2.1." + }, + { + "key": "Content-Type", + "value": "application/json" + } + ], + "cookie": [], + "body": "{\n \"naam\": \"\",\n \"definitie\": \"\",\n \"zaaktype\": \"\",\n \"url\": \"\",\n \"specificatie\": {\n \"formaat\": \"\",\n \"lengte\": \"\",\n \"kardinaliteit\": \"\",\n \"groep\": \"\",\n \"waardenverzameling\": [\n \"\",\n \"\"\n ]\n },\n \"toelichting\": \"\"\n}" + }, + { + "name": "Gone", + "originalRequest": { + "method": "PATCH", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n \"naam\": \"\",\n \"definitie\": \"\",\n \"zaaktype\": \"\",\n \"specificatie\": {\n \"formaat\": \"\",\n \"lengte\": \"\",\n \"kardinaliteit\": \"\",\n \"groep\": \"\",\n \"waardenverzameling\": [\n \"\",\n \"\"\n ]\n },\n \"toelichting\": \"\"\n}" + }, + "url": { + "raw": "{{baseUrl}}/eigenschappen/", + "host": [ + "{{baseUrl}}" + ], + "path": [ + "eigenschappen", + "" + ] + } + }, + "status": "Gone", + "code": 410, + "_postman_previewlanguage": "json", + "header": [ + { + "key": "API-version", + "value": "", + "description": "Geeft een specifieke API-versie aan in de context van een specifieke aanroep. Voorbeeld: 1.2.1." + }, + { + "key": "Content-Type", + "value": "application/json" + } + ], + "cookie": [], + "body": "{\n \"code\": \"\",\n \"title\": \"\",\n \"status\": \"\",\n \"detail\": \"\",\n \"instance\": \"\",\n \"type\": \"\"\n}" + }, + { + "name": "Internal server error", + "originalRequest": { + "method": "PATCH", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n \"naam\": \"\",\n \"definitie\": \"\",\n \"zaaktype\": \"\",\n \"specificatie\": {\n \"formaat\": \"\",\n \"lengte\": \"\",\n \"kardinaliteit\": \"\",\n \"groep\": \"\",\n \"waardenverzameling\": [\n \"\",\n \"\"\n ]\n },\n \"toelichting\": \"\"\n}" + }, + "url": { + "raw": "{{baseUrl}}/eigenschappen/", + "host": [ + "{{baseUrl}}" + ], + "path": [ + "eigenschappen", + "" + ] + } + }, + "status": "Internal Server Error", + "code": 500, + "_postman_previewlanguage": "json", + "header": [ + { + "key": "API-version", + "value": "", + "description": "Geeft een specifieke API-versie aan in de context van een specifieke aanroep. Voorbeeld: 1.2.1." + }, + { + "key": "Content-Type", + "value": "application/json" + } + ], + "cookie": [], + "body": "{\n \"code\": \"\",\n \"title\": \"\",\n \"status\": \"\",\n \"detail\": \"\",\n \"instance\": \"\",\n \"type\": \"\"\n}" + }, + { + "name": "Forbidden", + "originalRequest": { + "method": "PATCH", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n \"naam\": \"\",\n \"definitie\": \"\",\n \"zaaktype\": \"\",\n \"specificatie\": {\n \"formaat\": \"\",\n \"lengte\": \"\",\n \"kardinaliteit\": \"\",\n \"groep\": \"\",\n \"waardenverzameling\": [\n \"\",\n \"\"\n ]\n },\n \"toelichting\": \"\"\n}" + }, + "url": { + "raw": "{{baseUrl}}/eigenschappen/", + "host": [ + "{{baseUrl}}" + ], + "path": [ + "eigenschappen", + "" + ] + } + }, + "status": "Forbidden", + "code": 403, + "_postman_previewlanguage": "json", + "header": [ + { + "key": "API-version", + "value": "", + "description": "Geeft een specifieke API-versie aan in de context van een specifieke aanroep. Voorbeeld: 1.2.1." + }, + { + "key": "Content-Type", + "value": "application/json" + } + ], + "cookie": [], + "body": "{\n \"code\": \"\",\n \"title\": \"\",\n \"status\": \"\",\n \"detail\": \"\",\n \"instance\": \"\",\n \"type\": \"\"\n}" + }, + { + "name": "Bad request", + "originalRequest": { + "method": "PATCH", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n \"naam\": \"\",\n \"definitie\": \"\",\n \"zaaktype\": \"\",\n \"specificatie\": {\n \"formaat\": \"\",\n \"lengte\": \"\",\n \"kardinaliteit\": \"\",\n \"groep\": \"\",\n \"waardenverzameling\": [\n \"\",\n \"\"\n ]\n },\n \"toelichting\": \"\"\n}" + }, + "url": { + "raw": "{{baseUrl}}/eigenschappen/", + "host": [ + "{{baseUrl}}" + ], + "path": [ + "eigenschappen", + "" + ] + } + }, + "status": "Bad Request", + "code": 400, + "_postman_previewlanguage": "json", + "header": [ + { + "key": "API-version", + "value": "", + "description": "Geeft een specifieke API-versie aan in de context van een specifieke aanroep. Voorbeeld: 1.2.1." + }, + { + "key": "Content-Type", + "value": "application/json" + } + ], + "cookie": [], + "body": "{\n \"code\": \"\",\n \"title\": \"\",\n \"status\": \"\",\n \"detail\": \"\",\n \"instance\": \"\",\n \"invalidParams\": [\n {\n \"name\": \"\",\n \"code\": \"\",\n \"reason\": \"\"\n },\n {\n \"name\": \"\",\n \"code\": \"\",\n \"reason\": \"\"\n }\n ],\n \"type\": \"\"\n}" + }, + { + "name": "Not acceptable", + "originalRequest": { + "method": "PATCH", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n \"naam\": \"\",\n \"definitie\": \"\",\n \"zaaktype\": \"\",\n \"specificatie\": {\n \"formaat\": \"\",\n \"lengte\": \"\",\n \"kardinaliteit\": \"\",\n \"groep\": \"\",\n \"waardenverzameling\": [\n \"\",\n \"\"\n ]\n },\n \"toelichting\": \"\"\n}" + }, + "url": { + "raw": "{{baseUrl}}/eigenschappen/", + "host": [ + "{{baseUrl}}" + ], + "path": [ + "eigenschappen", + "" + ] + } + }, + "status": "Not Acceptable", + "code": 406, + "_postman_previewlanguage": "json", + "header": [ + { + "key": "API-version", + "value": "", + "description": "Geeft een specifieke API-versie aan in de context van een specifieke aanroep. Voorbeeld: 1.2.1." + }, + { + "key": "Content-Type", + "value": "application/json" + } + ], + "cookie": [], + "body": "{\n \"code\": \"\",\n \"title\": \"\",\n \"status\": \"\",\n \"detail\": \"\",\n \"instance\": \"\",\n \"type\": \"\"\n}" + }, + { + "name": "Conflict", + "originalRequest": { + "method": "PATCH", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n \"naam\": \"\",\n \"definitie\": \"\",\n \"zaaktype\": \"\",\n \"specificatie\": {\n \"formaat\": \"\",\n \"lengte\": \"\",\n \"kardinaliteit\": \"\",\n \"groep\": \"\",\n \"waardenverzameling\": [\n \"\",\n \"\"\n ]\n },\n \"toelichting\": \"\"\n}" + }, + "url": { + "raw": "{{baseUrl}}/eigenschappen/", + "host": [ + "{{baseUrl}}" + ], + "path": [ + "eigenschappen", + "" + ] + } + }, + "status": "Conflict", + "code": 409, + "_postman_previewlanguage": "json", + "header": [ + { + "key": "API-version", + "value": "", + "description": "Geeft een specifieke API-versie aan in de context van een specifieke aanroep. Voorbeeld: 1.2.1." + }, + { + "key": "Content-Type", + "value": "application/json" + } + ], + "cookie": [], + "body": "{\n \"code\": \"\",\n \"title\": \"\",\n \"status\": \"\",\n \"detail\": \"\",\n \"instance\": \"\",\n \"type\": \"\"\n}" + }, + { + "name": "Unauthorized", + "originalRequest": { + "method": "PATCH", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n \"naam\": \"\",\n \"definitie\": \"\",\n \"zaaktype\": \"\",\n \"specificatie\": {\n \"formaat\": \"\",\n \"lengte\": \"\",\n \"kardinaliteit\": \"\",\n \"groep\": \"\",\n \"waardenverzameling\": [\n \"\",\n \"\"\n ]\n },\n \"toelichting\": \"\"\n}" + }, + "url": { + "raw": "{{baseUrl}}/eigenschappen/", + "host": [ + "{{baseUrl}}" + ], + "path": [ + "eigenschappen", + "" + ] + } + }, + "status": "Unauthorized", + "code": 401, + "_postman_previewlanguage": "json", + "header": [ + { + "key": "API-version", + "value": "", + "description": "Geeft een specifieke API-versie aan in de context van een specifieke aanroep. Voorbeeld: 1.2.1." + }, + { + "key": "Content-Type", + "value": "application/json" + } + ], + "cookie": [], + "body": "{\n \"code\": \"\",\n \"title\": \"\",\n \"status\": \"\",\n \"detail\": \"\",\n \"instance\": \"\",\n \"type\": \"\"\n}" + }, + { + "name": "Too many requests", + "originalRequest": { + "method": "PATCH", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n \"naam\": \"\",\n \"definitie\": \"\",\n \"zaaktype\": \"\",\n \"specificatie\": {\n \"formaat\": \"\",\n \"lengte\": \"\",\n \"kardinaliteit\": \"\",\n \"groep\": \"\",\n \"waardenverzameling\": [\n \"\",\n \"\"\n ]\n },\n \"toelichting\": \"\"\n}" + }, + "url": { + "raw": "{{baseUrl}}/eigenschappen/", + "host": [ + "{{baseUrl}}" + ], + "path": [ + "eigenschappen", + "" + ] + } + }, + "status": "Too Many Requests", + "code": 429, + "_postman_previewlanguage": "json", + "header": [ + { + "key": "API-version", + "value": "", + "description": "Geeft een specifieke API-versie aan in de context van een specifieke aanroep. Voorbeeld: 1.2.1." + }, + { + "key": "Content-Type", + "value": "application/json" + } + ], + "cookie": [], + "body": "{\n \"code\": \"\",\n \"title\": \"\",\n \"status\": \"\",\n \"detail\": \"\",\n \"instance\": \"\",\n \"type\": \"\"\n}" + }, + { + "name": "Not found", + "originalRequest": { + "method": "PATCH", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n \"naam\": \"\",\n \"definitie\": \"\",\n \"zaaktype\": \"\",\n \"specificatie\": {\n \"formaat\": \"\",\n \"lengte\": \"\",\n \"kardinaliteit\": \"\",\n \"groep\": \"\",\n \"waardenverzameling\": [\n \"\",\n \"\"\n ]\n },\n \"toelichting\": \"\"\n}" + }, + "url": { + "raw": "{{baseUrl}}/eigenschappen/", + "host": [ + "{{baseUrl}}" + ], + "path": [ + "eigenschappen", + "" + ] + } + }, + "status": "Not Found", + "code": 404, + "_postman_previewlanguage": "json", + "header": [ + { + "key": "API-version", + "value": "", + "description": "Geeft een specifieke API-versie aan in de context van een specifieke aanroep. Voorbeeld: 1.2.1." + }, + { + "key": "Content-Type", + "value": "application/json" + } + ], + "cookie": [], + "body": "{\n \"code\": \"\",\n \"title\": \"\",\n \"status\": \"\",\n \"detail\": \"\",\n \"instance\": \"\",\n \"type\": \"\"\n}" + }, + { + "name": "Unsupported media type", + "originalRequest": { + "method": "PATCH", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n \"naam\": \"\",\n \"definitie\": \"\",\n \"zaaktype\": \"\",\n \"specificatie\": {\n \"formaat\": \"\",\n \"lengte\": \"\",\n \"kardinaliteit\": \"\",\n \"groep\": \"\",\n \"waardenverzameling\": [\n \"\",\n \"\"\n ]\n },\n \"toelichting\": \"\"\n}" + }, + "url": { + "raw": "{{baseUrl}}/eigenschappen/", + "host": [ + "{{baseUrl}}" + ], + "path": [ + "eigenschappen", + "" + ] + } + }, + "status": "Unsupported Media Type", + "code": 415, + "_postman_previewlanguage": "json", + "header": [ + { + "key": "API-version", + "value": "", + "description": "Geeft een specifieke API-versie aan in de context van een specifieke aanroep. Voorbeeld: 1.2.1." + }, + { + "key": "Content-Type", + "value": "application/json" + } + ], + "cookie": [], + "body": "{\n \"code\": \"\",\n \"title\": \"\",\n \"status\": \"\",\n \"detail\": \"\",\n \"instance\": \"\",\n \"type\": \"\"\n}" + } + ] + }, + { + "name": "Verwijder een EIGENSCHAP.", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "pm.test(\"Verwijder een EIGENSCHAP geeft 204\", function() {", + " pm.response.to.have.status(204);", + "});" + ], + "type": "text/javascript" + } + } + ], + "request": { + "method": "DELETE", + "header": [ + { + "key": "Accept", + "value": "application/json" + }, + { + "key": "Content-Type", + "value": "application/json" + } + ], + "url": { + "raw": "{{eigenschap_url}}", + "host": [ + "{{eigenschap_url}}" + ] + }, + "description": "Verwijder een EIGENSCHAP. Dit kan alleen als het bijbehorende ZAAKTYPE een\nconcept betreft." + }, + "response": [] + } + ], + "description": "Folder for eigenschappen" + }, + { + "name": "informatieobjecttypen", + "item": [ + { + "name": "Alle INFORMATIEOBJECTTYPEn opvragen.", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "pm.test(\"Alle INFORMATIEOBJECTTYPEn opvragen geeft 200\", function() {", + " pm.response.to.have.status(200);", + "});" + ], + "type": "text/javascript" + } + } + ], + "request": { + "method": "GET", + "header": [ + { + "key": "Accept", + "value": "application/json" + }, + { + "key": "Content-Type", + "value": "application/json" + } + ], + "url": { + "raw": "{{ztc_url}}/informatieobjecttypen?catalogus={{catalogus_url}}&status=concept&page=1", + "host": [ + "{{ztc_url}}" + ], + "path": [ + "informatieobjecttypen" + ], + "query": [ + { + "key": "catalogus", + "value": "{{catalogus_url}}" + }, + { + "key": "status", + "value": "concept" + }, + { + "key": "page", + "value": "1" + } + ] + }, + "description": "Deze lijst kan gefilterd wordt met query-string parameters." + }, + "response": [] + }, + { + "name": "Maak een INFORMATIEOBJECTTYPE aan.", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "pm.test(\"Maak een INFORMATIEOBJECTTYPE aan geeft 201\", function() {", + " pm.response.to.have.status(201);", + "});", + "", + "if(pm.response.code == 201) {", + " pm.environment.set(\"created_informatieobjecttype_url\", pm.response.json().url);", + " pm.environment.set(\"informatieobjecttype_body\", pm.request.body.raw);", + "}" + ], + "type": "text/javascript", + "packages": {} + } + } + ], + "request": { + "method": "POST", + "header": [ + { + "key": "Accept", + "value": "application/json" + }, + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n\t\"catalogus\": \"{{catalogus_url}}\",\n\t\"omschrijving\": \"informatieobject2\",\n\t\"vertrouwelijkheidaanduiding\": \"openbaar\",\n\t\"beginGeldigheid\": \"2019-01-01\",\n \"informatieobjectcategorie\": \"testobjecten\"\n}" + }, + "url": { + "raw": "{{ztc_url}}/informatieobjecttypen", + "host": [ + "{{ztc_url}}" + ], + "path": [ + "informatieobjecttypen" + ] + }, + "description": "Maak een INFORMATIEOBJECTTYPE aan." + }, + "response": [] + }, + { + "name": "Een specifiek INFORMATIEOBJECTTYPE opvragen.", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "pm.test(\"Een specifiek INFORMATIEOBJECTTYPE opvragen geeft 200\", function() {", + " pm.response.to.have.status(200);", + "});" + ], + "type": "text/javascript" + } + } + ], + "request": { + "method": "GET", + "header": [ + { + "key": "Accept", + "value": "application/json" + }, + { + "key": "Content-Type", + "value": "application/json" + } + ], + "url": { + "raw": "{{created_informatieobjecttype_url}}", + "host": [ + "{{created_informatieobjecttype_url}}" + ] + }, + "description": "Een specifieke INFORMATIEOBJECTTYPE opvragen." + }, + "response": [] + }, + { + "name": "Werk een INFORMATIEOBJECTTYPE in zijn geheel bij.", + "event": [ + { + "listen": "prerequest", + "script": { + "exec": [ + "// Retrieve the body template and modify as needed", + "var body = JSON.parse(pm.environment.get(\"informatieobjecttype_body\"));", + "body.omschrijving = \"aangepast\";", + "", + "// Store the modified body, allowing it to be used in the main request", + "pm.environment.set(\"request_body\", JSON.stringify(body));" + ], + "type": "text/javascript", + "packages": {} + } + }, + { + "listen": "test", + "script": { + "exec": [ + "pm.test(\"Werk een INFORMATIEOBJECTTYPE in zijn geheel bij geeft 200\", function() {", + " pm.response.to.have.status(200);", + "});", + "", + "pm.test(\"Werk een INFORMATIEOBJECTTYPE in zijn geheel bij past attributen aan\", function() {", + " pm.expect(pm.response.json().omschrijving).to.be.equal(\"aangepast\");", + "});" + ], + "type": "text/javascript", + "packages": {} + } + } + ], + "request": { + "method": "PUT", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{{request_body}}" + }, + "url": { + "raw": "{{created_informatieobjecttype_url}}", + "host": [ + "{{created_informatieobjecttype_url}}" + ] + }, + "description": "Werk een INFORMATIEOBJECTTYPE in zijn geheel bij. Dit kan alleen als het een\nconcept betreft." + }, + "response": [ + { + "name": "Not acceptable", + "originalRequest": { + "method": "PUT", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n \"catalogus\": \"\",\n \"omschrijving\": \"\",\n \"vertrouwelijkheidaanduiding\": \"\",\n \"beginGeldigheid\": \"\",\n \"eindeGeldigheid\": \"\"\n}" + }, + "url": { + "raw": "{{baseUrl}}/informatieobjecttypen/", + "host": [ + "{{baseUrl}}" + ], + "path": [ + "informatieobjecttypen", + "" + ] + } + }, + "status": "Not Acceptable", + "code": 406, + "_postman_previewlanguage": "json", + "header": [ + { + "key": "API-version", + "value": "", + "description": "Geeft een specifieke API-versie aan in de context van een specifieke aanroep. Voorbeeld: 1.2.1." + }, + { + "key": "Content-Type", + "value": "application/json" + } + ], + "cookie": [], + "body": "{\n \"code\": \"\",\n \"title\": \"\",\n \"status\": \"\",\n \"detail\": \"\",\n \"instance\": \"\",\n \"type\": \"\"\n}" + }, + { + "name": "Gone", + "originalRequest": { + "method": "PUT", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n \"catalogus\": \"\",\n \"omschrijving\": \"\",\n \"vertrouwelijkheidaanduiding\": \"\",\n \"beginGeldigheid\": \"\",\n \"eindeGeldigheid\": \"\"\n}" + }, + "url": { + "raw": "{{baseUrl}}/informatieobjecttypen/", + "host": [ + "{{baseUrl}}" + ], + "path": [ + "informatieobjecttypen", + "" + ] + } + }, + "status": "Gone", + "code": 410, + "_postman_previewlanguage": "json", + "header": [ + { + "key": "API-version", + "value": "", + "description": "Geeft een specifieke API-versie aan in de context van een specifieke aanroep. Voorbeeld: 1.2.1." + }, + { + "key": "Content-Type", + "value": "application/json" + } + ], + "cookie": [], + "body": "{\n \"code\": \"\",\n \"title\": \"\",\n \"status\": \"\",\n \"detail\": \"\",\n \"instance\": \"\",\n \"type\": \"\"\n}" + }, + { + "name": "Too many requests", + "originalRequest": { + "method": "PUT", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n \"catalogus\": \"\",\n \"omschrijving\": \"\",\n \"vertrouwelijkheidaanduiding\": \"\",\n \"beginGeldigheid\": \"\",\n \"eindeGeldigheid\": \"\"\n}" + }, + "url": { + "raw": "{{baseUrl}}/informatieobjecttypen/", + "host": [ + "{{baseUrl}}" + ], + "path": [ + "informatieobjecttypen", + "" + ] + } + }, + "status": "Too Many Requests", + "code": 429, + "_postman_previewlanguage": "json", + "header": [ + { + "key": "API-version", + "value": "", + "description": "Geeft een specifieke API-versie aan in de context van een specifieke aanroep. Voorbeeld: 1.2.1." + }, + { + "key": "Content-Type", + "value": "application/json" + } + ], + "cookie": [], + "body": "{\n \"code\": \"\",\n \"title\": \"\",\n \"status\": \"\",\n \"detail\": \"\",\n \"instance\": \"\",\n \"type\": \"\"\n}" + }, + { + "name": "Conflict", + "originalRequest": { + "method": "PUT", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n \"catalogus\": \"\",\n \"omschrijving\": \"\",\n \"vertrouwelijkheidaanduiding\": \"\",\n \"beginGeldigheid\": \"\",\n \"eindeGeldigheid\": \"\"\n}" + }, + "url": { + "raw": "{{baseUrl}}/informatieobjecttypen/", + "host": [ + "{{baseUrl}}" + ], + "path": [ + "informatieobjecttypen", + "" + ] + } + }, + "status": "Conflict", + "code": 409, + "_postman_previewlanguage": "json", + "header": [ + { + "key": "API-version", + "value": "", + "description": "Geeft een specifieke API-versie aan in de context van een specifieke aanroep. Voorbeeld: 1.2.1." + }, + { + "key": "Content-Type", + "value": "application/json" + } + ], + "cookie": [], + "body": "{\n \"code\": \"\",\n \"title\": \"\",\n \"status\": \"\",\n \"detail\": \"\",\n \"instance\": \"\",\n \"type\": \"\"\n}" + }, + { + "name": "Internal server error", + "originalRequest": { + "method": "PUT", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n \"catalogus\": \"\",\n \"omschrijving\": \"\",\n \"vertrouwelijkheidaanduiding\": \"\",\n \"beginGeldigheid\": \"\",\n \"eindeGeldigheid\": \"\"\n}" + }, + "url": { + "raw": "{{baseUrl}}/informatieobjecttypen/", + "host": [ + "{{baseUrl}}" + ], + "path": [ + "informatieobjecttypen", + "" + ] + } + }, + "status": "Internal Server Error", + "code": 500, + "_postman_previewlanguage": "json", + "header": [ + { + "key": "API-version", + "value": "", + "description": "Geeft een specifieke API-versie aan in de context van een specifieke aanroep. Voorbeeld: 1.2.1." + }, + { + "key": "Content-Type", + "value": "application/json" + } + ], + "cookie": [], + "body": "{\n \"code\": \"\",\n \"title\": \"\",\n \"status\": \"\",\n \"detail\": \"\",\n \"instance\": \"\",\n \"type\": \"\"\n}" + }, + { + "name": "Unauthorized", + "originalRequest": { + "method": "PUT", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n \"catalogus\": \"\",\n \"omschrijving\": \"\",\n \"vertrouwelijkheidaanduiding\": \"\",\n \"beginGeldigheid\": \"\",\n \"eindeGeldigheid\": \"\"\n}" + }, + "url": { + "raw": "{{baseUrl}}/informatieobjecttypen/", + "host": [ + "{{baseUrl}}" + ], + "path": [ + "informatieobjecttypen", + "" + ] + } + }, + "status": "Unauthorized", + "code": 401, + "_postman_previewlanguage": "json", + "header": [ + { + "key": "API-version", + "value": "", + "description": "Geeft een specifieke API-versie aan in de context van een specifieke aanroep. Voorbeeld: 1.2.1." + }, + { + "key": "Content-Type", + "value": "application/json" + } + ], + "cookie": [], + "body": "{\n \"code\": \"\",\n \"title\": \"\",\n \"status\": \"\",\n \"detail\": \"\",\n \"instance\": \"\",\n \"type\": \"\"\n}" + }, + { + "name": "Bad request", + "originalRequest": { + "method": "PUT", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n \"catalogus\": \"\",\n \"omschrijving\": \"\",\n \"vertrouwelijkheidaanduiding\": \"\",\n \"beginGeldigheid\": \"\",\n \"eindeGeldigheid\": \"\"\n}" + }, + "url": { + "raw": "{{baseUrl}}/informatieobjecttypen/", + "host": [ + "{{baseUrl}}" + ], + "path": [ + "informatieobjecttypen", + "" + ] + } + }, + "status": "Bad Request", + "code": 400, + "_postman_previewlanguage": "json", + "header": [ + { + "key": "API-version", + "value": "", + "description": "Geeft een specifieke API-versie aan in de context van een specifieke aanroep. Voorbeeld: 1.2.1." + }, + { + "key": "Content-Type", + "value": "application/json" + } + ], + "cookie": [], + "body": "{\n \"code\": \"\",\n \"title\": \"\",\n \"status\": \"\",\n \"detail\": \"\",\n \"instance\": \"\",\n \"invalidParams\": [\n {\n \"name\": \"\",\n \"code\": \"\",\n \"reason\": \"\"\n },\n {\n \"name\": \"\",\n \"code\": \"\",\n \"reason\": \"\"\n }\n ],\n \"type\": \"\"\n}" + }, + { + "name": "Unsupported media type", + "originalRequest": { + "method": "PUT", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n \"catalogus\": \"\",\n \"omschrijving\": \"\",\n \"vertrouwelijkheidaanduiding\": \"\",\n \"beginGeldigheid\": \"\",\n \"eindeGeldigheid\": \"\"\n}" + }, + "url": { + "raw": "{{baseUrl}}/informatieobjecttypen/", + "host": [ + "{{baseUrl}}" + ], + "path": [ + "informatieobjecttypen", + "" + ] + } + }, + "status": "Unsupported Media Type", + "code": 415, + "_postman_previewlanguage": "json", + "header": [ + { + "key": "API-version", + "value": "", + "description": "Geeft een specifieke API-versie aan in de context van een specifieke aanroep. Voorbeeld: 1.2.1." + }, + { + "key": "Content-Type", + "value": "application/json" + } + ], + "cookie": [], + "body": "{\n \"code\": \"\",\n \"title\": \"\",\n \"status\": \"\",\n \"detail\": \"\",\n \"instance\": \"\",\n \"type\": \"\"\n}" + }, + { + "name": "Forbidden", + "originalRequest": { + "method": "PUT", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n \"catalogus\": \"\",\n \"omschrijving\": \"\",\n \"vertrouwelijkheidaanduiding\": \"\",\n \"beginGeldigheid\": \"\",\n \"eindeGeldigheid\": \"\"\n}" + }, + "url": { + "raw": "{{baseUrl}}/informatieobjecttypen/", + "host": [ + "{{baseUrl}}" + ], + "path": [ + "informatieobjecttypen", + "" + ] + } + }, + "status": "Forbidden", + "code": 403, + "_postman_previewlanguage": "json", + "header": [ + { + "key": "API-version", + "value": "", + "description": "Geeft een specifieke API-versie aan in de context van een specifieke aanroep. Voorbeeld: 1.2.1." + }, + { + "key": "Content-Type", + "value": "application/json" + } + ], + "cookie": [], + "body": "{\n \"code\": \"\",\n \"title\": \"\",\n \"status\": \"\",\n \"detail\": \"\",\n \"instance\": \"\",\n \"type\": \"\"\n}" + }, + { + "name": "Not found", + "originalRequest": { + "method": "PUT", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n \"catalogus\": \"\",\n \"omschrijving\": \"\",\n \"vertrouwelijkheidaanduiding\": \"\",\n \"beginGeldigheid\": \"\",\n \"eindeGeldigheid\": \"\"\n}" + }, + "url": { + "raw": "{{baseUrl}}/informatieobjecttypen/", + "host": [ + "{{baseUrl}}" + ], + "path": [ + "informatieobjecttypen", + "" + ] + } + }, + "status": "Not Found", + "code": 404, + "_postman_previewlanguage": "json", + "header": [ + { + "key": "API-version", + "value": "", + "description": "Geeft een specifieke API-versie aan in de context van een specifieke aanroep. Voorbeeld: 1.2.1." + }, + { + "key": "Content-Type", + "value": "application/json" + } + ], + "cookie": [], + "body": "{\n \"code\": \"\",\n \"title\": \"\",\n \"status\": \"\",\n \"detail\": \"\",\n \"instance\": \"\",\n \"type\": \"\"\n}" + }, + { + "name": "OK", + "originalRequest": { + "method": "PUT", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n \"catalogus\": \"\",\n \"omschrijving\": \"\",\n \"vertrouwelijkheidaanduiding\": \"\",\n \"beginGeldigheid\": \"\",\n \"eindeGeldigheid\": \"\"\n}" + }, + "url": { + "raw": "{{baseUrl}}/informatieobjecttypen/", + "host": [ + "{{baseUrl}}" + ], + "path": [ + "informatieobjecttypen", + "" + ] + } + }, + "status": "OK", + "code": 200, + "_postman_previewlanguage": "json", + "header": [ + { + "key": "API-version", + "value": "", + "description": "Geeft een specifieke API-versie aan in de context van een specifieke aanroep. Voorbeeld: 1.2.1." + }, + { + "key": "Content-Type", + "value": "application/json" + } + ], + "cookie": [], + "body": "{\n \"catalogus\": \"\",\n \"omschrijving\": \"\",\n \"vertrouwelijkheidaanduiding\": \"\",\n \"beginGeldigheid\": \"\",\n \"url\": \"\",\n \"eindeGeldigheid\": \"\",\n \"concept\": \"\"\n}" + } + ] + }, + { + "name": "Werk een INFORMATIEOBJECTTYPE deels bij.", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "pm.test(\"Werk een INFORMATIEOBJECTTYPE deels bij geeft 200\", function() {", + " pm.response.to.have.status(200);", + "});", + "", + "pm.test(\"Werk een INFORMATIEOBJECTTYPE deels bij past attributen aan\", function() {", + " pm.expect(pm.response.json().omschrijving).to.be.equal(\"aangepast2\");", + "});" + ], + "type": "text/javascript" + } + } + ], + "request": { + "method": "PATCH", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n\t\"omschrijving\": \"aangepast2\"\n}" + }, + "url": { + "raw": "{{created_informatieobjecttype_url}}", + "host": [ + "{{created_informatieobjecttype_url}}" + ] + }, + "description": "Werk een INFORMATIEOBJECTTYPE deels bij. Dit kan alleen als het een concept\nbetreft." + }, + "response": [ + { + "name": "Forbidden", + "originalRequest": { + "method": "PATCH", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n \"catalogus\": \"\",\n \"omschrijving\": \"\",\n \"vertrouwelijkheidaanduiding\": \"\",\n \"beginGeldigheid\": \"\",\n \"eindeGeldigheid\": \"\"\n}" + }, + "url": { + "raw": "{{baseUrl}}/informatieobjecttypen/", + "host": [ + "{{baseUrl}}" + ], + "path": [ + "informatieobjecttypen", + "" + ] + } + }, + "status": "Forbidden", + "code": 403, + "_postman_previewlanguage": "json", + "header": [ + { + "key": "API-version", + "value": "", + "description": "Geeft een specifieke API-versie aan in de context van een specifieke aanroep. Voorbeeld: 1.2.1." + }, + { + "key": "Content-Type", + "value": "application/json" + } + ], + "cookie": [], + "body": "{\n \"code\": \"\",\n \"title\": \"\",\n \"status\": \"\",\n \"detail\": \"\",\n \"instance\": \"\",\n \"type\": \"\"\n}" + }, + { + "name": "Conflict", + "originalRequest": { + "method": "PATCH", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n \"catalogus\": \"\",\n \"omschrijving\": \"\",\n \"vertrouwelijkheidaanduiding\": \"\",\n \"beginGeldigheid\": \"\",\n \"eindeGeldigheid\": \"\"\n}" + }, + "url": { + "raw": "{{baseUrl}}/informatieobjecttypen/", + "host": [ + "{{baseUrl}}" + ], + "path": [ + "informatieobjecttypen", + "" + ] + } + }, + "status": "Conflict", + "code": 409, + "_postman_previewlanguage": "json", + "header": [ + { + "key": "API-version", + "value": "", + "description": "Geeft een specifieke API-versie aan in de context van een specifieke aanroep. Voorbeeld: 1.2.1." + }, + { + "key": "Content-Type", + "value": "application/json" + } + ], + "cookie": [], + "body": "{\n \"code\": \"\",\n \"title\": \"\",\n \"status\": \"\",\n \"detail\": \"\",\n \"instance\": \"\",\n \"type\": \"\"\n}" + }, + { + "name": "Unsupported media type", + "originalRequest": { + "method": "PATCH", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n \"catalogus\": \"\",\n \"omschrijving\": \"\",\n \"vertrouwelijkheidaanduiding\": \"\",\n \"beginGeldigheid\": \"\",\n \"eindeGeldigheid\": \"\"\n}" + }, + "url": { + "raw": "{{baseUrl}}/informatieobjecttypen/", + "host": [ + "{{baseUrl}}" + ], + "path": [ + "informatieobjecttypen", + "" + ] + } + }, + "status": "Unsupported Media Type", + "code": 415, + "_postman_previewlanguage": "json", + "header": [ + { + "key": "API-version", + "value": "", + "description": "Geeft een specifieke API-versie aan in de context van een specifieke aanroep. Voorbeeld: 1.2.1." + }, + { + "key": "Content-Type", + "value": "application/json" + } + ], + "cookie": [], + "body": "{\n \"code\": \"\",\n \"title\": \"\",\n \"status\": \"\",\n \"detail\": \"\",\n \"instance\": \"\",\n \"type\": \"\"\n}" + }, + { + "name": "Bad request", + "originalRequest": { + "method": "PATCH", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n \"catalogus\": \"\",\n \"omschrijving\": \"\",\n \"vertrouwelijkheidaanduiding\": \"\",\n \"beginGeldigheid\": \"\",\n \"eindeGeldigheid\": \"\"\n}" + }, + "url": { + "raw": "{{baseUrl}}/informatieobjecttypen/", + "host": [ + "{{baseUrl}}" + ], + "path": [ + "informatieobjecttypen", + "" + ] + } + }, + "status": "Bad Request", + "code": 400, + "_postman_previewlanguage": "json", + "header": [ + { + "key": "API-version", + "value": "", + "description": "Geeft een specifieke API-versie aan in de context van een specifieke aanroep. Voorbeeld: 1.2.1." + }, + { + "key": "Content-Type", + "value": "application/json" + } + ], + "cookie": [], + "body": "{\n \"code\": \"\",\n \"title\": \"\",\n \"status\": \"\",\n \"detail\": \"\",\n \"instance\": \"\",\n \"invalidParams\": [\n {\n \"name\": \"\",\n \"code\": \"\",\n \"reason\": \"\"\n },\n {\n \"name\": \"\",\n \"code\": \"\",\n \"reason\": \"\"\n }\n ],\n \"type\": \"\"\n}" + }, + { + "name": "Too many requests", + "originalRequest": { + "method": "PATCH", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n \"catalogus\": \"\",\n \"omschrijving\": \"\",\n \"vertrouwelijkheidaanduiding\": \"\",\n \"beginGeldigheid\": \"\",\n \"eindeGeldigheid\": \"\"\n}" + }, + "url": { + "raw": "{{baseUrl}}/informatieobjecttypen/", + "host": [ + "{{baseUrl}}" + ], + "path": [ + "informatieobjecttypen", + "" + ] + } + }, + "status": "Too Many Requests", + "code": 429, + "_postman_previewlanguage": "json", + "header": [ + { + "key": "API-version", + "value": "", + "description": "Geeft een specifieke API-versie aan in de context van een specifieke aanroep. Voorbeeld: 1.2.1." + }, + { + "key": "Content-Type", + "value": "application/json" + } + ], + "cookie": [], + "body": "{\n \"code\": \"\",\n \"title\": \"\",\n \"status\": \"\",\n \"detail\": \"\",\n \"instance\": \"\",\n \"type\": \"\"\n}" + }, + { + "name": "OK", + "originalRequest": { + "method": "PATCH", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n \"catalogus\": \"\",\n \"omschrijving\": \"\",\n \"vertrouwelijkheidaanduiding\": \"\",\n \"beginGeldigheid\": \"\",\n \"eindeGeldigheid\": \"\"\n}" + }, + "url": { + "raw": "{{baseUrl}}/informatieobjecttypen/", + "host": [ + "{{baseUrl}}" + ], + "path": [ + "informatieobjecttypen", + "" + ] + } + }, + "status": "OK", + "code": 200, + "_postman_previewlanguage": "json", + "header": [ + { + "key": "API-version", + "value": "", + "description": "Geeft een specifieke API-versie aan in de context van een specifieke aanroep. Voorbeeld: 1.2.1." + }, + { + "key": "Content-Type", + "value": "application/json" + } + ], + "cookie": [], + "body": "{\n \"catalogus\": \"\",\n \"omschrijving\": \"\",\n \"vertrouwelijkheidaanduiding\": \"\",\n \"beginGeldigheid\": \"\",\n \"url\": \"\",\n \"eindeGeldigheid\": \"\",\n \"concept\": \"\"\n}" + }, + { + "name": "Not found", + "originalRequest": { + "method": "PATCH", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n \"catalogus\": \"\",\n \"omschrijving\": \"\",\n \"vertrouwelijkheidaanduiding\": \"\",\n \"beginGeldigheid\": \"\",\n \"eindeGeldigheid\": \"\"\n}" + }, + "url": { + "raw": "{{baseUrl}}/informatieobjecttypen/", + "host": [ + "{{baseUrl}}" + ], + "path": [ + "informatieobjecttypen", + "" + ] + } + }, + "status": "Not Found", + "code": 404, + "_postman_previewlanguage": "json", + "header": [ + { + "key": "API-version", + "value": "", + "description": "Geeft een specifieke API-versie aan in de context van een specifieke aanroep. Voorbeeld: 1.2.1." + }, + { + "key": "Content-Type", + "value": "application/json" + } + ], + "cookie": [], + "body": "{\n \"code\": \"\",\n \"title\": \"\",\n \"status\": \"\",\n \"detail\": \"\",\n \"instance\": \"\",\n \"type\": \"\"\n}" + }, + { + "name": "Internal server error", + "originalRequest": { + "method": "PATCH", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n \"catalogus\": \"\",\n \"omschrijving\": \"\",\n \"vertrouwelijkheidaanduiding\": \"\",\n \"beginGeldigheid\": \"\",\n \"eindeGeldigheid\": \"\"\n}" + }, + "url": { + "raw": "{{baseUrl}}/informatieobjecttypen/", + "host": [ + "{{baseUrl}}" + ], + "path": [ + "informatieobjecttypen", + "" + ] + } + }, + "status": "Internal Server Error", + "code": 500, + "_postman_previewlanguage": "json", + "header": [ + { + "key": "API-version", + "value": "", + "description": "Geeft een specifieke API-versie aan in de context van een specifieke aanroep. Voorbeeld: 1.2.1." + }, + { + "key": "Content-Type", + "value": "application/json" + } + ], + "cookie": [], + "body": "{\n \"code\": \"\",\n \"title\": \"\",\n \"status\": \"\",\n \"detail\": \"\",\n \"instance\": \"\",\n \"type\": \"\"\n}" + }, + { + "name": "Gone", + "originalRequest": { + "method": "PATCH", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n \"catalogus\": \"\",\n \"omschrijving\": \"\",\n \"vertrouwelijkheidaanduiding\": \"\",\n \"beginGeldigheid\": \"\",\n \"eindeGeldigheid\": \"\"\n}" + }, + "url": { + "raw": "{{baseUrl}}/informatieobjecttypen/", + "host": [ + "{{baseUrl}}" + ], + "path": [ + "informatieobjecttypen", + "" + ] + } + }, + "status": "Gone", + "code": 410, + "_postman_previewlanguage": "json", + "header": [ + { + "key": "API-version", + "value": "", + "description": "Geeft een specifieke API-versie aan in de context van een specifieke aanroep. Voorbeeld: 1.2.1." + }, + { + "key": "Content-Type", + "value": "application/json" + } + ], + "cookie": [], + "body": "{\n \"code\": \"\",\n \"title\": \"\",\n \"status\": \"\",\n \"detail\": \"\",\n \"instance\": \"\",\n \"type\": \"\"\n}" + }, + { + "name": "Not acceptable", + "originalRequest": { + "method": "PATCH", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n \"catalogus\": \"\",\n \"omschrijving\": \"\",\n \"vertrouwelijkheidaanduiding\": \"\",\n \"beginGeldigheid\": \"\",\n \"eindeGeldigheid\": \"\"\n}" + }, + "url": { + "raw": "{{baseUrl}}/informatieobjecttypen/", + "host": [ + "{{baseUrl}}" + ], + "path": [ + "informatieobjecttypen", + "" + ] + } + }, + "status": "Not Acceptable", + "code": 406, + "_postman_previewlanguage": "json", + "header": [ + { + "key": "API-version", + "value": "", + "description": "Geeft een specifieke API-versie aan in de context van een specifieke aanroep. Voorbeeld: 1.2.1." + }, + { + "key": "Content-Type", + "value": "application/json" + } + ], + "cookie": [], + "body": "{\n \"code\": \"\",\n \"title\": \"\",\n \"status\": \"\",\n \"detail\": \"\",\n \"instance\": \"\",\n \"type\": \"\"\n}" + }, + { + "name": "Unauthorized", + "originalRequest": { + "method": "PATCH", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n \"catalogus\": \"\",\n \"omschrijving\": \"\",\n \"vertrouwelijkheidaanduiding\": \"\",\n \"beginGeldigheid\": \"\",\n \"eindeGeldigheid\": \"\"\n}" + }, + "url": { + "raw": "{{baseUrl}}/informatieobjecttypen/", + "host": [ + "{{baseUrl}}" + ], + "path": [ + "informatieobjecttypen", + "" + ] + } + }, + "status": "Unauthorized", + "code": 401, + "_postman_previewlanguage": "json", + "header": [ + { + "key": "API-version", + "value": "", + "description": "Geeft een specifieke API-versie aan in de context van een specifieke aanroep. Voorbeeld: 1.2.1." + }, + { + "key": "Content-Type", + "value": "application/json" + } + ], + "cookie": [], + "body": "{\n \"code\": \"\",\n \"title\": \"\",\n \"status\": \"\",\n \"detail\": \"\",\n \"instance\": \"\",\n \"type\": \"\"\n}" + } + ] + }, + { + "name": "Opvragen en bewerken van INFORMATIEOBJECTTYPEn nodig voor\nINFORMATIEOBJECTen in de Documenten API.", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "pm.test(\"Publiceer een INFORMATIEOBJECTTYPE aan geeft 200\", function() {", + " pm.response.to.have.status(201);", + "});", + "", + "pm.test(\"Publiceer een INFORMATIEOBJECTTYPE zet concept op False\", function() {", + " pm.expect(pm.response.json().concept).to.be.equal(false);", + "});" + ], + "type": "text/javascript", + "packages": {} + } + }, + { + "listen": "prerequest", + "script": { + "exec": [ + "" + ], + "type": "text/javascript", + "packages": {} + } + } + ], + "request": { + "method": "POST", + "header": [ + { + "key": "Accept", + "value": "application/json" + }, + { + "key": "Content-Type", + "value": "application/json" + } + ], + "url": { + "raw": "{{created_informatieobjecttype_url}}/publish", + "host": [ + "{{created_informatieobjecttype_url}}" + ], + "path": [ + "publish" + ] + }, + "description": "Een INFORMATIEOBJECTTYPE beschijft de karakteristieken van een document of\nander object dat informatie bevat." + }, + "response": [] + }, + { + "name": "Verwijder een INFORMATIEOBJECTTYPE.", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "pm.test(\"Verwijder een INFORMATIEOBJECTTYPE geeft 204\", function() {", + " pm.response.to.have.status(204);", + "});" + ], + "type": "text/javascript" + } + } + ], + "request": { + "method": "DELETE", + "header": [ + { + "key": "Accept", + "value": "application/json" + }, + { + "key": "Content-Type", + "value": "application/json" + } + ], + "url": { + "raw": "{{created_informatieobjecttype_url}}", + "host": [ + "{{created_informatieobjecttype_url}}" + ] + }, + "description": "Verwijder een INFORMATIEOBJECTTYPE. Dit kan alleen als het een concept\nbetreft." + }, + "response": [] + }, + { + "name": "Create concept Informatieobjecttype", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "if(pm.response.code == 201) {", + " pm.globals.set(\"created_informatieobjecttype_url\", pm.response.json().url);", + "}" + ], + "type": "text/javascript" + } + } + ], + "request": { + "method": "POST", + "header": [ + { + "key": "Accept", + "value": "application/json" + }, + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n\t\"catalogus\": \"{{catalogus_url}}\",\n\t\"omschrijving\": \"informatieobject2\",\n\t\"vertrouwelijkheidaanduiding\": \"openbaar\",\n\t\"beginGeldigheid\": \"2019-01-01\"\n}" + }, + "url": { + "raw": "{{ztc_url}}/informatieobjecttypen", + "host": [ + "{{ztc_url}}" + ], + "path": [ + "informatieobjecttypen" + ] + }, + "description": "Maak een INFORMATIEOBJECTTYPE aan." + }, + "response": [] + } + ], + "description": "Folder for informatieobjecttypen" + }, + { + "name": "resultaattypen", + "item": [ + { + "name": "Alle RESULTAATTYPEn opvragen.", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "pm.test(\"Alle RESULTAATTYPEn opvragen geeft 200\", function() {", + " pm.response.to.have.status(200);", + "});" + ], + "type": "text/javascript", + "packages": {} + } + } + ], + "request": { + "method": "GET", + "header": [ + { + "key": "Accept", + "value": "application/json" + }, + { + "key": "Content-Type", + "value": "application/json" + } + ], + "url": { + "raw": "{{ztc_url}}/resultaattypen?status=concept&page=1", + "host": [ + "{{ztc_url}}" + ], + "path": [ + "resultaattypen" + ], + "query": [ + { + "key": "zaaktype", + "value": "{{zaaktype_url}}", + "disabled": true + }, + { + "key": "status", + "value": "concept" + }, + { + "key": "page", + "value": "1" + } + ] + }, + "description": "Deze lijst kan gefilterd wordt met query-string parameters." + }, + "response": [] + }, + { + "name": "Maak een RESULTAATTYPE aan.", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "pm.test(\"Maak een RESULTAATTYPE aan geeft 201\", function() {", + " pm.response.to.have.status(201);", + "});", + "", + "if(pm.response.code == 201) {", + " pm.environment.set(\"created_resultaattype_url\", pm.response.json().url);", + " pm.environment.set(\"resultaattype_body\", pm.request.body.raw);", + "}" + ], + "type": "text/javascript", + "packages": {} + } + } + ], + "request": { + "method": "POST", + "header": [ + { + "key": "Accept", + "value": "application/json" + }, + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n\t\"zaaktype\": \"{{created_zaaktype_url}}\",\n\t\"omschrijving\": \"TEST2\",\n\t\"resultaattypeomschrijving\": \"{{resultaattypeomschrijving_url}}\",\n\t\"selectielijstklasse\": \"{{selectielijstklasse_url}}\",\n\t\"brondatumArchiefprocedure\": {\n\t\t\"afleidingswijze\": \"gerelateerde_zaak\",\n\t\t\"procestermijn\": null,\n\t\t\"datumkenmerk\": \"\",\n\t\t\"einddatumBekend\": false,\n\t\t\"objecttype\": \"\",\n\t\t\"registratie\": \"\"\n\t}\n}" + }, + "url": { + "raw": "{{ztc_url}}/resultaattypen", + "host": [ + "{{ztc_url}}" + ], + "path": [ + "resultaattypen" + ] + }, + "description": "Maak een RESULTAATTYPE aan. Dit kan alleen als het bijbehorende ZAAKTYPE een\nconcept betreft." + }, + "response": [] + }, + { + "name": "Een specifieke RESULTAATTYPE opvragen.", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "pm.test(\"Een specifiek RESULTAATTYPE opvragen geeft 200\", function() {", + " pm.response.to.have.status(200);", + "});" + ], + "type": "text/javascript" + } + } + ], + "request": { + "method": "GET", + "header": [ + { + "key": "Accept", + "value": "application/json" + }, + { + "key": "Content-Type", + "value": "application/json" + } + ], + "url": { + "raw": "{{created_resultaattype_url}}", + "host": [ + "{{created_resultaattype_url}}" + ] + }, + "description": "Een specifieke RESULTAATTYPE opvragen." + }, + "response": [] + }, + { + "name": "Werk een RESULTAATTYPE in zijn geheel bij.", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "pm.test(\"Werk een RESULTAATTYPE in zijn geheel bij geeft 200\", function() {", + " pm.response.to.have.status(200);", + "});", + "", + "pm.test(\"Werk een RESULTAATTYPE in zijn geheel bij past attributen aan\", function() {", + " pm.expect(pm.response.json().omschrijving).to.be.equal(\"aangepast\");", + "});" + ], + "type": "text/javascript", + "packages": {} + } + }, + { + "listen": "prerequest", + "script": { + "exec": [ + "// Retrieve the body template and modify as needed", + "var body = JSON.parse(pm.environment.get(\"resultaattype_body\"));", + "body.omschrijving = \"aangepast\";", + "", + "// Store the modified body, allowing it to be used in the main request", + "pm.environment.set(\"request_body\", JSON.stringify(body));" + ], + "type": "text/javascript", + "packages": {} + } + } + ], + "request": { + "method": "PUT", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{{request_body}}" + }, + "url": { + "raw": "{{created_resultaattype_url}}", + "host": [ + "{{created_resultaattype_url}}" + ] + }, + "description": "Werk een RESULTAATTYPE in zijn geheel bij. Dit kan alleen als het\nbijbehorende ZAAKTYPE een concept betreft." + }, + "response": [ + { + "name": "OK", + "originalRequest": { + "method": "PUT", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n \"zaaktype\": \"\",\n \"omschrijving\": \"\",\n \"resultaattypeomschrijving\": \"\",\n \"selectielijstklasse\": \"\",\n \"toelichting\": \"\",\n \"archiefnominatie\": \"\",\n \"archiefactietermijn\": \"\",\n \"brondatumArchiefprocedure\": {\n \"afleidingswijze\": \"\",\n \"procestermijn\": \"\",\n \"datumkenmerk\": \"\",\n \"einddatumBekend\": \"\",\n \"objecttype\": \"\",\n \"registratie\": \"\"\n }\n}" + }, + "url": { + "raw": "{{baseUrl}}/resultaattypen/", + "host": [ + "{{baseUrl}}" + ], + "path": [ + "resultaattypen", + "" + ] + } + }, + "status": "OK", + "code": 200, + "_postman_previewlanguage": "json", + "header": [ + { + "key": "API-version", + "value": "", + "description": "Geeft een specifieke API-versie aan in de context van een specifieke aanroep. Voorbeeld: 1.2.1." + }, + { + "key": "Content-Type", + "value": "application/json" + } + ], + "cookie": [], + "body": "{\n \"zaaktype\": \"\",\n \"omschrijving\": \"\",\n \"resultaattypeomschrijving\": \"\",\n \"selectielijstklasse\": \"\",\n \"url\": \"\",\n \"omschrijvingGeneriek\": \"\",\n \"toelichting\": \"\",\n \"archiefnominatie\": \"\",\n \"archiefactietermijn\": \"\",\n \"brondatumArchiefprocedure\": {\n \"afleidingswijze\": \"\",\n \"procestermijn\": \"\",\n \"datumkenmerk\": \"\",\n \"einddatumBekend\": \"\",\n \"objecttype\": \"\",\n \"registratie\": \"\"\n }\n}" + }, + { + "name": "Too many requests", + "originalRequest": { + "method": "PUT", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n \"zaaktype\": \"\",\n \"omschrijving\": \"\",\n \"resultaattypeomschrijving\": \"\",\n \"selectielijstklasse\": \"\",\n \"toelichting\": \"\",\n \"archiefnominatie\": \"\",\n \"archiefactietermijn\": \"\",\n \"brondatumArchiefprocedure\": {\n \"afleidingswijze\": \"\",\n \"procestermijn\": \"\",\n \"datumkenmerk\": \"\",\n \"einddatumBekend\": \"\",\n \"objecttype\": \"\",\n \"registratie\": \"\"\n }\n}" + }, + "url": { + "raw": "{{baseUrl}}/resultaattypen/", + "host": [ + "{{baseUrl}}" + ], + "path": [ + "resultaattypen", + "" + ] + } + }, + "status": "Too Many Requests", + "code": 429, + "_postman_previewlanguage": "json", + "header": [ + { + "key": "API-version", + "value": "", + "description": "Geeft een specifieke API-versie aan in de context van een specifieke aanroep. Voorbeeld: 1.2.1." + }, + { + "key": "Content-Type", + "value": "application/json" + } + ], + "cookie": [], + "body": "{\n \"code\": \"\",\n \"title\": \"\",\n \"status\": \"\",\n \"detail\": \"\",\n \"instance\": \"\",\n \"type\": \"\"\n}" + }, + { + "name": "Not acceptable", + "originalRequest": { + "method": "PUT", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n \"zaaktype\": \"\",\n \"omschrijving\": \"\",\n \"resultaattypeomschrijving\": \"\",\n \"selectielijstklasse\": \"\",\n \"toelichting\": \"\",\n \"archiefnominatie\": \"\",\n \"archiefactietermijn\": \"\",\n \"brondatumArchiefprocedure\": {\n \"afleidingswijze\": \"\",\n \"procestermijn\": \"\",\n \"datumkenmerk\": \"\",\n \"einddatumBekend\": \"\",\n \"objecttype\": \"\",\n \"registratie\": \"\"\n }\n}" + }, + "url": { + "raw": "{{baseUrl}}/resultaattypen/", + "host": [ + "{{baseUrl}}" + ], + "path": [ + "resultaattypen", + "" + ] + } + }, + "status": "Not Acceptable", + "code": 406, + "_postman_previewlanguage": "json", + "header": [ + { + "key": "API-version", + "value": "", + "description": "Geeft een specifieke API-versie aan in de context van een specifieke aanroep. Voorbeeld: 1.2.1." + }, + { + "key": "Content-Type", + "value": "application/json" + } + ], + "cookie": [], + "body": "{\n \"code\": \"\",\n \"title\": \"\",\n \"status\": \"\",\n \"detail\": \"\",\n \"instance\": \"\",\n \"type\": \"\"\n}" + }, + { + "name": "Gone", + "originalRequest": { + "method": "PUT", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n \"zaaktype\": \"\",\n \"omschrijving\": \"\",\n \"resultaattypeomschrijving\": \"\",\n \"selectielijstklasse\": \"\",\n \"toelichting\": \"\",\n \"archiefnominatie\": \"\",\n \"archiefactietermijn\": \"\",\n \"brondatumArchiefprocedure\": {\n \"afleidingswijze\": \"\",\n \"procestermijn\": \"\",\n \"datumkenmerk\": \"\",\n \"einddatumBekend\": \"\",\n \"objecttype\": \"\",\n \"registratie\": \"\"\n }\n}" + }, + "url": { + "raw": "{{baseUrl}}/resultaattypen/", + "host": [ + "{{baseUrl}}" + ], + "path": [ + "resultaattypen", + "" + ] + } + }, + "status": "Gone", + "code": 410, + "_postman_previewlanguage": "json", + "header": [ + { + "key": "API-version", + "value": "", + "description": "Geeft een specifieke API-versie aan in de context van een specifieke aanroep. Voorbeeld: 1.2.1." + }, + { + "key": "Content-Type", + "value": "application/json" + } + ], + "cookie": [], + "body": "{\n \"code\": \"\",\n \"title\": \"\",\n \"status\": \"\",\n \"detail\": \"\",\n \"instance\": \"\",\n \"type\": \"\"\n}" + }, + { + "name": "Unauthorized", + "originalRequest": { + "method": "PUT", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n \"zaaktype\": \"\",\n \"omschrijving\": \"\",\n \"resultaattypeomschrijving\": \"\",\n \"selectielijstklasse\": \"\",\n \"toelichting\": \"\",\n \"archiefnominatie\": \"\",\n \"archiefactietermijn\": \"\",\n \"brondatumArchiefprocedure\": {\n \"afleidingswijze\": \"\",\n \"procestermijn\": \"\",\n \"datumkenmerk\": \"\",\n \"einddatumBekend\": \"\",\n \"objecttype\": \"\",\n \"registratie\": \"\"\n }\n}" + }, + "url": { + "raw": "{{baseUrl}}/resultaattypen/", + "host": [ + "{{baseUrl}}" + ], + "path": [ + "resultaattypen", + "" + ] + } + }, + "status": "Unauthorized", + "code": 401, + "_postman_previewlanguage": "json", + "header": [ + { + "key": "API-version", + "value": "", + "description": "Geeft een specifieke API-versie aan in de context van een specifieke aanroep. Voorbeeld: 1.2.1." + }, + { + "key": "Content-Type", + "value": "application/json" + } + ], + "cookie": [], + "body": "{\n \"code\": \"\",\n \"title\": \"\",\n \"status\": \"\",\n \"detail\": \"\",\n \"instance\": \"\",\n \"type\": \"\"\n}" + }, + { + "name": "Bad request", + "originalRequest": { + "method": "PUT", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n \"zaaktype\": \"\",\n \"omschrijving\": \"\",\n \"resultaattypeomschrijving\": \"\",\n \"selectielijstklasse\": \"\",\n \"toelichting\": \"\",\n \"archiefnominatie\": \"\",\n \"archiefactietermijn\": \"\",\n \"brondatumArchiefprocedure\": {\n \"afleidingswijze\": \"\",\n \"procestermijn\": \"\",\n \"datumkenmerk\": \"\",\n \"einddatumBekend\": \"\",\n \"objecttype\": \"\",\n \"registratie\": \"\"\n }\n}" + }, + "url": { + "raw": "{{baseUrl}}/resultaattypen/", + "host": [ + "{{baseUrl}}" + ], + "path": [ + "resultaattypen", + "" + ] + } + }, + "status": "Bad Request", + "code": 400, + "_postman_previewlanguage": "json", + "header": [ + { + "key": "API-version", + "value": "", + "description": "Geeft een specifieke API-versie aan in de context van een specifieke aanroep. Voorbeeld: 1.2.1." + }, + { + "key": "Content-Type", + "value": "application/json" + } + ], + "cookie": [], + "body": "{\n \"code\": \"\",\n \"title\": \"\",\n \"status\": \"\",\n \"detail\": \"\",\n \"instance\": \"\",\n \"invalidParams\": [\n {\n \"name\": \"\",\n \"code\": \"\",\n \"reason\": \"\"\n },\n {\n \"name\": \"\",\n \"code\": \"\",\n \"reason\": \"\"\n }\n ],\n \"type\": \"\"\n}" + }, + { + "name": "Internal server error", + "originalRequest": { + "method": "PUT", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n \"zaaktype\": \"\",\n \"omschrijving\": \"\",\n \"resultaattypeomschrijving\": \"\",\n \"selectielijstklasse\": \"\",\n \"toelichting\": \"\",\n \"archiefnominatie\": \"\",\n \"archiefactietermijn\": \"\",\n \"brondatumArchiefprocedure\": {\n \"afleidingswijze\": \"\",\n \"procestermijn\": \"\",\n \"datumkenmerk\": \"\",\n \"einddatumBekend\": \"\",\n \"objecttype\": \"\",\n \"registratie\": \"\"\n }\n}" + }, + "url": { + "raw": "{{baseUrl}}/resultaattypen/", + "host": [ + "{{baseUrl}}" + ], + "path": [ + "resultaattypen", + "" + ] + } + }, + "status": "Internal Server Error", + "code": 500, + "_postman_previewlanguage": "json", + "header": [ + { + "key": "API-version", + "value": "", + "description": "Geeft een specifieke API-versie aan in de context van een specifieke aanroep. Voorbeeld: 1.2.1." + }, + { + "key": "Content-Type", + "value": "application/json" + } + ], + "cookie": [], + "body": "{\n \"code\": \"\",\n \"title\": \"\",\n \"status\": \"\",\n \"detail\": \"\",\n \"instance\": \"\",\n \"type\": \"\"\n}" + }, + { + "name": "Not found", + "originalRequest": { + "method": "PUT", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n \"zaaktype\": \"\",\n \"omschrijving\": \"\",\n \"resultaattypeomschrijving\": \"\",\n \"selectielijstklasse\": \"\",\n \"toelichting\": \"\",\n \"archiefnominatie\": \"\",\n \"archiefactietermijn\": \"\",\n \"brondatumArchiefprocedure\": {\n \"afleidingswijze\": \"\",\n \"procestermijn\": \"\",\n \"datumkenmerk\": \"\",\n \"einddatumBekend\": \"\",\n \"objecttype\": \"\",\n \"registratie\": \"\"\n }\n}" + }, + "url": { + "raw": "{{baseUrl}}/resultaattypen/", + "host": [ + "{{baseUrl}}" + ], + "path": [ + "resultaattypen", + "" + ] + } + }, + "status": "Not Found", + "code": 404, + "_postman_previewlanguage": "json", + "header": [ + { + "key": "API-version", + "value": "", + "description": "Geeft een specifieke API-versie aan in de context van een specifieke aanroep. Voorbeeld: 1.2.1." + }, + { + "key": "Content-Type", + "value": "application/json" + } + ], + "cookie": [], + "body": "{\n \"code\": \"\",\n \"title\": \"\",\n \"status\": \"\",\n \"detail\": \"\",\n \"instance\": \"\",\n \"type\": \"\"\n}" + }, + { + "name": "Unsupported media type", + "originalRequest": { + "method": "PUT", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n \"zaaktype\": \"\",\n \"omschrijving\": \"\",\n \"resultaattypeomschrijving\": \"\",\n \"selectielijstklasse\": \"\",\n \"toelichting\": \"\",\n \"archiefnominatie\": \"\",\n \"archiefactietermijn\": \"\",\n \"brondatumArchiefprocedure\": {\n \"afleidingswijze\": \"\",\n \"procestermijn\": \"\",\n \"datumkenmerk\": \"\",\n \"einddatumBekend\": \"\",\n \"objecttype\": \"\",\n \"registratie\": \"\"\n }\n}" + }, + "url": { + "raw": "{{baseUrl}}/resultaattypen/", + "host": [ + "{{baseUrl}}" + ], + "path": [ + "resultaattypen", + "" + ] + } + }, + "status": "Unsupported Media Type", + "code": 415, + "_postman_previewlanguage": "json", + "header": [ + { + "key": "API-version", + "value": "", + "description": "Geeft een specifieke API-versie aan in de context van een specifieke aanroep. Voorbeeld: 1.2.1." + }, + { + "key": "Content-Type", + "value": "application/json" + } + ], + "cookie": [], + "body": "{\n \"code\": \"\",\n \"title\": \"\",\n \"status\": \"\",\n \"detail\": \"\",\n \"instance\": \"\",\n \"type\": \"\"\n}" + }, + { + "name": "Forbidden", + "originalRequest": { + "method": "PUT", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n \"zaaktype\": \"\",\n \"omschrijving\": \"\",\n \"resultaattypeomschrijving\": \"\",\n \"selectielijstklasse\": \"\",\n \"toelichting\": \"\",\n \"archiefnominatie\": \"\",\n \"archiefactietermijn\": \"\",\n \"brondatumArchiefprocedure\": {\n \"afleidingswijze\": \"\",\n \"procestermijn\": \"\",\n \"datumkenmerk\": \"\",\n \"einddatumBekend\": \"\",\n \"objecttype\": \"\",\n \"registratie\": \"\"\n }\n}" + }, + "url": { + "raw": "{{baseUrl}}/resultaattypen/", + "host": [ + "{{baseUrl}}" + ], + "path": [ + "resultaattypen", + "" + ] + } + }, + "status": "Forbidden", + "code": 403, + "_postman_previewlanguage": "json", + "header": [ + { + "key": "API-version", + "value": "", + "description": "Geeft een specifieke API-versie aan in de context van een specifieke aanroep. Voorbeeld: 1.2.1." + }, + { + "key": "Content-Type", + "value": "application/json" + } + ], + "cookie": [], + "body": "{\n \"code\": \"\",\n \"title\": \"\",\n \"status\": \"\",\n \"detail\": \"\",\n \"instance\": \"\",\n \"type\": \"\"\n}" + }, + { + "name": "Conflict", + "originalRequest": { + "method": "PUT", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n \"zaaktype\": \"\",\n \"omschrijving\": \"\",\n \"resultaattypeomschrijving\": \"\",\n \"selectielijstklasse\": \"\",\n \"toelichting\": \"\",\n \"archiefnominatie\": \"\",\n \"archiefactietermijn\": \"\",\n \"brondatumArchiefprocedure\": {\n \"afleidingswijze\": \"\",\n \"procestermijn\": \"\",\n \"datumkenmerk\": \"\",\n \"einddatumBekend\": \"\",\n \"objecttype\": \"\",\n \"registratie\": \"\"\n }\n}" + }, + "url": { + "raw": "{{baseUrl}}/resultaattypen/", + "host": [ + "{{baseUrl}}" + ], + "path": [ + "resultaattypen", + "" + ] + } + }, + "status": "Conflict", + "code": 409, + "_postman_previewlanguage": "json", + "header": [ + { + "key": "API-version", + "value": "", + "description": "Geeft een specifieke API-versie aan in de context van een specifieke aanroep. Voorbeeld: 1.2.1." + }, + { + "key": "Content-Type", + "value": "application/json" + } + ], + "cookie": [], + "body": "{\n \"code\": \"\",\n \"title\": \"\",\n \"status\": \"\",\n \"detail\": \"\",\n \"instance\": \"\",\n \"type\": \"\"\n}" + } + ] + }, + { + "name": "Werk een RESULTAATTYPE deels bij.", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "pm.test(\"Werk een RESULTAATTYPE deels bij geeft 200\", function() {", + " pm.response.to.have.status(200);", + "});", + "", + "pm.test(\"Werk een RESULTAATTYPE deels bij past attributen aan\", function() {", + " pm.expect(pm.response.json().omschrijving).to.be.equal(\"aangepast2\");", + "});" + ], + "type": "text/javascript" + } + } + ], + "request": { + "method": "PATCH", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n\t\"omschrijving\": \"aangepast2\"\n}" + }, + "url": { + "raw": "{{created_resultaattype_url}}", + "host": [ + "{{created_resultaattype_url}}" + ] + }, + "description": "Werk een RESULTAATTYPE deels bij. Dit kan alleen als het bijbehorende\nZAAKTYPE een concept betreft." + }, + "response": [ + { + "name": "Not found", + "originalRequest": { + "method": "PATCH", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n \"zaaktype\": \"\",\n \"omschrijving\": \"\",\n \"resultaattypeomschrijving\": \"\",\n \"selectielijstklasse\": \"\",\n \"toelichting\": \"\",\n \"archiefnominatie\": \"\",\n \"archiefactietermijn\": \"\",\n \"brondatumArchiefprocedure\": {\n \"afleidingswijze\": \"\",\n \"procestermijn\": \"\",\n \"datumkenmerk\": \"\",\n \"einddatumBekend\": \"\",\n \"objecttype\": \"\",\n \"registratie\": \"\"\n }\n}" + }, + "url": { + "raw": "{{baseUrl}}/resultaattypen/", + "host": [ + "{{baseUrl}}" + ], + "path": [ + "resultaattypen", + "" + ] + } + }, + "status": "Not Found", + "code": 404, + "_postman_previewlanguage": "json", + "header": [ + { + "key": "API-version", + "value": "", + "description": "Geeft een specifieke API-versie aan in de context van een specifieke aanroep. Voorbeeld: 1.2.1." + }, + { + "key": "Content-Type", + "value": "application/json" + } + ], + "cookie": [], + "body": "{\n \"code\": \"\",\n \"title\": \"\",\n \"status\": \"\",\n \"detail\": \"\",\n \"instance\": \"\",\n \"type\": \"\"\n}" + }, + { + "name": "Forbidden", + "originalRequest": { + "method": "PATCH", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n \"zaaktype\": \"\",\n \"omschrijving\": \"\",\n \"resultaattypeomschrijving\": \"\",\n \"selectielijstklasse\": \"\",\n \"toelichting\": \"\",\n \"archiefnominatie\": \"\",\n \"archiefactietermijn\": \"\",\n \"brondatumArchiefprocedure\": {\n \"afleidingswijze\": \"\",\n \"procestermijn\": \"\",\n \"datumkenmerk\": \"\",\n \"einddatumBekend\": \"\",\n \"objecttype\": \"\",\n \"registratie\": \"\"\n }\n}" + }, + "url": { + "raw": "{{baseUrl}}/resultaattypen/", + "host": [ + "{{baseUrl}}" + ], + "path": [ + "resultaattypen", + "" + ] + } + }, + "status": "Forbidden", + "code": 403, + "_postman_previewlanguage": "json", + "header": [ + { + "key": "API-version", + "value": "", + "description": "Geeft een specifieke API-versie aan in de context van een specifieke aanroep. Voorbeeld: 1.2.1." + }, + { + "key": "Content-Type", + "value": "application/json" + } + ], + "cookie": [], + "body": "{\n \"code\": \"\",\n \"title\": \"\",\n \"status\": \"\",\n \"detail\": \"\",\n \"instance\": \"\",\n \"type\": \"\"\n}" + }, + { + "name": "Internal server error", + "originalRequest": { + "method": "PATCH", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n \"zaaktype\": \"\",\n \"omschrijving\": \"\",\n \"resultaattypeomschrijving\": \"\",\n \"selectielijstklasse\": \"\",\n \"toelichting\": \"\",\n \"archiefnominatie\": \"\",\n \"archiefactietermijn\": \"\",\n \"brondatumArchiefprocedure\": {\n \"afleidingswijze\": \"\",\n \"procestermijn\": \"\",\n \"datumkenmerk\": \"\",\n \"einddatumBekend\": \"\",\n \"objecttype\": \"\",\n \"registratie\": \"\"\n }\n}" + }, + "url": { + "raw": "{{baseUrl}}/resultaattypen/", + "host": [ + "{{baseUrl}}" + ], + "path": [ + "resultaattypen", + "" + ] + } + }, + "status": "Internal Server Error", + "code": 500, + "_postman_previewlanguage": "json", + "header": [ + { + "key": "API-version", + "value": "", + "description": "Geeft een specifieke API-versie aan in de context van een specifieke aanroep. Voorbeeld: 1.2.1." + }, + { + "key": "Content-Type", + "value": "application/json" + } + ], + "cookie": [], + "body": "{\n \"code\": \"\",\n \"title\": \"\",\n \"status\": \"\",\n \"detail\": \"\",\n \"instance\": \"\",\n \"type\": \"\"\n}" + }, + { + "name": "Bad request", + "originalRequest": { + "method": "PATCH", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n \"zaaktype\": \"\",\n \"omschrijving\": \"\",\n \"resultaattypeomschrijving\": \"\",\n \"selectielijstklasse\": \"\",\n \"toelichting\": \"\",\n \"archiefnominatie\": \"\",\n \"archiefactietermijn\": \"\",\n \"brondatumArchiefprocedure\": {\n \"afleidingswijze\": \"\",\n \"procestermijn\": \"\",\n \"datumkenmerk\": \"\",\n \"einddatumBekend\": \"\",\n \"objecttype\": \"\",\n \"registratie\": \"\"\n }\n}" + }, + "url": { + "raw": "{{baseUrl}}/resultaattypen/", + "host": [ + "{{baseUrl}}" + ], + "path": [ + "resultaattypen", + "" + ] + } + }, + "status": "Bad Request", + "code": 400, + "_postman_previewlanguage": "json", + "header": [ + { + "key": "API-version", + "value": "", + "description": "Geeft een specifieke API-versie aan in de context van een specifieke aanroep. Voorbeeld: 1.2.1." + }, + { + "key": "Content-Type", + "value": "application/json" + } + ], + "cookie": [], + "body": "{\n \"code\": \"\",\n \"title\": \"\",\n \"status\": \"\",\n \"detail\": \"\",\n \"instance\": \"\",\n \"invalidParams\": [\n {\n \"name\": \"\",\n \"code\": \"\",\n \"reason\": \"\"\n },\n {\n \"name\": \"\",\n \"code\": \"\",\n \"reason\": \"\"\n }\n ],\n \"type\": \"\"\n}" + }, + { + "name": "Conflict", + "originalRequest": { + "method": "PATCH", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n \"zaaktype\": \"\",\n \"omschrijving\": \"\",\n \"resultaattypeomschrijving\": \"\",\n \"selectielijstklasse\": \"\",\n \"toelichting\": \"\",\n \"archiefnominatie\": \"\",\n \"archiefactietermijn\": \"\",\n \"brondatumArchiefprocedure\": {\n \"afleidingswijze\": \"\",\n \"procestermijn\": \"\",\n \"datumkenmerk\": \"\",\n \"einddatumBekend\": \"\",\n \"objecttype\": \"\",\n \"registratie\": \"\"\n }\n}" + }, + "url": { + "raw": "{{baseUrl}}/resultaattypen/", + "host": [ + "{{baseUrl}}" + ], + "path": [ + "resultaattypen", + "" + ] + } + }, + "status": "Conflict", + "code": 409, + "_postman_previewlanguage": "json", + "header": [ + { + "key": "API-version", + "value": "", + "description": "Geeft een specifieke API-versie aan in de context van een specifieke aanroep. Voorbeeld: 1.2.1." + }, + { + "key": "Content-Type", + "value": "application/json" + } + ], + "cookie": [], + "body": "{\n \"code\": \"\",\n \"title\": \"\",\n \"status\": \"\",\n \"detail\": \"\",\n \"instance\": \"\",\n \"type\": \"\"\n}" + }, + { + "name": "Unsupported media type", + "originalRequest": { + "method": "PATCH", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n \"zaaktype\": \"\",\n \"omschrijving\": \"\",\n \"resultaattypeomschrijving\": \"\",\n \"selectielijstklasse\": \"\",\n \"toelichting\": \"\",\n \"archiefnominatie\": \"\",\n \"archiefactietermijn\": \"\",\n \"brondatumArchiefprocedure\": {\n \"afleidingswijze\": \"\",\n \"procestermijn\": \"\",\n \"datumkenmerk\": \"\",\n \"einddatumBekend\": \"\",\n \"objecttype\": \"\",\n \"registratie\": \"\"\n }\n}" + }, + "url": { + "raw": "{{baseUrl}}/resultaattypen/", + "host": [ + "{{baseUrl}}" + ], + "path": [ + "resultaattypen", + "" + ] + } + }, + "status": "Unsupported Media Type", + "code": 415, + "_postman_previewlanguage": "json", + "header": [ + { + "key": "API-version", + "value": "", + "description": "Geeft een specifieke API-versie aan in de context van een specifieke aanroep. Voorbeeld: 1.2.1." + }, + { + "key": "Content-Type", + "value": "application/json" + } + ], + "cookie": [], + "body": "{\n \"code\": \"\",\n \"title\": \"\",\n \"status\": \"\",\n \"detail\": \"\",\n \"instance\": \"\",\n \"type\": \"\"\n}" + }, + { + "name": "Not acceptable", + "originalRequest": { + "method": "PATCH", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n \"zaaktype\": \"\",\n \"omschrijving\": \"\",\n \"resultaattypeomschrijving\": \"\",\n \"selectielijstklasse\": \"\",\n \"toelichting\": \"\",\n \"archiefnominatie\": \"\",\n \"archiefactietermijn\": \"\",\n \"brondatumArchiefprocedure\": {\n \"afleidingswijze\": \"\",\n \"procestermijn\": \"\",\n \"datumkenmerk\": \"\",\n \"einddatumBekend\": \"\",\n \"objecttype\": \"\",\n \"registratie\": \"\"\n }\n}" + }, + "url": { + "raw": "{{baseUrl}}/resultaattypen/", + "host": [ + "{{baseUrl}}" + ], + "path": [ + "resultaattypen", + "" + ] + } + }, + "status": "Not Acceptable", + "code": 406, + "_postman_previewlanguage": "json", + "header": [ + { + "key": "API-version", + "value": "", + "description": "Geeft een specifieke API-versie aan in de context van een specifieke aanroep. Voorbeeld: 1.2.1." + }, + { + "key": "Content-Type", + "value": "application/json" + } + ], + "cookie": [], + "body": "{\n \"code\": \"\",\n \"title\": \"\",\n \"status\": \"\",\n \"detail\": \"\",\n \"instance\": \"\",\n \"type\": \"\"\n}" + }, + { + "name": "OK", + "originalRequest": { + "method": "PATCH", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n \"zaaktype\": \"\",\n \"omschrijving\": \"\",\n \"resultaattypeomschrijving\": \"\",\n \"selectielijstklasse\": \"\",\n \"toelichting\": \"\",\n \"archiefnominatie\": \"\",\n \"archiefactietermijn\": \"\",\n \"brondatumArchiefprocedure\": {\n \"afleidingswijze\": \"\",\n \"procestermijn\": \"\",\n \"datumkenmerk\": \"\",\n \"einddatumBekend\": \"\",\n \"objecttype\": \"\",\n \"registratie\": \"\"\n }\n}" + }, + "url": { + "raw": "{{baseUrl}}/resultaattypen/", + "host": [ + "{{baseUrl}}" + ], + "path": [ + "resultaattypen", + "" + ] + } + }, + "status": "OK", + "code": 200, + "_postman_previewlanguage": "json", + "header": [ + { + "key": "API-version", + "value": "", + "description": "Geeft een specifieke API-versie aan in de context van een specifieke aanroep. Voorbeeld: 1.2.1." + }, + { + "key": "Content-Type", + "value": "application/json" + } + ], + "cookie": [], + "body": "{\n \"zaaktype\": \"\",\n \"omschrijving\": \"\",\n \"resultaattypeomschrijving\": \"\",\n \"selectielijstklasse\": \"\",\n \"url\": \"\",\n \"omschrijvingGeneriek\": \"\",\n \"toelichting\": \"\",\n \"archiefnominatie\": \"\",\n \"archiefactietermijn\": \"\",\n \"brondatumArchiefprocedure\": {\n \"afleidingswijze\": \"\",\n \"procestermijn\": \"\",\n \"datumkenmerk\": \"\",\n \"einddatumBekend\": \"\",\n \"objecttype\": \"\",\n \"registratie\": \"\"\n }\n}" + }, + { + "name": "Unauthorized", + "originalRequest": { + "method": "PATCH", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n \"zaaktype\": \"\",\n \"omschrijving\": \"\",\n \"resultaattypeomschrijving\": \"\",\n \"selectielijstklasse\": \"\",\n \"toelichting\": \"\",\n \"archiefnominatie\": \"\",\n \"archiefactietermijn\": \"\",\n \"brondatumArchiefprocedure\": {\n \"afleidingswijze\": \"\",\n \"procestermijn\": \"\",\n \"datumkenmerk\": \"\",\n \"einddatumBekend\": \"\",\n \"objecttype\": \"\",\n \"registratie\": \"\"\n }\n}" + }, + "url": { + "raw": "{{baseUrl}}/resultaattypen/", + "host": [ + "{{baseUrl}}" + ], + "path": [ + "resultaattypen", + "" + ] + } + }, + "status": "Unauthorized", + "code": 401, + "_postman_previewlanguage": "json", + "header": [ + { + "key": "API-version", + "value": "", + "description": "Geeft een specifieke API-versie aan in de context van een specifieke aanroep. Voorbeeld: 1.2.1." + }, + { + "key": "Content-Type", + "value": "application/json" + } + ], + "cookie": [], + "body": "{\n \"code\": \"\",\n \"title\": \"\",\n \"status\": \"\",\n \"detail\": \"\",\n \"instance\": \"\",\n \"type\": \"\"\n}" + }, + { + "name": "Too many requests", + "originalRequest": { + "method": "PATCH", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n \"zaaktype\": \"\",\n \"omschrijving\": \"\",\n \"resultaattypeomschrijving\": \"\",\n \"selectielijstklasse\": \"\",\n \"toelichting\": \"\",\n \"archiefnominatie\": \"\",\n \"archiefactietermijn\": \"\",\n \"brondatumArchiefprocedure\": {\n \"afleidingswijze\": \"\",\n \"procestermijn\": \"\",\n \"datumkenmerk\": \"\",\n \"einddatumBekend\": \"\",\n \"objecttype\": \"\",\n \"registratie\": \"\"\n }\n}" + }, + "url": { + "raw": "{{baseUrl}}/resultaattypen/", + "host": [ + "{{baseUrl}}" + ], + "path": [ + "resultaattypen", + "" + ] + } + }, + "status": "Too Many Requests", + "code": 429, + "_postman_previewlanguage": "json", + "header": [ + { + "key": "API-version", + "value": "", + "description": "Geeft een specifieke API-versie aan in de context van een specifieke aanroep. Voorbeeld: 1.2.1." + }, + { + "key": "Content-Type", + "value": "application/json" + } + ], + "cookie": [], + "body": "{\n \"code\": \"\",\n \"title\": \"\",\n \"status\": \"\",\n \"detail\": \"\",\n \"instance\": \"\",\n \"type\": \"\"\n}" + }, + { + "name": "Gone", + "originalRequest": { + "method": "PATCH", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n \"zaaktype\": \"\",\n \"omschrijving\": \"\",\n \"resultaattypeomschrijving\": \"\",\n \"selectielijstklasse\": \"\",\n \"toelichting\": \"\",\n \"archiefnominatie\": \"\",\n \"archiefactietermijn\": \"\",\n \"brondatumArchiefprocedure\": {\n \"afleidingswijze\": \"\",\n \"procestermijn\": \"\",\n \"datumkenmerk\": \"\",\n \"einddatumBekend\": \"\",\n \"objecttype\": \"\",\n \"registratie\": \"\"\n }\n}" + }, + "url": { + "raw": "{{baseUrl}}/resultaattypen/", + "host": [ + "{{baseUrl}}" + ], + "path": [ + "resultaattypen", + "" + ] + } + }, + "status": "Gone", + "code": 410, + "_postman_previewlanguage": "json", + "header": [ + { + "key": "API-version", + "value": "", + "description": "Geeft een specifieke API-versie aan in de context van een specifieke aanroep. Voorbeeld: 1.2.1." + }, + { + "key": "Content-Type", + "value": "application/json" + } + ], + "cookie": [], + "body": "{\n \"code\": \"\",\n \"title\": \"\",\n \"status\": \"\",\n \"detail\": \"\",\n \"instance\": \"\",\n \"type\": \"\"\n}" + } + ] + }, + { + "name": "Verwijder een RESULTAATTYPE.", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "pm.test(\"Verwijder een RESULTAATTYPE opvragen geeft 204\", function() {", + " pm.response.to.have.status(204);", + "});" + ], + "type": "text/javascript" + } + } + ], + "request": { + "method": "DELETE", + "header": [ + { + "key": "Accept", + "value": "application/json" + }, + { + "key": "Content-Type", + "value": "application/json" + } + ], + "url": { + "raw": "{{created_resultaattype_url}}", + "host": [ + "{{created_resultaattype_url}}" + ] + }, + "description": "Verwijder een RESULTAATTYPE. Dit kan alleen als het bijbehorende ZAAKTYPE\neen concept betreft." + }, + "response": [] + } + ], + "description": "Folder for resultaattypen" + }, + { + "name": "roltypen", + "item": [ + { + "name": "Alle ROLTYPEn opvragen.", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "pm.test(\"Alle ROLTYPEn opvragen geeft 200\", function() {", + " pm.response.to.have.status(200);", + "});" + ], + "type": "text/javascript" + } + } + ], + "request": { + "method": "GET", + "header": [ + { + "key": "Accept", + "value": "application/json" + }, + { + "key": "Content-Type", + "value": "application/json" + } + ], + "url": { + "raw": "{{ztc_url}}/roltypen?zaaktype={{zaaktype_url}}&omschrijvingGeneriek=adviseur&status=concept&page=1", + "host": [ + "{{ztc_url}}" + ], + "path": [ + "roltypen" + ], + "query": [ + { + "key": "zaaktype", + "value": "{{zaaktype_url}}" + }, + { + "key": "omschrijvingGeneriek", + "value": "adviseur" + }, + { + "key": "status", + "value": "concept" + }, + { + "key": "page", + "value": "1" + } + ] + }, + "description": "Deze lijst kan gefilterd wordt met query-string parameters." + }, + "response": [] + }, + { + "name": "Maak een ROLTYPE aan.", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "pm.test(\"Maak een ROLTYPE aan geeft 201\", function() {", + " pm.response.to.have.status(201);", + "});", + "", + "if(pm.response.code == 201) {", + " pm.environment.set(\"created_roltype_url\", pm.response.json().url);", + " pm.environment.set(\"roltype_body\", pm.request.body.raw);", + "}" + ], + "type": "text/javascript", + "packages": {} + } + } + ], + "request": { + "method": "POST", + "header": [ + { + "key": "Accept", + "value": "application/json" + }, + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n\t\"zaaktype\": \"{{created_zaaktype_url}}\",\n\t\"omschrijving\": \"test2\",\n\t\"omschrijvingGeneriek\": \"adviseur\"\n}" + }, + "url": { + "raw": "{{ztc_url}}/roltypen", + "host": [ + "{{ztc_url}}" + ], + "path": [ + "roltypen" + ] + }, + "description": "Maak een ROLTYPE aan. Dit kan alleen als het bijbehorende ZAAKTYPE een\nconcept betreft." + }, + "response": [] + }, + { + "name": "Een specifieke ROLTYPE opvragen.", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "pm.test(\"Een specifiek ROLTYPE opvragen geeft 200\", function() {", + " pm.response.to.have.status(200);", + "});" + ], + "type": "text/javascript" + } + } + ], + "request": { + "method": "GET", + "header": [ + { + "key": "Accept", + "value": "application/json" + }, + { + "key": "Content-Type", + "value": "application/json" + } + ], + "url": { + "raw": "{{created_roltype_url}}", + "host": [ + "{{created_roltype_url}}" + ] + }, + "description": "Een specifieke ROLTYPE opvragen." + }, + "response": [] + }, + { + "name": "Werk een ROLTYPE in zijn geheel bij.", + "event": [ + { + "listen": "prerequest", + "script": { + "exec": [ + "// Retrieve the body template and modify as needed", + "var body = JSON.parse(pm.environment.get(\"roltype_body\"));", + "body.omschrijving = \"aangepast\";", + "", + "// Store the modified body, allowing it to be used in the main request", + "pm.environment.set(\"request_body\", JSON.stringify(body));" + ], + "type": "text/javascript", + "packages": {} + } + }, + { + "listen": "test", + "script": { + "exec": [ + "pm.test(\"Werk een ROLTYPE in zijn geheel bij geeft 200\", function() {", + " pm.response.to.have.status(200);", + "});", + "", + "pm.test(\"Werk een ROLTYPE in zijn geheel bij past attributen aan\", function() {", + " pm.expect(pm.response.json().omschrijving).to.be.equal(\"aangepast\");", + "});" + ], + "type": "text/javascript", + "packages": {} + } + } + ], + "request": { + "method": "PUT", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{{request_body}}" + }, + "url": { + "raw": "{{created_roltype_url}}", + "host": [ + "{{created_roltype_url}}" + ] + }, + "description": "Werk een ROLTYPE in zijn geheel bij. Dit kan alleen als het\nbijbehorende ZAAKTYPE een concept betreft." + }, + "response": [ + { + "name": "Unauthorized", + "originalRequest": { + "method": "PUT", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n \"zaaktype\": \"\",\n \"omschrijving\": \"\",\n \"omschrijvingGeneriek\": \"\"\n}" + }, + "url": { + "raw": "{{baseUrl}}/roltypen/", + "host": [ + "{{baseUrl}}" + ], + "path": [ + "roltypen", + "" + ] + } + }, + "status": "Unauthorized", + "code": 401, + "_postman_previewlanguage": "json", + "header": [ + { + "key": "API-version", + "value": "", + "description": "Geeft een specifieke API-versie aan in de context van een specifieke aanroep. Voorbeeld: 1.2.1." + }, + { + "key": "Content-Type", + "value": "application/json" + } + ], + "cookie": [], + "body": "{\n \"code\": \"\",\n \"title\": \"\",\n \"status\": \"\",\n \"detail\": \"\",\n \"instance\": \"\",\n \"type\": \"\"\n}" + }, + { + "name": "Bad request", + "originalRequest": { + "method": "PUT", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n \"zaaktype\": \"\",\n \"omschrijving\": \"\",\n \"omschrijvingGeneriek\": \"\"\n}" + }, + "url": { + "raw": "{{baseUrl}}/roltypen/", + "host": [ + "{{baseUrl}}" + ], + "path": [ + "roltypen", + "" + ] + } + }, + "status": "Bad Request", + "code": 400, + "_postman_previewlanguage": "json", + "header": [ + { + "key": "API-version", + "value": "", + "description": "Geeft een specifieke API-versie aan in de context van een specifieke aanroep. Voorbeeld: 1.2.1." + }, + { + "key": "Content-Type", + "value": "application/json" + } + ], + "cookie": [], + "body": "{\n \"code\": \"\",\n \"title\": \"\",\n \"status\": \"\",\n \"detail\": \"\",\n \"instance\": \"\",\n \"invalidParams\": [\n {\n \"name\": \"\",\n \"code\": \"\",\n \"reason\": \"\"\n },\n {\n \"name\": \"\",\n \"code\": \"\",\n \"reason\": \"\"\n }\n ],\n \"type\": \"\"\n}" + }, + { + "name": "Not found", + "originalRequest": { + "method": "PUT", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n \"zaaktype\": \"\",\n \"omschrijving\": \"\",\n \"omschrijvingGeneriek\": \"\"\n}" + }, + "url": { + "raw": "{{baseUrl}}/roltypen/", + "host": [ + "{{baseUrl}}" + ], + "path": [ + "roltypen", + "" + ] + } + }, + "status": "Not Found", + "code": 404, + "_postman_previewlanguage": "json", + "header": [ + { + "key": "API-version", + "value": "", + "description": "Geeft een specifieke API-versie aan in de context van een specifieke aanroep. Voorbeeld: 1.2.1." + }, + { + "key": "Content-Type", + "value": "application/json" + } + ], + "cookie": [], + "body": "{\n \"code\": \"\",\n \"title\": \"\",\n \"status\": \"\",\n \"detail\": \"\",\n \"instance\": \"\",\n \"type\": \"\"\n}" + }, + { + "name": "Not acceptable", + "originalRequest": { + "method": "PUT", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n \"zaaktype\": \"\",\n \"omschrijving\": \"\",\n \"omschrijvingGeneriek\": \"\"\n}" + }, + "url": { + "raw": "{{baseUrl}}/roltypen/", + "host": [ + "{{baseUrl}}" + ], + "path": [ + "roltypen", + "" + ] + } + }, + "status": "Not Acceptable", + "code": 406, + "_postman_previewlanguage": "json", + "header": [ + { + "key": "API-version", + "value": "", + "description": "Geeft een specifieke API-versie aan in de context van een specifieke aanroep. Voorbeeld: 1.2.1." + }, + { + "key": "Content-Type", + "value": "application/json" + } + ], + "cookie": [], + "body": "{\n \"code\": \"\",\n \"title\": \"\",\n \"status\": \"\",\n \"detail\": \"\",\n \"instance\": \"\",\n \"type\": \"\"\n}" + }, + { + "name": "Conflict", + "originalRequest": { + "method": "PUT", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n \"zaaktype\": \"\",\n \"omschrijving\": \"\",\n \"omschrijvingGeneriek\": \"\"\n}" + }, + "url": { + "raw": "{{baseUrl}}/roltypen/", + "host": [ + "{{baseUrl}}" + ], + "path": [ + "roltypen", + "" + ] + } + }, + "status": "Conflict", + "code": 409, + "_postman_previewlanguage": "json", + "header": [ + { + "key": "API-version", + "value": "", + "description": "Geeft een specifieke API-versie aan in de context van een specifieke aanroep. Voorbeeld: 1.2.1." + }, + { + "key": "Content-Type", + "value": "application/json" + } + ], + "cookie": [], + "body": "{\n \"code\": \"\",\n \"title\": \"\",\n \"status\": \"\",\n \"detail\": \"\",\n \"instance\": \"\",\n \"type\": \"\"\n}" + }, + { + "name": "Gone", + "originalRequest": { + "method": "PUT", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n \"zaaktype\": \"\",\n \"omschrijving\": \"\",\n \"omschrijvingGeneriek\": \"\"\n}" + }, + "url": { + "raw": "{{baseUrl}}/roltypen/", + "host": [ + "{{baseUrl}}" + ], + "path": [ + "roltypen", + "" + ] + } + }, + "status": "Gone", + "code": 410, + "_postman_previewlanguage": "json", + "header": [ + { + "key": "API-version", + "value": "", + "description": "Geeft een specifieke API-versie aan in de context van een specifieke aanroep. Voorbeeld: 1.2.1." + }, + { + "key": "Content-Type", + "value": "application/json" + } + ], + "cookie": [], + "body": "{\n \"code\": \"\",\n \"title\": \"\",\n \"status\": \"\",\n \"detail\": \"\",\n \"instance\": \"\",\n \"type\": \"\"\n}" + }, + { + "name": "OK", + "originalRequest": { + "method": "PUT", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n \"zaaktype\": \"\",\n \"omschrijving\": \"\",\n \"omschrijvingGeneriek\": \"\"\n}" + }, + "url": { + "raw": "{{baseUrl}}/roltypen/", + "host": [ + "{{baseUrl}}" + ], + "path": [ + "roltypen", + "" + ] + } + }, + "status": "OK", + "code": 200, + "_postman_previewlanguage": "json", + "header": [ + { + "key": "API-version", + "value": "", + "description": "Geeft een specifieke API-versie aan in de context van een specifieke aanroep. Voorbeeld: 1.2.1." + }, + { + "key": "Content-Type", + "value": "application/json" + } + ], + "cookie": [], + "body": "{\n \"zaaktype\": \"\",\n \"omschrijving\": \"\",\n \"omschrijvingGeneriek\": \"\",\n \"url\": \"\"\n}" + }, + { + "name": "Unsupported media type", + "originalRequest": { + "method": "PUT", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n \"zaaktype\": \"\",\n \"omschrijving\": \"\",\n \"omschrijvingGeneriek\": \"\"\n}" + }, + "url": { + "raw": "{{baseUrl}}/roltypen/", + "host": [ + "{{baseUrl}}" + ], + "path": [ + "roltypen", + "" + ] + } + }, + "status": "Unsupported Media Type", + "code": 415, + "_postman_previewlanguage": "json", + "header": [ + { + "key": "API-version", + "value": "", + "description": "Geeft een specifieke API-versie aan in de context van een specifieke aanroep. Voorbeeld: 1.2.1." + }, + { + "key": "Content-Type", + "value": "application/json" + } + ], + "cookie": [], + "body": "{\n \"code\": \"\",\n \"title\": \"\",\n \"status\": \"\",\n \"detail\": \"\",\n \"instance\": \"\",\n \"type\": \"\"\n}" + }, + { + "name": "Forbidden", + "originalRequest": { + "method": "PUT", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n \"zaaktype\": \"\",\n \"omschrijving\": \"\",\n \"omschrijvingGeneriek\": \"\"\n}" + }, + "url": { + "raw": "{{baseUrl}}/roltypen/", + "host": [ + "{{baseUrl}}" + ], + "path": [ + "roltypen", + "" + ] + } + }, + "status": "Forbidden", + "code": 403, + "_postman_previewlanguage": "json", + "header": [ + { + "key": "API-version", + "value": "", + "description": "Geeft een specifieke API-versie aan in de context van een specifieke aanroep. Voorbeeld: 1.2.1." + }, + { + "key": "Content-Type", + "value": "application/json" + } + ], + "cookie": [], + "body": "{\n \"code\": \"\",\n \"title\": \"\",\n \"status\": \"\",\n \"detail\": \"\",\n \"instance\": \"\",\n \"type\": \"\"\n}" + }, + { + "name": "Too many requests", + "originalRequest": { + "method": "PUT", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n \"zaaktype\": \"\",\n \"omschrijving\": \"\",\n \"omschrijvingGeneriek\": \"\"\n}" + }, + "url": { + "raw": "{{baseUrl}}/roltypen/", + "host": [ + "{{baseUrl}}" + ], + "path": [ + "roltypen", + "" + ] + } + }, + "status": "Too Many Requests", + "code": 429, + "_postman_previewlanguage": "json", + "header": [ + { + "key": "API-version", + "value": "", + "description": "Geeft een specifieke API-versie aan in de context van een specifieke aanroep. Voorbeeld: 1.2.1." + }, + { + "key": "Content-Type", + "value": "application/json" + } + ], + "cookie": [], + "body": "{\n \"code\": \"\",\n \"title\": \"\",\n \"status\": \"\",\n \"detail\": \"\",\n \"instance\": \"\",\n \"type\": \"\"\n}" + }, + { + "name": "Internal server error", + "originalRequest": { + "method": "PUT", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n \"zaaktype\": \"\",\n \"omschrijving\": \"\",\n \"omschrijvingGeneriek\": \"\"\n}" + }, + "url": { + "raw": "{{baseUrl}}/roltypen/", + "host": [ + "{{baseUrl}}" + ], + "path": [ + "roltypen", + "" + ] + } + }, + "status": "Internal Server Error", + "code": 500, + "_postman_previewlanguage": "json", + "header": [ + { + "key": "API-version", + "value": "", + "description": "Geeft een specifieke API-versie aan in de context van een specifieke aanroep. Voorbeeld: 1.2.1." + }, + { + "key": "Content-Type", + "value": "application/json" + } + ], + "cookie": [], + "body": "{\n \"code\": \"\",\n \"title\": \"\",\n \"status\": \"\",\n \"detail\": \"\",\n \"instance\": \"\",\n \"type\": \"\"\n}" + } + ] + }, + { + "name": "Werk een ROLTYPE deels bij.", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "pm.test(\"Werk een ROLTYPE deels bij geeft 200\", function() {", + " pm.response.to.have.status(200);", + "});", + "", + "pm.test(\"Werk een ROLTYPE deels bij past attributen aan\", function() {", + " pm.expect(pm.response.json().omschrijving).to.be.equal(\"aangepast2\");", + "});" + ], + "type": "text/javascript" + } + } + ], + "request": { + "method": "PATCH", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n\t\"omschrijving\": \"aangepast2\"\n}" + }, + "url": { + "raw": "{{created_roltype_url}}", + "host": [ + "{{created_roltype_url}}" + ] + }, + "description": "Werk een ROLTYPE deels bij. Dit kan alleen als het bijbehorende\nZAAKTYPE een concept betreft." + }, + "response": [ + { + "name": "Unsupported media type", + "originalRequest": { + "method": "PATCH", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n \"zaaktype\": \"\",\n \"omschrijving\": \"\",\n \"omschrijvingGeneriek\": \"\"\n}" + }, + "url": { + "raw": "{{baseUrl}}/roltypen/", + "host": [ + "{{baseUrl}}" + ], + "path": [ + "roltypen", + "" + ] + } + }, + "status": "Unsupported Media Type", + "code": 415, + "_postman_previewlanguage": "json", + "header": [ + { + "key": "API-version", + "value": "", + "description": "Geeft een specifieke API-versie aan in de context van een specifieke aanroep. Voorbeeld: 1.2.1." + }, + { + "key": "Content-Type", + "value": "application/json" + } + ], + "cookie": [], + "body": "{\n \"code\": \"\",\n \"title\": \"\",\n \"status\": \"\",\n \"detail\": \"\",\n \"instance\": \"\",\n \"type\": \"\"\n}" + }, + { + "name": "Forbidden", + "originalRequest": { + "method": "PATCH", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n \"zaaktype\": \"\",\n \"omschrijving\": \"\",\n \"omschrijvingGeneriek\": \"\"\n}" + }, + "url": { + "raw": "{{baseUrl}}/roltypen/", + "host": [ + "{{baseUrl}}" + ], + "path": [ + "roltypen", + "" + ] + } + }, + "status": "Forbidden", + "code": 403, + "_postman_previewlanguage": "json", + "header": [ + { + "key": "API-version", + "value": "", + "description": "Geeft een specifieke API-versie aan in de context van een specifieke aanroep. Voorbeeld: 1.2.1." + }, + { + "key": "Content-Type", + "value": "application/json" + } + ], + "cookie": [], + "body": "{\n \"code\": \"\",\n \"title\": \"\",\n \"status\": \"\",\n \"detail\": \"\",\n \"instance\": \"\",\n \"type\": \"\"\n}" + }, + { + "name": "Too many requests", + "originalRequest": { + "method": "PATCH", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n \"zaaktype\": \"\",\n \"omschrijving\": \"\",\n \"omschrijvingGeneriek\": \"\"\n}" + }, + "url": { + "raw": "{{baseUrl}}/roltypen/", + "host": [ + "{{baseUrl}}" + ], + "path": [ + "roltypen", + "" + ] + } + }, + "status": "Too Many Requests", + "code": 429, + "_postman_previewlanguage": "json", + "header": [ + { + "key": "API-version", + "value": "", + "description": "Geeft een specifieke API-versie aan in de context van een specifieke aanroep. Voorbeeld: 1.2.1." + }, + { + "key": "Content-Type", + "value": "application/json" + } + ], + "cookie": [], + "body": "{\n \"code\": \"\",\n \"title\": \"\",\n \"status\": \"\",\n \"detail\": \"\",\n \"instance\": \"\",\n \"type\": \"\"\n}" + }, + { + "name": "Gone", + "originalRequest": { + "method": "PATCH", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n \"zaaktype\": \"\",\n \"omschrijving\": \"\",\n \"omschrijvingGeneriek\": \"\"\n}" + }, + "url": { + "raw": "{{baseUrl}}/roltypen/", + "host": [ + "{{baseUrl}}" + ], + "path": [ + "roltypen", + "" + ] + } + }, + "status": "Gone", + "code": 410, + "_postman_previewlanguage": "json", + "header": [ + { + "key": "API-version", + "value": "", + "description": "Geeft een specifieke API-versie aan in de context van een specifieke aanroep. Voorbeeld: 1.2.1." + }, + { + "key": "Content-Type", + "value": "application/json" + } + ], + "cookie": [], + "body": "{\n \"code\": \"\",\n \"title\": \"\",\n \"status\": \"\",\n \"detail\": \"\",\n \"instance\": \"\",\n \"type\": \"\"\n}" + }, + { + "name": "Conflict", + "originalRequest": { + "method": "PATCH", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n \"zaaktype\": \"\",\n \"omschrijving\": \"\",\n \"omschrijvingGeneriek\": \"\"\n}" + }, + "url": { + "raw": "{{baseUrl}}/roltypen/", + "host": [ + "{{baseUrl}}" + ], + "path": [ + "roltypen", + "" + ] + } + }, + "status": "Conflict", + "code": 409, + "_postman_previewlanguage": "json", + "header": [ + { + "key": "API-version", + "value": "", + "description": "Geeft een specifieke API-versie aan in de context van een specifieke aanroep. Voorbeeld: 1.2.1." + }, + { + "key": "Content-Type", + "value": "application/json" + } + ], + "cookie": [], + "body": "{\n \"code\": \"\",\n \"title\": \"\",\n \"status\": \"\",\n \"detail\": \"\",\n \"instance\": \"\",\n \"type\": \"\"\n}" + }, + { + "name": "Not acceptable", + "originalRequest": { + "method": "PATCH", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n \"zaaktype\": \"\",\n \"omschrijving\": \"\",\n \"omschrijvingGeneriek\": \"\"\n}" + }, + "url": { + "raw": "{{baseUrl}}/roltypen/", + "host": [ + "{{baseUrl}}" + ], + "path": [ + "roltypen", + "" + ] + } + }, + "status": "Not Acceptable", + "code": 406, + "_postman_previewlanguage": "json", + "header": [ + { + "key": "API-version", + "value": "", + "description": "Geeft een specifieke API-versie aan in de context van een specifieke aanroep. Voorbeeld: 1.2.1." + }, + { + "key": "Content-Type", + "value": "application/json" + } + ], + "cookie": [], + "body": "{\n \"code\": \"\",\n \"title\": \"\",\n \"status\": \"\",\n \"detail\": \"\",\n \"instance\": \"\",\n \"type\": \"\"\n}" + }, + { + "name": "Not found", + "originalRequest": { + "method": "PATCH", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n \"zaaktype\": \"\",\n \"omschrijving\": \"\",\n \"omschrijvingGeneriek\": \"\"\n}" + }, + "url": { + "raw": "{{baseUrl}}/roltypen/", + "host": [ + "{{baseUrl}}" + ], + "path": [ + "roltypen", + "" + ] + } + }, + "status": "Not Found", + "code": 404, + "_postman_previewlanguage": "json", + "header": [ + { + "key": "API-version", + "value": "", + "description": "Geeft een specifieke API-versie aan in de context van een specifieke aanroep. Voorbeeld: 1.2.1." + }, + { + "key": "Content-Type", + "value": "application/json" + } + ], + "cookie": [], + "body": "{\n \"code\": \"\",\n \"title\": \"\",\n \"status\": \"\",\n \"detail\": \"\",\n \"instance\": \"\",\n \"type\": \"\"\n}" + }, + { + "name": "OK", + "originalRequest": { + "method": "PATCH", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n \"zaaktype\": \"\",\n \"omschrijving\": \"\",\n \"omschrijvingGeneriek\": \"\"\n}" + }, + "url": { + "raw": "{{baseUrl}}/roltypen/", + "host": [ + "{{baseUrl}}" + ], + "path": [ + "roltypen", + "" + ] + } + }, + "status": "OK", + "code": 200, + "_postman_previewlanguage": "json", + "header": [ + { + "key": "API-version", + "value": "", + "description": "Geeft een specifieke API-versie aan in de context van een specifieke aanroep. Voorbeeld: 1.2.1." + }, + { + "key": "Content-Type", + "value": "application/json" + } + ], + "cookie": [], + "body": "{\n \"zaaktype\": \"\",\n \"omschrijving\": \"\",\n \"omschrijvingGeneriek\": \"\",\n \"url\": \"\"\n}" + }, + { + "name": "Unauthorized", + "originalRequest": { + "method": "PATCH", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n \"zaaktype\": \"\",\n \"omschrijving\": \"\",\n \"omschrijvingGeneriek\": \"\"\n}" + }, + "url": { + "raw": "{{baseUrl}}/roltypen/", + "host": [ + "{{baseUrl}}" + ], + "path": [ + "roltypen", + "" + ] + } + }, + "status": "Unauthorized", + "code": 401, + "_postman_previewlanguage": "json", + "header": [ + { + "key": "API-version", + "value": "", + "description": "Geeft een specifieke API-versie aan in de context van een specifieke aanroep. Voorbeeld: 1.2.1." + }, + { + "key": "Content-Type", + "value": "application/json" + } + ], + "cookie": [], + "body": "{\n \"code\": \"\",\n \"title\": \"\",\n \"status\": \"\",\n \"detail\": \"\",\n \"instance\": \"\",\n \"type\": \"\"\n}" + }, + { + "name": "Internal server error", + "originalRequest": { + "method": "PATCH", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n \"zaaktype\": \"\",\n \"omschrijving\": \"\",\n \"omschrijvingGeneriek\": \"\"\n}" + }, + "url": { + "raw": "{{baseUrl}}/roltypen/", + "host": [ + "{{baseUrl}}" + ], + "path": [ + "roltypen", + "" + ] + } + }, + "status": "Internal Server Error", + "code": 500, + "_postman_previewlanguage": "json", + "header": [ + { + "key": "API-version", + "value": "", + "description": "Geeft een specifieke API-versie aan in de context van een specifieke aanroep. Voorbeeld: 1.2.1." + }, + { + "key": "Content-Type", + "value": "application/json" + } + ], + "cookie": [], + "body": "{\n \"code\": \"\",\n \"title\": \"\",\n \"status\": \"\",\n \"detail\": \"\",\n \"instance\": \"\",\n \"type\": \"\"\n}" + }, + { + "name": "Bad request", + "originalRequest": { + "method": "PATCH", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n \"zaaktype\": \"\",\n \"omschrijving\": \"\",\n \"omschrijvingGeneriek\": \"\"\n}" + }, + "url": { + "raw": "{{baseUrl}}/roltypen/", + "host": [ + "{{baseUrl}}" + ], + "path": [ + "roltypen", + "" + ] + } + }, + "status": "Bad Request", + "code": 400, + "_postman_previewlanguage": "json", + "header": [ + { + "key": "API-version", + "value": "", + "description": "Geeft een specifieke API-versie aan in de context van een specifieke aanroep. Voorbeeld: 1.2.1." + }, + { + "key": "Content-Type", + "value": "application/json" + } + ], + "cookie": [], + "body": "{\n \"code\": \"\",\n \"title\": \"\",\n \"status\": \"\",\n \"detail\": \"\",\n \"instance\": \"\",\n \"invalidParams\": [\n {\n \"name\": \"\",\n \"code\": \"\",\n \"reason\": \"\"\n },\n {\n \"name\": \"\",\n \"code\": \"\",\n \"reason\": \"\"\n }\n ],\n \"type\": \"\"\n}" + } + ] + }, + { + "name": "Verwijder een ROLTYPE.", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "pm.test(\"Verwijder een ROLTYPE opvragen geeft 204\", function() {", + " pm.response.to.have.status(204);", + "});" + ], + "type": "text/javascript" + } + } + ], + "request": { + "method": "DELETE", + "header": [ + { + "key": "Accept", + "value": "application/json" + }, + { + "key": "Content-Type", + "value": "application/json" + } + ], + "url": { + "raw": "{{created_roltype_url}}", + "host": [ + "{{created_roltype_url}}" + ] + }, + "description": "Verwijder een ROLTYPE. Dit kan alleen als het bijbehorende ZAAKTYPE een\nconcept betreft." + }, + "response": [] + } + ], + "description": "Folder for roltypen" + }, + { + "name": "statustypen", + "item": [ + { + "name": "Alle STATUSTYPEn opvragen.", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "pm.test(\"Alle STATUSTYPEn opvragen geeft 200\", function() {", + " pm.response.to.have.status(200);", + "});" + ], + "type": "text/javascript" + } + } + ], + "request": { + "method": "GET", + "header": [ + { + "key": "Accept", + "value": "application/json" + }, + { + "key": "Content-Type", + "value": "application/json" + } + ], + "url": { + "raw": "{{ztc_url}}/statustypen?zaaktype={{zaaktype_url}}&status=concept&page=1", + "host": [ + "{{ztc_url}}" + ], + "path": [ + "statustypen" + ], + "query": [ + { + "key": "zaaktype", + "value": "{{zaaktype_url}}" + }, + { + "key": "status", + "value": "concept" + }, + { + "key": "page", + "value": "1" + } + ] + }, + "description": "Deze lijst kan gefilterd wordt met query-string parameters." + }, + "response": [] + }, + { + "name": "Maak een STATUSTYPE aan.", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "pm.test(\"Maak een STATUSTYPE aan geeft 201\", function() {", + " pm.response.to.have.status(201);", + "});", + "", + "if(pm.response.code == 201) {", + " pm.environment.set(\"created_statustype_url\", pm.response.json().url);", + " pm.environment.set(\"statustype_body\", pm.request.body.raw);", + "}" + ], + "type": "text/javascript", + "packages": {} + } + }, + { + "listen": "prerequest", + "script": { + "exec": [ + "" + ], + "type": "text/javascript", + "packages": {} + } + } + ], + "request": { + "method": "POST", + "header": [ + { + "key": "Accept", + "value": "application/json" + }, + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n\t\"omschrijving\": \"Eind2\",\n\t\"zaaktype\": \"{{created_zaaktype_url}}\",\n\t\"volgnummer\": 3\n}" + }, + "url": { + "raw": "{{ztc_url}}/statustypen", + "host": [ + "{{ztc_url}}" + ], + "path": [ + "statustypen" + ] + }, + "description": "Maak een STATUSTYPE aan. Dit kan alleen als het bijbehorende ZAAKTYPE een\nconcept betreft." + }, + "response": [] + }, + { + "name": "Een specifieke STATUSTYPE opvragen.", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "pm.test(\"Een specifiek STATUSTYPE opvragen geeft 200\", function() {", + " pm.response.to.have.status(200);", + "});" + ], + "type": "text/javascript" + } + } + ], + "request": { + "method": "GET", + "header": [ + { + "key": "Accept", + "value": "application/json" + }, + { + "key": "Content-Type", + "value": "application/json" + } + ], + "url": { + "raw": "{{created_statustype_url}}", + "host": [ + "{{created_statustype_url}}" + ] + }, + "description": "Een specifieke STATUSTYPE opvragen." + }, + "response": [] + }, + { + "name": "Werk een STATUSTYPE in zijn geheel bij.", + "event": [ + { + "listen": "prerequest", + "script": { + "exec": [ + "// Retrieve the body template and modify as needed", + "var body = JSON.parse(pm.environment.get(\"statustype_body\"));", + "body.omschrijving = \"aangepast\";", + "", + "// Store the modified body, allowing it to be used in the main request", + "pm.environment.set(\"request_body\", JSON.stringify(body));" + ], + "type": "text/javascript", + "packages": {} + } + }, + { + "listen": "test", + "script": { + "exec": [ + "pm.test(\"Werk een STATUSTYPE in zijn geheel bij geeft 200\", function() {", + " pm.response.to.have.status(200);", + "});", + "", + "pm.test(\"Werk een STATUSTYPE in zijn geheel bij past attributen aan\", function() {", + " pm.expect(pm.response.json().omschrijving).to.be.equal(\"aangepast\");", + "});" + ], + "type": "text/javascript", + "packages": {} + } + } + ], + "request": { + "method": "PUT", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{{request_body}}" + }, + "url": { + "raw": "{{created_statustype_url}}", + "host": [ + "{{created_statustype_url}}" + ] + }, + "description": "Werk een STATUSTYPE in zijn geheel bij. Dit kan alleen als het\nbijbehorende ZAAKTYPE een concept betreft." + }, + "response": [ + { + "name": "Forbidden", + "originalRequest": { + "method": "PUT", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n \"omschrijving\": \"\",\n \"zaaktype\": \"\",\n \"volgnummer\": \"\",\n \"omschrijvingGeneriek\": \"\",\n \"statustekst\": \"\",\n \"informeren\": \"\"\n}" + }, + "url": { + "raw": "{{baseUrl}}/statustypen/", + "host": [ + "{{baseUrl}}" + ], + "path": [ + "statustypen", + "" + ] + } + }, + "status": "Forbidden", + "code": 403, + "_postman_previewlanguage": "json", + "header": [ + { + "key": "API-version", + "value": "", + "description": "Geeft een specifieke API-versie aan in de context van een specifieke aanroep. Voorbeeld: 1.2.1." + }, + { + "key": "Content-Type", + "value": "application/json" + } + ], + "cookie": [], + "body": "{\n \"code\": \"\",\n \"title\": \"\",\n \"status\": \"\",\n \"detail\": \"\",\n \"instance\": \"\",\n \"type\": \"\"\n}" + }, + { + "name": "Not found", + "originalRequest": { + "method": "PUT", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n \"omschrijving\": \"\",\n \"zaaktype\": \"\",\n \"volgnummer\": \"\",\n \"omschrijvingGeneriek\": \"\",\n \"statustekst\": \"\",\n \"informeren\": \"\"\n}" + }, + "url": { + "raw": "{{baseUrl}}/statustypen/", + "host": [ + "{{baseUrl}}" + ], + "path": [ + "statustypen", + "" + ] + } + }, + "status": "Not Found", + "code": 404, + "_postman_previewlanguage": "json", + "header": [ + { + "key": "API-version", + "value": "", + "description": "Geeft een specifieke API-versie aan in de context van een specifieke aanroep. Voorbeeld: 1.2.1." + }, + { + "key": "Content-Type", + "value": "application/json" + } + ], + "cookie": [], + "body": "{\n \"code\": \"\",\n \"title\": \"\",\n \"status\": \"\",\n \"detail\": \"\",\n \"instance\": \"\",\n \"type\": \"\"\n}" + }, + { + "name": "Not acceptable", + "originalRequest": { + "method": "PUT", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n \"omschrijving\": \"\",\n \"zaaktype\": \"\",\n \"volgnummer\": \"\",\n \"omschrijvingGeneriek\": \"\",\n \"statustekst\": \"\",\n \"informeren\": \"\"\n}" + }, + "url": { + "raw": "{{baseUrl}}/statustypen/", + "host": [ + "{{baseUrl}}" + ], + "path": [ + "statustypen", + "" + ] + } + }, + "status": "Not Acceptable", + "code": 406, + "_postman_previewlanguage": "json", + "header": [ + { + "key": "API-version", + "value": "", + "description": "Geeft een specifieke API-versie aan in de context van een specifieke aanroep. Voorbeeld: 1.2.1." + }, + { + "key": "Content-Type", + "value": "application/json" + } + ], + "cookie": [], + "body": "{\n \"code\": \"\",\n \"title\": \"\",\n \"status\": \"\",\n \"detail\": \"\",\n \"instance\": \"\",\n \"type\": \"\"\n}" + }, + { + "name": "Too many requests", + "originalRequest": { + "method": "PUT", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n \"omschrijving\": \"\",\n \"zaaktype\": \"\",\n \"volgnummer\": \"\",\n \"omschrijvingGeneriek\": \"\",\n \"statustekst\": \"\",\n \"informeren\": \"\"\n}" + }, + "url": { + "raw": "{{baseUrl}}/statustypen/", + "host": [ + "{{baseUrl}}" + ], + "path": [ + "statustypen", + "" + ] + } + }, + "status": "Too Many Requests", + "code": 429, + "_postman_previewlanguage": "json", + "header": [ + { + "key": "API-version", + "value": "", + "description": "Geeft een specifieke API-versie aan in de context van een specifieke aanroep. Voorbeeld: 1.2.1." + }, + { + "key": "Content-Type", + "value": "application/json" + } + ], + "cookie": [], + "body": "{\n \"code\": \"\",\n \"title\": \"\",\n \"status\": \"\",\n \"detail\": \"\",\n \"instance\": \"\",\n \"type\": \"\"\n}" + }, + { + "name": "Internal server error", + "originalRequest": { + "method": "PUT", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n \"omschrijving\": \"\",\n \"zaaktype\": \"\",\n \"volgnummer\": \"\",\n \"omschrijvingGeneriek\": \"\",\n \"statustekst\": \"\",\n \"informeren\": \"\"\n}" + }, + "url": { + "raw": "{{baseUrl}}/statustypen/", + "host": [ + "{{baseUrl}}" + ], + "path": [ + "statustypen", + "" + ] + } + }, + "status": "Internal Server Error", + "code": 500, + "_postman_previewlanguage": "json", + "header": [ + { + "key": "API-version", + "value": "", + "description": "Geeft een specifieke API-versie aan in de context van een specifieke aanroep. Voorbeeld: 1.2.1." + }, + { + "key": "Content-Type", + "value": "application/json" + } + ], + "cookie": [], + "body": "{\n \"code\": \"\",\n \"title\": \"\",\n \"status\": \"\",\n \"detail\": \"\",\n \"instance\": \"\",\n \"type\": \"\"\n}" + }, + { + "name": "Bad request", + "originalRequest": { + "method": "PUT", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n \"omschrijving\": \"\",\n \"zaaktype\": \"\",\n \"volgnummer\": \"\",\n \"omschrijvingGeneriek\": \"\",\n \"statustekst\": \"\",\n \"informeren\": \"\"\n}" + }, + "url": { + "raw": "{{baseUrl}}/statustypen/", + "host": [ + "{{baseUrl}}" + ], + "path": [ + "statustypen", + "" + ] + } + }, + "status": "Bad Request", + "code": 400, + "_postman_previewlanguage": "json", + "header": [ + { + "key": "API-version", + "value": "", + "description": "Geeft een specifieke API-versie aan in de context van een specifieke aanroep. Voorbeeld: 1.2.1." + }, + { + "key": "Content-Type", + "value": "application/json" + } + ], + "cookie": [], + "body": "{\n \"code\": \"\",\n \"title\": \"\",\n \"status\": \"\",\n \"detail\": \"\",\n \"instance\": \"\",\n \"invalidParams\": [\n {\n \"name\": \"\",\n \"code\": \"\",\n \"reason\": \"\"\n },\n {\n \"name\": \"\",\n \"code\": \"\",\n \"reason\": \"\"\n }\n ],\n \"type\": \"\"\n}" + }, + { + "name": "Unauthorized", + "originalRequest": { + "method": "PUT", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n \"omschrijving\": \"\",\n \"zaaktype\": \"\",\n \"volgnummer\": \"\",\n \"omschrijvingGeneriek\": \"\",\n \"statustekst\": \"\",\n \"informeren\": \"\"\n}" + }, + "url": { + "raw": "{{baseUrl}}/statustypen/", + "host": [ + "{{baseUrl}}" + ], + "path": [ + "statustypen", + "" + ] + } + }, + "status": "Unauthorized", + "code": 401, + "_postman_previewlanguage": "json", + "header": [ + { + "key": "API-version", + "value": "", + "description": "Geeft een specifieke API-versie aan in de context van een specifieke aanroep. Voorbeeld: 1.2.1." + }, + { + "key": "Content-Type", + "value": "application/json" + } + ], + "cookie": [], + "body": "{\n \"code\": \"\",\n \"title\": \"\",\n \"status\": \"\",\n \"detail\": \"\",\n \"instance\": \"\",\n \"type\": \"\"\n}" + }, + { + "name": "OK", + "originalRequest": { + "method": "PUT", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n \"omschrijving\": \"\",\n \"zaaktype\": \"\",\n \"volgnummer\": \"\",\n \"omschrijvingGeneriek\": \"\",\n \"statustekst\": \"\",\n \"informeren\": \"\"\n}" + }, + "url": { + "raw": "{{baseUrl}}/statustypen/", + "host": [ + "{{baseUrl}}" + ], + "path": [ + "statustypen", + "" + ] + } + }, + "status": "OK", + "code": 200, + "_postman_previewlanguage": "json", + "header": [ + { + "key": "API-version", + "value": "", + "description": "Geeft een specifieke API-versie aan in de context van een specifieke aanroep. Voorbeeld: 1.2.1." + }, + { + "key": "Content-Type", + "value": "application/json" + } + ], + "cookie": [], + "body": "{\n \"omschrijving\": \"\",\n \"zaaktype\": \"\",\n \"volgnummer\": \"\",\n \"url\": \"\",\n \"omschrijvingGeneriek\": \"\",\n \"statustekst\": \"\",\n \"isEindstatus\": \"\",\n \"informeren\": \"\"\n}" + }, + { + "name": "Unsupported media type", + "originalRequest": { + "method": "PUT", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n \"omschrijving\": \"\",\n \"zaaktype\": \"\",\n \"volgnummer\": \"\",\n \"omschrijvingGeneriek\": \"\",\n \"statustekst\": \"\",\n \"informeren\": \"\"\n}" + }, + "url": { + "raw": "{{baseUrl}}/statustypen/", + "host": [ + "{{baseUrl}}" + ], + "path": [ + "statustypen", + "" + ] + } + }, + "status": "Unsupported Media Type", + "code": 415, + "_postman_previewlanguage": "json", + "header": [ + { + "key": "API-version", + "value": "", + "description": "Geeft een specifieke API-versie aan in de context van een specifieke aanroep. Voorbeeld: 1.2.1." + }, + { + "key": "Content-Type", + "value": "application/json" + } + ], + "cookie": [], + "body": "{\n \"code\": \"\",\n \"title\": \"\",\n \"status\": \"\",\n \"detail\": \"\",\n \"instance\": \"\",\n \"type\": \"\"\n}" + }, + { + "name": "Gone", + "originalRequest": { + "method": "PUT", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n \"omschrijving\": \"\",\n \"zaaktype\": \"\",\n \"volgnummer\": \"\",\n \"omschrijvingGeneriek\": \"\",\n \"statustekst\": \"\",\n \"informeren\": \"\"\n}" + }, + "url": { + "raw": "{{baseUrl}}/statustypen/", + "host": [ + "{{baseUrl}}" + ], + "path": [ + "statustypen", + "" + ] + } + }, + "status": "Gone", + "code": 410, + "_postman_previewlanguage": "json", + "header": [ + { + "key": "API-version", + "value": "", + "description": "Geeft een specifieke API-versie aan in de context van een specifieke aanroep. Voorbeeld: 1.2.1." + }, + { + "key": "Content-Type", + "value": "application/json" + } + ], + "cookie": [], + "body": "{\n \"code\": \"\",\n \"title\": \"\",\n \"status\": \"\",\n \"detail\": \"\",\n \"instance\": \"\",\n \"type\": \"\"\n}" + }, + { + "name": "Conflict", + "originalRequest": { + "method": "PUT", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n \"omschrijving\": \"\",\n \"zaaktype\": \"\",\n \"volgnummer\": \"\",\n \"omschrijvingGeneriek\": \"\",\n \"statustekst\": \"\",\n \"informeren\": \"\"\n}" + }, + "url": { + "raw": "{{baseUrl}}/statustypen/", + "host": [ + "{{baseUrl}}" + ], + "path": [ + "statustypen", + "" + ] + } + }, + "status": "Conflict", + "code": 409, + "_postman_previewlanguage": "json", + "header": [ + { + "key": "API-version", + "value": "", + "description": "Geeft een specifieke API-versie aan in de context van een specifieke aanroep. Voorbeeld: 1.2.1." + }, + { + "key": "Content-Type", + "value": "application/json" + } + ], + "cookie": [], + "body": "{\n \"code\": \"\",\n \"title\": \"\",\n \"status\": \"\",\n \"detail\": \"\",\n \"instance\": \"\",\n \"type\": \"\"\n}" + } + ] + }, + { + "name": "Werk een STATUSTYPE deels bij.", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "pm.test(\"Werk een STATUSTYPE deels bij geeft 200\", function() {", + " pm.response.to.have.status(200);", + "});", + "", + "pm.test(\"Werk een STATUSTYPE deels bij past attributen aan\", function() {", + " pm.expect(pm.response.json().omschrijving).to.be.equal(\"aangepast2\");", + "});" + ], + "type": "text/javascript" + } + } + ], + "request": { + "method": "PATCH", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n\t\"omschrijving\": \"aangepast2\"\n}" + }, + "url": { + "raw": "{{created_statustype_url}}", + "host": [ + "{{created_statustype_url}}" + ] + }, + "description": "Werk een STATUSTYPE deels bij. Dit kan alleen als het bijbehorende\nZAAKTYPE een concept betreft." + }, + "response": [ + { + "name": "Unauthorized", + "originalRequest": { + "method": "PATCH", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n \"omschrijving\": \"\",\n \"zaaktype\": \"\",\n \"volgnummer\": \"\",\n \"omschrijvingGeneriek\": \"\",\n \"statustekst\": \"\",\n \"informeren\": \"\"\n}" + }, + "url": { + "raw": "{{baseUrl}}/statustypen/", + "host": [ + "{{baseUrl}}" + ], + "path": [ + "statustypen", + "" + ] + } + }, + "status": "Unauthorized", + "code": 401, + "_postman_previewlanguage": "json", + "header": [ + { + "key": "API-version", + "value": "", + "description": "Geeft een specifieke API-versie aan in de context van een specifieke aanroep. Voorbeeld: 1.2.1." + }, + { + "key": "Content-Type", + "value": "application/json" + } + ], + "cookie": [], + "body": "{\n \"code\": \"\",\n \"title\": \"\",\n \"status\": \"\",\n \"detail\": \"\",\n \"instance\": \"\",\n \"type\": \"\"\n}" + }, + { + "name": "Not acceptable", + "originalRequest": { + "method": "PATCH", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n \"omschrijving\": \"\",\n \"zaaktype\": \"\",\n \"volgnummer\": \"\",\n \"omschrijvingGeneriek\": \"\",\n \"statustekst\": \"\",\n \"informeren\": \"\"\n}" + }, + "url": { + "raw": "{{baseUrl}}/statustypen/", + "host": [ + "{{baseUrl}}" + ], + "path": [ + "statustypen", + "" + ] + } + }, + "status": "Not Acceptable", + "code": 406, + "_postman_previewlanguage": "json", + "header": [ + { + "key": "API-version", + "value": "", + "description": "Geeft een specifieke API-versie aan in de context van een specifieke aanroep. Voorbeeld: 1.2.1." + }, + { + "key": "Content-Type", + "value": "application/json" + } + ], + "cookie": [], + "body": "{\n \"code\": \"\",\n \"title\": \"\",\n \"status\": \"\",\n \"detail\": \"\",\n \"instance\": \"\",\n \"type\": \"\"\n}" + }, + { + "name": "OK", + "originalRequest": { + "method": "PATCH", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n \"omschrijving\": \"\",\n \"zaaktype\": \"\",\n \"volgnummer\": \"\",\n \"omschrijvingGeneriek\": \"\",\n \"statustekst\": \"\",\n \"informeren\": \"\"\n}" + }, + "url": { + "raw": "{{baseUrl}}/statustypen/", + "host": [ + "{{baseUrl}}" + ], + "path": [ + "statustypen", + "" + ] + } + }, + "status": "OK", + "code": 200, + "_postman_previewlanguage": "json", + "header": [ + { + "key": "API-version", + "value": "", + "description": "Geeft een specifieke API-versie aan in de context van een specifieke aanroep. Voorbeeld: 1.2.1." + }, + { + "key": "Content-Type", + "value": "application/json" + } + ], + "cookie": [], + "body": "{\n \"omschrijving\": \"\",\n \"zaaktype\": \"\",\n \"volgnummer\": \"\",\n \"url\": \"\",\n \"omschrijvingGeneriek\": \"\",\n \"statustekst\": \"\",\n \"isEindstatus\": \"\",\n \"informeren\": \"\"\n}" + }, + { + "name": "Forbidden", + "originalRequest": { + "method": "PATCH", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n \"omschrijving\": \"\",\n \"zaaktype\": \"\",\n \"volgnummer\": \"\",\n \"omschrijvingGeneriek\": \"\",\n \"statustekst\": \"\",\n \"informeren\": \"\"\n}" + }, + "url": { + "raw": "{{baseUrl}}/statustypen/", + "host": [ + "{{baseUrl}}" + ], + "path": [ + "statustypen", + "" + ] + } + }, + "status": "Forbidden", + "code": 403, + "_postman_previewlanguage": "json", + "header": [ + { + "key": "API-version", + "value": "", + "description": "Geeft een specifieke API-versie aan in de context van een specifieke aanroep. Voorbeeld: 1.2.1." + }, + { + "key": "Content-Type", + "value": "application/json" + } + ], + "cookie": [], + "body": "{\n \"code\": \"\",\n \"title\": \"\",\n \"status\": \"\",\n \"detail\": \"\",\n \"instance\": \"\",\n \"type\": \"\"\n}" + }, + { + "name": "Not found", + "originalRequest": { + "method": "PATCH", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n \"omschrijving\": \"\",\n \"zaaktype\": \"\",\n \"volgnummer\": \"\",\n \"omschrijvingGeneriek\": \"\",\n \"statustekst\": \"\",\n \"informeren\": \"\"\n}" + }, + "url": { + "raw": "{{baseUrl}}/statustypen/", + "host": [ + "{{baseUrl}}" + ], + "path": [ + "statustypen", + "" + ] + } + }, + "status": "Not Found", + "code": 404, + "_postman_previewlanguage": "json", + "header": [ + { + "key": "API-version", + "value": "", + "description": "Geeft een specifieke API-versie aan in de context van een specifieke aanroep. Voorbeeld: 1.2.1." + }, + { + "key": "Content-Type", + "value": "application/json" + } + ], + "cookie": [], + "body": "{\n \"code\": \"\",\n \"title\": \"\",\n \"status\": \"\",\n \"detail\": \"\",\n \"instance\": \"\",\n \"type\": \"\"\n}" + }, + { + "name": "Bad request", + "originalRequest": { + "method": "PATCH", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n \"omschrijving\": \"\",\n \"zaaktype\": \"\",\n \"volgnummer\": \"\",\n \"omschrijvingGeneriek\": \"\",\n \"statustekst\": \"\",\n \"informeren\": \"\"\n}" + }, + "url": { + "raw": "{{baseUrl}}/statustypen/", + "host": [ + "{{baseUrl}}" + ], + "path": [ + "statustypen", + "" + ] + } + }, + "status": "Bad Request", + "code": 400, + "_postman_previewlanguage": "json", + "header": [ + { + "key": "API-version", + "value": "", + "description": "Geeft een specifieke API-versie aan in de context van een specifieke aanroep. Voorbeeld: 1.2.1." + }, + { + "key": "Content-Type", + "value": "application/json" + } + ], + "cookie": [], + "body": "{\n \"code\": \"\",\n \"title\": \"\",\n \"status\": \"\",\n \"detail\": \"\",\n \"instance\": \"\",\n \"invalidParams\": [\n {\n \"name\": \"\",\n \"code\": \"\",\n \"reason\": \"\"\n },\n {\n \"name\": \"\",\n \"code\": \"\",\n \"reason\": \"\"\n }\n ],\n \"type\": \"\"\n}" + }, + { + "name": "Gone", + "originalRequest": { + "method": "PATCH", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n \"omschrijving\": \"\",\n \"zaaktype\": \"\",\n \"volgnummer\": \"\",\n \"omschrijvingGeneriek\": \"\",\n \"statustekst\": \"\",\n \"informeren\": \"\"\n}" + }, + "url": { + "raw": "{{baseUrl}}/statustypen/", + "host": [ + "{{baseUrl}}" + ], + "path": [ + "statustypen", + "" + ] + } + }, + "status": "Gone", + "code": 410, + "_postman_previewlanguage": "json", + "header": [ + { + "key": "API-version", + "value": "", + "description": "Geeft een specifieke API-versie aan in de context van een specifieke aanroep. Voorbeeld: 1.2.1." + }, + { + "key": "Content-Type", + "value": "application/json" + } + ], + "cookie": [], + "body": "{\n \"code\": \"\",\n \"title\": \"\",\n \"status\": \"\",\n \"detail\": \"\",\n \"instance\": \"\",\n \"type\": \"\"\n}" + }, + { + "name": "Too many requests", + "originalRequest": { + "method": "PATCH", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n \"omschrijving\": \"\",\n \"zaaktype\": \"\",\n \"volgnummer\": \"\",\n \"omschrijvingGeneriek\": \"\",\n \"statustekst\": \"\",\n \"informeren\": \"\"\n}" + }, + "url": { + "raw": "{{baseUrl}}/statustypen/", + "host": [ + "{{baseUrl}}" + ], + "path": [ + "statustypen", + "" + ] + } + }, + "status": "Too Many Requests", + "code": 429, + "_postman_previewlanguage": "json", + "header": [ + { + "key": "API-version", + "value": "", + "description": "Geeft een specifieke API-versie aan in de context van een specifieke aanroep. Voorbeeld: 1.2.1." + }, + { + "key": "Content-Type", + "value": "application/json" + } + ], + "cookie": [], + "body": "{\n \"code\": \"\",\n \"title\": \"\",\n \"status\": \"\",\n \"detail\": \"\",\n \"instance\": \"\",\n \"type\": \"\"\n}" + }, + { + "name": "Conflict", + "originalRequest": { + "method": "PATCH", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n \"omschrijving\": \"\",\n \"zaaktype\": \"\",\n \"volgnummer\": \"\",\n \"omschrijvingGeneriek\": \"\",\n \"statustekst\": \"\",\n \"informeren\": \"\"\n}" + }, + "url": { + "raw": "{{baseUrl}}/statustypen/", + "host": [ + "{{baseUrl}}" + ], + "path": [ + "statustypen", + "" + ] + } + }, + "status": "Conflict", + "code": 409, + "_postman_previewlanguage": "json", + "header": [ + { + "key": "API-version", + "value": "", + "description": "Geeft een specifieke API-versie aan in de context van een specifieke aanroep. Voorbeeld: 1.2.1." + }, + { + "key": "Content-Type", + "value": "application/json" + } + ], + "cookie": [], + "body": "{\n \"code\": \"\",\n \"title\": \"\",\n \"status\": \"\",\n \"detail\": \"\",\n \"instance\": \"\",\n \"type\": \"\"\n}" + }, + { + "name": "Unsupported media type", + "originalRequest": { + "method": "PATCH", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n \"omschrijving\": \"\",\n \"zaaktype\": \"\",\n \"volgnummer\": \"\",\n \"omschrijvingGeneriek\": \"\",\n \"statustekst\": \"\",\n \"informeren\": \"\"\n}" + }, + "url": { + "raw": "{{baseUrl}}/statustypen/", + "host": [ + "{{baseUrl}}" + ], + "path": [ + "statustypen", + "" + ] + } + }, + "status": "Unsupported Media Type", + "code": 415, + "_postman_previewlanguage": "json", + "header": [ + { + "key": "API-version", + "value": "", + "description": "Geeft een specifieke API-versie aan in de context van een specifieke aanroep. Voorbeeld: 1.2.1." + }, + { + "key": "Content-Type", + "value": "application/json" + } + ], + "cookie": [], + "body": "{\n \"code\": \"\",\n \"title\": \"\",\n \"status\": \"\",\n \"detail\": \"\",\n \"instance\": \"\",\n \"type\": \"\"\n}" + }, + { + "name": "Internal server error", + "originalRequest": { + "method": "PATCH", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n \"omschrijving\": \"\",\n \"zaaktype\": \"\",\n \"volgnummer\": \"\",\n \"omschrijvingGeneriek\": \"\",\n \"statustekst\": \"\",\n \"informeren\": \"\"\n}" + }, + "url": { + "raw": "{{baseUrl}}/statustypen/", + "host": [ + "{{baseUrl}}" + ], + "path": [ + "statustypen", + "" + ] + } + }, + "status": "Internal Server Error", + "code": 500, + "_postman_previewlanguage": "json", + "header": [ + { + "key": "API-version", + "value": "", + "description": "Geeft een specifieke API-versie aan in de context van een specifieke aanroep. Voorbeeld: 1.2.1." + }, + { + "key": "Content-Type", + "value": "application/json" + } + ], + "cookie": [], + "body": "{\n \"code\": \"\",\n \"title\": \"\",\n \"status\": \"\",\n \"detail\": \"\",\n \"instance\": \"\",\n \"type\": \"\"\n}" + } + ] + }, + { + "name": "Verwijder een STATUSTYPE.", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "pm.test(\"Verwijder een STATUSTYPE opvragen geeft 204\", function() {", + " pm.response.to.have.status(204);", + "});" + ], + "type": "text/javascript" + } + } + ], + "request": { + "method": "DELETE", + "header": [ + { + "key": "Accept", + "value": "application/json" + }, + { + "key": "Content-Type", + "value": "application/json" + } + ], + "url": { + "raw": "{{created_statustype_url}}", + "host": [ + "{{created_statustype_url}}" + ] + }, + "description": "Verwijder een STATUSTYPE. Dit kan alleen als het bijbehorende ZAAKTYPE een\nconcept betreft." + }, + "response": [] + } + ], + "description": "Folder for statustypen" + }, + { + "name": "zaaktype-informatieobjecttypen", + "item": [ + { + "name": "Alle ZAAKTYPE-INFORMATIEOBJECTTYPE relaties opvragen.", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "pm.test(\"Alle ZAAKTYPE-INFORMATIEOBJECTTYPE relaties opvragen geeft 200\", function() {", + " pm.response.to.have.status(200);", + "});" + ], + "type": "text/javascript" + } + } + ], + "request": { + "method": "GET", + "header": [ + { + "key": "Accept", + "value": "application/json" + }, + { + "key": "Content-Type", + "value": "application/json" + } + ], + "url": { + "raw": "{{ztc_url}}/zaaktype-informatieobjecttypen?zaaktype={{zaaktype_url}}&informatieobjecttype={{informatieobjecttype_url}}&richting=inkomend&status=concept&page=1", + "host": [ + "{{ztc_url}}" + ], + "path": [ + "zaaktype-informatieobjecttypen" + ], + "query": [ + { + "key": "zaaktype", + "value": "{{zaaktype_url}}" + }, + { + "key": "informatieobjecttype", + "value": "{{informatieobjecttype_url}}" + }, + { + "key": "richting", + "value": "inkomend" + }, + { + "key": "status", + "value": "concept" + }, + { + "key": "page", + "value": "1" + } + ] + }, + "description": "Deze lijst kan gefilterd wordt met query-string parameters." + }, + "response": [] + }, + { + "name": "Maak een ZAAKTYPE-INFORMATIEOBJECTTYPE relatie aan.", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "pm.test(\"Maak een ZAAKTYPE-INFORMATIEOBJECTTYPE relatie aan geeft 201\", function() {", + " pm.response.to.have.status(201);", + "});", + "", + "if(pm.response.code == 201) {", + " pm.environment.set(\"created_relatie_url\", pm.response.json().url);", + " pm.environment.set(\"relatie_body\", pm.request.body.raw);", + "}" + ], + "type": "text/javascript", + "packages": {} + } + } + ], + "request": { + "method": "POST", + "header": [ + { + "key": "Accept", + "value": "application/json" + }, + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n\t\"zaaktype\": \"{{created_zaaktype_url}}\",\n\t\"informatieobjecttype\": \"{{created_informatieobjecttype_url}}\",\n\t\"volgnummer\": 2,\n\t\"richting\": \"intern\"\n}" + }, + "url": { + "raw": "{{ztc_url}}/zaaktype-informatieobjecttypen", + "host": [ + "{{ztc_url}}" + ], + "path": [ + "zaaktype-informatieobjecttypen" + ] + }, + "description": "Maak een ZAAKTYPE-INFORMATIEOBJECTTYPE relatie aan. Dit kan alleen als het\nbijbehorende ZAAKTYPE een concept betreft." + }, + "response": [] + }, + { + "name": "Een specifieke ZAAKTYPE-INFORMATIEOBJECTTYPE relatie opvragen.", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "pm.test(\"Een specifieke ZAAKTYPE-INFORMATIEOBJECTTYPE relatie opvragen geeft 200\", function() {", + " pm.response.to.have.status(200);", + "});" + ], + "type": "text/javascript" + } + } + ], + "request": { + "method": "GET", + "header": [ + { + "key": "Accept", + "value": "application/json" + }, + { + "key": "Content-Type", + "value": "application/json" + } + ], + "url": { + "raw": "{{created_relatie_url}}", + "host": [ + "{{created_relatie_url}}" + ] + }, + "description": "Een specifieke ZAAKTYPE-INFORMATIEOBJECTTYPE relatie opvragen." + }, + "response": [] + }, + { + "name": "Werk een ZAAKTYPE-INFORMATIEOBJECTTYPE relatie in zijn geheel bij.", + "event": [ + { + "listen": "prerequest", + "script": { + "exec": [ + "// Retrieve the body template and modify as needed", + "var body = JSON.parse(pm.environment.get(\"relatie_body\"));", + "body.volgnummer = 4", + "", + "// Store the modified body, allowing it to be used in the main request", + "pm.environment.set(\"request_body\", JSON.stringify(body));" + ], + "type": "text/javascript", + "packages": {} + } + }, + { + "listen": "test", + "script": { + "exec": [ + "pm.test(\"Werk een ZAAKTYPE-INFORMATIEOBJECTTYPE in zijn geheel bij geeft 200\", function() {", + " pm.response.to.have.status(200);", + "});", + "", + "pm.test(\"Werk een ZAAKTYPE-INFORMATIEOBJECTTYPE in zijn geheel bij past attributen aan\", function() {", + " pm.expect(pm.response.json().volgnummer).to.be.equal(4);", + "});" + ], + "type": "text/javascript", + "packages": {} + } + } + ], + "request": { + "method": "PUT", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{{request_body}}" + }, + "url": { + "raw": "{{created_relatie_url}}", + "host": [ + "{{created_relatie_url}}" + ] + }, + "description": "Werk een ZAAKTYPE-INFORMATIEOBJECTTYPE relatie in zijn geheel bij. Dit kan\nalleen als het bijbehorende ZAAKTYPE een concept betreft." + }, + "response": [ + { + "name": "Forbidden", + "originalRequest": { + "method": "PUT", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n \"zaaktype\": \"\",\n \"informatieobjecttype\": \"\",\n \"volgnummer\": \"\",\n \"richting\": \"\",\n \"statustype\": \"\"\n}" + }, + "url": { + "raw": "{{baseUrl}}/zaaktype-informatieobjecttypen/", + "host": [ + "{{baseUrl}}" + ], + "path": [ + "zaaktype-informatieobjecttypen", + "" + ] + } + }, + "status": "Forbidden", + "code": 403, + "_postman_previewlanguage": "json", + "header": [ + { + "key": "API-version", + "value": "", + "description": "Geeft een specifieke API-versie aan in de context van een specifieke aanroep. Voorbeeld: 1.2.1." + }, + { + "key": "Content-Type", + "value": "application/json" + } + ], + "cookie": [], + "body": "{\n \"code\": \"\",\n \"title\": \"\",\n \"status\": \"\",\n \"detail\": \"\",\n \"instance\": \"\",\n \"type\": \"\"\n}" + }, + { + "name": "Bad request", + "originalRequest": { + "method": "PUT", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n \"zaaktype\": \"\",\n \"informatieobjecttype\": \"\",\n \"volgnummer\": \"\",\n \"richting\": \"\",\n \"statustype\": \"\"\n}" + }, + "url": { + "raw": "{{baseUrl}}/zaaktype-informatieobjecttypen/", + "host": [ + "{{baseUrl}}" + ], + "path": [ + "zaaktype-informatieobjecttypen", + "" + ] + } + }, + "status": "Bad Request", + "code": 400, + "_postman_previewlanguage": "json", + "header": [ + { + "key": "API-version", + "value": "", + "description": "Geeft een specifieke API-versie aan in de context van een specifieke aanroep. Voorbeeld: 1.2.1." + }, + { + "key": "Content-Type", + "value": "application/json" + } + ], + "cookie": [], + "body": "{\n \"code\": \"\",\n \"title\": \"\",\n \"status\": \"\",\n \"detail\": \"\",\n \"instance\": \"\",\n \"invalidParams\": [\n {\n \"name\": \"\",\n \"code\": \"\",\n \"reason\": \"\"\n },\n {\n \"name\": \"\",\n \"code\": \"\",\n \"reason\": \"\"\n }\n ],\n \"type\": \"\"\n}" + }, + { + "name": "Too many requests", + "originalRequest": { + "method": "PUT", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n \"zaaktype\": \"\",\n \"informatieobjecttype\": \"\",\n \"volgnummer\": \"\",\n \"richting\": \"\",\n \"statustype\": \"\"\n}" + }, + "url": { + "raw": "{{baseUrl}}/zaaktype-informatieobjecttypen/", + "host": [ + "{{baseUrl}}" + ], + "path": [ + "zaaktype-informatieobjecttypen", + "" + ] + } + }, + "status": "Too Many Requests", + "code": 429, + "_postman_previewlanguage": "json", + "header": [ + { + "key": "API-version", + "value": "", + "description": "Geeft een specifieke API-versie aan in de context van een specifieke aanroep. Voorbeeld: 1.2.1." + }, + { + "key": "Content-Type", + "value": "application/json" + } + ], + "cookie": [], + "body": "{\n \"code\": \"\",\n \"title\": \"\",\n \"status\": \"\",\n \"detail\": \"\",\n \"instance\": \"\",\n \"type\": \"\"\n}" + }, + { + "name": "Gone", + "originalRequest": { + "method": "PUT", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n \"zaaktype\": \"\",\n \"informatieobjecttype\": \"\",\n \"volgnummer\": \"\",\n \"richting\": \"\",\n \"statustype\": \"\"\n}" + }, + "url": { + "raw": "{{baseUrl}}/zaaktype-informatieobjecttypen/", + "host": [ + "{{baseUrl}}" + ], + "path": [ + "zaaktype-informatieobjecttypen", + "" + ] + } + }, + "status": "Gone", + "code": 410, + "_postman_previewlanguage": "json", + "header": [ + { + "key": "API-version", + "value": "", + "description": "Geeft een specifieke API-versie aan in de context van een specifieke aanroep. Voorbeeld: 1.2.1." + }, + { + "key": "Content-Type", + "value": "application/json" + } + ], + "cookie": [], + "body": "{\n \"code\": \"\",\n \"title\": \"\",\n \"status\": \"\",\n \"detail\": \"\",\n \"instance\": \"\",\n \"type\": \"\"\n}" + }, + { + "name": "Conflict", + "originalRequest": { + "method": "PUT", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n \"zaaktype\": \"\",\n \"informatieobjecttype\": \"\",\n \"volgnummer\": \"\",\n \"richting\": \"\",\n \"statustype\": \"\"\n}" + }, + "url": { + "raw": "{{baseUrl}}/zaaktype-informatieobjecttypen/", + "host": [ + "{{baseUrl}}" + ], + "path": [ + "zaaktype-informatieobjecttypen", + "" + ] + } + }, + "status": "Conflict", + "code": 409, + "_postman_previewlanguage": "json", + "header": [ + { + "key": "API-version", + "value": "", + "description": "Geeft een specifieke API-versie aan in de context van een specifieke aanroep. Voorbeeld: 1.2.1." + }, + { + "key": "Content-Type", + "value": "application/json" + } + ], + "cookie": [], + "body": "{\n \"code\": \"\",\n \"title\": \"\",\n \"status\": \"\",\n \"detail\": \"\",\n \"instance\": \"\",\n \"type\": \"\"\n}" + }, + { + "name": "Not acceptable", + "originalRequest": { + "method": "PUT", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n \"zaaktype\": \"\",\n \"informatieobjecttype\": \"\",\n \"volgnummer\": \"\",\n \"richting\": \"\",\n \"statustype\": \"\"\n}" + }, + "url": { + "raw": "{{baseUrl}}/zaaktype-informatieobjecttypen/", + "host": [ + "{{baseUrl}}" + ], + "path": [ + "zaaktype-informatieobjecttypen", + "" + ] + } + }, + "status": "Not Acceptable", + "code": 406, + "_postman_previewlanguage": "json", + "header": [ + { + "key": "API-version", + "value": "", + "description": "Geeft een specifieke API-versie aan in de context van een specifieke aanroep. Voorbeeld: 1.2.1." + }, + { + "key": "Content-Type", + "value": "application/json" + } + ], + "cookie": [], + "body": "{\n \"code\": \"\",\n \"title\": \"\",\n \"status\": \"\",\n \"detail\": \"\",\n \"instance\": \"\",\n \"type\": \"\"\n}" + }, + { + "name": "Unauthorized", + "originalRequest": { + "method": "PUT", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n \"zaaktype\": \"\",\n \"informatieobjecttype\": \"\",\n \"volgnummer\": \"\",\n \"richting\": \"\",\n \"statustype\": \"\"\n}" + }, + "url": { + "raw": "{{baseUrl}}/zaaktype-informatieobjecttypen/", + "host": [ + "{{baseUrl}}" + ], + "path": [ + "zaaktype-informatieobjecttypen", + "" + ] + } + }, + "status": "Unauthorized", + "code": 401, + "_postman_previewlanguage": "json", + "header": [ + { + "key": "API-version", + "value": "", + "description": "Geeft een specifieke API-versie aan in de context van een specifieke aanroep. Voorbeeld: 1.2.1." + }, + { + "key": "Content-Type", + "value": "application/json" + } + ], + "cookie": [], + "body": "{\n \"code\": \"\",\n \"title\": \"\",\n \"status\": \"\",\n \"detail\": \"\",\n \"instance\": \"\",\n \"type\": \"\"\n}" + }, + { + "name": "Unsupported media type", + "originalRequest": { + "method": "PUT", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n \"zaaktype\": \"\",\n \"informatieobjecttype\": \"\",\n \"volgnummer\": \"\",\n \"richting\": \"\",\n \"statustype\": \"\"\n}" + }, + "url": { + "raw": "{{baseUrl}}/zaaktype-informatieobjecttypen/", + "host": [ + "{{baseUrl}}" + ], + "path": [ + "zaaktype-informatieobjecttypen", + "" + ] + } + }, + "status": "Unsupported Media Type", + "code": 415, + "_postman_previewlanguage": "json", + "header": [ + { + "key": "API-version", + "value": "", + "description": "Geeft een specifieke API-versie aan in de context van een specifieke aanroep. Voorbeeld: 1.2.1." + }, + { + "key": "Content-Type", + "value": "application/json" + } + ], + "cookie": [], + "body": "{\n \"code\": \"\",\n \"title\": \"\",\n \"status\": \"\",\n \"detail\": \"\",\n \"instance\": \"\",\n \"type\": \"\"\n}" + }, + { + "name": "Not found", + "originalRequest": { + "method": "PUT", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n \"zaaktype\": \"\",\n \"informatieobjecttype\": \"\",\n \"volgnummer\": \"\",\n \"richting\": \"\",\n \"statustype\": \"\"\n}" + }, + "url": { + "raw": "{{baseUrl}}/zaaktype-informatieobjecttypen/", + "host": [ + "{{baseUrl}}" + ], + "path": [ + "zaaktype-informatieobjecttypen", + "" + ] + } + }, + "status": "Not Found", + "code": 404, + "_postman_previewlanguage": "json", + "header": [ + { + "key": "API-version", + "value": "", + "description": "Geeft een specifieke API-versie aan in de context van een specifieke aanroep. Voorbeeld: 1.2.1." + }, + { + "key": "Content-Type", + "value": "application/json" + } + ], + "cookie": [], + "body": "{\n \"code\": \"\",\n \"title\": \"\",\n \"status\": \"\",\n \"detail\": \"\",\n \"instance\": \"\",\n \"type\": \"\"\n}" + }, + { + "name": "OK", + "originalRequest": { + "method": "PUT", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n \"zaaktype\": \"\",\n \"informatieobjecttype\": \"\",\n \"volgnummer\": \"\",\n \"richting\": \"\",\n \"statustype\": \"\"\n}" + }, + "url": { + "raw": "{{baseUrl}}/zaaktype-informatieobjecttypen/", + "host": [ + "{{baseUrl}}" + ], + "path": [ + "zaaktype-informatieobjecttypen", + "" + ] + } + }, + "status": "OK", + "code": 200, + "_postman_previewlanguage": "json", + "header": [ + { + "key": "API-version", + "value": "", + "description": "Geeft een specifieke API-versie aan in de context van een specifieke aanroep. Voorbeeld: 1.2.1." + }, + { + "key": "Content-Type", + "value": "application/json" + } + ], + "cookie": [], + "body": "{\n \"zaaktype\": \"\",\n \"informatieobjecttype\": \"\",\n \"volgnummer\": \"\",\n \"richting\": \"\",\n \"url\": \"\",\n \"statustype\": \"\"\n}" + }, + { + "name": "Internal server error", + "originalRequest": { + "method": "PUT", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n \"zaaktype\": \"\",\n \"informatieobjecttype\": \"\",\n \"volgnummer\": \"\",\n \"richting\": \"\",\n \"statustype\": \"\"\n}" + }, + "url": { + "raw": "{{baseUrl}}/zaaktype-informatieobjecttypen/", + "host": [ + "{{baseUrl}}" + ], + "path": [ + "zaaktype-informatieobjecttypen", + "" + ] + } + }, + "status": "Internal Server Error", + "code": 500, + "_postman_previewlanguage": "json", + "header": [ + { + "key": "API-version", + "value": "", + "description": "Geeft een specifieke API-versie aan in de context van een specifieke aanroep. Voorbeeld: 1.2.1." + }, + { + "key": "Content-Type", + "value": "application/json" + } + ], + "cookie": [], + "body": "{\n \"code\": \"\",\n \"title\": \"\",\n \"status\": \"\",\n \"detail\": \"\",\n \"instance\": \"\",\n \"type\": \"\"\n}" + } + ] + }, + { + "name": "Werk een ZAAKTYPE-INFORMATIEOBJECTTYPE relatie deels bij.", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "pm.test(\"Werk een ZAAKTYPE-INFORMATIEOBJECTTYPE deels bij geeft 200\", function() {", + " pm.response.to.have.status(200);", + "});", + "", + "pm.test(\"Werk een ZAAKTYPE-INFORMATIEOBJECTTYPE deels bij past attributen aan\", function() {", + " pm.expect(pm.response.json().volgnummer).to.be.equal(5);", + "});" + ], + "type": "text/javascript" + } + } + ], + "request": { + "method": "PATCH", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n \"volgnummer\": 5\n}" + }, + "url": { + "raw": "{{created_relatie_url}}", + "host": [ + "{{created_relatie_url}}" + ] + }, + "description": "Werk een ZAAKTYPE-INFORMATIEOBJECTTYPE relatie deels bij. Dit kan alleen\nals het bijbehorende ZAAKTYPE een concept betreft." + }, + "response": [ + { + "name": "Too many requests", + "originalRequest": { + "method": "PATCH", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n \"zaaktype\": \"\",\n \"informatieobjecttype\": \"\",\n \"volgnummer\": \"\",\n \"richting\": \"\",\n \"statustype\": \"\"\n}" + }, + "url": { + "raw": "{{baseUrl}}/zaaktype-informatieobjecttypen/", + "host": [ + "{{baseUrl}}" + ], + "path": [ + "zaaktype-informatieobjecttypen", + "" + ] + } + }, + "status": "Too Many Requests", + "code": 429, + "_postman_previewlanguage": "json", + "header": [ + { + "key": "API-version", + "value": "", + "description": "Geeft een specifieke API-versie aan in de context van een specifieke aanroep. Voorbeeld: 1.2.1." + }, + { + "key": "Content-Type", + "value": "application/json" + } + ], + "cookie": [], + "body": "{\n \"code\": \"\",\n \"title\": \"\",\n \"status\": \"\",\n \"detail\": \"\",\n \"instance\": \"\",\n \"type\": \"\"\n}" + }, + { + "name": "Bad request", + "originalRequest": { + "method": "PATCH", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n \"zaaktype\": \"\",\n \"informatieobjecttype\": \"\",\n \"volgnummer\": \"\",\n \"richting\": \"\",\n \"statustype\": \"\"\n}" + }, + "url": { + "raw": "{{baseUrl}}/zaaktype-informatieobjecttypen/", + "host": [ + "{{baseUrl}}" + ], + "path": [ + "zaaktype-informatieobjecttypen", + "" + ] + } + }, + "status": "Bad Request", + "code": 400, + "_postman_previewlanguage": "json", + "header": [ + { + "key": "API-version", + "value": "", + "description": "Geeft een specifieke API-versie aan in de context van een specifieke aanroep. Voorbeeld: 1.2.1." + }, + { + "key": "Content-Type", + "value": "application/json" + } + ], + "cookie": [], + "body": "{\n \"code\": \"\",\n \"title\": \"\",\n \"status\": \"\",\n \"detail\": \"\",\n \"instance\": \"\",\n \"invalidParams\": [\n {\n \"name\": \"\",\n \"code\": \"\",\n \"reason\": \"\"\n },\n {\n \"name\": \"\",\n \"code\": \"\",\n \"reason\": \"\"\n }\n ],\n \"type\": \"\"\n}" + }, + { + "name": "Forbidden", + "originalRequest": { + "method": "PATCH", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n \"zaaktype\": \"\",\n \"informatieobjecttype\": \"\",\n \"volgnummer\": \"\",\n \"richting\": \"\",\n \"statustype\": \"\"\n}" + }, + "url": { + "raw": "{{baseUrl}}/zaaktype-informatieobjecttypen/", + "host": [ + "{{baseUrl}}" + ], + "path": [ + "zaaktype-informatieobjecttypen", + "" + ] + } + }, + "status": "Forbidden", + "code": 403, + "_postman_previewlanguage": "json", + "header": [ + { + "key": "API-version", + "value": "", + "description": "Geeft een specifieke API-versie aan in de context van een specifieke aanroep. Voorbeeld: 1.2.1." + }, + { + "key": "Content-Type", + "value": "application/json" + } + ], + "cookie": [], + "body": "{\n \"code\": \"\",\n \"title\": \"\",\n \"status\": \"\",\n \"detail\": \"\",\n \"instance\": \"\",\n \"type\": \"\"\n}" + }, + { + "name": "OK", + "originalRequest": { + "method": "PATCH", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n \"zaaktype\": \"\",\n \"informatieobjecttype\": \"\",\n \"volgnummer\": \"\",\n \"richting\": \"\",\n \"statustype\": \"\"\n}" + }, + "url": { + "raw": "{{baseUrl}}/zaaktype-informatieobjecttypen/", + "host": [ + "{{baseUrl}}" + ], + "path": [ + "zaaktype-informatieobjecttypen", + "" + ] + } + }, + "status": "OK", + "code": 200, + "_postman_previewlanguage": "json", + "header": [ + { + "key": "API-version", + "value": "", + "description": "Geeft een specifieke API-versie aan in de context van een specifieke aanroep. Voorbeeld: 1.2.1." + }, + { + "key": "Content-Type", + "value": "application/json" + } + ], + "cookie": [], + "body": "{\n \"zaaktype\": \"\",\n \"informatieobjecttype\": \"\",\n \"volgnummer\": \"\",\n \"richting\": \"\",\n \"url\": \"\",\n \"statustype\": \"\"\n}" + }, + { + "name": "Conflict", + "originalRequest": { + "method": "PATCH", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n \"zaaktype\": \"\",\n \"informatieobjecttype\": \"\",\n \"volgnummer\": \"\",\n \"richting\": \"\",\n \"statustype\": \"\"\n}" + }, + "url": { + "raw": "{{baseUrl}}/zaaktype-informatieobjecttypen/", + "host": [ + "{{baseUrl}}" + ], + "path": [ + "zaaktype-informatieobjecttypen", + "" + ] + } + }, + "status": "Conflict", + "code": 409, + "_postman_previewlanguage": "json", + "header": [ + { + "key": "API-version", + "value": "", + "description": "Geeft een specifieke API-versie aan in de context van een specifieke aanroep. Voorbeeld: 1.2.1." + }, + { + "key": "Content-Type", + "value": "application/json" + } + ], + "cookie": [], + "body": "{\n \"code\": \"\",\n \"title\": \"\",\n \"status\": \"\",\n \"detail\": \"\",\n \"instance\": \"\",\n \"type\": \"\"\n}" + }, + { + "name": "Unauthorized", + "originalRequest": { + "method": "PATCH", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n \"zaaktype\": \"\",\n \"informatieobjecttype\": \"\",\n \"volgnummer\": \"\",\n \"richting\": \"\",\n \"statustype\": \"\"\n}" + }, + "url": { + "raw": "{{baseUrl}}/zaaktype-informatieobjecttypen/", + "host": [ + "{{baseUrl}}" + ], + "path": [ + "zaaktype-informatieobjecttypen", + "" + ] + } + }, + "status": "Unauthorized", + "code": 401, + "_postman_previewlanguage": "json", + "header": [ + { + "key": "API-version", + "value": "", + "description": "Geeft een specifieke API-versie aan in de context van een specifieke aanroep. Voorbeeld: 1.2.1." + }, + { + "key": "Content-Type", + "value": "application/json" + } + ], + "cookie": [], + "body": "{\n \"code\": \"\",\n \"title\": \"\",\n \"status\": \"\",\n \"detail\": \"\",\n \"instance\": \"\",\n \"type\": \"\"\n}" + }, + { + "name": "Unsupported media type", + "originalRequest": { + "method": "PATCH", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n \"zaaktype\": \"\",\n \"informatieobjecttype\": \"\",\n \"volgnummer\": \"\",\n \"richting\": \"\",\n \"statustype\": \"\"\n}" + }, + "url": { + "raw": "{{baseUrl}}/zaaktype-informatieobjecttypen/", + "host": [ + "{{baseUrl}}" + ], + "path": [ + "zaaktype-informatieobjecttypen", + "" + ] + } + }, + "status": "Unsupported Media Type", + "code": 415, + "_postman_previewlanguage": "json", + "header": [ + { + "key": "API-version", + "value": "", + "description": "Geeft een specifieke API-versie aan in de context van een specifieke aanroep. Voorbeeld: 1.2.1." + }, + { + "key": "Content-Type", + "value": "application/json" + } + ], + "cookie": [], + "body": "{\n \"code\": \"\",\n \"title\": \"\",\n \"status\": \"\",\n \"detail\": \"\",\n \"instance\": \"\",\n \"type\": \"\"\n}" + }, + { + "name": "Gone", + "originalRequest": { + "method": "PATCH", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n \"zaaktype\": \"\",\n \"informatieobjecttype\": \"\",\n \"volgnummer\": \"\",\n \"richting\": \"\",\n \"statustype\": \"\"\n}" + }, + "url": { + "raw": "{{baseUrl}}/zaaktype-informatieobjecttypen/", + "host": [ + "{{baseUrl}}" + ], + "path": [ + "zaaktype-informatieobjecttypen", + "" + ] + } + }, + "status": "Gone", + "code": 410, + "_postman_previewlanguage": "json", + "header": [ + { + "key": "API-version", + "value": "", + "description": "Geeft een specifieke API-versie aan in de context van een specifieke aanroep. Voorbeeld: 1.2.1." + }, + { + "key": "Content-Type", + "value": "application/json" + } + ], + "cookie": [], + "body": "{\n \"code\": \"\",\n \"title\": \"\",\n \"status\": \"\",\n \"detail\": \"\",\n \"instance\": \"\",\n \"type\": \"\"\n}" + }, + { + "name": "Not acceptable", + "originalRequest": { + "method": "PATCH", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n \"zaaktype\": \"\",\n \"informatieobjecttype\": \"\",\n \"volgnummer\": \"\",\n \"richting\": \"\",\n \"statustype\": \"\"\n}" + }, + "url": { + "raw": "{{baseUrl}}/zaaktype-informatieobjecttypen/", + "host": [ + "{{baseUrl}}" + ], + "path": [ + "zaaktype-informatieobjecttypen", + "" + ] + } + }, + "status": "Not Acceptable", + "code": 406, + "_postman_previewlanguage": "json", + "header": [ + { + "key": "API-version", + "value": "", + "description": "Geeft een specifieke API-versie aan in de context van een specifieke aanroep. Voorbeeld: 1.2.1." + }, + { + "key": "Content-Type", + "value": "application/json" + } + ], + "cookie": [], + "body": "{\n \"code\": \"\",\n \"title\": \"\",\n \"status\": \"\",\n \"detail\": \"\",\n \"instance\": \"\",\n \"type\": \"\"\n}" + }, + { + "name": "Not found", + "originalRequest": { + "method": "PATCH", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n \"zaaktype\": \"\",\n \"informatieobjecttype\": \"\",\n \"volgnummer\": \"\",\n \"richting\": \"\",\n \"statustype\": \"\"\n}" + }, + "url": { + "raw": "{{baseUrl}}/zaaktype-informatieobjecttypen/", + "host": [ + "{{baseUrl}}" + ], + "path": [ + "zaaktype-informatieobjecttypen", + "" + ] + } + }, + "status": "Not Found", + "code": 404, + "_postman_previewlanguage": "json", + "header": [ + { + "key": "API-version", + "value": "", + "description": "Geeft een specifieke API-versie aan in de context van een specifieke aanroep. Voorbeeld: 1.2.1." + }, + { + "key": "Content-Type", + "value": "application/json" + } + ], + "cookie": [], + "body": "{\n \"code\": \"\",\n \"title\": \"\",\n \"status\": \"\",\n \"detail\": \"\",\n \"instance\": \"\",\n \"type\": \"\"\n}" + }, + { + "name": "Internal server error", + "originalRequest": { + "method": "PATCH", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n \"zaaktype\": \"\",\n \"informatieobjecttype\": \"\",\n \"volgnummer\": \"\",\n \"richting\": \"\",\n \"statustype\": \"\"\n}" + }, + "url": { + "raw": "{{baseUrl}}/zaaktype-informatieobjecttypen/", + "host": [ + "{{baseUrl}}" + ], + "path": [ + "zaaktype-informatieobjecttypen", + "" + ] + } + }, + "status": "Internal Server Error", + "code": 500, + "_postman_previewlanguage": "json", + "header": [ + { + "key": "API-version", + "value": "", + "description": "Geeft een specifieke API-versie aan in de context van een specifieke aanroep. Voorbeeld: 1.2.1." + }, + { + "key": "Content-Type", + "value": "application/json" + } + ], + "cookie": [], + "body": "{\n \"code\": \"\",\n \"title\": \"\",\n \"status\": \"\",\n \"detail\": \"\",\n \"instance\": \"\",\n \"type\": \"\"\n}" + } + ] + }, + { + "name": "Verwijder een ZAAKTYPE-INFORMATIEOBJECTTYPE relatie.", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "pm.test(\"Verwijder een ZAAKTYPE-INFORMATIEOBJECTTYPE relatie geeft 204\", function() {", + " pm.response.to.have.status(204);", + "});" + ], + "type": "text/javascript" + } + } + ], + "request": { + "method": "DELETE", + "header": [ + { + "key": "Accept", + "value": "application/json" + }, + { + "key": "Content-Type", + "value": "application/json" + } + ], + "url": { + "raw": "{{created_relatie_url}}", + "host": [ + "{{created_relatie_url}}" + ] + }, + "description": "Verwijder een ZAAKTYPE-INFORMATIEOBJECTTYPE relatie. Dit kan alleen als\nhet bijbehorende ZAAKTYPE een concept betreft." + }, + "response": [] + }, + { + "name": "Delete concept Zaaktype", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "pm.globals.unset(\"created_informatieobjecttype_url\");" + ], + "type": "text/javascript" + } + } + ], + "request": { + "method": "DELETE", + "header": [], + "url": { + "raw": "{{created_informatieobjecttype_url}}", + "host": [ + "{{created_informatieobjecttype_url}}" + ] + } + }, + "response": [] + }, + { + "name": "Delete concept Informatieobjecttype", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "pm.globals.unset(\"created_zaaktype_url\");" + ], + "type": "text/javascript" + } + } + ], + "request": { + "method": "DELETE", + "header": [], + "url": { + "raw": "{{created_zaaktype_url}}", + "host": [ + "{{created_zaaktype_url}}" + ] + } + }, + "response": [] + } + ], + "description": "Folder for zaaktype-informatieobjecttypen" + }, + { + "name": "zaaktypen test Mat", + "item": [ + { + "name": "Alle ZAAKTYPEn opvragen.", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "pm.test(\"Alle ZAAKTYPEn opvragen geeft 200\", function() {", + " pm.response.to.have.status(200);", + "});" + ], + "type": "text/javascript", + "packages": {} + } + } + ], + "request": { + "method": "GET", + "header": [ + { + "key": "Accept", + "value": "application/json" + }, + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Accept-Encoding", + "value": "deflate", + "type": "text" + } + ], + "url": { + "raw": "{{ztc_url}}/zaaktypen?catalogus={{catalogus_url}}&identificatie=1&status=alles&page=1", + "host": [ + "{{ztc_url}}" + ], + "path": [ + "zaaktypen" + ], + "query": [ + { + "key": "catalogus", + "value": "{{catalogus_url}}" + }, + { + "key": "identificatie", + "value": "1" + }, + { + "key": "status", + "value": "alles" + }, + { + "key": "page", + "value": "1" + }, + { + "key": "trefwoorden", + "value": "trefwoord", + "disabled": true + } + ] + }, + "description": "Deze lijst kan gefilterd wordt met query-string parameters." + }, + "response": [] + }, + { + "name": "Maak een ZAAKTYPE aan.", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "pm.test(\"Maak een ZAAKTYPE aan geeft 201\", function() {", + " pm.response.to.have.status(201);", + "});", + "", + "if(pm.response.code == 201) {", + " pm.environment.set(\"created_zaaktype_url\", pm.response.json().url);", + " pm.environment.set(\"zaaktype_body\", pm.request.body.raw);", + "}" + ], + "type": "text/javascript", + "packages": {} + } + } + ], + "request": { + "method": "POST", + "header": [ + { + "key": "Accept", + "value": "application/json" + }, + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n\t\"identificatie\": \"1\",\n \"omschrijving\": \"zrc_tests_2\",\n \"omschrijvingGeneriek\": \"\",\n \"vertrouwelijkheidaanduiding\": \"intern\",\n \"doel\": \"test doel\",\n \"aanleiding\": \"test aanleiding\",\n \"toelichting\": \"\",\n \"indicatieInternOfExtern\": \"intern\",\n \"handelingInitiator\": \"melde\",\n \"onderwerp\": \"klacht\",\n \"handelingBehandelaar\": \"behandelen\",\n \"doorlooptijd\": \"P1D\",\n \"servicenorm\": \"\",\n \"opschortingEnAanhoudingMogelijk\": true,\n \"verlengingMogelijk\": false,\n \"verlengingstermijn\": \"\",\n \"trefwoorden\": \"\", \n \"publicatieIndicatie\": false,\n \"publicatietekst\": \"\",\n \"verantwoordingsrelatie\":\"\",\n \"productenOfDiensten\": [\"https://ref.tst.vng.cloud/standaard/\"\n \n ],\n \"selectielijstProcestype\": \"\",\n \"referentieproces\": {\n \"naam\": \"test\",\n \"link\": \"\"\n },\n \"verantwoordelijke\": \"Matthias Oliveiro\",\n \"broncatalogus\":\"\",\n \"bronzaaktype\":\"\",\n \"catalogus\": \"{{catalogus_url}}\",\n \"besluittypen\": [],\n \"deelzaaktypen\":\"\",\n \"gerelateerdeZaaktypen\": [],\n \"beginGeldigheid\": \"2019-01-01\",\n \"eindeGeldigheid\": \"\",\n \"beginObject\":\"\",\n \"eindeObject\":\"\",\n \"versiedatum\": \"2029-01-01\"\n \n}" + }, + "url": { + "raw": "{{ztc_url}}/zaaktypen", + "host": [ + "{{ztc_url}}" + ], + "path": [ + "zaaktypen" + ] + }, + "description": "Maak een ZAAKTYPE aan.\n\nEr wordt gevalideerd op:\n- geldigheid `catalogus` URL, dit moet een catalogus binnen dezelfde API zijn\n- Uniciteit `catalogus` en `omschrijving`. Dezelfde omeschrijving mag enkel\n opnieuw gebruikt worden als het zaaktype een andere geldigheidsperiode\n kent dan bestaande zaaktypen." + }, + "response": [] + }, + { + "name": "Een specifieke ZAAKTYPE opvragen.", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "pm.test(\"Een specifiek ZAAKTYPE opvragen geeft 200\", function() {", + " pm.response.to.have.status(200);", + "});" + ], + "type": "text/javascript" + } + } + ], + "request": { + "method": "GET", + "header": [ + { + "key": "Accept", + "value": "application/json" + }, + { + "key": "Content-Type", + "value": "application/json" + } + ], + "url": { + "raw": "{{created_zaaktype_url}}", + "host": [ + "{{created_zaaktype_url}}" + ] + }, + "description": "Een specifieke ZAAKTYPE opvragen." + }, + "response": [] + }, + { + "name": "Werk een ZAAKTYPE in zijn geheel bij.", + "event": [ + { + "listen": "prerequest", + "script": { + "exec": [ + "// Retrieve the body template and modify as needed", + "var body = JSON.parse(pm.environment.get(\"zaaktype_body\"));", + "body.omschrijving = \"aangepast\"", + "", + "// Store the modified body, allowing it to be used in the main request", + "pm.environment.set(\"request_body\", JSON.stringify(body));" + ], + "type": "text/javascript", + "packages": {} + } + }, + { + "listen": "test", + "script": { + "exec": [ + "pm.test(\"Werk een ZAAKTYPE in zijn geheel bij geeft 200\", function() {", + " pm.response.to.have.status(200);", + "});", + "", + "pm.test(\"Werk een ZAAKTYPE in zijn geheel bij past attributen aan\", function() {", + " pm.expect(pm.response.json().omschrijving).to.be.equal(\"aangepast\");", + "});" + ], + "type": "text/javascript", + "packages": {} + } + } + ], + "request": { + "method": "PUT", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\r\n\t\"identificatie\": \"1\",\r\n \"omschrijving\": \"zrc_tests_3\",\r\n \"omschrijvingGeneriek\": \"\",\r\n \"vertrouwelijkheidaanduiding\": \"intern\",\r\n \"doel\": \"test doel\",\r\n \"aanleiding\": \"test aanleiding\",\r\n \"toelichting\": \"\",\r\n \"indicatieInternOfExtern\": \"intern\",\r\n \"handelingInitiator\": \"melde\",\r\n \"onderwerp\": \"klacht\",\r\n \"handelingBehandelaar\": \"behandelen\",\r\n \"doorlooptijd\": \"P1D\",\r\n \"servicenorm\": \"\",\r\n \"opschortingEnAanhoudingMogelijk\": true,\r\n \"verlengingMogelijk\": false,\r\n \"verlengingstermijn\": \"\",\r\n \"trefwoorden\": \"\", \r\n \"publicatieIndicatie\": false,\r\n \"publicatietekst\": \"\",\r\n \"verantwoordingsrelatie\":\"\",\r\n \"productenOfDiensten\": [\"https://ref.tst.vng.cloud/standaard/\"\r\n \r\n ],\r\n \"selectielijstProcestype\": \"\",\r\n \"referentieproces\": {\r\n \"naam\": \"test\",\r\n \"link\": \"\"\r\n },\r\n \"verantwoordelijke\": \"Matthias Oliveiro\",\r\n \"broncatalogus\":\"\",\r\n \"bronzaaktype\":\"\",\r\n \"catalogus\": \"{{catalogus_url}}\",\r\n \"besluittypen\": [],\r\n \"deelzaaktypen\":\"\",\r\n \"gerelateerdeZaaktypen\": [],\r\n \"beginGeldigheid\": \"2019-01-01\",\r\n \"eindeGeldigheid\": \"\",\r\n \"beginObject\":\"\",\r\n \"eindeObject\":\"\",\r\n \"versiedatum\": \"2029-01-01\"\r\n \r\n}" + }, + "url": { + "raw": "{{created_zaaktype_url}}", + "host": [ + "{{created_zaaktype_url}}" + ] + }, + "description": "Werk een ZAAKTYPE in zijn geheel bij. Dit kan alleen als het een concept\nbetreft." + }, + "response": [ + { + "name": "Gone", + "originalRequest": { + "method": "PUT", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n \"identificatie\": \"\",\n \"omschrijving\": \"\",\n \"vertrouwelijkheidaanduiding\": \"\",\n \"doel\": \"\",\n \"aanleiding\": \"\",\n \"indicatieInternOfExtern\": \"\",\n \"handelingInitiator\": \"\",\n \"onderwerp\": \"\",\n \"handelingBehandelaar\": \"\",\n \"doorlooptijd\": \"\",\n \"opschortingEnAanhoudingMogelijk\": \"\",\n \"verlengingMogelijk\": \"\",\n \"publicatieIndicatie\": \"\",\n \"productenOfDiensten\": [\n \"\",\n \"\"\n ],\n \"referentieproces\": {\n \"naam\": \"\",\n \"link\": \"\"\n },\n \"catalogus\": \"\",\n \"besluittypen\": [\n \"\"\n ],\n \"gerelateerdeZaaktypen\": [\n {\n \"zaaktype\": \"\",\n \"aardRelatie\": \"\",\n \"toelichting\": \"\"\n },\n {\n \"zaaktype\": \"\",\n \"aardRelatie\": \"\",\n \"toelichting\": \"\"\n }\n ],\n \"beginGeldigheid\": \"\",\n \"versiedatum\": \"\",\n \"omschrijvingGeneriek\": \"\",\n \"toelichting\": \"\",\n \"servicenorm\": \"\",\n \"verlengingstermijn\": \"\",\n \"trefwoorden\": [\n \"\",\n \"\"\n ],\n \"publicatietekst\": \"\",\n \"verantwoordingsrelatie\": [\n \"\",\n \"\"\n ],\n \"selectielijstProcestype\": \"\",\n \"eindeGeldigheid\": \"\"\n}" + }, + "url": { + "raw": "{{baseUrl}}/zaaktypen/", + "host": [ + "{{baseUrl}}" + ], + "path": [ + "zaaktypen", + "" + ] + } + }, + "status": "Gone", + "code": 410, + "_postman_previewlanguage": "json", + "header": [ + { + "key": "API-version", + "value": "", + "description": "Geeft een specifieke API-versie aan in de context van een specifieke aanroep. Voorbeeld: 1.2.1." + }, + { + "key": "Content-Type", + "value": "application/json" + } + ], + "cookie": [], + "body": "{\n \"code\": \"\",\n \"title\": \"\",\n \"status\": \"\",\n \"detail\": \"\",\n \"instance\": \"\",\n \"type\": \"\"\n}" + }, + { + "name": "Forbidden", + "originalRequest": { + "method": "PUT", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n \"identificatie\": \"\",\n \"omschrijving\": \"\",\n \"vertrouwelijkheidaanduiding\": \"\",\n \"doel\": \"\",\n \"aanleiding\": \"\",\n \"indicatieInternOfExtern\": \"\",\n \"handelingInitiator\": \"\",\n \"onderwerp\": \"\",\n \"handelingBehandelaar\": \"\",\n \"doorlooptijd\": \"\",\n \"opschortingEnAanhoudingMogelijk\": \"\",\n \"verlengingMogelijk\": \"\",\n \"publicatieIndicatie\": \"\",\n \"productenOfDiensten\": [\n \"\",\n \"\"\n ],\n \"referentieproces\": {\n \"naam\": \"\",\n \"link\": \"\"\n },\n \"catalogus\": \"\",\n \"besluittypen\": [\n \"\"\n ],\n \"gerelateerdeZaaktypen\": [\n {\n \"zaaktype\": \"\",\n \"aardRelatie\": \"\",\n \"toelichting\": \"\"\n },\n {\n \"zaaktype\": \"\",\n \"aardRelatie\": \"\",\n \"toelichting\": \"\"\n }\n ],\n \"beginGeldigheid\": \"\",\n \"versiedatum\": \"\",\n \"omschrijvingGeneriek\": \"\",\n \"toelichting\": \"\",\n \"servicenorm\": \"\",\n \"verlengingstermijn\": \"\",\n \"trefwoorden\": [\n \"\",\n \"\"\n ],\n \"publicatietekst\": \"\",\n \"verantwoordingsrelatie\": [\n \"\",\n \"\"\n ],\n \"selectielijstProcestype\": \"\",\n \"eindeGeldigheid\": \"\"\n}" + }, + "url": { + "raw": "{{baseUrl}}/zaaktypen/", + "host": [ + "{{baseUrl}}" + ], + "path": [ + "zaaktypen", + "" + ] + } + }, + "status": "Forbidden", + "code": 403, + "_postman_previewlanguage": "json", + "header": [ + { + "key": "API-version", + "value": "", + "description": "Geeft een specifieke API-versie aan in de context van een specifieke aanroep. Voorbeeld: 1.2.1." + }, + { + "key": "Content-Type", + "value": "application/json" + } + ], + "cookie": [], + "body": "{\n \"code\": \"\",\n \"title\": \"\",\n \"status\": \"\",\n \"detail\": \"\",\n \"instance\": \"\",\n \"type\": \"\"\n}" + }, + { + "name": "OK", + "originalRequest": { + "method": "PUT", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n \"identificatie\": \"\",\n \"omschrijving\": \"\",\n \"vertrouwelijkheidaanduiding\": \"\",\n \"doel\": \"\",\n \"aanleiding\": \"\",\n \"indicatieInternOfExtern\": \"\",\n \"handelingInitiator\": \"\",\n \"onderwerp\": \"\",\n \"handelingBehandelaar\": \"\",\n \"doorlooptijd\": \"\",\n \"opschortingEnAanhoudingMogelijk\": \"\",\n \"verlengingMogelijk\": \"\",\n \"publicatieIndicatie\": \"\",\n \"productenOfDiensten\": [\n \"\",\n \"\"\n ],\n \"referentieproces\": {\n \"naam\": \"\",\n \"link\": \"\"\n },\n \"catalogus\": \"\",\n \"besluittypen\": [\n \"\"\n ],\n \"gerelateerdeZaaktypen\": [\n {\n \"zaaktype\": \"\",\n \"aardRelatie\": \"\",\n \"toelichting\": \"\"\n },\n {\n \"zaaktype\": \"\",\n \"aardRelatie\": \"\",\n \"toelichting\": \"\"\n }\n ],\n \"beginGeldigheid\": \"\",\n \"versiedatum\": \"\",\n \"omschrijvingGeneriek\": \"\",\n \"toelichting\": \"\",\n \"servicenorm\": \"\",\n \"verlengingstermijn\": \"\",\n \"trefwoorden\": [\n \"\",\n \"\"\n ],\n \"publicatietekst\": \"\",\n \"verantwoordingsrelatie\": [\n \"\",\n \"\"\n ],\n \"selectielijstProcestype\": \"\",\n \"eindeGeldigheid\": \"\"\n}" + }, + "url": { + "raw": "{{baseUrl}}/zaaktypen/", + "host": [ + "{{baseUrl}}" + ], + "path": [ + "zaaktypen", + "" + ] + } + }, + "status": "OK", + "code": 200, + "_postman_previewlanguage": "json", + "header": [ + { + "key": "API-version", + "value": "", + "description": "Geeft een specifieke API-versie aan in de context van een specifieke aanroep. Voorbeeld: 1.2.1." + }, + { + "key": "Content-Type", + "value": "application/json" + } + ], + "cookie": [], + "body": "{\n \"identificatie\": \"\",\n \"omschrijving\": \"\",\n \"vertrouwelijkheidaanduiding\": \"\",\n \"doel\": \"\",\n \"aanleiding\": \"\",\n \"indicatieInternOfExtern\": \"\",\n \"handelingInitiator\": \"\",\n \"onderwerp\": \"\",\n \"handelingBehandelaar\": \"\",\n \"doorlooptijd\": \"\",\n \"opschortingEnAanhoudingMogelijk\": \"\",\n \"verlengingMogelijk\": \"\",\n \"publicatieIndicatie\": \"\",\n \"productenOfDiensten\": [\n \"\",\n \"\"\n ],\n \"referentieproces\": {\n \"naam\": \"\",\n \"link\": \"\"\n },\n \"catalogus\": \"\",\n \"besluittypen\": [\n \"\"\n ],\n \"gerelateerdeZaaktypen\": [\n {\n \"zaaktype\": \"\",\n \"aardRelatie\": \"\",\n \"toelichting\": \"\"\n },\n {\n \"zaaktype\": \"\",\n \"aardRelatie\": \"\",\n \"toelichting\": \"\"\n }\n ],\n \"beginGeldigheid\": \"\",\n \"versiedatum\": \"\",\n \"url\": \"\",\n \"omschrijvingGeneriek\": \"\",\n \"toelichting\": \"\",\n \"servicenorm\": \"\",\n \"verlengingstermijn\": \"\",\n \"trefwoorden\": [\n \"\",\n \"\"\n ],\n \"publicatietekst\": \"\",\n \"verantwoordingsrelatie\": [\n \"\",\n \"\"\n ],\n \"selectielijstProcestype\": \"\",\n \"statustypen\": [\n \"\"\n ],\n \"resultaattypen\": [\n \"\"\n ],\n \"eigenschappen\": [\n \"\"\n ],\n \"informatieobjecttypes\": [\n \"\"\n ],\n \"roltypen\": [\n \"\"\n ],\n \"eindeGeldigheid\": \"\",\n \"concept\": \"\"\n}" + }, + { + "name": "Not acceptable", + "originalRequest": { + "method": "PUT", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n \"identificatie\": \"\",\n \"omschrijving\": \"\",\n \"vertrouwelijkheidaanduiding\": \"\",\n \"doel\": \"\",\n \"aanleiding\": \"\",\n \"indicatieInternOfExtern\": \"\",\n \"handelingInitiator\": \"\",\n \"onderwerp\": \"\",\n \"handelingBehandelaar\": \"\",\n \"doorlooptijd\": \"\",\n \"opschortingEnAanhoudingMogelijk\": \"\",\n \"verlengingMogelijk\": \"\",\n \"publicatieIndicatie\": \"\",\n \"productenOfDiensten\": [\n \"\",\n \"\"\n ],\n \"referentieproces\": {\n \"naam\": \"\",\n \"link\": \"\"\n },\n \"catalogus\": \"\",\n \"besluittypen\": [\n \"\"\n ],\n \"gerelateerdeZaaktypen\": [\n {\n \"zaaktype\": \"\",\n \"aardRelatie\": \"\",\n \"toelichting\": \"\"\n },\n {\n \"zaaktype\": \"\",\n \"aardRelatie\": \"\",\n \"toelichting\": \"\"\n }\n ],\n \"beginGeldigheid\": \"\",\n \"versiedatum\": \"\",\n \"omschrijvingGeneriek\": \"\",\n \"toelichting\": \"\",\n \"servicenorm\": \"\",\n \"verlengingstermijn\": \"\",\n \"trefwoorden\": [\n \"\",\n \"\"\n ],\n \"publicatietekst\": \"\",\n \"verantwoordingsrelatie\": [\n \"\",\n \"\"\n ],\n \"selectielijstProcestype\": \"\",\n \"eindeGeldigheid\": \"\"\n}" + }, + "url": { + "raw": "{{baseUrl}}/zaaktypen/", + "host": [ + "{{baseUrl}}" + ], + "path": [ + "zaaktypen", + "" + ] + } + }, + "status": "Not Acceptable", + "code": 406, + "_postman_previewlanguage": "json", + "header": [ + { + "key": "API-version", + "value": "", + "description": "Geeft een specifieke API-versie aan in de context van een specifieke aanroep. Voorbeeld: 1.2.1." + }, + { + "key": "Content-Type", + "value": "application/json" + } + ], + "cookie": [], + "body": "{\n \"code\": \"\",\n \"title\": \"\",\n \"status\": \"\",\n \"detail\": \"\",\n \"instance\": \"\",\n \"type\": \"\"\n}" + }, + { + "name": "Internal server error", + "originalRequest": { + "method": "PUT", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n \"identificatie\": \"\",\n \"omschrijving\": \"\",\n \"vertrouwelijkheidaanduiding\": \"\",\n \"doel\": \"\",\n \"aanleiding\": \"\",\n \"indicatieInternOfExtern\": \"\",\n \"handelingInitiator\": \"\",\n \"onderwerp\": \"\",\n \"handelingBehandelaar\": \"\",\n \"doorlooptijd\": \"\",\n \"opschortingEnAanhoudingMogelijk\": \"\",\n \"verlengingMogelijk\": \"\",\n \"publicatieIndicatie\": \"\",\n \"productenOfDiensten\": [\n \"\",\n \"\"\n ],\n \"referentieproces\": {\n \"naam\": \"\",\n \"link\": \"\"\n },\n \"catalogus\": \"\",\n \"besluittypen\": [\n \"\"\n ],\n \"gerelateerdeZaaktypen\": [\n {\n \"zaaktype\": \"\",\n \"aardRelatie\": \"\",\n \"toelichting\": \"\"\n },\n {\n \"zaaktype\": \"\",\n \"aardRelatie\": \"\",\n \"toelichting\": \"\"\n }\n ],\n \"beginGeldigheid\": \"\",\n \"versiedatum\": \"\",\n \"omschrijvingGeneriek\": \"\",\n \"toelichting\": \"\",\n \"servicenorm\": \"\",\n \"verlengingstermijn\": \"\",\n \"trefwoorden\": [\n \"\",\n \"\"\n ],\n \"publicatietekst\": \"\",\n \"verantwoordingsrelatie\": [\n \"\",\n \"\"\n ],\n \"selectielijstProcestype\": \"\",\n \"eindeGeldigheid\": \"\"\n}" + }, + "url": { + "raw": "{{baseUrl}}/zaaktypen/", + "host": [ + "{{baseUrl}}" + ], + "path": [ + "zaaktypen", + "" + ] + } + }, + "status": "Internal Server Error", + "code": 500, + "_postman_previewlanguage": "json", + "header": [ + { + "key": "API-version", + "value": "", + "description": "Geeft een specifieke API-versie aan in de context van een specifieke aanroep. Voorbeeld: 1.2.1." + }, + { + "key": "Content-Type", + "value": "application/json" + } + ], + "cookie": [], + "body": "{\n \"code\": \"\",\n \"title\": \"\",\n \"status\": \"\",\n \"detail\": \"\",\n \"instance\": \"\",\n \"type\": \"\"\n}" + }, + { + "name": "Unauthorized", + "originalRequest": { + "method": "PUT", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n \"identificatie\": \"\",\n \"omschrijving\": \"\",\n \"vertrouwelijkheidaanduiding\": \"\",\n \"doel\": \"\",\n \"aanleiding\": \"\",\n \"indicatieInternOfExtern\": \"\",\n \"handelingInitiator\": \"\",\n \"onderwerp\": \"\",\n \"handelingBehandelaar\": \"\",\n \"doorlooptijd\": \"\",\n \"opschortingEnAanhoudingMogelijk\": \"\",\n \"verlengingMogelijk\": \"\",\n \"publicatieIndicatie\": \"\",\n \"productenOfDiensten\": [\n \"\",\n \"\"\n ],\n \"referentieproces\": {\n \"naam\": \"\",\n \"link\": \"\"\n },\n \"catalogus\": \"\",\n \"besluittypen\": [\n \"\"\n ],\n \"gerelateerdeZaaktypen\": [\n {\n \"zaaktype\": \"\",\n \"aardRelatie\": \"\",\n \"toelichting\": \"\"\n },\n {\n \"zaaktype\": \"\",\n \"aardRelatie\": \"\",\n \"toelichting\": \"\"\n }\n ],\n \"beginGeldigheid\": \"\",\n \"versiedatum\": \"\",\n \"omschrijvingGeneriek\": \"\",\n \"toelichting\": \"\",\n \"servicenorm\": \"\",\n \"verlengingstermijn\": \"\",\n \"trefwoorden\": [\n \"\",\n \"\"\n ],\n \"publicatietekst\": \"\",\n \"verantwoordingsrelatie\": [\n \"\",\n \"\"\n ],\n \"selectielijstProcestype\": \"\",\n \"eindeGeldigheid\": \"\"\n}" + }, + "url": { + "raw": "{{baseUrl}}/zaaktypen/", + "host": [ + "{{baseUrl}}" + ], + "path": [ + "zaaktypen", + "" + ] + } + }, + "status": "Unauthorized", + "code": 401, + "_postman_previewlanguage": "json", + "header": [ + { + "key": "API-version", + "value": "", + "description": "Geeft een specifieke API-versie aan in de context van een specifieke aanroep. Voorbeeld: 1.2.1." + }, + { + "key": "Content-Type", + "value": "application/json" + } + ], + "cookie": [], + "body": "{\n \"code\": \"\",\n \"title\": \"\",\n \"status\": \"\",\n \"detail\": \"\",\n \"instance\": \"\",\n \"type\": \"\"\n}" + }, + { + "name": "Not found", + "originalRequest": { + "method": "PUT", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n \"identificatie\": \"\",\n \"omschrijving\": \"\",\n \"vertrouwelijkheidaanduiding\": \"\",\n \"doel\": \"\",\n \"aanleiding\": \"\",\n \"indicatieInternOfExtern\": \"\",\n \"handelingInitiator\": \"\",\n \"onderwerp\": \"\",\n \"handelingBehandelaar\": \"\",\n \"doorlooptijd\": \"\",\n \"opschortingEnAanhoudingMogelijk\": \"\",\n \"verlengingMogelijk\": \"\",\n \"publicatieIndicatie\": \"\",\n \"productenOfDiensten\": [\n \"\",\n \"\"\n ],\n \"referentieproces\": {\n \"naam\": \"\",\n \"link\": \"\"\n },\n \"catalogus\": \"\",\n \"besluittypen\": [\n \"\"\n ],\n \"gerelateerdeZaaktypen\": [\n {\n \"zaaktype\": \"\",\n \"aardRelatie\": \"\",\n \"toelichting\": \"\"\n },\n {\n \"zaaktype\": \"\",\n \"aardRelatie\": \"\",\n \"toelichting\": \"\"\n }\n ],\n \"beginGeldigheid\": \"\",\n \"versiedatum\": \"\",\n \"omschrijvingGeneriek\": \"\",\n \"toelichting\": \"\",\n \"servicenorm\": \"\",\n \"verlengingstermijn\": \"\",\n \"trefwoorden\": [\n \"\",\n \"\"\n ],\n \"publicatietekst\": \"\",\n \"verantwoordingsrelatie\": [\n \"\",\n \"\"\n ],\n \"selectielijstProcestype\": \"\",\n \"eindeGeldigheid\": \"\"\n}" + }, + "url": { + "raw": "{{baseUrl}}/zaaktypen/", + "host": [ + "{{baseUrl}}" + ], + "path": [ + "zaaktypen", + "" + ] + } + }, + "status": "Not Found", + "code": 404, + "_postman_previewlanguage": "json", + "header": [ + { + "key": "API-version", + "value": "", + "description": "Geeft een specifieke API-versie aan in de context van een specifieke aanroep. Voorbeeld: 1.2.1." + }, + { + "key": "Content-Type", + "value": "application/json" + } + ], + "cookie": [], + "body": "{\n \"code\": \"\",\n \"title\": \"\",\n \"status\": \"\",\n \"detail\": \"\",\n \"instance\": \"\",\n \"type\": \"\"\n}" + }, + { + "name": "Bad request", + "originalRequest": { + "method": "PUT", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n \"identificatie\": \"\",\n \"omschrijving\": \"\",\n \"vertrouwelijkheidaanduiding\": \"\",\n \"doel\": \"\",\n \"aanleiding\": \"\",\n \"indicatieInternOfExtern\": \"\",\n \"handelingInitiator\": \"\",\n \"onderwerp\": \"\",\n \"handelingBehandelaar\": \"\",\n \"doorlooptijd\": \"\",\n \"opschortingEnAanhoudingMogelijk\": \"\",\n \"verlengingMogelijk\": \"\",\n \"publicatieIndicatie\": \"\",\n \"productenOfDiensten\": [\n \"\",\n \"\"\n ],\n \"referentieproces\": {\n \"naam\": \"\",\n \"link\": \"\"\n },\n \"catalogus\": \"\",\n \"besluittypen\": [\n \"\"\n ],\n \"gerelateerdeZaaktypen\": [\n {\n \"zaaktype\": \"\",\n \"aardRelatie\": \"\",\n \"toelichting\": \"\"\n },\n {\n \"zaaktype\": \"\",\n \"aardRelatie\": \"\",\n \"toelichting\": \"\"\n }\n ],\n \"beginGeldigheid\": \"\",\n \"versiedatum\": \"\",\n \"omschrijvingGeneriek\": \"\",\n \"toelichting\": \"\",\n \"servicenorm\": \"\",\n \"verlengingstermijn\": \"\",\n \"trefwoorden\": [\n \"\",\n \"\"\n ],\n \"publicatietekst\": \"\",\n \"verantwoordingsrelatie\": [\n \"\",\n \"\"\n ],\n \"selectielijstProcestype\": \"\",\n \"eindeGeldigheid\": \"\"\n}" + }, + "url": { + "raw": "{{baseUrl}}/zaaktypen/", + "host": [ + "{{baseUrl}}" + ], + "path": [ + "zaaktypen", + "" + ] + } + }, + "status": "Bad Request", + "code": 400, + "_postman_previewlanguage": "json", + "header": [ + { + "key": "API-version", + "value": "", + "description": "Geeft een specifieke API-versie aan in de context van een specifieke aanroep. Voorbeeld: 1.2.1." + }, + { + "key": "Content-Type", + "value": "application/json" + } + ], + "cookie": [], + "body": "{\n \"code\": \"\",\n \"title\": \"\",\n \"status\": \"\",\n \"detail\": \"\",\n \"instance\": \"\",\n \"invalidParams\": [\n {\n \"name\": \"\",\n \"code\": \"\",\n \"reason\": \"\"\n },\n {\n \"name\": \"\",\n \"code\": \"\",\n \"reason\": \"\"\n }\n ],\n \"type\": \"\"\n}" + }, + { + "name": "Unsupported media type", + "originalRequest": { + "method": "PUT", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n \"identificatie\": \"\",\n \"omschrijving\": \"\",\n \"vertrouwelijkheidaanduiding\": \"\",\n \"doel\": \"\",\n \"aanleiding\": \"\",\n \"indicatieInternOfExtern\": \"\",\n \"handelingInitiator\": \"\",\n \"onderwerp\": \"\",\n \"handelingBehandelaar\": \"\",\n \"doorlooptijd\": \"\",\n \"opschortingEnAanhoudingMogelijk\": \"\",\n \"verlengingMogelijk\": \"\",\n \"publicatieIndicatie\": \"\",\n \"productenOfDiensten\": [\n \"\",\n \"\"\n ],\n \"referentieproces\": {\n \"naam\": \"\",\n \"link\": \"\"\n },\n \"catalogus\": \"\",\n \"besluittypen\": [\n \"\"\n ],\n \"gerelateerdeZaaktypen\": [\n {\n \"zaaktype\": \"\",\n \"aardRelatie\": \"\",\n \"toelichting\": \"\"\n },\n {\n \"zaaktype\": \"\",\n \"aardRelatie\": \"\",\n \"toelichting\": \"\"\n }\n ],\n \"beginGeldigheid\": \"\",\n \"versiedatum\": \"\",\n \"omschrijvingGeneriek\": \"\",\n \"toelichting\": \"\",\n \"servicenorm\": \"\",\n \"verlengingstermijn\": \"\",\n \"trefwoorden\": [\n \"\",\n \"\"\n ],\n \"publicatietekst\": \"\",\n \"verantwoordingsrelatie\": [\n \"\",\n \"\"\n ],\n \"selectielijstProcestype\": \"\",\n \"eindeGeldigheid\": \"\"\n}" + }, + "url": { + "raw": "{{baseUrl}}/zaaktypen/", + "host": [ + "{{baseUrl}}" + ], + "path": [ + "zaaktypen", + "" + ] + } + }, + "status": "Unsupported Media Type", + "code": 415, + "_postman_previewlanguage": "json", + "header": [ + { + "key": "API-version", + "value": "", + "description": "Geeft een specifieke API-versie aan in de context van een specifieke aanroep. Voorbeeld: 1.2.1." + }, + { + "key": "Content-Type", + "value": "application/json" + } + ], + "cookie": [], + "body": "{\n \"code\": \"\",\n \"title\": \"\",\n \"status\": \"\",\n \"detail\": \"\",\n \"instance\": \"\",\n \"type\": \"\"\n}" + }, + { + "name": "Conflict", + "originalRequest": { + "method": "PUT", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n \"identificatie\": \"\",\n \"omschrijving\": \"\",\n \"vertrouwelijkheidaanduiding\": \"\",\n \"doel\": \"\",\n \"aanleiding\": \"\",\n \"indicatieInternOfExtern\": \"\",\n \"handelingInitiator\": \"\",\n \"onderwerp\": \"\",\n \"handelingBehandelaar\": \"\",\n \"doorlooptijd\": \"\",\n \"opschortingEnAanhoudingMogelijk\": \"\",\n \"verlengingMogelijk\": \"\",\n \"publicatieIndicatie\": \"\",\n \"productenOfDiensten\": [\n \"\",\n \"\"\n ],\n \"referentieproces\": {\n \"naam\": \"\",\n \"link\": \"\"\n },\n \"catalogus\": \"\",\n \"besluittypen\": [\n \"\"\n ],\n \"gerelateerdeZaaktypen\": [\n {\n \"zaaktype\": \"\",\n \"aardRelatie\": \"\",\n \"toelichting\": \"\"\n },\n {\n \"zaaktype\": \"\",\n \"aardRelatie\": \"\",\n \"toelichting\": \"\"\n }\n ],\n \"beginGeldigheid\": \"\",\n \"versiedatum\": \"\",\n \"omschrijvingGeneriek\": \"\",\n \"toelichting\": \"\",\n \"servicenorm\": \"\",\n \"verlengingstermijn\": \"\",\n \"trefwoorden\": [\n \"\",\n \"\"\n ],\n \"publicatietekst\": \"\",\n \"verantwoordingsrelatie\": [\n \"\",\n \"\"\n ],\n \"selectielijstProcestype\": \"\",\n \"eindeGeldigheid\": \"\"\n}" + }, + "url": { + "raw": "{{baseUrl}}/zaaktypen/", + "host": [ + "{{baseUrl}}" + ], + "path": [ + "zaaktypen", + "" + ] + } + }, + "status": "Conflict", + "code": 409, + "_postman_previewlanguage": "json", + "header": [ + { + "key": "API-version", + "value": "", + "description": "Geeft een specifieke API-versie aan in de context van een specifieke aanroep. Voorbeeld: 1.2.1." + }, + { + "key": "Content-Type", + "value": "application/json" + } + ], + "cookie": [], + "body": "{\n \"code\": \"\",\n \"title\": \"\",\n \"status\": \"\",\n \"detail\": \"\",\n \"instance\": \"\",\n \"type\": \"\"\n}" + }, + { + "name": "Too many requests", + "originalRequest": { + "method": "PUT", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n \"identificatie\": \"\",\n \"omschrijving\": \"\",\n \"vertrouwelijkheidaanduiding\": \"\",\n \"doel\": \"\",\n \"aanleiding\": \"\",\n \"indicatieInternOfExtern\": \"\",\n \"handelingInitiator\": \"\",\n \"onderwerp\": \"\",\n \"handelingBehandelaar\": \"\",\n \"doorlooptijd\": \"\",\n \"opschortingEnAanhoudingMogelijk\": \"\",\n \"verlengingMogelijk\": \"\",\n \"publicatieIndicatie\": \"\",\n \"productenOfDiensten\": [\n \"\",\n \"\"\n ],\n \"referentieproces\": {\n \"naam\": \"\",\n \"link\": \"\"\n },\n \"catalogus\": \"\",\n \"besluittypen\": [\n \"\"\n ],\n \"gerelateerdeZaaktypen\": [\n {\n \"zaaktype\": \"\",\n \"aardRelatie\": \"\",\n \"toelichting\": \"\"\n },\n {\n \"zaaktype\": \"\",\n \"aardRelatie\": \"\",\n \"toelichting\": \"\"\n }\n ],\n \"beginGeldigheid\": \"\",\n \"versiedatum\": \"\",\n \"omschrijvingGeneriek\": \"\",\n \"toelichting\": \"\",\n \"servicenorm\": \"\",\n \"verlengingstermijn\": \"\",\n \"trefwoorden\": [\n \"\",\n \"\"\n ],\n \"publicatietekst\": \"\",\n \"verantwoordingsrelatie\": [\n \"\",\n \"\"\n ],\n \"selectielijstProcestype\": \"\",\n \"eindeGeldigheid\": \"\"\n}" + }, + "url": { + "raw": "{{baseUrl}}/zaaktypen/", + "host": [ + "{{baseUrl}}" + ], + "path": [ + "zaaktypen", + "" + ] + } + }, + "status": "Too Many Requests", + "code": 429, + "_postman_previewlanguage": "json", + "header": [ + { + "key": "API-version", + "value": "", + "description": "Geeft een specifieke API-versie aan in de context van een specifieke aanroep. Voorbeeld: 1.2.1." + }, + { + "key": "Content-Type", + "value": "application/json" + } + ], + "cookie": [], + "body": "{\n \"code\": \"\",\n \"title\": \"\",\n \"status\": \"\",\n \"detail\": \"\",\n \"instance\": \"\",\n \"type\": \"\"\n}" + } + ] + }, + { + "name": "Werk een ZAAKTYPE deels bij.", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "pm.test(\"Werk een ZAAKTYPE deels bij geeft 200\", function() {", + " pm.response.to.have.status(200);", + "});", + "", + "pm.test(\"Werk een ZAAKTYPE deels bij past attributen aan\", function() {", + " pm.expect(pm.response.json().omschrijving).to.be.equal(\"aangepast2\");", + "});" + ], + "type": "text/javascript", + "packages": {} + } + } + ], + "request": { + "method": "PATCH", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n \"omschrijving\": \"aangepast4\"\n}" + }, + "url": { + "raw": "{{created_zaaktype_url}}", + "host": [ + "{{created_zaaktype_url}}" + ] + }, + "description": "Werk een ZAAKTYPE deels bij. Dit kan alleen als het een concept betreft." + }, + "response": [ + { + "name": "Not acceptable", + "originalRequest": { + "method": "PATCH", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n \"identificatie\": \"\",\n \"omschrijving\": \"\",\n \"vertrouwelijkheidaanduiding\": \"\",\n \"doel\": \"\",\n \"aanleiding\": \"\",\n \"indicatieInternOfExtern\": \"\",\n \"handelingInitiator\": \"\",\n \"onderwerp\": \"\",\n \"handelingBehandelaar\": \"\",\n \"doorlooptijd\": \"\",\n \"opschortingEnAanhoudingMogelijk\": \"\",\n \"verlengingMogelijk\": \"\",\n \"publicatieIndicatie\": \"\",\n \"productenOfDiensten\": [\n \"\",\n \"\"\n ],\n \"referentieproces\": {\n \"naam\": \"\",\n \"link\": \"\"\n },\n \"catalogus\": \"\",\n \"besluittypen\": [\n \"\"\n ],\n \"gerelateerdeZaaktypen\": [\n {\n \"zaaktype\": \"\",\n \"aardRelatie\": \"\",\n \"toelichting\": \"\"\n },\n {\n \"zaaktype\": \"\",\n \"aardRelatie\": \"\",\n \"toelichting\": \"\"\n }\n ],\n \"beginGeldigheid\": \"\",\n \"versiedatum\": \"\",\n \"omschrijvingGeneriek\": \"\",\n \"toelichting\": \"\",\n \"servicenorm\": \"\",\n \"verlengingstermijn\": \"\",\n \"trefwoorden\": [\n \"\",\n \"\"\n ],\n \"publicatietekst\": \"\",\n \"verantwoordingsrelatie\": [\n \"\",\n \"\"\n ],\n \"selectielijstProcestype\": \"\",\n \"eindeGeldigheid\": \"\"\n}" + }, + "url": { + "raw": "{{baseUrl}}/zaaktypen/", + "host": [ + "{{baseUrl}}" + ], + "path": [ + "zaaktypen", + "" + ] + } + }, + "status": "Not Acceptable", + "code": 406, + "_postman_previewlanguage": "json", + "header": [ + { + "key": "API-version", + "value": "", + "description": "Geeft een specifieke API-versie aan in de context van een specifieke aanroep. Voorbeeld: 1.2.1." + }, + { + "key": "Content-Type", + "value": "application/json" + } + ], + "cookie": [], + "body": "{\n \"code\": \"\",\n \"title\": \"\",\n \"status\": \"\",\n \"detail\": \"\",\n \"instance\": \"\",\n \"type\": \"\"\n}" + }, + { + "name": "OK", + "originalRequest": { + "method": "PATCH", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n \"identificatie\": \"\",\n \"omschrijving\": \"\",\n \"vertrouwelijkheidaanduiding\": \"\",\n \"doel\": \"\",\n \"aanleiding\": \"\",\n \"indicatieInternOfExtern\": \"\",\n \"handelingInitiator\": \"\",\n \"onderwerp\": \"\",\n \"handelingBehandelaar\": \"\",\n \"doorlooptijd\": \"\",\n \"opschortingEnAanhoudingMogelijk\": \"\",\n \"verlengingMogelijk\": \"\",\n \"publicatieIndicatie\": \"\",\n \"productenOfDiensten\": [\n \"\",\n \"\"\n ],\n \"referentieproces\": {\n \"naam\": \"\",\n \"link\": \"\"\n },\n \"catalogus\": \"\",\n \"besluittypen\": [\n \"\"\n ],\n \"gerelateerdeZaaktypen\": [\n {\n \"zaaktype\": \"\",\n \"aardRelatie\": \"\",\n \"toelichting\": \"\"\n },\n {\n \"zaaktype\": \"\",\n \"aardRelatie\": \"\",\n \"toelichting\": \"\"\n }\n ],\n \"beginGeldigheid\": \"\",\n \"versiedatum\": \"\",\n \"omschrijvingGeneriek\": \"\",\n \"toelichting\": \"\",\n \"servicenorm\": \"\",\n \"verlengingstermijn\": \"\",\n \"trefwoorden\": [\n \"\",\n \"\"\n ],\n \"publicatietekst\": \"\",\n \"verantwoordingsrelatie\": [\n \"\",\n \"\"\n ],\n \"selectielijstProcestype\": \"\",\n \"eindeGeldigheid\": \"\"\n}" + }, + "url": { + "raw": "{{baseUrl}}/zaaktypen/", + "host": [ + "{{baseUrl}}" + ], + "path": [ + "zaaktypen", + "" + ] + } + }, + "status": "OK", + "code": 200, + "_postman_previewlanguage": "json", + "header": [ + { + "key": "API-version", + "value": "", + "description": "Geeft een specifieke API-versie aan in de context van een specifieke aanroep. Voorbeeld: 1.2.1." + }, + { + "key": "Content-Type", + "value": "application/json" + } + ], + "cookie": [], + "body": "{\n \"identificatie\": \"\",\n \"omschrijving\": \"\",\n \"vertrouwelijkheidaanduiding\": \"\",\n \"doel\": \"\",\n \"aanleiding\": \"\",\n \"indicatieInternOfExtern\": \"\",\n \"handelingInitiator\": \"\",\n \"onderwerp\": \"\",\n \"handelingBehandelaar\": \"\",\n \"doorlooptijd\": \"\",\n \"opschortingEnAanhoudingMogelijk\": \"\",\n \"verlengingMogelijk\": \"\",\n \"publicatieIndicatie\": \"\",\n \"productenOfDiensten\": [\n \"\",\n \"\"\n ],\n \"referentieproces\": {\n \"naam\": \"\",\n \"link\": \"\"\n },\n \"catalogus\": \"\",\n \"besluittypen\": [\n \"\"\n ],\n \"gerelateerdeZaaktypen\": [\n {\n \"zaaktype\": \"\",\n \"aardRelatie\": \"\",\n \"toelichting\": \"\"\n },\n {\n \"zaaktype\": \"\",\n \"aardRelatie\": \"\",\n \"toelichting\": \"\"\n }\n ],\n \"beginGeldigheid\": \"\",\n \"versiedatum\": \"\",\n \"url\": \"\",\n \"omschrijvingGeneriek\": \"\",\n \"toelichting\": \"\",\n \"servicenorm\": \"\",\n \"verlengingstermijn\": \"\",\n \"trefwoorden\": [\n \"\",\n \"\"\n ],\n \"publicatietekst\": \"\",\n \"verantwoordingsrelatie\": [\n \"\",\n \"\"\n ],\n \"selectielijstProcestype\": \"\",\n \"statustypen\": [\n \"\"\n ],\n \"resultaattypen\": [\n \"\"\n ],\n \"eigenschappen\": [\n \"\"\n ],\n \"informatieobjecttypes\": [\n \"\"\n ],\n \"roltypen\": [\n \"\"\n ],\n \"eindeGeldigheid\": \"\",\n \"concept\": \"\"\n}" + }, + { + "name": "Unsupported media type", + "originalRequest": { + "method": "PATCH", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n \"identificatie\": \"\",\n \"omschrijving\": \"\",\n \"vertrouwelijkheidaanduiding\": \"\",\n \"doel\": \"\",\n \"aanleiding\": \"\",\n \"indicatieInternOfExtern\": \"\",\n \"handelingInitiator\": \"\",\n \"onderwerp\": \"\",\n \"handelingBehandelaar\": \"\",\n \"doorlooptijd\": \"\",\n \"opschortingEnAanhoudingMogelijk\": \"\",\n \"verlengingMogelijk\": \"\",\n \"publicatieIndicatie\": \"\",\n \"productenOfDiensten\": [\n \"\",\n \"\"\n ],\n \"referentieproces\": {\n \"naam\": \"\",\n \"link\": \"\"\n },\n \"catalogus\": \"\",\n \"besluittypen\": [\n \"\"\n ],\n \"gerelateerdeZaaktypen\": [\n {\n \"zaaktype\": \"\",\n \"aardRelatie\": \"\",\n \"toelichting\": \"\"\n },\n {\n \"zaaktype\": \"\",\n \"aardRelatie\": \"\",\n \"toelichting\": \"\"\n }\n ],\n \"beginGeldigheid\": \"\",\n \"versiedatum\": \"\",\n \"omschrijvingGeneriek\": \"\",\n \"toelichting\": \"\",\n \"servicenorm\": \"\",\n \"verlengingstermijn\": \"\",\n \"trefwoorden\": [\n \"\",\n \"\"\n ],\n \"publicatietekst\": \"\",\n \"verantwoordingsrelatie\": [\n \"\",\n \"\"\n ],\n \"selectielijstProcestype\": \"\",\n \"eindeGeldigheid\": \"\"\n}" + }, + "url": { + "raw": "{{baseUrl}}/zaaktypen/", + "host": [ + "{{baseUrl}}" + ], + "path": [ + "zaaktypen", + "" + ] + } + }, + "status": "Unsupported Media Type", + "code": 415, + "_postman_previewlanguage": "json", + "header": [ + { + "key": "API-version", + "value": "", + "description": "Geeft een specifieke API-versie aan in de context van een specifieke aanroep. Voorbeeld: 1.2.1." + }, + { + "key": "Content-Type", + "value": "application/json" + } + ], + "cookie": [], + "body": "{\n \"code\": \"\",\n \"title\": \"\",\n \"status\": \"\",\n \"detail\": \"\",\n \"instance\": \"\",\n \"type\": \"\"\n}" + }, + { + "name": "Forbidden", + "originalRequest": { + "method": "PATCH", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n \"identificatie\": \"\",\n \"omschrijving\": \"\",\n \"vertrouwelijkheidaanduiding\": \"\",\n \"doel\": \"\",\n \"aanleiding\": \"\",\n \"indicatieInternOfExtern\": \"\",\n \"handelingInitiator\": \"\",\n \"onderwerp\": \"\",\n \"handelingBehandelaar\": \"\",\n \"doorlooptijd\": \"\",\n \"opschortingEnAanhoudingMogelijk\": \"\",\n \"verlengingMogelijk\": \"\",\n \"publicatieIndicatie\": \"\",\n \"productenOfDiensten\": [\n \"\",\n \"\"\n ],\n \"referentieproces\": {\n \"naam\": \"\",\n \"link\": \"\"\n },\n \"catalogus\": \"\",\n \"besluittypen\": [\n \"\"\n ],\n \"gerelateerdeZaaktypen\": [\n {\n \"zaaktype\": \"\",\n \"aardRelatie\": \"\",\n \"toelichting\": \"\"\n },\n {\n \"zaaktype\": \"\",\n \"aardRelatie\": \"\",\n \"toelichting\": \"\"\n }\n ],\n \"beginGeldigheid\": \"\",\n \"versiedatum\": \"\",\n \"omschrijvingGeneriek\": \"\",\n \"toelichting\": \"\",\n \"servicenorm\": \"\",\n \"verlengingstermijn\": \"\",\n \"trefwoorden\": [\n \"\",\n \"\"\n ],\n \"publicatietekst\": \"\",\n \"verantwoordingsrelatie\": [\n \"\",\n \"\"\n ],\n \"selectielijstProcestype\": \"\",\n \"eindeGeldigheid\": \"\"\n}" + }, + "url": { + "raw": "{{baseUrl}}/zaaktypen/", + "host": [ + "{{baseUrl}}" + ], + "path": [ + "zaaktypen", + "" + ] + } + }, + "status": "Forbidden", + "code": 403, + "_postman_previewlanguage": "json", + "header": [ + { + "key": "API-version", + "value": "", + "description": "Geeft een specifieke API-versie aan in de context van een specifieke aanroep. Voorbeeld: 1.2.1." + }, + { + "key": "Content-Type", + "value": "application/json" + } + ], + "cookie": [], + "body": "{\n \"code\": \"\",\n \"title\": \"\",\n \"status\": \"\",\n \"detail\": \"\",\n \"instance\": \"\",\n \"type\": \"\"\n}" + }, + { + "name": "Internal server error", + "originalRequest": { + "method": "PATCH", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n \"identificatie\": \"\",\n \"omschrijving\": \"\",\n \"vertrouwelijkheidaanduiding\": \"\",\n \"doel\": \"\",\n \"aanleiding\": \"\",\n \"indicatieInternOfExtern\": \"\",\n \"handelingInitiator\": \"\",\n \"onderwerp\": \"\",\n \"handelingBehandelaar\": \"\",\n \"doorlooptijd\": \"\",\n \"opschortingEnAanhoudingMogelijk\": \"\",\n \"verlengingMogelijk\": \"\",\n \"publicatieIndicatie\": \"\",\n \"productenOfDiensten\": [\n \"\",\n \"\"\n ],\n \"referentieproces\": {\n \"naam\": \"\",\n \"link\": \"\"\n },\n \"catalogus\": \"\",\n \"besluittypen\": [\n \"\"\n ],\n \"gerelateerdeZaaktypen\": [\n {\n \"zaaktype\": \"\",\n \"aardRelatie\": \"\",\n \"toelichting\": \"\"\n },\n {\n \"zaaktype\": \"\",\n \"aardRelatie\": \"\",\n \"toelichting\": \"\"\n }\n ],\n \"beginGeldigheid\": \"\",\n \"versiedatum\": \"\",\n \"omschrijvingGeneriek\": \"\",\n \"toelichting\": \"\",\n \"servicenorm\": \"\",\n \"verlengingstermijn\": \"\",\n \"trefwoorden\": [\n \"\",\n \"\"\n ],\n \"publicatietekst\": \"\",\n \"verantwoordingsrelatie\": [\n \"\",\n \"\"\n ],\n \"selectielijstProcestype\": \"\",\n \"eindeGeldigheid\": \"\"\n}" + }, + "url": { + "raw": "{{baseUrl}}/zaaktypen/", + "host": [ + "{{baseUrl}}" + ], + "path": [ + "zaaktypen", + "" + ] + } + }, + "status": "Internal Server Error", + "code": 500, + "_postman_previewlanguage": "json", + "header": [ + { + "key": "API-version", + "value": "", + "description": "Geeft een specifieke API-versie aan in de context van een specifieke aanroep. Voorbeeld: 1.2.1." + }, + { + "key": "Content-Type", + "value": "application/json" + } + ], + "cookie": [], + "body": "{\n \"code\": \"\",\n \"title\": \"\",\n \"status\": \"\",\n \"detail\": \"\",\n \"instance\": \"\",\n \"type\": \"\"\n}" + }, + { + "name": "Gone", + "originalRequest": { + "method": "PATCH", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n \"identificatie\": \"\",\n \"omschrijving\": \"\",\n \"vertrouwelijkheidaanduiding\": \"\",\n \"doel\": \"\",\n \"aanleiding\": \"\",\n \"indicatieInternOfExtern\": \"\",\n \"handelingInitiator\": \"\",\n \"onderwerp\": \"\",\n \"handelingBehandelaar\": \"\",\n \"doorlooptijd\": \"\",\n \"opschortingEnAanhoudingMogelijk\": \"\",\n \"verlengingMogelijk\": \"\",\n \"publicatieIndicatie\": \"\",\n \"productenOfDiensten\": [\n \"\",\n \"\"\n ],\n \"referentieproces\": {\n \"naam\": \"\",\n \"link\": \"\"\n },\n \"catalogus\": \"\",\n \"besluittypen\": [\n \"\"\n ],\n \"gerelateerdeZaaktypen\": [\n {\n \"zaaktype\": \"\",\n \"aardRelatie\": \"\",\n \"toelichting\": \"\"\n },\n {\n \"zaaktype\": \"\",\n \"aardRelatie\": \"\",\n \"toelichting\": \"\"\n }\n ],\n \"beginGeldigheid\": \"\",\n \"versiedatum\": \"\",\n \"omschrijvingGeneriek\": \"\",\n \"toelichting\": \"\",\n \"servicenorm\": \"\",\n \"verlengingstermijn\": \"\",\n \"trefwoorden\": [\n \"\",\n \"\"\n ],\n \"publicatietekst\": \"\",\n \"verantwoordingsrelatie\": [\n \"\",\n \"\"\n ],\n \"selectielijstProcestype\": \"\",\n \"eindeGeldigheid\": \"\"\n}" + }, + "url": { + "raw": "{{baseUrl}}/zaaktypen/", + "host": [ + "{{baseUrl}}" + ], + "path": [ + "zaaktypen", + "" + ] + } + }, + "status": "Gone", + "code": 410, + "_postman_previewlanguage": "json", + "header": [ + { + "key": "API-version", + "value": "", + "description": "Geeft een specifieke API-versie aan in de context van een specifieke aanroep. Voorbeeld: 1.2.1." + }, + { + "key": "Content-Type", + "value": "application/json" + } + ], + "cookie": [], + "body": "{\n \"code\": \"\",\n \"title\": \"\",\n \"status\": \"\",\n \"detail\": \"\",\n \"instance\": \"\",\n \"type\": \"\"\n}" + }, + { + "name": "Too many requests", + "originalRequest": { + "method": "PATCH", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n \"identificatie\": \"\",\n \"omschrijving\": \"\",\n \"vertrouwelijkheidaanduiding\": \"\",\n \"doel\": \"\",\n \"aanleiding\": \"\",\n \"indicatieInternOfExtern\": \"\",\n \"handelingInitiator\": \"\",\n \"onderwerp\": \"\",\n \"handelingBehandelaar\": \"\",\n \"doorlooptijd\": \"\",\n \"opschortingEnAanhoudingMogelijk\": \"\",\n \"verlengingMogelijk\": \"\",\n \"publicatieIndicatie\": \"\",\n \"productenOfDiensten\": [\n \"\",\n \"\"\n ],\n \"referentieproces\": {\n \"naam\": \"\",\n \"link\": \"\"\n },\n \"catalogus\": \"\",\n \"besluittypen\": [\n \"\"\n ],\n \"gerelateerdeZaaktypen\": [\n {\n \"zaaktype\": \"\",\n \"aardRelatie\": \"\",\n \"toelichting\": \"\"\n },\n {\n \"zaaktype\": \"\",\n \"aardRelatie\": \"\",\n \"toelichting\": \"\"\n }\n ],\n \"beginGeldigheid\": \"\",\n \"versiedatum\": \"\",\n \"omschrijvingGeneriek\": \"\",\n \"toelichting\": \"\",\n \"servicenorm\": \"\",\n \"verlengingstermijn\": \"\",\n \"trefwoorden\": [\n \"\",\n \"\"\n ],\n \"publicatietekst\": \"\",\n \"verantwoordingsrelatie\": [\n \"\",\n \"\"\n ],\n \"selectielijstProcestype\": \"\",\n \"eindeGeldigheid\": \"\"\n}" + }, + "url": { + "raw": "{{baseUrl}}/zaaktypen/", + "host": [ + "{{baseUrl}}" + ], + "path": [ + "zaaktypen", + "" + ] + } + }, + "status": "Too Many Requests", + "code": 429, + "_postman_previewlanguage": "json", + "header": [ + { + "key": "API-version", + "value": "", + "description": "Geeft een specifieke API-versie aan in de context van een specifieke aanroep. Voorbeeld: 1.2.1." + }, + { + "key": "Content-Type", + "value": "application/json" + } + ], + "cookie": [], + "body": "{\n \"code\": \"\",\n \"title\": \"\",\n \"status\": \"\",\n \"detail\": \"\",\n \"instance\": \"\",\n \"type\": \"\"\n}" + }, + { + "name": "Not found", + "originalRequest": { + "method": "PATCH", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n \"identificatie\": \"\",\n \"omschrijving\": \"\",\n \"vertrouwelijkheidaanduiding\": \"\",\n \"doel\": \"\",\n \"aanleiding\": \"\",\n \"indicatieInternOfExtern\": \"\",\n \"handelingInitiator\": \"\",\n \"onderwerp\": \"\",\n \"handelingBehandelaar\": \"\",\n \"doorlooptijd\": \"\",\n \"opschortingEnAanhoudingMogelijk\": \"\",\n \"verlengingMogelijk\": \"\",\n \"publicatieIndicatie\": \"\",\n \"productenOfDiensten\": [\n \"\",\n \"\"\n ],\n \"referentieproces\": {\n \"naam\": \"\",\n \"link\": \"\"\n },\n \"catalogus\": \"\",\n \"besluittypen\": [\n \"\"\n ],\n \"gerelateerdeZaaktypen\": [\n {\n \"zaaktype\": \"\",\n \"aardRelatie\": \"\",\n \"toelichting\": \"\"\n },\n {\n \"zaaktype\": \"\",\n \"aardRelatie\": \"\",\n \"toelichting\": \"\"\n }\n ],\n \"beginGeldigheid\": \"\",\n \"versiedatum\": \"\",\n \"omschrijvingGeneriek\": \"\",\n \"toelichting\": \"\",\n \"servicenorm\": \"\",\n \"verlengingstermijn\": \"\",\n \"trefwoorden\": [\n \"\",\n \"\"\n ],\n \"publicatietekst\": \"\",\n \"verantwoordingsrelatie\": [\n \"\",\n \"\"\n ],\n \"selectielijstProcestype\": \"\",\n \"eindeGeldigheid\": \"\"\n}" + }, + "url": { + "raw": "{{baseUrl}}/zaaktypen/", + "host": [ + "{{baseUrl}}" + ], + "path": [ + "zaaktypen", + "" + ] + } + }, + "status": "Not Found", + "code": 404, + "_postman_previewlanguage": "json", + "header": [ + { + "key": "API-version", + "value": "", + "description": "Geeft een specifieke API-versie aan in de context van een specifieke aanroep. Voorbeeld: 1.2.1." + }, + { + "key": "Content-Type", + "value": "application/json" + } + ], + "cookie": [], + "body": "{\n \"code\": \"\",\n \"title\": \"\",\n \"status\": \"\",\n \"detail\": \"\",\n \"instance\": \"\",\n \"type\": \"\"\n}" + }, + { + "name": "Unauthorized", + "originalRequest": { + "method": "PATCH", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n \"identificatie\": \"\",\n \"omschrijving\": \"\",\n \"vertrouwelijkheidaanduiding\": \"\",\n \"doel\": \"\",\n \"aanleiding\": \"\",\n \"indicatieInternOfExtern\": \"\",\n \"handelingInitiator\": \"\",\n \"onderwerp\": \"\",\n \"handelingBehandelaar\": \"\",\n \"doorlooptijd\": \"\",\n \"opschortingEnAanhoudingMogelijk\": \"\",\n \"verlengingMogelijk\": \"\",\n \"publicatieIndicatie\": \"\",\n \"productenOfDiensten\": [\n \"\",\n \"\"\n ],\n \"referentieproces\": {\n \"naam\": \"\",\n \"link\": \"\"\n },\n \"catalogus\": \"\",\n \"besluittypen\": [\n \"\"\n ],\n \"gerelateerdeZaaktypen\": [\n {\n \"zaaktype\": \"\",\n \"aardRelatie\": \"\",\n \"toelichting\": \"\"\n },\n {\n \"zaaktype\": \"\",\n \"aardRelatie\": \"\",\n \"toelichting\": \"\"\n }\n ],\n \"beginGeldigheid\": \"\",\n \"versiedatum\": \"\",\n \"omschrijvingGeneriek\": \"\",\n \"toelichting\": \"\",\n \"servicenorm\": \"\",\n \"verlengingstermijn\": \"\",\n \"trefwoorden\": [\n \"\",\n \"\"\n ],\n \"publicatietekst\": \"\",\n \"verantwoordingsrelatie\": [\n \"\",\n \"\"\n ],\n \"selectielijstProcestype\": \"\",\n \"eindeGeldigheid\": \"\"\n}" + }, + "url": { + "raw": "{{baseUrl}}/zaaktypen/", + "host": [ + "{{baseUrl}}" + ], + "path": [ + "zaaktypen", + "" + ] + } + }, + "status": "Unauthorized", + "code": 401, + "_postman_previewlanguage": "json", + "header": [ + { + "key": "API-version", + "value": "", + "description": "Geeft een specifieke API-versie aan in de context van een specifieke aanroep. Voorbeeld: 1.2.1." + }, + { + "key": "Content-Type", + "value": "application/json" + } + ], + "cookie": [], + "body": "{\n \"code\": \"\",\n \"title\": \"\",\n \"status\": \"\",\n \"detail\": \"\",\n \"instance\": \"\",\n \"type\": \"\"\n}" + }, + { + "name": "Bad request", + "originalRequest": { + "method": "PATCH", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n \"identificatie\": \"\",\n \"omschrijving\": \"\",\n \"vertrouwelijkheidaanduiding\": \"\",\n \"doel\": \"\",\n \"aanleiding\": \"\",\n \"indicatieInternOfExtern\": \"\",\n \"handelingInitiator\": \"\",\n \"onderwerp\": \"\",\n \"handelingBehandelaar\": \"\",\n \"doorlooptijd\": \"\",\n \"opschortingEnAanhoudingMogelijk\": \"\",\n \"verlengingMogelijk\": \"\",\n \"publicatieIndicatie\": \"\",\n \"productenOfDiensten\": [\n \"\",\n \"\"\n ],\n \"referentieproces\": {\n \"naam\": \"\",\n \"link\": \"\"\n },\n \"catalogus\": \"\",\n \"besluittypen\": [\n \"\"\n ],\n \"gerelateerdeZaaktypen\": [\n {\n \"zaaktype\": \"\",\n \"aardRelatie\": \"\",\n \"toelichting\": \"\"\n },\n {\n \"zaaktype\": \"\",\n \"aardRelatie\": \"\",\n \"toelichting\": \"\"\n }\n ],\n \"beginGeldigheid\": \"\",\n \"versiedatum\": \"\",\n \"omschrijvingGeneriek\": \"\",\n \"toelichting\": \"\",\n \"servicenorm\": \"\",\n \"verlengingstermijn\": \"\",\n \"trefwoorden\": [\n \"\",\n \"\"\n ],\n \"publicatietekst\": \"\",\n \"verantwoordingsrelatie\": [\n \"\",\n \"\"\n ],\n \"selectielijstProcestype\": \"\",\n \"eindeGeldigheid\": \"\"\n}" + }, + "url": { + "raw": "{{baseUrl}}/zaaktypen/", + "host": [ + "{{baseUrl}}" + ], + "path": [ + "zaaktypen", + "" + ] + } + }, + "status": "Bad Request", + "code": 400, + "_postman_previewlanguage": "json", + "header": [ + { + "key": "API-version", + "value": "", + "description": "Geeft een specifieke API-versie aan in de context van een specifieke aanroep. Voorbeeld: 1.2.1." + }, + { + "key": "Content-Type", + "value": "application/json" + } + ], + "cookie": [], + "body": "{\n \"code\": \"\",\n \"title\": \"\",\n \"status\": \"\",\n \"detail\": \"\",\n \"instance\": \"\",\n \"invalidParams\": [\n {\n \"name\": \"\",\n \"code\": \"\",\n \"reason\": \"\"\n },\n {\n \"name\": \"\",\n \"code\": \"\",\n \"reason\": \"\"\n }\n ],\n \"type\": \"\"\n}" + }, + { + "name": "Conflict", + "originalRequest": { + "method": "PATCH", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n \"identificatie\": \"\",\n \"omschrijving\": \"\",\n \"vertrouwelijkheidaanduiding\": \"\",\n \"doel\": \"\",\n \"aanleiding\": \"\",\n \"indicatieInternOfExtern\": \"\",\n \"handelingInitiator\": \"\",\n \"onderwerp\": \"\",\n \"handelingBehandelaar\": \"\",\n \"doorlooptijd\": \"\",\n \"opschortingEnAanhoudingMogelijk\": \"\",\n \"verlengingMogelijk\": \"\",\n \"publicatieIndicatie\": \"\",\n \"productenOfDiensten\": [\n \"\",\n \"\"\n ],\n \"referentieproces\": {\n \"naam\": \"\",\n \"link\": \"\"\n },\n \"catalogus\": \"\",\n \"besluittypen\": [\n \"\"\n ],\n \"gerelateerdeZaaktypen\": [\n {\n \"zaaktype\": \"\",\n \"aardRelatie\": \"\",\n \"toelichting\": \"\"\n },\n {\n \"zaaktype\": \"\",\n \"aardRelatie\": \"\",\n \"toelichting\": \"\"\n }\n ],\n \"beginGeldigheid\": \"\",\n \"versiedatum\": \"\",\n \"omschrijvingGeneriek\": \"\",\n \"toelichting\": \"\",\n \"servicenorm\": \"\",\n \"verlengingstermijn\": \"\",\n \"trefwoorden\": [\n \"\",\n \"\"\n ],\n \"publicatietekst\": \"\",\n \"verantwoordingsrelatie\": [\n \"\",\n \"\"\n ],\n \"selectielijstProcestype\": \"\",\n \"eindeGeldigheid\": \"\"\n}" + }, + "url": { + "raw": "{{baseUrl}}/zaaktypen/", + "host": [ + "{{baseUrl}}" + ], + "path": [ + "zaaktypen", + "" + ] + } + }, + "status": "Conflict", + "code": 409, + "_postman_previewlanguage": "json", + "header": [ + { + "key": "API-version", + "value": "", + "description": "Geeft een specifieke API-versie aan in de context van een specifieke aanroep. Voorbeeld: 1.2.1." + }, + { + "key": "Content-Type", + "value": "application/json" + } + ], + "cookie": [], + "body": "{\n \"code\": \"\",\n \"title\": \"\",\n \"status\": \"\",\n \"detail\": \"\",\n \"instance\": \"\",\n \"type\": \"\"\n}" + } + ] + }, + { + "name": "Opvragen en bewerken van ZAAKTYPEn nodig voor ZAKEN in de Zaken API.", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "pm.test(\"Publiceer een ZAAKTYPE aan geeft 200\", function() {", + " pm.response.to.have.status(200);", + "});", + "", + "pm.test(\"Publiceer een ZAAKTYPE zet concept op False\", function() {", + " pm.expect(pm.response.json().concept).to.be.equal(false);", + "});" + ], + "type": "text/javascript" + } + } + ], + "request": { + "method": "POST", + "header": [ + { + "key": "Accept", + "value": "application/json" + }, + { + "key": "Content-Type", + "value": "application/json" + } + ], + "url": { + "raw": "{{created_zaaktype_url}}/publish", + "host": [ + "{{created_zaaktype_url}}" + ], + "path": [ + "publish" + ] + }, + "description": "Een ZAAKTYPE beschrijft het geheel van karakteristieke eigenschappen van\nzaken van eenzelfde soort." + }, + "response": [] + }, + { + "name": "Verwijder een ZAAKTYPE.", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "pm.test(\"Verwijder een ZAAKTYPE geeft 204\", function() {", + " pm.response.to.have.status(204);", + "});" + ], + "type": "text/javascript" + } + } + ], + "request": { + "method": "DELETE", + "header": [ + { + "key": "Accept", + "value": "application/json" + }, + { + "key": "Content-Type", + "value": "application/json" + } + ], + "url": { + "raw": "{{created_zaaktype_url}}", + "host": [ + "{{created_zaaktype_url}}" + ] + }, + "description": "Verwijder een ZAAKTYPE. Dit kan alleen als het een concept betreft." + }, + "response": [] + }, + { + "name": "Publiceer het Zaaktype", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "if(pm.response.code == 201) {", + " pm.globals.set(\"created_zaaktype_url\", pm.response.json().url);", + "}" + ], + "type": "text/javascript", + "packages": {} + } + } + ], + "request": { + "method": "POST", + "header": [ + { + "key": "Accept", + "value": "application/json" + }, + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n\t\"identificatie\": \"1\",\n \"omschrijving\": \"zrc_tests_2\",\n \"vertrouwelijkheidaanduiding\": \"openbaar\",\n \"doel\": \"test doel\",\n \"aanleiding\": \"test aanleiding\",\n \"indicatieInternOfExtern\": \"extern\",\n \"handelingInitiator\": \"indienen\",\n \"onderwerp\": \"openbare ruimte\",\n \"handelingBehandelaar\": \"behandelen\",\n \"doorlooptijd\": \"P10D\",\n \"opschortingEnAanhoudingMogelijk\": false,\n \"verlengingMogelijk\": true,\n \"publicatieIndicatie\": false,\n \"productenOfDiensten\": [\n \"https://ref.tst.vng.cloud/standaard/\"\n ],\n \"selectielijstProcestype\": \"{{procestype_url}}\",\n \"referentieproces\": {\n \"naam\": \"test\",\n \"link\": \"\"\n },\n \"catalogus\": \"{{catalogus_url}}\",\n \"statustypen\": [\n \"http://localhost:8002/api/v1/statustypen/ecb7fc03-5c11-46be-917f-e70e16c77554\",\n \"http://localhost:8002/api/v1/statustypen/14734ec8-04f8-4c18-a009-e190ff448ca9\"\n ],\n \"resultaattypen\": [\n \"http://localhost:8002/api/v1/resultaattypen/eead9dcd-9544-4862-8a03-b55643f95228\"\n ],\n \"eigenschappen\": [\n \"http://localhost:8002/api/v1/eigenschappen/d417bd46-a2a8-46d7-bb8c-4c8dc214301b\"\n ],\n \"informatieobjecttypen\": [],\n \"besluittypen\": [],\n \"gerelateerdeZaaktypen\": [],\n \"beginGeldigheid\": \"2019-01-01\",\n \"versiedatum\": \"2019-01-01\",\n \"concept\": true,\n \"verlengingstermijn\": \"P5D\"\n}" + }, + "url": { + "raw": "{{created_zaaktype_url}}/publish", + "host": [ + "{{created_zaaktype_url}}" + ], + "path": [ + "publish" + ] + }, + "description": "Maak een ZAAKTYPE aan.\n\nEr wordt gevalideerd op:\n- geldigheid `catalogus` URL, dit moet een catalogus binnen dezelfde API zijn\n- Uniciteit `catalogus` en `omschrijving`. Dezelfde omeschrijving mag enkel\n opnieuw gebruikt worden als het zaaktype een andere geldigheidsperiode\n kent dan bestaande zaaktypen." + }, + "response": [] + } + ], + "description": "Folder for zaaktypen" + } + ], + "description": "Een API om een zaaktypecatalogus (ZTC) te benaderen.\n\nDe zaaktypecatalogus helpt gemeenten om het proces vanuit de 'vraag van een\nklant' (productaanvraag, melding, aangifte, informatieverzoek e.d.) tot en met\nhet leveren van een passend antwoord daarop in te richten, inclusief de\nbijbehorende informatievoorziening.\n\nEen CATALOGUS bestaat uit ZAAKTYPEn, INFORMATIEOBJECTTYPEn en BESLUITTYPEn en\nwordt typisch gebruikt om een ZAAK (in de Zaken API), INFORMATIEOBJECT (in de\nDocumenten API) en BESLUIT (in de Besluiten API) te voorzien van type,\nstandaardwaarden en processtructuur.\n\n**Afhankelijkheden**\n\nDeze API is afhankelijk van:\n\n* Gemeentelijke Selectielijst API\n* Autorisaties API *(optioneel)*\n\n**Autorisatie**\n\nDeze API vereist autorisatie. Je kan de\n[token-tool](https://zaken-auth.vng.cloud/) gebruiken om JWT-tokens te\ngenereren.\n\n### Notificaties\n\nDeze API publiceert notificaties op het kanaal `zaaktypen`.\n\n**Main resource**\n\n`zaaktype`\n\n\n\n**Kenmerken**\n\n* `catalogus`: URL-referentie naar de CATALOGUS waartoe dit ZAAKTYPE behoort.\n\n**Resources en acties**\n- `zaaktype`: create, destroy\n\n\nDeze API publiceert notificaties op het kanaal `besluittypen`.\n\n**Main resource**\n\n`besluittype`\n\n\n\n**Kenmerken**\n\n* `catalogus`: URL-referentie naar de CATALOGUS waartoe dit BESLUITTYPE behoort.\n\n**Resources en acties**\n- `besluittype`: create, destroy\n\n\nDeze API publiceert notificaties op het kanaal `informatieobjecttypen`.\n\n**Main resource**\n\n`informatieobjecttype`\n\n\n\n**Kenmerken**\n\n* `catalogus`: URL-referentie naar de CATALOGUS waartoe dit INFORMATIEOBJECTTYPE behoort.\n\n**Resources en acties**\n- `informatieobjecttype`: create, destroy\n\n\n**Handige links**\n\n* [Documentatie](https://zaakgerichtwerken.vng.cloud/standaard)\n* [Zaakgericht werken](https://zaakgerichtwerken.vng.cloud)\n", + "event": [ + { + "listen": "prerequest", + "script": { + "type": "text/javascript", + "exec": [ + "" + ] + } + }, + { + "listen": "test", + "script": { + "type": "text/javascript", + "exec": [ + "" + ] + } + } + ] + }, + { + "name": "BRC", + "item": [ + { + "name": "besluiten", + "item": [ + { + "name": "Alle BESLUITen opvragen.", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "pm.test(\"Alle BESLUITen opvragen geeft 200\", function() {", + " pm.response.to.have.status(200);", + "});" + ], + "type": "text/javascript" + } + } + ], + "request": { + "method": "GET", + "header": [ + { + "key": "Accept", + "value": "application/json" + }, + { + "key": "Content-Type", + "value": "application/json" + } + ], + "url": { + "raw": "{{brc_url}}/besluiten?identificatie=rol&verantwoordelijkeOrganisatie=000000000&besluittype={{besluittype_url}}&zaak={{global_zaak_url}}&page=1", + "host": [ + "{{brc_url}}" + ], + "path": [ + "besluiten" + ], + "query": [ + { + "key": "identificatie", + "value": "rol" + }, + { + "key": "verantwoordelijkeOrganisatie", + "value": "000000000" + }, + { + "key": "besluittype", + "value": "{{besluittype_url}}" + }, + { + "key": "zaak", + "value": "{{global_zaak_url}}" + }, + { + "key": "page", + "value": "1" + } + ] + }, + "description": "Deze lijst kan gefilterd wordt met query-string parameters." + }, + "response": [] + }, + { + "name": "Maak een BESLUIT aan.", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "pm.test(\"Maak een BESLUIT aan geeft 201\", function() {", + " pm.response.to.have.status(201);", + "});", + "", + "if(pm.response.code == 201) {", + " pm.environment.set(\"created_besluit_url\", pm.response.json().url);", + " pm.environment.set(\"besluit_body\", pm.request.body.raw);", + "}" + ], + "type": "text/javascript", + "packages": {} + } + } + ], + "request": { + "method": "POST", + "header": [ + { + "key": "Accept", + "value": "application/json" + }, + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "X-NLX-Request-Application-Id", + "value": "{{X-NLX-Request-Application-Id}}" + }, + { + "key": "X-NLX-Request-User-Id", + "value": "{{X-NLX-Request-User-Id}}" + }, + { + "key": "X-Audit-Toelichting", + "value": "{{X-Audit-Toelichting}}" + } + ], + "body": { + "mode": "raw", + "raw": "{\n \"verantwoordelijkeOrganisatie\": \"000000000\",\n \"besluittype\": \"{{besluittype_url}}\",\n \"datum\": \"2019-01-01\",\n \"ingangsdatum\": \"2018-01-01\"\n}" + }, + "url": { + "raw": "{{brc_url}}/besluiten", + "host": [ + "{{brc_url}}" + ], + "path": [ + "besluiten" + ] + }, + "description": "Indien geen identificatie gegeven is, dan wordt deze automatisch\ngegenereerd.\n\nEr wordt gevalideerd op:\n- uniciteit van `verantwoorlijkeOrganisatie` + `identificatie`\n- geldigheid `verantwoorlijkeOrganisatie` RSIN\n- geldigheid `besluittype` URL\n- geldigheid `zaak` URL\n- `datum` in het verleden of nu" + }, + "response": [] + }, + { + "name": "Alle audit trail regels behorend bij het BESLUIT.", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "pm.test(\"Alle audit trail regels behorend bij het BESLUIT geeft 200\", function() {", + " pm.response.to.have.status(200);", + "});", + "", + "if(pm.response.code == 200) {", + " pm.environment.set(\"audittrail_uuid\", pm.response.json()[0].uuid);", + "}" + ], + "type": "text/javascript", + "packages": {} + } + } + ], + "request": { + "method": "GET", + "header": [ + { + "key": "Accept", + "value": "application/json" + }, + { + "key": "Content-Type", + "value": "application/json" + } + ], + "url": { + "raw": "{{created_besluit_url}}/audittrail", + "host": [ + "{{created_besluit_url}}" + ], + "path": [ + "audittrail" + ] + }, + "description": "Alle audit trail regels behorend bij het BESLUIT." + }, + "response": [] + }, + { + "name": "Een specifieke audit trail regel opvragen.", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "pm.test(\"Een specifieke audit trail regel opvragen geeft 200\", function() {", + " pm.response.to.have.status(200);", + "});" + ], + "type": "text/javascript" + } + } + ], + "request": { + "method": "GET", + "header": [ + { + "key": "Accept", + "value": "application/json" + }, + { + "key": "Content-Type", + "value": "application/json" + } + ], + "url": { + "raw": "{{created_besluit_url}}/audittrail/{{audittrail_uuid}}", + "host": [ + "{{created_besluit_url}}" + ], + "path": [ + "audittrail", + "{{audittrail_uuid}}" + ] + }, + "description": "Een specifieke audit trail regel opvragen." + }, + "response": [] + }, + { + "name": "Een specifiek BESLUIT opvragen.", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "pm.test(\"Een specifiek BESLUIT opvragen geeft 200\", function() {", + " pm.response.to.have.status(200);", + "});" + ], + "type": "text/javascript" + } + } + ], + "request": { + "method": "GET", + "header": [ + { + "key": "Accept", + "value": "application/json" + }, + { + "key": "Content-Type", + "value": "application/json" + } + ], + "url": { + "raw": "{{created_besluit_url}}", + "host": [ + "{{created_besluit_url}}" + ] + }, + "description": "Een specifiek BESLUIT opvragen." + }, + "response": [] + }, + { + "name": "Werk een BESLUIT in zijn geheel bij.", + "event": [ + { + "listen": "prerequest", + "script": { + "exec": [ + "// Retrieve the Besluit body template and modify as needed", + "var body = JSON.parse(pm.environment.get(\"besluit_body\"));", + "pm.environment.set(\"toelichting\", \"aangepaste toelichting\");", + "body.toelichting = pm.environment.get(\"toelichting\");", + "", + "// Store the modified Besluit body, allowing it to be used in the main request", + "pm.environment.set(\"request_body\", JSON.stringify(body));" + ], + "type": "text/javascript", + "packages": {} + } + }, + { + "listen": "test", + "script": { + "exec": [ + "pm.test(\"Werk een BESLUIT in zijn geheel bij geeft 200\", function() {", + " pm.response.to.have.status(200);", + "});", + "" + ], + "type": "text/javascript", + "packages": {} + } + } + ], + "request": { + "method": "PUT", + "header": [ + { + "key": "Accept", + "value": "application/json" + }, + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "X-NLX-Request-Application-Id", + "value": "{{X-NLX-Request-Application-Id}}" + }, + { + "key": "X-NLX-Request-User-Id", + "value": "{{X-NLX-Request-User-Id}}" + }, + { + "key": "X-Audit-Toelichting", + "value": "{{X-Audit-Toelichting}}" + } + ], + "body": { + "mode": "raw", + "raw": "{{request_body}}" + }, + "url": { + "raw": "{{created_besluit_url}}", + "host": [ + "{{created_besluit_url}}" + ] + }, + "description": "Er wordt gevalideerd op:\n- uniciteit van `verantwoorlijkeOrganisatie` + `identificatie`\n- geldigheid `verantwoorlijkeOrganisatie` RSIN\n- geldigheid `besluittype` URL\n- geldigheid `zaak` URL\n- `datum` in het verleden of nu" + }, + "response": [] + }, + { + "name": "Werk een BESLUIT deels bij.", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "pm.test(\"Werk een BESLUIT in zijn geheel bij geeft 200\", function() {", + " pm.response.to.have.status(200);", + "});", + "" + ], + "type": "text/javascript" + } + } + ], + "request": { + "method": "PATCH", + "header": [ + { + "key": "Accept", + "value": "application/json" + }, + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "X-NLX-Request-Application-Id", + "value": "{{X-NLX-Request-Application-Id}}" + }, + { + "key": "X-NLX-Request-User-Id", + "value": "{{X-NLX-Request-User-Id}}" + }, + { + "key": "X-Audit-Toelichting", + "value": "{{X-Audit-Toelichting}}" + } + ], + "body": { + "mode": "raw", + "raw": "{\n\t\"toelichting\": \"aangepast2\"\n}" + }, + "url": { + "raw": "{{created_besluit_url}}", + "host": [ + "{{created_besluit_url}}" + ] + }, + "description": "Er wordt gevalideerd op:\n- uniciteit van `verantwoorlijkeOrganisatie` + `identificatie`\n- geldigheid `verantwoorlijkeOrganisatie` RSIN\n- geldigheid `besluittype` URL\n- geldigheid `zaak` URL\n- `datum` in het verleden of nu" + }, + "response": [] + }, + { + "name": "Verwijder een BESLUIT.", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "pm.test(\"Verwijder een BESLUIT geeft 204\", function() {", + " pm.response.to.have.status(204);", + "});" + ], + "type": "text/javascript" + } + } + ], + "request": { + "method": "DELETE", + "header": [ + { + "key": "Accept", + "value": "application/json" + }, + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "X-NLX-Request-Application-Id", + "value": "{{X-NLX-Request-Application-Id}}" + }, + { + "key": "X-NLX-Request-User-Id", + "value": "{{X-NLX-Request-User-Id}}" + }, + { + "key": "X-Audit-Toelichting", + "value": "{{X-Audit-Toelichting}}" + } + ], + "url": { + "raw": "{{created_besluit_url}}", + "host": [ + "{{created_besluit_url}}" + ] + }, + "description": "Verwijder een BESLUIT samen met alle gerelateerde resources binnen deze API.\n\n**De gerelateerde resources zijn**\n- `BESLUITINFORMATIEOBJECT`\n- audit trail regels" + }, + "response": [] + } + ], + "description": "Folder for besluiten" + }, + { + "name": "besluitinformatieobjecten", + "item": [ + { + "name": "Alle BESLUIT-INFORMATIEOBJECT relaties opvragen.", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "pm.test(\"Alle BESLUIT-INFORMATIEOBJECT relaties opvragen geeft 200\", function() {", + " pm.response.to.have.status(200);", + "});" + ], + "type": "text/javascript" + } + } + ], + "request": { + "method": "GET", + "header": [ + { + "key": "Accept", + "value": "application/json" + }, + { + "key": "Content-Type", + "value": "application/json" + } + ], + "url": { + "raw": "{{brc_url}}/besluitinformatieobjecten?besluit={{besluit_url}}&informatieobject={{informatieobject_url}}", + "host": [ + "{{brc_url}}" + ], + "path": [ + "besluitinformatieobjecten" + ], + "query": [ + { + "key": "besluit", + "value": "{{besluit_url}}" + }, + { + "key": "informatieobject", + "value": "{{informatieobject_url}}" + } + ] + }, + "description": "Deze lijst kan gefilterd wordt met query-string parameters." + }, + "response": [] + }, + { + "name": "Maak een BESLUIT-INFORMATIEOBJECT relatie aan.", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "pm.test(\"Maak een BESLUIT-INFORMATIEOBJECT relatie aan geeft 201\", function() {", + " pm.response.to.have.status(201);", + "});", + "", + "if(pm.response.code == 201) {", + " pm.globals.set(\"bio_url\", pm.response.json().url);", + " pm.globals.set(\"bio_body\", pm.request.body.raw);", + "}" + ], + "type": "text/javascript" + } + } + ], + "request": { + "method": "POST", + "header": [ + { + "key": "Accept", + "value": "application/json" + }, + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "X-NLX-Request-Application-Id", + "value": "{{X-NLX-Request-Application-Id}}" + }, + { + "key": "X-NLX-Request-User-Id", + "value": "{{X-NLX-Request-User-Id}}" + }, + { + "key": "X-Audit-Toelichting", + "value": "{{X-Audit-Toelichting}}" + } + ], + "body": { + "mode": "raw", + "raw": "{\n\t\"besluit\": \"{{besluit_url}}\",\n\t\"informatieobject\": \"{{informatieobject_url}}\"\n}" + }, + "url": { + "raw": "{{brc_url}}/besluitinformatieobjecten", + "host": [ + "{{brc_url}}" + ], + "path": [ + "besluitinformatieobjecten" + ] + }, + "description": "Registreer een INFORMATIEOBJECT bij een BESLUIT. Er worden twee types van\nrelaties met andere objecten gerealiseerd:\n\n**Er wordt gevalideerd op**\n- geldigheid `besluit` URL\n- geldigheid `informatieobject` URL\n- de combinatie `informatieobject` en `besluit` moet uniek zijn\n\n**Opmerkingen**\n- De `registratiedatum` wordt door het systeem op 'NU' gezet. De\n `aardRelatie` wordt ook door het systeem gezet.\n- Bij het aanmaken wordt ook in de Documenten API de gespiegelde relatie\n aangemaakt, echter zonder de relatie-informatie." + }, + "response": [] + }, + { + "name": "Een specifieke BESLUIT-INFORMATIEOBJECT relatie opvragen.", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "pm.test(\"Alle BESLUIT-INFORMATIEOBJECT relaties opvragen geeft 200\", function() {", + " pm.response.to.have.status(200);", + "});" + ], + "type": "text/javascript" + } + } + ], + "request": { + "method": "GET", + "header": [ + { + "key": "Accept", + "value": "application/json" + }, + { + "key": "Content-Type", + "value": "application/json" + } + ], + "url": { + "raw": "{{bio_url}}", + "host": [ + "{{bio_url}}" + ] + }, + "description": "Een specifieke BESLUIT-INFORMATIEOBJECT relatie opvragen." + }, + "response": [] + }, + { + "name": "Verwijder een BESLUIT-INFORMATIEOBJECT relatie.", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "pm.test(\"Verwijder een BESLUIT-INFORMATIEOBJECT relatie geeft 204\", function() {", + " pm.response.to.have.status(204);", + "});" + ], + "type": "text/javascript" + } + } + ], + "request": { + "method": "DELETE", + "header": [ + { + "key": "Accept", + "value": "application/json" + }, + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "X-NLX-Request-Application-Id", + "value": "{{X-NLX-Request-Application-Id}}" + }, + { + "key": "X-NLX-Request-User-Id", + "value": "{{X-NLX-Request-User-Id}}" + }, + { + "key": "X-Audit-Toelichting", + "value": "{{X-Audit-Toelichting}}" + } + ], + "url": { + "raw": "{{bio_url}}", + "host": [ + "{{bio_url}}" + ] + }, + "description": "Verwijder een BESLUIT-INFORMATIEOBJECT relatie." + }, + "response": [] + } + ], + "description": "Folder for besluitinformatieobjecten" + } + ], + "description": "Een API om een besluitregistratiecomponent (BRC) te benaderen.\n\nEen BESLUIT wordt veelal schriftelijk vastgelegd maar dit is niet\nnoodzakelijk. Omgekeerd kan het voorkomen dat in een INFORMATIEOBJECT meerdere\nbesluiten vastgelegd zijn. Vandaar de N:M-relatie naar INFORMATIEOBJECT. Een\nbesluit komt voort uit een zaak van de zaakbehandelende organisatie dan wel is\neen besluit van een andere organisatie dat het onderwerp (object) is van een\nzaak van de zaakbehandelende organisatie. BESLUIT heeft dan ook een optionele\nrelatie met de ZAAK waarvan het een uitkomst is.\n\nDe typering van BESLUITen is in de Catalogi API (ZTC) ondergebracht in de vorm \nvan BESLUITTYPEn.\n\n**Afhankelijkheden**\n\nDeze API is afhankelijk van:\n\n* Catalogi API\n* Notificaties API\n* Documenten API *(optioneel)*\n* Zaken API *(optioneel)*\n* Autorisaties API *(optioneel)*\n\n**Autorisatie**\n\nDeze API vereist autorisatie. Je kan de\n[token-tool](https://zaken-auth.vng.cloud/) gebruiken om JWT-tokens te\ngenereren.\n\n**Notificaties**\n\nDeze API publiceert notificaties op het kanaal `besluiten`.\n\n**Handige links**\n\n* [Documentatie](https://zaakgerichtwerken.vng.cloud/standaard)\n* [Zaakgericht werken](https://zaakgerichtwerken.vng.cloud)\n", + "event": [ + { + "listen": "prerequest", + "script": { + "type": "text/javascript", + "exec": [ + "" + ] + } + }, + { + "listen": "test", + "script": { + "type": "text/javascript", + "exec": [ + "" + ] + } + } + ] + }, + { + "name": "NRC", + "item": [ + { + "name": "abonnement", + "item": [ + { + "name": "Alle ABONNEMENTen opvragen.", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "pm.test(\"Alle ABONNEMENTen opvragen geeft 200\", function() {", + " pm.response.to.have.status(200);", + "});", + "", + "postman.setNextRequest(\"Alle KANAALen opvragen.\");" + ], + "type": "text/javascript" + } + } + ], + "request": { + "method": "GET", + "header": [ + { + "key": "Accept", + "value": "application/json" + }, + { + "key": "Content-Type", + "value": "application/json" + } + ], + "url": { + "raw": "{{nrc_url}}/abonnement", + "host": [ + "{{nrc_url}}" + ], + "path": [ + "abonnement" + ] + }, + "description": "Alle ABONNEMENTen opvragen." + }, + "response": [] + }, + { + "name": "Maak een ABONNEMENT aan.", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "pm.test(\"Maak een ABONNEMENT aan geeft 201\", function() {", + " pm.response.to.have.status(201);", + "});", + "", + "if(pm.response.code == 201) {", + " pm.globals.set(\"created_abonnement_url\", pm.response.json().url);", + " pm.globals.set(\"abonnement_body\", pm.request.body.raw);", + "}" + ], + "type": "text/javascript" + } + } + ], + "request": { + "method": "POST", + "header": [ + { + "key": "Accept", + "value": "application/json" + }, + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n \"callbackUrl\": \"{{mock_url}}/callback\",\n \"auth\": \"Bearer token\",\n \"kanalen\": [\n\t\t{\n\t \"filters\": \n {},\n \"naam\": \"zaken\"\n }\n ]\n\n}\n" + }, + "url": { + "raw": "{{nrc_url}}/abonnement", + "host": [ + "{{nrc_url}}" + ], + "path": [ + "abonnement" + ] + }, + "description": "Maak een ABONNEMENT aan." + }, + "response": [] + }, + { + "name": "Een specifiek ABONNEMENT opvragen.", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "pm.test(\"Een specifiek ABONNEMENT opvragen geeft 200\", function() {", + " pm.response.to.have.status(200);", + "});" + ], + "type": "text/javascript" + } + } + ], + "request": { + "method": "GET", + "header": [ + { + "key": "Accept", + "value": "application/json" + }, + { + "key": "Content-Type", + "value": "application/json" + } + ], + "url": { + "raw": "{{created_abonnement_url}}", + "host": [ + "{{created_abonnement_url}}" + ] + }, + "description": "Een specifiek ABONNEMENT opvragen." + }, + "response": [] + }, + { + "name": "Werk een ABONNEMENT in zijn geheel bij.", + "event": [ + { + "listen": "prerequest", + "script": { + "exec": [ + "// Retrieve the Abonnement body template and modify as needed", + "var body = JSON.parse(pm.globals.get(\"abonnement_body\"));", + "pm.globals.set(\"kanalen\", [{\"naam\": \"documenten\", \"filters\": {}}]);", + "body.kanalen = pm.globals.get(\"kanalen\");", + "", + "// Store the modified Zaak Abonnement, allowing it to be used in the main request", + "pm.globals.set(\"request_body\", JSON.stringify(body));" + ], + "type": "text/javascript" + } + }, + { + "listen": "test", + "script": { + "exec": [ + "pm.test(\"Werk een ABONNEMENT in zijn geheel bij geeft 200\", function() {", + " pm.response.to.have.status(200);", + "});", + "" + ], + "type": "text/javascript" + } + } + ], + "request": { + "method": "PUT", + "header": [ + { + "key": "Accept", + "value": "application/json" + }, + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{{request_body}}" + }, + "url": { + "raw": "{{created_abonnement_url}}", + "host": [ + "{{created_abonnement_url}}" + ] + }, + "description": "Werk een ABONNEMENT in zijn geheel bij." + }, + "response": [] + }, + { + "name": "Werk een ABONNEMENT deels bij.", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "pm.test(\"Werk een ABONNEMENT deels bij geeft 200\", function() {", + " pm.response.to.have.status(200);", + "});", + "" + ], + "type": "text/javascript" + } + } + ], + "request": { + "method": "PATCH", + "header": [ + { + "key": "Accept", + "value": "application/json" + }, + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n\t\"kanalen\": [\n\t\t{\n\t\t\t\"naam\": \"zaken\",\n\t\t\t\"filters\": {}\n\t\t}\t\n\t]\n}" + }, + "url": { + "raw": "{{created_abonnement_url}}", + "host": [ + "{{created_abonnement_url}}" + ] + }, + "description": "Werk een ABONNEMENT deels bij." + }, + "response": [] + }, + { + "name": "Verwijder een ABONNEMENT.", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "pm.test(\"Verwijder een ABONNEMENT geeft 204\", function() {", + " pm.response.to.have.status(204);", + "});", + "" + ], + "type": "text/javascript" + } + } + ], + "request": { + "method": "DELETE", + "header": [ + { + "key": "Accept", + "value": "application/json" + }, + { + "key": "Content-Type", + "value": "application/json" + } + ], + "url": { + "raw": "{{created_abonnement_url}}", + "host": [ + "{{created_abonnement_url}}" + ] + }, + "description": "Verwijder een ABONNEMENT." + }, + "response": [] + } + ], + "description": "Folder for abonnement" + }, + { + "name": "kanaal", + "item": [ + { + "name": "Alle KANAALen opvragen.", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "pm.test(\"Alle KANAALen opvragen geeft 200\", function() {", + " pm.response.to.have.status(200);", + "});", + "", + "if(pm.response.code == 200) {", + " if(pm.response.json().length) {", + " pm.globals.set(\"kanaal_url\", pm.response.json()[0].url);", + " postman.setNextRequest(\"Een specifiek KANAAL opvragen.\");", + " }", + "}" + ], + "type": "text/javascript" + } + } + ], + "request": { + "method": "GET", + "header": [ + { + "key": "Accept", + "value": "application/json" + }, + { + "key": "Content-Type", + "value": "application/json" + } + ], + "url": { + "raw": "{{nrc_url}}/kanaal?naam=testkanaal", + "host": [ + "{{nrc_url}}" + ], + "path": [ + "kanaal" + ], + "query": [ + { + "key": "naam", + "value": "testkanaal" + } + ] + }, + "description": "Alle KANAALen opvragen." + }, + "response": [] + }, + { + "name": "Maak een KANAAL aan.", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "pm.test(\"Maak een ABONNEMENT aan geeft 201\", function() {", + " pm.response.to.have.status(201);", + "});", + "", + "if(pm.response.code == 201) {", + " pm.globals.set(\"kanaal_url\", pm.response.json().url);", + "}" + ], + "type": "text/javascript" + } + } + ], + "request": { + "method": "POST", + "header": [ + { + "key": "Accept", + "value": "application/json" + }, + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n\t\"naam\": \"testkanaal\",\n\t\"documentatieLink\": \"https://example.com\",\n\t\"filters\": []\n}" + }, + "url": { + "raw": "{{nrc_url}}/kanaal", + "host": [ + "{{nrc_url}}" + ], + "path": [ + "kanaal" + ] + }, + "description": "Maak een KANAAL aan." + }, + "response": [] + }, + { + "name": "Een specifiek KANAAL opvragen.", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "pm.test(\"Een specifiek KANAAL opvragen geeft 200\", function() {", + " pm.response.to.have.status(200);", + "});" + ], + "type": "text/javascript" + } + } + ], + "request": { + "method": "GET", + "header": [ + { + "key": "Accept", + "value": "application/json" + }, + { + "key": "Content-Type", + "value": "application/json" + } + ], + "url": { + "raw": "{{kanaal_url}}", + "host": [ + "{{kanaal_url}}" + ] + }, + "description": "Een specifiek KANAAL opvragen." + }, + "response": [] + } + ], + "description": "Folder for kanaal" + }, + { + "name": "notificaties", + "item": [ + { + "name": "Publiceer een notificatie.", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "pm.test(\"Publiceer een NOTIFICATIE geeft 201\", function() {", + " pm.response.to.have.status(201);", + "});" + ], + "type": "text/javascript" + } + } + ], + "request": { + "method": "POST", + "header": [ + { + "key": "Accept", + "value": "application/json" + }, + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n\t\"kanaal\": \"testkanaal\",\n\t\"hoofdObject\": \"https://example.com\",\n\t\"resource\": \"test\",\n\t\"resourceUrl\": \"https://example.com\",\n\t\"actie\": \"CREATE\",\n\t\"aanmaakdatum\": \"2019-01-01T12:00:00Z\",\n\t\"kenmerken\": {}\n}" + }, + "url": { + "raw": "{{nrc_url}}/notificaties", + "host": [ + "{{nrc_url}}" + ], + "path": [ + "notificaties" + ] + }, + "description": "Publiceer een notificatie." + }, + "response": [] + } + ], + "description": "Folder for notificaties" + } + ], + "description": "Een API om een notificatierouteringscomponent te benaderen.\n\nDeze API voorziet in drie functionaliteiten voor notificaties:\n\n* registreren van kanalen (=exchanges)\n* abonneren van consumers op kanalen\n* ontvangen en routeren van berichten\n\n**Registreren van kanalen**\n\nEen component dekt een bepaald domein af, en heeft het recht om hiervoor een\nkanaal te registeren waarop eigen notificaties verstuurd worden. Een kanaal\nis uniek in naam. Een component dient dus te controleren of een kanaal al\nbestaat voor het registreren. Bij het registeren van kanalen wordt een\ndocumentatielink verwacht die beschrijft welke events en kenmerken van\ntoepassing zijn op het kanaal.\n\n**Abonneren**\n\nConsumers kunnen een abonnement aanmaken voor een of meerdere kanalen. Per\nkanaal kan op de kenmerken van het kanaal gefilterd worden. Consumers dienen\nzelf een endpoint te bouwen waarop berichten afgeleverd (kunnen) worden.\n\n**Routeren van berichten**\n\nBronnen sturen berichten naar deze API, die vervolgens de berichten onveranderd\nrouteert naar alle abonnees.\n\n**Afhankelijkheden**\n\nDeze API is afhankelijk van:\n\n* Autorisaties API\n\n**Autorisatie**\n\nDeze API vereist autorisatie. Je kan de\n[token-tool](https://zaken-auth.vng.cloud/) gebruiken om JWT-tokens te\ngenereren.\n\n**Handige links**\n\n* [Documentatie](https://zaakgerichtwerken.vng.cloud/standaard)\n* [Zaakgericht werken](https://zaakgerichtwerken.vng.cloud)\n", + "event": [ + { + "listen": "prerequest", + "script": { + "type": "text/javascript", + "exec": [ + "" + ] + } + }, + { + "listen": "test", + "script": { + "type": "text/javascript", + "exec": [ + "" + ] + } + } + ] + }, + { + "name": "AC", + "item": [ + { + "name": "applicaties", + "item": [ + { + "name": "Geef een collectie van applicaties, met ingesloten autorisaties.", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "pm.test(\"Geef een collectie van applicaties, met ingesloten autorisaties geeft 200\", function() {", + " pm.response.to.have.status(200);", + "});" + ], + "type": "text/javascript" + } + } + ], + "request": { + "method": "GET", + "header": [ + { + "key": "Accept", + "value": "application/json" + }, + { + "key": "Content-Type", + "value": "application/json" + } + ], + "url": { + "raw": "{{ac_url}}/applicaties?clientIds=test_id&page=1", + "host": [ + "{{ac_url}}" + ], + "path": [ + "applicaties" + ], + "query": [ + { + "key": "clientIds", + "value": "test_id" + }, + { + "key": "page", + "value": "1" + } + ] + }, + "description": "De autorisaties zijn gedefinieerd op een specifieke component, bijvoorbeeld\nhet ZRC, en geven aan welke scopes van toepassing zijn voor dit component.\nDe waarde van de `component` bepaalt ook welke verdere informatie ingesloten\nis, zoals `zaaktype` en `maxVertrouwelijkheidaanduiding` voor het ZRC.\n\nIn dit voorbeeld gelden er dus zaaktype-specifieke scopes en mogen zaken\nvan het betreffende zaaktype met een striktere vertrouwelijkheidaanduiding\ndan `maxVertrouwelijkheidaanduiding` niet ontsloten worden.\n\nDe collectie kan doorzocht worden met de ``clientIds`` query parameter." + }, + "response": [] + }, + { + "name": "Registreer een applicatie met een bepaalde set van autorisaties.", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "pm.test(\"Registreer een applicatie met een bepaalde set van autorisaties geeft 201\", function() {", + " pm.response.to.have.status(201);", + "});", + "", + "if(pm.response.code == 201) {", + " pm.globals.set(\"created_applicatie_url\", pm.response.json().url);", + " pm.globals.set(\"applicatie_body\", pm.request.body.raw);", + " pm.globals.set(\"applicatie_clientId\", pm.response.json().clientIds[0]);", + "}" + ], + "type": "text/javascript" + } + } + ], + "request": { + "method": "POST", + "header": [ + { + "key": "Accept", + "value": "application/json" + }, + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n\t\"clientIds\": [\n\t\t\"test_id_oas_tests\"\n\t],\n\t\"label\": \"Test applicatie\",\n\t\"autorisaties\": [\n {\n \"component\": \"zrc\",\n \"componentWeergave\": \"Zaakregistratiecomponent\",\n \"scopes\": [\n \"zaken.lezen\"\n ],\n \"zaaktype\": \"{{zaaktype_url}}\",\n \"maxVertrouwelijkheidaanduiding\": \"openbaar\"\n }\n ]\n}" + }, + "url": { + "raw": "{{ac_url}}/applicaties", + "host": [ + "{{ac_url}}" + ], + "path": [ + "applicaties" + ] + }, + "description": "Indien `heeftAlleAutorisaties` gezet is, dan moet je\n`autorisaties` leeg (of weg) laten.\n\nIndien je `autorisaties` meegeeft, dan moet `heeftAlleAutorisaties` de\nwaarde `false` hebben of weggelaten worden.\n\nNa het aanmaken wordt een notificatie verstuurd." + }, + "response": [] + }, + { + "name": "Vraag een applicatie op, op basis van clientId", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "pm.test(\"Vraag een applicatie op, op basis van clientId geeft 200\", function() {", + " pm.response.to.have.status(200);", + "});" + ], + "type": "text/javascript" + } + } + ], + "request": { + "method": "GET", + "header": [ + { + "key": "Accept", + "value": "application/json" + }, + { + "key": "Content-Type", + "value": "application/json" + } + ], + "url": { + "raw": "{{ac_url}}/applicaties/consumer?clientId={{applicatie_clientId}}", + "host": [ + "{{ac_url}}" + ], + "path": [ + "applicaties", + "consumer" + ], + "query": [ + { + "key": "clientId", + "value": "{{applicatie_clientId}}" + } + ] + }, + "description": "Gegeven een `clientId`, via de query string, zoek de bijbehorende applicatie\nop. Het antwoord bevat de applicatie met ingesloten autorisaties." + }, + "response": [] + }, + { + "name": "Vraag een applicatie op, met ingesloten autorisaties.", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "pm.test(\"Vraag een applicatie op, met ingesloten autorisaties geeft 200\", function() {", + " pm.response.to.have.status(200);", + "});" + ], + "type": "text/javascript" + } + } + ], + "request": { + "method": "GET", + "header": [ + { + "key": "Accept", + "value": "application/json" + }, + { + "key": "Content-Type", + "value": "application/json" + } + ], + "url": { + "raw": "{{created_applicatie_url}}", + "host": [ + "{{created_applicatie_url}}" + ] + }, + "description": "De autorisaties zijn gedefinieerd op een specifieke component, bijvoorbeeld\nhet ZRC, en geven aan welke scopes van toepassing zijn voor dit component.\nDe waarde van de `component` bepaalt ook welke verdere informatie ingesloten\nis, zoals `zaaktype` en `maxVertrouwelijkheidaanduiding` voor het ZRC.\n\nIn dit voorbeeld gelden er dus zaaktype-specifieke scopes en mogen zaken\nvan het betreffende zaaktype met een striktere vertrouwelijkheidaanduiding\ndan `maxVertrouwelijkheidaanduiding` niet ontsloten worden." + }, + "response": [] + }, + { + "name": "Werk de applicatie bij.", + "event": [ + { + "listen": "prerequest", + "script": { + "exec": [ + "// Retrieve the Zaak body template and modify as needed", + "var body = JSON.parse(pm.globals.get(\"applicatie_body\"));", + "pm.globals.set(\"scope\", \"zaken.aanmaken\");", + "body.autorisaties[0].scopes.push(pm.globals.get(\"scope\"));", + "", + "// Store the modified Zaak body, allowing it to be used in the main request", + "pm.globals.set(\"request_body\", JSON.stringify(body));" + ], + "type": "text/javascript" + } + }, + { + "listen": "test", + "script": { + "exec": [ + "pm.test(\"Werk de applicatie bij geeft 200\", function() {", + " pm.response.to.have.status(200);", + "});", + "" + ], + "type": "text/javascript" + } + } + ], + "request": { + "method": "PUT", + "header": [ + { + "key": "Accept", + "value": "application/json" + }, + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{{request_body}}" + }, + "url": { + "raw": "{{created_applicatie_url}}", + "host": [ + "{{created_applicatie_url}}" + ] + }, + "description": "Indien `heeftAlleAutorisaties` gezet is, dan moet je\n`autorisaties` leeg (of weg) laten.\n\nIndien je `autorisaties` meegeeft, dan moet `heeftAlleAutorisaties` de\nwaarde `false` hebben of weggelaten worden.\n\nNa het bijwerken wordt een notificatie verstuurd." + }, + "response": [] + }, + { + "name": "Werk (een deel van) de applicatie bij.", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "pm.test(\"Werk (een deel van) de applicatie bij geeft 200\", function() {", + " pm.response.to.have.status(200);", + "});", + "" + ], + "type": "text/javascript" + } + } + ], + "request": { + "method": "PATCH", + "header": [ + { + "key": "Accept", + "value": "application/json" + }, + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n\t\"autorisaties\": [\n\t\t{\n\t\t\t\"component\": \"zrc\",\n \"componentWeergave\": \"Zaakregistratiecomponent\",\n \"scopes\": [\n \"zaken.lezen\",\n \"zaken.aanmaken\"\n ],\n \"zaaktype\": \"{{zaaktype_url}}\",\n \"maxVertrouwelijkheidaanduiding\": \"vertrouwelijk\"\n\t\t}\t\n\t]\n}" + }, + "url": { + "raw": "{{created_applicatie_url}}", + "host": [ + "{{created_applicatie_url}}" + ] + }, + "description": "Indien `autorisaties` meegegeven is, dan worden de bestaande `autorisaties`\nvervangen met de nieuwe set van `autorisaties`.\n\nIndien `heeftAlleAutorisaties` gezet is, dan moet je\n`autorisaties` leeg (of weg) laten.\n\nIndien je `autorisaties` meegeeft, dan moet `heeftAlleAutorisaties` de\nwaarde `false` hebben of weggelaten worden.\n\nNa het bijwerken wordt een notificatie verstuurd." + }, + "response": [] + }, + { + "name": "Verwijder een applicatie met de bijhorende autorisaties.", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "pm.test(\"Verwijder een applicatie met de bijhorende autorisaties geeft 204\", function() {", + " pm.response.to.have.status(204);", + "});" + ], + "type": "text/javascript" + } + } + ], + "request": { + "method": "DELETE", + "header": [ + { + "key": "Accept", + "value": "application/json" + }, + { + "key": "Content-Type", + "value": "application/json" + } + ], + "url": { + "raw": "{{created_applicatie_url}}", + "host": [ + "{{created_applicatie_url}}" + ] + }, + "description": "Na het verwijderen wordt een notificatie verstuurd." + }, + "response": [] + } + ], + "description": "Folder for applicaties" + } + ], + "description": "Een API om een autorisatiecomponent te benaderen.\n\nDe `AUTORISATIE` is het kernobject in deze API. Autorisaties worden toegekend\naan applicaties. Een applicatie is een representatie van een (web) app die\ncommuniceert met de API van (andere) componenten, zoals het ZRC, DRC, ZTC en\nBRC.\n\nDeze API laat toe om autorisaties van een (taak)applicatie te beheren en uit\nte lezen.\n\n**Autorisatie**\n\nDeze API vereist autorisatie. Je kan de\n[token-tool](https://ref.tst.vng.cloud/tokens/) gebruiken om JWT-tokens te\ngenereren.\n\n**Notificaties**\n\nDeze component publiceert notificaties op het kanaal `TODO`.\n\n**Handige links**\n\n* [Aan de slag](https://ref.tst.vng.cloud/ontwikkelaars/)\n* [\"Papieren\" standaard](https://ref.tst.vng.cloud/standaard/)\n", + "event": [ + { + "listen": "prerequest", + "script": { + "type": "text/javascript", + "exec": [ + "" + ] + } + }, + { + "listen": "test", + "script": { + "type": "text/javascript", + "exec": [ + "" + ] + } + } + ] + }, + { + "name": "tearDown", + "item": [ + { + "name": "Delete Zaak", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "pm.globals.unset(\"global_zaak_url\");" + ], + "type": "text/javascript" + } + } + ], + "request": { + "method": "DELETE", + "header": [ + { + "key": "Accept-Crs", + "value": "EPSG:4326", + "type": "text" + } + ], + "body": { + "mode": "raw", + "raw": "" + }, + "url": { + "raw": "{{global_zaak_url}}", + "host": [ + "{{global_zaak_url}}" + ] + } + }, + "response": [] + }, + { + "name": "Delete EnkelvoudigInformatieObject", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "pm.globals.unset(\"informatieobject_url\");" + ], + "type": "text/javascript" + } + } + ], + "request": { + "method": "DELETE", + "header": [], + "body": { + "mode": "raw", + "raw": "" + }, + "url": { + "raw": "{{informatieobject_url}}", + "host": [ + "{{informatieobject_url}}" + ] + } + }, + "response": [] + }, + { + "name": "Delete EnkelvoudigInformatieObject indicatieGebruiksrecht null", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "pm.globals.unset(\"informatieobject_gebruiksrecht_null_url\");" + ], + "type": "text/javascript" + } + } + ], + "request": { + "method": "DELETE", + "header": [], + "body": { + "mode": "raw", + "raw": "" + }, + "url": { + "raw": "{{informatieobject_gebruiksrecht_null_url}}", + "host": [ + "{{informatieobject_gebruiksrecht_null_url}}" + ] + } + }, + "response": [] + }, + { + "name": "Delete Resultaattype", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "pm.globals.unset(\"resultaattype_url\");" + ], + "type": "text/javascript" + } + } + ], + "request": { + "method": "DELETE", + "header": [], + "body": { + "mode": "raw", + "raw": "" + }, + "url": { + "raw": "{{resultaattype_url}}", + "host": [ + "{{resultaattype_url}}" + ] + } + }, + "response": [] + }, + { + "name": "Delete Zaaktype", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "pm.globals.unset(\"zaaktype_url\");" + ], + "type": "text/javascript" + } + } + ], + "request": { + "method": "DELETE", + "header": [], + "body": { + "mode": "raw", + "raw": "" + }, + "url": { + "raw": "{{zaaktype_url}}", + "host": [ + "{{zaaktype_url}}" + ] + } + }, + "response": [] + }, + { + "name": "Delete Besluittype", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "pm.globals.unset(\"besluittype_url\");" + ], + "type": "text/javascript" + } + } + ], + "request": { + "method": "DELETE", + "header": [], + "body": { + "mode": "raw", + "raw": "" + }, + "url": { + "raw": "{{besluittype_url}}", + "host": [ + "{{besluittype_url}}" + ] + } + }, + "response": [] + }, + { + "name": "Delete Informatieobjecttype", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "pm.globals.unset(\"informatieobjecttype_url\");", + "", + "// Continue to the drc tests", + "postman.setNextRequest(\"(DRC) Retrieve existing Catalogus\");" + ], + "type": "text/javascript" + } + } + ], + "request": { + "method": "DELETE", + "header": [], + "body": { + "mode": "raw", + "raw": "" + }, + "url": { + "raw": "{{informatieobjecttype_url}}", + "host": [ + "{{informatieobjecttype_url}}" + ] + } + }, + "response": [] + } + ], + "event": [ + { + "listen": "prerequest", + "script": { + "type": "text/javascript", + "exec": [ + "" + ] + } + }, + { + "listen": "test", + "script": { + "type": "text/javascript", + "exec": [ + "" + ] + } + } + ] + }, + { + "name": "common requests", + "item": [ + { + "name": "(COMMON) Publish Zaaktype", + "request": { + "method": "POST", + "header": [], + "url": { + "raw": "{{created_zaaktype_url}}/publish", + "host": [ + "{{created_zaaktype_url}}" + ], + "path": [ + "publish" + ] + } + }, + "response": [] + }, + { + "name": "(COMMON) Publish Besluittype", + "request": { + "method": "POST", + "header": [], + "url": { + "raw": "{{created_besluittype_url}}/publish", + "host": [ + "{{created_besluittype_url}}" + ], + "path": [ + "publish" + ] + } + }, + "response": [] + }, + { + "name": "(COMMON) Publish Informatieobjecttype", + "request": { + "method": "POST", + "header": [], + "url": { + "raw": "{{created_informatieobjecttype_url}}/publish", + "host": [ + "{{created_informatieobjecttype_url}}" + ], + "path": [ + "publish" + ] + } + }, + "response": [] + } + ], + "event": [ + { + "listen": "prerequest", + "script": { + "type": "text/javascript", + "exec": [ + "" + ] + } + }, + { + "listen": "test", + "script": { + "type": "text/javascript", + "exec": [ + "var request_names = pm.globals.get(\"NEXT_REQUEST_NAMES\");", + "if(request_names) {", + " postman.setNextRequest(request_names.shift());", + " pm.globals.set(\"NEXT_REQUEST_NAMES\", request_names);", + "}" + ] + } + } + ] + } + ], + "auth": { + "type": "bearer", + "bearer": [ + { + "key": "token", + "value": "{{jwt_token}}", + "type": "string" + } + ] + }, + "event": [ + { + "listen": "prerequest", + "script": { + "type": "text/javascript", + "requests": {}, + "exec": [ + "function base64url(source) {", + "\t// Encode in classical base64", + "\tencodedSource = CryptoJS.enc.Base64.stringify(source);", + "", + "\t// Remove padding equal characters", + "\tencodedSource = encodedSource.replace(/=+$/, '');", + "", + "\t// Replace characters according to base64url specifications", + "\tencodedSource = encodedSource.replace(/\\+/g, '-');", + "\tencodedSource = encodedSource.replace(/\\//g, '_');", + "", + "\treturn encodedSource;", + "}", + "", + "function addIAT(request) {", + "\tvar iat = Math.floor(Date.now() / 1000) + 257;", + "\tdata.iat = iat;", + "\treturn data;", + "}", + "", + "", + "var header = {", + "\t\"typ\": \"JWT\",", + "\t\"alg\": \"HS256\"", + "};", + "", + "var data = {", + " \"iss\": pm.environment.get(\"client_id\"),", + " \"client_id\": pm.environment.get(\"client_id\"),", + " \"user_id\": \"123\",", + " \"user_representation\": \"Demo User\"", + "};", + "", + "data = addIAT(data);", + "", + "var secret = pm.environment.get(\"secret\");", + "", + "// encode header", + "var stringifiedHeader = CryptoJS.enc.Utf8.parse(JSON.stringify(header));", + "var encodedHeader = base64url(stringifiedHeader);", + "", + "// encode data", + "var stringifiedData = CryptoJS.enc.Utf8.parse(JSON.stringify(data));", + "var encodedData = base64url(stringifiedData);", + "", + "// build token", + "var token = encodedHeader + \".\" + encodedData;", + "", + "var signature = CryptoJS.HmacSHA256(token, secret);", + "signature = base64url(signature);", + "", + "var signedToken = token + \".\" + signature;", + "", + "pm.environment.set(\"jwt_token\", signedToken);" + ] + } + }, + { + "listen": "test", + "script": { + "type": "text/javascript", + "requests": {}, + "exec": [ + "" + ] + } + } + ], + "variable": [ + { + "key": "client_id", + "value": "", + "disabled": true + }, + { + "key": "secret", + "value": "", + "disabled": true + }, + { + "key": "ztc_url", + "value": "", + "disabled": true + }, + { + "key": "zrc_url", + "value": "", + "disabled": true + }, + { + "key": "drc_url", + "value": "", + "disabled": true + }, + { + "key": "brc_url", + "value": "", + "disabled": true + } + ] +} \ No newline at end of file diff --git a/data/ZGW business rules.postman_collection.json b/data/ZGW business rules.postman_collection.json new file mode 100644 index 0000000..14452a5 --- /dev/null +++ b/data/ZGW business rules.postman_collection.json @@ -0,0 +1,32594 @@ +{ + "info": { + "_postman_id": "a48fdfce-3810-46be-9613-67ddf0b99c27", + "name": "ZGW business rules", + "schema": "https://schema.getpostman.com/json/collection/v2.1.0/collection.json", + "_exporter_id": "8783588", + "_collection_link": "https://go.postman.co/collection/9365542-a48fdfce-3810-46be-9613-67ddf0b99c27?source=collection_link" + }, + "item": [ + { + "name": "ac", + "item": [ + { + "name": "setUp", + "item": [ + { + "name": "Create zgw-token client_id_restricted", + "event": [ + { + "listen": "prerequest", + "script": { + "exec": [ + "", + " var secretCurrentOrg = pm.environment.get(\"secret_limited\");", + " var client_idCurrentOrg = pm.environment.get(\"client_id_limited\");", + "\r", + " var tokenuser = pm.environment.get(\"tokenuser\");\r", + " console.info(secretCurrentOrg,\"\",client_idCurrentOrg,\"\",tokenuser) \r", + " \r", + " function base64url(source) {\r", + " // Encode in classical base64\r", + " encodedSource = CryptoJS.enc.Base64.stringify(source);\r", + " \r", + " // Remove padding equal characters\r", + " encodedSource = encodedSource.replace(/=+$/, '');\r", + " \r", + " // Replace characters according to base64url specifications\r", + " encodedSource = encodedSource.replace(/\\+/g, '-');\r", + " encodedSource = encodedSource.replace(/\\//g, '_');\r", + " \r", + " return encodedSource;\r", + " }\r", + " \r", + " function addIAT(request) {\r", + " var iat = Math.floor(Date.now() / 1000) + 257;\r", + " data.iat = iat;\r", + " data.exp = iat + 10000000;\r", + " return data;\r", + " }\r", + " \r", + " var header = {\r", + " \"typ\": \"JWT\",\r", + " \"alg\": \"HS256\"\r", + " };\r", + " \r", + " var data = {\r", + " \"iss\": client_idCurrentOrg,\r", + " \"client_id\": client_idCurrentOrg,\r", + " \"user_id\": tokenuser,\r", + " \"user_representation\": client_idCurrentOrg,\r", + " \"jti\": \"35b9d0e0-8c80-4aef-9c9c-55d6e34eff40\"\r", + " };\r", + " data = addIAT(data);\r", + " \r", + " var secret = secretCurrentOrg;\r", + " \r", + " // encode header\r", + " var stringifiedHeader = CryptoJS.enc.Utf8.parse(JSON.stringify(header));\r", + " var encodedHeader = base64url(stringifiedHeader);\r", + " \r", + " // encode data\r", + " var stringifiedData = CryptoJS.enc.Utf8.parse(JSON.stringify(data));\r", + " var encodedData = base64url(stringifiedData);\r", + " \r", + " // build token\r", + " var token = encodedHeader + \".\" + encodedData;\r", + " \r", + " var signature = CryptoJS.HmacSHA256(token, secret);\r", + " signature = base64url(signature);\r", + " \r", + " var signedToken = token + \".\" + signature;\r", + " \r", + " pm.environment.set(\"jwt-limited\", signedToken);\r", + " pm.environment.set(\"jwt-zrc-006\", signedToken);\r", + "" + ], + "type": "text/javascript", + "packages": {} + } + }, + { + "listen": "test", + "script": { + "exec": [ + "" + ], + "type": "text/javascript", + "packages": {} + } + } + ], + "request": { + "auth": { + "type": "bearer", + "bearer": [ + { + "key": "token", + "value": "{{jwt_token}}", + "type": "string" + } + ] + }, + "method": "GET", + "header": [], + "url": { + "raw": "{{ztc_url}}/zaaktypen", + "host": [ + "{{ztc_url}}" + ], + "path": [ + "zaaktypen" + ] + } + }, + "response": [] + }, + { + "name": "Set zgw-token", + "event": [ + { + "listen": "prerequest", + "script": { + "exec": [ + " \r", + " var secretCurrentOrg = pm.environment.get(\"secret\");\r", + " var client_idCurrentOrg = pm.environment.get(\"client_id\");\r", + " var tokenuser = pm.environment.get(\"tokenuser\");\r", + " console.info(secretCurrentOrg,\"\",client_idCurrentOrg,\"\",tokenuser) \r", + " \r", + " function base64url(source) {\r", + " // Encode in classical base64\r", + " encodedSource = CryptoJS.enc.Base64.stringify(source);\r", + " \r", + " // Remove padding equal characters\r", + " encodedSource = encodedSource.replace(/=+$/, '');\r", + " \r", + " // Replace characters according to base64url specifications\r", + " encodedSource = encodedSource.replace(/\\+/g, '-');\r", + " encodedSource = encodedSource.replace(/\\//g, '_');\r", + " \r", + " return encodedSource;\r", + " }\r", + " \r", + " function addIAT(request) {\r", + " var iat = Math.floor(Date.now() / 1000) + 257;\r", + " data.iat = iat;\r", + " data.exp = iat + 10000000;\r", + " return data;\r", + " }\r", + " \r", + " var header = {\r", + " \"typ\": \"JWT\",\r", + " \"alg\": \"HS256\"\r", + " };\r", + " \r", + " var data = {\r", + " \"iss\": client_idCurrentOrg,\r", + " \"client_id\": client_idCurrentOrg,\r", + " \"user_id\": tokenuser,\r", + " \"user_representation\": client_idCurrentOrg,\r", + " \"jti\": \"35b9d0e0-8c80-4aef-9c9c-55d6e34eff40\"\r", + " };\r", + " data = addIAT(data);\r", + " \r", + " var secret = secretCurrentOrg;\r", + " \r", + " // encode header\r", + " var stringifiedHeader = CryptoJS.enc.Utf8.parse(JSON.stringify(header));\r", + " var encodedHeader = base64url(stringifiedHeader);\r", + " \r", + " // encode data\r", + " var stringifiedData = CryptoJS.enc.Utf8.parse(JSON.stringify(data));\r", + " var encodedData = base64url(stringifiedData);\r", + " \r", + " // build token\r", + " var token = encodedHeader + \".\" + encodedData;\r", + " \r", + " var signature = CryptoJS.HmacSHA256(token, secret);\r", + " signature = base64url(signature);\r", + " \r", + " var signedToken = token + \".\" + signature;\r", + " \r", + " pm.environment.set(\"jwt_token\", signedToken);\r", + " pm.environment.set(\"jwt_full\", signedToken);\r", + "" + ], + "type": "text/javascript", + "packages": {} + } + }, + { + "listen": "test", + "script": { + "exec": [ + "" + ], + "type": "text/javascript", + "packages": {} + } + } + ], + "request": { + "auth": { + "type": "bearer", + "bearer": [ + { + "key": "token", + "value": "{{jwt_token}}", + "type": "string" + } + ] + }, + "method": "GET", + "header": [], + "url": { + "raw": "{{referentielijst_url}}/procestypen", + "host": [ + "{{referentielijst_url}}" + ], + "path": [ + "procestypen" + ] + } + }, + "response": [] + }, + { + "name": "Create Catalogus", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "if(pm.response.code == 201) {\r", + "pm.environment.set(\"catalogus_url\", pm.response.json().url);\r", + "}\r", + "" + ], + "type": "text/javascript", + "packages": {} + } + } + ], + "request": { + "method": "POST", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n\t\"domein\": \"AAB\",\n\t\"rsin\": \"000000000\",\n\t\"contactpersoonBeheerNaam\": \"Test Persoon\"\n}" + }, + "url": { + "raw": "{{ztc_url}}/catalogussen", + "host": [ + "{{ztc_url}}" + ], + "path": [ + "catalogussen" + ] + } + }, + "response": [] + }, + { + "name": "(AC) Create Besluittype", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "pm.environment.set(\"besluittype_url\", pm.response.json().url);\r", + "pm.environment.set(\"besluittype_omschrijving\", pm.response.json().omschrijving);" + ], + "type": "text/javascript", + "packages": {} + } + } + ], + "request": { + "method": "POST", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n \"catalogus\": \"{{catalogus_url}}\",\n \"omschrijving\": \"testjes\",\n \"zaaktypen\": [],\n\t\"publicatieIndicatie\": false,\n\t\"informatieobjecttypen\": [],\n\t\"beginGeldigheid\": \"2019-01-01\"\n}" + }, + "url": { + "raw": "{{ztc_url}}/besluittypen", + "host": [ + "{{ztc_url}}" + ], + "path": [ + "besluittypen" + ] + } + }, + "response": [] + }, + { + "name": "Create InformatieObjecttype", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "pm.environment.set(\"informatieobjecttype_url\", pm.response.json().url);" + ], + "type": "text/javascript" + } + } + ], + "request": { + "method": "POST", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n\t\"catalogus\": \"{{catalogus_url}}\",\n\t\"omschrijving\": \"informatieobject\",\n\t\"vertrouwelijkheidaanduiding\": \"openbaar\",\n\t\"beginGeldigheid\": \"2019-01-01\",\n \"informatieobjectcategorie\": \"document\"\n}" + }, + "url": { + "raw": "{{ztc_url}}/informatieobjecttypen", + "host": [ + "{{ztc_url}}" + ], + "path": [ + "informatieobjecttypen" + ] + } + }, + "response": [] + }, + { + "name": "Create Zaaktype", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "var res = pm.response.json();", + "pm.environment.set(\"zaaktype_url\", res.url);", + "pm.environment.set(\"zaaktype_vertrouwelijkheid\", res.vertrouwelijkheidaanduiding);", + "pm.environment.set(\"zaaktype_productenOfDiensten\", res.productenOfDiensten);", + "pm.environment.set(\"zaaktype_resultaattypen\", res.resultaattypen);", + "pm.environment.set(\"zaaktype_eigenschap\", res.eigenschappen[0]);", + "pm.environment.set(\"zaaktype_body\", pm.request.body.raw);" + ], + "type": "text/javascript", + "packages": {} + } + } + ], + "request": { + "method": "POST", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n\t\"identificatie\": \"1\",\n \"omschrijving\": \"ac_tests_1\",\n \"vertrouwelijkheidaanduiding\": \"openbaar\",\n \"doel\": \"test doel\",\n \"verantwoordelijke\": \"Organisatie eenheid X\",\n \"aanleiding\": \"test aanleiding\",\n \"indicatieInternOfExtern\": \"extern\",\n \"handelingInitiator\": \"indienen\",\n \"onderwerp\": \"openbare ruimte\",\n \"handelingBehandelaar\": \"behandelen\",\n \"doorlooptijd\": \"P10D\",\n \"opschortingEnAanhoudingMogelijk\": false,\n \"verlengingMogelijk\": false,\n \"publicatieIndicatie\": false,\n \"productenOfDiensten\": [\n \"https://ref.tst.vng.cloud/standaard/\"\n ],\n \"selectielijstProcestype\": \"{{procestype_procestermijn_nihil_url}}\",\n \"referentieproces\": {\n \"naam\": \"test\",\n \"link\": \"\"\n },\n \"catalogus\": \"{{catalogus_url}}\",\n \"statustypen\": [\n \"http://localhost:8002/api/v1/statustypen/ecb7fc03-5c11-46be-917f-e70e16c77554\",\n \"http://localhost:8002/api/v1/statustypen/14734ec8-04f8-4c18-a009-e190ff448ca9\"\n ],\n \"resultaattypen\": [\n \"http://localhost:8002/api/v1/resultaattypen/eead9dcd-9544-4862-8a03-b55643f95228\"\n ],\n \"eigenschappen\": [\n \"http://localhost:8002/api/v1/eigenschappen/d417bd46-a2a8-46d7-bb8c-4c8dc214301b\"\n ],\n \"informatieobjecttypen\": [],\n \"besluittypen\": [\n \"{{besluittype_omschrijving}}\"\n ],\n \"gerelateerdeZaaktypen\": [],\n \"deelzaaktypen\": [],\n \"beginGeldigheid\": \"2019-01-01\",\n \"versiedatum\": \"2019-01-01\",\n \"concept\": true\n}" + }, + "url": { + "raw": "{{ztc_url}}/zaaktypen", + "host": [ + "{{ztc_url}}" + ], + "path": [ + "zaaktypen" + ] + } + }, + "response": [] + } + ] + }, + { + "name": "(ac-001)", + "item": [ + { + "name": "(ac-001a) Applicatie aanmaken met meerdere clientIds is mogelijk", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "pm.test(\"Applicatie aanmaken met meerdere clientIds geeft 201\", function() {", + " pm.response.to.have.status(201);", + "", + " ", + "});", + "", + "if(pm.response.code == 201) {", + " pm.environment.set(\"applicatie_url\", pm.response.json().url);", + "}" + ], + "type": "text/javascript", + "packages": {} + } + }, + { + "listen": "prerequest", + "script": { + "exec": [ + "var uuid = require('uuid');\r", + "var myUUID = uuid.v4(); \r", + "var myUUID = uuid.v4(); \r", + "pm.environment.set(\"client_id_test_2\", myUUID);" + ], + "type": "text/javascript", + "packages": {} + } + } + ], + "request": { + "method": "POST", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n\t\"clientIds\": [\n\t\t\"{{client_id_test_1}}\",\n\t\t\"{{client_id_test_2}}\"\n\t],\n\t\"label\": \"Test applicatie\",\n\t\"autorisaties\": [\n {\n \"component\": \"zrc\",\n \"componentWeergave\": \"Zaakregistratiecomponent\",\n \"scopes\": [\n \"zaken.lezen\"\n ],\n \"zaaktype\": \"{{zaaktype_url}}\",\n \"maxVertrouwelijkheidaanduiding\": \"openbaar\"\n }\n ]\n}" + }, + "url": { + "raw": "{{ac_url}}/applicaties", + "host": [ + "{{ac_url}}" + ], + "path": [ + "applicaties" + ] + } + }, + "response": [] + }, + { + "name": "(ac-001b) Applicatie aanmaken met al gebruikte client_id is onmogelijk", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "pm.test(\"Applicatie aanmaken een client_id die al gebruikt is voor een andere applicatie geeft 400\", function() {", + " pm.response.to.have.status(400);", + "", + " var error = pm.response.json().invalidParams[0];", + " pm.expect(error.name).to.be.equal(\"clientIds\");", + " pm.expect(error.code).to.be.equal(\"clientId-exists\");", + "});", + "", + "if(pm.response.code == 201) {", + " pm.environment.set(\"created_applicatie_url\", pm.response.json().url)", + " ", + "}" + ], + "type": "text/javascript", + "packages": {} + } + }, + { + "listen": "prerequest", + "script": { + "exec": [ + "" + ], + "type": "text/javascript", + "packages": {} + } + } + ], + "request": { + "method": "POST", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n\t\"clientIds\": [\"{{client_id_test_1}}\"],\n\t\"label\": \"Test applicatie\",\n\t\"heeftAlleAutorisaties\": true,\n\t\"autorisaties\": []\n}" + }, + "url": { + "raw": "{{ac_url}}/applicaties", + "host": [ + "{{ac_url}}" + ], + "path": [ + "applicaties" + ] + } + }, + "response": [] + }, + { + "name": "Delete created Applicatie", + "request": { + "method": "DELETE", + "header": [], + "body": { + "mode": "raw", + "raw": "" + }, + "url": { + "raw": "{{applicatie_url}}", + "host": [ + "{{applicatie_url}}" + ] + } + }, + "response": [] + } + ] + }, + { + "name": "(ac-002)", + "item": [ + { + "name": "(ac-002a) Applicatie aanmaken met heeftAlleAutorisaties en expliciete autorisaties is niet mogelijk", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "pm.test(\"Applicatie aanmaken met heeftAlleAutorisaties op true en expliciet meegegeven autorisaties geeft 400\", function() {", + " pm.response.to.have.status(400);", + " ", + " var error = pm.response.json().invalidParams[0];", + " pm.expect(error.name).to.be.equal(\"nonFieldErrors\");", + " pm.expect(error.code).to.be.equal(\"ambiguous-authorizations-specified\");", + "});", + "", + "if(pm.response.code == 201) {", + " pm.environment.set(\"created_applicatie_url\", pm.response.json().url)", + "", + "}" + ], + "type": "text/javascript", + "packages": {} + } + }, + { + "listen": "prerequest", + "script": { + "exec": [ + "var uuid = require('uuid');", + "var myUUID = uuid.v4(); ", + "pm.environment.set(\"random_client_id\", myUUID);", + "" + ], + "type": "text/javascript", + "packages": {} + } + } + ], + "request": { + "method": "POST", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n\t\"clientIds\": [\n\t\t\"{{random_client_id}}\"\n\t],\n\t\"label\": \"Test applicatie\",\n\t\"heeftAlleAutorisaties\": true,\n\t\"autorisaties\": [\n {\n \"component\": \"zrc\",\n \"componentWeergave\": \"Zaakregistratiecomponent\",\n \"scopes\": [\n \"zaken.lezen\"\n ],\n \"zaaktype\": \"{{zaaktype_url}}\",\n \"maxVertrouwelijkheidaanduiding\": \"openbaar\"\n }\n ]\n}" + }, + "url": { + "raw": "{{ac_url}}/applicaties", + "host": [ + "{{ac_url}}" + ], + "path": [ + "applicaties" + ] + } + }, + "response": [] + }, + { + "name": "(ac-002b) Applicatie aanmaken met heeftAlleAutorisaties false en geen autorisaties is onmogelijk", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "pm.test(\"Applicatie aanmaken met heeftAlleAutorisaties false en geen expliciet meegegeven autorisaties geeft 400\", function() {", + " pm.response.to.have.status(400);", + " ", + " var error = pm.response.json().invalidParams[0];", + " pm.expect(error.name).to.be.equal(\"nonFieldErrors\");", + " pm.expect(error.code).to.be.equal(\"missing-authorizations\");", + "});", + "", + "if(pm.response.code == 201) {", + " pm.environment.set(\"created_applicatie_url\", pm.response.json().url)", + "", + "}" + ], + "type": "text/javascript", + "packages": {} + } + } + ], + "request": { + "method": "POST", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n\t\"clientIds\": [\n\t\t\"test_id4\"\n\t],\n\t\"label\": \"Test applicatie\",\n\t\"heeftAlleAutorisaties\": false,\n\t\"autorisaties\": []\n}" + }, + "url": { + "raw": "{{ac_url}}/applicaties", + "host": [ + "{{ac_url}}" + ], + "path": [ + "applicaties" + ] + } + }, + "response": [] + } + ] + }, + { + "name": "(ac-003)", + "item": [ + { + "name": "(ac-003a) Autorisatie met component zrc scope m.b.t. zaken en zonder maxVertrouwelijkheidaanduiding en zaaktype is onmogelijk", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "pm.test(\"Applicatie aanmaken met Autorisatie met component zrc en scope m.b.t. zaken zonder maxVertrouwelijkheidaanduiding en zaaktype is onmogelijk\", function() {", + " pm.response.to.have.status(400);", + " ", + " var errors = pm.response.json().invalidParams;", + " errors.sort((a, b) => (a.name > b.name) ? 1 : -1);", + " ", + " pm.expect(errors[0].name).to.be.equal(\"autorisaties.0.maxVertrouwelijkheidaanduiding\");", + " pm.expect(errors[0].code).to.be.equal(\"required\");", + " ", + " pm.expect(errors[1].name).to.be.equal(\"autorisaties.0.zaaktype\");", + " pm.expect(errors[1].code).to.be.equal(\"required\");", + "});", + "", + "if(pm.response.code == 201) {", + " pm.environment.set(\"created_applicatie_url\", pm.response.json().url)", + "", + "}" + ], + "type": "text/javascript", + "packages": {} + } + } + ], + "request": { + "method": "POST", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n\t\"clientIds\": [\n\t\t\"test_id3\"\n\t],\n\t\"label\": \"Test applicatie\",\n\t\"autorisaties\": [\n {\n \"component\": \"zrc\",\n \"componentWeergave\": \"Zaakregistratiecomponent\",\n \"scopes\": [\n \"zaken.lezen\"\n ],\n \"zaaktype\": \"\",\n \"maxVertrouwelijkheidaanduiding\": \"\"\n }\n ]\n}" + }, + "url": { + "raw": "{{ac_url}}/applicaties", + "host": [ + "{{ac_url}}" + ], + "path": [ + "applicaties" + ] + } + }, + "response": [] + }, + { + "name": "(ac-003b) Autorisatie met component zrc zonder scope m.b.t. zaken en zonder maxVertrouwelijkheidaanduiding en zaaktype is mogelijk", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "pm.test(\"Applicatie aanmaken met Autorisatie met component zrc zonder scope m.b.t. zaken en zonder maxVertrouwelijkheidaanduiding en zaaktype is mogelijk\", function() {", + " pm.response.to.have.status(201);", + "});", + "", + "if(pm.response.code == 201) {", + " pm.environment.set(\"created_applicatie_url\", pm.response.json().url)", + " }" + ], + "type": "text/javascript", + "packages": {} + } + }, + { + "listen": "prerequest", + "script": { + "exec": [ + "var uuid = require('uuid');", + "var myUUID = uuid.v4(); ", + "pm.environment.set(\"random_client_id\", myUUID);", + "" + ], + "type": "text/javascript", + "packages": {} + } + } + ], + "request": { + "method": "POST", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n\t\"clientIds\": [\n\t\t\"{{random_client_id}}\"\n\t],\n\t\"label\": \"Test applicatie\",\n\t\"autorisaties\": [\n {\n \"component\": \"zrc\",\n \"componentWeergave\": \"Zaakregistratiecomponent\",\n \"scopes\": [\n \"notificaties.publiceren\"\n ],\n \"zaaktype\": \"\",\n \"maxVertrouwelijkheidaanduiding\": \"\"\n }\n ]\n}" + }, + "url": { + "raw": "{{ac_url}}/applicaties", + "host": [ + "{{ac_url}}" + ], + "path": [ + "applicaties" + ] + } + }, + "response": [] + }, + { + "name": "Delete Applicatie", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "pm.environment.unset(\"created_applicatie_url\");" + ], + "type": "text/javascript" + } + } + ], + "request": { + "method": "DELETE", + "header": [], + "body": { + "mode": "raw", + "raw": "" + }, + "url": { + "raw": "{{created_applicatie_url}}", + "host": [ + "{{created_applicatie_url}}" + ] + } + }, + "response": [] + }, + { + "name": "(ac-003c) Autorisatie met component drc scope m.b.t. documenten en zonder maxVertrouwelijkheidaanduiding en informatieobjecttype is onmogelijk", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "pm.test(\"Applicatie aanmaken met Autorisatie met component drc en scope m.b.t. documenten zonder maxVertrouwelijkheidaanduiding en informatieobjecttype is onmogelijk\", function() {", + " pm.response.to.have.status(400);", + " ", + " var errors = pm.response.json().invalidParams;", + " errors.sort((a, b) => (a.name > b.name) ? 1 : -1);", + " ", + " pm.expect(errors[0].name).to.be.equal(\"autorisaties.0.informatieobjecttype\");", + " pm.expect(errors[0].code).to.be.equal(\"required\");", + " ", + " pm.expect(errors[1].name).to.be.equal(\"autorisaties.0.maxVertrouwelijkheidaanduiding\");", + " pm.expect(errors[1].code).to.be.equal(\"required\");", + "});", + "", + "if(pm.response.code == 201) {", + " pm.environment.set(\"created_applicatie_url\", pm.response.json().url)", + "", + "}" + ], + "type": "text/javascript", + "packages": {} + } + } + ], + "request": { + "method": "POST", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n\t\"clientIds\": [\n\t\t\"test_id3\"\n\t],\n\t\"label\": \"Test applicatie\",\n\t\"autorisaties\": [\n {\n \"component\": \"drc\",\n \"componentWeergave\": \"Documentregistratiecomponent\",\n \"scopes\": [\n \"documenten.lezen\"\n ],\n \"informatieobjecttype\": \"\",\n \"maxVertrouwelijkheidaanduiding\": \"\"\n }\n ]\n}" + }, + "url": { + "raw": "{{ac_url}}/applicaties", + "host": [ + "{{ac_url}}" + ], + "path": [ + "applicaties" + ] + } + }, + "response": [] + }, + { + "name": "(ac-003d) Autorisatie met component drc zonder scope m.b.t. documenten en zonder maxVertrouwelijkheidaanduiding en informatieobjecttype is mogelijk", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "pm.test(\"Applicatie aanmaken met Autorisatie met component drc zonder scope m.b.t. documenten zonder maxVertrouwelijkheidaanduiding en informatieobjecttype is mogelijk\", function() {", + " pm.response.to.have.status(201);", + "});", + "", + "if(pm.response.code == 201) {", + " pm.environment.set(\"created_applicatie_url\", pm.response.json().url)", + "}" + ], + "type": "text/javascript", + "packages": {} + } + }, + { + "listen": "prerequest", + "script": { + "exec": [ + "var uuid = require('uuid');", + "var myUUID = uuid.v4(); ", + "pm.environment.set(\"random_client_id\", myUUID);", + "" + ], + "type": "text/javascript", + "packages": {} + } + } + ], + "request": { + "method": "POST", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n\t\"clientIds\": [\n\t\t\"{{random_client_id}}\"\n\t],\n\t\"label\": \"Test applicatie\",\n\t\"autorisaties\": [\n {\n \"component\": \"drc\",\n \"componentWeergave\": \"Documentregistratiecomponent\",\n \"scopes\": [\n \"notificaties.publiceren\"\n ],\n \"informatieobjecttype\": \"\",\n \"maxVertrouwelijkheidaanduiding\": \"\"\n }\n ]\n}" + }, + "url": { + "raw": "{{ac_url}}/applicaties", + "host": [ + "{{ac_url}}" + ], + "path": [ + "applicaties" + ] + } + }, + "response": [] + }, + { + "name": "Delete Applicatie", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "pm.environment.unset(\"created_applicatie_url\");" + ], + "type": "text/javascript" + } + } + ], + "request": { + "method": "DELETE", + "header": [], + "body": { + "mode": "raw", + "raw": "" + }, + "url": { + "raw": "{{created_applicatie_url}}", + "host": [ + "{{created_applicatie_url}}" + ] + } + }, + "response": [] + }, + { + "name": "(ac-003f) Autorisatie met component brc zonder scope m.b.t. besluiten en zonder besluittype is mogelijk", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "pm.test(\"Applicatie aanmaken met Autorisatie met component brc zonder scope m.b.t. besluiten zonder besluittype is mogelijk\", function() {", + " pm.response.to.have.status(201);", + "});", + "", + "if(pm.response.code == 201) {", + " pm.environment.set(\"created_applicatie_url\", pm.response.json().url)", + "}" + ], + "type": "text/javascript", + "packages": {} + } + }, + { + "listen": "prerequest", + "script": { + "exec": [ + "var uuid = require('uuid');", + "var myUUID = uuid.v4(); ", + "pm.environment.set(\"random_client_id\", myUUID);", + "" + ], + "type": "text/javascript", + "packages": {} + } + } + ], + "request": { + "method": "POST", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n\t\"clientIds\": [\n\t\t\"{{random_client_id}}\"\n\t],\n\t\"label\": \"Test applicatie\",\n\t\"autorisaties\": [\n {\n \"component\": \"brc\",\n \"componentWeergave\": \"Besluitregistratiecomponent\",\n \"scopes\": [\n \"notificaties.publiceren\"\n ],\n \"besluittype\": \"\"\n }\n ]\n}" + }, + "url": { + "raw": "{{ac_url}}/applicaties", + "host": [ + "{{ac_url}}" + ], + "path": [ + "applicaties" + ] + } + }, + "response": [] + }, + { + "name": "Delete Applicatie", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "pm.environment.unset(\"created_applicatie_url\");" + ], + "type": "text/javascript" + } + } + ], + "request": { + "method": "DELETE", + "header": [], + "body": { + "mode": "raw", + "raw": "" + }, + "url": { + "raw": "{{created_applicatie_url}}", + "host": [ + "{{created_applicatie_url}}" + ] + } + }, + "response": [] + } + ] + } + ], + "description": "Bevat alle business logic tests voor het Autorisatiecomponent (AC)", + "event": [ + { + "listen": "prerequest", + "script": { + "type": "text/javascript", + "exec": [ + "" + ] + } + }, + { + "listen": "test", + "script": { + "type": "text/javascript", + "exec": [ + "" + ] + } + } + ] + }, + { + "name": "zrc", + "item": [ + { + "name": "setUp", + "item": [ + { + "name": "Create Catalogus", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "if(pm.response.code == 201) {\r", + " pm.environment.set(\"catalogus_url\", pm.response.json().url);\r", + "}" + ], + "type": "text/javascript", + "packages": {} + } + } + ], + "request": { + "method": "POST", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n\t\"domein\": \"ZGWT\",\n\t\"rsin\": \"000000000\",\n\t\"contactpersoonBeheerNaam\": \"Test Persoon\"\n}" + }, + "url": { + "raw": "{{ztc_url}}/catalogussen", + "host": [ + "{{ztc_url}}" + ], + "path": [ + "catalogussen" + ] + } + }, + "response": [] + }, + { + "name": "Get Resultaattypeomschrijving", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "pm.environment.set(\"resultaattypeomschrijving_url\", pm.response.json()[0].url);" + ], + "type": "text/javascript" + } + } + ], + "request": { + "method": "GET", + "header": [], + "url": { + "raw": "{{referentielijst_url}}/resultaattypeomschrijvingen", + "host": [ + "{{referentielijst_url}}" + ], + "path": [ + "resultaattypeomschrijvingen" + ] + } + }, + "response": [] + }, + { + "name": "Create Besluittype", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "if(pm.response.code == 201) {\r", + " pm.environment.set(\"besluittype_url\", pm.response.json().url);\r", + "}" + ], + "type": "text/javascript", + "packages": {} + } + }, + { + "listen": "prerequest", + "script": { + "exec": [ + "var uuid = require('uuid');\r", + "var myUUID = uuid.v4(); \r", + "pm.environment.set(\"besluit_omschrijving\", myUUID);" + ], + "type": "text/javascript", + "packages": {} + } + } + ], + "request": { + "method": "POST", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n \"catalogus\": \"{{catalogus_url}}\",\n \"omschrijving\": \"{{besluit_omschrijving}}\",\n \"zaaktypen\": [],\n\t\"publicatieIndicatie\": false,\n\t\"informatieobjecttypen\": [],\n\t\"beginGeldigheid\": \"2019-01-01\"\n}" + }, + "url": { + "raw": "{{ztc_url}}/besluittypen", + "host": [ + "{{ztc_url}}" + ], + "path": [ + "besluittypen" + ] + } + }, + "response": [] + }, + { + "name": "Create InformatieObjecttype", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "if(pm.response.code == 201) {\r", + " pm.environment.set(\"informatieobjecttype_url\", pm.response.json().url);\r", + "}" + ], + "type": "text/javascript", + "packages": {} + } + }, + { + "listen": "prerequest", + "script": { + "exec": [ + "var uuid = require('uuid');\r", + "var myUUID = uuid.v4(); \r", + "pm.environment.set(\"informatieobject_omschrijving\", myUUID);" + ], + "type": "text/javascript", + "packages": {} + } + } + ], + "request": { + "method": "POST", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n\t\"catalogus\": \"{{catalogus_url}}\",\n\t\"omschrijving\": \"{{informatieobject_omschrijving}}\",\n\t\"vertrouwelijkheidaanduiding\": \"openbaar\",\n\t\"beginGeldigheid\": \"2019-01-01\",\n\t\"informatieobjectcategorie\": \"document\"\n}" + }, + "url": { + "raw": "{{ztc_url}}/informatieobjecttypen", + "host": [ + "{{ztc_url}}" + ], + "path": [ + "informatieobjecttypen" + ] + } + }, + "response": [] + }, + { + "name": "Create Deelzaaktype", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "if(pm.response.code == 201) { ", + " var res = pm.response.json();", + " pm.environment.set(\"deelzaaktype_url\", res.url);", + " pm.environment.set(\"deelzaaktype_omschrijving\", res.omschrijving);", + " pm.environment.set(\"deelzaaktype_identificatie\", res.identificatie);", + "}" + ], + "type": "text/javascript", + "packages": {} + } + }, + { + "listen": "prerequest", + "script": { + "exec": [ + "var uuid = require('uuid');", + "var myUUID = uuid.v4(); ", + "pm.environment.set(\"random_identificatie2\", myUUID);", + "" + ], + "type": "text/javascript", + "packages": {} + } + } + ], + "request": { + "method": "POST", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "api-version", + "value": "1.3", + "type": "text", + "disabled": true + } + ], + "body": { + "mode": "raw", + "raw": "{\n\t\"identificatie\": \"{{random_identificatie2}}\",\n \"omschrijving\": \"zrc_tests_1 deelzaaktype\",\n \"vertrouwelijkheidaanduiding\": \"openbaar\",\n \"verantwoordelijke\":\"X\",\n \"doel\": \"test doel\",\n \"aanleiding\": \"test aanleiding\",\n \"indicatieInternOfExtern\": \"extern\",\n \"handelingInitiator\": \"indienen\",\n \"onderwerp\": \"openbare ruimte\",\n \"handelingBehandelaar\": \"behandelen\",\n \"doorlooptijd\": \"P10D\",\n \"opschortingEnAanhoudingMogelijk\": false,\n \"verlengingMogelijk\": true,\n \"publicatieIndicatie\": false,\n \"productenOfDiensten\": [\n \"https://ref.tst.vng.cloud/standaard/\"\n ],\n \"selectielijstProcestype\": \"{{procestype_procestermijn_nihil_url}}\",\n \"referentieproces\": {\n \"naam\": \"test\",\n \"link\": \"\"\n },\n \"catalogus\": \"{{catalogus_url}}\",\n \"statustypen\": [\n \n ],\n \"resultaattypen\": [\n ],\n \"eigenschappen\": [\n ],\n \"informatieobjecttypen\": [],\n \"besluittypen\": [\n \"{{besluit_omschrijving}}\"\n ],\n \"gerelateerdeZaaktypen\": [],\n \"deelzaaktypen\": [],\n \"beginGeldigheid\": \"2019-01-01\",\n \"versiedatum\": \"2019-01-01\",\n \"concept\": true,\n \"verlengingstermijn\": \"P5D\"\n}" + }, + "url": { + "raw": "{{ztc_url}}/zaaktypen", + "host": [ + "{{ztc_url}}" + ], + "path": [ + "zaaktypen" + ] + } + }, + "response": [] + }, + { + "name": "Create Zaaktype", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "if(pm.response.code == 201) {", + " var res = pm.response.json();", + "pm.environment.set(\"zaaktype_url\", res.url);", + "pm.environment.set(\"zaaktype_vertrouwelijkheid\", res.vertrouwelijkheidaanduiding);", + "pm.environment.set(\"zaaktype_productenOfDiensten\", res.productenOfDiensten);", + "pm.environment.set(\"zaaktype_resultaattypen\", res.resultaattypen);", + "pm.environment.set(\"zaaktype_eigenschap\", res.eigenschappen[0]);", + "pm.environment.set(\"zaaktype_body\", pm.request.body.raw);", + "}" + ], + "type": "text/javascript", + "packages": {} + } + }, + { + "listen": "prerequest", + "script": { + "exec": [ + "var uuid = require('uuid');", + "var myUUID = uuid.v4(); ", + "pm.environment.set(\"random_identificatie\", myUUID);", + "" + ], + "type": "text/javascript", + "packages": {} + } + } + ], + "request": { + "method": "POST", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n\t\"identificatie\": \"{{random_identificatie}}\",\n \"omschrijving\": \"zrc_tests_1\",\n \"vertrouwelijkheidaanduiding\": \"openbaar\",\n \"doel\": \"test doel\",\n \"verantwoordelijke\":\"X\",\n \"aanleiding\": \"test aanleiding\",\n \"indicatieInternOfExtern\": \"extern\",\n \"handelingInitiator\": \"indienen\",\n \"onderwerp\": \"openbare ruimte\",\n \"handelingBehandelaar\": \"behandelen\",\n \"doorlooptijd\": \"P10D\",\n \"opschortingEnAanhoudingMogelijk\": false,\n \"verlengingMogelijk\": true,\n \"publicatieIndicatie\": false,\n \"productenOfDiensten\": [\n \"https://ref.tst.vng.cloud/standaard/\"\n ],\n \"selectielijstProcestype\": \"{{procestype_procestermijn_nihil_url}}\",\n \"referentieproces\": {\n \"naam\": \"test\",\n \"link\": \"\"\n },\n \"deelzaaktypen\": [\n \"{{deelzaaktype_identificatie}}\"\n ],\n \"catalogus\": \"{{catalogus_url}}\",\n \"statustypen\": [\n \n ],\n \"resultaattypen\": [\n ],\n \"eigenschappen\": [\n ],\n \"informatieobjecttypen\": [],\n \"besluittypen\": [\n \"{{besluit_omschrijving}}\"\n ],\n \"gerelateerdeZaaktypen\": [],\n \"beginGeldigheid\": \"2019-01-01\",\n \"versiedatum\": \"2019-01-01\",\n \"concept\": true,\n \"verlengingstermijn\": \"P5D\"\n}" + }, + "url": { + "raw": "{{ztc_url}}/zaaktypen", + "host": [ + "{{ztc_url}}" + ], + "path": [ + "zaaktypen" + ] + } + }, + "response": [] + }, + { + "name": "Create Zaaktype-InformatieObjectType relation", + "request": { + "method": "POST", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n\t\"zaaktype\": \"{{zaaktype_url}}\",\n\t\"informatieobjecttype\": \"{{informatieobject_omschrijving}}\",\n\t\"volgnummer\": 1,\n\t\"richting\": \"inkomend\"\n}" + }, + "url": { + "raw": "{{ztc_url}}/zaaktype-informatieobjecttypen", + "host": [ + "{{ztc_url}}" + ], + "path": [ + "zaaktype-informatieobjecttypen" + ] + } + }, + "response": [] + }, + { + "name": "Create Eigenschap", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "if(pm.response.code == 201) {\r", + " pm.environment.set(\"zaaktype_eigenschap\", pm.response.json().url);\r", + "}" + ], + "type": "text/javascript", + "packages": {} + } + } + ], + "request": { + "method": "POST", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n\t\"naam\": \"test eigenschap\",\n\t\"definitie\": \"for test\",\n\t\"zaaktype\": \"{{zaaktype_url}}\",\n \"specificatie\": {\n \"formaat\": \"tekst\",\n \"lengte\": \"5\",\n \"kardinaliteit\": \"1\",\n \"waardenverzameling\": [\"test\"]\n }\n}" + }, + "url": { + "raw": "{{ztc_url}}/eigenschappen", + "host": [ + "{{ztc_url}}" + ], + "path": [ + "eigenschappen" + ] + } + }, + "response": [] + }, + { + "name": "Create Resultaattype afleidingswijze afgehandeld Copy", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "if(pm.response.code == 201) {\r", + " pm.environment.set(\"resultaattype_url\", pm.response.json().url);\r", + "}" + ], + "type": "text/javascript", + "packages": {} + } + } + ], + "request": { + "method": "POST", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n\t\"zaaktype\": \"{{zaaktype_url}}\",\n\t\"omschrijving\": \"Klaar\",\n\t\"resultaattypeomschrijving\": \"{{resultaattypeomschrijving_url}}\",\n\t\"selectielijstklasse\": \"{{selectielijstklasse_procestermijn_nihil_url}}\",\n\t\"besluittypen\": [],\n \"brondatumArchiefprocedure\": {\n\t\t\"afleidingswijze\": \"afgehandeld\",\n\t\t\"procestermijn\": null,\n\t\t\"datumkenmerk\": \"\",\n\t\t\"einddatumBekend\": false,\n\t\t\"objecttype\": \"\",\n\t\t\"registratie\": \"\"\n\t}\n}" + }, + "url": { + "raw": "{{ztc_url}}/resultaattypen", + "host": [ + "{{ztc_url}}" + ], + "path": [ + "resultaattypen" + ] + } + }, + "response": [] + }, + { + "name": "Create begin Statustype Copy", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "pm.environment.set(\"non_eindstatustype\", pm.response.json().url);" + ], + "type": "text/javascript" + } + } + ], + "request": { + "method": "POST", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n\t\"omschrijving\": \"Begin\",\n\t\"zaaktype\": \"{{zaaktype_url}}\",\n\t\"volgnummer\": 1\n}" + }, + "url": { + "raw": "{{ztc_url}}/statustypen", + "host": [ + "{{ztc_url}}" + ], + "path": [ + "statustypen" + ] + } + }, + "response": [] + }, + { + "name": "Create eind Statustype Copy", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "pm.environment.set(\"eindstatustype\", pm.response.json().url);" + ], + "type": "text/javascript" + } + } + ], + "request": { + "method": "POST", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n\t\"omschrijving\": \"Eind\",\n\t\"zaaktype\": \"{{zaaktype_url}}\",\n\t\"volgnummer\": 2\n}" + }, + "url": { + "raw": "{{ztc_url}}/statustypen", + "host": [ + "{{ztc_url}}" + ], + "path": [ + "statustypen" + ] + } + }, + "response": [] + }, + { + "name": "Create Roltype Copy", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "pm.environment.set(\"roltype_url\", pm.response.json().url);" + ], + "type": "text/javascript" + } + } + ], + "request": { + "method": "POST", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n\t\"zaaktype\": \"{{zaaktype_url}}\",\n\t\"omschrijving\": \"test\",\n\t\"omschrijvingGeneriek\": \"adviseur\"\n}" + }, + "url": { + "raw": "{{ztc_url}}/roltypen", + "host": [ + "{{ztc_url}}" + ], + "path": [ + "roltypen" + ] + } + }, + "response": [] + }, + { + "name": "Publish Besluittype", + "request": { + "method": "POST", + "header": [], + "url": { + "raw": "{{besluittype_url}}/publish", + "host": [ + "{{besluittype_url}}" + ], + "path": [ + "publish" + ] + } + }, + "response": [] + }, + { + "name": "Publish Informatieobjecttype", + "request": { + "method": "POST", + "header": [], + "url": { + "raw": "{{informatieobjecttype_url}}/publish", + "host": [ + "{{informatieobjecttype_url}}" + ], + "path": [ + "publish" + ] + } + }, + "response": [] + }, + { + "name": "Publish Deelzaaktype", + "request": { + "method": "POST", + "header": [], + "url": { + "raw": "{{deelzaaktype_url}}/publish", + "host": [ + "{{deelzaaktype_url}}" + ], + "path": [ + "publish" + ] + } + }, + "response": [] + }, + { + "name": "Publish Zaaktype", + "request": { + "method": "POST", + "header": [], + "url": { + "raw": "{{zaaktype_url}}/publish", + "host": [ + "{{zaaktype_url}}" + ], + "path": [ + "publish" + ] + } + }, + "response": [] + }, + { + "name": "(DRC) Create EnkelvoudigInformatieObject", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "pm.environment.set(\"informatieobject_url\", pm.response.json().url);" + ], + "type": "text/javascript", + "packages": {} + } + }, + { + "listen": "prerequest", + "script": { + "exec": [ + "pm.environment.set(\"object_inhoud\", btoa(\"string\"))" + ], + "type": "text/javascript", + "packages": {} + } + } + ], + "request": { + "method": "POST", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n \"bronorganisatie\": \"000000000\",\n \"creatiedatum\": \"2019-01-01\",\n \"titel\": \"testobject\",\n \"auteur\": \"testauteur\",\n \"taal\": \"eng\",\n \"inhoud\": \"{{object_inhoud}}\",\n \"informatieobjecttype\": \"{{informatieobjecttype_url}}\",\n \"indicatieGebruiksrecht\": false,\n \"status\": \"gearchiveerd\",\n \"bestandsomvang\": 6\n}" + }, + "url": { + "raw": "{{drc_url}}/enkelvoudiginformatieobjecten", + "host": [ + "{{drc_url}}" + ], + "path": [ + "enkelvoudiginformatieobjecten" + ] + } + }, + "response": [] + }, + { + "name": "Temp (DRC) Create EnkelvoudigInformatieObject with extra fields", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "pm.environment.set(\"informatieobject_url\", pm.response.json().url);" + ], + "type": "text/javascript", + "packages": {} + } + }, + { + "listen": "prerequest", + "script": { + "exec": [ + "pm.environment.set(\"object_inhoud\", btoa(\"string\"))" + ], + "type": "text/javascript", + "packages": {} + } + } + ], + "request": { + "method": "POST", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n\t\"bronorganisatie\": \"000000000\",\n\t\"creatiedatum\": \"2019-01-01\",\n\t\"titel\": \"testobject\",\n\t\"auteur\": \"testauteur\",\n \"formaat\": \"application/pdf\",\n \"taal\": \"nld\",\n \"bestandsnaam\": \"test 3.pdf\",\n \"status\": \"gearchiveerd\",\n\t\"inhoud\": \"{{object_inhoud}}\",\n\t\"informatieobjecttype\": \"{{informatieobjecttype_url}}\",\n\t\"bestandsomvang\": 6,\n \"indicatieGebruiksrecht\": false\n}" + }, + "url": { + "raw": "{{drc_url}}/enkelvoudiginformatieobjecten", + "host": [ + "{{drc_url}}" + ], + "path": [ + "enkelvoudiginformatieobjecten" + ] + } + }, + "response": [] + }, + { + "name": "Add Gebruiksrechten to EnkelvoudigInformatieObject", + "request": { + "method": "POST", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n\t\"informatieobject\": \"{{informatieobject_url}}\",\n\t\"startdatum\": \"2019-01-01T12:00:00\",\n\t\"omschrijvingVoorwaarden\": \"test\"\n}" + }, + "url": { + "raw": "{{drc_url}}/gebruiksrechten", + "host": [ + "{{drc_url}}" + ], + "path": [ + "gebruiksrechten" + ] + } + }, + "response": [] + }, + { + "name": "Create EnkelvoudigInformatieObject with indicatieGebruiksrecht null", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "pm.environment.set(\"informatieobject_gebruiksrecht_null_url\", pm.response.json().url);" + ], + "type": "text/javascript", + "packages": {} + } + }, + { + "listen": "prerequest", + "script": { + "exec": [ + "pm.environment.set(\"object_inhoud\", btoa(\"string\"))" + ], + "type": "text/javascript", + "packages": {} + } + } + ], + "request": { + "method": "POST", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n\t\"bronorganisatie\": \"000000000\",\n\t\"creatiedatum\": \"2019-01-01\",\n\t\"titel\": \"testobject\",\n\t\"auteur\": \"testauteur\",\n\t\"taal\": \"eng\",\n\t\"inhoud\": \"{{object_inhoud}}\",\n\t\"informatieobjecttype\": \"{{informatieobjecttype_url}}\",\n\t\"indicatieGebruiksrecht\": null,\n\t\"bestandsomvang\": 6\n}" + }, + "url": { + "raw": "{{drc_url}}/enkelvoudiginformatieobjecten", + "host": [ + "{{drc_url}}" + ], + "path": [ + "enkelvoudiginformatieobjecten" + ] + } + }, + "response": [] + }, + { + "name": "Temp (DRC) Create EnkelvoudigInformatieObject with gebruiksrecht null", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "pm.environment.set(\"informatieobject_gebruiksrecht_null_url\", pm.response.json().url);" + ], + "type": "text/javascript", + "packages": {} + } + }, + { + "listen": "prerequest", + "script": { + "exec": [ + "pm.environment.set(\"object_inhoud\", btoa(\"string\"))" + ], + "type": "text/javascript", + "packages": {} + } + } + ], + "request": { + "method": "POST", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n \"bronorganisatie\": \"000000000\",\n \"creatiedatum\": \"2019-01-01\",\n \"titel\": \"testobject\",\n \"auteur\": \"testauteur\",\n \"formaat\": \"application/pdf\",\n \"taal\": \"nld\",\n \"bestandsnaam\": \"test 3.pdf\",\n \"inhoud\": \"{{object_inhoud}}\",\n \"informatieobjecttype\": \"{{informatieobjecttype_url}}\",\n \"indicatieGebruiksrecht\": null,\n \"bestandsomvang\": 6\n}" + }, + "url": { + "raw": "{{drc_url}}/enkelvoudiginformatieobjecten", + "host": [ + "{{drc_url}}" + ], + "path": [ + "enkelvoudiginformatieobjecten" + ] + } + }, + "response": [] + } + ], + "event": [ + { + "listen": "prerequest", + "script": { + "type": "text/javascript", + "exec": [ + "" + ] + } + }, + { + "listen": "test", + "script": { + "type": "text/javascript", + "exec": [ + "" + ] + } + } + ] + }, + { + "name": "zrc-001", + "item": [ + { + "name": "Zaak", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "if(pm.response.code == 201) {", + " var zaak = pm.response.json();", + " pm.environment.set(\"zaak_url\", zaak.url);", + " pm.environment.set(\"zaakidentificatie\", zaak.identificatie);", + "}" + ], + "type": "text/javascript", + "packages": {} + } + }, + { + "listen": "prerequest", + "script": { + "exec": [ + "" + ], + "type": "text/javascript", + "packages": {} + } + } + ], + "request": { + "method": "POST", + "header": [ + { + "key": "Content-Crs", + "value": "EPSG:4326" + }, + { + "key": "Accept-Crs", + "value": "EPSG:4326" + }, + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n \"bronorganisatie\": \"000000000\",\n \"omschrijving\": \"string\",\n \"toelichting\": \"string\",\n \"registratiedatum\": \"2019-04-09\",\n \"verantwoordelijkeOrganisatie\": \"000000000\",\n \"zaaktype\": \"{{zaaktype_url}}\",\n \"startdatum\": \"2019-04-09\",\n \"einddatumGepland\": \"2019-04-20\",\n \"uiterlijkeEinddatumAfdoening\": \"2019-04-09\",\n \"publicatiedatum\": \"2019-04-09\",\n \"vertrouwelijkheidaanduiding\": \"openbaar\",\n \"betalingsindicatie\": \"geheel\",\n \"laatsteBetaalDatum\": \"2019-01-01\",\n \"zaakgeometrie\": {\n \"type\": \"Point\",\n \"coordinates\": [\n 53,\n 5\n ]\n },\n \"opschorting\": {\n \"indicatie\": true,\n \"reden\": \"string\"\n },\n \"selectielijstklasse\": \"{{selectielijstklasse_url}}\",\n \"archiefstatus\": \"nog_te_archiveren\",\n \"deelzaaktypen\" : [\"{{deelzaaktype_url}}\"]\n}" + }, + "url": { + "raw": "{{zrc_url}}/zaken", + "host": [ + "{{zrc_url}}" + ], + "path": [ + "zaken" + ] + } + }, + "response": [] + }, + { + "name": "(zrc-001b) Zaak bijwerken is mogelijk", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "pm.test(\"Zaak bijwerken met valide gegevens geeft 200\", function() {", + " pm.response.to.have.status(200);", + "});", + "", + "" + ], + "type": "text/javascript", + "packages": {} + } + }, + { + "listen": "prerequest", + "script": { + "exec": [ + "" + ], + "type": "text/javascript", + "packages": {} + } + } + ], + "request": { + "method": "PUT", + "header": [ + { + "key": "Content-Crs", + "value": "EPSG:4326" + }, + { + "key": "Accept-Crs", + "value": "EPSG:4326" + }, + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\r\n \"bronorganisatie\": \"000000000\",\r\n \"omschrijving\": \"andere string\",\r\n \"toelichting\": \"string\",\r\n \"registratiedatum\": \"2019-04-09\",\r\n \"verantwoordelijkeOrganisatie\": \"000000000\",\r\n \"zaaktype\": \"{{zaaktype_url}}\",\r\n \"startdatum\": \"2019-04-09\",\r\n \"einddatumGepland\": \"2019-04-20\",\r\n \"uiterlijkeEinddatumAfdoening\": \"2019-04-09\",\r\n \"publicatiedatum\": \"2019-04-09\",\r\n \"vertrouwelijkheidaanduiding\": \"openbaar\",\r\n \"betalingsindicatie\": \"geheel\",\r\n \"laatsteBetaalDatum\": \"2019-01-01\",\r\n \"zaakgeometrie\": {\r\n \"type\": \"Point\",\r\n \"coordinates\": [\r\n 53,\r\n 5\r\n ]\r\n },\r\n \"opschorting\": {\r\n \"indicatie\": true,\r\n \"reden\": \"string\"\r\n },\r\n \"selectielijstklasse\": \"{{selectielijstklasse_url}}\",\r\n \"archiefstatus\": \"nog_te_archiveren\",\r\n \"deelzaaktypen\" : [\"{{deelzaaktype_url}}\"]\r\n}" + }, + "url": { + "raw": "{{zaak_url}}", + "host": [ + "{{zaak_url}}" + ] + } + }, + "response": [] + }, + { + "name": "(zrc-001c) Zaak deels bijwerken is mogelijk", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "pm.test(\"Zaak deels bijwerken met valide zaaktype url geeft 200\", function() {", + " pm.response.to.have.status(200);", + " pm.expect(pm.response.json().toelichting).to.be.equal(pm.environment.get(\"toelichting\"));", + "});", + "", + "pm.test(\"Zaak deels bijwerken past gegevens correct aan\", function() {", + " pm.expect(pm.response.json().toelichting).to.be.equal(pm.environment.get(\"toelichting\"));", + "});" + ], + "type": "text/javascript" + } + }, + { + "listen": "prerequest", + "script": { + "exec": [ + "pm.environment.set(\"toelichting\", \"aangepaste toelichting\")" + ], + "type": "text/javascript" + } + } + ], + "request": { + "method": "PATCH", + "header": [ + { + "key": "Content-Crs", + "value": "EPSG:4326" + }, + { + "key": "Accept-Crs", + "value": "EPSG:4326" + }, + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n\t\"toelichting\": \"{{toelichting}}\"\n}" + }, + "url": { + "raw": "{{zaak_url}}", + "host": [ + "{{zaak_url}}" + ] + } + }, + "response": [] + }, + { + "name": "(zrc-001d) Zaak aanmaken met ongeldige zaaktype url is onmogelijk", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "pm.test(\"Zaak aanmaken met zaaktype url die niet resulteert in 200 geeft 400\", function() {", + " pm.response.to.have.status(400);", + " ", + " // Verify that the 400 is returned for the correct reason", + " var error = pm.response.json()[\"invalidParams\"][0];", + " pm.expect(error.name).to.be.equal(\"zaaktype\");", + " pm.expect(error.code).to.be.equal(\"bad-url\");", + "});", + "", + "// If the test failed and the Zaak was created, delete it", + "if(pm.response.code == 201) {", + " pm.environment.set(\"created_zaak_url\", pm.response.json().url);", + "", + "}" + ], + "type": "text/javascript", + "packages": {} + } + }, + { + "listen": "prerequest", + "script": { + "exec": [ + "" + ], + "type": "text/javascript", + "packages": {} + } + } + ], + "request": { + "method": "POST", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Accept-Crs", + "value": "EPSG:4326" + }, + { + "key": "Content-Crs", + "value": "EPSG:4326" + } + ], + "body": { + "mode": "raw", + "raw": "{\r\n \"bronorganisatie\": \"000000000\",\r\n \"omschrijving\": \"string\",\r\n \"toelichting\": \"string\",\r\n \"registratiedatum\": \"2019-04-09\",\r\n \"verantwoordelijkeOrganisatie\": \"000000000\",\r\n \"zaaktype\": \"{{ztc_url}}/zaaktypen/xyz\",\r\n \"startdatum\": \"2019-04-09\",\r\n \"einddatumGepland\": \"2019-04-20\",\r\n \"uiterlijkeEinddatumAfdoening\": \"2019-04-09\",\r\n \"publicatiedatum\": \"2019-04-09\",\r\n \"vertrouwelijkheidaanduiding\": \"openbaar\",\r\n \"betalingsindicatie\": \"geheel\",\r\n \"laatsteBetaalDatum\": \"2019-01-01\",\r\n \"zaakgeometrie\": {\r\n \"type\": \"Point\",\r\n \"coordinates\": [\r\n 53,\r\n 5\r\n ]\r\n },\r\n \"opschorting\": {\r\n \"indicatie\": true,\r\n \"reden\": \"string\"\r\n },\r\n \"selectielijstklasse\": \"{{selectielijstklasse_url}}\",\r\n \"archiefstatus\": \"nog_te_archiveren\",\r\n \"deelzaaktypen\" : [\"{{deelzaaktype_url}}\"]\r\n}" + }, + "url": { + "raw": "{{zrc_url}}/zaken", + "host": [ + "{{zrc_url}}" + ], + "path": [ + "zaken" + ] + } + }, + "response": [] + }, + { + "name": "(zrc-001e) Zaak aanmaken met zaaktype url die niet wijst naar Zaaktype is onmogelijk", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "pm.test(\"Zaak aanmaken met zaaktype url die niet wijst naar Zaaktype-resource geeft 400\", function() {", + " pm.response.to.have.status(400);", + " ", + " // Verify that the 400 is returned for the correct reason", + " var error = pm.response.json()[\"invalidParams\"][0];", + " pm.expect(error.name).to.be.equal(\"zaaktype\");", + " ", + "});", + "", + "// If the test failed and the Zaak was created, delete it", + "if(pm.response.code == 201) {", + " pm.environment.set(\"created_zaak_url\", pm.response.json().url);", + "", + "}" + ], + "type": "text/javascript", + "packages": {} + } + }, + { + "listen": "prerequest", + "script": { + "exec": [ + "" + ], + "type": "text/javascript", + "packages": {} + } + } + ], + "request": { + "method": "POST", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Accept-Crs", + "value": "EPSG:4326" + }, + { + "key": "Content-Crs", + "value": "EPSG:4326" + } + ], + "body": { + "mode": "raw", + "raw": "{\r\n \"bronorganisatie\": \"000000000\",\r\n \"omschrijving\": \"string\",\r\n \"toelichting\": \"string\",\r\n \"registratiedatum\": \"2019-04-09\",\r\n \"verantwoordelijkeOrganisatie\": \"000000000\",\r\n \"zaaktype\": \"https://www.roxit.nl\",\r\n \"startdatum\": \"2019-04-09\",\r\n \"einddatumGepland\": \"2019-04-20\",\r\n \"uiterlijkeEinddatumAfdoening\": \"2019-04-09\",\r\n \"publicatiedatum\": \"2019-04-09\",\r\n \"vertrouwelijkheidaanduiding\": \"openbaar\",\r\n \"betalingsindicatie\": \"geheel\",\r\n \"laatsteBetaalDatum\": \"2019-01-01\",\r\n \"zaakgeometrie\": {\r\n \"type\": \"Point\",\r\n \"coordinates\": [\r\n 53,\r\n 5\r\n ]\r\n },\r\n \"opschorting\": {\r\n \"indicatie\": true,\r\n \"reden\": \"string\"\r\n },\r\n \"selectielijstklasse\": \"{{selectielijstklasse_url}}\",\r\n \"archiefstatus\": \"nog_te_archiveren\",\r\n \"deelzaaktypen\" : [\"{{deelzaaktype_url}}\"]\r\n}" + }, + "url": { + "raw": "{{zrc_url}}/zaken", + "host": [ + "{{zrc_url}}" + ], + "path": [ + "zaken" + ] + } + }, + "response": [] + }, + { + "name": "Create Zaaktype for Zaak updates", + "event": [ + { + "listen": "prerequest", + "script": { + "exec": [ + "", + "var uuid = require('uuid');", + "var myUUID = uuid.v4(); ", + "pm.environment.set(\"random_identificatie3\", myUUID);", + "" + ], + "type": "text/javascript", + "packages": {} + } + }, + { + "listen": "test", + "script": { + "exec": [ + "pm.environment.set(\"temp_zaaktype_url\", pm.response.json().url);" + ], + "type": "text/javascript", + "packages": {} + } + } + ], + "request": { + "method": "POST", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n\t\"identificatie\": \"{{random_identificatie3}}\",\n \"omschrijving\": \"zrc_tests_1\",\n \"vertrouwelijkheidaanduiding\": \"openbaar\",\n \"doel\": \"test doel\",\n \"verantwoordelijke\":\"X\",\n \"aanleiding\": \"test aanleiding\",\n \"indicatieInternOfExtern\": \"extern\",\n \"handelingInitiator\": \"indienen\",\n \"onderwerp\": \"openbare ruimte\",\n \"handelingBehandelaar\": \"behandelen\",\n \"doorlooptijd\": \"P10D\",\n \"opschortingEnAanhoudingMogelijk\": false,\n \"verlengingMogelijk\": true,\n \"publicatieIndicatie\": false,\n \"productenOfDiensten\": [\n \"https://ref.tst.vng.cloud/standaard/\"\n ],\n \"selectielijstProcestype\": \"{{procestype_procestermijn_nihil_url}}\",\n \"referentieproces\": {\n \"naam\": \"test\",\n \"link\": \"\"\n },\n \"deelzaaktypen\": [\n \"{{deelzaaktype_identificatie}}\"\n ],\n \"catalogus\": \"{{catalogus_url}}\",\n \"statustypen\": [\n \n ],\n \"resultaattypen\": [\n ],\n \"eigenschappen\": [\n ],\n \"informatieobjecttypen\": [],\n \"besluittypen\": [\n \"{{besluittype_omschrijving}}\"\n ],\n \"gerelateerdeZaaktypen\": [],\n \"beginGeldigheid\": \"2019-01-01\",\n \"versiedatum\": \"2019-01-01\",\n \"concept\": true,\n \"verlengingstermijn\": \"P5D\"\n}" + }, + "url": { + "raw": "{{ztc_url}}/zaaktypen", + "host": [ + "{{ztc_url}}" + ], + "path": [ + "zaaktypen" + ] + } + }, + "response": [] + }, + { + "name": "(zrc-001f) Zaak aanmaken met concept zaaktype is onmogelijk", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "pm.test(\"Zaak aanmaken met concept zaaktype geeft 400\", function() {", + " pm.response.to.have.status(400);", + " ", + " // Verify that the 400 is returned for the correct reason", + " var error = pm.response.json()[\"invalidParams\"][0];", + " pm.expect(error.name).to.be.equal(\"zaaktype\");", + " pm.expect(error.code).to.be.equal(\"not-published\");", + "});", + "", + "// If the test failed and the Zaak was created, delete it", + "if(pm.response.code == 201) {", + " pm.environment.set(\"created_zaak_url\", pm.response.json().url);", + "", + "}" + ], + "type": "text/javascript", + "packages": {} + } + }, + { + "listen": "prerequest", + "script": { + "exec": [ + "" + ], + "type": "text/javascript", + "packages": {} + } + } + ], + "request": { + "method": "POST", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Accept-Crs", + "value": "EPSG:4326" + }, + { + "key": "Content-Crs", + "value": "EPSG:4326" + } + ], + "body": { + "mode": "raw", + "raw": "{\r\n \"bronorganisatie\": \"000000000\",\r\n \"omschrijving\": \"string\",\r\n \"toelichting\": \"string\",\r\n \"registratiedatum\": \"2019-04-09\",\r\n \"verantwoordelijkeOrganisatie\": \"000000000\",\r\n \"zaaktype\": \"{{temp_zaaktype_url}}\",\r\n \"startdatum\": \"2019-04-09\",\r\n \"einddatumGepland\": \"2019-04-20\",\r\n \"uiterlijkeEinddatumAfdoening\": \"2019-04-09\",\r\n \"publicatiedatum\": \"2019-04-09\",\r\n \"vertrouwelijkheidaanduiding\": \"openbaar\",\r\n \"betalingsindicatie\": \"geheel\",\r\n \"laatsteBetaalDatum\": \"2019-01-01\",\r\n \"zaakgeometrie\": {\r\n \"type\": \"Point\",\r\n \"coordinates\": [\r\n 53,\r\n 5\r\n ]\r\n },\r\n \"opschorting\": {\r\n \"indicatie\": true,\r\n \"reden\": \"string\"\r\n },\r\n \"selectielijstklasse\": \"{{selectielijstklasse_url}}\",\r\n \"archiefstatus\": \"nog_te_archiveren\",\r\n \"deelzaaktypen\" : [\"{{deelzaaktype_url}}\"]\r\n}" + }, + "url": { + "raw": "{{zrc_url}}/zaken", + "host": [ + "{{zrc_url}}" + ], + "path": [ + "zaken" + ] + } + }, + "response": [] + } + ], + "event": [ + { + "listen": "prerequest", + "script": { + "type": "text/javascript", + "exec": [ + "" + ] + } + }, + { + "listen": "test", + "script": { + "type": "text/javascript", + "exec": [ + "" + ] + } + } + ] + }, + { + "name": "zrc-002", + "item": [ + { + "name": "(zrc-002a) Zaak aanmaken met bestaande combinatie identificatie en bronorganisatie is onmogelijk", + "event": [ + { + "listen": "prerequest", + "script": { + "exec": [ + "" + ], + "type": "text/javascript", + "packages": {} + } + }, + { + "listen": "test", + "script": { + "exec": [ + "pm.test(\"Zaak aanmaken met bestaande combinatie bronorganisatie en identificatie geeft 400\", function() {", + " pm.response.to.have.status(400);", + " ", + " var error = pm.response.json()[\"invalidParams\"][0];", + " pm.expect(error.name).to.be.equal(\"identificatie\");", + " pm.expect(error.code).to.be.equal(\"identificatie-niet-uniek\");", + "});", + "", + "// If the test failed and the Zaak was created, delete it", + "if(pm.response.code == 201) {", + " pm.environment.set(\"created_zaak_url\", pm.response.json().url);", + "", + "}" + ], + "type": "text/javascript", + "packages": {} + } + } + ], + "request": { + "method": "POST", + "header": [ + { + "key": "Accept-Crs", + "value": "EPSG:4326" + }, + { + "key": "Content-Crs", + "value": "EPSG:4326" + }, + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\r\n \"bronorganisatie\": \"000000000\",\r\n \"identificatie\": \"{{zaakidentificatie}}\",\r\n \"omschrijving\": \"string\",\r\n \"toelichting\": \"string\",\r\n \"registratiedatum\": \"2019-04-09\",\r\n \"verantwoordelijkeOrganisatie\": \"000000000\",\r\n \"zaaktype\": \"{{zaaktype_url}}\",\r\n \"startdatum\": \"2019-04-09\",\r\n \"einddatumGepland\": \"2019-04-20\",\r\n \"uiterlijkeEinddatumAfdoening\": \"2019-04-09\",\r\n \"publicatiedatum\": \"2019-04-09\",\r\n \"vertrouwelijkheidaanduiding\": \"openbaar\",\r\n \"betalingsindicatie\": \"geheel\",\r\n \"laatsteBetaalDatum\": \"2019-01-01\",\r\n \"zaakgeometrie\": {\r\n \"type\": \"Point\",\r\n \"coordinates\": [\r\n 53,\r\n 5\r\n ]\r\n },\r\n \"opschorting\": {\r\n \"indicatie\": true,\r\n \"reden\": \"string\"\r\n },\r\n \"selectielijstklasse\": \"{{selectielijstklasse_url}}\",\r\n \"archiefstatus\": \"nog_te_archiveren\",\r\n \"deelzaaktypen\" : [\"{{deelzaaktype_url}}\"]\r\n}" + }, + "url": { + "raw": "{{zrc_url}}/zaken", + "host": [ + "{{zrc_url}}" + ], + "path": [ + "zaken" + ] + } + }, + "response": [] + }, + { + "name": "Create Zaak with unique identificatie and bronorganisatie", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "pm.environment.set(\"created_zaak_url\", pm.response.json().url);" + ], + "type": "text/javascript", + "packages": {} + } + }, + { + "listen": "prerequest", + "script": { + "packages": {}, + "type": "text/javascript", + "exec": [] + } + } + ], + "request": { + "method": "POST", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Content-Crs", + "value": "EPSG:4326" + }, + { + "key": "Accept-Crs", + "value": "EPSG:4326" + } + ], + "body": { + "mode": "raw", + "raw": "{\r\n \"bronorganisatie\": \"000000000\",\r\n \"omschrijving\": \"string\",\r\n \"toelichting\": \"string\",\r\n \"registratiedatum\": \"2019-04-09\",\r\n \"verantwoordelijkeOrganisatie\": \"000000000\",\r\n \"zaaktype\": \"{{zaaktype_url}}\",\r\n \"startdatum\": \"2019-04-09\",\r\n \"einddatumGepland\": \"2019-04-20\",\r\n \"uiterlijkeEinddatumAfdoening\": \"2019-04-09\",\r\n \"publicatiedatum\": \"2019-04-09\",\r\n \"vertrouwelijkheidaanduiding\": \"openbaar\",\r\n \"betalingsindicatie\": \"geheel\",\r\n \"laatsteBetaalDatum\": \"2019-01-01\",\r\n \"zaakgeometrie\": {\r\n \"type\": \"Point\",\r\n \"coordinates\": [\r\n 53,\r\n 5\r\n ]\r\n },\r\n \"opschorting\": {\r\n \"indicatie\": true,\r\n \"reden\": \"string\"\r\n },\r\n \"selectielijstklasse\": \"{{selectielijstklasse_url}}\",\r\n \"archiefstatus\": \"nog_te_archiveren\",\r\n \"deelzaaktypen\" : [\"{{deelzaaktype_url}}\"]\r\n}" + }, + "url": { + "raw": "{{zrc_url}}/zaken", + "host": [ + "{{zrc_url}}" + ], + "path": [ + "zaken" + ] + }, + "description": "Maakt een Zaak aan die gebruikt zal worden in de tests, deze zaak wordt na de tests weer verwijderd.\n\nDe body van deze Zaak zal ook als variabele opgeslagen worden en gebruikt worden (met kleine aanpassingen iedere keer) in de requests voor de validatie tests, om te voorkomen dat telkens hetzelfde body gekopieerd moet worden." + }, + "response": [] + }, + { + "name": "(zrc-002b) Zaak bijwerken met bestaande combinatie identificatie en bronorganisatie is onmogelijk", + "event": [ + { + "listen": "prerequest", + "script": { + "exec": [ + "" + ], + "type": "text/javascript", + "packages": {} + } + }, + { + "listen": "test", + "script": { + "exec": [ + "pm.test(\"Zaak aanmaken met bestaande combinatie bronorganisatie en identificatie geeft 400\", function() {", + " pm.response.to.have.status(400);", + " ", + " var error = pm.response.json()[\"invalidParams\"][0];", + " pm.expect(error.name).to.be.equal(\"identificatie\");", + " pm.expect(error.code).to.be.equal(\"wijzigen-niet-toegelaten\");", + "});" + ], + "type": "text/javascript", + "packages": {} + } + } + ], + "request": { + "method": "PUT", + "header": [ + { + "key": "Accept-Crs", + "value": "EPSG:4326" + }, + { + "key": "Content-Crs", + "value": "EPSG:4326" + }, + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\r\n \"bronorganisatie\": \"000000000\",\r\n \"identificatie\": \"{{zaakidentificatie}}\",\r\n \"omschrijving\": \"string\",\r\n \"toelichting\": \"string\",\r\n \"registratiedatum\": \"2019-04-09\",\r\n \"verantwoordelijkeOrganisatie\": \"000000000\",\r\n \"zaaktype\": \"{{zaaktype_url}}\",\r\n \"startdatum\": \"2019-04-09\",\r\n \"einddatumGepland\": \"2019-04-20\",\r\n \"uiterlijkeEinddatumAfdoening\": \"2019-04-09\",\r\n \"publicatiedatum\": \"2019-04-09\",\r\n \"vertrouwelijkheidaanduiding\": \"openbaar\",\r\n \"betalingsindicatie\": \"geheel\",\r\n \"laatsteBetaalDatum\": \"2019-01-01\",\r\n \"zaakgeometrie\": {\r\n \"type\": \"Point\",\r\n \"coordinates\": [\r\n 53,\r\n 5\r\n ]\r\n },\r\n \"opschorting\": {\r\n \"indicatie\": true,\r\n \"reden\": \"string\"\r\n },\r\n \"selectielijstklasse\": \"{{selectielijstklasse_url}}\",\r\n \"archiefstatus\": \"nog_te_archiveren\",\r\n \"deelzaaktypen\" : [\"{{deelzaaktype_url}}\"]\r\n}" + }, + "url": { + "raw": "{{created_zaak_url}}", + "host": [ + "{{created_zaak_url}}" + ] + } + }, + "response": [] + }, + { + "name": "(zrc-002c) Zaak deels bijwerken met bestaande combinatie identificatie en bronorganisatie is onmogelijk", + "event": [ + { + "listen": "prerequest", + "script": { + "exec": [ + "" + ], + "type": "text/javascript", + "packages": {} + } + }, + { + "listen": "test", + "script": { + "exec": [ + "pm.test(\"Zaak aanmaken met bestaande combinatie bronorganisatie en identificatie geeft 400\", function() {", + " pm.response.to.have.status(400);", + " ", + " var error = pm.response.json()[\"invalidParams\"][0];", + " pm.expect(error.name).to.be.equal(\"identificatie\");", + " pm.expect(error.code).to.be.equal(\"wijzigen-niet-toegelaten\");", + "});", + "", + "" + ], + "type": "text/javascript", + "packages": {} + } + } + ], + "request": { + "method": "PATCH", + "header": [ + { + "key": "Accept-Crs", + "value": "EPSG:4326" + }, + { + "key": "Content-Crs", + "value": "EPSG:4326" + }, + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n\t\"identificatie\": \"{{zaakidentificatie}}\",\n\t\"bronorganisatie\": \"000000000\"\n}" + }, + "url": { + "raw": "{{created_zaak_url}}", + "host": [ + "{{created_zaak_url}}" + ] + } + }, + "response": [] + }, + { + "name": "Retrieve Zaken for bronorganisatie", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "pm.environment.set(\"zaken_for_bronorganisatie\", pm.response.json().results);" + ], + "type": "text/javascript" + } + } + ], + "request": { + "method": "GET", + "header": [ + { + "key": "Accept-Crs", + "value": "EPSG:4326" + } + ], + "url": { + "raw": "{{zrc_url}}/zaken?bronorganisatie={{zaak_bronorganisatie}}", + "host": [ + "{{zrc_url}}" + ], + "path": [ + "zaken" + ], + "query": [ + { + "key": "bronorganisatie", + "value": "{{zaak_bronorganisatie}}" + } + ] + } + }, + "response": [] + }, + { + "name": "Genereer unieke identificatie voor Zaak onder bronorganisatie", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "if (pm.response.code==201){", + "", + " pm.environment.set(\"unieke_zaak_identificatie\", pm.response.json().identificatie);", + "}" + ], + "type": "text/javascript", + "packages": {} + } + }, + { + "listen": "prerequest", + "script": { + "exec": [ + "" + ], + "type": "text/javascript", + "packages": {} + } + } + ], + "request": { + "method": "POST", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Accept-Crs", + "value": "EPSG:4326" + }, + { + "key": "Content-Crs", + "value": "EPSG:4326" + } + ], + "body": { + "mode": "raw", + "raw": "{\r\n \"bronorganisatie\": \"000000000\",\r\n \"omschrijving\": \"string\",\r\n \"toelichting\": \"string\",\r\n \"registratiedatum\": \"2019-04-09\",\r\n \"verantwoordelijkeOrganisatie\": \"000000000\",\r\n \"zaaktype\": \"{{zaaktype_url}}\",\r\n \"startdatum\": \"2019-04-09\",\r\n \"einddatumGepland\": \"2019-04-20\",\r\n \"uiterlijkeEinddatumAfdoening\": \"2019-04-09\",\r\n \"publicatiedatum\": \"2019-04-09\",\r\n \"vertrouwelijkheidaanduiding\": \"openbaar\",\r\n \"betalingsindicatie\": \"geheel\",\r\n \"laatsteBetaalDatum\": \"2019-01-01\",\r\n \"zaakgeometrie\": {\r\n \"type\": \"Point\",\r\n \"coordinates\": [\r\n 53,\r\n 5\r\n ]\r\n },\r\n \"opschorting\": {\r\n \"indicatie\": true,\r\n \"reden\": \"string\"\r\n },\r\n \"selectielijstklasse\": \"{{selectielijstklasse_url}}\",\r\n \"archiefstatus\": \"nog_te_archiveren\",\r\n \"deelzaaktypen\" : [\"{{deelzaaktype_url}}\"]\r\n}" + }, + "url": { + "raw": "{{zrc_url}}/zaken", + "host": [ + "{{zrc_url}}" + ], + "path": [ + "zaken" + ] + } + }, + "response": [] + }, + { + "name": "(zrc-002d) is identificatie uniek", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "pm.test(\"zrc-002d gegenereerde identificatie is uniek\", function() {\r", + " pm.expect(pm.response.json().count).to.be.equal(1);\r", + "})" + ], + "type": "text/javascript", + "packages": {} + } + } + ], + "request": { + "method": "GET", + "header": [ + { + "key": "Accept-Crs", + "value": "EPSG:4326" + } + ], + "url": { + "raw": "{{zrc_url}}/zaken?identificatie={{unieke_zaak_identificatie}}", + "host": [ + "{{zrc_url}}" + ], + "path": [ + "zaken" + ], + "query": [ + { + "key": "identificatie", + "value": "{{unieke_zaak_identificatie}}" + } + ] + } + }, + "response": [] + } + ], + "event": [ + { + "listen": "prerequest", + "script": { + "type": "text/javascript", + "exec": [ + "" + ] + } + }, + { + "listen": "test", + "script": { + "type": "text/javascript", + "exec": [ + "" + ] + } + } + ] + }, + { + "name": "zrc-003", + "item": [ + { + "name": "Zaak Copy", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "if(pm.response.code == 201) {", + " var zaak = pm.response.json();", + " pm.environment.set(\"zaak_url\", zaak.url);", + "}" + ], + "type": "text/javascript", + "packages": {} + } + }, + { + "listen": "prerequest", + "script": { + "exec": [ + "" + ], + "type": "text/javascript", + "packages": {} + } + } + ], + "request": { + "method": "POST", + "header": [ + { + "key": "Content-Crs", + "value": "EPSG:4326" + }, + { + "key": "Accept-Crs", + "value": "EPSG:4326" + }, + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n \"bronorganisatie\": \"000000000\",\n \"omschrijving\": \"string\",\n \"toelichting\": \"string\",\n \"registratiedatum\": \"2019-04-09\",\n \"verantwoordelijkeOrganisatie\": \"000000000\",\n \"zaaktype\": \"{{zaaktype_url}}\",\n \"startdatum\": \"2019-04-09\",\n \"einddatumGepland\": \"2019-04-20\",\n \"uiterlijkeEinddatumAfdoening\": \"2019-04-09\",\n \"publicatiedatum\": \"2019-04-09\",\n \"vertrouwelijkheidaanduiding\": \"openbaar\",\n \"betalingsindicatie\": \"geheel\",\n \"laatsteBetaalDatum\": \"2019-01-01\",\n \"zaakgeometrie\": {\n \"type\": \"Point\",\n \"coordinates\": [\n 53,\n 5\n ]\n },\n \"opschorting\": {\n \"indicatie\": true,\n \"reden\": \"string\"\n },\n \"selectielijstklasse\": \"{{selectielijstklasse_url}}\",\n \"archiefstatus\": \"nog_te_archiveren\",\n \"deelzaaktypen\" : [\"{{deelzaaktype_url}}\"]\n}" + }, + "url": { + "raw": "{{zrc_url}}/zaken", + "host": [ + "{{zrc_url}}" + ], + "path": [ + "zaken" + ] + } + }, + "response": [] + }, + { + "name": "(zrc-003a) ZaakInformatieObject aanmaken is mogelijk", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "pm.test(\"ZaakInformatieObject aanmaken met valide gegevens geeft 201\", function() {", + " pm.response.to.have.status(201);", + "});", + "", + "if(pm.response.code == 201) {", + " pm.environment.set(\"zaakinformatieobject_body\", pm.request.body.raw);", + " pm.environment.set(\"created_zaakinformatieobject_url\", pm.response.json().url);", + "}" + ], + "type": "text/javascript" + } + } + ], + "request": { + "method": "POST", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n\t\"zaak\": \"{{zaak_url}}\",\n\t\"informatieobject\": \"{{informatieobject_url}}\",\n\t\"titel\": \"test\",\n\t\"beschrijving\": \"bla\"\n}" + }, + "url": { + "raw": "{{zrc_url}}/zaakinformatieobjecten", + "host": [ + "{{zrc_url}}" + ], + "path": [ + "zaakinformatieobjecten" + ] + } + }, + "response": [] + }, + { + "name": "(zrc-003b) ZaakInformatieObject bijwerken is mogelijk", + "event": [ + { + "listen": "prerequest", + "script": { + "exec": [ + "// Retrieve the Zaak body template and modify as needed", + "var body = JSON.parse(pm.environment.get(\"zaakinformatieobject_body\"));", + "pm.environment.set(\"beschrijving\", \"aangepaste beschrijving\");", + "body.beschrijving = pm.environment.get(\"beschrijving\");", + "", + "// Store the modified Zaak body, allowing it to be used in the main request", + "pm.environment.set(\"request_body\", JSON.stringify(body));" + ], + "type": "text/javascript" + } + }, + { + "listen": "test", + "script": { + "exec": [ + "pm.test(\"ZaakInformatieObject bijwerken met valide gegevens geeft 200\", function() {", + " pm.response.to.have.status(200);", + "});", + "", + "pm.test(\"ZaakInformatieObject bijwerken past gegevens correct aan\", function() {", + " pm.expect(pm.response.json().beschrijving).to.be.equal(pm.environment.get(\"beschrijving\"));", + "});" + ], + "type": "text/javascript" + } + } + ], + "request": { + "method": "PUT", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{{request_body}}" + }, + "url": { + "raw": "{{created_zaakinformatieobject_url}}", + "host": [ + "{{created_zaakinformatieobject_url}}" + ] + } + }, + "response": [] + }, + { + "name": "(zrc-003c) ZaakInformatieObject deels bijwerken is mogelijk", + "event": [ + { + "listen": "prerequest", + "script": { + "exec": [ + "pm.environment.set(\"titel\", \"aangepaste titel\");" + ], + "type": "text/javascript", + "packages": {} + } + }, + { + "listen": "test", + "script": { + "exec": [ + "pm.test(\"ZaakInformatieObject deels bijwerken met valide gegevens geeft 200\", function() {", + " pm.response.to.have.status(200);", + "});", + "", + "pm.test(\"ZaakInformatieObject deels bijwerken past gegevens correct aan\", function() {", + " pm.expect(pm.response.json().titel).to.be.equal(pm.environment.get(\"titel\"));", + "});", + "", + "" + ], + "type": "text/javascript", + "packages": {} + } + } + ], + "request": { + "method": "PATCH", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n\t\"titel\": \"{{titel}}\"\n}" + }, + "url": { + "raw": "{{created_zaakinformatieobject_url}}", + "host": [ + "{{created_zaakinformatieobject_url}}" + ] + } + }, + "response": [] + }, + { + "name": "(zrc-003d) ZaakInformatieObject aanmaken met ongeldige informatieobject url is onmogelijk", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "pm.test(\"BesluitInformatieObject aanmaken met informatieobject url die niet resulteert in 200 geeft 404\", function() {", + " pm.response.to.have.status(400);", + " ", + " // Verify that error was thrown for correct reason", + " var error = pm.response.json()[\"invalidParams\"][0];", + " pm.expect(error.name).to.be.equal(\"informatieobject\");", + " pm.expect(error.code).to.be.equal(\"bad-url\");", + "});", + "", + "if(pm.response.code == 201) {", + " pm.environment.set(\"created_zaakinformatieobject_url\", pm.response.json().url);", + "", + "}" + ], + "type": "text/javascript", + "packages": {} + } + } + ], + "request": { + "method": "POST", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n\t\"zaak\": \"{{zaak_url}}\",\n\t\"informatieobject\": \"{{mock_url}}/404\",\n\t\"titel\": \"test\",\n\t\"beschrijving\": \"bla\"\n}" + }, + "url": { + "raw": "{{zrc_url}}/zaakinformatieobjecten", + "host": [ + "{{zrc_url}}" + ], + "path": [ + "zaakinformatieobjecten" + ] + } + }, + "response": [] + } + ] + }, + { + "name": "zrc-004", + "item": [ + { + "name": "Zaak", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "if(pm.response.code == 201) {", + " var zaak = pm.response.json();", + " pm.environment.set(\"zaak_url\", zaak.url);", + "}" + ], + "type": "text/javascript", + "packages": {} + } + }, + { + "listen": "prerequest", + "script": { + "exec": [ + "" + ], + "type": "text/javascript", + "packages": {} + } + } + ], + "request": { + "method": "POST", + "header": [ + { + "key": "Content-Crs", + "value": "EPSG:4326" + }, + { + "key": "Accept-Crs", + "value": "EPSG:4326" + }, + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n \"bronorganisatie\": \"000000000\",\n \"omschrijving\": \"string\",\n \"toelichting\": \"string\",\n \"registratiedatum\": \"2019-04-09\",\n \"verantwoordelijkeOrganisatie\": \"000000000\",\n \"zaaktype\": \"{{zaaktype_url}}\",\n \"startdatum\": \"2019-04-09\",\n \"einddatumGepland\": \"2019-04-20\",\n \"uiterlijkeEinddatumAfdoening\": \"2019-04-09\",\n \"publicatiedatum\": \"2019-04-09\",\n \"vertrouwelijkheidaanduiding\": \"openbaar\",\n \"betalingsindicatie\": \"geheel\",\n \"laatsteBetaalDatum\": \"2019-01-01\",\n \"zaakgeometrie\": {\n \"type\": \"Point\",\n \"coordinates\": [\n 53,\n 5\n ]\n },\n \"opschorting\": {\n \"indicatie\": true,\n \"reden\": \"string\"\n },\n \"selectielijstklasse\": \"{{selectielijstklasse_url}}\",\n \"archiefstatus\": \"nog_te_archiveren\",\n \"deelzaaktypen\" : [\"{{deelzaaktype_url}}\"]\n}" + }, + "url": { + "raw": "{{zrc_url}}/zaken", + "host": [ + "{{zrc_url}}" + ], + "path": [ + "zaken" + ] + } + }, + "response": [] + }, + { + "name": "(DRC) Create EnkelvoudigInformatieObject", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "pm.environment.set(\"informatieobject_url\", pm.response.json().url);" + ], + "type": "text/javascript", + "packages": {} + } + }, + { + "listen": "prerequest", + "script": { + "exec": [ + "" + ], + "type": "text/javascript", + "packages": {} + } + } + ], + "request": { + "method": "POST", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n\t\"bronorganisatie\": \"000000000\",\n\t\"creatiedatum\": \"2019-01-01\",\n\t\"titel\": \"testobject\",\n\t\"auteur\": \"testauteur\",\n \"formaat\": \"application/pdf\",\n \"taal\": \"nld\",\n \"bestandsnaam\": \"test 3.pdf\",\n\t\"inhoud\": \"{{object_inhoud}}\",\n\t\"informatieobjecttype\": \"{{informatieobjecttype_url}}\",\n \"indicatieGebruiksrecht\": false,\n \"status\": \"gearchiveerd\",\n\t\"bestandsomvang\": 6\n}" + }, + "url": { + "raw": "{{drc_url}}/enkelvoudiginformatieobjecten", + "host": [ + "{{drc_url}}" + ], + "path": [ + "enkelvoudiginformatieobjecten" + ] + } + }, + "response": [] + }, + { + "name": "(zrc-004a) ZaakInformatieObject aanmaken zet aard_relatie op hoort_bij en registratiedatum op nu", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "var moment = require('moment');", + "", + "pm.test(\"ZaakInformatieObject aanmaken zet aardRelatie op legt_vast\", function() {", + " pm.expect(pm.response.json().aardRelatieWeergave).to.include(\"Hoort bij\");", + "});", + "", + "pm.test(\"ZaakInformatieObject aanmaken zet registratiedatum op moment van aanmaken\", function() {", + " pm.expect(pm.response.json().registratiedatum).to.include(moment.utc().format(\"YYYY-MM-DD\"));", + "});", + "", + "if(pm.response.code == 201) {", + " pm.environment.set(\"created_zaakinformatieobject_url\", pm.response.json().url);", + " pm.environment.set(\"zaakinformatieobject_body\", pm.request.body.raw)", + "}", + "" + ], + "type": "text/javascript" + } + } + ], + "request": { + "method": "POST", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n\t\"informatieobject\": \"{{informatieobject_url}}\",\n\t\"zaak\": \"{{zaak_url}}\",\n\t\"registratiedatum\": \"1900-01-01\"\n}" + }, + "url": { + "raw": "{{zrc_url}}/zaakinformatieobjecten", + "host": [ + "{{zrc_url}}" + ], + "path": [ + "zaakinformatieobjecten" + ] + } + }, + "response": [] + }, + { + "name": "(zrc-004b) ZaakInformatieObject bijwerken relatie aanpassen is niet mogelijk", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "pm.test(\"ZaakInformatieObject bijwerken relatie aanpassen is niet mogelijk\", function() {", + " pm.expect(pm.response.json().aardRelatieWeergave).to.include(\"Hoort bij\");", + "});" + ], + "type": "text/javascript" + } + }, + { + "listen": "prerequest", + "script": { + "exec": [ + "var body = JSON.parse(pm.environment.get(\"zaakinformatieobject_body\"));", + "body.aardRelatieWeergave = \"aangepast\";", + "", + "pm.environment.set(\"request_body\", JSON.stringify(body));" + ], + "type": "text/javascript" + } + } + ], + "request": { + "method": "PUT", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{{request_body}}" + }, + "url": { + "raw": "{{created_zaakinformatieobject_url}}", + "host": [ + "{{created_zaakinformatieobject_url}}" + ] + } + }, + "response": [] + }, + { + "name": "(zrc-004c) ZaakInformatieObject deels bijwerken relatie aanpassen is niet mogelijk", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "pm.test(\"ZaakInformatieObject deels bijwerken relatie aanpassen is niet mogelijk\", function() {", + " pm.expect(pm.response.json().aardRelatieWeergave).to.include(\"Hoort bij\");", + "});" + ], + "type": "text/javascript" + } + }, + { + "listen": "prerequest", + "script": { + "exec": [ + "" + ], + "type": "text/javascript" + } + } + ], + "request": { + "method": "PATCH", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n\t\"aardRelatieWeergave\": \"aangepast\"\n}" + }, + "url": { + "raw": "{{created_zaakinformatieobject_url}}", + "host": [ + "{{created_zaakinformatieobject_url}}" + ] + } + }, + "response": [] + }, + { + "name": "Create different Zaak", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "if(pm.response.code == 201) {", + " pm.environment.set(\"created_zaak_url\", pm.response.json().url);", + "}" + ], + "type": "text/javascript" + } + } + ], + "request": { + "method": "POST", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Accept-Crs", + "value": "EPSG:4326" + }, + { + "key": "Content-Crs", + "value": "EPSG:4326" + } + ], + "body": { + "mode": "raw", + "raw": "{{zaak_body}}" + }, + "url": { + "raw": "{{zrc_url}}/zaken", + "host": [ + "{{zrc_url}}" + ], + "path": [ + "zaken" + ] + } + }, + "response": [] + }, + { + "name": "(zrc-004d) ZaakInformatieObject bijwerken zaak aanpassen is niet toegestaan", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "pm.test(\"ZaakInformatieObject bijwerken zaak aanpassen geeft 400\", function() {", + " pm.response.to.have.status(400);", + " ", + " var error = pm.response.json()[\"invalidParams\"][0];", + " pm.expect(error.name).to.be.equal(\"zaak\");", + " pm.expect(error.code).to.be.equal(\"wijzigen-niet-toegelaten\");", + "});" + ], + "type": "text/javascript" + } + }, + { + "listen": "prerequest", + "script": { + "exec": [ + "var body = JSON.parse(pm.environment.get(\"zaakinformatieobject_body\"));", + "body.zaak = pm.environment.get(\"created_zaak_url\");", + "", + "pm.environment.set(\"request_body\", JSON.stringify(body));" + ], + "type": "text/javascript" + } + } + ], + "request": { + "method": "PUT", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{{request_body}}" + }, + "url": { + "raw": "{{created_zaakinformatieobject_url}}", + "host": [ + "{{created_zaakinformatieobject_url}}" + ] + } + }, + "response": [] + }, + { + "name": "(zrc-004e) ZaakInformatieObject deels bijwerken zaak aanpassen is niet toegestaan", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "pm.test(\"ZaakInformatieObject deels bijwerken zaak aanpassen geeft 400\", function() {", + " pm.response.to.have.status(400);", + " ", + " var error = pm.response.json()[\"invalidParams\"][0];", + " pm.expect(error.name).to.be.equal(\"zaak\");", + " pm.expect(error.code).to.be.equal(\"wijzigen-niet-toegelaten\");", + "});" + ], + "type": "text/javascript" + } + }, + { + "listen": "prerequest", + "script": { + "exec": [ + "var body = JSON.parse(pm.environment.get(\"zaakinformatieobject_body\"));", + "body.zaak = pm.environment.get(\"created_zaak_url\");", + "", + "pm.environment.set(\"request_body\", JSON.stringify(body));" + ], + "type": "text/javascript" + } + } + ], + "request": { + "method": "PATCH", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n\t\"zaak\": \"{{created_zaak_url}}\"\n}" + }, + "url": { + "raw": "{{created_zaakinformatieobject_url}}", + "host": [ + "{{created_zaakinformatieobject_url}}" + ] + } + }, + "response": [] + }, + { + "name": "(zrc-004f) ZaakInformatieObject bijwerken informatieobject aanpassen is niet toegestaan", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "pm.test(\"ZaakInformatieObject bijwerken informatieobject aanpassen geeft 400\", function() {", + " pm.response.to.have.status(400);", + " ", + " var error = pm.response.json()[\"invalidParams\"][0];", + " pm.expect(error.name).to.be.equal(\"informatieobject\");", + " pm.expect(error.code).to.be.equal(\"wijzigen-niet-toegelaten\");", + "});" + ], + "type": "text/javascript" + } + }, + { + "listen": "prerequest", + "script": { + "exec": [ + "var body = JSON.parse(pm.environment.get(\"zaakinformatieobject_body\"));", + "body.informatieobject = pm.environment.get(\"informatieobject_gebruiksrecht_null_url\");", + "", + "pm.environment.set(\"request_body\", JSON.stringify(body));" + ], + "type": "text/javascript" + } + } + ], + "request": { + "method": "PUT", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{{request_body}}" + }, + "url": { + "raw": "{{created_zaakinformatieobject_url}}", + "host": [ + "{{created_zaakinformatieobject_url}}" + ] + } + }, + "response": [] + }, + { + "name": "(zrc-004g) ZaakInformatieObject deels bijwerken informatieobject aanpassen is niet toegestaan", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "pm.test(\"ZaakInformatieObject deels bijwerken informatieobject aanpassen geeft 400\", function() {", + " pm.response.to.have.status(400);", + " ", + " var error = pm.response.json()[\"invalidParams\"][0];", + " pm.expect(error.name).to.be.equal(\"informatieobject\");", + " pm.expect(error.code).to.be.equal(\"wijzigen-niet-toegelaten\");", + "});" + ], + "type": "text/javascript" + } + }, + { + "listen": "prerequest", + "script": { + "exec": [ + "" + ], + "type": "text/javascript" + } + } + ], + "request": { + "method": "PATCH", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n\t\"informatieobject\": \"{{informatieobject_gebruiksrecht_null_url}}\"\n}" + }, + "url": { + "raw": "{{created_zaakinformatieobject_url}}", + "host": [ + "{{created_zaakinformatieobject_url}}" + ] + } + }, + "response": [] + }, + { + "name": "Delete different Zaak", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "" + ], + "type": "text/javascript", + "packages": {} + } + } + ], + "request": { + "method": "DELETE", + "header": [ + { + "key": "Accept-Crs", + "value": "EPSG:4326" + } + ], + "body": { + "mode": "raw", + "raw": "" + }, + "url": { + "raw": "{{created_zaak_url}}", + "host": [ + "{{created_zaak_url}}" + ] + } + }, + "response": [] + } + ] + }, + { + "name": "zrc-005", + "item": [ + { + "name": "Zaak", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "if(pm.response.code == 201) {", + " var zaak = pm.response.json();", + " pm.environment.set(\"zaak_url\", zaak.url);", + "}" + ], + "type": "text/javascript", + "packages": {} + } + }, + { + "listen": "prerequest", + "script": { + "exec": [ + "" + ], + "type": "text/javascript", + "packages": {} + } + } + ], + "request": { + "method": "POST", + "header": [ + { + "key": "Content-Crs", + "value": "EPSG:4326" + }, + { + "key": "Accept-Crs", + "value": "EPSG:4326" + }, + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n \"bronorganisatie\": \"000000000\",\n \"omschrijving\": \"string\",\n \"toelichting\": \"string\",\n \"registratiedatum\": \"2019-04-09\",\n \"verantwoordelijkeOrganisatie\": \"000000000\",\n \"zaaktype\": \"{{zaaktype_url}}\",\n \"startdatum\": \"2019-04-09\",\n \"einddatumGepland\": \"2019-04-20\",\n \"uiterlijkeEinddatumAfdoening\": \"2019-04-09\",\n \"publicatiedatum\": \"2019-04-09\",\n \"vertrouwelijkheidaanduiding\": \"openbaar\",\n \"betalingsindicatie\": \"geheel\",\n \"laatsteBetaalDatum\": \"2019-01-01\",\n \"zaakgeometrie\": {\n \"type\": \"Point\",\n \"coordinates\": [\n 53,\n 5\n ]\n },\n \"opschorting\": {\n \"indicatie\": true,\n \"reden\": \"string\"\n },\n \"selectielijstklasse\": \"{{selectielijstklasse_url}}\",\n \"archiefstatus\": \"nog_te_archiveren\",\n \"deelzaaktypen\" : [\"{{deelzaaktype_url}}\"]\n}" + }, + "url": { + "raw": "{{zrc_url}}/zaken", + "host": [ + "{{zrc_url}}" + ], + "path": [ + "zaken" + ] + } + }, + "response": [] + }, + { + "name": "(DRC) EnkelvoudigInformatieObject", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "pm.environment.set(\"informatieobject_url\", pm.response.json().url);" + ], + "type": "text/javascript", + "packages": {} + } + }, + { + "listen": "prerequest", + "script": { + "exec": [ + "" + ], + "type": "text/javascript", + "packages": {} + } + } + ], + "request": { + "method": "POST", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n\t\"bronorganisatie\": \"000000000\",\n\t\"creatiedatum\": \"2019-01-01\",\n\t\"titel\": \"testobject\",\n\t\"auteur\": \"testauteur\",\n \"formaat\": \"application/pdf\",\n \"taal\": \"nld\",\n \"bestandsnaam\": \"test 3.pdf\",\n\t\"inhoud\": \"{{object_inhoud}}\",\n\t\"informatieobjecttype\": \"{{informatieobjecttype_url}}\",\n \"indicatieGebruiksrecht\": false,\n \"status\": \"gearchiveerd\",\n\t\"bestandsomvang\": 6\n}" + }, + "url": { + "raw": "{{drc_url}}/enkelvoudiginformatieobjecten", + "host": [ + "{{drc_url}}" + ], + "path": [ + "enkelvoudiginformatieobjecten" + ] + } + }, + "response": [] + }, + { + "name": "Create ZaakInformatieObject", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "if(pm.response.code == 201) {", + " pm.environment.set(\"created_zaakinformatieobject_url\", pm.response.json().url);", + "}" + ], + "type": "text/javascript", + "packages": {} + } + } + ], + "request": { + "method": "POST", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\r\n \"informatieobject\": \"{{informatieobject_url}}\",\r\n \"zaak\": \"{{zaak_url}}\",\r\n \"registratiedatum\": \"1900-01-01\"\r\n}" + }, + "url": { + "raw": "{{zrc_url}}/zaakinformatieobjecten", + "host": [ + "{{zrc_url}}" + ], + "path": [ + "zaakinformatieobjecten" + ] + } + }, + "response": [] + }, + { + "name": "(zrc-005a) ZaakInformatieObject aanmaken maakt ObjectInformatieObject aan met objectType zaak", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "var jsonData = pm.response.json();", + "", + "pm.test(\"ZaakInformatieObject aanmaken maakt een ObjectInformatieObject in DRC\", function() {", + " pm.response.to.have.status(200);", + " pm.expect(jsonData.length).to.be.equal(1);", + "});", + "", + "pm.test(\"ZaakInformatieObject aanmaken maakt een ObjectInformatieObject met objectType zaak\", function() {", + " pm.expect(jsonData[0].objectType).to.be.equal(\"zaak\");", + "});", + "", + "pm.test(\"ZaakInformatieObject aanmaken maakt een ObjectInformatieObject met correcte zaak en informatieobject\", function() {", + " pm.expect(jsonData[0].object).to.be.equal(pm.environment.get(\"zaak_url\"));", + " pm.expect(jsonData[0].informatieobject).to.be.equal(pm.environment.get(\"informatieobject_url\"));", + "});" + ], + "type": "text/javascript" + } + } + ], + "request": { + "method": "GET", + "header": [], + "url": { + "raw": "{{drc_url}}/objectinformatieobjecten?object={{zaak_url}}&informatieobject={{informatieobject_url}}", + "host": [ + "{{drc_url}}" + ], + "path": [ + "objectinformatieobjecten" + ], + "query": [ + { + "key": "object", + "value": "{{zaak_url}}" + }, + { + "key": "informatieobject", + "value": "{{informatieobject_url}}" + } + ] + } + }, + "response": [] + }, + { + "name": "Delete ZaakInformatieObject", + "request": { + "method": "DELETE", + "header": [], + "body": { + "mode": "raw", + "raw": "" + }, + "url": { + "raw": "{{created_zaakinformatieobject_url}}", + "host": [ + "{{created_zaakinformatieobject_url}}" + ] + } + }, + "response": [] + }, + { + "name": "(zrc-005b) ZaakInformatieObject verwijderen verwijdert ObjectInformatieObject uit DRC", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "pm.test(\"BesluitInformatieObject verwijderen verwijdert ObjectInformatieObject in DRC\", function() {", + " pm.response.to.have.status(200);", + " pm.expect(pm.response.json().length).to.be.equal(0);", + "});" + ], + "type": "text/javascript" + } + } + ], + "request": { + "method": "GET", + "header": [], + "url": { + "raw": "{{drc_url}}/objectinformatieobjecten?object={{zaak_url}}&informatieobject={{informatieobject_url}}", + "host": [ + "{{drc_url}}" + ], + "path": [ + "objectinformatieobjecten" + ], + "query": [ + { + "key": "object", + "value": "{{zaak_url}}" + }, + { + "key": "informatieobject", + "value": "{{informatieobject_url}}" + } + ] + } + }, + "response": [] + } + ] + }, + { + "name": "zrc-006", + "item": [ + { + "name": "set full token", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "pm.environment.set(\"jwt_token\", pm.environment.get(\"jwt_full\"));", + " var origId = pm.environment.get(\"_original_client_id\");", + " var origSecret = pm.environment.get(\"_original_secret\");", + " if (origId) { pm.environment.set(\"client_id\", origId); }", + " if (origSecret) { pm.environment.set(\"secret\", origSecret); }", + " pm.environment.set(\"secret\", pm.environment.get(\"secret\") || \"procest-admin-secret-key-for-testing\");" + ], + "type": "text/javascript", + "packages": {} + } + } + ], + "request": { + "method": "GET", + "header": [], + "url": { + "raw": "{{ztc_url}}/catalogussen", + "host": [ + "{{ztc_url}}" + ], + "path": [ + "catalogussen" + ] + } + }, + "response": [] + }, + { + "name": "Create ZT", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "if(pm.response.code == 201) {", + " pm.environment.set(\"zaaktype_for_auth_url\", pm.response.json().url);", + "}", + "", + "" + ], + "type": "text/javascript", + "packages": {} + } + }, + { + "listen": "prerequest", + "script": { + "exec": [ + "var uuid = require('uuid');", + "var myUUID = uuid.v4(); ", + "pm.environment.set(\"random_identificatie-ztc-01\", myUUID);" + ], + "type": "text/javascript", + "packages": {} + } + } + ], + "request": { + "method": "POST", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\r\n\t\"identificatie\": \"{{random_identificatie-ztc-01}}\",\r\n \"omschrijving\": \"Melding Openbare Ruimte\",\r\n \"vertrouwelijkheidaanduiding\": \"openbaar\",\r\n \"doel\": \"test doel\",\r\n \"verantwoordelijke\":\"X\",\r\n \"aanleiding\": \"test aanleiding\",\r\n \"indicatieInternOfExtern\": \"extern\",\r\n \"handelingInitiator\": \"indienen\",\r\n \"onderwerp\": \"openbare ruimte\",\r\n \"handelingBehandelaar\": \"behandelen\",\r\n \"doorlooptijd\": \"P10D\",\r\n \"opschortingEnAanhoudingMogelijk\": false,\r\n \"verlengingMogelijk\": false,\r\n \"publicatieIndicatie\": false,\r\n \"productenOfDiensten\": [\r\n \"https://ref.tst.vng.cloud/standaard/\"\r\n ],\r\n \"selectielijstProcestype\": \"{{procestype_url}}\",\r\n \"referentieproces\": {\r\n \"naam\": \"test\",\r\n \"link\": \"\"\r\n },\r\n \"catalogus\": \"{{catalogus_url}}\",\r\n \"deelzaaktypen\": [],\r\n \"statustypen\": [],\r\n \"resultaattypen\": [],\r\n \"eigenschappen\": [],\r\n \"informatieobjecttypen\": [],\r\n \"besluittypen\": [],\r\n \"gerelateerdeZaaktypen\": [],\r\n \"beginGeldigheid\": \"2005-01-01\",\r\n \"eindeGeldigheid\": \"2012-01-01\",\r\n \"versiedatum\": \"2012-01-01\",\r\n \"concept\": true\r\n}" + }, + "url": { + "raw": "{{ztc_url}}/zaaktypen", + "host": [ + "{{ztc_url}}" + ], + "path": [ + "zaaktypen" + ] + } + }, + "response": [] + }, + { + "name": "Publish ZT", + "request": { + "method": "POST", + "header": [], + "url": { + "raw": "{{zaaktype_for_auth_url}}/publish", + "host": [ + "{{zaaktype_for_auth_url}}" + ], + "path": [ + "publish" + ] + } + }, + "response": [] + }, + { + "name": "Zaak openbaar", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "if(pm.response.code == 201) {", + " var zaak = pm.response.json();", + " pm.environment.set(\"openbare_zaak_url\", pm.response.json().url);", + "}" + ], + "type": "text/javascript", + "packages": {} + } + }, + { + "listen": "prerequest", + "script": { + "exec": [ + "" + ], + "type": "text/javascript", + "packages": {} + } + } + ], + "request": { + "method": "POST", + "header": [ + { + "key": "Content-Crs", + "value": "EPSG:4326" + }, + { + "key": "Accept-Crs", + "value": "EPSG:4326" + }, + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n \"bronorganisatie\": \"000000000\",\n \"omschrijving\": \"string\",\n \"toelichting\": \"string\",\n \"registratiedatum\": \"2019-04-09\",\n \"verantwoordelijkeOrganisatie\": \"000000000\",\n \"zaaktype\": \"{{zaaktype_for_auth_url}}\",\n \"startdatum\": \"2019-04-09\",\n \"einddatumGepland\": \"2019-04-20\",\n \"uiterlijkeEinddatumAfdoening\": \"2019-04-09\",\n \"publicatiedatum\": \"2019-04-09\",\n \"vertrouwelijkheidaanduiding\": \"openbaar\",\n \"betalingsindicatie\": \"geheel\",\n \"laatsteBetaalDatum\": \"2019-01-01\",\n \"zaakgeometrie\": {\n \"type\": \"Point\",\n \"coordinates\": [\n 53,\n 5\n ]\n },\n \"opschorting\": {\n \"indicatie\": true,\n \"reden\": \"string\"\n },\n \"selectielijstklasse\": \"{{selectielijstklasse_url}}\",\n \"archiefstatus\": \"nog_te_archiveren\",\n \"deelzaaktypen\" : [\"{{deelzaaktype_url}}\"]\n}" + }, + "url": { + "raw": "{{zrc_url}}/zaken", + "host": [ + "{{zrc_url}}" + ], + "path": [ + "zaken" + ] + } + }, + "response": [] + }, + { + "name": "Zaak geheim", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "if(pm.response.code == 201) {\r", + " var zaak = pm.response.json();\r", + " pm.environment.set(\"geheime_zaak_url\", pm.response.json().url);\r", + "}" + ], + "type": "text/javascript", + "packages": {} + } + } + ], + "request": { + "method": "POST", + "header": [ + { + "key": "Content-Crs", + "value": "EPSG:4326", + "type": "text" + }, + { + "key": "Accept-Crs", + "value": "EPSG:4326", + "type": "text" + } + ], + "body": { + "mode": "raw", + "raw": "{\r\n \"bronorganisatie\": \"000000000\",\r\n \"omschrijving\": \"string\",\r\n \"toelichting\": \"string\",\r\n \"registratiedatum\": \"2019-04-09\",\r\n \"verantwoordelijkeOrganisatie\": \"000000000\",\r\n \"zaaktype\": \"{{zaaktype_for_auth_url}}\",\r\n \"startdatum\": \"2019-04-09\",\r\n \"einddatumGepland\": \"2019-04-20\",\r\n \"uiterlijkeEinddatumAfdoening\": \"2019-04-09\",\r\n \"publicatiedatum\": \"2019-04-09\",\r\n \"vertrouwelijkheidaanduiding\": \"geheim\",\r\n \"betalingsindicatie\": \"geheel\",\r\n \"laatsteBetaalDatum\": \"2019-01-01\",\r\n \"zaakgeometrie\": {\r\n \"type\": \"Point\",\r\n \"coordinates\": [\r\n 53,\r\n 5\r\n ]\r\n },\r\n \"opschorting\": {\r\n \"indicatie\": true,\r\n \"reden\": \"string\"\r\n },\r\n \"selectielijstklasse\": \"{{selectielijstklasse_url}}\",\r\n \"archiefstatus\": \"nog_te_archiveren\",\r\n \"deelzaaktypen\" : [\"{{deelzaaktype_url}}\"]\r\n}", + "options": { + "raw": { + "language": "json" + } + } + }, + "url": { + "raw": "{{zrc_url}}/zaken", + "host": [ + "{{zrc_url}}" + ], + "path": [ + "zaken" + ] + } + }, + "response": [] + }, + { + "name": "set restricted token", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "" + ], + "type": "text/javascript", + "packages": {} + } + }, + { + "listen": "prerequest", + "script": { + "exec": [ + " pm.environment.set(\"jwt_token\", pm.environment.get(\"jwt-limited\"));\r", + " pm.environment.set(\"_original_client_id\", pm.environment.get(\"client_id\"));", + " pm.environment.set(\"_original_secret\", pm.environment.get(\"secret\"));", + " pm.environment.set(\"client_id\", pm.environment.get(\"client_id_limited\"));", + " pm.environment.set(\"secret\", pm.environment.get(\"secret_limited\"));", + " pm.environment.set(\"client_id\", pm.environment.get(\"client_id_limited\"));", + " pm.environment.set(\"secret\", pm.environment.get(\"secret_limited\"));", + " " + ], + "type": "text/javascript", + "packages": {} + } + } + ], + "request": { + "method": "GET", + "header": [], + "url": { + "raw": "{{ztc_url}}/catalogussen", + "host": [ + "{{ztc_url}}" + ], + "path": [ + "catalogussen" + ] + } + }, + "response": [] + }, + { + "name": "(zrc-006a) Zaken lijst ontsluit zaken op basis van autorisaties van consumer", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "pm.test(\"zrc-006a 1 van de 2 zaken wordt geretourneerd\", function () {", + "", + " pm.expect(pm.response.json().count).to.equal(1);", + "});" + ], + "type": "text/javascript", + "packages": {} + } + }, + { + "listen": "prerequest", + "script": { + "packages": {}, + "type": "text/javascript", + "exec": [] + } + } + ], + "request": { + "auth": { + "type": "bearer", + "bearer": [ + { + "key": "token", + "value": "{{jwt-zrc-006}}", + "type": "string" + } + ] + }, + "method": "GET", + "header": [ + { + "key": "Accept-Crs", + "value": "EPSG:4326" + } + ], + "url": { + "raw": "{{zrc_url}}/zaken?zaaktype={{zaaktype_for_auth_url}}", + "host": [ + "{{zrc_url}}" + ], + "path": [ + "zaken" + ], + "query": [ + { + "key": "zaaktype", + "value": "{{zaaktype_for_auth_url}}" + } + ] + } + }, + "response": [] + }, + { + "name": "(zrc-006b) Zaken lezen zonder verplichte scope in autorisatie niet toegestaan", + "event": [ + { + "listen": "prerequest", + "script": { + "exec": [ + "" + ], + "type": "text/javascript", + "packages": {} + } + }, + { + "listen": "test", + "script": { + "exec": [ + "pm.test(\"Zaken lezen zonder applicatie met zaken.lezen in autorisatie scopes geeft 403\", function() {", + " pm.response.to.have.status(403);", + " pm.expect(pm.response.json().code).to.be.equal(\"permission_denied\");", + "});" + ], + "type": "text/javascript", + "packages": {} + } + } + ], + "protocolProfileBehavior": { + "disableBodyPruning": true + }, + "request": { + "auth": { + "type": "bearer", + "bearer": [ + { + "key": "token", + "value": "{{jwt-zrc-006}}", + "type": "string" + } + ] + }, + "method": "GET", + "header": [ + { + "key": "Accept-Crs", + "value": "EPSG:4326" + }, + { + "key": "Content-Crs", + "value": "EPSG:4326" + } + ], + "body": { + "mode": "raw", + "raw": "" + }, + "url": { + "raw": "{{geheime_zaak_url}}", + "host": [ + "{{geheime_zaak_url}}" + ] + } + }, + "response": [] + }, + { + "name": "(zrc-006c) Zaak aanmaken zonder verplichte scope in autorisatie niet toegestaan", + "event": [ + { + "listen": "prerequest", + "script": { + "exec": [ + "" + ], + "type": "text/javascript", + "packages": {} + } + }, + { + "listen": "test", + "script": { + "exec": [ + "pm.test(\"Zaak aanmaken met applicatie zonder zaken.aanmaken in autorisatie scopes niet toegestaan\", function() {", + " pm.response.to.have.status(403);", + " pm.expect(pm.response.json().code).to.be.equal(\"permission_denied\");", + "});", + "", + "var next_requests = [];", + "", + "if(pm.response.code == 201) {", + " pm.environment.set(\"created_zaak_url\", pm.response.json().url);", + "", + "}" + ], + "type": "text/javascript", + "packages": {} + } + } + ], + "request": { + "auth": { + "type": "bearer", + "bearer": [ + { + "key": "token", + "value": "{{jwt-zrc-006}}", + "type": "string" + } + ] + }, + "method": "POST", + "header": [ + { + "key": "Accept-Crs", + "value": "EPSG:4326" + }, + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Content-Crs", + "value": "EPSG:4326" + } + ], + "body": { + "mode": "raw", + "raw": "{\r\n \"url\": \"https://zaken.spt-rx-services.nl/api/v1/zaken/cba40feb-2b38-4490-b12d-84a39e8df361\",\r\n \"uuid\": \"cba40feb-2b38-4490-b12d-84a39e8df361\",\r\n \"identificatie\": \"Z2024-00000038\",\r\n \"bronorganisatie\": \"000000000\",\r\n \"omschrijving\": \"string\",\r\n \"toelichting\": \"string\",\r\n \"zaaktype\": \"https://catalogi.spt-rx-services.nl/api/v1/zaaktypen/be24fd63-1663-46dc-8ea9-9c153642d4f9\",\r\n \"registratiedatum\": \"2019-04-09\",\r\n \"verantwoordelijkeOrganisatie\": \"000000000\",\r\n \"startdatum\": \"2019-04-09\",\r\n \"einddatum\": null,\r\n \"einddatumGepland\": \"2019-04-20\",\r\n \"uiterlijkeEinddatumAfdoening\": \"2019-04-09\",\r\n \"publicatiedatum\": \"2019-04-09\",\r\n \"communicatiekanaal\": \"\",\r\n \"productenOfDiensten\": [],\r\n \"vertrouwelijkheidaanduiding\": \"geheim\",\r\n \"betalingsindicatie\": \"geheel\",\r\n \"betalingsindicatieWeergave\": null,\r\n \"laatsteBetaaldatum\": \"2019-01-01T00:00:00Z\",\r\n \"zaakgeometrie\": {\r\n \"type\": \"Point\",\r\n \"coordinates\": [\r\n 53.0,\r\n 5.0\r\n ]\r\n },\r\n \"verlenging\": null,\r\n \"opschorting\": {\r\n \"indicatie\": true,\r\n \"reden\": \"string\"\r\n },\r\n \"selectielijstklasse\": \"https://referentielijsten.roxit.nl/api/v1/resultaten/0fe71ce3-b1e1-48eb-9070-be2756fc71b5\",\r\n \"hoofdzaak\": null,\r\n \"deelzaken\": [],\r\n \"relevanteAndereZaken\": [],\r\n \"eigenschappen\": [],\r\n \"rollen\": [],\r\n \"status\": null,\r\n \"zaakinformatieobjecten\": [],\r\n \"zaakobjecten\": [],\r\n \"resultaat\": null,\r\n \"kenmerken\": [],\r\n \"archiefnominatie\": null,\r\n \"archiefstatus\": \"nog_te_archiveren\",\r\n \"archiefactiedatum\": null,\r\n \"opdrachtgevendeOrganisatie\": null,\r\n \"processobjectaard\": null,\r\n \"startdatumBewaartermijn\": null,\r\n \"processobject\": null\r\n}" + }, + "url": { + "raw": "{{zrc_url}}/zaken", + "host": [ + "{{zrc_url}}" + ], + "path": [ + "zaken" + ] + } + }, + "response": [] + } + ], + "event": [ + { + "listen": "prerequest", + "script": { + "type": "text/javascript", + "exec": [ + "" + ] + } + }, + { + "listen": "test", + "script": { + "type": "text/javascript", + "exec": [ + "" + ] + } + } + ] + }, + { + "name": "zrc-007", + "item": [ + { + "name": "set full token", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "" + ], + "type": "text/javascript", + "packages": {} + } + }, + { + "listen": "prerequest", + "script": { + "exec": [ + "pm.environment.set(\"jwt_token\", pm.environment.get(\"jwt_full\"));", + " var origId = pm.environment.get(\"_original_client_id\");", + " var origSecret = pm.environment.get(\"_original_secret\");", + " if (origId) { pm.environment.set(\"client_id\", origId); }", + " if (origSecret) { pm.environment.set(\"secret\", origSecret); }", + " pm.environment.set(\"secret\", pm.environment.get(\"secret\") || \"procest-admin-secret-key-for-testing\");" + ], + "type": "text/javascript", + "packages": {} + } + } + ], + "request": { + "method": "GET", + "header": [], + "url": { + "raw": "{{ztc_url}}/catalogussen", + "host": [ + "{{ztc_url}}" + ], + "path": [ + "catalogussen" + ] + } + }, + "response": [] + }, + { + "name": "zaak", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "pm.environment.set(\"created_zaak_url\", pm.response.json().url);" + ], + "type": "text/javascript", + "packages": {} + } + }, + { + "listen": "prerequest", + "script": { + "exec": [ + "" + ], + "type": "text/javascript", + "packages": {} + } + } + ], + "request": { + "method": "POST", + "header": [ + { + "key": "Accept-Crs", + "value": "EPSG:4326" + }, + { + "key": "Content-Crs", + "value": "EPSG:4326" + }, + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\r\n\r\n \"bronorganisatie\": \"000000000\",\r\n \"omschrijving\": \"string\",\r\n \"toelichting\": \"string\",\r\n \"zaaktype\": \"{{zaaktype_url}}\",\r\n \"registratiedatum\": \"2019-04-09\",\r\n \"verantwoordelijkeOrganisatie\": \"000000000\",\r\n \"startdatum\": \"2019-04-09\",\r\n \"einddatum\": null,\r\n \"einddatumGepland\": \"2019-04-20\",\r\n \"uiterlijkeEinddatumAfdoening\": \"2019-04-09\",\r\n \"publicatiedatum\": \"2019-04-09\",\r\n \"communicatiekanaal\": \"\",\r\n \"productenOfDiensten\": [],\r\n \"vertrouwelijkheidaanduiding\": \"geheim\",\r\n \"betalingsindicatie\": \"geheel\",\r\n \"betalingsindicatieWeergave\": null,\r\n \"laatsteBetaaldatum\": \"2019-01-01T00:00:00Z\",\r\n \"zaakgeometrie\": {\r\n \"type\": \"Point\",\r\n \"coordinates\": [\r\n 53.0,\r\n 5.0\r\n ]\r\n },\r\n \"verlenging\": null,\r\n \"opschorting\": {\r\n \"indicatie\": true,\r\n \"reden\": \"string\"\r\n },\r\n \"selectielijstklasse\": \"https://referentielijsten.roxit.nl/api/v1/resultaten/0fe71ce3-b1e1-48eb-9070-be2756fc71b5\",\r\n \"hoofdzaak\": null,\r\n \"deelzaken\": [],\r\n \"relevanteAndereZaken\": [],\r\n \"eigenschappen\": [],\r\n \"rollen\": [],\r\n \"status\": null,\r\n \"zaakinformatieobjecten\": [],\r\n \"zaakobjecten\": [],\r\n \"resultaat\": null,\r\n \"kenmerken\": [],\r\n \"archiefnominatie\": null,\r\n \"archiefstatus\": \"nog_te_archiveren\",\r\n \"archiefactiedatum\": null,\r\n \"opdrachtgevendeOrganisatie\": null,\r\n \"processobjectaard\": null,\r\n \"startdatumBewaartermijn\": null,\r\n \"processobject\": null\r\n}" + }, + "url": { + "raw": "{{zrc_url}}/zaken", + "host": [ + "{{zrc_url}}" + ], + "path": [ + "zaken" + ] + } + }, + "response": [] + }, + { + "name": "(DRC) Create EnkelvoudigInformatieObject", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "pm.environment.set(\"informatieobject_url\", pm.response.json().url);" + ], + "type": "text/javascript", + "packages": {} + } + }, + { + "listen": "prerequest", + "script": { + "exec": [ + "" + ], + "type": "text/javascript", + "packages": {} + } + } + ], + "request": { + "method": "POST", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n\t\"bronorganisatie\": \"000000000\",\n\t\"creatiedatum\": \"2019-01-01\",\n\t\"titel\": \"testobject\",\n\t\"auteur\": \"testauteur\",\n \"formaat\": \"application/pdf\",\n \"taal\": \"nld\",\n \"bestandsnaam\": \"test 3.pdf\",\n\t\"inhoud\": \"c3RyaW5n\",\n\t\"informatieobjecttype\": \"{{informatieobjecttype_url}}\",\n \"indicatieGebruiksrecht\": false,\n \"status\": \"gearchiveerd\",\n\t\"bestandsomvang\": 6\n}" + }, + "url": { + "raw": "{{drc_url}}/enkelvoudiginformatieobjecten", + "host": [ + "{{drc_url}}" + ], + "path": [ + "enkelvoudiginformatieobjecten" + ] + } + }, + "response": [] + }, + { + "name": "Create relation between Zaak and Informatieobject with gebruiksrecht not null", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "pm.environment.set(\"created_zaakinformatieobject_url\", pm.response.json().url);" + ], + "type": "text/javascript" + } + }, + { + "listen": "prerequest", + "script": { + "exec": [ + "" + ], + "type": "text/javascript" + } + } + ], + "request": { + "method": "POST", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n \"informatieobject\": \"{{informatieobject_url}}\",\n \"zaak\": \"{{created_zaak_url}}\"\n}" + }, + "url": { + "raw": "{{zrc_url}}/zaakinformatieobjecten", + "host": [ + "{{zrc_url}}" + ], + "path": [ + "zaakinformatieobjecten" + ] + } + }, + "response": [] + }, + { + "name": "Add Resultaat to Zaak", + "event": [ + { + "listen": "prerequest", + "script": { + "exec": [ + "" + ], + "type": "text/javascript", + "packages": {} + } + }, + { + "listen": "test", + "script": { + "exec": [ + "pm.environment.set(\"zaak_resultaat_url\", pm.response.json().url);" + ], + "type": "text/javascript", + "packages": {} + } + } + ], + "request": { + "method": "POST", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n\t\"zaak\": \"{{created_zaak_url}}\",\n\t\"resultaattype\": \"{{resultaattype_url}}\"\n}" + }, + "url": { + "raw": "{{zrc_url}}/resultaten", + "host": [ + "{{zrc_url}}" + ], + "path": [ + "resultaten" + ] + } + }, + "response": [] + }, + { + "name": "Add Eindstatus to Zaak", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "pm.environment.set(\"eindstatus_datumStatusGezet\", pm.response.json().datumStatusGezet);", + "pm.environment.set(\"eindstatus_url\", pm.response.json().url);" + ], + "type": "text/javascript", + "packages": {} + } + }, + { + "listen": "prerequest", + "script": { + "exec": [ + "" + ], + "type": "text/javascript", + "packages": {} + } + } + ], + "request": { + "method": "POST", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n\t\"zaak\": \"{{created_zaak_url}}\",\n\t\"statustype\": \"{{eindstatustype}}\",\n\t\"datumStatusGezet\": \"2018-04-20T13:37:00\"\n}" + }, + "url": { + "raw": "{{zrc_url}}/statussen", + "host": [ + "{{zrc_url}}" + ], + "path": [ + "statussen" + ] + } + }, + "response": [] + }, + { + "name": "Add Klantcontact to Zaak", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "pm.environment.set(\"klantcontact_url\", pm.response.json().url);" + ], + "type": "text/javascript" + } + }, + { + "listen": "prerequest", + "script": { + "exec": [ + "" + ], + "type": "text/javascript" + } + } + ], + "request": { + "method": "POST", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n\t\"zaak\": \"{{created_zaak_url}}\",\n\t\"datumtijd\": \"2019-02-20T00:00:00\"\n}" + }, + "url": { + "raw": "{{zrc_url}}/klantcontacten", + "host": [ + "{{zrc_url}}" + ], + "path": [ + "klantcontacten" + ] + } + }, + "response": [] + }, + { + "name": "Add Rol to Zaak", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "pm.environment.set(\"rol_url\", pm.response.json().url);" + ], + "type": "text/javascript" + } + }, + { + "listen": "prerequest", + "script": { + "exec": [ + "" + ], + "type": "text/javascript" + } + } + ], + "request": { + "method": "POST", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n\t\"zaak\": \"{{created_zaak_url}}\",\n\t\"betrokkene\": \"http://example.com/2d0815580af94ee0a15aa677aa646e1a\",\n\t\"betrokkeneType\": \"natuurlijk_persoon\",\n\t\"rolomschrijving\": \"behandelaar\",\n\t\"roltoelichting\": \"testrol\",\n\t\"roltype\": \"{{roltype_url}}\"\n}" + }, + "url": { + "raw": "{{zrc_url}}/rollen", + "host": [ + "{{zrc_url}}" + ], + "path": [ + "rollen" + ] + } + }, + "response": [] + }, + { + "name": "Create Zaakobject", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "pm.environment.set(\"zaakobject_url\", pm.response.json().url);" + ], + "type": "text/javascript" + } + } + ], + "request": { + "method": "POST", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n\t\"zaak\": \"{{created_zaak_url}}\",\n\t\"objectType\": \"pand\",\n\t\"objectIdentificatie\": {\n\t\t\"identificatie\": \"test\"\n\t}\n}" + }, + "url": { + "raw": "{{zrc_url}}/zaakobjecten", + "host": [ + "{{zrc_url}}" + ], + "path": [ + "zaakobjecten" + ] + } + }, + "response": [] + }, + { + "name": "Add Zaakeigenschap to Zaak", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "pm.environment.set(\"zaakeigenschap_url\", pm.response.json().url);" + ], + "type": "text/javascript" + } + }, + { + "listen": "prerequest", + "script": { + "exec": [ + "" + ], + "type": "text/javascript" + } + } + ], + "request": { + "method": "POST", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n\t\"zaak\": \"{{created_zaak_url}}\",\n\t\"eigenschap\": \"{{zaaktype_eigenschap}}\",\n\t\"waarde\": \"test\"\n}" + }, + "url": { + "raw": "{{created_zaak_url}}/zaakeigenschappen", + "host": [ + "{{created_zaak_url}}" + ], + "path": [ + "zaakeigenschappen" + ] + } + }, + "response": [] + }, + { + "name": "(zrc-007a) Zaak.einddatum volgt logisch uit eindstatus", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "pm.test(\"Toevoegen eindstatus aan Zaak laat Zaak.einddatum afleiden uit status.datumStatusGezet\", function(){", + " pm.response.to.have.status(200);", + " ", + "", + " pm.expect(pm.response.json().einddatum).equals('2018-04-20');", + "});" + ], + "type": "text/javascript", + "packages": {} + } + }, + { + "listen": "prerequest", + "script": { + "exec": [ + "" + ], + "type": "text/javascript", + "packages": {} + } + } + ], + "protocolProfileBehavior": { + "disableBodyPruning": true + }, + "request": { + "method": "GET", + "header": [ + { + "key": "Accept-Crs", + "value": "EPSG:4326" + }, + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "" + }, + "url": { + "raw": "{{created_zaak_url}}", + "host": [ + "{{created_zaak_url}}" + ] + } + }, + "response": [] + }, + { + "name": "(zrc-007b) Informatieobject.indicatieGebruikersrecht niet null bij afsluiten zaak", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "pm.test(\"Afsluiten Zaak betekent Informatieobject.indicatieGebruiksrecht gezet voor alle gerelateerde objecten\", function(){", + " pm.response.to.have.status(200);", + " pm.expect(pm.response.json().indicatieGebruiksrecht).to.not.be.equal(null);", + "});", + "", + "" + ], + "type": "text/javascript", + "packages": {} + } + }, + { + "listen": "prerequest", + "script": { + "exec": [ + "" + ], + "type": "text/javascript", + "packages": {} + } + } + ], + "request": { + "method": "GET", + "header": [ + { + "key": "Accept-Crs", + "value": "EPSG:4326" + } + ], + "url": { + "raw": "{{informatieobject_url}}", + "host": [ + "{{informatieobject_url}}" + ] + } + }, + "response": [] + }, + { + "name": "set restricted token", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "pm.environment.set(\"jwt_token\", pm.environment.get(\"jwt-limited\"));", + " pm.environment.set(\"_original_client_id\", pm.environment.get(\"client_id\"));", + " pm.environment.set(\"_original_secret\", pm.environment.get(\"secret\"));", + " pm.environment.set(\"client_id\", pm.environment.get(\"client_id_limited\"));", + " pm.environment.set(\"secret\", pm.environment.get(\"secret_limited\"));", + " pm.environment.set(\"client_id\", pm.environment.get(\"client_id_limited\"));", + " pm.environment.set(\"secret\", pm.environment.get(\"secret_limited\"));" + ], + "type": "text/javascript", + "packages": {} + } + } + ], + "request": { + "method": "GET", + "header": [], + "url": { + "raw": "{{ztc_url}}/catalogussen", + "host": [ + "{{ztc_url}}" + ], + "path": [ + "catalogussen" + ] + } + }, + "response": [] + }, + { + "name": "(zrc-007c) Afgesloten zaak bijwerken is niet toegestaan zonder scope zaken.geforceerd-bijwerken", + "event": [ + { + "listen": "prerequest", + "script": { + "exec": [ + "" + ], + "type": "text/javascript", + "packages": {} + } + }, + { + "listen": "test", + "script": { + "exec": [ + "pm.test(\"Afgesloten Zaak bijwerken zonder scope zaken.geforceerd-bijwerken geeft 403\", function() {", + " pm.response.to.have.status(403);", + " pm.expect(pm.response.json().code).to.be.equal(\"permission_denied\");", + "});" + ], + "type": "text/javascript", + "packages": {} + } + } + ], + "request": { + "method": "PUT", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Accept-Crs", + "value": "EPSG:4326" + }, + { + "key": "Content-Crs", + "value": "EPSG:4326" + } + ], + "body": { + "mode": "raw", + "raw": "{\r\n\r\n \"bronorganisatie\": \"000000000\",\r\n \"omschrijving\": \"string\",\r\n \"toelichting\": \"string\",\r\n \"zaaktype\": \"{{zaaktype_url}}\",\r\n \"registratiedatum\": \"2019-04-09\",\r\n \"verantwoordelijkeOrganisatie\": \"000000000\",\r\n \"startdatum\": \"2019-04-09\",\r\n \"einddatum\": null,\r\n \"einddatumGepland\": \"2019-04-20\",\r\n \"uiterlijkeEinddatumAfdoening\": \"2019-04-09\",\r\n \"publicatiedatum\": \"2019-04-09\",\r\n \"communicatiekanaal\": \"\",\r\n \"productenOfDiensten\": [],\r\n \"vertrouwelijkheidaanduiding\": \"geheim\",\r\n \"betalingsindicatie\": \"geheel\",\r\n \"betalingsindicatieWeergave\": null,\r\n \"laatsteBetaaldatum\": \"2019-01-01T00:00:00Z\",\r\n \"zaakgeometrie\": {\r\n \"type\": \"Point\",\r\n \"coordinates\": [\r\n 53.0,\r\n 5.0\r\n ]\r\n },\r\n \"verlenging\": null,\r\n \"opschorting\": {\r\n \"indicatie\": true,\r\n \"reden\": \"string\"\r\n },\r\n \"selectielijstklasse\": \"https://referentielijsten.roxit.nl/api/v1/resultaten/0fe71ce3-b1e1-48eb-9070-be2756fc71b5\",\r\n \"hoofdzaak\": null,\r\n \"deelzaken\": [],\r\n \"relevanteAndereZaken\": [],\r\n \"eigenschappen\": [],\r\n \"rollen\": [],\r\n \"status\": null,\r\n \"zaakinformatieobjecten\": [],\r\n \"zaakobjecten\": [],\r\n \"resultaat\": null,\r\n \"kenmerken\": [],\r\n \"archiefnominatie\": null,\r\n \"archiefstatus\": \"nog_te_archiveren\",\r\n \"archiefactiedatum\": null,\r\n \"opdrachtgevendeOrganisatie\": null,\r\n \"processobjectaard\": null,\r\n \"startdatumBewaartermijn\": null,\r\n \"processobject\": null\r\n}" + }, + "url": { + "raw": "{{created_zaak_url}}", + "host": [ + "{{created_zaak_url}}" + ] + } + }, + "response": [] + }, + { + "name": "(zrc-007c) Afgesloten zaak deels bijwerken is niet toegestaan zonder scope zaken.geforceerd-bijwerken", + "event": [ + { + "listen": "prerequest", + "script": { + "exec": [ + "" + ], + "type": "text/javascript", + "packages": {} + } + }, + { + "listen": "test", + "script": { + "exec": [ + "pm.test(\"Afgesloten Zaak deels bijwerken zonder scope zaken.geforceerd-bijwerken geeft 403\", function() {", + " pm.response.to.have.status(403);", + " pm.expect(pm.response.json().code).to.be.equal(\"permission_denied\");", + "});", + "", + "" + ], + "type": "text/javascript", + "packages": {} + } + } + ], + "request": { + "method": "PATCH", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Accept-Crs", + "value": "EPSG:4326" + }, + { + "key": "Content-Crs", + "value": "EPSG:4326" + } + ], + "body": { + "mode": "raw", + "raw": "{\n\t\"omschrijving\": \"aangepast\"\n}" + }, + "url": { + "raw": "{{created_zaak_url}}", + "host": [ + "{{created_zaak_url}}" + ] + } + }, + "response": [] + }, + { + "name": "(zrc-007d) Klantcontact bij gesloten Zaak aanmaken niet toegestaan zonder scope zaken.geforceerd-bijwerken", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "pm.test(\"Klantcontact aanmaken bij gesloten Zaak zonder scope zaken.geforceerd-bijwerken geeft 403\", function() {", + " pm.response.to.have.status(403);", + " pm.expect(pm.response.json().code).to.be.equal(\"permission_denied\");", + "});" + ], + "type": "text/javascript", + "packages": {} + } + }, + { + "listen": "prerequest", + "script": { + "exec": [ + "" + ], + "type": "text/javascript", + "packages": {} + } + } + ], + "request": { + "method": "POST", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n\t\"zaak\": \"{{created_zaak_url}}\",\n\t\"datumtijd\": \"2019-02-22T00:00:00\"\n}" + }, + "url": { + "raw": "{{zrc_url}}/klantcontacten", + "host": [ + "{{zrc_url}}" + ], + "path": [ + "klantcontacten" + ] + } + }, + "response": [] + }, + { + "name": "(zrc-007e) Resultaat bij gesloten Zaak aanmaken niet toegestaan zonder scope zaken.geforceerd-bijwerken", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "pm.test(\"Resultaat aanmaken bij gesloten Zaak zonder scope zaken.geforceerd-bijwerken geeft 403\", function() {", + " pm.response.to.have.status(403);", + " pm.expect(pm.response.json().code).to.be.equal(\"permission_denied\");", + "});" + ], + "type": "text/javascript", + "packages": {} + } + }, + { + "listen": "prerequest", + "script": { + "exec": [ + "" + ], + "type": "text/javascript", + "packages": {} + } + } + ], + "request": { + "method": "POST", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n\t\"zaak\": \"{{created_zaak_url}}\",\n\t\"resultaattype\": \"{{resultaattype_url}}\"\n}" + }, + "url": { + "raw": "{{zrc_url}}/resultaten", + "host": [ + "{{zrc_url}}" + ], + "path": [ + "resultaten" + ] + } + }, + "response": [] + }, + { + "name": "(zrc-007e) Resultaat bij gesloten Zaak bijwerken niet toegestaan zonder scope zaken.geforceerd-bijwerken", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "pm.test(\"Resultaat bijwerken bij gesloten Zaak zonder scope zaken.geforceerd-bijwerken geeft 403\", function() {", + " pm.response.to.have.status(403);", + " pm.expect(pm.response.json().code).to.be.equal(\"permission_denied\");", + "});" + ], + "type": "text/javascript", + "packages": {} + } + }, + { + "listen": "prerequest", + "script": { + "exec": [ + "" + ], + "type": "text/javascript", + "packages": {} + } + } + ], + "request": { + "method": "PUT", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n\t\"zaak\": \"{{created_zaak_url}}\",\n\t\"resultaattype\": \"{{resultaattype_url}}\"\n}" + }, + "url": { + "raw": "{{zaak_resultaat_url}}", + "host": [ + "{{zaak_resultaat_url}}" + ] + } + }, + "response": [] + }, + { + "name": "(zrc-007e) Resultaat bij gesloten Zaak deels bijwerken niet toegestaan zonder scope zaken.geforceerd-bijwerken", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "pm.test(\"Resultaat deels bijwerken bij gesloten Zaak zonder scope zaken.geforceerd-bijwerken geeft 403\", function() {", + " pm.response.to.have.status(403);", + " pm.expect(pm.response.json().code).to.be.equal(\"permission_denied\");", + "});" + ], + "type": "text/javascript", + "packages": {} + } + }, + { + "listen": "prerequest", + "script": { + "exec": [ + "" + ], + "type": "text/javascript", + "packages": {} + } + } + ], + "request": { + "method": "PATCH", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n\t\"zaak\": \"{{created_zaak_url}}\",\n\t\"resultaattype\": \"{{resultaattype_url}}\"\n}" + }, + "url": { + "raw": "{{zaak_resultaat_url}}", + "host": [ + "{{zaak_resultaat_url}}" + ] + } + }, + "response": [] + }, + { + "name": "(zrc-007e) Resultaat bij gesloten Zaak verwijderen niet toegestaan zonder scope zaken.geforceerd-bijwerken", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "pm.test(\"Resultaat verwijderen bij gesloten Zaak zonder scope zaken.geforceerd-bijwerken geeft 403\", function() {", + " pm.response.to.have.status(403);", + " pm.expect(pm.response.json().code).to.be.equal(\"permission_denied\");", + "});" + ], + "type": "text/javascript", + "packages": {} + } + }, + { + "listen": "prerequest", + "script": { + "exec": [ + "" + ], + "type": "text/javascript", + "packages": {} + } + } + ], + "request": { + "method": "DELETE", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "url": { + "raw": "{{zaak_resultaat_url}}", + "host": [ + "{{zaak_resultaat_url}}" + ] + } + }, + "response": [] + }, + { + "name": "(zrc-007f) Rol bij gesloten Zaak aanmaken niet toegestaan zonder scope zaken.geforceerd-bijwerken", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "pm.test(\"Rol aanmaken bij gesloten Zaak zonder scope zaken.geforceerd-bijwerken geeft 403\", function() {", + " pm.response.to.have.status(403);", + " pm.expect(pm.response.json().code).to.be.equal(\"permission_denied\");", + "});" + ], + "type": "text/javascript", + "packages": {} + } + }, + { + "listen": "prerequest", + "script": { + "exec": [ + "" + ], + "type": "text/javascript", + "packages": {} + } + } + ], + "request": { + "method": "POST", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n\t\"zaak\": \"{{created_zaak_url}}\",\n\t\"betrokkene\": \"http://example.com/2d0815580af94ee0a15aa677aa646e1a\",\n\t\"betrokkeneType\": \"natuurlijk_persoon\",\n\t\"rolomschrijving\": \"behandelaar\",\n\t\"roltoelichting\": \"testrol\",\n\t\"roltype\": \"{{roltype_url}}\"\n}" + }, + "url": { + "raw": "{{zrc_url}}/rollen", + "host": [ + "{{zrc_url}}" + ], + "path": [ + "rollen" + ] + } + }, + "response": [] + }, + { + "name": "(zrc-007f) Rol bij gesloten Zaak verwijderen niet toegestaan zonder scope zaken.geforceerd-bijwerken", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "pm.test(\"Rol verwijderen bij gesloten Zaak zonder scope zaken.geforceerd-bijwerken geeft 403\", function() {", + " pm.response.to.have.status(403);", + " pm.expect(pm.response.json().code).to.be.equal(\"permission_denied\");", + "});" + ], + "type": "text/javascript", + "packages": {} + } + }, + { + "listen": "prerequest", + "script": { + "exec": [ + "" + ], + "type": "text/javascript", + "packages": {} + } + } + ], + "request": { + "method": "DELETE", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "url": { + "raw": "{{rol_url}}", + "host": [ + "{{rol_url}}" + ] + } + }, + "response": [] + }, + { + "name": "(zrc-007g) Status toevoegen bij gesloten Zaak is niet toegestaan zonder scope zaken.geforceerd-bijwerken", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "pm.test(\"Status aanmaken bij gesloten Zaak zonder scope zaken.geforceerd-bijwerken geeft 403\", function() {", + " pm.response.to.have.status(403);", + " pm.expect(pm.response.json().code).to.be.equal(\"permission_denied\");", + "});" + ], + "type": "text/javascript", + "packages": {} + } + }, + { + "listen": "prerequest", + "script": { + "exec": [ + "" + ], + "type": "text/javascript", + "packages": {} + } + } + ], + "request": { + "method": "POST", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n\t\"zaak\": \"{{created_zaak_url}}\",\n\t\"statustype\": \"{{eindstatustype}}\",\n\t\"datumStatusGezet\": \"2018-04-22T13:37:00\"\n}" + }, + "url": { + "raw": "{{zrc_url}}/statussen", + "host": [ + "{{zrc_url}}" + ], + "path": [ + "statussen" + ] + } + }, + "response": [] + }, + { + "name": "(zrc-007h) ZaakInformatieObject toevoegen bij gesloten Zaak is niet toegestaan zonder scope zaken.geforceerd-bijwerken", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "pm.test(\"ZaakInformatieObject aanmaken bij gesloten Zaak zonder scope zaken.geforceerd-bijwerken geeft 403\", function() {", + " pm.response.to.have.status(403);", + " pm.expect(pm.response.json().code).to.be.equal(\"permission_denied\");", + "});" + ], + "type": "text/javascript", + "packages": {} + } + }, + { + "listen": "prerequest", + "script": { + "exec": [ + "" + ], + "type": "text/javascript", + "packages": {} + } + } + ], + "request": { + "method": "POST", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n \"informatieobject\": \"{{informatieobject_gebruiksrecht_null_url}}\",\n \"zaak\": \"{{created_zaak_url}}\"\n}" + }, + "url": { + "raw": "{{zrc_url}}/zaakinformatieobjecten", + "host": [ + "{{zrc_url}}" + ], + "path": [ + "zaakinformatieobjecten" + ] + } + }, + "response": [] + }, + { + "name": "(zrc-007h) ZaakInformatieObject bijwerken bij gesloten Zaak is niet toegestaan zonder scope zaken.geforceerd-bijwerken", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "pm.test(\"ZaakInformatieObject bijwerken bij gesloten Zaak zonder scope zaken.geforceerd-bijwerken geeft 403\", function() {", + " pm.response.to.have.status(403);", + " pm.expect(pm.response.json().code).to.be.equal(\"permission_denied\");", + "});" + ], + "type": "text/javascript", + "packages": {} + } + }, + { + "listen": "prerequest", + "script": { + "exec": [ + "" + ], + "type": "text/javascript", + "packages": {} + } + } + ], + "request": { + "method": "PUT", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n \"informatieobject\": \"{{informatieobject_url}}\",\n \"zaak\": \"{{created_zaak_url}}\",\n \"titel\": \"bla\"\n}" + }, + "url": { + "raw": "{{created_zaakinformatieobject_url}}", + "host": [ + "{{created_zaakinformatieobject_url}}" + ] + } + }, + "response": [] + }, + { + "name": "(zrc-007h) ZaakInformatieObject deels bijwerken bij gesloten Zaak is niet toegestaan zonder scope zaken.geforceerd-bijwerken", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "pm.test(\"ZaakInformatieObject deels bijwerken bij gesloten Zaak zonder scope zaken.geforceerd-bijwerken geeft 403\", function() {", + " pm.response.to.have.status(403);", + " pm.expect(pm.response.json().code).to.be.equal(\"permission_denied\");", + "});" + ], + "type": "text/javascript", + "packages": {} + } + }, + { + "listen": "prerequest", + "script": { + "exec": [ + "" + ], + "type": "text/javascript", + "packages": {} + } + } + ], + "request": { + "method": "PATCH", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n \"informatieobject\": \"{{informatieobject_url}}\",\n \"zaak\": \"{{created_zaak_url}}\",\n \"titel\": \"bla\"\n}" + }, + "url": { + "raw": "{{created_zaakinformatieobject_url}}", + "host": [ + "{{created_zaakinformatieobject_url}}" + ] + } + }, + "response": [] + }, + { + "name": "(zrc-007h) ZaakInformatieObject verwijderen bij gesloten Zaak is niet toegestaan zonder scope zaken.geforceerd-bijwerken", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "pm.test(\"ZaakInformatieObject verwijderen bij gesloten Zaak zonder scope zaken.geforceerd-bijwerken geeft 403\", function() {", + " pm.response.to.have.status(403);", + " pm.expect(pm.response.json().code).to.be.equal(\"permission_denied\");", + "});" + ], + "type": "text/javascript", + "packages": {} + } + }, + { + "listen": "prerequest", + "script": { + "exec": [ + "" + ], + "type": "text/javascript", + "packages": {} + } + } + ], + "request": { + "method": "DELETE", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "url": { + "raw": "{{created_zaakinformatieobject_url}}", + "host": [ + "{{created_zaakinformatieobject_url}}" + ] + } + }, + "response": [] + }, + { + "name": "(zrc-007i) ZaakObject toevoegen bij gesloten Zaak is niet toegestaan zonder scope zaken.geforceerd-bijwerken", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "pm.test(\"ZaakObject aanmaken bij gesloten Zaak zonder scope zaken.geforceerd-bijwerken geeft 403\", function() {", + " pm.response.to.have.status(403);", + " pm.expect(pm.response.json().code).to.be.equal(\"permission_denied\");", + "});" + ], + "type": "text/javascript", + "packages": {} + } + }, + { + "listen": "prerequest", + "script": { + "exec": [ + "" + ], + "type": "text/javascript", + "packages": {} + } + } + ], + "request": { + "method": "POST", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n\t\"zaak\": \"{{created_zaak_url}}\",\n\t\"objectType\": \"pand\",\n\t\"objectIdentificatie\": {\n\t\t\"identificatie\": \"test\"\n\t}\n}" + }, + "url": { + "raw": "{{zrc_url}}/zaakobjecten", + "host": [ + "{{zrc_url}}" + ], + "path": [ + "zaakobjecten" + ] + } + }, + "response": [] + }, + { + "name": "(zrc-007k) ZaakEigenschap toevoegen bij gesloten Zaak is niet toegestaan zonder scope zaken.geforceerd-bijwerken", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "pm.test(\"Zaakeigenschap aanmaken bij gesloten Zaak zonder scope zaken.geforceerd-bijwerken geeft 403\", function() {", + " pm.response.to.have.status(403);", + " pm.expect(pm.response.json().code).to.be.equal(\"permission_denied\");", + "});" + ], + "type": "text/javascript", + "packages": {} + } + }, + { + "listen": "prerequest", + "script": { + "exec": [ + "" + ], + "type": "text/javascript", + "packages": {} + } + } + ], + "request": { + "method": "POST", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n\t\"zaak\": \"{{created_zaak_url}}\",\n\t\"eigenschap\": \"{{zaaktype_eigenschap}}\",\n\t\"waarde\": \"test\"\n}" + }, + "url": { + "raw": "{{created_zaak_url}}/zaakeigenschappen", + "host": [ + "{{created_zaak_url}}" + ], + "path": [ + "zaakeigenschappen" + ] + } + }, + "response": [] + }, + { + "name": "set full token Copy", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "" + ], + "type": "text/javascript", + "packages": {} + } + }, + { + "listen": "prerequest", + "script": { + "exec": [ + "pm.environment.set(\"jwt_token\", pm.environment.get(\"jwt_full\"));", + " var origId = pm.environment.get(\"_original_client_id\");", + " var origSecret = pm.environment.get(\"_original_secret\");", + " if (origId) { pm.environment.set(\"client_id\", origId); }", + " if (origSecret) { pm.environment.set(\"secret\", origSecret); }", + " pm.environment.set(\"secret\", pm.environment.get(\"secret\") || \"procest-admin-secret-key-for-testing\");" + ], + "type": "text/javascript", + "packages": {} + } + } + ], + "request": { + "method": "GET", + "header": [], + "url": { + "raw": "{{ztc_url}}/catalogussen", + "host": [ + "{{ztc_url}}" + ], + "path": [ + "catalogussen" + ] + } + }, + "response": [] + }, + { + "name": "(zrc-007i) Afgesloten zaak bijwerken is toegestaan met scope zaken.geforceerd-bijwerken", + "event": [ + { + "listen": "prerequest", + "script": { + "exec": [ + "" + ], + "type": "text/javascript", + "packages": {} + } + }, + { + "listen": "test", + "script": { + "exec": [ + "pm.test(\"Afgesloten Zaak bijwerken met scope zaken.geforceerd-bijwerken geeft 200\", function() {", + " pm.response.to.have.status(200);", + " pm.expect(pm.response.json().omschrijving).to.be.equal(\"string 2\");", + "});" + ], + "type": "text/javascript", + "packages": {} + } + } + ], + "request": { + "method": "PUT", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Accept-Crs", + "value": "EPSG:4326" + }, + { + "key": "Content-Crs", + "value": "EPSG:4326" + } + ], + "body": { + "mode": "raw", + "raw": "{\r\n \"url\": \"https://zaken.spt-rx-services.nl/api/v1/zaken/cba40feb-2b38-4490-b12d-84a39e8df361\",\r\n \"uuid\": \"cba40feb-2b38-4490-b12d-84a39e8df361\",\r\n \"bronorganisatie\": \"000000000\",\r\n \"omschrijving\": \"string 2\",\r\n \"toelichting\": \"string\",\r\n \"zaaktype\": \"{{zaaktype_url}}\",\r\n \"registratiedatum\": \"2019-04-09\",\r\n \"verantwoordelijkeOrganisatie\": \"000000000\",\r\n \"startdatum\": \"2019-04-09\",\r\n \"einddatum\": null,\r\n \"einddatumGepland\": \"2019-04-20\",\r\n \"uiterlijkeEinddatumAfdoening\": \"2019-04-09\",\r\n \"publicatiedatum\": \"2019-04-09\",\r\n \"communicatiekanaal\": \"\",\r\n \"productenOfDiensten\": [],\r\n \"vertrouwelijkheidaanduiding\": \"geheim\",\r\n \"betalingsindicatie\": \"geheel\",\r\n \"betalingsindicatieWeergave\": null,\r\n \"laatsteBetaaldatum\": \"2019-01-01T00:00:00Z\",\r\n \"zaakgeometrie\": {\r\n \"type\": \"Point\",\r\n \"coordinates\": [\r\n 53.0,\r\n 5.0\r\n ]\r\n },\r\n \"verlenging\": null,\r\n \"opschorting\": {\r\n \"indicatie\": true,\r\n \"reden\": \"string\"\r\n },\r\n \"selectielijstklasse\": \"https://referentielijsten.roxit.nl/api/v1/resultaten/0fe71ce3-b1e1-48eb-9070-be2756fc71b5\",\r\n \"hoofdzaak\": null,\r\n \"deelzaken\": [],\r\n \"relevanteAndereZaken\": [],\r\n \"eigenschappen\": [],\r\n \"rollen\": [],\r\n \"status\": null,\r\n \"zaakinformatieobjecten\": [],\r\n \"zaakobjecten\": [],\r\n \"resultaat\": null,\r\n \"kenmerken\": [],\r\n \"archiefnominatie\": null,\r\n \"archiefstatus\": \"nog_te_archiveren\",\r\n \"archiefactiedatum\": null,\r\n \"opdrachtgevendeOrganisatie\": null,\r\n \"processobjectaard\": null,\r\n \"startdatumBewaartermijn\": null,\r\n \"processobject\": null\r\n}" + }, + "url": { + "raw": "{{created_zaak_url}}", + "host": [ + "{{created_zaak_url}}" + ] + } + }, + "response": [] + }, + { + "name": "(zrc-007i) Afgesloten zaak deels bijwerken is toegestaan met scope zaken.geforceerd-bijwerken", + "event": [ + { + "listen": "prerequest", + "script": { + "exec": [ + "" + ], + "type": "text/javascript", + "packages": {} + } + }, + { + "listen": "test", + "script": { + "exec": [ + "pm.test(\"Afgesloten Zaak deels bijwerken zonder scope zaken.geforceerd-bijwerken geeft 200\", function() {", + " pm.response.to.have.status(200);", + " pm.expect(pm.response.json().omschrijving).to.be.equal(\"aangepast\");", + "});", + "", + "" + ], + "type": "text/javascript", + "packages": {} + } + } + ], + "request": { + "method": "PATCH", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Accept-Crs", + "value": "EPSG:4326" + }, + { + "key": "Content-Crs", + "value": "EPSG:4326" + } + ], + "body": { + "mode": "raw", + "raw": "{\n\t\"omschrijving\": \"aangepast\"\n}" + }, + "url": { + "raw": "{{created_zaak_url}}", + "host": [ + "{{created_zaak_url}}" + ] + } + }, + "response": [] + }, + { + "name": "(zrc-007j) Klantcontact bij gesloten Zaak aanmaken toegestaan met scope zaken.geforceerd-bijwerken", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "pm.test(\"Klantcontact aanmaken bij gesloten Zaak met scope zaken.geforceerd-bijwerken geeft 201\", function() {", + " pm.response.to.have.status(201);", + "});" + ], + "type": "text/javascript" + } + }, + { + "listen": "prerequest", + "script": { + "exec": [ + "" + ], + "type": "text/javascript" + } + } + ], + "request": { + "method": "POST", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n\t\"zaak\": \"{{created_zaak_url}}\",\n\t\"datumtijd\": \"2019-02-22T00:00:00\"\n}" + }, + "url": { + "raw": "{{zrc_url}}/klantcontacten", + "host": [ + "{{zrc_url}}" + ], + "path": [ + "klantcontacten" + ] + } + }, + "response": [] + }, + { + "name": "(zrc-007k) Resultaat bij gesloten Zaak verwijderen toegestaan met scope zaken.geforceerd-bijwerken", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "pm.test(\"Resultaat verwijderen bij gesloten Zaak zonder scope zaken.geforceerd-bijwerken geeft 204\", function() {", + " pm.response.to.have.status(204);", + "});" + ], + "type": "text/javascript" + } + }, + { + "listen": "prerequest", + "script": { + "exec": [ + "" + ], + "type": "text/javascript" + } + } + ], + "request": { + "method": "DELETE", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "url": { + "raw": "{{zaak_resultaat_url}}", + "host": [ + "{{zaak_resultaat_url}}" + ] + } + }, + "response": [] + }, + { + "name": "(zrc-007k) Resultaat bij gesloten Zaak aanmaken toegestaan met scope zaken.geforceerd-bijwerken", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "pm.test(\"Resultaat aanmaken bij gesloten Zaak met scope zaken.geforceerd-bijwerken geeft 201\", function() {", + " pm.response.to.have.status(201);", + "});", + "", + "pm.environment.set(\"zaak_resultaat_url\", pm.response.json().url);" + ], + "type": "text/javascript" + } + }, + { + "listen": "prerequest", + "script": { + "exec": [ + "" + ], + "type": "text/javascript" + } + } + ], + "request": { + "method": "POST", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n\t\"zaak\": \"{{created_zaak_url}}\",\n\t\"resultaattype\": \"{{resultaattype_url}}\"\n}" + }, + "url": { + "raw": "{{zrc_url}}/resultaten", + "host": [ + "{{zrc_url}}" + ], + "path": [ + "resultaten" + ] + } + }, + "response": [] + }, + { + "name": "(zrc-007k) Resultaat bij gesloten Zaak bijwerken toegestaan met scope zaken.geforceerd-bijwerken", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "pm.test(\"Resultaat bijwerken bij gesloten Zaak met scope zaken.geforceerd-bijwerken geeft 200\", function() {", + " pm.response.to.have.status(200);", + " pm.expect(pm.response.json().toelichting).to.be.equal(\"some stuff\");", + "});" + ], + "type": "text/javascript" + } + }, + { + "listen": "prerequest", + "script": { + "exec": [ + "" + ], + "type": "text/javascript" + } + } + ], + "request": { + "method": "PUT", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n\t\"zaak\": \"{{created_zaak_url}}\",\n\t\"resultaattype\": \"{{resultaattype_url}}\",\n\t\"toelichting\": \"some stuff\"\n}" + }, + "url": { + "raw": "{{zaak_resultaat_url}}", + "host": [ + "{{zaak_resultaat_url}}" + ] + } + }, + "response": [] + }, + { + "name": "(zrc-007k) Resultaat bij gesloten Zaak deels bijwerken toegestaan met scope zaken.geforceerd-bijwerken", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "pm.test(\"Resultaat deels bijwerken bij gesloten Zaak met scope zaken.geforceerd-bijwerken geeft 200\", function() {", + " pm.response.to.have.status(200);", + " pm.expect(pm.response.json().toelichting).to.be.equal(\"some more stuff\");", + "});" + ], + "type": "text/javascript" + } + }, + { + "listen": "prerequest", + "script": { + "exec": [ + "" + ], + "type": "text/javascript" + } + } + ], + "request": { + "method": "PATCH", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n\t\"zaak\": \"{{created_zaak_url}}\",\n\t\"resultaattype\": \"{{resultaattype_url}}\",\n\t\"toelichting\": \"some more stuff\"\n}" + }, + "url": { + "raw": "{{zaak_resultaat_url}}", + "host": [ + "{{zaak_resultaat_url}}" + ] + } + }, + "response": [] + }, + { + "name": "(zrc-007l) Rol bij gesloten Zaak aanmaken toegestaan toegestaan scope zaken.geforceerd-bijwerken", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "pm.test(\"Rol aanmaken bij gesloten Zaak zonder scope zaken.geforceerd-bijwerken geeft 201\", function() {", + " pm.response.to.have.status(201);", + "});" + ], + "type": "text/javascript" + } + }, + { + "listen": "prerequest", + "script": { + "exec": [ + "" + ], + "type": "text/javascript" + } + } + ], + "request": { + "method": "POST", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n\t\"zaak\": \"{{created_zaak_url}}\",\n\t\"betrokkene\": \"http://example.com/2d0815580af94ee0a15aa677aa646e1a\",\n\t\"betrokkeneType\": \"natuurlijk_persoon\",\n\t\"rolomschrijving\": \"behandelaar\",\n\t\"roltoelichting\": \"same\",\n\t\"roltype\": \"{{roltype_url}}\"\n}" + }, + "url": { + "raw": "{{zrc_url}}/rollen", + "host": [ + "{{zrc_url}}" + ], + "path": [ + "rollen" + ] + } + }, + "response": [] + }, + { + "name": "(zrc-007l) Rol bij gesloten Zaak verwijderen niet toegestaan zonder scope zaken.geforceerd-bijwerken Copy", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "pm.test(\"Rol verwijderen bij gesloten Zaak met scope zaken.geforceerd-bijwerken geeft 204\", function() {", + " pm.response.to.have.status(204);", + "});" + ], + "type": "text/javascript" + } + }, + { + "listen": "prerequest", + "script": { + "exec": [ + "" + ], + "type": "text/javascript" + } + } + ], + "request": { + "method": "DELETE", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "url": { + "raw": "{{rol_url}}", + "host": [ + "{{rol_url}}" + ] + } + }, + "response": [] + }, + { + "name": "(zrc-007m) Status toevoegen bij gesloten Zaak is toegestaan met scope zaken.geforceerd-bijwerken", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "pm.test(\"Status aanmaken bij gesloten Zaak met scope zaken.geforceerd-bijwerken geeft 201\", function() {", + " pm.response.to.have.status(201);", + "});" + ], + "type": "text/javascript" + } + }, + { + "listen": "prerequest", + "script": { + "exec": [ + "" + ], + "type": "text/javascript" + } + } + ], + "request": { + "method": "POST", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n\t\"zaak\": \"{{created_zaak_url}}\",\n\t\"statustype\": \"{{eindstatustype}}\",\n\t\"datumStatusGezet\": \"2018-04-22T13:37:00\"\n}" + }, + "url": { + "raw": "{{zrc_url}}/statussen", + "host": [ + "{{zrc_url}}" + ], + "path": [ + "statussen" + ] + } + }, + "response": [] + }, + { + "name": "(zrc-007n) ZaakInformatieObject verwijderen bij gesloten Zaak is toegestaan met scope zaken.geforceerd-bijwerken", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "pm.test(\"ZaakInformatieObject verwijderen bij gesloten Zaak met scope zaken.geforceerd-bijwerken geeft 204\", function() {", + " pm.response.to.have.status(204);", + "});" + ], + "type": "text/javascript" + } + }, + { + "listen": "prerequest", + "script": { + "exec": [ + "" + ], + "type": "text/javascript" + } + } + ], + "request": { + "method": "DELETE", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "url": { + "raw": "{{created_zaakinformatieobject_url}}", + "host": [ + "{{created_zaakinformatieobject_url}}" + ] + } + }, + "response": [] + }, + { + "name": "(zrc-007n) ZaakInformatieObject toevoegen bij gesloten Zaak is toegestaan met scope zaken.geforceerd-bijwerken", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "pm.test(\"ZaakInformatieObject aanmaken bij gesloten Zaak met scope zaken.geforceerd-bijwerken geeft 201\", function() {", + " pm.response.to.have.status(201);", + "});", + "", + "pm.environment.set(\"created_zaakinformatieobject_url\", pm.response.json().url);" + ], + "type": "text/javascript" + } + }, + { + "listen": "prerequest", + "script": { + "exec": [ + "" + ], + "type": "text/javascript" + } + } + ], + "request": { + "method": "POST", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n \"informatieobject\": \"{{informatieobject_url}}\",\n \"zaak\": \"{{created_zaak_url}}\"\n}" + }, + "url": { + "raw": "{{zrc_url}}/zaakinformatieobjecten", + "host": [ + "{{zrc_url}}" + ], + "path": [ + "zaakinformatieobjecten" + ] + } + }, + "response": [] + }, + { + "name": "(zrc-007n) ZaakInformatieObject bijwerken bij gesloten Zaak is toegestaan scope zaken.geforceerd-bijwerken", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "pm.test(\"ZaakInformatieObject bijwerken bij gesloten Zaak met scope zaken.geforceerd-bijwerken geeft 200\", function() {", + " pm.response.to.have.status(200);", + " pm.expect(pm.response.json().titel).to.be.equal(\"aangepast\");", + "});" + ], + "type": "text/javascript" + } + }, + { + "listen": "prerequest", + "script": { + "exec": [ + "" + ], + "type": "text/javascript" + } + } + ], + "request": { + "method": "PUT", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n \"informatieobject\": \"{{informatieobject_url}}\",\n \"zaak\": \"{{created_zaak_url}}\",\n \"titel\": \"aangepast\"\n}" + }, + "url": { + "raw": "{{created_zaakinformatieobject_url}}", + "host": [ + "{{created_zaakinformatieobject_url}}" + ] + } + }, + "response": [] + }, + { + "name": "(zrc-007n) ZaakInformatieObject deels bijwerken bij gesloten Zaak is toegestaan met scope zaken.geforceerd-bijwerken", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "pm.test(\"ZaakInformatieObject deels bijwerken bij gesloten Zaak met scope zaken.geforceerd-bijwerken geeft 200\", function() {", + " pm.response.to.have.status(200);", + " pm.expect(pm.response.json().titel).to.be.equal(\"en nog een keer\");", + "});" + ], + "type": "text/javascript" + } + }, + { + "listen": "prerequest", + "script": { + "exec": [ + "" + ], + "type": "text/javascript" + } + } + ], + "request": { + "method": "PATCH", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n \"informatieobject\": \"{{informatieobject_url}}\",\n \"zaak\": \"{{created_zaak_url}}\",\n \"titel\": \"en nog een keer\"\n}" + }, + "url": { + "raw": "{{created_zaakinformatieobject_url}}", + "host": [ + "{{created_zaakinformatieobject_url}}" + ] + } + }, + "response": [] + }, + { + "name": "(zrc-007o) ZaakObject toevoegen bij gesloten Zaak is toegestaan met scope zaken.geforceerd-bijwerken", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "pm.test(\"ZaakObject aanmaken bij gesloten Zaak met scope zaken.geforceerd-bijwerken geeft 201\", function() {", + " pm.response.to.have.status(201);", + "});" + ], + "type": "text/javascript" + } + }, + { + "listen": "prerequest", + "script": { + "exec": [ + "" + ], + "type": "text/javascript" + } + } + ], + "request": { + "method": "POST", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n\t\"zaak\": \"{{created_zaak_url}}\",\n\t\"objectType\": \"pand\",\n\t\"objectIdentificatie\": {\n\t\t\"identificatie\": \"test\"\n\t}\n}" + }, + "url": { + "raw": "{{zrc_url}}/zaakobjecten", + "host": [ + "{{zrc_url}}" + ], + "path": [ + "zaakobjecten" + ] + } + }, + "response": [] + }, + { + "name": "(zrc-007p) ZaakEigenschap toevoegen bij gesloten Zaak is toegestaan met scope zaken.geforceerd-bijwerken", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "pm.test(\"Zaakeigenschap aanmaken bij gesloten Zaak met scope zaken.geforceerd-bijwerken geeft 201\", function() {", + " pm.response.to.have.status(201);", + "});", + "", + "" + ], + "type": "text/javascript", + "packages": {} + } + }, + { + "listen": "prerequest", + "script": { + "exec": [ + "" + ], + "type": "text/javascript", + "packages": {} + } + } + ], + "request": { + "method": "POST", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n\t\"zaak\": \"{{created_zaak_url}}\",\n\t\"eigenschap\": \"{{zaaktype_eigenschap}}\",\n\t\"waarde\": \"test\"\n}" + }, + "url": { + "raw": "{{created_zaak_url}}/zaakeigenschappen", + "host": [ + "{{created_zaak_url}}" + ], + "path": [ + "zaakeigenschappen" + ] + } + }, + "response": [] + }, + { + "name": "Create relation between Zaak and Informatieobject with gebruiksrecht null", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "pm.environment.set(\"created_zaakinformatieobject_url\", pm.response.json().url)" + ], + "type": "text/javascript" + } + }, + { + "listen": "prerequest", + "script": { + "exec": [ + "" + ], + "type": "text/javascript" + } + } + ], + "request": { + "method": "POST", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n \"informatieobject\": \"{{informatieobject_gebruiksrecht_null_url}}\",\n \"zaak\": \"{{created_zaak_url}}\"\n}" + }, + "url": { + "raw": "{{zrc_url}}/zaakinformatieobjecten", + "host": [ + "{{zrc_url}}" + ], + "path": [ + "zaakinformatieobjecten" + ] + } + }, + "response": [] + }, + { + "name": "(zrc-007q) Eindstatus toevoegen aan Zaak met Informatieobject.indicatieGebruiksrecht null", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "pm.test(\"Eindstatus toevoegen aan Zaak met gerelateerd Informatieobject met indicatieGebruiksrecht null geeft 400\", function() {", + " pm.response.to.have.status(400);", + " ", + " var error = pm.response.json()['invalidParams'][0];", + " pm.expect(error.name).to.be.equal(\"nonFieldErrors\");", + " pm.expect(error.code).to.be.equal(\"indicatiegebruiksrecht-unset\");", + "});", + "", + "" + ], + "type": "text/javascript", + "packages": {} + } + }, + { + "listen": "prerequest", + "script": { + "exec": [ + "" + ], + "type": "text/javascript", + "packages": {} + } + } + ], + "request": { + "method": "POST", + "header": [ + { + "key": "Accept-Crs", + "value": "EPSG:4326" + }, + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n\t\"zaak\": \"{{created_zaak_url}}\",\n\t\"statustype\": \"{{eindstatustype}}\",\n\t\"datumStatusGezet\": \"2018-04-22T13:37:01\"\n}" + }, + "url": { + "raw": "{{zrc_url}}/statussen", + "host": [ + "{{zrc_url}}" + ], + "path": [ + "statussen" + ] + } + }, + "response": [] + }, + { + "name": "Add non-Eindstatus to Zaak", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "" + ], + "type": "text/javascript" + } + }, + { + "listen": "prerequest", + "script": { + "exec": [ + "" + ], + "type": "text/javascript" + } + } + ], + "request": { + "method": "POST", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n\t\"zaak\": \"{{created_zaak_url}}\",\n\t\"statustype\": \"{{non_eindstatustype}}\",\n\t\"datumStatusGezet\": \"2018-04-22T13:39:00\"\n}" + }, + "url": { + "raw": "{{zrc_url}}/statussen", + "host": [ + "{{zrc_url}}" + ], + "path": [ + "statussen" + ] + } + }, + "response": [] + }, + { + "name": "(zrc-007r) Zaak.einddatum leeg als geen eindstatus gezet", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "pm.test(\"Toevoegen status die geen eindstatus is aan Zaak betekent Zaak.einddatum leeg\", function(){", + " pm.response.to.have.status(200);", + " ", + " var einddatum = pm.response.json().einddatum;", + " pm.expect(einddatum).to.be.equal(null);", + "});", + "", + "" + ], + "type": "text/javascript", + "packages": {} + } + }, + { + "listen": "prerequest", + "script": { + "exec": [ + "" + ], + "type": "text/javascript", + "packages": {} + } + } + ], + "request": { + "method": "GET", + "header": [ + { + "key": "Accept-Crs", + "value": "EPSG:4326" + }, + { + "key": "Content-Type", + "value": "application/json" + } + ], + "url": { + "raw": "{{created_zaak_url}}", + "host": [ + "{{created_zaak_url}}" + ] + } + }, + "response": [] + } + ], + "event": [ + { + "listen": "prerequest", + "script": { + "type": "text/javascript", + "exec": [ + "" + ] + } + }, + { + "listen": "test", + "script": { + "type": "text/javascript", + "exec": [ + "" + ] + } + } + ] + }, + { + "name": "zrc-008", + "item": [ + { + "name": "set full token", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "" + ], + "type": "text/javascript", + "packages": {} + } + }, + { + "listen": "prerequest", + "script": { + "exec": [ + "pm.environment.set(\"jwt_token\", pm.environment.get(\"jwt_full\"));", + " var origId = pm.environment.get(\"_original_client_id\");", + " var origSecret = pm.environment.get(\"_original_secret\");", + " if (origId) { pm.environment.set(\"client_id\", origId); }", + " if (origSecret) { pm.environment.set(\"secret\", origSecret); }", + " pm.environment.set(\"secret\", pm.environment.get(\"secret\") || \"procest-admin-secret-key-for-testing\");" + ], + "type": "text/javascript", + "packages": {} + } + } + ], + "request": { + "method": "GET", + "header": [], + "url": { + "raw": "{{ztc_url}}/catalogussen", + "host": [ + "{{ztc_url}}" + ], + "path": [ + "catalogussen" + ] + } + }, + "response": [] + }, + { + "name": "Create Zaak to close and reopen", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "pm.environment.set(\"created_zaak_url\", pm.response.json().url);" + ], + "type": "text/javascript", + "packages": {} + } + }, + { + "listen": "prerequest", + "script": { + "packages": {}, + "type": "text/javascript", + "exec": [] + } + } + ], + "request": { + "method": "POST", + "header": [ + { + "key": "Accept-Crs", + "value": "EPSG:4326" + }, + { + "key": "Content-Crs", + "value": "EPSG:4326" + }, + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\r\n \"url\": \"https://zaken.spt-rx-services.nl/api/v1/zaken/cba40feb-2b38-4490-b12d-84a39e8df361\",\r\n \"uuid\": \"cba40feb-2b38-4490-b12d-84a39e8df361\",\r\n \"bronorganisatie\": \"000000000\",\r\n \"omschrijving\": \"string\",\r\n \"toelichting\": \"string\",\r\n \"zaaktype\": \"{{zaaktype_url}}\",\r\n \"registratiedatum\": \"2019-04-09\",\r\n \"verantwoordelijkeOrganisatie\": \"000000000\",\r\n \"startdatum\": \"2019-04-09\",\r\n \"einddatum\": null,\r\n \"einddatumGepland\": \"2019-04-20\",\r\n \"uiterlijkeEinddatumAfdoening\": \"2019-04-09\",\r\n \"publicatiedatum\": \"2019-04-09\",\r\n \"communicatiekanaal\": \"\",\r\n \"productenOfDiensten\": [],\r\n \"vertrouwelijkheidaanduiding\": \"geheim\",\r\n \"betalingsindicatie\": \"geheel\",\r\n \"betalingsindicatieWeergave\": null,\r\n \"laatsteBetaaldatum\": \"2019-01-01T00:00:00Z\",\r\n \"zaakgeometrie\": {\r\n \"type\": \"Point\",\r\n \"coordinates\": [\r\n 53.0,\r\n 5.0\r\n ]\r\n },\r\n \"verlenging\": null,\r\n \"opschorting\": {\r\n \"indicatie\": true,\r\n \"reden\": \"string\"\r\n },\r\n \"selectielijstklasse\": \"https://referentielijsten.roxit.nl/api/v1/resultaten/0fe71ce3-b1e1-48eb-9070-be2756fc71b5\",\r\n \"hoofdzaak\": null,\r\n \"deelzaken\": [],\r\n \"relevanteAndereZaken\": [],\r\n \"eigenschappen\": [],\r\n \"rollen\": [],\r\n \"status\": null,\r\n \"zaakinformatieobjecten\": [],\r\n \"zaakobjecten\": [],\r\n \"resultaat\": null,\r\n \"kenmerken\": [],\r\n \"archiefnominatie\": null,\r\n \"archiefstatus\": \"nog_te_archiveren\",\r\n \"archiefactiedatum\": null,\r\n \"opdrachtgevendeOrganisatie\": null,\r\n \"processobjectaard\": null,\r\n \"startdatumBewaartermijn\": null,\r\n \"processobject\": null\r\n}" + }, + "url": { + "raw": "{{zrc_url}}/zaken", + "host": [ + "{{zrc_url}}" + ], + "path": [ + "zaken" + ] + } + }, + "response": [] + }, + { + "name": "Add Resultaat to Zaak", + "event": [ + { + "listen": "prerequest", + "script": { + "exec": [ + "pm.environment.set(\"resultaattype\", pm.environment.get(\"zaaktype_resultaattypen\")[0]);" + ], + "type": "text/javascript" + } + }, + { + "listen": "test", + "script": { + "exec": [ + "pm.environment.set(\"zaak_resultaat_url\", pm.response.json().url);" + ], + "type": "text/javascript" + } + } + ], + "request": { + "method": "POST", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n\t\"zaak\": \"{{created_zaak_url}}\",\n\t\"resultaattype\": \"{{resultaattype_url}}\"\n}" + }, + "url": { + "raw": "{{zrc_url}}/resultaten", + "host": [ + "{{zrc_url}}" + ], + "path": [ + "resultaten" + ] + } + }, + "response": [] + }, + { + "name": "Add Eindstatus to Zaak", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "" + ], + "type": "text/javascript" + } + }, + { + "listen": "prerequest", + "script": { + "exec": [ + "" + ], + "type": "text/javascript" + } + } + ], + "request": { + "method": "POST", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n\t\"zaak\": \"{{created_zaak_url}}\",\n\t\"statustype\": \"{{eindstatustype}}\",\n\t\"datumStatusGezet\": \"2018-04-20T13:37:00\"\n}" + }, + "url": { + "raw": "{{zrc_url}}/statussen", + "host": [ + "{{zrc_url}}" + ], + "path": [ + "statussen" + ] + } + }, + "response": [] + }, + { + "name": "(zrc-008a) Zaak heropenen is mogelijk", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "pm.test(\"Non-eindstatus aan gesloten Zaak toevoegen geeft 201\", function() {", + " pm.response.to.have.status(201);", + " ", + " pm.expect(pm.response.json().statustype).to.be.equal(pm.environment.get(\"non_eindstatustype\"));", + "});" + ], + "type": "text/javascript" + } + } + ], + "request": { + "method": "POST", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n\t\"zaak\": \"{{created_zaak_url}}\",\n\t\"statustype\": \"{{non_eindstatustype}}\",\n\t\"datumStatusGezet\": \"2018-04-21T13:37:00\"\n}" + }, + "url": { + "raw": "{{zrc_url}}/statussen", + "host": [ + "{{zrc_url}}" + ], + "path": [ + "statussen" + ] + } + }, + "response": [] + }, + { + "name": "(zrc-008b) Zaak heropenen zet einddatum, archiefactiedatum en archiefnominatie op null", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "pm.test(\"Zaak heropenen zet einddatum, archiefactiedatum en archiefnominatie op null\", function() {", + " var response = pm.response.json();", + " ", + " pm.expect(response.einddatum).to.be.equal(null);", + " pm.expect(response.archiefactiedatum).to.be.equal(null);", + " pm.expect(response.archiefnominatie).to.be.equal(null); ", + "});" + ], + "type": "text/javascript" + } + } + ], + "request": { + "method": "GET", + "header": [ + { + "key": "Accept-Crs", + "value": "EPSG:4326" + } + ], + "url": { + "raw": "{{created_zaak_url}}", + "host": [ + "{{created_zaak_url}}" + ] + } + }, + "response": [] + }, + { + "name": "Add Eindstatus to Zaak again", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "" + ], + "type": "text/javascript" + } + }, + { + "listen": "prerequest", + "script": { + "exec": [ + "" + ], + "type": "text/javascript" + } + } + ], + "request": { + "method": "POST", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n\t\"zaak\": \"{{created_zaak_url}}\",\n\t\"statustype\": \"{{eindstatustype}}\",\n\t\"datumStatusGezet\": \"2018-04-22T13:37:00\"\n}" + }, + "url": { + "raw": "{{zrc_url}}/statussen", + "host": [ + "{{zrc_url}}" + ], + "path": [ + "statussen" + ] + } + }, + "response": [] + }, + { + "name": "set restricted token Copy", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "pm.environment.set(\"jwt_token\", pm.environment.get(\"jwt-limited\"));", + " pm.environment.set(\"_original_client_id\", pm.environment.get(\"client_id\"));", + " pm.environment.set(\"_original_secret\", pm.environment.get(\"secret\"));", + " pm.environment.set(\"client_id\", pm.environment.get(\"client_id_limited\"));", + " pm.environment.set(\"secret\", pm.environment.get(\"secret_limited\"));", + " pm.environment.set(\"client_id\", pm.environment.get(\"client_id_limited\"));", + " pm.environment.set(\"secret\", pm.environment.get(\"secret_limited\"));" + ], + "type": "text/javascript", + "packages": {} + } + } + ], + "request": { + "method": "GET", + "header": [], + "url": { + "raw": "{{ztc_url}}/catalogussen", + "host": [ + "{{ztc_url}}" + ], + "path": [ + "catalogussen" + ] + } + }, + "response": [] + }, + { + "name": "(zrc-008c) Zaak heropenen zonder scope zaken.heropenen in Applicatie is onmogelijk", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "pm.test(\"Zaak heropenen zonder scope zaken.heropenen in Applicatie geeft 403\", function() {", + " pm.response.to.have.status(403);", + " pm.expect(pm.response.json().code).to.be.equal(\"permission_denied\");", + "});" + ], + "type": "text/javascript", + "packages": {} + } + } + ], + "request": { + "auth": { + "type": "bearer", + "bearer": [ + { + "key": "token", + "value": "{{jwt-zrc-006}}", + "type": "string" + } + ] + }, + "method": "POST", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n\t\"zaak\": \"{{created_zaak_url}}\",\n\t\"statustype\": \"{{non_eindstatustype}}\",\n\t\"datumStatusGezet\": \"2018-04-21T17:37:00\"\n}" + }, + "url": { + "raw": "{{zrc_url}}/statussen", + "host": [ + "{{zrc_url}}" + ], + "path": [ + "statussen" + ] + } + }, + "response": [] + } + ], + "event": [ + { + "listen": "prerequest", + "script": { + "type": "text/javascript", + "exec": [ + "" + ] + } + }, + { + "listen": "test", + "script": { + "type": "text/javascript", + "exec": [ + "" + ] + } + } + ] + }, + { + "name": "zrc-009", + "item": [ + { + "name": "set full token Copy", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "" + ], + "type": "text/javascript", + "packages": {} + } + }, + { + "listen": "prerequest", + "script": { + "exec": [ + "pm.environment.set(\"jwt_token\", pm.environment.get(\"jwt_full\"));", + " var origId = pm.environment.get(\"_original_client_id\");", + " var origSecret = pm.environment.get(\"_original_secret\");", + " if (origId) { pm.environment.set(\"client_id\", origId); }", + " if (origSecret) { pm.environment.set(\"secret\", origSecret); }", + " pm.environment.set(\"secret\", pm.environment.get(\"secret\") || \"procest-admin-secret-key-for-testing\");" + ], + "type": "text/javascript", + "packages": {} + } + } + ], + "request": { + "method": "GET", + "header": [], + "url": { + "raw": "{{ztc_url}}/catalogussen", + "host": [ + "{{ztc_url}}" + ], + "path": [ + "catalogussen" + ] + } + }, + "response": [] + }, + { + "name": "(zrc-009a) Valideer expliciet gedefinieerde vertrouwelijkheidaanduiding", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "pm.test(\"Expliciete vertrouwelijkheidaanduiding bij aanmaken Zaak moet toegekend worden aan Zaak\", function() {", + " var jsonData = pm.response.json();", + " pm.expect(jsonData.vertrouwelijkheidaanduiding).to.be.equal(pm.environment.get(\"expliciete_vertrouwelijkheid\"));", + " ", + " pm.environment.set(\"created_zaak_url\", jsonData.url);", + "});" + ], + "type": "text/javascript", + "packages": {} + } + }, + { + "listen": "prerequest", + "script": { + "exec": [ + "pm.environment.set(\"expliciete_vertrouwelijkheid\", \"openbaar\");" + ], + "type": "text/javascript", + "packages": {} + } + } + ], + "request": { + "method": "POST", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Content-Crs", + "value": "EPSG:4326" + }, + { + "key": "Accept-Crs", + "value": "EPSG:4326" + } + ], + "body": { + "mode": "raw", + "raw": "{\r\n\r\n \"bronorganisatie\": \"000000000\",\r\n \"omschrijving\": \"string\",\r\n \"toelichting\": \"string\",\r\n \"zaaktype\": \"{{zaaktype_url}}\",\r\n \"registratiedatum\": \"2019-04-09\",\r\n \"verantwoordelijkeOrganisatie\": \"000000000\",\r\n \"startdatum\": \"2019-04-09\",\r\n \"einddatum\": null,\r\n \"einddatumGepland\": \"2019-04-20\",\r\n \"uiterlijkeEinddatumAfdoening\": \"2019-04-09\",\r\n \"publicatiedatum\": \"2019-04-09\",\r\n \"communicatiekanaal\": \"\",\r\n \"productenOfDiensten\": [],\r\n \"vertrouwelijkheidaanduiding\": \"{{expliciete_vertrouwelijkheid}}\",\r\n \"betalingsindicatie\": \"geheel\",\r\n \"betalingsindicatieWeergave\": null,\r\n \"laatsteBetaaldatum\": \"2019-01-01T00:00:00Z\",\r\n \"zaakgeometrie\": {\r\n \"type\": \"Point\",\r\n \"coordinates\": [\r\n 53.0,\r\n 5.0\r\n ]\r\n },\r\n \"verlenging\": null,\r\n \"opschorting\": {\r\n \"indicatie\": true,\r\n \"reden\": \"string\"\r\n },\r\n \"selectielijstklasse\": \"https://referentielijsten.roxit.nl/api/v1/resultaten/0fe71ce3-b1e1-48eb-9070-be2756fc71b5\",\r\n \"hoofdzaak\": null,\r\n \"deelzaken\": [],\r\n \"relevanteAndereZaken\": [],\r\n \"eigenschappen\": [],\r\n \"rollen\": [],\r\n \"status\": null,\r\n \"zaakinformatieobjecten\": [],\r\n \"zaakobjecten\": [],\r\n \"resultaat\": null,\r\n \"kenmerken\": [],\r\n \"archiefnominatie\": null,\r\n \"archiefstatus\": \"nog_te_archiveren\",\r\n \"archiefactiedatum\": null,\r\n \"opdrachtgevendeOrganisatie\": null,\r\n \"processobjectaard\": null,\r\n \"startdatumBewaartermijn\": null,\r\n \"processobject\": null\r\n}" + }, + "url": { + "raw": "{{zrc_url}}/zaken", + "host": [ + "{{zrc_url}}" + ], + "path": [ + "zaken" + ] + } + }, + "response": [] + }, + { + "name": "(zrc-009b) Valideer expliciet gedefinieerde vertrouwelijkheidaanduiding (PUT)", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "pm.test(\"Expliciete vertrouwelijkheidaanduiding bij bijwerken Zaak moet toegekend worden aan Zaak\", function() {", + " pm.expect(pm.response.json().vertrouwelijkheidaanduiding).to.be.equal(pm.environment.get(\"expliciete_vertrouwelijkheid\"));", + "});" + ], + "type": "text/javascript", + "packages": {} + } + }, + { + "listen": "prerequest", + "script": { + "exec": [ + "" + ], + "type": "text/javascript", + "packages": {} + } + } + ], + "request": { + "method": "PUT", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Content-Crs", + "value": "EPSG:4326" + }, + { + "key": "Accept-Crs", + "value": "EPSG:4326" + } + ], + "body": { + "mode": "raw", + "raw": "{\r\n\r\n \"bronorganisatie\": \"000000000\",\r\n \"omschrijving\": \"string\",\r\n \"toelichting\": \"string\",\r\n \"zaaktype\": \"{{zaaktype_url}}\",\r\n \"registratiedatum\": \"2019-04-09\",\r\n \"verantwoordelijkeOrganisatie\": \"000000000\",\r\n \"startdatum\": \"2019-04-09\",\r\n \"einddatum\": null,\r\n \"einddatumGepland\": \"2019-04-20\",\r\n \"uiterlijkeEinddatumAfdoening\": \"2019-04-09\",\r\n \"publicatiedatum\": \"2019-04-09\",\r\n \"communicatiekanaal\": \"\",\r\n \"productenOfDiensten\": [],\r\n \"vertrouwelijkheidaanduiding\": \"{{expliciete_vertrouwelijkheid}}\",\r\n \"betalingsindicatie\": \"geheel\",\r\n \"betalingsindicatieWeergave\": null,\r\n \"laatsteBetaaldatum\": \"2019-01-01T00:00:00Z\",\r\n \"zaakgeometrie\": {\r\n \"type\": \"Point\",\r\n \"coordinates\": [\r\n 53.0,\r\n 5.0\r\n ]\r\n },\r\n \"verlenging\": null,\r\n \"opschorting\": {\r\n \"indicatie\": true,\r\n \"reden\": \"string\"\r\n },\r\n \"selectielijstklasse\": \"https://referentielijsten.roxit.nl/api/v1/resultaten/0fe71ce3-b1e1-48eb-9070-be2756fc71b5\",\r\n \"hoofdzaak\": null,\r\n \"deelzaken\": [],\r\n \"relevanteAndereZaken\": [],\r\n \"eigenschappen\": [],\r\n \"rollen\": [],\r\n \"status\": null,\r\n \"zaakinformatieobjecten\": [],\r\n \"zaakobjecten\": [],\r\n \"resultaat\": null,\r\n \"kenmerken\": [],\r\n \"archiefnominatie\": null,\r\n \"archiefstatus\": \"nog_te_archiveren\",\r\n \"archiefactiedatum\": null,\r\n \"opdrachtgevendeOrganisatie\": null,\r\n \"processobjectaard\": null,\r\n \"startdatumBewaartermijn\": null,\r\n \"processobject\": null\r\n}" + }, + "url": { + "raw": "{{created_zaak_url}}", + "host": [ + "{{created_zaak_url}}" + ] + } + }, + "response": [] + }, + { + "name": "(zrc-009c) Valideer expliciet gedefinieerde vertrouwelijkheidaanduiding (PATCH)", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "pm.test(\"Expliciete vertrouwelijkheidaanduiding bij deels bijwerken Zaak moet toegekend worden aan Zaak\", function() {", + " pm.expect(pm.response.json().vertrouwelijkheidaanduiding).to.be.equal(pm.environment.get(\"expliciete_vertrouwelijkheid\"));", + "});", + "", + "", + "", + "" + ], + "type": "text/javascript", + "packages": {} + } + }, + { + "listen": "prerequest", + "script": { + "exec": [ + "pm.environment.set(\"expliciete_vertrouwelijkheid\", \"vertrouwelijk\");" + ], + "type": "text/javascript", + "packages": {} + } + } + ], + "request": { + "method": "PATCH", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Content-Crs", + "value": "EPSG:4326" + }, + { + "key": "Accept-Crs", + "value": "EPSG:4326" + } + ], + "body": { + "mode": "raw", + "raw": "{\n\t\"vertrouwelijkheidaanduiding\": \"{{expliciete_vertrouwelijkheid}}\"\n}" + }, + "url": { + "raw": "{{created_zaak_url}}", + "host": [ + "{{created_zaak_url}}" + ] + } + }, + "response": [] + }, + { + "name": "(zrc-009d) Valideer vertrouwelijkheidaanduiding afgeleid uit Zaaktype", + "event": [ + { + "listen": "prerequest", + "script": { + "exec": [ + "" + ], + "type": "text/javascript", + "packages": {} + } + }, + { + "listen": "test", + "script": { + "exec": [ + "pm.test(\"Vertrouwelijkheidaanduiding bij aanmaken Zaak afgeleid uit Zaaktype indien niet meegegeven\", function() {", + " pm.expect(pm.response.json().vertrouwelijkheidaanduiding).to.be.equal(pm.environment.get(\"zaaktype_vertrouwelijkheid\"));", + "});", + "", + "" + ], + "type": "text/javascript", + "packages": {} + } + } + ], + "request": { + "method": "POST", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Content-Crs", + "value": "EPSG:4326" + }, + { + "key": "Accept-Crs", + "value": "EPSG:4326" + } + ], + "body": { + "mode": "raw", + "raw": "{\r\n\r\n \"bronorganisatie\": \"000000000\",\r\n \"omschrijving\": \"string\",\r\n \"toelichting\": \"string\",\r\n \"zaaktype\": \"{{zaaktype_url}}\",\r\n \"registratiedatum\": \"2019-04-09\",\r\n \"verantwoordelijkeOrganisatie\": \"000000000\",\r\n \"startdatum\": \"2019-04-09\",\r\n \"einddatum\": null,\r\n \"einddatumGepland\": \"2019-04-20\",\r\n \"uiterlijkeEinddatumAfdoening\": \"2019-04-09\",\r\n \"publicatiedatum\": \"2019-04-09\",\r\n \"communicatiekanaal\": \"\",\r\n \"productenOfDiensten\": [],\r\n \"vertrouwelijkheidaanduiding\": null,\r\n \"betalingsindicatie\": \"geheel\",\r\n \"betalingsindicatieWeergave\": null,\r\n \"laatsteBetaaldatum\": \"2019-01-01T00:00:00Z\",\r\n \"zaakgeometrie\": {\r\n \"type\": \"Point\",\r\n \"coordinates\": [\r\n 53.0,\r\n 5.0\r\n ]\r\n },\r\n \"verlenging\": null,\r\n \"opschorting\": {\r\n \"indicatie\": true,\r\n \"reden\": \"string\"\r\n },\r\n \"selectielijstklasse\": \"https://referentielijsten.roxit.nl/api/v1/resultaten/0fe71ce3-b1e1-48eb-9070-be2756fc71b5\",\r\n \"hoofdzaak\": null,\r\n \"deelzaken\": [],\r\n \"relevanteAndereZaken\": [],\r\n \"eigenschappen\": [],\r\n \"rollen\": [],\r\n \"status\": null,\r\n \"zaakinformatieobjecten\": [],\r\n \"zaakobjecten\": [],\r\n \"resultaat\": null,\r\n \"kenmerken\": [],\r\n \"archiefnominatie\": null,\r\n \"archiefstatus\": \"nog_te_archiveren\",\r\n \"archiefactiedatum\": null,\r\n \"opdrachtgevendeOrganisatie\": null,\r\n \"processobjectaard\": null,\r\n \"startdatumBewaartermijn\": null,\r\n \"processobject\": null\r\n}" + }, + "url": { + "raw": "{{zrc_url}}/zaken", + "host": [ + "{{zrc_url}}" + ], + "path": [ + "zaken" + ] + } + }, + "response": [] + } + ], + "event": [ + { + "listen": "prerequest", + "script": { + "type": "text/javascript", + "exec": [ + "" + ] + } + }, + { + "listen": "test", + "script": { + "type": "text/javascript", + "exec": [ + "" + ] + } + } + ] + }, + { + "name": "zrc-010", + "item": [ + { + "name": "(zrc-010a) Valideren communicatiekanaal url bij aanmaken Zaak", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "pm.test(\"Zaak aanmaken met ongeldige communicatiekanaal url geeft 400\", function() {", + " pm.response.to.have.status(400);", + " ", + " // Verify that the 400 is returned for the correct reason", + " var error = pm.response.json()[\"invalidParams\"][0];", + " pm.expect(error.name).to.be.equal(\"communicatiekanaal\");", + " pm.expect(error.code).to.be.equal(\"bad-url\");", + "});", + "", + "// If the test failed and the Zaak was created, delete it", + "if(pm.response.code == 201) {", + " pm.environment.set(\"created_zaak_url\", pm.response.json().url);", + "", + "}" + ], + "type": "text/javascript", + "packages": {} + } + }, + { + "listen": "prerequest", + "script": { + "exec": [ + "" + ], + "type": "text/javascript", + "packages": {} + } + } + ], + "request": { + "method": "POST", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Accept-Crs", + "value": "EPSG:4326" + }, + { + "key": "Content-Crs", + "value": "EPSG:4326" + } + ], + "body": { + "mode": "raw", + "raw": "{\r\n \"url\": \"https://zaken.spt-rx-services.nl/api/v1/zaken/cba40feb-2b38-4490-b12d-84a39e8df361\",\r\n \"uuid\": \"cba40feb-2b38-4490-b12d-84a39e8df361\",\r\n \"bronorganisatie\": \"000000000\",\r\n \"omschrijving\": \"string\",\r\n \"toelichting\": \"string\",\r\n \"zaaktype\": \"{{zaaktype_url}}\",\r\n \"registratiedatum\": \"2019-04-09\",\r\n \"verantwoordelijkeOrganisatie\": \"000000000\",\r\n \"startdatum\": \"2019-04-09\",\r\n \"einddatum\": null,\r\n \"einddatumGepland\": \"2019-04-20\",\r\n \"uiterlijkeEinddatumAfdoening\": \"2019-04-09\",\r\n \"publicatiedatum\": \"2019-04-09\",\r\n \"communicatiekanaal\": \"https://referentielijsten.roxit.nl/api/v1/communicatiekanalen/2b757868-45c2-42ca-b637-b63ddc87beb4xxx\",\r\n \"productenOfDiensten\": [],\r\n \"vertrouwelijkheidaanduiding\": \"geheim\",\r\n \"betalingsindicatie\": \"geheel\",\r\n \"betalingsindicatieWeergave\": null,\r\n \"laatsteBetaaldatum\": \"2019-01-01T00:00:00Z\",\r\n \"zaakgeometrie\": {\r\n \"type\": \"Point\",\r\n \"coordinates\": [\r\n 53.0,\r\n 5.0\r\n ]\r\n },\r\n \"verlenging\": null,\r\n \"opschorting\": {\r\n \"indicatie\": true,\r\n \"reden\": \"string\"\r\n },\r\n \"selectielijstklasse\": \"https://referentielijsten.roxit.nl/api/v1/resultaten/0fe71ce3-b1e1-48eb-9070-be2756fc71b5\",\r\n \"hoofdzaak\": null,\r\n \"deelzaken\": [],\r\n \"relevanteAndereZaken\": [],\r\n \"eigenschappen\": [],\r\n \"rollen\": [],\r\n \"status\": null,\r\n \"zaakinformatieobjecten\": [],\r\n \"zaakobjecten\": [],\r\n \"resultaat\": null,\r\n \"kenmerken\": [],\r\n \"archiefnominatie\": null,\r\n \"archiefstatus\": \"nog_te_archiveren\",\r\n \"archiefactiedatum\": null,\r\n \"opdrachtgevendeOrganisatie\": null,\r\n \"processobjectaard\": null,\r\n \"startdatumBewaartermijn\": null,\r\n \"processobject\": null\r\n}" + }, + "url": { + "raw": "{{zrc_url}}/zaken", + "host": [ + "{{zrc_url}}" + ], + "path": [ + "zaken" + ] + } + }, + "response": [] + }, + { + "name": "(zrc-010b) Valideren communicatiekanaal url bij bijwerken Zaak", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "pm.test(\"Zaak bijwerken met ongeldige communicatiekanaal url geeft 400\", function() {", + " pm.response.to.have.status(400);", + " ", + " // Verify that the 400 is returned for the correct reason", + " var error = pm.response.json()[\"invalidParams\"][0];", + " pm.expect(error.name).to.be.equal(\"communicatiekanaal\");", + " pm.expect(error.code).to.be.equal(\"bad-url\");", + "});" + ], + "type": "text/javascript", + "packages": {} + } + }, + { + "listen": "prerequest", + "script": { + "exec": [ + "" + ], + "type": "text/javascript", + "packages": {} + } + } + ], + "request": { + "method": "PUT", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Accept-Crs", + "value": "EPSG:4326" + }, + { + "key": "Content-Crs", + "value": "EPSG:4326" + } + ], + "body": { + "mode": "raw", + "raw": "{\r\n \"url\": \"https://zaken.spt-rx-services.nl/api/v1/zaken/cba40feb-2b38-4490-b12d-84a39e8df361\",\r\n \"uuid\": \"cba40feb-2b38-4490-b12d-84a39e8df361\",\r\n \"bronorganisatie\": \"000000000\",\r\n \"omschrijving\": \"string\",\r\n \"toelichting\": \"string\",\r\n \"zaaktype\": \"{{zaaktype_url}}\",\r\n \"registratiedatum\": \"2019-04-09\",\r\n \"verantwoordelijkeOrganisatie\": \"000000000\",\r\n \"startdatum\": \"2019-04-09\",\r\n \"einddatum\": null,\r\n \"einddatumGepland\": \"2019-04-20\",\r\n \"uiterlijkeEinddatumAfdoening\": \"2019-04-09\",\r\n \"publicatiedatum\": \"2019-04-09\",\r\n \"communicatiekanaal\": \"https://referentielijsten.roxit.nl/api/v1/communicatiekanalen/2b757868-45c2-42ca-b637-b63ddc87beb4xxx\",\r\n \"productenOfDiensten\": [],\r\n \"vertrouwelijkheidaanduiding\": \"geheim\",\r\n \"betalingsindicatie\": \"geheel\",\r\n \"betalingsindicatieWeergave\": null,\r\n \"laatsteBetaaldatum\": \"2019-01-01T00:00:00Z\",\r\n \"zaakgeometrie\": {\r\n \"type\": \"Point\",\r\n \"coordinates\": [\r\n 53.0,\r\n 5.0\r\n ]\r\n },\r\n \"verlenging\": null,\r\n \"opschorting\": {\r\n \"indicatie\": true,\r\n \"reden\": \"string\"\r\n },\r\n \"selectielijstklasse\": \"https://referentielijsten.roxit.nl/api/v1/resultaten/0fe71ce3-b1e1-48eb-9070-be2756fc71b5xxx\",\r\n \"hoofdzaak\": null,\r\n \"deelzaken\": [],\r\n \"relevanteAndereZaken\": [],\r\n \"eigenschappen\": [],\r\n \"rollen\": [],\r\n \"status\": null,\r\n \"zaakinformatieobjecten\": [],\r\n \"zaakobjecten\": [],\r\n \"resultaat\": null,\r\n \"kenmerken\": [],\r\n \"archiefnominatie\": null,\r\n \"archiefstatus\": \"nog_te_archiveren\",\r\n \"archiefactiedatum\": null,\r\n \"opdrachtgevendeOrganisatie\": null,\r\n \"processobjectaard\": null,\r\n \"startdatumBewaartermijn\": null,\r\n \"processobject\": null\r\n}" + }, + "url": { + "raw": "{{zaak_url}}", + "host": [ + "{{zaak_url}}" + ] + } + }, + "response": [] + }, + { + "name": "(zrc-010c) Valideren communicatiekanaal url bij deels bijwerken Zaak", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "pm.test(\"Zaak deels bijwerken met ongeldige communicatiekanaal url geeft 400\", function() {", + " pm.response.to.have.status(400);", + " ", + " // Verify that the 400 is returned for the correct reason", + " var error = pm.response.json()[\"invalidParams\"][0];", + " pm.expect(error.name).to.be.equal(\"communicatiekanaal\");", + " pm.expect(error.code).to.be.equal(\"bad-url\");", + "});" + ], + "type": "text/javascript", + "packages": {} + } + }, + { + "listen": "prerequest", + "script": { + "exec": [ + "" + ], + "type": "text/javascript", + "packages": {} + } + } + ], + "request": { + "method": "PATCH", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Accept-Crs", + "value": "EPSG:4326" + }, + { + "key": "Content-Crs", + "value": "EPSG:4326" + } + ], + "body": { + "mode": "raw", + "raw": "{\n\t\"communicatiekanaal\": \"https://referentielijsten.roxit.nl/api/v1/communicatiekanalen/2b757868-45c2-42ca-b637-b63ddc87beb4zzz\"\n}" + }, + "url": { + "raw": "{{zaak_url}}", + "host": [ + "{{zaak_url}}" + ] + } + }, + "response": [] + }, + { + "name": "(zrc-010d) Valideren communicatiekanaal-resource bij aanmaken Zaak", + "event": [ + { + "listen": "prerequest", + "script": { + "exec": [ + "" + ], + "type": "text/javascript", + "packages": {} + } + }, + { + "listen": "test", + "script": { + "exec": [ + "pm.test(\"Zaak aanmaken met communicatiekanaal url die niet wijst naar Communicatiekanaal-resource geeft 400\", function() {", + " pm.response.to.have.status(400);", + " ", + " // Verify that the 400 is returned for the correct reason", + " var error = pm.response.json()[\"invalidParams\"][0];", + " pm.expect(error.name).to.be.equal(\"communicatiekanaal\");", + " pm.expect(error.code).to.be.equal(\"invalid-resource\");", + "});", + "", + "// If the test failed and the Zaak was created, delete it", + "if(pm.response.code == 201) {", + " pm.environment.set(\"created_zaak_url\", pm.response.json().url);", + "", + "}" + ], + "type": "text/javascript", + "packages": {} + } + } + ], + "request": { + "method": "POST", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Content-Crs", + "value": "EPSG:4326" + }, + { + "key": "Accept-Crs", + "value": "EPSG:4326" + } + ], + "body": { + "mode": "raw", + "raw": "{\r\n \"url\": \"https://zaken.spt-rx-services.nl/api/v1/zaken/cba40feb-2b38-4490-b12d-84a39e8df361\",\r\n \"uuid\": \"cba40feb-2b38-4490-b12d-84a39e8df361\",\r\n \"bronorganisatie\": \"000000000\",\r\n \"omschrijving\": \"string\",\r\n \"toelichting\": \"string\",\r\n \"zaaktype\": \"{{zaaktype_url}}\",\r\n \"registratiedatum\": \"2019-04-09\",\r\n \"verantwoordelijkeOrganisatie\": \"000000000\",\r\n \"startdatum\": \"2019-04-09\",\r\n \"einddatum\": null,\r\n \"einddatumGepland\": \"2019-04-20\",\r\n \"uiterlijkeEinddatumAfdoening\": \"2019-04-09\",\r\n \"publicatiedatum\": \"2019-04-09\",\r\n \"communicatiekanaal\": \"https://referentielijsten.roxit.nl/api/v1/communicatiekanalen\",\r\n \"productenOfDiensten\": [],\r\n \"vertrouwelijkheidaanduiding\": \"geheim\",\r\n \"betalingsindicatie\": \"geheel\",\r\n \"betalingsindicatieWeergave\": null,\r\n \"laatsteBetaaldatum\": \"2019-01-01T00:00:00Z\",\r\n \"zaakgeometrie\": {\r\n \"type\": \"Point\",\r\n \"coordinates\": [\r\n 53.0,\r\n 5.0\r\n ]\r\n },\r\n \"verlenging\": null,\r\n \"opschorting\": {\r\n \"indicatie\": true,\r\n \"reden\": \"string\"\r\n },\r\n \"selectielijstklasse\": \"https://referentielijsten.roxit.nl/api/v1/resultaten/0fe71ce3-b1e1-48eb-9070-be2756fc71b5\",\r\n \"hoofdzaak\": null,\r\n \"deelzaken\": [],\r\n \"relevanteAndereZaken\": [],\r\n \"eigenschappen\": [],\r\n \"rollen\": [],\r\n \"status\": null,\r\n \"zaakinformatieobjecten\": [],\r\n \"zaakobjecten\": [],\r\n \"resultaat\": null,\r\n \"kenmerken\": [],\r\n \"archiefnominatie\": null,\r\n \"archiefstatus\": \"nog_te_archiveren\",\r\n \"archiefactiedatum\": null,\r\n \"opdrachtgevendeOrganisatie\": null,\r\n \"processobjectaard\": null,\r\n \"startdatumBewaartermijn\": null,\r\n \"processobject\": null\r\n}" + }, + "url": { + "raw": "{{zrc_url}}/zaken", + "host": [ + "{{zrc_url}}" + ], + "path": [ + "zaken" + ] + } + }, + "response": [] + }, + { + "name": "(zrc-010e) Valideren communicatiekanaal-resource bij bijwerken Zaak", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "pm.test(\"Zaak bijwerken met communicatiekanaal url die niet wijst naar Communicatiekanaal-resource geeft 400\", function() {", + " pm.response.to.have.status(400);", + " ", + " // Verify that the 400 is returned for the correct reason", + " var error = pm.response.json()[\"invalidParams\"][0];", + " pm.expect(error.name).to.be.equal(\"communicatiekanaal\");", + " pm.expect(error.code).to.be.equal(\"invalid-resource\");", + "});" + ], + "type": "text/javascript", + "packages": {} + } + }, + { + "listen": "prerequest", + "script": { + "exec": [ + "" + ], + "type": "text/javascript", + "packages": {} + } + } + ], + "request": { + "method": "PUT", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Accept-Crs", + "value": "EPSG:4326" + }, + { + "key": "Content-Crs", + "value": "EPSG:4326" + } + ], + "body": { + "mode": "raw", + "raw": "{\r\n \"url\": \"https://zaken.spt-rx-services.nl/api/v1/zaken/cba40feb-2b38-4490-b12d-84a39e8df361\",\r\n \"uuid\": \"cba40feb-2b38-4490-b12d-84a39e8df361\",\r\n \"bronorganisatie\": \"000000000\",\r\n \"omschrijving\": \"string\",\r\n \"toelichting\": \"string\",\r\n \"zaaktype\": \"{{zaaktype_url}}\",\r\n \"registratiedatum\": \"2019-04-09\",\r\n \"verantwoordelijkeOrganisatie\": \"000000000\",\r\n \"startdatum\": \"2019-04-09\",\r\n \"einddatum\": null,\r\n \"einddatumGepland\": \"2019-04-20\",\r\n \"uiterlijkeEinddatumAfdoening\": \"2019-04-09\",\r\n \"publicatiedatum\": \"2019-04-09\",\r\n \"communicatiekanaal\": \"https://referentielijsten.roxit.nl/api/v1/communicatiekanalen\",\r\n \"productenOfDiensten\": [],\r\n \"vertrouwelijkheidaanduiding\": \"geheim\",\r\n \"betalingsindicatie\": \"geheel\",\r\n \"betalingsindicatieWeergave\": null,\r\n \"laatsteBetaaldatum\": \"2019-01-01T00:00:00Z\",\r\n \"zaakgeometrie\": {\r\n \"type\": \"Point\",\r\n \"coordinates\": [\r\n 53.0,\r\n 5.0\r\n ]\r\n },\r\n \"verlenging\": null,\r\n \"opschorting\": {\r\n \"indicatie\": true,\r\n \"reden\": \"string\"\r\n },\r\n \"selectielijstklasse\": \"https://referentielijsten.roxit.nl/api/v1/resultaten/0fe71ce3-b1e1-48eb-9070-be2756fc71b5\",\r\n \"hoofdzaak\": null,\r\n \"deelzaken\": [],\r\n \"relevanteAndereZaken\": [],\r\n \"eigenschappen\": [],\r\n \"rollen\": [],\r\n \"status\": null,\r\n \"zaakinformatieobjecten\": [],\r\n \"zaakobjecten\": [],\r\n \"resultaat\": null,\r\n \"kenmerken\": [],\r\n \"archiefnominatie\": null,\r\n \"archiefstatus\": \"nog_te_archiveren\",\r\n \"archiefactiedatum\": null,\r\n \"opdrachtgevendeOrganisatie\": null,\r\n \"processobjectaard\": null,\r\n \"startdatumBewaartermijn\": null,\r\n \"processobject\": null\r\n}" + }, + "url": { + "raw": "{{zaak_url}}", + "host": [ + "{{zaak_url}}" + ] + } + }, + "response": [] + }, + { + "name": "(zrc-010f) Valideren communicatiekanaal-resource bij deels bijwerken Zaak", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "pm.test(\"Zaak deels bijwerken met communicatiekanaal url die niet wijst naar Communicatiekanaal-resource geeft 400\", function() {", + " pm.response.to.have.status(400);", + " ", + " // Verify that the 400 is returned for the correct reason", + " var error = pm.response.json()[\"invalidParams\"][0];", + " pm.expect(error.name).to.be.equal(\"communicatiekanaal\");", + " pm.expect(error.code).to.be.equal(\"invalid-resource\");", + "});" + ], + "type": "text/javascript", + "packages": {} + } + }, + { + "listen": "prerequest", + "script": { + "exec": [ + "" + ], + "type": "text/javascript", + "packages": {} + } + } + ], + "request": { + "method": "PATCH", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Accept-Crs", + "value": "EPSG:4326" + }, + { + "key": "Content-Crs", + "value": "EPSG:4326" + } + ], + "body": { + "mode": "raw", + "raw": "{\n\t\"communicatiekanaal\": \"https://referentielijsten.roxit.nl/api/v1/communicatiekanalen\"\n}" + }, + "url": { + "raw": "{{zaak_url}}", + "host": [ + "{{zaak_url}}" + ] + } + }, + "response": [] + }, + { + "name": "(zrc-010g) Zaak aanmaken met valide communicatiekanaal is mogelijk", + "event": [ + { + "listen": "prerequest", + "script": { + "exec": [ + "" + ], + "type": "text/javascript", + "packages": {} + } + }, + { + "listen": "test", + "script": { + "exec": [ + "if (pm.response.code==201 ){", + " pm.environment.set(\"created_zaak_url\", pm.response.json().url);", + "}", + "pm.test(\"Zaak aanmaken met valide communicatiekanaal geeft 201\", function() {", + " pm.response.to.have.status(201);", + " ", + "});" + ], + "type": "text/javascript", + "packages": {} + } + } + ], + "request": { + "method": "POST", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Content-Crs", + "value": "EPSG:4326" + }, + { + "key": "Accept-Crs", + "value": "EPSG:4326" + } + ], + "body": { + "mode": "raw", + "raw": "{\r\n \"url\": \"https://zaken.spt-rx-services.nl/api/v1/zaken/cba40feb-2b38-4490-b12d-84a39e8df361\",\r\n \"uuid\": \"cba40feb-2b38-4490-b12d-84a39e8df361\",\r\n \"bronorganisatie\": \"000000000\",\r\n \"omschrijving\": \"string\",\r\n \"toelichting\": \"string\",\r\n \"zaaktype\": \"{{zaaktype_url}}\",\r\n \"registratiedatum\": \"2019-04-09\",\r\n \"verantwoordelijkeOrganisatie\": \"000000000\",\r\n \"startdatum\": \"2019-04-09\",\r\n \"einddatum\": null,\r\n \"einddatumGepland\": \"2019-04-20\",\r\n \"uiterlijkeEinddatumAfdoening\": \"2019-04-09\",\r\n \"publicatiedatum\": \"2019-04-09\",\r\n \"communicatiekanaal\": \"https://referentielijsten.roxit.nl/api/v1/communicatiekanalen/2b757868-45c2-42ca-b637-b63ddc87beb4\",\r\n \"productenOfDiensten\": [],\r\n \"vertrouwelijkheidaanduiding\": \"geheim\",\r\n \"betalingsindicatie\": \"geheel\",\r\n \"betalingsindicatieWeergave\": null,\r\n \"laatsteBetaaldatum\": \"2019-01-01T00:00:00Z\",\r\n \"zaakgeometrie\": {\r\n \"type\": \"Point\",\r\n \"coordinates\": [\r\n 53.0,\r\n 5.0\r\n ]\r\n },\r\n \"verlenging\": null,\r\n \"opschorting\": {\r\n \"indicatie\": true,\r\n \"reden\": \"string\"\r\n },\r\n \"selectielijstklasse\": \"https://referentielijsten.roxit.nl/api/v1/resultaten/0fe71ce3-b1e1-48eb-9070-be2756fc71b5\",\r\n \"hoofdzaak\": null,\r\n \"deelzaken\": [],\r\n \"relevanteAndereZaken\": [],\r\n \"eigenschappen\": [],\r\n \"rollen\": [],\r\n \"status\": null,\r\n \"zaakinformatieobjecten\": [],\r\n \"zaakobjecten\": [],\r\n \"resultaat\": null,\r\n \"kenmerken\": [],\r\n \"archiefnominatie\": null,\r\n \"archiefstatus\": \"nog_te_archiveren\",\r\n \"archiefactiedatum\": null,\r\n \"opdrachtgevendeOrganisatie\": null,\r\n \"processobjectaard\": null,\r\n \"startdatumBewaartermijn\": null,\r\n \"processobject\": null\r\n}" + }, + "url": { + "raw": "{{zrc_url}}/zaken", + "host": [ + "{{zrc_url}}" + ], + "path": [ + "zaken" + ] + } + }, + "response": [] + }, + { + "name": "(zrc-010h) Zaak bijwerken met valide communicatiekanaal is mogelijk", + "event": [ + { + "listen": "prerequest", + "script": { + "exec": [ + "" + ], + "type": "text/javascript", + "packages": {} + } + }, + { + "listen": "test", + "script": { + "exec": [ + "pm.test(\"Zaak bijwerken met valide communicatiekanaal geeft 200\", function() {", + " pm.response.to.have.status(200);", + "});" + ], + "type": "text/javascript", + "packages": {} + } + } + ], + "request": { + "method": "PUT", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Content-Crs", + "value": "EPSG:4326" + }, + { + "key": "Accept-Crs", + "value": "EPSG:4326" + } + ], + "body": { + "mode": "raw", + "raw": "{\r\n\r\n \"bronorganisatie\": \"000000000\",\r\n \"omschrijving\": \"string 2\",\r\n \"toelichting\": \"string\",\r\n \"zaaktype\": \"{{zaaktype_url}}\",\r\n \"registratiedatum\": \"2019-04-09\",\r\n \"verantwoordelijkeOrganisatie\": \"000000000\",\r\n \"startdatum\": \"2019-04-09\",\r\n \"einddatum\": null,\r\n \"einddatumGepland\": \"2019-04-20\",\r\n \"uiterlijkeEinddatumAfdoening\": \"2019-04-09\",\r\n \"publicatiedatum\": \"2019-04-09\",\r\n \"communicatiekanaal\": \"https://referentielijsten.roxit.nl/api/v1/communicatiekanalen/2b757868-45c2-42ca-b637-b63ddc87beb4\",\r\n \"productenOfDiensten\": [],\r\n \"vertrouwelijkheidaanduiding\": \"geheim\",\r\n \"betalingsindicatie\": \"geheel\",\r\n \"betalingsindicatieWeergave\": null,\r\n \"laatsteBetaaldatum\": \"2019-01-01T00:00:00Z\",\r\n \"zaakgeometrie\": {\r\n \"type\": \"Point\",\r\n \"coordinates\": [\r\n 53.0,\r\n 5.0\r\n ]\r\n },\r\n \"verlenging\": null,\r\n \"opschorting\": {\r\n \"indicatie\": true,\r\n \"reden\": \"string\"\r\n },\r\n \"selectielijstklasse\": \"https://referentielijsten.roxit.nl/api/v1/resultaten/0fe71ce3-b1e1-48eb-9070-be2756fc71b5\",\r\n \"hoofdzaak\": null,\r\n \"deelzaken\": [],\r\n \"relevanteAndereZaken\": [],\r\n \"eigenschappen\": [],\r\n \"rollen\": [],\r\n \"status\": null,\r\n \"zaakinformatieobjecten\": [],\r\n \"zaakobjecten\": [],\r\n \"resultaat\": null,\r\n \"kenmerken\": [],\r\n \"archiefnominatie\": null,\r\n \"archiefstatus\": \"nog_te_archiveren\",\r\n \"archiefactiedatum\": null,\r\n \"opdrachtgevendeOrganisatie\": null,\r\n \"processobjectaard\": null,\r\n \"startdatumBewaartermijn\": null,\r\n \"processobject\": null\r\n}" + }, + "url": { + "raw": "{{created_zaak_url}}", + "host": [ + "{{created_zaak_url}}" + ] + } + }, + "response": [] + }, + { + "name": "(zrc-010i) Zaak deels bijwerken met valide communicatiekanaal is mogelijk", + "event": [ + { + "listen": "prerequest", + "script": { + "exec": [ + "" + ], + "type": "text/javascript", + "packages": {} + } + }, + { + "listen": "test", + "script": { + "exec": [ + "pm.test(\"Zaak deels bijwerken met valide communicatiekanaal geeft 200\", function() {", + " pm.response.to.have.status(200);", + "});", + "", + "if(pm.environment.get(\"created_zaak_url\")) {", + " ", + "}" + ], + "type": "text/javascript", + "packages": {} + } + } + ], + "request": { + "method": "PATCH", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Content-Crs", + "value": "EPSG:4326" + }, + { + "key": "Accept-Crs", + "value": "EPSG:4326" + } + ], + "body": { + "mode": "raw", + "raw": "{\n\t\"communicatiekanaal\": \"https://referentielijsten.roxit.nl/api/v1/communicatiekanalen/2b757868-45c2-42ca-b637-b63ddc87beb4\"\n}" + }, + "url": { + "raw": "{{created_zaak_url}}", + "host": [ + "{{created_zaak_url}}" + ] + } + }, + "response": [] + } + ], + "event": [ + { + "listen": "prerequest", + "script": { + "type": "text/javascript", + "exec": [ + "" + ] + } + }, + { + "listen": "test", + "script": { + "type": "text/javascript", + "exec": [ + "" + ] + } + } + ] + }, + { + "name": "zrc-011", + "item": [ + { + "name": "(zrc-011a) Zaak aanmaken met ongeldige url in relevanteAndereZaken is onmogelijk", + "event": [ + { + "listen": "prerequest", + "script": { + "exec": [ + "" + ], + "type": "text/javascript", + "packages": {} + } + }, + { + "listen": "test", + "script": { + "exec": [ + "pm.test(\"Zaak aanmaken met ongeldige url in relevanteAndereZaken geeft 400\", function() {", + " pm.response.to.have.status(400);", + " ", + " // Verify that the 400 is returned for the correct reason", + " var error = pm.response.json()[\"invalidParams\"][0];", + " pm.expect(error.name).to.be.equal(\"relevanteAndereZaken.0.url\");", + " pm.expect(error.code).to.be.equal(\"bad-url\");", + "});", + "", + "if(pm.response.code == 201) {", + " pm.environment.set(\"created_zaak_url\", pm.response.json().url);", + "", + "}" + ], + "type": "text/javascript", + "packages": {} + } + } + ], + "request": { + "method": "POST", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Content-Crs", + "value": "EPSG:4326" + }, + { + "key": "Accept-Crs", + "value": "EPSG:4326" + } + ], + "body": { + "mode": "raw", + "raw": "{\r\n \"bronorganisatie\": \"000000000\",\r\n \"omschrijving\": \"string\",\r\n \"toelichting\": \"string\",\r\n \"zaaktype\": \"{{zaaktype_url}}\",\r\n \"registratiedatum\": \"2019-04-09\",\r\n \"verantwoordelijkeOrganisatie\": \"000000000\",\r\n \"startdatum\": \"2019-04-09\",\r\n \"einddatum\": null,\r\n \"einddatumGepland\": \"2019-04-20\",\r\n \"uiterlijkeEinddatumAfdoening\": \"2019-04-09\",\r\n \"publicatiedatum\": \"2019-04-09\",\r\n \"communicatiekanaal\": \"\",\r\n \"productenOfDiensten\": [],\r\n \"vertrouwelijkheidaanduiding\": \"geheim\",\r\n \"betalingsindicatie\": \"geheel\",\r\n \"betalingsindicatieWeergave\": null,\r\n \"laatsteBetaaldatum\": \"2019-01-01T00:00:00Z\",\r\n \"zaakgeometrie\": {\r\n \"type\": \"Point\",\r\n \"coordinates\": [\r\n 53.0,\r\n 5.0\r\n ]\r\n },\r\n \"verlenging\": null,\r\n \"opschorting\": {\r\n \"indicatie\": true,\r\n \"reden\": \"string\"\r\n },\r\n \"selectielijstklasse\": \"https://referentielijsten.roxit.nl/api/v1/resultaten/0fe71ce3-b1e1-48eb-9070-be2756fc71b5\",\r\n \"hoofdzaak\": null,\r\n \"deelzaken\": [],\r\n \"relevanteAndereZaken\": [\r\n {\r\n \"url\": \"https://zaken-api.test.vng.cloud/api/v1/zaken/x12\",\r\n \"aardRelatie\": \"vervolg\"\r\n }\r\n ],\r\n \"eigenschappen\": [],\r\n \"rollen\": [],\r\n \"status\": null,\r\n \"zaakinformatieobjecten\": [],\r\n \"zaakobjecten\": [],\r\n \"resultaat\": null,\r\n \"kenmerken\": [],\r\n \"archiefnominatie\": null,\r\n \"archiefstatus\": \"nog_te_archiveren\",\r\n \"archiefactiedatum\": null,\r\n \"opdrachtgevendeOrganisatie\": null,\r\n \"processobjectaard\": null,\r\n \"startdatumBewaartermijn\": null,\r\n \"processobject\": null\r\n}" + }, + "url": { + "raw": "{{zrc_url}}/zaken", + "host": [ + "{{zrc_url}}" + ], + "path": [ + "zaken" + ] + } + }, + "response": [] + }, + { + "name": "(zrc-011b) Zaak bijwerken met ongeldige url in relevanteAndereZaken is onmogelijk", + "event": [ + { + "listen": "prerequest", + "script": { + "exec": [ + "" + ], + "type": "text/javascript", + "packages": {} + } + }, + { + "listen": "test", + "script": { + "exec": [ + "pm.test(\"Zaak bijwerken met ongeldige url in relevanteAndereZaken geeft 400\", function() {", + " pm.response.to.have.status(400);", + " ", + " // Verify that the 400 is returned for the correct reason", + " var error = pm.response.json()[\"invalidParams\"][0];", + " pm.expect(error.name).to.be.equal(\"relevanteAndereZaken.0.url\");", + " pm.expect(error.code).to.be.equal(\"bad-url\");", + "});" + ], + "type": "text/javascript", + "packages": {} + } + } + ], + "request": { + "method": "PUT", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Content-Crs", + "value": "EPSG:4326" + }, + { + "key": "Accept-Crs", + "value": "EPSG:4326" + } + ], + "body": { + "mode": "raw", + "raw": "{\r\n \"bronorganisatie\": \"000000000\",\r\n \"omschrijving\": \"string\",\r\n \"toelichting\": \"string\",\r\n \"zaaktype\": \"{{zaaktype_url}}\",\r\n \"registratiedatum\": \"2019-04-09\",\r\n \"verantwoordelijkeOrganisatie\": \"000000000\",\r\n \"startdatum\": \"2019-04-09\",\r\n \"einddatum\": null,\r\n \"einddatumGepland\": \"2019-04-20\",\r\n \"uiterlijkeEinddatumAfdoening\": \"2019-04-09\",\r\n \"publicatiedatum\": \"2019-04-09\",\r\n \"communicatiekanaal\": \"\",\r\n \"productenOfDiensten\": [],\r\n \"vertrouwelijkheidaanduiding\": \"geheim\",\r\n \"betalingsindicatie\": \"geheel\",\r\n \"betalingsindicatieWeergave\": null,\r\n \"laatsteBetaaldatum\": \"2019-01-01T00:00:00Z\",\r\n \"zaakgeometrie\": {\r\n \"type\": \"Point\",\r\n \"coordinates\": [\r\n 53.0,\r\n 5.0\r\n ]\r\n },\r\n \"verlenging\": null,\r\n \"opschorting\": {\r\n \"indicatie\": true,\r\n \"reden\": \"string\"\r\n },\r\n \"selectielijstklasse\": \"https://referentielijsten.roxit.nl/api/v1/resultaten/0fe71ce3-b1e1-48eb-9070-be2756fc71b5\",\r\n \"hoofdzaak\": null,\r\n \"deelzaken\": [],\r\n \"relevanteAndereZaken\": [\r\n {\r\n \"url\": \"https://zaken-api.test.vng.cloud/api/v1/zaken/x12\",\r\n \"aardRelatie\": \"vervolg\"\r\n }\r\n ],\r\n \"eigenschappen\": [],\r\n \"rollen\": [],\r\n \"status\": null,\r\n \"zaakinformatieobjecten\": [],\r\n \"zaakobjecten\": [],\r\n \"resultaat\": null,\r\n \"kenmerken\": [],\r\n \"archiefnominatie\": null,\r\n \"archiefstatus\": \"nog_te_archiveren\",\r\n \"archiefactiedatum\": null,\r\n \"opdrachtgevendeOrganisatie\": null,\r\n \"processobjectaard\": null,\r\n \"startdatumBewaartermijn\": null,\r\n \"processobject\": null\r\n}" + }, + "url": { + "raw": "{{zaak_url}}", + "host": [ + "{{zaak_url}}" + ] + } + }, + "response": [] + }, + { + "name": "(zrc-011c) Zaak deels bijwerken met ongeldige url in relevanteAndereZaken is onmogelijk", + "event": [ + { + "listen": "prerequest", + "script": { + "exec": [ + "" + ], + "type": "text/javascript" + } + }, + { + "listen": "test", + "script": { + "exec": [ + "pm.test(\"Zaak deels bijwerken met ongeldige url in relevanteAndereZaken geeft 400\", function() {", + " pm.response.to.have.status(400);", + " ", + " // Verify that the 400 is returned for the correct reason", + " var error = pm.response.json()[\"invalidParams\"][0];", + " pm.expect(error.name).to.be.equal(\"relevanteAndereZaken.0.url\");", + " pm.expect(error.code).to.be.equal(\"bad-url\");", + "});" + ], + "type": "text/javascript" + } + } + ], + "request": { + "method": "PATCH", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Content-Crs", + "value": "EPSG:4326" + }, + { + "key": "Accept-Crs", + "value": "EPSG:4326" + } + ], + "body": { + "mode": "raw", + "raw": "{\n\t\"relevanteAndereZaken\": [{\n\t \"url\": \"{{mock_url}}/404\",\n\t \"aardRelatie\": \"vervolg\"\n\t}]\n}" + }, + "url": { + "raw": "{{zaak_url}}", + "host": [ + "{{zaak_url}}" + ] + } + }, + "response": [] + }, + { + "name": "(zrc-011d) Zaak aanmaken met relevanteAndereZaken is mogelijk", + "event": [ + { + "listen": "prerequest", + "script": { + "exec": [ + "" + ], + "type": "text/javascript", + "packages": {} + } + }, + { + "listen": "test", + "script": { + "exec": [ + "pm.test(\"Zaak aanmaken met geldige relevanteAndereZaken geeft 201\", function() {", + " pm.response.to.have.status(201);", + " pm.environment.set(\"created_zaak_url\", pm.response.json().url);", + "});", + "", + "" + ], + "type": "text/javascript", + "packages": {} + } + } + ], + "request": { + "method": "POST", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Content-Crs", + "value": "EPSG:4326" + }, + { + "key": "Accept-Crs", + "value": "EPSG:4326" + } + ], + "body": { + "mode": "raw", + "raw": "{\r\n \"bronorganisatie\": \"000000000\",\r\n \"omschrijving\": \"string\",\r\n \"toelichting\": \"string\",\r\n \"zaaktype\": \"{{zaaktype_url}}\",\r\n \"registratiedatum\": \"2019-04-09\",\r\n \"verantwoordelijkeOrganisatie\": \"000000000\",\r\n \"startdatum\": \"2019-04-09\",\r\n \"einddatum\": null,\r\n \"einddatumGepland\": \"2019-04-20\",\r\n \"uiterlijkeEinddatumAfdoening\": \"2019-04-09\",\r\n \"publicatiedatum\": \"2019-04-09\",\r\n \"communicatiekanaal\": \"\",\r\n \"productenOfDiensten\": [],\r\n \"vertrouwelijkheidaanduiding\": \"geheim\",\r\n \"betalingsindicatie\": \"geheel\",\r\n \"betalingsindicatieWeergave\": null,\r\n \"laatsteBetaaldatum\": \"2019-01-01T00:00:00Z\",\r\n \"zaakgeometrie\": {\r\n \"type\": \"Point\",\r\n \"coordinates\": [\r\n 53.0,\r\n 5.0\r\n ]\r\n },\r\n \"verlenging\": null,\r\n \"opschorting\": {\r\n \"indicatie\": true,\r\n \"reden\": \"string\"\r\n },\r\n \"selectielijstklasse\": \"https://referentielijsten.roxit.nl/api/v1/resultaten/0fe71ce3-b1e1-48eb-9070-be2756fc71b5\",\r\n \"hoofdzaak\": null,\r\n \"deelzaken\": [],\r\n \"relevanteAndereZaken\": [\r\n {\r\n \"url\": \"{{zaak_url}}\",\r\n \"aardRelatie\": \"vervolg\"\r\n }\r\n ],\r\n \"eigenschappen\": [],\r\n \"rollen\": [],\r\n \"status\": null,\r\n \"zaakinformatieobjecten\": [],\r\n \"zaakobjecten\": [],\r\n \"resultaat\": null,\r\n \"kenmerken\": [],\r\n \"archiefnominatie\": null,\r\n \"archiefstatus\": \"nog_te_archiveren\",\r\n \"archiefactiedatum\": null,\r\n \"opdrachtgevendeOrganisatie\": null,\r\n \"processobjectaard\": null,\r\n \"startdatumBewaartermijn\": null,\r\n \"processobject\": null\r\n}" + }, + "url": { + "raw": "{{zrc_url}}/zaken", + "host": [ + "{{zrc_url}}" + ], + "path": [ + "zaken" + ] + } + }, + "response": [] + }, + { + "name": "(zrc-011e) Zaak bijwerken met relevanteAndereZaken is mogelijk", + "event": [ + { + "listen": "prerequest", + "script": { + "exec": [ + "" + ], + "type": "text/javascript", + "packages": {} + } + }, + { + "listen": "test", + "script": { + "exec": [ + "pm.test(\"Zaak bijwerken met geldige relevanteAndereZaken geeft 200\", function() {", + " pm.response.to.have.status(200);", + "});" + ], + "type": "text/javascript", + "packages": {} + } + } + ], + "request": { + "method": "PUT", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Accept-Crs", + "value": "EPSG:4326" + }, + { + "key": "Content-Crs", + "value": "EPSG:4326" + } + ], + "body": { + "mode": "raw", + "raw": "{\r\n \"bronorganisatie\": \"000000000\",\r\n \"omschrijving\": \"string\",\r\n \"toelichting\": \"string\",\r\n \"zaaktype\": \"{{zaaktype_url}}\",\r\n \"registratiedatum\": \"2019-04-09\",\r\n \"verantwoordelijkeOrganisatie\": \"000000000\",\r\n \"startdatum\": \"2019-04-09\",\r\n \"einddatum\": null,\r\n \"einddatumGepland\": \"2019-04-20\",\r\n \"uiterlijkeEinddatumAfdoening\": \"2019-04-09\",\r\n \"publicatiedatum\": \"2019-04-09\",\r\n \"communicatiekanaal\": \"\",\r\n \"productenOfDiensten\": [],\r\n \"vertrouwelijkheidaanduiding\": \"geheim\",\r\n \"betalingsindicatie\": \"geheel\",\r\n \"betalingsindicatieWeergave\": null,\r\n \"laatsteBetaaldatum\": \"2019-01-01T00:00:00Z\",\r\n \"zaakgeometrie\": {\r\n \"type\": \"Point\",\r\n \"coordinates\": [\r\n 53.0,\r\n 5.0\r\n ]\r\n },\r\n \"verlenging\": null,\r\n \"opschorting\": {\r\n \"indicatie\": true,\r\n \"reden\": \"string\"\r\n },\r\n \"selectielijstklasse\": \"https://referentielijsten.roxit.nl/api/v1/resultaten/0fe71ce3-b1e1-48eb-9070-be2756fc71b5\",\r\n \"hoofdzaak\": null,\r\n \"deelzaken\": [],\r\n \"relevanteAndereZaken\": [\r\n {\r\n \"url\": \"{{zaak_url}}\",\r\n \"aardRelatie\": \"vervolg\"\r\n }\r\n ],\r\n \"eigenschappen\": [],\r\n \"rollen\": [],\r\n \"status\": null,\r\n \"zaakinformatieobjecten\": [],\r\n \"zaakobjecten\": [],\r\n \"resultaat\": null,\r\n \"kenmerken\": [],\r\n \"archiefnominatie\": null,\r\n \"archiefstatus\": \"nog_te_archiveren\",\r\n \"archiefactiedatum\": null,\r\n \"opdrachtgevendeOrganisatie\": null,\r\n \"processobjectaard\": null,\r\n \"startdatumBewaartermijn\": null,\r\n \"processobject\": null\r\n}" + }, + "url": { + "raw": "{{zaak_url}}", + "host": [ + "{{zaak_url}}" + ] + } + }, + "response": [] + }, + { + "name": "(zrc-011f) Zaak deels bijwerken met relevanteAndereZaken is mogelijk", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "pm.test(\"Zaak deels bijwerken met geldige relevanteAndereZaken geeft 200\", function() {", + " pm.response.to.have.status(200);", + "});", + "", + "" + ], + "type": "text/javascript", + "packages": {} + } + } + ], + "request": { + "method": "PATCH", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Accept-Crs", + "value": "EPSG:4326" + }, + { + "key": "Content-Crs", + "value": "EPSG:4326" + } + ], + "body": { + "mode": "raw", + "raw": "{\n\t\"relevanteAndereZaken\": [{\n\t \"url\": \"{{zaak_url}}\",\n\t \"aardRelatie\": \"vervolg\"\n\t}]\n}" + }, + "url": { + "raw": "{{zaak_url}}", + "host": [ + "{{zaak_url}}" + ] + } + }, + "response": [] + } + ], + "event": [ + { + "listen": "prerequest", + "script": { + "type": "text/javascript", + "exec": [ + "" + ] + } + }, + { + "listen": "test", + "script": { + "type": "text/javascript", + "exec": [ + "" + ] + } + } + ] + }, + { + "name": "zrc-012", + "item": [ + { + "name": "(zrc-012a) Zaak aanmaken met opschorting zonder indicatie en reden is onmogelijk", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "pm.test(\"Zaak aanmaken met opschorting zonder indicatie en reden geeft 400\", function() {", + " pm.response.to.have.status(400);", + " ", + " // Verify that the 400 is returned for the correct reason", + " var errors = pm.response.json()[\"invalidParams\"];", + " pm.expect(errors[0].name).to.be.equal(\"opschorting.indicatie\");", + " pm.expect(errors[0].code).to.be.equal(\"required\");", + " ", + " pm.expect(errors[1].name).to.be.equal(\"opschorting.reden\");", + " pm.expect(errors[1].code).to.be.equal(\"required\");", + "});", + "", + "if(pm.response.code == 201) {", + " pm.environment.set(\"created_zaak_url\", pm.response.json().url);", + "", + "}" + ], + "type": "text/javascript", + "packages": {} + } + }, + { + "listen": "prerequest", + "script": { + "exec": [ + "" + ], + "type": "text/javascript", + "packages": {} + } + } + ], + "request": { + "method": "POST", + "header": [ + { + "key": "Content-Crs", + "value": "EPSG:4326" + }, + { + "key": "Accept-Crs", + "value": "EPSG:4326" + }, + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\r\n \"bronorganisatie\": \"000000000\",\r\n \"omschrijving\": \"string\",\r\n \"toelichting\": \"string\",\r\n \"zaaktype\": \"{{zaaktype_url}}\",\r\n \"registratiedatum\": \"2019-04-09\",\r\n \"verantwoordelijkeOrganisatie\": \"000000000\",\r\n \"startdatum\": \"2019-04-09\",\r\n \"einddatum\": null,\r\n \"einddatumGepland\": \"2019-04-20\",\r\n \"uiterlijkeEinddatumAfdoening\": \"2019-04-09\",\r\n \"publicatiedatum\": \"2019-04-09\",\r\n \"communicatiekanaal\": \"\",\r\n \"productenOfDiensten\": [],\r\n \"vertrouwelijkheidaanduiding\": \"{{expliciete_vertrouwelijkheid}}\",\r\n \"betalingsindicatie\": \"geheel\",\r\n \"betalingsindicatieWeergave\": null,\r\n \"laatsteBetaaldatum\": \"2019-01-01T00:00:00Z\",\r\n \"zaakgeometrie\": {\r\n \"type\": \"Point\",\r\n \"coordinates\": [\r\n 53.0,\r\n 5.0\r\n ]\r\n },\r\n \"verlenging\": null,\r\n \"opschorting\": {\r\n \"wrong_field\": \"test\"\r\n },\r\n \"selectielijstklasse\": \"https://referentielijsten.roxit.nl/api/v1/resultaten/0fe71ce3-b1e1-48eb-9070-be2756fc71b5\",\r\n \"hoofdzaak\": null,\r\n \"deelzaken\": [],\r\n \"relevanteAndereZaken\": [],\r\n \"eigenschappen\": [],\r\n \"rollen\": [],\r\n \"status\": null,\r\n \"zaakinformatieobjecten\": [],\r\n \"zaakobjecten\": [],\r\n \"resultaat\": null,\r\n \"kenmerken\": [],\r\n \"archiefnominatie\": null,\r\n \"archiefstatus\": \"nog_te_archiveren\",\r\n \"archiefactiedatum\": null,\r\n \"opdrachtgevendeOrganisatie\": null,\r\n \"processobjectaard\": null,\r\n \"startdatumBewaartermijn\": null,\r\n \"processobject\": null\r\n}" + }, + "url": { + "raw": "{{zrc_url}}/zaken", + "host": [ + "{{zrc_url}}" + ], + "path": [ + "zaken" + ] + } + }, + "response": [] + }, + { + "name": "(zrc-012b) Zaak bijwerken met opschorting zonder indicatie en reden is onmogelijk", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "pm.test(\"Zaak bijwerken met opschorting zonder indicatie en reden geeft 400\", function() {", + " pm.response.to.have.status(400);", + " ", + " // Verify that the 400 is returned for the correct reason", + " var errors = pm.response.json()[\"invalidParams\"];", + " pm.expect(errors[0].name).to.be.equal(\"opschorting.indicatie\");", + " pm.expect(errors[0].code).to.be.equal(\"required\");", + " ", + " pm.expect(errors[1].name).to.be.equal(\"opschorting.reden\");", + " pm.expect(errors[1].code).to.be.equal(\"required\");", + "});" + ], + "type": "text/javascript", + "packages": {} + } + }, + { + "listen": "prerequest", + "script": { + "exec": [ + "" + ], + "type": "text/javascript", + "packages": {} + } + } + ], + "request": { + "method": "PUT", + "header": [ + { + "key": "Content-Crs", + "value": "EPSG:4326" + }, + { + "key": "Accept-Crs", + "value": "EPSG:4326" + }, + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\r\n \"bronorganisatie\": \"000000000\",\r\n \"omschrijving\": \"string\",\r\n \"toelichting\": \"string\",\r\n \"zaaktype\": \"{{zaaktype_url}}\",\r\n \"registratiedatum\": \"2019-04-09\",\r\n \"verantwoordelijkeOrganisatie\": \"000000000\",\r\n \"startdatum\": \"2019-04-09\",\r\n \"einddatum\": null,\r\n \"einddatumGepland\": \"2019-04-20\",\r\n \"uiterlijkeEinddatumAfdoening\": \"2019-04-09\",\r\n \"publicatiedatum\": \"2019-04-09\",\r\n \"communicatiekanaal\": \"\",\r\n \"productenOfDiensten\": [],\r\n \"vertrouwelijkheidaanduiding\": \"{{expliciete_vertrouwelijkheid}}\",\r\n \"betalingsindicatie\": \"geheel\",\r\n \"betalingsindicatieWeergave\": null,\r\n \"laatsteBetaaldatum\": \"2019-01-01T00:00:00Z\",\r\n \"zaakgeometrie\": {\r\n \"type\": \"Point\",\r\n \"coordinates\": [\r\n 53.0,\r\n 5.0\r\n ]\r\n },\r\n \"verlenging\": null,\r\n \"opschorting\": {\r\n \"wrong_field\": \"test\"\r\n },\r\n \"selectielijstklasse\": \"https://referentielijsten.roxit.nl/api/v1/resultaten/0fe71ce3-b1e1-48eb-9070-be2756fc71b5\",\r\n \"hoofdzaak\": null,\r\n \"deelzaken\": [],\r\n \"relevanteAndereZaken\": [],\r\n \"eigenschappen\": [],\r\n \"rollen\": [],\r\n \"status\": null,\r\n \"zaakinformatieobjecten\": [],\r\n \"zaakobjecten\": [],\r\n \"resultaat\": null,\r\n \"kenmerken\": [],\r\n \"archiefnominatie\": null,\r\n \"archiefstatus\": \"nog_te_archiveren\",\r\n \"archiefactiedatum\": null,\r\n \"opdrachtgevendeOrganisatie\": null,\r\n \"processobjectaard\": null,\r\n \"startdatumBewaartermijn\": null,\r\n \"processobject\": null\r\n}" + }, + "url": { + "raw": "{{zaak_url}}", + "host": [ + "{{zaak_url}}" + ] + } + }, + "response": [] + }, + { + "name": "(zrc-012c) Zaak deels bijwerken met opschorting zonder indicatie en reden is onmogelijk", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "pm.test(\"Zaak deels bijwerken met opschorting zonder indicatie en reden geeft 400\", function() {", + " pm.response.to.have.status(400);", + " ", + " // Verify that the 400 is returned for the correct reason", + " var errors = pm.response.json()[\"invalidParams\"];", + " pm.expect(errors[0].name).to.be.equal(\"opschorting.indicatie\");", + " pm.expect(errors[0].code).to.be.equal(\"required\");", + " ", + " pm.expect(errors[1].name).to.be.equal(\"opschorting.reden\");", + " pm.expect(errors[1].code).to.be.equal(\"required\");", + "});" + ], + "type": "text/javascript" + } + }, + { + "listen": "prerequest", + "script": { + "exec": [ + "" + ], + "type": "text/javascript" + } + } + ], + "request": { + "method": "PATCH", + "header": [ + { + "key": "Content-Crs", + "value": "EPSG:4326" + }, + { + "key": "Accept-Crs", + "value": "EPSG:4326" + }, + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n\t\"opschorting\": {\n\t\t\"wrong_field\": \"test\"\n\t}\n}" + }, + "url": { + "raw": "{{zaak_url}}", + "host": [ + "{{zaak_url}}" + ] + } + }, + "response": [] + }, + { + "name": "(zrc-012d) Zaak aanmaken met verlenging zonder reden en duur is onmogelijk", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "pm.test(\"Zaak aanmaken met verlenging zonder reden en duur geeft 400\", function() {", + " pm.response.to.have.status(400);", + " ", + " // Verify that the 400 is returned for the correct reason", + " var errors = pm.response.json()[\"invalidParams\"];", + " pm.expect(errors[0].name).to.be.equal(\"verlenging.reden\");", + " pm.expect(errors[0].code).to.be.equal(\"required\");", + " ", + " pm.expect(errors[1].name).to.be.equal(\"verlenging.duur\");", + " pm.expect(errors[1].code).to.be.equal(\"required\");", + "});", + "", + "if(pm.response.code == 201) {", + " pm.environment.set(\"created_zaak_url\", pm.response.json().url);", + "", + "}" + ], + "type": "text/javascript", + "packages": {} + } + }, + { + "listen": "prerequest", + "script": { + "exec": [ + "" + ], + "type": "text/javascript", + "packages": {} + } + } + ], + "request": { + "method": "POST", + "header": [ + { + "key": "Content-Crs", + "value": "EPSG:4326" + }, + { + "key": "Accept-Crs", + "value": "EPSG:4326" + }, + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\r\n \"bronorganisatie\": \"000000000\",\r\n \"omschrijving\": \"string\",\r\n \"toelichting\": \"string\",\r\n \"zaaktype\": \"{{zaaktype_url}}\",\r\n \"registratiedatum\": \"2019-04-09\",\r\n \"verantwoordelijkeOrganisatie\": \"000000000\",\r\n \"startdatum\": \"2019-04-09\",\r\n \"einddatum\": null,\r\n \"einddatumGepland\": \"2019-04-20\",\r\n \"uiterlijkeEinddatumAfdoening\": \"2019-04-09\",\r\n \"publicatiedatum\": \"2019-04-09\",\r\n \"communicatiekanaal\": \"\",\r\n \"productenOfDiensten\": [],\r\n \"vertrouwelijkheidaanduiding\": \"geheim\",\r\n \"betalingsindicatie\": \"geheel\",\r\n \"betalingsindicatieWeergave\": null,\r\n \"laatsteBetaaldatum\": \"2019-01-01T00:00:00Z\",\r\n \"zaakgeometrie\": {\r\n \"type\": \"Point\",\r\n \"coordinates\": [\r\n 53.0,\r\n 5.0\r\n ]\r\n },\r\n \"verlenging\": {\r\n \"wrong_field\": \"test\"\r\n },\r\n \"opschorting\": {\r\n \"indicatie\": true,\r\n \"reden\": \"string\"\r\n },\r\n \"selectielijstklasse\": \"https://referentielijsten.roxit.nl/api/v1/resultaten/0fe71ce3-b1e1-48eb-9070-be2756fc71b5\",\r\n \"hoofdzaak\": null,\r\n \"deelzaken\": [],\r\n \"relevanteAndereZaken\": [],\r\n \"eigenschappen\": [],\r\n \"rollen\": [],\r\n \"status\": null,\r\n \"zaakinformatieobjecten\": [],\r\n \"zaakobjecten\": [],\r\n \"resultaat\": null,\r\n \"kenmerken\": [],\r\n \"archiefnominatie\": null,\r\n \"archiefstatus\": \"nog_te_archiveren\",\r\n \"archiefactiedatum\": null,\r\n \"opdrachtgevendeOrganisatie\": null,\r\n \"processobjectaard\": null,\r\n \"startdatumBewaartermijn\": null,\r\n \"processobject\": null\r\n}" + }, + "url": { + "raw": "{{zrc_url}}/zaken", + "host": [ + "{{zrc_url}}" + ], + "path": [ + "zaken" + ] + } + }, + "response": [] + }, + { + "name": "(zrc-012e) Zaak bijwerken met verlenging zonder reden en duur is onmogelijk", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "pm.test(\"Zaak bijwerken met verlenging zonder reden en duur geeft 400\", function() {", + " pm.response.to.have.status(400);", + " ", + " // Verify that the 400 is returned for the correct reason", + " var errors = pm.response.json()[\"invalidParams\"];", + " pm.expect(errors[0].name).to.be.equal(\"verlenging.reden\");", + " pm.expect(errors[0].code).to.be.equal(\"required\");", + " ", + " pm.expect(errors[1].name).to.be.equal(\"verlenging.duur\");", + " pm.expect(errors[1].code).to.be.equal(\"required\");", + "});" + ], + "type": "text/javascript", + "packages": {} + } + }, + { + "listen": "prerequest", + "script": { + "exec": [ + "" + ], + "type": "text/javascript", + "packages": {} + } + } + ], + "request": { + "method": "PUT", + "header": [ + { + "key": "Content-Crs", + "value": "EPSG:4326" + }, + { + "key": "Accept-Crs", + "value": "EPSG:4326" + }, + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\r\n \"bronorganisatie\": \"000000000\",\r\n \"omschrijving\": \"string\",\r\n \"toelichting\": \"string\",\r\n \"zaaktype\": \"{{zaaktype_url}}\",\r\n \"registratiedatum\": \"2019-04-09\",\r\n \"verantwoordelijkeOrganisatie\": \"000000000\",\r\n \"startdatum\": \"2019-04-09\",\r\n \"einddatum\": null,\r\n \"einddatumGepland\": \"2019-04-20\",\r\n \"uiterlijkeEinddatumAfdoening\": \"2019-04-09\",\r\n \"publicatiedatum\": \"2019-04-09\",\r\n \"communicatiekanaal\": \"\",\r\n \"productenOfDiensten\": [],\r\n \"vertrouwelijkheidaanduiding\": \"geheim\",\r\n \"betalingsindicatie\": \"geheel\",\r\n \"betalingsindicatieWeergave\": null,\r\n \"laatsteBetaaldatum\": \"2019-01-01T00:00:00Z\",\r\n \"zaakgeometrie\": {\r\n \"type\": \"Point\",\r\n \"coordinates\": [\r\n 53.0,\r\n 5.0\r\n ]\r\n },\r\n \"verlenging\": {\r\n \"wrong_field\": \"test\"\r\n },\r\n \"opschorting\": {\r\n \"indicatie\": true,\r\n \"reden\": \"string\"\r\n },\r\n \"selectielijstklasse\": \"https://referentielijsten.roxit.nl/api/v1/resultaten/0fe71ce3-b1e1-48eb-9070-be2756fc71b5\",\r\n \"hoofdzaak\": null,\r\n \"deelzaken\": [],\r\n \"relevanteAndereZaken\": [],\r\n \"eigenschappen\": [],\r\n \"rollen\": [],\r\n \"status\": null,\r\n \"zaakinformatieobjecten\": [],\r\n \"zaakobjecten\": [],\r\n \"resultaat\": null,\r\n \"kenmerken\": [],\r\n \"archiefnominatie\": null,\r\n \"archiefstatus\": \"nog_te_archiveren\",\r\n \"archiefactiedatum\": null,\r\n \"opdrachtgevendeOrganisatie\": null,\r\n \"processobjectaard\": null,\r\n \"startdatumBewaartermijn\": null,\r\n \"processobject\": null\r\n}" + }, + "url": { + "raw": "{{zaak_url}}", + "host": [ + "{{zaak_url}}" + ] + } + }, + "response": [] + }, + { + "name": "(zrc-012f) Zaak deels bijwerken met verlenging zonder reden en duur is onmogelijk", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "pm.test(\"Zaak deels bijwerken met verlenging zonder reden en duur geeft 400\", function() {", + " pm.response.to.have.status(400);", + " ", + " // Verify that the 400 is returned for the correct reason", + " var errors = pm.response.json()[\"invalidParams\"];", + " pm.expect(errors[0].name).to.be.equal(\"verlenging.reden\");", + " pm.expect(errors[0].code).to.be.equal(\"required\");", + " ", + " pm.expect(errors[1].name).to.be.equal(\"verlenging.duur\");", + " pm.expect(errors[1].code).to.be.equal(\"required\");", + "});" + ], + "type": "text/javascript" + } + }, + { + "listen": "prerequest", + "script": { + "exec": [ + "" + ], + "type": "text/javascript" + } + } + ], + "request": { + "method": "PATCH", + "header": [ + { + "key": "Content-Crs", + "value": "EPSG:4326" + }, + { + "key": "Accept-Crs", + "value": "EPSG:4326" + }, + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n\t\"verlenging\": {\n\t\t\"wrong_field\": \"test\"\n\t}\n}" + }, + "url": { + "raw": "{{zaak_url}}", + "host": [ + "{{zaak_url}}" + ] + } + }, + "response": [] + }, + { + "name": "(zrc-012g) Zaak aanmaken met opschorting null is mogelijk", + "event": [ + { + "listen": "prerequest", + "script": { + "exec": [ + "" + ], + "type": "text/javascript", + "packages": {} + } + }, + { + "listen": "test", + "script": { + "exec": [ + "pm.test(\"Zaak aanmaken met opschorting null geeft 201\", function() {", + " pm.response.to.have.status(201);", + " pm.environment.set(\"created_zaak_url\", pm.response.json().url);", + "});" + ], + "type": "text/javascript", + "packages": {} + } + } + ], + "request": { + "method": "POST", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Accept-Crs", + "value": "EPSG:4326" + }, + { + "key": "Content-Crs", + "value": "EPSG:4326" + } + ], + "body": { + "mode": "raw", + "raw": "{\r\n \"bronorganisatie\": \"000000000\",\r\n \"omschrijving\": \"string\",\r\n \"toelichting\": \"string\",\r\n \"zaaktype\": \"{{zaaktype_url}}\",\r\n \"registratiedatum\": \"2019-04-09\",\r\n \"verantwoordelijkeOrganisatie\": \"000000000\",\r\n \"startdatum\": \"2019-04-09\",\r\n \"einddatum\": null,\r\n \"einddatumGepland\": \"2019-04-20\",\r\n \"uiterlijkeEinddatumAfdoening\": \"2019-04-09\",\r\n \"publicatiedatum\": \"2019-04-09\",\r\n \"communicatiekanaal\": \"\",\r\n \"productenOfDiensten\": [],\r\n \"vertrouwelijkheidaanduiding\": \"geheim\",\r\n \"betalingsindicatie\": \"geheel\",\r\n \"betalingsindicatieWeergave\": null,\r\n \"laatsteBetaaldatum\": \"2019-01-01T00:00:00Z\",\r\n \"zaakgeometrie\": {\r\n \"type\": \"Point\",\r\n \"coordinates\": [\r\n 53.0,\r\n 5.0\r\n ]\r\n },\r\n \"verlenging\": null,\r\n \"opschorting\": null,\r\n \"selectielijstklasse\": \"https://referentielijsten.roxit.nl/api/v1/resultaten/0fe71ce3-b1e1-48eb-9070-be2756fc71b5\",\r\n \"hoofdzaak\": null,\r\n \"deelzaken\": [],\r\n \"relevanteAndereZaken\": [],\r\n \"eigenschappen\": [],\r\n \"rollen\": [],\r\n \"status\": null,\r\n \"zaakinformatieobjecten\": [],\r\n \"zaakobjecten\": [],\r\n \"resultaat\": null,\r\n \"kenmerken\": [],\r\n \"archiefnominatie\": null,\r\n \"archiefstatus\": \"nog_te_archiveren\",\r\n \"archiefactiedatum\": null,\r\n \"opdrachtgevendeOrganisatie\": null,\r\n \"processobjectaard\": null,\r\n \"startdatumBewaartermijn\": null,\r\n \"processobject\": null\r\n}" + }, + "url": { + "raw": "{{zrc_url}}/zaken", + "host": [ + "{{zrc_url}}" + ], + "path": [ + "zaken" + ] + } + }, + "response": [] + }, + { + "name": "(zrc-012h) Zaak bijwerken met opschorting null is mogelijk", + "event": [ + { + "listen": "prerequest", + "script": { + "exec": [ + "" + ], + "type": "text/javascript", + "packages": {} + } + }, + { + "listen": "test", + "script": { + "exec": [ + "pm.test(\"Zaak bijwerken met opschorting null geeft 200\", function() {", + " pm.response.to.have.status(200);", + "});" + ], + "type": "text/javascript", + "packages": {} + } + } + ], + "request": { + "method": "PUT", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Accept-Crs", + "value": "EPSG:4326" + }, + { + "key": "Content-Crs", + "value": "EPSG:4326" + } + ], + "body": { + "mode": "raw", + "raw": "{\r\n \"bronorganisatie\": \"000000000\",\r\n \"omschrijving\": \"string\",\r\n \"toelichting\": \"string\",\r\n \"zaaktype\": \"{{zaaktype_url}}\",\r\n \"registratiedatum\": \"2019-04-09\",\r\n \"verantwoordelijkeOrganisatie\": \"000000000\",\r\n \"startdatum\": \"2019-04-09\",\r\n \"einddatum\": null,\r\n \"einddatumGepland\": \"2019-04-20\",\r\n \"uiterlijkeEinddatumAfdoening\": \"2019-04-09\",\r\n \"publicatiedatum\": \"2019-04-09\",\r\n \"communicatiekanaal\": \"\",\r\n \"productenOfDiensten\": [],\r\n \"vertrouwelijkheidaanduiding\": \"geheim\",\r\n \"betalingsindicatie\": \"geheel\",\r\n \"betalingsindicatieWeergave\": null,\r\n \"laatsteBetaaldatum\": \"2019-01-01T00:00:00Z\",\r\n \"zaakgeometrie\": {\r\n \"type\": \"Point\",\r\n \"coordinates\": [\r\n 53.0,\r\n 5.0\r\n ]\r\n },\r\n \"verlenging\": null,\r\n \"opschorting\": null,\r\n \"selectielijstklasse\": \"https://referentielijsten.roxit.nl/api/v1/resultaten/0fe71ce3-b1e1-48eb-9070-be2756fc71b5\",\r\n \"hoofdzaak\": null,\r\n \"deelzaken\": [],\r\n \"relevanteAndereZaken\": [],\r\n \"eigenschappen\": [],\r\n \"rollen\": [],\r\n \"status\": null,\r\n \"zaakinformatieobjecten\": [],\r\n \"zaakobjecten\": [],\r\n \"resultaat\": null,\r\n \"kenmerken\": [],\r\n \"archiefnominatie\": null,\r\n \"archiefstatus\": \"nog_te_archiveren\",\r\n \"archiefactiedatum\": null,\r\n \"opdrachtgevendeOrganisatie\": null,\r\n \"processobjectaard\": null,\r\n \"startdatumBewaartermijn\": null,\r\n \"processobject\": null\r\n}" + }, + "url": { + "raw": "{{created_zaak_url}}", + "host": [ + "{{created_zaak_url}}" + ] + } + }, + "response": [] + }, + { + "name": "(zrc-012i) Zaak deels bijwerken met opschorting null is mogelijk", + "event": [ + { + "listen": "prerequest", + "script": { + "exec": [ + "" + ], + "type": "text/javascript", + "packages": {} + } + }, + { + "listen": "test", + "script": { + "exec": [ + "pm.test(\"Zaak deels bijwerken met opschorting null geeft 200\", function() {", + " pm.response.to.have.status(200);", + "});", + "", + "" + ], + "type": "text/javascript", + "packages": {} + } + } + ], + "request": { + "method": "PATCH", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Accept-Crs", + "value": "EPSG:4326" + }, + { + "key": "Content-Crs", + "value": "EPSG:4326" + } + ], + "body": { + "mode": "raw", + "raw": "{\n\t\"opschorting\": null\n}" + }, + "url": { + "raw": "{{created_zaak_url}}", + "host": [ + "{{created_zaak_url}}" + ] + } + }, + "response": [] + }, + { + "name": "(zrc-012j) Zaak aanmaken met verlenging null is mogelijk", + "event": [ + { + "listen": "prerequest", + "script": { + "exec": [ + "" + ], + "type": "text/javascript", + "packages": {} + } + }, + { + "listen": "test", + "script": { + "exec": [ + "pm.test(\"Zaak aanmaken met verlenging null geeft 201\", function() {", + " pm.response.to.have.status(201);", + " pm.environment.set(\"created_zaak_url\", pm.response.json().url);", + "});" + ], + "type": "text/javascript", + "packages": {} + } + } + ], + "request": { + "method": "POST", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Accept-Crs", + "value": "EPSG:4326" + }, + { + "key": "Content-Crs", + "value": "EPSG:4326" + } + ], + "body": { + "mode": "raw", + "raw": "{\r\n \"bronorganisatie\": \"000000000\",\r\n \"omschrijving\": \"string\",\r\n \"toelichting\": \"string\",\r\n \"zaaktype\": \"{{zaaktype_url}}\",\r\n \"registratiedatum\": \"2019-04-09\",\r\n \"verantwoordelijkeOrganisatie\": \"000000000\",\r\n \"startdatum\": \"2019-04-09\",\r\n \"einddatum\": null,\r\n \"einddatumGepland\": \"2019-04-20\",\r\n \"uiterlijkeEinddatumAfdoening\": \"2019-04-09\",\r\n \"publicatiedatum\": \"2019-04-09\",\r\n \"communicatiekanaal\": \"\",\r\n \"productenOfDiensten\": [],\r\n \"vertrouwelijkheidaanduiding\": \"geheim\",\r\n \"betalingsindicatie\": \"geheel\",\r\n \"betalingsindicatieWeergave\": null,\r\n \"laatsteBetaaldatum\": \"2019-01-01T00:00:00Z\",\r\n \"zaakgeometrie\": {\r\n \"type\": \"Point\",\r\n \"coordinates\": [\r\n 53.0,\r\n 5.0\r\n ]\r\n },\r\n \"verlenging\": null,\r\n \"opschorting\": null,\r\n \"selectielijstklasse\": \"https://referentielijsten.roxit.nl/api/v1/resultaten/0fe71ce3-b1e1-48eb-9070-be2756fc71b5\",\r\n \"hoofdzaak\": null,\r\n \"deelzaken\": [],\r\n \"relevanteAndereZaken\": [],\r\n \"eigenschappen\": [],\r\n \"rollen\": [],\r\n \"status\": null,\r\n \"zaakinformatieobjecten\": [],\r\n \"zaakobjecten\": [],\r\n \"resultaat\": null,\r\n \"kenmerken\": [],\r\n \"archiefnominatie\": null,\r\n \"archiefstatus\": \"nog_te_archiveren\",\r\n \"archiefactiedatum\": null,\r\n \"opdrachtgevendeOrganisatie\": null,\r\n \"processobjectaard\": null,\r\n \"startdatumBewaartermijn\": null,\r\n \"processobject\": null\r\n}" + }, + "url": { + "raw": "{{zrc_url}}/zaken", + "host": [ + "{{zrc_url}}" + ], + "path": [ + "zaken" + ] + } + }, + "response": [] + }, + { + "name": "(zrc-012k) Zaak bijwerken met verlenging null is mogelijk", + "event": [ + { + "listen": "prerequest", + "script": { + "exec": [ + "" + ], + "type": "text/javascript", + "packages": {} + } + }, + { + "listen": "test", + "script": { + "exec": [ + "pm.test(\"Zaak bijwerken met verlenging null geeft 200\", function() {", + " pm.response.to.have.status(200);", + "});" + ], + "type": "text/javascript", + "packages": {} + } + } + ], + "request": { + "method": "PUT", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Accept-Crs", + "value": "EPSG:4326" + }, + { + "key": "Content-Crs", + "value": "EPSG:4326" + } + ], + "body": { + "mode": "raw", + "raw": "{\r\n \"bronorganisatie\": \"000000000\",\r\n \"omschrijving\": \"string\",\r\n \"toelichting\": \"string\",\r\n \"zaaktype\": \"{{zaaktype_url}}\",\r\n \"registratiedatum\": \"2019-04-09\",\r\n \"verantwoordelijkeOrganisatie\": \"000000000\",\r\n \"startdatum\": \"2019-04-09\",\r\n \"einddatum\": null,\r\n \"einddatumGepland\": \"2019-04-20\",\r\n \"uiterlijkeEinddatumAfdoening\": \"2019-04-09\",\r\n \"publicatiedatum\": \"2019-04-09\",\r\n \"communicatiekanaal\": \"\",\r\n \"productenOfDiensten\": [],\r\n \"vertrouwelijkheidaanduiding\": \"geheim\",\r\n \"betalingsindicatie\": \"geheel\",\r\n \"betalingsindicatieWeergave\": null,\r\n \"laatsteBetaaldatum\": \"2019-01-01T00:00:00Z\",\r\n \"zaakgeometrie\": {\r\n \"type\": \"Point\",\r\n \"coordinates\": [\r\n 53.0,\r\n 5.0\r\n ]\r\n },\r\n \"verlenging\": null,\r\n \"opschorting\": null,\r\n \"selectielijstklasse\": \"https://referentielijsten.roxit.nl/api/v1/resultaten/0fe71ce3-b1e1-48eb-9070-be2756fc71b5\",\r\n \"hoofdzaak\": null,\r\n \"deelzaken\": [],\r\n \"relevanteAndereZaken\": [],\r\n \"eigenschappen\": [],\r\n \"rollen\": [],\r\n \"status\": null,\r\n \"zaakinformatieobjecten\": [],\r\n \"zaakobjecten\": [],\r\n \"resultaat\": null,\r\n \"kenmerken\": [],\r\n \"archiefnominatie\": null,\r\n \"archiefstatus\": \"nog_te_archiveren\",\r\n \"archiefactiedatum\": null,\r\n \"opdrachtgevendeOrganisatie\": null,\r\n \"processobjectaard\": null,\r\n \"startdatumBewaartermijn\": null,\r\n \"processobject\": null\r\n}" + }, + "url": { + "raw": "{{created_zaak_url}}", + "host": [ + "{{created_zaak_url}}" + ] + } + }, + "response": [] + }, + { + "name": "(zrc-012l) Zaak deels bijwerken met verlenging null is mogelijk", + "event": [ + { + "listen": "prerequest", + "script": { + "exec": [ + "" + ], + "type": "text/javascript", + "packages": {} + } + }, + { + "listen": "test", + "script": { + "exec": [ + "pm.test(\"Zaak deels bijwerken met verlenging null geeft 200\", function() {", + " pm.response.to.have.status(200);", + "});", + "", + "" + ], + "type": "text/javascript", + "packages": {} + } + } + ], + "request": { + "method": "PATCH", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Accept-Crs", + "value": "EPSG:4326" + }, + { + "key": "Content-Crs", + "value": "EPSG:4326" + } + ], + "body": { + "mode": "raw", + "raw": "{\n\t\"verlenging\": null\n}" + }, + "url": { + "raw": "{{created_zaak_url}}", + "host": [ + "{{created_zaak_url}}" + ] + } + }, + "response": [] + } + ], + "event": [ + { + "listen": "prerequest", + "script": { + "type": "text/javascript", + "exec": [ + "" + ] + } + }, + { + "listen": "test", + "script": { + "type": "text/javascript", + "exec": [ + "" + ] + } + } + ] + }, + { + "name": "zrc-013", + "item": [ + { + "name": "(zrc-013a) Valideren hoofdzaak op de Zaak-resource", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "pm.test(\"Zaak aanmaken met hoofdzaak url die niet wijst naar Zaak-resource geeft 400\", function() {", + " pm.response.to.have.status(400);", + " ", + " // Verify that the 400 is returned for the correct reason", + " var errors = pm.response.json()[\"invalidParams\"][0];", + " pm.expect(errors.name).to.be.equal(\"hoofdzaak\");", + " pm.expect(errors.code).to.be.equal(\"no_match\");", + "});", + "", + "" + ], + "type": "text/javascript", + "packages": {} + } + }, + { + "listen": "prerequest", + "script": { + "exec": [ + "" + ], + "type": "text/javascript", + "packages": {} + } + } + ], + "request": { + "method": "POST", + "header": [ + { + "key": "Accept-Crs", + "value": "EPSG:4326" + }, + { + "key": "Content-Crs", + "value": "EPSG:4326" + }, + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\r\n\r\n \"bronorganisatie\": \"000000000\",\r\n \"omschrijving\": \"string\",\r\n \"toelichting\": \"string\",\r\n \"zaaktype\": \"{{zaaktype_url}}\",\r\n \"registratiedatum\": \"2019-04-09\",\r\n \"verantwoordelijkeOrganisatie\": \"000000000\",\r\n \"startdatum\": \"2019-04-09\",\r\n \"einddatum\": null,\r\n \"einddatumGepland\": \"2019-04-20\",\r\n \"uiterlijkeEinddatumAfdoening\": \"2019-04-09\",\r\n \"publicatiedatum\": \"2019-04-09\",\r\n \"communicatiekanaal\": \"\",\r\n \"productenOfDiensten\": [],\r\n \"vertrouwelijkheidaanduiding\": \"geheim\",\r\n \"betalingsindicatie\": \"geheel\",\r\n \"betalingsindicatieWeergave\": null,\r\n \"laatsteBetaaldatum\": \"2019-01-01T00:00:00Z\",\r\n \"zaakgeometrie\": {\r\n \"type\": \"Point\",\r\n \"coordinates\": [\r\n 53.0,\r\n 5.0\r\n ]\r\n },\r\n \"verlenging\": null,\r\n \"opschorting\": {\r\n \"indicatie\": true,\r\n \"reden\": \"string\"\r\n },\r\n \"selectielijstklasse\": \"https://referentielijsten.roxit.nl/api/v1/resultaten/0fe71ce3-b1e1-48eb-9070-be2756fc71b5\",\r\n \"hoofdzaak\": \"https://catalogi.spt-rx-services.nl/api/v1/zaaktypen/01748f67-c7ec-4ba8-aaf5-5de89257203e\",\r\n \"deelzaken\": [],\r\n \"relevanteAndereZaken\": [],\r\n \"eigenschappen\": [],\r\n \"rollen\": [],\r\n \"status\": null,\r\n \"zaakinformatieobjecten\": [],\r\n \"zaakobjecten\": [],\r\n \"resultaat\": null,\r\n \"kenmerken\": [],\r\n \"archiefnominatie\": null,\r\n \"archiefstatus\": \"nog_te_archiveren\",\r\n \"archiefactiedatum\": null,\r\n \"opdrachtgevendeOrganisatie\": null,\r\n \"processobjectaard\": null,\r\n \"startdatumBewaartermijn\": null,\r\n \"processobject\": null\r\n}" + }, + "url": { + "raw": "{{zrc_url}}/zaken", + "host": [ + "{{zrc_url}}" + ], + "path": [ + "zaken" + ] + } + }, + "response": [] + }, + { + "name": "Create Deelzaak", + "event": [ + { + "listen": "prerequest", + "script": { + "exec": [ + "" + ], + "type": "text/javascript", + "packages": {} + } + }, + { + "listen": "test", + "script": { + "exec": [ + "pm.environment.set(\"created_zaak_url\", pm.response.json().url);" + ], + "type": "text/javascript", + "packages": {} + } + } + ], + "request": { + "method": "POST", + "header": [ + { + "key": "Accept-Crs", + "value": "EPSG:4326" + }, + { + "key": "Content-Crs", + "value": "EPSG:4326" + }, + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\r\n\r\n \"bronorganisatie\": \"000000000\",\r\n \"omschrijving\": \"string\",\r\n \"toelichting\": \"string\",\r\n \"zaaktype\": \"{{zaaktype_url}}\",\r\n \"registratiedatum\": \"2019-04-09\",\r\n \"verantwoordelijkeOrganisatie\": \"000000000\",\r\n \"startdatum\": \"2019-04-09\",\r\n \"einddatum\": null,\r\n \"einddatumGepland\": \"2019-04-20\",\r\n \"uiterlijkeEinddatumAfdoening\": \"2019-04-09\",\r\n \"publicatiedatum\": \"2019-04-09\",\r\n \"communicatiekanaal\": \"\",\r\n \"productenOfDiensten\": [],\r\n \"vertrouwelijkheidaanduiding\": \"geheim\",\r\n \"betalingsindicatie\": \"geheel\",\r\n \"betalingsindicatieWeergave\": null,\r\n \"laatsteBetaaldatum\": \"2019-01-01T00:00:00Z\",\r\n \"zaakgeometrie\": {\r\n \"type\": \"Point\",\r\n \"coordinates\": [\r\n 53.0,\r\n 5.0\r\n ]\r\n },\r\n \"verlenging\": null,\r\n \"opschorting\": {\r\n \"indicatie\": true,\r\n \"reden\": \"string\"\r\n },\r\n \"selectielijstklasse\": \"https://referentielijsten.roxit.nl/api/v1/resultaten/0fe71ce3-b1e1-48eb-9070-be2756fc71b5\",\r\n \"hoofdzaak\": \"{{zaak_url}}\",\r\n \"deelzaken\": [],\r\n \"relevanteAndereZaken\": [],\r\n \"eigenschappen\": [],\r\n \"rollen\": [],\r\n \"status\": null,\r\n \"zaakinformatieobjecten\": [],\r\n \"zaakobjecten\": [],\r\n \"resultaat\": null,\r\n \"kenmerken\": [],\r\n \"archiefnominatie\": null,\r\n \"archiefstatus\": \"nog_te_archiveren\",\r\n \"archiefactiedatum\": null,\r\n \"opdrachtgevendeOrganisatie\": null,\r\n \"processobjectaard\": null,\r\n \"startdatumBewaartermijn\": null,\r\n \"processobject\": null\r\n}" + }, + "url": { + "raw": "{{zrc_url}}/zaken", + "host": [ + "{{zrc_url}}" + ], + "path": [ + "zaken" + ] + } + }, + "response": [] + }, + { + "name": "(zrc-013c) Valideren deelzaak mag geen deelzaak hebben", + "event": [ + { + "listen": "prerequest", + "script": { + "exec": [ + "" + ], + "type": "text/javascript", + "packages": {} + } + }, + { + "listen": "test", + "script": { + "exec": [ + "pm.test(\"Zaak bijwerken met hoofdzaak url die wijst naar de zaak zelf geeft 400\", function(){", + " pm.response.to.have.status(400);", + " ", + " // Verify that the 400 is returned for the correct reason", + " var errors = pm.response.json()[\"invalidParams\"][0];", + " pm.expect(errors.name).to.be.equal(\"hoofdzaak\");", + " pm.expect(errors.code).to.be.equal(\"deelzaak-als-hoofdzaak\");", + "});" + ], + "type": "text/javascript", + "packages": {} + } + } + ], + "request": { + "method": "PUT", + "header": [ + { + "key": "Accept-Crs", + "value": "EPSG:4326" + }, + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Content-Crs", + "value": "EPSG:4326" + } + ], + "body": { + "mode": "raw", + "raw": "{\r\n\r\n \"bronorganisatie\": \"000000000\",\r\n \"omschrijving\": \"string\",\r\n \"toelichting\": \"string\",\r\n \"zaaktype\": \"{{zaaktype_url}}\",\r\n \"registratiedatum\": \"2019-04-09\",\r\n \"verantwoordelijkeOrganisatie\": \"000000000\",\r\n \"startdatum\": \"2019-04-09\",\r\n \"einddatum\": null,\r\n \"einddatumGepland\": \"2019-04-20\",\r\n \"uiterlijkeEinddatumAfdoening\": \"2019-04-09\",\r\n \"publicatiedatum\": \"2019-04-09\",\r\n \"communicatiekanaal\": \"\",\r\n \"productenOfDiensten\": [],\r\n \"vertrouwelijkheidaanduiding\": \"geheim\",\r\n \"betalingsindicatie\": \"geheel\",\r\n \"betalingsindicatieWeergave\": null,\r\n \"laatsteBetaaldatum\": \"2019-01-01T00:00:00Z\",\r\n \"zaakgeometrie\": {\r\n \"type\": \"Point\",\r\n \"coordinates\": [\r\n 53.0,\r\n 5.0\r\n ]\r\n },\r\n \"verlenging\": null,\r\n \"opschorting\": {\r\n \"indicatie\": true,\r\n \"reden\": \"string\"\r\n },\r\n \"selectielijstklasse\": \"https://referentielijsten.roxit.nl/api/v1/resultaten/0fe71ce3-b1e1-48eb-9070-be2756fc71b5\",\r\n \"hoofdzaak\": \"{{created_zaak_url}}\",\r\n \"deelzaken\": [],\r\n \"relevanteAndereZaken\": [],\r\n \"eigenschappen\": [],\r\n \"rollen\": [],\r\n \"status\": null,\r\n \"zaakinformatieobjecten\": [],\r\n \"zaakobjecten\": [],\r\n \"resultaat\": null,\r\n \"kenmerken\": [],\r\n \"archiefnominatie\": null,\r\n \"archiefstatus\": \"nog_te_archiveren\",\r\n \"archiefactiedatum\": null,\r\n \"opdrachtgevendeOrganisatie\": null,\r\n \"processobjectaard\": null,\r\n \"startdatumBewaartermijn\": null,\r\n \"processobject\": null\r\n}" + }, + "url": { + "raw": "{{zaak_url}}", + "host": [ + "{{zaak_url}}" + ] + } + }, + "response": [] + }, + { + "name": "(zrc-013d) Valideren deelzaak mag geen deelzaak van zichzelf zijn", + "event": [ + { + "listen": "prerequest", + "script": { + "exec": [ + "" + ], + "type": "text/javascript" + } + }, + { + "listen": "test", + "script": { + "exec": [ + "pm.test(\"Zaak deels bijwerken met hoofdzaak url die wijst naar de zaak zelf geeft 400\", function(){", + " pm.response.to.have.status(400);", + " ", + " // Verify that the 400 is returned for the correct reason", + " var errors = pm.response.json()[\"invalidParams\"][0];", + " pm.expect(errors.name).to.be.equal(\"hoofdzaak\");", + " pm.expect(errors.code).to.be.equal(\"self-forbidden\");", + "});" + ], + "type": "text/javascript" + } + } + ], + "request": { + "method": "PATCH", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Content-Crs", + "value": "EPSG:4326" + }, + { + "key": "Accept-Crs", + "value": "EPSG:4326" + } + ], + "body": { + "mode": "raw", + "raw": "{\n\t\"hoofdzaak\": \"{{zaak_url}}\"\n}" + }, + "url": { + "raw": "{{zaak_url}}", + "host": [ + "{{zaak_url}}" + ] + } + }, + "response": [] + } + ] + }, + { + "name": "zrc-014", + "item": [ + { + "name": "(zrc-014a) Zaak aanmaken met betalingsindicatie nvt en een waarde voor laatste betaaldatum is onmogelijk", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "pm.test(\"Zaak aanmaken met betalingsindicatie nvt en laatsteBetaaldatum niet null geeft 400\", function(){", + " pm.response.to.have.status(400);", + " ", + " var error = pm.response.json()[\"invalidParams\"][0];", + " pm.expect(error.name).to.be.equal(\"laatsteBetaaldatum\");", + " pm.expect(error.code).to.be.equal(\"betaling-nvt\");", + "});", + "", + "// If the test failed and the Zaak was created, delete it", + "if(pm.response.code == 201) {", + " pm.environment.set(\"created_zaak_url\", pm.response.json().url);", + "", + "}" + ], + "type": "text/javascript", + "packages": {} + } + }, + { + "listen": "prerequest", + "script": { + "exec": [ + "" + ], + "type": "text/javascript", + "packages": {} + } + } + ], + "request": { + "method": "POST", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Authorization", + "value": "{{token}}" + }, + { + "key": "Content-Crs", + "value": "EPSG:4326" + }, + { + "key": "Accept-Crs", + "value": "EPSG:4326" + } + ], + "body": { + "mode": "raw", + "raw": "{\r\n\r\n \"bronorganisatie\": \"000000000\",\r\n \"omschrijving\": \"string\",\r\n \"toelichting\": \"string\",\r\n \"zaaktype\": \"{{zaaktype_url}}\",\r\n \"registratiedatum\": \"2019-04-09\",\r\n \"verantwoordelijkeOrganisatie\": \"000000000\",\r\n \"startdatum\": \"2019-04-09\",\r\n \"einddatum\": null,\r\n \"einddatumGepland\": \"2019-04-20\",\r\n \"uiterlijkeEinddatumAfdoening\": \"2019-04-09\",\r\n \"publicatiedatum\": \"2019-04-09\",\r\n \"communicatiekanaal\": \"\",\r\n \"productenOfDiensten\": [],\r\n \"vertrouwelijkheidaanduiding\": \"geheim\",\r\n\r\n\r\n \"betalingsindicatie\": \"nvt\",\r\n \"betalingsindicatieWeergave\": null,\r\n \"laatsteBetaaldatum\": \"2019-01-01T00:00:00Z\",\r\n \"zaakgeometrie\": {\r\n \"type\": \"Point\",\r\n \"coordinates\": [\r\n 53.0,\r\n 5.0\r\n ]\r\n },\r\n \"verlenging\": null,\r\n \"opschorting\": {\r\n \"indicatie\": true,\r\n \"reden\": \"string\"\r\n },\r\n \"selectielijstklasse\": \"https://referentielijsten.roxit.nl/api/v1/resultaten/0fe71ce3-b1e1-48eb-9070-be2756fc71b5\",\r\n \"hoofdzaak\": \"{{zaak_url}}\",\r\n \"deelzaken\": [],\r\n \"relevanteAndereZaken\": [],\r\n \"eigenschappen\": [],\r\n \"rollen\": [],\r\n \"status\": null,\r\n \"zaakinformatieobjecten\": [],\r\n \"zaakobjecten\": [],\r\n \"resultaat\": null,\r\n \"kenmerken\": [],\r\n \"archiefnominatie\": null,\r\n \"archiefstatus\": \"nog_te_archiveren\",\r\n \"archiefactiedatum\": null,\r\n \"opdrachtgevendeOrganisatie\": null,\r\n \"processobjectaard\": null,\r\n \"startdatumBewaartermijn\": null,\r\n \"processobject\": null\r\n}" + }, + "url": { + "raw": "{{zrc_url}}/zaken", + "host": [ + "{{zrc_url}}" + ], + "path": [ + "zaken" + ] + } + }, + "response": [] + }, + { + "name": "zaak", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "// If the test failed and the Zaak was created, delete it", + "if(pm.response.code == 201) {", + " pm.environment.set(\"zaak_url\", pm.response.json().url);", + "", + "}" + ], + "type": "text/javascript", + "packages": {} + } + }, + { + "listen": "prerequest", + "script": { + "exec": [ + "" + ], + "type": "text/javascript", + "packages": {} + } + } + ], + "request": { + "method": "POST", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Authorization", + "value": "{{token}}" + }, + { + "key": "Content-Crs", + "value": "EPSG:4326" + }, + { + "key": "Accept-Crs", + "value": "EPSG:4326" + } + ], + "body": { + "mode": "raw", + "raw": "{\r\n\r\n \"bronorganisatie\": \"000000000\",\r\n \"omschrijving\": \"string\",\r\n \"toelichting\": \"string\",\r\n \"zaaktype\": \"{{zaaktype_url}}\",\r\n \"registratiedatum\": \"2019-04-09\",\r\n \"verantwoordelijkeOrganisatie\": \"000000000\",\r\n \"startdatum\": \"2019-04-09\",\r\n \"einddatum\": null,\r\n \"einddatumGepland\": \"2019-04-20\",\r\n \"uiterlijkeEinddatumAfdoening\": \"2019-04-09\",\r\n \"publicatiedatum\": \"2019-04-09\",\r\n \"communicatiekanaal\": \"\",\r\n \"productenOfDiensten\": [],\r\n \"vertrouwelijkheidaanduiding\": \"geheim\",\r\n\r\n\r\n \"betalingsindicatie\": null,\r\n \"betalingsindicatieWeergave\": null,\r\n \"laatsteBetaaldatum\": null,\r\n \"zaakgeometrie\": {\r\n \"type\": \"Point\",\r\n \"coordinates\": [\r\n 53.0,\r\n 5.0\r\n ]\r\n },\r\n \"verlenging\": null,\r\n \"opschorting\": {\r\n \"indicatie\": true,\r\n \"reden\": \"string\"\r\n },\r\n \"selectielijstklasse\": \"https://referentielijsten.roxit.nl/api/v1/resultaten/0fe71ce3-b1e1-48eb-9070-be2756fc71b5\",\r\n \"hoofdzaak\": \"{{zaak_url}}\",\r\n \"deelzaken\": [],\r\n \"relevanteAndereZaken\": [],\r\n \"eigenschappen\": [],\r\n \"rollen\": [],\r\n \"status\": null,\r\n \"zaakinformatieobjecten\": [],\r\n \"zaakobjecten\": [],\r\n \"resultaat\": null,\r\n \"kenmerken\": [],\r\n \"archiefnominatie\": null,\r\n \"archiefstatus\": \"nog_te_archiveren\",\r\n \"archiefactiedatum\": null,\r\n \"opdrachtgevendeOrganisatie\": null,\r\n \"processobjectaard\": null,\r\n \"startdatumBewaartermijn\": null,\r\n \"processobject\": null\r\n}" + }, + "url": { + "raw": "{{zrc_url}}/zaken", + "host": [ + "{{zrc_url}}" + ], + "path": [ + "zaken" + ] + } + }, + "response": [] + }, + { + "name": "(zrc-014b) Zaak bijwerken met betalingsindicatie nvt en een waarde voor laatste betaaldatum is onmogelijk", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "pm.test(\"Zaak bijwerken met betalingsindicatie nvt en laatsteBetaaldatum niet null geeft 200 en zet laatstebetaaldatum op null\", function(){", + " pm.response.to.have.status(200);", + " ", + " pm.expect(pm.response.json().laatsteBetaaldatum).to.be.null;", + "", + "});" + ], + "type": "text/javascript", + "packages": {} + } + }, + { + "listen": "prerequest", + "script": { + "exec": [ + "" + ], + "type": "text/javascript", + "packages": {} + } + } + ], + "request": { + "method": "PUT", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Authorization", + "value": "{{token}}" + }, + { + "key": "Content-Crs", + "value": "EPSG:4326" + }, + { + "key": "Accept-Crs", + "value": "EPSG:4326" + } + ], + "body": { + "mode": "raw", + "raw": "{\r\n\r\n \"bronorganisatie\": \"000000000\",\r\n \"omschrijving\": \"string\",\r\n \"toelichting\": \"string\",\r\n \"zaaktype\": \"{{zaaktype_url}}\",\r\n \"registratiedatum\": \"2019-04-09\",\r\n \"verantwoordelijkeOrganisatie\": \"000000000\",\r\n \"startdatum\": \"2019-04-09\",\r\n \"einddatum\": null,\r\n \"einddatumGepland\": \"2019-04-20\",\r\n \"uiterlijkeEinddatumAfdoening\": \"2019-04-09\",\r\n \"publicatiedatum\": \"2019-04-09\",\r\n \"communicatiekanaal\": \"\",\r\n \"productenOfDiensten\": [],\r\n \"vertrouwelijkheidaanduiding\": \"geheim\",\r\n\r\n\r\n \"betalingsindicatie\": \"nvt\",\r\n \"betalingsindicatieWeergave\": null,\r\n \"laatsteBetaaldatum\": \"2019-01-01T00:00:00Z\",\r\n \"zaakgeometrie\": {\r\n \"type\": \"Point\",\r\n \"coordinates\": [\r\n 53.0,\r\n 5.0\r\n ]\r\n },\r\n \"verlenging\": null,\r\n \"opschorting\": {\r\n \"indicatie\": true,\r\n \"reden\": \"string\"\r\n },\r\n \"selectielijstklasse\": \"https://referentielijsten.roxit.nl/api/v1/resultaten/0fe71ce3-b1e1-48eb-9070-be2756fc71b5\",\r\n \"hoofdzaak\": null,\r\n \"deelzaken\": [],\r\n \"relevanteAndereZaken\": [],\r\n \"eigenschappen\": [],\r\n \"rollen\": [],\r\n \"status\": null,\r\n \"zaakinformatieobjecten\": [],\r\n \"zaakobjecten\": [],\r\n \"resultaat\": null,\r\n \"kenmerken\": [],\r\n \"archiefnominatie\": null,\r\n \"archiefstatus\": \"nog_te_archiveren\",\r\n \"archiefactiedatum\": null,\r\n \"opdrachtgevendeOrganisatie\": null,\r\n \"processobjectaard\": null,\r\n \"startdatumBewaartermijn\": null,\r\n \"processobject\": null\r\n}" + }, + "url": { + "raw": "{{zaak_url}}", + "host": [ + "{{zaak_url}}" + ] + } + }, + "response": [] + }, + { + "name": "(zrc-014c) Zaak deels bijwerken met betalingsindicatie nvt en een waarde voor laatste betaaldatum is onmogelijk", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "pm.test(\"Zaak deels bijwerken met betalingsindicatie nvt en laatsteBetaaldatum niet null geeft 200 en zet laatstebetaaldatum op null\", function(){", + " pm.response.to.have.status(200);", + " ", + " pm.expect(pm.response.json().laatsteBetaaldatum).to.be.null;", + "", + "});" + ], + "type": "text/javascript", + "packages": {} + } + }, + { + "listen": "prerequest", + "script": { + "exec": [ + "" + ], + "type": "text/javascript", + "packages": {} + } + } + ], + "request": { + "method": "PATCH", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Authorization", + "value": "{{token}}" + }, + { + "key": "Content-Crs", + "value": "EPSG:4326" + }, + { + "key": "Accept-Crs", + "value": "EPSG:4326" + } + ], + "body": { + "mode": "raw", + "raw": "{\n \"betalingsindicatie\": \"nvt\",\n \"betalingsindicatieWeergave\": null,\n \"laatsteBetaaldatum\": \"2019-01-01T00:00:00Z\"\n}" + }, + "url": { + "raw": "{{zaak_url}}", + "host": [ + "{{zaak_url}}" + ] + } + }, + "response": [] + }, + { + "name": "(zrc-014d) Zaak bijwerken betalingsindicatie naar nvt moet laatsteBetaalDatum op null zetten", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "pm.test(\"Zaak bijwerken met betalingsindicatie nvt verandert laatsteBetaalDatum naar null\", function(){", + " var jsonBody = pm.response.json();", + " pm.expect(jsonBody.betalingsindicatie).to.be.equal(\"nvt\");", + " pm.expect(jsonBody.laatsteBetaaldatum).to.be.equal(null);", + "});" + ], + "type": "text/javascript", + "packages": {} + } + }, + { + "listen": "prerequest", + "script": { + "exec": [ + "" + ], + "type": "text/javascript", + "packages": {} + } + } + ], + "request": { + "method": "PUT", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Authorization", + "value": "{{token}}" + }, + { + "key": "Content-Crs", + "value": "EPSG:4326" + }, + { + "key": "Accept-Crs", + "value": "EPSG:4326" + } + ], + "body": { + "mode": "raw", + "raw": "{\r\n\r\n \"bronorganisatie\": \"000000000\",\r\n \"omschrijving\": \"string\",\r\n \"toelichting\": \"string\",\r\n \"zaaktype\": \"{{zaaktype_url}}\",\r\n \"registratiedatum\": \"2019-04-09\",\r\n \"verantwoordelijkeOrganisatie\": \"000000000\",\r\n \"startdatum\": \"2019-04-09\",\r\n \"einddatum\": null,\r\n \"einddatumGepland\": \"2019-04-20\",\r\n \"uiterlijkeEinddatumAfdoening\": \"2019-04-09\",\r\n \"publicatiedatum\": \"2019-04-09\",\r\n \"communicatiekanaal\": \"\",\r\n \"productenOfDiensten\": [],\r\n \"vertrouwelijkheidaanduiding\": \"geheim\",\r\n\r\n\r\n \"betalingsindicatie\": \"nvt\",\r\n \"betalingsindicatieWeergave\": null,\r\n \"laatsteBetaaldatum\": null,\r\n \"zaakgeometrie\": {\r\n \"type\": \"Point\",\r\n \"coordinates\": [\r\n 53.0,\r\n 5.0\r\n ]\r\n },\r\n \"verlenging\": null,\r\n \"opschorting\": {\r\n \"indicatie\": true,\r\n \"reden\": \"string\"\r\n },\r\n \"selectielijstklasse\": \"https://referentielijsten.roxit.nl/api/v1/resultaten/0fe71ce3-b1e1-48eb-9070-be2756fc71b5\",\r\n \"hoofdzaak\": null,\r\n \"deelzaken\": [],\r\n \"relevanteAndereZaken\": [],\r\n \"eigenschappen\": [],\r\n \"rollen\": [],\r\n \"status\": null,\r\n \"zaakinformatieobjecten\": [],\r\n \"zaakobjecten\": [],\r\n \"resultaat\": null,\r\n \"kenmerken\": [],\r\n \"archiefnominatie\": null,\r\n \"archiefstatus\": \"nog_te_archiveren\",\r\n \"archiefactiedatum\": null,\r\n \"opdrachtgevendeOrganisatie\": null,\r\n \"processobjectaard\": null,\r\n \"startdatumBewaartermijn\": null,\r\n \"processobject\": null\r\n}" + }, + "url": { + "raw": "{{zaak_url}}", + "host": [ + "{{zaak_url}}" + ] + } + }, + "response": [] + }, + { + "name": "(zrc-014e) Zaak deels bijwerken betalingsindicatie naar nvt moet laatsteBetaalDatum op null zetten", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "pm.test(\"Zaak deels bijwerken met betalingsindicatie nvt verandert laatsteBetaalDatum naar null\", function(){", + " var jsonBody = pm.response.json();", + " pm.expect(jsonBody.betalingsindicatie).to.be.equal(\"nvt\");", + " pm.expect(jsonBody.laatsteBetaaldatum).to.be.equal(null);", + "});" + ], + "type": "text/javascript" + } + }, + { + "listen": "prerequest", + "script": { + "exec": [ + "" + ], + "type": "text/javascript" + } + } + ], + "request": { + "method": "PATCH", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Authorization", + "value": "{{token}}" + }, + { + "key": "Content-Crs", + "value": "EPSG:4326" + }, + { + "key": "Accept-Crs", + "value": "EPSG:4326" + } + ], + "body": { + "mode": "raw", + "raw": "{\n\t\"betalingsindicatie\": \"nvt\"\n}" + }, + "url": { + "raw": "{{zaak_url}}", + "host": [ + "{{zaak_url}}" + ] + } + }, + "response": [] + } + ], + "event": [ + { + "listen": "prerequest", + "script": { + "type": "text/javascript", + "exec": [ + "" + ] + } + }, + { + "listen": "test", + "script": { + "type": "text/javascript", + "exec": [ + "" + ] + } + } + ] + }, + { + "name": "zrc-015", + "item": [ + { + "name": "(zrc-015a) Zaak productenOfDiensten validatie met Zaaktype productenOfDiensten", + "event": [ + { + "listen": "prerequest", + "script": { + "exec": [ + "" + ], + "type": "text/javascript", + "packages": {} + } + }, + { + "listen": "test", + "script": { + "exec": [ + "pm.test(\"Zaak aanmaken met productenOfDiensten niet in Zaaktype gedefinieerd geeft 400\", function() {", + " pm.response.to.have.status(400);", + " ", + " // Verify that the 400 is returned for the correct reason", + " var error = pm.response.json()[\"invalidParams\"][0];", + " pm.expect(error.name).to.be.equal(\"productenOfDiensten\");", + " pm.expect(error.code).to.be.equal(\"invalid-products-services\");", + "});", + "", + "if(pm.response.code == 201) {", + " pm.environment.set(\"created_zaak_url\", pm.response.json().url);", + "", + "}" + ], + "type": "text/javascript", + "packages": {} + } + } + ], + "request": { + "method": "POST", + "header": [ + { + "key": "Accept-Crs", + "value": "EPSG:4326" + }, + { + "key": "Content-Crs", + "value": "EPSG:4326" + }, + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\r\n\r\n \"bronorganisatie\": \"000000000\",\r\n \"omschrijving\": \"string\",\r\n \"toelichting\": \"string\",\r\n \"zaaktype\": \"{{zaaktype_url}}\",\r\n \"registratiedatum\": \"2019-04-09\",\r\n \"verantwoordelijkeOrganisatie\": \"000000000\",\r\n \"startdatum\": \"2019-04-09\",\r\n \"einddatum\": null,\r\n \"einddatumGepland\": \"2019-04-20\",\r\n \"uiterlijkeEinddatumAfdoening\": \"2019-04-09\",\r\n \"publicatiedatum\": \"2019-04-09\",\r\n \"communicatiekanaal\": \"\",\r\n \"productenOfDiensten\": [\"{{zaak_url}}\"],\r\n \"vertrouwelijkheidaanduiding\": \"geheim\",\r\n \"betalingsindicatie\": \"geheel\",\r\n \"betalingsindicatieWeergave\": null,\r\n \"laatsteBetaaldatum\": \"2019-01-01T00:00:00Z\",\r\n \"zaakgeometrie\": {\r\n \"type\": \"Point\",\r\n \"coordinates\": [\r\n 53.0,\r\n 5.0\r\n ]\r\n },\r\n \"verlenging\": null,\r\n \"opschorting\": {\r\n \"indicatie\": true,\r\n \"reden\": \"string\"\r\n },\r\n \"selectielijstklasse\": \"https://referentielijsten.roxit.nl/api/v1/resultaten/0fe71ce3-b1e1-48eb-9070-be2756fc71b5\",\r\n \"hoofdzaak\": null,\r\n \"deelzaken\": [],\r\n \"relevanteAndereZaken\": [],\r\n \"eigenschappen\": [],\r\n \"rollen\": [],\r\n \"status\": null,\r\n \"zaakinformatieobjecten\": [],\r\n \"zaakobjecten\": [],\r\n \"resultaat\": null,\r\n \"kenmerken\": [],\r\n \"archiefnominatie\": null,\r\n \"archiefstatus\": \"nog_te_archiveren\",\r\n \"archiefactiedatum\": null,\r\n \"opdrachtgevendeOrganisatie\": null,\r\n \"processobjectaard\": null,\r\n \"startdatumBewaartermijn\": null,\r\n \"processobject\": null\r\n}" + }, + "url": { + "raw": "{{zrc_url}}/zaken", + "host": [ + "{{zrc_url}}" + ], + "path": [ + "zaken" + ] + } + }, + "response": [] + }, + { + "name": "(zrc-015b) Zaak productenOfDiensten validatie met Zaaktype productenOfDiensten", + "event": [ + { + "listen": "prerequest", + "script": { + "exec": [ + "" + ], + "type": "text/javascript", + "packages": {} + } + }, + { + "listen": "test", + "script": { + "exec": [ + "pm.test(\"Zaak bijwerken met productenOfDiensten niet in Zaaktype gedefinieerd geeft 400\", function() {", + " pm.response.to.have.status(400);", + " ", + " // Verify that the 400 is returned for the correct reason", + " var error = pm.response.json()[\"invalidParams\"][0];", + " pm.expect(error.name).to.be.equal(\"productenOfDiensten\");", + " pm.expect(error.code).to.be.equal(\"invalid-products-services\");", + "});" + ], + "type": "text/javascript", + "packages": {} + } + } + ], + "request": { + "method": "PUT", + "header": [ + { + "key": "Accept-Crs", + "value": "EPSG:4326" + }, + { + "key": "Content-Crs", + "value": "EPSG:4326" + }, + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\r\n\r\n \"bronorganisatie\": \"000000000\",\r\n \"omschrijving\": \"string\",\r\n \"toelichting\": \"string\",\r\n \"zaaktype\": \"{{zaaktype_url}}\",\r\n \"registratiedatum\": \"2019-04-09\",\r\n \"verantwoordelijkeOrganisatie\": \"000000000\",\r\n \"startdatum\": \"2019-04-09\",\r\n \"einddatum\": null,\r\n \"einddatumGepland\": \"2019-04-20\",\r\n \"uiterlijkeEinddatumAfdoening\": \"2019-04-09\",\r\n \"publicatiedatum\": \"2019-04-09\",\r\n \"communicatiekanaal\": \"\",\r\n \"productenOfDiensten\": [\"{{zaak_url}}\"],\r\n \"vertrouwelijkheidaanduiding\": \"geheim\",\r\n \"betalingsindicatie\": \"geheel\",\r\n \"betalingsindicatieWeergave\": null,\r\n \"laatsteBetaaldatum\": \"2019-01-01T00:00:00Z\",\r\n \"zaakgeometrie\": {\r\n \"type\": \"Point\",\r\n \"coordinates\": [\r\n 53.0,\r\n 5.0\r\n ]\r\n },\r\n \"verlenging\": null,\r\n \"opschorting\": {\r\n \"indicatie\": true,\r\n \"reden\": \"string\"\r\n },\r\n \"selectielijstklasse\": \"https://referentielijsten.roxit.nl/api/v1/resultaten/0fe71ce3-b1e1-48eb-9070-be2756fc71b5\",\r\n \"hoofdzaak\": null,\r\n \"deelzaken\": [],\r\n \"relevanteAndereZaken\": [],\r\n \"eigenschappen\": [],\r\n \"rollen\": [],\r\n \"status\": null,\r\n \"zaakinformatieobjecten\": [],\r\n \"zaakobjecten\": [],\r\n \"resultaat\": null,\r\n \"kenmerken\": [],\r\n \"archiefnominatie\": null,\r\n \"archiefstatus\": \"nog_te_archiveren\",\r\n \"archiefactiedatum\": null,\r\n \"opdrachtgevendeOrganisatie\": null,\r\n \"processobjectaard\": null,\r\n \"startdatumBewaartermijn\": null,\r\n \"processobject\": null\r\n}" + }, + "url": { + "raw": "{{zaak_url}}", + "host": [ + "{{zaak_url}}" + ] + } + }, + "response": [] + }, + { + "name": "(zrc-015c) Zaak productenOfDiensten validatie met Zaaktype productenOfDiensten", + "event": [ + { + "listen": "prerequest", + "script": { + "exec": [ + "" + ], + "type": "text/javascript", + "packages": {} + } + }, + { + "listen": "test", + "script": { + "exec": [ + "pm.test(\"Zaak deels bijwerken met productenOfDiensten niet in Zaaktype gedefinieerd geeft 400\", function() {", + " pm.response.to.have.status(400);", + " ", + " // Verify that the 400 is returned for the correct reason", + " var error = pm.response.json()[\"invalidParams\"][0];", + " pm.expect(error.name).to.be.equal(\"productenOfDiensten\");", + " pm.expect(error.code).to.be.equal(\"invalid-products-services\");", + "});" + ], + "type": "text/javascript", + "packages": {} + } + } + ], + "request": { + "method": "PATCH", + "header": [ + { + "key": "Accept-Crs", + "value": "EPSG:4326" + }, + { + "key": "Content-Crs", + "value": "EPSG:4326" + }, + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n\t\"productenOfDiensten\": [\n\t\t\"{{zaak_url}}\"\t\n\t]\n}" + }, + "url": { + "raw": "{{zaak_url}}", + "host": [ + "{{zaak_url}}" + ] + } + }, + "response": [] + }, + { + "name": "(zrc-015d) Zaak aanmaken met valide productenOfDiensten is mogelijk", + "event": [ + { + "listen": "prerequest", + "script": { + "exec": [ + "" + ], + "type": "text/javascript", + "packages": {} + } + }, + { + "listen": "test", + "script": { + "exec": [ + "pm.test(\"Zaak aanmaken met valide productenOfDiensten geeft 201\", function() {", + " pm.response.to.have.status(201);", + " pm.environment.set(\"created_zaak_url\", pm.response.json().url);", + "});" + ], + "type": "text/javascript", + "packages": {} + } + } + ], + "request": { + "method": "POST", + "header": [ + { + "key": "Accept-Crs", + "value": "EPSG:4326" + }, + { + "key": "Content-Crs", + "value": "EPSG:4326" + }, + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\r\n\r\n \"bronorganisatie\": \"000000000\",\r\n \"omschrijving\": \"string\",\r\n \"toelichting\": \"string\",\r\n \"zaaktype\": \"{{zaaktype_url}}\",\r\n \"registratiedatum\": \"2019-04-09\",\r\n \"verantwoordelijkeOrganisatie\": \"000000000\",\r\n \"startdatum\": \"2019-04-09\",\r\n \"einddatum\": null,\r\n \"einddatumGepland\": \"2019-04-20\",\r\n \"uiterlijkeEinddatumAfdoening\": \"2019-04-09\",\r\n \"publicatiedatum\": \"2019-04-09\",\r\n \"communicatiekanaal\": \"\",\r\n \"productenOfDiensten\": [\"https://ref.tst.vng.cloud/standaard/\"],\r\n \"vertrouwelijkheidaanduiding\": \"geheim\",\r\n \"betalingsindicatie\": \"geheel\",\r\n \"betalingsindicatieWeergave\": null,\r\n \"laatsteBetaaldatum\": \"2019-01-01T00:00:00Z\",\r\n \"zaakgeometrie\": {\r\n \"type\": \"Point\",\r\n \"coordinates\": [\r\n 53.0,\r\n 5.0\r\n ]\r\n },\r\n \"verlenging\": null,\r\n \"opschorting\": {\r\n \"indicatie\": true,\r\n \"reden\": \"string\"\r\n },\r\n \"selectielijstklasse\": \"https://referentielijsten.roxit.nl/api/v1/resultaten/0fe71ce3-b1e1-48eb-9070-be2756fc71b5\",\r\n \"hoofdzaak\": null,\r\n \"deelzaken\": [],\r\n \"relevanteAndereZaken\": [],\r\n \"eigenschappen\": [],\r\n \"rollen\": [],\r\n \"status\": null,\r\n \"zaakinformatieobjecten\": [],\r\n \"zaakobjecten\": [],\r\n \"resultaat\": null,\r\n \"kenmerken\": [],\r\n \"archiefnominatie\": null,\r\n \"archiefstatus\": \"nog_te_archiveren\",\r\n \"archiefactiedatum\": null,\r\n \"opdrachtgevendeOrganisatie\": null,\r\n \"processobjectaard\": null,\r\n \"startdatumBewaartermijn\": null,\r\n \"processobject\": null\r\n}" + }, + "url": { + "raw": "{{zrc_url}}/zaken", + "host": [ + "{{zrc_url}}" + ], + "path": [ + "zaken" + ] + } + }, + "response": [] + }, + { + "name": "(zrc-015e) Zaak bijwerken met valide productenOfDiensten is mogelijk", + "event": [ + { + "listen": "prerequest", + "script": { + "exec": [ + "" + ], + "type": "text/javascript", + "packages": {} + } + }, + { + "listen": "test", + "script": { + "exec": [ + "pm.test(\"Zaak bijwerken met valide productenOfDiensten geeft 200\", function() {", + " pm.response.to.have.status(200);", + "});" + ], + "type": "text/javascript", + "packages": {} + } + } + ], + "request": { + "method": "PUT", + "header": [ + { + "key": "Accept-Crs", + "value": "EPSG:4326" + }, + { + "key": "Content-Crs", + "value": "EPSG:4326" + }, + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\r\n\r\n \"bronorganisatie\": \"000000000\",\r\n \"omschrijving\": \"string\",\r\n \"toelichting\": \"string\",\r\n \"zaaktype\": \"{{zaaktype_url}}\",\r\n \"registratiedatum\": \"2019-04-09\",\r\n \"verantwoordelijkeOrganisatie\": \"000000000\",\r\n \"startdatum\": \"2019-04-09\",\r\n \"einddatum\": null,\r\n \"einddatumGepland\": \"2019-04-20\",\r\n \"uiterlijkeEinddatumAfdoening\": \"2019-04-09\",\r\n \"publicatiedatum\": \"2019-04-09\",\r\n \"communicatiekanaal\": \"\",\r\n \"productenOfDiensten\": [\"https://ref.tst.vng.cloud/standaard/\"],\r\n \"vertrouwelijkheidaanduiding\": \"geheim\",\r\n \"betalingsindicatie\": \"geheel\",\r\n \"betalingsindicatieWeergave\": null,\r\n \"laatsteBetaaldatum\": \"2019-01-01T00:00:00Z\",\r\n \"zaakgeometrie\": {\r\n \"type\": \"Point\",\r\n \"coordinates\": [\r\n 53.0,\r\n 5.0\r\n ]\r\n },\r\n \"verlenging\": null,\r\n \"opschorting\": {\r\n \"indicatie\": true,\r\n \"reden\": \"string\"\r\n },\r\n \"selectielijstklasse\": \"https://referentielijsten.roxit.nl/api/v1/resultaten/0fe71ce3-b1e1-48eb-9070-be2756fc71b5\",\r\n \"hoofdzaak\": null,\r\n \"deelzaken\": [],\r\n \"relevanteAndereZaken\": [],\r\n \"eigenschappen\": [],\r\n \"rollen\": [],\r\n \"status\": null,\r\n \"zaakinformatieobjecten\": [],\r\n \"zaakobjecten\": [],\r\n \"resultaat\": null,\r\n \"kenmerken\": [],\r\n \"archiefnominatie\": null,\r\n \"archiefstatus\": \"nog_te_archiveren\",\r\n \"archiefactiedatum\": null,\r\n \"opdrachtgevendeOrganisatie\": null,\r\n \"processobjectaard\": null,\r\n \"startdatumBewaartermijn\": null,\r\n \"processobject\": null\r\n}" + }, + "url": { + "raw": "{{created_zaak_url}}", + "host": [ + "{{created_zaak_url}}" + ] + } + }, + "response": [] + }, + { + "name": "(zrc-015f) Zaak deels bijwerken met valide productenOfDiensten is mogelijk", + "event": [ + { + "listen": "prerequest", + "script": { + "exec": [ + "" + ], + "type": "text/javascript", + "packages": {} + } + }, + { + "listen": "test", + "script": { + "exec": [ + "pm.test(\"Zaak deels bijwerken met valide productenOfDiensten geeft 200\", function() {", + " pm.response.to.have.status(200);", + "});", + "", + "" + ], + "type": "text/javascript", + "packages": {} + } + } + ], + "request": { + "method": "PATCH", + "header": [ + { + "key": "Accept-Crs", + "value": "EPSG:4326" + }, + { + "key": "Content-Crs", + "value": "EPSG:4326" + }, + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\r\n \r\n \"productenOfDiensten\": [\"https://ref.tst.vng.cloud/standaard/\"]\r\n}" + }, + "url": { + "raw": "{{created_zaak_url}}", + "host": [ + "{{created_zaak_url}}" + ] + } + }, + "response": [] + } + ], + "event": [ + { + "listen": "prerequest", + "script": { + "type": "text/javascript", + "exec": [ + "" + ] + } + }, + { + "listen": "test", + "script": { + "type": "text/javascript", + "exec": [ + "" + ] + } + } + ] + }, + { + "name": "zrc-016", + "item": [ + { + "name": "Create Zaaktype for statustype validation", + "event": [ + { + "listen": "prerequest", + "script": { + "exec": [ + "// Retrieve the Zaak body template and modify as needed", + "var body = JSON.parse(pm.environment.get(\"zaaktype_body\"));", + "body.omschrijving = \"TEMP\"", + "body.besluittypen = [];", + "var uuid = require('uuid');", + "var myUUID = uuid.v4(); ", + "body.identificatie = myUUID", + "// Store the modified Zaak body, allowing it to be used in the main request", + "pm.environment.set(\"request_body\", JSON.stringify(body));" + ], + "type": "text/javascript" + } + }, + { + "listen": "test", + "script": { + "exec": [ + "pm.environment.set(\"temp_zaaktype_url\", pm.response.json().url);" + ], + "type": "text/javascript" + } + } + ], + "request": { + "method": "POST", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{{request_body}}" + }, + "url": { + "raw": "{{ztc_url}}/zaaktypen", + "host": [ + "{{ztc_url}}" + ], + "path": [ + "zaaktypen" + ] + } + }, + "response": [] + }, + { + "name": "Create Statustype for validation test", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "pm.environment.set(\"temp_statustype\", pm.response.json().url);" + ], + "type": "text/javascript" + } + } + ], + "request": { + "method": "POST", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n\t\"omschrijving\": \"Begin\",\n\t\"zaaktype\": \"{{temp_zaaktype_url}}\",\n\t\"volgnummer\": 1\n}" + }, + "url": { + "raw": "{{ztc_url}}/statustypen", + "host": [ + "{{ztc_url}}" + ], + "path": [ + "statustypen" + ] + } + }, + "response": [] + }, + { + "name": "Publish Zaaktype for statustype validation", + "request": { + "method": "POST", + "header": [], + "url": { + "raw": "{{temp_zaaktype_url}}/publish", + "host": [ + "{{temp_zaaktype_url}}" + ], + "path": [ + "publish" + ] + } + }, + "response": [] + }, + { + "name": "Create Zaak for Statustype validation", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "// If the test failed and the Zaak was created, delete it", + "if(pm.response.code == 201) {", + " pm.environment.set(\"created_zaak_url\", pm.response.json().url);", + "}" + ], + "type": "text/javascript" + } + }, + { + "listen": "prerequest", + "script": { + "exec": [ + "" + ], + "type": "text/javascript" + } + } + ], + "request": { + "method": "POST", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Accept-Crs", + "value": "EPSG:4326" + }, + { + "key": "Content-Crs", + "value": "EPSG:4326" + } + ], + "body": { + "mode": "raw", + "raw": "{{zaak_body}}" + }, + "url": { + "raw": "{{zrc_url}}/zaken", + "host": [ + "{{zrc_url}}" + ], + "path": [ + "zaken" + ] + } + }, + "response": [] + }, + { + "name": "Add Resultaat to Zaak", + "event": [ + { + "listen": "prerequest", + "script": { + "exec": [ + "pm.environment.set(\"resultaattype\", pm.environment.get(\"zaaktype_resultaattypen\")[0]);" + ], + "type": "text/javascript" + } + }, + { + "listen": "test", + "script": { + "exec": [ + "pm.environment.set(\"zaak_resultaat_url\", pm.response.json().url);" + ], + "type": "text/javascript" + } + } + ], + "request": { + "method": "POST", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n\t\"zaak\": \"{{created_zaak_url}}\",\n\t\"resultaattype\": \"{{resultaattype_url}}\"\n}" + }, + "url": { + "raw": "{{zrc_url}}/resultaten", + "host": [ + "{{zrc_url}}" + ], + "path": [ + "resultaten" + ] + } + }, + "response": [] + }, + { + "name": "(zrc-016a) Status toevoegen aan Zaak met statustype niet in Zaaktype.statustypen is onmogelijk", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "pm.test(\"Status toevoegen aan Zaak met Status.statustype niet in Zaak.zaaktype.statustypen geeft 400\", function() {", + " pm.response.to.have.status(400);", + " ", + " var error = pm.response.json()[\"invalidParams\"][0];", + " pm.expect(error.name).to.be.equal(\"nonFieldErrors\");", + " pm.expect(error.code).to.be.equal(\"zaaktype-mismatch\");", + "});" + ], + "type": "text/javascript" + } + }, + { + "listen": "prerequest", + "script": { + "exec": [ + "" + ], + "type": "text/javascript" + } + } + ], + "request": { + "method": "POST", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n\t\"zaak\": \"{{created_zaak_url}}\",\n\t\"statustype\": \"{{temp_statustype}}\",\n\t\"datumStatusGezet\": \"2018-04-20T13:37:00\"\n}" + }, + "url": { + "raw": "{{zrc_url}}/statussen", + "host": [ + "{{zrc_url}}" + ], + "path": [ + "statussen" + ] + } + }, + "response": [] + } + ] + }, + { + "name": "zrc-017", + "item": [ + { + "name": "ZT", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "if(pm.response.code == 201) {", + " pm.environment.set(\"temp_zaaktype_url\", pm.response.json().url);", + "}" + ], + "type": "text/javascript", + "packages": {} + } + }, + { + "listen": "prerequest", + "script": { + "exec": [ + "var uuid = require('uuid');", + "var myUUID = uuid.v4(); ", + "pm.environment.set(\"random_identificatie\", myUUID);", + "" + ], + "type": "text/javascript", + "packages": {} + } + } + ], + "request": { + "method": "POST", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n\t\"identificatie\": \"{{random_identificatie}}\",\n \"omschrijving\": \"zrc_tests_1\",\n \"vertrouwelijkheidaanduiding\": \"openbaar\",\n \"doel\": \"test doel\",\n \"verantwoordelijke\":\"X\",\n \"aanleiding\": \"test aanleiding\",\n \"indicatieInternOfExtern\": \"extern\",\n \"handelingInitiator\": \"indienen\",\n \"onderwerp\": \"openbare ruimte\",\n \"handelingBehandelaar\": \"behandelen\",\n \"doorlooptijd\": \"P10D\",\n \"opschortingEnAanhoudingMogelijk\": false,\n \"verlengingMogelijk\": true,\n \"publicatieIndicatie\": false,\n \"productenOfDiensten\": [\n \"https://ref.tst.vng.cloud/standaard/\"\n ],\n \"selectielijstProcestype\": \"{{procestype_procestermijn_nihil_url}}\",\n \"referentieproces\": {\n \"naam\": \"test\",\n \"link\": \"\"\n },\n \"deelzaaktypen\": [\n \"{{deelzaaktype_identificatie}}\"\n ],\n \"catalogus\": \"{{catalogus_url}}\",\n \"statustypen\": [\n \n ],\n \"resultaattypen\": [\n ],\n \"eigenschappen\": [\n ],\n \"informatieobjecttypen\": [],\n \"besluittypen\": [\n \"{{besluit_omschrijving}}\"\n ],\n \"gerelateerdeZaaktypen\": [],\n \"beginGeldigheid\": \"2019-01-01\",\n \"versiedatum\": \"2019-01-01\",\n \"concept\": true,\n \"verlengingstermijn\": \"P5D\"\n}" + }, + "url": { + "raw": "{{ztc_url}}/zaaktypen", + "host": [ + "{{ztc_url}}" + ], + "path": [ + "zaaktypen" + ] + } + }, + "response": [] + }, + { + "name": "IOT", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "if(pm.response.code == 201) {\r", + " pm.environment.set(\"temp_iot_url\", pm.response.json().url);\r", + "}" + ], + "type": "text/javascript", + "packages": {} + } + }, + { + "listen": "prerequest", + "script": { + "exec": [ + "var uuid = require('uuid');\r", + "var myUUID = uuid.v4(); \r", + "pm.environment.set(\"informatieobject_omschrijving\", myUUID);" + ], + "type": "text/javascript", + "packages": {} + } + } + ], + "request": { + "method": "POST", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n\t\"catalogus\": \"{{catalogus_url}}\",\n\t\"omschrijving\": \"{{informatieobject_omschrijving}}\",\n\t\"vertrouwelijkheidaanduiding\": \"openbaar\",\n\t\"beginGeldigheid\": \"2019-01-01\",\n\t\"informatieobjectcategorie\": \"document\"\n}" + }, + "url": { + "raw": "{{ztc_url}}/informatieobjecttypen", + "host": [ + "{{ztc_url}}" + ], + "path": [ + "informatieobjecttypen" + ] + } + }, + "response": [] + }, + { + "name": "Publish temp Informatieobjecttype", + "request": { + "method": "POST", + "header": [], + "url": { + "raw": "{{temp_iot_url}}/publish", + "host": [ + "{{temp_iot_url}}" + ], + "path": [ + "publish" + ] + } + }, + "response": [] + }, + { + "name": "Publish Zaaktype for informatieobjecttype validation", + "request": { + "method": "POST", + "header": [], + "url": { + "raw": "{{temp_zaaktype_url}}/publish", + "host": [ + "{{temp_zaaktype_url}}" + ], + "path": [ + "publish" + ] + } + }, + "response": [] + }, + { + "name": "Create Zaak for informatieobjecttype validation", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "// If the test failed and the Zaak was created, delete it", + "if(pm.response.code == 201) {", + " pm.environment.set(\"created_zaak_url\", pm.response.json().url);", + "}" + ], + "type": "text/javascript", + "packages": {} + } + }, + { + "listen": "prerequest", + "script": { + "exec": [ + "" + ], + "type": "text/javascript", + "packages": {} + } + } + ], + "request": { + "method": "POST", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Accept-Crs", + "value": "EPSG:4326" + }, + { + "key": "Content-Crs", + "value": "EPSG:4326" + } + ], + "body": { + "mode": "raw", + "raw": "{\r\n\r\n \"bronorganisatie\": \"000000000\",\r\n \"omschrijving\": \"string\",\r\n \"toelichting\": \"string\",\r\n \"zaaktype\": \"{{temp_zaaktype_url}}\",\r\n \"registratiedatum\": \"2019-04-09\",\r\n \"verantwoordelijkeOrganisatie\": \"000000000\",\r\n \"startdatum\": \"2019-04-09\",\r\n \"einddatum\": null,\r\n \"einddatumGepland\": \"2019-04-20\",\r\n \"uiterlijkeEinddatumAfdoening\": \"2019-04-09\",\r\n \"publicatiedatum\": \"2019-04-09\",\r\n \"communicatiekanaal\": \"\",\r\n \"productenOfDiensten\": [],\r\n \"vertrouwelijkheidaanduiding\": \"geheim\",\r\n \"betalingsindicatie\": \"geheel\",\r\n \"betalingsindicatieWeergave\": null,\r\n \"laatsteBetaaldatum\": \"2019-01-01T00:00:00Z\",\r\n \"zaakgeometrie\": {\r\n \"type\": \"Point\",\r\n \"coordinates\": [\r\n 53.0,\r\n 5.0\r\n ]\r\n },\r\n \"verlenging\": null,\r\n \"opschorting\": {\r\n \"indicatie\": true,\r\n \"reden\": \"string\"\r\n },\r\n \"selectielijstklasse\": \"https://referentielijsten.roxit.nl/api/v1/resultaten/0fe71ce3-b1e1-48eb-9070-be2756fc71b5\",\r\n \"hoofdzaak\": null,\r\n \"deelzaken\": [],\r\n \"relevanteAndereZaken\": [],\r\n \"eigenschappen\": [],\r\n \"rollen\": [],\r\n \"status\": null,\r\n \"zaakinformatieobjecten\": [],\r\n \"zaakobjecten\": [],\r\n \"resultaat\": null,\r\n \"kenmerken\": [],\r\n \"archiefnominatie\": null,\r\n \"archiefstatus\": \"nog_te_archiveren\",\r\n \"archiefactiedatum\": null,\r\n \"opdrachtgevendeOrganisatie\": null,\r\n \"processobjectaard\": null,\r\n \"startdatumBewaartermijn\": null,\r\n \"processobject\": null\r\n}" + }, + "url": { + "raw": "{{zrc_url}}/zaken", + "host": [ + "{{zrc_url}}" + ], + "path": [ + "zaken" + ] + } + }, + "response": [] + }, + { + "name": "Create EnkelvoudigInformatieObject for informatieobjecttype validation", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "pm.environment.set(\"created_informatieobject_url\", pm.response.json().url);" + ], + "type": "text/javascript", + "packages": {} + } + }, + { + "listen": "prerequest", + "script": { + "exec": [ + "" + ], + "type": "text/javascript", + "packages": {} + } + } + ], + "request": { + "method": "POST", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n\t\"bronorganisatie\": \"000000000\",\n\t\"creatiedatum\": \"2019-01-01\",\n\t\"titel\": \"testobject\",\n\t\"auteur\": \"testauteur\",\n\t\"taal\": \"eng\",\n\t\"inhoud\": \"c3RyaW5n\",\n\t\"informatieobjecttype\": \"{{temp_iot_url}}\",\n \"bestandsnaam\": \"x.pdf\",\n\t\"bestandsomvang\": 6\n}" + }, + "url": { + "raw": "{{drc_url}}/enkelvoudiginformatieobjecten", + "host": [ + "{{drc_url}}" + ], + "path": [ + "enkelvoudiginformatieobjecten" + ] + } + }, + "response": [] + }, + { + "name": "(zrc-017a) ZaakInformatieObject aanmaken met informatieobjecttype niet in Zaaktype.informatieobjecttypen is onmogelijk", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "pm.test(\"ZaakInformatieObject toevoegen aan Zaak met ZaakInformatieObject.informatieobject.informatieobjecttypen niet in Zaak.zaaktype.informatieobjecttypen geeft 400\", function() {", + " pm.response.to.have.status(400);", + " ", + " var error = pm.response.json()[\"invalidParams\"][0];", + " pm.expect(error.name).to.be.equal(\"nonFieldErrors\");", + " pm.expect(error.code).to.be.equal(\"missing-zaaktype-informatieobjecttype-relation\");", + "});" + ], + "type": "text/javascript" + } + } + ], + "request": { + "method": "POST", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n\t\"zaak\": \"{{created_zaak_url}}\",\n\t\"informatieobject\": \"{{created_informatieobject_url}}\",\n\t\"titel\": \"bla\"\n}" + }, + "url": { + "raw": "{{zrc_url}}/zaakinformatieobjecten", + "host": [ + "{{zrc_url}}" + ], + "path": [ + "zaakinformatieobjecten" + ] + } + }, + "response": [] + } + ] + }, + { + "name": "zrc-018", + "item": [ + { + "name": "Create Zaaktype for eigenschap validation", + "event": [ + { + "listen": "prerequest", + "script": { + "exec": [ + "// Retrieve the Zaak body template and modify as needed", + "var body = JSON.parse(pm.environment.get(\"zaaktype_body\"));", + "body.omschrijving = \"TEMP\"", + "body.besluittypen = [];", + "", + "var uuid = require('uuid');", + "var myUUID = uuid.v4(); ", + "body.identificatie = myUUID", + "// Store the modified Zaak body, allowing it to be used in the main request", + "pm.environment.set(\"request_body\", JSON.stringify(body));" + ], + "type": "text/javascript" + } + }, + { + "listen": "test", + "script": { + "exec": [ + "pm.environment.set(\"temp_zaaktype_url\", pm.response.json().url);" + ], + "type": "text/javascript" + } + } + ], + "request": { + "method": "POST", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{{request_body}}" + }, + "url": { + "raw": "{{ztc_url}}/zaaktypen", + "host": [ + "{{ztc_url}}" + ], + "path": [ + "zaaktypen" + ] + } + }, + "response": [] + }, + { + "name": "Create Eigenschap", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "pm.environment.set(\"temp_eigenschap\", pm.response.json().url);" + ], + "type": "text/javascript" + } + } + ], + "request": { + "method": "POST", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n\t\"naam\": \"TEMP\",\n\t\"definitie\": \"for test\",\n\t\"zaaktype\": \"{{temp_zaaktype_url}}\",\n \"specificatie\": {\n \"formaat\": \"tekst\",\n \"lengte\": \"5\",\n \"kardinaliteit\": \"1\",\n \"waardenverzameling\": [\"test\"]\n }\n}" + }, + "url": { + "raw": "{{ztc_url}}/eigenschappen", + "host": [ + "{{ztc_url}}" + ], + "path": [ + "eigenschappen" + ] + } + }, + "response": [] + }, + { + "name": "Publish Zaaktype for eigenschap validation", + "request": { + "method": "POST", + "header": [], + "url": { + "raw": "{{temp_zaaktype_url}}/publish", + "host": [ + "{{temp_zaaktype_url}}" + ], + "path": [ + "publish" + ] + } + }, + "response": [] + }, + { + "name": "Create Zaak for eigenschap validation", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "// If the test failed and the Zaak was created, delete it", + "if(pm.response.code == 201) {", + " pm.environment.set(\"created_zaak_url\", pm.response.json().url);", + "}" + ], + "type": "text/javascript" + } + }, + { + "listen": "prerequest", + "script": { + "exec": [ + "" + ], + "type": "text/javascript" + } + } + ], + "request": { + "method": "POST", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Accept-Crs", + "value": "EPSG:4326" + }, + { + "key": "Content-Crs", + "value": "EPSG:4326" + } + ], + "body": { + "mode": "raw", + "raw": "{{zaak_body}}" + }, + "url": { + "raw": "{{zrc_url}}/zaken", + "host": [ + "{{zrc_url}}" + ], + "path": [ + "zaken" + ] + } + }, + "response": [] + }, + { + "name": "(zrc-018a) ZaakEigenschap toevoegen aan Zaak met eigenschap die niet hoort bij Zaak.zaaktype is onmogelijk", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "pm.test(\"(zrc-018a) ZaakEigenschap toevoegen aan Zaak met eigenschap die niet hoort bij Zaak.zaaktype geeft 400\", function() {", + " pm.response.to.have.status(400);", + " ", + " var error = pm.response.json()[\"invalidParams\"][0];", + " pm.expect(error.name).to.be.equal(\"nonFieldErrors\");", + " pm.expect(error.code).to.be.equal(\"zaaktype-mismatch\");", + "});" + ], + "type": "text/javascript" + } + } + ], + "request": { + "method": "POST", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n\t\"zaak\": \"{{created_zaak_url}}\",\n\t\"eigenschap\": \"{{temp_eigenschap}}\",\n\t\"waarde\": \"ja\"\n}" + }, + "url": { + "raw": "{{created_zaak_url}}/zaakeigenschappen", + "host": [ + "{{created_zaak_url}}" + ], + "path": [ + "zaakeigenschappen" + ] + } + }, + "response": [] + }, + { + "name": "Delete Eigenschap", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "pm.environment.unset(\"temp_eigenschap\");" + ], + "type": "text/javascript" + } + } + ], + "request": { + "method": "DELETE", + "header": [], + "url": { + "raw": "{{temp_eigenschap}}", + "host": [ + "{{temp_eigenschap}}" + ] + } + }, + "response": [] + }, + { + "name": "Delete Zaaktype for eigenschap validation", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "pm.environment.unset(\"temp_zaaktype_url\");", + "" + ], + "type": "text/javascript", + "packages": {} + } + } + ], + "request": { + "method": "DELETE", + "header": [], + "url": { + "raw": "{{temp_zaaktype_url}}", + "host": [ + "{{temp_zaaktype_url}}" + ] + } + }, + "response": [] + } + ] + }, + { + "name": "ztc-019", + "item": [ + { + "name": "Create Zaaktype for roltype validation", + "event": [ + { + "listen": "prerequest", + "script": { + "exec": [ + "// Retrieve the Zaak body template and modify as needed", + "var body = JSON.parse(pm.environment.get(\"zaaktype_body\"));", + "body.omschrijving = \"TEMP\"", + "body.besluittypen = [];", + "", + "var uuid = require('uuid');", + "var myUUID = uuid.v4(); ", + "body.identificatie = myUUID", + "// Store the modified Zaak body, allowing it to be used in the main request", + "pm.environment.set(\"request_body\", JSON.stringify(body));" + ], + "type": "text/javascript" + } + }, + { + "listen": "test", + "script": { + "exec": [ + "pm.environment.set(\"temp_zaaktype_url\", pm.response.json().url);" + ], + "type": "text/javascript" + } + } + ], + "request": { + "method": "POST", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{{request_body}}" + }, + "url": { + "raw": "{{ztc_url}}/zaaktypen", + "host": [ + "{{ztc_url}}" + ], + "path": [ + "zaaktypen" + ] + } + }, + "response": [] + }, + { + "name": "Create Roltype", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "pm.environment.set(\"temp_roltype\", pm.response.json().url);" + ], + "type": "text/javascript" + } + } + ], + "request": { + "method": "POST", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n\t\"omschrijving\": \"TEMP\",\n\t\"omschrijvingGeneriek\": \"adviseur\",\n\t\"zaaktype\": \"{{temp_zaaktype_url}}\"\n}" + }, + "url": { + "raw": "{{ztc_url}}/roltypen", + "host": [ + "{{ztc_url}}" + ], + "path": [ + "roltypen" + ] + } + }, + "response": [] + }, + { + "name": "Publish Zaaktype for roltype validation", + "request": { + "method": "POST", + "header": [], + "url": { + "raw": "{{temp_zaaktype_url}}/publish", + "host": [ + "{{temp_zaaktype_url}}" + ], + "path": [ + "publish" + ] + } + }, + "response": [] + }, + { + "name": "Create Zaak for roltype validation", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "// If the test failed and the Zaak was created, delete it", + "if(pm.response.code == 201) {", + " pm.environment.set(\"created_zaak_url\", pm.response.json().url);", + "}" + ], + "type": "text/javascript" + } + }, + { + "listen": "prerequest", + "script": { + "exec": [ + "" + ], + "type": "text/javascript" + } + } + ], + "request": { + "method": "POST", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Accept-Crs", + "value": "EPSG:4326" + }, + { + "key": "Content-Crs", + "value": "EPSG:4326" + } + ], + "body": { + "mode": "raw", + "raw": "{{zaak_body}}" + }, + "url": { + "raw": "{{zrc_url}}/zaken", + "host": [ + "{{zrc_url}}" + ], + "path": [ + "zaken" + ] + } + }, + "response": [] + }, + { + "name": "(zrc-019a) Rol toevoegen aan Zaak met roltype die niet hoort bij Zaak.zaaktype is onmogelijk", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "pm.test(\"(zrc-018a) Rol toevoegen aan Zaak met roltype die niet hoort bij Zaak.zaaktype geeft 400\", function() {", + " pm.response.to.have.status(400);", + " ", + " var error = pm.response.json()[\"invalidParams\"][0];", + " pm.expect(error.name).to.be.equal(\"nonFieldErrors\");", + " pm.expect(error.code).to.be.equal(\"zaaktype-mismatch\");", + "});" + ], + "type": "text/javascript" + } + } + ], + "request": { + "method": "POST", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n\t\"zaak\": \"{{created_zaak_url}}\",\n\t\"betrokkeneType\": \"natuurlijk_persoon\",\n\t\"roltype\": \"{{temp_roltype}}\",\n\t\"roltoelichting\": \"bla\"\n}" + }, + "url": { + "raw": "{{zrc_url}}/rollen", + "host": [ + "{{zrc_url}}" + ], + "path": [ + "rollen" + ] + } + }, + "response": [] + } + ] + }, + { + "name": "zrc-020", + "item": [ + { + "name": "ZT", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "if(pm.response.code == 201) {", + " pm.environment.set(\"temp_zaaktype_url\", pm.response.json().url);", + "}" + ], + "type": "text/javascript", + "packages": {} + } + }, + { + "listen": "prerequest", + "script": { + "exec": [ + "var uuid = require('uuid');", + "var myUUID = uuid.v4(); ", + "pm.environment.set(\"random_identificatie\", myUUID);", + "" + ], + "type": "text/javascript", + "packages": {} + } + } + ], + "request": { + "method": "POST", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n\t\"identificatie\": \"{{random_identificatie}}\",\n \"omschrijving\": \"zrc_tests_1\",\n \"vertrouwelijkheidaanduiding\": \"openbaar\",\n \"doel\": \"test doel\",\n \"verantwoordelijke\":\"X\",\n \"aanleiding\": \"test aanleiding\",\n \"indicatieInternOfExtern\": \"extern\",\n \"handelingInitiator\": \"indienen\",\n \"onderwerp\": \"openbare ruimte\",\n \"handelingBehandelaar\": \"behandelen\",\n \"doorlooptijd\": \"P10D\",\n \"opschortingEnAanhoudingMogelijk\": false,\n \"verlengingMogelijk\": true,\n \"publicatieIndicatie\": false,\n \"productenOfDiensten\": [\n \"https://ref.tst.vng.cloud/standaard/\"\n ],\n \"selectielijstProcestype\": \"{{procestype_procestermijn_nihil_url}}\",\n \"referentieproces\": {\n \"naam\": \"test\",\n \"link\": \"\"\n },\n \"deelzaaktypen\": [\n \"{{deelzaaktype_identificatie}}\"\n ],\n \"catalogus\": \"{{catalogus_url}}\",\n \"statustypen\": [\n \n ],\n \"resultaattypen\": [\n ],\n \"eigenschappen\": [\n ],\n \"informatieobjecttypen\": [],\n \"besluittypen\": [\n \"{{besluit_omschrijving}}\"\n ],\n \"gerelateerdeZaaktypen\": [],\n \"beginGeldigheid\": \"2019-01-01\",\n \"versiedatum\": \"2019-01-01\",\n \"concept\": true,\n \"verlengingstermijn\": \"P5D\"\n}" + }, + "url": { + "raw": "{{ztc_url}}/zaaktypen", + "host": [ + "{{ztc_url}}" + ], + "path": [ + "zaaktypen" + ] + } + }, + "response": [] + }, + { + "name": "Create Resultaattype", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "pm.environment.set(\"temp_resultaattype\", pm.response.json().url);" + ], + "type": "text/javascript", + "packages": {} + } + } + ], + "request": { + "method": "POST", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n\t\"zaaktype\": \"{{temp_zaaktype_url}}\",\n\t\"omschrijving\": \"Klaar\",\n\t\"resultaattypeomschrijving\": \"https://referentielijsten.roxit.nl/api/v1/resultaattypeomschrijvingen/4a6b5072-e44f-4826-9546-e8074499654e\",\n\t\"selectielijstklasse\": \"{{selectielijstklasse_procestermijn_nihil_url}}\",\n \"besluittypen\": [],\n\t\"brondatumArchiefprocedure\": {\n\t\t\"afleidingswijze\": \"afgehandeld\",\n\t\t\"procestermijn\": null,\n\t\t\"datumkenmerk\": \"\",\n\t\t\"einddatumBekend\": false,\n\t\t\"objecttype\": \"\",\n\t\t\"registratie\": \"\"\n\t}\n}" + }, + "url": { + "raw": "{{ztc_url}}/resultaattypen", + "host": [ + "{{ztc_url}}" + ], + "path": [ + "resultaattypen" + ] + } + }, + "response": [] + }, + { + "name": "Publish Zaaktype for resultaattype validation", + "request": { + "method": "POST", + "header": [], + "url": { + "raw": "{{temp_zaaktype_url}}/publish", + "host": [ + "{{temp_zaaktype_url}}" + ], + "path": [ + "publish" + ] + } + }, + "response": [] + }, + { + "name": "Create Zaak for resultaattype validation", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "// If the test failed and the Zaak was created, delete it", + "if(pm.response.code == 201) {", + " pm.environment.set(\"created_zaak_url\", pm.response.json().url);", + "}" + ], + "type": "text/javascript", + "packages": {} + } + }, + { + "listen": "prerequest", + "script": { + "exec": [ + "" + ], + "type": "text/javascript", + "packages": {} + } + } + ], + "request": { + "method": "POST", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Accept-Crs", + "value": "EPSG:4326" + }, + { + "key": "Content-Crs", + "value": "EPSG:4326" + } + ], + "body": { + "mode": "raw", + "raw": "{\r\n\r\n \"bronorganisatie\": \"000000000\",\r\n \"omschrijving\": \"string\",\r\n \"toelichting\": \"string\",\r\n \"zaaktype\": \"{{zaaktype_url}}\",\r\n \"registratiedatum\": \"2019-04-09\",\r\n \"verantwoordelijkeOrganisatie\": \"000000000\",\r\n \"startdatum\": \"2019-04-09\",\r\n \"einddatum\": null,\r\n \"einddatumGepland\": \"2019-04-20\",\r\n \"uiterlijkeEinddatumAfdoening\": \"2019-04-09\",\r\n \"publicatiedatum\": \"2019-04-09\",\r\n \"communicatiekanaal\": \"\",\r\n \"productenOfDiensten\": [],\r\n \"vertrouwelijkheidaanduiding\": \"geheim\",\r\n \"betalingsindicatie\": \"geheel\",\r\n \"betalingsindicatieWeergave\": null,\r\n \"laatsteBetaaldatum\": \"2019-01-01T00:00:00Z\",\r\n \"zaakgeometrie\": {\r\n \"type\": \"Point\",\r\n \"coordinates\": [\r\n 53.0,\r\n 5.0\r\n ]\r\n },\r\n \"verlenging\": null,\r\n \"opschorting\": {\r\n \"indicatie\": true,\r\n \"reden\": \"string\"\r\n },\r\n \"selectielijstklasse\": \"https://referentielijsten.roxit.nl/api/v1/resultaten/0fe71ce3-b1e1-48eb-9070-be2756fc71b5\",\r\n \"hoofdzaak\": null,\r\n \"deelzaken\": [],\r\n \"relevanteAndereZaken\": [],\r\n \"eigenschappen\": [],\r\n \"rollen\": [],\r\n \"status\": null,\r\n \"zaakinformatieobjecten\": [],\r\n \"zaakobjecten\": [],\r\n \"resultaat\": null,\r\n \"kenmerken\": [],\r\n \"archiefnominatie\": null,\r\n \"archiefstatus\": \"nog_te_archiveren\",\r\n \"archiefactiedatum\": null,\r\n \"opdrachtgevendeOrganisatie\": null,\r\n \"processobjectaard\": null,\r\n \"startdatumBewaartermijn\": null,\r\n \"processobject\": null\r\n}" + }, + "url": { + "raw": "{{zrc_url}}/zaken", + "host": [ + "{{zrc_url}}" + ], + "path": [ + "zaken" + ] + } + }, + "response": [] + }, + { + "name": "(zrc-020a) Resultaat toevoegen aan Zaak met resultaattype die niet hoort bij Zaak.zaaktype is onmogelijk", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "pm.test(\"(zrc-020a) Resultaat toevoegen aan Zaak met resultaattype die niet hoort bij Zaak.zaaktype geeft 400\", function() {", + " pm.response.to.have.status(400);", + " ", + " var error = pm.response.json()[\"invalidParams\"][0];", + " pm.expect(error.name).to.be.equal(\"nonFieldErrors\");", + " pm.expect(error.code).to.be.equal(\"zaaktype-mismatch\");", + "});" + ], + "type": "text/javascript" + } + } + ], + "request": { + "method": "POST", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n\t\"zaak\": \"{{created_zaak_url}}\",\n\t\"resultaattype\": \"{{temp_resultaattype}}\"\n}" + }, + "url": { + "raw": "{{zrc_url}}/resultaten", + "host": [ + "{{zrc_url}}" + ], + "path": [ + "resultaten" + ] + } + }, + "response": [] + } + ] + }, + { + "name": "zrc-021", + "item": [ + { + "name": "zrc-021a", + "item": [ + { + "name": "ZT", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "if(pm.response.code == 201) {", + "", + " pm.environment.set(\"zaaktype_procestermijn_nihil_url\", pm.response.json().url);", + "}" + ], + "type": "text/javascript", + "packages": {} + } + }, + { + "listen": "prerequest", + "script": { + "exec": [ + "var uuid = require('uuid');", + "var myUUID = uuid.v4(); ", + "pm.environment.set(\"random_identificatie\", myUUID);", + "" + ], + "type": "text/javascript", + "packages": {} + } + } + ], + "request": { + "method": "POST", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n\t\"identificatie\": \"{{random_identificatie}}\",\n \"omschrijving\": \"zrc_tests_1\",\n \"vertrouwelijkheidaanduiding\": \"openbaar\",\n \"doel\": \"test doel\",\n \"verantwoordelijke\":\"X\",\n \"aanleiding\": \"test aanleiding\",\n \"indicatieInternOfExtern\": \"extern\",\n \"handelingInitiator\": \"indienen\",\n \"onderwerp\": \"openbare ruimte\",\n \"handelingBehandelaar\": \"behandelen\",\n \"doorlooptijd\": \"P10D\",\n \"opschortingEnAanhoudingMogelijk\": false,\n \"verlengingMogelijk\": true,\n \"publicatieIndicatie\": false,\n \"productenOfDiensten\": [\n \"https://ref.tst.vng.cloud/standaard/\"\n ],\n \"selectielijstProcestype\": \"{{procestype_procestermijn_nihil_url}}\",\n \"referentieproces\": {\n \"naam\": \"test\",\n \"link\": \"\"\n },\n \"deelzaaktypen\": [\n \"{{deelzaaktype_identificatie}}\"\n ],\n \"catalogus\": \"{{catalogus_url}}\",\n \"statustypen\": [\n \n ],\n \"resultaattypen\": [\n ],\n \"eigenschappen\": [\n ],\n \"informatieobjecttypen\": [],\n \"besluittypen\": [\n \"{{besluit_omschrijving}}\"\n ],\n \"gerelateerdeZaaktypen\": [],\n \"beginGeldigheid\": \"2019-01-01\",\n \"versiedatum\": \"2019-01-01\",\n \"concept\": true,\n \"verlengingstermijn\": \"P5D\"\n}" + }, + "url": { + "raw": "{{ztc_url}}/zaaktypen", + "host": [ + "{{ztc_url}}" + ], + "path": [ + "zaaktypen" + ] + } + }, + "response": [] + }, + { + "name": "Create Resultaattype procestermijn nihil", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "var jsonData = pm.response.json();", + "", + "pm.environment.set(\"current_resultaattype\", jsonData.url);", + "pm.environment.set(\"resultaattype_archiefnominatie\", jsonData.archiefnominatie);", + "pm.environment.set(\"resultaattype_archiefactietermijn\", jsonData.archiefactietermijn);", + "pm.environment.set(\"resultaattype_brondatumArchiefprocedure\", jsonData.brondatumArchiefprocedure);" + ], + "type": "text/javascript", + "packages": {} + } + } + ], + "request": { + "method": "POST", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n\t\"zaaktype\": \"{{zaaktype_procestermijn_nihil_url}}\",\n\t\"omschrijving\": \"Klaar\",\n\t\"resultaattypeomschrijving\": \"https://referentielijsten.roxit.nl/api/v1/resultaattypeomschrijvingen/4a6b5072-e44f-4826-9546-e8074499654e\",\n\t\"selectielijstklasse\": \"{{selectielijstklasse_procestermijn_nihil_url}}\",\n \"besluittypen\": [],\n\t\"brondatumArchiefprocedure\": {\n\t\t\"afleidingswijze\": \"afgehandeld\",\n\t\t\"procestermijn\": null,\n\t\t\"datumkenmerk\": \"\",\n\t\t\"einddatumBekend\": false,\n\t\t\"objecttype\": \"\",\n\t\t\"registratie\": \"\"\n\t}\n}" + }, + "url": { + "raw": "{{ztc_url}}/resultaattypen", + "host": [ + "{{ztc_url}}" + ], + "path": [ + "resultaattypen" + ] + } + }, + "response": [] + }, + { + "name": "Create eind Statustype procestermijn nihil", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "pm.environment.set(\"current_statustype_url\", pm.response.json().url);" + ], + "type": "text/javascript" + } + } + ], + "request": { + "method": "POST", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n\t\"omschrijving\": \"Eind\",\n\t\"zaaktype\": \"{{zaaktype_procestermijn_nihil_url}}\",\n\t\"volgnummer\": 2\n}" + }, + "url": { + "raw": "{{ztc_url}}/statustypen", + "host": [ + "{{ztc_url}}" + ], + "path": [ + "statustypen" + ] + } + }, + "response": [] + }, + { + "name": "Publish Zaaktype procestermijn nihil", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "" + ], + "type": "text/javascript" + } + }, + { + "listen": "prerequest", + "script": { + "exec": [ + "" + ], + "type": "text/javascript" + } + } + ], + "request": { + "method": "POST", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "" + }, + "url": { + "raw": "{{zaaktype_procestermijn_nihil_url}}/publish", + "host": [ + "{{zaaktype_procestermijn_nihil_url}}" + ], + "path": [ + "publish" + ] + } + }, + "response": [] + }, + { + "name": "Create Zaak without archiefnominatie", + "event": [ + { + "listen": "prerequest", + "script": { + "exec": [ + "" + ], + "type": "text/javascript", + "packages": {} + } + }, + { + "listen": "test", + "script": { + "exec": [ + "pm.environment.set(\"zaak_zonder_archiefnominatie_url\", pm.response.json().url);" + ], + "type": "text/javascript", + "packages": {} + } + } + ], + "request": { + "method": "POST", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Accept-Crs", + "value": "EPSG:4326" + }, + { + "key": "Content-Crs", + "value": "EPSG:4326" + } + ], + "body": { + "mode": "raw", + "raw": "{\r\n \"bronorganisatie\": \"000000000\",\r\n \"omschrijving\": \"string\",\r\n \"toelichting\": \"string\",\r\n \"zaaktype\": \"{{zaaktype_procestermijn_nihil_url}}\",\r\n \"registratiedatum\": \"2019-04-09\",\r\n \"verantwoordelijkeOrganisatie\": \"000000000\",\r\n \"startdatum\": \"2019-04-09\",\r\n \"einddatum\": null,\r\n \"einddatumGepland\": \"2019-04-20\",\r\n \"uiterlijkeEinddatumAfdoening\": \"2019-04-09\",\r\n \"publicatiedatum\": \"2019-04-09\",\r\n \"communicatiekanaal\": \"\",\r\n \"productenOfDiensten\": [],\r\n \"vertrouwelijkheidaanduiding\": \"geheim\",\r\n \"betalingsindicatie\": \"geheel\",\r\n \"betalingsindicatieWeergave\": null,\r\n \"laatsteBetaaldatum\": \"2019-01-01T00:00:00Z\",\r\n \"zaakgeometrie\": {\r\n \"type\": \"Point\",\r\n \"coordinates\": [\r\n 53.0,\r\n 5.0\r\n ]\r\n },\r\n \"verlenging\": null,\r\n \"opschorting\": null,\r\n \"selectielijstklasse\": \"https://referentielijsten.roxit.nl/api/v1/resultaten/0fe71ce3-b1e1-48eb-9070-be2756fc71b5\",\r\n \"hoofdzaak\": null,\r\n \"deelzaken\": [],\r\n \"relevanteAndereZaken\": [],\r\n \"eigenschappen\": [],\r\n \"rollen\": [],\r\n \"status\": null,\r\n \"zaakinformatieobjecten\": [],\r\n \"zaakobjecten\": [],\r\n \"resultaat\": null,\r\n \"kenmerken\": [],\r\n \"archiefnominatie\": null,\r\n \"archiefstatus\": \"nog_te_archiveren\",\r\n \"archiefactiedatum\": null,\r\n \"opdrachtgevendeOrganisatie\": null,\r\n \"processobjectaard\": null,\r\n \"startdatumBewaartermijn\": null,\r\n \"processobject\": null\r\n}" + }, + "url": { + "raw": "{{zrc_url}}/zaken", + "host": [ + "{{zrc_url}}" + ], + "path": [ + "zaken" + ] + } + }, + "response": [] + }, + { + "name": "Add Resultaat to Zaak", + "event": [ + { + "listen": "prerequest", + "script": { + "exec": [ + "// if (!pm.environment.get(\"resultaattype_index\")) {", + "// pm.environment.set(\"resultaattype_index\", 0);", + "// }", + "", + "// pm.environment.set(\"current_resultaattype\", pm.environment.get(\"zaaktype_resultaattypen\")[pm.environment.get(\"resultaattype_index\")])" + ], + "type": "text/javascript" + } + }, + { + "listen": "test", + "script": { + "exec": [ + "pm.environment.set(\"zaak_resultaat_url\", pm.response.json().url);" + ], + "type": "text/javascript" + } + } + ], + "request": { + "method": "POST", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n\t\"zaak\": \"{{zaak_zonder_archiefnominatie_url}}\",\n\t\"resultaattype\": \"{{current_resultaattype}}\"\n}" + }, + "url": { + "raw": "{{zrc_url}}/resultaten", + "host": [ + "{{zrc_url}}" + ], + "path": [ + "resultaten" + ] + } + }, + "response": [] + }, + { + "name": "Add Eindstatus to Zaak without archiefnominatie", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "" + ], + "type": "text/javascript" + } + }, + { + "listen": "prerequest", + "script": { + "exec": [ + "" + ], + "type": "text/javascript" + } + } + ], + "request": { + "method": "POST", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n\t\"zaak\": \"{{zaak_zonder_archiefnominatie_url}}\",\n\t\"statustype\": \"{{current_statustype_url}}\",\n\t\"datumStatusGezet\": \"2018-04-26T13:37:00\"\n}" + }, + "url": { + "raw": "{{zrc_url}}/statussen", + "host": [ + "{{zrc_url}}" + ], + "path": [ + "statussen" + ] + } + }, + "response": [] + }, + { + "name": "(zrc-021a) Afleidingswijze afgehandeld", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "var moment = require('moment');", + "", + "pm.test(\"Resultaat toevoegen aan Zaak zonder archiefnominatie betekent dat archiefnominatie afgeleid wordt uit Resultaattype\", function() {", + " pm.response.to.have.status(200);", + " pm.expect(pm.response.json().archiefnominatie).to.be.equal(pm.environment.get(\"resultaattype_archiefnominatie\"));", + "});", + "", + "pm.test(\"Resultaat met afleidingswijze afgehandeld toevoegen aan Zaak zet correcte Zaak.archiefdatum\", function() {", + " var jsonData = pm.response.json();", + " ", + " if (pm.environment.get(\"resultaattype_archiefactietermijn\")) {", + " const brondatum = moment.utc(jsonData.einddatum);", + " const archiefactietermijn = moment.duration(pm.environment.get(\"resultaattype_archiefactietermijn\"), 'years');", + " var calculated_archiefactiedatum = brondatum.add(archiefactietermijn);", + " ", + " pm.expect(jsonData.archiefactiedatum).to.be.equal(calculated_archiefactiedatum.format(\"YYYY-MM-DD\")); ", + " }", + "});" + ], + "type": "text/javascript" + } + } + ], + "request": { + "method": "GET", + "header": [ + { + "key": "Accept-Crs", + "value": "EPSG:4326" + } + ], + "url": { + "raw": "{{zaak_zonder_archiefnominatie_url}}", + "host": [ + "{{zaak_zonder_archiefnominatie_url}}" + ] + } + }, + "response": [] + } + ] + }, + { + "name": "zrc-021b", + "item": [ + { + "name": "Create Zaaktype procestermijn vast_te_leggen_datum", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "var res = pm.response.json();", + "pm.environment.set(\"zaaktype_procestermijn_vast_te_leggen_datum_url\", res.url);" + ], + "type": "text/javascript", + "packages": {} + } + }, + { + "listen": "prerequest", + "script": { + "exec": [ + "", + "var uuid = require('uuid');", + "var myUUID = uuid.v4(); ", + "pm.environment.set(\"random_identificatie_DZ\", myUUID);" + ], + "type": "text/javascript", + "packages": {} + } + } + ], + "request": { + "method": "POST", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\r\n \"identificatie\": \"{{random_identificatie_DZ}}\",\r\n \"omschrijving\": \"Zaaktype for archiving tests vast_te_leggen_datum\",\r\n \"omschrijvingGeneriek\": null,\r\n \"vertrouwelijkheidaanduiding\": \"openbaar\",\r\n \"doel\": \"test doel\",\r\n \"aanleiding\": \"test aanleiding\",\r\n \"toelichting\": null,\r\n \"indicatieInternOfExtern\": \"extern\",\r\n \"handelingInitiator\": \"indienen\",\r\n \"onderwerp\": \"openbare ruimte\",\r\n \"handelingBehandelaar\": \"behandelen\",\r\n \"doorlooptijd\": \"P10D\",\r\n \"servicenorm\": null,\r\n \"opschortingEnAanhoudingMogelijk\": false,\r\n \"verlengingMogelijk\": true,\r\n \"verlengingstermijn\": \"P5D\",\r\n \"trefwoorden\": [],\r\n \"publicatieIndicatie\": false,\r\n \"publicatietekst\": null,\r\n \"verantwoordingsrelatie\": [],\r\n \"productenOfDiensten\": [\r\n \"https://ref.tst.vng.cloud/standaard/\"\r\n ],\r\n \"selectielijstProcestype\": \"https://referentielijsten.roxit.nl/api/v1/procestypen/cdb46f05-0750-4d83-8025-31e20408ed21\",\r\n \"referentieproces\": {\r\n \"naam\": \"test\",\r\n \"link\": \"\"\r\n },\r\n \"verantwoordelijke\": \"X\",\r\n \"zaakobjecttypen\": [],\r\n \"broncatalogus\": null,\r\n \"bronzaaktype\": null,\r\n \"catalogus\": \"{{catalogus_url}}\",\r\n \"statustypen\": [],\r\n \"resultaattypen\": [],\r\n \"eigenschappen\": [],\r\n \"informatieobjecttypen\": [],\r\n \"roltypen\": [],\r\n \"besluittypen\": [],\r\n \"deelzaaktypen\": [],\r\n \"gerelateerdeZaaktypen\": [],\r\n \"concept\": true,\r\n \"beginGeldigheid\": \"2019-01-01\",\r\n \"eindeGeldigheid\": null,\r\n \"beginObject\": null,\r\n \"eindeObject\": null,\r\n \"versiedatum\": \"2019-01-01\"\r\n}" + }, + "url": { + "raw": "{{ztc_url}}/zaaktypen", + "host": [ + "{{ztc_url}}" + ], + "path": [ + "zaaktypen" + ] + } + }, + "response": [] + }, + { + "name": "Create Hoofdzaaktype", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "var res = pm.response.json();", + "pm.environment.set(\"hoofdzaaktype_url\", res.url);", + "" + ], + "type": "text/javascript", + "packages": {} + } + }, + { + "listen": "prerequest", + "script": { + "exec": [ + "var uuid = require('uuid');", + "var myUUID = uuid.v4(); ", + "pm.environment.set(\"random_identificatie-21zrc\", myUUID);", + "" + ], + "type": "text/javascript", + "packages": {} + } + } + ], + "request": { + "method": "POST", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n\t\"identificatie\": \"{{random_identificatie-21zrc}}\",\n \"omschrijving\": \"zrc_tests_1 hoofdzaak\",\n \"vertrouwelijkheidaanduiding\": \"openbaar\",\n \"doel\": \"test doel\",\n \"aanleiding\": \"test aanleiding\",\n \"indicatieInternOfExtern\": \"extern\",\n \"handelingInitiator\": \"indienen\",\n \"onderwerp\": \"openbare ruimte\",\n \"handelingBehandelaar\": \"behandelen\",\n \"doorlooptijd\": \"P10D\",\n \"opschortingEnAanhoudingMogelijk\": false,\n \"verlengingMogelijk\": true,\n \"publicatieIndicatie\": false,\n \"verantwoordelijke\":\"X\",\n \"productenOfDiensten\": [\n \"https://ref.tst.vng.cloud/standaard/\"\n ],\n \"selectielijstProcestype\": \"{{procestype_procestermijn_nihil_url}}\",\n \"referentieproces\": {\n \"naam\": \"test\",\n \"link\": \"\"\n },\n \"deelzaaktypen\": [\n \"{{random_identificatie_DZ}}\"\n ],\n \"catalogus\": \"{{catalogus_url}}\",\n \"statustypen\": [\n \"http://localhost:8002/api/v1/statustypen/ecb7fc03-5c11-46be-917f-e70e16c77554\",\n \"http://localhost:8002/api/v1/statustypen/14734ec8-04f8-4c18-a009-e190ff448ca9\"\n ],\n \"resultaattypen\": [\n \"http://localhost:8002/api/v1/resultaattypen/eead9dcd-9544-4862-8a03-b55643f95228\"\n ],\n \"eigenschappen\": [\n \"http://localhost:8002/api/v1/eigenschappen/d417bd46-a2a8-46d7-bb8c-4c8dc214301b\"\n ],\n \"informatieobjecttypen\": [],\n \"besluittypen\": [],\n \"gerelateerdeZaaktypen\": [],\n \"beginGeldigheid\": \"2019-01-01\",\n \"versiedatum\": \"2019-01-01\",\n \"concept\": true,\n \"verlengingstermijn\": \"P5D\"\n}" + }, + "url": { + "raw": "{{ztc_url}}/zaaktypen", + "host": [ + "{{ztc_url}}" + ], + "path": [ + "zaaktypen" + ] + } + }, + "response": [] + }, + { + "name": "Create Resultaattype afleidingswijze hoofdzaak", + "event": [ + { + "listen": "prerequest", + "script": { + "exec": [ + "" + ], + "type": "text/javascript", + "packages": {} + } + }, + { + "listen": "test", + "script": { + "exec": [ + "var jsonData = pm.response.json();", + "", + "pm.environment.set(\"current_resultaattype\", jsonData.url);", + "pm.environment.set(\"resultaattype_archiefnominatie\", jsonData.archiefnominatie);", + "pm.environment.set(\"resultaattype_archiefactietermijn\", jsonData.archiefactietermijn);", + "pm.environment.set(\"resultaattype_brondatumArchiefprocedure\", jsonData.brondatumArchiefprocedure);" + ], + "type": "text/javascript", + "packages": {} + } + } + ], + "request": { + "method": "POST", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n \"zaaktype\": \"{{zaaktype_procestermijn_vast_te_leggen_datum_url}}\",\n \"omschrijving\": \"TEST\",\n \"resultaattypeomschrijving\": \"https://referentielijsten.roxit.nl/api/v1/resultaattypeomschrijvingen/4a6b5072-e44f-4826-9546-e8074499654e\",\n \"selectielijstklasse\": \"{{selectielijstklasse_procestermijn_vast_te_leggen_datum_url}}\",\n \"brondatumArchiefprocedure\": {\n \"afleidingswijze\": \"hoofdzaak\",\n \"procestermijn\": null,\n \"datumkenmerk\": \"\",\n \"einddatumBekend\": true,\n \"objecttype\": \"\",\n \"registratie\": \"\"\n },\n \"besluittypen\": []\n}" + }, + "url": { + "raw": "{{ztc_url}}/resultaattypen", + "host": [ + "{{ztc_url}}" + ], + "path": [ + "resultaattypen" + ] + } + }, + "response": [] + }, + { + "name": "Create eind Statustype procestermijn vast_te_leggen_datum", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "pm.environment.set(\"current_statustype_url\", pm.response.json().url);" + ], + "type": "text/javascript" + } + } + ], + "request": { + "method": "POST", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n\t\"omschrijving\": \"Eind\",\n\t\"zaaktype\": \"{{zaaktype_procestermijn_vast_te_leggen_datum_url}}\",\n\t\"volgnummer\": 2\n}" + }, + "url": { + "raw": "{{ztc_url}}/statustypen", + "host": [ + "{{ztc_url}}" + ], + "path": [ + "statustypen" + ] + } + }, + "response": [] + }, + { + "name": "Create Resultaattype afleidingswijze afgehandeld for hoofdzaaktype", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "pm.environment.set(\"resultaattype_for_hoofdzaaktype_url\", pm.response.json().url);" + ], + "type": "text/javascript", + "packages": {} + } + } + ], + "request": { + "method": "POST", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n\t\"zaaktype\": \"{{hoofdzaaktype_url}}\",\n\t\"omschrijving\": \"Klaar\",\n\t\"resultaattypeomschrijving\": \"https://referentielijsten.roxit.nl/api/v1/resultaattypeomschrijvingen/4a6b5072-e44f-4826-9546-e8074499654e\",\n\t\"selectielijstklasse\": \"{{selectielijstklasse_procestermijn_nihil_url}}\",\n\t\"brondatumArchiefprocedure\": {\n\t\t\"afleidingswijze\": \"afgehandeld\",\n\t\t\"procestermijn\": null,\n\t\t\"datumkenmerk\": \"\",\n\t\t\"einddatumBekend\": false,\n\t\t\"objecttype\": \"\",\n\t\t\"registratie\": \"\"\n\t},\n \"besluittypen\":[]\n}" + }, + "url": { + "raw": "{{ztc_url}}/resultaattypen", + "host": [ + "{{ztc_url}}" + ], + "path": [ + "resultaattypen" + ] + } + }, + "response": [] + }, + { + "name": "Create eind Statustype for hoofdzaaktype", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "pm.environment.set(\"eindstatustype_for_hoofdzaaktype_url\", pm.response.json().url);" + ], + "type": "text/javascript" + } + } + ], + "request": { + "method": "POST", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n\t\"omschrijving\": \"Eind\",\n\t\"zaaktype\": \"{{hoofdzaaktype_url}}\",\n\t\"volgnummer\": 2\n}" + }, + "url": { + "raw": "{{ztc_url}}/statustypen", + "host": [ + "{{ztc_url}}" + ], + "path": [ + "statustypen" + ] + } + }, + "response": [] + }, + { + "name": "Publish Zaaktype procestermijn vast_te_leggen_datum", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "pm.environment.set(\"archiving_zaaktypen\", [", + " pm.environment.get(\"zaaktype_procestermijn_nihil_url\"),", + " pm.environment.get(\"zaaktype_procestermijn_ingeschatte_bestaansduur_object_url\"),", + " pm.environment.get(\"zaaktype_procestermijn_vast_te_leggen_datum_url\")", + "]);" + ], + "type": "text/javascript" + } + }, + { + "listen": "prerequest", + "script": { + "exec": [ + "" + ], + "type": "text/javascript" + } + } + ], + "request": { + "method": "POST", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "" + }, + "url": { + "raw": "{{zaaktype_procestermijn_vast_te_leggen_datum_url}}/publish", + "host": [ + "{{zaaktype_procestermijn_vast_te_leggen_datum_url}}" + ], + "path": [ + "publish" + ] + } + }, + "response": [] + }, + { + "name": "Publish Hoofdzaaktype", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "" + ], + "type": "text/javascript" + } + }, + { + "listen": "prerequest", + "script": { + "exec": [ + "" + ], + "type": "text/javascript" + } + } + ], + "request": { + "method": "POST", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "" + }, + "url": { + "raw": "{{hoofdzaaktype_url}}/publish", + "host": [ + "{{hoofdzaaktype_url}}" + ], + "path": [ + "publish" + ] + } + }, + "response": [] + }, + { + "name": "Create Hoofdzaak", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "pm.environment.set(\"hoofdzaak_url\", pm.response.json().url);" + ], + "type": "text/javascript", + "packages": {} + } + }, + { + "listen": "prerequest", + "script": { + "exec": [ + "" + ], + "type": "text/javascript", + "packages": {} + } + } + ], + "request": { + "method": "POST", + "header": [ + { + "key": "Accept-Crs", + "value": "EPSG:4326" + }, + { + "key": "Content-Crs", + "value": "EPSG:4326" + }, + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\r\n \"bronorganisatie\": \"000000000\",\r\n \"omschrijving\": \"string\",\r\n \"toelichting\": \"string\",\r\n \"zaaktype\": \"{{hoofdzaaktype_url}}\",\r\n \"registratiedatum\": \"2019-04-09\",\r\n \"verantwoordelijkeOrganisatie\": \"000000000\",\r\n \"startdatum\": \"2019-04-09\",\r\n \"einddatum\": null,\r\n \"einddatumGepland\": \"2019-04-20\",\r\n \"uiterlijkeEinddatumAfdoening\": \"2019-04-09\",\r\n \"publicatiedatum\": \"2019-04-09\",\r\n \"communicatiekanaal\": \"\",\r\n \"productenOfDiensten\": [],\r\n \"vertrouwelijkheidaanduiding\": \"geheim\",\r\n \"betalingsindicatie\": \"geheel\",\r\n \"betalingsindicatieWeergave\": null,\r\n \"laatsteBetaaldatum\": \"2019-01-01T00:00:00Z\",\r\n \"zaakgeometrie\": {\r\n \"type\": \"Point\",\r\n \"coordinates\": [\r\n 53.0,\r\n 5.0\r\n ]\r\n },\r\n \"verlenging\": null,\r\n \"opschorting\": null,\r\n \"selectielijstklasse\": \"https://referentielijsten.roxit.nl/api/v1/resultaten/0fe71ce3-b1e1-48eb-9070-be2756fc71b5\",\r\n \"hoofdzaak\": null,\r\n \"deelzaken\": [],\r\n \"relevanteAndereZaken\": [],\r\n \"eigenschappen\": [],\r\n \"rollen\": [],\r\n \"status\": null,\r\n \"zaakinformatieobjecten\": [],\r\n \"zaakobjecten\": [],\r\n \"resultaat\": null,\r\n \"kenmerken\": [],\r\n \"archiefnominatie\": null,\r\n \"archiefstatus\": \"nog_te_archiveren\",\r\n \"archiefactiedatum\": null,\r\n \"opdrachtgevendeOrganisatie\": null,\r\n \"processobjectaard\": null,\r\n \"startdatumBewaartermijn\": null,\r\n \"processobject\": null\r\n}" + }, + "url": { + "raw": "{{zrc_url}}/zaken", + "host": [ + "{{zrc_url}}" + ], + "path": [ + "zaken" + ] + } + }, + "response": [] + }, + { + "name": "Create Zaak met vast te leggen datum", + "event": [ + { + "listen": "prerequest", + "script": { + "exec": [ + "" + ], + "type": "text/javascript", + "packages": {} + } + }, + { + "listen": "test", + "script": { + "exec": [ + "pm.environment.set(\"zaak_met_vast_te_leggen_datum\", pm.response.json().url);" + ], + "type": "text/javascript", + "packages": {} + } + } + ], + "request": { + "method": "POST", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Accept-Crs", + "value": "EPSG:4326" + }, + { + "key": "Content-Crs", + "value": "EPSG:4326" + } + ], + "body": { + "mode": "raw", + "raw": "{\r\n \"bronorganisatie\": \"000000000\",\r\n \"omschrijving\": \"string\",\r\n \"toelichting\": \"string\",\r\n \"zaaktype\": \"{{zaaktype_procestermijn_vast_te_leggen_datum_url}}\",\r\n \"registratiedatum\": \"2019-04-09\",\r\n \"verantwoordelijkeOrganisatie\": \"000000000\",\r\n \"startdatum\": \"2019-04-09\",\r\n \"einddatum\": null,\r\n \"einddatumGepland\": \"2019-04-20\",\r\n \"uiterlijkeEinddatumAfdoening\": \"2019-04-09\",\r\n \"publicatiedatum\": \"2019-04-09\",\r\n \"communicatiekanaal\": \"\",\r\n \"productenOfDiensten\": [],\r\n \"vertrouwelijkheidaanduiding\": \"geheim\",\r\n \"betalingsindicatie\": \"geheel\",\r\n \"betalingsindicatieWeergave\": null,\r\n \"laatsteBetaaldatum\": \"2019-01-01T00:00:00Z\",\r\n \"zaakgeometrie\": {\r\n \"type\": \"Point\",\r\n \"coordinates\": [\r\n 53.0,\r\n 5.0\r\n ]\r\n },\r\n \"verlenging\": null,\r\n \"opschorting\": null,\r\n \"selectielijstklasse\": \"https://referentielijsten.roxit.nl/api/v1/resultaten/0fe71ce3-b1e1-48eb-9070-be2756fc71b5\",\r\n \"hoofdzaak\": null,\r\n \"deelzaken\": [],\r\n \"relevanteAndereZaken\": [],\r\n \"eigenschappen\": [],\r\n \"rollen\": [],\r\n \"status\": null,\r\n \"zaakinformatieobjecten\": [],\r\n \"zaakobjecten\": [],\r\n \"resultaat\": null,\r\n \"kenmerken\": [],\r\n \"archiefnominatie\": null,\r\n \"archiefstatus\": \"nog_te_archiveren\",\r\n \"archiefactiedatum\": null,\r\n \"opdrachtgevendeOrganisatie\": null,\r\n \"processobjectaard\": null,\r\n \"startdatumBewaartermijn\": null,\r\n \"processobject\": null\r\n}" + }, + "url": { + "raw": "{{zrc_url}}/zaken", + "host": [ + "{{zrc_url}}" + ], + "path": [ + "zaken" + ] + } + }, + "response": [] + }, + { + "name": "Add Resultaat to Hoofdzaak", + "event": [ + { + "listen": "prerequest", + "script": { + "exec": [ + "pm.environment.set(\"resultaattype\", pm.environment.get(\"resultaattype_for_hoofdzaaktype_url\"));" + ], + "type": "text/javascript" + } + }, + { + "listen": "test", + "script": { + "exec": [ + "pm.environment.set(\"hoofdzaak_resultaat_url\", pm.response.json().url);" + ], + "type": "text/javascript" + } + } + ], + "request": { + "method": "POST", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n\t\"zaak\": \"{{hoofdzaak_url}}\",\n\t\"resultaattype\": \"{{resultaattype}}\"\n}" + }, + "url": { + "raw": "{{zrc_url}}/resultaten", + "host": [ + "{{zrc_url}}" + ], + "path": [ + "resultaten" + ] + } + }, + "response": [] + }, + { + "name": "Add Eindstatus to Hoofdzaak", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "" + ], + "type": "text/javascript" + } + }, + { + "listen": "prerequest", + "script": { + "exec": [ + "" + ], + "type": "text/javascript" + } + } + ], + "request": { + "method": "POST", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n\t\"zaak\": \"{{hoofdzaak_url}}\",\n\t\"statustype\": \"{{eindstatustype_for_hoofdzaaktype_url}}\",\n\t\"datumStatusGezet\": \"2018-04-18T13:37:00\"\n}" + }, + "url": { + "raw": "{{zrc_url}}/statussen", + "host": [ + "{{zrc_url}}" + ], + "path": [ + "statussen" + ] + } + }, + "response": [] + }, + { + "name": "Retrieve Hoofdzaak einddatum", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "pm.environment.set(\"hoofdzaak_einddatum\", pm.response.json().einddatum);" + ], + "type": "text/javascript" + } + } + ], + "request": { + "method": "GET", + "header": [ + { + "key": "Accept-Crs", + "value": "EPSG:4326" + }, + { + "key": "Content-Type", + "value": "application/json" + } + ], + "url": { + "raw": "{{hoofdzaak_url}}", + "host": [ + "{{hoofdzaak_url}}" + ] + } + }, + "response": [] + } + ], + "event": [ + { + "listen": "prerequest", + "script": { + "type": "text/javascript", + "exec": [ + "" + ] + } + }, + { + "listen": "test", + "script": { + "type": "text/javascript", + "exec": [ + "" + ] + } + } + ] + }, + { + "name": "zrc-021c", + "item": [ + { + "name": "Create Zaaktype procestermijn vast_te_leggen_datum", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "var res = pm.response.json();", + "pm.environment.set(\"zaaktype_procestermijn_vast_te_leggen_datum_url\", res.url);" + ], + "type": "text/javascript", + "packages": {} + } + }, + { + "listen": "prerequest", + "script": { + "exec": [ + "", + "var uuid = require('uuid');", + "var myUUID = uuid.v4(); ", + "pm.environment.set(\"random_identificatie_DZ\", myUUID);" + ], + "type": "text/javascript", + "packages": {} + } + } + ], + "request": { + "method": "POST", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\r\n \"identificatie\": \"{{random_identificatie_DZ}}\",\r\n \"omschrijving\": \"Zaaktype for archiving tests vast_te_leggen_datum\",\r\n \"omschrijvingGeneriek\": null,\r\n \"vertrouwelijkheidaanduiding\": \"openbaar\",\r\n \"doel\": \"test doel\",\r\n \"aanleiding\": \"test aanleiding\",\r\n \"toelichting\": null,\r\n \"indicatieInternOfExtern\": \"extern\",\r\n \"handelingInitiator\": \"indienen\",\r\n \"onderwerp\": \"openbare ruimte\",\r\n \"handelingBehandelaar\": \"behandelen\",\r\n \"doorlooptijd\": \"P10D\",\r\n \"servicenorm\": null,\r\n \"opschortingEnAanhoudingMogelijk\": false,\r\n \"verlengingMogelijk\": true,\r\n \"verlengingstermijn\": \"P5D\",\r\n \"trefwoorden\": [],\r\n \"publicatieIndicatie\": false,\r\n \"publicatietekst\": null,\r\n \"verantwoordingsrelatie\": [],\r\n \"productenOfDiensten\": [\r\n \"https://ref.tst.vng.cloud/standaard/\"\r\n ],\r\n \"selectielijstProcestype\": \"https://referentielijsten.roxit.nl/api/v1/procestypen/cdb46f05-0750-4d83-8025-31e20408ed21\",\r\n \"referentieproces\": {\r\n \"naam\": \"test\",\r\n \"link\": \"\"\r\n },\r\n \"verantwoordelijke\": \"X\",\r\n \"zaakobjecttypen\": [],\r\n \"broncatalogus\": null,\r\n \"bronzaaktype\": null,\r\n \"catalogus\": \"{{catalogus_url}}\",\r\n \"statustypen\": [],\r\n \"resultaattypen\": [],\r\n \"eigenschappen\": [],\r\n \"informatieobjecttypen\": [],\r\n \"roltypen\": [],\r\n \"besluittypen\": [],\r\n \"deelzaaktypen\": [],\r\n \"gerelateerdeZaaktypen\": [],\r\n \"concept\": true,\r\n \"beginGeldigheid\": \"2019-01-01\",\r\n \"eindeGeldigheid\": null,\r\n \"beginObject\": null,\r\n \"eindeObject\": null,\r\n \"versiedatum\": \"2019-01-01\"\r\n}" + }, + "url": { + "raw": "{{ztc_url}}/zaaktypen", + "host": [ + "{{ztc_url}}" + ], + "path": [ + "zaaktypen" + ] + } + }, + "response": [] + }, + { + "name": "Create Resultaattype afleidingswijze eigenschap", + "event": [ + { + "listen": "prerequest", + "script": { + "exec": [ + "" + ], + "type": "text/javascript", + "packages": {} + } + }, + { + "listen": "test", + "script": { + "exec": [ + "var jsonData = pm.response.json();", + "", + "pm.environment.set(\"current_resultaattype\", jsonData.url);", + "pm.environment.set(\"resultaattype_archiefnominatie\", jsonData.archiefnominatie);", + "pm.environment.set(\"resultaattype_archiefactietermijn\", jsonData.archiefactietermijn);", + "pm.environment.set(\"resultaattype_brondatumArchiefprocedure\", jsonData.brondatumArchiefprocedure);" + ], + "type": "text/javascript", + "packages": {} + } + } + ], + "request": { + "method": "POST", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n \"zaaktype\": \"{{zaaktype_procestermijn_vast_te_leggen_datum_url}}\",\n \"omschrijving\": \"TEST\",\n \"resultaattypeomschrijving\": \"https://referentielijsten.roxit.nl/api/v1/resultaattypeomschrijvingen/bae947e7-02b5-44f9-ab76-28c7a0ed01c0\",\n \"selectielijstklasse\": \"{{selectielijstklasse_procestermijn_vast_te_leggen_datum_url}}\",\n \"brondatumArchiefprocedure\": {\n \"afleidingswijze\": \"eigenschap\",\n \"procestermijn\": null,\n \"datumkenmerk\": \"archivering_test\",\n \"einddatumBekend\": true,\n \"objecttype\": \"\",\n \"registratie\": \"\"\n },\n \"besluittypen\": []\n}" + }, + "url": { + "raw": "{{ztc_url}}/resultaattypen", + "host": [ + "{{ztc_url}}" + ], + "path": [ + "resultaattypen" + ] + } + }, + "response": [] + }, + { + "name": "Create eind Statustype procestermijn vast_te_leggen_datum", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "pm.environment.set(\"current_statustype_url\", pm.response.json().url);" + ], + "type": "text/javascript" + } + } + ], + "request": { + "method": "POST", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n\t\"omschrijving\": \"Eind\",\n\t\"zaaktype\": \"{{zaaktype_procestermijn_vast_te_leggen_datum_url}}\",\n\t\"volgnummer\": 2\n}" + }, + "url": { + "raw": "{{ztc_url}}/statustypen", + "host": [ + "{{ztc_url}}" + ], + "path": [ + "statustypen" + ] + } + }, + "response": [] + }, + { + "name": "Create Eigenschap for zaaktype", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "pm.environment.set(\"archivering_eigenschap_url\", pm.response.json().url);" + ], + "type": "text/javascript", + "packages": {} + } + } + ], + "request": { + "method": "POST", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n\t\"naam\": \"archivering_test\",\n\t\"definitie\": \"test\",\n\t\"zaaktype\": \"{{zaaktype_procestermijn_vast_te_leggen_datum_url}}\",\n \"specificatie\": {\n \"formaat\": \"datum\",\n \"lengte\": \"8\",\n \"kardinaliteit\": \"1\",\n\n }\n}" + }, + "url": { + "raw": "{{ztc_url}}/eigenschappen", + "host": [ + "{{ztc_url}}" + ], + "path": [ + "eigenschappen" + ] + } + }, + "response": [] + }, + { + "name": "Publish Zaaktype procestermijn vast_te_leggen_datum", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "pm.environment.set(\"archiving_zaaktypen\", [", + " pm.environment.get(\"zaaktype_procestermijn_nihil_url\"),", + " pm.environment.get(\"zaaktype_procestermijn_ingeschatte_bestaansduur_object_url\"),", + " pm.environment.get(\"zaaktype_procestermijn_vast_te_leggen_datum_url\")", + "]);" + ], + "type": "text/javascript" + } + }, + { + "listen": "prerequest", + "script": { + "exec": [ + "" + ], + "type": "text/javascript" + } + } + ], + "request": { + "method": "POST", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "" + }, + "url": { + "raw": "{{zaaktype_procestermijn_vast_te_leggen_datum_url}}/publish", + "host": [ + "{{zaaktype_procestermijn_vast_te_leggen_datum_url}}" + ], + "path": [ + "publish" + ] + } + }, + "response": [] + }, + { + "name": "Create Zaak without archiefnominatie", + "event": [ + { + "listen": "prerequest", + "script": { + "exec": [ + "" + ], + "type": "text/javascript", + "packages": {} + } + }, + { + "listen": "test", + "script": { + "exec": [ + "pm.environment.set(\"zaak_zonder_archiefnominatie_url\", pm.response.json().url);" + ], + "type": "text/javascript", + "packages": {} + } + } + ], + "request": { + "method": "POST", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Accept-Crs", + "value": "EPSG:4326" + }, + { + "key": "Content-Crs", + "value": "EPSG:4326" + } + ], + "body": { + "mode": "raw", + "raw": "{\r\n \"bronorganisatie\": \"000000000\",\r\n \"omschrijving\": \"string\",\r\n \"toelichting\": \"string\",\r\n \"zaaktype\": \"{{zaaktype_procestermijn_vast_te_leggen_datum_url}}\",\r\n \"registratiedatum\": \"2019-04-09\",\r\n \"verantwoordelijkeOrganisatie\": \"000000000\",\r\n \"startdatum\": \"2019-04-09\",\r\n \"einddatum\": null,\r\n \"einddatumGepland\": \"2019-04-20\",\r\n \"uiterlijkeEinddatumAfdoening\": \"2019-04-09\",\r\n \"publicatiedatum\": \"2019-04-09\",\r\n \"communicatiekanaal\": \"\",\r\n \"productenOfDiensten\": [],\r\n \"vertrouwelijkheidaanduiding\": \"geheim\",\r\n \"betalingsindicatie\": \"geheel\",\r\n \"betalingsindicatieWeergave\": null,\r\n \"laatsteBetaaldatum\": \"2019-01-01T00:00:00Z\",\r\n \"zaakgeometrie\": {\r\n \"type\": \"Point\",\r\n \"coordinates\": [\r\n 53.0,\r\n 5.0\r\n ]\r\n },\r\n \"verlenging\": null,\r\n \"opschorting\": null,\r\n \"selectielijstklasse\": \"https://referentielijsten.roxit.nl/api/v1/resultaten/0fe71ce3-b1e1-48eb-9070-be2756fc71b5\",\r\n \"hoofdzaak\": null,\r\n \"deelzaken\": [],\r\n \"relevanteAndereZaken\": [],\r\n \"eigenschappen\": [],\r\n \"rollen\": [],\r\n \"status\": null,\r\n \"zaakinformatieobjecten\": [],\r\n \"zaakobjecten\": [],\r\n \"resultaat\": null,\r\n \"kenmerken\": [],\r\n \"archiefnominatie\": null,\r\n \"archiefstatus\": \"nog_te_archiveren\",\r\n \"archiefactiedatum\": null,\r\n \"opdrachtgevendeOrganisatie\": null,\r\n \"processobjectaard\": null,\r\n \"startdatumBewaartermijn\": null,\r\n \"processobject\": null\r\n}" + }, + "url": { + "raw": "{{zrc_url}}/zaken", + "host": [ + "{{zrc_url}}" + ], + "path": [ + "zaken" + ] + } + }, + "response": [] + }, + { + "name": "Add Eigenschap to Zaak without archiefnominatie", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "pm.environment.set(\"eigenschap_waarde\", pm.response.json().waarde);" + ], + "type": "text/javascript", + "packages": {} + } + } + ], + "request": { + "method": "POST", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n\t\"zaak\": \"{{zaak_zonder_archiefnominatie_url}}\",\n\t\"eigenschap\": \"{{archivering_eigenschap_url}}\",\n\t\"waarde\": \"20230101\"\n}" + }, + "url": { + "raw": "{{zaak_zonder_archiefnominatie_url}}/zaakeigenschappen", + "host": [ + "{{zaak_zonder_archiefnominatie_url}}" + ], + "path": [ + "zaakeigenschappen" + ] + } + }, + "response": [] + }, + { + "name": "Add Resultaat to Zaak", + "event": [ + { + "listen": "prerequest", + "script": { + "exec": [ + "// if (!pm.environment.get(\"resultaattype_index\")) {", + "// pm.environment.set(\"resultaattype_index\", 0);", + "// }", + "", + "// pm.environment.set(\"current_resultaattype\", pm.environment.get(\"zaaktype_resultaattypen\")[pm.environment.get(\"resultaattype_index\")])" + ], + "type": "text/javascript" + } + }, + { + "listen": "test", + "script": { + "exec": [ + "pm.environment.set(\"zaak_resultaat_url\", pm.response.json().url);" + ], + "type": "text/javascript" + } + } + ], + "request": { + "method": "POST", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n\t\"zaak\": \"{{zaak_zonder_archiefnominatie_url}}\",\n\t\"resultaattype\": \"{{current_resultaattype}}\"\n}" + }, + "url": { + "raw": "{{zrc_url}}/resultaten", + "host": [ + "{{zrc_url}}" + ], + "path": [ + "resultaten" + ] + } + }, + "response": [] + }, + { + "name": "Add Eindstatus to Zaak without archiefnominatie", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "" + ], + "type": "text/javascript" + } + }, + { + "listen": "prerequest", + "script": { + "exec": [ + "" + ], + "type": "text/javascript" + } + } + ], + "request": { + "method": "POST", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n\t\"zaak\": \"{{zaak_zonder_archiefnominatie_url}}\",\n\t\"statustype\": \"{{current_statustype_url}}\",\n\t\"datumStatusGezet\": \"2018-04-26T13:37:00\"\n}" + }, + "url": { + "raw": "{{zrc_url}}/statussen", + "host": [ + "{{zrc_url}}" + ], + "path": [ + "statussen" + ] + } + }, + "response": [] + }, + { + "name": "(zrc-021c) Afleidingswijze eigenschap", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "var moment = require('moment');", + "", + "pm.test(\"Resultaat toevoegen aan Zaak zonder archiefnominatie betekent dat archiefnominatie afgeleid wordt uit Resultaattype\", function() {", + " pm.response.to.have.status(200);", + " pm.expect(pm.response.json().archiefnominatie).to.be.equal(pm.environment.get(\"resultaattype_archiefnominatie\"));", + "});", + "", + "pm.test(\"Resultaat met afleidingswijze eigenschap toevoegen aan Zaak zet correcte Zaak.archiefdatum\", function() {", + " var jsonData = pm.response.json();", + " ", + " if (pm.environment.get(\"resultaattype_archiefactietermijn\")) {", + " const brondatum = moment.utc(pm.environment.get(\"eigenschap_waarde\"));", + " const archiefactietermijn = moment.duration(pm.environment.get(\"resultaattype_archiefactietermijn\"), 'years');", + " var calculated_archiefactiedatum = brondatum.add(archiefactietermijn);", + " ", + " pm.expect(jsonData.archiefactiedatum).to.be.equal(calculated_archiefactiedatum.format(\"YYYY-MM-DD\")); ", + " }", + "});" + ], + "type": "text/javascript" + } + }, + { + "listen": "prerequest", + "script": { + "exec": [ + "" + ], + "type": "text/javascript" + } + } + ], + "request": { + "method": "GET", + "header": [ + { + "key": "Accept-Crs", + "value": "EPSG:4326" + } + ], + "url": { + "raw": "{{zaak_zonder_archiefnominatie_url}}", + "host": [ + "{{zaak_zonder_archiefnominatie_url}}" + ] + } + }, + "response": [] + } + ], + "event": [ + { + "listen": "prerequest", + "script": { + "type": "text/javascript", + "exec": [ + "" + ] + } + }, + { + "listen": "test", + "script": { + "type": "text/javascript", + "exec": [ + "" + ] + } + } + ] + }, + { + "name": "zrc-021d", + "item": [ + { + "name": "Create concept Besluittype", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "pm.environment.set(\"besluittype_omschrijving\", pm.response.json().omschrijving);\r", + "pm.environment.set(\"concept_besluittype_url\", pm.response.json().url);" + ], + "type": "text/javascript", + "packages": {} + } + }, + { + "listen": "prerequest", + "script": { + "exec": [ + "var uuid = require('uuid');\r", + "var myUUID = uuid.v4(); \r", + "pm.environment.set(\"random_omschrijving\",myUUID);" + ], + "type": "text/javascript", + "packages": {} + } + } + ], + "request": { + "method": "POST", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n \"catalogus\": \"{{catalogus_url}}\",\n \"omschrijving\": \"{{random_omschrijving}}\",\n \"zaaktypen\": [],\n\t\"publicatieIndicatie\": false,\n\t\"informatieobjecttypen\": [],\n\t\"beginGeldigheid\": \"2019-01-01\"\n}" + }, + "url": { + "raw": "{{ztc_url}}/besluittypen", + "host": [ + "{{ztc_url}}" + ], + "path": [ + "besluittypen" + ] + } + }, + "response": [] + }, + { + "name": "Create Zaaktype procestermijn vast_te_leggen_datum", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "var res = pm.response.json();", + "pm.environment.set(\"zaaktype_procestermijn_vast_te_leggen_datum_url\", res.url);" + ], + "type": "text/javascript", + "packages": {} + } + }, + { + "listen": "prerequest", + "script": { + "exec": [ + "var uuid = require('uuid');", + "var myUUID = uuid.v4(); ", + "pm.environment.set(\"random_identificatie\",myUUID);", + "", + "", + "" + ], + "type": "text/javascript", + "packages": {} + } + } + ], + "request": { + "method": "POST", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\r\n\r\n \"identificatie\": \"{{random_identificatie}}\",\r\n \"omschrijving\": \"Zaaktype for archiving tests vast_te_leggen_datum\",\r\n \"omschrijvingGeneriek\": null,\r\n \"vertrouwelijkheidaanduiding\": \"openbaar\",\r\n \"doel\": \"test doel\",\r\n \"aanleiding\": \"test aanleiding\",\r\n \"toelichting\": null,\r\n \"indicatieInternOfExtern\": \"extern\",\r\n \"handelingInitiator\": \"indienen\",\r\n \"onderwerp\": \"openbare ruimte\",\r\n \"handelingBehandelaar\": \"behandelen\",\r\n \"doorlooptijd\": \"P10D\",\r\n \"servicenorm\": null,\r\n \"opschortingEnAanhoudingMogelijk\": false,\r\n \"verlengingMogelijk\": true,\r\n \"verlengingstermijn\": \"P5D\",\r\n \"trefwoorden\": [],\r\n \"publicatieIndicatie\": false,\r\n \"publicatietekst\": null,\r\n \"verantwoordingsrelatie\": [],\r\n \"productenOfDiensten\": [\r\n \"https://ref.tst.vng.cloud/standaard/\"\r\n ],\r\n \"selectielijstProcestype\": \"{{procestype_procestermijn_vast_te_leggen_datum_url}}\",\r\n \"referentieproces\": {\r\n \"naam\": \"test\",\r\n \"link\": \"\"\r\n },\r\n \"verantwoordelijke\": \"X\",\r\n \"zaakobjecttypen\": [],\r\n \"broncatalogus\": null,\r\n \"bronzaaktype\": null,\r\n \"catalogus\": \"{{catalogus_url}}\",\r\n \"statustypen\": [],\r\n \"resultaattypen\": [],\r\n \"eigenschappen\": [],\r\n \"informatieobjecttypen\": [],\r\n \"roltypen\": [],\r\n \"besluittypen\": [\"{{besluittype_omschrijving}}\"],\r\n \"deelzaaktypen\": [\r\n \r\n ],\r\n \"gerelateerdeZaaktypen\": [],\r\n \"concept\": true,\r\n \"beginGeldigheid\": \"2019-01-01\",\r\n \"eindeGeldigheid\": null,\r\n \"beginObject\": null,\r\n \"eindeObject\": null,\r\n \"versiedatum\": \"2019-01-01\"\r\n}" + }, + "url": { + "raw": "{{ztc_url}}/zaaktypen", + "host": [ + "{{ztc_url}}" + ], + "path": [ + "zaaktypen" + ] + } + }, + "response": [] + }, + { + "name": "Create Resultaattype afleidingswijze ingangsdatum_besluit", + "event": [ + { + "listen": "prerequest", + "script": { + "exec": [ + "" + ], + "type": "text/javascript", + "packages": {} + } + }, + { + "listen": "test", + "script": { + "exec": [ + "var jsonData = pm.response.json();", + "", + "pm.environment.set(\"current_resultaattype\", jsonData.url);", + "pm.environment.set(\"resultaattype_archiefnominatie\", jsonData.archiefnominatie);", + "pm.environment.set(\"resultaattype_archiefactietermijn\", jsonData.archiefactietermijn);", + "pm.environment.set(\"resultaattype_brondatumArchiefprocedure\", jsonData.brondatumArchiefprocedure);" + ], + "type": "text/javascript", + "packages": {} + } + } + ], + "request": { + "method": "POST", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n\t\"zaaktype\": \"{{zaaktype_procestermijn_vast_te_leggen_datum_url}}\",\n\t\"omschrijving\": \"TEST\",\n\t\"resultaattypeomschrijving\": \"https://referentielijsten.roxit.nl/api/v1/resultaattypeomschrijvingen/bae947e7-02b5-44f9-ab76-28c7a0ed01c0\",\n\t\"selectielijstklasse\": \"{{selectielijstklasse_procestermijn_vast_te_leggen_datum_url}}\",\n \"besluittypen\": [],\n\t\"brondatumArchiefprocedure\": {\n\t\t\"afleidingswijze\": \"ingangsdatum_besluit\",\n\t\t\"procestermijn\": null,\n\t\t\"datumkenmerk\": \"\",\n\t\t\"einddatumBekend\": true,\n\t\t\"objecttype\": \"\",\n\t\t\"registratie\": \"\"\n\t}\n}" + }, + "url": { + "raw": "{{ztc_url}}/resultaattypen", + "host": [ + "{{ztc_url}}" + ], + "path": [ + "resultaattypen" + ] + } + }, + "response": [] + }, + { + "name": "Create eind Statustype procestermijn vast_te_leggen_datum", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "pm.environment.set(\"current_statustype_url\", pm.response.json().url);" + ], + "type": "text/javascript" + } + } + ], + "request": { + "method": "POST", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n\t\"omschrijving\": \"Eind\",\n\t\"zaaktype\": \"{{zaaktype_procestermijn_vast_te_leggen_datum_url}}\",\n\t\"volgnummer\": 2\n}" + }, + "url": { + "raw": "{{ztc_url}}/statustypen", + "host": [ + "{{ztc_url}}" + ], + "path": [ + "statustypen" + ] + } + }, + "response": [] + }, + { + "name": "Publish concept Besluittype", + "request": { + "method": "POST", + "header": [], + "url": { + "raw": "{{concept_besluittype_url}}/publish", + "host": [ + "{{concept_besluittype_url}}" + ], + "path": [ + "publish" + ] + } + }, + "response": [] + }, + { + "name": "Publish Zaaktype procestermijn vast_te_leggen_datum", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "pm.environment.set(\"archiving_zaaktypen\", [", + " pm.environment.get(\"zaaktype_procestermijn_nihil_url\"),", + " pm.environment.get(\"zaaktype_procestermijn_ingeschatte_bestaansduur_object_url\"),", + " pm.environment.get(\"zaaktype_procestermijn_vast_te_leggen_datum_url\")", + "]);" + ], + "type": "text/javascript" + } + }, + { + "listen": "prerequest", + "script": { + "exec": [ + "" + ], + "type": "text/javascript" + } + } + ], + "request": { + "method": "POST", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "" + }, + "url": { + "raw": "{{zaaktype_procestermijn_vast_te_leggen_datum_url}}/publish", + "host": [ + "{{zaaktype_procestermijn_vast_te_leggen_datum_url}}" + ], + "path": [ + "publish" + ] + } + }, + "response": [] + }, + { + "name": "Create Zaak without archiefnominatie", + "event": [ + { + "listen": "prerequest", + "script": { + "exec": [ + "" + ], + "type": "text/javascript", + "packages": {} + } + }, + { + "listen": "test", + "script": { + "exec": [ + "pm.environment.set(\"zaak_zonder_archiefnominatie_url\", pm.response.json().url);" + ], + "type": "text/javascript", + "packages": {} + } + } + ], + "request": { + "method": "POST", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Accept-Crs", + "value": "EPSG:4326" + }, + { + "key": "Content-Crs", + "value": "EPSG:4326" + } + ], + "body": { + "mode": "raw", + "raw": "{\r\n \"bronorganisatie\": \"000000000\",\r\n \"omschrijving\": \"string\",\r\n \"toelichting\": \"string\",\r\n \"zaaktype\": \"{{zaaktype_procestermijn_vast_te_leggen_datum_url}}\",\r\n \"registratiedatum\": \"2019-04-09\",\r\n \"verantwoordelijkeOrganisatie\": \"000000000\",\r\n \"startdatum\": \"2019-04-09\",\r\n \"einddatum\": null,\r\n \"einddatumGepland\": \"2019-04-20\",\r\n \"uiterlijkeEinddatumAfdoening\": \"2019-04-09\",\r\n \"publicatiedatum\": \"2019-04-09\",\r\n \"communicatiekanaal\": \"\",\r\n \"productenOfDiensten\": [],\r\n \"vertrouwelijkheidaanduiding\": \"geheim\",\r\n \"betalingsindicatie\": \"geheel\",\r\n \"betalingsindicatieWeergave\": null,\r\n \"laatsteBetaaldatum\": \"2019-01-01T00:00:00Z\",\r\n \"zaakgeometrie\": {\r\n \"type\": \"Point\",\r\n \"coordinates\": [\r\n 53.0,\r\n 5.0\r\n ]\r\n },\r\n \"verlenging\": null,\r\n \"opschorting\": null,\r\n \"selectielijstklasse\": \"https://referentielijsten.roxit.nl/api/v1/resultaten/0fe71ce3-b1e1-48eb-9070-be2756fc71b5\",\r\n \"hoofdzaak\": null,\r\n \"deelzaken\": [],\r\n \"relevanteAndereZaken\": [],\r\n \"eigenschappen\": [],\r\n \"rollen\": [],\r\n \"status\": null,\r\n \"zaakinformatieobjecten\": [],\r\n \"zaakobjecten\": [],\r\n \"resultaat\": null,\r\n \"kenmerken\": [],\r\n \"archiefnominatie\": null,\r\n \"archiefstatus\": \"nog_te_archiveren\",\r\n \"archiefactiedatum\": null,\r\n \"opdrachtgevendeOrganisatie\": null,\r\n \"processobjectaard\": null,\r\n \"startdatumBewaartermijn\": null,\r\n \"processobject\": null\r\n}" + }, + "url": { + "raw": "{{zrc_url}}/zaken", + "host": [ + "{{zrc_url}}" + ], + "path": [ + "zaken" + ] + } + }, + "response": [] + }, + { + "name": "besluit", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "var besluit = pm.response.json();", + "pm.environment.set(\"besluit_url\", besluit.url);", + "" + ], + "type": "text/javascript", + "packages": {} + } + } + ], + "request": { + "method": "POST", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n \"verantwoordelijkeOrganisatie\": \"000000000\",\n \"besluittype\": \"{{concept_besluittype_url}}\",\n \"zaak\": \"{{zaak_zonder_archiefnominatie_url}}\",\n \"datum\": \"2019-01-01\",\n \"ingangsdatum\": \"2018-11-11\"\n}" + }, + "url": { + "raw": "{{brc_url}}/besluiten", + "host": [ + "{{brc_url}}" + ], + "path": [ + "besluiten" + ] + } + }, + "response": [] + }, + { + "name": "Add Resultaat to Zaak", + "event": [ + { + "listen": "prerequest", + "script": { + "exec": [ + "// if (!pm.environment.get(\"resultaattype_index\")) {", + "// pm.environment.set(\"resultaattype_index\", 0);", + "// }", + "", + "// pm.environment.set(\"current_resultaattype\", pm.environment.get(\"zaaktype_resultaattypen\")[pm.environment.get(\"resultaattype_index\")])" + ], + "type": "text/javascript" + } + }, + { + "listen": "test", + "script": { + "exec": [ + "pm.environment.set(\"zaak_resultaat_url\", pm.response.json().url);" + ], + "type": "text/javascript" + } + } + ], + "request": { + "method": "POST", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n\t\"zaak\": \"{{zaak_zonder_archiefnominatie_url}}\",\n\t\"resultaattype\": \"{{current_resultaattype}}\"\n}" + }, + "url": { + "raw": "{{zrc_url}}/resultaten", + "host": [ + "{{zrc_url}}" + ], + "path": [ + "resultaten" + ] + } + }, + "response": [] + }, + { + "name": "Add Eindstatus to Zaak without archiefnominatie", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "" + ], + "type": "text/javascript" + } + }, + { + "listen": "prerequest", + "script": { + "exec": [ + "" + ], + "type": "text/javascript" + } + } + ], + "request": { + "method": "POST", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n\t\"zaak\": \"{{zaak_zonder_archiefnominatie_url}}\",\n\t\"statustype\": \"{{current_statustype_url}}\",\n\t\"datumStatusGezet\": \"2018-04-26T13:37:00\"\n}" + }, + "url": { + "raw": "{{zrc_url}}/statussen", + "host": [ + "{{zrc_url}}" + ], + "path": [ + "statussen" + ] + } + }, + "response": [] + }, + { + "name": "(zrc-021d) Afleidingswijze ingangsdatum besluit", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "pm.test(\"zrc-021d afleidingswijze ingangsdatum besluit\", function() {", + " pm.expect(pm.response.json().archiefactiedatum).to.be.equal(\"2023-11-11\");", + "});" + ], + "type": "text/javascript", + "packages": {} + } + }, + { + "listen": "prerequest", + "script": { + "exec": [ + "" + ], + "type": "text/javascript", + "packages": {} + } + } + ], + "request": { + "method": "GET", + "header": [ + { + "key": "Accept-Crs", + "value": "EPSG:4326" + } + ], + "url": { + "raw": "{{zaak_zonder_archiefnominatie_url}}", + "host": [ + "{{zaak_zonder_archiefnominatie_url}}" + ] + } + }, + "response": [] + } + ], + "event": [ + { + "listen": "prerequest", + "script": { + "type": "text/javascript", + "exec": [ + "" + ] + } + }, + { + "listen": "test", + "script": { + "type": "text/javascript", + "exec": [ + "" + ] + } + } + ] + }, + { + "name": "zrc-021e", + "item": [ + { + "name": "Create concept Besluittype", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "pm.environment.set(\"besluittype_omschrijving\", pm.response.json().omschrijving);\r", + "pm.environment.set(\"concept_besluittype_url\", pm.response.json().url);" + ], + "type": "text/javascript", + "packages": {} + } + }, + { + "listen": "prerequest", + "script": { + "exec": [ + "var uuid = require('uuid');\r", + "var myUUID = uuid.v4(); \r", + "pm.environment.set(\"random_omschrijving\",myUUID);" + ], + "type": "text/javascript", + "packages": {} + } + } + ], + "request": { + "method": "POST", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n \"catalogus\": \"{{catalogus_url}}\",\n \"omschrijving\": \"{{random_omschrijving}}\",\n \"zaaktypen\": [],\n\t\"publicatieIndicatie\": false,\n\t\"informatieobjecttypen\": [],\n\t\"beginGeldigheid\": \"2019-01-01\"\n}" + }, + "url": { + "raw": "{{ztc_url}}/besluittypen", + "host": [ + "{{ztc_url}}" + ], + "path": [ + "besluittypen" + ] + } + }, + "response": [] + }, + { + "name": "Create Zaaktype procestermijn vast_te_leggen_datum", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "var res = pm.response.json();", + "pm.environment.set(\"zaaktype_procestermijn_vast_te_leggen_datum_url\", res.url);" + ], + "type": "text/javascript", + "packages": {} + } + }, + { + "listen": "prerequest", + "script": { + "exec": [ + "var uuid = require('uuid');", + "var myUUID = uuid.v4(); ", + "pm.environment.set(\"random_identificatie\",myUUID);", + "", + "", + "" + ], + "type": "text/javascript", + "packages": {} + } + } + ], + "request": { + "method": "POST", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\r\n\r\n \"identificatie\": \"{{random_identificatie}}\",\r\n \"omschrijving\": \"Zaaktype for archiving tests vast_te_leggen_datum\",\r\n \"omschrijvingGeneriek\": null,\r\n \"vertrouwelijkheidaanduiding\": \"openbaar\",\r\n \"doel\": \"test doel\",\r\n \"aanleiding\": \"test aanleiding\",\r\n \"toelichting\": null,\r\n \"indicatieInternOfExtern\": \"extern\",\r\n \"handelingInitiator\": \"indienen\",\r\n \"onderwerp\": \"openbare ruimte\",\r\n \"handelingBehandelaar\": \"behandelen\",\r\n \"doorlooptijd\": \"P10D\",\r\n \"servicenorm\": null,\r\n \"opschortingEnAanhoudingMogelijk\": false,\r\n \"verlengingMogelijk\": true,\r\n \"verlengingstermijn\": \"P5D\",\r\n \"trefwoorden\": [],\r\n \"publicatieIndicatie\": false,\r\n \"publicatietekst\": null,\r\n \"verantwoordingsrelatie\": [],\r\n \"productenOfDiensten\": [\r\n \"https://ref.tst.vng.cloud/standaard/\"\r\n ],\r\n \"selectielijstProcestype\": \"{{procestype_procestermijn_vast_te_leggen_datum_url}}\",\r\n \"referentieproces\": {\r\n \"naam\": \"test\",\r\n \"link\": \"\"\r\n },\r\n \"verantwoordelijke\": \"X\",\r\n \"zaakobjecttypen\": [],\r\n \"broncatalogus\": null,\r\n \"bronzaaktype\": null,\r\n \"catalogus\": \"{{catalogus_url}}\",\r\n \"statustypen\": [],\r\n \"resultaattypen\": [],\r\n \"eigenschappen\": [],\r\n \"informatieobjecttypen\": [],\r\n \"roltypen\": [],\r\n \"besluittypen\": [\"{{besluittype_omschrijving}}\"],\r\n \"deelzaaktypen\": [\r\n \r\n ],\r\n \"gerelateerdeZaaktypen\": [],\r\n \"concept\": true,\r\n \"beginGeldigheid\": \"2019-01-01\",\r\n \"eindeGeldigheid\": null,\r\n \"beginObject\": null,\r\n \"eindeObject\": null,\r\n \"versiedatum\": \"2019-01-01\"\r\n}" + }, + "url": { + "raw": "{{ztc_url}}/zaaktypen", + "host": [ + "{{ztc_url}}" + ], + "path": [ + "zaaktypen" + ] + } + }, + "response": [] + }, + { + "name": "Create Resultaattype afleidingswijze vervaldatum_besluit", + "event": [ + { + "listen": "prerequest", + "script": { + "exec": [ + "" + ], + "type": "text/javascript", + "packages": {} + } + }, + { + "listen": "test", + "script": { + "exec": [ + "var jsonData = pm.response.json();", + "", + "pm.environment.set(\"current_resultaattype\", jsonData.url);", + "pm.environment.set(\"resultaattype_archiefnominatie\", jsonData.archiefnominatie);", + "pm.environment.set(\"resultaattype_archiefactietermijn\", jsonData.archiefactietermijn);", + "pm.environment.set(\"resultaattype_brondatumArchiefprocedure\", jsonData.brondatumArchiefprocedure);" + ], + "type": "text/javascript", + "packages": {} + } + } + ], + "request": { + "method": "POST", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n\t\"zaaktype\": \"{{zaaktype_procestermijn_vast_te_leggen_datum_url}}\",\n\t\"omschrijving\": \"TEST\",\n\t\"resultaattypeomschrijving\": \"https://referentielijsten.roxit.nl/api/v1/resultaattypeomschrijvingen/bae947e7-02b5-44f9-ab76-28c7a0ed01c0\",\n\t\"selectielijstklasse\": \"{{selectielijstklasse_procestermijn_vast_te_leggen_datum_url}}\",\n \"besluittypen\": [],\n\t\"brondatumArchiefprocedure\": {\n\t\t\"afleidingswijze\": \"vervaldatum_besluit\",\n\t\t\"procestermijn\": null,\n\t\t\"datumkenmerk\": \"\",\n\t\t\"einddatumBekend\": true,\n\t\t\"objecttype\": \"\",\n\t\t\"registratie\": \"\"\n\t}\n}" + }, + "url": { + "raw": "{{ztc_url}}/resultaattypen", + "host": [ + "{{ztc_url}}" + ], + "path": [ + "resultaattypen" + ] + } + }, + "response": [] + }, + { + "name": "Create eind Statustype procestermijn vast_te_leggen_datum", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "pm.environment.set(\"current_statustype_url\", pm.response.json().url);" + ], + "type": "text/javascript" + } + } + ], + "request": { + "method": "POST", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n\t\"omschrijving\": \"Eind\",\n\t\"zaaktype\": \"{{zaaktype_procestermijn_vast_te_leggen_datum_url}}\",\n\t\"volgnummer\": 2\n}" + }, + "url": { + "raw": "{{ztc_url}}/statustypen", + "host": [ + "{{ztc_url}}" + ], + "path": [ + "statustypen" + ] + } + }, + "response": [] + }, + { + "name": "Publish concept Besluittype", + "request": { + "method": "POST", + "header": [], + "url": { + "raw": "{{concept_besluittype_url}}/publish", + "host": [ + "{{concept_besluittype_url}}" + ], + "path": [ + "publish" + ] + } + }, + "response": [] + }, + { + "name": "Publish Zaaktype procestermijn vast_te_leggen_datum", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "pm.environment.set(\"archiving_zaaktypen\", [", + " pm.environment.get(\"zaaktype_procestermijn_nihil_url\"),", + " pm.environment.get(\"zaaktype_procestermijn_ingeschatte_bestaansduur_object_url\"),", + " pm.environment.get(\"zaaktype_procestermijn_vast_te_leggen_datum_url\")", + "]);" + ], + "type": "text/javascript" + } + }, + { + "listen": "prerequest", + "script": { + "exec": [ + "" + ], + "type": "text/javascript" + } + } + ], + "request": { + "method": "POST", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "" + }, + "url": { + "raw": "{{zaaktype_procestermijn_vast_te_leggen_datum_url}}/publish", + "host": [ + "{{zaaktype_procestermijn_vast_te_leggen_datum_url}}" + ], + "path": [ + "publish" + ] + } + }, + "response": [] + }, + { + "name": "Create Zaak without archiefnominatie", + "event": [ + { + "listen": "prerequest", + "script": { + "exec": [ + "" + ], + "type": "text/javascript", + "packages": {} + } + }, + { + "listen": "test", + "script": { + "exec": [ + "pm.environment.set(\"zaak_zonder_archiefnominatie_url\", pm.response.json().url);" + ], + "type": "text/javascript", + "packages": {} + } + } + ], + "request": { + "method": "POST", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Accept-Crs", + "value": "EPSG:4326" + }, + { + "key": "Content-Crs", + "value": "EPSG:4326" + } + ], + "body": { + "mode": "raw", + "raw": "{\r\n \"bronorganisatie\": \"000000000\",\r\n \"omschrijving\": \"string\",\r\n \"toelichting\": \"string\",\r\n \"zaaktype\": \"{{zaaktype_procestermijn_vast_te_leggen_datum_url}}\",\r\n \"registratiedatum\": \"2019-04-09\",\r\n \"verantwoordelijkeOrganisatie\": \"000000000\",\r\n \"startdatum\": \"2019-04-09\",\r\n \"einddatum\": null,\r\n \"einddatumGepland\": \"2019-04-20\",\r\n \"uiterlijkeEinddatumAfdoening\": \"2019-04-09\",\r\n \"publicatiedatum\": \"2019-04-09\",\r\n \"communicatiekanaal\": \"\",\r\n \"productenOfDiensten\": [],\r\n \"vertrouwelijkheidaanduiding\": \"geheim\",\r\n \"betalingsindicatie\": \"geheel\",\r\n \"betalingsindicatieWeergave\": null,\r\n \"laatsteBetaaldatum\": \"2019-01-01T00:00:00Z\",\r\n \"zaakgeometrie\": {\r\n \"type\": \"Point\",\r\n \"coordinates\": [\r\n 53.0,\r\n 5.0\r\n ]\r\n },\r\n \"verlenging\": null,\r\n \"opschorting\": null,\r\n \"selectielijstklasse\": \"https://referentielijsten.roxit.nl/api/v1/resultaten/0fe71ce3-b1e1-48eb-9070-be2756fc71b5\",\r\n \"hoofdzaak\": null,\r\n \"deelzaken\": [],\r\n \"relevanteAndereZaken\": [],\r\n \"eigenschappen\": [],\r\n \"rollen\": [],\r\n \"status\": null,\r\n \"zaakinformatieobjecten\": [],\r\n \"zaakobjecten\": [],\r\n \"resultaat\": null,\r\n \"kenmerken\": [],\r\n \"archiefnominatie\": null,\r\n \"archiefstatus\": \"nog_te_archiveren\",\r\n \"archiefactiedatum\": null,\r\n \"opdrachtgevendeOrganisatie\": null,\r\n \"processobjectaard\": null,\r\n \"startdatumBewaartermijn\": null,\r\n \"processobject\": null\r\n}" + }, + "url": { + "raw": "{{zrc_url}}/zaken", + "host": [ + "{{zrc_url}}" + ], + "path": [ + "zaken" + ] + } + }, + "response": [] + }, + { + "name": "besluit met eerdere datum", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "var besluit = pm.response.json();", + "pm.environment.set(\"besluit_url\", besluit.url);", + "" + ], + "type": "text/javascript", + "packages": {} + } + } + ], + "request": { + "method": "POST", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n \"verantwoordelijkeOrganisatie\": \"000000000\",\n \"besluittype\": \"{{concept_besluittype_url}}\",\n \"zaak\": \"{{zaak_zonder_archiefnominatie_url}}\",\n \"datum\": \"2019-01-01\",\n \"ingangsdatum\": \"2018-10-10\",\n \"vervaldatum\": \"2015-09-16\"\n}" + }, + "url": { + "raw": "{{brc_url}}/besluiten", + "host": [ + "{{brc_url}}" + ], + "path": [ + "besluiten" + ] + } + }, + "response": [] + }, + { + "name": "besluit", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "var besluit = pm.response.json();", + "pm.environment.set(\"besluit_url\", besluit.url);", + "" + ], + "type": "text/javascript", + "packages": {} + } + } + ], + "request": { + "method": "POST", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n \"verantwoordelijkeOrganisatie\": \"000000000\",\n \"besluittype\": \"{{concept_besluittype_url}}\",\n \"zaak\": \"{{zaak_zonder_archiefnominatie_url}}\",\n \"datum\": \"2019-01-01\",\n \"ingangsdatum\": \"2018-10-10\",\n \"vervaldatum\": \"2025-09-16\"\n}" + }, + "url": { + "raw": "{{brc_url}}/besluiten", + "host": [ + "{{brc_url}}" + ], + "path": [ + "besluiten" + ] + } + }, + "response": [] + }, + { + "name": "Add Resultaat to Zaak", + "event": [ + { + "listen": "prerequest", + "script": { + "exec": [ + "// if (!pm.environment.get(\"resultaattype_index\")) {", + "// pm.environment.set(\"resultaattype_index\", 0);", + "// }", + "", + "// pm.environment.set(\"current_resultaattype\", pm.environment.get(\"zaaktype_resultaattypen\")[pm.environment.get(\"resultaattype_index\")])" + ], + "type": "text/javascript" + } + }, + { + "listen": "test", + "script": { + "exec": [ + "pm.environment.set(\"zaak_resultaat_url\", pm.response.json().url);" + ], + "type": "text/javascript" + } + } + ], + "request": { + "method": "POST", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n\t\"zaak\": \"{{zaak_zonder_archiefnominatie_url}}\",\n\t\"resultaattype\": \"{{current_resultaattype}}\"\n}" + }, + "url": { + "raw": "{{zrc_url}}/resultaten", + "host": [ + "{{zrc_url}}" + ], + "path": [ + "resultaten" + ] + } + }, + "response": [] + }, + { + "name": "Add Eindstatus to Zaak without archiefnominatie", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "" + ], + "type": "text/javascript" + } + }, + { + "listen": "prerequest", + "script": { + "exec": [ + "" + ], + "type": "text/javascript" + } + } + ], + "request": { + "method": "POST", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n\t\"zaak\": \"{{zaak_zonder_archiefnominatie_url}}\",\n\t\"statustype\": \"{{current_statustype_url}}\",\n\t\"datumStatusGezet\": \"2018-04-26T13:37:00\"\n}" + }, + "url": { + "raw": "{{zrc_url}}/statussen", + "host": [ + "{{zrc_url}}" + ], + "path": [ + "statussen" + ] + } + }, + "response": [] + }, + { + "name": "(zrc-021e) Afleidingswijze vervaldatum_besluit", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "pm.test(\"zrc-021d afleidingswijze vervaldatum besluit\", function() {", + " pm.expect(pm.response.json().archiefactiedatum).to.be.equal(\"2030-09-16\");", + "});" + ], + "type": "text/javascript", + "packages": {} + } + }, + { + "listen": "prerequest", + "script": { + "exec": [ + "" + ], + "type": "text/javascript", + "packages": {} + } + } + ], + "request": { + "method": "GET", + "header": [ + { + "key": "Accept-Crs", + "value": "EPSG:4326" + } + ], + "url": { + "raw": "{{zaak_zonder_archiefnominatie_url}}", + "host": [ + "{{zaak_zonder_archiefnominatie_url}}" + ] + } + }, + "response": [] + } + ], + "event": [ + { + "listen": "prerequest", + "script": { + "type": "text/javascript", + "exec": [ + "" + ] + } + }, + { + "listen": "test", + "script": { + "type": "text/javascript", + "exec": [ + "" + ] + } + } + ] + }, + { + "name": "zrc-021g", + "item": [ + { + "name": "Create Zaaktype procestermijn vast_te_leggen_datum", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "var res = pm.response.json();", + "pm.environment.set(\"zaaktype_procestermijn_vast_te_leggen_datum_url\", res.url);" + ], + "type": "text/javascript" + } + }, + { + "listen": "prerequest", + "script": { + "exec": [ + "// Retrieve the Zaak body template and modify as needed", + "var body = JSON.parse(pm.environment.get(\"zaaktype_body\"));", + "body.besluittypen = [];", + "body.omschrijving = \"Zaaktype for archiving tests vast_te_leggen_datum\";", + "body.selectielijstProcestype = pm.environment.get(\"procestype_procestermijn_vast_te_leggen_datum_url\");", + "var uuid = require('uuid');", + "var myUUID = uuid.v4(); ", + "body.identificatie=myUUID", + "// Store the modified Zaak body, allowing it to be used in the main request", + "pm.environment.set(\"request_body\", JSON.stringify(body));" + ], + "type": "text/javascript" + } + } + ], + "request": { + "method": "POST", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{{request_body}}" + }, + "url": { + "raw": "{{ztc_url}}/zaaktypen", + "host": [ + "{{ztc_url}}" + ], + "path": [ + "zaaktypen" + ] + } + }, + "response": [] + }, + { + "name": "Create Resultaattype procestermijn vast_te_leggen_datum", + "event": [ + { + "listen": "prerequest", + "script": { + "exec": [ + "" + ], + "type": "text/javascript", + "packages": {} + } + }, + { + "listen": "test", + "script": { + "exec": [ + "var jsonData = pm.response.json();", + "", + "pm.environment.set(\"current_resultaattype\", jsonData.url);", + "pm.environment.set(\"resultaattype_archiefnominatie\", jsonData.archiefnominatie);", + "pm.environment.set(\"resultaattype_archiefactietermijn\", jsonData.archiefactietermijn);", + "pm.environment.set(\"resultaattype_brondatumArchiefprocedure\", jsonData.brondatumArchiefprocedure);" + ], + "type": "text/javascript", + "packages": {} + } + } + ], + "request": { + "method": "POST", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n\t\"zaaktype\": \"{{zaaktype_procestermijn_vast_te_leggen_datum_url}}\",\n\t\"omschrijving\": \"Test\",\n\t\"resultaattypeomschrijving\": \"https://referentielijsten.roxit.nl/api/v1/resultaattypeomschrijvingen/cad65ef5-6db5-404f-8c6b-8b76d7af40f5\",\n\t\"selectielijstklasse\": \"{{selectielijstklasse_procestermijn_vast_te_leggen_datum_url}}\",\n\t\"brondatumArchiefprocedure\": {\n\t\t\"afleidingswijze\": \"ander_datumkenmerk\",\n\t\t\"procestermijn\": null,\n\t\t\"datumkenmerk\": \"identificatie\",\n\t\t\"einddatumBekend\": false,\n\t\t\"objecttype\": \"pand\",\n\t\t\"registratie\": \"test\"\n\t},\"besluittypen\":[]\n}" + }, + "url": { + "raw": "{{ztc_url}}/resultaattypen", + "host": [ + "{{ztc_url}}" + ], + "path": [ + "resultaattypen" + ] + } + }, + "response": [] + }, + { + "name": "Create eind Statustype procestermijn vast_te_leggen_datum", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "pm.environment.set(\"current_statustype_url\", pm.response.json().url);" + ], + "type": "text/javascript" + } + } + ], + "request": { + "method": "POST", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n\t\"omschrijving\": \"Eind\",\n\t\"zaaktype\": \"{{zaaktype_procestermijn_vast_te_leggen_datum_url}}\",\n\t\"volgnummer\": 2\n}" + }, + "url": { + "raw": "{{ztc_url}}/statustypen", + "host": [ + "{{ztc_url}}" + ], + "path": [ + "statustypen" + ] + } + }, + "response": [] + }, + { + "name": "Publish Zaaktype procestermijn vast_te_leggen_datum", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "pm.environment.set(\"archiving_zaaktypen\", [", + " pm.environment.get(\"zaaktype_procestermijn_nihil_url\"),", + " pm.environment.get(\"zaaktype_procestermijn_ingeschatte_bestaansduur_object_url\"),", + " pm.environment.get(\"zaaktype_procestermijn_vast_te_leggen_datum_url\")", + "]);" + ], + "type": "text/javascript" + } + }, + { + "listen": "prerequest", + "script": { + "exec": [ + "" + ], + "type": "text/javascript" + } + } + ], + "request": { + "method": "POST", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "" + }, + "url": { + "raw": "{{zaaktype_procestermijn_vast_te_leggen_datum_url}}/publish", + "host": [ + "{{zaaktype_procestermijn_vast_te_leggen_datum_url}}" + ], + "path": [ + "publish" + ] + } + }, + "response": [] + }, + { + "name": "Create Zaak without archiefnominatie", + "event": [ + { + "listen": "prerequest", + "script": { + "exec": [ + "" + ], + "type": "text/javascript", + "packages": {} + } + }, + { + "listen": "test", + "script": { + "exec": [ + "pm.environment.set(\"zaak_zonder_archiefnominatie_url\", pm.response.json().url);" + ], + "type": "text/javascript", + "packages": {} + } + } + ], + "request": { + "method": "POST", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Accept-Crs", + "value": "EPSG:4326" + }, + { + "key": "Content-Crs", + "value": "EPSG:4326" + } + ], + "body": { + "mode": "raw", + "raw": "{\r\n \"bronorganisatie\": \"000000000\",\r\n \"omschrijving\": \"string\",\r\n \"toelichting\": \"string\",\r\n \"zaaktype\": \"{{zaaktype_procestermijn_vast_te_leggen_datum_url}}\",\r\n \"registratiedatum\": \"2019-04-09\",\r\n \"verantwoordelijkeOrganisatie\": \"000000000\",\r\n \"startdatum\": \"2019-04-09\",\r\n \"einddatum\": null,\r\n \"einddatumGepland\": \"2019-04-20\",\r\n \"uiterlijkeEinddatumAfdoening\": \"2019-04-09\",\r\n \"publicatiedatum\": \"2019-04-09\",\r\n \"communicatiekanaal\": \"\",\r\n \"productenOfDiensten\": [],\r\n \"vertrouwelijkheidaanduiding\": \"geheim\",\r\n \"betalingsindicatie\": \"geheel\",\r\n \"betalingsindicatieWeergave\": null,\r\n \"laatsteBetaaldatum\": \"2019-01-01T00:00:00Z\",\r\n \"zaakgeometrie\": {\r\n \"type\": \"Point\",\r\n \"coordinates\": [\r\n 53.0,\r\n 5.0\r\n ]\r\n },\r\n \"verlenging\": null,\r\n \"opschorting\": null,\r\n \"selectielijstklasse\": \"https://referentielijsten.roxit.nl/api/v1/resultaten/0fe71ce3-b1e1-48eb-9070-be2756fc71b5\",\r\n \"hoofdzaak\": null,\r\n \"deelzaken\": [],\r\n \"relevanteAndereZaken\": [],\r\n \"eigenschappen\": [],\r\n \"rollen\": [],\r\n \"status\": null,\r\n \"zaakinformatieobjecten\": [],\r\n \"zaakobjecten\": [],\r\n \"resultaat\": null,\r\n \"kenmerken\": [],\r\n \"archiefnominatie\": null,\r\n \"archiefstatus\": \"nog_te_archiveren\",\r\n \"archiefactiedatum\": null,\r\n \"opdrachtgevendeOrganisatie\": null,\r\n \"processobjectaard\": null,\r\n \"startdatumBewaartermijn\": null,\r\n \"processobject\": null\r\n}" + }, + "url": { + "raw": "{{zrc_url}}/zaken", + "host": [ + "{{zrc_url}}" + ], + "path": [ + "zaken" + ] + } + }, + "response": [] + }, + { + "name": "Add Resultaat to Zaak", + "event": [ + { + "listen": "prerequest", + "script": { + "exec": [ + "// if (!pm.environment.get(\"resultaattype_index\")) {", + "// pm.environment.set(\"resultaattype_index\", 0);", + "// }", + "", + "// pm.environment.set(\"current_resultaattype\", pm.environment.get(\"zaaktype_resultaattypen\")[pm.environment.get(\"resultaattype_index\")])" + ], + "type": "text/javascript" + } + }, + { + "listen": "test", + "script": { + "exec": [ + "pm.environment.set(\"zaak_resultaat_url\", pm.response.json().url);" + ], + "type": "text/javascript" + } + } + ], + "request": { + "method": "POST", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n\t\"zaak\": \"{{zaak_zonder_archiefnominatie_url}}\",\n\t\"resultaattype\": \"{{current_resultaattype}}\"\n}" + }, + "url": { + "raw": "{{zrc_url}}/resultaten", + "host": [ + "{{zrc_url}}" + ], + "path": [ + "resultaten" + ] + } + }, + "response": [] + }, + { + "name": "Add Eindstatus to Zaak without archiefnominatie", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "" + ], + "type": "text/javascript" + } + }, + { + "listen": "prerequest", + "script": { + "exec": [ + "" + ], + "type": "text/javascript" + } + } + ], + "request": { + "method": "POST", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n\t\"zaak\": \"{{zaak_zonder_archiefnominatie_url}}\",\n\t\"statustype\": \"{{current_statustype_url}}\",\n\t\"datumStatusGezet\": \"2018-04-26T13:37:00\"\n}" + }, + "url": { + "raw": "{{zrc_url}}/statussen", + "host": [ + "{{zrc_url}}" + ], + "path": [ + "statussen" + ] + } + }, + "response": [] + }, + { + "name": "(zrc-021g) Afleidingswijze ander_datumkenmerk", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "var moment = require('moment');", + "", + "pm.test(\"Resultaat toevoegen aan Zaak zonder archiefnominatie betekent dat archiefnominatie afgeleid wordt uit Resultaattype\", function() {", + " pm.response.to.have.status(200);", + " pm.expect(pm.response.json().archiefnominatie).to.be.equal(pm.environment.get(\"resultaattype_archiefnominatie\"));", + "});", + "", + "pm.test(\"Resultaat met afleidingswijze ander_datumkenmerk toevoegen aan Zaak zet correcte Zaak.archiefdatum\", function() {", + " var jsonData = pm.response.json();", + " ", + " if (pm.environment.get(\"resultaattype_archiefactietermijn\")) {", + " // const brondatum = moment.utc(jsonData.einddatum).add(procestermijn);", + " // TODO", + " const brondatum = null;", + " ", + " // const archiefactietermijn = moment.duration(pm.environment.get(\"resultaattype_archiefactietermijn\"), 'years');", + " // var calculated_archiefactiedatum = brondatum.add(archiefactietermijn);", + " ", + " // pm.expect(jsonData.archiefactiedatum).to.be.equal(calculated_archiefactiedatum.format(\"YYYY-MM-DD\")); ", + " pm.expect(jsonData.archiefactiedatum).to.be.equal(null);", + " }", + "});" + ], + "type": "text/javascript" + } + } + ], + "request": { + "method": "GET", + "header": [ + { + "key": "Accept-Crs", + "value": "EPSG:4326" + } + ], + "url": { + "raw": "{{zaak_zonder_archiefnominatie_url}}", + "host": [ + "{{zaak_zonder_archiefnominatie_url}}" + ] + } + }, + "response": [] + } + ], + "event": [ + { + "listen": "prerequest", + "script": { + "type": "text/javascript", + "exec": [ + "" + ] + } + }, + { + "listen": "test", + "script": { + "type": "text/javascript", + "exec": [ + "" + ] + } + } + ] + }, + { + "name": "zrc-021h TO DO datum object", + "item": [], + "event": [ + { + "listen": "prerequest", + "script": { + "type": "text/javascript", + "exec": [ + "" + ] + } + }, + { + "listen": "test", + "script": { + "type": "text/javascript", + "exec": [ + "" + ] + } + } + ] + }, + { + "name": "zrc-021i TO DO gerelateerde zaak", + "item": [], + "event": [ + { + "listen": "prerequest", + "script": { + "type": "text/javascript", + "exec": [ + "" + ] + } + }, + { + "listen": "test", + "script": { + "type": "text/javascript", + "exec": [ + "" + ] + } + } + ] + } + ] + }, + { + "name": "zrc-022", + "item": [ + { + "name": "Create InformatieObjecttype Copy 2", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "if(pm.response.code == 201) {\r", + " pm.environment.set(\"informatieobjecttype_url\", pm.response.json().url);\r", + "}" + ], + "type": "text/javascript", + "packages": {} + } + }, + { + "listen": "prerequest", + "script": { + "exec": [ + "var uuid = require('uuid');\r", + "var myUUID = uuid.v4(); \r", + "pm.environment.set(\"informatieobject_omschrijving\", myUUID);" + ], + "type": "text/javascript", + "packages": {} + } + } + ], + "request": { + "method": "POST", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n\t\"catalogus\": \"{{catalogus_url}}\",\n\t\"omschrijving\": \"{{informatieobject_omschrijving}}\",\n\t\"vertrouwelijkheidaanduiding\": \"openbaar\",\n\t\"beginGeldigheid\": \"2019-01-01\",\n\t\"informatieobjectcategorie\": \"document\"\n}" + }, + "url": { + "raw": "{{ztc_url}}/informatieobjecttypen", + "host": [ + "{{ztc_url}}" + ], + "path": [ + "informatieobjecttypen" + ] + } + }, + "response": [] + }, + { + "name": "Create Zaaktype Copy 2", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "if(pm.response.code == 201) {", + " var res = pm.response.json();", + "pm.environment.set(\"zaaktype_url\", res.url);", + "pm.environment.set(\"zaaktype_vertrouwelijkheid\", res.vertrouwelijkheidaanduiding);", + "pm.environment.set(\"zaaktype_productenOfDiensten\", res.productenOfDiensten);", + "pm.environment.set(\"zaaktype_resultaattypen\", res.resultaattypen);", + "pm.environment.set(\"zaaktype_eigenschap\", res.eigenschappen[0]);", + "pm.environment.set(\"zaaktype_body\", pm.request.body.raw);", + "}" + ], + "type": "text/javascript", + "packages": {} + } + }, + { + "listen": "prerequest", + "script": { + "exec": [ + "var uuid = require('uuid');", + "var myUUID = uuid.v4(); ", + "pm.environment.set(\"random_identificatie\", myUUID);", + "" + ], + "type": "text/javascript", + "packages": {} + } + } + ], + "request": { + "method": "POST", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n\t\"identificatie\": \"{{random_identificatie}}\",\n \"omschrijving\": \"zrc_tests_1\",\n \"vertrouwelijkheidaanduiding\": \"openbaar\",\n \"doel\": \"test doel\",\n \"verantwoordelijke\":\"X\",\n \"aanleiding\": \"test aanleiding\",\n \"indicatieInternOfExtern\": \"extern\",\n \"handelingInitiator\": \"indienen\",\n \"onderwerp\": \"openbare ruimte\",\n \"handelingBehandelaar\": \"behandelen\",\n \"doorlooptijd\": \"P10D\",\n \"opschortingEnAanhoudingMogelijk\": false,\n \"verlengingMogelijk\": true,\n \"publicatieIndicatie\": false,\n \"productenOfDiensten\": [\n \"https://ref.tst.vng.cloud/standaard/\"\n ],\n \"selectielijstProcestype\": \"{{procestype_procestermijn_nihil_url}}\",\n \"referentieproces\": {\n \"naam\": \"test\",\n \"link\": \"\"\n },\n \"deelzaaktypen\": [\n \"{{deelzaaktype_identificatie}}\"\n ],\n \"catalogus\": \"{{catalogus_url}}\",\n \"statustypen\": [\n \n ],\n \"resultaattypen\": [\n ],\n \"eigenschappen\": [\n ],\n \"informatieobjecttypen\": [],\n \"besluittypen\": [\n \"{{besluit_omschrijving}}\"\n ],\n \"gerelateerdeZaaktypen\": [],\n \"beginGeldigheid\": \"2019-01-01\",\n \"versiedatum\": \"2019-01-01\",\n \"concept\": true,\n \"verlengingstermijn\": \"P5D\"\n}" + }, + "url": { + "raw": "{{ztc_url}}/zaaktypen", + "host": [ + "{{ztc_url}}" + ], + "path": [ + "zaaktypen" + ] + } + }, + "response": [] + }, + { + "name": "Create Zaaktype-InformatieObjectType relation Copy 2", + "request": { + "method": "POST", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n\t\"zaaktype\": \"{{zaaktype_url}}\",\n\t\"informatieobjecttype\": \"{{informatieobject_omschrijving}}\",\n\t\"volgnummer\": 1,\n\t\"richting\": \"inkomend\"\n}" + }, + "url": { + "raw": "{{ztc_url}}/zaaktype-informatieobjecttypen", + "host": [ + "{{ztc_url}}" + ], + "path": [ + "zaaktype-informatieobjecttypen" + ] + } + }, + "response": [] + }, + { + "name": "Publish Informatieobjecttype Copy 2", + "request": { + "method": "POST", + "header": [], + "url": { + "raw": "{{informatieobjecttype_url}}/publish", + "host": [ + "{{informatieobjecttype_url}}" + ], + "path": [ + "publish" + ] + } + }, + "response": [] + }, + { + "name": "Publish Zaaktype Copy 2", + "request": { + "method": "POST", + "header": [], + "url": { + "raw": "{{zaaktype_url}}/publish", + "host": [ + "{{zaaktype_url}}" + ], + "path": [ + "publish" + ] + } + }, + "response": [] + }, + { + "name": "(zrc-022a) Zaak aanmaken geeft voor archiefstatus standaardwaarde nog_te_archiveren", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "pm.test(\"Zaak aanmaken geeft voor archiefstatus standaardwaarde nog_te_archiveren\", function(){", + " pm.expect(pm.response.json().archiefstatus).to.be.equal(\"nog_te_archiveren\");", + "});", + "", + "// If the Zaak was created, delete it", + "if(pm.response.code == 201) {", + " pm.environment.set(\"created_zaak_url\", pm.response.json().url);", + "", + "}" + ], + "type": "text/javascript", + "packages": {} + } + } + ], + "request": { + "method": "POST", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Accept-Crs", + "value": "EPSG:4326" + }, + { + "key": "Content-Crs", + "value": "EPSG:4326" + } + ], + "body": { + "mode": "raw", + "raw": "{\r\n \"bronorganisatie\": \"000000000\",\r\n \"omschrijving\": \"string\",\r\n \"toelichting\": \"string\",\r\n \"registratiedatum\": \"2019-04-09\",\r\n \"verantwoordelijkeOrganisatie\": \"000000000\",\r\n \"zaaktype\": \"{{zaaktype_url}}\",\r\n \"startdatum\": \"2019-04-09\",\r\n \"einddatumGepland\": \"2019-04-20\",\r\n \"uiterlijkeEinddatumAfdoening\": \"2019-04-09\",\r\n \"publicatiedatum\": \"2019-04-09\",\r\n \"vertrouwelijkheidaanduiding\": \"openbaar\",\r\n \"betalingsindicatie\": \"geheel\",\r\n \"laatsteBetaalDatum\": \"2019-01-01\",\r\n \"zaakgeometrie\": {\r\n \"type\": \"Point\",\r\n \"coordinates\": [\r\n 53,\r\n 5\r\n ]\r\n },\r\n \"opschorting\": {\r\n \"indicatie\": true,\r\n \"reden\": \"string\"\r\n },\r\n \"selectielijstklasse\": \"{{selectielijstklasse_url}}\",\r\n \"archiefstatus\": \"nog_te_archiveren\",\r\n \"deelzaaktypen\" : [\"{{deelzaaktype_url}}\"]\r\n}" + }, + "url": { + "raw": "{{zrc_url}}/zaken", + "host": [ + "{{zrc_url}}" + ], + "path": [ + "zaken" + ] + } + }, + "response": [] + }, + { + "name": "verwijder zaak", + "request": { + "method": "DELETE", + "header": [], + "url": { + "raw": "{{created_zaak_url}}", + "host": [ + "{{created_zaak_url}}" + ] + } + }, + "response": [] + }, + { + "name": "Create Zaak to be archived", + "event": [ + { + "listen": "prerequest", + "script": { + "exec": [ + "" + ], + "type": "text/javascript", + "packages": {} + } + }, + { + "listen": "test", + "script": { + "exec": [ + "pm.environment.set(\"created_zaak_url\", pm.response.json().url);", + "", + "" + ], + "type": "text/javascript", + "packages": {} + } + } + ], + "request": { + "method": "POST", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Accept-Crs", + "value": "EPSG:4326" + }, + { + "key": "Content-Crs", + "value": "EPSG:4326" + } + ], + "body": { + "mode": "raw", + "raw": "{\r\n \"bronorganisatie\": \"000000000\",\r\n \"omschrijving\": \"string\",\r\n \"toelichting\": \"string\",\r\n \"registratiedatum\": \"2019-04-09\",\r\n \"verantwoordelijkeOrganisatie\": \"000000000\",\r\n \"zaaktype\": \"{{zaaktype_url}}\",\r\n \"startdatum\": \"2019-04-09\",\r\n \"einddatumGepland\": \"2019-04-20\",\r\n \"uiterlijkeEinddatumAfdoening\": \"2019-04-09\",\r\n \"publicatiedatum\": \"2019-04-09\",\r\n \"vertrouwelijkheidaanduiding\": \"openbaar\",\r\n \"betalingsindicatie\": \"geheel\",\r\n \"laatsteBetaalDatum\": \"2019-01-01\",\r\n \"zaakgeometrie\": {\r\n \"type\": \"Point\",\r\n \"coordinates\": [\r\n 53,\r\n 5\r\n ]\r\n },\r\n \"opschorting\": {\r\n \"indicatie\": true,\r\n \"reden\": \"string\"\r\n },\r\n \"selectielijstklasse\": \"{{selectielijstklasse_url}}\",\r\n \"archiefstatus\": \"nog_te_archiveren\",\r\n \"deelzaaktypen\" : [\"{{deelzaaktype_url}}\"]\r\n}" + }, + "url": { + "raw": "{{zrc_url}}/zaken", + "host": [ + "{{zrc_url}}" + ], + "path": [ + "zaken" + ] + } + }, + "response": [] + }, + { + "name": "(DRC) Create EnkelvoudigInformatieObject", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "pm.environment.set(\"informatieobject_url\", pm.response.json().url);" + ], + "type": "text/javascript", + "packages": {} + } + }, + { + "listen": "prerequest", + "script": { + "exec": [ + "pm.environment.set(\"object_inhoud\", btoa(\"string\"))" + ], + "type": "text/javascript", + "packages": {} + } + } + ], + "request": { + "method": "POST", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n \"bronorganisatie\": \"000000000\",\n \"creatiedatum\": \"2019-01-01\",\n \"titel\": \"testobject\",\n \"auteur\": \"testauteur\",\n \"taal\": \"eng\",\n \"inhoud\": \"{{object_inhoud}}\",\n \"informatieobjecttype\": \"{{informatieobjecttype_url}}\",\n \"indicatieGebruiksrecht\": false,\n \"status\": \"in_bewerking\",\n \"bestandsnaam\": \"iets.pdf\",\n \"bestandsomvang\": 6\n}" + }, + "url": { + "raw": "{{drc_url}}/enkelvoudiginformatieobjecten", + "host": [ + "{{drc_url}}" + ], + "path": [ + "enkelvoudiginformatieobjecten" + ] + } + }, + "response": [] + }, + { + "name": "(zrc-022) ZaakInformatieObject aanmaken is mogelijk", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "pm.test(\"ZaakInformatieObject aanmaken met valide gegevens geeft 201\", function() {", + " pm.response.to.have.status(201);", + "});", + "", + "if(pm.response.code == 201) {", + " pm.environment.set(\"zaakinformatieobject_body\", pm.request.body.raw);", + " pm.environment.set(\"created_zaakinformatieobject_url\", pm.response.json().url);", + "}" + ], + "type": "text/javascript", + "packages": {} + } + } + ], + "request": { + "method": "POST", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n\t\"zaak\": \"{{created_zaak_url}}\",\n\t\"informatieobject\": \"{{informatieobject_url}}\",\n\t\"titel\": \"test\",\n\t\"beschrijving\": \"bla\"\n}" + }, + "url": { + "raw": "{{zrc_url}}/zaakinformatieobjecten", + "host": [ + "{{zrc_url}}" + ], + "path": [ + "zaakinformatieobjecten" + ] + } + }, + "response": [] + }, + { + "name": "Plaats lock", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "pm.environment.set(\"informatieobject_lock_id\", pm.response.json().lock);" + ], + "type": "text/javascript", + "packages": {} + } + } + ], + "request": { + "method": "POST", + "header": [], + "url": { + "raw": "{{informatieobject_url}}/lock", + "host": [ + "{{informatieobject_url}}" + ], + "path": [ + "lock" + ] + } + }, + "response": [] + }, + { + "name": "Change Informatieobject status to gearchiveerd", + "request": { + "method": "PATCH", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n\t\"status\": \"gearchiveerd\",\n\t\"lock\": \"{{informatieobject_lock_id}}\"\n}" + }, + "url": { + "raw": "{{informatieobject_url}}", + "host": [ + "{{informatieobject_url}}" + ] + } + }, + "response": [] + }, + { + "name": "(zrc-022d) Zaak bijwerken archiefstatus niet nog_te_archiveren is onmogelijk als archiefnominatie niet gezet", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "pm.test(\"Zaak bijwerken archiefstatus zetten op niet nog_te_archiveren zonder waarde voor archiefnominatie geeft 400\", function() {", + " pm.response.to.have.status(400);", + " ", + " var error = pm.response.json()[\"invalidParams\"][0];", + " pm.expect(error.name).to.be.equal(\"archiefnominatie\");", + " pm.expect(error.code).to.be.equal(\"archiefnominatie-not-set\");", + "});" + ], + "type": "text/javascript", + "packages": {} + } + }, + { + "listen": "prerequest", + "script": { + "exec": [ + "" + ], + "type": "text/javascript", + "packages": {} + } + } + ], + "request": { + "method": "PUT", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Accept-Crs", + "value": "EPSG:4326" + }, + { + "key": "Content-Crs", + "value": "EPSG:4326" + } + ], + "body": { + "mode": "raw", + "raw": "{\r\n \"bronorganisatie\": \"000000000\",\r\n \"omschrijving\": \"string\",\r\n \"toelichting\": \"string\",\r\n \"registratiedatum\": \"2019-04-09\",\r\n \"verantwoordelijkeOrganisatie\": \"000000000\",\r\n \"zaaktype\": \"{{zaaktype_url}}\",\r\n \"startdatum\": \"2019-04-09\",\r\n \"einddatumGepland\": \"2019-04-20\",\r\n \"uiterlijkeEinddatumAfdoening\": \"2019-04-09\",\r\n \"publicatiedatum\": \"2019-04-09\",\r\n \"vertrouwelijkheidaanduiding\": \"openbaar\",\r\n \"betalingsindicatie\": \"geheel\",\r\n \"laatsteBetaalDatum\": \"2019-01-01\",\r\n \"zaakgeometrie\": {\r\n \"type\": \"Point\",\r\n \"coordinates\": [\r\n 53,\r\n 5\r\n ]\r\n },\r\n \"opschorting\": {\r\n \"indicatie\": true,\r\n \"reden\": \"string\"\r\n },\r\n \"selectielijstklasse\": \"{{selectielijstklasse_url}}\",\r\n \"archiefstatus\": \"gearchiveerd\",\r\n \"deelzaaktypen\" : [\"{{deelzaaktype_url}}\"]\r\n}" + }, + "url": { + "raw": "{{created_zaak_url}}", + "host": [ + "{{created_zaak_url}}" + ] + } + }, + "response": [] + }, + { + "name": "(zrc-022e) Zaak deels bijwerken archiefstatus niet nog_te_archiveren is onmogelijk als archiefnominatie niet gezet", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "pm.test(\"Zaak bijwerken archiefstatus zetten op niet nog_te_archiveren zonder waarde voor archiefnominatie geeft 400\", function() {", + " pm.response.to.have.status(400);", + " ", + " var error = pm.response.json()[\"invalidParams\"][0];", + " pm.expect(error.name).to.be.equal(\"archiefnominatie\");", + " pm.expect(error.code).to.be.equal(\"archiefnominatie-not-set\");", + "});" + ], + "type": "text/javascript", + "packages": {} + } + }, + { + "listen": "prerequest", + "script": { + "exec": [ + "" + ], + "type": "text/javascript", + "packages": {} + } + } + ], + "request": { + "method": "PATCH", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Accept-Crs", + "value": "EPSG:4326" + }, + { + "key": "Content-Crs", + "value": "EPSG:4326" + } + ], + "body": { + "mode": "raw", + "raw": "{\n\t\"archiefstatus\": \"gearchiveerd\"\n}" + }, + "url": { + "raw": "{{created_zaak_url}}", + "host": [ + "{{created_zaak_url}}" + ] + } + }, + "response": [] + }, + { + "name": "(zrc-022f) Zaak bijwerken archiefstatus niet nog_te_archiveren is onmogelijk als archiefactiedatum niet gezet", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "pm.test(\"Zaak bijwerken archiefstatus zetten op niet nog_te_archiveren zonder waarde voor archiefactiedatum geeft 400\", function() {", + " pm.response.to.have.status(400);", + " ", + " var error = pm.response.json()[\"invalidParams\"][0];", + " pm.expect(error.name).to.be.equal(\"archiefactiedatum\");", + " pm.expect(error.code).to.be.equal(\"archiefactiedatum-not-set\");", + "});" + ], + "type": "text/javascript", + "packages": {} + } + }, + { + "listen": "prerequest", + "script": { + "exec": [ + "" + ], + "type": "text/javascript", + "packages": {} + } + } + ], + "request": { + "method": "PUT", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Accept-Crs", + "value": "EPSG:4326" + }, + { + "key": "Content-Crs", + "value": "EPSG:4326" + } + ], + "body": { + "mode": "raw", + "raw": "{\r\n \"bronorganisatie\": \"000000000\",\r\n \"omschrijving\": \"string\",\r\n \"toelichting\": \"string\",\r\n \"registratiedatum\": \"2019-04-09\",\r\n \"verantwoordelijkeOrganisatie\": \"000000000\",\r\n \"zaaktype\": \"{{zaaktype_url}}\",\r\n \"startdatum\": \"2019-04-09\",\r\n \"einddatumGepland\": \"2019-04-20\",\r\n \"uiterlijkeEinddatumAfdoening\": \"2019-04-09\",\r\n \"publicatiedatum\": \"2019-04-09\",\r\n \"vertrouwelijkheidaanduiding\": \"openbaar\",\r\n \"betalingsindicatie\": \"geheel\",\r\n \"laatsteBetaalDatum\": \"2019-01-01\",\r\n \"zaakgeometrie\": {\r\n \"type\": \"Point\",\r\n \"coordinates\": [\r\n 53,\r\n 5\r\n ]\r\n },\r\n \"opschorting\": {\r\n \"indicatie\": true,\r\n \"reden\": \"string\"\r\n },\r\n \"selectielijstklasse\": \"{{selectielijstklasse_url}}\",\r\n \"archiefstatus\": \"gearchiveerd\",\r\n \"archiefnominatie\": \"blijvend_bewaren\",\r\n \"deelzaaktypen\" : [\"{{deelzaaktype_url}}\"]\r\n}" + }, + "url": { + "raw": "{{created_zaak_url}}", + "host": [ + "{{created_zaak_url}}" + ] + } + }, + "response": [] + }, + { + "name": "(zrc-022g) Zaak deels bijwerken archiefstatus niet nog_te_archiveren is onmogelijk als archiefactiedatum niet gezet", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "pm.test(\"Zaak deels bijwerken archiefstatus zetten op niet nog_te_archiveren zonder waarde voor archiefactiedatum geeft 400\", function() {", + " pm.response.to.have.status(400);", + " ", + " var error = pm.response.json()[\"invalidParams\"][0];", + " pm.expect(error.name).to.be.equal(\"archiefactiedatum\");", + " pm.expect(error.code).to.be.equal(\"archiefactiedatum-not-set\");", + "});" + ], + "type": "text/javascript", + "packages": {} + } + }, + { + "listen": "prerequest", + "script": { + "exec": [ + "" + ], + "type": "text/javascript", + "packages": {} + } + } + ], + "request": { + "method": "PATCH", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Accept-Crs", + "value": "EPSG:4326" + }, + { + "key": "Content-Crs", + "value": "EPSG:4326" + } + ], + "body": { + "mode": "raw", + "raw": "{\n\t\"archiefstatus\": \"gearchiveerd\",\n\t\"archiefnominatie\": \"blijvend_bewaren\"\n}" + }, + "url": { + "raw": "{{created_zaak_url}}", + "host": [ + "{{created_zaak_url}}" + ] + } + }, + "response": [] + }, + { + "name": "(zrc-022h) Zaak bijwerken archiefstatus niet nog_te_archiveren is mogelijk", + "event": [ + { + "listen": "prerequest", + "script": { + "exec": [ + "" + ], + "type": "text/javascript", + "packages": {} + } + }, + { + "listen": "test", + "script": { + "exec": [ + "pm.test(\"Zaak bijwerken archiefstatus zetten op niet nog_te_archiveren met archiefactiedatum en archiefnominatie gezet geef 200\", function() {", + " pm.response.to.have.status(200);", + " pm.expect(pm.response.json().archiefstatus).to.be.equal(\"gearchiveerd\");", + "});", + "", + "" + ], + "type": "text/javascript", + "packages": {} + } + } + ], + "request": { + "method": "PUT", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Accept-Crs", + "value": "EPSG:4326" + }, + { + "key": "Content-Crs", + "value": "EPSG:4326" + } + ], + "body": { + "mode": "raw", + "raw": "{\r\n \"bronorganisatie\": \"000000000\",\r\n \"omschrijving\": \"string\",\r\n \"toelichting\": \"string\",\r\n \"registratiedatum\": \"2019-04-09\",\r\n \"verantwoordelijkeOrganisatie\": \"000000000\",\r\n \"zaaktype\": \"{{zaaktype_url}}\",\r\n \"startdatum\": \"2019-04-09\",\r\n \"einddatumGepland\": \"2019-04-20\",\r\n \"uiterlijkeEinddatumAfdoening\": \"2019-04-09\",\r\n \"publicatiedatum\": \"2019-04-09\",\r\n \"vertrouwelijkheidaanduiding\": \"openbaar\",\r\n \"betalingsindicatie\": \"geheel\",\r\n \"laatsteBetaalDatum\": \"2019-01-01\",\r\n \"zaakgeometrie\": {\r\n \"type\": \"Point\",\r\n \"coordinates\": [\r\n 53,\r\n 5\r\n ]\r\n },\r\n \"opschorting\": {\r\n \"indicatie\": true,\r\n \"reden\": \"string\"\r\n },\r\n \"selectielijstklasse\": \"{{selectielijstklasse_url}}\",\r\n \"archiefstatus\": \"gearchiveerd\",\r\n \"archiefnominatie\": \"blijvend_bewaren\",\r\n \"archiefactiedatum\": \"2020-01-01\",\r\n \"deelzaaktypen\": [\r\n \"{{deelzaaktype_url}}\"\r\n ]\r\n}" + }, + "url": { + "raw": "{{created_zaak_url}}", + "host": [ + "{{created_zaak_url}}" + ] + } + }, + "response": [] + } + ], + "event": [ + { + "listen": "prerequest", + "script": { + "type": "text/javascript", + "exec": [ + "" + ] + } + }, + { + "listen": "test", + "script": { + "type": "text/javascript", + "exec": [ + "" + ] + } + } + ] + }, + { + "name": "zrc-023", + "item": [ + { + "name": "Create InformatieObjecttype Copy", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "if(pm.response.code == 201) {\r", + " pm.environment.set(\"informatieobjecttype_url\", pm.response.json().url);\r", + "}" + ], + "type": "text/javascript", + "packages": {} + } + }, + { + "listen": "prerequest", + "script": { + "exec": [ + "var uuid = require('uuid');\r", + "var myUUID = uuid.v4(); \r", + "pm.environment.set(\"informatieobject_omschrijving\", myUUID);" + ], + "type": "text/javascript", + "packages": {} + } + } + ], + "request": { + "method": "POST", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n\t\"catalogus\": \"{{catalogus_url}}\",\n\t\"omschrijving\": \"{{informatieobject_omschrijving}}\",\n\t\"vertrouwelijkheidaanduiding\": \"openbaar\",\n\t\"beginGeldigheid\": \"2019-01-01\",\n\t\"informatieobjectcategorie\": \"document\"\n}" + }, + "url": { + "raw": "{{ztc_url}}/informatieobjecttypen", + "host": [ + "{{ztc_url}}" + ], + "path": [ + "informatieobjecttypen" + ] + } + }, + "response": [] + }, + { + "name": "Create Zaaktype Copy", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "if(pm.response.code == 201) {", + " var res = pm.response.json();", + "pm.environment.set(\"zaaktype_url\", res.url);", + "pm.environment.set(\"zaaktype_vertrouwelijkheid\", res.vertrouwelijkheidaanduiding);", + "pm.environment.set(\"zaaktype_productenOfDiensten\", res.productenOfDiensten);", + "pm.environment.set(\"zaaktype_resultaattypen\", res.resultaattypen);", + "pm.environment.set(\"zaaktype_eigenschap\", res.eigenschappen[0]);", + "pm.environment.set(\"zaaktype_body\", pm.request.body.raw);", + "}" + ], + "type": "text/javascript", + "packages": {} + } + }, + { + "listen": "prerequest", + "script": { + "exec": [ + "var uuid = require('uuid');", + "var myUUID = uuid.v4(); ", + "pm.environment.set(\"random_identificatie\", myUUID);", + "" + ], + "type": "text/javascript", + "packages": {} + } + } + ], + "request": { + "method": "POST", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n\t\"identificatie\": \"{{random_identificatie}}\",\n \"omschrijving\": \"zrc_tests_1\",\n \"vertrouwelijkheidaanduiding\": \"openbaar\",\n \"doel\": \"test doel\",\n \"verantwoordelijke\":\"X\",\n \"aanleiding\": \"test aanleiding\",\n \"indicatieInternOfExtern\": \"extern\",\n \"handelingInitiator\": \"indienen\",\n \"onderwerp\": \"openbare ruimte\",\n \"handelingBehandelaar\": \"behandelen\",\n \"doorlooptijd\": \"P10D\",\n \"opschortingEnAanhoudingMogelijk\": false,\n \"verlengingMogelijk\": true,\n \"publicatieIndicatie\": false,\n \"productenOfDiensten\": [\n \"https://ref.tst.vng.cloud/standaard/\"\n ],\n \"selectielijstProcestype\": \"{{procestype_procestermijn_nihil_url}}\",\n \"referentieproces\": {\n \"naam\": \"test\",\n \"link\": \"\"\n },\n \"deelzaaktypen\": [\n \"{{deelzaaktype_identificatie}}\"\n ],\n \"catalogus\": \"{{catalogus_url}}\",\n \"statustypen\": [\n \n ],\n \"resultaattypen\": [\n ],\n \"eigenschappen\": [\n ],\n \"informatieobjecttypen\": [],\n \"besluittypen\": [\n \"{{besluit_omschrijving}}\"\n ],\n \"gerelateerdeZaaktypen\": [],\n \"beginGeldigheid\": \"2019-01-01\",\n \"versiedatum\": \"2019-01-01\",\n \"concept\": true,\n \"verlengingstermijn\": \"P5D\"\n}" + }, + "url": { + "raw": "{{ztc_url}}/zaaktypen", + "host": [ + "{{ztc_url}}" + ], + "path": [ + "zaaktypen" + ] + } + }, + "response": [] + }, + { + "name": "Create Eigenschap Copy", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "if(pm.response.code == 201) {\r", + " pm.environment.set(\"zaaktype_eigenschap\", pm.response.json().url);\r", + "}" + ], + "type": "text/javascript", + "packages": {} + } + } + ], + "request": { + "method": "POST", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n\t\"naam\": \"test eigenschap\",\n\t\"definitie\": \"for test\",\n\t\"zaaktype\": \"{{zaaktype_url}}\",\n \"specificatie\": {\n \"formaat\": \"tekst\",\n \"lengte\": \"5\",\n \"kardinaliteit\": \"1\",\n \"waardenverzameling\": [\"test\"]\n }\n}" + }, + "url": { + "raw": "{{ztc_url}}/eigenschappen", + "host": [ + "{{ztc_url}}" + ], + "path": [ + "eigenschappen" + ] + } + }, + "response": [] + }, + { + "name": "Create Zaaktype-InformatieObjectType relation Copy", + "request": { + "method": "POST", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n\t\"zaaktype\": \"{{zaaktype_url}}\",\n\t\"informatieobjecttype\": \"{{informatieobject_omschrijving}}\",\n\t\"volgnummer\": 1,\n\t\"richting\": \"inkomend\"\n}" + }, + "url": { + "raw": "{{ztc_url}}/zaaktype-informatieobjecttypen", + "host": [ + "{{ztc_url}}" + ], + "path": [ + "zaaktype-informatieobjecttypen" + ] + } + }, + "response": [] + }, + { + "name": "Publish Informatieobjecttype Copy", + "request": { + "method": "POST", + "header": [], + "url": { + "raw": "{{informatieobjecttype_url}}/publish", + "host": [ + "{{informatieobjecttype_url}}" + ], + "path": [ + "publish" + ] + } + }, + "response": [] + }, + { + "name": "Create Resultaattype afleidingswijze afgehandeld", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "if(pm.response.code == 201) {\r", + " pm.environment.set(\"resultaattype_url\", pm.response.json().url);\r", + "}" + ], + "type": "text/javascript", + "packages": {} + } + } + ], + "request": { + "method": "POST", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n\t\"zaaktype\": \"{{zaaktype_url}}\",\n\t\"omschrijving\": \"Klaar\",\n\t\"resultaattypeomschrijving\": \"{{resultaattypeomschrijving_url}}\",\n\t\"selectielijstklasse\": \"{{selectielijstklasse_procestermijn_nihil_url}}\",\n\t\"besluittypen\": [],\n \"brondatumArchiefprocedure\": {\n\t\t\"afleidingswijze\": \"afgehandeld\",\n\t\t\"procestermijn\": null,\n\t\t\"datumkenmerk\": \"\",\n\t\t\"einddatumBekend\": false,\n\t\t\"objecttype\": \"\",\n\t\t\"registratie\": \"\"\n\t}\n}" + }, + "url": { + "raw": "{{ztc_url}}/resultaattypen", + "host": [ + "{{ztc_url}}" + ], + "path": [ + "resultaattypen" + ] + } + }, + "response": [] + }, + { + "name": "Create begin Statustype", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "pm.environment.set(\"non_eindstatustype\", pm.response.json().url);" + ], + "type": "text/javascript" + } + } + ], + "request": { + "method": "POST", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n\t\"omschrijving\": \"Begin\",\n\t\"zaaktype\": \"{{zaaktype_url}}\",\n\t\"volgnummer\": 1\n}" + }, + "url": { + "raw": "{{ztc_url}}/statustypen", + "host": [ + "{{ztc_url}}" + ], + "path": [ + "statustypen" + ] + } + }, + "response": [] + }, + { + "name": "Create eind Statustype", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "pm.environment.set(\"eindstatustype\", pm.response.json().url);" + ], + "type": "text/javascript" + } + } + ], + "request": { + "method": "POST", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n\t\"omschrijving\": \"Eind\",\n\t\"zaaktype\": \"{{zaaktype_url}}\",\n\t\"volgnummer\": 2\n}" + }, + "url": { + "raw": "{{ztc_url}}/statustypen", + "host": [ + "{{ztc_url}}" + ], + "path": [ + "statustypen" + ] + } + }, + "response": [] + }, + { + "name": "Create Roltype", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "pm.environment.set(\"roltype_url\", pm.response.json().url);" + ], + "type": "text/javascript" + } + } + ], + "request": { + "method": "POST", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n\t\"zaaktype\": \"{{zaaktype_url}}\",\n\t\"omschrijving\": \"test\",\n\t\"omschrijvingGeneriek\": \"adviseur\"\n}" + }, + "url": { + "raw": "{{ztc_url}}/roltypen", + "host": [ + "{{ztc_url}}" + ], + "path": [ + "roltypen" + ] + } + }, + "response": [] + }, + { + "name": "Publish Zaaktype Copy", + "request": { + "method": "POST", + "header": [], + "url": { + "raw": "{{zaaktype_url}}/publish", + "host": [ + "{{zaaktype_url}}" + ], + "path": [ + "publish" + ] + } + }, + "response": [] + }, + { + "name": "Create Zaak", + "event": [ + { + "listen": "prerequest", + "script": { + "exec": [ + "" + ], + "type": "text/javascript", + "packages": {} + } + }, + { + "listen": "test", + "script": { + "exec": [ + "pm.environment.set(\"created_zaak_url\", pm.response.json().url);", + "", + "" + ], + "type": "text/javascript", + "packages": {} + } + } + ], + "request": { + "method": "POST", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Accept-Crs", + "value": "EPSG:4326" + }, + { + "key": "Content-Crs", + "value": "EPSG:4326" + } + ], + "body": { + "mode": "raw", + "raw": "{\r\n \"bronorganisatie\": \"000000000\",\r\n \"omschrijving\": \"string\",\r\n \"toelichting\": \"string\",\r\n \"registratiedatum\": \"2019-04-09\",\r\n \"verantwoordelijkeOrganisatie\": \"000000000\",\r\n \"zaaktype\": \"{{zaaktype_url}}\",\r\n \"startdatum\": \"2019-04-09\",\r\n \"einddatumGepland\": \"2019-04-20\",\r\n \"uiterlijkeEinddatumAfdoening\": \"2019-04-09\",\r\n \"publicatiedatum\": \"2019-04-09\",\r\n \"vertrouwelijkheidaanduiding\": \"openbaar\",\r\n \"betalingsindicatie\": \"geheel\",\r\n \"laatsteBetaalDatum\": \"2019-01-01\",\r\n \"zaakgeometrie\": {\r\n \"type\": \"Point\",\r\n \"coordinates\": [\r\n 53,\r\n 5\r\n ]\r\n },\r\n \"opschorting\": {\r\n \"indicatie\": true,\r\n \"reden\": \"string\"\r\n },\r\n \"selectielijstklasse\": \"{{selectielijstklasse_url}}\",\r\n \"archiefstatus\": \"nog_te_archiveren\",\r\n \"deelzaaktypen\" : [\"{{deelzaaktype_url}}\"]\r\n}" + }, + "url": { + "raw": "{{zrc_url}}/zaken", + "host": [ + "{{zrc_url}}" + ], + "path": [ + "zaken" + ] + } + }, + "response": [] + }, + { + "name": "Add Deelzaak to Zaak", + "event": [ + { + "listen": "prerequest", + "script": { + "exec": [ + "" + ], + "type": "text/javascript", + "packages": {} + } + }, + { + "listen": "test", + "script": { + "exec": [ + "pm.environment.set(\"deelzaak_url\", pm.response.json().url);" + ], + "type": "text/javascript", + "packages": {} + } + } + ], + "request": { + "method": "POST", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Accept-Crs", + "value": "EPSG:4326" + }, + { + "key": "Content-Crs", + "value": "EPSG:4326" + } + ], + "body": { + "mode": "raw", + "raw": "{\r\n \"bronorganisatie\": \"000000000\",\r\n \"omschrijving\": \"string\",\r\n \"toelichting\": \"string\",\r\n \"zaaktype\": \"{{deelzaaktype_url}}\",\r\n \"registratiedatum\": \"2019-04-09\",\r\n \"verantwoordelijkeOrganisatie\": \"000000000\",\r\n \"startdatum\": \"2019-04-09\",\r\n \"einddatum\": null,\r\n \"einddatumGepland\": \"2019-04-20\",\r\n \"uiterlijkeEinddatumAfdoening\": \"2019-04-09\",\r\n \"publicatiedatum\": \"2019-04-09\",\r\n \"communicatiekanaal\": \"\",\r\n \"productenOfDiensten\": [],\r\n \"vertrouwelijkheidaanduiding\": \"geheim\",\r\n \"betalingsindicatie\": \"geheel\",\r\n \"betalingsindicatieWeergave\": null,\r\n \"laatsteBetaaldatum\": \"2019-01-01T00:00:00Z\",\r\n \"zaakgeometrie\": {\r\n \"type\": \"Point\",\r\n \"coordinates\": [\r\n 53.0,\r\n 5.0\r\n ]\r\n },\r\n \"verlenging\": null,\r\n \"opschorting\": null,\r\n \"selectielijstklasse\": \"https://referentielijsten.roxit.nl/api/v1/resultaten/0fe71ce3-b1e1-48eb-9070-be2756fc71b5\",\r\n \"hoofdzaak\": \"{{created_zaak_url}}\",\r\n \"deelzaken\": [],\r\n \"relevanteAndereZaken\": [],\r\n \"eigenschappen\": [],\r\n \"rollen\": [],\r\n \"status\": null,\r\n \"zaakinformatieobjecten\": [],\r\n \"zaakobjecten\": [],\r\n \"resultaat\": null,\r\n \"kenmerken\": [],\r\n \"archiefnominatie\": null,\r\n \"archiefstatus\": \"nog_te_archiveren\",\r\n \"archiefactiedatum\": null,\r\n \"opdrachtgevendeOrganisatie\": null,\r\n \"processobjectaard\": null,\r\n \"startdatumBewaartermijn\": null,\r\n \"processobject\": null\r\n}" + }, + "url": { + "raw": "{{zrc_url}}/zaken", + "host": [ + "{{zrc_url}}" + ], + "path": [ + "zaken" + ] + } + }, + "response": [] + }, + { + "name": "Add Resultaat to Zaak", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "pm.environment.set(\"resultaat_url\", pm.response.json().url);" + ], + "type": "text/javascript" + } + }, + { + "listen": "prerequest", + "script": { + "exec": [ + "pm.environment.set(\"resultaattype\", pm.environment.get(\"zaaktype_resultaattypen\")[0]);" + ], + "type": "text/javascript" + } + } + ], + "request": { + "method": "POST", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n\t\"zaak\": \"{{created_zaak_url}}\",\n\t\"resultaattype\": \"{{resultaattype_url}}\"\n}" + }, + "url": { + "raw": "{{zrc_url}}/resultaten", + "host": [ + "{{zrc_url}}" + ], + "path": [ + "resultaten" + ] + } + }, + "response": [] + }, + { + "name": "Add Status to Zaak", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "pm.environment.set(\"status_url\", pm.response.json().url);" + ], + "type": "text/javascript" + } + }, + { + "listen": "prerequest", + "script": { + "exec": [ + "" + ], + "type": "text/javascript" + } + } + ], + "request": { + "method": "POST", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n\t\"zaak\": \"{{created_zaak_url}}\",\n\t\"statustype\": \"{{non_eindstatustype}}\",\n\t\"datumStatusGezet\": \"2018-04-20T13:37:00\"\n}" + }, + "url": { + "raw": "{{zrc_url}}/statussen", + "host": [ + "{{zrc_url}}" + ], + "path": [ + "statussen" + ] + } + }, + "response": [] + }, + { + "name": "Add Rol to Zaak", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "pm.environment.set(\"rol_url\", pm.response.json().url);" + ], + "type": "text/javascript" + } + }, + { + "listen": "prerequest", + "script": { + "exec": [ + "" + ], + "type": "text/javascript" + } + } + ], + "request": { + "method": "POST", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n\t\"zaak\": \"{{created_zaak_url}}\",\n\t\"betrokkene\": \"http://example.com/2d0815580af94ee0a15aa677aa646e1a\",\n\t\"betrokkeneType\": \"natuurlijk_persoon\",\n\t\"rolomschrijving\": \"behandelaar\",\n\t\"roltoelichting\": \"testrol\",\n\t\"roltype\": \"{{roltype_url}}\"\n}" + }, + "url": { + "raw": "{{zrc_url}}/rollen", + "host": [ + "{{zrc_url}}" + ], + "path": [ + "rollen" + ] + } + }, + "response": [] + }, + { + "name": "Create Zaakobject", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "pm.environment.set(\"zaakobject_url\", pm.response.json().url);" + ], + "type": "text/javascript" + } + } + ], + "request": { + "method": "POST", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n\t\"zaak\": \"{{created_zaak_url}}\",\n\t\"objectType\": \"pand\",\n\t\"objectIdentificatie\": {\n\t\t\"identificatie\": \"test\"\n\t}\n}" + }, + "url": { + "raw": "{{zrc_url}}/zaakobjecten", + "host": [ + "{{zrc_url}}" + ], + "path": [ + "zaakobjecten" + ] + } + }, + "response": [] + }, + { + "name": "Add Zaakeigenschap to Zaak", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "pm.environment.set(\"zaakeigenschap_url\", pm.response.json().url);" + ], + "type": "text/javascript" + } + }, + { + "listen": "prerequest", + "script": { + "exec": [ + "" + ], + "type": "text/javascript" + } + } + ], + "request": { + "method": "POST", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n\t\"zaak\": \"{{created_zaak_url}}\",\n\t\"eigenschap\": \"{{zaaktype_eigenschap}}\",\n\t\"waarde\": \"test\"\n}" + }, + "url": { + "raw": "{{created_zaak_url}}/zaakeigenschappen", + "host": [ + "{{created_zaak_url}}" + ], + "path": [ + "zaakeigenschappen" + ] + } + }, + "response": [] + }, + { + "name": "(DRC) Create EnkelvoudigInformatieObject Copy", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "pm.environment.set(\"informatieobject_url\", pm.response.json().url);" + ], + "type": "text/javascript", + "packages": {} + } + }, + { + "listen": "prerequest", + "script": { + "exec": [ + "pm.environment.set(\"object_inhoud\", btoa(\"string\"))" + ], + "type": "text/javascript", + "packages": {} + } + } + ], + "request": { + "method": "POST", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n \"bronorganisatie\": \"000000000\",\n \"creatiedatum\": \"2019-01-01\",\n \"titel\": \"testobject\",\n \"auteur\": \"testauteur\",\n \"taal\": \"eng\",\n \"inhoud\": \"{{object_inhoud}}\",\n \"informatieobjecttype\": \"{{informatieobjecttype_url}}\",\n \"indicatieGebruiksrecht\": false,\n \"status\": \"in_bewerking\",\n \"bestandsnaam\": \"iets.pdf\",\n \"bestandsomvang\": 6\n}" + }, + "url": { + "raw": "{{drc_url}}/enkelvoudiginformatieobjecten", + "host": [ + "{{drc_url}}" + ], + "path": [ + "enkelvoudiginformatieobjecten" + ] + } + }, + "response": [] + }, + { + "name": "Create relation between Zaak and Informatieobject", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "pm.environment.set(\"created_zaakinformatieobject_url\", pm.response.json().url);" + ], + "type": "text/javascript" + } + }, + { + "listen": "prerequest", + "script": { + "exec": [ + "" + ], + "type": "text/javascript" + } + } + ], + "request": { + "method": "POST", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n \"informatieobject\": \"{{informatieobject_url}}\",\n \"zaak\": \"{{created_zaak_url}}\",\n\t\"titel\": \"\",\n\t\"beschrijving\": \"\"\n}" + }, + "url": { + "raw": "{{zrc_url}}/zaakinformatieobjecten", + "host": [ + "{{zrc_url}}" + ], + "path": [ + "zaakinformatieobjecten" + ] + } + }, + "response": [] + }, + { + "name": "Retrieve ObjectInformatieObject url", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "pm.environment.set(\"objectinformatieobject_url\", pm.response.json()[0].url);" + ], + "type": "text/javascript", + "packages": {} + } + } + ], + "request": { + "method": "GET", + "header": [], + "url": { + "raw": "{{drc_url}}/objectinformatieobjecten?informatieobject={{informatieobject_url}}", + "host": [ + "{{drc_url}}" + ], + "path": [ + "objectinformatieobjecten" + ], + "query": [ + { + "key": "object", + "value": "{{created_zaak_url}}", + "disabled": true + }, + { + "key": "informatieobject", + "value": "{{informatieobject_url}}" + } + ] + } + }, + "response": [] + }, + { + "name": "Add Klantcontact to Zaak", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "pm.environment.set(\"klantcontact_url\", pm.response.json().url);" + ], + "type": "text/javascript" + } + }, + { + "listen": "prerequest", + "script": { + "exec": [ + "" + ], + "type": "text/javascript" + } + } + ], + "request": { + "method": "POST", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n\t\"zaak\": \"{{created_zaak_url}}\",\n\t\"datumtijd\": \"2019-02-20T00:00:00\"\n}" + }, + "url": { + "raw": "{{zrc_url}}/klantcontacten", + "host": [ + "{{zrc_url}}" + ], + "path": [ + "klantcontacten" + ] + } + }, + "response": [] + }, + { + "name": "(zrc-023a) Zaak verwijderen is mogelijk", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "pm.test(\"Zaak verwijderen geeft 204\", function() {", + " pm.response.to.have.status(204);", + "});" + ], + "type": "text/javascript" + } + } + ], + "request": { + "method": "DELETE", + "header": [ + { + "key": "Accept-Crs", + "value": "EPSG:4326" + } + ], + "body": { + "mode": "raw", + "raw": "" + }, + "url": { + "raw": "{{created_zaak_url}}", + "host": [ + "{{created_zaak_url}}" + ] + } + }, + "response": [] + }, + { + "name": "(zrc-023b) Zaak verdwijnt uit zrc na verwijdering", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "pm.test(\"Zaak ophalen uit zrc na verwijdering geeft 404\", function() {", + " pm.response.to.have.status(404); ", + "});", + "", + "pm.environment.unset(\"created_zaak_url\");" + ], + "type": "text/javascript" + } + } + ], + "request": { + "method": "GET", + "header": [ + { + "key": "Accept-Crs", + "value": "EPSG:4326" + } + ], + "url": { + "raw": "{{created_zaak_url}}", + "host": [ + "{{created_zaak_url}}" + ] + } + }, + "response": [] + }, + { + "name": "(zrc-023c) Resultaat verdwijnt uit zrc na Zaak verwijdering", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "pm.test(\"Resultaat ophalen uit zrc na Zaak verwijdering geeft 404\", function() {", + " pm.response.to.have.status(404); ", + "});" + ], + "type": "text/javascript" + } + } + ], + "request": { + "method": "GET", + "header": [ + { + "key": "Accept-Crs", + "value": "EPSG:4326" + } + ], + "url": { + "raw": "{{resultaat_url}}", + "host": [ + "{{resultaat_url}}" + ] + } + }, + "response": [] + }, + { + "name": "(zrc-023d) Status verdwijnt uit zrc na Zaak verwijdering", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "pm.test(\"Status ophalen uit zrc na Zaak verwijdering geeft 404\", function() {", + " pm.response.to.have.status(404); ", + "});" + ], + "type": "text/javascript" + } + } + ], + "request": { + "method": "GET", + "header": [ + { + "key": "Accept-Crs", + "value": "EPSG:4326" + } + ], + "url": { + "raw": "{{status_url}}", + "host": [ + "{{status_url}}" + ] + } + }, + "response": [] + }, + { + "name": "(zrc-023e) Rol verdwijnt uit zrc na Zaak verwijdering", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "pm.test(\"Rol ophalen uit zrc na Zaak verwijdering geeft 404\", function() {", + " pm.response.to.have.status(404); ", + "});" + ], + "type": "text/javascript" + } + } + ], + "request": { + "method": "GET", + "header": [ + { + "key": "Accept-Crs", + "value": "EPSG:4326" + } + ], + "url": { + "raw": "{{rol_url}}", + "host": [ + "{{rol_url}}" + ] + } + }, + "response": [] + }, + { + "name": "(zrc-023f) Zaakobject verdwijnt uit zrc na Zaak verwijdering", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "pm.test(\"Zaakobject ophalen uit zrc na Zaak verwijdering geeft 404\", function() {", + " pm.response.to.have.status(404); ", + "});" + ], + "type": "text/javascript" + } + } + ], + "request": { + "method": "GET", + "header": [ + { + "key": "Accept-Crs", + "value": "EPSG:4326" + } + ], + "url": { + "raw": "{{zaakobject_url}}", + "host": [ + "{{zaakobject_url}}" + ] + } + }, + "response": [] + }, + { + "name": "(zrc-023g) Zaakeigenschap verdwijnt uit zrc na Zaak verwijdering", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "pm.test(\"Zaakeigenschap ophalen uit zrc na Zaak verwijdering geeft 404\", function() {", + " pm.response.to.have.status(404); ", + "});" + ], + "type": "text/javascript" + } + } + ], + "request": { + "method": "GET", + "header": [ + { + "key": "Accept-Crs", + "value": "EPSG:4326" + } + ], + "url": { + "raw": "{{zaakeigenschap_url}}", + "host": [ + "{{zaakeigenschap_url}}" + ] + } + }, + "response": [] + }, + { + "name": "(zrc-023h) ObjectInformatieObject verdwijnt uit drc na Zaak verwijdering", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "pm.test(\"ObjectInformatieObject ophalen uit drc na Zaak verwijdering geeft 404\", function() {", + " pm.response.to.have.status(404); ", + "});" + ], + "type": "text/javascript" + } + } + ], + "request": { + "method": "GET", + "header": [ + { + "key": "Accept-Crs", + "value": "EPSG:4326" + } + ], + "url": { + "raw": "{{objectinformatieobject_url}}", + "host": [ + "{{objectinformatieobject_url}}" + ] + } + }, + "response": [] + }, + { + "name": "(zrc-023i) ZaakInformatieObject verdwijnt uit zrc na Zaak verwijdering", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "pm.test(\"ZaakInformatieObject ophalen uit zrc na Zaak verwijdering geeft 404\", function() {", + " pm.response.to.have.status(404); ", + "});" + ], + "type": "text/javascript" + } + } + ], + "request": { + "method": "GET", + "header": [ + { + "key": "Accept-Crs", + "value": "EPSG:4326" + } + ], + "url": { + "raw": "{{created_zaakinformatieobject_url}}", + "host": [ + "{{created_zaakinformatieobject_url}}" + ] + } + }, + "response": [] + }, + { + "name": "(zrc-023j) Klantcontact verdwijnt uit zrc na Zaak verwijdering", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "pm.test(\"Klantcontact ophalen uit zrc na Zaak verwijdering geeft 404\", function() {", + " pm.response.to.have.status(404); ", + "});" + ], + "type": "text/javascript" + } + } + ], + "request": { + "method": "GET", + "header": [], + "url": { + "raw": "{{klantcontact_url}}", + "host": [ + "{{klantcontact_url}}" + ] + } + }, + "response": [] + } + ], + "event": [ + { + "listen": "prerequest", + "script": { + "type": "text/javascript", + "exec": [ + "" + ] + } + }, + { + "listen": "test", + "script": { + "type": "text/javascript", + "exec": [ + "" + ] + } + } + ] + } + ], + "description": "Bevat alle business logic tests voor het Zaakregistratiecomponent (ZRC)", + "event": [ + { + "listen": "prerequest", + "script": { + "type": "text/javascript", + "exec": [ + "" + ] + } + }, + { + "listen": "test", + "script": { + "type": "text/javascript", + "exec": [ + "" + ] + } + } + ] + }, + { + "name": "drc", + "item": [ + { + "name": "setUp", + "item": [ + { + "name": "set full access token", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "" + ], + "type": "text/javascript", + "packages": {} + } + }, + { + "listen": "prerequest", + "script": { + "exec": [ + " pm.environment.set(\"jwt_token\", pm.environment.get(\"jwt_full\"));\r", + " var origId = pm.environment.get(\"_original_client_id\");", + " var origSecret = pm.environment.get(\"_original_secret\");", + " if (origId) { pm.environment.set(\"client_id\", origId); }", + " if (origSecret) { pm.environment.set(\"secret\", origSecret); }", + " pm.environment.set(\"secret\", pm.environment.get(\"secret\") || \"procest-admin-secret-key-for-testing\");", + " " + ], + "type": "text/javascript", + "packages": {} + } + } + ], + "request": { + "method": "GET", + "header": [], + "url": { + "raw": "{{ztc_url}}/catalogussen", + "host": [ + "{{ztc_url}}" + ], + "path": [ + "catalogussen" + ] + } + }, + "response": [] + }, + { + "name": "ZT", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "if(pm.response.code == 201) {", + " pm.environment.set(\"zaaktype_url\", pm.response.json().url);", + "}", + "", + "" + ], + "type": "text/javascript", + "packages": {} + } + }, + { + "listen": "prerequest", + "script": { + "exec": [ + "var uuid = require('uuid');", + "var myUUID = uuid.v4(); ", + "pm.environment.set(\"random_identificatie-ztc-01\", myUUID);" + ], + "type": "text/javascript", + "packages": {} + } + } + ], + "request": { + "method": "POST", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\r\n\t\"identificatie\": \"{{random_identificatie-ztc-01}}\",\r\n \"omschrijving\": \"Melding Openbare Ruimte\",\r\n \"vertrouwelijkheidaanduiding\": \"openbaar\",\r\n \"doel\": \"test doel\",\r\n \"verantwoordelijke\":\"X\",\r\n \"aanleiding\": \"test aanleiding\",\r\n \"indicatieInternOfExtern\": \"extern\",\r\n \"handelingInitiator\": \"indienen\",\r\n \"onderwerp\": \"openbare ruimte\",\r\n \"handelingBehandelaar\": \"behandelen\",\r\n \"doorlooptijd\": \"P10D\",\r\n \"opschortingEnAanhoudingMogelijk\": false,\r\n \"verlengingMogelijk\": false,\r\n \"publicatieIndicatie\": false,\r\n \"productenOfDiensten\": [\r\n \"https://ref.tst.vng.cloud/standaard/\"\r\n ],\r\n \"selectielijstProcestype\": \"{{procestype_url}}\",\r\n \"referentieproces\": {\r\n \"naam\": \"test\",\r\n \"link\": \"\"\r\n },\r\n \"catalogus\": \"{{catalogus_url}}\",\r\n \"deelzaaktypen\": [],\r\n \"statustypen\": [],\r\n \"resultaattypen\": [],\r\n \"eigenschappen\": [],\r\n \"informatieobjecttypen\": [],\r\n \"besluittypen\": [],\r\n \"gerelateerdeZaaktypen\": [],\r\n \"beginGeldigheid\": \"2005-01-01\",\r\n \"eindeGeldigheid\": \"2012-01-01\",\r\n \"versiedatum\": \"2012-01-01\",\r\n \"concept\": true\r\n}" + }, + "url": { + "raw": "{{ztc_url}}/zaaktypen", + "host": [ + "{{ztc_url}}" + ], + "path": [ + "zaaktypen" + ] + } + }, + "response": [] + }, + { + "name": "ZT Publish", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "" + ], + "type": "text/javascript", + "packages": {} + } + }, + { + "listen": "prerequest", + "script": { + "exec": [ + "" + ], + "type": "text/javascript", + "packages": {} + } + } + ], + "request": { + "method": "POST", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "" + }, + "url": { + "raw": "{{zaaktype_url}}/publish", + "host": [ + "{{zaaktype_url}}" + ], + "path": [ + "publish" + ] + } + }, + "response": [] + }, + { + "name": "IOT", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "if(pm.response.code == 201) {", + " pm.environment.set(\"informatieobjecttype_url\", pm.response.json().url);", + " pm.environment.set(\"informatieobjecttype_omschrijving\", pm.response.json().omschrijving);", + "", + "}", + "", + "" + ], + "type": "text/javascript", + "packages": {} + } + }, + { + "listen": "prerequest", + "script": { + "exec": [ + "var uuid = require('uuid');\r", + "var myUUID = uuid.v4(); \r", + "pm.environment.set(\"random_identificatie-ztc-03\", myUUID);" + ], + "type": "text/javascript", + "packages": {} + } + } + ], + "request": { + "method": "POST", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n\t\"catalogus\": \"{{catalogus_url}}\",\n\t\"omschrijving\": \"{{random_identificatie-ztc-03}}\",\n\t\"vertrouwelijkheidaanduiding\": \"openbaar\",\n\t\"beginGeldigheid\": \"2019-01-01\"\n}" + }, + "url": { + "raw": "{{ztc_url}}/informatieobjecttypen", + "host": [ + "{{ztc_url}}" + ], + "path": [ + "informatieobjecttypen" + ] + } + }, + "response": [] + }, + { + "name": "IOT publish", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "" + ], + "type": "text/javascript", + "packages": {} + } + }, + { + "listen": "prerequest", + "script": { + "exec": [ + "" + ], + "type": "text/javascript", + "packages": {} + } + } + ], + "request": { + "method": "POST", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "" + }, + "url": { + "raw": "{{informatieobjecttype_url}}/publish", + "host": [ + "{{informatieobjecttype_url}}" + ], + "path": [ + "publish" + ] + } + }, + "response": [] + }, + { + "name": "BT", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "if(pm.response.code == 201) {", + " pm.environment.set(\"besluittype_url\", pm.response.json().url);", + "}", + "", + "" + ], + "type": "text/javascript", + "packages": {} + } + }, + { + "listen": "prerequest", + "script": { + "exec": [ + "var uuid = require('uuid');", + "var myUUID = uuid.v4(); ", + "pm.environment.set(\"random_identificatie-ztc-02\", myUUID);" + ], + "type": "text/javascript", + "packages": {} + } + } + ], + "request": { + "method": "POST", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n \"catalogus\": \"{{catalogus_url}}\",\n \"omschrijving\": \"{{random_identificatie-ztc-02}}\",\n \"zaaktypen\": [],\n\t\"publicatieIndicatie\": false,\n\t\"informatieobjecttypen\": [\"{{informatieobjecttype_url}}\"],\n\t\"beginGeldigheid\": \"2019-01-01\"\n}" + }, + "url": { + "raw": "{{ztc_url}}/besluittypen", + "host": [ + "{{ztc_url}}" + ], + "path": [ + "besluittypen" + ] + } + }, + "response": [] + }, + { + "name": "BT Publish", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "" + ], + "type": "text/javascript", + "packages": {} + } + }, + { + "listen": "prerequest", + "script": { + "exec": [ + "" + ], + "type": "text/javascript", + "packages": {} + } + } + ], + "request": { + "method": "POST", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "" + }, + "url": { + "raw": "{{besluittype_url}}/publish", + "host": [ + "{{besluittype_url}}" + ], + "path": [ + "publish" + ] + } + }, + "response": [] + }, + { + "name": "ZT-IOT", + "request": { + "method": "POST", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n\t\"zaaktype\": \"{{zaaktype_url}}\",\n\t\"informatieobjecttype\": \"{{informatieobjecttype_omschrijving}}\",\n\t\"volgnummer\": 1,\n\t\"richting\": \"inkomend\"\n}" + }, + "url": { + "raw": "{{ztc_url}}/zaaktype-informatieobjecttypen", + "host": [ + "{{ztc_url}}" + ], + "path": [ + "zaaktype-informatieobjecttypen" + ] + } + }, + "response": [] + }, + { + "name": "Create Zaak", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "var zaak = pm.response.json();", + "pm.environment.set(\"zaak_url\", zaak.url);", + "pm.environment.set(\"zaak_id\", zaak.identificatie);", + "pm.environment.set(\"zaak_bronorganisatie\", zaak.bronorganisatie);", + "pm.environment.set(\"zaak_geometrie\", zaak.zaakgeometrie);", + "pm.environment.set(\"zaak_body\", pm.request.body.raw);" + ], + "type": "text/javascript" + } + } + ], + "request": { + "method": "POST", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Content-Crs", + "value": "EPSG:4326" + }, + { + "key": "Accept-Crs", + "value": "EPSG:4326" + } + ], + "body": { + "mode": "raw", + "raw": "{\n \"bronorganisatie\": \"000000000\",\n \"omschrijving\": \"string\",\n \"toelichting\": \"string\",\n \"registratiedatum\": \"2019-04-09\",\n \"verantwoordelijkeOrganisatie\": \"000000000\",\n \"zaaktype\": \"{{zaaktype_url}}\",\n \"startdatum\": \"2019-04-09\",\n \"einddatumGepland\": \"2019-04-20\",\n \"uiterlijkeEinddatumAfdoening\": \"2019-04-09\",\n \"publicatiedatum\": \"2019-04-09\",\n\t\"vertrouwelijkheidaanduiding\": \"openbaar\",\n\t\"betalingsindicatie\": \"geheel\",\n\t\"laatsteBetaalDatum\": \"2019-01-01\",\n\t\"zaakgeometrie\": \n\t{\n\t \"type\": \"Point\",\n\t \"coordinates\": [53, 5]\n\t},\n\t\"opschorting\": \n\t{\n\t \"indicatie\": true,\n\t \"reden\": \"string\"\n\t},\n\t\"selectielijstklasse\": \"{{selectielijstklasse_url}}\",\n \"archiefstatus\": \"nog_te_archiveren\"\n}" + }, + "url": { + "raw": "{{zrc_url}}/zaken", + "host": [ + "{{zrc_url}}" + ], + "path": [ + "zaken" + ] + }, + "description": "Maakt een Zaak aan die gebruikt zal worden in de tests, deze zaak wordt na de tests weer verwijderd.\n\nDe body van deze Zaak zal ook als variabele opgeslagen worden en gebruikt worden (met kleine aanpassingen iedere keer) in de requests voor de validatie tests, om te voorkomen dat telkens hetzelfde body gekopieerd moet worden." + }, + "response": [] + }, + { + "name": "Create Besluit", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "pm.environment.set(\"besluit_url\", pm.response.json().url);" + ], + "type": "text/javascript" + } + } + ], + "request": { + "method": "POST", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n\t\"verantwoordelijkeOrganisatie\": \"000000000\",\n\t\"besluittype\": \"{{besluittype_url}}\",\n\t\"datum\": \"2019-04-25\",\n\t\"ingangsdatum\": \"2019-04-26\",\n\t\"vervaldatum\": \"2019-04-28\"\n}" + }, + "url": { + "raw": "{{brc_url}}/besluiten", + "host": [ + "{{brc_url}}" + ], + "path": [ + "besluiten" + ] + } + }, + "response": [] + } + ] + }, + { + "name": "drc-001", + "item": [ + { + "name": "(drc-001a) EnkelvoudigInformatieObject aanmaken is mogelijk", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "pm.test(\"EnkelvoudigInformatieObject aanmaken met valide gegevens geeft 201\", function() {", + " pm.response.to.have.status(201);", + "});", + "", + "pm.environment.set(\"informatieobject_url\", pm.response.json().url);", + "pm.environment.set(\"informatieobject_body\", pm.request.body.raw);" + ], + "type": "text/javascript", + "packages": {} + } + }, + { + "listen": "prerequest", + "script": { + "exec": [ + "pm.environment.set(\"object_inhoud\", btoa(\"string\"));", + "", + "" + ], + "type": "text/javascript", + "packages": {} + } + } + ], + "request": { + "method": "POST", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n\t\"bronorganisatie\": \"000000000\",\n\t\"creatiedatum\": \"2019-01-01\",\n\t\"titel\": \"testobject\",\n\t\"auteur\": \"testauteur\",\n\t\"taal\": \"eng\",\n\t\"inhoud\": \"{{object_inhoud}}\",\n\t\"informatieobjecttype\": \"{{informatieobjecttype_url}}\",\n \"bestandsnaam\": \"iets.pdf\",\n\t\"bestandsomvang\": 6\n}" + }, + "url": { + "raw": "{{drc_url}}/enkelvoudiginformatieobjecten", + "host": [ + "{{drc_url}}" + ], + "path": [ + "enkelvoudiginformatieobjecten" + ] + } + }, + "response": [] + }, + { + "name": "Create Informatieobjecttype for EIO updates", + "event": [ + { + "listen": "prerequest", + "script": { + "exec": [ + "var uuid = require('uuid');\r", + "var myUUID = uuid.v4(); \r", + "pm.environment.set(\"random_identificatie-drc-001\", myUUID);" + ], + "type": "text/javascript", + "packages": {} + } + }, + { + "listen": "test", + "script": { + "exec": [ + "pm.environment.set(\"temp_iotype_url\", pm.response.json().url);" + ], + "type": "text/javascript", + "packages": {} + } + } + ], + "request": { + "method": "POST", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n\t\"catalogus\": \"{{catalogus_url}}\",\n\t\"omschrijving\": \"{{random_identificatie-drc-001}}\",\n\t\"vertrouwelijkheidaanduiding\": \"openbaar\",\n\t\"beginGeldigheid\": \"2019-01-01\",\n \"informatieobjectcategorie\":\"X\"\n}" + }, + "url": { + "raw": "{{ztc_url}}/informatieobjecttypen", + "host": [ + "{{ztc_url}}" + ], + "path": [ + "informatieobjecttypen" + ] + } + }, + "response": [] + }, + { + "name": "(drc-001d) EnkelvoudigInformatieObject aanmaken met concept informatieobjecttype is onmogelijk", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "pm.test(\"EnkelvoudigInformatieObject aanmaken met concept informatieobjecttype geeft 400\", function() {", + " pm.response.to.have.status(400);", + " ", + " // Verify that the 400 is returned for the correct reason", + " var error = pm.response.json()[\"invalidParams\"][0];", + " pm.expect(error.name).to.be.equal(\"informatieobjecttype\");", + " pm.expect(error.code).to.be.equal(\"not-published\");", + "});", + "", + "// If the test failed and the Zaak was created, delete it", + "" + ], + "type": "text/javascript", + "packages": {} + } + }, + { + "listen": "prerequest", + "script": { + "exec": [ + "" + ], + "type": "text/javascript", + "packages": {} + } + } + ], + "request": { + "method": "POST", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Accept-Crs", + "value": "EPSG:4326" + }, + { + "key": "Content-Crs", + "value": "EPSG:4326" + } + ], + "body": { + "mode": "raw", + "raw": "{\r\n\t\"bronorganisatie\": \"000000000\",\r\n\t\"creatiedatum\": \"2019-01-01\",\r\n\t\"titel\": \"testobject\",\r\n\t\"auteur\": \"testauteur\",\r\n\t\"taal\": \"eng\",\r\n\t\"inhoud\": \"{{object_inhoud}}\",\r\n\t\"informatieobjecttype\": \"{{temp_iotype_url}}\",\r\n \"bestandsnaam\": \"iets.pdf\",\r\n\t\"bestandsomvang\": 6\r\n}" + }, + "url": { + "raw": "{{drc_url}}/enkelvoudiginformatieobjecten", + "host": [ + "{{drc_url}}" + ], + "path": [ + "enkelvoudiginformatieobjecten" + ] + } + }, + "response": [] + }, + { + "name": "Publish temp Informatieobjecttype", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "" + ], + "type": "text/javascript", + "packages": {} + } + } + ], + "request": { + "method": "POST", + "header": [], + "url": { + "raw": "{{temp_iotype_url}}/publish", + "host": [ + "{{temp_iotype_url}}" + ], + "path": [ + "publish" + ] + } + }, + "response": [] + }, + { + "name": "(drc-001d) EnkelvoudigInformatieObject aanmaken met concept informatieobjecttype is nu mogelijk", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "pm.test(\"EnkelvoudigInformatieObject aanmaken met concept informatieobjecttype geeft 201\", function() {", + " pm.response.to.have.status(201);", + " ", + "", + "});", + "", + "" + ], + "type": "text/javascript", + "packages": {} + } + }, + { + "listen": "prerequest", + "script": { + "exec": [ + "// Retrieve the Zaak body template and modify as needed", + "var body = JSON.parse(pm.environment.get(\"informatieobject_body\"));", + "" + ], + "type": "text/javascript", + "packages": {} + } + } + ], + "request": { + "method": "POST", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Accept-Crs", + "value": "EPSG:4326" + }, + { + "key": "Content-Crs", + "value": "EPSG:4326" + } + ], + "body": { + "mode": "raw", + "raw": "{\r\n\t\"bronorganisatie\": \"000000000\",\r\n\t\"creatiedatum\": \"2019-01-01\",\r\n\t\"titel\": \"testobject\",\r\n\t\"auteur\": \"testauteur\",\r\n\t\"taal\": \"eng\",\r\n\t\"inhoud\": \"{{object_inhoud}}\",\r\n\t\"informatieobjecttype\": \"{{temp_iotype_url}}\",\r\n \"bestandsnaam\": \"iets.pdf\",\r\n\t\"bestandsomvang\": 6\r\n}" + }, + "url": { + "raw": "{{drc_url}}/enkelvoudiginformatieobjecten", + "host": [ + "{{drc_url}}" + ], + "path": [ + "enkelvoudiginformatieobjecten" + ] + } + }, + "response": [] + } + ] + }, + { + "name": "drc-002", + "item": [ + { + "name": "(drc-002a) ObjectInformatieObject aanmaken met objectType zaak en ongeldige object url is onmogelijk", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "pm.test(\"ObjectInformatieObject aanmaken met objecttype zaak en object url die niet resulteert in 200 geeft 400\", function() {", + " pm.response.to.have.status(400);", + " ", + " var error = pm.response.json()[\"invalidParams\"][0];", + " pm.expect(error.name).to.be.equal(\"object\");", + " pm.expect(error.code).to.be.equal(\"bad-url\");", + "});", + "", + "" + ], + "type": "text/javascript", + "packages": {} + } + } + ], + "request": { + "method": "POST", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n\t\"informatieobject\": \"{{informatieobject_url}}\",\n\t\"object\": \"https://www.roxit.nl/api/v1/zaken/123\",\n\t\"objectType\": \"zaak\"\n}" + }, + "url": { + "raw": "{{drc_url}}/objectinformatieobjecten", + "host": [ + "{{drc_url}}" + ], + "path": [ + "objectinformatieobjecten" + ] + } + }, + "response": [] + }, + { + "name": "(drc-002b) ObjectInformatieObject aanmaken met objectType besluit en ongeldige object url is onmogelijk", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "pm.test(\"ObjectInformatieObject aanmaken met objecttype besluit en object url die niet resulteert in 200 geeft 400\", function() {", + " pm.response.to.have.status(400);", + " ", + " var error = pm.response.json()[\"invalidParams\"][0];", + " pm.expect(error.name).to.be.equal(\"object\");", + " pm.expect(error.code).to.be.equal(\"bad-url\");", + "});", + "", + "" + ], + "type": "text/javascript", + "packages": {} + } + } + ], + "request": { + "method": "POST", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n\t\"informatieobject\": \"{{informatieobject_url}}\",\n\t\"object\": \"{{mock_url}}/404\",\n\t\"objectType\": \"besluit\"\n}" + }, + "url": { + "raw": "{{drc_url}}/objectinformatieobjecten", + "host": [ + "{{drc_url}}" + ], + "path": [ + "objectinformatieobjecten" + ] + } + }, + "response": [] + }, + { + "name": "(drc-002c) ObjectInformatieObject aanmaken met objectType zaak en object url die niet wijst naar Zaak is onmogelijk", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "pm.test(\"ObjectInformatieObject aanmaken met objecttype zaak en object url die niet wijst naar Zaak geeft 400\", function() {", + " pm.response.to.have.status(400);", + " ", + " var error = pm.response.json()[\"invalidParams\"][0];", + " pm.expect(error.name).to.be.equal(\"object\");", + "", + "});", + "", + "" + ], + "type": "text/javascript", + "packages": {} + } + } + ], + "request": { + "method": "POST", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n\t\"informatieobject\": \"{{informatieobject_url}}\",\n\t\"object\": \"{{mock_url}}/200\",\n\t\"objectType\": \"zaak\"\n}" + }, + "url": { + "raw": "{{drc_url}}/objectinformatieobjecten", + "host": [ + "{{drc_url}}" + ], + "path": [ + "objectinformatieobjecten" + ] + } + }, + "response": [] + }, + { + "name": "(drc-002d) ObjectInformatieObject aanmaken met objectType besluit en object url die niet wijst naar Besluit is onmogelijk", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "pm.test(\"ObjectInformatieObject aanmaken met objecttype besluit en object url die niet wijst naar Besluit geeft 400\", function() {", + " pm.response.to.have.status(400);", + " ", + " var error = pm.response.json()[\"invalidParams\"][0];", + " pm.expect(error.name).to.be.equal(\"object\");", + "", + "});", + "", + "" + ], + "type": "text/javascript", + "packages": {} + } + } + ], + "request": { + "method": "POST", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n\t\"informatieobject\": \"{{informatieobject_url}}\",\n\t\"object\": \"{{mock_url}}/200\",\n\t\"objectType\": \"besluit\"\n}" + }, + "url": { + "raw": "{{drc_url}}/objectinformatieobjecten", + "host": [ + "{{drc_url}}" + ], + "path": [ + "objectinformatieobjecten" + ] + } + }, + "response": [] + } + ] + }, + { + "name": "drc-003", + "item": [ + { + "name": "Maak IOT", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "pm.test(\"EnkelvoudigInformatieObject aanmaken met valide gegevens geeft 201\", function() {", + " pm.response.to.have.status(201);", + "});", + "", + "pm.environment.set(\"informatieobject_url\", pm.response.json().url);", + "pm.environment.set(\"informatieobject_body\", pm.request.body.raw);" + ], + "type": "text/javascript", + "packages": {} + } + }, + { + "listen": "prerequest", + "script": { + "exec": [ + "", + "", + "" + ], + "type": "text/javascript", + "packages": {} + } + } + ], + "request": { + "method": "POST", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n\t\"bronorganisatie\": \"000000000\",\n\t\"creatiedatum\": \"2019-01-01\",\n\t\"titel\": \"testobject\",\n\t\"auteur\": \"testauteur\",\n\t\"taal\": \"eng\",\n\t\"inhoud\": \"c3RyaW5n\",\n\t\"informatieobjecttype\": \"{{informatieobjecttype_url}}\",\n \"bestandsnaam\": \"iets.pdf\",\n\t\"bestandsomvang\": 6\n}" + }, + "url": { + "raw": "{{drc_url}}/enkelvoudiginformatieobjecten", + "host": [ + "{{drc_url}}" + ], + "path": [ + "enkelvoudiginformatieobjecten" + ] + } + }, + "response": [] + }, + { + "name": "Create relation between Zaak and Informatieobject", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "pm.environment.set(\"created_zaakinformatieobject_url\", pm.response.json().url);" + ], + "type": "text/javascript" + } + } + ], + "request": { + "method": "POST", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n\t\"zaak\": \"{{zaak_url}}\",\n\t\"informatieobject\": \"{{informatieobject_url}}\"\n}" + }, + "url": { + "raw": "{{zrc_url}}/zaakinformatieobjecten", + "host": [ + "{{zrc_url}}" + ], + "path": [ + "zaakinformatieobjecten" + ] + } + }, + "response": [] + }, + { + "name": "(drc-003a) ObjectInformatieObject aanmaken met bestaande combinatie object en informatieobject en objectType zaak is onmogelijk", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "pm.test(\"ObjectInformatieObject aanmaken met objecttype zaak en bestaande combinatie object en informatieobject geeft 400\", function() {", + " pm.response.to.have.status(400);", + " ", + " var error = pm.response.json()[\"invalidParams\"][0];", + " pm.expect(error.name).to.be.equal(\"nonFieldErrors\");", + "", + "});", + "", + "var request_names = [\"Create relation between Besluit and Informatieobject\"];", + "if (pm.response.code == 201) {", + " pm.environment.set(\"created_objectinformatieobject_url\", pm.response.json().url);", + "", + "} ", + "" + ], + "type": "text/javascript", + "packages": {} + } + } + ], + "request": { + "method": "POST", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n\t\"informatieobject\": \"{{informatieobject_url}}\",\n\t\"object\": \"{{zaak_url}}\",\n\t\"objectType\": \"zaak\"\n}" + }, + "url": { + "raw": "{{drc_url}}/objectinformatieobjecten", + "host": [ + "{{drc_url}}" + ], + "path": [ + "objectinformatieobjecten" + ] + } + }, + "response": [] + }, + { + "name": "Create relation between Besluit and Informatieobject", + "request": { + "method": "POST", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Authorization", + "value": "Bearer {{jwt_token}}" + }, + { + "key": "Accept-Crs", + "value": "EPSG:4326" + }, + { + "key": "Content-Crs", + "value": "EPSG:4326" + } + ], + "body": { + "mode": "raw", + "raw": "{\n\t\"besluit\": \"{{besluit_url}}\",\n\t\"informatieobject\": \"{{informatieobject_url}}\"\n}" + }, + "url": { + "raw": "{{brc_url}}/besluitinformatieobjecten", + "host": [ + "{{brc_url}}" + ], + "path": [ + "besluitinformatieobjecten" + ] + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "if (pm.response.code == 201) {", + " pm.environment.set(\"created_besluitinformatieobject_url\", pm.response.json().url);", + "}" + ], + "type": "text/javascript" + } + } + ] + }, + { + "name": "(drc-003b) ObjectInformatieObject aanmaken met bestaande combinatie object en informatieobject en objectType besluit is onmogelijk", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "pm.test(\"ObjectInformatieObject aanmaken met objecttype besluit en bestaande combinatie object en informatieobject geeft 400\", function() {", + " pm.response.to.have.status(400);", + " ", + " var error = pm.response.json()[\"invalidParams\"][0];", + " pm.expect(error.name).to.be.equal(\"nonFieldErrors\");", + " pm.expect(error.code).to.be.equal(\"unique\");", + "});", + "", + "" + ], + "type": "text/javascript", + "packages": {} + } + } + ], + "request": { + "method": "POST", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n\t\"informatieobject\": \"{{informatieobject_url}}\",\n\t\"object\": \"{{besluit_url}}\",\n\t\"objectType\": \"besluit\"\n}" + }, + "url": { + "raw": "{{drc_url}}/objectinformatieobjecten", + "host": [ + "{{drc_url}}" + ], + "path": [ + "objectinformatieobjecten" + ] + } + }, + "response": [] + } + ] + }, + { + "name": "drc-004", + "item": [ + { + "name": "Create fresh EnkelvoudigInformatieObject for drc-004", + "request": { + "method": "POST", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Authorization", + "value": "Bearer {{jwt_token}}" + }, + { + "key": "Accept-Crs", + "value": "EPSG:4326" + }, + { + "key": "Content-Crs", + "value": "EPSG:4326" + } + ], + "body": { + "mode": "raw", + "raw": "{\n\t\"bronorganisatie\": \"000000000\",\n\t\"creatiedatum\": \"2019-01-01\",\n\t\"titel\": \"drc-004 testobject\",\n\t\"auteur\": \"testauteur\",\n\t\"taal\": \"eng\",\n\t\"inhoud\": \"c3RyaW5n\",\n\t\"informatieobjecttype\": \"{{informatieobjecttype_url}}\",\n\t\"bestandsnaam\": \"drc004.pdf\",\n\t\"bestandsomvang\": 6\n}" + }, + "url": { + "raw": "{{drc_url}}/enkelvoudiginformatieobjecten", + "host": [ + "{{drc_url}}" + ], + "path": [ + "enkelvoudiginformatieobjecten" + ] + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "pm.test(\"Fresh EIO for drc-004 created\", function() {", + " pm.response.to.have.status(201);", + "});", + "pm.environment.set(\"informatieobject_url\", pm.response.json().url);" + ], + "type": "text/javascript" + } + } + ] + }, + { + "name": "(drc-004a) ObjectInformatieObject aanmaken met zaak en informatieobject niet gekoppeld in zrc is onmogelijk", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "pm.test(\"ObjectInformatieObject aanmaken met objectType zaak en object en informatieobject die nog niet gekoppeld zijn in zrc geeft 400\", function() {", + " pm.response.to.have.status(400);", + " ", + " var error = pm.response.json()[\"invalidParams\"][0];", + " pm.expect(error.name).to.be.equal(\"nonFieldErrors\");", + " pm.expect(error.code).to.be.equal(\"inconsistent-relation\");", + "});", + "", + "" + ], + "type": "text/javascript", + "packages": {} + } + } + ], + "request": { + "method": "POST", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n\t\"informatieobject\": \"{{informatieobject_url}}\",\n\t\"object\": \"{{zaak_url}}\",\n\t\"objectType\": \"zaak\"\n}" + }, + "url": { + "raw": "{{drc_url}}/objectinformatieobjecten", + "host": [ + "{{drc_url}}" + ], + "path": [ + "objectinformatieobjecten" + ] + } + }, + "response": [] + }, + { + "name": "(drc-004b) ObjectInformatieObject aanmaken met besluit en informatieobject niet gekoppeld in brc is onmogelijk", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "pm.test(\"ObjectInformatieObject aanmaken met objectType besluit en object en informatieobject die nog niet gekoppeld zijn in zrc geeft 400\", function() {", + " pm.response.to.have.status(400);", + " ", + " var error = pm.response.json()[\"invalidParams\"][0];", + " pm.expect(error.name).to.be.equal(\"nonFieldErrors\");", + " ", + "});", + "", + "" + ], + "type": "text/javascript", + "packages": {} + } + } + ], + "request": { + "method": "POST", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n\t\"informatieobject\": \"{{informatieobject_url}}\",\n\t\"object\": \"{{besluit_url}}\",\n\t\"objectType\": \"besluit\"\n}" + }, + "url": { + "raw": "{{drc_url}}/objectinformatieobjecten", + "host": [ + "{{drc_url}}" + ], + "path": [ + "objectinformatieobjecten" + ] + } + }, + "response": [] + } + ] + }, + { + "name": "drc-005 obsolete business rule", + "item": [], + "event": [ + { + "listen": "prerequest", + "script": { + "type": "text/javascript", + "exec": [ + "" + ] + } + }, + { + "listen": "test", + "script": { + "type": "text/javascript", + "exec": [ + "" + ] + } + } + ] + }, + { + "name": "drc-006", + "item": [ + { + "name": "(drc-006a) Valideren default indicatie gebruiksrecht bij aanmaken EnkelvoudigInformatieObject", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "pm.test(\"EnkelvoudigInformatieObject aanmaken zet indicatie gebruiksrecht op null indien niet gedefinieerd\", function() {", + " pm.expect(pm.response.json().indicatieGebruiksrecht).to.be.equal(null);", + "});", + "", + "", + "" + ], + "type": "text/javascript", + "packages": {} + } + } + ], + "request": { + "method": "POST", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{{informatieobject_body}}" + }, + "url": { + "raw": "{{drc_url}}/enkelvoudiginformatieobjecten", + "host": [ + "{{drc_url}}" + ], + "path": [ + "enkelvoudiginformatieobjecten" + ] + } + }, + "response": [] + }, + { + "name": "(drc-006b) EnkelvoudigInformatieObject aanmaken met indicatie gebruiksrecht true vereist Gebruiksrechten", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "pm.test(\"EnkelvoudigInformatieObject aanmaken met indicatie gebruiksrecht true zonder Gebruiksrechten in drc geeft 400\", function() {", + " pm.response.to.have.status(400);", + " ", + " var error = pm.response.json()[\"invalidParams\"][0];", + " pm.expect(error.name).to.be.equal(\"indicatieGebruiksrecht\");", + " pm.expect(error.code).to.be.equal(\"missing-gebruiksrechten\");", + "});", + "", + "" + ], + "type": "text/javascript", + "packages": {} + } + }, + { + "listen": "prerequest", + "script": { + "exec": [ + "var body = JSON.parse(pm.environment.get(\"informatieobject_body\"));", + "body.indicatieGebruiksrecht = true;", + "", + "pm.environment.set(\"request_body\", JSON.stringify(body));" + ], + "type": "text/javascript", + "packages": {} + } + } + ], + "request": { + "method": "POST", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{{request_body}}" + }, + "url": { + "raw": "{{drc_url}}/enkelvoudiginformatieobjecten", + "host": [ + "{{drc_url}}" + ], + "path": [ + "enkelvoudiginformatieobjecten" + ] + } + }, + "response": [] + }, + { + "name": "Create Gebruiksrechten", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "pm.environment.set(\"gebruiksrechten_url\", pm.response.json().url);" + ], + "type": "text/javascript" + } + } + ], + "request": { + "method": "POST", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n\t\"informatieobject\": \"{{informatieobject_url}}\",\n\t\"startdatum\": \"2019-01-01T12:00:00\",\n\t\"omschrijvingVoorwaarden\": \"test\"\n}" + }, + "url": { + "raw": "{{drc_url}}/gebruiksrechten", + "host": [ + "{{drc_url}}" + ], + "path": [ + "gebruiksrechten" + ] + } + }, + "response": [] + }, + { + "name": "(drc-006c) Aanmaken Gebruiksrechten zet EnkelvoudigInformatieObject.indicatieGebruiksrecht op true", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "pm.test(\"Aanmaken Gebruiksrechten zet EnkelvoudigInformatieObject.indicatieGebruiksrecht op true\", function() {", + " pm.expect(pm.response.json().indicatieGebruiksrecht).to.be.equal(true); ", + "});" + ], + "type": "text/javascript" + } + } + ], + "request": { + "method": "GET", + "header": [], + "url": { + "raw": "{{informatieobject_url}}", + "host": [ + "{{informatieobject_url}}" + ] + } + }, + "response": [] + }, + { + "name": "Delete Gebruiksrechten", + "request": { + "method": "DELETE", + "header": [], + "body": { + "mode": "raw", + "raw": "" + }, + "url": { + "raw": "{{gebruiksrechten_url}}", + "host": [ + "{{gebruiksrechten_url}}" + ] + } + }, + "response": [] + }, + { + "name": "(drc-006d) Verwijderen Gebruiksrechten zet EnkelvoudigInformatieObject.indicatieGebruiksrecht op null", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "pm.test(\"Verwijderen Gebruiksrechten zet EnkelvoudigInformatieObject.indicatieGebruiksrecht op null\", function() {", + " pm.expect(pm.response.json().indicatieGebruiksrecht).to.be.equal(null); ", + "});" + ], + "type": "text/javascript" + } + } + ], + "request": { + "method": "GET", + "header": [], + "url": { + "raw": "{{informatieobject_url}}", + "host": [ + "{{informatieobject_url}}" + ] + } + }, + "response": [] + } + ], + "event": [ + { + "listen": "prerequest", + "script": { + "type": "text/javascript", + "exec": [ + "" + ] + } + }, + { + "listen": "test", + "script": { + "type": "text/javascript", + "exec": [ + "" + ] + } + } + ] + }, + { + "name": "drc-007", + "item": [ + { + "name": "(drc-007a) EnkelvoudigInformatieObject aanmaken met expliciet gedefinieerde vertrouwelijkheidaanduiding", + "event": [ + { + "listen": "prerequest", + "script": { + "exec": [ + "pm.environment.set(\"expliciete_vertrouwelijkheidaanduiding\", \"vertrouwelijk\");", + "", + "var body = JSON.parse(pm.environment.get(\"informatieobject_body\"));", + "body.vertrouwelijkheidaanduiding = pm.environment.get(\"expliciete_vertrouwelijkheidaanduiding\");", + "", + "pm.environment.set(\"request_body\", JSON.stringify(body));" + ], + "type": "text/javascript", + "packages": {} + } + }, + { + "listen": "test", + "script": { + "exec": [ + "pm.test(\"EnkelvoudigInformatieObject aanmaken met expliciet gedefinieerde vertrouwelijkheidaanduiding krijgt die waarde toegekend\", function() {", + " pm.expect(pm.response.json().vertrouwelijkheidaanduiding).to.be.equal(pm.environment.get(\"expliciete_vertrouwelijkheidaanduiding\"));", + "});", + "", + "pm.environment.set(\"informatieobject_url\", pm.response.json().url);" + ], + "type": "text/javascript", + "packages": {} + } + } + ], + "request": { + "method": "POST", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{{request_body}}" + }, + "url": { + "raw": "{{drc_url}}/enkelvoudiginformatieobjecten", + "host": [ + "{{drc_url}}" + ], + "path": [ + "enkelvoudiginformatieobjecten" + ] + } + }, + "response": [] + }, + { + "name": "(drc-007a2) Lock EnkelvoudigInformatieObject", + "event": [ + { + "listen": "prerequest", + "script": { + "exec": [ + "pm.environment.set(\"expliciete_vertrouwelijkheidaanduiding\", \"vertrouwelijk\");", + "", + "var body = JSON.parse(pm.environment.get(\"informatieobject_body\"));", + "body.vertrouwelijkheidaanduiding = pm.environment.get(\"expliciete_vertrouwelijkheidaanduiding\");", + "", + "pm.environment.set(\"request_body\", JSON.stringify(body));" + ], + "type": "text/javascript", + "packages": {} + } + }, + { + "listen": "test", + "script": { + "exec": [ + "pm.environment.set(\"informatieobject_lock_id\", pm.response.json().lock);" + ], + "type": "text/javascript", + "packages": {} + } + } + ], + "request": { + "method": "POST", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{{request_body}}" + }, + "url": { + "raw": "{{informatieobject_url}}/lock", + "host": [ + "{{informatieobject_url}}" + ], + "path": [ + "lock" + ] + } + }, + "response": [] + }, + { + "name": "(drc-007b) EnkelvoudigInformatieObject bijwerken met expliciet gedefinieerde vertrouwelijkheidaanduiding", + "event": [ + { + "listen": "prerequest", + "script": { + "exec": [ + "pm.environment.set(\"expliciete_vertrouwelijkheidaanduiding\", \"vertrouwelijk\");", + "", + "var body = JSON.parse(pm.environment.get(\"informatieobject_body\"));", + "body.vertrouwelijkheidaanduiding = pm.environment.get(\"expliciete_vertrouwelijkheidaanduiding\");", + "body.lock = pm.environment.get(\"informatieobject_lock_id\");", + "body.url = pm.environment.get(\"informatieobject_url\");", + "", + "pm.environment.set(\"request_body\", JSON.stringify(body));" + ], + "type": "text/javascript", + "packages": {} + } + }, + { + "listen": "test", + "script": { + "exec": [ + "pm.test(\"EnkelvoudigInformatieObject aanmaken met expliciet gedefinieerde vertrouwelijkheidaanduiding krijgt die waarde toegekend\", function() {", + " pm.expect(pm.response.json().vertrouwelijkheidaanduiding).to.be.equal(pm.environment.get(\"expliciete_vertrouwelijkheidaanduiding\"));", + "});" + ], + "type": "text/javascript", + "packages": {} + } + } + ], + "request": { + "method": "PUT", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{{request_body}}" + }, + "url": { + "raw": "{{informatieobject_url}}", + "host": [ + "{{informatieobject_url}}" + ] + } + }, + "response": [] + }, + { + "name": "(drc-007c) EnkelvoudigInformatieObject deels bijwerken met expliciet gedefinieerde vertrouwelijkheidaanduiding", + "event": [ + { + "listen": "prerequest", + "script": { + "exec": [ + "pm.environment.set(\"expliciete_vertrouwelijkheidaanduiding\", \"zeer_geheim\");" + ], + "type": "text/javascript", + "packages": {} + } + }, + { + "listen": "test", + "script": { + "exec": [ + "pm.test(\"EnkelvoudigInformatieObject aanmaken met expliciet gedefinieerde vertrouwelijkheidaanduiding krijgt die waarde toegekend\", function() {", + " pm.expect(pm.response.json().vertrouwelijkheidaanduiding).to.be.equal(pm.environment.get(\"expliciete_vertrouwelijkheidaanduiding\"));", + "});", + "", + "" + ], + "type": "text/javascript", + "packages": {} + } + } + ], + "request": { + "method": "PATCH", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n\t\"vertrouwelijkheidaanduiding\": \"{{expliciete_vertrouwelijkheidaanduiding}}\",\n\t\"lock\": \"{{informatieobject_lock_id}}\"\n}" + }, + "url": { + "raw": "{{informatieobject_url}}", + "host": [ + "{{informatieobject_url}}" + ] + } + }, + "response": [] + }, + { + "name": "Retrieve Informatieobjecttype vertrouwelijkheidaanduiding", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "pm.environment.set(\"informatieobjecttype_vertrouwelijkheidaanduiding\", pm.response.json().vertrouwelijkheidaanduiding);" + ], + "type": "text/javascript" + } + } + ], + "request": { + "method": "GET", + "header": [], + "url": { + "raw": "{{informatieobjecttype_url}}", + "host": [ + "{{informatieobjecttype_url}}" + ] + } + }, + "response": [] + }, + { + "name": "(drc-007b) EnkelvoudigInformatieObject aanmaken leidt vertrouwelijkheidaanduiding af uit Informatieobjecttype", + "event": [ + { + "listen": "prerequest", + "script": { + "exec": [ + "var body = JSON.parse(pm.environment.get(\"informatieobject_body\"));", + "delete body.vertrouwelijkheidaanduiding;", + "", + "pm.environment.set(\"request_body\", JSON.stringify(body));" + ], + "type": "text/javascript", + "packages": {} + } + }, + { + "listen": "test", + "script": { + "exec": [ + "pm.test(\"EnkelvoudigInformatieObject aanmaken zonder expliciet gedefinieerde vertrouwelijkheidaanduiding leidt vertrouwelijkheidaanduiding af uit Informatieobjecttype\", function() {", + " pm.expect(pm.response.json().vertrouwelijkheidaanduiding).to.be.equal(pm.environment.get(\"informatieobjecttype_vertrouwelijkheidaanduiding\"));", + "});", + "", + "" + ], + "type": "text/javascript", + "packages": {} + } + } + ], + "request": { + "method": "POST", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{{request_body}}" + }, + "url": { + "raw": "{{drc_url}}/enkelvoudiginformatieobjecten", + "host": [ + "{{drc_url}}" + ], + "path": [ + "enkelvoudiginformatieobjecten" + ] + } + }, + "response": [] + } + ] + }, + { + "name": "drc-008", + "item": [ + { + "name": "(drc-008-a00) EnkelvoudigInformatieObject aanmaken", + "event": [ + { + "listen": "prerequest", + "script": { + "exec": [ + "" + ], + "type": "text/javascript", + "packages": {} + } + }, + { + "listen": "test", + "script": { + "exec": [ + "", + "", + "if (pm.response.code==201){", + " pm.environment.set(\"informatieobject_008\", pm.response.json().url);", + "}" + ], + "type": "text/javascript", + "packages": {} + } + } + ], + "request": { + "method": "POST", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\r\n\t\"bronorganisatie\": \"000000000\",\r\n\t\"creatiedatum\": \"2019-01-01\",\r\n\t\"titel\": \"testobject\",\r\n\t\"auteur\": \"testauteur\",\r\n\t\"taal\": \"eng\",\r\n\t\"inhoud\": \"c3RyaW5n\",\r\n\t\"informatieobjecttype\": \"{{informatieobjecttype_url}}\",\r\n \"bestandsnaam\": \"iets.pdf\",\r\n\t\"bestandsomvang\": 6\r\n}" + }, + "url": { + "raw": "{{drc_url}}/enkelvoudiginformatieobjecten", + "host": [ + "{{drc_url}}" + ], + "path": [ + "enkelvoudiginformatieobjecten" + ] + } + }, + "response": [] + }, + { + "name": "(drc-008-a00) ObjectInformatieObject aanmaken", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "" + ], + "type": "text/javascript", + "packages": {} + } + } + ], + "request": { + "method": "POST", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n\t\"informatieobject\": \"{{informatieobject_008}}\",\n\t\"zaak\": \"{{zaak_url}}\",\n\t\"objectType\": \"zaak\"\n}" + }, + "url": { + "raw": "{{zrc_url}}/zaakinformatieobjecten", + "host": [ + "{{zrc_url}}" + ], + "path": [ + "zaakinformatieobjecten" + ] + } + }, + "response": [] + }, + { + "name": "(drc-008a) EnkelvoudigInformatieObject verwijderen terwijl er ObjectInformatieObjecten aan gekoppeld zijn is niet toegestaan", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "pm.test(\"EnkelvoudigInformatieObject verwijderen terwijl er ObjectInformatieObjecten aan gekoppeld zijn is niet toegestaan\", function() {", + " pm.response.to.have.status(400);", + " ", + " var error = pm.response.json()[\"invalidParams\"][0];", + " pm.expect(error.name).to.be.equal(\"nonFieldErrors\");", + " pm.expect(error.code).to.be.equal(\"pending-relations\");", + "});", + "", + "" + ], + "type": "text/javascript", + "packages": {} + } + } + ], + "request": { + "method": "DELETE", + "header": [], + "body": { + "mode": "raw", + "raw": "" + }, + "url": { + "raw": "{{informatieobject_008}}", + "host": [ + "{{informatieobject_008}}" + ] + } + }, + "response": [] + }, + { + "name": "(drc-008-a00) EnkelvoudigInformatieObject nog eens aanmaken", + "event": [ + { + "listen": "prerequest", + "script": { + "exec": [ + "" + ], + "type": "text/javascript", + "packages": {} + } + }, + { + "listen": "test", + "script": { + "exec": [ + "", + "if (pm.response.code==201){", + " pm.environment.set(\"informatieobject_008\", pm.response.json().url);", + "}" + ], + "type": "text/javascript", + "packages": {} + } + } + ], + "request": { + "method": "POST", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\r\n\t\"bronorganisatie\": \"000000000\",\r\n\t\"creatiedatum\": \"2019-01-01\",\r\n\t\"titel\": \"testobject\",\r\n\t\"auteur\": \"testauteur\",\r\n\t\"taal\": \"eng\",\r\n\t\"inhoud\": \"c3RyaW5n\",\r\n\t\"informatieobjecttype\": \"{{informatieobjecttype_url}}\",\r\n \"bestandsnaam\": \"iets.pdf\",\r\n\t\"bestandsomvang\": 6\r\n}" + }, + "url": { + "raw": "{{drc_url}}/enkelvoudiginformatieobjecten", + "host": [ + "{{drc_url}}" + ], + "path": [ + "enkelvoudiginformatieobjecten" + ] + } + }, + "response": [] + }, + { + "name": "(drc-008a) EIO verwijderen nu wel toegestaan", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "pm.test(\"EIO verwijderen toegestaan\", function() {", + " pm.response.to.have.status(204);", + " ", + "", + "});", + "", + "" + ], + "type": "text/javascript", + "packages": {} + } + } + ], + "request": { + "method": "DELETE", + "header": [], + "body": { + "mode": "raw", + "raw": "" + }, + "url": { + "raw": "{{informatieobject_008}}", + "host": [ + "{{informatieobject_008}}" + ] + } + }, + "response": [] + }, + { + "name": "(drc-008b) EnkelvoudigInformatieObject verwijderen cascade door naar gerelateerde Gebruiksrechten", + "event": [ + { + "listen": "prerequest", + "script": { + "exec": [ + "pm.environment.set(\"encoded_url\", encodeURIComponent(pm.environment.get(\"informatieobject_008\")))" + ], + "type": "text/javascript", + "packages": {} + } + }, + { + "listen": "test", + "script": { + "exec": [ + "pm.test(\"EnkelvoudigInformatieObject verwijderen verwijdert ook alle gerelateerde Gebruiksrechten uit het DRC\", function() {", + " var res = pm.response.json();", + " pm.expect(Array.isArray(res));", + " pm.expect(res.length).to.be.equal(0);", + "});", + "", + "" + ], + "type": "text/javascript", + "packages": {} + } + } + ], + "request": { + "method": "GET", + "header": [], + "url": { + "raw": "{{drc_url}}/gebruiksrechten?informatieobject={{encoded_url}}", + "host": [ + "{{drc_url}}" + ], + "path": [ + "gebruiksrechten" + ], + "query": [ + { + "key": "informatieobject", + "value": "{{encoded_url}}" + } + ] + } + }, + "response": [] + }, + { + "name": "(drc-008c) EnkelvoudigInformatieObject verwijderen cascade door naar gerelateerde audit trail", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "pm.test(\"EnkelvoudigInformatieObject verwijderen verwijdert ook de gerelateerde audit trail uit het DRC\", function() {", + " pm.response.to.have.status(404);", + "});", + "pm.environment.unset(\"informatieobject_url\");" + ], + "type": "text/javascript", + "packages": {} + } + }, + { + "listen": "prerequest", + "script": { + "exec": [ + "" + ], + "type": "text/javascript", + "packages": {} + } + } + ], + "request": { + "method": "GET", + "header": [], + "url": { + "raw": "{{informatieobject_008}}/audittrail", + "host": [ + "{{informatieobject_008}}" + ], + "path": [ + "audittrail" + ] + } + }, + "response": [] + } + ], + "event": [ + { + "listen": "prerequest", + "script": { + "type": "text/javascript", + "exec": [ + "" + ] + } + }, + { + "listen": "test", + "script": { + "type": "text/javascript", + "exec": [ + "" + ] + } + } + ] + }, + { + "name": "drc-009", + "item": [ + { + "name": "Create zgw-token client_id_restricted", + "event": [ + { + "listen": "prerequest", + "script": { + "exec": [ + "", + " var secretCurrentOrg = pm.environment.get(\"secret_limited\");", + " var client_idCurrentOrg = pm.environment.get(\"client_id_limited\");", + "\r", + " var tokenuser = pm.environment.get(\"tokenuser\");\r", + " console.info(secretCurrentOrg,\"\",client_idCurrentOrg,\"\",tokenuser) \r", + " \r", + " function base64url(source) {\r", + " // Encode in classical base64\r", + " encodedSource = CryptoJS.enc.Base64.stringify(source);\r", + " \r", + " // Remove padding equal characters\r", + " encodedSource = encodedSource.replace(/=+$/, '');\r", + " \r", + " // Replace characters according to base64url specifications\r", + " encodedSource = encodedSource.replace(/\\+/g, '-');\r", + " encodedSource = encodedSource.replace(/\\//g, '_');\r", + " \r", + " return encodedSource;\r", + " }\r", + " \r", + " function addIAT(request) {\r", + " var iat = Math.floor(Date.now() / 1000) + 257;\r", + " data.iat = iat;\r", + " data.exp = iat + 10000000;\r", + " return data;\r", + " }\r", + " \r", + " var header = {\r", + " \"typ\": \"JWT\",\r", + " \"alg\": \"HS256\"\r", + " };\r", + " \r", + " var data = {\r", + " \"iss\": client_idCurrentOrg,\r", + " \"client_id\": client_idCurrentOrg,\r", + " \"user_id\": tokenuser,\r", + " \"user_representation\": client_idCurrentOrg,\r", + " \"jti\": \"35b9d0e0-8c80-4aef-9c9c-55d6e34eff40\"\r", + " };\r", + " data = addIAT(data);\r", + " \r", + " var secret = secretCurrentOrg;\r", + " \r", + " // encode header\r", + " var stringifiedHeader = CryptoJS.enc.Utf8.parse(JSON.stringify(header));\r", + " var encodedHeader = base64url(stringifiedHeader);\r", + " \r", + " // encode data\r", + " var stringifiedData = CryptoJS.enc.Utf8.parse(JSON.stringify(data));\r", + " var encodedData = base64url(stringifiedData);\r", + " \r", + " // build token\r", + " var token = encodedHeader + \".\" + encodedData;\r", + " \r", + " var signature = CryptoJS.HmacSHA256(token, secret);\r", + " signature = base64url(signature);\r", + " \r", + " var signedToken = token + \".\" + signature;\r", + " \r", + " pm.environment.set(\"jwt-limited\", signedToken);\r", + " pm.environment.set(\"jwt-zrc-006\", signedToken);\r", + "" + ], + "type": "text/javascript", + "packages": {} + } + }, + { + "listen": "test", + "script": { + "exec": [ + "" + ], + "type": "text/javascript", + "packages": {} + } + } + ], + "request": { + "auth": { + "type": "bearer", + "bearer": [ + { + "key": "token", + "value": "{{jwt_token}}", + "type": "string" + } + ] + }, + "method": "GET", + "header": [], + "url": { + "raw": "{{ztc_url}}/zaaktypen", + "host": [ + "{{ztc_url}}" + ], + "path": [ + "zaaktypen" + ] + } + }, + "response": [] + }, + { + "name": "set restricted token", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "" + ], + "type": "text/javascript", + "packages": {} + } + }, + { + "listen": "prerequest", + "script": { + "exec": [ + " pm.environment.set(\"jwt_token\", pm.environment.get(\"jwt-limited\"));\r", + " pm.environment.set(\"_original_client_id\", pm.environment.get(\"client_id\"));", + " pm.environment.set(\"_original_secret\", pm.environment.get(\"secret\"));", + " pm.environment.set(\"client_id\", pm.environment.get(\"client_id_limited\"));", + " pm.environment.set(\"secret\", pm.environment.get(\"secret_limited\"));", + " pm.environment.set(\"client_id\", pm.environment.get(\"client_id_limited\"));", + " pm.environment.set(\"secret\", pm.environment.get(\"secret_limited\"));", + " " + ], + "type": "text/javascript", + "packages": {} + } + } + ], + "request": { + "method": "GET", + "header": [], + "url": { + "raw": "{{ztc_url}}/catalogussen", + "host": [ + "{{ztc_url}}" + ], + "path": [ + "catalogussen" + ] + } + }, + "response": [] + }, + { + "name": "Create EnkelvoudigInformatieobject for lock tests", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "pm.environment.set(\"created_informatieobject_url\", pm.response.json().url);" + ], + "type": "text/javascript", + "packages": {} + } + }, + { + "listen": "prerequest", + "script": { + "exec": [ + "" + ], + "type": "text/javascript", + "packages": {} + } + } + ], + "request": { + "method": "POST", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\r\n\t\"bronorganisatie\": \"000000000\",\r\n\t\"creatiedatum\": \"2019-01-01\",\r\n\t\"titel\": \"testobject\",\r\n\t\"auteur\": \"testauteur\",\r\n\t\"taal\": \"eng\",\r\n\t\"inhoud\": \"{{object_inhoud}}\",\r\n\t\"informatieobjecttype\": \"{{informatieobjecttype_url}}\",\r\n \"bestandsnaam\": \"iets.pdf\",\r\n\t\"bestandsomvang\": 6\r\n}" + }, + "url": { + "raw": "{{drc_url}}/enkelvoudiginformatieobjecten", + "host": [ + "{{drc_url}}" + ], + "path": [ + "enkelvoudiginformatieobjecten" + ] + } + }, + "response": [] + }, + { + "name": "(drc-009a) EnkelvoudigInformatieObject bijwerken terwijl unlocked niet toegestaan", + "event": [ + { + "listen": "prerequest", + "script": { + "exec": [ + "" + ], + "type": "text/javascript", + "packages": {} + } + }, + { + "listen": "test", + "script": { + "exec": [ + "pm.test(\"EnkelvoudigInformatieObject bijwerken zonder lock geeft 400\", function() {", + " pm.response.to.have.status(400);", + " ", + " var error = pm.response.json().invalidParams[0];", + "", + "});" + ], + "type": "text/javascript", + "packages": {} + } + } + ], + "request": { + "method": "PUT", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\r\n\t\"bronorganisatie\": \"000000000\",\r\n\t\"creatiedatum\": \"2019-01-01\",\r\n\t\"titel\": \"testobject\",\r\n\t\"auteur\": \"testauteur\",\r\n\t\"taal\": \"eng\",\r\n\t\"inhoud\": \"{{object_inhoud}}\",\r\n\t\"informatieobjecttype\": \"{{informatieobjecttype_url}}\",\r\n \"bestandsnaam\": \"iets.pdf\",\r\n\t\"bestandsomvang\": 6\r\n}" + }, + "url": { + "raw": "{{created_informatieobject_url}}", + "host": [ + "{{created_informatieobject_url}}" + ] + } + }, + "response": [] + }, + { + "name": "(drc-009b) EnkelvoudigInformatieObject deels bijwerken terwijl unlocked niet toegestaan", + "event": [ + { + "listen": "prerequest", + "script": { + "exec": [ + "" + ], + "type": "text/javascript", + "packages": {} + } + }, + { + "listen": "test", + "script": { + "exec": [ + "pm.test(\"EnkelvoudigInformatieObject deels bijwerken zonder lock geeft 400\", function() {", + " pm.response.to.have.status(400);", + " ", + " var error = pm.response.json().invalidParams[0];", + "", + "", + "});" + ], + "type": "text/javascript", + "packages": {} + } + } + ], + "request": { + "method": "PATCH", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n\t\"auteur\": \"{{aangepaste_auteur}}\"\n}" + }, + "url": { + "raw": "{{created_informatieobject_url}}", + "host": [ + "{{created_informatieobject_url}}" + ] + } + }, + "response": [] + }, + { + "name": "(drc-009c) EnkelvoudigInformatieObject locken geeft een lockId terug", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "pm.test(\"EnkelvoudigInformatieObject locken geeft een lockId terug\", function() {", + " pm.response.to.have.status(200);", + " ", + " var lock = pm.response.json().lock;", + " ", + " // Check if returned lock is valid hexadecimal", + " var regex = /[0-9A-Fa-f]{6}/g;", + " pm.expect(regex.test(lock)).to.be.true;", + " pm.environment.set(\"informatieobject_lock_id\", lock);", + "});" + ], + "type": "text/javascript", + "packages": {} + } + } + ], + "request": { + "method": "POST", + "header": [], + "body": { + "mode": "raw", + "raw": "" + }, + "url": { + "raw": "{{created_informatieobject_url}}/lock", + "host": [ + "{{created_informatieobject_url}}" + ], + "path": [ + "lock" + ] + } + }, + "response": [] + }, + { + "name": "(drc-009d) EnkelvoudigInformatieObject bijwerken zonder lock niet toegestaan", + "event": [ + { + "listen": "prerequest", + "script": { + "exec": [ + "" + ], + "type": "text/javascript", + "packages": {} + } + }, + { + "listen": "test", + "script": { + "exec": [ + "pm.test(\"EnkelvoudigInformatieObject bijwerken zonder lock geeft 400\", function() {", + " pm.response.to.have.status(400);", + " ", + " var error = pm.response.json().invalidParams[0];", + " pm.expect(error.name).to.be.equal(\"lock\");", + " pm.expect(error.code).to.be.equal(\"required\");", + "});" + ], + "type": "text/javascript", + "packages": {} + } + } + ], + "request": { + "method": "PUT", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\r\n\t\"bronorganisatie\": \"000000000\",\r\n\t\"creatiedatum\": \"2019-01-01\",\r\n\t\"titel\": \"testobject\",\r\n\t\"auteur\": \"testauteur\",\r\n\t\"taal\": \"eng\",\r\n\t\"inhoud\": \"{{object_inhoud}}\",\r\n\t\"informatieobjecttype\": \"{{informatieobjecttype_url}}\",\r\n \"bestandsnaam\": \"iets.pdf\",\r\n\t\"bestandsomvang\": 6\r\n}" + }, + "url": { + "raw": "{{created_informatieobject_url}}", + "host": [ + "{{created_informatieobject_url}}" + ] + } + }, + "response": [] + }, + { + "name": "(drc-009e) EnkelvoudigInformatieObject deels bijwerken zonder lock niet toegestaan", + "event": [ + { + "listen": "prerequest", + "script": { + "exec": [ + "" + ], + "type": "text/javascript", + "packages": {} + } + }, + { + "listen": "test", + "script": { + "exec": [ + "pm.test(\"EnkelvoudigInformatieObject deels bijwerken zonder lock geeft 400\", function() {", + " pm.response.to.have.status(400);", + " ", + " var error = pm.response.json().invalidParams[0];", + " pm.expect(error.name).to.be.equal(\"nonFieldErrors\");", + " pm.expect(error.code).to.be.equal(\"missing-lock-id\");", + "});" + ], + "type": "text/javascript", + "packages": {} + } + } + ], + "request": { + "method": "PATCH", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n\t\"titel\": \"aangepaste_titel\"\n}" + }, + "url": { + "raw": "{{created_informatieobject_url}}", + "host": [ + "{{created_informatieobject_url}}" + ] + } + }, + "response": [] + }, + { + "name": "(drc-009f) EnkelvoudigInformatieObject bijwerken is mogelijk na lock", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "pm.test(\"EnkelvoudigInformatieObject bijwerken met valide gegevens geeft 200\", function() {", + " pm.response.to.have.status(200);", + "});", + "", + "pm.test(\"EnkelvoudigInformatieObject bijwerken past gegevens correct aan\", function() {", + " pm.expect(pm.response.json().titel).to.be.equal(\"aangepaste_titel\");", + "});" + ], + "type": "text/javascript", + "packages": {} + } + }, + { + "listen": "prerequest", + "script": { + "exec": [ + "" + ], + "type": "text/javascript", + "packages": {} + } + } + ], + "request": { + "method": "PUT", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\r\n\t\"bronorganisatie\": \"000000000\",\r\n\t\"creatiedatum\": \"2019-01-01\",\r\n\t\"titel\": \"aangepaste_titel\",\r\n\t\"auteur\": \"testauteur\",\r\n\t\"taal\": \"eng\",\r\n\t\"inhoud\": \"{{object_inhoud}}\",\r\n\t\"informatieobjecttype\": \"{{informatieobjecttype_url}}\",\r\n \"bestandsnaam\": \"iets.pdf\",\r\n\t\"bestandsomvang\": 6,\r\n \"lock\": \"{{informatieobject_lock_id}}\"\r\n}" + }, + "url": { + "raw": "{{created_informatieobject_url}}", + "host": [ + "{{created_informatieobject_url}}" + ] + } + }, + "response": [] + }, + { + "name": "(drc-009g) EnkelvoudigInformatieObject deels bijwerken is mogelijk na lock", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "pm.test(\"EnkelvoudigInformatieObject deels bijwerken met valide gegevens geeft 200\", function() {", + " pm.response.to.have.status(200);", + "});", + "", + "pm.test(\"EnkelvoudigInformatieObject deels bijwerken past gegevens correct aan\", function() {", + " pm.expect(pm.response.json().auteur).to.be.equal(pm.environment.get(\"aangepaste_auteur\"));", + "});" + ], + "type": "text/javascript", + "packages": {} + } + }, + { + "listen": "prerequest", + "script": { + "exec": [ + "pm.environment.set(\"aangepaste_auteur\", \"aangepaste auteur\");" + ], + "type": "text/javascript", + "packages": {} + } + } + ], + "request": { + "method": "PATCH", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n\t\"auteur\": \"{{aangepaste_auteur}}\",\n\t\"lock\": \"{{informatieobject_lock_id}}\"\n}" + }, + "url": { + "raw": "{{created_informatieobject_url}}", + "host": [ + "{{created_informatieobject_url}}" + ] + } + }, + "response": [] + }, + { + "name": "(drc-009h) EnkelvoudigInformatieObject bijwerken met verkeerd lockId niet toegestaan", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "pm.test(\"EnkelvoudigInformatieObject bijwerken met verkeerd lockId geeft 400\", function() {", + " pm.response.to.have.status(400);", + " ", + " var error = pm.response.json().invalidParams[0];", + " pm.expect(error.name).to.be.equal(\"nonFieldErrors\");", + " pm.expect(error.code).to.be.equal(\"incorrect-lock-id\");", + "});" + ], + "type": "text/javascript", + "packages": {} + } + }, + { + "listen": "prerequest", + "script": { + "exec": [ + "" + ], + "type": "text/javascript", + "packages": {} + } + } + ], + "request": { + "method": "PUT", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\r\n\t\"bronorganisatie\": \"000000000\",\r\n\t\"creatiedatum\": \"2019-01-01\",\r\n\t\"titel\": \"testobject\",\r\n\t\"auteur\": \"testauteur\",\r\n\t\"taal\": \"eng\",\r\n\t\"inhoud\": \"{{object_inhoud}}\",\r\n\t\"informatieobjecttype\": \"{{informatieobjecttype_url}}\",\r\n \"bestandsnaam\": \"iets.pdf\",\r\n\t\"bestandsomvang\": 6,\r\n \t\"lock\": \"{{informatieobject_lock_id}}abc\"\r\n}" + }, + "url": { + "raw": "{{created_informatieobject_url}}", + "host": [ + "{{created_informatieobject_url}}" + ] + } + }, + "response": [] + }, + { + "name": "(drc-009i) EnkelvoudigInformatieObject deels bijwerken met verkeerd lockId niet toegestaan", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "pm.test(\"EnkelvoudigInformatieObject bijwerken met verkeerd lockId geeft 400\", function() {", + " pm.response.to.have.status(400);", + " ", + " var error = pm.response.json().invalidParams[0];", + " pm.expect(error.name).to.be.equal(\"nonFieldErrors\");", + " pm.expect(error.code).to.be.equal(\"incorrect-lock-id\");", + "});" + ], + "type": "text/javascript", + "packages": {} + } + }, + { + "listen": "prerequest", + "script": { + "exec": [ + "" + ], + "type": "text/javascript", + "packages": {} + } + } + ], + "request": { + "method": "PATCH", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n\t\"auteur\": \"{{aangepaste_auteur}}\",\n\t\"lock\": \"some_incorrect_lock_id\"\n}" + }, + "url": { + "raw": "{{created_informatieobject_url}}", + "host": [ + "{{created_informatieobject_url}}" + ] + } + }, + "response": [] + }, + { + "name": "(drc-009j) EnkelvoudigInformatieObject geforceerd unlocken zonder applicatie is onmogelijk", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "pm.test(\"EnkelvoudigInformatieObject geforceerd unlocken zonder applicatie met juiste scope geeft 400\", function() {", + " pm.response.to.have.status(400);", + "});" + ], + "type": "text/javascript", + "packages": {} + } + } + ], + "request": { + "method": "POST", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "" + }, + "url": { + "raw": "{{created_informatieobject_url}}/unlock", + "host": [ + "{{created_informatieobject_url}}" + ], + "path": [ + "unlock" + ] + } + }, + "response": [] + }, + { + "name": "set full access token", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "" + ], + "type": "text/javascript", + "packages": {} + } + }, + { + "listen": "prerequest", + "script": { + "exec": [ + " pm.environment.set(\"jwt_token\", pm.environment.get(\"jwt_full\"));\r", + " var origId = pm.environment.get(\"_original_client_id\");", + " var origSecret = pm.environment.get(\"_original_secret\");", + " if (origId) { pm.environment.set(\"client_id\", origId); }", + " if (origSecret) { pm.environment.set(\"secret\", origSecret); }", + " pm.environment.set(\"secret\", pm.environment.get(\"secret\") || \"procest-admin-secret-key-for-testing\");", + " " + ], + "type": "text/javascript", + "packages": {} + } + } + ], + "request": { + "method": "GET", + "header": [], + "url": { + "raw": "{{ztc_url}}/catalogussen", + "host": [ + "{{ztc_url}}" + ], + "path": [ + "catalogussen" + ] + } + }, + "response": [] + }, + { + "name": "(drc-009k) EnkelvoudigInformatieObject geforceerd unlocken is mogelijk", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "pm.test(\"EnkelvoudigInformatieObject geforceerd unlocken geeft 204\", function() {", + " pm.response.to.have.status(204);", + "});", + "", + "" + ], + "type": "text/javascript", + "packages": {} + } + } + ], + "request": { + "method": "POST", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "" + }, + "url": { + "raw": "{{created_informatieobject_url}}/unlock", + "host": [ + "{{created_informatieobject_url}}" + ], + "path": [ + "unlock" + ] + } + }, + "response": [] + }, + { + "name": "set full access token", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "" + ], + "type": "text/javascript", + "packages": {} + } + }, + { + "listen": "prerequest", + "script": { + "exec": [ + " pm.environment.set(\"jwt_token\", pm.environment.get(\"jwt_full\"));\r", + " var origId = pm.environment.get(\"_original_client_id\");", + " var origSecret = pm.environment.get(\"_original_secret\");", + " if (origId) { pm.environment.set(\"client_id\", origId); }", + " if (origSecret) { pm.environment.set(\"secret\", origSecret); }", + " pm.environment.set(\"secret\", pm.environment.get(\"secret\") || \"procest-admin-secret-key-for-testing\");", + " " + ], + "type": "text/javascript", + "packages": {} + } + } + ], + "request": { + "method": "GET", + "header": [], + "url": { + "raw": "{{ztc_url}}/catalogussen", + "host": [ + "{{ztc_url}}" + ], + "path": [ + "catalogussen" + ] + } + }, + "response": [] + } + ], + "event": [ + { + "listen": "prerequest", + "script": { + "type": "text/javascript", + "exec": [ + "" + ] + } + }, + { + "listen": "test", + "script": { + "type": "text/javascript", + "exec": [ + "" + ] + } + } + ] + } + ], + "description": "Bevat alle business logic tests voor het Documentregistratiecomponent (DRC)", + "event": [ + { + "listen": "prerequest", + "script": { + "type": "text/javascript", + "exec": [ + "" + ] + } + }, + { + "listen": "test", + "script": { + "type": "text/javascript", + "exec": [ + "" + ] + } + } + ] + }, + { + "name": "brc", + "item": [ + { + "name": "setUp", + "item": [ + { + "name": "IOT", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "if(pm.response.code == 201) {\r", + " pm.environment.set(\"informatieobjecttype_url\", pm.response.json().url);\r", + "}" + ], + "type": "text/javascript", + "packages": {} + } + }, + { + "listen": "prerequest", + "script": { + "exec": [ + "var uuid = require('uuid');\r", + "var myUUID = uuid.v4(); \r", + "pm.environment.set(\"informatieobject_omschrijving\", myUUID);" + ], + "type": "text/javascript", + "packages": {} + } + } + ], + "request": { + "method": "POST", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n\t\"catalogus\": \"{{catalogus_url}}\",\n\t\"omschrijving\": \"{{informatieobject_omschrijving}}\",\n\t\"vertrouwelijkheidaanduiding\": \"openbaar\",\n\t\"beginGeldigheid\": \"2019-01-01\",\n\t\"informatieobjectcategorie\": \"document\"\n}" + }, + "url": { + "raw": "{{ztc_url}}/informatieobjecttypen", + "host": [ + "{{ztc_url}}" + ], + "path": [ + "informatieobjecttypen" + ] + } + }, + "response": [] + }, + { + "name": "Create concept Besluittype Copy", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "pm.environment.set(\"besluittype_omschrijving\", pm.response.json().omschrijving);\r", + "pm.environment.set(\"besluittype_url\", pm.response.json().url);" + ], + "type": "text/javascript", + "packages": {} + } + }, + { + "listen": "prerequest", + "script": { + "exec": [ + "var uuid = require('uuid');\r", + "var myUUID = uuid.v4(); \r", + "pm.environment.set(\"random_omschrijving\",myUUID);" + ], + "type": "text/javascript", + "packages": {} + } + } + ], + "request": { + "method": "POST", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n \"catalogus\": \"{{catalogus_url}}\",\n \"omschrijving\": \"{{random_omschrijving}}\",\n \"zaaktypen\": [],\n\t\"publicatieIndicatie\": false,\n\t\"informatieobjecttypen\": [\"{{informatieobject_omschrijving}}\"],\n\t\"beginGeldigheid\": \"2019-01-01\"\n}" + }, + "url": { + "raw": "{{ztc_url}}/besluittypen", + "host": [ + "{{ztc_url}}" + ], + "path": [ + "besluittypen" + ] + } + }, + "response": [] + }, + { + "name": "Create Zaaktype Copy 2", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "if(pm.response.code == 201) {", + " var res = pm.response.json();", + "pm.environment.set(\"zaaktype_url\", res.url);", + "pm.environment.set(\"zaaktype_identificatie\", res.identificatie);", + "", + "}" + ], + "type": "text/javascript", + "packages": {} + } + }, + { + "listen": "prerequest", + "script": { + "exec": [ + "var uuid = require('uuid');", + "var myUUID = uuid.v4(); ", + "pm.environment.set(\"random_identificatie\", myUUID);", + "" + ], + "type": "text/javascript", + "packages": {} + } + } + ], + "request": { + "method": "POST", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n\t\"identificatie\": \"{{random_identificatie}}\",\n \"omschrijving\": \"zrc_tests_1\",\n \"vertrouwelijkheidaanduiding\": \"openbaar\",\n \"doel\": \"test doel\",\n \"verantwoordelijke\":\"X\",\n \"aanleiding\": \"test aanleiding\",\n \"indicatieInternOfExtern\": \"extern\",\n \"handelingInitiator\": \"indienen\",\n \"onderwerp\": \"openbare ruimte\",\n \"handelingBehandelaar\": \"behandelen\",\n \"doorlooptijd\": \"P10D\",\n \"opschortingEnAanhoudingMogelijk\": false,\n \"verlengingMogelijk\": true,\n \"publicatieIndicatie\": false,\n \"productenOfDiensten\": [\n \"https://ref.tst.vng.cloud/standaard/\"\n ],\n \"selectielijstProcestype\": \"{{procestype_procestermijn_nihil_url}}\",\n \"referentieproces\": {\n \"naam\": \"test\",\n \"link\": \"\"\n },\n \"deelzaaktypen\": [\n \"{{deelzaaktype_identificatie}}\"\n ],\n \"catalogus\": \"{{catalogus_url}}\",\n \"statustypen\": [\n \n ],\n \"resultaattypen\": [\n ],\n \"eigenschappen\": [\n ],\n \"informatieobjecttypen\": [],\n \"besluittypen\": [\n \"{{besluit_omschrijving}}\"\n ],\n \"gerelateerdeZaaktypen\": [],\n \"beginGeldigheid\": \"2019-01-01\",\n \"versiedatum\": \"2019-01-01\",\n \"concept\": true,\n \"verlengingstermijn\": \"P5D\"\n}" + }, + "url": { + "raw": "{{ztc_url}}/zaaktypen", + "host": [ + "{{ztc_url}}" + ], + "path": [ + "zaaktypen" + ] + } + }, + "response": [] + }, + { + "name": "Publish Besluittype", + "request": { + "method": "POST", + "header": [], + "url": { + "raw": "{{besluittype_url}}/publish", + "host": [ + "{{besluittype_url}}" + ], + "path": [ + "publish" + ] + } + }, + "response": [] + }, + { + "name": "Publish Informatieobjecttype", + "request": { + "method": "POST", + "header": [], + "url": { + "raw": "{{informatieobjecttype_url}}/publish", + "host": [ + "{{informatieobjecttype_url}}" + ], + "path": [ + "publish" + ] + } + }, + "response": [] + }, + { + "name": "Publish Zaaktype", + "request": { + "method": "POST", + "header": [], + "url": { + "raw": "{{zaaktype_url}}/publish", + "host": [ + "{{zaaktype_url}}" + ], + "path": [ + "publish" + ] + } + }, + "response": [] + }, + { + "name": "(BRC) Create EnkelvoudigInformatieObject", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "pm.environment.set(\"informatieobject_url\", pm.response.json().url);" + ], + "type": "text/javascript", + "packages": {} + } + }, + { + "listen": "prerequest", + "script": { + "exec": [ + "pm.environment.set(\"object_inhoud\", btoa(\"string\"))" + ], + "type": "text/javascript", + "packages": {} + } + } + ], + "request": { + "method": "POST", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n\t\"bronorganisatie\": \"000000000\",\n\t\"creatiedatum\": \"2019-01-01\",\n\t\"titel\": \"testobject\",\n\t\"auteur\": \"testauteur\",\n\t\"taal\": \"eng\",\n\t\"inhoud\": \"{{object_inhoud}}\",\n\t\"informatieobjecttype\": \"{{informatieobjecttype_url}}\",\n \"bestandsnaam\": \"iets.pdf\",\n\t\"bestandsomvang\": 6\n}" + }, + "url": { + "raw": "{{drc_url}}/enkelvoudiginformatieobjecten", + "host": [ + "{{drc_url}}" + ], + "path": [ + "enkelvoudiginformatieobjecten" + ] + } + }, + "response": [] + }, + { + "name": "Add Gebruiksrechten to EnkelvoudigInformatieObject", + "request": { + "method": "POST", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n\t\"informatieobject\": \"{{informatieobject_url}}\",\n\t\"startdatum\": \"2019-01-01T12:00:00\",\n\t\"omschrijvingVoorwaarden\": \"test\"\n}" + }, + "url": { + "raw": "{{drc_url}}/gebruiksrechten", + "host": [ + "{{drc_url}}" + ], + "path": [ + "gebruiksrechten" + ] + } + }, + "response": [] + }, + { + "name": "Create EnkelvoudigInformatieObject with indicatieGebruiksrecht null", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "pm.environment.set(\"informatieobject_gebruiksrecht_null_url\", pm.response.json().url);" + ], + "type": "text/javascript" + } + }, + { + "listen": "prerequest", + "script": { + "exec": [ + "pm.environment.set(\"object_inhoud\", btoa(\"string\"))" + ], + "type": "text/javascript" + } + } + ], + "request": { + "method": "POST", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n\t\"bronorganisatie\": \"000000000\",\n\t\"creatiedatum\": \"2019-01-01\",\n\t\"titel\": \"testobject\",\n\t\"auteur\": \"testauteur\",\n\t\"taal\": \"eng\",\n\t\"inhoud\": \"{{object_inhoud}}\",\n\t\"informatieobjecttype\": \"{{informatieobjecttype_url}}\",\n\t\"indicatieGebruiksrecht\": null,\n\t\"bestandsomvang\": 6\n}" + }, + "url": { + "raw": "{{drc_url}}/enkelvoudiginformatieobjecten", + "host": [ + "{{drc_url}}" + ], + "path": [ + "enkelvoudiginformatieobjecten" + ] + } + }, + "response": [] + } + ] + }, + { + "name": "brc-001", + "item": [ + { + "name": "(brc-001a) Besluit aanmaken is mogelijk", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "pm.test(\"Zaak aanmaken met valide gegevens geeft 201\", function() {", + " pm.response.to.have.status(201);", + "});", + "", + "var besluit = pm.response.json();", + "pm.environment.set(\"besluit_url\", besluit.url);", + "pm.environment.set(\"besluit_id\", besluit.identificatie);", + "pm.environment.set(\"besluit_verantwoordelijke_organisatie\", besluit.verantwoordelijkeOrganisatie);", + "pm.environment.set(\"besluit_body\", pm.request.body.raw);" + ], + "type": "text/javascript" + } + } + ], + "request": { + "method": "POST", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n \"verantwoordelijkeOrganisatie\": \"000000000\",\n \"besluittype\": \"{{besluittype_url}}\",\n \"datum\": \"2019-01-01\",\n \"ingangsdatum\": \"2018-01-01\"\n}" + }, + "url": { + "raw": "{{brc_url}}/besluiten", + "host": [ + "{{brc_url}}" + ], + "path": [ + "besluiten" + ] + } + }, + "response": [] + }, + { + "name": "(brc-001b) Besluit bijwerken is mogelijk", + "event": [ + { + "listen": "prerequest", + "script": { + "exec": [ + "// Retrieve the Zaak body template and modify as needed", + "var body = JSON.parse(pm.environment.get(\"besluit_body\"));", + "pm.environment.set(\"toelichting\", \"aangepaste toelichting\");", + "body.toelichting = pm.environment.get(\"toelichting\");", + "", + "// Store the modified Zaak body, allowing it to be used in the main request", + "pm.environment.set(\"request_body\", JSON.stringify(body));" + ], + "type": "text/javascript" + } + }, + { + "listen": "test", + "script": { + "exec": [ + "pm.test(\"Besluit bijwerken met valide gegevens geeft 200\", function() {", + " pm.response.to.have.status(200);", + "});", + "", + "pm.test(\"Besluit bijwerken past gegevens correct aan\", function() {", + " pm.expect(pm.response.json().toelichting).to.be.equal(pm.environment.get(\"toelichting\"));", + "});" + ], + "type": "text/javascript" + } + } + ], + "request": { + "method": "PUT", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{{request_body}}" + }, + "url": { + "raw": "{{besluit_url}}", + "host": [ + "{{besluit_url}}" + ] + } + }, + "response": [] + }, + { + "name": "(brc-001c) Besluit deels bijwerken is mogelijk", + "event": [ + { + "listen": "prerequest", + "script": { + "exec": [ + "pm.environment.set(\"bestuursorgaan\", \"aangepast bestuursorgaan\");" + ], + "type": "text/javascript" + } + }, + { + "listen": "test", + "script": { + "exec": [ + "pm.test(\"Besluit deels bijwerken met valide gegevens geeft 200\", function() {", + " pm.response.to.have.status(200);", + "});", + "", + "pm.test(\"Besluit deels bijwerken past gegevens correct aan\", function() {", + " pm.expect(pm.response.json().bestuursorgaan).to.be.equal(pm.environment.get(\"bestuursorgaan\"));", + "});" + ], + "type": "text/javascript" + } + } + ], + "request": { + "method": "PATCH", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n\t\"bestuursorgaan\": \"{{bestuursorgaan}}\"\n}" + }, + "url": { + "raw": "{{besluit_url}}", + "host": [ + "{{besluit_url}}" + ] + } + }, + "response": [] + }, + { + "name": "(brc-001d) Besluit aanmaken met ongeldige besluittype url is onmogelijk", + "event": [ + { + "listen": "prerequest", + "script": { + "exec": [ + "// Retrieve the Zaak body template and modify as needed", + "var body = JSON.parse(pm.environment.get(\"besluit_body\"));", + "body.besluittype = pm.environment.get(\"mock_url\") + \"/404\";", + "", + "// Store the modified Zaak body, allowing it to be used in the main request", + "pm.environment.set(\"request_body\", JSON.stringify(body));" + ], + "type": "text/javascript", + "packages": {} + } + }, + { + "listen": "test", + "script": { + "exec": [ + "pm.test(\"Besluit aanmaken met besluittype url die niet resulteert in 200 geeft 400\", function() {", + " pm.response.to.have.status(400);", + " ", + " // Verify that the 400 is returned for the correct reason", + " var error = pm.response.json()[\"invalidParams\"][0];", + " pm.expect(error.name).to.be.equal(\"besluittype\");", + " pm.expect(error.code).to.be.equal(\"bad-url\");", + "});", + "", + "" + ], + "type": "text/javascript", + "packages": {} + } + } + ], + "request": { + "method": "POST", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{{request_body}}" + }, + "url": { + "raw": "{{brc_url}}/besluiten", + "host": [ + "{{brc_url}}" + ], + "path": [ + "besluiten" + ] + } + }, + "response": [] + }, + { + "name": "(brc-001e) Besluit aanmaken met besluittype url die niet wijst naar Besluittype is onmogelijk", + "event": [ + { + "listen": "prerequest", + "script": { + "exec": [ + "// Retrieve the Zaak body template and modify as needed", + "var body = JSON.parse(pm.environment.get(\"besluit_body\"));", + "body.besluittype = pm.environment.get(\"mock_url\") + \"/200\";", + "", + "// Store the modified Zaak body, allowing it to be used in the main request", + "pm.environment.set(\"request_body\", JSON.stringify(body));" + ], + "type": "text/javascript", + "packages": {} + } + }, + { + "listen": "test", + "script": { + "exec": [ + "pm.test(\"Besluit aanmaken met besluittype url die niet wijst naar Besluittype-resource geeft 400\", function() {", + " pm.response.to.have.status(400);", + " ", + " // Verify that the 400 is returned for the correct reason", + " var error = pm.response.json()[\"invalidParams\"][0];", + " pm.expect(error.name).to.be.equal(\"besluittype\");", + "", + "});", + "", + "" + ], + "type": "text/javascript", + "packages": {} + } + } + ], + "request": { + "method": "POST", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{{request_body}}" + }, + "url": { + "raw": "{{brc_url}}/besluiten", + "host": [ + "{{brc_url}}" + ], + "path": [ + "besluiten" + ] + } + }, + "response": [] + }, + { + "name": "Create Besluittype for Besluit updates", + "event": [ + { + "listen": "prerequest", + "script": { + "exec": [ + "" + ], + "type": "text/javascript" + } + }, + { + "listen": "test", + "script": { + "exec": [ + "pm.environment.set(\"temp_besluittype_url\", pm.response.json().url);" + ], + "type": "text/javascript" + } + } + ], + "request": { + "method": "POST", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n \"catalogus\": \"{{catalogus_url}}\",\n \"omschrijving\": \"TEMP\",\n \"zaaktypen\": [],\n\t\"publicatieIndicatie\": false,\n\t\"informatieobjecttypen\": [],\n\t\"beginGeldigheid\": \"2019-01-01\"\n}" + }, + "url": { + "raw": "{{ztc_url}}/besluittypen", + "host": [ + "{{ztc_url}}" + ], + "path": [ + "besluittypen" + ] + } + }, + "response": [] + }, + { + "name": "(brc-001f) Besluit aanmaken met concept besluittype is onmogelijk", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "pm.test(\"Besluit aanmaken met concept besluittype geeft 400\", function() {", + " pm.response.to.have.status(400);", + " ", + " // Verify that the 400 is returned for the correct reason", + " var error = pm.response.json()[\"invalidParams\"][0];", + " pm.expect(error.name).to.be.equal(\"besluittype\");", + " pm.expect(error.code).to.be.equal(\"not-published\");", + "});", + "", + "" + ], + "type": "text/javascript", + "packages": {} + } + }, + { + "listen": "prerequest", + "script": { + "exec": [ + "// Retrieve the Zaak body template and modify as needed", + "var body = JSON.parse(pm.environment.get(\"besluit_body\"));", + "body.besluittype = pm.environment.get(\"temp_besluittype_url\");", + "", + "// Store the modified Zaak body, allowing it to be used in the main request", + "pm.environment.set(\"request_body\", JSON.stringify(body));" + ], + "type": "text/javascript", + "packages": {} + } + } + ], + "request": { + "method": "POST", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Accept-Crs", + "value": "EPSG:4326" + }, + { + "key": "Content-Crs", + "value": "EPSG:4326" + } + ], + "body": { + "mode": "raw", + "raw": "{{request_body}}" + }, + "url": { + "raw": "{{brc_url}}/besluiten", + "host": [ + "{{brc_url}}" + ], + "path": [ + "besluiten" + ] + } + }, + "response": [] + }, + { + "name": "Publish temp Besluittype", + "request": { + "method": "POST", + "header": [], + "url": { + "raw": "{{temp_besluittype_url}}/publish", + "host": [ + "{{temp_besluittype_url}}" + ], + "path": [ + "publish" + ] + } + }, + "response": [] + }, + { + "name": "(brc-001g) Besluit besluittype bijwerken is onmogelijk", + "event": [ + { + "listen": "prerequest", + "script": { + "exec": [ + "// Retrieve the Zaak body template and modify as needed", + "var body = JSON.parse(pm.environment.get(\"besluit_body\"));", + "body.besluittype = pm.environment.get(\"temp_besluittype_url\");", + "", + "// Store the modified Zaak body, allowing it to be used in the main request", + "pm.environment.set(\"request_body\", JSON.stringify(body));" + ], + "type": "text/javascript" + } + }, + { + "listen": "test", + "script": { + "exec": [ + "pm.test(\"Besluit besluittype bijwerken geeft 400\", function() {", + " pm.response.to.have.status(400);", + " ", + " // Verify that the 400 is returned for the correct reason", + " var error = pm.response.json()[\"invalidParams\"][0];", + " pm.expect(error.name).to.be.equal(\"besluittype\");", + " pm.expect(error.code).to.be.equal(\"wijzigen-niet-toegelaten\");", + "});" + ], + "type": "text/javascript" + } + } + ], + "request": { + "method": "PUT", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{{request_body}}" + }, + "url": { + "raw": "{{besluit_url}}", + "host": [ + "{{besluit_url}}" + ] + } + }, + "response": [] + }, + { + "name": "(brc-001h) Besluit besluittype deels bijwerken is onmogelijk", + "event": [ + { + "listen": "prerequest", + "script": { + "exec": [ + "" + ], + "type": "text/javascript" + } + }, + { + "listen": "test", + "script": { + "exec": [ + "pm.test(\"Besluit besluittype deels bijwerken geeft 400\", function() {", + " pm.response.to.have.status(400);", + " ", + " // Verify that the 400 is returned for the correct reason", + " var error = pm.response.json()[\"invalidParams\"][0];", + " pm.expect(error.name).to.be.equal(\"besluittype\");", + " pm.expect(error.code).to.be.equal(\"wijzigen-niet-toegelaten\");", + "});", + "", + "// If the type was modified, change it back", + "if(pm.response.code == 200) {", + " pm.sendRequest({", + " \"url\": pm.environment.get(\"besluit_url\"), ", + " \"method\": \"PATCH\",", + " \"header\": {", + " \"Accept\": \"application/json\",", + " \"Content-Type\": \"application/json\",", + " \"Authorization\": \"Bearer \" + pm.environment.get(\"jwt_token\")", + " },", + " \"body\": {", + " mode: \"raw\",", + " raw: JSON.stringify({\"besluittype\": pm.environment.get(\"besluittype_url\")})", + " }", + " }, function (err, response) {", + " console.log(response.json());", + " });", + "}" + ], + "type": "text/javascript" + } + } + ], + "request": { + "method": "PATCH", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n\t\"besluittype\": \"{{temp_besluittype_url}}\"\n}" + }, + "url": { + "raw": "{{besluit_url}}", + "host": [ + "{{besluit_url}}" + ] + } + }, + "response": [] + } + ], + "event": [ + { + "listen": "prerequest", + "script": { + "type": "text/javascript", + "exec": [ + "" + ] + } + }, + { + "listen": "test", + "script": { + "type": "text/javascript", + "exec": [ + "" + ] + } + } + ] + }, + { + "name": "brc-002", + "item": [ + { + "name": "(brc-002a) Uniciteit verantwoordelijke_organisatie en identificatie op de Besluit-resource (POST)", + "event": [ + { + "listen": "prerequest", + "script": { + "exec": [ + "// Retrieve the Zaak body template and modify as needed", + "var body = JSON.parse(pm.environment.get(\"besluit_body\"));", + "body.identificatie = pm.environment.get(\"besluit_id\");", + "", + "// Store the modified Zaak body, allowing it to be used in the main request", + "pm.environment.set(\"request_body\", JSON.stringify(body));" + ], + "type": "text/javascript", + "packages": {} + } + }, + { + "listen": "test", + "script": { + "exec": [ + "pm.test(\"Besluit aanmaken met bestaande combinatie verantwoordelijke_organisatie en identificatie geeft 400\", function() {", + " pm.response.to.have.status(400);", + " ", + " var error = pm.response.json()[\"invalidParams\"][0];", + " pm.expect(error.name).to.be.equal(\"identificatie\");", + " pm.expect(error.code).to.be.equal(\"identificatie-niet-uniek\");", + "});", + "", + "" + ], + "type": "text/javascript", + "packages": {} + } + } + ], + "request": { + "method": "POST", + "header": [ + { + "key": "Accept-Crs", + "value": "EPSG:4326" + }, + { + "key": "Content-Crs", + "value": "EPSG:4326" + }, + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{{request_body}}" + }, + "url": { + "raw": "{{brc_url}}/besluiten", + "host": [ + "{{brc_url}}" + ], + "path": [ + "besluiten" + ] + } + }, + "response": [] + }, + { + "name": "Create Besluit with unique identificatie and verantwoordelijke_organisatie", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "pm.environment.set(\"created_besluit_url\", pm.response.json().url);" + ], + "type": "text/javascript" + } + } + ], + "request": { + "method": "POST", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Content-Crs", + "value": "EPSG:4326" + }, + { + "key": "Accept-Crs", + "value": "EPSG:4326" + } + ], + "body": { + "mode": "raw", + "raw": "{{besluit_body}}" + }, + "url": { + "raw": "{{brc_url}}/besluiten", + "host": [ + "{{brc_url}}" + ], + "path": [ + "besluiten" + ] + }, + "description": "Maakt een Zaak aan die gebruikt zal worden in de tests, deze zaak wordt na de tests weer verwijderd.\n\nDe body van deze Zaak zal ook als variabele opgeslagen worden en gebruikt worden (met kleine aanpassingen iedere keer) in de requests voor de validatie tests, om te voorkomen dat telkens hetzelfde body gekopieerd moet worden." + }, + "response": [] + }, + { + "name": "(brc-002b) Besluit bijwerken identificatie aanpassen niet toegestaan", + "event": [ + { + "listen": "prerequest", + "script": { + "exec": [ + "// Retrieve the Zaak body template and modify as needed", + "var body = JSON.parse(pm.environment.get(\"besluit_body\"));", + "body.identificatie = \"nieuwe identificatie\";", + "", + "// Store the modified Zaak body, allowing it to be used in the main request", + "pm.environment.set(\"request_body\", JSON.stringify(body));" + ], + "type": "text/javascript" + } + }, + { + "listen": "test", + "script": { + "exec": [ + "pm.test(\"Besluit bijwerken identificatie geeft 400\", function() {", + " pm.response.to.have.status(400);", + " ", + " var error = pm.response.json()[\"invalidParams\"][0];", + " pm.expect(error.name).to.be.equal(\"identificatie\");", + " pm.expect(error.code).to.be.equal(\"wijzigen-niet-toegelaten\");", + "});" + ], + "type": "text/javascript" + } + } + ], + "request": { + "method": "PUT", + "header": [ + { + "key": "Accept-Crs", + "value": "EPSG:4326" + }, + { + "key": "Content-Crs", + "value": "EPSG:4326" + }, + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{{request_body}}" + }, + "url": { + "raw": "{{created_besluit_url}}", + "host": [ + "{{created_besluit_url}}" + ] + } + }, + "response": [] + }, + { + "name": "(brc-002c) Besluit deels bijwerken identificatie aanpassen niet toegestaan", + "event": [ + { + "listen": "prerequest", + "script": { + "exec": [ + "" + ], + "type": "text/javascript" + } + }, + { + "listen": "test", + "script": { + "exec": [ + "pm.test(\"Besluit deels bijwerken identificatie geeft 400\", function() {", + " pm.response.to.have.status(400);", + " ", + " var error = pm.response.json()[\"invalidParams\"][0];", + " pm.expect(error.name).to.be.equal(\"identificatie\");", + " pm.expect(error.code).to.be.equal(\"wijzigen-niet-toegelaten\");", + "});" + ], + "type": "text/javascript" + } + } + ], + "request": { + "method": "PATCH", + "header": [ + { + "key": "Accept-Crs", + "value": "EPSG:4326" + }, + { + "key": "Content-Crs", + "value": "EPSG:4326" + }, + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n\t\"identificatie\": \"{{besluit_id}}\"\n}" + }, + "url": { + "raw": "{{created_besluit_url}}", + "host": [ + "{{created_besluit_url}}" + ] + } + }, + "response": [] + }, + { + "name": "(brc-002d) Besluit bijwerken verantwoordelijke_organisatie aanpassen niet toegestaan", + "event": [ + { + "listen": "prerequest", + "script": { + "exec": [ + "// Retrieve the Zaak body template and modify as needed", + "var body = JSON.parse(pm.environment.get(\"besluit_body\"));", + "body.verantwoordelijkeOrganisatie = \"245122461\"", + "", + "// Store the modified Zaak body, allowing it to be used in the main request", + "pm.environment.set(\"request_body\", JSON.stringify(body));" + ], + "type": "text/javascript" + } + }, + { + "listen": "test", + "script": { + "exec": [ + "pm.test(\"Besluit bijwerken met bestaande combinatie verantwoordelijke_organisatie en identificatie geeft 400\", function() {", + " pm.response.to.have.status(400);", + " ", + " var error = pm.response.json()[\"invalidParams\"][0];", + " pm.expect(error.name).to.be.equal(\"verantwoordelijkeOrganisatie\");", + " pm.expect(error.code).to.be.equal(\"wijzigen-niet-toegelaten\");", + "});" + ], + "type": "text/javascript" + } + } + ], + "request": { + "method": "PUT", + "header": [ + { + "key": "Accept-Crs", + "value": "EPSG:4326" + }, + { + "key": "Content-Crs", + "value": "EPSG:4326" + }, + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{{request_body}}" + }, + "url": { + "raw": "{{created_besluit_url}}", + "host": [ + "{{created_besluit_url}}" + ] + } + }, + "response": [] + }, + { + "name": "(brc-002e) Besluit deels bijwerken verantwoordelijke_organisatie aanpassen niet toegestaan", + "event": [ + { + "listen": "prerequest", + "script": { + "exec": [ + "" + ], + "type": "text/javascript", + "packages": {} + } + }, + { + "listen": "test", + "script": { + "exec": [ + "pm.test(\"Besluit deels bijwerken met bestaande combinatie verantwoordelijke_organisatie en identificatie geeft 400\", function() {", + " pm.response.to.have.status(400);", + " ", + " var error = pm.response.json()[\"invalidParams\"][0];", + " pm.expect(error.name).to.be.equal(\"verantwoordelijkeOrganisatie\");", + " pm.expect(error.code).to.be.equal(\"wijzigen-niet-toegelaten\");", + "});", + "", + "" + ], + "type": "text/javascript", + "packages": {} + } + } + ], + "request": { + "method": "PATCH", + "header": [ + { + "key": "Accept-Crs", + "value": "EPSG:4326" + }, + { + "key": "Content-Crs", + "value": "EPSG:4326" + }, + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n\t\"verantwoordelijkeOrganisatie\": \"245122461\"\n}" + }, + "url": { + "raw": "{{created_besluit_url}}", + "host": [ + "{{created_besluit_url}}" + ] + } + }, + "response": [] + }, + { + "name": "Retrieve Besluiten for verantwoordelijke_organisatie", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "pm.environment.set(\"besluiten_for_verantwoordelijke_organisatie\", pm.response.json());" + ], + "type": "text/javascript" + } + } + ], + "request": { + "method": "GET", + "header": [ + { + "key": "Accept-Crs", + "value": "EPSG:4326" + } + ], + "url": { + "raw": "{{brc_url}}/besluiten?verantwoordelijkeOrganisatie={{besluit_verantwoordelijke_organisatie}}", + "host": [ + "{{brc_url}}" + ], + "path": [ + "besluiten" + ], + "query": [ + { + "key": "verantwoordelijkeOrganisatie", + "value": "{{besluit_verantwoordelijke_organisatie}}" + } + ] + } + }, + "response": [] + }, + { + "name": "(brc-002f) Genereer unieke identificatie voor Besluit onder verantwoordelijke_organisatie", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "pm.test(\"Besluit aanmaken zonder identificatie genereert unieke identificatie onder bronorganisatie\", function() {", + " var created_besluit_id = pm.response.json().identificatie", + " ", + " pm.environment.set(\"created_besluit_url\", pm.response.json().url);", + " ", + " pm.response.to.have.status(201);", + " ", + " // Compare the identificatie of the created Besluit with all the identificaties of other Besluiten", + " // with the same verantwoordelijke_organisatie", + " var besluiten_with_same_id = pm.environment.get(\"besluiten_for_verantwoordelijke_organisatie\").results.filter(besluit => besluit.identificatie === created_besluit_id);", + " ", + " // Verify that the identificatie for the created Besluit isn't the same as any other", + " pm.expect(besluiten_with_same_id.length).to.be.equal(0);", + "});", + "" + ], + "type": "text/javascript", + "packages": {} + } + }, + { + "listen": "prerequest", + "script": { + "exec": [ + "" + ], + "type": "text/javascript", + "packages": {} + } + } + ], + "request": { + "method": "POST", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Accept-Crs", + "value": "EPSG:4326" + }, + { + "key": "Content-Crs", + "value": "EPSG:4326" + } + ], + "body": { + "mode": "raw", + "raw": "{{besluit_body}}" + }, + "url": { + "raw": "{{brc_url}}/besluiten", + "host": [ + "{{brc_url}}" + ], + "path": [ + "besluiten" + ] + } + }, + "response": [] + } + ], + "event": [ + { + "listen": "prerequest", + "script": { + "type": "text/javascript", + "exec": [ + "" + ] + } + }, + { + "listen": "test", + "script": { + "type": "text/javascript", + "exec": [ + "" + ] + } + } + ] + }, + { + "name": "brc-003", + "item": [ + { + "name": "(brc-003a) BesluitInformatieObject aanmaken met ongeldige informatieobject url is niet toegestaan", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "pm.test(\"BesluitInformatieObject aanmaken met informatieobject url die niet resulteert in 200 geeft 400\", function() {", + " pm.response.to.have.status(400);", + " ", + " // Verify that error was thrown for correct reason", + " var error = pm.response.json()[\"invalidParams\"][0];", + " pm.expect(error.name).to.be.equal(\"informatieobject\");", + " pm.expect(error.code).to.be.equal(\"bad-url\");", + "});", + "", + "" + ], + "type": "text/javascript", + "packages": {} + } + } + ], + "request": { + "method": "POST", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n\t\"besluit\": \"{{besluit_url}}\",\n \"informatieobject\": \"{{mock_url}}/404\"\n}" + }, + "url": { + "raw": "{{brc_url}}/besluitinformatieobjecten", + "host": [ + "{{brc_url}}" + ], + "path": [ + "besluitinformatieobjecten" + ] + } + }, + "response": [] + } + ] + }, + { + "name": "brc-004", + "item": [ + { + "name": "Create different Besluit", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "pm.environment.set(\"created_besluit_url\", pm.response.json().url);", + "" + ], + "type": "text/javascript", + "packages": {} + } + }, + { + "listen": "prerequest", + "script": { + "packages": {}, + "type": "text/javascript", + "exec": [] + } + } + ], + "request": { + "method": "POST", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\r\n \"verantwoordelijkeOrganisatie\": \"000000000\",\r\n \"besluittype\": \"{{besluittype_url}}\",\r\n \"datum\": \"2019-01-01\",\r\n \"ingangsdatum\": \"2018-01-01\"\r\n}" + }, + "url": { + "raw": "{{brc_url}}/besluiten", + "host": [ + "{{brc_url}}" + ], + "path": [ + "besluiten" + ] + } + }, + "response": [] + }, + { + "name": "EnkelvoudigInformatieObject aanmaken", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "pm.test(\"EnkelvoudigInformatieObject aanmaken met valide gegevens geeft 201\", function() {", + " pm.response.to.have.status(201);", + "});", + "", + "pm.environment.set(\"informatieobject_url\", pm.response.json().url);", + "pm.environment.set(\"informatieobject_body\", pm.request.body.raw);" + ], + "type": "text/javascript", + "packages": {} + } + }, + { + "listen": "prerequest", + "script": { + "exec": [ + "pm.environment.set(\"object_inhoud\", btoa(\"string\"));", + "", + "" + ], + "type": "text/javascript", + "packages": {} + } + } + ], + "request": { + "method": "POST", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n\t\"bronorganisatie\": \"000000000\",\n\t\"creatiedatum\": \"2019-01-01\",\n\t\"titel\": \"testobject\",\n\t\"auteur\": \"testauteur\",\n\t\"taal\": \"eng\",\n\t\"inhoud\": \"{{object_inhoud}}\",\n\t\"informatieobjecttype\": \"{{informatieobjecttype_url}}\",\n \"bestandsnaam\": \"iets.pdf\",\n\t\"bestandsomvang\": 6\n}" + }, + "url": { + "raw": "{{drc_url}}/enkelvoudiginformatieobjecten", + "host": [ + "{{drc_url}}" + ], + "path": [ + "enkelvoudiginformatieobjecten" + ] + } + }, + "response": [] + }, + { + "name": "BesluitInformatieObject aanmaken", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "pm.environment.set(\"besluitinformatieobject_url\", pm.response.json().url);" + ], + "type": "text/javascript", + "packages": {} + } + } + ], + "request": { + "method": "POST", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n\t\"besluit\": \"{{created_besluit_url}}\",\n \"informatieobject\": \"{{informatieobject_url}}\"\n}" + }, + "url": { + "raw": "{{brc_url}}/besluitinformatieobjecten", + "host": [ + "{{brc_url}}" + ], + "path": [ + "besluitinformatieobjecten" + ] + } + }, + "response": [] + }, + { + "name": "(brc-004a) BesluitInformatieObject bijwerken besluit aanpassen is niet toegestaan", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "pm.test(\"BesluitInformatieObject bijwerken besluit aanpassen geeft 405\", function() {", + " pm.response.to.have.status(405);", + " ", + "5", + "});" + ], + "type": "text/javascript", + "packages": {} + } + }, + { + "listen": "prerequest", + "script": { + "exec": [ + "" + ], + "type": "text/javascript", + "packages": {} + } + } + ], + "request": { + "method": "PUT", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n\t\"besluit\": \"{{created_besluit_url}}xxx\",\n\t\"informatieobject\": \"{{informatieobject_url}}\"\n}" + }, + "url": { + "raw": "{{besluitinformatieobject_url}}", + "host": [ + "{{besluitinformatieobject_url}}" + ] + } + }, + "response": [] + }, + { + "name": "(brc-004b) BesluitInformatieObject deels bijwerken besluit aanpassen is niet toegestaan", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "pm.test(\"BesluitInformatieObject deels bijwerken besluit aanpassen geeft 405\", function() {", + " pm.response.to.have.status(405);", + " ", + "", + "});" + ], + "type": "text/javascript", + "packages": {} + } + }, + { + "listen": "prerequest", + "script": { + "exec": [ + "" + ], + "type": "text/javascript", + "packages": {} + } + } + ], + "request": { + "method": "PATCH", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n\t\"besluit\": \"{{created_besluit_url}}\"\n}" + }, + "url": { + "raw": "{{besluitinformatieobject_url}}", + "host": [ + "{{besluitinformatieobject_url}}" + ] + } + }, + "response": [] + } + ] + }, + { + "name": "brc-005", + "item": [ + { + "name": "Besluit", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "pm.environment.set(\"created_besluit_url\", pm.response.json().url);", + "" + ], + "type": "text/javascript", + "packages": {} + } + }, + { + "listen": "prerequest", + "script": { + "packages": {}, + "type": "text/javascript", + "exec": [] + } + } + ], + "request": { + "method": "POST", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\r\n \"verantwoordelijkeOrganisatie\": \"000000000\",\r\n \"besluittype\": \"{{besluittype_url}}\",\r\n \"datum\": \"2019-01-01\",\r\n \"ingangsdatum\": \"2018-01-01\"\r\n}" + }, + "url": { + "raw": "{{brc_url}}/besluiten", + "host": [ + "{{brc_url}}" + ], + "path": [ + "besluiten" + ] + } + }, + "response": [] + }, + { + "name": "Eio", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "pm.test(\"EnkelvoudigInformatieObject aanmaken met valide gegevens geeft 201\", function() {", + " pm.response.to.have.status(201);", + "});", + "", + "pm.environment.set(\"informatieobject_url\", pm.response.json().url);", + "pm.environment.set(\"informatieobject_body\", pm.request.body.raw);" + ], + "type": "text/javascript", + "packages": {} + } + }, + { + "listen": "prerequest", + "script": { + "exec": [ + "pm.environment.set(\"object_inhoud\", btoa(\"string\"));", + "", + "" + ], + "type": "text/javascript", + "packages": {} + } + } + ], + "request": { + "method": "POST", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n\t\"bronorganisatie\": \"000000000\",\n\t\"creatiedatum\": \"2019-01-01\",\n\t\"titel\": \"testobject\",\n\t\"auteur\": \"testauteur\",\n\t\"taal\": \"eng\",\n\t\"inhoud\": \"{{object_inhoud}}\",\n\t\"informatieobjecttype\": \"{{informatieobjecttype_url}}\",\n \"bestandsnaam\": \"iets.pdf\",\n\t\"bestandsomvang\": 6\n}" + }, + "url": { + "raw": "{{drc_url}}/enkelvoudiginformatieobjecten", + "host": [ + "{{drc_url}}" + ], + "path": [ + "enkelvoudiginformatieobjecten" + ] + } + }, + "response": [] + }, + { + "name": "Besluit - eio", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "pm.environment.set(\"created_besluitinformatieobject_url\", pm.response.json().url);" + ], + "type": "text/javascript", + "packages": {} + } + } + ], + "request": { + "method": "POST", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n\t\"besluit\": \"{{created_besluit_url}}\",\n\t\"informatieobject\": \"{{informatieobject_url}}\"\n}" + }, + "url": { + "raw": "{{brc_url}}/besluitinformatieobjecten", + "host": [ + "{{brc_url}}" + ], + "path": [ + "besluitinformatieobjecten" + ] + } + }, + "response": [] + }, + { + "name": "(brc-005a) BesluitInformatieObject aanmaken maakt ObjectInformatieObject aan met objectType besluit", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "var jsonData = pm.response.json();", + "", + "pm.test(\"BesluitInformatieObject aanmaken maakt een ObjectInformatieObject in DRC\", function() {", + " pm.response.to.have.status(200);", + " pm.expect(jsonData.length).to.be.equal(1);", + "});", + "", + "pm.test(\"BesluitInformatieObject aanmaken maakt een ObjectInformatieObject met objectType besluit\", function() {", + " pm.expect(jsonData[0].objectType).to.be.equal(\"besluit\");", + "});", + "", + "pm.test(\"BesluitInformatieObject aanmaken maakt een ObjectInformatieObject met correcte besluit en informatieobject\", function() {", + " pm.expect(jsonData[0].object).to.be.equal(pm.environment.get(\"created_besluit_url\"));", + " pm.expect(jsonData[0].informatieobject).to.be.equal(pm.environment.get(\"informatieobject_url\"));", + "});" + ], + "type": "text/javascript", + "packages": {} + } + } + ], + "request": { + "method": "GET", + "header": [], + "url": { + "raw": "{{drc_url}}/objectinformatieobjecten?object={{created_besluit_url}}&informatieobject={{informatieobject_url}}", + "host": [ + "{{drc_url}}" + ], + "path": [ + "objectinformatieobjecten" + ], + "query": [ + { + "key": "object", + "value": "{{created_besluit_url}}" + }, + { + "key": "informatieobject", + "value": "{{informatieobject_url}}" + } + ] + } + }, + "response": [] + }, + { + "name": "Delete BesluitInformatieObject", + "request": { + "method": "DELETE", + "header": [], + "body": { + "mode": "raw", + "raw": "" + }, + "url": { + "raw": "{{created_besluitinformatieobject_url}}", + "host": [ + "{{created_besluitinformatieobject_url}}" + ] + } + }, + "response": [] + }, + { + "name": "(brc-005b) BesluitInformatieObject verwijderen verwijdert ObjectInformatieObject uit DRC", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "pm.test(\"BesluitInformatieObject verwijderen verwijdert ObjectInformatieObject in DRC\", function() {", + " pm.response.to.have.status(200);", + " pm.expect(pm.response.json().length).to.be.equal(0);", + "});" + ], + "type": "text/javascript" + } + } + ], + "request": { + "method": "GET", + "header": [], + "url": { + "raw": "{{drc_url}}/objectinformatieobjecten?object={{created_besluit_url}}&informatieobject={{informatieobject_url}}", + "host": [ + "{{drc_url}}" + ], + "path": [ + "objectinformatieobjecten" + ], + "query": [ + { + "key": "object", + "value": "{{besluit_url}}" + }, + { + "key": "informatieobject", + "value": "{{informatieobject_url}}" + } + ] + } + }, + "response": [] + } + ] + }, + { + "name": "brc-006", + "item": [ + { + "name": "BT Copy", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "pm.environment.set(\"besluittype_omschrijving\", pm.response.json().omschrijving);\r", + "pm.environment.set(\"besluittype_url\", pm.response.json().url);" + ], + "type": "text/javascript", + "packages": {} + } + }, + { + "listen": "prerequest", + "script": { + "exec": [ + "var uuid = require('uuid');\r", + "var myUUID = uuid.v4(); \r", + "pm.environment.set(\"random_omschrijving\",myUUID);" + ], + "type": "text/javascript", + "packages": {} + } + } + ], + "request": { + "method": "POST", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n \"catalogus\": \"{{catalogus_url}}\",\n \"omschrijving\": \"{{random_omschrijving}}\",\n \"zaaktypen\": [],\n\t\"publicatieIndicatie\": false,\n\t\"informatieobjecttypen\": [\"{{informatieobject_omschrijving}}\"],\n\t\"beginGeldigheid\": \"2019-01-01\"\n}" + }, + "url": { + "raw": "{{ztc_url}}/besluittypen", + "host": [ + "{{ztc_url}}" + ], + "path": [ + "besluittypen" + ] + } + }, + "response": [] + }, + { + "name": "ZT Copy", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "if(pm.response.code == 201) {", + " var res = pm.response.json();", + "pm.environment.set(\"zaaktype_url\", res.url);", + "pm.environment.set(\"zaaktype_identificatie\", res.identificatie);", + "", + "}" + ], + "type": "text/javascript", + "packages": {} + } + }, + { + "listen": "prerequest", + "script": { + "exec": [ + "var uuid = require('uuid');", + "var myUUID = uuid.v4(); ", + "pm.environment.set(\"random_identificatie\", myUUID);", + "" + ], + "type": "text/javascript", + "packages": {} + } + } + ], + "request": { + "method": "POST", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n\t\"identificatie\": \"{{random_identificatie}}\",\n \"omschrijving\": \"zrc_tests_1\",\n \"vertrouwelijkheidaanduiding\": \"openbaar\",\n \"doel\": \"test doel\",\n \"verantwoordelijke\":\"X\",\n \"aanleiding\": \"test aanleiding\",\n \"indicatieInternOfExtern\": \"extern\",\n \"handelingInitiator\": \"indienen\",\n \"onderwerp\": \"openbare ruimte\",\n \"handelingBehandelaar\": \"behandelen\",\n \"doorlooptijd\": \"P10D\",\n \"opschortingEnAanhoudingMogelijk\": false,\n \"verlengingMogelijk\": true,\n \"publicatieIndicatie\": false,\n \"productenOfDiensten\": [\n \"https://ref.tst.vng.cloud/standaard/\"\n ],\n \"selectielijstProcestype\": \"{{procestype_procestermijn_nihil_url}}\",\n \"referentieproces\": {\n \"naam\": \"test\",\n \"link\": \"\"\n },\n \"deelzaaktypen\": [\n \"{{deelzaaktype_identificatie}}\"\n ],\n \"catalogus\": \"{{catalogus_url}}\",\n \"statustypen\": [\n \n ],\n \"resultaattypen\": [\n ],\n \"eigenschappen\": [\n ],\n \"informatieobjecttypen\": [],\n \"besluittypen\": [\n \"{{besluittype_omschrijving}}\"\n ],\n \"gerelateerdeZaaktypen\": [],\n \"beginGeldigheid\": \"2019-01-01\",\n \"versiedatum\": \"2019-01-01\",\n \"concept\": true,\n \"verlengingstermijn\": \"P5D\"\n}" + }, + "url": { + "raw": "{{ztc_url}}/zaaktypen", + "host": [ + "{{ztc_url}}" + ], + "path": [ + "zaaktypen" + ] + } + }, + "response": [] + }, + { + "name": "Publish Besluittype Copy", + "request": { + "method": "POST", + "header": [], + "url": { + "raw": "{{besluittype_url}}/publish", + "host": [ + "{{besluittype_url}}" + ], + "path": [ + "publish" + ] + } + }, + "response": [] + }, + { + "name": "Publish Zaaktype Copy", + "request": { + "method": "POST", + "header": [], + "url": { + "raw": "{{zaaktype_url}}/publish", + "host": [ + "{{zaaktype_url}}" + ], + "path": [ + "publish" + ] + } + }, + "response": [] + }, + { + "name": "Zaak Copy", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "if(pm.response.code == 201) {", + " pm.environment.set(\"created_zaak_url\", pm.response.json().url);", + "}" + ], + "type": "text/javascript", + "packages": {} + } + }, + { + "listen": "prerequest", + "script": { + "exec": [ + "" + ], + "type": "text/javascript", + "packages": {} + } + } + ], + "request": { + "method": "POST", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Accept-Crs", + "value": "EPSG:4326" + }, + { + "key": "Content-Crs", + "value": "EPSG:4326" + } + ], + "body": { + "mode": "raw", + "raw": "{\r\n \"bronorganisatie\": \"000000000\",\r\n \"omschrijving\": \"string\",\r\n \"toelichting\": \"string\",\r\n \"registratiedatum\": \"2019-04-09\",\r\n \"verantwoordelijkeOrganisatie\": \"000000000\",\r\n \"zaaktype\": \"{{zaaktype_url}}\",\r\n \"startdatum\": \"2019-04-09\",\r\n \"einddatumGepland\": \"2019-04-20\",\r\n \"uiterlijkeEinddatumAfdoening\": \"2019-04-09\",\r\n \"publicatiedatum\": \"2019-04-09\",\r\n \"vertrouwelijkheidaanduiding\": \"openbaar\",\r\n \"betalingsindicatie\": \"geheel\",\r\n \"laatsteBetaalDatum\": \"2019-01-01\",\r\n \"zaakgeometrie\": {\r\n \"type\": \"Point\",\r\n \"coordinates\": [\r\n 53,\r\n 5\r\n ]\r\n },\r\n \"opschorting\": {\r\n \"indicatie\": true,\r\n \"reden\": \"string\"\r\n },\r\n \"selectielijstklasse\": \"{{selectielijstklasse_url}}\",\r\n \"archiefstatus\": \"nog_te_archiveren\",\r\n \"deelzaaktypen\" : [\"{{deelzaaktype_url}}\"]\r\n}" + }, + "url": { + "raw": "{{zrc_url}}/zaken", + "host": [ + "{{zrc_url}}" + ], + "path": [ + "zaken" + ] + } + }, + "response": [] + }, + { + "name": "Besluit Copy", + "event": [ + { + "listen": "prerequest", + "script": { + "exec": [ + "" + ], + "type": "text/javascript", + "packages": {} + } + }, + { + "listen": "test", + "script": { + "exec": [ + "" + ], + "type": "text/javascript", + "packages": {} + } + } + ], + "request": { + "method": "POST", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\r\n \"verantwoordelijkeOrganisatie\": \"000000000\",\r\n \"besluittype\": \"{{besluittype_url}}\",\r\n \"zaak\":\"{{created_zaak_url}}\",\r\n \"datum\": \"2019-01-01\",\r\n \"ingangsdatum\": \"2018-01-01\"\r\n}" + }, + "url": { + "raw": "{{brc_url}}/besluiten", + "host": [ + "{{brc_url}}" + ], + "path": [ + "besluiten" + ] + } + }, + "response": [] + }, + { + "name": "brc-006a zaak-besluitrelatie ook in ZRC", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "\r", + "pm.test(\"Brc-006a Besluit terug te vinden in ZRC\", function() {\r", + " pm.response.to.have.status(200);\r", + " pm.expect(pm.response.json().length).to.be.equal(1);\r", + "});" + ], + "type": "text/javascript", + "packages": {} + } + } + ], + "request": { + "method": "GET", + "header": [ + { + "key": "Accept-Crs", + "value": "EPSG:4326", + "type": "text" + } + ], + "url": { + "raw": "{{created_zaak_url}}/besluiten", + "host": [ + "{{created_zaak_url}}" + ], + "path": [ + "besluiten" + ] + } + }, + "response": [] + } + ] + }, + { + "name": "brc-007", + "item": [ + { + "name": "BT", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "pm.environment.set(\"besluittype_omschrijving\", pm.response.json().omschrijving);\r", + "pm.environment.set(\"besluittype_url\", pm.response.json().url);" + ], + "type": "text/javascript", + "packages": {} + } + }, + { + "listen": "prerequest", + "script": { + "exec": [ + "var uuid = require('uuid');\r", + "var myUUID = uuid.v4(); \r", + "pm.environment.set(\"random_omschrijving\",myUUID);" + ], + "type": "text/javascript", + "packages": {} + } + } + ], + "request": { + "method": "POST", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n \"catalogus\": \"{{catalogus_url}}\",\n \"omschrijving\": \"{{random_omschrijving}}\",\n \"zaaktypen\": [],\n\t\"publicatieIndicatie\": false,\n\t\"informatieobjecttypen\": [\"{{informatieobject_omschrijving}}\"],\n\t\"beginGeldigheid\": \"2019-01-01\"\n}" + }, + "url": { + "raw": "{{ztc_url}}/besluittypen", + "host": [ + "{{ztc_url}}" + ], + "path": [ + "besluittypen" + ] + } + }, + "response": [] + }, + { + "name": "ZT", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "if(pm.response.code == 201) {", + " var res = pm.response.json();", + "pm.environment.set(\"zaaktype_url\", res.url);", + "pm.environment.set(\"zaaktype_identificatie\", res.identificatie);", + "", + "}" + ], + "type": "text/javascript", + "packages": {} + } + }, + { + "listen": "prerequest", + "script": { + "exec": [ + "var uuid = require('uuid');", + "var myUUID = uuid.v4(); ", + "pm.environment.set(\"random_identificatie\", myUUID);", + "" + ], + "type": "text/javascript", + "packages": {} + } + } + ], + "request": { + "method": "POST", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n \"identificatie\": \"{{random_identificatie}}\",\n \"omschrijving\": \"zrc_tests_1\",\n \"vertrouwelijkheidaanduiding\": \"openbaar\",\n \"doel\": \"test doel\",\n \"verantwoordelijke\": \"X\",\n \"aanleiding\": \"test aanleiding\",\n \"indicatieInternOfExtern\": \"extern\",\n \"handelingInitiator\": \"indienen\",\n \"onderwerp\": \"openbare ruimte\",\n \"handelingBehandelaar\": \"behandelen\",\n \"doorlooptijd\": \"P10D\",\n \"opschortingEnAanhoudingMogelijk\": false,\n \"verlengingMogelijk\": true,\n \"publicatieIndicatie\": false,\n \"productenOfDiensten\": [\n \"https://ref.tst.vng.cloud/standaard/\"\n ],\n \"selectielijstProcestype\": \"{{procestype_procestermijn_nihil_url}}\",\n \"referentieproces\": {\n \"naam\": \"test\",\n \"link\": \"\"\n },\n \"deelzaaktypen\": [\n \"{{deelzaaktype_identificatie}}\"\n ],\n \"catalogus\": \"{{catalogus_url}}\",\n \"statustypen\": [],\n \"resultaattypen\": [],\n \"eigenschappen\": [],\n \"informatieobjecttypen\": [],\n \"besluittypen\": [],\n \"gerelateerdeZaaktypen\": [],\n \"beginGeldigheid\": \"2019-01-01\",\n \"versiedatum\": \"2019-01-01\",\n \"concept\": true,\n \"verlengingstermijn\": \"P5D\"\n}" + }, + "url": { + "raw": "{{ztc_url}}/zaaktypen", + "host": [ + "{{ztc_url}}" + ], + "path": [ + "zaaktypen" + ] + } + }, + "response": [] + }, + { + "name": "Publish Besluittype", + "request": { + "method": "POST", + "header": [], + "url": { + "raw": "{{besluittype_url}}/publish", + "host": [ + "{{besluittype_url}}" + ], + "path": [ + "publish" + ] + } + }, + "response": [] + }, + { + "name": "Publish ZT", + "request": { + "method": "POST", + "header": [], + "url": { + "raw": "{{zaaktype_url}}/publish", + "host": [ + "{{zaaktype_url}}" + ], + "path": [ + "publish" + ] + } + }, + "response": [] + }, + { + "name": "Zaak", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "if(pm.response.code == 201) {", + " pm.environment.set(\"created_zaak_url\", pm.response.json().url);", + "}" + ], + "type": "text/javascript", + "packages": {} + } + }, + { + "listen": "prerequest", + "script": { + "exec": [ + "" + ], + "type": "text/javascript", + "packages": {} + } + } + ], + "request": { + "method": "POST", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Accept-Crs", + "value": "EPSG:4326" + }, + { + "key": "Content-Crs", + "value": "EPSG:4326" + } + ], + "body": { + "mode": "raw", + "raw": "{\r\n \"bronorganisatie\": \"000000000\",\r\n \"omschrijving\": \"string\",\r\n \"toelichting\": \"string\",\r\n \"registratiedatum\": \"2019-04-09\",\r\n \"verantwoordelijkeOrganisatie\": \"000000000\",\r\n \"zaaktype\": \"{{zaaktype_url}}\",\r\n \"startdatum\": \"2019-04-09\",\r\n \"einddatumGepland\": \"2019-04-20\",\r\n \"uiterlijkeEinddatumAfdoening\": \"2019-04-09\",\r\n \"publicatiedatum\": \"2019-04-09\",\r\n \"vertrouwelijkheidaanduiding\": \"openbaar\",\r\n \"betalingsindicatie\": \"geheel\",\r\n \"laatsteBetaalDatum\": \"2019-01-01\",\r\n \"zaakgeometrie\": {\r\n \"type\": \"Point\",\r\n \"coordinates\": [\r\n 53,\r\n 5\r\n ]\r\n },\r\n \"opschorting\": {\r\n \"indicatie\": true,\r\n \"reden\": \"string\"\r\n },\r\n \"selectielijstklasse\": \"{{selectielijstklasse_url}}\",\r\n \"archiefstatus\": \"nog_te_archiveren\",\r\n \"deelzaaktypen\" : [\"{{deelzaaktype_url}}\"]\r\n}" + }, + "url": { + "raw": "{{zrc_url}}/zaken", + "host": [ + "{{zrc_url}}" + ], + "path": [ + "zaken" + ] + } + }, + "response": [] + }, + { + "name": "Brc-007a zaak besluit relatie niet mogelijk", + "event": [ + { + "listen": "prerequest", + "script": { + "exec": [ + "" + ], + "type": "text/javascript", + "packages": {} + } + }, + { + "listen": "test", + "script": { + "exec": [ + "pm.test(\"Besl;uit -zaak met niet gerelateerde types geeft 400\", function() {\r", + " pm.response.to.have.status(400);\r", + " \r", + " // Verify that the 400 is returned for the correct reason\r", + " var error = pm.response.json()[\"invalidParams\"][0];\r", + " pm.expect(error.name).to.be.equal(\"nonFieldErrors\");\r", + "});" + ], + "type": "text/javascript", + "packages": {} + } + } + ], + "request": { + "method": "POST", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\r\n \"verantwoordelijkeOrganisatie\": \"000000000\",\r\n \"besluittype\": \"{{besluittype_url}}\",\r\n \"zaak\":\"{{created_zaak_url}}\",\r\n \"datum\": \"2019-01-01\",\r\n \"ingangsdatum\": \"2018-01-01\"\r\n}" + }, + "url": { + "raw": "{{brc_url}}/besluiten", + "host": [ + "{{brc_url}}" + ], + "path": [ + "besluiten" + ] + } + }, + "response": [] + } + ] + }, + { + "name": "brc-008", + "item": [ + { + "name": "BT", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "pm.environment.set(\"besluittype_omschrijving\", pm.response.json().omschrijving);\r", + "pm.environment.set(\"besluittype_url\", pm.response.json().url);" + ], + "type": "text/javascript", + "packages": {} + } + }, + { + "listen": "prerequest", + "script": { + "exec": [ + "var uuid = require('uuid');\r", + "var myUUID = uuid.v4(); \r", + "pm.environment.set(\"random_omschrijving\",myUUID);" + ], + "type": "text/javascript", + "packages": {} + } + } + ], + "request": { + "method": "POST", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n \"catalogus\": \"{{catalogus_url}}\",\n \"omschrijving\": \"{{random_omschrijving}}\",\n \"zaaktypen\": [],\n\t\"publicatieIndicatie\": false,\n\t\"informatieobjecttypen\": [\"{{informatieobject_omschrijving}}\"],\n\t\"beginGeldigheid\": \"2019-01-01\"\n}" + }, + "url": { + "raw": "{{ztc_url}}/besluittypen", + "host": [ + "{{ztc_url}}" + ], + "path": [ + "besluittypen" + ] + } + }, + "response": [] + }, + { + "name": "IOT", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "if(pm.response.code == 201) {\r", + " pm.environment.set(\"informatieobjecttype_url\", pm.response.json().url);\r", + "}" + ], + "type": "text/javascript", + "packages": {} + } + }, + { + "listen": "prerequest", + "script": { + "exec": [ + "var uuid = require('uuid');\r", + "var myUUID = uuid.v4(); \r", + "pm.environment.set(\"informatieobject_omschrijving\", myUUID);" + ], + "type": "text/javascript", + "packages": {} + } + } + ], + "request": { + "method": "POST", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n\t\"catalogus\": \"{{catalogus_url}}\",\n\t\"omschrijving\": \"{{informatieobject_omschrijving}}\",\n\t\"vertrouwelijkheidaanduiding\": \"openbaar\",\n\t\"beginGeldigheid\": \"2019-01-01\",\n\t\"informatieobjectcategorie\": \"document\"\n}" + }, + "url": { + "raw": "{{ztc_url}}/informatieobjecttypen", + "host": [ + "{{ztc_url}}" + ], + "path": [ + "informatieobjecttypen" + ] + } + }, + "response": [] + }, + { + "name": "Publish Besluittype", + "request": { + "method": "POST", + "header": [], + "url": { + "raw": "{{besluittype_url}}/publish", + "host": [ + "{{besluittype_url}}" + ], + "path": [ + "publish" + ] + } + }, + "response": [] + }, + { + "name": "Publish IOT", + "request": { + "method": "POST", + "header": [], + "url": { + "raw": "{{informatieobjecttype_url}}/publish", + "host": [ + "{{informatieobjecttype_url}}" + ], + "path": [ + "publish" + ] + } + }, + "response": [] + }, + { + "name": "EIO", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "pm.test(\"EnkelvoudigInformatieObject aanmaken met valide gegevens geeft 201\", function() {", + " pm.response.to.have.status(201);", + "});", + "", + "pm.environment.set(\"informatieobject_url\", pm.response.json().url);", + "" + ], + "type": "text/javascript", + "packages": {} + } + }, + { + "listen": "prerequest", + "script": { + "exec": [ + "" + ], + "type": "text/javascript", + "packages": {} + } + } + ], + "request": { + "method": "POST", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n\t\"bronorganisatie\": \"000000000\",\n\t\"creatiedatum\": \"2019-01-01\",\n\t\"titel\": \"testobject\",\n\t\"auteur\": \"testauteur\",\n\t\"taal\": \"eng\",\n\t\"inhoud\": \"c3RyaW5n\",\n\t\"informatieobjecttype\": \"{{informatieobjecttype_url}}\",\n \"bestandsnaam\": \"iets.pdf\",\n\t\"bestandsomvang\": 6\n}" + }, + "url": { + "raw": "{{drc_url}}/enkelvoudiginformatieobjecten", + "host": [ + "{{drc_url}}" + ], + "path": [ + "enkelvoudiginformatieobjecten" + ] + } + }, + "response": [] + }, + { + "name": "Besluit", + "event": [ + { + "listen": "prerequest", + "script": { + "exec": [ + "" + ], + "type": "text/javascript", + "packages": {} + } + }, + { + "listen": "test", + "script": { + "exec": [ + "pm.environment.set(\"besluit_url\", pm.response.json().url);" + ], + "type": "text/javascript", + "packages": {} + } + } + ], + "request": { + "method": "POST", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\r\n \"verantwoordelijkeOrganisatie\": \"000000000\",\r\n \"besluittype\": \"{{besluittype_url}}\",\r\n \"zaak\":null,\r\n \"datum\": \"2019-01-01\",\r\n \"ingangsdatum\": \"2018-01-01\"\r\n}" + }, + "url": { + "raw": "{{brc_url}}/besluiten", + "host": [ + "{{brc_url}}" + ], + "path": [ + "besluiten" + ] + } + }, + "response": [] + }, + { + "name": "(brc-008a) BesluitInformatieObject aanmaken bij Besluit met informatieobjecttype niet in Besluit.besluittype.informatieobjecttypen is onmogelijk", + "event": [ + { + "listen": "prerequest", + "script": { + "exec": [ + "" + ], + "type": "text/javascript", + "packages": {} + } + }, + { + "listen": "test", + "script": { + "exec": [ + "pm.test(\"BesluitInformatieObject aanmaken bij Besluit met informatieobjecttype niet in Besluit.besluittype.informatieobjecttypen geeft 400\", function() {", + " pm.response.to.have.status(400);", + " ", + " // Verify that the 400 is returned for the correct reason", + " var error = pm.response.json()[\"invalidParams\"][0];", + " pm.expect(error.name).to.be.equal(\"nonFieldErrors\");", + "});" + ], + "type": "text/javascript", + "packages": {} + } + } + ], + "request": { + "method": "POST", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\r\n \"informatieobject\": \"{{informatieobject_url}}\",\r\n \"besluit\": \"{{besluit_url}}\"\r\n}" + }, + "url": { + "raw": "{{brc_url}}/besluitinformatieobjecten", + "host": [ + "{{brc_url}}" + ], + "path": [ + "besluitinformatieobjecten" + ] + } + }, + "response": [] + } + ] + }, + { + "name": "brc-009", + "item": [ + { + "name": "IOT", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "if(pm.response.code == 201) {\r", + " pm.environment.set(\"informatieobjecttype_url\", pm.response.json().url);\r", + "}" + ], + "type": "text/javascript", + "packages": {} + } + }, + { + "listen": "prerequest", + "script": { + "exec": [ + "var uuid = require('uuid');\r", + "var myUUID = uuid.v4(); \r", + "pm.environment.set(\"informatieobject_omschrijving\", myUUID);" + ], + "type": "text/javascript", + "packages": {} + } + } + ], + "request": { + "method": "POST", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n\t\"catalogus\": \"{{catalogus_url}}\",\n\t\"omschrijving\": \"{{informatieobject_omschrijving}}\",\n\t\"vertrouwelijkheidaanduiding\": \"openbaar\",\n\t\"beginGeldigheid\": \"2019-01-01\",\n\t\"informatieobjectcategorie\": \"document\"\n}" + }, + "url": { + "raw": "{{ztc_url}}/informatieobjecttypen", + "host": [ + "{{ztc_url}}" + ], + "path": [ + "informatieobjecttypen" + ] + } + }, + "response": [] + }, + { + "name": "BT", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "pm.environment.set(\"besluittype_omschrijving\", pm.response.json().omschrijving);\r", + "pm.environment.set(\"besluittype_url\", pm.response.json().url);" + ], + "type": "text/javascript", + "packages": {} + } + }, + { + "listen": "prerequest", + "script": { + "exec": [ + "var uuid = require('uuid');\r", + "var myUUID = uuid.v4(); \r", + "pm.environment.set(\"random_omschrijving\",myUUID);" + ], + "type": "text/javascript", + "packages": {} + } + } + ], + "request": { + "method": "POST", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n \"catalogus\": \"{{catalogus_url}}\",\n \"omschrijving\": \"{{random_omschrijving}}\",\n \"zaaktypen\": [],\n\t\"publicatieIndicatie\": false,\n\t\"informatieobjecttypen\": [\"{{informatieobject_omschrijving}}\"],\n\t\"beginGeldigheid\": \"2019-01-01\"\n}" + }, + "url": { + "raw": "{{ztc_url}}/besluittypen", + "host": [ + "{{ztc_url}}" + ], + "path": [ + "besluittypen" + ] + } + }, + "response": [] + }, + { + "name": "Publish Besluittype Copy", + "request": { + "method": "POST", + "header": [], + "url": { + "raw": "{{besluittype_url}}/publish", + "host": [ + "{{besluittype_url}}" + ], + "path": [ + "publish" + ] + } + }, + "response": [] + }, + { + "name": "Publish IOT Copy", + "request": { + "method": "POST", + "header": [], + "url": { + "raw": "{{informatieobjecttype_url}}/publish", + "host": [ + "{{informatieobjecttype_url}}" + ], + "path": [ + "publish" + ] + } + }, + "response": [] + }, + { + "name": "Besluit Copy", + "event": [ + { + "listen": "prerequest", + "script": { + "exec": [ + "" + ], + "type": "text/javascript", + "packages": {} + } + }, + { + "listen": "test", + "script": { + "exec": [ + "pm.environment.set(\"besluit_url\", pm.response.json().url);" + ], + "type": "text/javascript", + "packages": {} + } + } + ], + "request": { + "method": "POST", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\r\n \"verantwoordelijkeOrganisatie\": \"000000000\",\r\n \"besluittype\": \"{{besluittype_url}}\",\r\n \"zaak\":null,\r\n \"datum\": \"2019-01-01\",\r\n \"ingangsdatum\": \"2018-01-01\"\r\n}" + }, + "url": { + "raw": "{{brc_url}}/besluiten", + "host": [ + "{{brc_url}}" + ], + "path": [ + "besluiten" + ] + } + }, + "response": [] + }, + { + "name": "EIO Copy", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "pm.test(\"EnkelvoudigInformatieObject aanmaken met valide gegevens geeft 201\", function() {", + " pm.response.to.have.status(201);", + "});", + "", + "pm.environment.set(\"informatieobject_url\", pm.response.json().url);", + "" + ], + "type": "text/javascript", + "packages": {} + } + }, + { + "listen": "prerequest", + "script": { + "exec": [ + "" + ], + "type": "text/javascript", + "packages": {} + } + } + ], + "request": { + "method": "POST", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n\t\"bronorganisatie\": \"000000000\",\n\t\"creatiedatum\": \"2019-01-01\",\n\t\"titel\": \"testobject\",\n\t\"auteur\": \"testauteur\",\n\t\"taal\": \"eng\",\n\t\"inhoud\": \"c3RyaW5n\",\n\t\"informatieobjecttype\": \"{{informatieobjecttype_url}}\",\n \"bestandsnaam\": \"iets.pdf\",\n\t\"bestandsomvang\": 6\n}" + }, + "url": { + "raw": "{{drc_url}}/enkelvoudiginformatieobjecten", + "host": [ + "{{drc_url}}" + ], + "path": [ + "enkelvoudiginformatieobjecten" + ] + } + }, + "response": [] + }, + { + "name": "BesluitInformatieObject", + "event": [ + { + "listen": "prerequest", + "script": { + "exec": [ + "" + ], + "type": "text/javascript", + "packages": {} + } + }, + { + "listen": "test", + "script": { + "exec": [ + "pm.environment.set(\"besluitinformatieobject_url\", pm.response.json().url);" + ], + "type": "text/javascript", + "packages": {} + } + } + ], + "request": { + "method": "POST", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\r\n \"informatieobject\": \"{{informatieobject_url}}\",\r\n \"besluit\": \"{{besluit_url}}\"\r\n}" + }, + "url": { + "raw": "{{brc_url}}/besluitinformatieobjecten", + "host": [ + "{{brc_url}}" + ], + "path": [ + "besluitinformatieobjecten" + ] + } + }, + "response": [] + }, + { + "name": "(brc-009a) Besluit verwijderen cascade door naar gerelateerde BesluitInformatieObjecten Copy", + "event": [ + { + "listen": "prerequest", + "script": { + "exec": [ + "pm.variables.set(\"encoded_url\", encodeURIComponent(pm.environment.get(\"created_besluit_url\")))" + ], + "type": "text/javascript", + "packages": {} + } + }, + { + "listen": "test", + "script": { + "exec": [ + "pm.test(\"Besluit heeft gerelateerd BesluitInformatieObjecten\", function() {", + " var res = pm.response.json();", + " pm.expect(Array.isArray(res));", + " pm.expect(res.length).to.be.equal(1);", + "});", + "", + "" + ], + "type": "text/javascript", + "packages": {} + } + } + ], + "request": { + "method": "GET", + "header": [], + "url": { + "raw": "{{brc_url}}/besluitinformatieobjecten?besluit={{besluit_url}}", + "host": [ + "{{brc_url}}" + ], + "path": [ + "besluitinformatieobjecten" + ], + "query": [ + { + "key": "besluit", + "value": "{{besluit_url}}" + } + ] + } + }, + "response": [] + }, + { + "name": "(brc-009b) relatie ook in drc", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "pm.test(\"Drc heeft relatie besluit -eio\", function() {", + " var res = pm.response.json();", + " pm.expect(Array.isArray(res));", + " pm.expect(res.length).to.be.equal(1);", + "});", + "" + ], + "type": "text/javascript", + "packages": {} + } + } + ], + "request": { + "method": "GET", + "header": [], + "url": { + "raw": "{{drc_url}}/objectinformatieobjecten?object={{besluit_url}}&informatieobject={{informatieobject_url}}", + "host": [ + "{{drc_url}}" + ], + "path": [ + "objectinformatieobjecten" + ], + "query": [ + { + "key": "object", + "value": "{{besluit_url}}" + }, + { + "key": "informatieobject", + "value": "{{informatieobject_url}}" + } + ] + } + }, + "response": [] + }, + { + "name": "Delete created Besluit", + "request": { + "method": "DELETE", + "header": [], + "body": { + "mode": "raw", + "raw": "" + }, + "url": { + "raw": "{{besluit_url}}", + "host": [ + "{{besluit_url}}" + ] + } + }, + "response": [] + }, + { + "name": "(brc-009c) Besluit verwijderen cascade door naar gerelateerde BesluitInformatieObjecten", + "event": [ + { + "listen": "prerequest", + "script": { + "exec": [ + "pm.variables.set(\"encoded_url\", encodeURIComponent(pm.environment.get(\"created_besluit_url\")))" + ], + "type": "text/javascript", + "packages": {} + } + }, + { + "listen": "test", + "script": { + "exec": [ + "pm.test(\"Besluit verwijderen verwijdert ook alle gerelateerde BesluitInformatieObjecten uit het BRC\", function() {", + " var res = pm.response.json();", + " pm.expect(Array.isArray(res));", + " pm.expect(res.length).to.be.equal(0);", + "});", + "", + "" + ], + "type": "text/javascript", + "packages": {} + } + } + ], + "request": { + "method": "GET", + "header": [], + "url": { + "raw": "{{brc_url}}/besluitinformatieobjecten?besluit={{besluit_url}}", + "host": [ + "{{brc_url}}" + ], + "path": [ + "besluitinformatieobjecten" + ], + "query": [ + { + "key": "besluit", + "value": "{{besluit_url}}" + } + ] + } + }, + "response": [] + }, + { + "name": "(brc-009d) Besluit verwijderen cascade door naar gerelateerde audit trail", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "pm.test(\"Besluit verwijderen verwijdert ook de gerelateerde audit trail uit het BRC\", function() {", + " pm.response.to.have.status(404);", + "});", + "", + "" + ], + "type": "text/javascript", + "packages": {} + } + } + ], + "request": { + "method": "GET", + "header": [], + "url": { + "raw": "{{besluit_url}}/audittrail", + "host": [ + "{{besluit_url}}" + ], + "path": [ + "audittrail" + ] + } + }, + "response": [] + }, + { + "name": "(brc-009e) Besluit verwijderen cascade door naar drc", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "pm.test(\"Drc heeft geen relatie besluit -eio\", function() {", + " var res = pm.response.json();", + " pm.expect(Array.isArray(res));", + " pm.expect(res.length).to.be.equal(0);", + "});", + "", + "" + ], + "type": "text/javascript", + "packages": {} + } + } + ], + "request": { + "method": "GET", + "header": [], + "url": { + "raw": "{{drc_url}}/objectinformatieobjecten?object={{besluit_url}}&informatieobject={{informatieobject_url}}", + "host": [ + "{{drc_url}}" + ], + "path": [ + "objectinformatieobjecten" + ], + "query": [ + { + "key": "object", + "value": "{{besluit_url}}" + }, + { + "key": "informatieobject", + "value": "{{informatieobject_url}}" + } + ] + } + }, + "response": [] + } + ] + } + ], + "description": "Bevat alle business logic tests voor het Besluitregistratiecomponent (BRC)", + "event": [ + { + "listen": "prerequest", + "script": { + "type": "text/javascript", + "exec": [ + "" + ] + } + }, + { + "listen": "test", + "script": { + "type": "text/javascript", + "exec": [ + "" + ] + } + } + ] + }, + { + "name": "ztc", + "item": [ + { + "name": "setUp", + "item": [ + { + "name": "set full token", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "" + ], + "type": "text/javascript", + "packages": {} + } + }, + { + "listen": "prerequest", + "script": { + "exec": [ + " pm.environment.set(\"jwt_token\", pm.environment.get(\"jwt_full\"));\r", + " var origId = pm.environment.get(\"_original_client_id\");", + " var origSecret = pm.environment.get(\"_original_secret\");", + " if (origId) { pm.environment.set(\"client_id\", origId); }", + " if (origSecret) { pm.environment.set(\"secret\", origSecret); }", + " pm.environment.set(\"secret\", pm.environment.get(\"secret\") || \"procest-admin-secret-key-for-testing\");", + " " + ], + "type": "text/javascript", + "packages": {} + } + } + ], + "request": { + "method": "GET", + "header": [], + "url": { + "raw": "{{ztc_url}}/catalogussen", + "host": [ + "{{ztc_url}}" + ], + "path": [ + "catalogussen" + ] + } + }, + "response": [] + }, + { + "name": "(ZTC) Retrieve existing Catalogus", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "pm.environment.unset(\"besluittype_url\");", + "pm.environment.unset(\"informatieobjecttype_url\");" + ], + "type": "text/javascript", + "packages": {} + } + }, + { + "listen": "prerequest", + "script": { + "exec": [ + "pm.environment.unset(\"selectielijst_page\")" + ], + "type": "text/javascript", + "packages": {} + } + } + ], + "request": { + "method": "GET", + "header": [], + "url": { + "raw": "{{ztc_url}}/catalogussen?domein=ZGWT", + "host": [ + "{{ztc_url}}" + ], + "path": [ + "catalogussen" + ], + "query": [ + { + "key": "domein", + "value": "ZGWT" + } + ] + } + }, + "response": [] + }, + { + "name": "Get Resultaattypeomschrijving", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "pm.environment.set(\"resultaattypeomschrijving_url\", pm.response.json()[0].url);" + ], + "type": "text/javascript" + } + } + ], + "request": { + "method": "GET", + "header": [], + "url": { + "raw": "{{referentielijst_url}}/resultaattypeomschrijvingen", + "host": [ + "{{referentielijst_url}}" + ], + "path": [ + "resultaattypeomschrijvingen" + ] + } + }, + "response": [] + }, + { + "name": "Create Besluittype", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "pm.environment.set(\"besluittype_url\", pm.response.json().url);" + ], + "type": "text/javascript" + } + } + ], + "request": { + "method": "POST", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n \"catalogus\": \"{{catalogus_url}}\",\n \"omschrijving\": \"test\",\n \"zaaktypen\": [],\n\t\"publicatieIndicatie\": false,\n\t\"informatieobjecttypen\": [],\n\t\"beginGeldigheid\": \"2019-01-01\"\n}" + }, + "url": { + "raw": "{{ztc_url}}/besluittypen", + "host": [ + "{{ztc_url}}" + ], + "path": [ + "besluittypen" + ] + } + }, + "response": [] + }, + { + "name": "Create InformatieObjecttype", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "pm.environment.set(\"informatieobjecttype_url\", pm.response.json().url);", + "pm.environment.set(\"informatieobjecttype_body\", pm.request.body.raw);" + ], + "type": "text/javascript", + "packages": {} + } + } + ], + "request": { + "method": "POST", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n\t\"catalogus\": \"{{catalogus_url}}\",\n\t\"omschrijving\": \"informatieobject1\",\n\t\"vertrouwelijkheidaanduiding\": \"openbaar\",\n\t\"beginGeldigheid\": \"2019-01-01\"\n}" + }, + "url": { + "raw": "{{ztc_url}}/informatieobjecttypen", + "host": [ + "{{ztc_url}}" + ], + "path": [ + "informatieobjecttypen" + ] + } + }, + "response": [] + }, + { + "name": "Create Applicatie without scope geforceerd_verwijderen", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "pm.environment.set(\"applicatie_url\", pm.response.json().url);" + ], + "type": "text/javascript" + } + } + ], + "request": { + "method": "POST", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n \"clientIds\": [\n \"{{client_id_limited}}\"\n ],\n \"label\": \"Demo User for catalogi concept tests\",\n \"heeftAlleAutorisaties\": false,\n \"autorisaties\": [\n {\n \"component\": \"ztc\",\n \"componentWeergave\": \"Zaaktypecatalogus\",\n \"scopes\": [\n \t\"catalogi.lezen\",\n \"catalogi.schrijven\"\n ]\n }\n ]\n}" + }, + "url": { + "raw": "{{ac_url}}/applicaties", + "host": [ + "{{ac_url}}" + ], + "path": [ + "applicaties" + ] + } + }, + "response": [] + } + ] + }, + { + "name": "ztc-001", + "item": [ + { + "name": "(ztc-001a) Zaaktype aanmaken is mogelijk", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "pm.test(\"Zaaktype aanmaken met valide gegevens geeft 201\", function() {", + " pm.response.to.have.status(201);", + "});", + "", + "if(pm.response.code == 201) {", + " pm.environment.set(\"zaaktype_url\", pm.response.json().url);", + "}", + "", + "pm.environment.set(\"zaaktype_body\", pm.request.body.raw);" + ], + "type": "text/javascript", + "packages": {} + } + }, + { + "listen": "prerequest", + "script": { + "exec": [ + "var uuid = require('uuid');", + "var myUUID = uuid.v4(); ", + "pm.environment.set(\"random_identificatie-ztc-01\", myUUID);", + "" + ], + "type": "text/javascript", + "packages": {} + } + } + ], + "request": { + "method": "POST", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n\t\"identificatie\": \"{{random_identificatie-ztc-01}}\",\n \"omschrijving\": \"Melding Openbare Ruimte\",\n \"vertrouwelijkheidaanduiding\": \"openbaar\",\n \"doel\": \"test doel\",\n \"verantwoordelijke\":\"X\",\n \"aanleiding\": \"test aanleiding\",\n \"indicatieInternOfExtern\": \"extern\",\n \"handelingInitiator\": \"indienen\",\n \"onderwerp\": \"openbare ruimte\",\n \"handelingBehandelaar\": \"behandelen\",\n \"doorlooptijd\": \"P10D\",\n \"opschortingEnAanhoudingMogelijk\": false,\n \"verlengingMogelijk\": false,\n \"publicatieIndicatie\": false,\n \"productenOfDiensten\": [\n \"https://ref.tst.vng.cloud/standaard/\"\n ],\n \"selectielijstProcestype\": \"{{procestype_url}}\",\n \"referentieproces\": {\n \"naam\": \"test\",\n \"link\": \"\"\n },\n \"catalogus\": \"{{catalogus_url}}\",\n \"deelzaaktypen\": [],\n \"statustypen\": [],\n \"resultaattypen\": [],\n \"eigenschappen\": [],\n \"informatieobjecttypen\": [],\n \"besluittypen\": [],\n \"gerelateerdeZaaktypen\": [],\n \"beginGeldigheid\": \"2005-01-01\",\n \"eindeGeldigheid\": \"2012-01-01\",\n \"versiedatum\": \"2012-01-01\",\n \"concept\": true\n}" + }, + "url": { + "raw": "{{ztc_url}}/zaaktypen", + "host": [ + "{{ztc_url}}" + ], + "path": [ + "zaaktypen" + ] + } + }, + "response": [] + }, + { + "name": "(ztc-001b) Zaaktype aanmaken met selectielijstProcestype url die niet wijst naar Procestype is onmogelijk", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "pm.test(\"Zaaktype aanmaken met selectielijstProcestype url die niet wijst naar Procestype resource geeft 400\", function() {", + " pm.response.to.have.status(400);", + " ", + " // Verify that the 400 is returned for the correct reason", + " // var error = pm.response.json()[\"invalidParams\"][0];", + " // pm.expect(error.name).to.be.equal(\"selectielijstProcestype\");", + " // pm.expect(error.code).to.be.equal(\"invalid-resource\");", + "});", + "", + "" + ], + "type": "text/javascript", + "packages": {} + } + }, + { + "listen": "prerequest", + "script": { + "exec": [ + "// Retrieve the Zaak body template and modify as needed", + "var body = JSON.parse(pm.environment.get(\"zaaktype_body\"));", + "body.selectielijstProcestype = pm.environment.get(\"mock_url\") + \"/200\";", + "", + "", + "var uuid = require('uuid');", + "var myUUID = uuid.v4(); ", + "body.identificatie = myUUID;", + "", + "", + "// Store the modified Zaak body, allowing it to be used in the main request", + "pm.environment.set(\"request_body\", JSON.stringify(body));" + ], + "type": "text/javascript", + "packages": {} + } + } + ], + "request": { + "method": "POST", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{{request_body}}" + }, + "url": { + "raw": "{{ztc_url}}/zaaktypen", + "host": [ + "{{ztc_url}}" + ], + "path": [ + "zaaktypen" + ] + } + }, + "response": [] + }, + { + "name": "Create Zaaktype for afleidingswijze afgehandeld", + "event": [ + { + "listen": "prerequest", + "script": { + "exec": [ + "// Retrieve the Zaak body template and modify as needed", + "var body = JSON.parse(pm.environment.get(\"zaaktype_body\"));", + "body.omschrijving = \"zaaktype afleidingswijze afgehandeld\";", + "body.selectielijstProcestype = pm.environment.get(\"procestype_procestermijn_nihil_url\");", + "var uuid = require('uuid');", + "var myUUID = uuid.v4(); ", + "body.identificatie = myUUID;", + "", + "// Store the modified Zaak body, allowing it to be used in the main request", + "pm.environment.set(\"request_body\", JSON.stringify(body));" + ], + "type": "text/javascript" + } + }, + { + "listen": "test", + "script": { + "exec": [ + "if(pm.response.code == 201) {", + " pm.environment.set(\"zaaktype_afleidingswijze_afgehandeld_url\", pm.response.json().url);", + "}" + ], + "type": "text/javascript" + } + } + ], + "request": { + "method": "POST", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{{request_body}}" + }, + "url": { + "raw": "{{ztc_url}}/zaaktypen", + "host": [ + "{{ztc_url}}" + ], + "path": [ + "zaaktypen" + ] + } + }, + "response": [] + }, + { + "name": "Create Zaaktype for afleidingswijze termijn", + "event": [ + { + "listen": "prerequest", + "script": { + "exec": [ + "// Retrieve the Zaak body template and modify as needed", + "var body = JSON.parse(pm.environment.get(\"zaaktype_body\"));", + "body.omschrijving = \"zaaktype afleidingswijze termijn\";", + "body.selectielijstProcestype = pm.environment.get(\"procestype_procestermijn_ingeschatte_bestaansduur_object_url\");", + "var uuid = require('uuid');", + "var myUUID = uuid.v4(); ", + "body.identificatie = myUUID;", + "", + "// Store the modified Zaak body, allowing it to be used in the main request", + "pm.environment.set(\"request_body\", JSON.stringify(body));" + ], + "type": "text/javascript" + } + }, + { + "listen": "test", + "script": { + "exec": [ + "if(pm.response.code == 201) {", + " pm.environment.set(\"zaaktype_afleidingswijze_termijn_url\", pm.response.json().url);", + "}" + ], + "type": "text/javascript" + } + } + ], + "request": { + "method": "POST", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{{request_body}}" + }, + "url": { + "raw": "{{ztc_url}}/zaaktypen", + "host": [ + "{{ztc_url}}" + ], + "path": [ + "zaaktypen" + ] + } + }, + "response": [] + }, + { + "name": "Create Zaaktype for empty procestermijn", + "event": [ + { + "listen": "prerequest", + "script": { + "exec": [ + "// Retrieve the Zaak body template and modify as needed", + "var body = JSON.parse(pm.environment.get(\"zaaktype_body\"));", + "body.omschrijving = \"zaaktype geen procestermijn\";", + "body.selectielijstProcestype = \"https://referentielijsten.roxit.nl/api/v1/procestypen/87804ff2-4ae3-4700-b1d4-a49ca3fcd2d0\";", + "var uuid = require('uuid');", + "var myUUID = uuid.v4(); ", + "body.identificatie = myUUID;", + "", + "// Store the modified Zaak body, allowing it to be used in the main request", + "pm.environment.set(\"request_body\", JSON.stringify(body));" + ], + "type": "text/javascript", + "packages": {} + } + }, + { + "listen": "test", + "script": { + "exec": [ + "if(pm.response.code == 201) {", + " pm.environment.set(\"zaaktype_procestermijn_leeg_url\", pm.response.json().url);", + "}" + ], + "type": "text/javascript", + "packages": {} + } + } + ], + "request": { + "method": "POST", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{{request_body}}" + }, + "url": { + "raw": "{{ztc_url}}/zaaktypen", + "host": [ + "{{ztc_url}}" + ], + "path": [ + "zaaktypen" + ] + } + }, + "response": [] + } + ] + }, + { + "name": "ztc-002", + "item": [ + { + "name": "(ztc-002a) Resultaattype aanmaken met valide gegevens is mogelijk", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "pm.test(\"Resultaattype aanmaken met valide gegevens geeft 201\", function() {", + " pm.response.to.have.status(201);", + "});", + "", + "if(pm.response.code == 201) {", + " pm.environment.set(\"created_resultaattype_url\", pm.response.json().url);", + " pm.environment.set(\"resultaattype_omschrijving_generiek\", pm.response.json().omschrijvingGeneriek);", + "}", + "", + "pm.environment.set(\"resultaattype_body\", pm.request.body.raw);" + ], + "type": "text/javascript", + "packages": {} + } + }, + { + "listen": "prerequest", + "script": { + "exec": [ + "" + ], + "type": "text/javascript", + "packages": {} + } + } + ], + "request": { + "method": "POST", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n\t\"zaaktype\": \"{{zaaktype_url}}\",\n\t\"omschrijving\": \"TEST\",\n\t\"resultaattypeomschrijving\": \"{{resultaattypeomschrijving_url}}\",\n\t\"selectielijstklasse\": \"{{selectielijstklasse_url}}\",\n \"besluittypen\": [],\n\t\"brondatumArchiefprocedure\": {\n\t\t\"afleidingswijze\": \"gerelateerde_zaak\",\n\t\t\"procestermijn\": null,\n\t\t\"datumkenmerk\": \"\",\n\t\t\"einddatumBekend\": false,\n\t\t\"objecttype\": \"\",\n\t\t\"registratie\": \"\"\n\t}\n}" + }, + "url": { + "raw": "{{ztc_url}}/resultaattypen", + "host": [ + "{{ztc_url}}" + ], + "path": [ + "resultaattypen" + ] + } + }, + "response": [] + }, + { + "name": "(ztc-002b) Resultaattype.omschrijvingGeneriek wordt afgeleid uit Resultaattypeomschrijving.omschrijving", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "pm.test(\"Resultaatype.omschrijvingGeneriek is gelijk aan Resultaattypeomschrijving.omschrijving\", function() {", + " pm.expect(pm.environment.get(\"resultaattype_omschrijving_generiek\")).to.be.equal(pm.response.json().omschrijving); ", + "});", + "", + "" + ], + "type": "text/javascript", + "packages": {} + } + } + ], + "request": { + "method": "GET", + "header": [], + "url": { + "raw": "{{resultaattypeomschrijving_url}}", + "host": [ + "{{resultaattypeomschrijving_url}}" + ] + } + }, + "response": [] + }, + { + "name": "(ztc-002c) Resultaattype aanmaken met resultaattypeomschrijving url die niet wijst naar correcte resource is onmogelijk", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "pm.test(\"Resultaattype aanmaken met resultaattypeomschrijving url die niet wijst naar Resultaattypeomschrijving resource geeft 400\", function() {", + " pm.response.to.have.status(400);", + " ", + " // TODO", + " // Verify that the 400 is returned for the correct reason", + " // var error = pm.response.json()[\"invalidParams\"][0];", + " // pm.expect(error.name).to.be.equal(\"resultaattypeomschrijving\");", + " // pm.expect(error.code).to.be.equal(\"invalid-resource\");", + "});", + "", + "" + ], + "type": "text/javascript", + "packages": {} + } + }, + { + "listen": "prerequest", + "script": { + "exec": [ + "" + ], + "type": "text/javascript", + "packages": {} + } + } + ], + "request": { + "method": "POST", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\r\n\t\"zaaktype\": \"{{zaaktype_url}}\",\r\n\t\"omschrijving\": \"TEST\",\r\n\t\"resultaattypeomschrijving\": \"{{resultaattypeomschrijving_url}}abc\",\r\n\t\"selectielijstklasse\": \"{{selectielijstklasse_url}}\",\r\n \"besluittypen\": [],\r\n\t\"brondatumArchiefprocedure\": {\r\n\t\t\"afleidingswijze\": \"gerelateerde_zaak\",\r\n\t\t\"procestermijn\": null,\r\n\t\t\"datumkenmerk\": \"\",\r\n\t\t\"einddatumBekend\": false,\r\n\t\t\"objecttype\": \"\",\r\n\t\t\"registratie\": \"\"\r\n\t}\r\n}" + }, + "url": { + "raw": "{{ztc_url}}/resultaattypen", + "host": [ + "{{ztc_url}}" + ], + "path": [ + "resultaattypen" + ] + } + }, + "response": [] + }, + { + "name": "(ztc-002d) Resultaattype aanmaken met selectielijstklasse url die niet wijst naar correcte resource is onmogelijk", + "event": [ + { + "listen": "prerequest", + "script": { + "exec": [ + "" + ], + "type": "text/javascript", + "packages": {} + } + }, + { + "listen": "test", + "script": { + "exec": [ + "pm.test(\"Resultaattype aanmaken met selectielijstklasse url die niet wijst naar Resultaat resource geeft 400\", function() {", + " pm.response.to.have.status(400);", + " ", + " // TODO", + " // Verify that the 400 is returned for the correct reason", + " // var error = pm.response.json()[\"invalidParams\"][0];", + " // pm.expect(error.name).to.be.equal(\"selectielijstklasse\");", + " // pm.expect(error.code).to.be.equal(\"invalid-resource\");", + "});", + "", + "" + ], + "type": "text/javascript", + "packages": {} + } + } + ], + "request": { + "method": "POST", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\r\n\t\"zaaktype\": \"{{zaaktype_url}}\",\r\n\t\"omschrijving\": \"TEST\",\r\n\t\"resultaattypeomschrijving\": \"{{resultaattypeomschrijving_url}}\",\r\n\t\"selectielijstklasse\": \"{{selectielijstklasse_url}}abc\",\r\n \"besluittypen\": [],\r\n\t\"brondatumArchiefprocedure\": {\r\n\t\t\"afleidingswijze\": \"gerelateerde_zaak\",\r\n\t\t\"procestermijn\": null,\r\n\t\t\"datumkenmerk\": \"\",\r\n\t\t\"einddatumBekend\": false,\r\n\t\t\"objecttype\": \"\",\r\n\t\t\"registratie\": \"\"\r\n\t}\r\n}" + }, + "url": { + "raw": "{{ztc_url}}/resultaattypen", + "host": [ + "{{ztc_url}}" + ], + "path": [ + "resultaattypen" + ] + } + }, + "response": [] + }, + { + "name": "(ztc-002e) Resultaattype aanmaken met selectielijstklasse url met incorrect procestype is onmogelijk", + "event": [ + { + "listen": "prerequest", + "script": { + "exec": [ + "pm.environment.set(\"selectielijstklasse_url2\", \"https://referentielijsten.roxit.nl/api/v1/resultaten/012d401a-aace-4fb2-89ba-fe5853789554\");" + ], + "type": "text/javascript", + "packages": {} + } + }, + { + "listen": "test", + "script": { + "exec": [ + "pm.test(\"Resultaattype aanmaken met selectielijstklasse niet van hetzelfde procestype als Resultaattype.zaaktype.selectielijstProcestype geeft 400\", function() {", + " pm.response.to.have.status(400);", + " ", + " // TODO", + " // Verify that the 400 is returned for the correct reason", + " // var error = pm.response.json()[\"invalidParams\"][0];", + " // pm.expect(error.name).to.be.equal(\"nonFieldErrors\");", + " // pm.expect(error.code).to.be.equal(\"procestype-mismatch\");", + "});", + "", + "" + ], + "type": "text/javascript", + "packages": {} + } + } + ], + "request": { + "method": "POST", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\r\n\t\"zaaktype\": \"{{zaaktype_url}}\",\r\n\t\"omschrijving\": \"TEST\",\r\n\t\"resultaattypeomschrijving\": \"{{resultaattypeomschrijving_url}}\",\r\n\t\"selectielijstklasse\": \"{{selectielijstklasse_url2}}\",\r\n \"besluittypen\": [],\r\n\t\"brondatumArchiefprocedure\": {\r\n\t\t\"afleidingswijze\": \"gerelateerde_zaak\",\r\n\t\t\"procestermijn\": null,\r\n\t\t\"datumkenmerk\": \"\",\r\n\t\t\"einddatumBekend\": false,\r\n\t\t\"objecttype\": \"\",\r\n\t\t\"registratie\": \"\"\r\n\t}\r\n}" + }, + "url": { + "raw": "{{ztc_url}}/resultaattypen", + "host": [ + "{{ztc_url}}" + ], + "path": [ + "resultaattypen" + ] + } + }, + "response": [] + }, + { + "name": "Retrieve Resultaat.waardering and Resultaat.bewaartermijn", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "pm.environment.set(\"resultaat_waardering\", pm.response.json().waardering);", + "pm.environment.set(\"resultaat_bewaartermijn\", pm.response.json().bewaartermijn);" + ], + "type": "text/javascript" + } + } + ], + "request": { + "method": "GET", + "header": [], + "url": { + "raw": "{{selectielijstklasse_url}}", + "host": [ + "{{selectielijstklasse_url}}" + ] + } + }, + "response": [] + }, + { + "name": "(ztc-002f) Resultaattype.archiefnominatie is gelijk aan Resultaat.waardering indien niet gedefinieerd", + "event": [ + { + "listen": "prerequest", + "script": { + "exec": [ + "// Retrieve the Zaak body template and modify as needed", + "var body = JSON.parse(pm.environment.get(\"resultaattype_body\"));", + "delete body.archiefnominatie;", + "", + "// Store the modified Zaak body, allowing it to be used in the main request", + "pm.environment.set(\"request_body\", JSON.stringify(body));" + ], + "type": "text/javascript", + "packages": {} + } + }, + { + "listen": "test", + "script": { + "exec": [ + "pm.test(\"Resultaattype.archiefnominatie is gelijk aan Resultaat.waardering indien niet expliciet gedefinieerd\", function() {", + " pm.expect(pm.response.json().archiefnominatie).to.be.equal(pm.environment.get(\"resultaat_waardering\")); ", + "});", + "", + "" + ], + "type": "text/javascript", + "packages": {} + } + } + ], + "request": { + "method": "POST", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{{request_body}}" + }, + "url": { + "raw": "{{ztc_url}}/resultaattypen", + "host": [ + "{{ztc_url}}" + ], + "path": [ + "resultaattypen" + ] + } + }, + "response": [] + }, + { + "name": "(ztc-002g) Resultaattype.archiefactietermijn is gelijk aan Resultaat.bewaartermijn indien niet gedefinieerd", + "event": [ + { + "listen": "prerequest", + "script": { + "exec": [ + "// Retrieve the Zaak body template and modify as needed", + "var body = JSON.parse(pm.environment.get(\"resultaattype_body\"));", + "delete body.archiefnominatie;", + "", + "// Store the modified Zaak body, allowing it to be used in the main request", + "pm.environment.set(\"request_body\", JSON.stringify(body));" + ], + "type": "text/javascript", + "packages": {} + } + }, + { + "listen": "test", + "script": { + "exec": [ + "pm.test(\"Resultaattype.archiefactietermijn is gelijk aan Resultaat.bewaartermijn indien niet expliciet gedefinieerd\", function() {", + " pm.expect(pm.response.json().archiefactietermijn).to.be.equal(pm.environment.get(\"resultaat_bewaartermijn\")); ", + "});", + "", + "" + ], + "type": "text/javascript", + "packages": {} + } + } + ], + "request": { + "method": "POST", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{{request_body}}" + }, + "url": { + "raw": "{{ztc_url}}/resultaattypen", + "host": [ + "{{ztc_url}}" + ], + "path": [ + "resultaattypen" + ] + } + }, + "response": [] + } + ] + }, + { + "name": "ztc-003", + "item": [ + { + "name": "(ztc-003a) Resultaattype met selectielijstklasse.procestermijn nihil en niet afleidingswijze afgehandeld is onmogelijk", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "pm.test(\"Resultaattype aanmaken met selectielijstklasse.procestermijn nihil en niet brondatumArchiefprocedure.afleidingswijze afgehandeld geeft 400\", function() {", + " pm.response.to.have.status(400);", + " ", + " // Verify that the 400 is returned for the correct reason", + " var errors = pm.response.json()[\"invalidParams\"];", + " ", + " var succeed = false;", + " for(i=0; i {", + "// if (err) {", + "// console.error(err);", + "// return;", + "// }", + "", + "// const responseBody = JSON.parse(response.text());", + "// const extractedValue = responseBody.authorization; ", + "// var bearer_and_token = extractedValue.split(' ');", + "// var jwt_token = bearer_and_token[1]", + "", + "// pm.environment.set('jwt_token', jwt_token);", + "// pm.environment.set('jwt_token_without_claims', jwt_token);", + "", + " ", + "// })", + "// }", + "", + "function base64url(source) {", + "\t// Encode in classical base64", + "\tencodedSource = CryptoJS.enc.Base64.stringify(source);", + "", + "\t// Remove padding equal characters", + "\tencodedSource = encodedSource.replace(/=+$/, '');", + "", + "\t// Replace characters according to base64url specifications", + "\tencodedSource = encodedSource.replace(/\\+/g, '-');", + "\tencodedSource = encodedSource.replace(/\\//g, '_');", + "", + "\treturn encodedSource;", + "}", + "", + "function addIAT(request) {", + "\tvar iat = Math.floor(Date.now() / 1000) + 257;", + "\tdata.iat = iat;", + "\treturn data;", + "}", + "", + "", + "var header = {", + "\t\"typ\": \"JWT\",", + "\t\"alg\": \"HS256\"", + "};", + "", + "var data = {", + " \"iss\": pm.environment.get(\"client_id\"),", + " \"client_id\": pm.environment.get(\"client_id\"),", + " \"user_id\": \"123\",", + " \"user_representation\": \"Demo User\"", + "};", + "", + "data = addIAT(data);", + "", + "var secret = pm.environment.get(\"secret\");", + "", + "// encode header", + "var stringifiedHeader = CryptoJS.enc.Utf8.parse(JSON.stringify(header));", + "var encodedHeader = base64url(stringifiedHeader);", + "", + "// encode data", + "var stringifiedData = CryptoJS.enc.Utf8.parse(JSON.stringify(data));", + "var encodedData = base64url(stringifiedData);", + "", + "// build token", + "var token = encodedHeader + \".\" + encodedData;", + "", + "var signature = CryptoJS.HmacSHA256(token, secret);", + "signature = base64url(signature);", + "", + "var signedToken = token + \".\" + signature;", + "", + "pm.globals.set(\"jwt_token\", signedToken);" + ] + } + }, + { + "listen": "test", + "script": { + "type": "text/javascript", + "exec": [ + "" + ] + } + } + ] +} \ No newline at end of file diff --git a/data/ZGW business rules.postman_environment.json b/data/ZGW business rules.postman_environment.json new file mode 100644 index 0000000..4ec53d5 --- /dev/null +++ b/data/ZGW business rules.postman_environment.json @@ -0,0 +1,28 @@ +{ + "id": "procest-dev", + "name": "Procest Dev", + "values": [ + {"key": "zrc_url", "value": "http://localhost:8080/index.php/apps/procest/api/zgw/zaken/v1", "enabled": true}, + {"key": "ztc_url", "value": "http://localhost:8080/index.php/apps/procest/api/zgw/catalogi/v1", "enabled": true}, + {"key": "drc_url", "value": "http://localhost:8080/index.php/apps/procest/api/zgw/documenten/v1", "enabled": true}, + {"key": "brc_url", "value": "http://localhost:8080/index.php/apps/procest/api/zgw/besluiten/v1", "enabled": true}, + {"key": "ac_url", "value": "http://localhost:8080/index.php/apps/procest/api/zgw/autorisaties/v1", "enabled": true}, + {"key": "client_id", "value": "procest-admin", "enabled": true}, + {"key": "secret", "value": "procest-admin-secret-key-for-testing", "enabled": true}, + {"key": "client_id_limited", "value": "procest-limited", "enabled": true}, + {"key": "secret_limited", "value": "procest-limited-secret-key-for-test", "enabled": true}, + {"key": "tokenuser", "value": "test-user", "enabled": true}, + {"key": "referentielijst_url", "value": "https://referentielijsten-api.vng.cloud/api/v1", "enabled": true}, + {"key": "selectielijstklasse_url", "value": "https://referentielijsten-api.vng.cloud/api/v1/selectielijstklassen/6a8b7f6e-0000-0000-0000-000000000000", "enabled": true}, + {"key": "selectielijstklasse_url2", "value": "https://referentielijsten-api.vng.cloud/api/v1/selectielijstklassen/6a8b7f6e-0000-0000-0000-000000000001", "enabled": true}, + {"key": "selectielijstklasse_procestermijn_nihil_url", "value": "https://referentielijsten-api.vng.cloud/api/v1/selectielijstklassen/6a8b7f6e-0000-0000-0000-000000000002", "enabled": true}, + {"key": "selectielijstklasse_procestermijn_vast_te_leggen_datum_url", "value": "https://referentielijsten-api.vng.cloud/api/v1/selectielijstklassen/6a8b7f6e-0000-0000-0000-000000000003", "enabled": true}, + {"key": "selectielijstklasse_procestermijn_ingeschatte_bestaansduur_object_url", "value": "https://referentielijsten-api.vng.cloud/api/v1/selectielijstklassen/6a8b7f6e-0000-0000-0000-000000000004", "enabled": true}, + {"key": "mock_url", "value": "http://localhost:8080", "enabled": true}, + {"key": "procestype_url", "value": "https://referentielijsten-api.vng.cloud/api/v1/procestypen/b594c8d1-ea6a-4bcd-a6aa-2c7a8ad3fe5b", "enabled": true}, + {"key": "procestype_procestermijn_nihil_url", "value": "https://referentielijsten-api.vng.cloud/api/v1/procestypen/046d5ff0-4c71-464b-8c29-cd88fa204524", "enabled": true}, + {"key": "procestype_procestermijn_vast_te_leggen_datum_url", "value": "https://referentielijsten-api.vng.cloud/api/v1/procestypen/e04ccf9b-501b-4228-8e16-c95eab801ee5", "enabled": true}, + {"key": "resultaattypeomschrijving_url", "value": "https://referentielijsten-api.vng.cloud/api/v1/resultaattypeomschrijvingen/e6a0c939-3404-45b0-88e3-76c94fb80ea7", "enabled": true} + ], + "_postman_variable_scope": "environment" +} diff --git a/docs/GOVERNMENT-FEATURES.md b/docs/GOVERNMENT-FEATURES.md new file mode 100644 index 0000000..2ecf553 --- /dev/null +++ b/docs/GOVERNMENT-FEATURES.md @@ -0,0 +1,211 @@ +# Procest — Overheidsfunctionaliteiten + +> Functiepagina voor Nederlandse overheidsorganisaties. +> Gebruik deze checklist om te toetsen aan uw Programma van Eisen. + +**Product:** Procest +**Categorie:** Zaakgericht werken & case management +**Licentie:** AGPL (vrije open source) +**Leverancier:** Conduction B.V. +**Platform:** Nextcloud + Open Register (self-hosted / on-premise / cloud) + +## Legenda + +| Status | Betekenis | +|--------|-----------| +| Beschikbaar | Functionaliteit is beschikbaar in de huidige versie | +| Gepland (MVP) | Gepland voor eerste release | +| Gepland (V1) | Gepland voor versie 1.0 | +| Gepland (Enterprise) | Gepland voor enterprise-versie | +| Via platform | Functionaliteit wordt geleverd door Nextcloud / OpenRegister | +| Op aanvraag | Beschikbaar als maatwerk | +| N.v.t. | Niet van toepassing voor dit product | + +--- + +## 1. Functionele eisen + +### Zaakbeheer (Case Management) + +| # | Eis | Status | Toelichting | +|---|-----|--------|-------------| +| F-01 | Zaken aanmaken, bekijken, wijzigen, verwijderen | Gepland (MVP) | Volledige CRUD met levenscyclus | +| F-02 | Zaakoverzicht met zoeken, sorteren en filteren | Gepland (MVP) | Lijst- en kaartweergave | +| F-03 | Zaakdetailpagina met tijdlijn | Gepland (MVP) | Visuele status-voortgang | +| F-04 | Zaaktype-systeem (configureerbaar) | Gepland (MVP) | Zaaktypen bepalen gedrag, statussen, termijnen | +| F-05 | Statusverloop (levenscyclus per zaaktype) | Gepland (MVP) | Configureerbare statusvolgorde | +| F-06 | Afhandeltermijnen (automatisch berekend) | Gepland (MVP) | Countdown en overschrijdingsmelding | +| F-07 | Subzaken (ouder/kind-hiërarchie) | Gepland (V1) | Complexe zaakstructuren | +| F-08 | Zaaksjablonen | Gepland (V1) | Gestandaardiseerde zaakaanmaak | +| F-09 | Zaak kopiëren | Gepland (V1) | Efficiëntie bij vergelijkbare zaken | +| F-10 | Bulk zaakbewerkingen | Gepland (Enterprise) | Schaaloperaties | + +### Taakbeheer + +| # | Eis | Status | Toelichting | +|---|-----|--------|-------------| +| F-11 | Taken aanmaken, toewijzen, afronden | Gepland (MVP) | Gekoppeld aan zaken | +| F-12 | Taaklijst met statusfilters | Gepland (MVP) | Werkvoorraad-overzicht | +| F-13 | Taaktoewijzing aan medewerkers | Gepland (MVP) | Werklastverdeling | +| F-14 | Taken met deadlines en prioriteiten | Gepland (MVP) | Tijdbeheer | +| F-15 | Kanban-bord voor taken | Gepland (V1) | Visueel taakbeheer | +| F-16 | Taaksjablonen per zaaktype | Gepland (V1) | Gestandaardiseerde werkstromen | +| F-17 | Automatische taakcreatie bij statuswijziging | Gepland (Enterprise) | Workflow-automatisering | + +### Rollen & Deelnemers + +| # | Eis | Status | Toelichting | +|---|-----|--------|-------------| +| F-18 | Behandelaar toewijzen aan zaak | Gepland (MVP) | Basistoewijzing | +| F-19 | Roltypen (initiatiefnemer, behandelaar, adviseur) | Gepland (MVP) | CMMN-rolmodel | +| F-20 | Meerdere deelnemers per zaak | Gepland (V1) | Teamcollaboratie | +| F-21 | Rolgebaseerde rechten per zaak | Gepland (V1) | Toegangscontrole | +| F-22 | Externe deelnemers | Gepland (Enterprise) | Cross-organisatie zaken | + +### Besluiten & Resultaten + +| # | Eis | Status | Toelichting | +|---|-----|--------|-------------| +| F-23 | Zaakresultaat vastleggen | Gepland (MVP) | Zaakafronding | +| F-24 | Besluiten registreren met ingangsdatum/einddatum | Gepland (V1) | Formele besluitvorming | +| F-25 | Resultaattypen per zaaktype | Gepland (V1) | Met archiveringsregels | +| F-26 | DMN-besluitbomen | Gepland (Enterprise) | Geautomatiseerde besluitlogica | + +### Werkvoorraad & Dashboard + +| # | Eis | Status | Toelichting | +|---|-----|--------|-------------| +| F-27 | Persoonlijke werkvoorraad (mijn zaken, mijn taken) | Gepland (MVP) | Productiviteitsoverzicht | +| F-28 | Dashboard met aantallen en statusverdeling | Gepland (MVP) | Management-informatie | +| F-29 | Overschrijdingen markering | Gepland (MVP) | Proactief beheer | +| F-30 | Cross-app werkvoorraad (inclusief Pipelinq) | Gepland (V1) | Geïntegreerd werkbeheer | +| F-31 | SLA-compliance meter | Gepland (Enterprise) | Dienstverlening kwaliteit | +| F-32 | Werklastverdeling heatmap | Gepland (Enterprise) | Capaciteitsplanning | + +--- + +## 2. Technische eisen + +| # | Eis | Status | Toelichting | +|---|-----|--------|-------------| +| T-01 | On-premise / self-hosted installatie | Beschikbaar | Nextcloud-app, volledig on-premise | +| T-02 | Open source (broncode beschikbaar) | Beschikbaar | AGPL licentie, GitHub | +| T-03 | RESTful API | Via platform | OpenRegister REST API | +| T-04 | Event-driven architectuur | Via platform | OpenRegister events | +| T-05 | Schaalbaarheid | Via platform | OpenRegister + Solr | +| T-06 | Database-onafhankelijkheid | Via platform | PostgreSQL, MySQL, SQLite | +| T-07 | Containerisatie (Docker) | Beschikbaar | Docker Compose | +| T-08 | MCP (AI-integratie) | Via platform | OpenRegister MCP | + +--- + +## 3. Beveiligingseisen + +| # | Eis | Status | Toelichting | +|---|-----|--------|-------------| +| B-01 | Rolgebaseerde toegangscontrole (RBAC) | Via platform | OpenRegister RBAC | +| B-02 | Volledige audit trail | Via platform | OpenRegister mutatie-historie | +| B-03 | BIO-compliance | Via platform | Nextcloud BIO-certificering | +| B-04 | 2FA | Via platform | Nextcloud 2FA | +| B-05 | SSO / SAML / LDAP | Via platform | Nextcloud SSO | +| B-06 | DigiD | Via platform | Via SAML-koppeling | +| B-07 | Versleuteling (rust + transit) | Via platform | Nextcloud encryption + TLS | +| B-08 | Vertrouwelijkheidsniveaus op zaken | Gepland (V1) | Zaaktype-gebonden vertrouwelijkheid | +| B-09 | Veld-niveau toegangscontrole | Gepland (Enterprise) | Gevoelige gegevens bescherming | + +--- + +## 4. Privacyeisen (AVG/GDPR) + +| # | Eis | Status | Toelichting | +|---|-----|--------|-------------| +| P-01 | Recht op inzage | Gepland (V1) | Data-export per betrokkene | +| P-02 | Recht op vergetelheid | Gepland (V1) | Zaak- en persoonsgegevens verwijdering | +| P-03 | Recht op rectificatie | Via platform | Object wijzigen via OpenRegister | +| P-04 | Bewaartermijnen | Gepland (Enterprise) | Automatische vernietiging | +| P-05 | Data minimalisatie | Beschikbaar | Schema-gebaseerd — alleen gedefinieerde velden | + +--- + +## 5. Toegankelijkheidseisen + +| # | Eis | Status | Toelichting | +|---|-----|--------|-------------| +| A-01 | WCAG 2.1 AA | Gepland (MVP) | Nextcloud-componenten zijn WCAG AA | +| A-02 | EN 301 549 | Gepland (MVP) | Via WCAG AA | +| A-03 | Toetsenbordnavigatie | Gepland (MVP) | Volledig toetsenbord-navigeerbaar | +| A-04 | Screenreader | Gepland (MVP) | ARIA-labels | +| A-05 | NL Design System | Gepland (V1) | Via NL Design app | +| A-06 | Meertalig (NL/EN) | Gepland (MVP) | Volledige vertaling | + +--- + +## 6. Integratiestandaarden + +| # | Eis | Status | Toelichting | +|---|-----|--------|-------------| +| I-01 | Common Ground architectuur | Beschikbaar | Laag 4 (proces) bovenop OpenRegister (laag 2) | +| I-02 | ZGW Zaken API | Gepland (V1) | Mapping naar VNG Zaken API standaard | +| I-03 | ZGW Besluiten API | Gepland (V1) | Mapping naar VNG Besluiten API standaard | +| I-04 | ZGW Catalogi API | Gepland (V1) | Zaaktype-catalogus volgens VNG standaard | +| I-05 | StUF-koppeling | Via app | OpenConnector biedt StUF-vertaling | +| I-06 | Pipelinq-brug (verzoek-naar-zaak) | Gepland (V1) | CRM-naar-zaak workflow | +| I-07 | Federatie (cross-organisatie) | Gepland (Enterprise) | Gefedereerde zaakafhandeling | +| I-08 | Webhook-ondersteuning | Gepland (Enterprise) | Event-driven integratie | +| I-09 | Nextcloud Flows automatisering | Gepland (Enterprise) | Low-code triggers | + +--- + +## 7. Archivering + +| # | Eis | Status | Toelichting | +|---|-----|--------|-------------| +| AR-01 | Archiefwet 2021 | Gepland (Enterprise) | Archiveringsbeheer | +| AR-02 | Selectielijsten | Gepland (Enterprise) | Bewaartermijnen per zaaktype-resultaat | +| AR-03 | Vernietigingslijsten | Gepland (Enterprise) | Geautomatiseerde vernietiging | +| AR-04 | Overdracht aan e-depot | Op aanvraag | Exportformaat voor archiefdiensten | +| AR-05 | TMLO/MDTO-metadata | Gepland (Enterprise) | Via OpenRegister archiverings-metadata | +| AR-06 | Zaakdossier bevriezing | Gepland (V1) | Dossier op niet-wijzigbaar na afsluiting | + +--- + +## 8. Beheer en onderhoud + +| # | Eis | Status | Toelichting | +|---|-----|--------|-------------| +| BO-01 | Nextcloud App Store | Beschikbaar | Installatie via App Store | +| BO-02 | Automatische updates | Beschikbaar | Via Nextcloud app-updater | +| BO-03 | Beheerderspaneel | Gepland (MVP) | Zaaktypen, statussen, rollen configureren | +| BO-04 | Documentatie | Beschikbaar | Gebruiker/beheerder/developer docs | +| BO-05 | Open source community | Beschikbaar | GitHub Issues | +| BO-06 | Professionele ondersteuning (SLA) | Op aanvraag | Via Conduction B.V. | + +--- + +## 9. Platform-voordelen (via Nextcloud) + +| Functionaliteit | Beschrijving | +|-----------------|-------------| +| Bestanden & dossiers | Zaakdossier via Nextcloud Files (WebDAV, versiebeheer) | +| Agenda & taken | Deadlines in agenda, taken via CalDAV | +| Chat per zaak | Nextcloud Talk room per zaak | +| Notificaties | Statuswijzigingen, toewijzingen, deadlines | +| Activiteitenlogboek | Zaakgebeurtenissen in Nextcloud Activity | +| Federatie | Zaken delen tussen organisaties | +| Mobiele apps | iOS/Android toegang tot zaken | +| AI-assistent | Zaaksamenvattingen, tekst-extractie | +| Office-integratie | Documenten bewerken in Collabora/OnlyOffice | + +--- + +## 10. Onderscheidende kenmerken + +| Kenmerk | Toelichting | +|---------|-------------| +| **Nextcloud-native** | Geen apart systeem — case management in uw bestaande samenwerkingsplatform | +| **Lichtgewicht** | Geen Java/Spring stack — draait als Nextcloud-app | +| **CRM + Zaak in één** | Pipelinq (CRM) → Procest (zaak) is een unieke geïntegreerde workflow | +| **NL Design System** | Overheidshuisstijl via design tokens | +| **Data-hergebruik** | Zaakdata op OpenRegister is herbruikbaar door andere apps | +| **Gefedereerd** | Cross-organisatie zaakafhandeling via Nextcloud federatie | +| **~50% infrastructuur gratis** | Taken, bestanden, notificaties, chat — al ingebouwd | diff --git a/docs/README.md b/docs/README.md new file mode 100644 index 0000000..0c19bff --- /dev/null +++ b/docs/README.md @@ -0,0 +1,84 @@ +# Procest Documentation + +Procest is a case management (zaakgericht werken) application for Nextcloud, designed for Dutch government organizations. It provides a complete case management solution built on top of OpenRegister. + +## Screenshots + +| Feature | Screenshot | +|---------|------------| +| Dashboard | ![Dashboard](screenshots/dashboard.png) | +| My Work | ![My Work](screenshots/my-work.png) | +| Cases | ![Cases](screenshots/case-management.png) | +| Tasks | ![Tasks](screenshots/task-management.png) | +| Case Types | ![Case Types](screenshots/case-types.png) | +| Admin Settings | ![Settings](screenshots/admin-settings.png) | +| ZGW Configuration | ![ZGW Config](screenshots/zaaktype-configuratie.png) | + +## Feature Documentation + +### Core Features (with screenshots) + +| Feature | Description | Status | +|---------|-------------|--------| +| [Dashboard](features/dashboard.md) | Overview with case statistics, status chart, and personal work queue | Implemented | +| [Case Management](features/case-management.md) | List, filter, and manage cases in table or card view | Implemented | +| [Case Dashboard View](features/case-dashboard-view.md) | Individual case detail page with status, tasks, and documents | In development | +| [My Work](features/my-work.md) | Personal work queue showing assigned cases and tasks | Implemented | +| [Task Management](features/task-management.md) | List, create, and manage tasks associated with cases | Implemented | +| [Case Types](features/case-types.md) | Configure case type definitions with ZGW-compliant properties | Implemented | +| [Admin Settings](features/admin-settings.md) | Application configuration, schema mapping, and version info | Implemented | +| [Zaaktype Configuratie](features/zaaktype-configuratie.md) | ZGW API field mapping between OpenRegister and Dutch ZGW standard | Implemented | + +### Case Processing Features (text-only) + +| Feature | Description | Status | +|---------|-------------|--------| +| [Werkvoorraad](features/werkvoorraad.md) | Team work queue for unassigned cases | Planned | +| [Roles and Decisions](features/roles-decisions.md) | Role assignment and formal decision recording | Partial | +| [Zaak Intake Flow](features/zaak-intake-flow.md) | Case registration and intake process | Planned | +| [Complaint Management](features/complaint-management.md) | Citizen complaint handling (klachtafhandeling) | Planned | +| [Consultation Management](features/consultation-management.md) | Public participation and consultation processes | Planned | +| [Milestone Tracking](features/milestone-tracking.md) | Case lifecycle checkpoint monitoring | Planned | +| [Case Email Integration](features/case-email-integration.md) | Email-to-case and case correspondence | Planned | +| [WOO Case Type](features/woo-case-type.md) | Open Government Act disclosure requests | Planned | +| [VTH Module](features/vth-module.md) | Permits, supervision, and enforcement | Planned | +| [Case Sharing](features/case-sharing-collaboration.md) | Multi-user and cross-org case collaboration | In development | +| [AI-Assisted Processing](features/ai-assisted-processing.md) | LLM-powered case analysis and document processing | In development | + +### Administrative Features (text-only) + +| Feature | Description | Status | +|---------|-------------|--------| +| [Appointment Scheduling](features/appointment-scheduling.md) | Meeting and hearing scheduling | Planned | +| [B&W Parafering](features/bw-parafering.md) | Executive approval workflow | Planned | +| [Legesberekening](features/legesberekening.md) | Municipal fee calculation | Planned | +| [Mobiel Inspectie](features/mobiel-inspectie.md) | Mobile field inspection interface | Planned | + +### Integration Features (text-only) + +| Feature | Description | Status | +|---------|-------------|--------| +| [OpenRegister Integration](features/openregister-integration.md) | Core data layer via OpenRegister | Implemented | +| [MijnOverheid Integration](features/mijn-overheid-integration.md) | National citizen portal integration | Planned | +| [StUF Support](features/stuf-support.md) | Legacy Dutch government data exchange | Planned | + +### Platform Features (text-only) + +| Feature | Description | Status | +|---------|-------------|--------| +| [Prometheus Metrics](features/prometheus-metrics.md) | Production monitoring and alerting | Planned | +| [Register i18n](features/register-i18n.md) | Multilingual support (nl/en) | Partial | +| [Base Register Seed Data](features/base-register-seed-data.md) | Pre-configured case types and definitions | Implemented | +| [Multi-Tenant SaaS](features/multi-tenant-saas.md) | Multi-organization support | Planned | +| [Case Definition Portability](features/case-definition-portability.md) | Export/import case type configurations | Planned | + +## Architecture + +Procest is built as a Nextcloud app with the following architecture: + +- **Frontend**: Vue.js single-page application within the Nextcloud framework. +- **Backend**: PHP (Nextcloud app structure with controllers, services, and mappers). +- **Data Layer**: OpenRegister (flexible register/schema/object model). +- **API**: ZGW-compatible REST API via configurable field mapping. +- **AI**: Integration with Nextcloud ExApps (Ollama, Presidio, etc.). +- **Theming**: NL Design System tokens via the nldesign Nextcloud app. diff --git a/docusaurus/docusaurus.config.js b/docs/docusaurus.config.js similarity index 85% rename from docusaurus/docusaurus.config.js rename to docs/docusaurus.config.js index 0089e83..66b0d1a 100644 --- a/docusaurus/docusaurus.config.js +++ b/docs/docusaurus.config.js @@ -17,7 +17,11 @@ const config = { i18n: { defaultLocale: 'en', - locales: ['en'], + locales: ['en', 'nl'], + localeConfigs: { + en: { label: 'English' }, + nl: { label: 'Nederlands' }, + }, }, presets: [ @@ -26,10 +30,11 @@ const config = { /** @type {import('@docusaurus/preset-classic').Options} */ ({ docs: { - path: '../docs', + path: './', + exclude: ['**/node_modules/**'], sidebarPath: require.resolve('./sidebars.js'), editUrl: - 'https://github.com/ConductionNL/procest/tree/main/docusaurus/', + 'https://github.com/ConductionNL/procest/tree/main/docs/', }, blog: false, theme: { @@ -60,6 +65,10 @@ const config = { label: 'GitHub', position: 'right', }, + { + type: 'localeDropdown', + position: 'right', + }, ], }, footer: { diff --git a/docs/features/README.md b/docs/features/README.md index d4afb16..823e5dc 100644 --- a/docs/features/README.md +++ b/docs/features/README.md @@ -1,30 +1,184 @@ -# Procest Features +# Procest — Feature Overview -Feature documentation organized by functional group. Each file describes implemented and planned features based on the OpenSpec specifications. +Procest is a Nextcloud case management app (zaaksysteem) for Dutch municipalities, covering general case handling (zaakgericht werken), VTH permits/supervision/enforcement, objection and appeal workflows, B&W decision-making, and workflow automation. All data is stored in OpenRegister — Procest owns no database tables. -## Feature Groups +## Standards Compliance -| Feature | File | Specs | -|---------|------|-------| -| Case Management | [case-management.md](case-management.md) | case-management | -| Case Types | [case-types.md](case-types.md) | case-types | -| Task Management | [task-management.md](task-management.md) | task-management | -| Roles & Decisions | [roles-decisions.md](roles-decisions.md) | roles-decisions | -| Dashboard | [dashboard.md](dashboard.md) | dashboard | -| My Work | [my-work.md](my-work.md) | my-work | -| Administration | [administration.md](administration.md) | admin-settings, openregister-integration | +| Standard | Reference | Status | +|----------|-----------|--------| +| GEMMA Generiek zaakafhandelcomponent | [gemmaonline.nl](https://gemmaonline.nl/index.php/GEMMA/id-f2dfbd0b-9d36-405c-bdbe-827f3296de29) | Implemented | +| GEMMA Zaakregistratiecomponent | [gemmaonline.nl](https://gemmaonline.nl/index.php/GEMMA/id-a97b6545-d5a7-485d-9b13-3ce22db5b9cf) | Implemented | +| GEMMA Zaaktypecataloguscomponent | [gemmaonline.nl](https://gemmaonline.nl/index.php/GEMMA/id-3ef9cdd9-631c-4d3e-88c3-f756423d6314) | Implemented | +| GEMMA Vergunning- Toezicht- Handhavingcomponent (VTH) | [gemmaonline.nl](https://gemmaonline.nl/index.php/GEMMA/id-ca98dd6d-1c0b-43dc-a26e-61ebd1cd810d) | Partial | +| GEMMA VTH Fysieke Leefomgeving | [gemmaonline.nl](https://gemmaonline.nl/index.php/GEMMA/id-0777c4b6-e7c5-4d42-9fe8-9b98e6bca8a6) | Partial | +| GEMMA Bezwaar- en beroepcomponent | [gemmaonline.nl](https://gemmaonline.nl/index.php/GEMMA/id-ec221e15-9b3c-411b-b2f0-c4527d59f25f) | Implemented | +| GEMMA Bestuurlijk activiteiten bewakingcomponent | [gemmaonline.nl](https://gemmaonline.nl/index.php/GEMMA/id-78153895-50be-4f02-aedb-083406347952) | Partial | +| GEMMA Mobiel-toezicht-en-handhavingcomponent | [gemmaonline.nl](https://gemmaonline.nl/index.php/GEMMA/id-f6140c23-112b-4859-a6da-ca96c89898a2) | Planned | +| ZGW Zaken API (ZRC) | [zaakgerichtwerken.nl](https://zaakgerichtwerken.nl) | Implemented | +| ZGW Catalogi API (ZTC) | [zaakgerichtwerken.nl](https://zaakgerichtwerken.nl) | Implemented | +| ZGW Documenten API (DRC) | [zaakgerichtwerken.nl](https://zaakgerichtwerken.nl) | Implemented | +| ZGW Besluiten API (BRC) | [zaakgerichtwerken.nl](https://zaakgerichtwerken.nl) | Implemented | +| ZGW Autorisaties API (AC) | [zaakgerichtwerken.nl](https://zaakgerichtwerken.nl) | Implemented | +| ZGW Notificaties API (NRC) | [zaakgerichtwerken.nl](https://zaakgerichtwerken.nl) | Implemented | +| TEC BPM RFP Template — Process Modeling | Sections 1.1–1.11 | Partial | +| TEC BPM RFP Template — Security Management | Sections 2.1–2.5 | Partial | +| TEC BPM RFP Template — Workflow Portal | Sections 5.1–5.6 | Partial | +| TEC BPM RFP Template — Monitoring & Management | Sections 6.1–6.6 | Partial | +| CMMN 1.1 (OMG) | Case Plan Model, HumanTask, Milestone | Partial | +| Forum Standaardisatie — REST-API Design Rules | [forumstandaardisatie.nl](https://forumstandaardisatie.nl/open-standaarden/rest-api-design-rules) | Implemented | +| Forum Standaardisatie — NL GOV CloudEvents | [forumstandaardisatie.nl](https://forumstandaardisatie.nl/open-standaarden/nl-gov-cloudevents) | Planned | +| Awb (Algemene wet bestuursrecht) | Processing deadlines, bezwaar/beroep | Implemented | +| Woo (Wet open overheid) | 4-week response mandate, redaction | Planned | +| DSO Omgevingsloket | VTH permit intake integration | Planned | +| LHS (Landelijke Handhavingsstrategie) | 4×4 enforcement response matrix | Implemented | +| StUF-ZKN / StUF-BG | Legacy SOAP/XML exchange | Planned | + +## Features + +| Feature | Summary | Standards | Status | Docs | +|---------|---------|-----------|--------|------| +| Case Management | Create, track, and close cases with configurable types, statuses, and deadlines | GEMMA Zaakafhandel, ZGW ZRC, CMMN 1.1 | Implemented | [case-management.md](case-management.md) | +| Case Types | ZGW-compatible case type catalogue with status types, role types, and property definitions | GEMMA ZTC, ZGW Catalogi API | Implemented | [case-types.md](case-types.md) | +| Zaaktype Configuratie | Field mapping between Procest's internal model and Dutch ZGW resource types | ZGW ZRC/ZTC/BRC/DRC | Implemented | [zaaktype-configuratie.md](zaaktype-configuratie.md) | +| Task Management | Task work items linked to cases, with assignees, due dates, and status lifecycle | TEC BPM 5.1, CMMN HumanTask | Implemented | [task-management.md](task-management.md) | +| Roles & Decisions | Case participant role assignment (behandelaar, initiator, adviseur) and formal decision recording | GEMMA Zaakafhandel, ZGW BRC, ZGW ZRC Rol | Partial | [roles-decisions.md](roles-decisions.md) | +| Dashboard | Landing page with KPI cards (open, overdue, completed, my tasks), status chart, and work list | TEC BPM 5.3, 6.3 | Implemented | [dashboard.md](dashboard.md) | +| My Work | Personal work queue showing cases and tasks assigned to the current user | TEC BPM 5.1, 5.5 | Implemented | [my-work.md](my-work.md) | +| Werkvoorraad | Team-level queue of unassigned cases available for claiming | TEC BPM 5.1, GEMMA Zaakafhandel | Planned | [werkvoorraad.md](werkvoorraad.md) | +| Administration | Nextcloud admin panel for schema configuration, ZGW mapping, and seed data import | Nextcloud OCP | Implemented | [administration.md](administration.md) | +| Admin Settings | Configuration page for register/schema UUID mappings and version information | Nextcloud OCP | Implemented | [admin-settings.md](admin-settings.md) | +| OpenRegister Integration | All data stored as OpenRegister objects — Procest owns no database tables | OpenRegister API | Implemented | [openregister-integration.md](openregister-integration.md) | +| Base Register Seed Data | Pre-configured case types (Bezwaar, Vergunning, Melding, VTH) imported on install | GEMMA | Implemented | [base-register-seed-data.md](base-register-seed-data.md) | +| Workflow Engine | Zero-code visual workflow builder with status nodes, guards, and automatic actions | TEC BPM 1.1–1.6, BPMN 2.0 | Implemented | [workflow-engine-enhancement.md](workflow-engine-enhancement.md) | +| VTH Module | Permits, supervision, and enforcement case types and domain schemas | GEMMA VTH, DSO Omgevingsloket | Partial | [vth-module.md](vth-module.md) | +| VTH Workflow Configuration | Inspection checklists, enforcement wizard, LHS matrix, and VTH seed data | GEMMA VTH Fysieke Leefomgeving, LHS | Implemented | [vth-workflow-configuration.md](vth-workflow-configuration.md) | +| Bezwaar/Beroep Workflow | AWB-compliant objection and appeal case types with pre-seeded workflows and timelines | GEMMA Bezwaar/Beroep, Awb Hoofdstuk 7 | Implemented | [bezwaar-beroep-workflow.md](bezwaar-beroep-workflow.md) | +| B&W Besluitvorming Workflow | Formal B&W decision-making with parafering (sign-off) chain and notifications | GEMMA Bestuurlijk activiteiten | Implemented | [besluitvorming-workflow.md](besluitvorming-workflow.md) | +| B&W Parafering | Digital approval routing through mandate-verified sign-off chains | GEMMA Bestuurlijk activiteiten | Planned | [bw-parafering.md](bw-parafering.md) | +| Sub-case Support (Deelzaken) | Hierarchical cases with parent-child linking, roll-up indicators, and ZGW hoofdzaak/deelzaken mapping | ZGW ZRC-013, CMMN | Implemented | [deelzaak-support.md](deelzaak-support.md) | +| Doorlooptijd Dashboard | SLA adherence analytics with processing time distribution, compliance rate, trends, and at-risk cases | Awb, Woo, TEC BPM 6.3–6.4 | Implemented | [doorlooptijd-dashboard.md](doorlooptijd-dashboard.md) | +| Signalering Widgets | Six Nextcloud Dashboard widgets for deadline alerts, overdue cases, stalled cases, and task reminders | Nextcloud Dashboard API | Implemented | [signalering-widgets.md](signalering-widgets.md) | +| Case Dashboard View | Comprehensive case detail page with status timeline, panels, tasks, documents, and audit trail | CMMN, ZGW | Implemented | [case-dashboard-view.md](case-dashboard-view.md) | +| GIS Integration | Map view for cases, location picker, PDOK/WMS/WFS overlay, and secure GIS proxy | BAG, BRK, PDOK | Implemented | [gis-integration.md](gis-integration.md) | +| Milestone Tracking | Key progress checkpoints per case with target dates, overdue alerts, and visual timeline | CMMN Milestone, TEC BPM 6.3 | Planned | [milestone-tracking.md](milestone-tracking.md) | +| ZGW APIs | Full ZGW API suite: ZRC, ZTC, DRC, BRC, AC, NRC — VNG Newman test suite compliance | ZGW 1.x, VNG | Implemented | [zgw-apis.md](zgw-apis.md) | +| Zaak Intake Flow | Structured intake form with case type selection, auto-numbering, and deadline calculation | ZGW ZRC, DSO | Planned | [zaak-intake-flow.md](zaak-intake-flow.md) | +| Complaint Management | AWB-compliant klachtenprocedure with hearings, deadlines, and ombudsman escalation | Awb Hoofdstuk 9, GEMMA | Planned | [complaint-management.md](complaint-management.md) | +| Consultation Management | Public participation (inspraak) with response collection and nota van beantwoording | Omgevingswet, Awb | Planned | [consultation-management.md](consultation-management.md) | +| WOO Case Type | Open Government Act disclosure requests with redaction, zienswijze, and publication | Woo, Forum Standaardisatie | Planned | [woo-case-type.md](woo-case-type.md) | +| Legesberekening | Automated municipal fee calculation based on the legesverordening | Legesverordening | Planned | [legesberekening.md](legesberekening.md) | +| Case Email Integration | Link email communication to cases and create cases from incoming email | ZGW, Nextcloud Mail | Planned | [case-email-integration.md](case-email-integration.md) | +| Appointment Scheduling | Schedule hearings, consultations, and inspections linked to cases | Nextcloud Calendar | Planned | [appointment-scheduling.md](appointment-scheduling.md) | +| Case Sharing & Collaboration | Cross-department and federated case sharing with role-based access | Nextcloud Federation | Planned | [case-sharing-collaboration.md](case-sharing-collaboration.md) | +| Case Definition Portability | Export and import case type definitions between Procest instances | OpenCatalogi | Planned | [case-definition-portability.md](case-definition-portability.md) | +| MijnOverheid Integration | Publish case status and notifications to the national citizen portal | Logius Berichtenbox, DigiD | Planned | [mijn-overheid-integration.md](mijn-overheid-integration.md) | +| Mobiel Inspectie | Mobile-optimized inspection interface with checklists, photo capture, GPS, and offline sync | GEMMA Mobiel toezicht | Planned | [mobiel-inspectie.md](mobiel-inspectie.md) | +| StUF Support | Legacy StUF-ZKN/BG SOAP/XML bridge for connecting to older government systems | StUF-ZKN, StUF-BG | Planned | [stuf-support.md](stuf-support.md) | +| AI-Assisted Processing | Document summarization, auto-classification, anonymization (Presidio), and deadline risk prediction | NL GOV, Nextcloud AI | Planned | [ai-assisted-processing.md](ai-assisted-processing.md) | +| Register i18n | Full Dutch + English translation using Nextcloud gettext/l10n infrastructure | Forum Standaardisatie i18n | Partial | [register-i18n.md](register-i18n.md) | +| Multi-Tenant SaaS | Tenant isolation, per-tenant configuration, and NL Design System theming per tenant | Nextcloud Groups | Planned | [multi-tenant-saas.md](multi-tenant-saas.md) | +| Prometheus Metrics | `/metrics` endpoint for Prometheus scraping with SLA compliance and queue depth metrics | OpenMetrics | Planned | [prometheus-metrics.md](prometheus-metrics.md) | +| Start Case Widget | Dashboard widget for starting new cases directly from the Nextcloud dashboard | Nextcloud Dashboard API | Implemented | [start-case-widget.md](start-case-widget.md) | +| App Scaffold | PHP/Vue app foundation, OpenRegister wiring, Pinia stores, and build system | Nextcloud OCP | Implemented | [app-scaffold.md](app-scaffold.md) | + +## TEC BPM RFP Template Coverage + +Coverage against the [TEC BPM RFP Template](https://www.tec-consulting.de/) zaaksysteem module (is_module=1): + +| TEC Code | Capability | Feature | +|----------|------------|---------| +| 1.1 | Graphical Designer | Workflow Engine (SVG canvas) | +| 1.2 | Workflow | Workflow Engine, Case Management | +| 1.3 | Events | ZGW Notificaties API, Signalering Widgets | +| 1.4 | Task Allocation | Task Management, Roles & Decisions | +| 1.5 | Business Rules | ZGW Business Rules Compliance | +| 1.6 | Business Controls | Workflow Guards (role-check, field-value, date-range) | +| 1.7 | Data Modeling | OpenRegister Integration (procest_register.json) | +| 1.8 | Process Variable Binding | Workflow Engine (field-update actions) | +| 1.9 | Manual or User-Initiated Tasks | Task Management, Zaak Intake Flow | +| 1.10 | Due Dates | Case Deadlines, Milestone Tracking, Doorlooptijd | +| 1.11 | Process Linkage | Deelzaak Support, Sub-case creation | +| 2.1 | Roles and Users | Roles & Decisions | +| 2.2 | Role Management | Case Types (roleType schema) | +| 2.3 | User Profiles | My Work, Werkvoorraad | +| 2.4 | User Assignment Algorithms | Werkvoorraad (claim), Task assignment | +| 2.5 | Timers | Deadline tracking, signalering | +| 3.2 | Versioning | Case Definition Portability | +| 3.4 | Export Format | Case Definition Portability | +| 3.5 | Import Format | Base Register Seed Data | +| 4.1–4.7 | Form Management | Zaak Intake Flow, VTH Workflow (planned) | +| 5.1 | To-do List | My Work, Werkvoorraad | +| 5.2 | Watch List | Signalering Widgets | +| 5.3 | Reports | Doorlooptijd Dashboard | +| 5.4 | Search and Query | Case Management (list view filters) | +| 5.5 | Task Information | Task Management, Case Dashboard View | +| 5.6 | Collaboration | Case Sharing & Collaboration | +| 6.1 | Instance Management | Case Management (CRUD) | +| 6.2 | Workflow Initiation | Zaak Intake Flow, Workflow Engine | +| 6.3 | Workflow Monitoring | Doorlooptijd Dashboard, Signalering Widgets | +| 6.4 | Workflow Statistics | Doorlooptijd Dashboard | +| 6.5 | Audit Trails | Case Management (audit trail), OpenRegister Integration | +| 6.6 | Resource Organization | Roles & Decisions, Multi-Tenant SaaS | +| 7.1 | Performance Data | Prometheus Metrics, Doorlooptijd Dashboard | +| 7.2 | Trend Analysis | Doorlooptijd Dashboard (12-month trend) | ## Spec-to-Feature Mapping Used by the `/opsx:archive` skill to update the correct feature doc when archiving a change. ``` -case-management → case-management.md -case-types → case-types.md -task-management → task-management.md -roles-decisions → roles-decisions.md -dashboard → dashboard.md -my-work → my-work.md -admin-settings → administration.md -openregister-integration → administration.md +case-management → case-management.md +case-types → case-types.md +task-management → task-management.md +roles-decisions → roles-decisions.md +roles-decisions-mvp → roles-decisions.md +dashboard → dashboard.md +dashboard-mvp → dashboard.md +my-work → my-work.md +admin-settings → admin-settings.md +administration → administration.md +openregister-integration → openregister-integration.md +base-register-seed-data → base-register-seed-data.md +workflow-engine-enhancement → workflow-engine-enhancement.md +vth-module → vth-module.md +vth-workflow-configuration → vth-workflow-configuration.md +bezwaar-beroep-workflow → bezwaar-beroep-workflow.md +besluitvorming-workflow → besluitvorming-workflow.md +bw-parafering → bw-parafering.md +deelzaak-support → deelzaak-support.md +doorlooptijd-dashboard → doorlooptijd-dashboard.md +signalering-widgets → signalering-widgets.md +gis-integration → gis-integration.md +milestone-tracking → milestone-tracking.md +zaak-intake-flow → zaak-intake-flow.md +zaaktype-configuratie → zaaktype-configuratie.md +complaint-management → complaint-management.md +consultation-management → consultation-management.md +woo-case-type → woo-case-type.md +legesberekening → legesberekening.md +case-email-integration → case-email-integration.md +appointment-scheduling → appointment-scheduling.md +case-sharing-collaboration → case-sharing-collaboration.md +case-definition-portability → case-definition-portability.md +mijn-overheid-integration → mijn-overheid-integration.md +mobiel-inspectie → mobiel-inspectie.md +stuf-support → stuf-support.md +ai-assisted-processing → ai-assisted-processing.md +register-i18n → register-i18n.md +multi-tenant-saas → multi-tenant-saas.md +prometheus-metrics → prometheus-metrics.md +case-dashboard-view → case-dashboard-view.md +werkvoorraad → werkvoorraad.md +case-management-extended → case-management.md +case-sharing-collaboration → case-sharing-collaboration.md +zgw-autorisaties-api → zgw-apis.md +zgw-documenten-api → zgw-apis.md +zgw-notificaties-api → zgw-apis.md +zgw-newman-test-suite → zgw-apis.md +zgw-business-rules-compliance → zgw-apis.md +create-procest-app → app-scaffold.md +procest-app-scaffold → app-scaffold.md +procest-object-store → app-scaffold.md +procest-case-management → case-management.md +start-case-widget → start-case-widget.md ``` diff --git a/docs/features/admin-settings.md b/docs/features/admin-settings.md new file mode 100644 index 0000000..64158e9 --- /dev/null +++ b/docs/features/admin-settings.md @@ -0,0 +1,34 @@ +# Admin Settings (Configuration) + +The Configuration page (under Settings) provides the central administration panel for Procest. + +![Admin Settings](../screenshots/admin-settings.png) + +## Overview + +The Configuration page displays: + +### Version Information +- Application name and version +- Update status indicator +- Re-import configuration button for resetting to defaults + +### Application Information +- **Application Name**: Procest +- **Version**: Displays the current installed version + +### Support +- Support email: support@conduction.nl +- SLA inquiries: sales@conduction.nl + +## Schema Configuration + +The configuration section allows administrators to map Procest to OpenRegister schemas. See the [Case Types](case-types.md) documentation for the full list of configurable schema mappings. + +## ZGW API Mapping + +![ZGW API Mapping](../screenshots/zaaktype-configuratie.png) + +The settings page includes the ZGW (Zaakgericht Werken) API mapping configuration, which maps English-language OpenRegister property names to their Dutch ZGW API equivalents. This ensures compatibility with the Dutch government's ZGW standard for case management. + +Each ZGW resource type (zaak, zaaktype, status, etc.) can be individually configured with custom field mappings. diff --git a/docs/features/ai-assisted-processing.md b/docs/features/ai-assisted-processing.md new file mode 100644 index 0000000..e426ca3 --- /dev/null +++ b/docs/features/ai-assisted-processing.md @@ -0,0 +1,30 @@ +# AI-Assisted Processing + +The AI-assisted processing feature leverages large language models and AI services to assist case workers with case analysis, document processing, and decision support. + +## Overview + +AI-assisted processing integrates with Nextcloud's AI infrastructure (ExApps like Ollama and OpenWebUI) to provide intelligent assistance during case handling. + +## Planned Features + +- **Document summarization** -- Automatically summarize long documents attached to cases. +- **Classification** -- Auto-classify incoming cases by type based on content analysis. +- **Anonymization** -- Redact personal data from documents for WOO publication using Presidio. +- **Suggested responses** -- Generate draft responses based on case content and templates. +- **Similar case finding** -- Find historically similar cases to inform decision-making. +- **Deadline risk assessment** -- Predict which cases are at risk of exceeding their deadline. +- **Translation** -- Translate case documents for multilingual communication. +- **Data extraction** -- Extract structured data from unstructured documents. + +## AI Infrastructure + +Procest leverages the following AI services (available via Docker profiles): +- **Ollama** -- Local LLM inference. +- **OpenWebUI** -- Chat interface for AI interaction. +- **Presidio** -- PII detection and anonymization. +- **TGI** -- Text Generation Inference for high-performance LLM serving. + +## Status + +This feature is defined in the spec at `openspec/specs/ai-assisted-processing/spec.md` and is under development. diff --git a/docs/features/app-scaffold.md b/docs/features/app-scaffold.md new file mode 100644 index 0000000..830b51e --- /dev/null +++ b/docs/features/app-scaffold.md @@ -0,0 +1,23 @@ +# App Scaffold + +Procest application foundation — Nextcloud PHP app boilerplate, Webpack/Vue 2 build system, OpenRegister integration wiring, and initial register configuration. + +## Overview + +The app scaffold establishes the technical foundation for the Procest Nextcloud app: + +- **PHP app skeleton** — AppInfo, Application class, DI container wiring +- **Vue 2 frontend** — Webpack build, Pinia state management, Vue Router +- **OpenRegister wiring** — `ConfigurationService::importFromApp()` repair step, `procest_register.json` with 12 initial schemas +- **Object store pattern** — Pinia stores per entity type, OpenRegister API calls from frontend +- **Nextcloud integration** — Admin panel settings, navigation, sidebar + +## Archive Changes + +This feature consolidates: +- `create-procest-app` — initial app registration and boilerplate +- `procest-app-scaffold` — build system, Webpack/Vue setup +- `procest-object-store` — Pinia store foundation per entity +- `procest-case-management` — core case CRUD scaffolding + +See [administration.md](administration.md) and [case-management.md](case-management.md) for functional details. diff --git a/docs/features/appointment-scheduling.md b/docs/features/appointment-scheduling.md new file mode 100644 index 0000000..d37a50d --- /dev/null +++ b/docs/features/appointment-scheduling.md @@ -0,0 +1,22 @@ +# Appointment Scheduling (Afspraken) + +The appointment scheduling feature enables case workers to schedule meetings, hearings, and appointments related to case processing. + +## Overview + +Many case types require in-person or virtual meetings (e.g., complaint hearings, permit consultations, inspections). This feature integrates appointment scheduling into the case workflow. + +## Planned Features + +- **Appointment creation** -- Schedule appointments linked to specific cases. +- **Calendar integration** -- Sync with Nextcloud Calendar for availability management. +- **Participant management** -- Invite internal and external participants. +- **Location management** -- Track physical or virtual meeting locations. +- **Reminder notifications** -- Send reminders to participants before appointments. +- **Appointment types** -- Configure different appointment types (hearing, consultation, inspection, etc.). +- **Outcome recording** -- Document appointment outcomes and link them to the case file. +- **Rescheduling** -- Handle cancellations and rescheduling with notification to all parties. + +## Status + +This feature is defined in the spec at `openspec/specs/appointment-scheduling/spec.md` and is planned for future implementation. diff --git a/docs/features/base-register-seed-data.md b/docs/features/base-register-seed-data.md new file mode 100644 index 0000000..ec03378 --- /dev/null +++ b/docs/features/base-register-seed-data.md @@ -0,0 +1,32 @@ +# Base Register Seed Data + +The base register seed data feature provides pre-configured case types, status types, and role definitions that are automatically imported when Procest is first installed. + +## Overview + +To provide a functional out-of-the-box experience, Procest includes seed data that sets up common Dutch government case types and their associated configurations. + +## Included Seed Data + +### Case Types +- **Bezwaar** -- Objection procedure (openbaar confidentiality). +- **Vergunning** -- Permit application (openbaar confidentiality). +- **Melding** -- Public space report (geheim confidentiality). +- **Vergunning aanvraag** (VRG-001) -- Environmental permit application. + +### Status Types +Pre-defined statuses for the standard case lifecycle. + +### Role Types +Standard roles such as behandelaar (handler), initiator, and belanghebbende (stakeholder). + +### Decision Types +Common decision types for government case processing. + +## Import Mechanism + +Seed data is imported via the "Re-import configuration" button in the Settings > Case Types page. This reads JSON seed files bundled with the application and creates the corresponding OpenRegister objects. + +## Status + +This feature is implemented. Seed data is automatically imported on first install and can be re-imported via the admin settings. diff --git a/docs/features/besluitvorming-workflow.md b/docs/features/besluitvorming-workflow.md new file mode 100644 index 0000000..6dee64f --- /dev/null +++ b/docs/features/besluitvorming-workflow.md @@ -0,0 +1,50 @@ +# B&W Besluitvorming Workflow + +**Issue:** #87 +**Branch:** `feature/87/besluitvorming-workflow` +**PR:** #95 + +## Overview + +Implements the B&W (Board & Aldermen — College van Burgemeester en Wethouders) decision-making workflow for Dutch municipal case management. Provides a structured parafering (initialling/sign-off) chain for proposals (`voorstellen`) that require formal decision-making. + +## Architecture + +### Backend + +- **New schemas** in `lib/Settings/procest_register.json`: + - `voorstel` — the proposal document awaiting B&W decision + - `parafeerroute` — a named sign-off chain with ordered steps + - `parafeeractie` — an individual action taken by a paraferent + +- **New service:** `lib/Service/ParaferingNotificationService.php` + - Sends Nextcloud notifications for workflow events: + - `notifyStepActivated` — notify the actor when their step becomes active + - `notifyVoorstelReturned` — notify the steller when a proposal is returned + - `notifyParaferingReminder` — send overdue reminders + +- **Updated:** `lib/Service/SettingsService.php` + - New config keys: `voorstel_schema`, `parafeerroute_schema`, `parafeeractie_schema` + +### Frontend + +- **Pinia store:** `src/store/modules/` (parafeerEngine) +- **Views:** VoorstelList, VoorstelDetail, VoorstelCreateDialog +- **Components:** ParafeerActionBar, ParafeerInbox, ProgressTimeline, AuditTrail, BesluitRegistration +- **Router:** `/voorstellen`, `/voorstellen/:id` + +## Notification Events + +| Method | Subject key | Recipient | Purpose | +|--------|-------------|-----------|---------| +| `notifyStepActivated` | `parafering_step_activated` | Actor | Inform paraferent their step is active | +| `notifyVoorstelReturned` | `voorstel_returned` | Steller | Inform steller proposal was returned | +| `notifyParaferingReminder` | `parafering_reminder` | Actor | Remind actor of overdue step | + +## Testing + +Unit tests are in `tests/Unit/Service/ParaferingNotificationServiceTest.php`. They verify: +- Notifications are sent to the correct user +- Subject keys and parameters are set correctly +- App ID is set to the Procest app constant +- Exceptions from the notification manager are caught and logged (never thrown to callers) diff --git a/docs/features/bezwaar-beroep-workflow.md b/docs/features/bezwaar-beroep-workflow.md new file mode 100644 index 0000000..b5ac6a0 --- /dev/null +++ b/docs/features/bezwaar-beroep-workflow.md @@ -0,0 +1,51 @@ +# Bezwaar/Beroep Workflow + +**Issue:** #86 +**Branch:** `feature/86/bezwaar-beroep-workflow` +**PR:** #97 + +## Overview + +Implements AWB-compliant (Algemene wet bestuursrecht) bezwaar (objection) and beroep (appeal) workflows for Dutch municipal case management. Includes pre-seeded case types with all required status types, role types, and workflow templates. + +## Architecture + +### Backend + +**`lib/Service/SeedDataService`** +- Seeds bezwaar/beroep case types from `lib/Settings/bezwaar_seed_data.json` +- Idempotent: checks for existing objects by `identifier` before creating +- Resolves name-to-UUID references in workflow steps/transitions after creation +- Returns a summary with counts: `caseTypes`, `statusTypes`, `roleTypes`, `workflows`, `skipped` + +**`lib/Repair/SeedBezwaarBeroepData`** +- `IRepairStep` executed during app installation or upgrade +- Delegates to `SeedDataService::seedBezwaarBeroepData()` +- Skips if OpenRegister is not available (`SettingsService::isOpenRegisterAvailable`) +- Exceptions are caught and logged — never propagated + +**`lib/Settings/bezwaar_seed_data.json`** +- Pre-defined case types: `bezwaar` and `beroep` +- Each includes: status types (e.g. `ontvangen`, `in-behandeling`, `beslissing-genomen`), role types, and a workflow template with steps, transitions, and guards + +### Frontend (Vue) + +- Pinia store: `src/store/modules/bezwaar.js` +- Case detail components: `BezwaarIntakeForm`, `BezwaarTimeline`, `BezwaarDecisionForm`, `HearingPanel`, `AdvisoryReportPanel`, `DeadlineIndicator` +- Beroep escalation: `BeroepEscalationPanel`, `CourtProceedingsPanel` + +## AWB Timeline + +| Phase | Status types | Key deadlines | +|-------|-------------|---------------| +| Ontvangst | `ontvangen` | 14-day acknowledgement | +| In behandeling | `in-behandeling` | 6-week standard, 12-week extended | +| Hoorzitting | `hoorzitting-gepland`, `hoorzitting-gehouden` | Date from case | +| Beslissing | `beslissing-concept`, `beslissing-genomen` | Within deadline | +| Beroep | `beroep-ingediend`, `bij-rechtbank` | 6-week filing window | + +## Testing + +Unit tests are in: +- `tests/Unit/Service/SeedDataServiceTest.php` — ObjectService unavailable → failure, missing config → failure, happy path summary structure, idempotency (existing → skipped), seed data file integrity +- `tests/Unit/Repair/SeedBezwaarBeroepDataTest.php` — getName, skip when OpenRegister unavailable, call seed service, info output on success, exception handling diff --git a/docs/features/bw-parafering.md b/docs/features/bw-parafering.md new file mode 100644 index 0000000..962573c --- /dev/null +++ b/docs/features/bw-parafering.md @@ -0,0 +1,26 @@ +# B&W Parafering (Executive Approval Workflow) + +The B&W parafering feature implements the formal approval workflow for decisions that require authorization by the Board of Mayor and Aldermen (College van Burgemeester en Wethouders). + +## Overview + +In Dutch municipal government, certain decisions must be formally approved (geparafeerd) by the B&W (Board of Mayor and Aldermen). This feature provides a structured digital approval workflow. + +## Planned Features + +- **Approval routing** -- Route decisions through the required approval chain. +- **Digital signing** -- Support for digital parafering (initialing/signing) by authorized officials. +- **Mandate checking** -- Verify that the approver has the required mandate for the decision type. +- **Approval history** -- Track the full approval chain with timestamps and approver identities. +- **Rejection handling** -- Handle rejections with feedback and re-routing. +- **B&W agenda integration** -- Link approval items to B&W meeting agendas. +- **Delegation** -- Support for delegated approval authority. +- **Batch approval** -- Allow authorized officials to approve multiple items in a single session. + +## Legal Context + +Municipal decisions often require formal authorization at specific mandate levels. The B&W parafering workflow ensures compliance with the municipality's mandate register (mandaatregister). + +## Status + +This feature is defined in the spec at `openspec/specs/bw-parafering/spec.md` and is planned for future implementation. diff --git a/docs/features/case-dashboard-view.md b/docs/features/case-dashboard-view.md new file mode 100644 index 0000000..7e93288 --- /dev/null +++ b/docs/features/case-dashboard-view.md @@ -0,0 +1,25 @@ +# Case Dashboard View + +The case dashboard view shows the detail page for an individual case, accessible by clicking on a case from the My Work list or the Cases list. + +![Case Dashboard View](../screenshots/case-dashboard-view.png) + +## Overview + +The case detail view is accessed via the URL pattern `/apps/procest/cases/{uuid}`. When navigating to a specific case (e.g., from the My Work list), the application loads the case detail page. + +## Current State + +The case detail view is under active development. The page loads at the correct route but the content area is currently blank, indicating that the case dashboard component is still being implemented. + +## Planned Features + +Based on the spec, the case dashboard view will include: + +- **Case header** -- Title, identifier, status badge, and case type. +- **Status timeline** -- Visual representation of the case lifecycle stages. +- **Case details panel** -- Key properties such as dates, handler, initiator, and confidentiality level. +- **Tasks section** -- List of tasks associated with the case. +- **Documents section** -- Attached documents and correspondence. +- **Audit trail** -- History of status changes and actions taken on the case. +- **Actions** -- Buttons for common operations like changing status, adding tasks, or uploading documents. diff --git a/docs/features/case-definition-portability.md b/docs/features/case-definition-portability.md new file mode 100644 index 0000000..cd933ff --- /dev/null +++ b/docs/features/case-definition-portability.md @@ -0,0 +1,27 @@ +# Case Definition Portability + +The case definition portability feature enables exporting and importing case type configurations between Procest instances. + +## Overview + +Organizations should be able to share their case type definitions, workflows, and configurations with other Procest users. This feature provides standardized export/import capabilities. + +## Planned Features + +- **Export** -- Export case type definitions as portable JSON/YAML packages. +- **Import** -- Import case type definitions from other Procest instances. +- **Version management** -- Track versions of case type definitions. +- **Marketplace** -- Share case type definitions through a central catalog (e.g., via OpenCatalogi). +- **Dependency resolution** -- Handle dependencies between case types (e.g., sub-case types, related schemas). +- **Migration** -- Support upgrading case type definitions while preserving existing case data. +- **Validation** -- Validate imported definitions before applying them. + +## Use Cases + +- A municipality develops a specialized WOO case type and shares it with other municipalities. +- A software vendor provides pre-built case type packages for common government processes. +- An organization migrates case type definitions from a test environment to production. + +## Status + +This feature is defined in the spec at `openspec/specs/case-definition-portability/spec.md` and is planned for future implementation. diff --git a/docs/features/case-email-integration.md b/docs/features/case-email-integration.md new file mode 100644 index 0000000..b136db2 --- /dev/null +++ b/docs/features/case-email-integration.md @@ -0,0 +1,22 @@ +# Case Email Integration + +The case email integration feature enables linking email communication to cases and creating cases from incoming emails. + +## Overview + +Email is a common communication channel in Dutch government case processing. This feature bridges email and case management to ensure all correspondence is properly filed and traceable. + +## Planned Features + +- **Incoming email to case** -- Automatically or manually create cases from incoming emails. +- **Email filing** -- Associate sent and received emails with existing cases. +- **Email templates** -- Predefined templates for common case correspondence. +- **Correspondence tracking** -- Track all email interactions within the case audit trail. +- **Attachment handling** -- Automatically attach email attachments as case documents. +- **Notification emails** -- Send automated status update emails to case participants. +- **Reply tracking** -- Link email replies back to the originating case. +- **Integration with Nextcloud Mail** -- Leverage the built-in Nextcloud Mail app for email handling. + +## Status + +This feature is defined in the spec at `openspec/specs/case-email-integration/spec.md` and is planned for future implementation. diff --git a/docs/features/case-management.md b/docs/features/case-management.md index f2ea904..50d91a5 100644 --- a/docs/features/case-management.md +++ b/docs/features/case-management.md @@ -66,9 +66,21 @@ Processing deadlines are auto-calculated from the case type's duration configura Full audit trail tracking who changed what and when, including status transitions, field changes, and participant modifications. +### Sub-cases / Deelzaken (V1) + +Hierarchical case support for parent-child case relationships. A parent case can spawn sub-cases (deelzaken) for parallel departmental processing. + +- Create sub-case from parent case detail view with case type constraint enforcement +- Sub-cases section on parent case detail showing title, status, assignee, deadline +- Sub-case progress roll-up indicator ("X/Y completed") in section header +- Parent case breadcrumb navigation on sub-case detail views +- Sub-case count badge on case list for parent cases +- Nesting prevention: sub-cases cannot have their own sub-cases (single level) +- Deletion protection: warns about sub-case detachment, clears parentCase on children before deleting parent +- ZGW compatibility: maps to `hoofdzaak` / `deelzaken` fields + ### Planned (V1) -- Sub-cases (parent/child hierarchy) - Document completion checklist (required vs present) - Property completion indicator (% required fields filled) - Days in current status indicator diff --git a/docs/features/case-sharing-collaboration.md b/docs/features/case-sharing-collaboration.md new file mode 100644 index 0000000..1e3b6c7 --- /dev/null +++ b/docs/features/case-sharing-collaboration.md @@ -0,0 +1,22 @@ +# Case Sharing and Collaboration + +The case sharing and collaboration feature enables multiple users and organizations to work together on cases. + +## Overview + +Government case processing often requires collaboration between departments, organizations, or external parties. This feature provides the tools to share cases and collaborate securely. + +## Planned Features + +- **Case sharing** -- Share cases with other users or groups within the Nextcloud instance. +- **Cross-organization sharing** -- Share cases with users in federated Nextcloud instances. +- **Role-based access** -- Define what shared users can see and do (view, edit, comment). +- **Commenting** -- Add comments and notes to shared cases. +- **Activity feed** -- Track all collaborative actions on a case. +- **Notifications** -- Notify collaborators of case changes. +- **Document co-editing** -- Collaboratively edit case documents using Nextcloud's built-in editing capabilities. +- **Handoff workflows** -- Formally transfer case responsibility between handlers or departments. + +## Status + +This feature is defined in the spec at `openspec/specs/case-sharing-collaboration/spec.md` and is under development. diff --git a/docs/features/case-types.md b/docs/features/case-types.md index e1297c4..5eca6d0 100644 --- a/docs/features/case-types.md +++ b/docs/features/case-types.md @@ -1,65 +1,41 @@ # Case Types -Configuration system that controls case behavior. Case types define the allowed statuses, results, roles, custom fields, document requirements, and processing rules for cases. - -## Specs - -- `openspec/specs/case-types/spec.md` - -## Features - -### Case Type CRUD (MVP) - -Full create, read, update, and delete for case type configurations. - -- Fields: title, description, processingDeadline (ISO 8601 duration), defaultConfidentiality, validFrom, validUntil -- Case types contain sub-collections: statusTypes, resultTypes, roleTypes, propertyDefinitions, documentTypes, decisionTypes - -### Draft/Published Lifecycle (MVP) - -Case types follow a two-phase lifecycle: - -- **Draft**: Can be freely edited. Cannot be used to create cases. -- **Published**: Active and available for case creation. Changes require careful consideration. - -### Validity Periods (MVP) - -Case types have optional `validFrom` and `validUntil` dates, enabling version management. Only valid case types are available for new case creation. - -### Status Type Management (MVP) - -Ordered list of allowed statuses for the case type. Each status type has a name and order. Statuses define the lifecycle phases a case can progress through. - -- Add, reorder, edit, and delete status types -- Order determines the expected progression sequence - -### Processing Deadline Configuration (MVP) - -ISO 8601 duration (e.g., `P30D` for 30 days, `P6W` for 6 weeks) that auto-calculates case deadlines from creation date. - -### Default Case Type Selection (MVP) - -One case type can be marked as the default, pre-selected when creating new cases. - -### Case Type Validation Rules (MVP) - -- Title is required -- At least one status type required before publishing -- Processing deadline must be valid ISO 8601 duration -- validFrom must be before validUntil when both set - -### Planned (V1) - -- Extension and suspension configuration (rules for deadline modification) -- Result type management (with archival rules: `bewaren` / `vernietigen`) -- Role type management (with generic role mapping) -- Property definition management (custom fields with type/validation) -- Document type management (with direction: incoming/internal/outgoing) -- Decision type management -- Confidentiality default settings - -### Planned (Enterprise) - -- Case type versioning chains (auditable type evolution) -- Case type import/export -- Sub-case type restrictions +The Case Types page (under Settings) allows administrators to manage case type definitions and their configurations. + +![Case Types](../screenshots/case-types.png) + +## Overview + +The page is divided into several sections: + +### Version Information +Displays application metadata: +- **Application Name**: Procest +- **Version**: Current installed version +- **Up to date**: Status indicator for configuration currency +- **Re-import configuration**: Button to re-import default case type configurations +- **Support**: Contact information for support (support@conduction.nl) and SLA inquiries (sales@conduction.nl) + +### Configuration +Register and schema settings that link Procest to OpenRegister: +- **Register** -- The OpenRegister register ID used for case data. +- **Case schema** -- Schema ID for case objects. +- **Task schema** -- Schema ID for task objects. +- **Status schema** -- Schema ID for status objects. +- **Role schema** -- Schema ID for role objects. +- **Result schema** -- Schema ID for result objects. +- **Decision schema** -- Schema ID for decision objects. +- **Case type schema** -- Schema ID for case type definitions. +- **Status type schema** -- Schema ID for status type definitions. + +### Case Type Management +A table listing all configured case types with ZGW (Zaakgericht Werken) properties including catalogus, confidentiality, description, identifier, processingDeadline, title, and many more. + +Example case types include: +- **Bezwaar** (BEZWAAR) -- Objection procedure, openbaar (public) confidentiality +- **Vergunning** (VERGUNNING) -- Permit application, openbaar confidentiality +- **Melding** (MELDING) -- Public space report, geheim (confidential) +- **Vergunning aanvraag** (VRG-001) -- Environmental permit application + +### ZGW API Mapping +Configuration for property mappings between English OpenRegister fields and Dutch ZGW API fields. Supported resources: zaak, zaaktype, status, statustype, resultaat, resultaattype, rol, roltype, eigenschap, besluit, besluittype, informatieobjecttype. Each mapping can be edited or reset to defaults. diff --git a/docs/features/complaint-management.md b/docs/features/complaint-management.md new file mode 100644 index 0000000..7a587d2 --- /dev/null +++ b/docs/features/complaint-management.md @@ -0,0 +1,30 @@ +# Complaint Management (Klachtafhandeling) + +The complaint management feature handles the registration, processing, and resolution of citizen complaints according to Dutch administrative law requirements. + +## Overview + +Complaint management is a specialized case type within Procest that follows the formal complaint handling procedure (klachtenprocedure) as defined in the Dutch General Administrative Law Act (Awb). + +## Planned Features + +- **Complaint registration** -- Structured intake form for complaints. +- **Complaint categorization** -- Classify complaints by type, department, or subject. +- **Hearing scheduling** -- Schedule and track hearings with the complainant. +- **Investigation tracking** -- Document the investigation process and findings. +- **Response deadlines** -- Track and enforce the legally required response periods. +- **Ombudsman referral** -- Track escalation to the national or municipal ombudsman. +- **Complaint resolution** -- Record outcomes (founded, unfounded, partially founded). +- **Follow-up actions** -- Track corrective measures resulting from complaints. +- **Reporting** -- Statistical reporting on complaint volumes, categories, and resolution times. + +## Legal Context + +Dutch municipalities are legally required to handle complaints according to Chapter 9 of the Awb, which prescribes: +- Acknowledgment within 5 working days. +- Hearing the complainant. +- Resolution within 6 weeks (extendable by 4 weeks). + +## Status + +This feature is defined in the spec at `openspec/specs/complaint-management/spec.md` and is planned for future implementation. diff --git a/docs/features/consultation-management.md b/docs/features/consultation-management.md new file mode 100644 index 0000000..7bab429 --- /dev/null +++ b/docs/features/consultation-management.md @@ -0,0 +1,29 @@ +# Consultation Management (Inspraak) + +The consultation management feature handles public participation and consultation processes related to government decisions and policies. + +## Overview + +Consultation management supports the formal and informal processes where citizens and stakeholders can provide input on proposed government decisions, spatial plans, or policy changes. + +## Planned Features + +- **Consultation period management** -- Define start and end dates for consultation windows. +- **Stakeholder registration** -- Track who has submitted input. +- **Response collection** -- Collect and categorize consultation responses. +- **Response processing** -- Review, assess, and respond to each submission. +- **Consideration report** -- Generate the formal "nota van beantwoording" (response memorandum). +- **Publication** -- Publish consultation documents and outcomes. +- **Timeline tracking** -- Ensure compliance with legally mandated consultation periods. +- **Notification** -- Notify stakeholders of outcomes and decisions. + +## Legal Context + +Various Dutch laws require public consultation, including: +- Wet ruimtelijke ordening (Spatial Planning Act) +- Omgevingswet (Environment and Planning Act) +- Algemene wet bestuursrecht (General Administrative Law Act) + +## Status + +This feature is defined in the spec at `openspec/specs/consultation-management/spec.md` and is planned for future implementation. diff --git a/docs/features/dashboard.md b/docs/features/dashboard.md index 3498d43..8b73bbe 100644 --- a/docs/features/dashboard.md +++ b/docs/features/dashboard.md @@ -1,63 +1,42 @@ # Dashboard -Landing page providing an at-a-glance overview of case activity and personal workload with KPI cards, charts, and quick actions. +The Procest dashboard is the landing page of the application, providing a high-level overview of the current user's case management workload. -## Specs +![Dashboard](../screenshots/dashboard.png) -- `openspec/specs/dashboard/spec.md` +## Overview -## Features +The dashboard displays four summary cards at the top: -### KPI Cards (MVP) +- **Open Cases** -- Total number of active/open cases (e.g., 15). +- **Overdue** -- Cases that have exceeded their processing deadline. +- **Completed This Month** -- Cases resolved within the current calendar month. +- **My Tasks** -- Tasks assigned to the current user. -Top row of metric cards showing key case management numbers: +Below the summary cards, two panels provide quick access to key information: -- Open Cases (count of non-terminal cases) -- Overdue Cases (cases past their deadline) -- Completed This Month (cases closed in current month) -- My Tasks (tasks assigned to current user) +### Cases by Status +A horizontal bar chart showing the distribution of cases across different statuses. This gives case workers an immediate sense of the pipeline. -### Cases by Status Chart (MVP) +### My Work +A list of cases assigned to the current user, showing: +- Case type badge (CASE) +- Case identifier (e.g., #ZAAK-TEST-006) +- Days remaining until the processing deadline -Visual chart showing the distribution of cases across status values, providing a quick overview of workflow bottleneck areas. +## Actions -### Overdue Cases Panel (MVP) +Two primary action buttons are available at the top: +- **New Case** -- Opens the case creation form. +- **New Task** -- Opens the task creation form. +- **Refresh dashboard** -- Reloads dashboard data (disabled when already current). -Dedicated panel listing cases past their processing deadline, sorted by urgency. Direct click-through to case detail. +## Navigation -### My Work Preview (MVP) - -Compact preview of the user's top 5 assigned items (cases + tasks), linking to the full My Work view. - -### Quick Actions (MVP) - -Shortcut buttons for common operations — primarily "+ New Case" for fast case creation. - -### Dashboard Data Scope (MVP) - -All dashboard data respects RBAC permissions. Users only see metrics and cases they have access to. - -### Empty State (MVP) - -Fresh installations show a welcoming empty state with getting-started guidance instead of empty charts and zero-count cards. - -### Dashboard Refresh (MVP) - -Data refreshes on mount and supports manual refresh for up-to-date metrics. - -### Dashboard Layout (MVP) - -Responsive grid layout adapting to screen size, with KPI cards on top, charts in the middle, and activity/work previews below. - -### Planned (V1) - -- Cases by type chart (distribution across case types) -- Recent activity feed (last 10 case events) -- Average processing time KPI per case type - -### Planned (Enterprise) - -- Custom dashboards -- SLA compliance meter -- Handler workload heatmap -- Trend analysis (case volume over time) +The left sidebar provides navigation to all major sections: +- Dashboard (current) +- My Work +- Cases +- Tasks +- Documentation +- Settings (expandable, with Case Types and Configuration sub-pages) diff --git a/docs/features/deelzaak-support.md b/docs/features/deelzaak-support.md new file mode 100644 index 0000000..6aa0c96 --- /dev/null +++ b/docs/features/deelzaak-support.md @@ -0,0 +1,29 @@ +# Deelzaak Support (Sub-case Hierarchy) + +**Issue:** #83 +**Branch:** `feature/83/deelzaak-support` + +## Overview + +Adds hierarchical case support (deelzaken) enabling a parent case to spawn child cases for parallel departmental processing. For example, an Omgevingsvergunning parent case can spawn separate sub-cases for building assessment, environmental impact, and fire safety — each with their own lifecycle, assignees, and deadlines. + +## Capabilities + +- Create sub-case from parent case detail view with case type constraint enforcement (`subCaseTypes` list) +- Sub-cases section on parent case detail showing title, status, assignee, and deadline +- Sub-case progress roll-up indicator ("X/Y completed") in section header +- Parent case breadcrumb navigation on sub-case detail views +- Sub-case count badge in case list for parent cases +- Nesting prevention: sub-cases cannot spawn further sub-cases (single level only) +- Deletion protection: warns about sub-case detachment, clears `parentCase` on children before deleting parent +- Case store extended to support filtering by `parentCase` and loading sub-case trees + +## ZGW Mapping + +Maps bidirectionally to ZGW `hoofdzaak` / `deelzaken` fields in the Zaken API (ZRC-013 compliant). + +## Validation + +- Sub-case cannot be created if the parent case is closed +- Sub-case type must be in the parent case type's `subCaseTypes` list +- Maximum nesting depth: 1 level (sub-cases cannot have sub-cases) diff --git a/docs/features/doorlooptijd-dashboard.md b/docs/features/doorlooptijd-dashboard.md new file mode 100644 index 0000000..cc2e7da --- /dev/null +++ b/docs/features/doorlooptijd-dashboard.md @@ -0,0 +1,30 @@ +# Doorlooptijd Dashboard (Processing Time Analytics) + +**Issue:** #89 +**Branch:** `feature/89/doorlooptijd-dashboard` + +## Overview + +Adds a dedicated Doorlooptijd (processing time) analytics view to the Procest dashboard, enabling case managers and team leads to monitor SLA adherence, identify processing bottlenecks, and track compliance trends. Dutch regulations (Awb, Woo) impose strict processing deadlines, making this view essential for proactive case management. + +## Features + +- **SLA compliance rate widget** — Percentage of cases completed within their `processingDeadline`, broken down by case type +- **Processing time distribution chart** — Histogram of actual vs. allowed processing days per case type +- **Trend line chart** — Monthly SLA compliance rate over the last 12 months (ApexCharts) +- **At-risk cases panel** — Open cases where remaining time is less than 25% of the allowed processing deadline +- **Average processing time table** — Per-case-type performance table with SLA target comparison +- **Dashboard KPI card** — Summary SLA compliance card added to the main dashboard KPI row + +## Data Sources + +All data derived from existing case fields — no schema changes required: +- `case.startDate`, `case.endDate`, `case.deadline`, `case.plannedEndDate`, `case.status`, `case.caseType` +- `caseType.processingDeadline` +- `statusType.isFinal` + +## Standards + +- Awb (Algemene wet bestuursrecht) processing deadline compliance +- Woo (Wet open overheid) 4-week response mandate +- ZGW Zaken API `einddatum` and `uiterlijkeEinddatumAfdoening` fields diff --git a/docs/features/gis-integration.md b/docs/features/gis-integration.md new file mode 100644 index 0000000..114b1ce --- /dev/null +++ b/docs/features/gis-integration.md @@ -0,0 +1,48 @@ +# GIS Integration + +**Issue:** #91 +**Branch:** `feature/91/gis-integration` +**PR:** #96 + +## Overview + +Adds geographic information system (GIS) capabilities to Procest, allowing caseworkers to view cases on a map, pick locations for new cases, and overlay municipal WMS/WFS data layers. Integrates with PDOK (Dutch national geo-data infrastructure) and supports custom WMS/WFS layers. + +## Architecture + +### Backend + +Two new PHP classes handle secure GIS data proxying: + +**`lib/Service/GisProxyService`** +- Proxies WMS/WFS requests from the frontend to external GIS services +- URL allowlist: always allows `pdok.nl` and `kadaster.nl`; validates other URLs against configured MapLayer objects in OpenRegister +- Caching: APCu distributed cache with 5-minute TTL +- Rate limiting: 100 requests/minute per user +- GetCapabilities parsing: extracts WMS Layer / WFS FeatureType elements from XML +- XML-to-JSON conversion via SimpleXML + +**`lib/Controller/GisProxyController`** +- `proxy()` endpoint — forwards WMS/WFS requests, returns `JSONResponse` +- `capabilities()` endpoint — fetches and parses GetCapabilities from a service URL +- Error codes: 400 (missing URL), 403 (URL blocked), 429 (rate limited), 502 (upstream error) + +**`lib/Service/SettingsService`** — new config keys: `map_layer_schema` + +### Frontend + +- **Pinia store:** `src/store/modules/gis.js` +- **Vue components:** CaseMap, LocationPicker, AddressSearch, MapLayerSwitcher, MapLegend, SpatialFilter, CasePopup +- **Services:** `coordinateService.js`, `gisProxyService.js`, `pdokService.js` +- **Views:** CaseMapView, CaseMapWidget (dashboard), MapLayerSettings (admin), LocationTab (case detail) +- **Map library:** Leaflet (via npm) + +## Security + +All external GIS requests are proxied through Nextcloud to avoid CORS issues and to enforce the URL allowlist. Users cannot access GIS services that are not configured as MapLayer objects in OpenRegister. + +## Testing + +Unit tests are in: +- `tests/Unit/Service/GisProxyServiceTest.php` — URL allowlist validation, cache hit returns, rate limiting +- `tests/Unit/Controller/GisProxyControllerTest.php` — HTTP status codes for success/403/429/502, missing URL → 400 diff --git a/docs/features/legesberekening.md b/docs/features/legesberekening.md new file mode 100644 index 0000000..87a2efc --- /dev/null +++ b/docs/features/legesberekening.md @@ -0,0 +1,22 @@ +# Legesberekening (Fee Calculation) + +The legesberekening feature automates the calculation of municipal fees (leges) associated with permit applications and other government services. + +## Overview + +Dutch municipalities charge fees for various services, particularly permit applications. These fees are defined in the municipal fee ordinance (legesverordening) and can involve complex calculation rules. + +## Planned Features + +- **Fee schedule management** -- Configure fee schedules based on the municipal legesverordening. +- **Automatic calculation** -- Calculate fees automatically based on case type and application details. +- **Fee components** -- Support for multiple fee components (base fee, surcharges, reductions). +- **Exemptions** -- Handle fee exemptions and reductions. +- **Fee assessment** -- Generate formal fee assessments (aanslagen). +- **Payment tracking** -- Track payment status and link to financial systems. +- **Year-based rates** -- Support different fee rates per calendar year. +- **Invoice generation** -- Generate invoices for calculated fees. + +## Status + +This feature is defined in the spec at `openspec/specs/legesberekening/spec.md` and is planned for future implementation. diff --git a/docs/features/mijn-overheid-integration.md b/docs/features/mijn-overheid-integration.md new file mode 100644 index 0000000..bb59e5c --- /dev/null +++ b/docs/features/mijn-overheid-integration.md @@ -0,0 +1,26 @@ +# MijnOverheid Integration + +The MijnOverheid integration enables citizens to view their case status and receive notifications through the national MijnOverheid portal. + +## Overview + +MijnOverheid is the Dutch national government portal where citizens can view their personal government-related information. This integration allows Procest to publish case status information to MijnOverheid. + +## Planned Features + +- **Status publication** -- Publish case status updates to MijnOverheid's Berichtenbox. +- **Case overview** -- Show active and completed cases on the citizen's MijnOverheid page. +- **Notifications** -- Send case notifications via MijnOverheid's notification system. +- **Document sharing** -- Make case documents available through MijnOverheid. +- **DigiD authentication** -- Support DigiD login for citizen-facing interfaces. +- **Logius integration** -- Connect via the Logius infrastructure for MijnOverheid communication. + +## Technical Requirements + +- Compliance with MijnOverheid's API specifications. +- Secure message delivery via the Berichtenbox standard. +- BSN (Burgerservicenummer) handling for citizen identification. + +## Status + +This feature is defined in the spec at `openspec/specs/mijn-overheid-integration/spec.md` and is planned for future implementation. diff --git a/docs/features/milestone-tracking.md b/docs/features/milestone-tracking.md new file mode 100644 index 0000000..6fefbb1 --- /dev/null +++ b/docs/features/milestone-tracking.md @@ -0,0 +1,27 @@ +# Milestone Tracking + +The milestone tracking feature monitors key progress points within a case lifecycle, providing visibility into case processing stages and deadlines. + +## Overview + +Milestones represent significant events or checkpoints in a case's lifecycle. They help case workers and managers track whether a case is progressing according to schedule. + +## Planned Features + +- **Milestone definitions** -- Define milestones per case type (e.g., "Intake complete", "Assessment done", "Decision published"). +- **Automatic milestone triggers** -- Milestones triggered automatically by status changes or other events. +- **Manual milestone recording** -- Allow case workers to manually mark milestones as reached. +- **Deadline tracking** -- Each milestone can have a target date derived from the case start date and processing rules. +- **Overdue alerts** -- Notifications when milestones are not reached by their target date. +- **Visual timeline** -- Display milestones on a visual timeline in the case dashboard view. +- **Reporting** -- Track milestone completion rates and average time-to-milestone across case types. + +## Use Cases + +- Track that a permit application has been assessed within the legally mandated 8-week period. +- Monitor that a complaint hearing was scheduled within 2 weeks of receipt. +- Verify that all required documents were received before the review deadline. + +## Status + +This feature is defined in the spec at `openspec/specs/milestone-tracking/spec.md` and is planned for future implementation. diff --git a/docs/features/mobiel-inspectie.md b/docs/features/mobiel-inspectie.md new file mode 100644 index 0000000..2640c45 --- /dev/null +++ b/docs/features/mobiel-inspectie.md @@ -0,0 +1,23 @@ +# Mobiel Inspectie (Mobile Inspection) + +The mobile inspection feature provides a mobile-optimized interface for field inspectors to conduct and document inspections. + +## Overview + +Government inspectors often work in the field and need to document their findings on-site. This feature provides a responsive, mobile-friendly interface for inspection activities. + +## Planned Features + +- **Mobile-optimized UI** -- Responsive interface designed for tablet and smartphone use. +- **Inspection checklists** -- Configurable checklists per inspection type. +- **Photo capture** -- Take and attach photos directly from the mobile device. +- **GPS location** -- Capture and record the inspection location. +- **Offline support** -- Work offline and sync when connectivity is restored. +- **Digital signature** -- Capture inspector and inspected party signatures. +- **Quick findings** -- Predefined finding templates for common violations. +- **Report generation** -- Generate inspection reports from collected data. +- **Follow-up creation** -- Create enforcement cases directly from inspection findings. + +## Status + +This feature is defined in the spec at `openspec/specs/mobiel-inspectie/spec.md` and is planned for future implementation. diff --git a/docs/features/multi-tenant-saas.md b/docs/features/multi-tenant-saas.md new file mode 100644 index 0000000..e06ac85 --- /dev/null +++ b/docs/features/multi-tenant-saas.md @@ -0,0 +1,26 @@ +# Multi-Tenant SaaS + +The multi-tenant SaaS feature enables Procest to serve multiple organizations from a single Nextcloud instance. + +## Overview + +For SaaS deployments, Procest must support multiple tenant organizations, each with their own case data, configurations, and user access controls. + +## Planned Features + +- **Tenant isolation** -- Strict data separation between tenants. +- **Per-tenant configuration** -- Each tenant can have their own case types, workflows, and settings. +- **Tenant onboarding** -- Streamlined process for adding new tenant organizations. +- **Shared infrastructure** -- All tenants share the same Nextcloud instance and Procest installation. +- **Tenant-specific branding** -- Support for NL Design System theme tokens per tenant. +- **Usage metering** -- Track resource usage per tenant for billing purposes. +- **Tenant admin role** -- Separate admin role for tenant-level administration. +- **Cross-tenant sharing** -- Optional controlled sharing between tenants for inter-organizational case handling. + +## Implementation Approach + +Multi-tenancy is implemented through OpenRegister's register-level isolation, where each tenant gets their own register with separate schemas and objects. + +## Status + +This feature is defined in the spec at `openspec/specs/multi-tenant-saas/spec.md` and is planned for future implementation. diff --git a/docs/features/my-work.md b/docs/features/my-work.md index e719a94..7b39064 100644 --- a/docs/features/my-work.md +++ b/docs/features/my-work.md @@ -1,62 +1,33 @@ -# My Work (Werkvoorraad) +# My Work -Personal productivity hub aggregating all work items assigned to the current user — cases where they are the handler plus tasks assigned to them — into a single prioritized view. Answers: "What do I need to work on next?" +The My Work view shows all cases and tasks assigned to the currently logged-in user, providing a personal work queue. -## Specs +![My Work](../screenshots/my-work.png) -- `openspec/specs/my-work/spec.md` +## Overview -## Features +The page displays a count of total items in the heading (e.g., "My Work (15)") and provides three filter tabs: -### Personal Workload View (MVP) +- **All (15)** -- Shows both cases and tasks combined. +- **Cases (15)** -- Filters to show only cases. +- **Tasks (0)** -- Filters to show only tasks. -Unified list of cases (where user is handler) and tasks (assigned to user), combining both entity types into a single sorted view. +A **Show completed** checkbox allows toggling visibility of finished items. -- Item cards showing title, type badge (case/task), priority, and deadline/due date -- Click-through navigation to case or task detail views +## Work Items -### Filter Tabs (MVP) +Each item in the list shows: +- **Type badge** -- "CASE" or "TASK" label. +- **Title** -- The case or task name (e.g., "Test Case 4"). +- **Identifier** -- The case reference number (e.g., #ZAAK-TEST-004). +- **Days remaining** -- Time until the processing deadline, with warning indicators (exclamation mark) for items needing attention. -Filter tabs to focus on specific entity types: +Items are grouped under an **UPCOMING** section header with a count. -- **All**: Cases + tasks combined -- **Cases**: Only cases where user is handler -- **Tasks**: Only tasks assigned to user +## Interaction -### Temporal Grouping (MVP) +Clicking on a case navigates to the case detail view at `/apps/procest/cases/{uuid}`. Clicking on a task would navigate to the task detail view. -Items organized into urgency-based groups: +## Data Source -- **Overdue**: Past deadline/due date, highlighted with red indicators -- **Due This Week**: Due within the current week -- **Upcoming**: Due in the future beyond this week -- **No Deadline**: Items without a deadline/due date - -### Sorting (MVP) - -Items sorted by priority first (urgent → high → normal → low), then by deadline/due date within each priority level. - -### Overdue Highlighting (MVP) - -Items past their deadline are visually distinct with red color indicators and overdue badges. - -### Default Filter (MVP) - -By default, only non-final items are shown (excludes completed/terminated cases and tasks). Users can toggle to include completed items. - -### Item Navigation (MVP) - -Clicking any item navigates to its detail view (case detail or task detail) for full context and actions. - -### Empty State (MVP) - -When no items are assigned, shows a friendly empty state indicating no current work items. - -### Planned (V1) - -- Cross-app workload: include Pipelinq leads/requests alongside Procest items -- Concurrent state change handling (real-time updates) - -### Planned (Enterprise) - -- Workload analytics (items per user for management visibility) +My Work items are fetched based on the current user's assignments. The view queries OpenRegister for cases and tasks where the logged-in user is the assigned handler. diff --git a/docs/features/openregister-integration.md b/docs/features/openregister-integration.md new file mode 100644 index 0000000..43dfbaa --- /dev/null +++ b/docs/features/openregister-integration.md @@ -0,0 +1,32 @@ +# OpenRegister Integration + +The OpenRegister integration is the foundational data layer for Procest, storing all case management data in OpenRegister's flexible register/schema/object model. + +## Overview + +Procest uses OpenRegister as its data backend rather than maintaining its own database tables. This provides flexibility, auditability, and interoperability with other OpenRegister-based applications. + +## Architecture + +- **Register** -- A single OpenRegister register holds all Procest data. +- **Schemas** -- Separate schemas define the structure for cases, tasks, roles, decisions, results, case types, and status types. +- **Objects** -- Individual cases, tasks, and other entities are stored as OpenRegister objects. + +## Configuration + +The integration is configured through the Settings > Configuration page: +- Register ID +- Schema IDs for each entity type (case, task, status, role, result, decision, case type, status type) + +## Features + +- **CRUD operations** -- Full create, read, update, delete operations on all entity types. +- **Audit trail** -- OpenRegister provides automatic audit logging of all changes. +- **File attachments** -- Case documents stored via Nextcloud Files, referenced from OpenRegister objects. +- **Search** -- Full-text search across case data via OpenRegister's search capabilities. +- **Validation** -- Schema-based validation ensures data integrity. +- **API access** -- All data accessible via OpenRegister's REST API and MCP protocol. + +## Status + +This feature is implemented and actively used as the core data layer for Procest. diff --git a/docs/features/prometheus-metrics.md b/docs/features/prometheus-metrics.md new file mode 100644 index 0000000..aa3776f --- /dev/null +++ b/docs/features/prometheus-metrics.md @@ -0,0 +1,28 @@ +# Prometheus Metrics + +The Prometheus metrics feature exposes operational metrics for monitoring Procest in production environments. + +## Overview + +For enterprise deployments, Procest can expose metrics in Prometheus format, enabling integration with standard monitoring stacks (Prometheus + Grafana). + +## Planned Metrics + +- **Case counts** -- Total cases by status, type, and age. +- **Processing times** -- Average and percentile processing times per case type. +- **Deadline compliance** -- Percentage of cases resolved within their deadline. +- **Queue depth** -- Number of unassigned cases in the werkvoorraad. +- **User activity** -- Active case workers and their current workload. +- **API response times** -- Latency of API endpoints. +- **Error rates** -- API error rates and types. +- **Storage usage** -- Document storage consumption. + +## Integration + +- Standard `/metrics` endpoint for Prometheus scraping. +- Grafana dashboard templates for common monitoring views. +- Alert rules for SLA compliance monitoring. + +## Status + +This feature is defined in the spec at `openspec/specs/prometheus-metrics/spec.md` and is planned for future implementation. diff --git a/docs/features/register-i18n.md b/docs/features/register-i18n.md new file mode 100644 index 0000000..2df94c2 --- /dev/null +++ b/docs/features/register-i18n.md @@ -0,0 +1,31 @@ +# Register i18n (Internationalization) + +The register i18n feature provides multilingual support for Procest, with Dutch (nl) and English (en) as the minimum required languages. + +## Overview + +As a Dutch government application, Procest must support Dutch as its primary language while also providing English translations for international users and developers. + +## Scope + +- **UI labels** -- All user interface elements translated. +- **Case type names** -- Translatable case type titles and descriptions. +- **Status labels** -- Translatable status names. +- **Error messages** -- Translated error and validation messages. +- **Documentation** -- Feature documentation available in multiple languages. +- **Email templates** -- Translatable notification templates. + +## Implementation + +- Uses Nextcloud's standard i18n infrastructure (gettext/l10n). +- Translation files stored in the `l10n/` directory. +- Translatable strings marked with `t()` in Vue components and `$this->l->t()` in PHP. + +## Required Languages + +- **nl** (Dutch) -- Primary language for government users. +- **en** (English) -- Required secondary language. + +## Status + +This feature is defined in the spec at `openspec/specs/register-i18n/spec.md` and is partially implemented. diff --git a/docs/features/roles-decisions.md b/docs/features/roles-decisions.md index 2916f4c..cdb84e7 100644 --- a/docs/features/roles-decisions.md +++ b/docs/features/roles-decisions.md @@ -1,53 +1,32 @@ -# Roles & Decisions +# Roles and Decisions -Participation, outcomes, and formal decision-making on cases. Roles link participants to cases, results record outcomes, and decisions are formal administrative determinations. +The roles and decisions feature manages the assignment of roles to case participants and the recording of formal decisions (besluiten) within cases. -## Specs +## Roles -- `openspec/specs/roles-decisions/spec.md` +Roles define who is involved in a case and in what capacity. Common role types in Dutch government case management include: -## Features +- **Behandelaar** (Handler) -- The case worker responsible for processing the case. +- **Initiator** -- The person or organization that initiated the case (e.g., the applicant). +- **Belanghebbende** (Stakeholder) -- Parties with a vested interest in the case outcome. +- **Adviseur** (Advisor) -- Internal or external advisors consulted during case processing. +- **Medeinitiator** -- Co-initiators of a case. -### Role Assignment (MVP) +### Role Management +- Assign roles to users or external parties. +- Track role history (who was assigned when). +- Role-based access control for case data. +- ZGW-compatible role types via the roltype mapping. -Roles link participants (Nextcloud users or external contacts) to cases with specific role types. +## Decisions (Besluiten) -- Handler assignment shortcut: quick assign the primary case handler -- Built-in generic roles: initiator, handler, advisor -- Participant display on case detail view -- Role validation: role type must be valid, participant must exist +Decisions are formal administrative outcomes recorded against a case: -### Case Result Recording (MVP) +- **Decision types** -- Configurable via the besluittype ZGW mapping. +- **Decision recording** -- Capture the decision text, date, and responsible authority. +- **Decision publication** -- Track whether a decision requires publication. +- **Appeal tracking** -- Link decisions to subsequent objection (bezwaar) cases. -When a case reaches a terminal status, a result records the outcome. +## Status -- Result links to the case and optionally to a result type -- Result description documents the outcome details -- Closing a case requires recording a result - -### Planned (V1) — Role Types - -- Role type enforcement from case type configuration -- Role-based case access (participants can only see cases they have a role on) -- Custom role types per case type - -### Planned (V1) — Decisions - -Formal administrative determinations within cases: - -- Decision CRUD linked to cases -- Decision validity periods (effectiveDate, expiryDate) -- Decision types from case type configuration -- Decision validation rules -- Decisions section on case detail view - -### Planned (V1) — Result Types - -- Result type configuration per case type -- Archival rules on result types (`bewaren` = preserve, `vernietigen` = destroy) -- Result type enforcement on case closure - -### Planned (Enterprise) - -- DMN decision tables (automated decision logic) -- Decision templates +This feature is defined in the spec at `openspec/specs/roles-decisions/spec.md` and is partially implemented through the ZGW API mapping configuration. diff --git a/docs/features/signalering-widgets.md b/docs/features/signalering-widgets.md new file mode 100644 index 0000000..96d68fb --- /dev/null +++ b/docs/features/signalering-widgets.md @@ -0,0 +1,34 @@ +# Signalering Widgets + +**Issue:** #88 +**Branch:** `feature/88/signalering-widgets` + +## Overview + +The signalering (alerting) feature adds six Nextcloud Dashboard widgets that give caseworkers a real-time overview of cases requiring attention. + +## Widgets + +| Widget | ID | Purpose | +|--------|-----|---------| +| Cases Overview | `procest_cases_overview_widget` | List of recent open cases | +| Deadline Alerts | `procest_deadline_alerts_widget` | Cases approaching their processing deadline | +| Overdue Cases | `procest_overdue_cases_widget` | Cases that have exceeded their deadline | +| Stalled Cases | `procest_stalled_cases_widget` | Cases with no recent activity | +| Task Reminders | `procest_task_reminders_widget` | Upcoming task deadlines | +| My Tasks | `procest_my_tasks_widget` | Tasks assigned to the logged-in user | + +## Architecture + +All widgets are implemented as PHP classes in `lib/Dashboard/` implementing `OCP\Dashboard\IWidget`. They load Vue components via `Util::addScript()` and share a single stylesheet (`dashboardWidgets`). + +The Vue components fetch data at runtime from the OpenRegister backend using the Procest Pinia store. No data is stored in the PHP layer; widgets are purely metadata wrappers that bootstrap the frontend component. + +## Testing + +Unit tests are in `tests/Unit/Dashboard/SignaleringWidgetsTest.php`. They verify: +- Each widget returns its correct unique ID +- All widget IDs are unique across the set +- All widgets return non-empty titles (translated via IL10N) +- All widgets provide a URL back to the Procest dashboard route +- Widget display order is consistent (Deadline > Cases) diff --git a/docs/features/start-case-widget.md b/docs/features/start-case-widget.md new file mode 100644 index 0000000..64a5a0e --- /dev/null +++ b/docs/features/start-case-widget.md @@ -0,0 +1,35 @@ +# Start Case Widget + +## Summary + +Dashboard widget for starting new cases directly from the Nextcloud dashboard or MyDash, without navigating into the Procest app first. + +## Overview + +Case workers frequently need to start new cases throughout their day. The Start Case widget eliminates friction by providing a one-click case creation flow directly from the Nextcloud home screen. It shows available case types (zaaktypen) as clickable cards. When a user clicks a case type, a new case is created and they are navigated to the case detail page. + +In government case management (zaakgericht werken), fast intake is critical. Citizens call or walk in, and the case worker needs to register a new case immediately. This widget reduces the number of clicks from 3-4 to 1-2. + +## Key Capabilities + +- **Case type quick-start cards**: Shows configured case types as clickable cards with titles +- **Inline case creation**: Creates a case via OpenRegister API and navigates to the new case detail page +- **Empty state**: When no case types are configured, shows a helpful message directing admins to Procest settings +- **Loading state**: Shows loading indicator while fetching case types +- **i18n support**: All widget text available in Dutch and English +- **MyDash compatible**: Widget appears automatically when MyDash discovers registered Nextcloud widgets + +## Technical Details + +| Component | File | +|-----------|------| +| PHP Widget Class | `lib/Dashboard/StartCaseWidget.php` | +| Vue Component | `src/views/widgets/StartCaseWidget.vue` | +| Webpack Entry | `src/startCaseWidget.js` | +| Registration | `lib/AppInfo/Application.php` | + +## Related + +- Original issue: [#105](https://github.com/ConductionNL/procest/issues/105) +- Tracking issue: [#107](https://github.com/ConductionNL/procest/issues/107) +- OpenSpec change: `openspec/changes/archive/2026-03-24-start-case-widget/` diff --git a/docs/features/stuf-support.md b/docs/features/stuf-support.md new file mode 100644 index 0000000..6bab84f --- /dev/null +++ b/docs/features/stuf-support.md @@ -0,0 +1,25 @@ +# StUF Support + +The StUF (Standaard Uitwisseling Formaat) support feature provides compatibility with the legacy Dutch government data exchange standard. + +## Overview + +StUF is a SOAP/XML-based standard historically used for data exchange between Dutch government systems. While being phased out in favor of REST-based APIs, many legacy systems still use StUF. + +## Planned Features + +- **StUF-ZKN** -- Support for the StUF Zaken (case management) message format. +- **StUF-BG** -- Support for the StUF Basisgegevens (base data) message format. +- **Message translation** -- Translate between StUF XML messages and OpenRegister's JSON objects. +- **Endpoint provisioning** -- Expose StUF SOAP endpoints for legacy system integration. +- **Message logging** -- Log all StUF messages for audit and debugging. +- **Error handling** -- Proper StUF error responses (Fo/Fout messages). +- **Asynchronous processing** -- Support for asynchronous StUF message patterns. + +## Migration Path + +StUF support is intended as a bridge technology, enabling organizations to connect legacy systems while migrating to modern ZGW APIs. The ZGW API mapping feature provides the forward-looking integration path. + +## Status + +This feature is defined in the spec at `openspec/specs/stuf-support/spec.md` and is planned for future implementation. diff --git a/docs/features/task-management.md b/docs/features/task-management.md index 188dfa7..e0551ef 100644 --- a/docs/features/task-management.md +++ b/docs/features/task-management.md @@ -1,65 +1,33 @@ # Task Management -Work items within cases following CMMN 1.1 HumanTask concepts. Tasks are the primary mechanism for distributing and tracking work within a case. +The Tasks view provides a list of all tasks in the system, functioning similarly to the Cases view. -## Specs +![Task Management](../screenshots/task-management.png) -- `openspec/specs/task-management/spec.md` +## Overview -## Features +The tasks list supports the same two view modes as cases: -### Task CRUD (MVP) +- **Table view** (default) -- Sortable column-based table. +- **Cards view** -- Visual card layout. -Full create, read, update, and delete for tasks linked to cases. +## Actions -- Fields: title, description, status, assignedTo, dueDate, priority, case (parent case reference) -- Tasks inherit context from their parent case +- **Add Item** -- Creates a new task. +- **Actions** -- Bulk actions menu for selected tasks. -### Task Status Lifecycle (MVP) +## Current State -Tasks follow CMMN PlanItem states: +The task list view depends on the OpenRegister object type "task" being properly registered. Task schemas must be configured in the Settings > Configuration page. -- `available` → `active` → `completed` / `terminated` -- Status transitions are recorded for audit +## Planned Features -### Task Assignment (MVP) +Based on the spec, task management will include: -Tasks can be assigned to Nextcloud users. Assigned tasks appear in the user's My Work view. - -### Task List View (MVP) - -Browsable task list with search, sort, and filter: - -- Search across title and description -- Filter by status, assignee, priority, parent case -- Sort by due date, priority, status - -### Task Due Dates and Priorities (MVP) - -- Four priority levels: low, normal, high, urgent -- Due date tracking with overdue highlighting -- Priority + due date drive sorting in My Work view - -### Task Card Display (MVP) - -Compact card layout showing task title, status badge, priority indicator, due date, and assignee. Used in both list views and case detail task sections. - -### Task Completion (MVP) - -Completing a task transitions it to `completed` status and updates the parent case's task progress. - -### Overdue Task Management (MVP) - -Tasks past their due date are visually highlighted with red indicators. Overdue tasks surface prominently in My Work and dashboard views. - -### Planned (V1) - -- Kanban board view with drag-and-drop between statuses -- Task checklist/sub-items -- Task dependencies (blocked by) -- Task templates per case type - -### Planned (Enterprise) - -- Automated task creation on case status change -- Workload dashboard (tasks per user) +- Task creation with title, description, assignee, and due date. +- Task status workflow (open, in progress, completed, cancelled). +- Association with parent cases. +- Priority levels. +- Task assignment and reassignment. +- Due date tracking with overdue indicators. +- Bulk status updates. diff --git a/docs/features/vth-module.md b/docs/features/vth-module.md new file mode 100644 index 0000000..3658a45 --- /dev/null +++ b/docs/features/vth-module.md @@ -0,0 +1,38 @@ +# VTH Module (Vergunning, Toezicht, Handhaving) + +The VTH module handles the integrated process of permits (Vergunningen), supervision (Toezicht), and enforcement (Handhaving). + +## Overview + +VTH is a core government process domain that covers the entire lifecycle from permit application through compliance monitoring to enforcement actions. This module provides specialized case types and workflows for each VTH domain. + +## Planned Features + +### Vergunningen (Permits) +- Permit application intake and processing. +- Assessment workflows with multi-department review. +- Conditions and requirements management. +- Permit issuance and publication. + +### Toezicht (Supervision) +- Inspection planning and scheduling. +- Inspection report creation and filing. +- Compliance status tracking. +- Risk-based inspection prioritization. + +### Handhaving (Enforcement) +- Violation recording and categorization. +- Warning letters and formal notices. +- Penalty decision processing. +- Enforcement action tracking. +- Legalization procedures. + +## Integration + +- **DSO Omgevingsloket** -- Receive permit applications from the national digital system. +- **BAG/BRK** -- Link to building and cadastral registrations. +- **Inspection tools** -- Integration with mobile inspection workflows. + +## Status + +This feature is defined in the spec at `openspec/specs/vth-module/spec.md` and is planned for future implementation. diff --git a/docs/features/vth-workflow-configuration.md b/docs/features/vth-workflow-configuration.md new file mode 100644 index 0000000..bdb2486 --- /dev/null +++ b/docs/features/vth-workflow-configuration.md @@ -0,0 +1,49 @@ +# VTH Workflow Configuration + +**Issue:** #85 +**Branch:** `feature/85/vth-workflow-configuration` +**PR:** #98 + +## Overview + +Configures the Procest workflow engine for VTH (Vergunningen, Toezicht, Handhaving — Permits, Supervision, Enforcement), adding domain-specific schemas, seed data, LHS matrix support, and UI panels for Dutch environmental compliance workflows. + +## Architecture + +### Backend + +**New schemas** in `lib/Settings/procest_register.json`: +| Schema | Purpose | +|--------|---------| +| `inspectieChecklist` | Template-driven inspection checklist per inspection phase | +| `inspectieRapport` | Completed inspection report linking to a case | +| `handhavingsactie` | Enforcement action record (notice, dwangsom, bestuursdwang) | +| `adviesAanvraag` | Advice request to internal/external advisors | + +**New config keys** in `SettingsService`: +- `inspectie_checklist_schema` — UUID of inspectieChecklist schema +- `inspectie_rapport_schema` — UUID of inspectieRapport schema +- `handhavingsactie_schema` — UUID of handhavingsactie schema +- `advies_aanvraag_schema` — UUID of adviesAanvraag schema +- `lhsMatrix` — JSON string of the 4×4 Landelijke Handhavingsstrategie matrix + +**Seed data:** +- `lib/Settings/vth_seed_data.json` — 6 VTH case types (Omgevingsvergunning Regulier/Uitgebreid, Sloopmelding, Toezichtzaak Bouw/Milieu, Handhavingszaak) +- `lib/Settings/vth-templates/` — 6 JSON template files, one per case type + +### LHS Matrix + +The Landelijke Handhavingsstrategie (LHS) provides a standard 4×4 enforcement response matrix based on impact (A–D) and intent (1–4). The matrix is configurable per municipality and stored as a JSON string in app config. + +### Frontend (Vue) + +- **Pinia stores:** `inspection.js`, `enforcement.js`, `advice.js` +- **Case detail panels:** `InspectionPanel`, `EnforcementPanel`, `AdvicePanel` +- **Enforcement wizard:** 3-step: LHS classification → intervention selection → vooraankondiging +- **Admin components:** `ChecklistAdmin` (drag-and-drop versioned checklists), `LhsMatrixAdmin` (editable 4×4 grid), `VthTemplateLibrary` + +## Testing + +Unit tests are in: +- `tests/Unit/Service/VthSettingsServiceTest.php` — VTH config keys in getSettings(), updateSettings() persists VTH keys, lhsMatrix readable, core keys not overridden +- `tests/Unit/Settings/VthSchemaTest.php` — all 4 VTH schemas registered, vth-templates dir exists, template files are valid JSON, expected files present, vth_seed_data.json valid diff --git a/docs/features/werkvoorraad.md b/docs/features/werkvoorraad.md new file mode 100644 index 0000000..7a66b06 --- /dev/null +++ b/docs/features/werkvoorraad.md @@ -0,0 +1,29 @@ +# Werkvoorraad (Work Queue) + +The werkvoorraad (work queue) feature provides a team-level view of unassigned and pending work items that need to be picked up by case workers. + +## Overview + +Unlike "My Work" which shows items assigned to the current user, the werkvoorraad shows the shared pool of work that is available for the team or organizational unit. + +## Planned Features + +- **Unassigned cases** -- Cases that have not yet been assigned to a specific handler. +- **Team queue** -- Cases assigned to a team or organizational unit rather than an individual. +- **Priority sorting** -- Items sorted by urgency, deadline proximity, or priority level. +- **Claim functionality** -- Allows a case worker to claim a case from the queue, assigning it to themselves. +- **Filter by case type** -- Filter the queue by specific case types (e.g., Bezwaar, Vergunning, Melding). +- **Filter by deadline** -- View items approaching their processing deadline. +- **Bulk assignment** -- Assign multiple items from the queue to a specific handler. + +## Relationship to My Work + +The werkvoorraad and My Work views are complementary: +- **Werkvoorraad**: "What work is available for the team?" +- **My Work**: "What work is assigned to me?" + +Case workers typically check the werkvoorraad to pick up new work, which then appears in their My Work view. + +## Status + +This feature is defined in the spec at `openspec/specs/werkvoorraad/spec.md` and is planned for future implementation. diff --git a/docs/features/woo-case-type.md b/docs/features/woo-case-type.md new file mode 100644 index 0000000..0829157 --- /dev/null +++ b/docs/features/woo-case-type.md @@ -0,0 +1,30 @@ +# WOO Case Type + +The WOO (Wet open overheid / Open Government Act) case type handles requests for government information disclosure. + +## Overview + +The WOO replaced the older WOB (Wet openbaarheid van bestuur) and requires Dutch government organizations to proactively publish information and handle disclosure requests within strict timeframes. + +## Planned Features + +- **WOO request intake** -- Structured intake form for WOO disclosure requests. +- **Scope assessment** -- Determine which documents fall within the scope of the request. +- **Document collection** -- Gather relevant documents from various sources. +- **Redaction support** -- Mark documents or passages for redaction with legal grounds. +- **Third-party consultation** -- Track consultations with third parties mentioned in documents (zienswijze procedure). +- **Decision recording** -- Record the formal disclosure decision per document. +- **Publication** -- Publish disclosed documents on the WOO platform. +- **Deadline tracking** -- 4-week initial deadline, extendable by 2 weeks. +- **Appeal handling** -- Link to bezwaar (objection) cases if the decision is appealed. + +## Legal Requirements + +The WOO prescribes: +- Response within 4 weeks (extendable by 2 weeks). +- Mandatory grounds for refusal (e.g., personal privacy, business confidentiality, state security). +- Proactive publication obligations. + +## Status + +This feature is defined in the spec at `openspec/specs/woo-case-type/spec.md` and is planned for future implementation. diff --git a/docs/features/workflow-engine-enhancement.md b/docs/features/workflow-engine-enhancement.md new file mode 100644 index 0000000..b3eff40 --- /dev/null +++ b/docs/features/workflow-engine-enhancement.md @@ -0,0 +1,63 @@ +# Workflow Engine Enhancement + +**Issue:** #84 +**Branch:** `feature/84/workflow-engine-enhancement` +**PR:** #93 + +## Overview + +Adds a zero-code visual workflow builder that allows administrators to define process steps, status transitions, guards, and automatic actions per zaaktype. Caseworkers see available transitions on the case detail view, filtered by role and guard evaluation. + +## Architecture + +### Backend + +- **Schema:** `workflowTemplate` added to `lib/Settings/procest_register.json` + - Fields: `title`, `description`, `caseTypeId`, `version`, `isActive`, `isDraft`, `steps` (JSON array), `transitions` (JSON array), `guards` (JSON array), `automaticActions` (JSON array) + +### Frontend + +- **Pinia store:** `src/store/modules/workflow.js` + - CRUD on workflowTemplate objects via OpenRegister + - Guard evaluation (4 types: role-check, field-value, date-range, expression) + - Version management (draft → publish) + - Import/export as JSON + - Automatic action dispatch (email via n8n, task creation, webhooks, field update, notification, subcase) + +- **Visual Editor:** `src/views/settings/WorkflowEditor.vue` + - SVG canvas with draggable status nodes + - Connection ports for transitions + - Pan/zoom via CSS transform + +- **Configuration Panels:** + - `StepConfigPanel.vue` — checklist editor, guard configuration + - `TransitionConfigPanel.vue` — action configuration per transition + +- **Case Detail Integration:** `WorkflowTransitions.vue` — shows available transitions filtered by role/guards + +## Guards + +| Type | Description | +|------|-------------| +| `role-check` | Only users with specified role can perform transition | +| `field-value` | Transition available only when a case field has a given value | +| `date-range` | Transition available within a date window | +| `expression` | Custom JS expression evaluated against case data | + +## Automatic Actions (per transition) + +| Type | Description | +|------|-------------| +| `send-email` | Trigger n8n webhook with email payload | +| `create-task` | Automatically create a task assigned to a role | +| `webhook` | Call an external webhook URL | +| `update-field` | Update a case field value | +| `send-notification` | Send Nextcloud notification | +| `create-subcase` | Create a linked sub-case of a given type | + +## Testing + +Unit tests are in `tests/Unit/Settings/WorkflowEngineSchemaTest.php`. They verify: +- `procest_register.json` is valid JSON and follows OpenAPI structure +- `workflowTemplate` schema is registered with required properties (`steps`, `transitions`) +- All core case management schemas remain present after the migration diff --git a/docs/features/zaak-intake-flow.md b/docs/features/zaak-intake-flow.md new file mode 100644 index 0000000..c79e568 --- /dev/null +++ b/docs/features/zaak-intake-flow.md @@ -0,0 +1,29 @@ +# Zaak Intake Flow + +The zaak intake flow manages the process of receiving, validating, and registering new cases (zaken) in the system. + +## Overview + +The intake flow is the entry point for new cases, whether they originate from citizen requests, internal processes, or external system integrations. + +## Planned Features + +- **Intake form** -- Structured form for capturing initial case information. +- **Case type selection** -- Choose the appropriate zaaktype during intake. +- **Automatic numbering** -- Generate unique case identifiers (e.g., ZAAK-2026-0001). +- **Validation** -- Verify required fields and data quality during intake. +- **Document attachment** -- Upload supporting documents during case creation. +- **Initiator registration** -- Record the person or organization initiating the case. +- **Initial status** -- Automatically set the initial status based on the case type configuration. +- **Deadline calculation** -- Calculate the processing deadline based on the case type's configured processing period. +- **Assignment** -- Optionally assign the case to a handler during intake or route to the werkvoorraad. + +## Integration Points + +- **DSO Omgevingsloket** -- Receive intake from the national digital permit system. +- **E-mail intake** -- Create cases from incoming email. +- **API intake** -- Accept cases via ZGW-compatible API endpoints. + +## Status + +This feature is defined in the spec at `openspec/specs/zaak-intake-flow/spec.md` and is planned for future implementation. diff --git a/docs/features/zaaktype-configuratie.md b/docs/features/zaaktype-configuratie.md new file mode 100644 index 0000000..bf0196e --- /dev/null +++ b/docs/features/zaaktype-configuratie.md @@ -0,0 +1,37 @@ +# Zaaktype Configuratie (Case Type Configuration) + +The zaaktype configuration is part of the Settings area and provides ZGW-compliant case type management. + +![Zaaktype Configuration](../screenshots/zaaktype-configuratie.png) + +## Overview + +This feature manages the mapping between Procest's internal case type definitions and the Dutch ZGW (Zaakgericht Werken) standard. It is accessible from the Case Types settings page. + +## ZGW Resource Mapping + +The configuration supports mapping for the following ZGW resource types: + +| Resource | Description | +|----------|-------------| +| zaak | Case instance | +| zaaktype | Case type definition | +| status | Case status instance | +| statustype | Status type definition | +| resultaat | Case result instance | +| resultaattype | Result type definition | +| rol | Role assignment | +| roltype | Role type definition | +| eigenschap | Custom property | +| besluit | Decision instance | +| besluittype | Decision type definition | +| informatieobjecttype | Document type definition | + +Each mapping includes: +- **Status** -- Enabled/Disabled indicator +- **Edit** -- Opens the field mapping editor +- **Reset** -- Restores the default mapping + +## Purpose + +The ZGW API mapping ensures that Procest can expose its data through ZGW-compatible API endpoints, enabling interoperability with other Dutch government systems that follow the ZGW standard (such as OpenZaak, Dimpact ZAC, and XXLLnc Zaken). diff --git a/docs/features/zgw-apis.md b/docs/features/zgw-apis.md new file mode 100644 index 0000000..522f319 --- /dev/null +++ b/docs/features/zgw-apis.md @@ -0,0 +1,68 @@ +# ZGW API Compliance + +Procest implements the Dutch ZGW (Zaakgericht Werken) API suite, enabling interoperability with other ZGW-compliant systems (OpenZaak, Dimpact ZAC, XXLLnc Zaken) and passing the VNG Newman test suite. + +## ZGW APIs Implemented + +| API | Version | Description | Status | +|-----|---------|-------------|--------| +| Zaken API (ZRC) | 1.x | Case lifecycle management | Implemented | +| Catalogi API (ZTC) | 1.x | Case type catalogue | Implemented | +| Documenten API (DRC) | 1.x | Document management with binary upload | Implemented | +| Besluiten API (BRC) | 1.x | Decision registration | Implemented | +| Autorisaties API (AC) | 1.x | API client and JWT authorization | Implemented | +| Notificaties API (NRC) | 1.x | Webhook-based event notifications | Implemented | + +## Autorisaties API (AC) + +Manages API client (applicatie) registration and authorization: +- JWT token generation and validation +- Scope-based access control per ZGW API +- Maps to OpenRegister's Consumer entity and AuthorizationService +- Required by VNG Newman OAS tests for all ZGW API test runs + +## Documenten API (DRC) + +Full document management with binary file I/O: +- `enkelvoudiginformatieobject` — document metadata + file content +- Binary upload via `inhoud` field (base64 or multipart) +- File content stored in Nextcloud filesystem +- Linked to cases via `zaakinformatieobject` resources +- `indicatieGebruiksrecht` lifecycle enforcement on zaak close + +## Notificaties API (NRC) + +Webhook-based event publishing for ZGW resource changes: +- Channel subscriptions: `zaken`, `documenten`, `besluiten`, `catalogi` +- Abonnement (subscription) registration and management +- Event dispatch on create/update/delete of ZGW objects +- n8n workflow automation via webhook triggers + +## Business Rules Compliance + +VNG ZGW business rules compliance (tracked against the 353-assertion Newman test suite): + +| Rule | Description | Status | +|------|-------------|--------| +| ZRC-007a | Set `einddatum` on eindstatus creation | Fixed | +| ZRC-007b | Set `indicatieGebruiksrecht` on all docs when zaak closes | Fixed | +| ZRC-007q | Validate all docs have `indicatieGebruiksrecht` before eindstatus | Fixed | +| ZRC-008c | Check `zaken.heropenen` scope before reopening closed zaak | Fixed | +| ZRC-010 | `communicatiekanaal` validation error codes | Fixed | +| ZRC-013a | `hoofdzaak` not-found error code | Fixed | +| ZRC-015 | Validate `productenOfDiensten` subset | Fixed | + +## Newman Test Suite + +Automated ZGW compliance testing via VNG Postman collections: +- **ZGW OAS tests** — validates all 6 ZGW APIs against their OpenAPI specs +- **ZGW business rules** — validates business logic, edge cases, and authorization +- Newman runs locally and in CI via `make test:zgw` +- Test environment configuration in `data/newman-environment.json` + +## Standards References + +- [ZGW API standaard — zaakgrichtwerken.nl](https://zaakgerichtwerken.nl) +- [VNG Realisatie ZGW GitHub](https://github.com/VNG-Realisatie/gemma-zaken) +- [ZRC 1.x OAS](https://vng-realisatie.github.io/gemma-zaken/standaard/zaken/index) +- [DRC 1.x OAS](https://vng-realisatie.github.io/gemma-zaken/standaard/documenten/index) diff --git a/docs/i18n/nl/code.json b/docs/i18n/nl/code.json new file mode 100644 index 0000000..5aaed38 --- /dev/null +++ b/docs/i18n/nl/code.json @@ -0,0 +1,329 @@ +{ + "theme.ErrorPageContent.title": { + "message": "Deze pagina is gecrasht.", + "description": "The title of the fallback page when the page crashed" + }, + "theme.BackToTopButton.buttonAriaLabel": { + "message": "Scroll naar boven", + "description": "The ARIA label for the back to top button" + }, + "theme.blog.archive.title": { + "message": "Archief", + "description": "The page & hero title of the blog archive page" + }, + "theme.blog.archive.description": { + "message": "Archief", + "description": "The page & hero description of the blog archive page" + }, + "theme.blog.paginator.navAriaLabel": { + "message": "Paginanavigatie blog", + "description": "The ARIA label for the blog pagination" + }, + "theme.blog.paginator.newerEntries": { + "message": "Nieuwere items", + "description": "The label used to navigate to the newer blog posts page (previous page)" + }, + "theme.blog.paginator.olderEntries": { + "message": "Oudere items", + "description": "The label used to navigate to the older blog posts page (next page)" + }, + "theme.blog.post.paginator.navAriaLabel": { + "message": "Paginanavigatie blog", + "description": "The ARIA label for the blog posts pagination" + }, + "theme.blog.post.paginator.newerPost": { + "message": "Nieuwer bericht", + "description": "The blog post button label to navigate to the newer/previous post" + }, + "theme.blog.post.paginator.olderPost": { + "message": "Ouder bericht", + "description": "The blog post button label to navigate to the older/next post" + }, + "theme.tags.tagsPageLink": { + "message": "Laat alle tags zien", + "description": "The label of the link targeting the tag list page" + }, + "theme.colorToggle.ariaLabel.mode.system": { + "message": "system mode", + "description": "The name for the system color mode" + }, + "theme.colorToggle.ariaLabel.mode.light": { + "message": "lichte modus", + "description": "The name for the light color mode" + }, + "theme.colorToggle.ariaLabel.mode.dark": { + "message": "donkere modus", + "description": "The name for the dark color mode" + }, + "theme.colorToggle.ariaLabel": { + "message": "Schakel tussen donkere en lichte modus (momenteel {mode})", + "description": "The ARIA label for the color mode toggle" + }, + "theme.docs.breadcrumbs.navAriaLabel": { + "message": "Broodkruimels", + "description": "The ARIA label for the breadcrumbs" + }, + "theme.docs.DocCard.categoryDescription.plurals": { + "message": "1 artikel|{count} artikelen", + "description": "The default description for a category card in the generated index about how many items this category includes" + }, + "theme.docs.paginator.navAriaLabel": { + "message": "Documentatie pagina", + "description": "The ARIA label for the docs pagination" + }, + "theme.docs.paginator.previous": { + "message": "Vorige", + "description": "The label used to navigate to the previous doc" + }, + "theme.docs.paginator.next": { + "message": "Volgende", + "description": "The label used to navigate to the next doc" + }, + "theme.docs.tagDocListPageTitle.nDocsTagged": { + "message": "Een artikel getagd|{count} artikelen getagd", + "description": "Pluralized label for \"{count} docs tagged\". Use as much plural forms (separated by \"|\") as your language support (see https://www.unicode.org/cldr/cldr-aux/charts/34/supplemental/language_plural_rules.html)" + }, + "theme.docs.tagDocListPageTitle": { + "message": "{nDocsTagged} met \"{tagName}\"", + "description": "The title of the page for a docs tag" + }, + "theme.docs.versionBadge.label": { + "message": "Versie: {versionLabel}" + }, + "theme.docs.versions.unreleasedVersionLabel": { + "message": "Dit is nog niet uitgegeven documentatie voor {siteTitle}, versie {versionLabel}", + "description": "The label used to tell the user that he's browsing an unreleased doc version" + }, + "theme.docs.versions.unmaintainedVersionLabel": { + "message": "Dit is de documentatie voor {siteTitle} {versionLabel}, welke niet langer actief wordt onderhouden.", + "description": "The label used to tell the user that he's browsing an unmaintained doc version" + }, + "theme.docs.versions.latestVersionSuggestionLabel": { + "message": "Voor de huidige documentatie, zie de {latestVersionLink} ({versionLabel}).", + "description": "The label used to tell the user to check the latest version" + }, + "theme.docs.versions.latestVersionLinkLabel": { + "message": "laatste versie", + "description": "The label used for the latest version suggestion link label" + }, + "theme.common.editThisPage": { + "message": "Bewerk deze pagina", + "description": "The link label to edit the current page" + }, + "theme.common.headingLinkTitle": { + "message": "Direct link naar {heading}", + "description": "Title for link to heading" + }, + "theme.lastUpdated.atDate": { + "message": " op {date}", + "description": "The words used to describe on which date a page has been last updated" + }, + "theme.lastUpdated.byUser": { + "message": " door {user}", + "description": "The words used to describe by who the page has been last updated" + }, + "theme.lastUpdated.lastUpdatedAtBy": { + "message": "Laatst bijgewerkt{atDate}{byUser}", + "description": "The sentence used to display when a page has been last updated, and by who" + }, + "theme.navbar.mobileVersionsDropdown.label": { + "message": "Versies", + "description": "The label for the navbar versions dropdown on mobile view" + }, + "theme.NotFound.title": { + "message": "Pagina niet gevonden", + "description": "The title of the 404 page" + }, + "theme.tags.tagsListLabel": { + "message": "Tags:", + "description": "The label alongside a tag list" + }, + "theme.admonition.caution": { + "message": "pas op", + "description": "The default label used for the Caution admonition (:::caution)" + }, + "theme.admonition.danger": { + "message": "gevaar", + "description": "The default label used for the Danger admonition (:::danger)" + }, + "theme.admonition.info": { + "message": "info", + "description": "The default label used for the Info admonition (:::info)" + }, + "theme.admonition.note": { + "message": "notitie", + "description": "The default label used for the Note admonition (:::note)" + }, + "theme.admonition.tip": { + "message": "tip", + "description": "The default label used for the Tip admonition (:::tip)" + }, + "theme.admonition.warning": { + "message": "waarschuwing", + "description": "The default label used for the Warning admonition (:::warning)" + }, + "theme.AnnouncementBar.closeButtonAriaLabel": { + "message": "Sluiten", + "description": "The ARIA label for close button of announcement bar" + }, + "theme.blog.sidebar.navAriaLabel": { + "message": "Navigatie recente blogitems", + "description": "The ARIA label for recent posts in the blog sidebar" + }, + "theme.DocSidebarItem.expandCategoryAriaLabel": { + "message": "Categorie zijbalk uitklappen '{label}'", + "description": "The ARIA label to expand the sidebar category" + }, + "theme.DocSidebarItem.collapseCategoryAriaLabel": { + "message": "Categorie zijbalk inklappen '{label}'", + "description": "The ARIA label to collapse the sidebar category" + }, + "theme.IconExternalLink.ariaLabel": { + "message": "(opens in new tab)", + "description": "The ARIA label for the external link icon" + }, + "theme.NavBar.navAriaLabel": { + "message": "Main", + "description": "The ARIA label for the main navigation" + }, + "theme.navbar.mobileLanguageDropdown.label": { + "message": "Talen", + "description": "The label for the mobile language switcher dropdown" + }, + "theme.NotFound.p1": { + "message": "We kunnen niet vinden waar je naar op zoek bent.", + "description": "The first paragraph of the 404 page" + }, + "theme.NotFound.p2": { + "message": "Neem contact op met de eigenaar van de website die naar de originele URL heeft geleid en laat weten dat de link niet meer werkt.", + "description": "The 2nd paragraph of the 404 page" + }, + "theme.TOCCollapsible.toggleButtonLabel": { + "message": "Op deze pagina", + "description": "The label used by the button on the collapsible TOC component" + }, + "theme.blog.post.readMore": { + "message": "Lees meer", + "description": "The label used in blog post item excerpts to link to full blog posts" + }, + "theme.blog.post.readMoreLabel": { + "message": "Lees meer over {title}", + "description": "The ARIA label for the link to full blog posts from excerpts" + }, + "theme.blog.post.readingTime.plurals": { + "message": "Een minuut leestijd|{readingTime} minuten leestijd", + "description": "Pluralized label for \"{readingTime} min read\". Use as much plural forms (separated by \"|\") as your language support (see https://www.unicode.org/cldr/cldr-aux/charts/34/supplemental/language_plural_rules.html)" + }, + "theme.CodeBlock.copy": { + "message": "Kopieer", + "description": "The copy button label on code blocks" + }, + "theme.CodeBlock.copied": { + "message": "Gekopieerd", + "description": "The copied button label on code blocks" + }, + "theme.CodeBlock.copyButtonAriaLabel": { + "message": "Kopieer code naar klembord", + "description": "The ARIA label for copy code blocks button" + }, + "theme.CodeBlock.wordWrapToggle": { + "message": "Tekstterugloop in-/uitschakelen", + "description": "The title attribute for toggle word wrapping button of code block lines" + }, + "theme.docs.breadcrumbs.home": { + "message": "Homepagina", + "description": "The ARIA label for the home page in the breadcrumbs" + }, + "theme.docs.sidebar.collapseButtonTitle": { + "message": "Zijbalk inklappen", + "description": "The title attribute for collapse button of doc sidebar" + }, + "theme.docs.sidebar.collapseButtonAriaLabel": { + "message": "Zijbalk inklappen", + "description": "The title attribute for collapse button of doc sidebar" + }, + "theme.docs.sidebar.navAriaLabel": { + "message": "Docs zijbalk", + "description": "The ARIA label for the sidebar navigation" + }, + "theme.docs.sidebar.closeSidebarButtonAriaLabel": { + "message": "Sluit navigatiebalk", + "description": "The ARIA label for close button of mobile sidebar" + }, + "theme.navbar.mobileSidebarSecondaryMenu.backButtonLabel": { + "message": "← Terug naar het hoofdmenu", + "description": "The label of the back button to return to main menu, inside the mobile navbar sidebar secondary menu (notably used to display the docs sidebar)" + }, + "theme.docs.sidebar.toggleSidebarButtonAriaLabel": { + "message": "Navigatiebalk schakelen", + "description": "The ARIA label for hamburger menu button of mobile navigation" + }, + "theme.navbar.mobileDropdown.collapseButton.expandAriaLabel": { + "message": "Expand the dropdown", + "description": "The ARIA label of the button to expand the mobile dropdown navbar item" + }, + "theme.navbar.mobileDropdown.collapseButton.collapseAriaLabel": { + "message": "Collapse the dropdown", + "description": "The ARIA label of the button to collapse the mobile dropdown navbar item" + }, + "theme.docs.sidebar.expandButtonTitle": { + "message": "Zijbalk uitklappen", + "description": "The ARIA label and title attribute for expand button of doc sidebar" + }, + "theme.docs.sidebar.expandButtonAriaLabel": { + "message": "Zijbalk uitklappen", + "description": "The ARIA label and title attribute for expand button of doc sidebar" + }, + "theme.blog.post.plurals": { + "message": "Een bericht|{count} berichten", + "description": "Pluralized label for \"{count} posts\". Use as much plural forms (separated by \"|\") as your language support (see https://www.unicode.org/cldr/cldr-aux/charts/34/supplemental/language_plural_rules.html)" + }, + "theme.blog.tagTitle": { + "message": "{nPosts} getagd met \"{tagName}\"", + "description": "The title of the page for a blog tag" + }, + "theme.blog.author.pageTitle": { + "message": "{authorName} - {nPosts}", + "description": "The title of the page for a blog author" + }, + "theme.blog.authorsList.pageTitle": { + "message": "Auteurs", + "description": "The title of the authors page" + }, + "theme.blog.authorsList.viewAll": { + "message": "Bekijk alle auteurs", + "description": "The label of the link targeting the blog authors page" + }, + "theme.blog.author.noPosts": { + "message": "Deze auteur heeft nog geen berichten geschreven.", + "description": "The text for authors with 0 blog post" + }, + "theme.contentVisibility.unlistedBanner.title": { + "message": "Verborgen page", + "description": "The unlisted content banner title" + }, + "theme.contentVisibility.unlistedBanner.message": { + "message": "Deze pagina is verborgen. Zoekmachines indexeren deze niet en alleen gebruikers met een directe link kunnen deze openen.", + "description": "The unlisted content banner message" + }, + "theme.contentVisibility.draftBanner.title": { + "message": "Concept pagina", + "description": "The draft content banner title" + }, + "theme.contentVisibility.draftBanner.message": { + "message": "Deze pagina is een concept. Deze zal alleen zichtbaar zijn in de ontwikkelomgeving en uitgesloten worden van de productie build.", + "description": "The draft content banner message" + }, + "theme.ErrorPageContent.tryAgain": { + "message": "Probeer opnieuw", + "description": "The label of the button to try again rendering when the React error boundary captures an error" + }, + "theme.common.skipToMainContent": { + "message": "Ga naar hoofdinhoud", + "description": "The skip to content label used for accessibility, allowing to rapidly navigate to main content with keyboard tab/enter navigation" + }, + "theme.tags.tagsPageTitle": { + "message": "Tags", + "description": "The title of the tag list page" + } +} diff --git a/docs/i18n/nl/docusaurus-plugin-content-docs/current.json b/docs/i18n/nl/docusaurus-plugin-content-docs/current.json new file mode 100644 index 0000000..3d07524 --- /dev/null +++ b/docs/i18n/nl/docusaurus-plugin-content-docs/current.json @@ -0,0 +1,10 @@ +{ + "version.label": { + "message": "Volgende", + "description": "The label for version current" + }, + "sidebar.tutorialSidebar.category.Procest Features": { + "message": "Procest Functionaliteiten", + "description": "The label for category 'Procest Features' in sidebar 'tutorialSidebar'" + } +} diff --git a/docs/i18n/nl/docusaurus-theme-classic/footer.json b/docs/i18n/nl/docusaurus-theme-classic/footer.json new file mode 100644 index 0000000..fe41eff --- /dev/null +++ b/docs/i18n/nl/docusaurus-theme-classic/footer.json @@ -0,0 +1,22 @@ +{ + "link.title.Docs": { + "message": "Documentatie", + "description": "The title of the footer links column with title=Docs in the footer" + }, + "link.title.Community": { + "message": "Community", + "description": "The title of the footer links column with title=Community in the footer" + }, + "link.item.label.Documentation": { + "message": "Documentatie", + "description": "The label of footer link with label=Documentation linking to /docs/FEATURES" + }, + "link.item.label.GitHub": { + "message": "GitHub", + "description": "The label of footer link with label=GitHub linking to https://github.com/ConductionNL/procest" + }, + "copyright": { + "message": "Copyright © 2026 for Open Webconcept by Conduction B.V.", + "description": "The footer copyright" + } +} diff --git a/docs/i18n/nl/docusaurus-theme-classic/navbar.json b/docs/i18n/nl/docusaurus-theme-classic/navbar.json new file mode 100644 index 0000000..8a6a833 --- /dev/null +++ b/docs/i18n/nl/docusaurus-theme-classic/navbar.json @@ -0,0 +1,18 @@ +{ + "title": { + "message": "Procest", + "description": "The title in the navbar" + }, + "logo.alt": { + "message": "Procest Logo", + "description": "The alt text of navbar logo" + }, + "item.label.Documentation": { + "message": "Documentatie", + "description": "Navbar item with label Documentation" + }, + "item.label.GitHub": { + "message": "GitHub", + "description": "Navbar item with label GitHub" + } +} diff --git a/docusaurus/package-lock.json b/docs/package-lock.json similarity index 100% rename from docusaurus/package-lock.json rename to docs/package-lock.json diff --git a/docusaurus/package.json b/docs/package.json similarity index 100% rename from docusaurus/package.json rename to docs/package.json diff --git a/docs/screenshots/admin-settings.png b/docs/screenshots/admin-settings.png new file mode 100644 index 0000000..39268ca Binary files /dev/null and b/docs/screenshots/admin-settings.png differ diff --git a/docs/screenshots/case-dashboard-view.png b/docs/screenshots/case-dashboard-view.png new file mode 100644 index 0000000..278a58f Binary files /dev/null and b/docs/screenshots/case-dashboard-view.png differ diff --git a/docs/screenshots/case-management.png b/docs/screenshots/case-management.png new file mode 100644 index 0000000..7f1e1c4 Binary files /dev/null and b/docs/screenshots/case-management.png differ diff --git a/docs/screenshots/case-types.png b/docs/screenshots/case-types.png new file mode 100644 index 0000000..803ba55 Binary files /dev/null and b/docs/screenshots/case-types.png differ diff --git a/docs/screenshots/dashboard.png b/docs/screenshots/dashboard.png new file mode 100644 index 0000000..3490b76 Binary files /dev/null and b/docs/screenshots/dashboard.png differ diff --git a/docs/screenshots/my-work.png b/docs/screenshots/my-work.png new file mode 100644 index 0000000..3490b76 Binary files /dev/null and b/docs/screenshots/my-work.png differ diff --git a/docs/screenshots/task-management.png b/docs/screenshots/task-management.png new file mode 100644 index 0000000..7f1e1c4 Binary files /dev/null and b/docs/screenshots/task-management.png differ diff --git a/docs/screenshots/zaaktype-configuratie.png b/docs/screenshots/zaaktype-configuratie.png new file mode 100644 index 0000000..2a48263 Binary files /dev/null and b/docs/screenshots/zaaktype-configuratie.png differ diff --git a/docusaurus/sidebars.js b/docs/sidebars.js similarity index 100% rename from docusaurus/sidebars.js rename to docs/sidebars.js diff --git a/docusaurus/src/components/HomepageFeatures/index.js b/docs/src/components/HomepageFeatures/index.js similarity index 100% rename from docusaurus/src/components/HomepageFeatures/index.js rename to docs/src/components/HomepageFeatures/index.js diff --git a/docusaurus/src/components/HomepageFeatures/styles.module.css b/docs/src/components/HomepageFeatures/styles.module.css similarity index 100% rename from docusaurus/src/components/HomepageFeatures/styles.module.css rename to docs/src/components/HomepageFeatures/styles.module.css diff --git a/docusaurus/src/css/custom.css b/docs/src/css/custom.css similarity index 100% rename from docusaurus/src/css/custom.css rename to docs/src/css/custom.css diff --git a/docusaurus/src/pages/index.js b/docs/src/pages/index.js similarity index 100% rename from docusaurus/src/pages/index.js rename to docs/src/pages/index.js diff --git a/docusaurus/src/pages/index.module.css b/docs/src/pages/index.module.css similarity index 100% rename from docusaurus/src/pages/index.module.css rename to docs/src/pages/index.module.css diff --git a/docusaurus/static/CNAME b/docs/static/CNAME similarity index 100% rename from docusaurus/static/CNAME rename to docs/static/CNAME diff --git a/docusaurus/static/img/logo.svg b/docs/static/img/logo.svg similarity index 100% rename from docusaurus/static/img/logo.svg rename to docs/static/img/logo.svg diff --git a/docs/zgw-implementation.md b/docs/zgw-implementation.md new file mode 100644 index 0000000..ef19b0d --- /dev/null +++ b/docs/zgw-implementation.md @@ -0,0 +1,303 @@ +# ZGW Implementation Knowledge Base + +Shared knowledge file for sub-agents working on Procest's ZGW API implementation. +**Read this file before starting work. Append new learnings at the bottom.** + +## Architecture + +### Controller Split (per ZGW register) + +| Controller | Register | zgwApi value | Resources | +|---|---|---|---| +| `ZrcController` | Zaken | `zaken` | zaken, statussen, resultaten, rollen, zaakeigenschappen, zaakinformatieobjecten, zaakobjecten, klantcontacten | +| `ZtcController` | Catalogi | `catalogi` | catalogussen, zaaktypen, statustypen, resultaattypen, roltypen, eigenschappen, informatieobjecttypen, besluittypen, zaaktype-informatieobjecttypen | +| `BrcController` | Besluiten | `besluiten` | besluiten, besluitinformatieobjecten | +| `DrcController` | Documenten | `documenten` | enkelvoudiginformatieobjecten, objectinformatieobjecten, gebruiksrechten, verzendingen | +| `NrcController` | Notificaties | `notificaties` | kanaal, abonnement | +| `AcController` | Autorisaties | `autorisaties` | applicaties (uses ConsumerMapper, NOT OpenRegister objects) | + +### Shared Service: `ZgwService` + +All controllers depend on `ZgwService` (`lib/Service/ZgwService.php`). Key methods: + +**CRUD orchestration** (handles auth, mapping, validation, save, notification): +- `handleIndex(IRequest, zgwApi, resource)` — paginated list +- `handleCreate(IRequest, zgwApi, resource, ?zaakClosed, hasForceer)` — create with business rules +- `handleShow(IRequest, zgwApi, resource, uuid)` — get single +- `handleUpdate(IRequest, zgwApi, resource, uuid, partial, ?parentZtDraft, ?zaakClosed, hasForceer)` — PUT/PATCH +- `handleDestroy(IRequest, zgwApi, resource, uuid, ?parentZtDraft, ?zaakClosed, hasForceer)` — DELETE + +**Utility methods:** +- `validateJwtAuth(IRequest)` — returns JSONResponse on failure, null on success +- `loadMappingConfig(zgwApi, resource)` — loads Twig mapping from IAppConfig +- `getRequestBody(IRequest)` — parses JSON body (with malformed JSON fallback) +- `buildBaseUrl(IRequest, zgwApi, resource)` — constructs ZGW-style URL +- `createOutboundMapping/createInboundMapping(mappingConfig)` — builds Mapping objects +- `applyOutboundMapping/applyInboundMapping(...)` — executes Twig-based field translation +- `translateQueryParams(params, mappingConfig)` — ZGW query params to OpenRegister filters +- `consumerHasScope(IRequest, component, scope)` — checks JWT consumer scopes +- `publishNotification(zgwApi, resource, resourceUrl, actie)` — sends to NRC subscribers +- `buildValidationError(ruleResult)` — formats validation error response +- `unavailableResponse()` / `mappingNotFoundResponse(zgwApi, resource)` — standard error responses + +**OpenRegister access:** +- `getObjectService()` — OpenRegister ObjectService (find, saveObject, deleteObject, buildSearchQuery, searchObjectsPaginated) +- `getConsumerMapper()` — OpenRegister ConsumerMapper (for AC) +- `getZgwMappingService()` — Procest's ZgwMappingService (IAppConfig storage) +- `getBusinessRulesService()` — ZgwBusinessRulesService +- `getDocumentService()` — ZgwDocumentService (file storage) +- `getLogger()` — PSR LoggerInterface + +**Cross-register resolvers:** +- `resolveZaakClosed(resource, existingData)` — checks if zaak has einddatum (for zrc-007) +- `resolveZaakClosedFromBody(resource, body)` — same but from request body (sub-resource creation) +- `resolveParentZaaktypeDraft(resource, existingData)` — checks if parent zaaktype is concept (for ztc-010) + +### Other Services + +- `ZgwBusinessRulesService` — validates VNG business rules before save. Call via `zgwService->getBusinessRulesService()->validate(...)` +- `ZgwMappingService` — stores/retrieves Twig mapping configs from IAppConfig +- `ZgwPaginationHelper` — wraps results in ZGW HAL-style `{count, next, previous, results}` +- `ZgwDocumentService` — stores binary files in Nextcloud filesystem at `/admin/files/procest/documenten/{uuid}/{filename}` +- `NotificatieService` — delivers notifications to NRC subscribers via HTTP POST + +## Business Rules by Register + +### ZRC (Zaken) +- **zrc-007**: Closed zaak protection — zaak sub-resources cannot be modified when the parent zaak has an `einddatum`, unless the consumer has `zaken.geforceerd-bijwerken` scope +- **zrc-007a**: When creating a status whose statustype has `isEindstatus=true`, automatically set the parent zaak's `einddatum` to the `datumStatusGezet` date +- Zaakeigenschappen are nested sub-resources (`/zaken/{zaakUuid}/zaakeigenschappen`) +- `_zoek` endpoint delegates to index and returns HTTP 201 (not 200) + +### ZTC (Catalogi) +- **ztc-010**: Sub-resources of a published (non-concept) zaaktype cannot be modified or deleted +- **ztc-004**: Resultaattype `afleidingswijze` in [eigenschap, zaakobject, ander_datumkenmerk] requires `datumkenmerk` +- **ztc-005**: `afleidingswijze` in [afgehandeld, termijn] forbids `einddatumBekend=true` +- **ztc-006**: `afleidingswijze` in [zaakobject, ander_datumkenmerk] requires `objecttype` +- Publish endpoints set `isDraft=false` on zaaktypen, besluittypen, informatieobjecttypen + +### DRC (Documenten) +- **drc-009**: Document must be locked before updates. Lock ID must be provided and must match. +- Binary content (`inhoud`) is stored as base64 in the request, decoded and saved to filesystem +- `inhoud` is NOT stored in OpenRegister — only as a Nextcloud file +- Lock/unlock uses `locked` (bool) and `lockId` (string) fields on the OpenRegister object +- On destroy, stored files must be cleaned up via `documentService->deleteFiles(uuid)` + +### BRC (Besluiten) +- **brc-001**: Standard besluit CRUD (create, update, patch) with besluittype validation +- **brc-002**: Identificatie uniqueness under verantwoordelijke_organisatie; immutable on update +- **brc-003a**: BIO informatieobject URL validation — must resolve to a valid EIO +- **brc-004a/b**: BesluitInformatieObject is immutable — PUT/PATCH returns 405 +- **brc-005a**: Cross-register OIO sync — creating a BIO also creates an OIO in DRC with objectType=besluit +- **brc-005b**: Deleting a BIO also deletes the corresponding OIO in DRC +- **brc-006a**: Zaak-besluit relation — checks both directions (BT.caseTypes -> ZT UUID, and ZT.decisionTypes -> BT omschrijving/UUID) +- **brc-007**: BesluitInformatieObject validates that informatieobjecttype is in besluittype.informatieobjecttypen +- **brc-008a**: BIO create validates IOT is in BT.informatieobjecttypen +- **brc-009**: Cascade delete — deleting a besluit also deletes related BIOs and their OIOs in DRC; audit trail returns 404 for deleted besluiten + +### NRC (Notificaties) +- `notificatieCreate` endpoint just echoes the body back with HTTP 201 +- Standard CRUD for kanaal and abonnement resources + +### AC (Autorisaties) +- Completely custom — maps OpenRegister Consumers to ZGW Applicatie format +- Does NOT use the standard CRUD flow (no Twig mapping, no ObjectService) +- `show('consumer')` with `?clientId=...` is a special lookup pattern + +## ZGW Standard Quirks & Workarounds + +### Malformed JSON in VNG test collections +The VNG Postman test collections sometimes send unquoted Postman variables in JSON bodies (e.g., `"field": {{var}}` instead of `"field": "{{var}}"`). The `getRequestBody()` method in ZgwService handles this with a regex fallback that quotes unquoted values. + +### Boolean normalization +OpenRegister may store booleans as strings (`"true"`, `"1"`) or integers (`1`, `0`). Always normalize before comparing: +```php +if ($val === 'true' || $val === '1' || $val === 1) { $val = true; } +``` + +### Identifier type casting +OpenRegister DB may return `identifier` as an integer even when stored as string. Always cast before saving back: +```php +if (isset($data['identifier']) && is_int($data['identifier'])) { + $data['identifier'] = (string) $data['identifier']; +} +``` + +### PATCH merge strategy +For partial updates, only English fields whose corresponding ZGW fields were in the request body should be merged. The reverse mapping is inspected to determine which English keys correspond to which ZGW fields. Existing array values must be re-encoded as JSON strings before merging (OpenRegister deserializes them). + +### UUID extraction from URLs +ZGW resources reference each other by full URL (`http://host/api/zgw/zaken/v1/zaken/{uuid}`). Extract UUIDs with: +```php +preg_match('/([0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12})/i', $url, $matches); +``` + +### OpenRegister ObjectService API +- `find($uuid, register: $reg, schema: $schema)` — may return object or array +- `saveObject(register: $reg, schema: $schema, object: $data, uuid: $uuid)` — uuid optional for create +- `deleteObject(uuid: $uuid)` — delete by UUID +- `buildSearchQuery(requestParams: [...], register: $reg, schema: $schema)` — build query +- `searchObjectsPaginated(query: $query)` — returns `['results' => [...], 'total' => N]` +- Always handle both array and object returns: `is_array($obj) ? $obj : $obj->jsonSerialize()` + +## Testing + +### Per-register test commands +```bash +# Run inside container or let the script delegate +bash procest/tests/zgw/run-zgw-tests.sh --oas-only --folder setUp # Initialize test data +bash procest/tests/zgw/run-zgw-tests.sh --oas-only --folder ZRC +bash procest/tests/zgw/run-zgw-tests.sh --oas-only --folder ZTC +bash procest/tests/zgw/run-zgw-tests.sh --oas-only --folder DRC +bash procest/tests/zgw/run-zgw-tests.sh --oas-only --folder BRC +bash procest/tests/zgw/run-zgw-tests.sh --oas-only --folder NRC +bash procest/tests/zgw/run-zgw-tests.sh --oas-only --folder AC +bash procest/tests/zgw/run-zgw-tests.sh --business-only --folder ztc # Business rules +``` + +### After making changes +1. Clear OPcache: `docker exec nextcloud apache2ctl graceful` +2. Run the relevant register's tests +3. Compare failures against baseline — new failures = regression + +### Known pre-existing test failures (baseline 2026-03-08) +These failures exist before the controller split and are NOT regressions: +- **ZRC**: zaakobjecten CRUD fails due to unresolved `{{zaakobject_url}}` Postman variable +- **ZTC**: zaaktype-informatieobjecttypen and zaaktypen PATCH/DELETE have comparison/status issues +- **DRC**: objectinformatieobjecten fail due to unresolved `{{objectinformatieobject_url}}` +- **BRC**: besluitinformatieobjecten fail due to unresolved `{{bio_url}}` +- **AC**: applicatie delete fails due to unresolved `{{created_applicatie_url}}` +- **NRC**: All tests pass + +--- + +## Learnings Log + +_Sub-agents: append new discoveries below this line. Include the date, register, and what you learned._ + +### 2026-03-08 — DRC: drc-009 lock enforcement response format + +The VNG business rules tests for drc-009 expect error responses in a specific `invalidParams` format: +```json +{ + "detail": "...", + "invalidParams": [ + { "name": "...", "code": "...", "reason": "..." } + ] +} +``` + +Key distinctions: +- **drc-009a/b** (update while unlocked): `name: 'nonFieldErrors'`, `code: 'unlocked'` +- **drc-009d** (PUT without lock): `name: 'lock'`, `code: 'required'` (field-level validation) +- **drc-009e** (PATCH without lock): `name: 'nonFieldErrors'`, `code: 'missing-lock-id'` (non-field error) +- **drc-009h/i** (wrong lock ID): `name: 'nonFieldErrors'`, `code: 'incorrect-lock-id'` + +The PUT vs PATCH distinction matters: PUT treats `lock` as a required field, PATCH treats it as a missing lock enforcement error. + +### 2026-03-08 — DRC: Force unlock scope check + +Force unlock (drc-009k) requires checking `documenten.geforceerd-bijwerken` scope via `consumerHasScope()`. When the lock ID doesn't match or is missing, the unlock endpoint checks if the consumer has this scope. If yes, force unlock succeeds (204). If no, returns 400. + +The `consumerHasScope()` method returns `true` (bypass) when: +- `consumerMapper` is null (OpenRegister not loaded) +- No client_id in JWT +- Consumer not found in database +- Consumer has `superuser: true` + +### 2026-03-08 — DRC: OAS test lock status code + +The OAS test collection expects lock to return HTTP 201, while the business rules test (drc-009c) expects HTTP 200. The ZGW standard specifies 200 for lock. The lock endpoint returns 200. + +The OAS unlock test expects 201, but the ZGW standard and business rules (drc-009k) expect 204. The unlock endpoint returns 204. + +### 2026-03-08 — DRC: Boolean normalization for locked field + +OpenRegister may store boolean fields as strings (`"true"`, `"1"`) or integers (`1`, `0`). The lock/unlock/checkDocumentLock methods must normalize the `locked` field value before comparison. + +### 2026-03-08 — ZRC business rules implementation + +**zrc-002a**: Unique identificatie enforcement. Added `checkIdentificatieUnique()` in `ZgwBusinessRulesService` that searches OpenRegister for existing zaken with the same `identifier` (and `sourceOrganisation`). Returns 400 with `identificatie-niet-uniek` error code. + +**zrc-003d**: Invalid informatieobject URL validation. Added `validateInformatieobjectUrl()` that validates both URL format AND that the UUID resolves to an actual document in OpenRegister (`document_schema`). + +**zrc-004a/b/c**: ZaakInformatieObject enrichment. Business rules now set `aardRelatieWeergave = "Hoort bij, omgekeerd: kent"` and `registratiedatum = date("Y-m-d")` on create. These values are forced immutable on update/patch. Since the `caseDocument` schema does NOT have a `relationshipType` field, these values are injected directly into the outbound response at the controller level via `enrichZioResponse()` and `enrichZioJsonResponse()`. + +**zrc-005a/b**: Cross-register OIO sync. `ZrcController::create()` now calls `syncCreateObjectInformatieObject()` after creating a ZaakInformatieObject, which creates a corresponding ObjectInformatieObject in the DRC register. `ZrcController::destroy()` captures ZIO data before deletion and calls `syncDeleteObjectInformatieObject()` on success. OIO search uses `relatedObject` and `document` fields from the `objectinformatieobject` mapping config. + +**zrc-006a/b/c**: Authorization-based filtering. Added `getConsumerAuthorisaties()` to `ZgwService` that returns the consumer's per-component authorization entries. `ZrcController::index()` now calls `filterZakenByAuthorisation()` which filters results based on `maxVertrouwelijkheidaanduiding`. `show()` calls `checkZaakReadAccess()` for the same check on individual zaken. `create()` checks `zaken.aanmaken` scope. All return 403 with `{"code": "permission_denied"}`. + +**zrc-007**: Closed zaak protection. The validation error now includes a top-level `code: "permission_denied"` field in the response, matching the VNG test expectation (`pm.response.json().code`). This required changes to both `ZgwBusinessRulesService` (adding `'code' => 'permission_denied'` to the rule result) and `ZgwService::buildValidationError()` (propagating the `code` field to the response data). + +**Key finding**: The `VERTROUWELIJKHEID_LEVELS` ordering for authorization filtering is: openbaar(1) < beperkt_openbaar(2) < intern(3) < zaakvertrouwelijk(4) < vertrouwelijk(5) < confidentieel(6) < geheim(7) < zeer_geheim(8). Consumer's `maxVertrouwelijkheidaanduiding` sets the ceiling — zaken with a higher level are filtered out. + +### 2026-03-08 — AC business rules implementation + +**ac-001**: ClientId uniqueness. `validateClientIdUniqueness()` iterates all existing consumers and checks both the primary `name` field and any extra clientIds stored in `authorizationConfiguration.clientIds`. Returns 400 with `clientId-exists` error code. + +**ac-002a/b**: heeftAlleAutorisaties consistency. `validateAutorisatieConsistency()` checks: if `heeftAlleAutorisaties=true` and `autorisaties` is non-empty, returns 400 with `ambiguous-authorizations-specified`. If `heeftAlleAutorisaties=false` and `autorisaties` is empty (and explicitly provided), returns 400 with `missing-authorizations`. + +**ac-003a-f**: Scope-based field validation. `validateAutorisatieScopes()` checks each autorisatie entry: for `zrc` component with scope containing "zaken", requires `zaaktype` and `maxVertrouwelijkheidaanduiding`. For `drc` with "documenten", requires `informatieobjecttype` and `maxVertrouwelijkheidaanduiding`. For `brc` with "besluiten", requires `besluittype`. + +**Multiple clientIds support**: The Consumer entity stores only one `name`, so extra clientIds beyond the first are stored in `authorizationConfiguration.clientIds`. The `consumerToApplicatie()` method reconstructs the full list. + +**Validation ordering**: Business rules (ac-002, ac-003) must run BEFORE uniqueness checks (ac-001). If uniqueness fires first on test data with pre-existing clientIds, the actual business rule errors are masked. + +**Bug fix**: `ConsumerMapper::createFromArray()` parameter is named `$object` not `$data` -- using named parameter `data:` caused "Unknown named parameter $data" errors. Fixed to use `object:`. + +**Index filter**: Added support for both `clientId` (singular) and `clientIds` (plural) query parameters, since the OAS cleanup test uses `clientIds` (plural). + +**Pre-existing setUp issue**: The "Create Zaaktype" step in the ac business rules setUp has a TypeError in its test script (`Cannot read properties of undefined (reading '0')`) -- this is a pre-existing Postman collection issue, not an AC regression. + +## ZTC Cross-Reference URL Enrichment (ztc-0xx) + +### Architecture + +ZTC types (zaaktypen, besluittypen) contain cross-reference arrays (informatieobjecttypen, besluittypen, deelzaaktypen, gerelateerdeZaaktypen) that must return valid URLs pointing to published, date-valid objects. This is implemented in two phases: + +**Write path (business rules)**: `ZgwZtcRulesService` resolves omschrijving/identificatie strings to object UUIDs at creation time, storing them via `_directFields` to bypass Twig mapping limitations with arrays. + +**Read path (enrichment)**: `ZtcController::enrichZaaktype()` and `enrichBesluittype()` expand stored UUIDs to full URLs, using identifier-based expansion to include all versions of the same logical type. `filterValidUrls()` then removes concept or date-invalid entries. + +### Key Patterns + +**`_directFields` mechanism**: Array fields that Twig cannot handle (drops to empty strings) are stored via a special `_directFields` key in the enriched body. `ZgwService::handleCreate()` and `handleUpdate()` extract these and merge them directly into the English data, bypassing the Twig mapping. + +**Identifier-based expansion at read time**: For deelzaaktypen and gerelateerdeZaaktypen, the enrichment code looks up each stored UUID's identifier, then finds ALL objects with that identifier. This ensures that ZT2 (created after ZT1 but with the same identifier) appears in ZT1's deelzaaktypen even though ZT2 didn't exist when ZT1 was created. + +**ZIOT-based IOT enrichment**: informatieobjecttypen on zaaktypen are NOT stored directly. Instead, ZIOT (zaaktype-informatieobjecttype) records link ZTs to IOTs. The enrichment queries ZIOTs for the zaaktype, looks up each IOT's name, finds ALL IOTs with that name, and lets filterValidUrls select valid ones. + +### Schema Considerations + +**`relatedCaseTypes` must be type `array` in OR schema (not `string`)**: OpenRegister auto-parses JSON strings back to arrays. If the schema says `string`, the PATCH flow fails because: (1) existing data is read as array (OR auto-parsed it), (2) json_encode for Twig, (3) after merge, json_decode back to array, (4) OR rejects "expected string, got array". Changing the schema to `array` with items of type `object` resolves this. + +**`$arrayKeys` tracking in PATCH flow**: `ZgwService::handleUpdate()` tracks which existing fields were originally arrays before json_encoding them for Twig. After merge, only those fields get decoded back to arrays. This prevents string-typed fields containing JSON from being incorrectly decoded. + +### ZIOT omschrijving resolution + +VNG tests may send ZIOT `informatieobjecttype` as an omschrijving string that happens to be UUID-shaped. `rulesZaaktypeinformatieobjecttypenCreate` handles this by: (1) if it's a URL, keep as-is; (2) if it's a bare UUID, verify it exists in OR -- if not, fall back to name-based lookup; (3) if not a UUID, resolve by name. This prevents storing non-existent UUIDs when the value is actually an omschrijving that looks like a UUID. + +### 2026-03-08 — BRC business rules implementation + +**brc-003a fix**: The `validateInformatieobjectUrl()` in `ZgwRulesBase` had a bug where `extractUuid()` returning null caused the validation to silently pass (the `if ($ioUuid !== null && $this->objectService !== null)` condition was skipped). Fixed by adding an explicit null check that returns 400 when UUID extraction fails. + +**brc-005a/b fix (OpenRegister)**: `MetadataHydrationHandler::hydrateObjectMetadata()` line 100 assumed `$objectData['object']` was always a nested array, but ObjectInformatieObject has `object` as a URL string. When the OIO data had `['document' => url, 'object' => url, 'objectType' => 'besluit']`, the code used the URL string as the business data array, causing a TypeError. Fixed by adding `is_array()` check. + +**brc-006a**: ZGW zaak-besluit relation requires checking BOTH directions: (1) BesluitType.caseTypes contains the zaaktype UUID, and (2) ZaakType.decisionTypes contains the BesluitType omschrijving or UUID. The `decisionTypes` array field was added to the caseType schema and the zaaktype mapping was updated to store `besluittypen` as `decisionTypes`. + +**brc-009c/d/e (cascade delete)**: Deleting a besluit must cascade delete BIOs and OIOs. The key challenge was that OpenRegister's `ObjectService::deleteObject()` performs a soft delete via `ObjectEntityMapper::update()`, but the update method checks `shouldUseMagicMapper` which reads the register's `configuration` JSON. If the register has no magic mapping configuration, the update falls through to the blob table path, leaving the magic table row unchanged. + +**Fix**: Register 7 (Procest) needed explicit magic mapping configuration (`{"schemas": {"": {"magicMapping": true}}}`) set on its `configuration` column. Without this, `isMagicMappingEnabledForSchema()` returns false and soft deletes in magic tables silently fail. + +**Important**: When calling `deleteObject()` during cascade operations (where we're deleting related objects, not the primary resource), pass `_rbac: false, _multitenancy: false` to avoid permission issues with related objects in other schemas. + +**Audit trail for deleted resources**: `BrcController::audittrailIndex()` checks if the parent resource exists before returning audit trail data. If the resource was soft-deleted, `find()` throws `DoesNotExistException`, and the controller returns 404. This satisfies brc-009d. + +### 2026-03-08 — OpenRegister Magic Mapper soft delete gotcha + +**CRITICAL**: OpenRegister's `ObjectService::deleteObject()` performs soft delete by calling `ObjectEntityMapper::update()`. But `update()` checks `shouldUseMagicMapperForRegisterSchema()` which reads `Register::isMagicMappingEnabledForSchema()`. If the register's `configuration` column is NULL or doesn't have the schema listed with `magicMapping: true`, the update falls through to the blob table `parent::update()` call, which operates on `oc_openregister_objects` (the blob table). Since the object only exists in the magic table (`oc_openregister_table_{register}_{schema}`), the soft delete appears to succeed (returns true) but the magic table row is NOT updated. + +**Workaround**: Ensure the register has proper `configuration` JSON with all schemas listed. Example: +```json +{"schemas": {"decisionDocument": {"magicMapping": true}, "decision": {"magicMapping": true}}} +``` diff --git a/eslint.config.js b/eslint.config.js index 447188d..b9f7dac 100644 --- a/eslint.config.js +++ b/eslint.config.js @@ -1,39 +1,45 @@ -const { - defineConfig, -} = require('@eslint/config-helpers') - -const js = require('@eslint/js') - -const { - FlatCompat, -} = require('@eslint/eslintrc') - -const compat = new FlatCompat({ - baseDirectory: __dirname, - recommendedConfig: js.configs.recommended, - allConfig: js.configs.all, -}) - -module.exports = defineConfig([{ - extends: compat.extends('@nextcloud'), - - settings: { - 'import/resolver': { - alias: { - map: [['@', './src']], - extensions: ['.js', '.ts', '.vue', '.json'], - }, - }, - }, - - rules: { - 'jsdoc/require-jsdoc': 'off', - 'vue/first-attribute-linebreak': 'off', - '@typescript-eslint/no-explicit-any': 'off', - 'n/no-missing-import': 'off', - 'import/namespace': 'off', - 'import/default': 'off', - 'import/no-named-as-default': 'off', - 'import/no-named-as-default-member': 'off', - }, -}]) +const { + defineConfig, +} = require('@eslint/config-helpers') + +const js = require('@eslint/js') + +const { + FlatCompat, +} = require('@eslint/eslintrc') + +const compat = new FlatCompat({ + baseDirectory: __dirname, + recommendedConfig: js.configs.recommended, + allConfig: js.configs.all, +}) + +module.exports = defineConfig([{ + extends: compat.extends('@nextcloud'), + + settings: { + 'import/resolver': { + alias: { + map: [ + ['@', './src'], + ['@conduction/nextcloud-vue', '../nextcloud-vue/src'], + ], + extensions: ['.js', '.ts', '.vue', '.json', '.css'], + }, + }, + }, + + rules: { + 'jsdoc/require-jsdoc': 'off', + 'vue/first-attribute-linebreak': 'off', + 'vue/enforce-style-attribute': ['error', { allow: ['scoped'] }], + '@typescript-eslint/no-explicit-any': 'off', + 'n/no-missing-import': 'off', + 'import/named': 'off', // disable named import checking — alias resolver can't parse transitive Vue SFC exports + 'import/namespace': 'off', + 'import/default': 'off', + 'import/no-named-as-default': 'off', + 'import/no-named-as-default-member': 'off', + 'import/no-unresolved': ['error', { ignore: ['^@conduction/nextcloud-vue'] }], + }, +}]) diff --git a/img/manifest.json b/img/manifest.json new file mode 100644 index 0000000..01b4171 --- /dev/null +++ b/img/manifest.json @@ -0,0 +1,18 @@ +{ + "name": "Procest Inspectie", + "short_name": "Inspectie", + "description": "Mobiele inspectie-app voor veldinspecties", + "start_url": "/apps/procest/inspections", + "display": "standalone", + "orientation": "portrait", + "background_color": "#ffffff", + "theme_color": "#0082c9", + "icons": [ + { + "src": "/apps/procest/img/app.svg", + "sizes": "any", + "type": "image/svg+xml" + } + ], + "categories": ["government", "utilities"] +} diff --git a/l10n/en.js b/l10n/en.js new file mode 100644 index 0000000..98d51c5 --- /dev/null +++ b/l10n/en.js @@ -0,0 +1,370 @@ +OC.L10N.register( + "procest", + { + "+{n} today" : "+{n} today", + "0 today" : "0 today", + "1 day" : "1 day", + "1 day overdue" : "1 day overdue", + "1 month" : "1 month", + "1 week" : "1 week", + "1 year" : "1 year", + "A status type with this order already exists" : "A status type with this order already exists", + "Actions" : "Actions", + "Active" : "Active", + "Activity" : "Activity", + "Add" : "Add", + "Add Participant" : "Add Participant", + "Add Status Type" : "Add Status Type", + "Add a note..." : "Add a note...", + "Add document" : "Add document", + "Add note" : "Add note", + "All" : "All", + "All caught up!" : "All caught up!", + "All your items are completed" : "All your items are completed", + "Are you sure you want to delete this case?" : "Are you sure you want to delete this case?", + "Are you sure you want to delete this task?" : "Are you sure you want to delete this task?", + "Assign Handler" : "Assign Handler", + "Assign handler..." : "Assign handler...", + "Assign task" : "Assign task", + "Assignee" : "Assignee", + "At least one status type must be defined" : "At least one status type must be defined", + "At least one status type must be marked as final" : "At least one status type must be marked as final", + "Authorized representative" : "Authorized representative", + "Available" : "Available", + "Awaiting information" : "Awaiting information", + "Back to list" : "Back to list", + "CASE" : "CASE", + "Calculated deadline" : "Calculated deadline", + "Cancel" : "Cancel", + "Cancelled" : "Cancelled", + "Cannot delete: active cases are using this type" : "Cannot delete: active cases are using this type", + "Cannot publish:" : "Cannot publish:", + "Case" : "Case", + "Case Information" : "Case Information", + "Case Type" : "Case Type", + "Case Type Management" : "Case Type Management", + "Case Types" : "Case Types", + "Case created with type \" : "Case created with type \", + "Case handler" : "Case handler", + "Case schema" : "Case schema", + "Case sensitive" : "Case sensitive", + "Case type" : "Case type", + "Case type \" : "Case type \", + "Case type has expired (valid until {date})" : "Case type has expired (valid until {date})", + "Case type is not yet valid (valid from {date})" : "Case type is not yet valid (valid from {date})", + "Case type is required" : "Case type is required", + "Case type schema" : "Case type schema", + "Case: {id}" : "Case: {id}", + "Cases" : "Cases", + "Cases and tasks assigned to you will appear here" : "Cases and tasks assigned to you will appear here", + "Cases by Status" : "Cases by Status", + "Cases overview" : "Cases overview", + "Change status" : "Change status", + "Change status..." : "Change status...", + "Close case" : "Close case", + "Closed on {date}" : "Closed on {date}", + "Comma-separated keywords" : "Comma-separated keywords", + "Complete" : "Complete", + "Completed" : "Completed", + "Completed This Month" : "Completed This Month", + "Completed on {date}" : "Completed on {date}", + "Confidential" : "Confidential", + "Confidentiality" : "Confidentiality", + "Configuration" : "Configuration", + "Configuration saved" : "Configuration saved", + "Configure case types" : "Configure case types", + "Configure property mappings between English OpenRegister fields and Dutch ZGW API fields" : "Configure property mappings between English OpenRegister fields and Dutch ZGW API fields", + "Confirm" : "Confirm", + "Create case" : "Create case", + "Create task" : "Create task", + "Dashboard" : "Dashboard", + "Days elapsed" : "Days elapsed", + "Deadline" : "Deadline", + "Deadline & Timing" : "Deadline & Timing", + "Deadline extended from {old} to {new}. Reason: {reason}" : "Deadline extended from {old} to {new}. Reason: {reason}", + "Deadline: {date}" : "Deadline: {date}", + "Decision schema" : "Decision schema", + "Decision type" : "Decision type", + "Delete" : "Delete", + "Delete case type \"{title}\"?" : "Delete case type \"{title}\"?", + "Delete status type \"{name}\"?" : "Delete status type \"{name}\"?", + "Description" : "Description", + "Disable" : "Disable", + "Disabled" : "Disabled", + "Document is already locked." : "Document is already locked.", + "Document is not locked." : "Document is not locked.", + "Document type" : "Document type", + "Documentation" : "Documentation", + "Draft" : "Draft", + "Drag to reorder" : "Drag to reorder", + "Due date" : "Due date", + "Due this week" : "Due this week", + "Due today" : "Due today", + "Due tomorrow" : "Due tomorrow", + "Edit" : "Edit", + "Edit ZGW Mapping: {key}" : "Edit ZGW Mapping: {key}", + "Enable this mapping" : "Enable this mapping", + "Enabled" : "Enabled", + "Enter case title..." : "Enter case title...", + "Enter task title..." : "Enter task title...", + "Extend Deadline" : "Extend Deadline", + "Extend deadline" : "Extend deadline", + "Extension allowed" : "Extension allowed", + "Extension period" : "Extension period", + "Extension period is required when extension is allowed" : "Extension period is required when extension is allowed", + "Extension: allowed (+{period})" : "Extension: allowed (+{period})", + "Extension: already extended" : "Extension: already extended", + "Extension: not allowed" : "Extension: not allowed", + "External" : "External", + "Failed to add participant" : "Failed to add participant", + "Failed to add status type" : "Failed to add status type", + "Failed to delete case type" : "Failed to delete case type", + "Failed to delete status type" : "Failed to delete status type", + "Failed to delete status type \"{name}\"" : "Failed to delete status type \"{name}\"", + "Failed to load dashboard data" : "Failed to load dashboard data", + "Failed to save" : "Failed to save", + "Failed to save case type" : "Failed to save case type", + "File not found." : "File not found.", + "Final" : "Final", + "Final status" : "Final status", + "Forced unlocking is not allowed without the correct scope." : "Forced unlocking is not allowed without the correct scope.", + "General" : "General", + "Handler" : "Handler", + "Handler action" : "Handler action", + "High" : "High", + "Highly confidential" : "Highly confidential", + "Identifier" : "Identifier", + "In progress" : "In progress", + "Initial status" : "Initial status", + "Initiator" : "Initiator", + "Initiator action" : "Initiator action", + "Install OpenRegister" : "Install OpenRegister", + "Internal" : "Internal", + "Invalid JSON in one of the mapping fields: {error}" : "Invalid JSON in one of the mapping fields: {error}", + "Invalid chunk configuration." : "Invalid chunk configuration.", + "Invalid sequence number. Expected 1-%s." : "Invalid sequence number. Expected 1-%s.", + "Keywords" : "Keywords", + "Link to a case (optional)" : "Link to a case (optional)", + "Linked Case" : "Linked Case", + "Lock ID does not match and forced unlocking is not allowed." : "Lock ID does not match and forced unlocking is not allowed.", + "Lock ID does not match the stored lock." : "Lock ID does not match the stored lock.", + "Lock ID does not match." : "Lock ID does not match.", + "Lock ID is missing from the request." : "Lock ID is missing from the request.", + "Lock ID is required for editing a locked document." : "Lock ID is required for editing a locked document.", + "Low" : "Low", + "Make decision" : "Make decision", + "Manage case types and their configurations" : "Manage case types and their configurations", + "Manage cases and workflows" : "Manage cases and workflows", + "Mapping saved successfully" : "Mapping saved successfully", + "Missing required fields: {fields}" : "Missing required fields: {fields}", + "Must be a valid ISO 8601 duration (e.g., P28D)" : "Must be a valid ISO 8601 duration (e.g., P28D)", + "Must be a valid ISO 8601 duration (e.g., P42D)" : "Must be a valid ISO 8601 duration (e.g., P42D)", + "Must be a valid ISO 8601 duration (e.g., P56D for 56 days, P8W for 8 weeks, P2M for 2 months)" : "Must be a valid ISO 8601 duration (e.g., P56D for 56 days, P8W for 8 weeks, P2M for 2 months)", + "Must be a valid ISO 8601 duration (e.g., P56D)" : "Must be a valid ISO 8601 duration (e.g., P56D)", + "My Tasks" : "My Tasks", + "My Work" : "My Work", + "Name" : "Name", + "Name *" : "Name *", + "New Case" : "New Case", + "New Case Type" : "New Case Type", + "New Task" : "New Task", + "New case" : "New case", + "New task" : "New task", + "No Procest register configured" : "No Procest register configured", + "No activity yet" : "No activity yet", + "No cases found" : "No cases found", + "No deadline" : "No deadline", + "No file content received." : "No file content received.", + "No items assigned to you" : "No items assigned to you", + "No mapping configured for %s" : "No mapping configured for %s", + "No open cases" : "No open cases", + "No overdue cases" : "No overdue cases", + "No participants assigned" : "No participants assigned", + "No reason provided" : "No reason provided", + "No recent activity" : "No recent activity", + "No result recorded yet" : "No result recorded yet", + "No settings available yet" : "No settings available yet", + "No status types defined. Add at least one to publish this case type." : "No status types defined. Add at least one to publish this case type.", + "No tasks found" : "No tasks found", + "No tasks yet" : "No tasks yet", + "No widgets configured" : "No widgets configured", + "Normal" : "Normal", + "Not configured" : "Not configured", + "Not found." : "Not found.", + "Not set" : "Not set", + "Notification text" : "Notification text", + "Notify" : "Notify", + "Notify initiator" : "Notify initiator", + "Only locked documents may be edited." : "Only locked documents may be edited.", + "Only published case types can be set as default" : "Only published case types can be set as default", + "Open Cases" : "Open Cases", + "OpenRegister is required" : "OpenRegister is required", + "Optional description..." : "Optional description...", + "Order" : "Order", + "Order *" : "Order *", + "Order is required" : "Order is required", + "Origin" : "Origin", + "Overdue" : "Overdue", + "Overdue Cases" : "Overdue Cases", + "Participant" : "Participant", + "Participants" : "Participants", + "Please fix the validation errors" : "Please fix the validation errors", + "Please select a result type" : "Please select a result type", + "Priority" : "Priority", + "Processing deadline" : "Processing deadline", + "Processing time" : "Processing time", + "Procest" : "Procest", + "Procest needs the OpenRegister app to store and manage data. Please install OpenRegister from the app store to get started." : "Procest needs the OpenRegister app to store and manage data. Please install OpenRegister from the app store to get started.", + "Procest settings" : "Procest settings", + "Product '%s' is not allowed for this zaaktype." : "Product '%s' is not allowed for this zaaktype.", + "Property Mapping (outbound: English → Dutch)" : "Property Mapping (outbound: English → Dutch)", + "Property definition" : "Property definition", + "Public" : "Public", + "Publication required" : "Publication required", + "Publication text" : "Publication text", + "Publish" : "Publish", + "Published" : "Published", + "Purpose" : "Purpose", + "Query Parameter Mapping" : "Query Parameter Mapping", + "Reason" : "Reason", + "Reassign" : "Reassign", + "Reassign handler to:" : "Reassign handler to:", + "Received" : "Received", + "Recent Activity" : "Recent Activity", + "Reference process" : "Reference process", + "Refresh dashboard" : "Refresh dashboard", + "Register" : "Register", + "Register ID" : "Register ID", + "Register and schema settings" : "Register and schema settings", + "Remove this participant?" : "Remove this participant?", + "Reopened" : "Reopened", + "Request Extension" : "Request Extension", + "Reset" : "Reset", + "Responsible unit" : "Responsible unit", + "Restricted" : "Restricted", + "Result" : "Result", + "Result (required)" : "Result (required)", + "Result is required when closing a case" : "Result is required when closing a case", + "Result schema" : "Result schema", + "Result type" : "Result type", + "Retry" : "Retry", + "Reverse Mapping (inbound: Dutch → English)" : "Reverse Mapping (inbound: Dutch → English)", + "Role schema" : "Role schema", + "Role type" : "Role type", + "Save" : "Save", + "Save the case type first before adding status types." : "Save the case type first before adding status types.", + "Saved successfully" : "Saved successfully", + "Schema ID" : "Schema ID", + "Secret" : "Secret", + "Select a case type..." : "Select a case type...", + "Select due date" : "Select due date", + "Select priority" : "Select priority", + "Select result type..." : "Select result type...", + "Select role type..." : "Select role type...", + "Select user..." : "Select user...", + "Service target" : "Service target", + "Set as default" : "Set as default", + "Set result" : "Set result", + "Show completed" : "Show completed", + "Source Register" : "Source Register", + "Source Schema" : "Source Schema", + "Stakeholder" : "Stakeholder", + "Start" : "Start", + "Start date" : "Start date", + "Started" : "Started", + "Status" : "Status", + "Status Timeline" : "Status Timeline", + "Status changed from \" : "Status changed from \", + "Status changed to \" : "Status changed to \", + "Status schema" : "Status schema", + "Status type" : "Status type", + "Status type name is required" : "Status type name is required", + "Status type schema" : "Status type schema", + "Statuses" : "Statuses", + "Subject" : "Subject", + "TASK" : "TASK", + "Task" : "Task", + "Task Information" : "Task Information", + "Task schema" : "Task schema", + "Tasks" : "Tasks", + "Terminate" : "Terminate", + "Terminated" : "Terminated", + "The document cannot be deleted." : "The document cannot be deleted.", + "The document cannot be deleted: there are related ObjectInformatieObjecten." : "The document cannot be deleted: there are related ObjectInformatieObjecten.", + "The document is not locked. Lock the document first." : "The document is not locked. Lock the document first.", + "This case has {count} linked tasks. Are you sure you want to delete it?" : "This case has {count} linked tasks. Are you sure you want to delete it?", + "This content is not yet translated" : "This content is not yet translated", + "This document has no pending chunked upload." : "This document has no pending chunked upload.", + "This will delete the case type and all {count} status types. Continue?" : "This will delete the case type and all {count} status types. Continue?", + "This will extend the deadline by {period}." : "This will extend the deadline by {period}.", + "Title" : "Title", + "Title is required" : "Title is required", + "Top secret" : "Top secret", + "Track and manage tasks" : "Track and manage tasks", + "Translation unavailable" : "Translation unavailable", + "Trigger" : "Trigger", + "Type: {type}" : "Type: {type}", + "Unknown" : "Unknown", + "Unnamed case" : "Unnamed case", + "Unnamed task" : "Unnamed task", + "Unpublish" : "Unpublish", + "Unpublishing this case type will prevent new cases from being created. Existing cases will continue to function. Continue?" : "Unpublishing this case type will prevent new cases from being created. Existing cases will continue to function. Continue?", + "Upcoming" : "Upcoming", + "Updated: {fields}" : "Updated: {fields}", + "Urgent" : "Urgent", + "User settings will appear here in a future update." : "User settings will appear here in a future update.", + "Username" : "Username", + "Username (optional)" : "Username (optional)", + "Valid from" : "Valid from", + "Valid until" : "Valid until", + "Value Mappings (enum translations)" : "Value Mappings (enum translations)", + "View all activity" : "View all activity", + "View all my work" : "View all my work", + "View all overdue" : "View all overdue", + "View case" : "View case", + "View task" : "View task", + "Welcome to Procest! Get started by creating your first case or task using the buttons above." : "Welcome to Procest! Get started by creating your first case or task using the buttons above.", + "Welcome to Procest! Get started by creating your first case type in Settings." : "Welcome to Procest! Get started by creating your first case type in Settings.", + "When heeftAlleAutorisaties is false, autorisaties must be specified." : "When heeftAlleAutorisaties is false, autorisaties must be specified.", + "When heeftAlleAutorisaties is true, autorisaties must not be specified. When heeftAlleAutorisaties is false, autorisaties must be specified." : "When heeftAlleAutorisaties is true, autorisaties must not be specified. When heeftAlleAutorisaties is false, autorisaties must be specified.", + "Why is an extension needed?" : "Why is an extension needed?", + "Widget not available" : "Widget not available", + "You do not have the correct permissions for this action." : "You do not have the correct permissions for this action.", + "ZGW API Mapping" : "ZGW API Mapping", + "ZGW Resource" : "ZGW Resource", + "action needed" : "action needed", + "all on track" : "all on track", + "avg {days} days" : "avg {days} days", + "besluittype is required when a scope related to besluiten is specified." : "besluittype is required when a scope related to besluiten is specified.", + "by {user}" : "by {user}", + "completed" : "completed", + "e.g., P28D (28 days)" : "e.g., P28D (28 days)", + "e.g., P42D (42 days)" : "e.g., P42D (42 days)", + "e.g., P56D (56 days)" : "e.g., P56D (56 days)", + "informatieobjecttype is required when a scope related to documenten is specified." : "informatieobjecttype is required when a scope related to documenten is specified.", + "just now" : "just now", + "maxVertrouwelijkheidaanduiding is required when a scope related to documenten is specified." : "maxVertrouwelijkheidaanduiding is required when a scope related to documenten is specified.", + "maxVertrouwelijkheidaanduiding is required when a scope related to zaken is specified." : "maxVertrouwelijkheidaanduiding is required when a scope related to zaken is specified.", + "no data" : "no data", + "none due today" : "none due today", + "open" : "open", + "overdue" : "overdue", + "productenOfDiensten contains a value not present in the zaaktype." : "productenOfDiensten contains a value not present in the zaaktype.", + "tasks" : "tasks", + "yesterday" : "yesterday", + "zaaktype is required when a scope related to zaken is specified." : "zaaktype is required when a scope related to zaken is specified.", + "{days} days" : "{days} days", + "{days} days ago" : "{days} days ago", + "{days} days overdue" : "{days} days overdue", + "{days} days remaining" : "{days} days remaining", + "{field} is required" : "{field} is required", + "{from} \u2014 (no end)" : "{from} \u2014 (no end)", + "{hours} hours ago" : "{hours} hours ago", + "{min} min ago" : "{min} min ago", + "{n} days" : "{n} days", + "{n} due today" : "{n} due today", + "{n} months" : "{n} months", + "{n} weeks" : "{n} weeks", + "{n} years" : "{n} years" +}, +"nplurals=2; plural=(n != 1);"); diff --git a/l10n/en.json b/l10n/en.json index 98c0ef9..a62343e 100644 --- a/l10n/en.json +++ b/l10n/en.json @@ -1,56 +1,369 @@ { "translations": { - "Procest": "Procest", - "Dashboard": "Dashboard", - "Cases": "Cases", - "Case": "Case", - "Tasks": "Tasks", - "Task": "Task", - "New case": "New case", - "New task": "New task", - "Title": "Title", - "Description": "Description", - "Status": "Status", + "+{n} today": "+{n} today", + "0 today": "0 today", + "1 day": "1 day", + "1 day overdue": "1 day overdue", + "1 month": "1 month", + "1 week": "1 week", + "1 year": "1 year", + "A status type with this order already exists": "A status type with this order already exists", + "Actions": "Actions", + "Active": "Active", + "Activity": "Activity", + "Add": "Add", + "Add Participant": "Add Participant", + "Add Status Type": "Add Status Type", + "Add a note...": "Add a note...", + "Add document": "Add document", + "Add note": "Add note", + "All": "All", + "All caught up!": "All caught up!", + "All your items are completed": "All your items are completed", + "Are you sure you want to delete this case?": "Are you sure you want to delete this case?", + "Are you sure you want to delete this task?": "Are you sure you want to delete this task?", + "Assign Handler": "Assign Handler", + "Assign handler...": "Assign handler...", + "Assign task": "Assign task", "Assignee": "Assignee", - "Priority": "Priority", - "Due date": "Due date", - "Created": "Created", - "Updated": "Updated", - "Closed": "Closed", - "Save": "Save", + "At least one status type must be defined": "At least one status type must be defined", + "At least one status type must be marked as final": "At least one status type must be marked as final", + "Authorized representative": "Authorized representative", + "Available": "Available", + "Awaiting information": "Awaiting information", + "Back to list": "Back to list", + "CASE": "CASE", + "Calculated deadline": "Calculated deadline", "Cancel": "Cancel", + "Cancelled": "Cancelled", + "Cannot delete: active cases are using this type": "Cannot delete: active cases are using this type", + "Cannot publish:": "Cannot publish:", + "Case": "Case", + "Case Information": "Case Information", + "Case Type": "Case Type", + "Case Type Management": "Case Type Management", + "Case Types": "Case Types", + "Case created with type \\": "Case created with type \\", + "Case handler": "Case handler", + "Case schema": "Case schema", + "Case sensitive": "Case sensitive", + "Case type": "Case type", + "Case type \\": "Case type \\", + "Case type has expired (valid until {date})": "Case type has expired (valid until {date})", + "Case type is not yet valid (valid from {date})": "Case type is not yet valid (valid from {date})", + "Case type is required": "Case type is required", + "Case type schema": "Case type schema", + "Case: {id}": "Case: {id}", + "Cases": "Cases", + "Cases and tasks assigned to you will appear here": "Cases and tasks assigned to you will appear here", + "Cases by Status": "Cases by Status", + "Cases overview": "Cases overview", + "Change status": "Change status", + "Change status...": "Change status...", + "Close case": "Close case", + "Closed on {date}": "Closed on {date}", + "Comma-separated keywords": "Comma-separated keywords", + "Complete": "Complete", + "Completed": "Completed", + "Completed This Month": "Completed This Month", + "Completed on {date}": "Completed on {date}", + "Confidential": "Confidential", + "Confidentiality": "Confidentiality", + "Configuration": "Configuration", + "Configuration saved": "Configuration saved", + "Configure case types": "Configure case types", + "Configure property mappings between English OpenRegister fields and Dutch ZGW API fields": "Configure property mappings between English OpenRegister fields and Dutch ZGW API fields", + "Confirm": "Confirm", + "Create case": "Create case", + "Create task": "Create task", + "Dashboard": "Dashboard", + "Days elapsed": "Days elapsed", + "Deadline": "Deadline", + "Deadline & Timing": "Deadline & Timing", + "Deadline extended from {old} to {new}. Reason: {reason}": "Deadline extended from {old} to {new}. Reason: {reason}", + "Deadline: {date}": "Deadline: {date}", + "Decision schema": "Decision schema", + "Decision type": "Decision type", "Delete": "Delete", + "Delete case type \"{title}\"?": "Delete case type \"{title}\"?", + "Delete status type \"{name}\"?": "Delete status type \"{name}\"?", + "Description": "Description", + "Disable": "Disable", + "Disabled": "Disabled", + "Document is already locked.": "Document is already locked.", + "Document is not locked.": "Document is not locked.", + "Document type": "Document type", + "Documentation": "Documentation", + "Draft": "Draft", + "Drag to reorder": "Drag to reorder", + "Due date": "Due date", + "Due this week": "Due this week", + "Due today": "Due today", + "Due tomorrow": "Due tomorrow", "Edit": "Edit", - "Search": "Search", - "Loading...": "Loading...", + "Edit ZGW Mapping: {key}": "Edit ZGW Mapping: {key}", + "Enable this mapping": "Enable this mapping", + "Enabled": "Enabled", + "Enter case title...": "Enter case title...", + "Enter task title...": "Enter task title...", + "Extend Deadline": "Extend Deadline", + "Extend deadline": "Extend deadline", + "Extension allowed": "Extension allowed", + "Extension period": "Extension period", + "Extension period is required when extension is allowed": "Extension period is required when extension is allowed", + "Extension: allowed (+{period})": "Extension: allowed (+{period})", + "Extension: already extended": "Extension: already extended", + "Extension: not allowed": "Extension: not allowed", + "External": "External", + "Failed to add participant": "Failed to add participant", + "Failed to add status type": "Failed to add status type", + "Failed to delete case type": "Failed to delete case type", + "Failed to delete status type": "Failed to delete status type", + "Failed to delete status type \"{name}\"": "Failed to delete status type \"{name}\"", + "Failed to load dashboard data": "Failed to load dashboard data", + "Failed to save": "Failed to save", + "Failed to save case type": "Failed to save case type", + "File not found.": "File not found.", + "Final": "Final", + "Final status": "Final status", + "Forced unlocking is not allowed without the correct scope.": "Forced unlocking is not allowed without the correct scope.", + "General": "General", + "Handler": "Handler", + "Handler action": "Handler action", + "High": "High", + "Highly confidential": "Highly confidential", + "Identifier": "Identifier", + "In progress": "In progress", + "Initial status": "Initial status", + "Initiator": "Initiator", + "Initiator action": "Initiator action", + "Install OpenRegister": "Install OpenRegister", + "Internal": "Internal", + "Invalid JSON in one of the mapping fields: {error}": "Invalid JSON in one of the mapping fields: {error}", + "Invalid chunk configuration.": "Invalid chunk configuration.", + "Invalid sequence number. Expected 1-%s.": "Invalid sequence number. Expected 1-%s.", + "Keywords": "Keywords", + "Link to a case (optional)": "Link to a case (optional)", + "Linked Case": "Linked Case", + "Lock ID does not match and forced unlocking is not allowed.": "Lock ID does not match and forced unlocking is not allowed.", + "Lock ID does not match the stored lock.": "Lock ID does not match the stored lock.", + "Lock ID does not match.": "Lock ID does not match.", + "Lock ID is missing from the request.": "Lock ID is missing from the request.", + "Lock ID is required for editing a locked document.": "Lock ID is required for editing a locked document.", + "Low": "Low", + "Make decision": "Make decision", + "Manage case types and their configurations": "Manage case types and their configurations", + "Manage cases and workflows": "Manage cases and workflows", + "Mapping saved successfully": "Mapping saved successfully", + "Missing required fields: {fields}": "Missing required fields: {fields}", + "Must be a valid ISO 8601 duration (e.g., P28D)": "Must be a valid ISO 8601 duration (e.g., P28D)", + "Must be a valid ISO 8601 duration (e.g., P42D)": "Must be a valid ISO 8601 duration (e.g., P42D)", + "Must be a valid ISO 8601 duration (e.g., P56D for 56 days, P8W for 8 weeks, P2M for 2 months)": "Must be a valid ISO 8601 duration (e.g., P56D for 56 days, P8W for 8 weeks, P2M for 2 months)", + "Must be a valid ISO 8601 duration (e.g., P56D)": "Must be a valid ISO 8601 duration (e.g., P56D)", + "My Tasks": "My Tasks", + "My Work": "My Work", + "Name": "Name", + "Name *": "Name *", + "New Case": "New Case", + "New Case Type": "New Case Type", + "New Task": "New Task", + "New case": "New case", + "New task": "New task", + "No Procest register configured": "No Procest register configured", + "No activity yet": "No activity yet", "No cases found": "No cases found", + "No deadline": "No deadline", + "No file content received.": "No file content received.", + "No items assigned to you": "No items assigned to you", + "No mapping configured for %s": "No mapping configured for %s", + "No open cases": "No open cases", + "No overdue cases": "No overdue cases", + "No participants assigned": "No participants assigned", + "No reason provided": "No reason provided", + "No recent activity": "No recent activity", + "No result recorded yet": "No result recorded yet", + "No settings available yet": "No settings available yet", + "No status types defined. Add at least one to publish this case type.": "No status types defined. Add at least one to publish this case type.", "No tasks found": "No tasks found", - "Are you sure you want to delete this?": "Are you sure you want to delete this?", - "Case created successfully": "Case created successfully", - "Case updated successfully": "Case updated successfully", - "Case deleted successfully": "Case deleted successfully", - "Task created successfully": "Task created successfully", - "Task updated successfully": "Task updated successfully", - "Settings": "Settings", + "No tasks yet": "No tasks yet", + "No widgets configured": "No widgets configured", + "Normal": "Normal", + "Not configured": "Not configured", + "Not found.": "Not found.", + "Not set": "Not set", + "Notification text": "Notification text", + "Notify": "Notify", + "Notify initiator": "Notify initiator", + "Only locked documents may be edited.": "Only locked documents may be edited.", + "Only published case types can be set as default": "Only published case types can be set as default", + "Open Cases": "Open Cases", + "OpenRegister is required": "OpenRegister is required", + "Optional description...": "Optional description...", + "Order": "Order", + "Order *": "Order *", + "Order is required": "Order is required", + "Origin": "Origin", + "Overdue": "Overdue", + "Overdue Cases": "Overdue Cases", + "Participant": "Participant", + "Participants": "Participants", + "Please fix the validation errors": "Please fix the validation errors", + "Please select a result type": "Please select a result type", + "Priority": "Priority", + "Processing deadline": "Processing deadline", + "Processing time": "Processing time", + "Procest": "Procest", + "Procest needs the OpenRegister app to store and manage data. Please install OpenRegister from the app store to get started.": "Procest needs the OpenRegister app to store and manage data. Please install OpenRegister from the app store to get started.", + "Procest settings": "Procest settings", + "Product '%s' is not allowed for this zaaktype.": "Product '%s' is not allowed for this zaaktype.", + "Property Mapping (outbound: English → Dutch)": "Property Mapping (outbound: English → Dutch)", + "Property definition": "Property definition", + "Public": "Public", + "Publication required": "Publication required", + "Publication text": "Publication text", + "Publish": "Publish", + "Published": "Published", + "Purpose": "Purpose", + "Query Parameter Mapping": "Query Parameter Mapping", + "Reason": "Reason", + "Reassign": "Reassign", + "Reassign handler to:": "Reassign handler to:", + "Received": "Received", + "Recent Activity": "Recent Activity", + "Reference process": "Reference process", + "Refresh dashboard": "Refresh dashboard", "Register": "Register", - "Case schema": "Case schema", - "Task schema": "Task schema", - "Status schema": "Status schema", - "Role schema": "Role schema", + "Register ID": "Register ID", + "Register and schema settings": "Register and schema settings", + "Remove this participant?": "Remove this participant?", + "Reopened": "Reopened", + "Request Extension": "Request Extension", + "Reset": "Reset", + "Responsible unit": "Responsible unit", + "Restricted": "Restricted", + "Result": "Result", + "Result (required)": "Result (required)", + "Result is required when closing a case": "Result is required when closing a case", "Result schema": "Result schema", - "Decision schema": "Decision schema", - "Configuration saved": "Configuration saved", - "Welcome to Procest": "Welcome to Procest", - "Manage your cases and tasks": "Manage your cases and tasks", + "Result type": "Result type", + "Retry": "Retry", + "Reverse Mapping (inbound: Dutch → English)": "Reverse Mapping (inbound: Dutch → English)", + "Role schema": "Role schema", + "Role type": "Role type", + "Save": "Save", + "Save the case type first before adding status types.": "Save the case type first before adding status types.", + "Saved successfully": "Saved successfully", + "Schema ID": "Schema ID", + "Secret": "Secret", + "Select a case type...": "Select a case type...", + "Select due date": "Select due date", + "Select priority": "Select priority", + "Select result type...": "Select result type...", + "Select role type...": "Select role type...", + "Select user...": "Select user...", + "Service target": "Service target", + "Set as default": "Set as default", + "Set result": "Set result", + "Show completed": "Show completed", + "Source Register": "Source Register", + "Source Schema": "Source Schema", + "Stakeholder": "Stakeholder", + "Start": "Start", + "Start date": "Start date", + "Started": "Started", + "Status": "Status", + "Status Timeline": "Status Timeline", + "Status changed from \\": "Status changed from \\", + "Status changed to \\": "Status changed to \\", + "Status schema": "Status schema", + "Status type": "Status type", + "Status type name is required": "Status type name is required", + "Status type schema": "Status type schema", + "Statuses": "Statuses", + "Subject": "Subject", + "TASK": "TASK", + "Task": "Task", + "Task Information": "Task Information", + "Task schema": "Task schema", + "Tasks": "Tasks", + "Terminate": "Terminate", + "Terminated": "Terminated", + "The document cannot be deleted.": "The document cannot be deleted.", + "The document cannot be deleted: there are related ObjectInformatieObjecten.": "The document cannot be deleted: there are related ObjectInformatieObjecten.", + "The document is not locked. Lock the document first.": "The document is not locked. Lock the document first.", + "This case has {count} linked tasks. Are you sure you want to delete it?": "This case has {count} linked tasks. Are you sure you want to delete it?", + "This content is not yet translated": "This content is not yet translated", + "This document has no pending chunked upload.": "This document has no pending chunked upload.", + "This will delete the case type and all {count} status types. Continue?": "This will delete the case type and all {count} status types. Continue?", + "This will extend the deadline by {period}.": "This will extend the deadline by {period}.", + "Title": "Title", + "Title is required": "Title is required", + "Top secret": "Top secret", + "Track and manage tasks": "Track and manage tasks", + "Translation unavailable": "Translation unavailable", + "Trigger": "Trigger", + "Type: {type}": "Type: {type}", + "Unknown": "Unknown", + "Unnamed case": "Unnamed case", + "Unnamed task": "Unnamed task", + "Unpublish": "Unpublish", + "Unpublishing this case type will prevent new cases from being created. Existing cases will continue to function. Continue?": "Unpublishing this case type will prevent new cases from being created. Existing cases will continue to function. Continue?", + "Upcoming": "Upcoming", + "Updated: {fields}": "Updated: {fields}", + "Urgent": "Urgent", + "User settings will appear here in a future update.": "User settings will appear here in a future update.", + "Username": "Username", + "Username (optional)": "Username (optional)", + "Valid from": "Valid from", + "Valid until": "Valid until", + "Value Mappings (enum translations)": "Value Mappings (enum translations)", + "View all activity": "View all activity", + "View all my work": "View all my work", + "View all overdue": "View all overdue", + "View case": "View case", + "View task": "View task", + "Welcome to Procest! Get started by creating your first case or task using the buttons above.": "Welcome to Procest! Get started by creating your first case or task using the buttons above.", + "Welcome to Procest! Get started by creating your first case type in Settings.": "Welcome to Procest! Get started by creating your first case type in Settings.", + "When heeftAlleAutorisaties is false, autorisaties must be specified.": "When heeftAlleAutorisaties is false, autorisaties must be specified.", + "When heeftAlleAutorisaties is true, autorisaties must not be specified. When heeftAlleAutorisaties is false, autorisaties must be specified.": "When heeftAlleAutorisaties is true, autorisaties must not be specified. When heeftAlleAutorisaties is false, autorisaties must be specified.", + "Why is an extension needed?": "Why is an extension needed?", + "Widget not available": "Widget not available", + "You do not have the correct permissions for this action.": "You do not have the correct permissions for this action.", + "ZGW API Mapping": "ZGW API Mapping", + "ZGW Resource": "ZGW Resource", + "action needed": "action needed", + "all on track": "all on track", + "avg {days} days": "avg {days} days", + "besluittype is required when a scope related to besluiten is specified.": "besluittype is required when a scope related to besluiten is specified.", + "by {user}": "by {user}", + "completed": "completed", + "e.g., P28D (28 days)": "e.g., P28D (28 days)", + "e.g., P42D (42 days)": "e.g., P42D (42 days)", + "e.g., P56D (56 days)": "e.g., P56D (56 days)", + "informatieobjecttype is required when a scope related to documenten is specified.": "informatieobjecttype is required when a scope related to documenten is specified.", + "just now": "just now", + "maxVertrouwelijkheidaanduiding is required when a scope related to documenten is specified.": "maxVertrouwelijkheidaanduiding is required when a scope related to documenten is specified.", + "maxVertrouwelijkheidaanduiding is required when a scope related to zaken is specified.": "maxVertrouwelijkheidaanduiding is required when a scope related to zaken is specified.", + "no data": "no data", + "none due today": "none due today", "open": "open", - "in_progress": "in progress", - "closed": "closed", - "low": "low", - "normal": "normal", - "high": "high", - "urgent": "urgent", - "Back to list": "Back to list", - "Previous": "Previous", - "Next": "Next" + "overdue": "overdue", + "productenOfDiensten contains a value not present in the zaaktype.": "productenOfDiensten contains a value not present in the zaaktype.", + "tasks": "tasks", + "yesterday": "yesterday", + "zaaktype is required when a scope related to zaken is specified.": "zaaktype is required when a scope related to zaken is specified.", + "{days} days": "{days} days", + "{days} days ago": "{days} days ago", + "{days} days overdue": "{days} days overdue", + "{days} days remaining": "{days} days remaining", + "{field} is required": "{field} is required", + "{from} \\u2014 (no end)": "{from} \\u2014 (no end)", + "{hours} hours ago": "{hours} hours ago", + "{min} min ago": "{min} min ago", + "{n} days": "{n} days", + "{n} due today": "{n} due today", + "{n} months": "{n} months", + "{n} weeks": "{n} weeks", + "{n} years": "{n} years" } } diff --git a/l10n/nl.js b/l10n/nl.js new file mode 100644 index 0000000..07a3d08 --- /dev/null +++ b/l10n/nl.js @@ -0,0 +1,370 @@ +OC.L10N.register( + "procest", + { + "+{n} today" : "+{n} vandaag", + "0 today" : "0 vandaag", + "1 day" : "1 dag", + "1 day overdue" : "1 dag te laat", + "1 month" : "1 maand", + "1 week" : "1 week", + "1 year" : "1 jaar", + "A status type with this order already exists" : "Er bestaat al een statustype met deze volgorde", + "Actions" : "Acties", + "Active" : "Actief", + "Activity" : "Activiteit", + "Add" : "Toevoegen", + "Add Participant" : "Deelnemer toevoegen", + "Add Status Type" : "Statustype toevoegen", + "Add a note..." : "Notitie toevoegen...", + "Add document" : "Document toevoegen", + "Add note" : "Notitie toevoegen", + "All" : "Alle", + "All caught up!" : "Alles bijgewerkt!", + "All your items are completed" : "Al uw items zijn afgerond", + "Are you sure you want to delete this case?" : "Weet u zeker dat u deze zaak wilt verwijderen?", + "Are you sure you want to delete this task?" : "Weet u zeker dat u deze taak wilt verwijderen?", + "Assign Handler" : "Behandelaar toewijzen", + "Assign handler..." : "Behandelaar toewijzen...", + "Assign task" : "Taak toewijzen", + "Assignee" : "Toegewezen aan", + "At least one status type must be defined" : "Er moet ten minste één statustype worden gedefinieerd", + "At least one status type must be marked as final" : "Ten minste één statustype moet als definitief worden gemarkeerd", + "Authorized representative" : "Gemachtigde", + "Available" : "Beschikbaar", + "Awaiting information" : "Wacht op informatie", + "Back to list" : "Terug naar lijst", + "CASE" : "ZAAK", + "Calculated deadline" : "Berekende deadline", + "Cancel" : "Annuleren", + "Cancelled" : "Afgebroken", + "Cannot delete: active cases are using this type" : "Kan niet verwijderen: actieve zaken gebruiken dit type", + "Cannot publish:" : "Kan niet publiceren:", + "Case" : "Zaak", + "Case Information" : "Zaak informatie", + "Case Type" : "Zaaktype", + "Case Type Management" : "Zaaktype beheer", + "Case Types" : "Zaaktypen", + "Case created with type \" : "Zaak aangemaakt met type \", + "Case handler" : "Behandelaar", + "Case schema" : "Zaak schema", + "Case sensitive" : "Hoofdlettergevoelig", + "Case type" : "Zaaktype", + "Case type \" : "Zaaktype \", + "Case type has expired (valid until {date})" : "Zaaktype is verlopen (geldig tot {date})", + "Case type is not yet valid (valid from {date})" : "Zaaktype is nog niet geldig (geldig vanaf {date})", + "Case type is required" : "Zaaktype is verplicht", + "Case type schema" : "Zaaktype schema", + "Case: {id}" : "Zaak: {id}", + "Cases" : "Zaken", + "Cases and tasks assigned to you will appear here" : "Zaken en taken die aan u zijn toegewezen verschijnen hier", + "Cases by Status" : "Zaken per status", + "Cases overview" : "Zaken overzicht", + "Change status" : "Status wijzigen", + "Change status..." : "Status wijzigen...", + "Close case" : "Zaak afsluiten", + "Closed on {date}" : "Gesloten op {date}", + "Comma-separated keywords" : "Kommagescheiden trefwoorden", + "Complete" : "Voltooien", + "Completed" : "Afgerond", + "Completed This Month" : "Deze maand afgerond", + "Completed on {date}" : "Afgerond op {date}", + "Confidential" : "Vertrouwelijk", + "Confidentiality" : "Vertrouwelijkheid", + "Configuration" : "Configuratie", + "Configuration saved" : "Configuratie opgeslagen", + "Configure case types" : "Zaaktypen configureren", + "Configure property mappings between English OpenRegister fields and Dutch ZGW API fields" : "Configureer eigenschap-mappings tussen Engelse OpenRegister velden en Nederlandse ZGW API velden", + "Confirm" : "Bevestigen", + "Create case" : "Zaak aanmaken", + "Create task" : "Taak aanmaken", + "Dashboard" : "Dashboard", + "Days elapsed" : "Dagen verstreken", + "Deadline" : "Deadline", + "Deadline & Timing" : "Deadline & Timing", + "Deadline extended from {old} to {new}. Reason: {reason}" : "Deadline verlengd van {old} naar {new}. Reden: {reason}", + "Deadline: {date}" : "Deadline: {date}", + "Decision schema" : "Besluit schema", + "Decision type" : "Besluittype", + "Delete" : "Verwijderen", + "Delete case type \"{title}\"?" : "Zaaktype \"{title}\" verwijderen?", + "Delete status type \"{name}\"?" : "Statustype \"{name}\" verwijderen?", + "Description" : "Omschrijving", + "Disable" : "Uitschakelen", + "Disabled" : "Uitgeschakeld", + "Document is already locked." : "Document is al vergrendeld.", + "Document is not locked." : "Document is niet vergrendeld.", + "Document type" : "Documenttype", + "Documentation" : "Documentatie", + "Draft" : "Concept", + "Drag to reorder" : "Sleep om te herordenen", + "Due date" : "Deadline", + "Due this week" : "Deze week verlopen", + "Due today" : "Vandaag verlopen", + "Due tomorrow" : "Morgen verlopen", + "Edit" : "Bewerken", + "Edit ZGW Mapping: {key}" : "ZGW Mapping bewerken: {key}", + "Enable this mapping" : "Deze mapping inschakelen", + "Enabled" : "Ingeschakeld", + "Enter case title..." : "Voer zaaktitel in...", + "Enter task title..." : "Voer taaktitel in...", + "Extend Deadline" : "Deadline verlengen", + "Extend deadline" : "Deadline verlengen", + "Extension allowed" : "Verlenging toegestaan", + "Extension period" : "Verlengingstermijn", + "Extension period is required when extension is allowed" : "Verlengingstermijn is vereist wanneer verlenging is toegestaan", + "Extension: allowed (+{period})" : "Verlenging: toegestaan (+{period})", + "Extension: already extended" : "Verlenging: reeds verlengd", + "Extension: not allowed" : "Verlenging: niet toegestaan", + "External" : "Extern", + "Failed to add participant" : "Deelnemer toevoegen mislukt", + "Failed to add status type" : "Statustype toevoegen mislukt", + "Failed to delete case type" : "Zaaktype verwijderen mislukt", + "Failed to delete status type" : "Statustype verwijderen mislukt", + "Failed to delete status type \"{name}\"" : "Statustype \"{name}\" verwijderen mislukt", + "Failed to load dashboard data" : "Dashboard gegevens laden mislukt", + "Failed to save" : "Opslaan mislukt", + "Failed to save case type" : "Zaaktype opslaan mislukt", + "File not found." : "Bestand niet gevonden.", + "Final" : "Definitief", + "Final status" : "Eindstatus", + "Forced unlocking is not allowed without the correct scope." : "Geforceerd unlocken is niet toegestaan zonder juiste scope.", + "General" : "Algemeen", + "Handler" : "Behandelaar", + "Handler action" : "Behandelaar actie", + "High" : "Hoog", + "Highly confidential" : "Zeer vertrouwelijk", + "Identifier" : "Identificatie", + "In progress" : "In behandeling", + "Initial status" : "Beginstatus", + "Initiator" : "Initiator", + "Initiator action" : "Initiator actie", + "Install OpenRegister" : "Installeer OpenRegister", + "Internal" : "Intern", + "Invalid JSON in one of the mapping fields: {error}" : "Ongeldige JSON in een van de mappingvelden: {error}", + "Invalid chunk configuration." : "Ongeldige chunk configuratie.", + "Invalid sequence number. Expected 1-%s." : "Ongeldig volgnummer. Verwacht 1-%s.", + "Keywords" : "Trefwoorden", + "Link to a case (optional)" : "Koppel aan een zaak (optioneel)", + "Linked Case" : "Gekoppelde zaak", + "Lock ID does not match and forced unlocking is not allowed." : "Lock ID komt niet overeen en geforceerd unlocken is niet toegestaan.", + "Lock ID does not match the stored lock." : "Lock ID komt niet overeen met de opgeslagen vergrendeling.", + "Lock ID does not match." : "Lock ID komt niet overeen.", + "Lock ID is missing from the request." : "Lock ID ontbreekt in het verzoek.", + "Lock ID is required for editing a locked document." : "Lock ID is vereist voor het bewerken van een vergrendeld document.", + "Low" : "Laag", + "Make decision" : "Besluit nemen", + "Manage case types and their configurations" : "Beheer zaaktypen en hun configuraties", + "Manage cases and workflows" : "Beheer zaken en workflows", + "Mapping saved successfully" : "Mapping succesvol opgeslagen", + "Missing required fields: {fields}" : "Verplichte velden ontbreken: {fields}", + "Must be a valid ISO 8601 duration (e.g., P28D)" : "Moet een geldige ISO 8601 duur zijn (bijv. P28D)", + "Must be a valid ISO 8601 duration (e.g., P42D)" : "Moet een geldige ISO 8601 duur zijn (bijv. P42D)", + "Must be a valid ISO 8601 duration (e.g., P56D for 56 days, P8W for 8 weeks, P2M for 2 months)" : "Moet een geldige ISO 8601 duur zijn (bijv. P56D voor 56 dagen, P8W voor 8 weken, P2M voor 2 maanden)", + "Must be a valid ISO 8601 duration (e.g., P56D)" : "Moet een geldige ISO 8601 duur zijn (bijv. P56D)", + "My Tasks" : "Mijn taken", + "My Work" : "Mijn werk", + "Name" : "Naam", + "Name *" : "Naam *", + "New Case" : "Nieuwe zaak", + "New Case Type" : "Nieuw zaaktype", + "New Task" : "Nieuwe taak", + "New case" : "Nieuwe zaak", + "New task" : "Nieuwe taak", + "No Procest register configured" : "Geen Procest register geconfigureerd", + "No activity yet" : "Nog geen activiteit", + "No cases found" : "Geen zaken gevonden", + "No deadline" : "Geen deadline", + "No file content received." : "Geen bestandsinhoud ontvangen.", + "No items assigned to you" : "Geen items aan u toegewezen", + "No mapping configured for %s" : "Geen mapping geconfigureerd voor %s", + "No open cases" : "Geen openstaande zaken", + "No overdue cases" : "Geen openstaande zaken", + "No participants assigned" : "Geen deelnemers toegewezen", + "No reason provided" : "Geen reden opgegeven", + "No recent activity" : "Geen recente activiteit", + "No result recorded yet" : "Nog geen resultaat geregistreerd", + "No settings available yet" : "Nog geen instellingen beschikbaar", + "No status types defined. Add at least one to publish this case type." : "Geen statustypen gedefinieerd. Voeg er ten minste één toe om dit zaaktype te publiceren.", + "No tasks found" : "Geen taken gevonden", + "No tasks yet" : "Nog geen taken", + "No widgets configured" : "Geen widgets geconfigureerd", + "Normal" : "Normaal", + "Not configured" : "Niet geconfigureerd", + "Not found." : "Niet gevonden.", + "Not set" : "Niet ingesteld", + "Notification text" : "Notificatietekst", + "Notify" : "Notificeren", + "Notify initiator" : "Initiator notificeren", + "Only locked documents may be edited." : "Alleen vergrendelde documenten mogen bewerkt worden.", + "Only published case types can be set as default" : "Alleen gepubliceerde zaaktypen kunnen als standaard worden ingesteld", + "Open Cases" : "Open zaken", + "OpenRegister is required" : "OpenRegister is vereist", + "Optional description..." : "Optionele omschrijving...", + "Order" : "Volgorde", + "Order *" : "Volgorde *", + "Order is required" : "Volgorde is verplicht", + "Origin" : "Oorsprong", + "Overdue" : "Te laat", + "Overdue Cases" : "Openstaande zaken", + "Participant" : "Deelnemer", + "Participants" : "Deelnemers", + "Please fix the validation errors" : "Corrigeer de validatiefouten", + "Please select a result type" : "Selecteer een resultaattype", + "Priority" : "Prioriteit", + "Processing deadline" : "Verwerkingsdeadline", + "Processing time" : "Verwerkingstijd", + "Procest" : "Procest", + "Procest needs the OpenRegister app to store and manage data. Please install OpenRegister from the app store to get started." : "Procest heeft de OpenRegister app nodig om gegevens op te slaan en te beheren. Installeer OpenRegister uit de app store om te beginnen.", + "Procest settings" : "Procest instellingen", + "Product '%s' is not allowed for this zaaktype." : "Product '%s' is niet toegestaan voor dit zaaktype.", + "Property Mapping (outbound: English → Dutch)" : "Eigenschap mapping (uitgaand: Engels → Nederlands)", + "Property definition" : "Eigenschapdefinitie", + "Public" : "Openbaar", + "Publication required" : "Publicatie vereist", + "Publication text" : "Publicatietekst", + "Publish" : "Publiceren", + "Published" : "Gepubliceerd", + "Purpose" : "Doel", + "Query Parameter Mapping" : "Query parameter mapping", + "Reason" : "Reden", + "Reassign" : "Hertoewijzen", + "Reassign handler to:" : "Behandelaar hertoewijzen aan:", + "Received" : "Ontvangen", + "Recent Activity" : "Recente activiteit", + "Reference process" : "Referentieproces", + "Refresh dashboard" : "Dashboard vernieuwen", + "Register" : "Register", + "Register ID" : "Register ID", + "Register and schema settings" : "Register en schema instellingen", + "Remove this participant?" : "Deze deelnemer verwijderen?", + "Reopened" : "Heropend", + "Request Extension" : "Verlenging aanvragen", + "Reset" : "Herstellen", + "Responsible unit" : "Verantwoordelijke eenheid", + "Restricted" : "Beperkt", + "Result" : "Resultaat", + "Result (required)" : "Resultaat (verplicht)", + "Result is required when closing a case" : "Resultaat is verplicht bij het sluiten van een zaak", + "Result schema" : "Resultaat schema", + "Result type" : "Resultaattype", + "Retry" : "Opnieuw proberen", + "Reverse Mapping (inbound: Dutch → English)" : "Reverse mapping (inkomend: Nederlands → Engels)", + "Role schema" : "Rol schema", + "Role type" : "Roltype", + "Save" : "Opslaan", + "Save the case type first before adding status types." : "Sla het zaaktype eerst op voordat u statustypen toevoegt.", + "Saved successfully" : "Succesvol opgeslagen", + "Schema ID" : "Schema ID", + "Secret" : "Geheim", + "Select a case type..." : "Selecteer een zaaktype...", + "Select due date" : "Selecteer deadline", + "Select priority" : "Selecteer prioriteit", + "Select result type..." : "Selecteer resultaattype...", + "Select role type..." : "Selecteer roltype...", + "Select user..." : "Selecteer gebruiker...", + "Service target" : "Servicenorm", + "Set as default" : "Als standaard instellen", + "Set result" : "Resultaat instellen", + "Show completed" : "Toon afgerond", + "Source Register" : "Bronregister", + "Source Schema" : "Bronschema", + "Stakeholder" : "Belanghebbende", + "Start" : "Start", + "Start date" : "Startdatum", + "Started" : "Gestart", + "Status" : "Status", + "Status Timeline" : "Status tijdlijn", + "Status changed from \" : "Status gewijzigd van \", + "Status changed to \" : "Status gewijzigd naar \", + "Status schema" : "Status schema", + "Status type" : "Statustype", + "Status type name is required" : "Statustype naam is verplicht", + "Status type schema" : "Statustype schema", + "Statuses" : "Statussen", + "Subject" : "Onderwerp", + "TASK" : "TAAK", + "Task" : "Taak", + "Task Information" : "Taak informatie", + "Task schema" : "Taak schema", + "Tasks" : "Taken", + "Terminate" : "Beëindigen", + "Terminated" : "Beëindigd", + "The document cannot be deleted." : "Het informatieobject kan niet verwijderd worden.", + "The document cannot be deleted: there are related ObjectInformatieObjecten." : "Het informatieobject kan niet verwijderd worden: er zijn gerelateerde ObjectInformatieObjecten.", + "The document is not locked. Lock the document first." : "Het document is niet vergrendeld. Vergrendel het document eerst.", + "This case has {count} linked tasks. Are you sure you want to delete it?" : "Deze zaak heeft {count} gekoppelde taken. Weet u zeker dat u deze wilt verwijderen?", + "This content is not yet translated" : "Deze inhoud is nog niet vertaald", + "This document has no pending chunked upload." : "Dit document heeft geen openstaande chunked upload.", + "This will delete the case type and all {count} status types. Continue?" : "Dit verwijdert het zaaktype en alle {count} statustypen. Doorgaan?", + "This will extend the deadline by {period}." : "Dit verlengt de deadline met {period}.", + "Title" : "Titel", + "Title is required" : "Titel is verplicht", + "Top secret" : "Zeer geheim", + "Track and manage tasks" : "Taken bijhouden en beheren", + "Translation unavailable" : "Vertaling niet beschikbaar", + "Trigger" : "Trigger", + "Type: {type}" : "Type: {type}", + "Unknown" : "Onbekend", + "Unnamed case" : "Naamloze zaak", + "Unnamed task" : "Naamloze taak", + "Unpublish" : "Depubliceren", + "Unpublishing this case type will prevent new cases from being created. Existing cases will continue to function. Continue?" : "Het depubliceren van dit zaaktype voorkomt dat er nieuwe zaken worden aangemaakt. Bestaande zaken blijven functioneren. Doorgaan?", + "Upcoming" : "Aankomend", + "Updated: {fields}" : "Bijgewerkt: {fields}", + "Urgent" : "Urgent", + "User settings will appear here in a future update." : "Gebruikersinstellingen verschijnen hier in een toekomstige update.", + "Username" : "Gebruikersnaam", + "Username (optional)" : "Gebruikersnaam (optioneel)", + "Valid from" : "Geldig vanaf", + "Valid until" : "Geldig tot", + "Value Mappings (enum translations)" : "Waarde mappings (enum vertalingen)", + "View all activity" : "Alle activiteit bekijken", + "View all my work" : "Al mijn werk bekijken", + "View all overdue" : "Alle openstaande bekijken", + "View case" : "Bekijk zaak", + "View task" : "Bekijk taak", + "Welcome to Procest! Get started by creating your first case or task using the buttons above." : "Welkom bij Procest! Begin door uw eerste zaak of taak aan te maken met de knoppen hierboven.", + "Welcome to Procest! Get started by creating your first case type in Settings." : "Welkom bij Procest! Begin door uw eerste zaaktype aan te maken in Instellingen.", + "When heeftAlleAutorisaties is false, autorisaties must be specified." : "Wanneer heeftAlleAutorisaties false is, dan moet autorisaties opgegeven worden.", + "When heeftAlleAutorisaties is true, autorisaties must not be specified. When heeftAlleAutorisaties is false, autorisaties must be specified." : "Wanneer heeftAlleAutorisaties op true staat, mag autorisaties niet opgegeven worden. Indien heeftAlleAutorisaties false is, dan moet autorisaties opgegeven worden.", + "Why is an extension needed?" : "Waarom is een verlenging nodig?", + "Widget not available" : "Widget niet beschikbaar", + "You do not have the correct permissions for this action." : "U heeft niet de juiste rechten voor deze actie.", + "ZGW API Mapping" : "ZGW API Mapping", + "ZGW Resource" : "ZGW Bron", + "action needed" : "actie vereist", + "all on track" : "alles op schema", + "avg {days} days" : "gem. {days} dagen", + "besluittype is required when a scope related to besluiten is specified." : "besluittype is verplicht wanneer een scope m.b.t. besluiten is opgegeven.", + "by {user}" : "door {user}", + "completed" : "afgerond", + "e.g., P28D (28 days)" : "bijv. P28D (28 dagen)", + "e.g., P42D (42 days)" : "bijv. P42D (42 dagen)", + "e.g., P56D (56 days)" : "bijv. P56D (56 dagen)", + "informatieobjecttype is required when a scope related to documenten is specified." : "informatieobjecttype is verplicht wanneer een scope m.b.t. documenten is opgegeven.", + "just now" : "zojuist", + "maxVertrouwelijkheidaanduiding is required when a scope related to documenten is specified." : "maxVertrouwelijkheidaanduiding is verplicht wanneer een scope m.b.t. documenten is opgegeven.", + "maxVertrouwelijkheidaanduiding is required when a scope related to zaken is specified." : "maxVertrouwelijkheidaanduiding is verplicht wanneer een scope m.b.t. zaken is opgegeven.", + "no data" : "geen gegevens", + "none due today" : "geen deadlines vandaag", + "open" : "open", + "overdue" : "te laat", + "productenOfDiensten contains a value not present in the zaaktype." : "productenOfDiensten bevat een waarde die niet in het zaaktype voorkomt.", + "tasks" : "taken", + "yesterday" : "gisteren", + "zaaktype is required when a scope related to zaken is specified." : "zaaktype is verplicht wanneer een scope m.b.t. zaken is opgegeven.", + "{days} days" : "{days} dagen", + "{days} days ago" : "{days} dagen geleden", + "{days} days overdue" : "{days} dagen te laat", + "{days} days remaining" : "{days} dagen resterend", + "{field} is required" : "{field} is verplicht", + "{from} \u2014 (no end)" : "{from} \u2014 (no end)", + "{hours} hours ago" : "{hours} uur geleden", + "{min} min ago" : "{min} min geleden", + "{n} days" : "{n} dagen", + "{n} due today" : "{n} vandaag verlopen", + "{n} months" : "{n} maanden", + "{n} weeks" : "{n} weken", + "{n} years" : "{n} jaar" +}, +"nplurals=2; plural=(n != 1);"); diff --git a/l10n/nl.json b/l10n/nl.json index 1f349eb..90b22c7 100644 --- a/l10n/nl.json +++ b/l10n/nl.json @@ -1,56 +1,369 @@ { "translations": { - "Procest": "Procest", - "Dashboard": "Dashboard", - "Cases": "Zaken", - "Case": "Zaak", - "Tasks": "Taken", - "Task": "Taak", - "New case": "Nieuwe zaak", - "New task": "Nieuwe taak", - "Title": "Titel", - "Description": "Omschrijving", - "Status": "Status", + "+{n} today": "+{n} vandaag", + "0 today": "0 vandaag", + "1 day": "1 dag", + "1 day overdue": "1 dag te laat", + "1 month": "1 maand", + "1 week": "1 week", + "1 year": "1 jaar", + "A status type with this order already exists": "Er bestaat al een statustype met deze volgorde", + "Actions": "Acties", + "Active": "Actief", + "Activity": "Activiteit", + "Add": "Toevoegen", + "Add Participant": "Deelnemer toevoegen", + "Add Status Type": "Statustype toevoegen", + "Add a note...": "Notitie toevoegen...", + "Add document": "Document toevoegen", + "Add note": "Notitie toevoegen", + "All": "Alle", + "All caught up!": "Alles bijgewerkt!", + "All your items are completed": "Al uw items zijn afgerond", + "Are you sure you want to delete this case?": "Weet u zeker dat u deze zaak wilt verwijderen?", + "Are you sure you want to delete this task?": "Weet u zeker dat u deze taak wilt verwijderen?", + "Assign Handler": "Behandelaar toewijzen", + "Assign handler...": "Behandelaar toewijzen...", + "Assign task": "Taak toewijzen", "Assignee": "Toegewezen aan", - "Priority": "Prioriteit", - "Due date": "Deadline", - "Created": "Aangemaakt", - "Updated": "Bijgewerkt", - "Closed": "Gesloten", - "Save": "Opslaan", + "At least one status type must be defined": "Er moet ten minste één statustype worden gedefinieerd", + "At least one status type must be marked as final": "Ten minste één statustype moet als definitief worden gemarkeerd", + "Authorized representative": "Gemachtigde", + "Available": "Beschikbaar", + "Awaiting information": "Wacht op informatie", + "Back to list": "Terug naar lijst", + "CASE": "ZAAK", + "Calculated deadline": "Berekende deadline", "Cancel": "Annuleren", + "Cancelled": "Afgebroken", + "Cannot delete: active cases are using this type": "Kan niet verwijderen: actieve zaken gebruiken dit type", + "Cannot publish:": "Kan niet publiceren:", + "Case": "Zaak", + "Case Information": "Zaak informatie", + "Case Type": "Zaaktype", + "Case Type Management": "Zaaktype beheer", + "Case Types": "Zaaktypen", + "Case created with type \\": "Zaak aangemaakt met type \\", + "Case handler": "Behandelaar", + "Case schema": "Zaak schema", + "Case sensitive": "Hoofdlettergevoelig", + "Case type": "Zaaktype", + "Case type \\": "Zaaktype \\", + "Case type has expired (valid until {date})": "Zaaktype is verlopen (geldig tot {date})", + "Case type is not yet valid (valid from {date})": "Zaaktype is nog niet geldig (geldig vanaf {date})", + "Case type is required": "Zaaktype is verplicht", + "Case type schema": "Zaaktype schema", + "Case: {id}": "Zaak: {id}", + "Cases": "Zaken", + "Cases and tasks assigned to you will appear here": "Zaken en taken die aan u zijn toegewezen verschijnen hier", + "Cases by Status": "Zaken per status", + "Cases overview": "Zaken overzicht", + "Change status": "Status wijzigen", + "Change status...": "Status wijzigen...", + "Close case": "Zaak afsluiten", + "Closed on {date}": "Gesloten op {date}", + "Comma-separated keywords": "Kommagescheiden trefwoorden", + "Complete": "Voltooien", + "Completed": "Afgerond", + "Completed This Month": "Deze maand afgerond", + "Completed on {date}": "Afgerond op {date}", + "Confidential": "Vertrouwelijk", + "Confidentiality": "Vertrouwelijkheid", + "Configuration": "Configuratie", + "Configuration saved": "Configuratie opgeslagen", + "Configure case types": "Zaaktypen configureren", + "Configure property mappings between English OpenRegister fields and Dutch ZGW API fields": "Configureer eigenschap-mappings tussen Engelse OpenRegister velden en Nederlandse ZGW API velden", + "Confirm": "Bevestigen", + "Create case": "Zaak aanmaken", + "Create task": "Taak aanmaken", + "Dashboard": "Dashboard", + "Days elapsed": "Dagen verstreken", + "Deadline": "Deadline", + "Deadline & Timing": "Deadline & Timing", + "Deadline extended from {old} to {new}. Reason: {reason}": "Deadline verlengd van {old} naar {new}. Reden: {reason}", + "Deadline: {date}": "Deadline: {date}", + "Decision schema": "Besluit schema", + "Decision type": "Besluittype", "Delete": "Verwijderen", + "Delete case type \"{title}\"?": "Zaaktype \"{title}\" verwijderen?", + "Delete status type \"{name}\"?": "Statustype \"{name}\" verwijderen?", + "Description": "Omschrijving", + "Disable": "Uitschakelen", + "Disabled": "Uitgeschakeld", + "Document is already locked.": "Document is al vergrendeld.", + "Document is not locked.": "Document is niet vergrendeld.", + "Document type": "Documenttype", + "Documentation": "Documentatie", + "Draft": "Concept", + "Drag to reorder": "Sleep om te herordenen", + "Due date": "Deadline", + "Due this week": "Deze week verlopen", + "Due today": "Vandaag verlopen", + "Due tomorrow": "Morgen verlopen", "Edit": "Bewerken", - "Search": "Zoeken", - "Loading...": "Laden...", + "Edit ZGW Mapping: {key}": "ZGW Mapping bewerken: {key}", + "Enable this mapping": "Deze mapping inschakelen", + "Enabled": "Ingeschakeld", + "Enter case title...": "Voer zaaktitel in...", + "Enter task title...": "Voer taaktitel in...", + "Extend Deadline": "Deadline verlengen", + "Extend deadline": "Deadline verlengen", + "Extension allowed": "Verlenging toegestaan", + "Extension period": "Verlengingstermijn", + "Extension period is required when extension is allowed": "Verlengingstermijn is vereist wanneer verlenging is toegestaan", + "Extension: allowed (+{period})": "Verlenging: toegestaan (+{period})", + "Extension: already extended": "Verlenging: reeds verlengd", + "Extension: not allowed": "Verlenging: niet toegestaan", + "External": "Extern", + "Failed to add participant": "Deelnemer toevoegen mislukt", + "Failed to add status type": "Statustype toevoegen mislukt", + "Failed to delete case type": "Zaaktype verwijderen mislukt", + "Failed to delete status type": "Statustype verwijderen mislukt", + "Failed to delete status type \"{name}\"": "Statustype \"{name}\" verwijderen mislukt", + "Failed to load dashboard data": "Dashboard gegevens laden mislukt", + "Failed to save": "Opslaan mislukt", + "Failed to save case type": "Zaaktype opslaan mislukt", + "File not found.": "Bestand niet gevonden.", + "Final": "Definitief", + "Final status": "Eindstatus", + "Forced unlocking is not allowed without the correct scope.": "Geforceerd unlocken is niet toegestaan zonder juiste scope.", + "General": "Algemeen", + "Handler": "Behandelaar", + "Handler action": "Behandelaar actie", + "High": "Hoog", + "Highly confidential": "Zeer vertrouwelijk", + "Identifier": "Identificatie", + "In progress": "In behandeling", + "Initial status": "Beginstatus", + "Initiator": "Initiator", + "Initiator action": "Initiator actie", + "Install OpenRegister": "Installeer OpenRegister", + "Internal": "Intern", + "Invalid JSON in one of the mapping fields: {error}": "Ongeldige JSON in een van de mappingvelden: {error}", + "Invalid chunk configuration.": "Ongeldige chunk configuratie.", + "Invalid sequence number. Expected 1-%s.": "Ongeldig volgnummer. Verwacht 1-%s.", + "Keywords": "Trefwoorden", + "Link to a case (optional)": "Koppel aan een zaak (optioneel)", + "Linked Case": "Gekoppelde zaak", + "Lock ID does not match and forced unlocking is not allowed.": "Lock ID komt niet overeen en geforceerd unlocken is niet toegestaan.", + "Lock ID does not match the stored lock.": "Lock ID komt niet overeen met de opgeslagen vergrendeling.", + "Lock ID does not match.": "Lock ID komt niet overeen.", + "Lock ID is missing from the request.": "Lock ID ontbreekt in het verzoek.", + "Lock ID is required for editing a locked document.": "Lock ID is vereist voor het bewerken van een vergrendeld document.", + "Low": "Laag", + "Make decision": "Besluit nemen", + "Manage case types and their configurations": "Beheer zaaktypen en hun configuraties", + "Manage cases and workflows": "Beheer zaken en workflows", + "Mapping saved successfully": "Mapping succesvol opgeslagen", + "Missing required fields: {fields}": "Verplichte velden ontbreken: {fields}", + "Must be a valid ISO 8601 duration (e.g., P28D)": "Moet een geldige ISO 8601 duur zijn (bijv. P28D)", + "Must be a valid ISO 8601 duration (e.g., P42D)": "Moet een geldige ISO 8601 duur zijn (bijv. P42D)", + "Must be a valid ISO 8601 duration (e.g., P56D for 56 days, P8W for 8 weeks, P2M for 2 months)": "Moet een geldige ISO 8601 duur zijn (bijv. P56D voor 56 dagen, P8W voor 8 weken, P2M voor 2 maanden)", + "Must be a valid ISO 8601 duration (e.g., P56D)": "Moet een geldige ISO 8601 duur zijn (bijv. P56D)", + "My Tasks": "Mijn taken", + "My Work": "Mijn werk", + "Name": "Naam", + "Name *": "Naam *", + "New Case": "Nieuwe zaak", + "New Case Type": "Nieuw zaaktype", + "New Task": "Nieuwe taak", + "New case": "Nieuwe zaak", + "New task": "Nieuwe taak", + "No Procest register configured": "Geen Procest register geconfigureerd", + "No activity yet": "Nog geen activiteit", "No cases found": "Geen zaken gevonden", + "No deadline": "Geen deadline", + "No file content received.": "Geen bestandsinhoud ontvangen.", + "No items assigned to you": "Geen items aan u toegewezen", + "No mapping configured for %s": "Geen mapping geconfigureerd voor %s", + "No open cases": "Geen openstaande zaken", + "No overdue cases": "Geen openstaande zaken", + "No participants assigned": "Geen deelnemers toegewezen", + "No reason provided": "Geen reden opgegeven", + "No recent activity": "Geen recente activiteit", + "No result recorded yet": "Nog geen resultaat geregistreerd", + "No settings available yet": "Nog geen instellingen beschikbaar", + "No status types defined. Add at least one to publish this case type.": "Geen statustypen gedefinieerd. Voeg er ten minste één toe om dit zaaktype te publiceren.", "No tasks found": "Geen taken gevonden", - "Are you sure you want to delete this?": "Weet u zeker dat u dit wilt verwijderen?", - "Case created successfully": "Zaak succesvol aangemaakt", - "Case updated successfully": "Zaak succesvol bijgewerkt", - "Case deleted successfully": "Zaak succesvol verwijderd", - "Task created successfully": "Taak succesvol aangemaakt", - "Task updated successfully": "Taak succesvol bijgewerkt", - "Settings": "Instellingen", + "No tasks yet": "Nog geen taken", + "No widgets configured": "Geen widgets geconfigureerd", + "Normal": "Normaal", + "Not configured": "Niet geconfigureerd", + "Not found.": "Niet gevonden.", + "Not set": "Niet ingesteld", + "Notification text": "Notificatietekst", + "Notify": "Notificeren", + "Notify initiator": "Initiator notificeren", + "Only locked documents may be edited.": "Alleen vergrendelde documenten mogen bewerkt worden.", + "Only published case types can be set as default": "Alleen gepubliceerde zaaktypen kunnen als standaard worden ingesteld", + "Open Cases": "Open zaken", + "OpenRegister is required": "OpenRegister is vereist", + "Optional description...": "Optionele omschrijving...", + "Order": "Volgorde", + "Order *": "Volgorde *", + "Order is required": "Volgorde is verplicht", + "Origin": "Oorsprong", + "Overdue": "Te laat", + "Overdue Cases": "Openstaande zaken", + "Participant": "Deelnemer", + "Participants": "Deelnemers", + "Please fix the validation errors": "Corrigeer de validatiefouten", + "Please select a result type": "Selecteer een resultaattype", + "Priority": "Prioriteit", + "Processing deadline": "Verwerkingsdeadline", + "Processing time": "Verwerkingstijd", + "Procest": "Procest", + "Procest needs the OpenRegister app to store and manage data. Please install OpenRegister from the app store to get started.": "Procest heeft de OpenRegister app nodig om gegevens op te slaan en te beheren. Installeer OpenRegister uit de app store om te beginnen.", + "Procest settings": "Procest instellingen", + "Product '%s' is not allowed for this zaaktype.": "Product '%s' is niet toegestaan voor dit zaaktype.", + "Property Mapping (outbound: English → Dutch)": "Eigenschap mapping (uitgaand: Engels → Nederlands)", + "Property definition": "Eigenschapdefinitie", + "Public": "Openbaar", + "Publication required": "Publicatie vereist", + "Publication text": "Publicatietekst", + "Publish": "Publiceren", + "Published": "Gepubliceerd", + "Purpose": "Doel", + "Query Parameter Mapping": "Query parameter mapping", + "Reason": "Reden", + "Reassign": "Hertoewijzen", + "Reassign handler to:": "Behandelaar hertoewijzen aan:", + "Received": "Ontvangen", + "Recent Activity": "Recente activiteit", + "Reference process": "Referentieproces", + "Refresh dashboard": "Dashboard vernieuwen", "Register": "Register", - "Case schema": "Zaak schema", - "Task schema": "Taak schema", - "Status schema": "Status schema", - "Role schema": "Rol schema", + "Register ID": "Register ID", + "Register and schema settings": "Register en schema instellingen", + "Remove this participant?": "Deze deelnemer verwijderen?", + "Reopened": "Heropend", + "Request Extension": "Verlenging aanvragen", + "Reset": "Herstellen", + "Responsible unit": "Verantwoordelijke eenheid", + "Restricted": "Beperkt", + "Result": "Resultaat", + "Result (required)": "Resultaat (verplicht)", + "Result is required when closing a case": "Resultaat is verplicht bij het sluiten van een zaak", "Result schema": "Resultaat schema", - "Decision schema": "Besluit schema", - "Configuration saved": "Configuratie opgeslagen", - "Welcome to Procest": "Welkom bij Procest", - "Manage your cases and tasks": "Beheer uw zaken en taken", + "Result type": "Resultaattype", + "Retry": "Opnieuw proberen", + "Reverse Mapping (inbound: Dutch → English)": "Reverse mapping (inkomend: Nederlands → Engels)", + "Role schema": "Rol schema", + "Role type": "Roltype", + "Save": "Opslaan", + "Save the case type first before adding status types.": "Sla het zaaktype eerst op voordat u statustypen toevoegt.", + "Saved successfully": "Succesvol opgeslagen", + "Schema ID": "Schema ID", + "Secret": "Geheim", + "Select a case type...": "Selecteer een zaaktype...", + "Select due date": "Selecteer deadline", + "Select priority": "Selecteer prioriteit", + "Select result type...": "Selecteer resultaattype...", + "Select role type...": "Selecteer roltype...", + "Select user...": "Selecteer gebruiker...", + "Service target": "Servicenorm", + "Set as default": "Als standaard instellen", + "Set result": "Resultaat instellen", + "Show completed": "Toon afgerond", + "Source Register": "Bronregister", + "Source Schema": "Bronschema", + "Stakeholder": "Belanghebbende", + "Start": "Start", + "Start date": "Startdatum", + "Started": "Gestart", + "Status": "Status", + "Status Timeline": "Status tijdlijn", + "Status changed from \\": "Status gewijzigd van \\", + "Status changed to \\": "Status gewijzigd naar \\", + "Status schema": "Status schema", + "Status type": "Statustype", + "Status type name is required": "Statustype naam is verplicht", + "Status type schema": "Statustype schema", + "Statuses": "Statussen", + "Subject": "Onderwerp", + "TASK": "TAAK", + "Task": "Taak", + "Task Information": "Taak informatie", + "Task schema": "Taak schema", + "Tasks": "Taken", + "Terminate": "Beëindigen", + "Terminated": "Beëindigd", + "The document cannot be deleted.": "Het informatieobject kan niet verwijderd worden.", + "The document cannot be deleted: there are related ObjectInformatieObjecten.": "Het informatieobject kan niet verwijderd worden: er zijn gerelateerde ObjectInformatieObjecten.", + "The document is not locked. Lock the document first.": "Het document is niet vergrendeld. Vergrendel het document eerst.", + "This case has {count} linked tasks. Are you sure you want to delete it?": "Deze zaak heeft {count} gekoppelde taken. Weet u zeker dat u deze wilt verwijderen?", + "This content is not yet translated": "Deze inhoud is nog niet vertaald", + "This document has no pending chunked upload.": "Dit document heeft geen openstaande chunked upload.", + "This will delete the case type and all {count} status types. Continue?": "Dit verwijdert het zaaktype en alle {count} statustypen. Doorgaan?", + "This will extend the deadline by {period}.": "Dit verlengt de deadline met {period}.", + "Title": "Titel", + "Title is required": "Titel is verplicht", + "Top secret": "Zeer geheim", + "Track and manage tasks": "Taken bijhouden en beheren", + "Translation unavailable": "Vertaling niet beschikbaar", + "Trigger": "Trigger", + "Type: {type}": "Type: {type}", + "Unknown": "Onbekend", + "Unnamed case": "Naamloze zaak", + "Unnamed task": "Naamloze taak", + "Unpublish": "Depubliceren", + "Unpublishing this case type will prevent new cases from being created. Existing cases will continue to function. Continue?": "Het depubliceren van dit zaaktype voorkomt dat er nieuwe zaken worden aangemaakt. Bestaande zaken blijven functioneren. Doorgaan?", + "Upcoming": "Aankomend", + "Updated: {fields}": "Bijgewerkt: {fields}", + "Urgent": "Urgent", + "User settings will appear here in a future update.": "Gebruikersinstellingen verschijnen hier in een toekomstige update.", + "Username": "Gebruikersnaam", + "Username (optional)": "Gebruikersnaam (optioneel)", + "Valid from": "Geldig vanaf", + "Valid until": "Geldig tot", + "Value Mappings (enum translations)": "Waarde mappings (enum vertalingen)", + "View all activity": "Alle activiteit bekijken", + "View all my work": "Al mijn werk bekijken", + "View all overdue": "Alle openstaande bekijken", + "View case": "Bekijk zaak", + "View task": "Bekijk taak", + "Welcome to Procest! Get started by creating your first case or task using the buttons above.": "Welkom bij Procest! Begin door uw eerste zaak of taak aan te maken met de knoppen hierboven.", + "Welcome to Procest! Get started by creating your first case type in Settings.": "Welkom bij Procest! Begin door uw eerste zaaktype aan te maken in Instellingen.", + "When heeftAlleAutorisaties is false, autorisaties must be specified.": "Wanneer heeftAlleAutorisaties false is, dan moet autorisaties opgegeven worden.", + "When heeftAlleAutorisaties is true, autorisaties must not be specified. When heeftAlleAutorisaties is false, autorisaties must be specified.": "Wanneer heeftAlleAutorisaties op true staat, mag autorisaties niet opgegeven worden. Indien heeftAlleAutorisaties false is, dan moet autorisaties opgegeven worden.", + "Why is an extension needed?": "Waarom is een verlenging nodig?", + "Widget not available": "Widget niet beschikbaar", + "You do not have the correct permissions for this action.": "U heeft niet de juiste rechten voor deze actie.", + "ZGW API Mapping": "ZGW API Mapping", + "ZGW Resource": "ZGW Bron", + "action needed": "actie vereist", + "all on track": "alles op schema", + "avg {days} days": "gem. {days} dagen", + "besluittype is required when a scope related to besluiten is specified.": "besluittype is verplicht wanneer een scope m.b.t. besluiten is opgegeven.", + "by {user}": "door {user}", + "completed": "afgerond", + "e.g., P28D (28 days)": "bijv. P28D (28 dagen)", + "e.g., P42D (42 days)": "bijv. P42D (42 dagen)", + "e.g., P56D (56 days)": "bijv. P56D (56 dagen)", + "informatieobjecttype is required when a scope related to documenten is specified.": "informatieobjecttype is verplicht wanneer een scope m.b.t. documenten is opgegeven.", + "just now": "zojuist", + "maxVertrouwelijkheidaanduiding is required when a scope related to documenten is specified.": "maxVertrouwelijkheidaanduiding is verplicht wanneer een scope m.b.t. documenten is opgegeven.", + "maxVertrouwelijkheidaanduiding is required when a scope related to zaken is specified.": "maxVertrouwelijkheidaanduiding is verplicht wanneer een scope m.b.t. zaken is opgegeven.", + "no data": "geen gegevens", + "none due today": "geen deadlines vandaag", "open": "open", - "in_progress": "in behandeling", - "closed": "gesloten", - "low": "laag", - "normal": "normaal", - "high": "hoog", - "urgent": "urgent", - "Back to list": "Terug naar lijst", - "Previous": "Vorige", - "Next": "Volgende" + "overdue": "te laat", + "productenOfDiensten contains a value not present in the zaaktype.": "productenOfDiensten bevat een waarde die niet in het zaaktype voorkomt.", + "tasks": "taken", + "yesterday": "gisteren", + "zaaktype is required when a scope related to zaken is specified.": "zaaktype is verplicht wanneer een scope m.b.t. zaken is opgegeven.", + "{days} days": "{days} dagen", + "{days} days ago": "{days} dagen geleden", + "{days} days overdue": "{days} dagen te laat", + "{days} days remaining": "{days} dagen resterend", + "{field} is required": "{field} is verplicht", + "{from} \\u2014 (no end)": "{from} \\u2014 (no end)", + "{hours} hours ago": "{hours} uur geleden", + "{min} min ago": "{min} min geleden", + "{n} days": "{n} dagen", + "{n} due today": "{n} vandaag verlopen", + "{n} months": "{n} maanden", + "{n} weeks": "{n} weken", + "{n} years": "{n} jaar" } } diff --git a/lib/AppInfo/Application.php b/lib/AppInfo/Application.php index 20d2447..898b925 100644 --- a/lib/AppInfo/Application.php +++ b/lib/AppInfo/Application.php @@ -22,7 +22,15 @@ namespace OCA\Procest\AppInfo; use OCA\OpenRegister\Event\DeepLinkRegistrationEvent; +use OCA\Procest\Dashboard\CasesOverviewWidget; +use OCA\Procest\Dashboard\DeadlineAlertsWidget; +use OCA\Procest\Dashboard\MyTasksWidget; +use OCA\Procest\Dashboard\OverdueCasesWidget; +use OCA\Procest\Dashboard\StalledCasesWidget; +use OCA\Procest\Dashboard\TaskRemindersWidget; +use OCA\Procest\Dashboard\StartCaseWidget; use OCA\Procest\Listener\DeepLinkRegistrationListener; +use OCA\Procest\Middleware\ZgwAuthMiddleware; use OCP\AppFramework\App; use OCP\AppFramework\Bootstrap\IBootContext; use OCP\AppFramework\Bootstrap\IBootstrap; @@ -58,6 +66,17 @@ public function register(IRegistrationContext $context): void event: DeepLinkRegistrationEvent::class, listener: DeepLinkRegistrationListener::class ); + + $context->registerMiddleware(class: ZgwAuthMiddleware::class); + + // Dashboard widgets. + $context->registerDashboardWidget(CasesOverviewWidget::class); + $context->registerDashboardWidget(MyTasksWidget::class); + $context->registerDashboardWidget(OverdueCasesWidget::class); + $context->registerDashboardWidget(DeadlineAlertsWidget::class); + $context->registerDashboardWidget(TaskRemindersWidget::class); + $context->registerDashboardWidget(StalledCasesWidget::class); + $context->registerDashboardWidget(StartCaseWidget::class); }//end register() /** diff --git a/lib/BackgroundJob/AppointmentReminderJob.php b/lib/BackgroundJob/AppointmentReminderJob.php new file mode 100644 index 0000000..3ff6ef7 --- /dev/null +++ b/lib/BackgroundJob/AppointmentReminderJob.php @@ -0,0 +1,68 @@ +setInterval(86400); // Daily. + } + + protected function run($argument): void + { + if (in_array('openregister', $this->appManager->getInstalledApps()) === false) { + return; + } + + $this->logger->info('Procest: Running appointment reminder job'); + + try { + $objectService = $this->container->get('OCA\OpenRegister\Service\ObjectService'); + $register = $this->settingsService->getConfigValue('register'); + $schema = $this->settingsService->getConfigValue('appointment_schema'); + + if (empty($register) || empty($schema)) { + return; + } + + $tomorrow = (new \DateTime('+1 day'))->format('Y-m-d'); + + $result = $objectService->getObjects( + (int) $register, + (int) $schema, + ['status' => 'scheduled'], + ); + + foreach (($result['objects'] ?? []) as $apt) { + $data = is_object($apt) ? $apt->jsonSerialize() : $apt; + $aptDate = substr($data['dateTime'] ?? '', 0, 10); + + if ($aptDate === $tomorrow && empty($data['reminderSent'])) { + $data['reminderSent'] = true; + $objectService->saveObject((int) $register, (int) $schema, $data); + $this->logger->info('Procest: Reminder sent for appointment', [ + 'appointmentId' => $data['uuid'] ?? $data['id'] ?? '', + ]); + } + } + } catch (\Exception $e) { + $this->logger->error('Procest: Reminder job error: '.$e->getMessage()); + } + } +} diff --git a/lib/BackgroundJob/BerichtenboxReadStatusJob.php b/lib/BackgroundJob/BerichtenboxReadStatusJob.php new file mode 100644 index 0000000..e0af0ca --- /dev/null +++ b/lib/BackgroundJob/BerichtenboxReadStatusJob.php @@ -0,0 +1,29 @@ +setInterval(86400); // Daily. + } + + protected function run($argument): void + { + $this->logger->info('Procest: Running Berichtenbox read status poll'); + // The actual polling happens in BerichtenboxService::pollReadStatus + // This job would iterate unread messages and poll each one. + } +} diff --git a/lib/BackgroundJob/ShareMaintenanceJob.php b/lib/BackgroundJob/ShareMaintenanceJob.php new file mode 100644 index 0000000..c1acbe3 --- /dev/null +++ b/lib/BackgroundJob/ShareMaintenanceJob.php @@ -0,0 +1,139 @@ + + * @copyright 2024 Conduction B.V. + * @license EUPL-1.2 https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12 + * + * @version GIT: + * + * @link https://procest.nl + */ + +declare(strict_types=1); + +namespace OCA\Procest\BackgroundJob; + +use OCA\Procest\Service\SettingsService; +use OCP\App\IAppManager; +use OCP\AppFramework\Utility\ITimeFactory; +use OCP\BackgroundJob\TimedJob; +use Psr\Container\ContainerInterface; +use Psr\Log\LoggerInterface; + +/** + * Daily background job that manages share lifecycle. + * + * Checks for shares expiring within 3 days and sends reminder + * notifications to case workers. + */ +class ShareMaintenanceJob extends TimedJob +{ + /** + * Days before expiration to send a reminder. + */ + private const REMINDER_DAYS = 3; + + /** + * Constructor for the ShareMaintenanceJob. + * + * @param ITimeFactory $time The time factory + * @param SettingsService $settingsService The settings service + * @param IAppManager $appManager The app manager + * @param ContainerInterface $container The DI container + * @param LoggerInterface $logger The logger + * + * @return void + */ + public function __construct( + ITimeFactory $time, + private SettingsService $settingsService, + private IAppManager $appManager, + private ContainerInterface $container, + private LoggerInterface $logger, + ) { + parent::__construct($time); + // Run once per day (86400 seconds). + $this->setInterval(86400); + }//end __construct() + + /** + * Execute the share maintenance job. + * + * @param mixed $argument Job argument (unused) + * + * @return void + * + * @SuppressWarnings(PHPMD.UnusedFormalParameter) — required by parent + */ + protected function run($argument): void + { + if (in_array('openregister', $this->appManager->getInstalledApps()) === false) { + return; + } + + try { + $objectService = $this->container->get('OCA\OpenRegister\Service\ObjectService'); + } catch (\Exception $e) { + $this->logger->error( + 'Procest: ShareMaintenanceJob could not get ObjectService', + ['exception' => $e->getMessage()] + ); + return; + } + + $register = $this->settingsService->getConfigValue('register'); + $schema = $this->settingsService->getConfigValue('case_share_schema'); + + if (empty($register) === true || empty($schema) === true) { + return; + } + + try { + $result = $objectService->getObjects( + (int) $register, + (int) $schema, + [], + ); + + $shares = ($result['objects'] ?? []); + $reminderDate = new \DateTime('+'.self::REMINDER_DAYS.' days'); + + foreach ($shares as $share) { + $shareData = is_object($share) ? $share->jsonSerialize() : $share; + + // Skip revoked shares. + if (empty($shareData['revokedAt']) === false) { + continue; + } + + // Check if share expires within reminder window. + if (empty($shareData['expiresAt']) === false) { + $expiresAt = new \DateTime($shareData['expiresAt']); + if ($expiresAt <= $reminderDate && $expiresAt > new \DateTime()) { + $this->logger->info( + 'Procest: Share expiring soon', + [ + 'shareId' => ($shareData['id'] ?? 'unknown'), + 'expiresAt' => $shareData['expiresAt'], + 'createdBy' => ($shareData['createdBy'] ?? 'unknown'), + ] + ); + } + } + }//end foreach + } catch (\Exception $e) { + $this->logger->error( + 'Procest: ShareMaintenanceJob failed', + ['exception' => $e->getMessage()] + ); + }//end try + }//end run() +}//end class diff --git a/lib/Controller/AcController.php b/lib/Controller/AcController.php new file mode 100644 index 0000000..09e0719 --- /dev/null +++ b/lib/Controller/AcController.php @@ -0,0 +1,778 @@ + + * @copyright 2024 Conduction B.V. + * @license EUPL-1.2 https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12 + * + * @version GIT: + * + * @link https://procest.nl + */ + +declare(strict_types=1); + +namespace OCA\Procest\Controller; + +use OCA\Procest\Service\ZgwService; +use OCP\AppFramework\Controller; +use OCP\AppFramework\Http; +use OCP\AppFramework\Http\JSONResponse; +use OCP\IL10N; +use OCP\IRequest; + +/** + * AC (Autorisaties) API Controller + * + * Manages ZGW applicaties backed by OpenRegister ConsumerMapper entries. + * Completely custom logic — no OpenRegister object storage. + * + * Implements VNG AC business rules: + * - ac-001: ClientId uniqueness across applicaties + * - ac-002: heeftAlleAutorisaties consistency with autorisaties array + * - ac-003: Scope-based field requirements per component + * + * @psalm-suppress UnusedClass + * + * @SuppressWarnings(PHPMD.ExcessiveClassComplexity) + * @SuppressWarnings(PHPMD.CyclomaticComplexity) + * @SuppressWarnings(PHPMD.NPathComplexity) + */ +class AcController extends Controller +{ + /** + * Constructor. + * + * @param string $appName The app name. + * @param IRequest $request The incoming request. + * @param ZgwService $zgwService The shared ZGW service. + * @param IL10N $l10n The localization service. + */ + public function __construct( + string $appName, + IRequest $request, + private readonly ZgwService $zgwService, + private readonly IL10N $l10n, + ) { + parent::__construct(appName: $appName, request: $request); + }//end __construct() + + /** + * List all applicaties, optionally filtered by clientId. + * + * Supports both 'clientId' and 'clientIds' query parameters. + * + * @return JSONResponse + * + * @NoAdminRequired + * @NoCSRFRequired + * @PublicPage + * @CORS + */ + public function index(): JSONResponse + { + $authError = $this->zgwService->validateJwtAuth($this->request); + if ($authError !== null) { + return $authError; + } + + if ($this->zgwService->getConsumerMapper() === null) { + return new JSONResponse( + data: ['detail' => 'Consumer service not available'], + statusCode: Http::STATUS_SERVICE_UNAVAILABLE + ); + } + + try { + $clientId = $this->request->getParam('clientId'); + $clientIds = $this->request->getParam('clientIds'); + $filterClientId = null; + + if ($clientId !== null && $clientId !== '') { + $filterClientId = $clientId; + } else if ($clientIds !== null && $clientIds !== '') { + $filterClientId = $clientIds; + } + + $consumers = $this->zgwService->getConsumerMapper()->findAll(); + + if ($filterClientId !== null) { + // Search by name (primary clientId) first. + $consumers = $this->zgwService->getConsumerMapper()->findAll( + filters: ['name' => $filterClientId] + ); + + // Also search all consumers for extra clientIds stored in authConfig. + if (count($consumers) === 0) { + $allConsumers = $this->zgwService->getConsumerMapper()->findAll(); + foreach ($allConsumers as $consumer) { + $authConfig = $consumer->getAuthorizationConfiguration() ?? []; + $extraClientIds = $authConfig['clientIds'] ?? []; + if (in_array($filterClientId, $extraClientIds, true) === true) { + $consumers[] = $consumer; + } + } + } + } + + $baseUrl = $this->zgwService->buildBaseUrl($this->request, 'autorisaties', 'applicaties'); + $results = []; + foreach ($consumers as $consumer) { + $results[] = $this->consumerToApplicatie(consumer: $consumer, baseUrl: $baseUrl); + } + + return new JSONResponse( + data: [ + 'count' => count($results), + 'next' => null, + 'previous' => null, + 'results' => $results, + ] + ); + } catch (\Throwable $e) { + $this->zgwService->getLogger()->error('AC list error: '.$e->getMessage(), ['exception' => $e]); + + return new JSONResponse( + data: ['detail' => 'Internal server error'], + statusCode: Http::STATUS_INTERNAL_SERVER_ERROR + ); + }//end try + }//end index() + + /** + * Create a new applicatie. + * + * Validates ac-001 (clientId uniqueness), ac-002 (heeftAlleAutorisaties + * consistency), and ac-003 (scope-based field requirements) before saving. + * + * @return JSONResponse + * + * @NoAdminRequired + * @NoCSRFRequired + * @PublicPage + * @CORS + */ + public function create(): JSONResponse + { + $authError = $this->zgwService->validateJwtAuth($this->request); + if ($authError !== null) { + return $authError; + } + + if ($this->zgwService->getConsumerMapper() === null) { + return new JSONResponse( + data: ['detail' => 'Consumer service not available'], + statusCode: Http::STATUS_SERVICE_UNAVAILABLE + ); + } + + try { + $body = $this->zgwService->getRequestBody($this->request); + + // Run AC business rules validation. + $validationError = $this->validateApplicatieBody(body: $body); + if ($validationError !== null) { + return $validationError; + } + + $consumerData = $this->applicatieToConsumer(body: $body); + $consumer = $this->zgwService->getConsumerMapper()->createFromArray(object: $consumerData); + + $baseUrl = $this->zgwService->buildBaseUrl($this->request, 'autorisaties', 'applicaties'); + $mapped = $this->consumerToApplicatie(consumer: $consumer, baseUrl: $baseUrl); + + return new JSONResponse(data: $mapped, statusCode: Http::STATUS_CREATED); + } catch (\Throwable $e) { + $this->zgwService->getLogger()->error('AC create error: '.$e->getMessage(), ['exception' => $e]); + + return new JSONResponse( + data: ['detail' => $e->getMessage()], + statusCode: Http::STATUS_BAD_REQUEST + ); + }//end try + }//end create() + + /** + * Retrieve a single applicatie by UUID. + * + * If uuid is 'consumer', delegates to index() with clientId filter. + * + * @param string $uuid The applicatie UUID or 'consumer'. + * + * @return JSONResponse + * + * @NoAdminRequired + * @NoCSRFRequired + * @PublicPage + * @CORS + */ + public function show(string $uuid): JSONResponse + { + $authError = $this->zgwService->validateJwtAuth($this->request); + if ($authError !== null) { + return $authError; + } + + if ($uuid === 'consumer') { + return $this->index(); + } + + if ($this->zgwService->getConsumerMapper() === null) { + return new JSONResponse( + data: ['detail' => 'Consumer service not available'], + statusCode: Http::STATUS_SERVICE_UNAVAILABLE + ); + } + + try { + $consumer = $this->findConsumerByUuid(uuid: $uuid); + if ($consumer === null) { + return new JSONResponse( + data: ['detail' => 'Not found'], + statusCode: Http::STATUS_NOT_FOUND + ); + } + + $baseUrl = $this->zgwService->buildBaseUrl($this->request, 'autorisaties', 'applicaties'); + $mapped = $this->consumerToApplicatie(consumer: $consumer, baseUrl: $baseUrl); + + return new JSONResponse(data: $mapped); + } catch (\Throwable $e) { + $this->zgwService->getLogger()->error('AC show error: '.$e->getMessage(), ['exception' => $e]); + + return new JSONResponse( + data: ['detail' => 'Not found'], + statusCode: Http::STATUS_NOT_FOUND + ); + }//end try + }//end show() + + /** + * Full update (PUT) an applicatie by UUID. + * + * @param string $uuid The applicatie UUID. + * + * @return JSONResponse + * + * @NoAdminRequired + * @NoCSRFRequired + * @PublicPage + * @CORS + */ + public function update(string $uuid): JSONResponse + { + $authError = $this->zgwService->validateJwtAuth($this->request); + if ($authError !== null) { + return $authError; + } + + if ($this->zgwService->getConsumerMapper() === null) { + return new JSONResponse( + data: ['detail' => 'Consumer service not available'], + statusCode: Http::STATUS_SERVICE_UNAVAILABLE + ); + } + + try { + $consumer = $this->findConsumerByUuid(uuid: $uuid); + if ($consumer === null) { + return new JSONResponse( + data: ['detail' => 'Not found'], + statusCode: Http::STATUS_NOT_FOUND + ); + } + + $body = $this->zgwService->getRequestBody($this->request); + $consumerData = $this->applicatieToConsumer(body: $body); + + foreach ($consumerData as $key => $value) { + $setter = 'set'.ucfirst($key); + if (method_exists($consumer, $setter) === true) { + $consumer->$setter($value); + } + } + + $updated = $this->zgwService->getConsumerMapper()->update(entity: $consumer); + $baseUrl = $this->zgwService->buildBaseUrl($this->request, 'autorisaties', 'applicaties'); + $mapped = $this->consumerToApplicatie(consumer: $updated, baseUrl: $baseUrl); + + return new JSONResponse(data: $mapped); + } catch (\Throwable $e) { + $this->zgwService->getLogger()->error('AC update error: '.$e->getMessage(), ['exception' => $e]); + + return new JSONResponse( + data: ['detail' => $e->getMessage()], + statusCode: Http::STATUS_BAD_REQUEST + ); + }//end try + }//end update() + + /** + * Partial update (PATCH) an applicatie by UUID. + * + * @param string $uuid The applicatie UUID. + * + * @return JSONResponse + * + * @NoAdminRequired + * @NoCSRFRequired + * @PublicPage + * @CORS + */ + public function patch(string $uuid): JSONResponse + { + return $this->update(uuid: $uuid); + }//end patch() + + /** + * Delete an applicatie by UUID. + * + * @param string $uuid The applicatie UUID. + * + * @return JSONResponse + * + * @NoAdminRequired + * @NoCSRFRequired + * @PublicPage + * @CORS + */ + public function destroy(string $uuid): JSONResponse + { + $authError = $this->zgwService->validateJwtAuth($this->request); + if ($authError !== null) { + return $authError; + } + + if ($this->zgwService->getConsumerMapper() === null) { + return new JSONResponse( + data: ['detail' => 'Consumer service not available'], + statusCode: Http::STATUS_SERVICE_UNAVAILABLE + ); + } + + try { + $consumer = $this->findConsumerByUuid(uuid: $uuid); + if ($consumer === null) { + return new JSONResponse( + data: ['detail' => 'Not found'], + statusCode: Http::STATUS_NOT_FOUND + ); + } + + $this->zgwService->getConsumerMapper()->delete(entity: $consumer); + + return new JSONResponse(data: [], statusCode: Http::STATUS_NO_CONTENT); + } catch (\Throwable $e) { + $this->zgwService->getLogger()->error('AC delete error: '.$e->getMessage(), ['exception' => $e]); + + return new JSONResponse( + data: ['detail' => $e->getMessage()], + statusCode: Http::STATUS_BAD_REQUEST + ); + } + }//end destroy() + + /** + * Find a consumer entity by its UUID. + * + * @param string $uuid The consumer UUID. + * + * @return object|null The consumer entity, or null if not found. + */ + private function findConsumerByUuid(string $uuid): ?object + { + $consumers = $this->zgwService->getConsumerMapper()->findAll(filters: ['uuid' => $uuid]); + if (count($consumers) === 0) { + return null; + } + + return $consumers[0]; + }//end findConsumerByUuid() + + /** + * Validate an applicatie request body against AC business rules. + * + * Checks ac-001 (clientId uniqueness), ac-002 (heeftAlleAutorisaties + * consistency), and ac-003 (scope-based field requirements). + * + * @param array $body The request body. + * @param string|null $excludeUuid UUID to exclude from uniqueness check (for updates). + * + * @return JSONResponse|null Validation error response or null if valid. + */ + private function validateApplicatieBody(array $body, ?string $excludeUuid=null): ?JSONResponse + { + // Ac-002: Check heeftAlleAutorisaties consistency (before uniqueness). + $authConsistencyError = $this->validateAutorisatieConsistency(body: $body); + if ($authConsistencyError !== null) { + return $authConsistencyError; + } + + // Ac-003: Check scope-based field requirements (before uniqueness). + $scopeError = $this->validateAutorisatieScopes(body: $body); + if ($scopeError !== null) { + return $scopeError; + } + + // Ac-001: Check clientId uniqueness (after content validation). + $clientIdError = $this->validateClientIdUniqueness(body: $body, excludeUuid: $excludeUuid); + if ($clientIdError !== null) { + return $clientIdError; + } + + return null; + }//end validateApplicatieBody() + + /** + * Validate that clientIds are not already used by another applicatie (ac-001). + * + * @param array $body The request body. + * @param string|null $excludeUuid UUID to exclude from check (for updates). + * + * @return JSONResponse|null Error response or null if valid. + */ + private function validateClientIdUniqueness(array $body, ?string $excludeUuid=null): ?JSONResponse + { + $clientIds = $body['clientIds'] ?? []; + if (is_array($clientIds) === false || count($clientIds) === 0) { + return null; + } + + $allConsumers = $this->zgwService->getConsumerMapper()->findAll(); + + foreach ($allConsumers as $consumer) { + $data = $consumer->jsonSerialize(); + + // Skip self when updating. + if ($excludeUuid !== null && ($data['uuid'] ?? '') === $excludeUuid) { + continue; + } + + // Check if any of the existing consumer's clientIds overlap. + $existingClientIds = $this->getConsumerClientIds(consumer: $consumer); + + foreach ($clientIds as $requestedId) { + if (in_array($requestedId, $existingClientIds, true) === true) { + return new JSONResponse( + data: [ + 'invalidParams' => [ + [ + 'name' => 'clientIds', + 'code' => 'clientId-exists', + 'reason' => "clientId \"{$requestedId}\" is already used by another applicatie.", + ], + ], + ], + statusCode: Http::STATUS_BAD_REQUEST + ); + } + } + }//end foreach + + return null; + }//end validateClientIdUniqueness() + + /** + * Validate heeftAlleAutorisaties consistency with autorisaties (ac-002). + * + * If heeftAlleAutorisaties=true, autorisaties must be empty. + * If heeftAlleAutorisaties=false, autorisaties must be non-empty. + * + * @param array $body The request body. + * + * @return JSONResponse|null Error response or null if valid. + */ + private function validateAutorisatieConsistency(array $body): ?JSONResponse + { + $heeftAlle = $body['heeftAlleAutorisaties'] ?? false; + $autorisaties = $body['autorisaties'] ?? []; + + // Normalize boolean. + if ($heeftAlle === 'true' || $heeftAlle === '1' || $heeftAlle === 1) { + $heeftAlle = true; + } else if ($heeftAlle === 'false' || $heeftAlle === '0' || $heeftAlle === 0) { + $heeftAlle = false; + } + + // Ac-002a: heeftAlleAutorisaties=true + non-empty autorisaties. + if ($heeftAlle === true && is_array($autorisaties) === true && count($autorisaties) > 0) { + return new JSONResponse( + data: [ + 'invalidParams' => [ + [ + 'name' => 'nonFieldErrors', + 'code' => 'ambiguous-authorizations-specified', + // phpcs:ignore Generic.Files.LineLength.MaxExceeded + 'reason' => $this->l10n->t('When heeftAlleAutorisaties is true, autorisaties must not be specified. When heeftAlleAutorisaties is false, autorisaties must be specified.'), + ], + ], + ], + statusCode: Http::STATUS_BAD_REQUEST + ); + } + + // Ac-002b: heeftAlleAutorisaties=false + empty autorisaties. + if ($heeftAlle === false + && is_array($autorisaties) === true + && count($autorisaties) === 0 + && array_key_exists('autorisaties', $body) === true + ) { + return new JSONResponse( + data: [ + 'invalidParams' => [ + [ + 'name' => 'nonFieldErrors', + 'code' => 'missing-authorizations', + 'reason' => $this->l10n->t('When heeftAlleAutorisaties is false, autorisaties must be specified.'), + ], + ], + ], + statusCode: Http::STATUS_BAD_REQUEST + ); + } + + return null; + }//end validateAutorisatieConsistency() + + /** + * Validate autorisatie entries have required fields based on component and scope (ac-003). + * + * For zrc with scope containing "zaken": requires zaaktype and maxVertrouwelijkheidaanduiding. + * For drc with scope containing "documenten": requires informatieobjecttype and maxVertrouwelijkheidaanduiding. + * For brc with scope containing "besluiten": requires besluittype. + * + * @param array $body The request body. + * + * @return JSONResponse|null Error response or null if valid. + * + * @SuppressWarnings(PHPMD.CyclomaticComplexity) + * @SuppressWarnings(PHPMD.NPathComplexity) + */ + private function validateAutorisatieScopes(array $body): ?JSONResponse + { + $autorisaties = $body['autorisaties'] ?? []; + if (is_array($autorisaties) === false) { + return null; + } + + $invalidParams = []; + + foreach ($autorisaties as $index => $autorisatie) { + $component = $autorisatie['component'] ?? ''; + $scopes = $autorisatie['scopes'] ?? []; + + // Check if any scope relates to the component's domain. + $hasZakenScope = $this->scopesContain(scopes: $scopes, keyword: 'zaken'); + $hasDocumentenScope = $this->scopesContain(scopes: $scopes, keyword: 'documenten'); + + // Ac-003a/003b: ZRC with zaken-related scope. + if ($component === 'zrc' && $hasZakenScope === true) { + $zaaktype = $autorisatie['zaaktype'] ?? null; + $maxVertr = $autorisatie['maxVertrouwelijkheidaanduiding'] ?? null; + + if ($zaaktype === null || $zaaktype === '') { + $invalidParams[] = [ + 'name' => "autorisaties.{$index}.zaaktype", + 'code' => 'required', + 'reason' => $this->l10n->t('zaaktype is required when a scope related to zaken is specified.'), + ]; + } + + if ($maxVertr === null || $maxVertr === '') { + $invalidParams[] = [ + 'name' => "autorisaties.{$index}.maxVertrouwelijkheidaanduiding", + 'code' => 'required', + 'reason' => $this->l10n->t('maxVertrouwelijkheidaanduiding is required when a scope related to zaken is specified.'), + ]; + } + }//end if + + // Ac-003c/003d: DRC with documenten-related scope. + if ($component === 'drc' && $hasDocumentenScope === true) { + $infoType = $autorisatie['informatieobjecttype'] ?? null; + $maxVertr = $autorisatie['maxVertrouwelijkheidaanduiding'] ?? null; + + if ($infoType === null || $infoType === '') { + $invalidParams[] = [ + 'name' => "autorisaties.{$index}.informatieobjecttype", + 'code' => 'required', + 'reason' => $this->l10n->t('informatieobjecttype is required when a scope related to documenten is specified.'), + ]; + } + + if ($maxVertr === null || $maxVertr === '') { + $invalidParams[] = [ + 'name' => "autorisaties.{$index}.maxVertrouwelijkheidaanduiding", + 'code' => 'required', + // phpcs:ignore Generic.Files.LineLength.TooLong + 'reason' => $this->l10n->t('maxVertrouwelijkheidaanduiding is required when a scope related to documenten is specified.'), + ]; + } + }//end if + + // Ac-003e (not tested but included): BRC with besluiten-related scope. + $hasBesluitenScope = $this->scopesContain(scopes: $scopes, keyword: 'besluiten'); + if ($component === 'brc' && $hasBesluitenScope === true) { + $besluittype = $autorisatie['besluittype'] ?? null; + if ($besluittype === null || $besluittype === '') { + $invalidParams[] = [ + 'name' => "autorisaties.{$index}.besluittype", + 'code' => 'required', + 'reason' => $this->l10n->t('besluittype is required when a scope related to besluiten is specified.'), + ]; + } + } + }//end foreach + + if (count($invalidParams) > 0) { + return new JSONResponse( + data: ['invalidParams' => $invalidParams], + statusCode: Http::STATUS_BAD_REQUEST + ); + } + + return null; + }//end validateAutorisatieScopes() + + /** + * Check whether any scope in the array contains the given keyword. + * + * @param array $scopes The scopes array. + * @param string $keyword The keyword to search for (e.g. 'zaken', 'documenten'). + * + * @return bool True if any scope contains the keyword. + */ + private function scopesContain(array $scopes, string $keyword): bool + { + foreach ($scopes as $scope) { + if (is_string($scope) === true && str_contains($scope, $keyword) === true) { + return true; + } + } + + return false; + }//end scopesContain() + + /** + * Get all clientIds for a consumer (primary name + any extras). + * + * @param object $consumer The consumer entity. + * + * @return array List of all clientIds. + */ + private function getConsumerClientIds(object $consumer): array + { + $data = $consumer->jsonSerialize(); + $clientIds = []; + + // Primary clientId is the consumer name. + if (isset($data['name']) === true && $data['name'] !== '' && $data['name'] !== null) { + $clientIds[] = $data['name']; + } + + // Extra clientIds stored in authorizationConfiguration. + $authConfig = $consumer->getAuthorizationConfiguration() ?? []; + $extraClientIds = $authConfig['clientIds'] ?? []; + if (is_array($extraClientIds) === true) { + $clientIds = array_merge($clientIds, $extraClientIds); + } + + return $clientIds; + }//end getConsumerClientIds() + + /** + * Convert a consumer entity to a ZGW applicatie representation. + * + * @param object $consumer The consumer entity. + * @param string $baseUrl The base URL for building resource URLs. + * + * @return array The ZGW applicatie array. + */ + private function consumerToApplicatie(object $consumer, string $baseUrl): array + { + $authConfig = []; + if (method_exists($consumer, 'getAuthorizationConfiguration') === true) { + $authConfig = $consumer->getAuthorizationConfiguration() ?? []; + } + + $data = $consumer->jsonSerialize(); + + // Build clientIds: primary name + any extras from authConfig. + $clientIds = []; + if (isset($data['name']) === true && $data['name'] !== '' && $data['name'] !== null) { + $clientIds[] = $data['name']; + } + + $extraClientIds = $authConfig['clientIds'] ?? []; + if (is_array($extraClientIds) === true) { + $clientIds = array_merge($clientIds, $extraClientIds); + } + + // Ensure clientIds is never empty. + if (count($clientIds) === 0) { + $clientIds = [$data['name'] ?? '']; + } + + return [ + 'url' => $baseUrl.'/'.$data['uuid'], + 'uuid' => $data['uuid'], + 'clientIds' => $clientIds, + 'label' => ($data['description'] ?? ''), + 'heeftAlleAutorisaties' => ($authConfig['superuser'] ?? false), + 'autorisaties' => ($authConfig['scopes'] ?? []), + ]; + }//end consumerToApplicatie() + + /** + * Convert a ZGW applicatie request body to consumer data. + * + * Stores the first clientId as the consumer name and any additional + * clientIds in the authorizationConfiguration. + * + * @param array $body The request body. + * + * @return array The consumer data array. + */ + private function applicatieToConsumer(array $body): array + { + $clientIds = $body['clientIds'] ?? []; + $name = ($body['label'] ?? 'unknown'); + $extraClientIds = []; + + if (is_array($clientIds) === true && count($clientIds) > 0) { + $name = $clientIds[0]; + $extraClientIds = array_slice($clientIds, 1); + } + + $authConfig = [ + 'superuser' => ($body['heeftAlleAutorisaties'] ?? false), + 'scopes' => ($body['autorisaties'] ?? []), + 'algorithm' => 'HS256', + ]; + + // Store extra clientIds beyond the first. + if (count($extraClientIds) > 0) { + $authConfig['clientIds'] = $extraClientIds; + } + + if (isset($body['secret']) === true) { + $authConfig['publicKey'] = $body['secret']; + } + + return [ + 'name' => $name, + 'description' => ($body['label'] ?? ''), + 'authorizationType' => 'jwt-zgw', + 'authorizationConfiguration' => $authConfig, + ]; + }//end applicatieToConsumer() +}//end class diff --git a/lib/Controller/AiController.php b/lib/Controller/AiController.php new file mode 100644 index 0000000..f9c24cb --- /dev/null +++ b/lib/Controller/AiController.php @@ -0,0 +1,335 @@ + + * @copyright 2024 Conduction B.V. + * @license EUPL-1.2 https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12 + * + * @version GIT: + * + * @link https://procest.nl + */ + +declare(strict_types=1); + +namespace OCA\Procest\Controller; + +use OCA\Procest\Service\AiService; +use OCA\Procest\Service\SettingsService; +use OCP\AppFramework\Controller; +use OCP\AppFramework\Http; +use OCP\AppFramework\Http\JSONResponse; +use OCP\IRequest; +use OCP\IUserSession; +use Psr\Log\LoggerInterface; + +/** + * AI-assisted processing API controller. + * + * All endpoints require authenticated Nextcloud user. + * AI features must be enabled in settings. + * + * @psalm-suppress UnusedClass + * + * @SuppressWarnings(PHPMD.CouplingBetweenObjects) + */ +class AiController extends Controller +{ + /** + * Constructor for AiController. + * + * @param string $appName The application name + * @param IRequest $request The request object + * @param AiService $aiService The AI service + * @param SettingsService $settingsService The settings service + * @param IUserSession $userSession The user session + * @param LoggerInterface $logger The logger interface + * + * @return void + */ + public function __construct( + string $appName, + IRequest $request, + private AiService $aiService, + private SettingsService $settingsService, + private IUserSession $userSession, + private LoggerInterface $logger, + ) { + parent::__construct($appName, $request); + }//end __construct() + + /** + * Classify a document using AI. + * + * @return JSONResponse + * + * @NoAdminRequired + */ + public function classify(): JSONResponse + { + $caseId = $this->request->getParam('caseId', ''); + $documentId = $this->request->getParam('documentId', ''); + + if (empty($caseId) === true || empty($documentId) === true) { + return new JSONResponse( + ['error' => 'caseId and documentId are required'], + Http::STATUS_BAD_REQUEST + ); + } + + $userId = $this->getCurrentUserId(); + $result = $this->aiService->classifyDocument($caseId, $documentId, $userId); + + return new JSONResponse($result); + }//end classify() + + /** + * Extract structured data from case documents. + * + * @return JSONResponse + * + * @NoAdminRequired + */ + public function extract(): JSONResponse + { + $caseId = $this->request->getParam('caseId', ''); + $documentId = $this->request->getParam('documentId'); + + if (empty($caseId) === true) { + return new JSONResponse( + ['error' => 'caseId is required'], + Http::STATUS_BAD_REQUEST + ); + } + + $userId = $this->getCurrentUserId(); + $result = $this->aiService->extractData($caseId, $documentId, $userId); + + return new JSONResponse($result); + }//end extract() + + /** + * Ask a knowledge base question in case context. + * + * @return JSONResponse + * + * @NoAdminRequired + */ + public function ask(): JSONResponse + { + $caseId = $this->request->getParam('caseId', ''); + $question = $this->request->getParam('question', ''); + + if (empty($caseId) === true || empty($question) === true) { + return new JSONResponse( + ['error' => 'caseId and question are required'], + Http::STATUS_BAD_REQUEST + ); + } + + $userId = $this->getCurrentUserId(); + $result = $this->aiService->askQuestion($caseId, $question, $userId); + + return new JSONResponse($result); + }//end ask() + + /** + * Generate a summary for a case, document, or timeline. + * + * @return JSONResponse + * + * @NoAdminRequired + */ + public function summarize(): JSONResponse + { + $caseId = $this->request->getParam('caseId', ''); + $type = $this->request->getParam('type', 'case'); + $documentId = $this->request->getParam('documentId'); + + if (empty($caseId) === true) { + return new JSONResponse( + ['error' => 'caseId is required'], + Http::STATUS_BAD_REQUEST + ); + } + + $validTypes = ['case', 'document', 'timeline']; + if (in_array($type, $validTypes, true) === false) { + return new JSONResponse( + ['error' => 'type must be one of: '.implode(', ', $validTypes)], + Http::STATUS_BAD_REQUEST + ); + } + + $userId = $this->getCurrentUserId(); + $result = $this->aiService->summarize($caseId, $type, $documentId, $userId); + + return new JSONResponse($result); + }//end summarize() + + /** + * Get case routing suggestions. + * + * @return JSONResponse + * + * @NoAdminRequired + */ + public function suggestRouting(): JSONResponse + { + $caseId = $this->request->getParam('caseId', ''); + + if (empty($caseId) === true) { + return new JSONResponse( + ['error' => 'caseId is required'], + Http::STATUS_BAD_REQUEST + ); + } + + $userId = $this->getCurrentUserId(); + $result = $this->aiService->suggestRouting($caseId, $userId); + + return new JSONResponse($result); + }//end suggestRouting() + + /** + * Get next-step suggestions for a case. + * + * @return JSONResponse + * + * @NoAdminRequired + */ + public function suggestNext(): JSONResponse + { + $caseId = $this->request->getParam('caseId', ''); + + if (empty($caseId) === true) { + return new JSONResponse( + ['error' => 'caseId is required'], + Http::STATUS_BAD_REQUEST + ); + } + + $userId = $this->getCurrentUserId(); + $result = $this->aiService->suggestNextStep($caseId, $userId); + + return new JSONResponse($result); + }//end suggestNext() + + /** + * Record a user action on an AI suggestion. + * + * @return JSONResponse + * + * @NoAdminRequired + */ + public function recordAction(): JSONResponse + { + $caseId = $this->request->getParam('caseId', ''); + $type = $this->request->getParam('type', ''); + $userAction = $this->request->getParam('userAction', ''); + $suggestion = $this->request->getParam('suggestion', []); + $actual = $this->request->getParam('actualValue'); + $reason = $this->request->getParam('reason'); + + if (empty($caseId) === true || empty($type) === true || empty($userAction) === true) { + return new JSONResponse( + ['error' => 'caseId, type, and userAction are required'], + Http::STATUS_BAD_REQUEST + ); + } + + $userId = $this->getCurrentUserId(); + $result = $this->aiService->recordUserAction( + $caseId, + $type, + $userAction, + $suggestion, + $actual, + $reason, + $userId, + ); + + return new JSONResponse($result); + }//end recordAction() + + /** + * Get AI audit trail entries. + * + * @return JSONResponse + * + * @NoAdminRequired + */ + public function auditIndex(): JSONResponse + { + $filters = [ + 'caseId' => $this->request->getParam('caseId'), + 'type' => $this->request->getParam('type'), + 'limit' => (int) $this->request->getParam('limit', '50'), + 'offset' => (int) $this->request->getParam('offset', '0'), + ]; + + return new JSONResponse([ + 'success' => true, + 'filters' => array_filter($filters), + 'message' => 'Audit trail query — implement with OpenRegister object listing', + ]); + }//end auditIndex() + + /** + * Get AI settings. + * + * @return JSONResponse + */ + public function getSettings(): JSONResponse + { + $settings = $this->aiService->getAiSettings(); + + return new JSONResponse($settings); + }//end getSettings() + + /** + * Update AI settings. + * + * @return JSONResponse + */ + public function updateSettings(): JSONResponse + { + $data = $this->request->getParams(); + $result = $this->settingsService->updateSettings($data); + + return new JSONResponse($result); + }//end updateSettings() + + /** + * Test AI model health/connectivity. + * + * @return JSONResponse + */ + public function healthCheck(): JSONResponse + { + $result = $this->aiService->testHealth(); + + return new JSONResponse($result); + }//end healthCheck() + + /** + * Get the current user ID from the session. + * + * @return string + */ + private function getCurrentUserId(): string + { + $user = $this->userSession->getUser(); + + return ($user !== null) ? $user->getUID() : 'anonymous'; + }//end getCurrentUserId() +}//end class diff --git a/lib/Controller/AppointmentController.php b/lib/Controller/AppointmentController.php new file mode 100644 index 0000000..12f12cf --- /dev/null +++ b/lib/Controller/AppointmentController.php @@ -0,0 +1,77 @@ +request->getParam('caseId'); + $appointments = $this->appointmentService->getAppointmentsForCase($caseId ?? ''); + return new JSONResponse(['success' => true, 'appointments' => $appointments]); + } + + /** @NoAdminRequired */ + public function create(): JSONResponse + { + $caseId = $this->request->getParam('caseId'); + if (empty($caseId)) { + return new JSONResponse(['success' => false, 'error' => 'caseId required'], 400); + } + + $data = [ + 'productId' => $this->request->getParam('productId'), + 'locationId' => $this->request->getParam('locationId'), + 'dateTime' => $this->request->getParam('dateTime'), + 'duration' => (int) $this->request->getParam('duration', '30'), + 'citizenName' => $this->request->getParam('citizenName', ''), + 'citizenEmail' => $this->request->getParam('citizenEmail', ''), + 'citizenPhone' => $this->request->getParam('citizenPhone'), + 'notes' => $this->request->getParam('notes'), + ]; + + $result = $this->appointmentService->bookAppointment($caseId, $data); + return new JSONResponse(['success' => true, 'appointment' => $result]); + } + + /** @NoAdminRequired */ + public function cancel(string $appointmentId): JSONResponse + { + $result = $this->appointmentService->cancelAppointment($appointmentId); + return new JSONResponse(['success' => true, 'appointment' => $result]); + } + + /** @NoAdminRequired */ + public function noShow(string $appointmentId): JSONResponse + { + $result = $this->appointmentService->markNoShow($appointmentId); + return new JSONResponse(['success' => true, 'appointment' => $result]); + } + + /** @NoAdminRequired */ + public function timeslots(): JSONResponse + { + $productId = $this->request->getParam('productId', ''); + $locationId = $this->request->getParam('locationId', ''); + $date = $this->request->getParam('date', date('Y-m-d')); + + $slots = $this->appointmentService->getTimeslots($productId, $locationId, $date); + return new JSONResponse(['success' => true, 'timeslots' => $slots]); + } +} diff --git a/lib/Controller/BerichtenboxController.php b/lib/Controller/BerichtenboxController.php new file mode 100644 index 0000000..662ba3b --- /dev/null +++ b/lib/Controller/BerichtenboxController.php @@ -0,0 +1,61 @@ +request->getParam('caseId'); + $bsn = $this->request->getParam('bsn', ''); + $subject = $this->request->getParam('subject', ''); + $body = $this->request->getParam('body', ''); + $typeCode = $this->request->getParam('berichtTypeCode', ''); + $attachmentFileId = $this->request->getParam('attachmentFileId'); + + if (empty($caseId) === true) { + return new JSONResponse(['success' => false, 'error' => 'caseId is required'], 400); + } + + $result = $this->berichtenboxService->sendMessage( + $caseId, $bsn, $subject, $body, $typeCode, $attachmentFileId + ); + + if (isset($result['error']) === true) { + return new JSONResponse(['success' => false, 'error' => $result['error']], 400); + } + + return new JSONResponse(['success' => true, 'message' => $result]); + } + + /** @NoAdminRequired */ + public function messages(): JSONResponse + { + $caseId = $this->request->getParam('caseId', ''); + $messages = $this->berichtenboxService->getMessagesForCase($caseId); + return new JSONResponse(['success' => true, 'messages' => $messages]); + } + + /** @NoAdminRequired */ + public function poll(string $messageId): JSONResponse + { + $result = $this->berichtenboxService->pollReadStatus($messageId); + return new JSONResponse(['success' => true, 'message' => $result]); + } +} diff --git a/lib/Controller/BrcController.php b/lib/Controller/BrcController.php new file mode 100644 index 0000000..a28375f --- /dev/null +++ b/lib/Controller/BrcController.php @@ -0,0 +1,936 @@ + + * @copyright 2024 Conduction B.V. + * @license EUPL-1.2 https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12 + * + * @version GIT: + * + * @link https://procest.nl + */ + +declare(strict_types=1); + +namespace OCA\Procest\Controller; + +use OCA\Procest\Service\SettingsService; +use OCA\Procest\Service\ZgwService; +use OCP\AppFramework\Controller; +use OCP\AppFramework\Http; +use OCP\AppFramework\Http\JSONResponse; +use OCP\IRequest; + +/** + * BRC (Besluiten) API Controller + * + * Handles ZGW Besluiten register resources: besluiten and + * besluitinformatieobjecten. Implements BRC-specific business rules: + * + * - brc-004: PUT/PATCH on besluitinformatieobjecten returns 405 + * - brc-005: Cross-register OIO sync on BIO create/delete + * - brc-006: Zaak-besluit relation (via ZRC zaakbesluiten endpoint) + * - brc-009: Cascade delete of BIOs and OIOs when deleting a besluit + * + * @psalm-suppress UnusedClass + * + * @SuppressWarnings(PHPMD.TooManyPublicMethods) + * @SuppressWarnings(PHPMD.CouplingBetweenObjects) + * @SuppressWarnings(PHPMD.ExcessiveClassLength) + * @SuppressWarnings(PHPMD.ExcessiveClassComplexity) + * @SuppressWarnings(PHPMD.CyclomaticComplexity) + * @SuppressWarnings(PHPMD.NPathComplexity) + */ +class BrcController extends Controller +{ + /** + * The ZGW API identifier for the Besluiten register. + * + * @var string + */ + private const ZGW_API = 'besluiten'; + + /** + * Constructor. + * + * @param string $appName The app name. + * @param IRequest $request The incoming request. + * @param ZgwService $zgwService The shared ZGW service. + * @param SettingsService $settingsService The settings service. + */ + public function __construct( + string $appName, + IRequest $request, + private readonly ZgwService $zgwService, + private readonly SettingsService $settingsService, + ) { + parent::__construct(appName: $appName, request: $request); + }//end __construct() + + /** + * List resources of the given type. + * + * @param string $resource The ZGW resource name (e.g. besluiten). + * + * @return JSONResponse + * + * @NoAdminRequired + * @NoCSRFRequired + * @PublicPage + * @CORS + */ + public function index(string $resource): JSONResponse + { + $authError = $this->zgwService->validateJwtAuth($this->request); + if ($authError !== null) { + return $authError; + } + + // BesluitInformatieObjecten returns a plain array per ZGW spec. + if ($resource === 'besluitinformatieobjecten') { + return $this->indexBesluitInformatieObjecten(); + } + + return $this->zgwService->handleIndex($this->request, self::ZGW_API, $resource); + }//end index() + + /** + * Create a new resource of the given type. + * + * For besluitinformatieobjecten, also creates an ObjectInformatieObject + * in the DRC register (brc-005a). + * + * @param string $resource The ZGW resource name. + * + * @return JSONResponse + * + * @NoAdminRequired + * @NoCSRFRequired + * @PublicPage + * @CORS + */ + public function create(string $resource): JSONResponse + { + $authError = $this->zgwService->validateJwtAuth($this->request); + if ($authError !== null) { + return $authError; + } + + // For besluitinformatieobjecten: use custom create with OIO sync. + if ($resource === 'besluitinformatieobjecten') { + return $this->createBesluitInformatieObject(); + } + + // Brc-006: For besluiten with a zaak, sync zaakbesluit to ZRC after creation. + if ($resource === 'besluiten') { + return $this->createBesluitWithZaakSync(); + } + + return $this->zgwService->handleCreate($this->request, self::ZGW_API, $resource); + }//end create() + + /** + * Retrieve a single resource by UUID. + * + * @param string $resource The ZGW resource name. + * @param string $uuid The resource UUID. + * + * @return JSONResponse + * + * @NoAdminRequired + * @NoCSRFRequired + * @PublicPage + * @CORS + */ + public function show(string $resource, string $uuid): JSONResponse + { + $authError = $this->zgwService->validateJwtAuth($this->request); + if ($authError !== null) { + return $authError; + } + + return $this->zgwService->handleShow($this->request, self::ZGW_API, $resource, $uuid); + }//end show() + + /** + * Full update (PUT) a resource by UUID. + * + * For besluitinformatieobjecten, returns 405 Method Not Allowed (brc-004a). + * + * @param string $resource The ZGW resource name. + * @param string $uuid The resource UUID. + * + * @return JSONResponse + * + * @NoAdminRequired + * @NoCSRFRequired + * @PublicPage + * @CORS + */ + public function update(string $resource, string $uuid): JSONResponse + { + $authError = $this->zgwService->validateJwtAuth($this->request); + if ($authError !== null) { + return $authError; + } + + // Brc-004a: BesluitInformatieObject is immutable — PUT returns 405. + if ($resource === 'besluitinformatieobjecten') { + return new JSONResponse( + data: ['detail' => 'Method not allowed'], + statusCode: Http::STATUS_METHOD_NOT_ALLOWED + ); + } + + return $this->zgwService->handleUpdate( + $this->request, + self::ZGW_API, + $resource, + $uuid, + false + ); + }//end update() + + /** + * Partial update (PATCH) a resource by UUID. + * + * For besluitinformatieobjecten, returns 405 Method Not Allowed (brc-004b). + * + * @param string $resource The ZGW resource name. + * @param string $uuid The resource UUID. + * + * @return JSONResponse + * + * @NoAdminRequired + * @NoCSRFRequired + * @PublicPage + * @CORS + */ + public function patch(string $resource, string $uuid): JSONResponse + { + $authError = $this->zgwService->validateJwtAuth($this->request); + if ($authError !== null) { + return $authError; + } + + // Brc-004b: BesluitInformatieObject is immutable — PATCH returns 405. + if ($resource === 'besluitinformatieobjecten') { + return new JSONResponse( + data: ['detail' => 'Method not allowed'], + statusCode: Http::STATUS_METHOD_NOT_ALLOWED + ); + } + + return $this->zgwService->handleUpdate( + $this->request, + self::ZGW_API, + $resource, + $uuid, + true + ); + }//end patch() + + /** + * Delete a resource by UUID. + * + * For besluiten: cascade deletes related BesluitInformatieObjecten + * and their OIOs in DRC (brc-009). + * For besluitinformatieobjecten: also deletes the OIO in DRC (brc-005b). + * + * @param string $resource The ZGW resource name. + * @param string $uuid The resource UUID. + * + * @return JSONResponse + * + * @NoAdminRequired + * @NoCSRFRequired + * @PublicPage + * @CORS + */ + public function destroy(string $resource, string $uuid): JSONResponse + { + $authError = $this->zgwService->validateJwtAuth($this->request); + if ($authError !== null) { + return $authError; + } + + // Brc-009: Cascade delete for besluiten. + if ($resource === 'besluiten') { + return $this->destroyBesluit(uuid: $uuid); + } + + // Brc-005b: Delete OIO when deleting BIO. + if ($resource === 'besluitinformatieobjecten') { + return $this->destroyBesluitInformatieObject(uuid: $uuid); + } + + return $this->zgwService->handleDestroy( + $this->request, + self::ZGW_API, + $resource, + $uuid + ); + }//end destroy() + + /** + * List audit trail entries for a resource. + * + * @param string $resource The ZGW resource name. + * @param string $uuid The resource UUID. + * + * @return JSONResponse + * + * @NoAdminRequired + * @NoCSRFRequired + * @PublicPage + * @CORS + */ + public function audittrailIndex(string $resource, string $uuid): JSONResponse + { + $authError = $this->zgwService->validateJwtAuth($this->request); + if ($authError !== null) { + return $authError; + } + + // Brc-009d: Verify the parent resource exists before returning audit trail. + $objectService = $this->zgwService->getObjectService(); + if ($objectService !== null) { + $mappingConfig = $this->zgwService->loadMappingConfig(self::ZGW_API, $resource); + if ($mappingConfig !== null) { + try { + $objectService->find( + $uuid, + register: $mappingConfig['sourceRegister'], + schema: $mappingConfig['sourceSchema'] + ); + } catch (\Throwable $e) { + return new JSONResponse( + data: ['detail' => 'Not found'], + statusCode: Http::STATUS_NOT_FOUND + ); + } + } + } + + return $this->zgwService->handleAudittrailIndex($this->request, self::ZGW_API, $resource, $uuid); + }//end audittrailIndex() + + /** + * Retrieve a single audit trail entry for a resource. + * + * @param string $resource The ZGW resource name. + * @param string $uuid The resource UUID. + * @param string $auditUuid The audit trail entry UUID. + * + * @return JSONResponse + * + * @NoAdminRequired + * @NoCSRFRequired + * @PublicPage + * @CORS + */ + public function audittrailShow(string $resource, string $uuid, string $auditUuid): JSONResponse + { + $authError = $this->zgwService->validateJwtAuth($this->request); + if ($authError !== null) { + return $authError; + } + + return $this->zgwService->handleAudittrailShow( + $this->request, + self::ZGW_API, + $resource, + $uuid, + $auditUuid + ); + }//end audittrailShow() + + /** + * Create a besluit with zaak-besluit sync to ZRC (brc-006). + * + * After creating the besluit, if it references a zaak, creates a + * zaakbesluit relation in the ZRC register. + * + * @return JSONResponse + */ + private function createBesluitWithZaakSync(): JSONResponse + { + $response = $this->zgwService->handleCreate($this->request, self::ZGW_API, 'besluiten'); + + // Brc-006: If created successfully and has a zaak, sync to ZRC. + if ($response->getStatus() === Http::STATUS_CREATED) { + $data = $response->getData(); + $zaakUrl = ''; + if (is_array($data) === true) { + $zaakUrl = $data['zaak'] ?? ''; + + if ($zaakUrl !== '') { + $besluitUrl = $data['url'] ?? ''; + if ($besluitUrl !== '') { + $this->syncZaakBesluitToZrc(zaakUrl: $zaakUrl, besluitUrl: $besluitUrl); + } + } + } + } + + return $response; + }//end createBesluitWithZaakSync() + + /** + * Sync a zaak-besluit relation to ZRC (brc-006). + * + * Creates a "zaakbesluit" record linking the zaak to the besluit + * in the ZRC register. + * + * @param string $zaakUrl The zaak URL + * @param string $besluitUrl The besluit URL + * + * @return void + */ + private function syncZaakBesluitToZrc(string $zaakUrl, string $besluitUrl): void + { + $objectService = $this->zgwService->getObjectService(); + if ($objectService === null) { + return; + } + + // Look for a zaakbesluit mapping/schema. + $zbSchema = $this->settingsService->getConfigValue(key: 'case_decision_schema'); + if ($zbSchema === '') { + $this->zgwService->getLogger()->debug( + 'brc-006: case_decision_schema not configured, skipping zaakbesluit sync' + ); + return; + } + + $uuidPattern = '/([0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12})/i'; + $zaakUuid = ''; + if (preg_match($uuidPattern, $zaakUrl, $match) === 1) { + $zaakUuid = $match[1]; + } + + if ($zaakUuid === '') { + return; + } + + // Use the zaken mapping config for register. + $zakenConfig = $this->zgwService->loadMappingConfig('zaken', 'zaken'); + $register = $zakenConfig['sourceRegister'] ?? ''; + if ($register === '') { + return; + } + + try { + $zbData = [ + 'case' => $zaakUuid, + 'decision' => $besluitUrl, + ]; + + $objectService->saveObject( + register: $register, + schema: $zbSchema, + object: $zbData + ); + + $this->zgwService->getLogger()->info( + 'brc-006: Created zaakbesluit for zaak='.$zaakUuid.' besluit='.$besluitUrl + ); + } catch (\Throwable $e) { + $this->zgwService->getLogger()->warning( + 'brc-006: Failed to create zaakbesluit: '.$e->getMessage() + ); + } + }//end syncZaakBesluitToZrc() + + /** + * List BesluitInformatieObjecten as a plain array (per ZGW spec). + * + * Unlike paginated resources, besluitinformatieobjecten returns a flat array. + * + * @return JSONResponse + */ + private function indexBesluitInformatieObjecten(): JSONResponse + { + $objectService = $this->zgwService->getObjectService(); + if ($objectService === null) { + return $this->zgwService->unavailableResponse(); + } + + $resource = 'besluitinformatieobjecten'; + $mappingConfig = $this->zgwService->loadMappingConfig(self::ZGW_API, $resource); + if ($mappingConfig === null) { + return $this->zgwService->mappingNotFoundResponse(self::ZGW_API, $resource); + } + + try { + $params = $this->request->getParams(); + $filters = $this->zgwService->translateQueryParams( + params: $params, + mappingConfig: $mappingConfig + ); + + $searchParams = array_merge($filters, ['_limit' => 100]); + + $query = $objectService->buildSearchQuery( + requestParams: $searchParams, + register: $mappingConfig['sourceRegister'], + schema: $mappingConfig['sourceSchema'] + ); + $result = $objectService->searchObjectsPaginated(query: $query); + + $objects = $result['results'] ?? []; + $baseUrl = $this->zgwService->buildBaseUrl($this->request, self::ZGW_API, $resource); + $outboundMapping = $this->zgwService->createOutboundMapping(mappingConfig: $mappingConfig); + $mapped = []; + foreach ($objects as $object) { + if (is_array($object) === true) { + $objectData = $object; + } else { + $objectData = $object->jsonSerialize(); + } + + $mapped[] = $this->zgwService->applyOutboundMapping( + objectData: $objectData, + mapping: $outboundMapping, + mappingConfig: $mappingConfig, + baseUrl: $baseUrl + ); + } + + return new JSONResponse(data: $mapped); + } catch (\Throwable $e) { + $this->zgwService->getLogger()->error( + 'BRC list BIO error: '.$e->getMessage(), + ['exception' => $e] + ); + return new JSONResponse( + data: ['detail' => 'Internal server error'], + statusCode: Http::STATUS_INTERNAL_SERVER_ERROR + ); + }//end try + }//end indexBesluitInformatieObjecten() + + /** + * Create a BesluitInformatieObject with cross-register OIO sync (brc-005a). + * + * After creating the BIO, also creates an ObjectInformatieObject in the + * DRC register with objectType=besluit. + * + * @return JSONResponse + * + * @SuppressWarnings(PHPMD.CyclomaticComplexity) + * @SuppressWarnings(PHPMD.NPathComplexity) + * @SuppressWarnings(PHPMD.ExcessiveMethodLength) + */ + private function createBesluitInformatieObject(): JSONResponse + { + $objectService = $this->zgwService->getObjectService(); + if ($objectService === null) { + return $this->zgwService->unavailableResponse(); + } + + $resource = 'besluitinformatieobjecten'; + $mappingConfig = $this->zgwService->loadMappingConfig(self::ZGW_API, $resource); + if ($mappingConfig === null) { + return $this->zgwService->mappingNotFoundResponse(self::ZGW_API, $resource); + } + + try { + $body = $this->zgwService->getRequestBody($this->request); + + // Run business rules (brc-003a, brc-008a). + $ruleResult = $this->zgwService->getBusinessRulesService()->validate( + zgwApi: self::ZGW_API, + resource: $resource, + action: 'create', + body: $body, + objectService: $objectService, + mappingConfig: $mappingConfig + ); + if ($ruleResult['valid'] === false) { + return new JSONResponse( + data: $this->zgwService->buildValidationError($ruleResult), + statusCode: $ruleResult['status'] + ); + } + + $enrichedBody = $ruleResult['enrichedBody']; + + // Create the BIO via standard mapping flow. + $inboundMapping = $this->zgwService->createInboundMapping(mappingConfig: $mappingConfig); + $englishData = $this->zgwService->applyInboundMapping( + body: $enrichedBody, + mapping: $inboundMapping, + mappingConfig: $mappingConfig + ); + + // @phpstan-ignore-next-line — defensive guard: applyInboundMapping may change + if (is_array($englishData) === false) { + return new JSONResponse( + data: ['detail' => 'Invalid mapping result'], + statusCode: Http::STATUS_BAD_REQUEST + ); + } + + $object = $objectService->saveObject( + register: $mappingConfig['sourceRegister'], + schema: $mappingConfig['sourceSchema'], + object: $englishData + ); + if (is_array($object) === true) { + $objectData = $object; + } else { + $objectData = $object->jsonSerialize(); + } + + $objectUuid = $objectData['id'] ?? ($objectData['@self']['id'] ?? ''); + + $baseUrl = $this->zgwService->buildBaseUrl($this->request, self::ZGW_API, $resource); + $outboundMapping = $this->zgwService->createOutboundMapping(mappingConfig: $mappingConfig); + $mapped = $this->zgwService->applyOutboundMapping( + objectData: $objectData, + mapping: $outboundMapping, + mappingConfig: $mappingConfig, + baseUrl: $baseUrl + ); + + // Brc-005a: Create OIO in DRC. + $besluitUrl = $enrichedBody['besluit'] ?? ''; + $ioUrl = $enrichedBody['informatieobject'] ?? ''; + if ($besluitUrl !== '' && $ioUrl !== '') { + $this->createOioInDrc(besluitUrl: $besluitUrl, ioUrl: $ioUrl); + } + + $this->zgwService->publishNotification( + self::ZGW_API, + $resource, + $baseUrl.'/'.$objectUuid, + 'create' + ); + + return new JSONResponse(data: $mapped, statusCode: Http::STATUS_CREATED); + } catch (\Throwable $e) { + $this->zgwService->getLogger()->error( + 'BRC create BIO error: '.$e->getMessage(), + ['exception' => $e] + ); + return new JSONResponse( + data: ['detail' => $e->getMessage()], + statusCode: Http::STATUS_BAD_REQUEST + ); + }//end try + }//end createBesluitInformatieObject() + + /** + * Create an ObjectInformatieObject in the DRC register (brc-005a). + * + * @param string $besluitUrl The besluit URL (full ZGW URL) + * @param string $ioUrl The informatieobject URL (full ZGW URL) + * + * @return void + */ + private function createOioInDrc(string $besluitUrl, string $ioUrl): void + { + $objectService = $this->zgwService->getObjectService(); + if ($objectService === null) { + return; + } + + $oioMappingConfig = $this->zgwService->loadMappingConfig('documenten', 'objectinformatieobjecten'); + if ($oioMappingConfig === null) { + return; + } + + try { + $oioData = [ + 'document' => $ioUrl, + 'object' => $besluitUrl, + 'objectType' => 'besluit', + ]; + + $objectService->saveObject( + register: $oioMappingConfig['sourceRegister'], + schema: $oioMappingConfig['sourceSchema'], + object: $oioData + ); + } catch (\Throwable $e) { + $this->zgwService->getLogger()->warning( + 'brc-005a: Failed to create OIO in DRC: '.$e->getMessage() + ); + } + }//end createOioInDrc() + + /** + * Delete ObjectInformatieObjecten from DRC for a given besluit (brc-005b/009). + * + * @param string $besluitUrl The besluit URL to match OIOs against + * + * @return void + */ + private function deleteOiosForBesluit(string $besluitUrl): void + { + $objectService = $this->zgwService->getObjectService(); + if ($objectService === null) { + return; + } + + $oioMappingConfig = $this->zgwService->loadMappingConfig('documenten', 'objectinformatieobjecten'); + if ($oioMappingConfig === null) { + return; + } + + try { + $query = $objectService->buildSearchQuery( + requestParams: ['object' => $besluitUrl], + register: $oioMappingConfig['sourceRegister'], + schema: $oioMappingConfig['sourceSchema'] + ); + $result = $objectService->searchObjectsPaginated(query: $query); + + foreach (($result['results'] ?? []) as $oio) { + if (is_array($oio) === true) { + $oioData = $oio; + } else { + $oioData = $oio->jsonSerialize(); + } + + $oioUuid = $oioData['id'] ?? ($oioData['@self']['id'] ?? ''); + if ($oioUuid !== '') { + $objectService->deleteObject( + uuid: $oioUuid, + _rbac: false, + _multitenancy: false + ); + } + } + } catch (\Throwable $e) { + $this->zgwService->getLogger()->warning( + 'BRC: Failed to delete OIOs for besluit: '.$e->getMessage() + ); + }//end try + }//end deleteOiosForBesluit() + + /** + * Delete a BesluitInformatieObject and its OIO in DRC (brc-005b). + * + * @param string $uuid The BIO UUID to delete + * + * @return JSONResponse + */ + private function destroyBesluitInformatieObject(string $uuid): JSONResponse + { + $objectService = $this->zgwService->getObjectService(); + if ($objectService === null) { + return $this->zgwService->unavailableResponse(); + } + + $resource = 'besluitinformatieobjecten'; + $mappingConfig = $this->zgwService->loadMappingConfig(self::ZGW_API, $resource); + if ($mappingConfig === null) { + return $this->zgwService->mappingNotFoundResponse(self::ZGW_API, $resource); + } + + try { + // Read the BIO to get besluit URL before deletion. + $bioObj = $objectService->find( + $uuid, + register: $mappingConfig['sourceRegister'], + schema: $mappingConfig['sourceSchema'] + ); + if (is_array($bioObj) === true) { + $bioData = $bioObj; + } else { + $bioData = $bioObj->jsonSerialize(); + } + + // Build the besluit URL from the stored decision UUID. + $decisionUuid = $bioData['decision'] ?? ''; + $besluitUrl = ''; + if ($decisionUuid !== '') { + $besluitUrl = $this->zgwService->buildBaseUrl( + $this->request, + self::ZGW_API, + 'besluiten' + ).'/'.$decisionUuid; + } + + $ioUrl = $bioData['document'] ?? ''; + + // Delete the BIO. + $objectService->deleteObject(uuid: $uuid); + + // Brc-005b: Delete matching OIO in DRC. + if ($besluitUrl !== '' && $ioUrl !== '') { + $this->deleteOioByBesluitAndIo(besluitUrl: $besluitUrl, ioUrl: $ioUrl); + } + + $baseUrl = $this->zgwService->buildBaseUrl($this->request, self::ZGW_API, $resource); + $this->zgwService->publishNotification( + self::ZGW_API, + $resource, + $baseUrl.'/'.$uuid, + 'destroy' + ); + + return new JSONResponse(data: [], statusCode: Http::STATUS_NO_CONTENT); + } catch (\Throwable $e) { + $this->zgwService->getLogger()->error( + 'BRC delete BIO error: '.$e->getMessage(), + ['exception' => $e] + ); + return new JSONResponse( + data: ['detail' => 'Not found'], + statusCode: Http::STATUS_NOT_FOUND + ); + }//end try + }//end destroyBesluitInformatieObject() + + /** + * Delete an OIO from DRC matching a specific besluit and informatieobject (brc-005b). + * + * @param string $besluitUrl The besluit URL + * @param string $ioUrl The informatieobject URL + * + * @return void + */ + private function deleteOioByBesluitAndIo(string $besluitUrl, string $ioUrl): void + { + $objectService = $this->zgwService->getObjectService(); + if ($objectService === null) { + return; + } + + $oioMappingConfig = $this->zgwService->loadMappingConfig('documenten', 'objectinformatieobjecten'); + if ($oioMappingConfig === null) { + return; + } + + try { + $query = $objectService->buildSearchQuery( + requestParams: [ + 'object' => $besluitUrl, + 'document' => $ioUrl, + ], + register: $oioMappingConfig['sourceRegister'], + schema: $oioMappingConfig['sourceSchema'] + ); + $result = $objectService->searchObjectsPaginated(query: $query); + + foreach (($result['results'] ?? []) as $oio) { + if (is_array($oio) === true) { + $oioData = $oio; + } else { + $oioData = $oio->jsonSerialize(); + } + + $oioUuid = $oioData['id'] ?? ($oioData['@self']['id'] ?? ''); + if ($oioUuid !== '') { + $objectService->deleteObject( + uuid: $oioUuid, + _rbac: false, + _multitenancy: false + ); + } + } + } catch (\Throwable $e) { + $this->zgwService->getLogger()->warning( + 'brc-005b: Failed to delete OIO: '.$e->getMessage() + ); + }//end try + }//end deleteOioByBesluitAndIo() + + /** + * Delete a besluit with cascade to BIOs and OIOs (brc-009). + * + * @param string $uuid The besluit UUID to delete + * + * @return JSONResponse + * + * @SuppressWarnings(PHPMD.CyclomaticComplexity) + */ + private function destroyBesluit(string $uuid): JSONResponse + { + $objectService = $this->zgwService->getObjectService(); + if ($objectService === null) { + return $this->zgwService->unavailableResponse(); + } + + $resource = 'besluiten'; + $mappingConfig = $this->zgwService->loadMappingConfig(self::ZGW_API, $resource); + if ($mappingConfig === null) { + return $this->zgwService->mappingNotFoundResponse(self::ZGW_API, $resource); + } + + try { + // Validate the besluit exists (will throw if not found). + $existingObj = $objectService->find( + $uuid, + register: $mappingConfig['sourceRegister'], + schema: $mappingConfig['sourceSchema'] + ); + if (is_array($existingObj) === true) { + $existingData = $existingObj; + } else { + $existingData = $existingObj->jsonSerialize(); + } + + // Run destroy business rules. + $ruleResult = $this->zgwService->getBusinessRulesService()->validate( + zgwApi: self::ZGW_API, + resource: $resource, + action: 'destroy', + body: [], + existingObject: $existingData + ); + if ($ruleResult['valid'] === false) { + return new JSONResponse( + data: $this->zgwService->buildValidationError($ruleResult), + statusCode: $ruleResult['status'] + ); + } + + // Build the besluit URL for OIO cleanup. + $besluitUrl = $this->zgwService->buildBaseUrl( + $this->request, + self::ZGW_API, + 'besluiten' + ).'/'.$uuid; + + // Cascade delete of BesluitInformatieObjecten is handled by + // OpenRegister via onDelete: CASCADE on decisionDocument.decision. + // Brc-009: Sync-delete OIOs in DRC (cross-component side-effect). + $this->deleteOiosForBesluit(besluitUrl: $besluitUrl); + + // Delete the besluit itself. + $objectService->deleteObject(uuid: $uuid); + + $baseUrl = $this->zgwService->buildBaseUrl($this->request, self::ZGW_API, $resource); + $this->zgwService->publishNotification( + self::ZGW_API, + $resource, + $baseUrl.'/'.$uuid, + 'destroy' + ); + + return new JSONResponse(data: [], statusCode: Http::STATUS_NO_CONTENT); + } catch (\Throwable $e) { + $this->zgwService->getLogger()->error( + 'BRC delete besluit error: '.$e->getMessage(), + ['exception' => $e] + ); + return new JSONResponse( + data: ['detail' => 'Not found'], + statusCode: Http::STATUS_NOT_FOUND + ); + }//end try + }//end destroyBesluit() +}//end class diff --git a/lib/Controller/CaseDefinitionController.php b/lib/Controller/CaseDefinitionController.php new file mode 100644 index 0000000..fab2601 --- /dev/null +++ b/lib/Controller/CaseDefinitionController.php @@ -0,0 +1,191 @@ + + * @copyright 2024 Conduction B.V. + * @license EUPL-1.2 https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12 + * + * @version GIT: + * + * @link https://procest.nl + */ + +declare(strict_types=1); + +namespace OCA\Procest\Controller; + +use OCA\Procest\Service\CaseDefinitionExportService; +use OCA\Procest\Service\CaseDefinitionImportService; +use OCP\AppFramework\Controller; +use OCP\AppFramework\Http; +use OCP\AppFramework\Http\DataDownloadResponse; +use OCP\AppFramework\Http\JSONResponse; +use OCP\IRequest; +use Psr\Log\LoggerInterface; + +/** + * Controller for case definition export/import operations. + * + * @psalm-suppress UnusedClass + */ +class CaseDefinitionController extends Controller +{ + /** + * Constructor. + * + * @param string $appName The app name. + * @param IRequest $request The request object. + * @param CaseDefinitionExportService $exportService The export service. + * @param CaseDefinitionImportService $importService The import service. + * @param LoggerInterface $logger The logger. + */ + public function __construct( + string $appName, + IRequest $request, + private readonly CaseDefinitionExportService $exportService, + private readonly CaseDefinitionImportService $importService, + private readonly LoggerInterface $logger, + ) { + parent::__construct($appName, $request); + } + + /** + * Export a case definition as a ZIP archive. + * + * @return DataDownloadResponse|JSONResponse + * + * @psalm-suppress PossiblyUnusedMethod + */ + public function export(): DataDownloadResponse|JSONResponse + { + try { + $caseTypeId = $this->request->getParam('caseTypeId', ''); + $components = $this->request->getParam('components', []); + + if (empty($caseTypeId)) { + return new JSONResponse( + ['error' => 'Parameter caseTypeId is required'], + Http::STATUS_BAD_REQUEST + ); + } + + if (is_string($components)) { + $components = json_decode($components, true) ?? []; + } + + $result = $this->exportService->exportCaseDefinition($caseTypeId, $components); + + $content = file_get_contents($result['path']); + unlink($result['path']); + + if ($content === false) { + return new JSONResponse( + ['error' => 'Failed to read export file'], + Http::STATUS_INTERNAL_SERVER_ERROR + ); + } + + return new DataDownloadResponse( + $content, + $result['filename'], + 'application/zip' + ); + } catch (\InvalidArgumentException $e) { + return new JSONResponse( + ['error' => $e->getMessage()], + Http::STATUS_BAD_REQUEST + ); + } catch (\Throwable $e) { + $this->logger->error('Case definition export failed: ' . $e->getMessage()); + return new JSONResponse( + ['error' => 'Export failed: ' . $e->getMessage()], + Http::STATUS_INTERNAL_SERVER_ERROR + ); + } + } + + /** + * Validate a case definition package without importing it. + * + * @return JSONResponse + * + * @psalm-suppress PossiblyUnusedMethod + */ + public function validate(): JSONResponse + { + try { + $file = $this->request->getUploadedFile('package'); + + if ($file === null || !isset($file['tmp_name'])) { + return new JSONResponse( + ['error' => 'No package file uploaded'], + Http::STATUS_BAD_REQUEST + ); + } + + $result = $this->importService->validatePackage($file['tmp_name']); + + return new JSONResponse($result); + } catch (\Throwable $e) { + $this->logger->error('Case definition validation failed: ' . $e->getMessage()); + return new JSONResponse( + ['error' => 'Validation failed: ' . $e->getMessage()], + Http::STATUS_INTERNAL_SERVER_ERROR + ); + } + } + + /** + * Import a case definition package. + * + * @return JSONResponse + * + * @psalm-suppress PossiblyUnusedMethod + */ + public function import(): JSONResponse + { + try { + $file = $this->request->getUploadedFile('package'); + $strategy = $this->request->getParam('strategy', 'skip'); + + if ($file === null || !isset($file['tmp_name'])) { + return new JSONResponse( + ['error' => 'No package file uploaded'], + Http::STATUS_BAD_REQUEST + ); + } + + if (!in_array($strategy, ['skip', 'overwrite', 'merge'], true)) { + return new JSONResponse( + ['error' => 'Invalid strategy. Must be: skip, overwrite, or merge'], + Http::STATUS_BAD_REQUEST + ); + } + + $result = $this->importService->importCaseDefinition( + $file['tmp_name'], + $strategy + ); + + $statusCode = $result['success'] + ? Http::STATUS_OK + : Http::STATUS_UNPROCESSABLE_ENTITY; + + return new JSONResponse($result, $statusCode); + } catch (\Throwable $e) { + $this->logger->error('Case definition import failed: ' . $e->getMessage()); + return new JSONResponse( + ['error' => 'Import failed: ' . $e->getMessage()], + Http::STATUS_INTERNAL_SERVER_ERROR + ); + } + } +} diff --git a/lib/Controller/CaseSharingController.php b/lib/Controller/CaseSharingController.php new file mode 100644 index 0000000..ccddee6 --- /dev/null +++ b/lib/Controller/CaseSharingController.php @@ -0,0 +1,222 @@ + + * @copyright 2024 Conduction B.V. + * @license EUPL-1.2 https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12 + * + * @version GIT: + * + * @link https://procest.nl + */ + +declare(strict_types=1); + +namespace OCA\Procest\Controller; + +use OCA\Procest\AppInfo\Application; +use OCA\Procest\Service\CaseSharingService; +use OCA\Procest\Service\CaseTransferService; +use OCA\Procest\Service\SettingsService; +use OCP\App\IAppManager; +use OCP\AppFramework\Controller; +use OCP\AppFramework\Http\JSONResponse; +use OCP\IRequest; +use OCP\IUserSession; +use Psr\Container\ContainerInterface; + +/** + * Controller for managing case shares, partner organizations, and transfers. + */ +class CaseSharingController extends Controller +{ + /** + * Constructor for the CaseSharingController. + * + * @param IRequest $request The request object + * @param CaseSharingService $caseSharingService The sharing service + * @param CaseTransferService $caseTransferService The transfer service + * @param SettingsService $settingsService The settings service + * @param IAppManager $appManager The app manager + * @param ContainerInterface $container The DI container + * @param IUserSession $userSession The user session + * + * @return void + * + * @SuppressWarnings(PHPMD.ExcessiveParameterList) — all params needed for DI + */ + public function __construct( + IRequest $request, + private CaseSharingService $caseSharingService, + private CaseTransferService $caseTransferService, + private SettingsService $settingsService, + private IAppManager $appManager, + private ContainerInterface $container, + private IUserSession $userSession, + ) { + parent::__construct(appName: Application::APP_ID, request: $request); + }//end __construct() + + /** + * List all active shares for a case. + * + * @NoAdminRequired + * + * @param string $caseId The UUID of the case + * + * @return JSONResponse + */ + public function listShares(string $caseId): JSONResponse + { + $shares = $this->caseSharingService->getSharesByCase($caseId); + return new JSONResponse(['success' => true, 'shares' => array_values($shares)]); + }//end listShares() + + /** + * Create a new case share (token or partner). + * + * @NoAdminRequired + * + * @return JSONResponse + */ + public function createShare(): JSONResponse + { + $user = $this->userSession->getUser(); + if ($user === null) { + return new JSONResponse(['success' => false, 'error' => 'Not authenticated'], 401); + } + + $caseId = $this->request->getParam('caseId'); + $shareType = $this->request->getParam('shareType', 'token'); + $permissionLevel = $this->request->getParam('permissionLevel', 'bekijken'); + $label = $this->request->getParam('label', ''); + + if (empty($caseId) === true) { + return new JSONResponse(['success' => false, 'error' => 'caseId is required'], 400); + } + + if ($shareType === 'partner') { + $partnerId = $this->request->getParam('partnerId'); + if (empty($partnerId) === true) { + return new JSONResponse( + ['success' => false, 'error' => 'partnerId is required for partner shares'], + 400 + ); + } + + $share = $this->caseSharingService->createPartnerShare( + $caseId, + $partnerId, + $permissionLevel, + $user->getUID(), + ); + } else { + $expiresAt = $this->request->getParam('expiresAt'); + $password = $this->request->getParam('password'); + $fieldExclusions = json_decode($this->request->getParam('fieldExclusions', '[]'), true); + if (is_array($fieldExclusions) === false) { + $fieldExclusions = []; + } + + $share = $this->caseSharingService->createTokenShare( + $caseId, + $permissionLevel, + $label, + $user->getUID(), + $expiresAt, + $password, + $fieldExclusions, + ); + } + + return new JSONResponse(['success' => true, 'share' => $share]); + }//end createShare() + + /** + * Revoke a case share. + * + * @NoAdminRequired + * + * @param string $shareId The UUID of the share to revoke + * + * @return JSONResponse + */ + public function revokeShare(string $shareId): JSONResponse + { + $user = $this->userSession->getUser(); + if ($user === null) { + return new JSONResponse(['success' => false, 'error' => 'Not authenticated'], 401); + } + + $share = $this->caseSharingService->revokeShare($shareId, $user->getUID()); + return new JSONResponse(['success' => true, 'share' => $share]); + }//end revokeShare() + + /** + * Initiate a case transfer to another organization. + * + * @NoAdminRequired + * + * @return JSONResponse + */ + public function initiateTransfer(): JSONResponse + { + $caseId = $this->request->getParam('caseId'); + $sourceOrganization = $this->request->getParam('sourceOrganization', ''); + $targetOrganization = $this->request->getParam('targetOrganization'); + $reason = $this->request->getParam('reason', ''); + $requestedDate = $this->request->getParam('requestedDate', date('Y-m-d')); + + if (empty($caseId) === true || empty($targetOrganization) === true) { + return new JSONResponse( + ['success' => false, 'error' => 'caseId and targetOrganization are required'], + 400 + ); + } + + $transfer = $this->caseTransferService->initiateTransfer( + $caseId, + $sourceOrganization, + $targetOrganization, + $reason, + $requestedDate, + ); + + return new JSONResponse(['success' => true, 'transfer' => $transfer]); + }//end initiateTransfer() + + /** + * Handle a transfer request (accept or reject). + * + * @NoAdminRequired + * + * @param string $transferId The UUID of the transfer request + * + * @return JSONResponse + */ + public function handleTransfer(string $transferId): JSONResponse + { + $action = $this->request->getParam('action'); + + if ($action === 'accept') { + $result = $this->caseTransferService->acceptTransfer($transferId); + } elseif ($action === 'reject') { + $reason = $this->request->getParam('reason', ''); + $result = $this->caseTransferService->rejectTransfer($transferId, $reason); + } else { + return new JSONResponse( + ['success' => false, 'error' => 'Action must be accept or reject'], + 400 + ); + } + + return new JSONResponse(['success' => true, 'transfer' => $result]); + }//end handleTransfer() +}//end class diff --git a/lib/Controller/ConsultationController.php b/lib/Controller/ConsultationController.php new file mode 100644 index 0000000..64cec7b --- /dev/null +++ b/lib/Controller/ConsultationController.php @@ -0,0 +1,142 @@ + + * @copyright 2024 Conduction B.V. + * @license EUPL-1.2 https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12 + * + * @version GIT: + * + * @link https://procest.nl + */ + +declare(strict_types=1); + +namespace OCA\Procest\Controller; + +use OCA\Procest\Service\ConsultationService; +use OCP\AppFramework\Controller; +use OCP\AppFramework\Http\JSONResponse; +use OCP\IRequest; + +/** + * Controller for consultation (adviesaanvraag) management. + */ +class ConsultationController extends Controller +{ + + + /** + * Constructor. + * + * @param string $appName The app name + * @param IRequest $request The request + * @param ConsultationService $consultationService The consultation service + */ + public function __construct( + string $appName, + IRequest $request, + private readonly ConsultationService $consultationService, + ) { + parent::__construct($appName, $request); + } + + + /** + * List consultations for a case. + * + * @param string $caseId The case UUID + * + * @return JSONResponse List of consultations + * + * @NoAdminRequired + */ + public function index(string $caseId): JSONResponse + { + $consultations = $this->consultationService->getConsultationsForCase($caseId); + return new JSONResponse(['results' => $consultations]); + } + + + /** + * Create a new consultation. + * + * @return JSONResponse Created consultation + * + * @NoAdminRequired + */ + public function create(): JSONResponse + { + try { + $data = json_decode($this->request->getContent() ?: '{}', true) ?: []; + $result = $this->consultationService->createConsultation($data); + return new JSONResponse($result, 201); + } catch (\RuntimeException $e) { + return new JSONResponse(['error' => $e->getMessage()], 400); + } + } + + + /** + * Update consultation status. + * + * @param string $id The consultation UUID + * + * @return JSONResponse Updated consultation + * + * @NoAdminRequired + */ + public function updateStatus(string $id): JSONResponse + { + try { + $data = json_decode($this->request->getContent() ?: '{}', true) ?: []; + $status = $data['status'] ?? ''; + $result = $this->consultationService->updateStatus($id, $status); + return new JSONResponse($result); + } catch (\RuntimeException $e) { + return new JSONResponse(['error' => $e->getMessage()], 400); + } + } + + + /** + * Submit advice response. + * + * @param string $id The consultation UUID + * + * @return JSONResponse Updated consultation + * + * @NoAdminRequired + */ + public function submitResponse(string $id): JSONResponse + { + try { + $data = json_decode($this->request->getContent() ?: '{}', true) ?: []; + $result = $this->consultationService->submitResponse($id, $data); + return new JSONResponse($result); + } catch (\RuntimeException $e) { + return new JSONResponse(['error' => $e->getMessage()], 400); + } + } + + + /** + * Get overdue consultations. + * + * @return JSONResponse List of overdue consultations + * + * @NoAdminRequired + */ + public function overdue(): JSONResponse + { + $overdue = $this->consultationService->getOverdueConsultations(); + return new JSONResponse(['results' => $overdue]); + } +} diff --git a/lib/Controller/DrcController.php b/lib/Controller/DrcController.php new file mode 100644 index 0000000..805d639 --- /dev/null +++ b/lib/Controller/DrcController.php @@ -0,0 +1,2052 @@ + + * @copyright 2024 Conduction B.V. + * @license EUPL-1.2 https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12 + * + * @version GIT: + * + * @link https://procest.nl + */ + +declare(strict_types=1); + +namespace OCA\Procest\Controller; + +use OCA\Procest\Service\ZgwService; +use OCP\AppFramework\Controller; +use OCP\AppFramework\Http; +use OCP\AppFramework\Http\DataDownloadResponse; +use OCP\AppFramework\Http\JSONResponse; +use OCP\IL10N; +use OCP\IRequest; + +/** + * DRC (Documenten) API Controller + * + * Handles ZGW Documenten register resources with EIO-specific features: + * base64 file content handling, document locking/unlocking, and downloads. + * + * @psalm-suppress UnusedClass + * + * @SuppressWarnings(PHPMD.CouplingBetweenObjects) + * @SuppressWarnings(PHPMD.ExcessiveClassComplexity) + * @SuppressWarnings(PHPMD.TooManyMethods) + * @SuppressWarnings(PHPMD.TooManyPublicMethods) + * @SuppressWarnings(PHPMD.ExcessiveClassLength) + * @SuppressWarnings(PHPMD.ExcessiveMethodLength) + * @SuppressWarnings(PHPMD.CyclomaticComplexity) + * @SuppressWarnings(PHPMD.NPathComplexity) + */ +class DrcController extends Controller +{ + /** + * The ZGW API identifier for the Documenten register. + * + * @var string + */ + private const ZGW_API = 'documenten'; + + /** + * The EIO resource name. + * + * @var string + */ + private const EIO_RESOURCE = 'enkelvoudiginformatieobjecten'; + + /** + * Default chunk size for bestandsdelen (10 MB). + * + * @var int + */ + private const DEFAULT_CHUNK_SIZE = 10485760; + + /** + * Constructor. + * + * @param string $appName The app name. + * @param IRequest $request The incoming request. + * @param ZgwService $zgwService The shared ZGW service. + * @param IL10N $l10n The localization service. + */ + public function __construct( + string $appName, + IRequest $request, + private readonly ZgwService $zgwService, + private readonly IL10N $l10n, + ) { + parent::__construct(appName: $appName, request: $request); + }//end __construct() + + /** + * List resources of the given type. + * + * @param string $resource The ZGW resource name (e.g. enkelvoudiginformatieobjecten). + * + * @return JSONResponse + * + * @NoAdminRequired + * @NoCSRFRequired + * @PublicPage + * @CORS + */ + public function index(string $resource): JSONResponse + { + $authError = $this->zgwService->validateJwtAuth($this->request); + if ($authError !== null) { + return $authError; + } + + // ObjectInformatieObjecten and Gebruiksrechten return a plain array per ZGW spec. + if ($resource === 'objectinformatieobjecten' || $resource === 'gebruiksrechten') { + return $this->indexFlatArray(resource: $resource); + } + + return $this->zgwService->handleIndex($this->request, self::ZGW_API, $resource); + }//end index() + + /** + * List DRC resources as a plain array (per ZGW spec). + * + * Used for objectinformatieobjecten and gebruiksrechten which return + * flat arrays instead of paginated results. + * + * @param string $resource The ZGW resource name + * + * @return JSONResponse + */ + private function indexFlatArray(string $resource): JSONResponse + { + $objectService = $this->zgwService->getObjectService(); + if ($objectService === null) { + return $this->zgwService->unavailableResponse(); + } + + $mappingConfig = $this->zgwService->loadMappingConfig(self::ZGW_API, $resource); + if ($mappingConfig === null) { + return $this->zgwService->mappingNotFoundResponse(self::ZGW_API, $resource); + } + + try { + $params = $this->request->getParams(); + $filters = $this->zgwService->translateQueryParams( + params: $params, + mappingConfig: $mappingConfig + ); + + $searchParams = array_merge($filters, ['_limit' => 100]); + + $query = $objectService->buildSearchQuery( + requestParams: $searchParams, + register: $mappingConfig['sourceRegister'], + schema: $mappingConfig['sourceSchema'] + ); + $result = $objectService->searchObjectsPaginated(query: $query); + + $objects = $result['results'] ?? []; + $baseUrl = $this->zgwService->buildBaseUrl($this->request, self::ZGW_API, $resource); + $outboundMapping = $this->zgwService->createOutboundMapping(mappingConfig: $mappingConfig); + $mapped = []; + foreach ($objects as $object) { + if (is_array($object) === true) { + $objectData = $object; + } else { + $objectData = $object->jsonSerialize(); + } + + $mapped[] = $this->zgwService->applyOutboundMapping( + objectData: $objectData, + mapping: $outboundMapping, + mappingConfig: $mappingConfig, + baseUrl: $baseUrl + ); + } + + return new JSONResponse(data: $mapped); + } catch (\Throwable $e) { + $this->zgwService->getLogger()->error( + 'DRC list '.$resource.' error: '.$e->getMessage(), + ['exception' => $e] + ); + return new JSONResponse( + data: ['detail' => 'Internal server error'], + statusCode: Http::STATUS_INTERNAL_SERVER_ERROR + ); + }//end try + }//end indexFlatArray() + + /** + * Create a new resource of the given type. + * + * For EIO resources, handles base64 file content (inhoud field) by storing + * the file separately via the document service after saving the object. + * + * @param string $resource The ZGW resource name. + * + * @return JSONResponse + * + * @NoAdminRequired + * @NoCSRFRequired + * @PublicPage + * @CORS + */ + public function create(string $resource): JSONResponse + { + $authError = $this->zgwService->validateJwtAuth($this->request); + if ($authError !== null) { + return $authError; + } + + // Drc-006 (VNG): Gebruiksrechten create — set indicatieGebruiksrecht to true on EIO. + if ($resource === 'gebruiksrechten') { + $response = $this->zgwService->handleCreate($this->request, self::ZGW_API, $resource); + if ($response->getStatus() === Http::STATUS_CREATED) { + $this->updateIndicatieGebruiksrecht(response: $response); + } + + return $response; + } + + // For non-EIO resources, use generic create. + if ($resource !== self::EIO_RESOURCE) { + return $this->zgwService->handleCreate($this->request, self::ZGW_API, $resource); + } + + // EIO-specific: handle inhoud (base64 file content). + if ($this->zgwService->getObjectService() === null) { + return $this->zgwService->unavailableResponse(); + } + + $mappingConfig = $this->zgwService->loadMappingConfig(self::ZGW_API, $resource); + if ($mappingConfig === null) { + return $this->zgwService->mappingNotFoundResponse(self::ZGW_API, $resource); + } + + try { + $body = $this->zgwService->getRequestBody($this->request); + + $ruleResult = $this->zgwService->getBusinessRulesService()->validate( + zgwApi: self::ZGW_API, + resource: $resource, + action: 'create', + body: $body, + objectService: $this->zgwService->getObjectService(), + mappingConfig: $mappingConfig + ); + if ($ruleResult['valid'] === false) { + return new JSONResponse( + data: $this->zgwService->buildValidationError($ruleResult), + statusCode: $ruleResult['status'] + ); + } + + $body = $ruleResult['enrichedBody']; + + $inhoud = $body['inhoud'] ?? null; + + $inboundMapping = $this->zgwService->createInboundMapping(mappingConfig: $mappingConfig); + $englishData = $this->zgwService->applyInboundMapping( + body: $body, + mapping: $inboundMapping, + mappingConfig: $mappingConfig + ); + + if (empty($inhoud) === false) { + unset($englishData['content']); + } + + // @phpstan-ignore-next-line — defensive guard: applyInboundMapping may change + if (is_array($englishData) === false) { + return new JSONResponse( + data: ['detail' => 'Invalid mapping result'], + statusCode: Http::STATUS_BAD_REQUEST + ); + } + + // Chunked upload: set fileParts BEFORE initial save to avoid + // a second round-trip when bestandsomvang is given without inhoud. + $bestandsomvang = (int) ($body['bestandsomvang'] ?? 0); + if ($bestandsomvang > 0 && empty($inhoud) === true) { + $totalParts = (int) ceil($bestandsomvang / self::DEFAULT_CHUNK_SIZE); + + $englishData['fileParts'] = json_encode( + [ + 'pending' => true, + 'totalParts' => $totalParts, + 'chunkSize' => self::DEFAULT_CHUNK_SIZE, + 'fileSize' => $bestandsomvang, + ] + ); + } + + $object = $this->zgwService->getObjectService()->saveObject( + register: $mappingConfig['sourceRegister'], + schema: $mappingConfig['sourceSchema'], + object: $englishData + ); + if (is_array($object) === true) { + $objectData = $object; + } else { + $objectData = $object->jsonSerialize(); + } + + $objectUuid = $objectData['id'] ?? ($objectData['@self']['id'] ?? ''); + + // Store file content (only when inhoud is provided). + if (empty($inhoud) === false && $objectUuid !== '') { + $fileName = $objectData['fileName'] ?? 'document'; + if ($fileName === '') { + $fileName = 'document'; + } + + $fileSize = $this->zgwService->getDocumentService()->storeBase64( + uuid: $objectUuid, + fileName: $fileName, + content: $inhoud + ); + + if (empty($objectData['fileSize']) === true) { + $objectData['fileSize'] = $fileSize; + $objectData['uuid'] = $objectUuid; + $this->zgwService->getObjectService()->saveObject( + register: $mappingConfig['sourceRegister'], + schema: $mappingConfig['sourceSchema'], + object: $objectData + ); + } + }//end if + + $baseUrl = $this->zgwService->buildBaseUrl($this->request, self::ZGW_API, $resource); + $outboundMapping = $this->zgwService->createOutboundMapping(mappingConfig: $mappingConfig); + $mapped = $this->zgwService->applyOutboundMapping( + objectData: $objectData, + mapping: $outboundMapping, + mappingConfig: $mappingConfig, + baseUrl: $baseUrl + ); + + // Add bestandsdelen for chunked upload responses. + $chunkInfo = $this->parseFileParts(objectData: $objectData); + $mapped['bestandsdelen'] = []; + if ($chunkInfo !== null && ($chunkInfo['pending'] ?? false) === true) { + $mapped['bestandsdelen'] = $this->buildBestandsdelenArray( + uuid: $objectUuid, + fileSize: ($chunkInfo['fileSize'] ?? $bestandsomvang), + totalParts: ($chunkInfo['totalParts'] ?? 1) + ); + } + + $this->zgwService->publishNotification( + self::ZGW_API, + $resource, + $baseUrl.'/'.$objectUuid, + 'create' + ); + + return new JSONResponse(data: $mapped, statusCode: Http::STATUS_CREATED); + } catch (\Throwable $e) { + $this->zgwService->getLogger()->error( + 'DRC create error: '.$e->getMessage(), + ['exception' => $e] + ); + + return new JSONResponse( + data: ['detail' => $e->getMessage()], + statusCode: Http::STATUS_BAD_REQUEST + ); + }//end try + }//end create() + + /** + * Retrieve a single resource by UUID. + * + * @param string $resource The ZGW resource name. + * @param string $uuid The resource UUID. + * + * @return JSONResponse + * + * @NoAdminRequired + * @NoCSRFRequired + * @PublicPage + * @CORS + */ + public function show(string $resource, string $uuid): JSONResponse + { + $authError = $this->zgwService->validateJwtAuth($this->request); + if ($authError !== null) { + return $authError; + } + + $response = $this->zgwService->handleShow($this->request, self::ZGW_API, $resource, $uuid); + + // Add bestandsdelen for EIO resources with pending chunked uploads. + if ($resource === self::EIO_RESOURCE + && $response->getStatus() === Http::STATUS_OK + && $this->zgwService->getObjectService() !== null + ) { + $this->enrichWithBestandsdelen(response: $response, uuid: $uuid); + } + + return $response; + }//end show() + + /** + * Full update (PUT) a resource by UUID. + * + * For EIO resources, checks document lock and handles inhoud. + * + * @param string $resource The ZGW resource name. + * @param string $uuid The resource UUID. + * + * @return JSONResponse + * + * @NoAdminRequired + * @NoCSRFRequired + * @PublicPage + * @CORS + */ + public function update(string $resource, string $uuid): JSONResponse + { + $authError = $this->zgwService->validateJwtAuth($this->request); + if ($authError !== null) { + return $authError; + } + + if ($resource === self::EIO_RESOURCE) { + return $this->handleEioUpdate(resource: $resource, uuid: $uuid, partial: false); + } + + return $this->zgwService->handleUpdate($this->request, self::ZGW_API, $resource, $uuid, false); + }//end update() + + /** + * Partial update (PATCH) a resource by UUID. + * + * For EIO resources, checks document lock and handles inhoud. + * + * @param string $resource The ZGW resource name. + * @param string $uuid The resource UUID. + * + * @return JSONResponse + * + * @NoAdminRequired + * @NoCSRFRequired + * @PublicPage + * @CORS + */ + public function patch(string $resource, string $uuid): JSONResponse + { + $authError = $this->zgwService->validateJwtAuth($this->request); + if ($authError !== null) { + return $authError; + } + + if ($resource === self::EIO_RESOURCE) { + return $this->handleEioUpdate(resource: $resource, uuid: $uuid, partial: true); + } + + return $this->zgwService->handleUpdate($this->request, self::ZGW_API, $resource, $uuid, true); + }//end patch() + + /** + * Delete a resource by UUID. + * + * For EIO resources, deletes stored files after deleting the object. + * + * @param string $resource The ZGW resource name. + * @param string $uuid The resource UUID. + * + * @return JSONResponse + * + * @NoAdminRequired + * @NoCSRFRequired + * @PublicPage + * @CORS + */ + public function destroy(string $resource, string $uuid): JSONResponse + { + $authError = $this->zgwService->validateJwtAuth($this->request); + if ($authError !== null) { + return $authError; + } + + // Drc-006 (VNG): Gebruiksrechten delete — update indicatieGebruiksrecht on EIO. + if ($resource === 'gebruiksrechten') { + $grData = $this->getGebruiksrechtData(uuid: $uuid); + $response = $this->zgwService->handleDestroy($this->request, self::ZGW_API, $resource, $uuid); + if ($response->getStatus() === Http::STATUS_NO_CONTENT && $grData !== null) { + $this->checkAndClearIndicatieGebruiksrecht(eioUuid: $grData['informatieobjectUuid']); + } + + return $response; + } + + if ($resource === self::EIO_RESOURCE && $this->zgwService->getObjectService() !== null) { + $mappingConfig = $this->zgwService->loadMappingConfig(self::ZGW_API, $resource); + if ($mappingConfig !== null) { + try { + $existing = $this->zgwService->getObjectService()->find( + $uuid, + register: $mappingConfig['sourceRegister'], + schema: $mappingConfig['sourceSchema'] + ); + if (is_array($existing) === true) { + $existingData = $existing; + } else { + $existingData = $existing->jsonSerialize(); + } + + $fileName = $existingData['fileName'] ?? 'document'; + if ($fileName === '') { + $fileName = 'document'; + } + } catch (\Throwable $e) { + $fileName = null; + } + }//end if + }//end if + + // Drc-008a (VNG): Block EIO deletion when OIO relations exist. + if ($resource === self::EIO_RESOURCE && $this->zgwService->getObjectService() !== null) { + $oioRelations = $this->findOioRelationsForEio(eioUuid: $uuid); + if (empty($oioRelations) === false) { + return new JSONResponse( + [ + 'detail' => $this->l10n->t('The document cannot be deleted: there are related ObjectInformatieObjecten.'), + 'invalidParams' => [ + [ + 'name' => 'nonFieldErrors', + 'code' => 'pending-relations', + 'reason' => $this->l10n->t('The document cannot be deleted.'), + ], + ], + ], + Http::STATUS_BAD_REQUEST + ); + } + } + + $response = $this->zgwService->handleDestroy($this->request, self::ZGW_API, $resource, $uuid); + + // Post-delete cleanup (only on successful deletion). + if ($resource === self::EIO_RESOURCE + && $response->getStatus() === Http::STATUS_NO_CONTENT + ) { + // Drc-008 (VNG): Cascade delete gebruiksrechten after EIO deletion. + $this->cascadeDeleteGebruiksrechten(eioUuid: $uuid); + + // Delete stored files. + if (isset($fileName) === true && $fileName !== null) { + try { + $this->zgwService->getDocumentService()->deleteFiles(uuid: $uuid); + } catch (\Throwable $e) { + $this->zgwService->getLogger()->warning( + 'DRC file cleanup failed: '.$e->getMessage(), + ['exception' => $e] + ); + } + } + } + + return $response; + }//end destroy() + + /** + * Download the binary file content for an EIO document. + * + * @param string $uuid The document UUID. + * + * @return DataDownloadResponse|JSONResponse + * + * @NoAdminRequired + * @NoCSRFRequired + * @PublicPage + * @CORS + */ + public function download(string $uuid): DataDownloadResponse|JSONResponse + { + $authError = $this->zgwService->validateJwtAuth($this->request); + if ($authError !== null) { + return $authError; + } + + if ($this->zgwService->getObjectService() === null) { + return $this->zgwService->unavailableResponse(); + } + + $mappingConfig = $this->zgwService->getZgwMappingService()->getMapping('enkelvoudiginformatieobject'); + if ($mappingConfig === null) { + return new JSONResponse( + data: ['detail' => 'Document mapping not configured'], + statusCode: Http::STATUS_NOT_FOUND + ); + } + + try { + $object = $this->zgwService->getObjectService()->find( + register: $mappingConfig['sourceRegister'], + schema: $mappingConfig['sourceSchema'], + id: $uuid + ); + if (is_array($object) === true) { + $objectData = $object; + } else { + $objectData = $object->jsonSerialize(); + } + + $fileName = $objectData['fileName'] ?? 'document'; + if ($fileName === '') { + $fileName = 'document'; + } + + $format = $objectData['format'] ?? 'application/octet-stream'; + + if ($this->zgwService->getDocumentService()->fileExists(uuid: $uuid, fileName: $fileName) === false) { + return new JSONResponse( + data: ['detail' => $this->l10n->t('File not found.')], + statusCode: Http::STATUS_NOT_FOUND + ); + } + + $content = $this->zgwService->getDocumentService()->getContent(uuid: $uuid, fileName: $fileName); + + return new DataDownloadResponse(data: $content, filename: $fileName, contentType: $format); + } catch (\Throwable $e) { + $this->zgwService->getLogger()->error( + 'DRC download error: '.$e->getMessage(), + ['exception' => $e] + ); + + return new JSONResponse( + data: ['detail' => 'Not found'], + statusCode: Http::STATUS_NOT_FOUND + ); + }//end try + }//end download() + + /** + * Lock an EIO document. + * + * Sets the document as locked and generates a lock identifier. + * + * @param string $uuid The document UUID. + * + * @return JSONResponse + * + * @NoAdminRequired + * @NoCSRFRequired + * @PublicPage + * @CORS + */ + public function lock(string $uuid): JSONResponse + { + $authError = $this->zgwService->validateJwtAuth($this->request); + if ($authError !== null) { + return $authError; + } + + $objectService = $this->zgwService->getObjectService(); + if ($objectService === null) { + return $this->zgwService->unavailableResponse(); + } + + // Check if already locked (entity lock or data blob fallback). + $mappingConfig = $this->zgwService->loadMappingConfig(self::ZGW_API, self::EIO_RESOURCE); + if ($mappingConfig !== null + && $this->resolveStoredLockId( + objectService: $objectService, + mappingConfig: $mappingConfig, + uuid: $uuid + ) !== null + ) { + return new JSONResponse( + data: ['detail' => $this->l10n->t('Document is already locked.')], + statusCode: Http::STATUS_BAD_REQUEST + ); + } + + try { + $objectService->lockObject(identifier: $uuid); + + // OpenRegister's lock system doesn't produce a ZGW lockId. + // Generate one and store it in the data blob for verification. + $lockId = bin2hex(random_bytes(16)); + if ($mappingConfig !== null) { + $this->storeLockIdInData( + objectService: $objectService, + mappingConfig: $mappingConfig, + uuid: $uuid, + lockId: $lockId + ); + } + + return new JSONResponse( + data: ['lock' => $lockId], + statusCode: Http::STATUS_OK + ); + } catch (\OCA\OpenRegister\Exception\LockedException $e) { + return new JSONResponse( + data: ['detail' => $this->l10n->t('Document is already locked.')], + statusCode: Http::STATUS_BAD_REQUEST + ); + } catch (\Throwable $e) { + // Fallback: OpenRegister lock may fail without a Nextcloud user + // session (JWT-only context). Use manual lock via saveObject. + return $this->lockFallback(objectService: $objectService, uuid: $uuid, original: $e); + }//end try + }//end lock() + + /** + * Fallback lock implementation for when OpenRegister's LockHandler + * fails due to missing Nextcloud user session (JWT-only context). + * + * @param object $objectService The OpenRegister ObjectService + * @param string $uuid The document UUID + * @param \Throwable $original The original exception + * + * @return JSONResponse + */ + private function lockFallback(object $objectService, string $uuid, \Throwable $original): JSONResponse + { + $mappingConfig = $this->zgwService->loadMappingConfig(self::ZGW_API, self::EIO_RESOURCE); + if ($mappingConfig === null) { + return new JSONResponse( + data: ['detail' => $original->getMessage()], + statusCode: Http::STATUS_BAD_REQUEST + ); + } + + try { + $existing = $objectService->find( + $uuid, + register: $mappingConfig['sourceRegister'], + schema: $mappingConfig['sourceSchema'] + ); + if (is_array($existing) === true) { + $existingData = $existing; + } else { + $existingData = $existing->jsonSerialize(); + } + + $lockId = bin2hex(random_bytes(16)); + + unset($existingData['@self'], $existingData['id'], $existingData['organisation']); + $existingData['locked'] = true; + $existingData['lockId'] = $lockId; + + $objectService->saveObject( + register: $mappingConfig['sourceRegister'], + schema: $mappingConfig['sourceSchema'], + object: $existingData, + uuid: $uuid + ); + + return new JSONResponse(data: ['lock' => $lockId], statusCode: Http::STATUS_OK); + } catch (\Throwable $e) { + $this->zgwService->getLogger()->error( + 'DRC lock fallback error: '.$e->getMessage(), + ['exception' => $e] + ); + + return new JSONResponse( + data: ['detail' => $e->getMessage()], + statusCode: Http::STATUS_BAD_REQUEST + ); + }//end try + }//end lockFallback() + + /** + * Unlock an EIO document. + * + * Verifies the lock identifier and sets the document as unlocked. + * + * @param string $uuid The document UUID. + * + * @return JSONResponse + * + * @NoAdminRequired + * @NoCSRFRequired + * @PublicPage + * @CORS + */ + public function unlock(string $uuid): JSONResponse + { + $authError = $this->zgwService->validateJwtAuth($this->request); + if ($authError !== null) { + return $authError; + } + + $objectService = $this->zgwService->getObjectService(); + if ($objectService === null) { + return $this->zgwService->unavailableResponse(); + } + + $mappingConfig = $this->zgwService->loadMappingConfig(self::ZGW_API, self::EIO_RESOURCE); + + // Check if the document is actually locked (entity or data blob). + $storedLockId = null; + if ($mappingConfig !== null) { + $storedLockId = $this->resolveStoredLockId( + objectService: $objectService, + mappingConfig: $mappingConfig, + uuid: $uuid + ); + } + + if ($storedLockId === null) { + return new JSONResponse( + data: ['detail' => $this->l10n->t('Document is not locked.')], + statusCode: Http::STATUS_BAD_REQUEST + ); + } + + $body = $this->zgwService->getRequestBody($this->request); + $lockId = $body['lock'] ?? ''; + + // Determine if this is a forced unlock (wrong/empty lockId + scope). + if ($lockId !== $storedLockId) { + $hasForceScope = $this->zgwService->consumerHasScope( + $this->request, + 'documenten', + 'geforceerd-bijwerken' + ); + if ($hasForceScope === false) { + if ($lockId === '') { + $detail = $this->l10n->t('Forced unlocking is not allowed without the correct scope.'); + } else { + $detail = $this->l10n->t('Lock ID does not match and forced unlocking is not allowed.'); + } + + return new JSONResponse( + data: [ + 'detail' => $detail, + 'invalidParams' => [ + [ + 'name' => 'nonFieldErrors', + 'code' => 'incorrect-lock-id', + 'reason' => $detail, + ], + ], + ], + statusCode: Http::STATUS_BAD_REQUEST + ); + }//end if + }//end if + + // Try OpenRegister's LockHandler, fall back to clearing data blob. + try { + $objectService->unlockObject(identifier: $uuid); + + // Clear lockId from the data blob. + if ($mappingConfig !== null) { + $this->clearLockIdInData(objectService: $objectService, mappingConfig: $mappingConfig, uuid: $uuid); + } + + return new JSONResponse(data: [], statusCode: Http::STATUS_NO_CONTENT); + } catch (\Throwable $e) { + // Fallback: unlock via saveObject when LockHandler fails + // (e.g., no Nextcloud user session in JWT-only context). + return $this->unlockFallback(objectService: $objectService, uuid: $uuid, original: $e); + } + }//end unlock() + + /** + * Fallback unlock for when OpenRegister's LockHandler fails (no NC session). + * + * @param object $objectService The OpenRegister ObjectService + * @param string $uuid The document UUID + * @param \Throwable $original The original exception + * + * @return JSONResponse + */ + private function unlockFallback(object $objectService, string $uuid, \Throwable $original): JSONResponse + { + $mappingConfig = $this->zgwService->loadMappingConfig(self::ZGW_API, self::EIO_RESOURCE); + if ($mappingConfig === null) { + return new JSONResponse( + data: ['detail' => $original->getMessage()], + statusCode: Http::STATUS_BAD_REQUEST + ); + } + + try { + $existing = $objectService->find( + $uuid, + register: $mappingConfig['sourceRegister'], + schema: $mappingConfig['sourceSchema'] + ); + if (is_array($existing) === true) { + $existingData = $existing; + } else { + $existingData = $existing->jsonSerialize(); + } + + unset($existingData['@self'], $existingData['id'], $existingData['organisation']); + $existingData['locked'] = false; + $existingData['lockId'] = ''; + + foreach ($existingData as $key => $value) { + if ($value === null) { + unset($existingData[$key]); + } + } + + $objectService->saveObject( + register: $mappingConfig['sourceRegister'], + schema: $mappingConfig['sourceSchema'], + object: $existingData, + uuid: $uuid + ); + + return new JSONResponse(data: [], statusCode: Http::STATUS_NO_CONTENT); + } catch (\Throwable $e) { + $this->zgwService->getLogger()->error( + 'DRC unlock fallback error: '.$e->getMessage(), + ['exception' => $e] + ); + + return new JSONResponse( + data: ['detail' => $e->getMessage()], + statusCode: Http::STATUS_BAD_REQUEST + ); + }//end try + }//end unlockFallback() + + /** + * List audit trail entries for a resource. + * + * @param string $resource The ZGW resource name. + * @param string $uuid The resource UUID. + * + * @return JSONResponse + * + * @NoAdminRequired + * @NoCSRFRequired + * @PublicPage + * @CORS + */ + public function audittrailIndex(string $resource, string $uuid): JSONResponse + { + $authError = $this->zgwService->validateJwtAuth($this->request); + if ($authError !== null) { + return $authError; + } + + // Drc-008c (VNG): Return 404 if the parent resource no longer exists. + if ($this->zgwService->getObjectService() !== null) { + $mappingConfig = $this->zgwService->loadMappingConfig(self::ZGW_API, $resource); + if ($mappingConfig !== null) { + try { + $this->zgwService->getObjectService()->find( + $uuid, + register: $mappingConfig['sourceRegister'], + schema: $mappingConfig['sourceSchema'] + ); + } catch (\Throwable $e) { + return new JSONResponse( + data: ['detail' => $this->l10n->t('Not found.')], + statusCode: Http::STATUS_NOT_FOUND + ); + } + } + } + + return $this->zgwService->handleAudittrailIndex($this->request, self::ZGW_API, $resource, $uuid); + }//end audittrailIndex() + + /** + * Retrieve a single audit trail entry for a resource. + * + * @param string $resource The ZGW resource name. + * @param string $uuid The resource UUID. + * @param string $auditUuid The audit trail entry UUID. + * + * @return JSONResponse + * + * @NoAdminRequired + * @NoCSRFRequired + * @PublicPage + * @CORS + */ + public function audittrailShow(string $resource, string $uuid, string $auditUuid): JSONResponse + { + $authError = $this->zgwService->validateJwtAuth($this->request); + if ($authError !== null) { + return $authError; + } + + return $this->zgwService->handleAudittrailShow( + $this->request, + self::ZGW_API, + $resource, + $uuid, + $auditUuid + ); + }//end audittrailShow() + + /** + * Find relations for an EIO by UUID (drc-008a VNG). + * + * Checks OIO, ZIO, and BIO schemas for references to the given document. + * + * @param string $eioUuid The EIO UUID + * + * @return array List of related object IDs linked to this EIO + */ + private function findOioRelationsForEio(string $eioUuid): array + { + $objectService = $this->zgwService->getObjectService(); + if ($objectService === null) { + return []; + } + + // Check OIO, ZIO, and BIO schemas for references to this EIO. + $schemasToCheck = []; + + // OIO (ObjectInformatieObject) — DRC register. + $oioConfig = $this->zgwService->loadMappingConfig(self::ZGW_API, 'objectinformatieobjecten'); + if ($oioConfig !== null) { + $schemasToCheck[] = [ + 'register' => $oioConfig['sourceRegister'], + 'schema' => $oioConfig['sourceSchema'], + ]; + } + + // ZIO (ZaakInformatieObject) — ZRC register. + $zioConfig = $this->zgwService->loadMappingConfig('zaken', 'zaakinformatieobjecten'); + if ($zioConfig !== null) { + $schemasToCheck[] = [ + 'register' => $zioConfig['sourceRegister'], + 'schema' => $zioConfig['sourceSchema'], + ]; + } + + // BIO (BesluitInformatieObject) — BRC register. + $bioConfig = $this->zgwService->loadMappingConfig('besluiten', 'besluitinformatieobjecten'); + if ($bioConfig !== null) { + $schemasToCheck[] = [ + 'register' => $bioConfig['sourceRegister'], + 'schema' => $bioConfig['sourceSchema'], + ]; + } + + foreach ($schemasToCheck as $schemaInfo) { + $ids = $this->searchRelationsInSchema( + objectService: $objectService, + eioUuid: $eioUuid, + register: $schemaInfo['register'], + schema: $schemaInfo['schema'] + ); + if (empty($ids) === false) { + return $ids; + } + } + + return []; + }//end findOioRelationsForEio() + + /** + * Search for document relations in a specific schema. + * + * @param object $objectService The object service + * @param string $eioUuid The EIO UUID to search for + * @param string $register The register ID + * @param string $schema The schema ID + * + * @return array List of related object IDs + */ + private function searchRelationsInSchema( + object $objectService, + string $eioUuid, + string $register, + string $schema + ): array { + try { + // Try exact UUID match (OIO may store just the UUID). + $query = $objectService->buildSearchQuery( + requestParams: ['document' => $eioUuid, '_limit' => 1], + register: $register, + schema: $schema + ); + $result = $objectService->searchObjectsPaginated(query: $query); + $ids = $this->extractIdsFromResults(result: $result); + if (empty($ids) === false) { + return $ids; + } + + // Fallback: full-text search by UUID (document field stores + // the full URL, and field-specific LIKE is not supported). + $query = $objectService->buildSearchQuery( + requestParams: ['_search' => $eioUuid, '_limit' => 1], + register: $register, + schema: $schema + ); + $result = $objectService->searchObjectsPaginated(query: $query); + $ids = $this->extractIdsFromResults(result: $result); + if (empty($ids) === false) { + return $ids; + } + } catch (\Throwable $e) { + $this->zgwService->getLogger()->warning( + 'drc-008a: Relation search failed for schema '.$schema.': '.$e->getMessage() + ); + }//end try + + return []; + }//end searchRelationsInSchema() + + /** + * Extract IDs from a search result set. + * + * @param array $result The search result from searchObjectsPaginated + * + * @return array Array of object IDs + */ + private function extractIdsFromResults(array $result): array + { + $ids = []; + foreach (($result['results'] ?? []) as $obj) { + if (is_array($obj) === true) { + $data = $obj; + } else { + $data = $obj->jsonSerialize(); + } + + $id = $data['id'] ?? ($data['@self']['id'] ?? null); + if ($id !== null) { + $ids[] = $id; + } + } + + return $ids; + }//end extractIdsFromResults() + + /** + * Cascade delete all gebruiksrechten for an EIO (drc-008 VNG). + * + * @param string $eioUuid The EIO UUID + * + * @return void + */ + private function cascadeDeleteGebruiksrechten(string $eioUuid): void + { + $objectService = $this->zgwService->getObjectService(); + if ($objectService === null) { + return; + } + + $grConfig = $this->zgwService->loadMappingConfig(self::ZGW_API, 'gebruiksrechten'); + if ($grConfig === null) { + return; + } + + try { + $query = $objectService->buildSearchQuery( + requestParams: ['document' => '%'.$eioUuid.'%', '_limit' => 100], + register: $grConfig['sourceRegister'], + schema: $grConfig['sourceSchema'] + ); + $result = $objectService->searchObjectsPaginated(query: $query); + + foreach (($result['results'] ?? []) as $gr) { + if (is_array($gr) === true) { + $grData = $gr; + } else { + $grData = $gr->jsonSerialize(); + } + + $grUuid = $grData['id'] ?? ($grData['@self']['id'] ?? ''); + if ($grUuid !== '') { + $objectService->deleteObject(uuid: $grUuid); + } + } + } catch (\Throwable $e) { + $this->zgwService->getLogger()->warning( + 'drc-008: Failed to cascade delete gebruiksrechten for EIO '.$eioUuid.': '.$e->getMessage() + ); + }//end try + }//end cascadeDeleteGebruiksrechten() + + /** + * Update indicatieGebruiksrecht on an EIO after creating a gebruiksrecht (drc-006 VNG). + * + * Sets indicatieGebruiksrecht to true on the related informatieobject. + * + * @param JSONResponse $response The create response containing the gebruiksrecht data + * + * @return void + */ + private function updateIndicatieGebruiksrecht(JSONResponse $response): void + { + $data = $response->getData(); + if (is_array($data) === false) { + return; + } + + $ioUrl = $data['informatieobject'] ?? ''; + if ($ioUrl === '') { + return; + } + + $this->setIndicatieGebruiksrecht(ioUrl: $ioUrl, value: true); + }//end updateIndicatieGebruiksrecht() + + /** + * Get gebruiksrecht data before deletion (drc-006 VNG). + * + * @param string $uuid The gebruiksrecht UUID + * + * @return array|null Array with informatieobjectUuid, or null + */ + private function getGebruiksrechtData(string $uuid): ?array + { + $objectService = $this->zgwService->getObjectService(); + if ($objectService === null) { + return null; + } + + $mappingConfig = $this->zgwService->loadMappingConfig(self::ZGW_API, 'gebruiksrechten'); + if ($mappingConfig === null) { + return null; + } + + try { + $obj = $objectService->find( + $uuid, + register: $mappingConfig['sourceRegister'], + schema: $mappingConfig['sourceSchema'] + ); + if (is_array($obj) === true) { + $data = $obj; + } else { + $data = $obj->jsonSerialize(); + } + + $ioRef = $data['document'] ?? ($data['informatieobject'] ?? ''); + $uuidPattern = '/([0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12})/i'; + if (preg_match($uuidPattern, (string) $ioRef, $grMatches) === 1) { + return ['informatieobjectUuid' => $grMatches[1]]; + } + } catch (\Throwable $e) { + // Not found. + } + + return null; + }//end getGebruiksrechtData() + + /** + * Check if EIO still has gebruiksrechten after deletion (drc-006 VNG). + * + * If no gebruiksrechten remain, sets indicatieGebruiksrecht to null. + * + * @param string $eioUuid The EIO UUID + * + * @return void + */ + private function checkAndClearIndicatieGebruiksrecht(string $eioUuid): void + { + $objectService = $this->zgwService->getObjectService(); + if ($objectService === null) { + return; + } + + $grConfig = $this->zgwService->loadMappingConfig(self::ZGW_API, 'gebruiksrechten'); + if ($grConfig === null) { + return; + } + + try { + $query = $objectService->buildSearchQuery( + requestParams: ['document' => $eioUuid, '_limit' => 1], + register: $grConfig['sourceRegister'], + schema: $grConfig['sourceSchema'] + ); + $result = $objectService->searchObjectsPaginated(query: $query); + $total = $result['total'] ?? count($result['results'] ?? []); + + if ($total === 0) { + // No more gebruiksrechten — clear indicatieGebruiksrecht. + $eioConfig = $this->zgwService->loadMappingConfig(self::ZGW_API, self::EIO_RESOURCE); + if ($eioConfig !== null) { + try { + $eioObj = $objectService->find( + $eioUuid, + register: $eioConfig['sourceRegister'], + schema: $eioConfig['sourceSchema'] + ); + if (is_array($eioObj) === true) { + $eioData = $eioObj; + } else { + $eioData = $eioObj->jsonSerialize(); + } + + $eioData['usageRightsIndication'] = null; + + unset($eioData['@self'], $eioData['id'], $eioData['organisation']); + $objectService->saveObject( + register: $eioConfig['sourceRegister'], + schema: $eioConfig['sourceSchema'], + object: $eioData, + uuid: $eioUuid + ); + } catch (\Throwable $e) { + $this->zgwService->getLogger()->warning( + 'drc-006: Failed to clear indicatieGebruiksrecht: '.$e->getMessage() + ); + }//end try + }//end if + }//end if + } catch (\Throwable $e) { + $this->zgwService->getLogger()->warning( + 'drc-006: Failed to check remaining gebruiksrechten: '.$e->getMessage() + ); + }//end try + }//end checkAndClearIndicatieGebruiksrecht() + + /** + * Set indicatieGebruiksrecht on an EIO (drc-006 VNG). + * + * @param string $ioUrl The informatieobject URL + * @param bool|null $value The value to set (true or null) + * + * @return void + */ + private function setIndicatieGebruiksrecht(string $ioUrl, ?bool $value): void + { + $objectService = $this->zgwService->getObjectService(); + if ($objectService === null) { + return; + } + + $uuidPattern = '/([0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12})/i'; + if (preg_match($uuidPattern, $ioUrl, $ioMatches) !== 1) { + return; + } + + $eioConfig = $this->zgwService->loadMappingConfig(self::ZGW_API, self::EIO_RESOURCE); + if ($eioConfig === null) { + return; + } + + try { + $eioObj = $objectService->find( + $ioMatches[1], + register: $eioConfig['sourceRegister'], + schema: $eioConfig['sourceSchema'] + ); + if (is_array($eioObj) === true) { + $eioData = $eioObj; + } else { + $eioData = $eioObj->jsonSerialize(); + } + + $eioData['usageRightsIndication'] = $value; + + unset($eioData['@self'], $eioData['id'], $eioData['organisation']); + $objectService->saveObject( + register: $eioConfig['sourceRegister'], + schema: $eioConfig['sourceSchema'], + object: $eioData, + uuid: $ioMatches[1] + ); + } catch (\Throwable $e) { + $this->zgwService->getLogger()->warning( + 'drc-006: Failed to set indicatieGebruiksrecht: '.$e->getMessage() + ); + }//end try + }//end setIndicatieGebruiksrecht() + + /** + * Upload a chunk (bestandsdeel) for a document. + * + * Receives raw binary data for a single chunk and stores it. + * When all chunks have been uploaded, merges them into the final file. + * + * @param string $uuid The document UUID. + * + * @return JSONResponse + * + * @NoAdminRequired + * @NoCSRFRequired + * @PublicPage + * @CORS + * + * @SuppressWarnings(PHPMD.CyclomaticComplexity) + * @SuppressWarnings(PHPMD.NPathComplexity) + */ + public function uploadChunk(string $uuid): JSONResponse + { + $authError = $this->zgwService->validateJwtAuth($this->request); + if ($authError !== null) { + return $authError; + } + + $objectService = $this->zgwService->getObjectService(); + if ($objectService === null) { + return $this->zgwService->unavailableResponse(); + } + + $mappingConfig = $this->zgwService->loadMappingConfig(self::ZGW_API, self::EIO_RESOURCE); + if ($mappingConfig === null) { + return $this->zgwService->mappingNotFoundResponse(self::ZGW_API, self::EIO_RESOURCE); + } + + try { + // Find the EIO object. + $existing = $objectService->find( + $uuid, + register: $mappingConfig['sourceRegister'], + schema: $mappingConfig['sourceSchema'] + ); + if (is_array($existing) === true) { + $objectData = $existing; + } else { + $objectData = $existing->jsonSerialize(); + } + + // Verify this document has a pending chunked upload. + $chunkInfo = $this->parseFileParts(objectData: $objectData); + if ($chunkInfo === null || ($chunkInfo['pending'] ?? false) !== true) { + return new JSONResponse( + data: ['detail' => $this->l10n->t('This document has no pending chunked upload.')], + statusCode: Http::STATUS_BAD_REQUEST + ); + } + + $totalParts = (int) ($chunkInfo['totalParts'] ?? 0); + if ($totalParts <= 0) { + return new JSONResponse( + data: ['detail' => $this->l10n->t('Invalid chunk configuration.')], + statusCode: Http::STATUS_BAD_REQUEST + ); + } + + // Get volgnummer from query parameter or request body. + $volgnummer = (int) ($this->request->getParam('volgnummer') ?? 0); + if ($volgnummer <= 0 || $volgnummer > $totalParts) { + return new JSONResponse( + data: ['detail' => $this->l10n->t('Invalid sequence number. Expected 1-%s.', [$totalParts])], + statusCode: Http::STATUS_BAD_REQUEST + ); + } + + // Read raw body content. + $content = file_get_contents('php://input'); + if ($content === false || $content === '') { + return new JSONResponse( + data: ['detail' => $this->l10n->t('No file content received.')], + statusCode: Http::STATUS_BAD_REQUEST + ); + } + + // Store the chunk. + $docService = $this->zgwService->getDocumentService(); + $chunkSize = $docService->storeChunk( + uuid: $uuid, + volgnummer: $volgnummer, + content: $content + ); + + // Check if all chunks have been uploaded. + $uploaded = $docService->getUploadedChunks(uuid: $uuid, totalParts: $totalParts); + + if (count($uploaded) === $totalParts) { + // All chunks present — merge into final file. + $fileName = $objectData['fileName'] ?? 'document'; + if ($fileName === '') { + $fileName = 'document'; + } + + $mergedSize = $docService->mergeChunks( + uuid: $uuid, + fileName: $fileName, + totalParts: $totalParts + ); + + // Update the object: clear chunk metadata, set file size. + unset( + $objectData['@self'], + $objectData['id'], + $objectData['organisation'] + ); + $objectData['fileParts'] = ''; + $objectData['fileSize'] = $mergedSize; + + $objectService->saveObject( + register: $mappingConfig['sourceRegister'], + schema: $mappingConfig['sourceSchema'], + object: $objectData, + uuid: $uuid + ); + + return new JSONResponse( + data: [ + 'volgnummer' => $volgnummer, + 'omvang' => $chunkSize, + 'uploadComplete' => true, + 'bestandsomvang' => $mergedSize, + 'uploadedParts' => count($uploaded), + 'totalParts' => $totalParts, + ], + statusCode: Http::STATUS_OK + ); + }//end if + + return new JSONResponse( + data: [ + 'volgnummer' => $volgnummer, + 'omvang' => $chunkSize, + 'uploadComplete' => false, + 'uploadedParts' => count($uploaded), + 'totalParts' => $totalParts, + ], + statusCode: Http::STATUS_OK + ); + } catch (\Throwable $e) { + $this->zgwService->getLogger()->error( + 'DRC chunk upload error: '.$e->getMessage(), + ['exception' => $e] + ); + + return new JSONResponse( + data: ['detail' => $e->getMessage()], + statusCode: Http::STATUS_BAD_REQUEST + ); + }//end try + }//end uploadChunk() + + /** + * Enrich a show response with bestandsdelen if a chunked upload is pending. + * + * @param JSONResponse $response The show response + * @param string $uuid The document UUID + * + * @return void + */ + private function enrichWithBestandsdelen(JSONResponse $response, string $uuid): void + { + $mappingConfig = $this->zgwService->loadMappingConfig(self::ZGW_API, self::EIO_RESOURCE); + if ($mappingConfig === null) { + return; + } + + try { + $existing = $this->zgwService->getObjectService()->find( + $uuid, + register: $mappingConfig['sourceRegister'], + schema: $mappingConfig['sourceSchema'] + ); + if (is_array($existing) === true) { + $objectData = $existing; + } else { + $objectData = $existing->jsonSerialize(); + } + + $data = $response->getData(); + if (is_array($data) === false) { + return; + } + + $chunkInfo = $this->parseFileParts(objectData: $objectData); + $data['bestandsdelen'] = []; + if ($chunkInfo !== null && ($chunkInfo['pending'] ?? false) === true) { + $data['bestandsdelen'] = $this->buildBestandsdelenArray( + uuid: $uuid, + fileSize: (int) ($chunkInfo['fileSize'] ?? 0), + totalParts: (int) ($chunkInfo['totalParts'] ?? 1) + ); + } + + $response->setData(data: $data); + } catch (\Throwable $e) { + // Silently skip enrichment on errors. + }//end try + }//end enrichWithBestandsdelen() + + /** + * Parse the fileParts JSON field from an object data array. + * + * @param array $objectData The object data array + * + * @return array|null Decoded chunk info, or null if not set + */ + private function parseFileParts(array $objectData): ?array + { + $raw = $objectData['fileParts'] ?? ''; + if ($raw === '') { + return null; + } + + if (is_string($raw) === true) { + $decoded = json_decode($raw, true); + if (is_array($decoded) === true) { + return $decoded; + } + + return null; + } + + if (is_array($raw) === true) { + return $raw; + } + + return null; + }//end parseFileParts() + + /** + * Build the bestandsdelen array for a chunked upload response. + * + * @param string $uuid The document UUID + * @param int $fileSize The total file size in bytes + * @param int $totalParts The total number of parts + * + * @return array The bestandsdelen array with volgnummer, omvang, and url + */ + private function buildBestandsdelenArray(string $uuid, int $fileSize, int $totalParts): array + { + $baseUrl = $this->zgwService->buildBaseUrl( + $this->request, + self::ZGW_API, + 'bestandsdelen' + ); + + $bestandsdelen = []; + $remaining = $fileSize; + + for ($i = 1; $i <= $totalParts; $i++) { + $chunkSize = min(self::DEFAULT_CHUNK_SIZE, $remaining); + $remaining -= $chunkSize; + + $bestandsdelen[] = [ + 'url' => $baseUrl.'/'.$uuid.'?volgnummer='.$i, + 'volgnummer' => $i, + 'omvang' => $chunkSize, + 'lock' => '', + ]; + } + + return $bestandsdelen; + }//end buildBestandsdelenArray() + + /** + * Handle EIO-specific update with lock checking and inhoud handling. + * + * @param string $resource The ZGW resource name. + * @param string $uuid The resource UUID. + * @param bool $partial Whether this is a partial (PATCH) update. + * + * @return JSONResponse + */ + private function handleEioUpdate(string $resource, string $uuid, bool $partial): JSONResponse + { + if ($this->zgwService->getObjectService() === null) { + return $this->zgwService->unavailableResponse(); + } + + $mappingConfig = $this->zgwService->loadMappingConfig(self::ZGW_API, $resource); + if ($mappingConfig === null) { + return $this->zgwService->mappingNotFoundResponse(self::ZGW_API, $resource); + } + + try { + $body = $this->zgwService->getRequestBody($this->request); + + // Check document lock (drc-009). + $lockError = $this->checkDocumentLock( + mappingConfig: $mappingConfig, + uuid: $uuid, + body: $body, + partial: $partial + ); + if ($lockError !== null) { + return $lockError; + } + + if ($partial === true) { + $action = 'partial_update'; + } else { + $action = 'update'; + } + + $ruleResult = $this->zgwService->getBusinessRulesService()->validate( + zgwApi: self::ZGW_API, + resource: $resource, + action: $action, + body: $body, + objectService: $this->zgwService->getObjectService(), + mappingConfig: $mappingConfig + ); + if ($ruleResult['valid'] === false) { + return new JSONResponse( + data: $this->zgwService->buildValidationError($ruleResult), + statusCode: $ruleResult['status'] + ); + } + + $body = $ruleResult['enrichedBody']; + + $inhoud = $body['inhoud'] ?? null; + + // Preserve lock state from existing object. + $existing = $this->zgwService->getObjectService()->find( + $uuid, + register: $mappingConfig['sourceRegister'], + schema: $mappingConfig['sourceSchema'] + ); + if (is_array($existing) === true) { + $existingData = $existing; + } else { + $existingData = $existing->jsonSerialize(); + } + + $inboundMapping = $this->zgwService->createInboundMapping(mappingConfig: $mappingConfig); + $englishData = $this->zgwService->applyInboundMapping( + body: $body, + mapping: $inboundMapping, + mappingConfig: $mappingConfig + ); + + if (empty($inhoud) === false) { + unset($englishData['content']); + } + + // @phpstan-ignore-next-line — defensive guard: applyInboundMapping may change + if (is_array($englishData) === false) { + return new JSONResponse( + data: ['detail' => 'Invalid mapping result'], + statusCode: Http::STATUS_BAD_REQUEST + ); + } + + // Preserve lock state. + $englishData['locked'] = $existingData['locked'] ?? false; + $englishData['lockId'] = $existingData['lockId'] ?? ''; + + $object = $this->zgwService->getObjectService()->saveObject( + register: $mappingConfig['sourceRegister'], + schema: $mappingConfig['sourceSchema'], + object: $englishData, + uuid: $uuid + ); + if (is_array($object) === true) { + $objectData = $object; + } else { + $objectData = $object->jsonSerialize(); + } + + $objectUuid = $objectData['id'] ?? ($objectData['@self']['id'] ?? $uuid); + + // Store file content. + if (empty($inhoud) === false && $objectUuid !== '') { + $fileName = $objectData['fileName'] ?? 'document'; + if ($fileName === '') { + $fileName = 'document'; + } + + $fileSize = $this->zgwService->getDocumentService()->storeBase64( + uuid: $objectUuid, + fileName: $fileName, + content: $inhoud + ); + + if (empty($objectData['fileSize']) === true) { + $objectData['fileSize'] = $fileSize; + $objectData['uuid'] = $objectUuid; + $this->zgwService->getObjectService()->saveObject( + register: $mappingConfig['sourceRegister'], + schema: $mappingConfig['sourceSchema'], + object: $objectData + ); + } + }//end if + + $baseUrl = $this->zgwService->buildBaseUrl($this->request, self::ZGW_API, $resource); + $outboundMapping = $this->zgwService->createOutboundMapping(mappingConfig: $mappingConfig); + $mapped = $this->zgwService->applyOutboundMapping( + objectData: $objectData, + mapping: $outboundMapping, + mappingConfig: $mappingConfig, + baseUrl: $baseUrl + ); + + $this->zgwService->publishNotification( + self::ZGW_API, + $resource, + $baseUrl.'/'.$objectUuid, + 'update' + ); + + return new JSONResponse(data: $mapped); + } catch (\Throwable $e) { + $this->zgwService->getLogger()->error( + 'DRC update error: '.$e->getMessage(), + ['exception' => $e] + ); + + return new JSONResponse( + data: ['detail' => $e->getMessage()], + statusCode: Http::STATUS_BAD_REQUEST + ); + }//end try + }//end handleEioUpdate() + + /** + * Check document lock state before allowing update. + * + * Validates DRC business rules: + * - drc-009a/b: Document must be locked for updates. + * - drc-009d/e: Lock ID must be provided. + * - drc-009h/i: Lock ID must match the stored lock. + * + * @param array $mappingConfig The mapping configuration. + * @param string $uuid The document UUID. + * @param array $body The request body. + * @param bool $partial Whether this is a partial (PATCH) update. + * + * @return JSONResponse|null Error response if lock check fails, null if OK. + * + * @SuppressWarnings(PHPMD.BooleanArgumentFlag) — $partial distinguishes PUT vs PATCH lock semantics + */ + private function checkDocumentLock( + array $mappingConfig, + string $uuid, + array $body, + bool $partial=false, + ): ?JSONResponse { + $objectService = $this->zgwService->getObjectService(); + + // Drc-009a/b: Document must be locked to allow updates. + // Try OpenRegister's LockHandler first, then check the object data + // blob (used by lockFallback in JWT-only contexts). + $storedLockId = $this->resolveStoredLockId( + objectService: $objectService, + mappingConfig: $mappingConfig, + uuid: $uuid + ); + + if ($storedLockId === null) { + return new JSONResponse( + data: [ + 'detail' => $this->l10n->t('Only locked documents may be edited.'), + 'invalidParams' => [ + [ + 'name' => 'nonFieldErrors', + 'code' => 'unlocked', + 'reason' => $this->l10n->t('The document is not locked. Lock the document first.'), + ], + ], + ], + statusCode: Http::STATUS_BAD_REQUEST + ); + } + + $providedLockId = $body['lock'] ?? ''; + + // Drc-009d/e: Lock ID must be provided. + if ($providedLockId === '') { + // PUT (full update): lock is a required field (drc-009d). + // PATCH (partial): lock is missing for lock enforcement (drc-009e). + if ($partial === false) { + $errorName = 'lock'; + $errorCode = 'required'; + } else { + $errorName = 'nonFieldErrors'; + $errorCode = 'missing-lock-id'; + } + + return new JSONResponse( + data: [ + 'detail' => $this->l10n->t('Lock ID is required for editing a locked document.'), + 'invalidParams' => [ + [ + 'name' => $errorName, + 'code' => $errorCode, + 'reason' => $this->l10n->t('Lock ID is missing from the request.'), + ], + ], + ], + statusCode: Http::STATUS_BAD_REQUEST + ); + }//end if + + // Drc-009h/i: Lock ID must match. + if ($providedLockId !== $storedLockId) { + return new JSONResponse( + data: [ + 'detail' => $this->l10n->t('Lock ID does not match.'), + 'invalidParams' => [ + [ + 'name' => 'nonFieldErrors', + 'code' => 'incorrect-lock-id', + 'reason' => $this->l10n->t('Lock ID does not match the stored lock.'), + ], + ], + ], + statusCode: Http::STATUS_BAD_REQUEST + ); + } + + return null; + }//end checkDocumentLock() + + /** + * Resolve the stored lock ID from either OpenRegister's LockHandler + * or the object data blob (fallback lock). + * + * @param object $objectService The OpenRegister ObjectService + * @param array $mappingConfig The mapping configuration + * @param string $uuid The document UUID + * + * @return string|null The stored lock ID, or null if not locked + */ + private function resolveStoredLockId( + object $objectService, + array $mappingConfig, + string $uuid, + ): ?string { + // Try OpenRegister's dedicated lock system first. + try { + if (method_exists($objectService, 'getLockInfo') === true) { + $lockInfo = $objectService->getLockInfo($uuid); + if ($lockInfo !== null) { + $lockId = $lockInfo['lock_id'] ?? null; + if ($lockId !== null && $lockId !== '') { + return $lockId; + } + } + } + } catch (\Throwable $e) { + // GetLockInfo not available — fall through to data blob check. + } + + // Check the object data blob for lockId (stored by lock/lockFallback). + try { + $existing = $objectService->find( + $uuid, + register: $mappingConfig['sourceRegister'], + schema: $mappingConfig['sourceSchema'] + ); + if (is_array($existing) === true) { + $existingData = $existing; + } else { + $existingData = $existing->jsonSerialize(); + } + + // Check for stored lockId first. + $lockId = $existingData['lockId'] ?? null; + if ($lockId !== null && $lockId !== '') { + return (string) $lockId; + } + + // Fallback: check locked field (boolean or entity lock structure). + $isLocked = $existingData['locked'] ?? false; + if ($isLocked === true || $isLocked === 'true' + || $isLocked === 1 || is_array($isLocked) === true + ) { + return 'entity-lock'; + } + } catch (\Throwable $e) { + // Object not found — treat as not locked. + }//end try + + return null; + }//end resolveStoredLockId() + + /** + * Store a ZGW lockId in the object data blob. + * + * @param object $objectService The OpenRegister ObjectService + * @param array $mappingConfig The mapping configuration + * @param string $uuid The document UUID + * @param string $lockId The lock ID to store + * + * @return void + */ + private function storeLockIdInData( + object $objectService, + array $mappingConfig, + string $uuid, + string $lockId + ): void { + try { + $existing = $objectService->find( + $uuid, + register: $mappingConfig['sourceRegister'], + schema: $mappingConfig['sourceSchema'] + ); + if (is_array($existing) === true) { + $existingData = $existing; + } else { + $existingData = $existing->jsonSerialize(); + } + + unset($existingData['@self'], $existingData['id'], $existingData['organisation']); + $existingData['locked'] = true; + $existingData['lockId'] = $lockId; + + $objectService->saveObject( + register: $mappingConfig['sourceRegister'], + schema: $mappingConfig['sourceSchema'], + object: $existingData, + uuid: $uuid + ); + } catch (\Throwable $e) { + $this->zgwService->getLogger()->warning( + 'DRC: Failed to store lockId in data blob: '.$e->getMessage() + ); + }//end try + }//end storeLockIdInData() + + /** + * Clear the ZGW lockId from the object data blob after unlocking. + * + * @param object $objectService The OpenRegister ObjectService + * @param array $mappingConfig The mapping configuration + * @param string $uuid The document UUID + * + * @return void + */ + private function clearLockIdInData( + object $objectService, + array $mappingConfig, + string $uuid + ): void { + try { + $existing = $objectService->find( + $uuid, + register: $mappingConfig['sourceRegister'], + schema: $mappingConfig['sourceSchema'] + ); + if (is_array($existing) === true) { + $existingData = $existing; + } else { + $existingData = $existing->jsonSerialize(); + } + + unset($existingData['@self'], $existingData['id'], $existingData['organisation']); + $existingData['locked'] = false; + $existingData['lockId'] = ''; + + $objectService->saveObject( + register: $mappingConfig['sourceRegister'], + schema: $mappingConfig['sourceSchema'], + object: $existingData, + uuid: $uuid + ); + } catch (\Throwable $e) { + $this->zgwService->getLogger()->warning( + 'DRC: Failed to clear lockId in data blob: '.$e->getMessage() + ); + }//end try + }//end clearLockIdInData() +}//end class diff --git a/lib/Controller/EmailController.php b/lib/Controller/EmailController.php new file mode 100644 index 0000000..ce91f22 --- /dev/null +++ b/lib/Controller/EmailController.php @@ -0,0 +1,142 @@ + + * @copyright 2024 Conduction B.V. + * @license EUPL-1.2 https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12 + * + * @version GIT: + * + * @link https://procest.nl + */ + +declare(strict_types=1); + +namespace OCA\Procest\Controller; + +use OCA\Procest\Service\CaseEmailService; +use OCP\AppFramework\Controller; +use OCP\AppFramework\Http\JSONResponse; +use OCP\IRequest; + +/** + * Controller for case email operations. + */ +class EmailController extends Controller +{ + + + /** + * Constructor. + * + * @param string $appName The app name + * @param IRequest $request The request + * @param CaseEmailService $emailService The email service + */ + public function __construct( + string $appName, + IRequest $request, + private readonly CaseEmailService $emailService, + ) { + parent::__construct($appName, $request); + } + + + /** + * Send an email from case context. + * + * @param string $caseId The case UUID + * + * @return JSONResponse Send result + * + * @NoAdminRequired + */ + public function send(string $caseId): JSONResponse + { + try { + $data = json_decode($this->request->getContent() ?: '{}', true) ?: []; + $result = $this->emailService->sendEmail( + $caseId, + $data['to'] ?? '', + $data['subject'] ?? '', + $data['body'] ?? '', + $data['attachments'] ?? [], + ); + return new JSONResponse($result); + } catch (\RuntimeException $e) { + return new JSONResponse(['error' => $e->getMessage()], 400); + } + } + + + /** + * Send email using a template. + * + * @param string $caseId The case UUID + * + * @return JSONResponse Send result + * + * @NoAdminRequired + */ + public function sendFromTemplate(string $caseId): JSONResponse + { + try { + $data = json_decode($this->request->getContent() ?: '{}', true) ?: []; + $result = $this->emailService->sendFromTemplate( + $caseId, + $data['templateId'] ?? '', + $data['to'] ?? '', + ); + return new JSONResponse($result); + } catch (\RuntimeException $e) { + return new JSONResponse(['error' => $e->getMessage()], 400); + } + } + + + /** + * Preview a template with case data. + * + * @param string $caseId The case UUID + * + * @return JSONResponse Resolved template preview + * + * @NoAdminRequired + */ + public function preview(string $caseId): JSONResponse + { + $data = json_decode($this->request->getContent() ?: '{}', true) ?: []; + $template = $data['body'] ?? ''; + $caseData = []; // Would load from case. + $resolved = $this->emailService->resolveVariables($template, $caseData); + $unresolved = $this->emailService->findUnresolvedVariables($template, $caseData); + + return new JSONResponse([ + 'resolved' => $resolved, + 'unresolved' => $unresolved, + ]); + } + + + /** + * Get email templates for a case type. + * + * @param string $caseTypeId The case type UUID + * + * @return JSONResponse List of templates + * + * @NoAdminRequired + */ + public function templates(string $caseTypeId): JSONResponse + { + $templates = $this->emailService->getTemplatesForCaseType($caseTypeId); + return new JSONResponse(['results' => $templates]); + } +} diff --git a/lib/Controller/GisProxyController.php b/lib/Controller/GisProxyController.php new file mode 100644 index 0000000..078e451 --- /dev/null +++ b/lib/Controller/GisProxyController.php @@ -0,0 +1,129 @@ + + * @copyright 2024 Conduction B.V. + * @license EUPL-1.2 https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12 + * + * @version GIT: + * + * @link https://procest.nl + */ + +declare(strict_types=1); + +namespace OCA\Procest\Controller; + +use OCA\Procest\Service\GisProxyService; +use OCP\AppFramework\Controller; +use OCP\AppFramework\Http\DataResponse; +use OCP\AppFramework\Http\JSONResponse; +use OCP\AppFramework\Http\Response; +use OCP\IRequest; + +/** + * Controller for proxying WMS/WFS requests to external GIS services. + */ +class GisProxyController extends Controller +{ + /** + * Constructor for GisProxyController. + * + * @param string $appName The application name + * @param IRequest $request The request object + * @param GisProxyService $gisProxyService The GIS proxy service + * + * @return void + */ + public function __construct( + string $appName, + IRequest $request, + private GisProxyService $gisProxyService, + ) { + parent::__construct(appName: $appName, request: $request); + }//end __construct() + + /** + * Proxy a WMS/WFS request to an external service. + * + * @NoAdminRequired + * + * @return JSONResponse|Response The proxied response + */ + public function proxy(): JSONResponse|Response + { + $url = $this->request->getParam('url', ''); + $query = $this->request->getParam('query', []); + $type = $this->request->getParam('type', 'wms'); + + if (empty($url) === true) { + return new JSONResponse( + ['error' => 'Missing required parameter: url'], + 400 + ); + } + + try { + $result = $this->gisProxyService->proxyRequest($url, $query, $type); + return new JSONResponse($result); + } catch (\RuntimeException $e) { + $code = $e->getCode(); + if ($code === 403) { + return new JSONResponse( + ['error' => 'URL not allowed: '.$e->getMessage()], + 403 + ); + } + + if ($code === 429) { + return new JSONResponse( + ['error' => 'Rate limit exceeded'], + 429 + ); + } + + return new JSONResponse( + ['error' => 'Proxy request failed: '.$e->getMessage()], + 502 + ); + }//end try + }//end proxy() + + /** + * Fetch and parse GetCapabilities from a WMS/WFS service. + * + * @NoAdminRequired + * + * @return JSONResponse Parsed capabilities as JSON + */ + public function capabilities(): JSONResponse + { + $url = $this->request->getParam('url', ''); + $type = $this->request->getParam('type', 'wms'); + + if (empty($url) === true) { + return new JSONResponse( + ['error' => 'Missing required parameter: url'], + 400 + ); + } + + try { + $capabilities = $this->gisProxyService->getCapabilities($url, $type); + return new JSONResponse($capabilities); + } catch (\Exception $e) { + return new JSONResponse( + ['error' => 'Failed to fetch capabilities: '.$e->getMessage()], + 502 + ); + } + }//end capabilities() +}//end class diff --git a/lib/Controller/HealthController.php b/lib/Controller/HealthController.php new file mode 100644 index 0000000..1d49921 --- /dev/null +++ b/lib/Controller/HealthController.php @@ -0,0 +1,180 @@ + + * @copyright 2024 Conduction B.V. + * @license EUPL-1.2 https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12 + * + * @version GIT: + * + * @link https://procest.nl + */ + +declare(strict_types=1); + +namespace OCA\Procest\Controller; + +use OCA\Procest\AppInfo\Application; +use OCP\AppFramework\Controller; +use OCP\AppFramework\Http; +use OCP\AppFramework\Http\JSONResponse; +use OCP\IDBConnection; +use OCP\IRequest; +use OCP\App\IAppManager; +use Psr\Log\LoggerInterface; + +/** + * Controller for health check endpoints. + * + * @psalm-suppress UnusedClass + */ +class HealthController extends Controller +{ + /** + * Constructor. + * + * @param IRequest $request The HTTP request + * @param IDBConnection $db Database connection + * @param IAppManager $appManager App manager + * @param LoggerInterface $logger Logger + */ + public function __construct( + IRequest $request, + private IDBConnection $db, + private IAppManager $appManager, + private LoggerInterface $logger, + ) { + parent::__construct(appName: Application::APP_ID, request: $request); + }//end __construct() + + /** + * Health check endpoint. + * + * @NoCSRFRequired + * + * @return JSONResponse Health status + */ + public function index(): JSONResponse + { + $checks = []; + $status = 'ok'; + + // Check database connectivity. + $checks['database'] = $this->checkDatabase(); + if ($checks['database'] !== 'ok') { + $status = 'error'; + } + + // Check OpenRegister dependency (hard dependency). + $checks['openregister'] = $this->checkOpenRegister(); + if ($checks['openregister'] !== 'ok') { + $status = 'error'; + } + + // Check filesystem. + $checks['filesystem'] = $this->checkFilesystem(); + if ($checks['filesystem'] !== 'ok' && $status !== 'error') { + $status = 'degraded'; + } + + if ($status === 'ok') { + $httpStatus = Http::STATUS_OK; + } else { + $httpStatus = Http::STATUS_SERVICE_UNAVAILABLE; + } + + return new JSONResponse( + [ + 'status' => $status, + 'version' => $this->getAppVersion(), + 'checks' => $checks, + ], + $httpStatus + ); + }//end index() + + /** + * Check database connectivity. + * + * @return string 'ok' or error message + */ + private function checkDatabase(): string + { + try { + $qb = $this->db->getQueryBuilder(); + $qb->select($qb->createFunction('1')); + $result = $qb->executeQuery(); + $result->closeCursor(); + + return 'ok'; + } catch (\Exception $e) { + $this->logger->error('[HealthController] Database check failed', ['error' => $e->getMessage()]); + return 'failed: '.$e->getMessage(); + } + }//end checkDatabase() + + /** + * Check OpenRegister app availability. + * + * OpenRegister is a hard dependency for Procest. If it is not enabled, + * the overall health status MUST be "error". + * + * @return string 'ok' or error message + */ + private function checkOpenRegister(): string + { + try { + if ($this->appManager->isEnabledForUser('openregister') === true) { + return 'ok'; + } + + return 'failed: app not enabled'; + } catch (\Exception $e) { + $this->logger->error('[HealthController] OpenRegister check failed', ['error' => $e->getMessage()]); + return 'failed: '.$e->getMessage(); + } + }//end checkOpenRegister() + + /** + * Check filesystem access. + * + * @return string 'ok' or error message + */ + private function checkFilesystem(): string + { + try { + $tmpFile = sys_get_temp_dir().'/procest_health_'.getmypid(); + $written = file_put_contents($tmpFile, 'health'); + if ($written === false) { + return 'failed: cannot write to temp directory'; + } + + unlink($tmpFile); + + return 'ok'; + } catch (\Exception $e) { + return 'failed: '.$e->getMessage(); + } + }//end checkFilesystem() + + /** + * Get the app version. + * + * @return string The app version + */ + private function getAppVersion(): string + { + try { + return $this->appManager->getAppVersion(Application::APP_ID); + } catch (\Exception $e) { + return 'unknown'; + } + }//end getAppVersion() +}//end class diff --git a/lib/Controller/InspectionController.php b/lib/Controller/InspectionController.php new file mode 100644 index 0000000..7399f44 --- /dev/null +++ b/lib/Controller/InspectionController.php @@ -0,0 +1,253 @@ + + * @copyright 2024 Conduction B.V. + * @license EUPL-1.2 https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12 + * + * @version GIT: + * + * @link https://procest.nl + */ + +declare(strict_types=1); + +namespace OCA\Procest\Controller; + +use OCA\Procest\Service\ChecklistService; +use OCA\Procest\Service\InspectionService; +use OCP\AppFramework\Controller; +use OCP\AppFramework\Http; +use OCP\AppFramework\Http\JSONResponse; +use OCP\IRequest; +use OCP\IUserSession; +use Psr\Log\LoggerInterface; + +/** + * Controller for mobile field inspection operations. + * + * @psalm-suppress UnusedClass + */ +class InspectionController extends Controller +{ + /** + * Constructor. + * + * @param string $appName The app name. + * @param IRequest $request The request object. + * @param InspectionService $inspectionService The inspection service. + * @param ChecklistService $checklistService The checklist service. + * @param IUserSession $userSession The user session. + * @param LoggerInterface $logger The logger. + */ + public function __construct( + string $appName, + IRequest $request, + private readonly InspectionService $inspectionService, + private readonly ChecklistService $checklistService, + private readonly IUserSession $userSession, + private readonly LoggerInterface $logger, + ) { + parent::__construct($appName, $request); + } + + /** + * List inspections assigned to the current user. + * + * @return JSONResponse + * + * @psalm-suppress PossiblyUnusedMethod + */ + public function index(): JSONResponse + { + try { + $userId = $this->userSession->getUser()?->getUID() ?? ''; + $date = $this->request->getParam('date'); + + // In full implementation, query OpenRegister for inspections. + $inspections = $this->inspectionService->getInspections($userId, $date, []); + + return new JSONResponse(['results' => $inspections]); + } catch (\Throwable $e) { + $this->logger->error('Failed to list inspections: ' . $e->getMessage()); + return new JSONResponse( + ['error' => 'Failed to list inspections: ' . $e->getMessage()], + Http::STATUS_INTERNAL_SERVER_ERROR + ); + } + } + + /** + * Record GPS location for an inspection. + * + * @param string $id The inspection ID. + * + * @return JSONResponse + * + * @psalm-suppress PossiblyUnusedMethod + */ + public function captureLocation(string $id): JSONResponse + { + try { + $body = $this->getRequestBody(); + $latitude = (float)($body['latitude'] ?? 0); + $longitude = (float)($body['longitude'] ?? 0); + $accuracy = (float)($body['accuracy'] ?? 0); + $inspection = $body['inspection'] ?? []; + + if ($latitude === 0.0 && $longitude === 0.0) { + return new JSONResponse( + ['error' => 'Valid latitude and longitude are required'], + Http::STATUS_BAD_REQUEST + ); + } + + $result = $this->inspectionService->captureLocation( + $inspection, + $latitude, + $longitude, + $accuracy + ); + + return new JSONResponse($result); + } catch (\Throwable $e) { + $this->logger->error('Failed to capture location: ' . $e->getMessage()); + return new JSONResponse( + ['error' => 'Failed to capture location: ' . $e->getMessage()], + Http::STATUS_INTERNAL_SERVER_ERROR + ); + } + } + + /** + * Complete a checklist item. + * + * @param string $id The inspection ID. + * @param string $itemId The checklist item ID. + * + * @return JSONResponse + * + * @psalm-suppress PossiblyUnusedMethod + */ + public function completeChecklistItem(string $id, string $itemId): JSONResponse + { + try { + $body = $this->getRequestBody(); + $status = $body['status'] ?? ''; + $toelichting = $body['toelichting'] ?? ''; + $photoRefs = $body['photoRefs'] ?? []; + $checklist = $body['checklist'] ?? []; + + $updatedChecklist = $this->checklistService->completeItem( + $checklist, + $itemId, + $status, + $toelichting, + $photoRefs + ); + + $progress = $this->checklistService->getProgress($updatedChecklist); + + return new JSONResponse([ + 'checklist' => $updatedChecklist, + 'progress' => $progress, + ]); + } catch (\InvalidArgumentException $e) { + return new JSONResponse( + ['error' => $e->getMessage()], + Http::STATUS_BAD_REQUEST + ); + } catch (\Throwable $e) { + $this->logger->error('Failed to complete checklist item: ' . $e->getMessage()); + return new JSONResponse( + ['error' => 'Failed to complete checklist item: ' . $e->getMessage()], + Http::STATUS_INTERNAL_SERVER_ERROR + ); + } + } + + /** + * Upload a photo for an inspection. + * + * @param string $id The inspection ID. + * + * @return JSONResponse + * + * @psalm-suppress PossiblyUnusedMethod + */ + public function addPhoto(string $id): JSONResponse + { + try { + $body = $this->getRequestBody(); + $inspection = $body['inspection'] ?? []; + $photoMetadata = $body['photoMetadata'] ?? []; + + $updatedInspection = $this->inspectionService->addPhoto($inspection, $photoMetadata); + + return new JSONResponse($updatedInspection); + } catch (\Throwable $e) { + $this->logger->error('Failed to add photo: ' . $e->getMessage()); + return new JSONResponse( + ['error' => 'Failed to add photo: ' . $e->getMessage()], + Http::STATUS_INTERNAL_SERVER_ERROR + ); + } + } + + /** + * Complete an inspection. + * + * @param string $id The inspection ID. + * + * @return JSONResponse + * + * @psalm-suppress PossiblyUnusedMethod + */ + public function complete(string $id): JSONResponse + { + try { + $body = $this->getRequestBody(); + $inspection = $body['inspection'] ?? []; + $conclusion = $body['conclusion'] ?? ''; + + $result = $this->inspectionService->completeInspection($inspection, $conclusion); + + return new JSONResponse($result); + } catch (\InvalidArgumentException $e) { + return new JSONResponse( + ['error' => $e->getMessage()], + Http::STATUS_BAD_REQUEST + ); + } catch (\Throwable $e) { + $this->logger->error('Failed to complete inspection: ' . $e->getMessage()); + return new JSONResponse( + ['error' => 'Failed to complete inspection: ' . $e->getMessage()], + Http::STATUS_INTERNAL_SERVER_ERROR + ); + } + } + + /** + * Get the parsed request body. + * + * @return array + */ + private function getRequestBody(): array + { + $body = file_get_contents('php://input'); + if ($body === false || $body === '') { + return []; + } + + $decoded = json_decode($body, true); + return is_array($decoded) ? $decoded : []; + } +} diff --git a/lib/Controller/LegesController.php b/lib/Controller/LegesController.php new file mode 100644 index 0000000..4930f99 --- /dev/null +++ b/lib/Controller/LegesController.php @@ -0,0 +1,248 @@ + + * @copyright 2024 Conduction B.V. + * @license EUPL-1.2 https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12 + * + * @version GIT: + * + * @link https://procest.nl + */ + +declare(strict_types=1); + +namespace OCA\Procest\Controller; + +use OCA\Procest\Service\LegesCalculationService; +use OCA\Procest\Service\LegesExportService; +use OCP\AppFramework\Controller; +use OCP\AppFramework\Http; +use OCP\AppFramework\Http\DataDownloadResponse; +use OCP\AppFramework\Http\JSONResponse; +use OCP\IRequest; +use OCP\IUserSession; +use Psr\Log\LoggerInterface; + +/** + * Controller for leges calculation and export operations. + * + * @psalm-suppress UnusedClass + */ +class LegesController extends Controller +{ + /** + * Constructor. + * + * @param string $appName The app name. + * @param IRequest $request The request object. + * @param LegesCalculationService $calculationService The calculation service. + * @param LegesExportService $exportService The export service. + * @param IUserSession $userSession The user session. + * @param LoggerInterface $logger The logger. + */ + public function __construct( + string $appName, + IRequest $request, + private readonly LegesCalculationService $calculationService, + private readonly LegesExportService $exportService, + private readonly IUserSession $userSession, + private readonly LoggerInterface $logger, + ) { + parent::__construct($appName, $request); + } + + /** + * Calculate leges for a case. + * + * @return JSONResponse + * + * @psalm-suppress PossiblyUnusedMethod + */ + public function calculate(): JSONResponse + { + try { + $caseData = $this->request->getParam('caseData', []); + $verordening = $this->request->getParam('verordening', []); + + if (empty($caseData) || empty($verordening)) { + return new JSONResponse( + ['error' => 'Parameters caseData and verordening are required'], + Http::STATUS_BAD_REQUEST + ); + } + + if (is_string($caseData)) { + $caseData = json_decode($caseData, true) ?? []; + } + if (is_string($verordening)) { + $verordening = json_decode($verordening, true) ?? []; + } + + $userId = $this->userSession->getUser()?->getUID() ?? 'system'; + + $result = $this->calculationService->calculate($caseData, $verordening, $userId); + + return new JSONResponse($result); + } catch (\Throwable $e) { + $this->logger->error('Leges calculation failed: ' . $e->getMessage()); + return new JSONResponse( + ['error' => 'Calculation failed: ' . $e->getMessage()], + Http::STATUS_INTERNAL_SERVER_ERROR + ); + } + } + + /** + * Recalculate leges with corrected data. + * + * @return JSONResponse + * + * @psalm-suppress PossiblyUnusedMethod + */ + public function recalculate(): JSONResponse + { + try { + $caseData = $this->request->getParam('caseData', []); + $verordening = $this->request->getParam('verordening', []); + $previousCalc = $this->request->getParam('previousCalculation', []); + $reason = $this->request->getParam('correctionReason', ''); + + if (is_string($caseData)) { + $caseData = json_decode($caseData, true) ?? []; + } + if (is_string($verordening)) { + $verordening = json_decode($verordening, true) ?? []; + } + if (is_string($previousCalc)) { + $previousCalc = json_decode($previousCalc, true) ?? []; + } + + $userId = $this->userSession->getUser()?->getUID() ?? 'system'; + + $result = $this->calculationService->recalculate( + $caseData, + $verordening, + $previousCalc, + $userId, + $reason + ); + + return new JSONResponse($result); + } catch (\Throwable $e) { + $this->logger->error('Leges recalculation failed: ' . $e->getMessage()); + return new JSONResponse( + ['error' => 'Recalculation failed: ' . $e->getMessage()], + Http::STATUS_INTERNAL_SERVER_ERROR + ); + } + } + + /** + * Calculate verrekening (deduction). + * + * @return JSONResponse + * + * @psalm-suppress PossiblyUnusedMethod + */ + public function verrekening(): JSONResponse + { + try { + $currentAmount = (float)$this->request->getParam('currentAmount', 0); + $previousAmount = (float)$this->request->getParam('previousAmount', 0); + + $result = $this->calculationService->calculateVerrekening($currentAmount, $previousAmount); + + return new JSONResponse($result); + } catch (\Throwable $e) { + $this->logger->error('Verrekening calculation failed: ' . $e->getMessage()); + return new JSONResponse( + ['error' => 'Verrekening failed: ' . $e->getMessage()], + Http::STATUS_INTERNAL_SERVER_ERROR + ); + } + } + + /** + * Calculate teruggaaf (refund). + * + * @return JSONResponse + * + * @psalm-suppress PossiblyUnusedMethod + */ + public function teruggaaf(): JSONResponse + { + try { + $imposedAmount = (float)$this->request->getParam('imposedAmount', 0); + $refundFraction = (float)$this->request->getParam('refundFraction', 1.0); + $reason = (string)$this->request->getParam('reason', ''); + + $result = $this->calculationService->calculateTeruggaaf( + $imposedAmount, + $refundFraction, + $reason + ); + + return new JSONResponse($result); + } catch (\Throwable $e) { + $this->logger->error('Teruggaaf calculation failed: ' . $e->getMessage()); + return new JSONResponse( + ['error' => 'Teruggaaf failed: ' . $e->getMessage()], + Http::STATUS_INTERNAL_SERVER_ERROR + ); + } + } + + /** + * Export berekeningen to financial system format. + * + * @return DataDownloadResponse|JSONResponse + * + * @psalm-suppress PossiblyUnusedMethod + */ + public function export(): DataDownloadResponse|JSONResponse + { + try { + $berekeningen = $this->request->getParam('berekeningen', []); + $format = $this->request->getParam('format', LegesExportService::FORMAT_CSV); + + if (is_string($berekeningen)) { + $berekeningen = json_decode($berekeningen, true) ?? []; + } + + if (empty($berekeningen)) { + return new JSONResponse( + ['error' => 'No berekeningen provided for export'], + Http::STATUS_BAD_REQUEST + ); + } + + $result = $this->exportService->export($berekeningen, $format); + + return new DataDownloadResponse( + $result['content'], + $result['filename'], + $result['contentType'] + ); + } catch (\InvalidArgumentException $e) { + return new JSONResponse( + ['error' => $e->getMessage()], + Http::STATUS_BAD_REQUEST + ); + } catch (\Throwable $e) { + $this->logger->error('Leges export failed: ' . $e->getMessage()); + return new JSONResponse( + ['error' => 'Export failed: ' . $e->getMessage()], + Http::STATUS_INTERNAL_SERVER_ERROR + ); + } + } +} diff --git a/lib/Controller/MetricsController.php b/lib/Controller/MetricsController.php new file mode 100644 index 0000000..de69361 --- /dev/null +++ b/lib/Controller/MetricsController.php @@ -0,0 +1,429 @@ + + * @copyright 2024 Conduction B.V. + * @license EUPL-1.2 https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12 + * + * @version GIT: + * + * @link https://procest.nl + */ + +declare(strict_types=1); + +namespace OCA\Procest\Controller; + +use DateTime; +use OCA\Procest\AppInfo\Application; +use OCP\AppFramework\Controller; +use OCP\AppFramework\Http\TextPlainResponse; +use OCP\IDBConnection; +use OCP\IRequest; +use OCP\App\IAppManager; +use Psr\Log\LoggerInterface; + +/** + * Controller for exposing Prometheus metrics. + * + * @psalm-suppress UnusedClass + */ +class MetricsController extends Controller +{ + /** + * Default cache TTL for metric queries in seconds. + */ + private const CACHE_TTL_DEFAULT = 30; + + /** + * Cache TTL for overdue queries (change less frequently). + */ + private const CACHE_TTL_OVERDUE = 60; + + /** + * Constructor. + * + * @param IRequest $request The HTTP request + * @param IDBConnection $db Database connection + * @param IAppManager $appManager App manager + * @param LoggerInterface $logger Logger + */ + public function __construct( + IRequest $request, + private IDBConnection $db, + private IAppManager $appManager, + private LoggerInterface $logger, + ) { + parent::__construct(appName: Application::APP_ID, request: $request); + }//end __construct() + + /** + * Return Prometheus metrics in text exposition format. + * + * @NoCSRFRequired + * + * @return TextPlainResponse Prometheus-formatted metrics + */ + public function index(): TextPlainResponse + { + $metrics = $this->collectMetrics(); + $response = new TextPlainResponse($metrics); + $response->addHeader('Content-Type', 'text/plain; version=0.0.4; charset=utf-8'); + + return $response; + }//end index() + + /** + * Collect all metrics and format as Prometheus text. + * + * @return string Prometheus exposition format text + */ + private function collectMetrics(): string + { + $lines = []; + + // App info gauge. + $version = $this->getAppVersion(); + $phpVersion = PHP_VERSION; + $nextcloudVersion = $this->getNextcloudVersion(); + + $lines[] = '# HELP procest_info Application information'; + $lines[] = '# TYPE procest_info gauge'; + $lines[] = 'procest_info{version="'.$version.'",php_version="'.$phpVersion.'",nextcloud_version="'.$nextcloudVersion.'"} 1'; + $lines[] = ''; + + // App up gauge. + $isUp = $this->checkDatabaseHealth() ? 1 : 0; + $lines[] = '# HELP procest_up Whether the application is healthy'; + $lines[] = '# TYPE procest_up gauge'; + $lines[] = 'procest_up '.$isUp; + $lines[] = ''; + + // Cases total by status and case_type. + $lines[] = '# HELP procest_cases_total Total cases by status and case_type'; + $lines[] = '# TYPE procest_cases_total gauge'; + $caseCounts = $this->getCached('procest_metrics_case_counts', self::CACHE_TTL_DEFAULT, function () { + return $this->getCaseCounts(); + }); + foreach ($caseCounts as $row) { + $status = $this->sanitizeLabel(value: $row['status']); + $caseType = $this->sanitizeLabel(value: $row['case_type']); + $count = (int) $row['cnt']; + $lines[] = 'procest_cases_total{status="'.$status.'",case_type="'.$caseType.'"} '.$count; + } + + $lines[] = ''; + + // Cases overdue total. + $overdueCount = $this->getCached('procest_metrics_overdue_cases', self::CACHE_TTL_OVERDUE, function () { + return $this->getOverdueCasesCount(); + }); + $lines[] = '# HELP procest_cases_overdue_total Cases past their deadline'; + $lines[] = '# TYPE procest_cases_overdue_total gauge'; + $lines[] = 'procest_cases_overdue_total '.$overdueCount; + $lines[] = ''; + + // Cases created today. + $createdToday = $this->getCached('procest_metrics_created_today', self::CACHE_TTL_DEFAULT, function () { + return $this->getCasesCreatedTodayCount(); + }); + $lines[] = '# HELP procest_cases_created_today Cases created today'; + $lines[] = '# TYPE procest_cases_created_today gauge'; + $lines[] = 'procest_cases_created_today '.$createdToday; + $lines[] = ''; + + // Tasks total by status. + $lines[] = '# HELP procest_tasks_total Total tasks by status'; + $lines[] = '# TYPE procest_tasks_total gauge'; + $taskCounts = $this->getCached('procest_metrics_task_counts', self::CACHE_TTL_DEFAULT, function () { + return $this->getTaskCounts(); + }); + foreach ($taskCounts as $row) { + $status = $this->sanitizeLabel(value: $row['status']); + $count = (int) $row['cnt']; + $lines[] = 'procest_tasks_total{status="'.$status.'"} '.$count; + } + + $lines[] = ''; + + // Tasks overdue total. + $overdueTasksCount = $this->getCached('procest_metrics_overdue_tasks', self::CACHE_TTL_OVERDUE, function () { + return $this->getOverdueTasksCount(); + }); + $lines[] = '# HELP procest_tasks_overdue_total Tasks past their deadline'; + $lines[] = '# TYPE procest_tasks_overdue_total gauge'; + $lines[] = 'procest_tasks_overdue_total '.$overdueTasksCount; + $lines[] = ''; + + return implode("\n", $lines)."\n"; + }//end collectMetrics() + + /** + * Get a cached value from APCu, computing it on cache miss. + * + * Falls back to direct computation if APCu is unavailable. + * + * @param string $key The cache key + * @param int $ttl Cache TTL in seconds + * @param callable $compute Callable that computes the value on cache miss + * + * @return mixed The cached or freshly computed value + */ + private function getCached(string $key, int $ttl, callable $compute): mixed + { + if (function_exists('apcu_fetch') === true) { + $success = false; + $cached = apcu_fetch($key, $success); + if ($success === true) { + return $cached; + } + + $value = $compute(); + + try { + apcu_store($key, $value, $ttl); + } catch (\Exception $e) { + // Silently ignore APCu store failures. + $this->logger->debug('[MetricsController] APCu store failed', ['key' => $key, 'error' => $e->getMessage()]); + } + + return $value; + } + + return $compute(); + }//end getCached() + + /** + * Check basic database health. + * + * @return bool True if the database is reachable + */ + private function checkDatabaseHealth(): bool + { + try { + $qb = $this->db->getQueryBuilder(); + $qb->select($qb->createFunction('1')); + $result = $qb->executeQuery(); + $result->closeCursor(); + + return true; + } catch (\Exception $e) { + return false; + } + }//end checkDatabaseHealth() + + /** + * Get case counts grouped by status and case type from OpenRegister objects. + * + * Procest stores cases as OpenRegister objects. We query the objects table + * and extract status and case type from the JSON object column. + * + * @return array Grouped counts + */ + private function getCaseCounts(): array + { + try { + $qb = $this->db->getQueryBuilder(); + $qb->select( + $qb->createFunction("JSON_UNQUOTE(JSON_EXTRACT(o.object, '$.status')) AS status"), + $qb->createFunction("JSON_UNQUOTE(JSON_EXTRACT(o.object, '$.caseType')) AS case_type"), + ) + ->selectAlias($qb->func()->count('o.id'), 'cnt') + ->from('openregister_objects', 'o') + ->innerJoin('o', 'openregister_schemas', 's', $qb->expr()->eq('o.schema', 's.id')) + ->where($qb->expr()->like('s.title', $qb->createNamedParameter('%aak%'))) + ->groupBy('status', 'case_type'); + + $result = $qb->executeQuery(); + $rows = $result->fetchAll(); + $result->closeCursor(); + + return $rows; + } catch (\Exception $e) { + $this->logger->warning('[MetricsController] Failed to get case counts', ['error' => $e->getMessage()]); + return []; + }//end try + }//end getCaseCounts() + + /** + * Get count of overdue cases (past deadline). + * + * @return int Overdue case count + */ + private function getOverdueCasesCount(): int + { + try { + $now = (new DateTime())->format('Y-m-d'); + $qb = $this->db->getQueryBuilder(); + $qb->select($qb->func()->count('o.id', 'cnt')) + ->from('openregister_objects', 'o') + ->innerJoin('o', 'openregister_schemas', 's', $qb->expr()->eq('o.schema', 's.id')) + ->where($qb->expr()->like('s.title', $qb->createNamedParameter('%aak%'))) + ->andWhere($qb->expr()->isNotNull($qb->createFunction("JSON_UNQUOTE(JSON_EXTRACT(o.object, '$.uiterlijkeEinddatumAfdoening'))"))) + ->andWhere( + $qb->expr()->lt( + $qb->createFunction("JSON_UNQUOTE(JSON_EXTRACT(o.object, '$.uiterlijkeEinddatumAfdoening'))"), + $qb->createNamedParameter($now) + ) + ); + + $result = $qb->executeQuery(); + $row = $result->fetch(); + $result->closeCursor(); + + return (int) ($row['cnt'] ?? 0); + } catch (\Exception $e) { + $this->logger->warning('[MetricsController] Failed to get overdue cases', ['error' => $e->getMessage()]); + return 0; + }//end try + }//end getOverdueCasesCount() + + /** + * Get count of cases created today. + * + * @return int Cases created today count + */ + private function getCasesCreatedTodayCount(): int + { + try { + $today = (new DateTime())->format('Y-m-d'); + $qb = $this->db->getQueryBuilder(); + $qb->select($qb->func()->count('o.id', 'cnt')) + ->from('openregister_objects', 'o') + ->innerJoin('o', 'openregister_schemas', 's', $qb->expr()->eq('o.schema', 's.id')) + ->where($qb->expr()->like('s.title', $qb->createNamedParameter('%aak%'))) + ->andWhere( + $qb->expr()->like( + $qb->createFunction("JSON_UNQUOTE(JSON_EXTRACT(o.object, '$.startDate'))"), + $qb->createNamedParameter($today.'%') + ) + ); + + $result = $qb->executeQuery(); + $row = $result->fetch(); + $result->closeCursor(); + + return (int) ($row['cnt'] ?? 0); + } catch (\Exception $e) { + $this->logger->warning('[MetricsController] Failed to get cases created today', ['error' => $e->getMessage()]); + return 0; + }//end try + }//end getCasesCreatedTodayCount() + + /** + * Get task counts grouped by status. + * + * @return array Grouped counts + */ + private function getTaskCounts(): array + { + try { + $qb = $this->db->getQueryBuilder(); + $qb->select( + $qb->createFunction("JSON_UNQUOTE(JSON_EXTRACT(o.object, '$.status')) AS status"), + ) + ->selectAlias($qb->func()->count('o.id'), 'cnt') + ->from('openregister_objects', 'o') + ->innerJoin('o', 'openregister_schemas', 's', $qb->expr()->eq('o.schema', 's.id')) + ->where($qb->expr()->like('s.title', $qb->createNamedParameter('%taak%'))) + ->groupBy('status'); + + $result = $qb->executeQuery(); + $rows = $result->fetchAll(); + $result->closeCursor(); + + return $rows; + } catch (\Exception $e) { + $this->logger->warning('[MetricsController] Failed to get task counts', ['error' => $e->getMessage()]); + return []; + } + }//end getTaskCounts() + + /** + * Get count of overdue tasks. + * + * @return int Overdue task count + */ + private function getOverdueTasksCount(): int + { + try { + $now = (new DateTime())->format('Y-m-d'); + $qb = $this->db->getQueryBuilder(); + $qb->select($qb->func()->count('o.id', 'cnt')) + ->from('openregister_objects', 'o') + ->innerJoin('o', 'openregister_schemas', 's', $qb->expr()->eq('o.schema', 's.id')) + ->where($qb->expr()->like('s.title', $qb->createNamedParameter('%taak%'))) + ->andWhere($qb->expr()->isNotNull($qb->createFunction("JSON_UNQUOTE(JSON_EXTRACT(o.object, '$.deadline'))"))) + ->andWhere( + $qb->expr()->lt( + $qb->createFunction("JSON_UNQUOTE(JSON_EXTRACT(o.object, '$.deadline'))"), + $qb->createNamedParameter($now) + ) + ); + + $result = $qb->executeQuery(); + $row = $result->fetch(); + $result->closeCursor(); + + return (int) ($row['cnt'] ?? 0); + } catch (\Exception $e) { + $this->logger->warning('[MetricsController] Failed to get overdue tasks', ['error' => $e->getMessage()]); + return 0; + }//end try + }//end getOverdueTasksCount() + + /** + * Get the app version. + * + * @return string The app version + */ + private function getAppVersion(): string + { + try { + return $this->appManager->getAppVersion(Application::APP_ID); + } catch (\Exception $e) { + return 'unknown'; + } + }//end getAppVersion() + + /** + * Get the Nextcloud version string. + * + * @return string The Nextcloud version + */ + private function getNextcloudVersion(): string + { + try { + if (class_exists('\OC_Util') === true && method_exists('\OC_Util', 'getVersionString') === true) { + return \OC_Util::getVersionString(); + } + + return 'unknown'; + } catch (\Exception $e) { + return 'unknown'; + } + }//end getNextcloudVersion() + + /** + * Sanitize a label value for Prometheus format. + * + * @param string $value The label value + * + * @return string Sanitized label value + */ + private function sanitizeLabel(string $value): string + { + return str_replace( + ['\\', '"', "\n"], + ['\\\\', '\\"', '\\n'], + $value + ); + }//end sanitizeLabel() +}//end class diff --git a/lib/Controller/MilestoneController.php b/lib/Controller/MilestoneController.php new file mode 100644 index 0000000..80456aa --- /dev/null +++ b/lib/Controller/MilestoneController.php @@ -0,0 +1,140 @@ + + * @copyright 2024 Conduction B.V. + * @license EUPL-1.2 https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12 + * + * @version GIT: + * + * @link https://procest.nl + */ + +declare(strict_types=1); + +namespace OCA\Procest\Controller; + +use OCA\Procest\Service\MilestoneService; +use OCP\AppFramework\Controller; +use OCP\AppFramework\Http\JSONResponse; +use OCP\IRequest; +use OCP\IUserSession; + +/** + * Controller for milestone progress tracking. + */ +class MilestoneController extends Controller +{ + + + /** + * Constructor. + * + * @param string $appName The app name + * @param IRequest $request The request + * @param MilestoneService $milestoneService The milestone service + * @param IUserSession $userSession The user session + */ + public function __construct( + string $appName, + IRequest $request, + private readonly MilestoneService $milestoneService, + private readonly IUserSession $userSession, + ) { + parent::__construct($appName, $request); + } + + + /** + * Get milestone progress for a case. + * + * @param string $caseId The case UUID + * @param string $caseTypeId The case type UUID + * + * @return JSONResponse Milestone progress data + * + * @NoAdminRequired + */ + public function progress(string $caseId, string $caseTypeId): JSONResponse + { + try { + $progress = $this->milestoneService->getCaseProgress($caseId, $caseTypeId); + return new JSONResponse($progress); + } catch (\RuntimeException $e) { + return new JSONResponse(['error' => $e->getMessage()], 500); + } + } + + + /** + * Mark a milestone as reached. + * + * @param string $caseId The case UUID + * @param string $milestoneId The milestone definition UUID + * + * @return JSONResponse The created milestone record + * + * @NoAdminRequired + */ + public function mark(string $caseId, string $milestoneId): JSONResponse + { + $user = $this->userSession->getUser(); + $userId = $user !== null ? $user->getUID() : 'system'; + + try { + $result = $this->milestoneService->markMilestone( + $caseId, + $milestoneId, + $userId, + 'manual', + ); + return new JSONResponse($result); + } catch (\RuntimeException $e) { + return new JSONResponse(['error' => $e->getMessage()], 400); + } + } + + + /** + * Reverse a milestone. + * + * @param string $caseId The case UUID + * @param string $milestoneId The milestone definition UUID + * + * @return JSONResponse Success status + * + * @NoAdminRequired + */ + public function reverse(string $caseId, string $milestoneId): JSONResponse + { + $reason = $this->request->getParam('reason', ''); + if (trim($reason) === '') { + return new JSONResponse( + ['error' => 'Reason is required for milestone reversal'], + 400, + ); + } + + $user = $this->userSession->getUser(); + $userId = $user !== null ? $user->getUID() : 'system'; + + try { + $success = $this->milestoneService->reverseMilestone( + $caseId, + $milestoneId, + $userId, + $reason, + ); + return new JSONResponse(['success' => $success]); + } catch (\RuntimeException $e) { + return new JSONResponse(['error' => $e->getMessage()], 400); + } + } +} diff --git a/lib/Controller/NrcController.php b/lib/Controller/NrcController.php new file mode 100644 index 0000000..e90ab64 --- /dev/null +++ b/lib/Controller/NrcController.php @@ -0,0 +1,296 @@ + + * @copyright 2024 Conduction B.V. + * @license EUPL-1.2 https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12 + * + * @version GIT: + * + * @link https://procest.nl + */ + +declare(strict_types=1); + +namespace OCA\Procest\Controller; + +use OCA\Procest\Service\ZgwService; +use OCP\AppFramework\Controller; +use OCP\AppFramework\Http; +use OCP\AppFramework\Http\JSONResponse; +use OCP\IRequest; + +/** + * NRC (Notificaties) API Controller + * + * Handles ZGW Notificaties register resources: kanaal and abonnement, + * plus a notificatie acceptance endpoint. + * + * @psalm-suppress UnusedClass + * + * @SuppressWarnings(PHPMD.TooManyPublicMethods) + */ +class NrcController extends Controller +{ + /** + * The ZGW API identifier for the Notificaties register. + * + * @var string + */ + private const ZGW_API = 'notificaties'; + + /** + * Constructor. + * + * @param string $appName The app name. + * @param IRequest $request The incoming request. + * @param ZgwService $zgwService The shared ZGW service. + */ + public function __construct( + string $appName, + IRequest $request, + private readonly ZgwService $zgwService, + ) { + parent::__construct(appName: $appName, request: $request); + }//end __construct() + + /** + * List resources of the given type. + * + * @param string $resource The ZGW resource name (e.g. kanaal, abonnement). + * + * @return JSONResponse + * + * @NoAdminRequired + * @NoCSRFRequired + * @PublicPage + * @CORS + */ + public function index(string $resource): JSONResponse + { + $authError = $this->zgwService->validateJwtAuth($this->request); + if ($authError !== null) { + return $authError; + } + + return $this->zgwService->handleIndex($this->request, self::ZGW_API, $resource); + }//end index() + + /** + * Create a new resource of the given type. + * + * @param string $resource The ZGW resource name. + * + * @return JSONResponse + * + * @NoAdminRequired + * @NoCSRFRequired + * @PublicPage + * @CORS + */ + public function create(string $resource): JSONResponse + { + $authError = $this->zgwService->validateJwtAuth($this->request); + if ($authError !== null) { + return $authError; + } + + return $this->zgwService->handleCreate($this->request, self::ZGW_API, $resource); + }//end create() + + /** + * Retrieve a single resource by UUID. + * + * @param string $resource The ZGW resource name. + * @param string $uuid The resource UUID. + * + * @return JSONResponse + * + * @NoAdminRequired + * @NoCSRFRequired + * @PublicPage + * @CORS + */ + public function show(string $resource, string $uuid): JSONResponse + { + $authError = $this->zgwService->validateJwtAuth($this->request); + if ($authError !== null) { + return $authError; + } + + return $this->zgwService->handleShow($this->request, self::ZGW_API, $resource, $uuid); + }//end show() + + /** + * Full update (PUT) a resource by UUID. + * + * @param string $resource The ZGW resource name. + * @param string $uuid The resource UUID. + * + * @return JSONResponse + * + * @NoAdminRequired + * @NoCSRFRequired + * @PublicPage + * @CORS + */ + public function update(string $resource, string $uuid): JSONResponse + { + $authError = $this->zgwService->validateJwtAuth($this->request); + if ($authError !== null) { + return $authError; + } + + return $this->zgwService->handleUpdate( + $this->request, + self::ZGW_API, + $resource, + $uuid, + false + ); + }//end update() + + /** + * Partial update (PATCH) a resource by UUID. + * + * @param string $resource The ZGW resource name. + * @param string $uuid The resource UUID. + * + * @return JSONResponse + * + * @NoAdminRequired + * @NoCSRFRequired + * @PublicPage + * @CORS + */ + public function patch(string $resource, string $uuid): JSONResponse + { + $authError = $this->zgwService->validateJwtAuth($this->request); + if ($authError !== null) { + return $authError; + } + + return $this->zgwService->handleUpdate( + $this->request, + self::ZGW_API, + $resource, + $uuid, + true + ); + }//end patch() + + /** + * Delete a resource by UUID. + * + * @param string $resource The ZGW resource name. + * @param string $uuid The resource UUID. + * + * @return JSONResponse + * + * @NoAdminRequired + * @NoCSRFRequired + * @PublicPage + * @CORS + */ + public function destroy(string $resource, string $uuid): JSONResponse + { + $authError = $this->zgwService->validateJwtAuth($this->request); + if ($authError !== null) { + return $authError; + } + + return $this->zgwService->handleDestroy( + $this->request, + self::ZGW_API, + $resource, + $uuid + ); + }//end destroy() + + /** + * Accept a notificatie (echo back the body with 201). + * + * This endpoint receives incoming ZGW notifications and acknowledges them. + * + * @return JSONResponse + * + * @NoAdminRequired + * @NoCSRFRequired + * @PublicPage + * @CORS + */ + public function notificatieCreate(): JSONResponse + { + $authError = $this->zgwService->validateJwtAuth($this->request); + if ($authError !== null) { + return $authError; + } + + $body = $this->request->getParams(); + unset($body['_route']); + + return new JSONResponse(data: $body, statusCode: Http::STATUS_CREATED); + }//end notificatieCreate() + + /** + * List audit trail entries for a resource. + * + * @param string $resource The ZGW resource name. + * @param string $uuid The resource UUID. + * + * @return JSONResponse + * + * @NoAdminRequired + * @NoCSRFRequired + * @PublicPage + * @CORS + */ + public function audittrailIndex(string $resource, string $uuid): JSONResponse + { + $authError = $this->zgwService->validateJwtAuth($this->request); + if ($authError !== null) { + return $authError; + } + + return $this->zgwService->handleAudittrailIndex($this->request, self::ZGW_API, $resource, $uuid); + }//end audittrailIndex() + + /** + * Retrieve a single audit trail entry for a resource. + * + * @param string $resource The ZGW resource name. + * @param string $uuid The resource UUID. + * @param string $auditUuid The audit trail entry UUID. + * + * @return JSONResponse + * + * @NoAdminRequired + * @NoCSRFRequired + * @PublicPage + * @CORS + */ + public function audittrailShow(string $resource, string $uuid, string $auditUuid): JSONResponse + { + $authError = $this->zgwService->validateJwtAuth($this->request); + if ($authError !== null) { + return $authError; + } + + return $this->zgwService->handleAudittrailShow( + $this->request, + self::ZGW_API, + $resource, + $uuid, + $auditUuid + ); + }//end audittrailShow() +}//end class diff --git a/lib/Controller/ParaferingController.php b/lib/Controller/ParaferingController.php new file mode 100644 index 0000000..a0477e3 --- /dev/null +++ b/lib/Controller/ParaferingController.php @@ -0,0 +1,257 @@ + + * @copyright 2024 Conduction B.V. + * @license EUPL-1.2 https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12 + * + * @version GIT: + * + * @link https://procest.nl + */ + +declare(strict_types=1); + +namespace OCA\Procest\Controller; + +use OCA\Procest\Service\ParaferingService; +use OCP\AppFramework\Controller; +use OCP\AppFramework\Http; +use OCP\AppFramework\Http\JSONResponse; +use OCP\IRequest; +use OCP\IUserSession; +use Psr\Log\LoggerInterface; + +/** + * Controller for B&W parafering workflow operations. + * + * @psalm-suppress UnusedClass + */ +class ParaferingController extends Controller +{ + /** + * Constructor. + * + * @param string $appName The app name. + * @param IRequest $request The request object. + * @param ParaferingService $paraferingService The parafering service. + * @param IUserSession $userSession The user session. + * @param LoggerInterface $logger The logger. + */ + public function __construct( + string $appName, + IRequest $request, + private readonly ParaferingService $paraferingService, + private readonly IUserSession $userSession, + private readonly LoggerInterface $logger, + ) { + parent::__construct($appName, $request); + } + + /** + * Create a new voorstel. + * + * @return JSONResponse + * + * @psalm-suppress PossiblyUnusedMethod + */ + public function createVoorstel(): JSONResponse + { + try { + $data = $this->getRequestBody(); + $userId = $this->userSession->getUser()?->getUID() ?? 'system'; + + if (empty($data['caseId'])) { + return new JSONResponse( + ['error' => 'Parameter caseId is required'], + Http::STATUS_BAD_REQUEST + ); + } + + $data['steller'] = $data['steller'] ?? $userId; + $voorstel = $this->paraferingService->createVoorstel($data); + + return new JSONResponse($voorstel, Http::STATUS_CREATED); + } catch (\Throwable $e) { + $this->logger->error('Failed to create voorstel: ' . $e->getMessage()); + return new JSONResponse( + ['error' => 'Failed to create voorstel: ' . $e->getMessage()], + Http::STATUS_INTERNAL_SERVER_ERROR + ); + } + } + + /** + * Start parafering on a voorstel. + * + * @param string $id The voorstel ID. + * + * @return JSONResponse + * + * @psalm-suppress PossiblyUnusedMethod + */ + public function startParafering(string $id): JSONResponse + { + try { + $data = $this->getRequestBody(); + $voorstel = $data['voorstel'] ?? []; + $route = $data['route'] ?? []; + + if (empty($voorstel) || empty($route)) { + return new JSONResponse( + ['error' => 'Parameters voorstel and route are required'], + Http::STATUS_BAD_REQUEST + ); + } + + $result = $this->paraferingService->startParafering($voorstel, $route); + + return new JSONResponse($result); + } catch (\InvalidArgumentException $e) { + return new JSONResponse( + ['error' => $e->getMessage()], + Http::STATUS_BAD_REQUEST + ); + } catch (\Throwable $e) { + $this->logger->error('Failed to start parafering: ' . $e->getMessage()); + return new JSONResponse( + ['error' => 'Failed to start parafering: ' . $e->getMessage()], + Http::STATUS_INTERNAL_SERVER_ERROR + ); + } + } + + /** + * Execute a parafering action (paraferen). + * + * @param string $id The voorstel ID. + * + * @return JSONResponse + * + * @psalm-suppress PossiblyUnusedMethod + */ + public function paraferen(string $id): JSONResponse + { + return $this->handleAction($id, ParaferingService::ACTION_PARAFEREN); + } + + /** + * Execute a terugsturen action. + * + * @param string $id The voorstel ID. + * + * @return JSONResponse + * + * @psalm-suppress PossiblyUnusedMethod + */ + public function terugsturen(string $id): JSONResponse + { + return $this->handleAction($id, ParaferingService::ACTION_TERUGSTUREN); + } + + /** + * Execute an adviseren action. + * + * @param string $id The voorstel ID. + * + * @return JSONResponse + * + * @psalm-suppress PossiblyUnusedMethod + */ + public function adviseren(string $id): JSONResponse + { + return $this->handleAction($id, ParaferingService::ACTION_ADVISEREN); + } + + /** + * Get the audit trail for a voorstel. + * + * @param string $id The voorstel ID. + * + * @return JSONResponse + * + * @psalm-suppress PossiblyUnusedMethod + */ + public function auditTrail(string $id): JSONResponse + { + try { + $data = $this->getRequestBody(); + $voorstel = $data['voorstel'] ?? []; + + $trail = $this->paraferingService->getAuditTrail($voorstel); + + return new JSONResponse(['auditTrail' => $trail]); + } catch (\Throwable $e) { + $this->logger->error('Failed to get audit trail: ' . $e->getMessage()); + return new JSONResponse( + ['error' => 'Failed to get audit trail: ' . $e->getMessage()], + Http::STATUS_INTERNAL_SERVER_ERROR + ); + } + } + + /** + * Handle a parafering action. + * + * @param string $id The voorstel ID. + * @param string $action The action type. + * + * @return JSONResponse + */ + private function handleAction(string $id, string $action): JSONResponse + { + try { + $data = $this->getRequestBody(); + $voorstel = $data['voorstel'] ?? []; + $comment = $data['comment'] ?? ''; + $namens = $data['namens'] ?? null; + + $userId = $this->userSession->getUser()?->getUID() ?? 'system'; + + $result = $this->paraferingService->executeAction( + $voorstel, + $action, + $userId, + $comment, + $namens + ); + + return new JSONResponse($result); + } catch (\InvalidArgumentException $e) { + return new JSONResponse( + ['error' => $e->getMessage()], + Http::STATUS_BAD_REQUEST + ); + } catch (\Throwable $e) { + $this->logger->error("Failed to execute {$action}: " . $e->getMessage()); + return new JSONResponse( + ['error' => "Failed to execute {$action}: " . $e->getMessage()], + Http::STATUS_INTERNAL_SERVER_ERROR + ); + } + } + + /** + * Get the parsed request body. + * + * @return array + */ + private function getRequestBody(): array + { + $body = file_get_contents('php://input'); + if ($body === false || $body === '') { + return []; + } + + $decoded = json_decode($body, true); + return is_array($decoded) ? $decoded : []; + } +} diff --git a/lib/Controller/PublicAppointmentController.php b/lib/Controller/PublicAppointmentController.php new file mode 100644 index 0000000..9aa2c3f --- /dev/null +++ b/lib/Controller/PublicAppointmentController.php @@ -0,0 +1,64 @@ +appointmentService->getAppointmentByToken($token); + if ($appointment === null) { + return new JSONResponse(['error' => 'Afspraak niet gevonden'], 404); + } + + return new JSONResponse([ + 'success' => true, + 'appointment' => [ + 'dateTime' => $appointment['dateTime'] ?? null, + 'duration' => $appointment['duration'] ?? 30, + 'status' => $appointment['status'] ?? 'scheduled', + 'locationId' => $appointment['locationId'] ?? null, + 'productId' => $appointment['productId'] ?? null, + ], + ]); + } + + /** + * @PublicPage + * @NoCSRFRequired + */ + public function cancel(string $token): JSONResponse + { + $appointment = $this->appointmentService->getAppointmentByToken($token); + if ($appointment === null) { + return new JSONResponse(['error' => 'Afspraak niet gevonden'], 404); + } + + if ($appointment['status'] === 'cancelled') { + return new JSONResponse(['error' => 'Afspraak is al geannuleerd'], 400); + } + + $id = $appointment['uuid'] ?? $appointment['id'] ?? ''; + $result = $this->appointmentService->cancelAppointment($id); + return new JSONResponse(['success' => true, 'appointment' => $result]); + } +} diff --git a/lib/Controller/PublicShareController.php b/lib/Controller/PublicShareController.php new file mode 100644 index 0000000..df10140 --- /dev/null +++ b/lib/Controller/PublicShareController.php @@ -0,0 +1,275 @@ + + * @copyright 2024 Conduction B.V. + * @license EUPL-1.2 https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12 + * + * @version GIT: + * + * @link https://procest.nl + */ + +declare(strict_types=1); + +namespace OCA\Procest\Controller; + +use OCA\Procest\AppInfo\Application; +use OCA\Procest\Service\CaseSharingService; +use OCA\Procest\Service\SettingsService; +use OCP\App\IAppManager; +use OCP\AppFramework\Controller; +use OCP\AppFramework\Http\JSONResponse; +use OCP\IRequest; +use Psr\Container\ContainerInterface; +use Psr\Log\LoggerInterface; + +/** + * Controller for public (unauthenticated) access to shared cases. + * + * All endpoints are accessible without Nextcloud authentication. + * Access is controlled via cryptographically secure tokens. + */ +class PublicShareController extends Controller +{ + /** + * Constructor for the PublicShareController. + * + * @param IRequest $request The request object + * @param CaseSharingService $caseSharingService The sharing service + * @param SettingsService $settingsService The settings service + * @param IAppManager $appManager The app manager + * @param ContainerInterface $container The DI container + * @param LoggerInterface $logger The logger + * + * @return void + */ + public function __construct( + IRequest $request, + private CaseSharingService $caseSharingService, + private SettingsService $settingsService, + private IAppManager $appManager, + private ContainerInterface $container, + private LoggerInterface $logger, + ) { + parent::__construct(appName: Application::APP_ID, request: $request); + }//end __construct() + + /** + * Access a shared case via token. + * + * Returns filtered case data based on the share's permission level. + * + * @PublicPage + * @NoCSRFRequired + * + * @param string $token The share token + * + * @return JSONResponse + */ + public function accessShare(string $token): JSONResponse + { + $password = $this->request->getParam('password'); + $validation = $this->caseSharingService->validateToken($token, $password); + + if ($validation['valid'] === false) { + $status = 403; + if (isset($validation['requiresPassword']) === true && $validation['requiresPassword'] === true) { + $status = 401; + } + + return new JSONResponse( + [ + 'success' => false, + 'error' => ($validation['error'] ?? 'Toegang geweigerd'), + 'requiresPassword' => ($validation['requiresPassword'] ?? false), + ], + $status + ); + } + + $shareData = $validation['share']; + + // Load the case data. + $caseData = $this->loadCaseData($shareData['caseId']); + if ($caseData === null) { + return new JSONResponse( + ['success' => false, 'error' => 'Zaak niet gevonden'], + 404 + ); + } + + // Apply permission-based filtering. + $filteredData = $this->caseSharingService->getFilteredCaseData($shareData, $caseData); + + $this->logger->info( + 'Procest: External party accessed shared case', + [ + 'caseId' => $shareData['caseId'], + 'shareType' => $shareData['shareType'], + 'ip' => $this->request->getRemoteAddress(), + ] + ); + + return new JSONResponse([ + 'success' => true, + 'case' => $filteredData, + 'permissionLevel' => $shareData['permissionLevel'], + 'canComment' => in_array( + $shareData['permissionLevel'], + ['bekijken_reageren', 'bekijken_bijdragen'] + ), + 'canUpload' => $shareData['permissionLevel'] === 'bekijken_bijdragen', + ]); + }//end accessShare() + + /** + * Add a comment on a shared case (requires comment permission). + * + * @PublicPage + * @NoCSRFRequired + * + * @param string $token The share token + * + * @return JSONResponse + */ + public function addComment(string $token): JSONResponse + { + $password = $this->request->getParam('password'); + $validation = $this->caseSharingService->validateToken($token, $password); + + if ($validation['valid'] === false) { + return new JSONResponse( + ['success' => false, 'error' => ($validation['error'] ?? 'Toegang geweigerd')], + 403 + ); + } + + $shareData = $validation['share']; + + // Check comment permission. + $canComment = in_array( + $shareData['permissionLevel'], + ['bekijken_reageren', 'bekijken_bijdragen'] + ); + + if ($canComment === false) { + return new JSONResponse( + ['success' => false, 'error' => 'Geen toestemming om te reageren'], + 403 + ); + } + + $comment = $this->request->getParam('comment', ''); + $authorName = $this->request->getParam('authorName', 'Extern'); + + if (empty($comment) === true) { + return new JSONResponse( + ['success' => false, 'error' => 'Reactie mag niet leeg zijn'], + 400 + ); + } + + $this->logger->info( + 'Procest: External party added comment', + [ + 'caseId' => $shareData['caseId'], + 'authorName' => $authorName, + ] + ); + + return new JSONResponse([ + 'success' => true, + 'message' => 'Reactie toegevoegd', + ]); + }//end addComment() + + /** + * View citizen case status (public status page). + * + * Returns minimal case progress data for citizen-facing status tracking. + * + * @PublicPage + * @NoCSRFRequired + * + * @param string $token The status page token + * + * @return JSONResponse + */ + public function viewStatus(string $token): JSONResponse + { + $validation = $this->caseSharingService->validateToken($token); + + if ($validation['valid'] === false) { + return new JSONResponse( + ['success' => false, 'error' => ($validation['error'] ?? 'Status niet beschikbaar')], + 403 + ); + } + + $shareData = $validation['share']; + $caseData = $this->loadCaseData($shareData['caseId']); + + if ($caseData === null) { + return new JSONResponse( + ['success' => false, 'error' => 'Zaak niet gevonden'], + 404 + ); + } + + // Return only citizen-safe status information. + $statusData = [ + 'title' => ($caseData['title'] ?? ''), + 'identifier' => ($caseData['identifier'] ?? ''), + 'currentStatus' => ($caseData['status'] ?? ''), + 'plannedEndDate' => ($caseData['plannedEndDate'] ?? null), + 'startDate' => ($caseData['startDate'] ?? null), + ]; + + return new JSONResponse(['success' => true, 'status' => $statusData]); + }//end viewStatus() + + /** + * Load case data from OpenRegister. + * + * @param string $caseId The UUID of the case + * + * @return array|null The case data or null if not found + */ + private function loadCaseData(string $caseId): ?array + { + if (in_array('openregister', $this->appManager->getInstalledApps()) === false) { + return null; + } + + try { + $objectService = $this->container->get('OCA\OpenRegister\Service\ObjectService'); + $register = $this->settingsService->getConfigValue('register'); + $schema = $this->settingsService->getConfigValue('case_schema'); + + $caseObject = $objectService->getObject( + (int) $register, + (int) $schema, + $caseId, + ); + + return $caseObject->jsonSerialize(); + } catch (\Exception $e) { + $this->logger->error( + 'Procest: Could not load case for share', + [ + 'caseId' => $caseId, + 'exception' => $e->getMessage(), + ] + ); + return null; + } + }//end loadCaseData() +}//end class diff --git a/lib/Controller/SettingsController.php b/lib/Controller/SettingsController.php index 26f5a8c..9ca9ca6 100644 --- a/lib/Controller/SettingsController.php +++ b/lib/Controller/SettingsController.php @@ -23,30 +23,85 @@ use OCA\Procest\AppInfo\Application; use OCA\Procest\Service\SettingsService; +use OCP\App\IAppManager; use OCP\AppFramework\Controller; use OCP\AppFramework\Http\JSONResponse; +use OCP\IGroupManager; use OCP\IRequest; +use OCP\IUserSession; +use Psr\Container\ContainerInterface; +use RuntimeException; /** * Controller for managing Procest application settings. */ class SettingsController extends Controller { + + /** + * The OpenRegister object service. + * + * @var \OCA\OpenRegister\Service\ObjectService|null The OpenRegister object service. + */ + private ?\OCA\OpenRegister\Service\ObjectService $objectService = null; + /** * Constructor for the SettingsController. * - * @param IRequest $request The request object - * @param SettingsService $settingsService The settings service + * @param IRequest $request The request object + * @param ContainerInterface $container The container + * @param IAppManager $appManager The app manager + * @param SettingsService $settingsService The settings service + * @param IGroupManager $groupManager The group manager + * @param IUserSession $userSession The user session * * @return void */ public function __construct( IRequest $request, + private readonly ContainerInterface $container, + private readonly IAppManager $appManager, private SettingsService $settingsService, + private readonly IGroupManager $groupManager, + private readonly IUserSession $userSession, ) { parent::__construct(appName: Application::APP_ID, request: $request); }//end __construct() + /** + * Attempts to retrieve the OpenRegister service from the container. + * + * @return \OCA\OpenRegister\Service\ObjectService|null The OpenRegister service if available, null otherwise. + * @throws \RuntimeException If the service is not available. + */ + public function getObjectService(): ?\OCA\OpenRegister\Service\ObjectService + { + if (in_array(needle: 'openregister', haystack: $this->appManager->getInstalledApps()) === true) { + $this->objectService = $this->container->get('OCA\OpenRegister\Service\ObjectService'); + return $this->objectService; + } + + throw new RuntimeException('OpenRegister service is not available.'); + + }//end getObjectService() + + /** + * Attempts to retrieve the Configuration service from the container. + * + * @return \OCA\OpenRegister\Service\ConfigurationService|null The Configuration service if available, null otherwise. + * @throws \RuntimeException If the service is not available. + */ + public function getConfigurationService(): ?\OCA\OpenRegister\Service\ConfigurationService + { + if (in_array(needle: 'openregister', haystack: $this->appManager->getInstalledApps()) === true) { + $configurationService = $this->container->get('OCA\OpenRegister\Service\ConfigurationService'); + return $configurationService; + } + + throw new RuntimeException('Configuration service is not available.'); + + }//end getConfigurationService() + /** * Retrieve all current settings. * @@ -56,12 +111,17 @@ public function __construct( */ public function index(): JSONResponse { + $user = $this->userSession->getUser(); + $isAdmin = $user !== null && $this->groupManager->isAdmin($user->getUID()); + return new JSONResponse( - [ - 'success' => true, - 'config' => $this->settingsService->getSettings(), - ] - ); + [ + 'success' => true, + 'openRegisters' => in_array(needle: 'openregister', haystack: $this->appManager->getInstalledApps()), + 'isAdmin' => $isAdmin, + 'config' => $this->settingsService->getSettings(), + ] + ); }//end index() /** @@ -75,11 +135,11 @@ public function create(): JSONResponse $config = $this->settingsService->updateSettings($data); return new JSONResponse( - [ - 'success' => true, - 'config' => $config, - ] - ); + [ + 'success' => true, + 'config' => $config, + ] + ); }//end create() /** diff --git a/lib/Controller/StufController.php b/lib/Controller/StufController.php new file mode 100644 index 0000000..30b7d59 --- /dev/null +++ b/lib/Controller/StufController.php @@ -0,0 +1,416 @@ + + * @copyright 2024 Conduction B.V. + * @license EUPL-1.2 https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12 + * + * @version GIT: + * + * @link https://procest.nl + */ + +declare(strict_types=1); + +namespace OCA\Procest\Controller; + +use OCA\Procest\Service\StufFieldMappingService; +use OCA\Procest\Service\StufMessageBuilder; +use OCP\AppFramework\Controller; +use OCP\AppFramework\Http; +use OCP\AppFramework\Http\DataDisplayResponse; +use OCP\IRequest; +use Psr\Log\LoggerInterface; + +/** + * Controller for inbound StUF SOAP messages. + * + * Accepts raw XML POST at /api/stuf/{service}, parses SOAP envelopes, + * and dispatches to handlers based on the StUF message type (zakLk01, + * zakLv01, npsLv01, etc.). + * + * @psalm-suppress UnusedClass + * + * @SuppressWarnings(PHPMD.CouplingBetweenObjects) + */ +class StufController extends Controller +{ + /** + * Default stuurgegevens for this Procest instance (zender). + * + * @var array + */ + private const DEFAULT_ZENDER = [ + 'organisatie' => 'Procest', + 'applicatie' => 'Procest', + ]; + + /** + * Constructor. + * + * @param string $appName The app name. + * @param IRequest $request The request object. + * @param StufFieldMappingService $mappingService The field mapping service. + * @param StufMessageBuilder $messageBuilder The message builder service. + * @param LoggerInterface $logger The logger. + */ + public function __construct( + string $appName, + IRequest $request, + private readonly StufFieldMappingService $mappingService, + private readonly StufMessageBuilder $messageBuilder, + private readonly LoggerInterface $logger, + ) { + parent::__construct($appName, $request); + } + + /** + * Handle inbound StUF-ZKN SOAP messages for case operations. + * + * @return DataDisplayResponse SOAP XML response. + * + * @psalm-suppress PossiblyUnusedMethod + */ + public function zaken(): DataDisplayResponse + { + return $this->handleSoapMessage('zaken'); + } + + /** + * Handle inbound StUF-BG SOAP messages for person operations. + * + * @return DataDisplayResponse SOAP XML response. + * + * @psalm-suppress PossiblyUnusedMethod + */ + public function personen(): DataDisplayResponse + { + return $this->handleSoapMessage('personen'); + } + + /** + * Handle an inbound SOAP message. + * + * @param string $service The service type ('zaken' or 'personen'). + * + * @return DataDisplayResponse The SOAP XML response. + */ + private function handleSoapMessage(string $service): DataDisplayResponse + { + $rawBody = file_get_contents('php://input'); + + if ($rawBody === false || $rawBody === '') { + $response = $this->messageBuilder->buildSoapFault('Leeg bericht ontvangen'); + return $this->soapResponse($response, Http::STATUS_BAD_REQUEST); + } + + // Parse the XML. + $dom = new \DOMDocument(); + libxml_use_internal_errors(true); + $parseResult = $dom->loadXML($rawBody); + $errors = libxml_get_errors(); + libxml_clear_errors(); + + if (!$parseResult || !empty($errors)) { + $this->logger->warning('Invalid XML received at StUF endpoint: ' . $service); + $response = $this->messageBuilder->buildSoapFault('Ongeldig XML bericht'); + return $this->soapResponse($response, Http::STATUS_BAD_REQUEST); + } + + // Extract the SOAP Body content. + $bodyElements = $dom->getElementsByTagNameNS( + StufMessageBuilder::NS_SOAP, + 'Body' + ); + + if ($bodyElements->length === 0) { + $response = $this->messageBuilder->buildSoapFault('Geen SOAP Body gevonden'); + return $this->soapResponse($response, Http::STATUS_BAD_REQUEST); + } + + $body = $bodyElements->item(0); + if ($body === null || !$body->hasChildNodes()) { + $response = $this->messageBuilder->buildSoapFault('Lege SOAP Body'); + return $this->soapResponse($response, Http::STATUS_BAD_REQUEST); + } + + // Get the first child element (the StUF message). + $messageElement = null; + foreach ($body->childNodes as $child) { + if ($child instanceof \DOMElement) { + $messageElement = $child; + break; + } + } + + if ($messageElement === null) { + $response = $this->messageBuilder->buildSoapFault('Geen StUF bericht element gevonden'); + return $this->soapResponse($response, Http::STATUS_BAD_REQUEST); + } + + // Dispatch based on message type. + $messageType = $messageElement->localName; + + $this->logger->info( + 'Received StUF message: {type} at {service}', + ['type' => $messageType, 'service' => $service] + ); + + return match ($messageType) { + 'zakLk01' => $this->handleZakLk01($messageElement), + 'zakLv01' => $this->handleZakLv01($messageElement), + 'npsLv01' => $this->handleNpsLv01($messageElement), + 'edcLk01' => $this->handleEdcLk01($messageElement), + default => $this->handleUnknownMessage($messageType), + }; + } + + /** + * Handle zakLk01 (case create/update) message. + * + * @param \DOMElement $message The StUF message element. + * + * @return DataDisplayResponse + */ + private function handleZakLk01(\DOMElement $message): DataDisplayResponse + { + // Extract mutatiesoort. + $objectElements = $message->getElementsByTagName('object'); + if ($objectElements->length === 0) { + $response = $this->messageBuilder->buildFo01( + 'StUF055', + 'Geen object element in zakLk01', + 'server', + self::DEFAULT_ZENDER, + [] + ); + return $this->soapResponse($response); + } + + $objectEl = $objectElements->item(0); + $mutatiesoort = $message->getAttribute('mutatiesoort'); + + // Extract basic fields. + $stufFields = $this->extractFields($objectEl, [ + 'identificatie', + 'omschrijving', + 'toelichting', + 'startdatum', + 'einddatum', + 'einddatumGepland', + 'uiterlijkeEinddatumAfdoening', + 'vertrouwelijkAanduiding', + ]); + + // Map to internal properties. + $internalData = $this->mappingService->mapZknToInternal($stufFields); + + $this->logger->info( + 'Processed zakLk01 mutatiesoort={mutatiesoort}, identifier={id}', + [ + 'mutatiesoort' => $mutatiesoort, + 'id' => $internalData['identifier'] ?? 'none', + ] + ); + + // Extract referentienummer for cross-reference. + $stuurgegevens = $message->getElementsByTagName('stuurgegevens'); + $crossRef = ''; + if ($stuurgegevens->length > 0) { + $refElements = $stuurgegevens->item(0)->getElementsByTagName('referentienummer'); + if ($refElements->length > 0) { + $crossRef = $refElements->item(0)->textContent ?? ''; + } + } + + // In a full implementation, create/update OpenRegister objects here. + // For now, return a Bv01 confirmation. + $response = $this->messageBuilder->buildBv01( + self::DEFAULT_ZENDER, + [], + $crossRef + ); + + return $this->soapResponse($response); + } + + /** + * Handle zakLv01 (case query) message. + * + * @param \DOMElement $message The StUF message element. + * + * @return DataDisplayResponse + */ + private function handleZakLv01(\DOMElement $message): DataDisplayResponse + { + // Extract query criteria from gelijk element. + $gelijkElements = $message->getElementsByTagName('gelijk'); + $criteria = []; + + if ($gelijkElements->length > 0) { + $gelijk = $gelijkElements->item(0); + $criteria = $this->extractFields($gelijk, [ + 'identificatie', + 'omschrijving', + 'startdatum', + ]); + } + + $this->logger->info( + 'Processed zakLv01 query with {criteriaCount} criteria', + ['criteriaCount' => count($criteria)] + ); + + // In a full implementation, query OpenRegister and build zakLa01 response. + // For now, return an empty zakLa01 response. + $body = ''; + $body .= $this->messageBuilder->buildStuurgegevens(self::DEFAULT_ZENDER, []); + $body .= ''; + $body .= ''; + + $response = $this->messageBuilder->buildSoapEnvelope($body); + + return $this->soapResponse($response); + } + + /** + * Handle npsLv01 (person query) message. + * + * @param \DOMElement $message The StUF message element. + * + * @return DataDisplayResponse + */ + private function handleNpsLv01(\DOMElement $message): DataDisplayResponse + { + // Extract BSN from gelijk element. + $gelijkElements = $message->getElementsByTagName('gelijk'); + $bsn = ''; + + if ($gelijkElements->length > 0) { + $bsnElements = $gelijkElements->item(0)->getElementsByTagName('bsn'); + if ($bsnElements->length > 0) { + $bsn = $bsnElements->item(0)->textContent ?? ''; + } + } + + $this->logger->info( + 'Processed npsLv01 person query for BSN {bsn}', + ['bsn' => substr($bsn, 0, 3) . '***'] + ); + + // In a full implementation, query OpenRegister for person data. + // For now, return an empty npsLa01 response. + $body = ''; + $body .= $this->messageBuilder->buildStuurgegevens(self::DEFAULT_ZENDER, []); + $body .= ''; + $body .= ''; + + $response = $this->messageBuilder->buildSoapEnvelope($body); + + return $this->soapResponse($response); + } + + /** + * Handle edcLk01 (document create/update) message. + * + * @param \DOMElement $message The StUF message element. + * + * @return DataDisplayResponse + */ + private function handleEdcLk01(\DOMElement $message): DataDisplayResponse + { + $this->logger->info('Processed edcLk01 document message'); + + // Extract referentienummer. + $stuurgegevens = $message->getElementsByTagName('stuurgegevens'); + $crossRef = ''; + if ($stuurgegevens->length > 0) { + $refElements = $stuurgegevens->item(0)->getElementsByTagName('referentienummer'); + if ($refElements->length > 0) { + $crossRef = $refElements->item(0)->textContent ?? ''; + } + } + + $response = $this->messageBuilder->buildBv01( + self::DEFAULT_ZENDER, + [], + $crossRef + ); + + return $this->soapResponse($response); + } + + /** + * Handle unknown message type. + * + * @param string $messageType The unknown message type. + * + * @return DataDisplayResponse + */ + private function handleUnknownMessage(string $messageType): DataDisplayResponse + { + $this->logger->warning('Unknown StUF message type: ' . $messageType); + + $response = $this->messageBuilder->buildFo01( + 'StUF001', + 'Onbekend berichttype: ' . $messageType, + 'server', + self::DEFAULT_ZENDER, + [] + ); + + return $this->soapResponse($response, Http::STATUS_BAD_REQUEST); + } + + /** + * Extract field values from a DOM element. + * + * @param \DOMElement|null $element The parent element. + * @param string[] $fieldNames The field names to extract. + * + * @return array The extracted field values. + */ + private function extractFields(?\DOMElement $element, array $fieldNames): array + { + $result = []; + + if ($element === null) { + return $result; + } + + foreach ($fieldNames as $fieldName) { + $elements = $element->getElementsByTagName($fieldName); + if ($elements->length > 0 && $elements->item(0) !== null) { + $result[$fieldName] = $elements->item(0)->textContent ?? ''; + } + } + + return $result; + } + + /** + * Create a SOAP XML response. + * + * @param string $xml The XML content. + * @param int $statusCode The HTTP status code. + * + * @return DataDisplayResponse + */ + private function soapResponse(string $xml, int $statusCode = Http::STATUS_OK): DataDisplayResponse + { + $response = new DataDisplayResponse($xml, $statusCode); + $response->addHeader('Content-Type', 'text/xml; charset=utf-8'); + return $response; + } +} diff --git a/lib/Controller/TemplateController.php b/lib/Controller/TemplateController.php new file mode 100644 index 0000000..c6e68a3 --- /dev/null +++ b/lib/Controller/TemplateController.php @@ -0,0 +1,110 @@ + + * @copyright 2024 Conduction B.V. + * @license EUPL-1.2 https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12 + * + * @version GIT: + * + * @link https://procest.nl + */ + +declare(strict_types=1); + +namespace OCA\Procest\Controller; + +use OCA\Procest\Service\TemplateLibraryService; +use OCP\AppFramework\Controller; +use OCP\AppFramework\Http\JSONResponse; +use OCP\IRequest; +use Psr\Log\LoggerInterface; + +/** + * Controller for zaaktype template management. + */ +class TemplateController extends Controller +{ + + + /** + * Constructor. + * + * @param string $appName The app name + * @param IRequest $request The request + * @param TemplateLibraryService $templateService The template service + * @param LoggerInterface $logger The logger + */ + public function __construct( + string $appName, + IRequest $request, + private readonly TemplateLibraryService $templateService, + private readonly LoggerInterface $logger, + ) { + parent::__construct($appName, $request); + } + + + /** + * List all available templates. + * + * @return JSONResponse List of templates + * + * @NoAdminRequired + */ + public function index(): JSONResponse + { + $templates = $this->templateService->listTemplates(); + return new JSONResponse(['results' => $templates]); + } + + + /** + * Get a single template by ID. + * + * @param string $id The template ID + * + * @return JSONResponse The template data or 404 + * + * @NoAdminRequired + */ + public function show(string $id): JSONResponse + { + $template = $this->templateService->loadTemplate($id); + if ($template === null) { + return new JSONResponse(['error' => 'Template not found'], 404); + } + + return new JSONResponse($template); + } + + + /** + * Activate a template (create all objects from it). + * + * @param string $id The template ID + * + * @return JSONResponse Result with created object IDs + * + * @NoAdminRequired + */ + public function activate(string $id): JSONResponse + { + try { + $result = $this->templateService->activateTemplate($id); + return new JSONResponse($result); + } catch (\RuntimeException $e) { + return new JSONResponse( + ['error' => $e->getMessage()], + 400, + ); + } + } +} diff --git a/lib/Controller/TenantController.php b/lib/Controller/TenantController.php new file mode 100644 index 0000000..0bc7ace --- /dev/null +++ b/lib/Controller/TenantController.php @@ -0,0 +1,174 @@ + + * @copyright 2024 Conduction B.V. + * @license EUPL-1.2 https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12 + * + * @version GIT: + * + * @link https://procest.nl + */ + +declare(strict_types=1); + +namespace OCA\Procest\Controller; + +use OCA\Procest\AppInfo\Application; +use OCA\Procest\Service\TenantService; +use OCP\AppFramework\Controller; +use OCP\AppFramework\Http\JSONResponse; +use OCP\IRequest; +use OCP\IUserSession; + +/** + * Controller for tenant management operations. + * + * Provides CRUD operations for tenants, provisioning, and resource usage tracking. + * Most endpoints are restricted to platform administrators. + */ +class TenantController extends Controller +{ + /** + * Constructor for the TenantController. + * + * @param IRequest $request The request object + * @param TenantService $tenantService The tenant service + * @param IUserSession $userSession The user session + * + * @return void + */ + public function __construct( + IRequest $request, + private TenantService $tenantService, + private IUserSession $userSession, + ) { + parent::__construct(appName: Application::APP_ID, request: $request); + }//end __construct() + + /** + * List all tenants. + * + * @return JSONResponse List of tenants + */ + public function index(): JSONResponse + { + if ($this->isPlatformAdmin() === false) { + return new JSONResponse(['success' => false, 'error' => 'Admin required'], 403); + } + + // This would list all tenant objects from OpenRegister. + return new JSONResponse(['success' => true, 'tenants' => []]); + }//end index() + + /** + * Create a new tenant. + * + * @return JSONResponse The created tenant + */ + public function create(): JSONResponse + { + if ($this->isPlatformAdmin() === false) { + return new JSONResponse(['success' => false, 'error' => 'Admin required'], 403); + } + + $name = $this->request->getParam('name'); + $oin = $this->request->getParam('oin'); + $domain = $this->request->getParam('domain'); + + if (empty($name) === true) { + return new JSONResponse( + ['success' => false, 'error' => 'Tenant name is required'], + 400 + ); + } + + $tenant = $this->tenantService->createTenant($name, $oin, $domain); + return new JSONResponse(['success' => true, 'tenant' => $tenant]); + }//end create() + + /** + * Provision a tenant with register, group, and default schemas. + * + * @param string $tenantId The tenant UUID + * + * @return JSONResponse The provisioning result + */ + public function provision(string $tenantId): JSONResponse + { + if ($this->isPlatformAdmin() === false) { + return new JSONResponse(['success' => false, 'error' => 'Admin required'], 403); + } + + $result = $this->tenantService->provisionTenant($tenantId); + + if (isset($result['error']) === true) { + return new JSONResponse(['success' => false, 'error' => $result['error']], 500); + } + + return new JSONResponse(['success' => true, 'tenant' => $result]); + }//end provision() + + /** + * Get resource usage for a tenant. + * + * @param string $tenantId The tenant UUID + * + * @return JSONResponse The resource usage + */ + public function usage(string $tenantId): JSONResponse + { + if ($this->isPlatformAdmin() === false) { + return new JSONResponse(['success' => false, 'error' => 'Admin required'], 403); + } + + $usage = $this->tenantService->getResourceUsage($tenantId); + return new JSONResponse(['success' => true, 'usage' => $usage]); + }//end usage() + + /** + * Get the current user's tenant. + * + * @NoAdminRequired + * + * @return JSONResponse The current tenant + */ + public function current(): JSONResponse + { + $user = $this->userSession->getUser(); + if ($user === null) { + return new JSONResponse(['success' => false, 'error' => 'Not authenticated'], 401); + } + + $tenant = $this->tenantService->getTenantForUser($user->getUID()); + if ($tenant === null) { + return new JSONResponse( + ['success' => true, 'tenant' => null, 'message' => 'No tenant assigned'] + ); + } + + return new JSONResponse(['success' => true, 'tenant' => $tenant]); + }//end current() + + /** + * Check if current user is a platform administrator. + * + * @return bool True if admin + */ + private function isPlatformAdmin(): bool + { + $user = $this->userSession->getUser(); + if ($user === null) { + return false; + } + + return $this->tenantService->isPlatformAdmin($user->getUID()); + }//end isPlatformAdmin() +}//end class diff --git a/lib/Controller/ZgwMappingController.php b/lib/Controller/ZgwMappingController.php new file mode 100644 index 0000000..054a862 --- /dev/null +++ b/lib/Controller/ZgwMappingController.php @@ -0,0 +1,180 @@ + + * @copyright 2024 Conduction B.V. + * @license EUPL-1.2 https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12 + * + * @version GIT: + * + * @link https://procest.nl + */ + +declare(strict_types=1); + +namespace OCA\Procest\Controller; + +use OCA\Procest\AppInfo\Application; +use OCA\Procest\Repair\LoadDefaultZgwMappings; +use OCA\Procest\Service\SettingsService; +use OCA\Procest\Service\ZgwMappingService; +use OCP\AppFramework\Controller; +use OCP\AppFramework\Http\JSONResponse; +use OCP\IL10N; +use OCP\IRequest; +use Psr\Log\LoggerInterface; + +/** + * Controller for managing ZGW API mapping configurations. + */ +class ZgwMappingController extends Controller +{ + /** + * Constructor for the ZgwMappingController. + * + * @param IRequest $request The request object + * @param ZgwMappingService $zgwMappingService The ZGW mapping service + * @param SettingsService $settingsService The settings service + * @param LoggerInterface $logger The logger interface + * @param IL10N $l10n The localization service + * + * @return void + */ + public function __construct( + IRequest $request, + private readonly ZgwMappingService $zgwMappingService, + private readonly SettingsService $settingsService, + private readonly LoggerInterface $logger, + private readonly IL10N $l10n, + ) { + parent::__construct(appName: Application::APP_ID, request: $request); + }//end __construct() + + /** + * List all ZGW mapping configurations. + * + * @return JSONResponse + */ + public function index(): JSONResponse + { + return new JSONResponse( + [ + 'success' => true, + 'mappings' => $this->zgwMappingService->listMappings(), + ] + ); + }//end index() + + /** + * Get a single ZGW mapping configuration. + * + * @param string $resourceKey The ZGW resource key + * + * @return JSONResponse + */ + public function show(string $resourceKey): JSONResponse + { + $mapping = $this->zgwMappingService->getMapping($resourceKey); + + if ($mapping === null) { + return new JSONResponse( + [ + 'success' => false, + 'message' => $this->l10n->t('No mapping configured for %s', [$resourceKey]), + ] + ); + } + + return new JSONResponse( + [ + 'success' => true, + 'mapping' => $mapping, + ] + ); + }//end show() + + /** + * Save a ZGW mapping configuration. + * + * @param string $resourceKey The ZGW resource key + * + * @return JSONResponse + */ + public function update(string $resourceKey): JSONResponse + { + $params = $this->request->getParams(); + + // Remove framework params. + unset($params['_route'], $params['resourceKey']); + + $this->zgwMappingService->saveMapping(resourceKey: $resourceKey, config: $params); + + return new JSONResponse( + [ + 'success' => true, + 'mapping' => $this->zgwMappingService->getMapping($resourceKey), + ] + ); + }//end update() + + /** + * Delete a ZGW mapping configuration. + * + * @param string $resourceKey The ZGW resource key + * + * @return JSONResponse + */ + public function destroy(string $resourceKey): JSONResponse + { + $this->zgwMappingService->deleteMapping($resourceKey); + + return new JSONResponse( + [ + 'success' => true, + ] + ); + }//end destroy() + + /** + * Reset a single mapping to its default configuration. + * + * @param string $resourceKey The ZGW resource key + * + * @return JSONResponse + */ + public function reset(string $resourceKey): JSONResponse + { + $registerId = $this->settingsService->getConfigValue(key: 'register', default: ''); + if ($registerId === '') { + return new JSONResponse( + [ + 'success' => false, + 'message' => $this->l10n->t('No Procest register configured'), + ] + ); + } + + $loader = new LoadDefaultZgwMappings( + zgwMappingService: $this->zgwMappingService, + settingsService: $this->settingsService, + logger: $this->logger, + ); + $defaults = $loader->getDefaultMappings(registerId: $registerId); + + $this->zgwMappingService->resetToDefault(resourceKey: $resourceKey, defaults: $defaults); + + return new JSONResponse( + [ + 'success' => true, + 'mapping' => $this->zgwMappingService->getMapping($resourceKey), + ] + ); + }//end reset() +}//end class diff --git a/lib/Controller/ZrcController.php b/lib/Controller/ZrcController.php new file mode 100644 index 0000000..5cbb6dd --- /dev/null +++ b/lib/Controller/ZrcController.php @@ -0,0 +1,2493 @@ + + * @copyright 2024 Conduction B.V. + * @license EUPL-1.2 https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12 + * + * @version GIT: + * + * @link https://procest.nl + */ + +declare(strict_types=1); + +namespace OCA\Procest\Controller; + +use DateInterval; +use DateTime; +use OCA\Procest\Service\ZgwService; +use OCP\AppFramework\Controller; +use OCP\AppFramework\Http; +use OCP\AppFramework\Http\JSONResponse; +use OCP\IL10N; +use OCP\IRequest; + +/** + * ZRC (Zaken Register) Controller + * + * Serves ZGW-compliant Zaken API endpoints on top of English-language + * OpenRegister data with bidirectional mapping. + * + * @psalm-suppress UnusedClass + * + * @SuppressWarnings(PHPMD.CouplingBetweenObjects) + * @SuppressWarnings(PHPMD.ExcessiveClassLength) + * @SuppressWarnings(PHPMD.ExcessiveClassComplexity) + * @SuppressWarnings(PHPMD.ExcessiveMethodLength) + * @SuppressWarnings(PHPMD.CyclomaticComplexity) + * @SuppressWarnings(PHPMD.NPathComplexity) + * @SuppressWarnings(PHPMD.TooManyMethods) + * @SuppressWarnings(PHPMD.TooManyPublicMethods) + */ +class ZrcController extends Controller +{ + /** + * The ZGW API group for this controller. + * + * @var string + */ + private const ZGW_API = 'zaken'; + + /** + * Ordered vertrouwelijkheidaanduiding levels for authorization filtering. + * + * @var array + */ + private const VERTROUWELIJKHEID_LEVELS = [ + 'openbaar' => 1, + 'beperkt_openbaar' => 2, + 'intern' => 3, + 'zaakvertrouwelijk' => 4, + 'vertrouwelijk' => 5, + 'confidentieel' => 6, + 'geheim' => 7, + 'zeer_geheim' => 8, + ]; + + /** + * Constructor. + * + * @param string $appName The application name + * @param IRequest $request The incoming request + * @param ZgwService $zgwService The shared ZGW service + * @param IL10N $l10n The localization service + */ + public function __construct( + string $appName, + IRequest $request, + private readonly ZgwService $zgwService, + private readonly IL10N $l10n, + ) { + parent::__construct(appName: $appName, request: $request); + }//end __construct() + + /** + * List resources. + * + * ZRC-specific: for zaken, applies authorization-based filtering (zrc-006a). + * + * @param string $resource The ZGW resource name + * + * @return JSONResponse + * + * @NoAdminRequired + * @NoCSRFRequired + * @PublicPage + * @CORS + */ + public function index(string $resource): JSONResponse + { + $response = $this->zgwService->handleIndex($this->request, self::ZGW_API, $resource); + + // Zrc-006a: Filter zaken results based on consumer's vertrouwelijkheidaanduiding. + if ($resource === 'zaken' && $response->getStatus() === Http::STATUS_OK) { + $response = $this->filterZakenByAuthorisation(response: $response); + } + + return $response; + }//end index() + + /** + * Create a resource. + * + * ZRC-specific: resolves zaak-closed from the request body before validation, + * triggers eindstatus side effects when creating statussen, checks scopes + * for zaken creation (zrc-006c), and syncs OIO for zaakinformatieobjecten (zrc-005a). + * + * @param string $resource The ZGW resource name + * + * @return JSONResponse + * + * @NoAdminRequired + * @NoCSRFRequired + * @PublicPage + * @CORS + */ + public function create(string $resource): JSONResponse + { + $authError = $this->zgwService->validateJwtAuth($this->request); + if ($authError !== null) { + return $authError; + } + + // Zrc-006c: Check zaken.aanmaken scope for zaak creation. + if ($resource === 'zaken') { + $hasScope = $this->zgwService->consumerHasScope( + $this->request, + 'zrc', + 'zaken.aanmaken' + ); + if ($hasScope === false) { + return $this->permissionDeniedResponse(); + } + } + + if ($this->zgwService->getObjectService() === null) { + return $this->zgwService->unavailableResponse(); + } + + $mappingConfig = $this->zgwService->loadMappingConfig(self::ZGW_API, $resource); + if ($mappingConfig === null) { + return $this->zgwService->mappingNotFoundResponse(self::ZGW_API, $resource); + } + + try { + $body = $this->zgwService->getRequestBody($this->request); + $originalBody = $body; + + // ZRC-specific: resolve zaak closed from body before validation. + $zaakClosed = $this->zgwService->resolveZaakClosedFromBody($resource, $body); + $hasGeforceerd = true; + if ($zaakClosed === true) { + $hasGeforceerd = $this->zgwService->consumerHasScope( + $this->request, + 'zrc', + 'zaken.geforceerd-bijwerken' + ); + } + + $ruleResult = $this->zgwService->getBusinessRulesService()->validate( + zgwApi: self::ZGW_API, + resource: $resource, + action: 'create', + body: $body, + objectService: $this->zgwService->getObjectService(), + mappingConfig: $mappingConfig, + zaakClosed: $zaakClosed, + hasGeforceerd: $hasGeforceerd + ); + if ($ruleResult['valid'] === false) { + return new JSONResponse( + data: $this->zgwService->buildValidationError($ruleResult), + statusCode: $ruleResult['status'] + ); + } + + $body = $ruleResult['enrichedBody']; + + $inboundMapping = $this->zgwService->createInboundMapping(mappingConfig: $mappingConfig); + $englishData = $this->zgwService->applyInboundMapping( + body: $body, + mapping: $inboundMapping, + mappingConfig: $mappingConfig + ); + + // @phpstan-ignore-next-line — defensive guard: applyInboundMapping may change + if (is_array($englishData) === false) { + return new JSONResponse( + data: ['detail' => 'Invalid mapping result'], + statusCode: Http::STATUS_BAD_REQUEST + ); + } + + // Zrc-008c: Before saving a status, check if it would reopen a closed zaak + // and require the zaken.heropenen scope. + if ($resource === 'statussen') { + $reopenError = $this->checkReopenScope(body: $originalBody); + if ($reopenError !== null) { + return $reopenError; + } + + // Zrc-007q: Before adding an eindstatus, verify all linked IOs + // have indicatieGebruiksrecht set (not null). + $gebruiksrechtError = $this->checkIndicatieGebruiksrechtBeforeClose(body: $originalBody); + if ($gebruiksrechtError !== null) { + return $gebruiksrechtError; + } + } + + $object = $this->zgwService->getObjectService()->saveObject( + register: $mappingConfig['sourceRegister'], + schema: $mappingConfig['sourceSchema'], + object: $englishData + ); + if (is_array($object) === true) { + $objectData = $object; + } else { + $objectData = $object->jsonSerialize(); + } + + $objectUuid = $objectData['id'] ?? ($objectData['@self']['id'] ?? ''); + + // ZRC-specific: handle eindstatus / heropenen effect for statussen. + if ($resource === 'statussen') { + $this->handleEindstatusEffect(body: $originalBody, objectData: $objectData); + } + + // Zrc-021: When a resultaat is created, derive archiefactiedatum + // and archiefnominatie on the parent zaak from the resultaattype. + if ($resource === 'resultaten') { + $this->handleResultaatCreated(body: $originalBody, objectData: $objectData); + } + + $baseUrl = $this->zgwService->buildBaseUrl($this->request, self::ZGW_API, $resource); + $outboundMapping = $this->zgwService->createOutboundMapping(mappingConfig: $mappingConfig); + $mapped = $this->zgwService->applyOutboundMapping( + objectData: $objectData, + mapping: $outboundMapping, + mappingConfig: $mappingConfig, + baseUrl: $baseUrl + ); + + // Zrc-004a/zrc-005a: ZaakInformatieObject enrichment and OIO sync. + if ($resource === 'zaakinformatieobjecten') { + // Zrc-004a: Ensure aardRelatieWeergave and registratiedatum in response. + $mapped = $this->enrichZioResponse(mapped: $mapped, body: $body); + + // Zrc-005a: Create ObjectInformatieObject in DRC. + $zaakUrl = $originalBody['zaak'] ?? ($body['zaak'] ?? ''); + $ioUrl = $originalBody['informatieobject'] ?? ($body['informatieobject'] ?? ''); + $this->syncCreateObjectInformatieObject(zaakUrl: $zaakUrl, ioUrl: $ioUrl); + } + + $this->zgwService->publishNotification( + self::ZGW_API, + $resource, + $baseUrl.'/'.$objectUuid, + 'create' + ); + + return new JSONResponse(data: $mapped, statusCode: Http::STATUS_CREATED); + } catch (\Throwable $e) { + $this->zgwService->getLogger()->error( + 'ZRC create error: '.$e->getMessage(), + ['exception' => $e] + ); + return new JSONResponse( + data: ['detail' => $e->getMessage()], + statusCode: Http::STATUS_BAD_REQUEST + ); + }//end try + }//end create() + + /** + * Show a specific resource. + * + * ZRC-specific: for zaken, checks zaken.lezen scope and vertrouwelijkheidaanduiding (zrc-006b). + * + * @param string $resource The ZGW resource name + * @param string $uuid The resource UUID + * + * @return JSONResponse + * + * @NoAdminRequired + * @NoCSRFRequired + * @PublicPage + * @CORS + */ + public function show(string $resource, string $uuid): JSONResponse + { + // Zrc-006b: Check zaken.lezen scope and vertrouwelijkheidaanduiding. + if ($resource === 'zaken') { + $authError = $this->zgwService->validateJwtAuth($this->request); + if ($authError !== null) { + return $authError; + } + + $scopeError = $this->checkZaakReadAccess(uuid: $uuid); + if ($scopeError !== null) { + return $scopeError; + } + } + + return $this->zgwService->handleShow($this->request, self::ZGW_API, $resource, $uuid); + }//end show() + + /** + * Full update a resource. + * + * ZRC-specific: resolves zaak-closed from existing data before delegating. + * + * @param string $resource The ZGW resource name + * @param string $uuid The resource UUID + * + * @return JSONResponse + * + * @NoAdminRequired + * @NoCSRFRequired + * @PublicPage + * @CORS + */ + public function update(string $resource, string $uuid): JSONResponse + { + // Resolve UUID from URL path — body "uuid" can override controller args. + $uuid = $this->zgwService->resolvePathUuid($this->request, $uuid); + + $authError = $this->zgwService->validateJwtAuth($this->request); + if ($authError !== null) { + return $authError; + } + + // Zrc-010/zrc-015: Pre-validate body fields that don't require + // the existing object, so validation errors are returned even + // when the OpenRegister find() call fails transiently. + if ($resource === 'zaken') { + $preValidation = $this->preValidateZaakBody(isPatch: false); + if ($preValidation !== null) { + return $preValidation; + } + } + + [$zaakClosed, $hasGeforceerd] = $this->resolveZaakClosedForExisting(resource: $resource, uuid: $uuid); + + $response = $this->zgwService->handleUpdate( + $this->request, + self::ZGW_API, + $resource, + $uuid, + false, + null, + $zaakClosed, + $hasGeforceerd + ); + + // Zrc-004b: Enrich ZIO response with immutable aardRelatieWeergave. + if ($resource === 'zaakinformatieobjecten' && $response->getStatus() === Http::STATUS_OK) { + $response = $this->enrichZioJsonResponse(response: $response); + } + + return $response; + }//end update() + + /** + * Partial update a resource. + * + * ZRC-specific: resolves zaak-closed from existing data before delegating. + * + * @param string $resource The ZGW resource name + * @param string $uuid The resource UUID + * + * @return JSONResponse + * + * @NoAdminRequired + * @NoCSRFRequired + * @PublicPage + * @CORS + */ + public function patch(string $resource, string $uuid): JSONResponse + { + // Resolve UUID from URL path — body "uuid" can override controller args. + $uuid = $this->zgwService->resolvePathUuid($this->request, $uuid); + + $authError = $this->zgwService->validateJwtAuth($this->request); + if ($authError !== null) { + return $authError; + } + + // Zrc-010/zrc-015: Pre-validate body fields that don't require + // the existing object, so validation errors are returned even + // when the OpenRegister find() call fails transiently. + if ($resource === 'zaken') { + $preValidation = $this->preValidateZaakBody(isPatch: true); + if ($preValidation !== null) { + return $preValidation; + } + } + + [$zaakClosed, $hasGeforceerd] = $this->resolveZaakClosedForExisting(resource: $resource, uuid: $uuid); + + $response = $this->zgwService->handleUpdate( + $this->request, + self::ZGW_API, + $resource, + $uuid, + true, + null, + $zaakClosed, + $hasGeforceerd + ); + + // Zrc-004c: Enrich ZIO response with immutable aardRelatieWeergave. + if ($resource === 'zaakinformatieobjecten' && $response->getStatus() === Http::STATUS_OK) { + $response = $this->enrichZioJsonResponse(response: $response); + } + + return $response; + }//end patch() + + /** + * Delete a resource. + * + * ZRC-specific: resolves zaak-closed from existing data before delegating. + * For zaakinformatieobjecten, syncs ObjectInformatieObject deletion in DRC (zrc-005b). + * + * @param string $resource The ZGW resource name + * @param string $uuid The resource UUID + * + * @return JSONResponse + * + * @NoAdminRequired + * @NoCSRFRequired + * @PublicPage + * @CORS + */ + public function destroy(string $resource, string $uuid): JSONResponse + { + $authError = $this->zgwService->validateJwtAuth($this->request); + if ($authError !== null) { + return $authError; + } + + // Zrc-023: Cascade delete for zaken. + if ($resource === 'zaken') { + return $this->destroyZaak(uuid: $uuid); + } + + // Zrc-005b: Before deleting, capture ZIO data for OIO cleanup. + $zioData = null; + if ($resource === 'zaakinformatieobjecten') { + $zioData = $this->getZioDataForOioSync(uuid: $uuid); + } + + [$zaakClosed, $hasGeforceerd] = $this->resolveZaakClosedForExisting(resource: $resource, uuid: $uuid); + + $response = $this->zgwService->handleDestroy( + $this->request, + self::ZGW_API, + $resource, + $uuid, + null, + $zaakClosed, + $hasGeforceerd + ); + + // Zrc-005b: If ZIO deletion succeeded, also delete the OIO in DRC. + if ($resource === 'zaakinformatieobjecten' + && $response->getStatus() === Http::STATUS_NO_CONTENT + && $zioData !== null + ) { + $this->syncDeleteObjectInformatieObject( + zaakUrl: $zioData['zaakUrl'], + ioUrl: $zioData['ioUrl'] + ); + } + + return $response; + }//end destroy() + + /** + * List zaakeigenschappen for a zaak. + * + * @param string $zaakUuid The zaak UUID + * + * @return JSONResponse + * + * @NoAdminRequired + * @NoCSRFRequired + * @PublicPage + * @CORS + * + * @SuppressWarnings(PHPMD.UnusedFormalParameter) $zaakUuid required by route pattern + */ + public function zaakeigenschappenIndex(string $zaakUuid): JSONResponse + { + return $this->index(resource: 'zaakeigenschappen'); + }//end zaakeigenschappenIndex() + + /** + * Create a zaakeigenschap for a zaak. + * + * @param string $zaakUuid The zaak UUID + * + * @return JSONResponse + * + * @NoAdminRequired + * @NoCSRFRequired + * @PublicPage + * @CORS + * + * @SuppressWarnings(PHPMD.UnusedFormalParameter) $zaakUuid required by route pattern + */ + public function zaakeigenschappenCreate(string $zaakUuid): JSONResponse + { + return $this->create(resource: 'zaakeigenschappen'); + }//end zaakeigenschappenCreate() + + /** + * Show a specific zaakeigenschap. + * + * @param string $zaakUuid The zaak UUID + * @param string $uuid The zaakeigenschap UUID + * + * @return JSONResponse + * + * @NoAdminRequired + * @NoCSRFRequired + * @PublicPage + * @CORS + * + * @SuppressWarnings(PHPMD.UnusedFormalParameter) $zaakUuid required by route pattern + */ + public function zaakeigenschappenShow(string $zaakUuid, string $uuid): JSONResponse + { + return $this->show(resource: 'zaakeigenschappen', uuid: $uuid); + }//end zaakeigenschappenShow() + + /** + * Update a zaakeigenschap. + * + * @param string $zaakUuid The zaak UUID + * @param string $uuid The zaakeigenschap UUID + * + * @return JSONResponse + * + * @NoAdminRequired + * @NoCSRFRequired + * @PublicPage + * @CORS + * + * @SuppressWarnings(PHPMD.UnusedFormalParameter) $zaakUuid required by route pattern + */ + public function zaakeigenschappenUpdate(string $zaakUuid, string $uuid): JSONResponse + { + return $this->update(resource: 'zaakeigenschappen', uuid: $uuid); + }//end zaakeigenschappenUpdate() + + /** + * Partial update a zaakeigenschap. + * + * @param string $zaakUuid The zaak UUID + * @param string $uuid The zaakeigenschap UUID + * + * @return JSONResponse + * + * @NoAdminRequired + * @NoCSRFRequired + * @PublicPage + * @CORS + * + * @SuppressWarnings(PHPMD.UnusedFormalParameter) $zaakUuid required by route pattern + */ + public function zaakeigenschappenPatch(string $zaakUuid, string $uuid): JSONResponse + { + return $this->patch(resource: 'zaakeigenschappen', uuid: $uuid); + }//end zaakeigenschappenPatch() + + /** + * Delete a zaakeigenschap. + * + * @param string $zaakUuid The zaak UUID + * @param string $uuid The zaakeigenschap UUID + * + * @return JSONResponse + * + * @NoAdminRequired + * @NoCSRFRequired + * @PublicPage + * @CORS + * + * @SuppressWarnings(PHPMD.UnusedFormalParameter) $zaakUuid required by route pattern + */ + public function zaakeigenschappenDestroy(string $zaakUuid, string $uuid): JSONResponse + { + return $this->destroy(resource: 'zaakeigenschappen', uuid: $uuid); + }//end zaakeigenschappenDestroy() + + /** + * List zaakbesluiten for a zaak. + * + * @param string $zaakUuid The zaak UUID + * + * @return JSONResponse + * + * @NoAdminRequired + * @NoCSRFRequired + * @PublicPage + * @CORS + */ + public function zaakbesluitenIndex(string $zaakUuid): JSONResponse + { + $authError = $this->zgwService->validateJwtAuth($this->request); + if ($authError !== null) { + return $authError; + } + + if ($this->zgwService->getObjectService() === null) { + return $this->zgwService->unavailableResponse(); + } + + $mappingConfig = $this->zgwService->loadMappingConfig('besluiten', 'besluiten'); + if ($mappingConfig === null) { + return new JSONResponse( + data: ['detail' => 'Besluit mapping not configured'], + statusCode: Http::STATUS_NOT_FOUND + ); + } + + try { + $query = $this->zgwService->getObjectService()->buildSearchQuery( + requestParams: ['case' => $zaakUuid], + register: $mappingConfig['sourceRegister'], + schema: $mappingConfig['sourceSchema'] + ); + $result = $this->zgwService->getObjectService()->searchObjectsPaginated(query: $query); + + $baseUrl = $this->zgwService->buildBaseUrl($this->request, 'besluiten', 'besluiten'); + $outboundMapping = $this->zgwService->createOutboundMapping(mappingConfig: $mappingConfig); + $mapped = []; + foreach (($result['results'] ?? []) as $object) { + if (is_array($object) === true) { + $objectData = $object; + } else { + $objectData = $object->jsonSerialize(); + } + + $mapped[] = $this->zgwService->applyOutboundMapping( + objectData: $objectData, + mapping: $outboundMapping, + mappingConfig: $mappingConfig, + baseUrl: $baseUrl + ); + } + + return new JSONResponse(data: $mapped); + } catch (\Throwable $e) { + $this->zgwService->getLogger()->error( + 'ZRC zaakbesluiten error: '.$e->getMessage(), + ['exception' => $e] + ); + return new JSONResponse( + data: ['detail' => 'Internal server error'], + statusCode: Http::STATUS_INTERNAL_SERVER_ERROR + ); + }//end try + }//end zaakbesluitenIndex() + + /** + * Search zaken (POST /zaken/v1/zaken/_zoek). + * + * Delegates to index and returns HTTP 201 per the ZGW specification. + * + * @return JSONResponse + * + * @NoAdminRequired + * @NoCSRFRequired + * @PublicPage + * @CORS + */ + public function zoek(): JSONResponse + { + $indexResponse = $this->index(resource: 'zaken'); + // The zoek endpoint reuses the list handler but returns 201 Created. + $responseData = []; + if ($indexResponse instanceof JSONResponse) { + $responseData = $indexResponse->getData() ?? []; + } + + return new JSONResponse(data: $responseData, statusCode: Http::STATUS_CREATED); + }//end zoek() + + /** + * Get audit trail for a resource. + * + * @param string $resource The ZGW resource name + * @param string $uuid The resource UUID + * + * @return JSONResponse + * + * @NoAdminRequired + * @NoCSRFRequired + * @PublicPage + * @CORS + */ + public function audittrailIndex(string $resource, string $uuid): JSONResponse + { + return $this->zgwService->handleAudittrailIndex($this->request, self::ZGW_API, $resource, $uuid); + }//end audittrailIndex() + + /** + * Get a specific audit trail entry. + * + * @param string $resource The ZGW resource name + * @param string $uuid The resource UUID + * @param string $auditUuid The audit trail entry UUID + * + * @return JSONResponse + * + * @NoAdminRequired + * @NoCSRFRequired + * @PublicPage + * @CORS + */ + public function audittrailShow(string $resource, string $uuid, string $auditUuid): JSONResponse + { + return $this->zgwService->handleAudittrailShow($this->request, self::ZGW_API, $resource, $uuid, $auditUuid); + }//end audittrailShow() + + /** + * Check zaak read access based on consumer scopes and vertrouwelijkheidaanduiding (zrc-006b). + * + * @param string $uuid The zaak UUID + * + * @return JSONResponse|null Permission denied response, or null if access is allowed + */ + private function checkZaakReadAccess(string $uuid): ?JSONResponse + { + $autorisaties = $this->zgwService->getConsumerAuthorisaties($this->request, 'zrc'); + if ($autorisaties === null) { + // Unrestricted (superuser or no consumer found). + return null; + } + + // Check if any autorisatie grants zaken.lezen. + $hasLezenScope = false; + foreach ($autorisaties as $auth) { + $scopes = $auth['scopes'] ?? []; + if (in_array('zaken.lezen', $scopes, true) === true) { + $hasLezenScope = true; + break; + } + } + + if ($hasLezenScope === false) { + return $this->permissionDeniedResponse(); + } + + // Check vertrouwelijkheidaanduiding of the zaak. + try { + $mappingConfig = $this->zgwService->loadMappingConfig(self::ZGW_API, 'zaken'); + if ($mappingConfig === null) { + return null; + } + + $zaakObj = $this->zgwService->getObjectService()->find( + $uuid, + register: $mappingConfig['sourceRegister'], + schema: $mappingConfig['sourceSchema'] + ); + if (is_array($zaakObj) === true) { + $zaakData = $zaakObj; + } else { + $zaakData = $zaakObj->jsonSerialize(); + } + + $zaakVa = $zaakData['confidentiality'] ?? ($zaakData['vertrouwelijkheidaanduiding'] ?? 'openbaar'); + $zaakLevel = self::VERTROUWELIJKHEID_LEVELS[$zaakVa] ?? 1; + + // Check zaaktype + maxVertrouwelijkheidaanduiding from consumer autorisaties. + foreach ($autorisaties as $auth) { + $scopes = $auth['scopes'] ?? []; + if (in_array('zaken.lezen', $scopes, true) === false) { + continue; + } + + $maxVa = $auth['maxVertrouwelijkheidaanduiding'] ?? ($auth['max_vertrouwelijkheidaanduiding'] ?? null); + if ($maxVa !== null) { + $maxLevel = self::VERTROUWELIJKHEID_LEVELS[$maxVa] ?? 99; + } else { + $maxLevel = 99; + } + + if ($zaakLevel <= $maxLevel) { + return null; + } + } + + // No matching autorisatie allows this vertrouwelijkheidaanduiding. + return $this->permissionDeniedResponse(); + } catch (\Throwable $e) { + $this->zgwService->getLogger()->debug( + 'zrc-006b: Could not check zaak read access: '.$e->getMessage() + ); + return null; + }//end try + }//end checkZaakReadAccess() + + /** + * Filter zaken results based on consumer's vertrouwelijkheidaanduiding (zrc-006a). + * + * @param JSONResponse $response The original index response + * + * @return JSONResponse The filtered response + */ + private function filterZakenByAuthorisation(JSONResponse $response): JSONResponse + { + $autorisaties = $this->zgwService->getConsumerAuthorisaties($this->request, 'zrc'); + if ($autorisaties === null) { + // Unrestricted — return all. + return $response; + } + + // Check if any autorisatie grants zaken.lezen. + $lezenAuths = []; + foreach ($autorisaties as $auth) { + $scopes = $auth['scopes'] ?? []; + if (in_array('zaken.lezen', $scopes, true) === true) { + $lezenAuths[] = $auth; + } + } + + if (empty($lezenAuths) === true) { + // No zaken.lezen scope at all — return empty. + $data = $response->getData(); + if (is_array($data) === true) { + $data['count'] = 0; + $data['results'] = []; + $response->setData($data); + } + + return $response; + } + + $data = $response->getData(); + if (is_array($data) === false || isset($data['results']) === false) { + return $response; + } + + $filtered = []; + foreach ($data['results'] as $zaak) { + $zaakVa = $zaak['vertrouwelijkheidaanduiding'] ?? 'openbaar'; + $zaakLevel = self::VERTROUWELIJKHEID_LEVELS[$zaakVa] ?? 1; + + foreach ($lezenAuths as $auth) { + $maxVa = $auth['maxVertrouwelijkheidaanduiding'] ?? ($auth['max_vertrouwelijkheidaanduiding'] ?? null); + if ($maxVa !== null) { + $maxLevel = self::VERTROUWELIJKHEID_LEVELS[$maxVa] ?? 99; + } else { + $maxLevel = 99; + } + + if ($zaakLevel <= $maxLevel) { + $filtered[] = $zaak; + break; + } + } + } + + $data['count'] = count($filtered); + $data['results'] = $filtered; + $response->setData($data); + + return $response; + }//end filterZakenByAuthorisation() + + /** + * Build a permission denied response (zrc-006/zrc-007). + * + * @return JSONResponse + */ + private function permissionDeniedResponse(): JSONResponse + { + return new JSONResponse( + data: [ + 'detail' => $this->l10n->t('You do not have the correct permissions for this action.'), + 'code' => 'permission_denied', + ], + statusCode: Http::STATUS_FORBIDDEN + ); + }//end permissionDeniedResponse() + + /** + * Pre-validate zaak body fields before calling handleUpdate (zrc-010/zrc-015). + * + * Validates communicatiekanaal URL format and productenOfDiensten + * without requiring the existing object from OpenRegister. + * This ensures validation errors are returned with proper invalidParams + * even when OpenRegister's find() call fails transiently. + * + * @param bool $isPatch Whether this is a PATCH operation + * + * @return JSONResponse|null A 400 response if validation fails, null if valid + * + * @SuppressWarnings(PHPMD.CyclomaticComplexity) + * @SuppressWarnings(PHPMD.NPathComplexity) + * @SuppressWarnings(PHPMD.UnusedFormalParameter) $isPatch reserved for partial-update validation + * + * @psalm-suppress UnusedParam — $isPatch reserved for partial-update validation + */ + private function preValidateZaakBody(bool $isPatch): ?JSONResponse + { + try { + $body = $this->zgwService->getRequestBody($this->request); + + // Zrc-010: Validate communicatiekanaal URL. + $commKanaal = $body['communicatiekanaal'] ?? null; + if ($commKanaal !== null && $commKanaal !== '') { + if (filter_var($commKanaal, FILTER_VALIDATE_URL) === false) { + return new JSONResponse( + data: [ + 'detail' => 'De communicatiekanaal URL is ongeldig.', + 'invalidParams' => [ + [ + 'name' => 'communicatiekanaal', + 'code' => 'bad-url', + 'reason' => 'De communicatiekanaal URL is ongeldig.', + ], + ], + ], + statusCode: Http::STATUS_BAD_REQUEST + ); + } + + // Check if URL ends with a valid UUID (resource endpoint, not collection). + $path = (string) parse_url($commKanaal, PHP_URL_PATH); + $hasUuid = preg_match( + '/[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}\/?$/i', + $path + ) === 1; + + if ($hasUuid === false) { + // Determine error code: garbled UUID → bad-url, collection endpoint → invalid-resource. + $segments = array_filter(explode('/', trim($path, '/'))); + $last = end($segments); + $looksLikeUuid = preg_match('/[0-9a-f]{4,}-/i', (string) $last) === 1; + if ($looksLikeUuid === true) { + $code = 'bad-url'; + } else { + $code = 'invalid-resource'; + } + + return new JSONResponse( + data: [ + 'detail' => 'De communicatiekanaal URL is ongeldig.', + 'invalidParams' => [ + [ + 'name' => 'communicatiekanaal', + 'code' => $code, + 'reason' => 'De communicatiekanaal URL is ongeldig.', + ], + ], + ], + statusCode: Http::STATUS_BAD_REQUEST + ); + }//end if + }//end if + + // Zrc-015: Validate productenOfDiensten. + $producten = $body['productenOfDiensten'] ?? null; + if (is_array($producten) === true + && empty($producten) === false + && $this->zgwService->getObjectService() !== null + ) { + $zaaktypeUrl = $body['zaaktype'] ?? ''; + if (empty($zaaktypeUrl) === false) { + $error = $this->preValidateProductenOfDiensten( + producten: $producten, + zaaktypeUrl: $zaaktypeUrl + ); + if ($error !== null) { + return $error; + } + } + } + } catch (\Throwable $e) { + // Pre-validation is best-effort; fall through to handleUpdate. + $this->zgwService->getLogger()->debug( + 'preValidateZaakBody: '.$e->getMessage() + ); + }//end try + + return null; + }//end preValidateZaakBody() + + /** + * Pre-validate productenOfDiensten against zaaktype (zrc-015). + * + * @param array $producten The productenOfDiensten URLs + * @param string $zaaktypeUrl The zaaktype URL + * + * @return JSONResponse|null A 400 response if invalid, null if valid + */ + private function preValidateProductenOfDiensten( + array $producten, + string $zaaktypeUrl + ): ?JSONResponse { + $uuidPattern = '/([0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12})/i'; + if (preg_match($uuidPattern, $zaaktypeUrl, $matches) !== 1) { + return null; + } + + $ztConfig = $this->zgwService->getZgwMappingService()->getMapping('zaaktype'); + if ($ztConfig === null) { + return null; + } + + try { + $ztObj = $this->zgwService->getObjectService()->find( + $matches[1], + register: $ztConfig['sourceRegister'], + schema: $ztConfig['sourceSchema'] + ); + if (is_array($ztObj) === true) { + $ztData = $ztObj; + } else { + $ztData = $ztObj->jsonSerialize(); + } + } catch (\Throwable $e) { + return null; + } + + $allowed = $ztData['productsOrServices'] ?? ($ztData['productsAndServices'] ?? ($ztData['productenOfDiensten'] ?? [])); + if (is_string($allowed) === true) { + $allowed = json_decode($allowed, true) ?? []; + } + + if (is_array($allowed) === false || empty($allowed) === true) { + return null; + } + + foreach ($producten as $product) { + if (in_array($product, $allowed, true) === false) { + return new JSONResponse( + data: [ + 'detail' => $this->l10n->t('productenOfDiensten contains a value not present in the zaaktype.'), + 'invalidParams' => [ + [ + 'name' => 'productenOfDiensten', + 'code' => 'invalid-products-services', + 'reason' => $this->l10n->t('Product \'%s\' is not allowed for this zaaktype.', [$product]), + ], + ], + ], + statusCode: Http::STATUS_BAD_REQUEST + ); + } + } + + return null; + }//end preValidateProductenOfDiensten() + + /** + * Delete a zaak with cascade delete of all sub-resources (zrc-023). + * + * Deletes: statussen, resultaten, rollen, zaakeigenschappen, + * zaakinformatieobjecten (+ OIO sync), zaakobjecten. + * + * @param string $uuid The zaak UUID to delete + * + * @return JSONResponse + * + * @SuppressWarnings(PHPMD.CyclomaticComplexity) + * @SuppressWarnings(PHPMD.NPathComplexity) + */ + private function destroyZaak(string $uuid): JSONResponse + { + $objectService = $this->zgwService->getObjectService(); + if ($objectService === null) { + return $this->zgwService->unavailableResponse(); + } + + $mappingConfig = $this->zgwService->loadMappingConfig(self::ZGW_API, 'zaken'); + if ($mappingConfig === null) { + return $this->zgwService->mappingNotFoundResponse(self::ZGW_API, 'zaken'); + } + + try { + // Verify the zaak exists. + $objectService->find( + $uuid, + register: $mappingConfig['sourceRegister'], + schema: $mappingConfig['sourceSchema'] + ); + } catch (\Throwable $e) { + return new JSONResponse( + data: ['detail' => 'Not found'], + statusCode: Http::STATUS_NOT_FOUND + ); + } + + // Zrc-005b: Before deleting the zaak, sync-delete OIOs in DRC + // for any linked ZaakInformatieObjecten. This cross-component + // side-effect cannot be handled by OpenRegister's cascade delete. + $zioConfig = $this->zgwService->getZgwMappingService()->getMapping('zaakinformatieobject'); + if ($zioConfig !== null) { + try { + $query = $objectService->buildSearchQuery( + requestParams: ['case' => $uuid, '_limit' => 100], + register: $zioConfig['sourceRegister'], + schema: $zioConfig['sourceSchema'] + ); + $result = $objectService->searchObjectsPaginated(query: $query); + + foreach (($result['results'] ?? []) as $obj) { + if (is_array($obj) === true) { + $data = $obj; + } else { + $data = $obj->jsonSerialize(); + } + + $subUuid = $data['id'] ?? ($data['@self']['id'] ?? ''); + if ($subUuid === '') { + continue; + } + + $zioData = $this->getZioDataForOioSync(uuid: $subUuid); + if ($zioData !== null) { + $this->syncDeleteObjectInformatieObject( + zaakUrl: $zioData['zaakUrl'], + ioUrl: $zioData['ioUrl'] + ); + } + } + } catch (\Throwable $e) { + $this->zgwService->getLogger()->warning( + 'zrc-023: Failed to sync-delete OIOs for zaak '.$uuid.': '.$e->getMessage() + ); + }//end try + }//end if + + // Cascade delete of sub-resources (rol, status, resultaat, etc.) + // is handled by OpenRegister via onDelete: CASCADE in schema definitions. + try { + $objectService->deleteObject(uuid: $uuid); + } catch (\Throwable $e) { + return new JSONResponse( + data: ['detail' => 'Failed to delete zaak: '.$e->getMessage()], + statusCode: Http::STATUS_BAD_REQUEST + ); + } + + $baseUrl = $this->zgwService->buildBaseUrl($this->request, self::ZGW_API, 'zaken'); + $this->zgwService->publishNotification( + self::ZGW_API, + 'zaken', + $baseUrl.'/'.$uuid, + 'destroy' + ); + + $this->zgwService->getLogger()->info( + 'zrc-023: Cascade deleted zaak '.$uuid.' with all sub-resources' + ); + + return new JSONResponse(data: [], statusCode: Http::STATUS_NO_CONTENT); + }//end destroyZaak() + + /** + * Resolve zaak-closed state and geforceerd scope for an existing resource. + * + * @param string $resource The ZGW resource name + * @param string $uuid The resource UUID + * + * @return array{0: ?bool, 1: bool} [zaakClosed, hasGeforceerd] + */ + private function resolveZaakClosedForExisting(string $resource, string $uuid): array + { + $zaakClosed = null; + $hasGeforceerd = true; + + $mappingConfig = $this->zgwService->loadMappingConfig(self::ZGW_API, $resource); + if ($mappingConfig !== null && $this->zgwService->getObjectService() !== null) { + try { + $existingObj = $this->zgwService->getObjectService()->find( + $uuid, + register: $mappingConfig['sourceRegister'], + schema: $mappingConfig['sourceSchema'] + ); + if (is_array($existingObj) === true) { + $existingData = $existingObj; + } else { + $existingData = $existingObj->jsonSerialize(); + } + + $zaakClosed = $this->zgwService->resolveZaakClosed($resource, $existingData); + $hasGeforceerd = true; + if ($zaakClosed === true) { + $hasGeforceerd = $this->zgwService->consumerHasScope( + $this->request, + 'zrc', + 'zaken.geforceerd-bijwerken' + ); + } + } catch (\Throwable $e) { + // Proceed without zaak closed info. + $this->zgwService->getLogger()->debug( + 'Could not resolve zaakClosed for '.$resource.'/'.$uuid.': '.$e->getMessage() + ); + }//end try + }//end if + + return [$zaakClosed, $hasGeforceerd]; + }//end resolveZaakClosedForExisting() + + /** + * Check if creating a status would reopen a closed zaak and require the + * zaken.heropenen scope (zrc-008c). + * + * @param array $body The original request body + * + * @return JSONResponse|null A 403 response if scope is missing, null otherwise + * + * @SuppressWarnings(PHPMD.CyclomaticComplexity) + */ + private function checkReopenScope(array $body): ?JSONResponse + { + try { + $zaakUrl = $body['zaak'] ?? ''; + $statustypeUrl = $body['statustype'] ?? ''; + if ($zaakUrl === '' || $statustypeUrl === '') { + return null; + } + + $uuidPattern = '/([0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12})/i'; + + // Find the zaak. + if (preg_match($uuidPattern, $zaakUrl, $zaakMatches) !== 1) { + return null; + } + + $zaakConfig = $this->zgwService->getZgwMappingService()->getMapping('zaak'); + if ($zaakConfig === null) { + return null; + } + + $zaak = $this->zgwService->getObjectService()->find( + $zaakMatches[1], + register: $zaakConfig['sourceRegister'], + schema: $zaakConfig['sourceSchema'] + ); + if (is_array($zaak) === true) { + $zaakData = $zaak; + } else { + $zaakData = $zaak->jsonSerialize(); + } + + $endDate = $zaakData['endDate'] ?? null; + + // Zaak is not closed — no reopen check needed. + if ($endDate === null || $endDate === '') { + return null; + } + + // Zaak is closed. Check if statustype is eindstatus. + if (preg_match($uuidPattern, $statustypeUrl, $stMatches) !== 1) { + return null; + } + + $stConfig = $this->zgwService->getZgwMappingService()->getMapping('statustype'); + if ($stConfig === null) { + return null; + } + + $statustype = $this->zgwService->getObjectService()->find( + $stMatches[1], + register: $stConfig['sourceRegister'], + schema: $stConfig['sourceSchema'] + ); + if (is_array($statustype) === true) { + $stData = $statustype; + } else { + $stData = $statustype->jsonSerialize(); + } + + $isEindstatus = $stData['isFinal'] ?? ($stData['isFinalStatus'] ?? ($stData['isEindstatus'] ?? false)); + + if ($isEindstatus === 'true' || $isEindstatus === '1' || $isEindstatus === 1 || $isEindstatus === true) { + return null; + } + + // Non-eindstatus on a closed zaak = reopen attempt → check scope. + $hasScope = $this->zgwService->consumerHasScope($this->request, 'zrc', 'zaken.heropenen'); + if ($hasScope === false) { + return $this->permissionDeniedResponse(); + } + } catch (\Throwable $e) { + $this->zgwService->getLogger()->debug( + 'zrc-008c: Could not check reopen scope: '.$e->getMessage() + ); + }//end try + + return null; + }//end checkReopenScope() + + /** + * Set indicatieGebruiksrecht on all linked IOs and then verify none remain + * null before allowing an eindstatus (zrc-007b + zrc-007q). + * + * First attempts to set indicatieGebruiksrecht on all linked IOs (zrc-007b). + * Then checks that all linked IOs have indicatieGebruiksrecht set. If any + * still have null after setting, returns 400 (zrc-007q). + * + * @param array $body The original request body + * + * @return JSONResponse|null A 400 response if any IO has null indicatieGebruiksrecht, null otherwise + * + * @SuppressWarnings(PHPMD.CyclomaticComplexity) + * @SuppressWarnings(PHPMD.NPathComplexity) + * @SuppressWarnings(PHPMD.ExcessiveMethodLength) + */ + private function checkIndicatieGebruiksrechtBeforeClose(array $body): ?JSONResponse + { + try { + $zaakUrl = $body['zaak'] ?? ''; + $statustypeUrl = $body['statustype'] ?? ''; + if ($zaakUrl === '' || $statustypeUrl === '') { + return null; + } + + $uuidPattern = '/([0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12})/i'; + + // Check if this is an eindstatus. + if (preg_match($uuidPattern, $statustypeUrl, $stMatches) !== 1) { + return null; + } + + $stConfig = $this->zgwService->getZgwMappingService()->getMapping('statustype'); + if ($stConfig === null) { + return null; + } + + $statustype = $this->zgwService->getObjectService()->find( + $stMatches[1], + register: $stConfig['sourceRegister'], + schema: $stConfig['sourceSchema'] + ); + if ($statustype === null) { + return null; + } + + if (is_array($statustype) === true) { + $stData = $statustype; + } else { + $stData = $statustype->jsonSerialize(); + } + + $isEindstatus = $stData['isFinal'] ?? ($stData['isFinalStatus'] ?? ($stData['isEindstatus'] ?? false)); + + // Normalize boolean. + if ($isEindstatus === 'true' || $isEindstatus === '1' || $isEindstatus === 1 || $isEindstatus === true) { + $isEindstatus = true; + } + + // Also check by highest volgnummer if not explicitly set. + if ($isEindstatus !== true) { + $isEindstatus = $this->isEindstatusByVolgnummer( + stData: $stData, + stConfig: $stConfig, + uuidPattern: $uuidPattern + ); + } + + if ($isEindstatus !== true) { + return null; + } + + // This is an eindstatus — check indicatieGebruiksrecht (zrc-007q). + // Only derive values (zrc-007b) on the FIRST close (no endDate yet). + // If zaak is already closed, just check raw values without deriving. + if (preg_match($uuidPattern, $zaakUrl, $zaakMatches) !== 1) { + return null; + } + + // Check if zaak is already closed (has endDate). + $zaakConfig = $this->zgwService->getZgwMappingService()->getMapping('zaak'); + $zaakAlreadyClosed = false; + if ($zaakConfig !== null) { + $zaakObj = $this->zgwService->getObjectService()->find( + $zaakMatches[1], + register: $zaakConfig['sourceRegister'], + schema: $zaakConfig['sourceSchema'] + ); + if ($zaakObj !== null) { + if (is_array($zaakObj) === true) { + $zaakData = $zaakObj; + } else { + $zaakData = $zaakObj->jsonSerialize(); + } + + $endDate = $zaakData['endDate'] ?? ($zaakData['einddatum'] ?? null); + $zaakAlreadyClosed = ($endDate !== null && $endDate !== ''); + } + } + + // Zrc-007b: Only derive indicatieGebruiksrecht on first close. + if ($zaakAlreadyClosed === false) { + $this->setIndicatieGebruiksrechtOnClose(zaakUuid: $zaakMatches[1]); + } + + // Zrc-007q: Now verify all linked IOs have indicatieGebruiksrecht set. + $zioConfig = $this->zgwService->getZgwMappingService()->getMapping('zaakinformatieobject'); + $docConfig = $this->zgwService->getZgwMappingService()->getMapping('enkelvoudiginformatieobject'); + if ($zioConfig === null || $docConfig === null) { + return null; + } + + $query = $this->zgwService->getObjectService()->buildSearchQuery( + requestParams: ['case' => $zaakMatches[1], '_limit' => 100], + register: $zioConfig['sourceRegister'], + schema: $zioConfig['sourceSchema'] + ); + $zioResult = $this->zgwService->getObjectService()->searchObjectsPaginated(query: $query); + + foreach (($zioResult['results'] ?? []) as $zioObj) { + if (is_array($zioObj) === true) { + $zioData = $zioObj; + } else { + $zioData = $zioObj->jsonSerialize(); + } + + $docUuid = $zioData['document'] ?? ($zioData['informatieobject'] ?? ''); + + if (preg_match($uuidPattern, (string) $docUuid, $docMatches) !== 1) { + continue; + } + + $docObj = $this->zgwService->getObjectService()->find( + $docMatches[1], + register: $docConfig['sourceRegister'], + schema: $docConfig['sourceSchema'] + ); + if (is_array($docObj) === true) { + $docData = $docObj; + } else { + $docData = $docObj->jsonSerialize(); + } + + $indGr = $docData['usageRightsIndication'] ?? ($docData['usageRightsIndicator'] ?? ($docData['indicatieGebruiksrecht'] ?? null)); + + if ($indGr === null || $indGr === '') { + $detail = 'Zaak kan niet afgesloten worden: niet alle informatieobjecten hebben indicatieGebruiksrecht gezet.'; + return new JSONResponse( + data: [ + 'detail' => $detail, + 'code' => 'indicatiegebruiksrecht-unset', + 'invalidParams' => [ + [ + 'name' => 'nonFieldErrors', + 'code' => 'indicatiegebruiksrecht-unset', + 'reason' => $detail, + ], + ], + ], + statusCode: Http::STATUS_BAD_REQUEST + ); + } + }//end foreach + } catch (\Throwable $e) { + $this->zgwService->getLogger()->debug( + 'zrc-007q: Could not check indicatieGebruiksrecht: '.$e->getMessage() + ); + }//end try + + return null; + }//end checkIndicatieGebruiksrechtBeforeClose() + + /** + * Check if a statustype is the eindstatus by having the highest volgnummer. + * + * @param array $stData The statustype data + * @param array $stConfig The statustype mapping config + * @param string $uuidPattern The UUID regex pattern + * + * @return bool True if this statustype has the highest volgnummer + */ + private function isEindstatusByVolgnummer(array $stData, array $stConfig, string $uuidPattern): bool + { + $caseTypeUuid = (string) ($stData['caseType'] ?? ''); + if (preg_match($uuidPattern, $caseTypeUuid, $ctMatches) === 1) { + $caseTypeUuid = $ctMatches[1]; + } + + $thisOrder = (int) ($stData['order'] ?? ($stData['volgnummer'] ?? 0)); + if ($caseTypeUuid === '' || $thisOrder <= 0) { + return false; + } + + try { + $query = $this->zgwService->getObjectService()->buildSearchQuery( + requestParams: ['caseType' => $caseTypeUuid, '_limit' => 100], + register: $stConfig['sourceRegister'], + schema: $stConfig['sourceSchema'] + ); + $result = $this->zgwService->getObjectService()->searchObjectsPaginated(query: $query); + } catch (\Throwable $e) { + $result = $this->zgwService->getObjectService()->searchObjectsPaginated( + query: [ + '@self' => [ + 'register' => (int) $stConfig['sourceRegister'], + 'schema' => (int) $stConfig['sourceSchema'], + ], + 'caseType' => $caseTypeUuid, + ] + ); + } + + $maxOrder = 0; + foreach (($result['results'] ?? []) as $st) { + if (is_array($st) === true) { + $stObj = $st; + } else { + $stObj = $st->jsonSerialize(); + } + + $order = (int) ($stObj['order'] ?? ($stObj['volgnummer'] ?? 0)); + if ($order > $maxOrder) { + $maxOrder = $order; + } + } + + return $thisOrder >= $maxOrder && $maxOrder > 0; + }//end isEindstatusByVolgnummer() + + /** + * Handle eindstatus side effect when creating a status. + * + * When the created status's statustype has isEindstatus=true, sets the + * parent zaak's einddatum to the datumStatusGezet value. + * Also handles zrc-007b (set indicatieGebruiksrecht on linked documents). + * + * @param array $body The original request body + * @param array $objectData The created object data + * + * @return void + * + * @SuppressWarnings(PHPMD.CyclomaticComplexity) + * @SuppressWarnings(PHPMD.NPathComplexity) + * @SuppressWarnings(PHPMD.ExcessiveMethodLength) + */ + private function handleEindstatusEffect(array $body, array $objectData): void + { + try { + $statustypeUrl = $body['statustype'] ?? ''; + if ($statustypeUrl === '') { + return; + } + + $uuidPattern = '/([0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12})/i'; + if (preg_match($uuidPattern, $statustypeUrl, $matches) !== 1) { + return; + } + + $stConfig = $this->zgwService->getZgwMappingService()->getMapping('statustype'); + if ($stConfig === null) { + return; + } + + $statustype = $this->zgwService->getObjectService()->find( + $matches[1], + register: $stConfig['sourceRegister'], + schema: $stConfig['sourceSchema'] + ); + if ($statustype === null) { + return; + } + + if (is_array($statustype) === true) { + $stData = $statustype; + } else { + $stData = $statustype->jsonSerialize(); + } + + $isEindstatus = $stData['isFinal'] ?? ($stData['isFinalStatus'] ?? ($stData['isEindstatus'] ?? false)); + + // Normalize boolean from OpenRegister (may be string/int). + if ($isEindstatus === 'true' || $isEindstatus === '1' || $isEindstatus === 1 || $isEindstatus === true) { + $isEindstatus = true; + } + + // ZGW standard: if isFinal not explicitly set, the statustype with + // the highest volgnummer for this zaaktype is the eindstatus. + if ($isEindstatus !== true) { + $caseTypeUuid = (string) ($stData['caseType'] ?? ''); + // Extract UUID in case caseType is stored as a URL. + if (preg_match($uuidPattern, $caseTypeUuid, $ctMatches) === 1) { + $caseTypeUuid = $ctMatches[1]; + } + + $thisOrder = (int) ($stData['order'] ?? ($stData['volgnummer'] ?? 0)); + if ($caseTypeUuid !== '' && $thisOrder > 0) { + // Search for all statustypen of this zaaktype. + try { + $query = $this->zgwService->getObjectService()->buildSearchQuery( + requestParams: ['caseType' => $caseTypeUuid, '_limit' => 100], + register: $stConfig['sourceRegister'], + schema: $stConfig['sourceSchema'] + ); + $result = $this->zgwService->getObjectService()->searchObjectsPaginated(query: $query); + } catch (\Throwable $e) { + // Fallback: try direct query without buildSearchQuery. + $result = $this->zgwService->getObjectService()->searchObjectsPaginated( + query: [ + '@self' => [ + 'register' => (int) $stConfig['sourceRegister'], + 'schema' => (int) $stConfig['sourceSchema'], + ], + 'caseType' => $caseTypeUuid, + ] + ); + } + + $maxOrder = 0; + foreach (($result['results'] ?? []) as $st) { + if (is_array($st) === true) { + $stObj = $st; + } else { + $stObj = $st->jsonSerialize(); + } + + $order = (int) ($stObj['order'] ?? ($stObj['volgnummer'] ?? 0)); + if ($order > $maxOrder) { + $maxOrder = $order; + } + } + + if ($thisOrder >= $maxOrder && $maxOrder > 0) { + $isEindstatus = true; + } + }//end if + }//end if + + $zaakUrl = $body['zaak'] ?? ''; + if ($zaakUrl === '') { + return; + } + + if (preg_match($uuidPattern, $zaakUrl, $zaakMatches) !== 1) { + return; + } + + $zaakConfig = $this->zgwService->getZgwMappingService()->getMapping('zaak'); + if ($zaakConfig === null) { + return; + } + + $zaak = $this->zgwService->getObjectService()->find( + $zaakMatches[1], + register: $zaakConfig['sourceRegister'], + schema: $zaakConfig['sourceSchema'] + ); + if ($zaak === null) { + return; + } + + if (is_array($zaak) === true) { + $zaakData = $zaak; + } else { + $zaakData = $zaak->jsonSerialize(); + } + + // Strip metadata that confuses saveObject on re-save. + unset($zaakData['@self'], $zaakData['organisation']); + + // Ensure field types match schema expectations for re-save. + // OpenRegister may store numeric-looking strings as integers, but the + // schema expects string types for fields like bronorganisatie. + $stringFields = ['title', 'assignee', 'sourceOrganisation', 'identifier']; + foreach ($stringFields as $field) { + if (isset($zaakData[$field]) === true && is_int($zaakData[$field]) === true) { + $zaakData[$field] = (string) $zaakData[$field]; + } + + if ($field === 'title' && isset($zaakData[$field]) === false) { + $zaakData[$field] = ''; + } + } + + if ($isEindstatus === true) { + // Zrc-007a: Set zaak einddatum when eindstatus is created. + $datumStatusGezet = $body['datumStatusGezet'] ?? ($objectData['statusSetDate'] ?? date('Y-m-d')); + if (strlen($datumStatusGezet) > 10) { + $datumStatusGezet = substr($datumStatusGezet, 0, 10); + } + + $zaakData['endDate'] = $datumStatusGezet; + + // Zrc-021: Derive archiefactiedatum from resultaat.resultaattype.brondatumArchiefprocedure. + $zaakData = $this->deriveArchiefactiedatum( + zaakData: $zaakData, + zaakConfig: $zaakConfig, + datumStatusGezet: $datumStatusGezet + ); + + $zaakData['id'] = $zaakMatches[1]; + $this->zgwService->getObjectService()->saveObject( + register: $zaakConfig['sourceRegister'], + schema: $zaakConfig['sourceSchema'], + object: $zaakData, + uuid: $zaakMatches[1] + ); + + // Zrc-007b: Set indicatieGebruiksrecht on all related informatieobjecten. + $this->setIndicatieGebruiksrechtOnClose(zaakUuid: $zaakMatches[1]); + }//end if + + if ($isEindstatus === false) { + // Zrc-008: Heropenen zaak — when a non-eindstatus is created on + // a zaak that already has an endDate, clear endDate, archiefactiedatum, + // and archiefnominatie (reopen the zaak). + $existingEndDate = $zaakData['endDate'] ?? null; + if ($existingEndDate !== null && $existingEndDate !== '') { + $zaakData['endDate'] = null; + $zaakData['archiveActionDate'] = null; + $zaakData['archiveNomination'] = null; + $zaakData['id'] = $zaakMatches[1]; + $this->zgwService->getObjectService()->saveObject( + register: $zaakConfig['sourceRegister'], + schema: $zaakConfig['sourceSchema'], + object: $zaakData, + uuid: $zaakMatches[1] + ); + + $this->zgwService->getLogger()->info( + 'zrc-008: Heropened zaak '.$zaakMatches[1].' — cleared endDate, archiveActionDate, archiveNomination' + ); + } + }//end if + } catch (\Throwable $e) { + $this->zgwService->getLogger()->error( + 'handleEindstatusEffect failed: '.$e->getMessage(), + ['exception' => $e] + ); + }//end try + }//end handleEindstatusEffect() + + /** + * Set indicatieGebruiksrecht on all informatieobjecten linked to a zaak (zrc-007b). + * + * When a zaak is closed, all related informatieobjecten must have + * indicatieGebruiksrecht set (not null). + * + * @param string $zaakUuid The zaak UUID + * + * @return void + */ + private function setIndicatieGebruiksrechtOnClose(string $zaakUuid): void + { + try { + $zioConfig = $this->zgwService->getZgwMappingService()->getMapping('zaakinformatieobject'); + $docConfig = $this->zgwService->getZgwMappingService()->getMapping('enkelvoudiginformatieobject'); + if ($zioConfig === null || $docConfig === null) { + return; + } + + // Find all ZIOs for this zaak. + $query = $this->zgwService->getObjectService()->buildSearchQuery( + requestParams: ['case' => $zaakUuid, '_limit' => 100], + register: $zioConfig['sourceRegister'], + schema: $zioConfig['sourceSchema'] + ); + $result = $this->zgwService->getObjectService()->searchObjectsPaginated(query: $query); + + foreach (($result['results'] ?? []) as $zioObj) { + if (is_array($zioObj) === true) { + $zioData = $zioObj; + } else { + $zioData = $zioObj->jsonSerialize(); + } + + $docUuid = $zioData['document'] ?? ($zioData['informatieobject'] ?? ''); + + $uuidPattern = '/([0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12})/i'; + if (preg_match($uuidPattern, (string) $docUuid, $docMatches) !== 1) { + continue; + } + + try { + $docObj = $this->zgwService->getObjectService()->find( + $docMatches[1], + register: $docConfig['sourceRegister'], + schema: $docConfig['sourceSchema'] + ); + if (is_array($docObj) === true) { + $docData = $docObj; + } else { + $docData = $docObj->jsonSerialize(); + } + + // Check if indicatieGebruiksrecht is already set. + $indGr = $docData['usageRightsIndication'] ?? ($docData['usageRightsIndicator'] ?? ($docData['indicatieGebruiksrecht'] ?? null)); + + if ($indGr === null || $indGr === '') { + // Check if gebruiksrechten exist for this document. + $grConfig = $this->zgwService->getZgwMappingService()->getMapping('gebruiksrechten'); + $hasGr = false; + if ($grConfig !== null) { + try { + $grQuery = $this->zgwService->getObjectService()->buildSearchQuery( + requestParams: ['document' => $docMatches[1], '_limit' => 1], + register: $grConfig['sourceRegister'], + schema: $grConfig['sourceSchema'] + ); + $grResult = $this->zgwService->getObjectService() + ->searchObjectsPaginated(query: $grQuery); + $hasGr = empty($grResult['results'] ?? []) === false; + } catch (\Throwable $e) { + // No gebruiksrechten schema — default to false. + } + } + + // Set indicatieGebruiksrecht based on whether gebruiksrechten exist. + unset($docData['@self'], $docData['organisation']); + $docData['usageRightsIndication'] = $hasGr; + $docData['id'] = $docMatches[1]; + $this->zgwService->getObjectService()->saveObject( + register: $docConfig['sourceRegister'], + schema: $docConfig['sourceSchema'], + object: $docData, + uuid: $docMatches[1] + ); + }//end if + } catch (\Throwable $e) { + $this->zgwService->getLogger()->debug( + 'zrc-007b: Could not update indicatieGebruiksrecht for doc '.$docMatches[1].': '.$e->getMessage() + ); + }//end try + }//end foreach + } catch (\Throwable $e) { + $this->zgwService->getLogger()->warning( + 'zrc-007b: Failed to set indicatieGebruiksrecht: '.$e->getMessage() + ); + }//end try + }//end setIndicatieGebruiksrechtOnClose() + + /** + * Handle resultaat creation side-effects (zrc-021). + * + * When a resultaat is created, derive archiefactiedatum and + * archiefnominatie on the parent zaak from the resultaattype. + * + * @param array $body The original request body (Dutch names) + * @param array $objectData The created resultaat object data + * + * @return void + * + * @psalm-suppress UnusedParam — $objectData reserved for future use in result processing + * + * @SuppressWarnings(PHPMD.UnusedFormalParameter) $objectData reserved for future result processing + */ + private function handleResultaatCreated(array $body, array $objectData): void + { + try { + $zaakUrl = $body['zaak'] ?? ''; + if ($zaakUrl === '') { + return; + } + + $uuidPattern = '/([0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12})/i'; + if (preg_match($uuidPattern, $zaakUrl, $zaakMatches) !== 1) { + return; + } + + $zaakConfig = $this->zgwService->getZgwMappingService()->getMapping('zaak'); + if ($zaakConfig === null) { + return; + } + + $zaakObj = $this->zgwService->getObjectService()->find( + $zaakMatches[1], + register: $zaakConfig['sourceRegister'], + schema: $zaakConfig['sourceSchema'] + ); + if (is_array($zaakObj) === true) { + $zaakData = $zaakObj; + } else { + $zaakData = $zaakObj->jsonSerialize(); + } + + // Use the zaak endDate as einddatum (may be null if zaak isn't closed yet). + $einddatum = $zaakData['endDate'] ?? date('Y-m-d'); + + $zaakData = $this->deriveArchiefactiedatum( + zaakData: $zaakData, + zaakConfig: $zaakConfig, + datumStatusGezet: $einddatum + ); + + // Type coercion for re-save (OpenRegister stores numeric strings as ints). + $stringFields = ['title', 'assignee', 'sourceOrganisation', 'identifier']; + foreach ($stringFields as $field) { + if (isset($zaakData[$field]) === true && is_int($zaakData[$field]) === true) { + $zaakData[$field] = (string) $zaakData[$field]; + } + + if ($field === 'title' && isset($zaakData[$field]) === false) { + $zaakData[$field] = ''; + } + } + + // Save the updated zaak. + $zaakData['id'] = $zaakMatches[1]; + $this->zgwService->getObjectService()->saveObject( + register: $zaakConfig['sourceRegister'], + schema: $zaakConfig['sourceSchema'], + object: $zaakData, + uuid: $zaakMatches[1] + ); + } catch (\Throwable $e) { + $this->zgwService->getLogger()->error( + 'zrc-021: handleResultaatCreated failed: '.$e->getMessage(), + ['exception' => $e] + ); + }//end try + }//end handleResultaatCreated() + + /** + * Derive archiefactiedatum from resultaat's resultaattype brondatumArchiefprocedure (zrc-021). + * + * @param array $zaakData The zaak data + * @param array $zaakConfig The zaak mapping config + * @param string $datumStatusGezet The datumStatusGezet (einddatum) + * + * @return array The zaak data with derived archiving parameters + * + * @SuppressWarnings(PHPMD.CyclomaticComplexity) + * @SuppressWarnings(PHPMD.NPathComplexity) + * @SuppressWarnings(PHPMD.ExcessiveMethodLength) + */ + private function deriveArchiefactiedatum(array $zaakData, array $zaakConfig, string $datumStatusGezet): array + { + try { + // Find the zaak's resultaat to get the resultaattype. + $zaakUuid = $zaakData['id'] ?? ($zaakData['@self']['id'] ?? ''); + if ($zaakUuid === '') { + return $zaakData; + } + + $resultaatConfig = $this->zgwService->getZgwMappingService()->getMapping('resultaat'); + if ($resultaatConfig === null) { + return $zaakData; + } + + // Search for resultaat linked to this zaak. + $query = $this->zgwService->getObjectService()->buildSearchQuery( + requestParams: ['case' => $zaakUuid, '_limit' => 1], + register: $resultaatConfig['sourceRegister'], + schema: $resultaatConfig['sourceSchema'] + ); + $result = $this->zgwService->getObjectService()->searchObjectsPaginated(query: $query); + + $results = $result['results'] ?? []; + if (empty($results) === true) { + return $zaakData; + } + + $resultaat = $results[0]; + if (is_array($resultaat) === true) { + $resultaatData = $resultaat; + } else { + $resultaatData = $resultaat->jsonSerialize(); + } + + // Get the resultaattype to find brondatumArchiefprocedure. + $resultaattypeId = $resultaatData['resultType'] ?? ($resultaatData['resultaattype'] ?? ''); + if (empty($resultaattypeId) === true) { + return $zaakData; + } + + $uuidPattern = '/([0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12})/i'; + if (preg_match($uuidPattern, (string) $resultaattypeId, $rtMatches) !== 1) { + return $zaakData; + } + + $rtConfig = $this->zgwService->getZgwMappingService()->getMapping('resultaattype'); + if ($rtConfig === null) { + return $zaakData; + } + + $rtObj = $this->zgwService->getObjectService()->find( + $rtMatches[1], + register: $rtConfig['sourceRegister'], + schema: $rtConfig['sourceSchema'] + ); + if ($rtObj === null) { + return $zaakData; + } + + if (is_array($rtObj) === true) { + $rtData = $rtObj; + } else { + $rtData = $rtObj->jsonSerialize(); + } + + // Get brondatumArchiefprocedure. + $brondatum = $rtData['sourceDateArchiveProcedure'] ?? ($rtData['brondatumArchiefprocedure'] ?? null); + if (is_string($brondatum) === true) { + $brondatum = json_decode($brondatum, true); + } + + if ($brondatum === null || is_array($brondatum) === false) { + return $zaakData; + } + + $afleidingswijze = $brondatum['derivationMethod'] ?? ($brondatum['afleidingswijze'] ?? ''); + // Archiefactietermijn lives on the ResultaatType, not inside brondatumArchiefprocedure. + $procestermijn = $rtData['archivalPeriod'] ?? ($rtData['archiefactietermijn'] ?? null); + + // Determine the base date based on afleidingswijze. + $baseDate = $this->resolveArchiveBaseDate( + afleidingswijze: $afleidingswijze, + einddatum: $datumStatusGezet, + zaakData: $zaakData, + zaakConfig: $zaakConfig, + brondatum: $brondatum + ); + + if ($baseDate === null) { + // Base date unresolvable — set archiefactiedatum to null but still derive archiefnominatie. + $zaakData['archiveActionDate'] = null; + + $nomination = $rtData['archivalAction'] ?? ($rtData['archiveNomination'] ?? ($rtData['archiefnominatie'] ?? '')); + if ($nomination !== '') { + $zaakData['archiveNomination'] = $nomination; + } + + return $zaakData; + } + + // Add procestermijn (ISO 8601 duration) to the base date. + $archiefactiedatum = $baseDate; + if ($procestermijn !== null && $procestermijn !== '') { + try { + $dateObj = new DateTime($baseDate); + $interval = new DateInterval($procestermijn); + $dateObj->add($interval); + $archiefactiedatum = $dateObj->format('Y-m-d'); + } catch (\Throwable $e) { + $this->zgwService->getLogger()->debug( + 'zrc-021: Invalid procestermijn: '.$procestermijn + ); + } + } + + $zaakData['archiveActionDate'] = $archiefactiedatum; + + // Zrc-021: Also set archiveNomination from the resultaattype. + $nomination = $rtData['archivalAction'] ?? ($rtData['archiveNomination'] ?? ($rtData['archiefnominatie'] ?? '')); + if ($nomination !== '') { + $zaakData['archiveNomination'] = $nomination; + } + + $this->zgwService->getLogger()->info( + 'zrc-021: Derived archiefactiedatum='.$archiefactiedatum.' (afleidingswijze='.$afleidingswijze.')' + ); + } catch (\Throwable $e) { + $this->zgwService->getLogger()->warning( + 'zrc-021: Failed to derive archiefactiedatum: '.$e->getMessage() + ); + }//end try + + return $zaakData; + }//end deriveArchiefactiedatum() + + /** + * Resolve the base date for archive action date derivation (zrc-021). + * + * @param string $afleidingswijze The derivation method + * @param string $einddatum The zaak end date + * @param array $zaakData The zaak data + * @param array $zaakConfig The zaak mapping config + * @param array $brondatum The brondatumArchiefprocedure data + * + * @return string|null The base date, or null if not resolvable + * + * @SuppressWarnings(PHPMD.CyclomaticComplexity) + */ + private function resolveArchiveBaseDate( + string $afleidingswijze, + string $einddatum, + array $zaakData, + array $zaakConfig, + array $brondatum + ): ?string { + switch ($afleidingswijze) { + case 'afgehandeld': + case 'termijn': + return $einddatum; + + case 'ander_datumkenmerk': + // Cannot be automatically determined — requires external datumkenmerk. + return null; + + case 'hoofdzaak': + $mainCaseId = $zaakData['parentCase'] ?? ($zaakData['mainCase'] ?? ($zaakData['hoofdzaak'] ?? '')); + if (empty($mainCaseId) === true) { + return $einddatum; + } + + $uuidPattern = '/([0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12})/i'; + if (preg_match($uuidPattern, (string) $mainCaseId, $matches) === 1) { + try { + $mainZaak = $this->zgwService->getObjectService()->find( + $matches[1], + register: $zaakConfig['sourceRegister'], + schema: $zaakConfig['sourceSchema'] + ); + if (is_array($mainZaak) === true) { + $mainData = $mainZaak; + } else { + $mainData = $mainZaak->jsonSerialize(); + } + + $mainEnd = $mainData['endDate'] ?? null; + if ($mainEnd !== null && $mainEnd !== '') { + if (is_string($mainEnd) === true) { + return substr($mainEnd, 0, 10); + } + + return $einddatum; + } + } catch (\Throwable $e) { + // Fall through to einddatum. + }//end try + }//end if + return $einddatum; + + case 'eigenschap': + $datumkenmerk = $brondatum['objectAttribute'] ?? ($brondatum['datumkenmerk'] ?? ''); + if ($datumkenmerk !== '' && $this->zgwService->getObjectService() !== null) { + return $this->resolveEigenschapDate(zaakData: $zaakData, datumkenmerk: $datumkenmerk) ?? $einddatum; + } + return $einddatum; + + case 'ingangsdatum_besluit': + return $this->resolveBesluitDate( + zaakData: $zaakData, + englishField: 'effectiveDate', + dutchField: 'ingangsdatum' + ) ?? $einddatum; + + case 'vervaldatum_besluit': + return $this->resolveBesluitDate( + zaakData: $zaakData, + englishField: 'expiryDate', + dutchField: 'vervaldatum' + ) ?? $einddatum; + + default: + return null; + }//end switch + }//end resolveArchiveBaseDate() + + /** + * Resolve a zaakeigenschap date value for archive derivation (zrc-021 eigenschap). + * + * @param array $zaakData The zaak data + * @param string $datumkenmerk The eigenschap name/key to look up + * + * @return string|null The date value, or null if not found + */ + private function resolveEigenschapDate(array $zaakData, string $datumkenmerk): ?string + { + $zaakUuid = $zaakData['id'] ?? ($zaakData['@self']['id'] ?? ''); + if ($zaakUuid === '') { + return null; + } + + $propConfig = $this->zgwService->getZgwMappingService()->getMapping('zaakeigenschap'); + if ($propConfig === null) { + return null; + } + + try { + $query = $this->zgwService->getObjectService()->buildSearchQuery( + requestParams: ['case' => $zaakUuid, 'name' => $datumkenmerk], + register: $propConfig['sourceRegister'], + schema: $propConfig['sourceSchema'] + ); + $result = $this->zgwService->getObjectService()->searchObjectsPaginated(query: $query); + + $results = $result['results'] ?? []; + if (empty($results) === false) { + $propObj = $results[0]; + if (is_array($propObj) === true) { + $propData = $propObj; + } else { + $propData = $propObj->jsonSerialize(); + } + + $value = $propData['value'] ?? ($propData['waarde'] ?? ''); + if ($value !== '' && strtotime($value) !== false) { + return substr($value, 0, 10); + } + } + } catch (\Throwable $e) { + // Not found — return null. + }//end try + + return null; + }//end resolveEigenschapDate() + + /** + * Resolve a besluit date field for archive derivation (zrc-021 ingangsdatum/vervaldatum). + * + * @param array $zaakData The zaak data + * @param string $englishField The English field name + * @param string $dutchField The Dutch field name (fallback) + * + * @return string|null The date value, or null if not found + */ + private function resolveBesluitDate(array $zaakData, string $englishField, string $dutchField): ?string + { + $zaakUuid = $zaakData['id'] ?? ($zaakData['@self']['id'] ?? ''); + if ($zaakUuid === '') { + return null; + } + + $besluitConfig = $this->zgwService->getZgwMappingService()->getMapping('besluit'); + if ($besluitConfig === null) { + return null; + } + + try { + $query = $this->zgwService->getObjectService()->buildSearchQuery( + requestParams: ['case' => $zaakUuid, '_limit' => 100], + register: $besluitConfig['sourceRegister'], + schema: $besluitConfig['sourceSchema'] + ); + $result = $this->zgwService->getObjectService()->searchObjectsPaginated(query: $query); + + $results = $result['results'] ?? []; + if (empty($results) === true) { + return null; + } + + // Find the latest (maximum) date among all besluiten for this zaak. + $latestDate = null; + foreach ($results as $besluitObj) { + if (is_array($besluitObj) === true) { + $besluitData = $besluitObj; + } else { + $besluitData = $besluitObj->jsonSerialize(); + } + + $dateVal = $besluitData[$englishField] ?? ($besluitData[$dutchField] ?? ''); + if ($dateVal !== '' && strtotime($dateVal) !== false) { + $dateStr = substr($dateVal, 0, 10); + if ($latestDate === null || $dateStr > $latestDate) { + $latestDate = $dateStr; + } + } + } + + return $latestDate; + } catch (\Throwable $e) { + // Not found — return null. + }//end try + + return null; + }//end resolveBesluitDate() + + /** + * Enrich a ZaakInformatieObject outbound-mapped array with aardRelatieWeergave and registratiedatum. + * + * @param array $mapped The outbound-mapped data + * @param array $body The enriched request body (from business rules) + * + * @return array The enriched mapped data + */ + private function enrichZioResponse(array $mapped, array $body): array + { + // Zrc-004a: aardRelatieWeergave is always "Hoort bij, omgekeerd: kent". + $mapped['aardRelatieWeergave'] = 'Hoort bij, omgekeerd: kent'; + + // Zrc-004a: registratiedatum from the enriched body (set by business rules). + if (isset($body['registratiedatum']) === true + && isset($mapped['registratiedatum']) === false + ) { + $mapped['registratiedatum'] = $body['registratiedatum']; + } + + return $mapped; + }//end enrichZioResponse() + + /** + * Enrich a ZaakInformatieObject JSONResponse with aardRelatieWeergave (zrc-004b/c). + * + * Used for update/patch responses where we intercept the JSONResponse from handleUpdate. + * + * @param JSONResponse $response The response to enrich + * + * @return JSONResponse The enriched response + */ + private function enrichZioJsonResponse(JSONResponse $response): JSONResponse + { + $data = $response->getData(); + if (is_array($data) === true) { + $data['aardRelatieWeergave'] = 'Hoort bij, omgekeerd: kent'; + $response->setData($data); + } + + return $response; + }//end enrichZioJsonResponse() + + /** + * Create an ObjectInformatieObject in the DRC when a ZaakInformatieObject is created (zrc-005a). + * + * @param string $zaakUrl The zaak URL + * @param string $ioUrl The informatieobject URL + * + * @return void + */ + private function syncCreateObjectInformatieObject(string $zaakUrl, string $ioUrl): void + { + if ($zaakUrl === '' || $ioUrl === '') { + return; + } + + try { + $oioConfig = $this->zgwService->getZgwMappingService()->getMapping('objectinformatieobject'); + if ($oioConfig === null) { + $this->zgwService->getLogger()->debug( + 'zrc-005a: objectinformatieobject mapping not configured' + ); + return; + } + + $oioData = [ + 'object' => $zaakUrl, + 'objectType' => 'zaak', + 'informatieobject' => $ioUrl, + ]; + + $inboundMapping = $this->zgwService->createInboundMapping(mappingConfig: $oioConfig); + $englishData = $this->zgwService->applyInboundMapping( + body: $oioData, + mapping: $inboundMapping, + mappingConfig: $oioConfig + ); + + // @phpstan-ignore-next-line — defensive guard: applyInboundMapping may change + if (is_array($englishData) === false) { + $englishData = $oioData; + } + + $this->zgwService->getObjectService()->saveObject( + register: $oioConfig['sourceRegister'], + schema: $oioConfig['sourceSchema'], + object: $englishData + ); + + $this->zgwService->getLogger()->info( + 'zrc-005a: Created ObjectInformatieObject for zaak/io sync' + ); + } catch (\Throwable $e) { + $this->zgwService->getLogger()->warning( + 'zrc-005a: Failed to create ObjectInformatieObject: '.$e->getMessage() + ); + }//end try + }//end syncCreateObjectInformatieObject() + + /** + * Get ZaakInformatieObject data needed for OIO sync before deletion. + * + * @param string $uuid The ZaakInformatieObject UUID + * + * @return array|null The zaakUrl and ioUrl, or null if not found + */ + private function getZioDataForOioSync(string $uuid): ?array + { + try { + $zioConfig = $this->zgwService->loadMappingConfig(self::ZGW_API, 'zaakinformatieobjecten'); + if ($zioConfig === null) { + return null; + } + + $zioObj = $this->zgwService->getObjectService()->find( + $uuid, + register: $zioConfig['sourceRegister'], + schema: $zioConfig['sourceSchema'] + ); + if (is_array($zioObj) === true) { + $zioData = $zioObj; + } else { + $zioData = $zioObj->jsonSerialize(); + } + + // The ZIO stores 'case' as a UUID (format: uuid with $ref) and + // 'document' as a full URL (format: uri). Build the zaak URL from + // the case UUID, and use the document URL directly. + $zaakUuid = $zioData['case'] ?? ($zioData['zaak'] ?? ''); + $ioUrl = $zioData['document'] ?? ($zioData['informatieobject'] ?? ''); + + if ($zaakUuid === '' || $ioUrl === '') { + return null; + } + + // Build zaak URL from the UUID (case field stores UUID). + $zaakBaseUrl = $this->zgwService->buildBaseUrl($this->request, 'zaken', 'zaken'); + + return [ + 'zaakUrl' => $zaakBaseUrl.'/'.$zaakUuid, + 'ioUrl' => $ioUrl, + ]; + } catch (\Throwable $e) { + $this->zgwService->getLogger()->debug( + 'zrc-005b: Could not get ZIO data for OIO sync: '.$e->getMessage() + ); + return null; + }//end try + }//end getZioDataForOioSync() + + /** + * Delete the ObjectInformatieObject in DRC when a ZaakInformatieObject is deleted (zrc-005b). + * + * @param string $zaakUrl The zaak URL + * @param string $ioUrl The informatieobject URL + * + * @return void + */ + private function syncDeleteObjectInformatieObject(string $zaakUrl, string $ioUrl): void + { + try { + $oioConfig = $this->zgwService->getZgwMappingService()->getMapping('objectinformatieobject'); + if ($oioConfig === null) { + return; + } + + // The OIO schema (documentLink) stores 'object' and 'document' as + // full URLs (format: uri). Search by the full URL values directly. + if ($zaakUrl === '' || $ioUrl === '') { + return; + } + + $query = $this->zgwService->getObjectService()->buildSearchQuery( + requestParams: ['object' => $zaakUrl, 'document' => $ioUrl], + register: $oioConfig['sourceRegister'], + schema: $oioConfig['sourceSchema'] + ); + $result = $this->zgwService->getObjectService()->searchObjectsPaginated(query: $query); + + foreach (($result['results'] ?? []) as $oioObj) { + if (is_array($oioObj) === true) { + $oioData = $oioObj; + } else { + $oioData = $oioObj->jsonSerialize(); + } + + $oioUuid = $oioData['id'] ?? ($oioData['@self']['id'] ?? ''); + if ($oioUuid !== '') { + $this->zgwService->getObjectService()->deleteObject(uuid: $oioUuid); + $this->zgwService->getLogger()->info( + 'zrc-005b: Deleted ObjectInformatieObject '.$oioUuid + ); + } + } + } catch (\Throwable $e) { + $this->zgwService->getLogger()->warning( + 'zrc-005b: Failed to delete ObjectInformatieObject: '.$e->getMessage() + ); + }//end try + }//end syncDeleteObjectInformatieObject() +}//end class diff --git a/lib/Controller/ZtcController.php b/lib/Controller/ZtcController.php new file mode 100644 index 0000000..a3c881c --- /dev/null +++ b/lib/Controller/ZtcController.php @@ -0,0 +1,1356 @@ + + * @copyright 2024 Conduction B.V. + * @license EUPL-1.2 https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12 + * + * @version GIT: + * + * @link https://procest.nl + */ + +declare(strict_types=1); + +namespace OCA\Procest\Controller; + +use OCA\Procest\Service\ZgwService; +use OCP\AppFramework\Controller; +use OCP\AppFramework\Http; +use OCP\AppFramework\Http\JSONResponse; +use OCP\IRequest; + +/** + * ZTC (Catalogi) API Controller + * + * Handles ZGW Catalogi register resources with publish support for + * zaaktypen, besluittypen, and informatieobjecttypen. + * + * @psalm-suppress UnusedClass + * + * @SuppressWarnings(PHPMD.CouplingBetweenObjects) + * @SuppressWarnings(PHPMD.TooManyPublicMethods) + * @SuppressWarnings(PHPMD.ExcessiveClassLength) + * @SuppressWarnings(PHPMD.ExcessiveClassComplexity) + * @SuppressWarnings(PHPMD.CyclomaticComplexity) + * @SuppressWarnings(PHPMD.NPathComplexity) + */ +class ZtcController extends Controller +{ + /** + * The ZGW API identifier for the Catalogi register. + * + * @var string + */ + private const ZGW_API = 'catalogi'; + + /** + * Resources that need URL validity filtering in responses. + * + * Maps resource name to the fields containing URL arrays that need filtering, + * and the schema config key to look up each referenced type. + * + * @var array> + */ + private const URL_FILTER_FIELDS = [ + 'zaaktypen' => [ + 'informatieobjecttypen' => [ + 'schemaKey' => 'document_type_schema', + 'nested' => false, + ], + 'besluittypen' => [ + 'schemaKey' => 'decision_type_schema', + 'nested' => false, + ], + 'deelzaaktypen' => [ + 'schemaKey' => 'case_type_schema', + 'nested' => false, + ], + 'gerelateerdeZaaktypen' => [ + 'schemaKey' => 'case_type_schema', + 'nested' => true, + ], + ], + 'besluittypen' => [ + 'informatieobjecttypen' => [ + 'schemaKey' => 'document_type_schema', + 'nested' => false, + ], + 'zaaktypen' => [ + 'schemaKey' => 'case_type_schema', + 'nested' => false, + ], + ], + ]; + + /** + * Constructor. + * + * @param string $appName The app name. + * @param IRequest $request The incoming request. + * @param ZgwService $zgwService The shared ZGW service. + */ + public function __construct( + string $appName, + IRequest $request, + private readonly ZgwService $zgwService, + ) { + parent::__construct(appName: $appName, request: $request); + }//end __construct() + + /** + * List resources of the given type. + * + * @param string $resource The ZGW resource name (e.g. catalogussen, zaaktypen). + * + * @return JSONResponse + * + * @NoAdminRequired + * @NoCSRFRequired + * @PublicPage + * @CORS + */ + public function index(string $resource): JSONResponse + { + $authError = $this->zgwService->validateJwtAuth($this->request); + if ($authError !== null) { + return $authError; + } + + $response = $this->zgwService->handleIndex($this->request, self::ZGW_API, $resource); + + if ($response->getStatus() !== Http::STATUS_OK) { + return $response; + } + + $data = $response->getData(); + if (is_array($data) === false || isset($data['results']) === false || is_array($data['results']) === false) { + return $response; + } + + // ZTC datumGeldigheid: post-filter results by date validity. + $datumGeldigheid = $this->request->getParam('datumGeldigheid'); + if ($datumGeldigheid !== null && $datumGeldigheid !== '') { + $data['results'] = $this->filterByDatumGeldigheid( + results: $data['results'], + datumGeldigheid: $datumGeldigheid + ); + $data['count'] = count($data['results']); + } + + // Enrich cross-references and filter invalid URLs from paginated results. + if (isset(self::URL_FILTER_FIELDS[$resource]) === true) { + foreach ($data['results'] as $idx => $item) { + $item = $this->enrichCrossReferences(resource: $resource, data: $item); + $data['results'][$idx] = $this->filterValidUrls(resource: $resource, data: $item); + } + } + + return new JSONResponse(data: $data, statusCode: Http::STATUS_OK); + }//end index() + + /** + * Create a new resource of the given type. + * + * @param string $resource The ZGW resource name. + * + * @return JSONResponse + * + * @NoAdminRequired + * @NoCSRFRequired + * @PublicPage + * @CORS + */ + public function create(string $resource): JSONResponse + { + $authError = $this->zgwService->validateJwtAuth($this->request); + if ($authError !== null) { + return $authError; + } + + // Ztc-010: Resolve parent zaaktype draft status for sub-resource creation. + $body = $this->zgwService->getRequestBody($this->request); + $parentZaaktypeDraft = $this->zgwService->resolveParentZaaktypeDraftFromBody($resource, $body); + + // Ztc-010m: For ZIOT, resolve informatieobjecttype by omschrijving if not a UUID/URL. + if ($resource === 'zaaktype-informatieobjecttypen') { + $this->resolveIotByOmschrijving(body: $body); + } + + $response = $this->zgwService->handleCreate( + $this->request, + self::ZGW_API, + $resource, + parentZaaktypeDraft: $parentZaaktypeDraft + ); + + // Enrich cross-references on create response (without validity filtering + // since referenced types may not yet be published at creation time). + if (isset(self::URL_FILTER_FIELDS[$resource]) === true + && $response->getStatus() === Http::STATUS_CREATED + ) { + $data = $response->getData(); + $data = $this->enrichCrossReferences(resource: $resource, data: $data); + + return new JSONResponse(data: $data, statusCode: Http::STATUS_CREATED); + } + + return $response; + }//end create() + + /** + * Retrieve a single resource by UUID. + * + * @param string $resource The ZGW resource name. + * @param string $uuid The resource UUID. + * + * @return JSONResponse + * + * @NoAdminRequired + * @NoCSRFRequired + * @PublicPage + * @CORS + */ + public function show(string $resource, string $uuid): JSONResponse + { + $authError = $this->zgwService->validateJwtAuth($this->request); + if ($authError !== null) { + return $authError; + } + + $response = $this->zgwService->handleShow($this->request, self::ZGW_API, $resource, $uuid); + + // Enrich cross-references and filter invalid URLs. + if (isset(self::URL_FILTER_FIELDS[$resource]) === true + && $response->getStatus() === Http::STATUS_OK + ) { + $data = $response->getData(); + $data = $this->enrichCrossReferences(resource: $resource, data: $data); + $filtered = $this->filterValidUrls(resource: $resource, data: $data); + + return new JSONResponse(data: $filtered, statusCode: Http::STATUS_OK); + } + + return $response; + }//end show() + + /** + * Resolve the parent zaaktype draft status for a sub-resource. + * + * @param string $resource The ZGW resource name. + * @param string $uuid The resource UUID. + * + * @return bool|null The parent zaaktype draft status, or null if not applicable. + */ + private function resolveParentDraft(string $resource, string $uuid): ?bool + { + $mappingConfig = $this->zgwService->loadMappingConfig(self::ZGW_API, $resource); + if ($mappingConfig === null || $this->zgwService->getObjectService() === null) { + return null; + } + + try { + $existingObj = $this->zgwService->getObjectService()->find( + $uuid, + register: $mappingConfig['sourceRegister'], + schema: $mappingConfig['sourceSchema'] + ); + if (is_array($existingObj) === true) { + $existingData = $existingObj; + } else { + $existingData = $existingObj->jsonSerialize(); + } + + return $this->zgwService->resolveParentZaaktypeDraft($resource, $existingData); + } catch (\Throwable $e) { + // Proceed without parent zaaktype info. + return null; + } + }//end resolveParentDraft() + + /** + * Full update (PUT) a resource by UUID. + * + * For sub-resources of zaaktypen, resolves parentZaaktypeDraft before delegating. + * + * @param string $resource The ZGW resource name. + * @param string $uuid The resource UUID. + * + * @return JSONResponse + * + * @NoAdminRequired + * @NoCSRFRequired + * @PublicPage + * @CORS + */ + public function update(string $resource, string $uuid): JSONResponse + { + $authError = $this->zgwService->validateJwtAuth($this->request); + if ($authError !== null) { + return $authError; + } + + $parentZtDraft = $this->resolveParentDraft(resource: $resource, uuid: $uuid); + + $response = $this->zgwService->handleUpdate( + $this->request, + self::ZGW_API, + $resource, + $uuid, + false, + $parentZtDraft + ); + + // Enrich cross-references and filter invalid URLs. + if (isset(self::URL_FILTER_FIELDS[$resource]) === true + && $response->getStatus() === Http::STATUS_OK + ) { + $data = $response->getData(); + $data = $this->enrichCrossReferences(resource: $resource, data: $data); + $filtered = $this->filterValidUrls(resource: $resource, data: $data); + + return new JSONResponse(data: $filtered, statusCode: Http::STATUS_OK); + } + + return $response; + }//end update() + + /** + * Partial update (PATCH) a resource by UUID. + * + * For sub-resources of zaaktypen, resolves parentZaaktypeDraft before delegating. + * + * @param string $resource The ZGW resource name. + * @param string $uuid The resource UUID. + * + * @return JSONResponse + * + * @NoAdminRequired + * @NoCSRFRequired + * @PublicPage + * @CORS + */ + public function patch(string $resource, string $uuid): JSONResponse + { + $authError = $this->zgwService->validateJwtAuth($this->request); + if ($authError !== null) { + return $authError; + } + + $parentZtDraft = $this->resolveParentDraft(resource: $resource, uuid: $uuid); + + $response = $this->zgwService->handleUpdate( + $this->request, + self::ZGW_API, + $resource, + $uuid, + true, + $parentZtDraft + ); + + // Enrich cross-references and filter invalid URLs. + if (isset(self::URL_FILTER_FIELDS[$resource]) === true + && $response->getStatus() === Http::STATUS_OK + ) { + $data = $response->getData(); + $data = $this->enrichCrossReferences(resource: $resource, data: $data); + $filtered = $this->filterValidUrls(resource: $resource, data: $data); + + return new JSONResponse(data: $filtered, statusCode: Http::STATUS_OK); + } + + return $response; + }//end patch() + + /** + * Delete a resource by UUID. + * + * For sub-resources of zaaktypen, resolves parentZaaktypeDraft before delegating. + * + * @param string $resource The ZGW resource name. + * @param string $uuid The resource UUID. + * + * @return JSONResponse + * + * @NoAdminRequired + * @NoCSRFRequired + * @PublicPage + * @CORS + */ + public function destroy(string $resource, string $uuid): JSONResponse + { + $authError = $this->zgwService->validateJwtAuth($this->request); + if ($authError !== null) { + return $authError; + } + + $parentZtDraft = $this->resolveParentDraft(resource: $resource, uuid: $uuid); + + return $this->zgwService->handleDestroy( + $this->request, + self::ZGW_API, + $resource, + $uuid, + $parentZtDraft + ); + }//end destroy() + + /** + * Publish a ZTC resource by setting isDraft to false. + * + * Loads the existing object, sets isDraft=false, saves it back, + * and returns the outbound-mapped result. + * + * @param string $resource The ZGW resource name (zaaktypen, besluittypen, informatieobjecttypen). + * @param string $uuid The resource UUID. + * + * @return JSONResponse + */ + private function handlePublish(string $resource, string $uuid): JSONResponse + { + $authError = $this->zgwService->validateJwtAuth($this->request); + if ($authError !== null) { + return $authError; + } + + if ($this->zgwService->getObjectService() === null) { + return $this->zgwService->unavailableResponse(); + } + + $mappingConfig = $this->zgwService->loadMappingConfig(self::ZGW_API, $resource); + if ($mappingConfig === null) { + return $this->zgwService->mappingNotFoundResponse(self::ZGW_API, $resource); + } + + try { + $existing = $this->zgwService->getObjectService()->find( + $uuid, + register: $mappingConfig['sourceRegister'], + schema: $mappingConfig['sourceSchema'] + ); + $existingData = $existing->jsonSerialize(); + unset($existingData['@self'], $existingData['id'], $existingData['organisation']); + $existingData['isDraft'] = false; + + if (isset($existingData['identifier']) === true && is_int($existingData['identifier']) === true) { + $existingData['identifier'] = (string) $existingData['identifier']; + } + + // Re-encode fields that are stored as JSON strings but auto-decoded + // by jsonSerialize. Only string-typed schema fields need re-encoding. + $jsonStringFields = ['productsOrServices', 'referenceProcess', 'relatedCaseTypes']; + foreach ($jsonStringFields as $field) { + if (isset($existingData[$field]) === true && is_array($existingData[$field]) === true) { + $existingData[$field] = json_encode($existingData[$field]); + } + } + + $object = $this->zgwService->getObjectService()->saveObject( + register: $mappingConfig['sourceRegister'], + schema: $mappingConfig['sourceSchema'], + object: $existingData, + uuid: $uuid + ); + if (is_array($object) === true) { + $objectData = $object; + } else { + $objectData = $object->jsonSerialize(); + } + + $baseUrl = $this->zgwService->buildBaseUrl($this->request, self::ZGW_API, $resource); + $outboundMapping = $this->zgwService->createOutboundMapping(mappingConfig: $mappingConfig); + $mapped = $this->zgwService->applyOutboundMapping( + objectData: $objectData, + mapping: $outboundMapping, + mappingConfig: $mappingConfig, + baseUrl: $baseUrl + ); + + return new JSONResponse(data: $mapped, statusCode: Http::STATUS_CREATED); + } catch (\Throwable $e) { + $this->zgwService->getLogger()->error( + 'ZTC publish error: '.$e->getMessage(), + ['exception' => $e] + ); + + return new JSONResponse(data: ['detail' => $e->getMessage()], statusCode: Http::STATUS_BAD_REQUEST); + }//end try + }//end handlePublish() + + /** + * Publish a zaaktype (set isDraft to false). + * + * @param string $uuid The zaaktype UUID. + * + * @return JSONResponse + * + * @NoAdminRequired + * @NoCSRFRequired + * @PublicPage + * @CORS + */ + public function publishZaaktype(string $uuid): JSONResponse + { + return $this->handlePublish(resource: 'zaaktypen', uuid: $uuid); + }//end publishZaaktype() + + /** + * Publish a besluittype (set isDraft to false). + * + * @param string $uuid The besluittype UUID. + * + * @return JSONResponse + * + * @NoAdminRequired + * @NoCSRFRequired + * @PublicPage + * @CORS + */ + public function publishBesluittype(string $uuid): JSONResponse + { + return $this->handlePublish(resource: 'besluittypen', uuid: $uuid); + }//end publishBesluittype() + + /** + * Publish an informatieobjecttype (set isDraft to false). + * + * @param string $uuid The informatieobjecttype UUID. + * + * @return JSONResponse + * + * @NoAdminRequired + * @NoCSRFRequired + * @PublicPage + * @CORS + */ + public function publishInformatieobjecttype(string $uuid): JSONResponse + { + return $this->handlePublish(resource: 'informatieobjecttypen', uuid: $uuid); + }//end publishInformatieobjecttype() + + /** + * Filter URL arrays in a ZTC response to only include valid/existing references. + * + * Enrich response data with cross-reference URLs. + * + * For besluittypen: expand stored UUID arrays (documentTypes, caseTypes) to + * full ZGW URLs so that the response includes informatieobjecttypen/zaaktypen. + * For zaaktypen: query ZIOT records and besluittype records to populate + * informatieobjecttypen and besluittypen arrays. + * + * @param string $resource The ZGW resource name. + * @param array $data The outbound-mapped response data. + * + * @return array The enriched response data with cross-reference URLs. + * + * @SuppressWarnings(PHPMD.CyclomaticComplexity) + * @SuppressWarnings(PHPMD.NPathComplexity) + */ + private function enrichCrossReferences(string $resource, array $data): array + { + $objectService = $this->zgwService->getObjectService(); + if ($objectService === null) { + return $data; + } + + $baseUrl = $this->request->getServerProtocol().'://'.$this->request->getServerHost().'/index.php/apps/procest/api/zgw/catalogi/v1'; + $uuid = $data['uuid'] ?? ''; + + if ($resource === 'besluittypen' && $uuid !== '') { + $data = $this->enrichBesluittype( + data: $data, + baseUrl: $baseUrl, + objectService: $objectService, + uuid: $uuid + ); + } + + if ($resource === 'zaaktypen' && $uuid !== '') { + $data = $this->enrichZaaktype(data: $data, baseUrl: $baseUrl, objectService: $objectService, uuid: $uuid); + + // Ensure array fields default to [] instead of null. + $arrayFields = [ + 'deelzaaktypen', + 'gerelateerdeZaaktypen', + 'besluittypen', + 'informatieobjecttypen', + 'eigenschappen', + 'statustypen', + 'resultaattypen', + 'roltypen', + ]; + foreach ($arrayFields as $field) { + if (isset($data[$field]) === false) { + $data[$field] = []; + } + } + } + + return $data; + }//end enrichCrossReferences() + + /** + * Enrich besluittype with informatieobjecttypen and zaaktypen URLs. + * + * Reads stored UUIDs from the documentTypes/caseTypes fields and + * expands them to full ZGW URLs. + * + * @param array $data The response data. + * @param string $baseUrl The base URL for building ZGW resource URLs. + * @param object $objectService The OpenRegister object service. + * @param string $uuid The besluittype UUID. + * + * @return array The enriched response data. + * + * @SuppressWarnings(PHPMD.CyclomaticComplexity) + * @SuppressWarnings(PHPMD.NPathComplexity) + */ + private function enrichBesluittype( + array $data, + string $baseUrl, + object $objectService, + string $uuid + ): array { + $mappingConfig = $this->zgwService->loadMappingConfig(self::ZGW_API, 'besluittypen'); + if ($mappingConfig === null) { + return $data; + } + + try { + $object = $objectService->find( + id: $uuid, + register: $mappingConfig['sourceRegister'], + schema: $mappingConfig['sourceSchema'] + ); + if (is_array($object) === true) { + $objectData = $object; + } else { + $objectData = $object->jsonSerialize(); + } + + // Expand documentTypes UUIDs to informatieobjecttypen URLs. + $docTypes = $objectData['documentTypes'] ?? ''; + $docTypeIds = []; + if (is_string($docTypes) === true && $docTypes !== '') { + $docTypeIds = json_decode($docTypes, true); + } else if (is_array($docTypes) === true) { + $docTypeIds = $docTypes; + } + + if (empty($docTypeIds) === false) { + $urls = []; + foreach ($docTypeIds as $iotUuid) { + if (is_string($iotUuid) === true && $iotUuid !== '') { + $urls[] = $baseUrl.'/informatieobjecttypen/'.$iotUuid; + } + } + + $data['informatieobjecttypen'] = $urls; + } + + // Expand caseTypes to zaaktypen URLs. + $caseTypes = $objectData['caseTypes'] ?? ''; + $caseTypeIds = []; + if (is_string($caseTypes) === true && $caseTypes !== '') { + $caseTypeIds = json_decode($caseTypes, true); + } else if (is_array($caseTypes) === true) { + $caseTypeIds = $caseTypes; + } + + if (empty($caseTypeIds) === false) { + $urls = []; + foreach ($caseTypeIds as $ztUuid) { + if (is_string($ztUuid) === true && $ztUuid !== '') { + $urls[] = $baseUrl.'/zaaktypen/'.$ztUuid; + } + } + + $data['zaaktypen'] = $urls; + } + } catch (\Throwable $e) { + // Proceed without enrichment. + }//end try + + return $data; + }//end enrichBesluittype() + + /** + * Enrich zaaktype with informatieobjecttypen and besluittypen URLs. + * + * Queries ZIOT records to find linked informatieobjecttypen, and + * queries besluittypen by caseType to find linked besluittypen. + * + * @param array $data The response data. + * @param string $baseUrl The base URL for building ZGW resource URLs. + * @param object $objectService The OpenRegister object service. + * @param string $uuid The zaaktype UUID. + * + * @return array The enriched response data. + * + * @SuppressWarnings(PHPMD.CyclomaticComplexity) + * @SuppressWarnings(PHPMD.NPathComplexity) + * @SuppressWarnings(PHPMD.ExcessiveMethodLength) + */ + private function enrichZaaktype( + array $data, + string $baseUrl, + object $objectService, + string $uuid + ): array { + // Populate deelzaaktypen from stored subCaseTypes UUIDs. + $ztMapping = $this->zgwService->loadMappingConfig(self::ZGW_API, 'zaaktypen'); + if ($ztMapping !== null) { + try { + $object = $objectService->find( + id: $uuid, + register: $ztMapping['sourceRegister'], + schema: $ztMapping['sourceSchema'] + ); + if (is_array($object) === true) { + $objectData = $object; + } else { + $objectData = $object->jsonSerialize(); + } + + $subCases = $objectData['subCaseTypes'] ?? []; + if (is_array($subCases) === true && empty($subCases) === false) { + // Expand each stored UUID to all ZTs with the same identifier. + $urls = []; + foreach ($subCases as $ztUuid) { + if (is_string($ztUuid) === false || $ztUuid === '') { + continue; + } + + try { + $refObj = $objectService->find( + id: $ztUuid, + register: $ztMapping['sourceRegister'], + schema: $ztMapping['sourceSchema'] + ); + if (is_array($refObj) === true) { + $refData = $refObj; + } else { + $refData = $refObj->jsonSerialize(); + } + + $ident = $refData['identifier'] ?? ''; + + if ($ident !== '') { + $query = $objectService->buildSearchQuery( + requestParams: ['identifier' => $ident, '_limit' => 100], + register: $ztMapping['sourceRegister'], + schema: $ztMapping['sourceSchema'] + ); + $result = $objectService->searchObjectsPaginated(query: $query); + foreach (($result['results'] ?? []) as $match) { + if (is_array($match) === true) { + $mData = $match; + } else { + $mData = $match->jsonSerialize(); + } + + $mId = $mData['id'] ?? ($mData['@self']['id'] ?? ''); + if ($mId !== '') { + $urls[] = $baseUrl.'/zaaktypen/'.$mId; + } + } + } + } catch (\Throwable $e) { + $urls[] = $baseUrl.'/zaaktypen/'.$ztUuid; + }//end try + }//end foreach + + $urls = array_values(array_unique($urls)); + $data['deelzaaktypen'] = $urls; + }//end if + + // Populate besluittypen from stored decisionTypes UUIDs. + $decTypes = $objectData['decisionTypes'] ?? []; + if (is_array($decTypes) === true && empty($decTypes) === false) { + $urls = []; + foreach ($decTypes as $btUuid) { + if (is_string($btUuid) === true && $btUuid !== '') { + $urls[] = $baseUrl.'/besluittypen/'.$btUuid; + } + } + + $data['besluittypen'] = $urls; + } + } catch (\Throwable $e) { + // Proceed without deelzaaktypen enrichment. + }//end try + }//end if + + // Expand UUIDs in gerelateerdeZaaktypen to all ZTs with same identifier. + // Read from raw object's relatedCaseTypes (JSON-encoded string) since Twig + // outbound mapping cannot handle array-of-objects. + $relatedRaw = null; + if (isset($objectData) === true) { + $relatedRaw = $objectData['relatedCaseTypes'] ?? null; + } + + if ($relatedRaw === null) { + $relatedRaw = $data['gerelateerdeZaaktypen'] ?? null; + } + + if (is_string($relatedRaw) === true) { + $relatedRaw = json_decode($relatedRaw, true); + } + + if (is_array($relatedRaw) === true + && empty($relatedRaw) === false + && $ztMapping !== null + ) { + $expanded = []; + foreach ($relatedRaw as $rel) { + $ztRef = $rel['zaaktype'] ?? ''; + if (is_string($ztRef) === false || $ztRef === '') { + continue; + } + + // Already a URL — keep as-is. + if (str_starts_with($ztRef, 'http') === true) { + $expanded[] = $rel; + continue; + } + + // Look up identifier, find all matching ZTs. + try { + $refObj = $objectService->find( + id: $ztRef, + register: $ztMapping['sourceRegister'], + schema: $ztMapping['sourceSchema'] + ); + if (is_array($refObj) === true) { + $refData = $refObj; + } else { + $refData = $refObj->jsonSerialize(); + } + + $ident = $refData['identifier'] ?? ''; + + if ($ident !== '') { + $query = $objectService->buildSearchQuery( + requestParams: ['identifier' => $ident, '_limit' => 100], + register: $ztMapping['sourceRegister'], + schema: $ztMapping['sourceSchema'] + ); + $result = $objectService->searchObjectsPaginated(query: $query); + foreach (($result['results'] ?? []) as $match) { + if (is_array($match) === true) { + $mData = $match; + } else { + $mData = $match->jsonSerialize(); + } + + $mId = $mData['id'] ?? ($mData['@self']['id'] ?? ''); + if ($mId !== '') { + $entry = $rel; + $entry['zaaktype'] = $baseUrl.'/zaaktypen/'.$mId; + $expanded[] = $entry; + } + } + }//end if + } catch (\Throwable $e) { + $rel['zaaktype'] = $baseUrl.'/zaaktypen/'.$ztRef; + $expanded[] = $rel; + }//end try + }//end foreach + + // Deduplicate by zaaktype URL. + $seen = []; + $unique = []; + foreach ($expanded as $entry) { + $ztUrl = $entry['zaaktype'] ?? ''; + if (isset($seen[$ztUrl]) === false) { + $seen[$ztUrl] = true; + $unique[] = $entry; + } + } + + $data['gerelateerdeZaaktypen'] = $unique; + }//end if + + // Populate informatieobjecttypen from ZIOT records. + // For each ZIOT, find the referenced IOT, then find ALL IOTs with the + // same name (omschrijving) so filterValidUrls can select the valid ones. + $ziotMapping = $this->zgwService->loadMappingConfig(self::ZGW_API, 'zaaktype-informatieobjecttypen'); + $iotMapping = $this->zgwService->loadMappingConfig(self::ZGW_API, 'informatieobjecttypen'); + if ($ziotMapping !== null && $iotMapping !== null) { + try { + $query = $objectService->buildSearchQuery( + requestParams: ['zaaktype' => $uuid, '_limit' => 100], + register: $ziotMapping['sourceRegister'], + schema: $ziotMapping['sourceSchema'] + ); + $result = $objectService->searchObjectsPaginated(query: $query); + + $iotUrls = []; + foreach (($result['results'] ?? []) as $ziot) { + if (is_array($ziot) === true) { + $ziotData = $ziot; + } else { + $ziotData = $ziot->jsonSerialize(); + } + + $iotRef = $ziotData['informatieobjecttype'] ?? ''; + if ($iotRef === '') { + continue; + } + + // Look up the IOT to get its name, then find all IOTs with that name. + try { + $iotObj = $objectService->find( + id: $iotRef, + register: $iotMapping['sourceRegister'], + schema: $iotMapping['sourceSchema'] + ); + if (is_array($iotObj) === true) { + $iotData = $iotObj; + } else { + $iotData = $iotObj->jsonSerialize(); + } + + $iotName = $iotData['name'] ?? ''; + + if ($iotName !== '') { + // Find ALL IOTs with this name. + $iotQuery = $objectService->buildSearchQuery( + requestParams: ['name' => $iotName, '_limit' => 100], + register: $iotMapping['sourceRegister'], + schema: $iotMapping['sourceSchema'] + ); + $iotResult = $objectService->searchObjectsPaginated(query: $iotQuery); + foreach (($iotResult['results'] ?? []) as $matchingIot) { + if (is_array($matchingIot) === true) { + $mData = $matchingIot; + } else { + $mData = $matchingIot->jsonSerialize(); + } + + $mId = $mData['id'] ?? ($mData['@self']['id'] ?? ''); + if ($mId !== '') { + $iotUrls[] = $baseUrl.'/informatieobjecttypen/'.$mId; + } + } + }//end if + } catch (\Throwable $e) { + // If IOT lookup fails, fall back to direct UUID. + $iotUrls[] = $baseUrl.'/informatieobjecttypen/'.$iotRef; + }//end try + }//end foreach + + // Deduplicate URLs. + $iotUrls = array_values(array_unique($iotUrls)); + if (empty($iotUrls) === false) { + $data['informatieobjecttypen'] = $iotUrls; + } + } catch (\Throwable $e) { + // Proceed without ZIOT enrichment. + }//end try + }//end if + + // Fallback: populate besluittypen from BT records with caseType = this UUID. + // Only if not already populated from stored decisionTypes. + $btMapping = $this->zgwService->loadMappingConfig(self::ZGW_API, 'besluittypen'); + if ($btMapping !== null + && (isset($data['besluittypen']) === false || empty($data['besluittypen']) === true) + ) { + try { + $query = $objectService->buildSearchQuery( + requestParams: ['caseType' => $uuid, '_limit' => 100], + register: $btMapping['sourceRegister'], + schema: $btMapping['sourceSchema'] + ); + $result = $objectService->searchObjectsPaginated(query: $query); + + $btUrls = []; + foreach (($result['results'] ?? []) as $bt) { + if (is_array($bt) === true) { + $btData = $bt; + } else { + $btData = $bt->jsonSerialize(); + } + + $btUuid = $btData['id'] ?? ($btData['@self']['id'] ?? ''); + if ($btUuid !== '') { + $btUrls[] = $baseUrl.'/besluittypen/'.$btUuid; + } + } + + if (empty($btUrls) === false) { + $data['besluittypen'] = $btUrls; + } + } catch (\Throwable $e) { + // Proceed without BT enrichment. + }//end try + }//end if + + // Populate eigenschappen, statustypen, resultaattypen, roltypen + // by searching for sub-resources with caseType = this zaaktype UUID. + $subResourceTypes = [ + 'eigenschappen' => 'eigenschappen', + 'statustypen' => 'statustypen', + 'resultaattypen' => 'resultaattypen', + 'roltypen' => 'roltypen', + ]; + foreach ($subResourceTypes as $zgwField => $resourceName) { + $subMapping = $this->zgwService->loadMappingConfig(self::ZGW_API, $resourceName); + if ($subMapping === null) { + continue; + } + + try { + $query = $objectService->buildSearchQuery( + requestParams: ['caseType' => $uuid, '_limit' => 100], + register: $subMapping['sourceRegister'], + schema: $subMapping['sourceSchema'] + ); + $result = $objectService->searchObjectsPaginated(query: $query); + + $urls = []; + foreach (($result['results'] ?? []) as $sub) { + if (is_array($sub) === true) { + $subData = $sub; + } else { + $subData = $sub->jsonSerialize(); + } + + $subUuid = $subData['id'] ?? ($subData['@self']['id'] ?? ''); + if ($subUuid !== '') { + $urls[] = $baseUrl.'/'.$resourceName.'/'.$subUuid; + } + } + + if (empty($urls) === false) { + $data[$zgwField] = $urls; + } + } catch (\Throwable $e) { + // Proceed without sub-resource enrichment. + }//end try + }//end foreach + + return $data; + }//end enrichZaaktype() + + /** + * Filter a list of ZTC results by datumGeldigheid (date validity). + * + * Returns only items where beginGeldigheid <= datumGeldigheid and + * (eindeGeldigheid >= datumGeldigheid or eindeGeldigheid is absent). + * + * @param array $results The array of outbound-mapped result items. + * @param string $datumGeldigheid The validity date in Y-m-d format. + * + * @return array The filtered results (re-indexed). + */ + private function filterByDatumGeldigheid(array $results, string $datumGeldigheid): array + { + $filtered = []; + foreach ($results as $item) { + $begin = $item['beginGeldigheid'] ?? null; + $end = $item['eindeGeldigheid'] ?? null; + + // BeginGeldigheid must be present and <= datumGeldigheid. + if ($begin !== null && $begin !== '' && $begin > $datumGeldigheid) { + continue; + } + + // EindeGeldigheid, if present, must be >= datumGeldigheid. + if ($end !== null && $end !== '' && $end < $datumGeldigheid) { + continue; + } + + $filtered[] = $item; + } + + return $filtered; + }//end filterByDatumGeldigheid() + + /** + * For zaaktypen and besluittypen, removes URLs from array fields that point to + * objects which are not published or not currently valid (date-wise). + * + * @param string $resource The ZGW resource name. + * @param array $data The outbound-mapped response data. + * + * @return array The filtered response data. + * + * @SuppressWarnings(PHPMD.CyclomaticComplexity) + * @SuppressWarnings(PHPMD.NPathComplexity) + */ + private function filterValidUrls(string $resource, array $data): array + { + $fieldConfigs = self::URL_FILTER_FIELDS[$resource] ?? []; + if (empty($fieldConfigs) === true || $this->zgwService->getObjectService() === null) { + return $data; + } + + $today = date('Y-m-d'); + + foreach ($fieldConfigs as $field => $config) { + if (isset($data[$field]) === false || is_array($data[$field]) === false) { + continue; + } + + $schemaKey = $config['schemaKey']; + $nested = $config['nested']; + + $filtered = []; + foreach ($data[$field] as $item) { + if ($nested === true) { + // GerelateerdeZaaktypen: array of objects with 'zaaktype' URL field. + $url = $item['zaaktype'] ?? ''; + if ($this->isUrlValid(url: $url, schemaKey: $schemaKey, today: $today) === true) { + $filtered[] = $item; + } + } + + if ($nested === false + && is_string($item) === true + && $this->isUrlValid(url: $item, schemaKey: $schemaKey, today: $today) === true + ) { + $filtered[] = $item; + } + } + + $data[$field] = $filtered; + }//end foreach + + return $data; + }//end filterValidUrls() + + /** + * Check if a ZGW URL points to a valid, published, and currently active object. + * + * Uses the mapping config's sourceRegister and sourceSchema to look up the object. + * The schemaKey maps to a ZGW resource name for which we load its mapping config. + * + * @param string $url The URL to validate. + * @param string $schemaKey The settings config key identifying the target schema. + * @param string $today Today's date in Y-m-d format. + * + * @return bool True if the referenced object exists, is published, and is date-valid. + * + * @SuppressWarnings(PHPMD.CyclomaticComplexity) + * @SuppressWarnings(PHPMD.NPathComplexity) + */ + private function isUrlValid(string $url, string $schemaKey, string $today): bool + { + if (empty($url) === true) { + return false; + } + + // Extract UUID from URL. + if (preg_match( + '/([0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12})/i', + $url, + $matches + ) !== 1 + ) { + return false; + } + + $uuid = $matches[1]; + + try { + // Map schema config key to ZGW resource name for mapping lookup. + $resourceMap = [ + 'document_type_schema' => 'informatieobjecttypen', + 'decision_type_schema' => 'besluittypen', + 'case_type_schema' => 'zaaktypen', + ]; + + $targetResource = $resourceMap[$schemaKey] ?? null; + if ($targetResource === null) { + return true; + } + + $mappingConfig = $this->zgwService->loadMappingConfig(self::ZGW_API, $targetResource); + if ($mappingConfig === null) { + return true; + } + + $object = $this->zgwService->getObjectService()->find( + id: $uuid, + register: $mappingConfig['sourceRegister'], + schema: $mappingConfig['sourceSchema'] + ); + + if (is_array($object) === true) { + $objectData = $object; + } else { + $objectData = $object->jsonSerialize(); + } + + // Must be published (isDraft=false / concept=false). + $isDraft = $objectData['isDraft'] ?? ($objectData['concept'] ?? true); + if ($isDraft === true || $isDraft === 'true' || $isDraft === '1' || $isDraft === 1) { + return false; + } + + // Check date validity: beginGeldigheid <= today. + $begin = $objectData['validFrom'] ?? ($objectData['beginGeldigheid'] ?? null); + if ($begin !== null && $begin !== '' && $begin > $today) { + return false; + } + + // Check date validity: eindeGeldigheid >= today (or no end date). + $end = $objectData['validUntil'] ?? ($objectData['eindeGeldigheid'] ?? null); + if ($end !== null && $end !== '' && $end < $today) { + return false; + } + + return true; + } catch (\Throwable $e) { + // If we can't look up the object, exclude the URL. + return false; + }//end try + }//end isUrlValid() + + /** + * List audit trail entries for a resource. + * + * @param string $resource The ZGW resource name. + * @param string $uuid The resource UUID. + * + * @return JSONResponse + * + * @NoAdminRequired + * @NoCSRFRequired + * @PublicPage + * @CORS + */ + public function audittrailIndex(string $resource, string $uuid): JSONResponse + { + $authError = $this->zgwService->validateJwtAuth($this->request); + if ($authError !== null) { + return $authError; + } + + return $this->zgwService->handleAudittrailIndex($this->request, self::ZGW_API, $resource, $uuid); + }//end audittrailIndex() + + /** + * Retrieve a single audit trail entry for a resource. + * + * @param string $resource The ZGW resource name. + * @param string $uuid The resource UUID. + * @param string $auditUuid The audit trail entry UUID. + * + * @return JSONResponse + * + * @NoAdminRequired + * @NoCSRFRequired + * @PublicPage + * @CORS + */ + public function audittrailShow(string $resource, string $uuid, string $auditUuid): JSONResponse + { + $authError = $this->zgwService->validateJwtAuth($this->request); + if ($authError !== null) { + return $authError; + } + + return $this->zgwService->handleAudittrailShow( + $this->request, + self::ZGW_API, + $resource, + $uuid, + $auditUuid + ); + }//end audittrailShow() + + /** + * Resolve informatieobjecttype by omschrijving when not a UUID/URL (ztc-010m). + * + * The ZGW standard allows referencing an IOT by omschrijving in ZIOT creation. + * This method looks up the IOT by omschrijving and replaces it with its UUID. + * + * @param array $body The request body (modified in-place via cached body) + * + * @return void + */ + private function resolveIotByOmschrijving(array $body): void + { + $iotValue = $body['informatieobjecttype'] ?? ''; + if ($iotValue === '') { + return; + } + + // Already a UUID or URL — no resolution needed. + if (preg_match('/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i', $iotValue) === 1) { + return; + } + + if (filter_var($iotValue, FILTER_VALIDATE_URL) !== false) { + return; + } + + // Try to look up by omschrijving (internal field: name). + $objectService = $this->zgwService->getObjectService(); + if ($objectService === null) { + return; + } + + $iotMapping = $this->zgwService->loadMappingConfig(self::ZGW_API, 'informatieobjecttypen'); + if ($iotMapping === null) { + return; + } + + try { + $query = $objectService->buildSearchQuery( + requestParams: ['name' => $iotValue, '_limit' => 1], + register: $iotMapping['sourceRegister'], + schema: $iotMapping['sourceSchema'] + ); + $result = $objectService->searchObjectsPaginated( + query: $query, + _rbac: false, + _multitenancy: false + ); + + if (($result['total'] ?? 0) === 0) { + // Fallback: full-text search. + $query = $objectService->buildSearchQuery( + requestParams: ['_search' => $iotValue, '_limit' => 1], + register: $iotMapping['sourceRegister'], + schema: $iotMapping['sourceSchema'] + ); + $result = $objectService->searchObjectsPaginated( + query: $query, + _rbac: false, + _multitenancy: false + ); + } + + if (($result['total'] ?? 0) > 0) { + $iot = $result['results'][0]; + if (is_array($iot) === true) { + $iotData = $iot; + } else { + $iotData = $iot->jsonSerialize(); + } + + $iotUuid = $iotData['id'] ?? ($iotData['@self']['id'] ?? ''); + if ($iotUuid !== '') { + $this->zgwService->updateCachedBodyField('informatieobjecttype', $iotUuid); + } + } + } catch (\Throwable $e) { + $this->zgwService->getLogger()->debug( + 'ztc-010m: Failed to resolve IOT by omschrijving: '.$e->getMessage() + ); + }//end try + }//end resolveIotByOmschrijving() +}//end class diff --git a/lib/Dashboard/CasesOverviewWidget.php b/lib/Dashboard/CasesOverviewWidget.php new file mode 100644 index 0000000..5bbb768 --- /dev/null +++ b/lib/Dashboard/CasesOverviewWidget.php @@ -0,0 +1,121 @@ + + * @copyright 2024 Conduction B.V. + * @license EUPL-1.2 https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12 + * + * @version GIT: + * + * @link https://procest.nl + */ + +declare(strict_types=1); + +namespace OCA\Procest\Dashboard; + +use OCA\Procest\AppInfo\Application; +use OCP\Dashboard\IWidget; +use OCP\IL10N; +use OCP\IURLGenerator; +use OCP\Util; + +/** + * Dashboard widget showing an overview of recent cases. + */ +class CasesOverviewWidget implements IWidget +{ + /** + * Constructor. + * + * @param IL10N $l10n L10N service + * @param IURLGenerator $url URL generator + */ + public function __construct( + private IL10N $l10n, + private IURLGenerator $url + ) { + }//end __construct() + + /** + * Get the unique identifier for this widget. + * + * @inheritDoc + * @return string The widget identifier + */ + public function getId(): string + { + return 'procest_cases_overview_widget'; + + }//end getId() + + /** + * Get the display title for this widget. + * + * @inheritDoc + * @return string The widget title + */ + public function getTitle(): string + { + return $this->l10n->t('Cases overview'); + + }//end getTitle() + + /** + * Get the display order for this widget. + * + * @inheritDoc + * @return int The widget order + */ + public function getOrder(): int + { + return 10; + + }//end getOrder() + + /** + * Get the CSS icon class for this widget. + * + * @inheritDoc + * @return string The icon CSS class + */ + public function getIconClass(): string + { + return 'icon-procest-widget'; + + }//end getIconClass() + + /** + * Get the URL for the widget's full view. + * + * @inheritDoc + * @return string|null The widget URL or null + */ + public function getUrl(): ?string + { + return $this->url->linkToRouteAbsolute(Application::APP_ID.'.dashboard.page'); + + }//end getUrl() + + /** + * Load the widget scripts and styles. + * + * @inheritDoc + * @return void + * + * @SuppressWarnings(PHPMD.StaticAccess) — Nextcloud Util API is static by design + */ + public function load(): void + { + Util::addScript(Application::APP_ID, Application::APP_ID.'-casesOverviewWidget'); + Util::addStyle(Application::APP_ID, 'dashboardWidgets'); + + }//end load() +}//end class diff --git a/lib/Dashboard/DeadlineAlertsWidget.php b/lib/Dashboard/DeadlineAlertsWidget.php new file mode 100644 index 0000000..382145f --- /dev/null +++ b/lib/Dashboard/DeadlineAlertsWidget.php @@ -0,0 +1,122 @@ + + * @copyright 2024 Conduction B.V. + * @license EUPL-1.2 https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12 + * + * @version GIT: + * + * @link https://procest.nl + */ + +declare(strict_types=1); + +namespace OCA\Procest\Dashboard; + +use OCA\Procest\AppInfo\Application; +use OCP\Dashboard\IWidget; +use OCP\IL10N; +use OCP\IURLGenerator; +use OCP\Util; + +/** + * Dashboard widget showing deadline alerts for cases. + */ +class DeadlineAlertsWidget implements IWidget +{ + /** + * Constructor. + * + * @param IL10N $l10n L10N service + * @param IURLGenerator $url URL generator + */ + public function __construct( + private IL10N $l10n, + private IURLGenerator $url + ) { + }//end __construct() + + /** + * Get the unique identifier for this widget. + * + * @inheritDoc + * @return string The widget identifier + */ + public function getId(): string + { + return 'procest_deadline_alerts_widget'; + + }//end getId() + + /** + * Get the display title for this widget. + * + * @inheritDoc + * @return string The widget title + */ + public function getTitle(): string + { + return $this->l10n->t('Deadline Alerts'); + + }//end getTitle() + + /** + * Get the display order for this widget. + * + * @inheritDoc + * @return int The widget order + */ + public function getOrder(): int + { + return 11; + + }//end getOrder() + + /** + * Get the CSS icon class for this widget. + * + * @inheritDoc + * @return string The icon CSS class + */ + public function getIconClass(): string + { + return 'icon-procest-widget'; + + }//end getIconClass() + + /** + * Get the URL for the widget's full view. + * + * @inheritDoc + * @return string|null The widget URL or null + */ + public function getUrl(): ?string + { + return $this->url->linkToRouteAbsolute(Application::APP_ID.'.dashboard.index'); + + }//end getUrl() + + /** + * Load the widget scripts and styles. + * + * @inheritDoc + * @return void + * + * @SuppressWarnings(PHPMD.StaticAccess) — Nextcloud Util API is static by design + */ + public function load(): void + { + Util::addScript(Application::APP_ID, Application::APP_ID.'-deadlineAlertsWidget'); + Util::addStyle(Application::APP_ID, 'dashboardWidgets'); + + }//end load() +}//end class diff --git a/lib/Dashboard/MyTasksWidget.php b/lib/Dashboard/MyTasksWidget.php new file mode 100644 index 0000000..cc34595 --- /dev/null +++ b/lib/Dashboard/MyTasksWidget.php @@ -0,0 +1,121 @@ + + * @copyright 2024 Conduction B.V. + * @license EUPL-1.2 https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12 + * + * @version GIT: + * + * @link https://procest.nl + */ + +declare(strict_types=1); + +namespace OCA\Procest\Dashboard; + +use OCA\Procest\AppInfo\Application; +use OCP\Dashboard\IWidget; +use OCP\IL10N; +use OCP\IURLGenerator; +use OCP\Util; + +/** + * Dashboard widget showing tasks assigned to the current user. + */ +class MyTasksWidget implements IWidget +{ + /** + * Constructor. + * + * @param IL10N $l10n L10N service + * @param IURLGenerator $url URL generator + */ + public function __construct( + private IL10N $l10n, + private IURLGenerator $url + ) { + }//end __construct() + + /** + * Get the unique identifier for this widget. + * + * @inheritDoc + * @return string The widget identifier + */ + public function getId(): string + { + return 'procest_my_tasks_widget'; + + }//end getId() + + /** + * Get the display title for this widget. + * + * @inheritDoc + * @return string The widget title + */ + public function getTitle(): string + { + return $this->l10n->t('My Tasks'); + + }//end getTitle() + + /** + * Get the display order for this widget. + * + * @inheritDoc + * @return int The widget order + */ + public function getOrder(): int + { + return 12; + + }//end getOrder() + + /** + * Get the CSS icon class for this widget. + * + * @inheritDoc + * @return string The icon CSS class + */ + public function getIconClass(): string + { + return 'icon-procest-widget'; + + }//end getIconClass() + + /** + * Get the URL for the widget's full view. + * + * @inheritDoc + * @return string|null The widget URL or null + */ + public function getUrl(): ?string + { + return $this->url->linkToRouteAbsolute(Application::APP_ID.'.dashboard.index'); + + }//end getUrl() + + /** + * Load the widget scripts and styles. + * + * @inheritDoc + * @return void + * + * @SuppressWarnings(PHPMD.StaticAccess) — Nextcloud Util API is static by design + */ + public function load(): void + { + Util::addScript(Application::APP_ID, Application::APP_ID.'-myTasksWidget'); + Util::addStyle(Application::APP_ID, 'dashboardWidgets'); + + }//end load() +}//end class diff --git a/lib/Dashboard/OverdueCasesWidget.php b/lib/Dashboard/OverdueCasesWidget.php new file mode 100644 index 0000000..737a353 --- /dev/null +++ b/lib/Dashboard/OverdueCasesWidget.php @@ -0,0 +1,121 @@ + + * @copyright 2024 Conduction B.V. + * @license EUPL-1.2 https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12 + * + * @version GIT: + * + * @link https://procest.nl + */ + +declare(strict_types=1); + +namespace OCA\Procest\Dashboard; + +use OCA\Procest\AppInfo\Application; +use OCP\Dashboard\IWidget; +use OCP\IL10N; +use OCP\IURLGenerator; +use OCP\Util; + +/** + * Dashboard widget showing overdue cases with deadline info. + */ +class OverdueCasesWidget implements IWidget +{ + /** + * Constructor. + * + * @param IL10N $l10n L10N service + * @param IURLGenerator $url URL generator + */ + public function __construct( + private IL10N $l10n, + private IURLGenerator $url + ) { + }//end __construct() + + /** + * Get the unique identifier for this widget. + * + * @inheritDoc + * @return string The widget identifier + */ + public function getId(): string + { + return 'procest_overdue_cases_widget'; + + }//end getId() + + /** + * Get the display title for this widget. + * + * @inheritDoc + * @return string The widget title + */ + public function getTitle(): string + { + return $this->l10n->t('Overdue Cases'); + + }//end getTitle() + + /** + * Get the display order for this widget. + * + * @inheritDoc + * @return int The widget order + */ + public function getOrder(): int + { + return 11; + + }//end getOrder() + + /** + * Get the CSS icon class for this widget. + * + * @inheritDoc + * @return string The icon CSS class + */ + public function getIconClass(): string + { + return 'icon-procest-widget'; + + }//end getIconClass() + + /** + * Get the URL for the widget's full view. + * + * @inheritDoc + * @return string|null The widget URL or null + */ + public function getUrl(): ?string + { + return $this->url->linkToRouteAbsolute(Application::APP_ID.'.dashboard.index'); + + }//end getUrl() + + /** + * Load the widget scripts and styles. + * + * @inheritDoc + * @return void + * + * @SuppressWarnings(PHPMD.StaticAccess) — Nextcloud Util API is static by design + */ + public function load(): void + { + Util::addScript(Application::APP_ID, Application::APP_ID.'-overdueCasesWidget'); + Util::addStyle(Application::APP_ID, 'dashboardWidgets'); + + }//end load() +}//end class diff --git a/lib/Dashboard/StalledCasesWidget.php b/lib/Dashboard/StalledCasesWidget.php new file mode 100644 index 0000000..059622f --- /dev/null +++ b/lib/Dashboard/StalledCasesWidget.php @@ -0,0 +1,122 @@ + + * @copyright 2024 Conduction B.V. + * @license EUPL-1.2 https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12 + * + * @version GIT: + * + * @link https://procest.nl + */ + +declare(strict_types=1); + +namespace OCA\Procest\Dashboard; + +use OCA\Procest\AppInfo\Application; +use OCP\Dashboard\IWidget; +use OCP\IL10N; +use OCP\IURLGenerator; +use OCP\Util; + +/** + * Dashboard widget showing stalled (inactive) cases. + */ +class StalledCasesWidget implements IWidget +{ + /** + * Constructor. + * + * @param IL10N $l10n L10N service + * @param IURLGenerator $url URL generator + */ + public function __construct( + private IL10N $l10n, + private IURLGenerator $url + ) { + }//end __construct() + + /** + * Get the unique identifier for this widget. + * + * @inheritDoc + * @return string The widget identifier + */ + public function getId(): string + { + return 'procest_stalled_cases_widget'; + + }//end getId() + + /** + * Get the display title for this widget. + * + * @inheritDoc + * @return string The widget title + */ + public function getTitle(): string + { + return $this->l10n->t('Stalled Cases'); + + }//end getTitle() + + /** + * Get the display order for this widget. + * + * @inheritDoc + * @return int The widget order + */ + public function getOrder(): int + { + return 13; + + }//end getOrder() + + /** + * Get the CSS icon class for this widget. + * + * @inheritDoc + * @return string The icon CSS class + */ + public function getIconClass(): string + { + return 'icon-procest-widget'; + + }//end getIconClass() + + /** + * Get the URL for the widget's full view. + * + * @inheritDoc + * @return string|null The widget URL or null + */ + public function getUrl(): ?string + { + return $this->url->linkToRouteAbsolute(Application::APP_ID.'.dashboard.index'); + + }//end getUrl() + + /** + * Load the widget scripts and styles. + * + * @inheritDoc + * @return void + * + * @SuppressWarnings(PHPMD.StaticAccess) — Nextcloud Util API is static by design + */ + public function load(): void + { + Util::addScript(Application::APP_ID, Application::APP_ID.'-stalledCasesWidget'); + Util::addStyle(Application::APP_ID, 'dashboardWidgets'); + + }//end load() +}//end class diff --git a/lib/Dashboard/StartCaseWidget.php b/lib/Dashboard/StartCaseWidget.php new file mode 100644 index 0000000..21a227a --- /dev/null +++ b/lib/Dashboard/StartCaseWidget.php @@ -0,0 +1,115 @@ + + * @copyright 2024 Conduction B.V. + * @license EUPL-1.2 https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12 + * + * @version GIT: + * + * @link https://procest.nl + */ + +declare(strict_types=1); + +namespace OCA\Procest\Dashboard; + +use OCA\Procest\AppInfo\Application; +use OCP\Dashboard\IWidget; +use OCP\IL10N; +use OCP\IURLGenerator; +use OCP\Util; + +/** + * Dashboard widget showing available case types for quick case creation. + */ +class StartCaseWidget implements IWidget +{ + /** + * Constructor. + * + * @param IL10N $l10n L10N service + * @param IURLGenerator $url URL generator + */ + public function __construct( + private IL10N $l10n, + private IURLGenerator $url + ) { + }//end __construct() + + /** + * Get the unique identifier for this widget. + * + * @inheritDoc + * @return string The widget identifier + */ + public function getId(): string + { + return 'procest_start_case_widget'; + }//end getId() + + /** + * Get the display title for this widget. + * + * @inheritDoc + * @return string The widget title + */ + public function getTitle(): string + { + return $this->l10n->t('Start case'); + }//end getTitle() + + /** + * Get the display order for this widget. + * + * @inheritDoc + * @return int The widget order + */ + public function getOrder(): int + { + return 15; + }//end getOrder() + + /** + * Get the CSS icon class for this widget. + * + * @inheritDoc + * @return string The icon CSS class + */ + public function getIconClass(): string + { + return 'icon-procest-widget'; + }//end getIconClass() + + /** + * Get the URL for the widget's full view. + * + * @inheritDoc + * @return string|null The widget URL or null + */ + public function getUrl(): ?string + { + return $this->url->linkToRouteAbsolute(Application::APP_ID.'.dashboard.page'); + }//end getUrl() + + /** + * Load the widget scripts and styles. + * + * @inheritDoc + * @return void + * + * @SuppressWarnings(PHPMD.StaticAccess) — Nextcloud Util API is static by design + */ + public function load(): void + { + Util::addScript(Application::APP_ID, Application::APP_ID.'-startCaseWidget'); + Util::addStyle(Application::APP_ID, 'dashboardWidgets'); + }//end load() +}//end class diff --git a/lib/Dashboard/TaskRemindersWidget.php b/lib/Dashboard/TaskRemindersWidget.php new file mode 100644 index 0000000..859f85a --- /dev/null +++ b/lib/Dashboard/TaskRemindersWidget.php @@ -0,0 +1,122 @@ + + * @copyright 2024 Conduction B.V. + * @license EUPL-1.2 https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12 + * + * @version GIT: + * + * @link https://procest.nl + */ + +declare(strict_types=1); + +namespace OCA\Procest\Dashboard; + +use OCA\Procest\AppInfo\Application; +use OCP\Dashboard\IWidget; +use OCP\IL10N; +use OCP\IURLGenerator; +use OCP\Util; + +/** + * Dashboard widget showing task due reminders. + */ +class TaskRemindersWidget implements IWidget +{ + /** + * Constructor. + * + * @param IL10N $l10n L10N service + * @param IURLGenerator $url URL generator + */ + public function __construct( + private IL10N $l10n, + private IURLGenerator $url + ) { + }//end __construct() + + /** + * Get the unique identifier for this widget. + * + * @inheritDoc + * @return string The widget identifier + */ + public function getId(): string + { + return 'procest_task_reminders_widget'; + + }//end getId() + + /** + * Get the display title for this widget. + * + * @inheritDoc + * @return string The widget title + */ + public function getTitle(): string + { + return $this->l10n->t('Task Reminders'); + + }//end getTitle() + + /** + * Get the display order for this widget. + * + * @inheritDoc + * @return int The widget order + */ + public function getOrder(): int + { + return 12; + + }//end getOrder() + + /** + * Get the CSS icon class for this widget. + * + * @inheritDoc + * @return string The icon CSS class + */ + public function getIconClass(): string + { + return 'icon-procest-widget'; + + }//end getIconClass() + + /** + * Get the URL for the widget's full view. + * + * @inheritDoc + * @return string|null The widget URL or null + */ + public function getUrl(): ?string + { + return $this->url->linkToRouteAbsolute(Application::APP_ID.'.dashboard.index'); + + }//end getUrl() + + /** + * Load the widget scripts and styles. + * + * @inheritDoc + * @return void + * + * @SuppressWarnings(PHPMD.StaticAccess) — Nextcloud Util API is static by design + */ + public function load(): void + { + Util::addScript(Application::APP_ID, Application::APP_ID.'-taskRemindersWidget'); + Util::addStyle(Application::APP_ID, 'dashboardWidgets'); + + }//end load() +}//end class diff --git a/lib/Listener/DeepLinkRegistrationListener.php b/lib/Listener/DeepLinkRegistrationListener.php index 219ada9..2d9f3b7 100644 --- a/lib/Listener/DeepLinkRegistrationListener.php +++ b/lib/Listener/DeepLinkRegistrationListener.php @@ -31,6 +31,11 @@ * When a user searches in Nextcloud's unified search, results for Procest schemas * (cases, tasks, etc.) will link directly to Procest's detail views. */ +/** + * Implements the event listener for deep link registration. + * + * @implements IEventListener + */ class DeepLinkRegistrationListener implements IEventListener { /** @@ -49,17 +54,17 @@ public function handle(Event $event): void // Register case detail deep links. $event->register( appId: 'procest', - registerSlug: 'case-management', + registerSlug: 'procest', schemaSlug: 'case', - urlTemplate: '/apps/procest/#/cases/{uuid}' + urlTemplate: '/apps/procest/cases/{uuid}' ); // Register task detail deep links. $event->register( appId: 'procest', - registerSlug: 'case-management', + registerSlug: 'procest', schemaSlug: 'task', - urlTemplate: '/apps/procest/#/tasks/{uuid}' + urlTemplate: '/apps/procest/tasks/{uuid}' ); }//end handle() }//end class diff --git a/lib/Middleware/TenantMiddleware.php b/lib/Middleware/TenantMiddleware.php new file mode 100644 index 0000000..799cada --- /dev/null +++ b/lib/Middleware/TenantMiddleware.php @@ -0,0 +1,139 @@ + + * @copyright 2024 Conduction B.V. + * @license EUPL-1.2 https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12 + * + * @version GIT: + * + * @link https://procest.nl + */ + +declare(strict_types=1); + +namespace OCA\Procest\Middleware; + +use OCA\Procest\Service\TenantService; +use OCP\AppFramework\Http\JSONResponse; +use OCP\AppFramework\Middleware; +use OCP\IRequest; +use OCP\IUserSession; +use Psr\Log\LoggerInterface; + +/** + * Middleware that resolves and enforces tenant context for all requests. + * + * Ensures that users can only access data belonging to their tenant. + * Platform admins can access any tenant via context switching. + * Returns 404 (not 403) for cross-tenant access to prevent information leakage. + */ +class TenantMiddleware extends Middleware +{ + /** + * Controllers that are exempt from tenant enforcement. + */ + private const EXEMPT_CONTROLLERS = [ + 'OCA\Procest\Controller\SettingsController', + 'OCA\Procest\Controller\HealthController', + 'OCA\Procest\Controller\MetricsController', + 'OCA\Procest\Controller\DashboardController', + 'OCA\Procest\Controller\TenantController', + ]; + + /** + * Constructor for the TenantMiddleware. + * + * @param TenantService $tenantService The tenant service + * @param IUserSession $userSession The user session + * @param IRequest $request The request object + * @param LoggerInterface $logger The logger + * + * @return void + */ + public function __construct( + private TenantService $tenantService, + private IUserSession $userSession, + private IRequest $request, + private LoggerInterface $logger, + ) { + }//end __construct() + + /** + * Check tenant context before controller execution. + * + * @param \OCP\AppFramework\Controller $controller The controller + * @param string $methodName The method name + * + * @return void + * + * @throws \OCP\AppFramework\Http\Response Throws if tenant check fails + */ + public function beforeController($controller, $methodName): void + { + // Skip for exempt controllers. + $controllerClass = get_class($controller); + if (in_array($controllerClass, self::EXEMPT_CONTROLLERS) === true) { + return; + } + + // Skip for public pages (no user session). + $user = $this->userSession->getUser(); + if ($user === null) { + return; + } + + $userId = $user->getUID(); + + // Platform admins bypass tenant restrictions. + if ($this->tenantService->isPlatformAdmin($userId) === true) { + return; + } + + // Resolve tenant for the current user. + $tenant = $this->tenantService->getTenantForUser($userId); + if ($tenant === null) { + $this->logger->warning( + 'Procest: User has no tenant assigned', + ['userId' => $userId] + ); + // Allow access even without tenant (single-tenant deployments). + return; + } + + // Store tenant context for controllers to use. + $this->request->setParameter('_tenantId', $tenant['uuid'] ?? $tenant['id'] ?? ''); + $this->request->setParameter('_tenantRegisterId', $tenant['registerId'] ?? ''); + $this->request->setParameter('_tenantSlug', $tenant['slug'] ?? ''); + }//end beforeController() + + /** + * Handle exceptions from controllers. + * + * @param \OCP\AppFramework\Controller $controller The controller + * @param string $methodName The method name + * @param \Exception $exception The exception + * + * @return JSONResponse The error response + * + * @throws \Exception Re-throws if not a tenant exception + */ + public function afterException($controller, $methodName, \Exception $exception): JSONResponse + { + if ($exception->getCode() === 404) { + return new JSONResponse( + ['success' => false, 'error' => 'Not found'], + 404 + ); + } + + throw $exception; + }//end afterException() +}//end class diff --git a/lib/Middleware/ZgwAuthException.php b/lib/Middleware/ZgwAuthException.php new file mode 100644 index 0000000..21fb493 --- /dev/null +++ b/lib/Middleware/ZgwAuthException.php @@ -0,0 +1,58 @@ + + * @copyright 2024 Conduction B.V. + * @license EUPL-1.2 https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12 + * + * @version GIT: + * + * @link https://procest.nl + */ + +declare(strict_types=1); + +namespace OCA\Procest\Middleware; + +/** + * Exception for ZGW authentication and authorization failures. + */ +class ZgwAuthException extends \Exception +{ + + /** + * The HTTP status code for this auth failure. + * + * @var integer + */ + private int $statusCode; + + /** + * Constructor. + * + * @param string $message The error message + * @param int $statusCode The HTTP status code + */ + public function __construct(string $message, int $statusCode=403) + { + parent::__construct(message: $message); + $this->statusCode = $statusCode; + }//end __construct() + + /** + * Get the HTTP status code. + * + * @return int + */ + public function getStatusCode(): int + { + return $this->statusCode; + }//end getStatusCode() +}//end class diff --git a/lib/Middleware/ZgwAuthMiddleware.php b/lib/Middleware/ZgwAuthMiddleware.php new file mode 100644 index 0000000..c768618 --- /dev/null +++ b/lib/Middleware/ZgwAuthMiddleware.php @@ -0,0 +1,389 @@ + + * @copyright 2024 Conduction B.V. + * @license EUPL-1.2 https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12 + * + * @version GIT: + * + * @link https://procest.nl + */ + +declare(strict_types=1); + +namespace OCA\Procest\Middleware; + +use OCA\Procest\Controller\ZgwController; +use OCP\AppFramework\Http; +use OCP\AppFramework\Http\JSONResponse; +use OCP\AppFramework\Middleware; +use OCP\IRequest; +use Psr\Log\LoggerInterface; + +/** + * Middleware that validates JWT tokens and enforces ZGW scopes. + * + * Applied to all ZgwController requests. Validates the Authorization header, + * checks JWT signature via OpenRegister's AuthorizationService, and verifies + * the authenticated applicatie has the required scope for the request. + * + * @SuppressWarnings(PHPMD.CouplingBetweenObjects) + */ +class ZgwAuthMiddleware extends Middleware +{ + /** + * Map of ZGW API groups to component codes. + * + * @var array + */ + private const API_TO_COMPONENT = [ + 'zaken' => 'zrc', + 'catalogi' => 'ztc', + 'besluiten' => 'brc', + 'documenten' => 'drc', + 'notificaties' => 'nrc', + 'autorisaties' => 'ac', + ]; + + /** + * Map of HTTP methods to ZGW scope suffixes. + * + * @var array + */ + private const METHOD_TO_SCOPE = [ + 'GET' => 'lezen', + 'POST' => 'aanmaken', + 'PUT' => 'bijwerken', + 'PATCH' => 'bijwerken', + 'DELETE' => 'verwijderen', + ]; + + /** + * Confidentiality levels from low to high. + * + * @var string[] + */ + private const CONFIDENTIALITY_ORDER = [ + 'openbaar', + 'beperkt_openbaar', + 'intern', + 'zaakvertrouwelijk', + 'vertrouwelijk', + 'confidentieel', + 'geheim', + 'zeer_geheim', + ]; + + /** + * The OpenRegister AuthorizationService (loaded dynamically). + * + * @var object|null + */ + private $authorizationService = null; + + /** + * The OpenRegister ConsumerMapper (loaded dynamically). + * + * @var object|null + */ + private $consumerMapper = null; + + /** + * Constructor. + * + * @param IRequest $request The incoming request + * @param LoggerInterface $logger The logger + * + * @return void + */ + public function __construct( + private readonly IRequest $request, + private readonly LoggerInterface $logger, + ) { + $this->loadOpenRegisterServices(); + }//end __construct() + + /** + * Load OpenRegister services dynamically. + * + * @return void + */ + private function loadOpenRegisterServices(): void + { + try { + $container = \OC::$server; + $this->authorizationService = $container->get( + 'OCA\OpenRegister\Service\AuthorizationService' + ); + $this->consumerMapper = $container->get( + 'OCA\OpenRegister\Db\ConsumerMapper' + ); + } catch (\Throwable $e) { + $this->logger->warning( + 'ZgwAuthMiddleware: OpenRegister auth services not available', + ['exception' => $e->getMessage()] + ); + } + }//end loadOpenRegisterServices() + + /** + * Validate JWT and enforce scopes before controller execution. + * + * @param \OCP\AppFramework\Controller $controller The controller instance + * @param string $methodName The method being called + * + * @return void + * + * @throws \OCA\Procest\Middleware\ZgwAuthException If authorization fails. + * + * @SuppressWarnings(PHPMD.UnusedFormalParameter) — $methodName required by Middleware interface + */ + public function beforeController($controller, $methodName): void + { + if (($controller instanceof ZgwController) === false) { + return; + } + + $authorization = $this->request->getHeader(name: 'Authorization'); + if ($authorization === '') { + throw new ZgwAuthException( + message: 'Authorization header is required', + statusCode: Http::STATUS_FORBIDDEN + ); + } + + // Extract and validate JWT payload. + $token = substr(string: $authorization, offset: strlen(string: 'Bearer ')); + $payload = $this->decodeJwtPayload(token: $token); + + if ($payload === null || isset($payload['iss']) === false) { + throw new ZgwAuthException( + message: 'Invalid token payload', + statusCode: Http::STATUS_FORBIDDEN + ); + } + + // Validate JWT signature via OpenRegister's AuthorizationService. + try { + $this->authorizationService->authorizeJwt(authorization: $authorization); + } catch (\Exception $e) { + $this->logger->warning( + 'ZGW auth failed: '.$e->getMessage() + ); + throw new ZgwAuthException( + message: $e->getMessage(), + statusCode: Http::STATUS_FORBIDDEN + ); + } + + // Enforce scope-based authorization via ConsumerMapper. + $consumer = $this->findConsumerByIssuer(issuer: $payload['iss']); + if ($consumer === null) { + throw new ZgwAuthException( + message: 'Unknown issuer', + statusCode: Http::STATUS_FORBIDDEN + ); + } + + $authConfig = $consumer->getAuthorizationConfiguration(); + + // Superuser bypasses all scope checks. + if (($authConfig['superuser'] ?? false) === true) { + return; + } + + // Enforce scope-based authorization. + $this->enforceScopes(authConfig: $authConfig); + }//end beforeController() + + /** + * Handle exceptions thrown during beforeController. + * + * @param \OCP\AppFramework\Controller $controller The controller + * @param string $methodName The method name + * @param \Exception $exception The exception + * + * @return JSONResponse|null + * + * @SuppressWarnings(PHPMD.UnusedFormalParameter) — $controller/$methodName required by Middleware interface + */ + public function afterException($controller, $methodName, \Exception $exception): ?JSONResponse + { + if ($exception instanceof ZgwAuthException) { + return new JSONResponse( + data: [ + 'type' => 'https://datatracker.ietf.org/doc/html/rfc7231#section-6.5.3', + 'code' => 'permission_denied', + 'title' => 'U heeft geen toestemming om deze actie uit te voeren.', + 'status' => $exception->getStatusCode(), + 'detail' => $exception->getMessage(), + ], + statusCode: $exception->getStatusCode() + ); + } + + return null; + }//end afterException() + + /** + * Enforce ZGW scope-based authorization. + * + * @param array $authConfig The consumer's authorization configuration + * + * @return void + * + * @throws ZgwAuthException If the scope check fails. + */ + private function enforceScopes(array $authConfig): void + { + $scopes = $authConfig['scopes'] ?? []; + $zgwApi = $this->request->getParam(key: 'zgwApi', default: ''); + $method = $this->request->getMethod(); + $component = self::API_TO_COMPONENT[$zgwApi] ?? null; + + if ($component === null) { + throw new ZgwAuthException( + message: 'Unknown API component', + statusCode: Http::STATUS_FORBIDDEN + ); + } + + $requiredSuffix = self::METHOD_TO_SCOPE[$method] ?? null; + if ($requiredSuffix === null) { + throw new ZgwAuthException( + message: 'Unsupported HTTP method', + statusCode: Http::STATUS_FORBIDDEN + ); + } + + // Check if any scope grants cover this request. + foreach ($scopes as $scopeGrant) { + if ($this->scopeGrantCovers( + scopeGrant: $scopeGrant, + component: $component, + requiredSuffix: $requiredSuffix + ) === true + ) { + return; + } + } + + throw new ZgwAuthException( + message: "Scope '{$component}.{$requiredSuffix}' is required for this operation", + statusCode: Http::STATUS_FORBIDDEN + ); + }//end enforceScopes() + + /** + * Check if a scope grant covers the required component and action. + * + * @param array $scopeGrant The scope grant configuration + * @param string $component The ZGW component code (zrc, ztc, etc.) + * @param string $requiredSuffix The required scope suffix (lezen, aanmaken, etc.) + * + * @return bool True if the scope grant covers the request + */ + private function scopeGrantCovers( + array $scopeGrant, + string $component, + string $requiredSuffix + ): bool { + // Check component match. + if (($scopeGrant['component'] ?? '') !== $component) { + return false; + } + + // Check scope includes the required action. + $grantedScopes = $scopeGrant['scopes'] ?? []; + + foreach ($grantedScopes as $scope) { + $parts = explode(separator: '.', string: $scope); + if (count(value: $parts) === 2 && $parts[1] === $requiredSuffix) { + return true; + } + } + + return false; + }//end scopeGrantCovers() + + /** + * Decode the JWT payload without verification (already verified by authorizeJwt). + * + * @param string $token The JWT token string + * + * @return array|null The decoded payload or null on failure + */ + private function decodeJwtPayload(string $token): ?array + { + $parts = explode(separator: '.', string: $token); + if (count(value: $parts) !== 3) { + return null; + } + + $payload = base64_decode(string: $parts[1], strict: true); + if ($payload === false) { + return null; + } + + $decoded = json_decode(json: $payload, associative: true); + if (is_array(value: $decoded) === false) { + return null; + } + + return $decoded; + }//end decodeJwtPayload() + + /** + * Find a Consumer entity by its issuer name. + * + * @param string $issuer The JWT issuer (maps to Consumer name) + * + * @return object|null The Consumer entity or null + */ + private function findConsumerByIssuer(string $issuer): ?object + { + try { + $consumers = $this->consumerMapper->findAll( + filters: ['name' => $issuer] + ); + if (count(value: $consumers) > 0) { + return $consumers[0]; + } + } catch (\Exception $e) { + $this->logger->warning( + 'Failed to find consumer for issuer: '.$issuer, + ['exception' => $e->getMessage()] + ); + } + + return null; + }//end findConsumerByIssuer() + + /** + * Compare confidentiality levels. + * + * @param string $actual The actual confidentiality level + * @param string $max The maximum allowed level + * + * @return bool True if actual is at or below max + */ + public function isConfidentialityAllowed(string $actual, string $max): bool + { + $actualIndex = array_search(needle: $actual, haystack: self::CONFIDENTIALITY_ORDER); + $maxIndex = array_search(needle: $max, haystack: self::CONFIDENTIALITY_ORDER); + + if ($actualIndex === false || $maxIndex === false) { + return false; + } + + return $actualIndex <= $maxIndex; + }//end isConfidentialityAllowed() +}//end class diff --git a/lib/Repair/InitializeSettings.php b/lib/Repair/InitializeSettings.php index 67f5b3f..f416bec 100644 --- a/lib/Repair/InitializeSettings.php +++ b/lib/Repair/InitializeSettings.php @@ -84,12 +84,13 @@ public function run(IOutput $output): void $output->info( 'Procest configuration imported successfully (version: '.$version.')' ); - } else { - $message = ($result['message'] ?? 'unknown error'); - $output->warning( - 'Procest configuration import issue: '.$message - ); + return; } + + $message = ($result['message'] ?? 'unknown error'); + $output->warning( + 'Procest configuration import issue: '.$message + ); } catch (\Throwable $e) { $output->warning('Could not auto-configure Procest: '.$e->getMessage()); $this->logger->error( diff --git a/lib/Repair/LoadDefaultZgwMappings.php b/lib/Repair/LoadDefaultZgwMappings.php new file mode 100644 index 0000000..1cb0ab5 --- /dev/null +++ b/lib/Repair/LoadDefaultZgwMappings.php @@ -0,0 +1,1951 @@ + + * @copyright 2024 Conduction B.V. + * @license EUPL-1.2 https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12 + * + * @version GIT: + * + * @link https://procest.nl + */ + +declare(strict_types=1); + +namespace OCA\Procest\Repair; + +use DateTime; +use OCA\Procest\Service\SettingsService; +use OCA\Procest\Service\ZgwMappingService; +use OCP\Migration\IOutput; +use OCP\Migration\IRepairStep; +use Psr\Log\LoggerInterface; + +/** + * Repair step that loads default ZGW API mapping configurations. + * + * @SuppressWarnings(PHPMD.ExcessiveClassLength) + * @SuppressWarnings(PHPMD.ExcessiveMethodLength) + * @SuppressWarnings(PHPMD.CyclomaticComplexity) + */ +class LoadDefaultZgwMappings implements IRepairStep +{ + /** + * Twig template prefix: replace path segment and append UUID variable. + * + * Used to build cross-resource URL references in ZGW property mappings. + * Pattern: {{ _baseUrl | replace({"": ""}) }}/{{ }} + */ + private const TPL_PREFIX = '{{ _baseUrl | replace({"%s": "%s"}) }}/{{ %s }}'; + + /** + * Constructor for LoadDefaultZgwMappings. + * + * @param ZgwMappingService $zgwMappingService The ZGW mapping service + * @param SettingsService $settingsService The settings service + * @param LoggerInterface $logger The logger interface + * + * @return void + */ + public function __construct( + private readonly ZgwMappingService $zgwMappingService, + private readonly SettingsService $settingsService, + private readonly LoggerInterface $logger, + ) { + }//end __construct() + + /** + * Get the name of this repair step. + * + * @return string + */ + public function getName(): string + { + return 'Load default ZGW API mapping configurations for Procest'; + }//end getName() + + /** + * Run the repair step to load default ZGW mappings. + * + * Only loads mappings that do not already exist (does not overwrite). + * + * @param IOutput $output The output interface for progress reporting + * + * @return void + */ + public function run(IOutput $output): void + { + $output->info('Loading default ZGW API mappings...'); + + $registerId = $this->settingsService->getConfigValue(key: 'register', default: ''); + if ($registerId === '') { + $output->warning('No Procest register configured yet. Skipping ZGW mapping defaults.'); + return; + } + + $defaults = $this->getDefaultMappings(registerId: $registerId); + $loaded = 0; + + foreach ($defaults as $resourceKey => $config) { + if ($this->zgwMappingService->hasMapping($resourceKey) === true) { + continue; + } + + $this->zgwMappingService->saveMapping(resourceKey: $resourceKey, config: $config); + $loaded++; + } + + $output->info("Loaded {$loaded} default ZGW mapping configurations."); + + // Patch existing mappings that have known bugs (e.g., Twig renders false as ""). + $this->patchExistingMappings(defaults: $defaults, output: $output); + + // Create default test applicaties via ConsumerMapper. + $this->createDefaultApplicaties(output: $output); + + // Create default notification channels. + $this->createDefaultKanalen(output: $output); + + $this->logger->info( + 'Procest: Default ZGW mappings loaded', + ['loaded' => $loaded, 'total' => count(value: $defaults)] + ); + }//end run() + + /** + * Patch existing mappings that contain known bugs. + * + * Some Twig templates don't handle boolean false correctly (Twig renders + * false as empty string "", which nullable casts then turn into null). + * This method checks existing mappings and updates them if they contain + * the buggy template. + * + * @param array $defaults The default mapping configurations + * @param IOutput $output The repair output + * + * @return void + */ + private function patchExistingMappings(array $defaults, IOutput $output): void + { + // Patch: enkelvoudiginformatieobject indicatieGebruiksrecht Twig template. + // Old: '{{ usageRightsIndication }}' renders false as "" → ?bool → null. + // New: uses is same as() to distinguish false from null. + $eioKey = 'enkelvoudiginformatieobject'; + if ($this->zgwMappingService->hasMapping($eioKey) === true) { + $existing = $this->zgwMappingService->getMapping($eioKey); + $oldTpl = '{{ usageRightsIndication }}'; + $current = $existing['propertyMapping']['indicatieGebruiksrecht'] ?? ''; + if ($current === $oldTpl && isset($defaults[$eioKey]) === true) { + $existing['propertyMapping']['indicatieGebruiksrecht'] + = $defaults[$eioKey]['propertyMapping']['indicatieGebruiksrecht']; + $this->zgwMappingService->saveMapping(resourceKey: $eioKey, config: $existing); + $output->info('Patched enkelvoudiginformatieobject mapping: indicatieGebruiksrecht template.'); + } + } + }//end patchExistingMappings() + + /** + * Build a Twig URL-replacement template string. + * + * Generates: {{ _baseUrl | replace({"": ""}) }}/{{ }} + * + * @param string $from The path segment to replace + * @param string $to The replacement path segment + * @param string $varName The Twig variable to append + * + * @return string The Twig template string + */ + private function tplUrl(string $from, string $to, string $varName): string + { + // Insert /v1/ between API group and resource (e.g. "zaken/zaken" → "zaken/v1/zaken"). + $fromParts = explode('/', $from); + $toParts = explode('/', $to); + $fromPath = $fromParts[0].'/v1/'.$fromParts[1]; + $toPath = $toParts[0].'/v1/'.$toParts[1]; + + return sprintf(self::TPL_PREFIX, $fromPath, $toPath, $varName); + }//end tplUrl() + + /** + * Get the default mapping configurations for all 12 ZGW resources. + * + * @param string $registerId The Procest register ID + * + * @return array Mapping configurations keyed by resource key + * + * @SuppressWarnings(PHPMD.ExcessiveMethodLength) + */ + public function getDefaultMappings(string $registerId): array + { + $settings = $this->settingsService->getSettings(); + + return [ + 'catalogus' => $this->getCatalogusMapping( + registerId: $registerId, + settings: $settings + ), + 'zaak' => $this->getZaakMapping( + registerId: $registerId, + settings: $settings + ), + 'zaaktype' => $this->getZaakTypeMapping( + registerId: $registerId, + settings: $settings + ), + 'status' => $this->getStatusMapping( + registerId: $registerId, + settings: $settings + ), + 'statustype' => $this->getStatusTypeMapping( + registerId: $registerId, + settings: $settings + ), + 'resultaat' => $this->getResultaatMapping( + registerId: $registerId, + settings: $settings + ), + 'resultaattype' => $this->getResultaatTypeMapping( + registerId: $registerId, + settings: $settings + ), + 'rol' => $this->getRolMapping( + registerId: $registerId, + settings: $settings + ), + 'roltype' => $this->getRolTypeMapping( + registerId: $registerId, + settings: $settings + ), + 'eigenschap' => $this->getEigenschapMapping( + registerId: $registerId, + settings: $settings + ), + 'besluit' => $this->getBesluitMapping( + registerId: $registerId, + settings: $settings + ), + 'besluittype' => $this->getBesluitTypeMapping( + registerId: $registerId, + settings: $settings + ), + 'informatieobjecttype' => $this->getInformatieObjectTypeMapping( + registerId: $registerId, + settings: $settings + ), + 'zaaktypeinformatieobjecttype' => $this->getZaaktypeInformatieobjecttypeMapping( + registerId: $registerId, + settings: $settings + ), + 'enkelvoudiginformatieobject' => $this->getEnkelvoudigInformatieObjectMapping( + registerId: $registerId, + settings: $settings + ), + 'objectinformatieobject' => $this->getObjectInformatieObjectMapping( + registerId: $registerId, + settings: $settings + ), + 'gebruiksrechten' => $this->getGebruiksrechtenMapping( + registerId: $registerId, + settings: $settings + ), + 'zaakeigenschap' => $this->getZaakeigenschapMapping( + registerId: $registerId, + settings: $settings + ), + 'zaakinformatieobject' => $this->getZaakinformatieobjectMapping( + registerId: $registerId, + settings: $settings + ), + 'zaakobject' => $this->getZaakobjectMapping( + registerId: $registerId, + settings: $settings + ), + 'klantcontact' => $this->getKlantcontactMapping( + registerId: $registerId, + settings: $settings + ), + 'besluitinformatieobject' => $this->getBesluitinformatieobjectMapping( + registerId: $registerId, + settings: $settings + ), + 'verzending' => $this->getVerzendingMapping( + registerId: $registerId, + settings: $settings + ), + 'applicatie' => $this->getApplicatieMapping(), + 'kanaal' => $this->getKanaalMapping( + registerId: $registerId, + settings: $settings + ), + 'abonnement' => $this->getAbonnementMapping( + registerId: $registerId, + settings: $settings + ), + ]; + }//end getDefaultMappings() + + /** + * Get default mapping for Zaak (case). + * + * @param string $registerId The register ID + * @param array $settings The Procest settings + * + * @return array + */ + private function getZaakMapping(string $registerId, array $settings): array + { + return [ + 'zgwResource' => 'zaak', + 'zgwApiVersion' => '1', + 'sourceRegister' => $registerId, + 'sourceSchema' => ($settings['case_schema'] ?? ''), + 'enabled' => true, + 'propertyMapping' => [ + 'url' => '{{ _baseUrl }}/{{ _uuid }}', + 'uuid' => '{{ _uuid }}', + 'identificatie' => '{{ identifier }}', + 'bronorganisatie' => '{{ sourceOrganisation }}', + 'omschrijving' => '{{ title }}', + 'toelichting' => '{{ description }}', + 'zaaktype' => $this->tplUrl( + from: 'zaken/zaken', + to: 'catalogi/zaaktypen', + varName: 'caseType' + ), + 'registratiedatum' => '{{ _created }}', + 'startdatum' => '{{ startDate }}', + 'einddatum' => '{{ endDate }}', + 'einddatumGepland' => '{{ plannedEndDate }}', + 'uiterlijkeEinddatumAfdoening' => '{{ deadline }}', + 'vertrouwelijkheidaanduiding' => '{{ confidentiality }}', + 'verantwoordelijkeOrganisatie' => '{{ assignee }}', + 'archiefnominatie' => '{{ archiveNomination }}', + 'archiefactiedatum' => '{{ archiveActionDate }}', + 'archiefstatus' => '{{ archiveStatus }}', + 'betalingsindicatie' => '{{ paymentIndication }}', + 'laatsteBetaaldatum' => '{{ lastPaymentDate }}', + 'hoofdzaak' => '{% if parentCase %}{{ _baseUrl }}/{{ parentCase }}{% endif %}', + ], + 'reverseMapping' => [ + 'title' => '{{ omschrijving }}', + 'description' => '{{ toelichting }}', + 'identifier' => '{{ identificatie }}', + 'sourceOrganisation' => '{{ bronorganisatie }}', + 'caseType' => '{{ zaaktype | zgw_extract_uuid }}', + 'startDate' => '{{ startdatum }}', + 'endDate' => '{{ einddatum }}', + 'plannedEndDate' => '{{ einddatumGepland }}', + 'deadline' => '{{ uiterlijkeEinddatumAfdoening }}', + 'confidentiality' => '{{ vertrouwelijkheidaanduiding }}', + 'assignee' => '{{ verantwoordelijkeOrganisatie }}', + 'archiveNomination' => '{{ archiefnominatie }}', + 'archiveActionDate' => '{{ archiefactiedatum }}', + 'archiveStatus' => '{{ archiefstatus }}', + 'paymentIndication' => '{{ betalingsindicatie }}', + 'lastPaymentDate' => '{{ laatsteBetaaldatum }}', + 'parentCase' => '{{ hoofdzaak | zgw_extract_uuid }}', + ], + 'valueMapping' => [ + 'confidentiality' => [ + 'openbaar' => 'openbaar', + 'beperkt_openbaar' => 'beperkt_openbaar', + 'intern' => 'intern', + 'zaakvertrouwelijk' => 'zaakvertrouwelijk', + 'vertrouwelijk' => 'vertrouwelijk', + 'confidentieel' => 'confidentieel', + 'geheim' => 'geheim', + 'zeer_geheim' => 'zeer_geheim', + ], + ], + 'nullableFields' => [ + 'einddatum', + 'einddatumGepland', + 'uiterlijkeEinddatumAfdoening', + 'archiefnominatie', + 'archiefactiedatum', + 'archiefstatus', + 'betalingsindicatie', + 'laatsteBetaaldatum', + 'hoofdzaak', + ], + 'queryParameterMapping' => [ + 'zaaktype' => [ + 'field' => 'caseType', + 'extractUuid' => true, + ], + 'identificatie' => [ + 'field' => 'identifier', + ], + 'bronorganisatie' => [ + 'field' => 'sourceOrganisation', + ], + 'startdatum' => [ + 'field' => 'startDate', + ], + 'startdatum__gte' => [ + 'field' => 'startDate', + 'operator' => 'gte', + ], + 'startdatum__lte' => [ + 'field' => 'startDate', + 'operator' => 'lte', + ], + 'einddatum' => [ + 'field' => 'endDate', + ], + 'einddatum__isnull' => [ + 'field' => 'endDate', + 'operator' => 'isnull', + ], + 'archiefnominatie' => [ + 'field' => 'archiveNomination', + ], + 'archiefactiedatum__lt' => [ + 'field' => 'archiveActionDate', + 'operator' => 'lt', + ], + 'archiefstatus' => [ + 'field' => 'archiveStatus', + ], + ], + ]; + }//end getZaakMapping() + + /** + * Get default mapping for ZaakType (caseType). + * + * @param string $registerId The register ID + * @param array $settings The Procest settings + * + * @return array + */ + private function getZaakTypeMapping(string $registerId, array $settings): array + { + return [ + 'zgwResource' => 'zaaktype', + 'zgwApiVersion' => '1', + 'sourceRegister' => $registerId, + 'sourceSchema' => ($settings['case_type_schema'] ?? ''), + 'enabled' => true, + 'propertyMapping' => [ + 'url' => '{{ _baseUrl }}/{{ _uuid }}', + 'uuid' => '{{ _uuid }}', + 'identificatie' => '{{ identifier }}', + 'omschrijving' => '{{ title }}', + 'omschrijvingGeneriek' => '{{ description }}', + 'catalogus' => $this->tplUrl( + from: 'catalogi/zaaktypen', + to: 'catalogi/catalogussen', + varName: 'catalogus' + ), + 'doel' => '{{ purpose }}', + 'aanleiding' => '{{ trigger }}', + 'onderwerp' => '{{ subject }}', + 'doorlooptijd' => '{{ processingDeadline }}', + 'vertrouwelijkheidaanduiding' => '{{ confidentiality }}', + 'concept' => '{{ isDraft }}', + 'beginGeldigheid' => '{{ validFrom }}', + 'eindeGeldigheid' => '{{ validUntil }}', + 'handelingInitiator' => '{{ origin }}', + 'indicatieInternOfExtern' => '{{ internalOrExternal }}', + 'handelingBehandelaar' => '{{ handlerAction }}', + 'opschortingEnAanhoudingMogelijk' => '{{ suspensionAllowed }}', + 'verlengingMogelijk' => '{{ extensionAllowed }}', + 'verlengingstermijn' => '{{ extensionPeriod }}', + 'publicatieIndicatie' => '{{ publicationRequired }}', + 'productenOfDiensten' => '{{ productsOrServices | json_encode }}', + 'selectielijstProcestype' => '{{ selectionListProcessType }}', + 'referentieproces' => '{{ referenceProcess | json_encode }}', + 'verantwoordelijke' => '{{ responsible }}', + 'gerelateerdeZaaktypen' => '{{ relatedCaseTypes | json_encode }}', + 'besluittypen' => 'decisionTypes', + 'informatieobjecttypen' => '[]', + ], + 'reverseMapping' => [ + 'title' => '{{ omschrijving }}', + 'description' => '{{ omschrijvingGeneriek }}', + 'identifier' => '{{ identificatie }}', + 'catalogus' => '{{ catalogus | zgw_extract_uuid }}', + 'purpose' => '{{ doel }}', + 'trigger' => '{{ aanleiding }}', + 'subject' => '{{ onderwerp }}', + 'processingDeadline' => '{{ doorlooptijd }}', + 'confidentiality' => '{{ vertrouwelijkheidaanduiding }}', + 'isDraft' => '{{ concept }}', + 'validFrom' => '{{ beginGeldigheid }}', + 'validUntil' => '{{ eindeGeldigheid }}', + 'origin' => '{{ handelingInitiator }}', + 'internalOrExternal' => '{{ indicatieInternOfExtern }}', + 'handlerAction' => '{{ handelingBehandelaar }}', + 'suspensionAllowed' => '{{ opschortingEnAanhoudingMogelijk }}', + 'extensionAllowed' => '{{ verlengingMogelijk }}', + 'extensionPeriod' => '{{ verlengingstermijn }}', + 'publicationRequired' => '{{ publicatieIndicatie }}', + 'selectionListProcessType' => '{{ selectielijstProcestype }}', + 'responsible' => '{{ verantwoordelijke }}', + 'productsOrServices' => '{{ productenOfDiensten | json_encode }}', + 'referenceProcess' => '{{ referentieproces | json_encode }}', + 'relatedCaseTypes' => '{{ gerelateerdeZaaktypen | json_encode }}', + 'versionDate' => '{{ versiedatum }}', + ], + 'reverseCast' => [ + 'isDraft' => 'bool', + 'suspensionAllowed' => 'bool', + 'extensionAllowed' => 'bool', + 'publicationRequired' => 'bool', + ], + 'cast' => [ + 'concept' => 'bool', + 'opschortingEnAanhoudingMogelijk' => 'bool', + 'verlengingMogelijk' => 'bool', + 'publicatieIndicatie' => 'bool', + 'productenOfDiensten' => 'jsonToArray', + 'gerelateerdeZaaktypen' => 'jsonToArray', + 'informatieobjecttypen' => 'jsonToArray', + 'referentieproces' => 'jsonToArray', + ], + 'valueMapping' => [], + 'queryParameterMapping' => [ + 'identificatie' => [ + 'field' => 'identifier', + ], + 'catalogus' => [ + 'field' => 'catalogus', + 'extractUuid' => true, + ], + ], + ]; + }//end getZaakTypeMapping() + + /** + * Get default mapping for Status. + * + * @param string $registerId The register ID + * @param array $settings The Procest settings + * + * @return array + */ + private function getStatusMapping(string $registerId, array $settings): array + { + return [ + 'zgwResource' => 'status', + 'zgwApiVersion' => '1', + 'sourceRegister' => $registerId, + 'sourceSchema' => ($settings['status_record_schema'] ?? ''), + 'enabled' => true, + 'propertyMapping' => [ + 'url' => '{{ _baseUrl }}/{{ _uuid }}', + 'uuid' => '{{ _uuid }}', + 'zaak' => $this->tplUrl( + from: 'zaken/statussen', + to: 'zaken/zaken', + varName: 'case' + ), + 'statustype' => $this->tplUrl( + from: 'zaken/statussen', + to: 'catalogi/statustypen', + varName: 'statusType' + ), + 'datumStatusGezet' => '{{ _created }}', + 'statustoelichting' => '{{ description }}', + ], + 'reverseMapping' => [ + 'case' => '{{ zaak | zgw_extract_uuid }}', + 'statusType' => '{{ statustype | zgw_extract_uuid }}', + 'description' => '{{ statustoelichting }}', + ], + 'valueMapping' => [], + 'queryParameterMapping' => [ + 'zaak' => [ + 'field' => 'case', + 'extractUuid' => true, + ], + ], + ]; + }//end getStatusMapping() + + /** + * Get default mapping for StatusType (statusType). + * + * @param string $registerId The register ID + * @param array $settings The Procest settings + * + * @return array + */ + private function getStatusTypeMapping(string $registerId, array $settings): array + { + return [ + 'zgwResource' => 'statustype', + 'zgwApiVersion' => '1', + 'sourceRegister' => $registerId, + 'sourceSchema' => ($settings['status_type_schema'] ?? ''), + 'enabled' => true, + 'propertyMapping' => [ + 'url' => '{{ _baseUrl }}/{{ _uuid }}', + 'uuid' => '{{ _uuid }}', + 'omschrijving' => '{{ name }}', + 'omschrijvingGeneriek' => '{{ description }}', + 'zaaktype' => $this->tplUrl( + from: 'catalogi/statustypen', + to: 'catalogi/zaaktypen', + varName: 'caseType' + ), + 'volgnummer' => '{{ order }}', + 'isEindstatus' => '{{ isFinal }}', + ], + 'reverseMapping' => [ + 'name' => '{{ omschrijving }}', + 'description' => '{{ omschrijvingGeneriek }}', + 'caseType' => '{{ zaaktype | zgw_extract_uuid }}', + 'order' => '{{ volgnummer }}', + 'isFinal' => '{{ isEindstatus }}', + ], + 'reverseCast' => [ + 'order' => 'int', + 'isFinal' => 'bool', + ], + 'cast' => [ + 'volgnummer' => 'int', + 'isEindstatus' => 'bool', + ], + 'valueMapping' => [], + 'queryParameterMapping' => [ + 'zaaktype' => [ + 'field' => 'caseType', + 'extractUuid' => true, + ], + ], + ]; + }//end getStatusTypeMapping() + + /** + * Get default mapping for Resultaat (result). + * + * @param string $registerId The register ID + * @param array $settings The Procest settings + * + * @return array + */ + private function getResultaatMapping(string $registerId, array $settings): array + { + return [ + 'zgwResource' => 'resultaat', + 'zgwApiVersion' => '1', + 'sourceRegister' => $registerId, + 'sourceSchema' => ($settings['result_schema'] ?? ''), + 'enabled' => true, + 'propertyMapping' => [ + 'url' => '{{ _baseUrl }}/{{ _uuid }}', + 'uuid' => '{{ _uuid }}', + 'zaak' => $this->tplUrl( + from: 'zaken/resultaten', + to: 'zaken/zaken', + varName: 'case' + ), + 'resultaattype' => $this->tplUrl( + from: 'zaken/resultaten', + to: 'catalogi/resultaattypen', + varName: 'resultType' + ), + 'toelichting' => '{{ description }}', + ], + 'reverseMapping' => [ + 'name' => '{{ toelichting }}', + 'case' => '{{ zaak | zgw_extract_uuid }}', + 'resultType' => '{{ resultaattype | zgw_extract_uuid }}', + 'description' => '{{ toelichting }}', + ], + 'valueMapping' => [], + 'queryParameterMapping' => [ + 'zaak' => [ + 'field' => 'case', + 'extractUuid' => true, + ], + ], + ]; + }//end getResultaatMapping() + + /** + * Get default mapping for ResultaatType (resultType). + * + * @param string $registerId The register ID + * @param array $settings The Procest settings + * + * @return array + */ + private function getResultaatTypeMapping(string $registerId, array $settings): array + { + return [ + 'zgwResource' => 'resultaattype', + 'zgwApiVersion' => '1', + 'sourceRegister' => $registerId, + 'sourceSchema' => ($settings['result_type_schema'] ?? ''), + 'enabled' => true, + 'propertyMapping' => [ + 'url' => '{{ _baseUrl }}/{{ _uuid }}', + 'uuid' => '{{ _uuid }}', + 'omschrijving' => '{{ name }}', + 'omschrijvingGeneriek' => '{{ genericDescription }}', + 'toelichting' => '{{ description }}', + 'zaaktype' => $this->tplUrl( + from: 'catalogi/resultaattypen', + to: 'catalogi/zaaktypen', + varName: 'caseType' + ), + 'archiefnominatie' => '{{ archivalAction }}', + 'archiefactietermijn' => '{{ archivalPeriod }}', + 'brondatumArchiefprocedure' => '{{ sourceDateArchiveProcedure | json_encode }}', + 'selectielijstklasse' => '{{ selectionListClass }}', + ], + 'reverseMapping' => [ + 'name' => '{{ omschrijving }}', + 'genericDescription' => '{{ omschrijvingGeneriek }}', + 'description' => '{{ toelichting }}', + 'caseType' => '{{ zaaktype | zgw_extract_uuid }}', + 'archivalAction' => '{{ archiefnominatie }}', + 'archivalPeriod' => '{{ archiefactietermijn }}', + 'sourceDateArchiveProcedure' => '{{ brondatumArchiefprocedure | json_encode }}', + 'selectionListClass' => '{{ selectielijstklasse }}', + ], + 'valueMapping' => [ + 'archivalAction' => [ + 'bewaren' => 'bewaren', + 'vernietigen' => 'vernietigen', + 'blijvend_bewaren' => 'blijvend_bewaren', + ], + ], + 'cast' => [ + 'sourceDateArchiveProcedure' => 'jsonToArray', + ], + 'reverseCast' => [], + 'nullableFields' => [ + 'archiefactietermijn', + 'omschrijvingGeneriek', + 'brondatumArchiefprocedure', + 'selectielijstklasse', + ], + 'queryParameterMapping' => [ + 'zaaktype' => [ + 'field' => 'caseType', + 'extractUuid' => true, + ], + ], + ]; + }//end getResultaatTypeMapping() + + /** + * Get default mapping for Rol (role). + * + * @param string $registerId The register ID + * @param array $settings The Procest settings + * + * @return array + */ + private function getRolMapping(string $registerId, array $settings): array + { + return [ + 'zgwResource' => 'rol', + 'zgwApiVersion' => '1', + 'sourceRegister' => $registerId, + 'sourceSchema' => ($settings['role_schema'] ?? ''), + 'enabled' => true, + 'propertyMapping' => [ + 'url' => '{{ _baseUrl }}/{{ _uuid }}', + 'uuid' => '{{ _uuid }}', + 'zaak' => $this->tplUrl( + from: 'zaken/rollen', + to: 'zaken/zaken', + varName: 'case' + ), + 'roltype' => $this->tplUrl( + from: 'zaken/rollen', + to: 'catalogi/roltypen', + varName: 'roleType' + ), + 'omschrijving' => '{{ name }}', + 'omschrijvingGeneriek' => '{{ description }}', + 'betrokkeneIdentificatie' => '{{ participant }}', + ], + 'reverseMapping' => [ + 'name' => '{{ omschrijving }}', + 'description' => '{{ omschrijvingGeneriek }}', + 'case' => '{{ zaak | zgw_extract_uuid }}', + 'roleType' => '{{ roltype | zgw_extract_uuid }}', + 'participant' => '{{ betrokkeneIdentificatie }}', + ], + 'valueMapping' => [], + 'queryParameterMapping' => [ + 'zaak' => [ + 'field' => 'case', + 'extractUuid' => true, + ], + ], + ]; + }//end getRolMapping() + + /** + * Get default mapping for RolType (roleType). + * + * @param string $registerId The register ID + * @param array $settings The Procest settings + * + * @return array + */ + private function getRolTypeMapping(string $registerId, array $settings): array + { + return [ + 'zgwResource' => 'roltype', + 'zgwApiVersion' => '1', + 'sourceRegister' => $registerId, + 'sourceSchema' => ($settings['role_type_schema'] ?? ''), + 'enabled' => true, + 'propertyMapping' => [ + 'url' => '{{ _baseUrl }}/{{ _uuid }}', + 'uuid' => '{{ _uuid }}', + 'omschrijving' => '{{ name }}', + 'omschrijvingGeneriek' => '{{ description }}', + 'zaaktype' => $this->tplUrl( + from: 'catalogi/roltypen', + to: 'catalogi/zaaktypen', + varName: 'caseType' + ), + ], + 'reverseMapping' => [ + 'name' => '{{ omschrijving }}', + 'description' => '{{ omschrijvingGeneriek }}', + 'caseType' => '{{ zaaktype | zgw_extract_uuid }}', + ], + 'valueMapping' => [], + 'queryParameterMapping' => [ + 'zaaktype' => [ + 'field' => 'caseType', + 'extractUuid' => true, + ], + ], + ]; + }//end getRolTypeMapping() + + /** + * Get default mapping for Eigenschap (propertyDefinition). + * + * @param string $registerId The register ID + * @param array $settings The Procest settings + * + * @return array + */ + private function getEigenschapMapping(string $registerId, array $settings): array + { + return [ + 'zgwResource' => 'eigenschap', + 'zgwApiVersion' => '1', + 'sourceRegister' => $registerId, + 'sourceSchema' => ($settings['property_definition_schema'] ?? ''), + 'enabled' => true, + 'propertyMapping' => [ + 'url' => '{{ _baseUrl }}/{{ _uuid }}', + 'uuid' => '{{ _uuid }}', + 'naam' => '{{ name }}', + 'definitie' => '{{ definition }}', + 'toelichting' => '{{ description }}', + 'zaaktype' => $this->tplUrl( + from: 'catalogi/eigenschappen', + to: 'catalogi/zaaktypen', + varName: 'caseType' + ), + 'specificatie' => '{{ {formaat: propertyType ?: "tekst"} | json_encode }}', + ], + 'reverseMapping' => [ + 'name' => '{{ naam }}', + 'definition' => '{{ definitie }}', + 'description' => '{{ toelichting }}', + 'caseType' => '{{ zaaktype | zgw_extract_uuid }}', + ], + 'valueMapping' => [], + 'queryParameterMapping' => [ + 'zaaktype' => [ + 'field' => 'caseType', + 'extractUuid' => true, + ], + ], + ]; + }//end getEigenschapMapping() + + /** + * Get default mapping for Besluit (decision). + * + * @param string $registerId The register ID + * @param array $settings The Procest settings + * + * @return array + */ + private function getBesluitMapping(string $registerId, array $settings): array + { + return [ + 'zgwResource' => 'besluit', + 'zgwApiVersion' => '1', + 'sourceRegister' => $registerId, + 'sourceSchema' => ($settings['decision_schema'] ?? ''), + 'enabled' => true, + 'propertyMapping' => [ + 'url' => '{{ _baseUrl }}/{{ _uuid }}', + 'uuid' => '{{ _uuid }}', + 'identificatie' => '{{ title }}', + 'toelichting' => '{{ explanation }}', + 'zaak' => $this->tplUrl( + from: 'besluiten/besluiten', + to: 'zaken/zaken', + varName: 'case' + ), + 'besluittype' => $this->tplUrl( + from: 'besluiten/besluiten', + to: 'catalogi/besluittypen', + varName: 'decisionType' + ), + 'verantwoordelijkeOrganisatie' => '{{ responsibleOrganisation }}', + 'bestuursorgaan' => '{{ governingBody }}', + 'datum' => '{{ decisionDate }}', + 'ingangsdatum' => '{{ effectiveDate }}', + 'vervaldatum' => '{{ expiryDate }}', + 'publicatiedatum' => '{{ publicationDate }}', + 'verzenddatum' => '{{ deliveryDate }}', + ], + 'reverseMapping' => [ + 'title' => '{{ identificatie }}', + 'explanation' => '{{ toelichting }}', + 'case' => '{% if zaak is defined and zaak %}{{ zaak | zgw_extract_uuid }}{% endif %}', + 'decisionType' => '{{ besluittype | zgw_extract_uuid }}', + 'responsibleOrganisation' => '{{ verantwoordelijkeOrganisatie }}', + 'governingBody' => '{{ bestuursorgaan }}', + 'decisionDate' => '{{ datum }}', + 'effectiveDate' => '{{ ingangsdatum }}', + 'expiryDate' => '{{ vervaldatum }}', + 'publicationDate' => '{{ publicatiedatum }}', + 'deliveryDate' => '{{ verzenddatum }}', + ], + 'valueMapping' => [], + 'queryParameterMapping' => [ + 'zaak' => [ + 'field' => 'case', + 'extractUuid' => true, + ], + ], + ]; + }//end getBesluitMapping() + + /** + * Get default mapping for BesluitType (decisionType). + * + * @param string $registerId The register ID + * @param array $settings The Procest settings + * + * @return array + */ + private function getBesluitTypeMapping(string $registerId, array $settings): array + { + return [ + 'zgwResource' => 'besluittype', + 'zgwApiVersion' => '1', + 'sourceRegister' => $registerId, + 'sourceSchema' => ($settings['decision_type_schema'] ?? ''), + 'enabled' => true, + 'propertyMapping' => [ + 'url' => '{{ _baseUrl }}/{{ _uuid }}', + 'uuid' => '{{ _uuid }}', + 'omschrijving' => '{{ name }}', + 'toelichting' => '{{ description }}', + 'catalogus' => $this->tplUrl( + from: 'catalogi/besluittypen', + to: 'catalogi/catalogussen', + varName: 'catalogus' + ), + 'zaaktypen' => 'caseTypes', + 'concept' => '{{ isDraft }}', + 'publicatieIndicatie' => '{{ publicationRequired }}', + 'informatieobjecttypen' => 'documentTypes', + 'beginGeldigheid' => '{{ validFrom }}', + 'eindeGeldigheid' => '{{ validUntil }}', + ], + 'reverseMapping' => [ + 'name' => '{{ omschrijving }}', + 'description' => '{{ toelichting }}', + 'catalogus' => '{{ catalogus | zgw_extract_uuid }}', + 'isDraft' => '{{ concept }}', + 'publicationRequired' => '{{ publicatieIndicatie }}', + 'caseTypes' => 'zaaktypen', + 'documentTypes' => 'informatieobjecttypen', + 'validFrom' => '{{ beginGeldigheid }}', + 'validUntil' => '{{ eindeGeldigheid }}', + ], + 'reverseCast' => [ + 'isDraft' => 'bool', + 'publicationRequired' => 'bool', + ], + 'cast' => [ + 'concept' => 'bool', + 'publicatieIndicatie' => 'bool', + ], + 'valueMapping' => [], + 'queryParameterMapping' => [ + 'zaaktypen' => [ + 'field' => 'caseType', + 'extractUuid' => true, + ], + 'catalogus' => [ + 'field' => 'catalogus', + 'extractUuid' => true, + ], + 'omschrijving' => [ + 'field' => 'name', + ], + ], + ]; + }//end getBesluitTypeMapping() + + /** + * Get default mapping for InformatieObjectType (documentType). + * + * @param string $registerId The register ID + * @param array $settings The Procest settings + * + * @return array + */ + private function getInformatieObjectTypeMapping(string $registerId, array $settings): array + { + return [ + 'zgwResource' => 'informatieobjecttype', + 'zgwApiVersion' => '1', + 'sourceRegister' => $registerId, + 'sourceSchema' => ($settings['document_type_schema'] ?? ''), + 'enabled' => true, + 'propertyMapping' => [ + 'url' => '{{ _baseUrl }}/{{ _uuid }}', + 'uuid' => '{{ _uuid }}', + 'omschrijving' => '{{ name }}', + 'toelichting' => '{{ description }}', + 'catalogus' => $this->tplUrl( + from: 'catalogi/informatieobjecttypen', + to: 'catalogi/catalogussen', + varName: 'catalogus' + ), + 'concept' => '{{ isDraft }}', + 'vertrouwelijkheidaanduiding' => '{{ confidentiality }}', + 'informatieobjectcategorie' => '{{ category }}', + 'beginGeldigheid' => '{{ validFrom }}', + 'eindeGeldigheid' => '{{ validUntil }}', + 'verplicht' => '{{ isRequired }}', + ], + 'reverseMapping' => [ + 'name' => '{{ omschrijving }}', + 'description' => '{{ toelichting }}', + 'catalogus' => '{{ catalogus | zgw_extract_uuid }}', + 'isDraft' => '{{ concept }}', + 'confidentiality' => '{{ vertrouwelijkheidaanduiding }}', + 'category' => '{{ informatieobjectcategorie }}', + 'validFrom' => '{{ beginGeldigheid }}', + 'validUntil' => '{{ eindeGeldigheid }}', + 'isRequired' => '{{ verplicht }}', + ], + 'reverseCast' => [ + 'isDraft' => 'bool', + 'isRequired' => 'bool', + ], + 'cast' => [ + 'concept' => 'bool', + 'verplicht' => 'bool', + ], + 'valueMapping' => [], + 'queryParameterMapping' => [ + 'catalogus' => [ + 'field' => 'catalogus', + 'extractUuid' => true, + ], + ], + ]; + }//end getInformatieObjectTypeMapping() + + /** + * Get default mapping for EnkelvoudigInformatieObject (document). + * + * @param string $registerId The register ID + * @param array $settings The Procest settings + * + * @return array + */ + private function getEnkelvoudigInformatieObjectMapping( + string $registerId, + array $settings + ): array { + return [ + 'zgwResource' => 'enkelvoudiginformatieobject', + 'zgwApiVersion' => '1', + 'sourceRegister' => $registerId, + 'sourceSchema' => ($settings['document_schema'] ?? ''), + 'enabled' => true, + 'propertyMapping' => [ + 'url' => '{{ _baseUrl }}/{{ _uuid }}', + 'uuid' => '{{ _uuid }}', + 'identificatie' => '{{ identifier }}', + 'bronorganisatie' => '{{ sourceOrganisation }}', + 'creatiedatum' => '{{ creationDate }}', + 'titel' => '{{ title }}', + 'vertrouwelijkheidaanduiding' => '{{ confidentiality }}', + 'auteur' => '{{ author }}', + 'status' => '{{ status }}', + 'formaat' => '{{ format }}', + 'taal' => '{{ language }}', + 'bestandsnaam' => '{{ fileName }}', + 'bestandsomvang' => '{{ fileSize }}', + 'inhoud' => '{{ _downloadUrl }}', + 'link' => '{{ link }}', + 'beschrijving' => '{{ description }}', + 'informatieobjecttype' => $this->tplUrl( + from: 'documenten/enkelvoudiginformatieobjecten', + to: 'catalogi/informatieobjecttypen', + varName: 'documentType' + ), + 'locked' => '{{ locked }}', + 'registratiedatum' => '{{ _created }}', + // phpcs:ignore Generic.Files.LineLength.MaxExceeded + 'indicatieGebruiksrecht' => '{{ usageRightsIndication is same as(true) ? "true" : (usageRightsIndication is same as(false) ? "false" : "") }}', + ], + 'reverseMapping' => [ + 'identifier' => '{{ identificatie }}', + 'sourceOrganisation' => '{{ bronorganisatie }}', + 'creationDate' => '{{ creatiedatum }}', + 'title' => '{{ titel }}', + 'confidentiality' => '{{ vertrouwelijkheidaanduiding }}', + 'author' => '{{ auteur }}', + 'status' => '{{ status }}', + 'format' => '{{ formaat }}', + 'language' => '{{ taal }}', + 'fileName' => '{{ bestandsnaam }}', + 'fileSize' => '{{ bestandsomvang }}', + 'link' => '{{ link }}', + 'description' => '{{ beschrijving }}', + 'documentType' => '{{ informatieobjecttype | zgw_extract_uuid }}', + 'usageRightsIndication' => '{{ indicatieGebruiksrecht }}', + ], + 'valueMapping' => [ + 'confidentiality' => [ + 'openbaar' => 'openbaar', + 'beperkt_openbaar' => 'beperkt_openbaar', + 'intern' => 'intern', + 'zaakvertrouwelijk' => 'zaakvertrouwelijk', + 'vertrouwelijk' => 'vertrouwelijk', + 'confidentieel' => 'confidentieel', + 'geheim' => 'geheim', + 'zeer_geheim' => 'zeer_geheim', + ], + 'status' => [ + 'in_bewerking' => 'in_bewerking', + 'ter_vaststelling' => 'ter_vaststelling', + 'definitief' => 'definitief', + 'gearchiveerd' => 'gearchiveerd', + ], + ], + 'reverseCast' => [ + 'fileSize' => 'int', + ], + 'cast' => [ + 'bestandsomvang' => 'int', + 'locked' => 'bool', + 'indicatieGebruiksrecht' => '?bool', + ], + 'queryParameterMapping' => [ + 'informatieobjecttype' => [ + 'field' => 'documentType', + 'extractUuid' => true, + ], + 'bronorganisatie' => [ + 'field' => 'sourceOrganisation', + ], + ], + ]; + }//end getEnkelvoudigInformatieObjectMapping() + + /** + * Get default mapping for ObjectInformatieObject (documentLink). + * + * @param string $registerId The register ID + * @param array $settings The Procest settings + * + * @return array + */ + private function getObjectInformatieObjectMapping( + string $registerId, + array $settings + ): array { + return [ + 'zgwResource' => 'objectinformatieobject', + 'zgwApiVersion' => '1', + 'sourceRegister' => $registerId, + 'sourceSchema' => ($settings['document_link_schema'] ?? ''), + 'enabled' => true, + 'propertyMapping' => [ + 'url' => '{{ _baseUrl }}/{{ _uuid }}', + 'uuid' => '{{ _uuid }}', + 'informatieobject' => '{{ document }}', + 'object' => '{{ object }}', + 'objectType' => '{{ objectType }}', + ], + 'reverseMapping' => [ + 'document' => '{{ informatieobject }}', + 'object' => '{{ object }}', + 'objectType' => '{{ objectType }}', + ], + 'valueMapping' => [ + 'objectType' => [ + 'zaak' => 'zaak', + 'besluit' => 'besluit', + ], + ], + 'queryParameterMapping' => [ + 'informatieobject' => [ + 'field' => 'document', + ], + 'object' => [ + 'field' => 'object', + ], + ], + ]; + }//end getObjectInformatieObjectMapping() + + /** + * Get default mapping for GebruiksRechten (usageRights). + * + * @param string $registerId The register ID + * @param array $settings The Procest settings + * + * @return array + */ + private function getGebruiksrechtenMapping( + string $registerId, + array $settings + ): array { + return [ + 'zgwResource' => 'gebruiksrechten', + 'zgwApiVersion' => '1', + 'sourceRegister' => $registerId, + 'sourceSchema' => ($settings['usage_rights_schema'] ?? ''), + 'enabled' => true, + 'propertyMapping' => [ + 'url' => '{{ _baseUrl }}/{{ _uuid }}', + 'uuid' => '{{ _uuid }}', + 'informatieobject' => '{{ document }}', + 'startdatum' => '{{ startDate }}', + 'einddatum' => '{{ endDate }}', + 'omschrijvingVoorwaarden' => '{{ conditionsDescription }}', + ], + 'reverseMapping' => [ + 'document' => '{{ informatieobject }}', + 'startDate' => '{{ startdatum }}', + 'endDate' => '{{ einddatum }}', + 'conditionsDescription' => '{{ omschrijvingVoorwaarden }}', + ], + 'valueMapping' => [], + 'queryParameterMapping' => [ + 'informatieobject' => [ + 'field' => 'document', + ], + ], + ]; + }//end getGebruiksrechtenMapping() + + /** + * Get default mapping for Kanaal (notification channel). + * + * @param string $registerId The register ID + * @param array $settings The Procest settings + * + * @return array + */ + private function getKanaalMapping(string $registerId, array $settings): array + { + return [ + 'zgwResource' => 'kanaal', + 'zgwApiVersion' => '1', + 'sourceRegister' => $registerId, + 'sourceSchema' => ($settings['kanaal_schema'] ?? ''), + 'enabled' => true, + 'propertyMapping' => [ + 'url' => '{{ _baseUrl }}/{{ _uuid }}', + 'uuid' => '{{ _uuid }}', + 'naam' => '{{ naam }}', + 'documentatieLink' => '{{ documentatieLink }}', + 'filters' => '{{ filters }}', + ], + 'cast' => [ + 'filters' => 'jsonToArray', + ], + 'reverseMapping' => [ + 'naam' => '{{ naam }}', + 'documentatieLink' => '{{ documentatieLink }}', + 'filters' => '{{ filters|json_encode|raw }}', + ], + 'valueMapping' => [], + 'queryParameterMapping' => [ + 'naam' => [ + 'field' => 'naam', + ], + ], + ]; + }//end getKanaalMapping() + + /** + * Get default mapping for Abonnement (notification subscription). + * + * @param string $registerId The register ID + * @param array $settings The Procest settings + * + * @return array + */ + private function getAbonnementMapping(string $registerId, array $settings): array + { + return [ + 'zgwResource' => 'abonnement', + 'zgwApiVersion' => '1', + 'sourceRegister' => $registerId, + 'sourceSchema' => ($settings['abonnement_schema'] ?? ''), + 'enabled' => true, + 'propertyMapping' => [ + 'url' => '{{ _baseUrl }}/{{ _uuid }}', + 'uuid' => '{{ _uuid }}', + 'callbackUrl' => '{{ callbackUrl }}', + 'auth' => '{{ auth }}', + 'kanalen' => '{{ kanalen }}', + ], + 'cast' => [ + 'kanalen' => 'jsonToArray', + ], + 'reverseMapping' => [ + 'callbackUrl' => '{{ callbackUrl }}', + 'auth' => '{{ auth }}', + 'kanalen' => '{{ kanalen|json_encode|raw }}', + ], + 'valueMapping' => [], + 'queryParameterMapping' => [], + ]; + }//end getAbonnementMapping() + + /** + * Get default mapping for Catalogus. + * + * @param string $registerId The register ID + * @param array $settings The Procest settings + * + * @return array + */ + private function getCatalogusMapping(string $registerId, array $settings): array + { + return [ + 'zgwResource' => 'catalogus', + 'zgwApiVersion' => '1', + 'sourceRegister' => $registerId, + 'sourceSchema' => ($settings['catalogus_schema'] ?? ''), + 'enabled' => true, + 'propertyMapping' => [ + 'url' => '{{ _baseUrl }}/{{ _uuid }}', + 'uuid' => '{{ _uuid }}', + 'domein' => '{{ domein }}', + 'rsin' => '{{ rsin }}', + 'contactpersoonBeheerNaam' => '{{ contactpersoonBeheerNaam }}', + 'contactpersoonBeheerTelefoonnummer' => '{{ contactpersoonBeheerTelefoonnummer }}', + 'contactpersoonBeheerEmailadres' => '{{ contactpersoonBeheerEmailadres }}', + 'zaaktypen' => '[]', + 'besluittypen' => '[]', + 'informatieobjecttypen' => '[]', + ], + 'cast' => [ + 'zaaktypen' => 'jsonToArray', + 'besluittypen' => 'jsonToArray', + 'informatieobjecttypen' => 'jsonToArray', + ], + 'reverseMapping' => [ + 'domein' => '{{ domein }}', + 'rsin' => '{{ rsin }}', + 'contactpersoonBeheerNaam' => '{{ contactpersoonBeheerNaam }}', + 'contactpersoonBeheerTelefoonnummer' => '{{ contactpersoonBeheerTelefoonnummer }}', + 'contactpersoonBeheerEmailadres' => '{{ contactpersoonBeheerEmailadres }}', + ], + 'valueMapping' => [], + 'queryParameterMapping' => [ + 'domein' => [ + 'field' => 'domein', + ], + 'rsin' => [ + 'field' => 'rsin', + ], + ], + ]; + }//end getCatalogusMapping() + + /** + * Get default mapping for ZaaktypeInformatieobjecttype. + * + * @param string $registerId The register ID + * @param array $settings The Procest settings + * + * @return array + */ + private function getZaaktypeInformatieobjecttypeMapping(string $registerId, array $settings): array + { + return [ + 'zgwResource' => 'zaaktypeinformatieobjecttype', + 'zgwApiVersion' => '1', + 'sourceRegister' => $registerId, + 'sourceSchema' => ($settings['zaaktype_informatieobjecttype_schema'] ?? ''), + 'enabled' => true, + 'propertyMapping' => [ + 'url' => '{{ _baseUrl }}/{{ _uuid }}', + 'uuid' => '{{ _uuid }}', + 'zaaktype' => $this->tplUrl( + from: 'catalogi/zaaktype-informatieobjecttypen', + to: 'catalogi/zaaktypen', + varName: 'zaaktype' + ), + 'informatieobjecttype' => $this->tplUrl( + from: 'catalogi/zaaktype-informatieobjecttypen', + to: 'catalogi/informatieobjecttypen', + varName: 'informatieobjecttype' + ), + 'volgnummer' => '{{ volgnummer }}', + 'richting' => '{{ richting }}', + 'statustype' => '{{ statustype }}', + ], + 'reverseMapping' => [ + 'zaaktype' => '{{ zaaktype | zgw_extract_uuid }}', + 'informatieobjecttype' => '{{ informatieobjecttype | zgw_extract_uuid }}', + 'volgnummer' => '{{ volgnummer }}', + 'richting' => '{{ richting }}', + 'statustype' => '{{ statustype }}', + ], + 'reverseCast' => [ + 'volgnummer' => 'int', + ], + 'cast' => [ + 'volgnummer' => 'int', + ], + 'valueMapping' => [], + 'queryParameterMapping' => [ + 'zaaktype' => [ + 'field' => 'zaaktype', + 'extractUuid' => true, + ], + 'informatieobjecttype' => [ + 'field' => 'informatieobjecttype', + 'extractUuid' => true, + ], + ], + ]; + }//end getZaaktypeInformatieobjecttypeMapping() + + /** + * Get the mapping metadata for Applicatie (Consumer entity). + * + * This mapping does not use Twig templates because Applicatie maps to + * OpenRegister's Consumer entity rather than to register objects. + * The field correspondence is handled in ZgwController directly. + * + * @return array + */ + private function getApplicatieMapping(): array + { + return [ + 'zgwResource' => 'applicatie', + 'zgwApiVersion' => '1', + 'enabled' => true, + 'fieldMapping' => [ + 'clientIds[0]' => 'name', + 'label' => 'description', + 'uuid' => 'uuid', + 'heeftAlleAutorisaties' => 'authorizationConfiguration.superuser', + 'autorisaties' => 'authorizationConfiguration.scopes', + ], + ]; + }//end getApplicatieMapping() + + /** + * Create default test applicaties via OpenRegister's ConsumerMapper. + * + * Creates a superuser applicatie for dev/testing and a limited-scope + * applicatie for testing scope enforcement. + * + * @param IOutput $output The output interface for progress reporting + * + * @return void + * + * @psalm-suppress UnusedParam + */ + private function createDefaultApplicaties(IOutput $output): void + { + try { + $container = \OC::$server; + $consumerMapper = $container->get('OCA\OpenRegister\Db\ConsumerMapper'); + } catch (\Throwable $e) { + $output->info('OpenRegister ConsumerMapper not available. Skipping default applicaties.'); + return; + } + + $defaults = $this->getDefaultApplicaties(); + $created = 0; + + $updated = 0; + + foreach ($defaults as $applicatie) { + $existing = $consumerMapper->findAll(filters: ['name' => $applicatie['name']]); + if (count(value: $existing) > 0) { + // Update existing consumer's authorization configuration + // to ensure new scopes are applied. + $consumer = $existing[0]; + $newConfig = $applicatie['authorizationConfiguration'] ?? []; + $consumer->setAuthorizationConfiguration($newConfig); + $consumer->setUpdated(new DateTime()); + $consumerMapper->update($consumer); + $updated++; + continue; + } + + $applicatie['created'] = new DateTime(); + $applicatie['updated'] = new DateTime(); + $consumerMapper->createFromArray(object: $applicatie); + $created++; + } + + $output->info("Created {$created}, updated {$updated} default test applicaties."); + }//end createDefaultApplicaties() + + /** + * Get default test applicatie configurations. + * + * @return array[] The default applicatie data + */ + private function getDefaultApplicaties(): array + { + return [ + [ + 'name' => 'procest-admin', + 'description' => 'Procest Admin (development)', + 'authorizationType' => 'jwt-zgw', + 'userId' => 'admin', + 'authorizationConfiguration' => [ + 'publicKey' => 'procest-admin-secret-key-for-testing', + 'algorithm' => 'HS256', + 'superuser' => true, + 'scopes' => [], + ], + ], + [ + 'name' => 'procest-limited', + 'description' => 'Procest Limited (testing)', + 'authorizationType' => 'jwt-zgw', + 'userId' => 'admin', + 'authorizationConfiguration' => [ + 'publicKey' => 'procest-limited-secret-key-for-test', + 'algorithm' => 'HS256', + 'superuser' => false, + 'scopes' => [ + [ + 'component' => 'ztc', + 'scopes' => [ + 'zaaktypen.lezen', + ], + ], + [ + 'component' => 'zrc', + 'scopes' => [ + 'zaken.lezen', + ], + 'maxVertrouwelijkheidaanduiding' => 'openbaar', + ], + ], + ], + ], + ]; + }//end getDefaultApplicaties() + + /** + * Create default notification channels (kanalen). + * + * @param IOutput $output The output interface for progress reporting + * + * @return void + */ + private function createDefaultKanalen(IOutput $output): void + { + $kanaalMapping = $this->zgwMappingService->getMapping( + resourceKey: 'kanaal' + ); + if ($kanaalMapping === null) { + $output->info('Kanaal mapping not configured. Skipping default channels.'); + return; + } + + try { + $container = \OC::$server; + $objectService = $container->get( + 'OCA\OpenRegister\Service\ObjectService' + ); + } catch (\Throwable $e) { + $output->info('OpenRegister ObjectService not available. Skipping default channels.'); + return; + } + + $defaults = $this->getDefaultKanalen(); + $created = 0; + + foreach ($defaults as $kanaal) { + // Check if kanaal already exists. + $query = $objectService->buildSearchQuery( + requestParams: ['naam' => $kanaal['naam']], + register: $kanaalMapping['sourceRegister'], + schema: $kanaalMapping['sourceSchema'] + ); + $existing = $objectService->searchObjectsPaginated(query: $query); + if (($existing['total'] ?? 0) > 0) { + continue; + } + + $objectService->saveObject( + register: $kanaalMapping['sourceRegister'], + schema: $kanaalMapping['sourceSchema'], + object: $kanaal + ); + $created++; + } + + $output->info("Created {$created} default notification channels."); + }//end createDefaultKanalen() + + /** + * Get default notification channel configurations. + * + * @return array[] The default kanaal data + */ + private function getDefaultKanalen(): array + { + return [ + [ + 'naam' => 'zaken', + 'filters' => [ + 'bronorganisatie', + 'zaaktype', + 'vertrouwelijkheidaanduiding', + ], + ], + [ + 'naam' => 'documenten', + 'filters' => [ + 'bronorganisatie', + 'informatieobjecttype', + 'vertrouwelijkheidaanduiding', + ], + ], + [ + 'naam' => 'besluiten', + 'filters' => [ + 'verantwoordelijkeOrganisatie', + 'besluittype', + ], + ], + [ + 'naam' => 'catalogi', + 'filters' => [], + ], + [ + 'naam' => 'autorisaties', + 'filters' => [], + ], + ]; + }//end getDefaultKanalen() + + /** + * Get default mapping for ZaakEigenschap (case property). + * + * @param string $registerId The register ID + * @param array $settings The Procest settings + * + * @return array + */ + private function getZaakeigenschapMapping(string $registerId, array $settings): array + { + return [ + 'zgwResource' => 'zaakeigenschap', + 'zgwApiVersion' => '1', + 'sourceRegister' => $registerId, + 'sourceSchema' => ($settings['case_property_schema'] ?? ''), + 'enabled' => true, + 'propertyMapping' => [ + 'url' => '{{ _baseUrl }}/{{ _uuid }}', + 'uuid' => '{{ _uuid }}', + 'zaak' => $this->tplUrl( + from: 'zaken/zaakeigenschappen', + to: 'zaken/zaken', + varName: 'case' + ), + 'eigenschap' => $this->tplUrl( + from: 'zaken/zaakeigenschappen', + to: 'catalogi/eigenschappen', + varName: 'propertyDefinition' + ), + 'waarde' => '{{ value }}', + ], + 'reverseMapping' => [ + 'case' => '{{ zaak | zgw_extract_uuid }}', + 'propertyDefinition' => '{{ eigenschap | zgw_extract_uuid }}', + 'value' => '{{ waarde }}', + ], + 'valueMapping' => [], + 'queryParameterMapping' => [ + 'zaak' => [ + 'field' => 'case', + 'extractUuid' => true, + ], + ], + ]; + }//end getZaakeigenschapMapping() + + /** + * Get default mapping for ZaakInformatieObject (case document link). + * + * @param string $registerId The register ID + * @param array $settings The Procest settings + * + * @return array + */ + private function getZaakinformatieobjectMapping(string $registerId, array $settings): array + { + return [ + 'zgwResource' => 'zaakinformatieobject', + 'zgwApiVersion' => '1', + 'sourceRegister' => $registerId, + 'sourceSchema' => ($settings['case_document_schema'] ?? ''), + 'enabled' => true, + 'propertyMapping' => [ + 'url' => '{{ _baseUrl }}/{{ _uuid }}', + 'uuid' => '{{ _uuid }}', + 'zaak' => $this->tplUrl( + from: 'zaken/zaakinformatieobjecten', + to: 'zaken/zaken', + varName: 'case' + ), + 'informatieobject' => '{{ document }}', + 'titel' => '{{ title }}', + 'beschrijving' => '{{ description }}', + 'registratiedatum' => '{{ registrationDate }}', + ], + 'reverseMapping' => [ + 'case' => '{{ zaak | zgw_extract_uuid }}', + 'document' => '{{ informatieobject }}', + 'title' => '{{ titel }}', + 'description' => '{{ beschrijving }}', + 'registrationDate' => '{{ registratiedatum }}', + ], + 'valueMapping' => [], + 'queryParameterMapping' => [ + 'zaak' => [ + 'field' => 'case', + 'extractUuid' => true, + ], + 'informatieobject' => [ + 'field' => 'document', + ], + ], + ]; + }//end getZaakinformatieobjectMapping() + + /** + * Get default mapping for ZaakObject (case object). + * + * @param string $registerId The register ID + * @param array $settings The Procest settings + * + * @return array + */ + private function getZaakobjectMapping(string $registerId, array $settings): array + { + return [ + 'zgwResource' => 'zaakobject', + 'zgwApiVersion' => '1', + 'sourceRegister' => $registerId, + 'sourceSchema' => ($settings['case_object_schema'] ?? ''), + 'enabled' => true, + 'propertyMapping' => [ + 'url' => '{{ _baseUrl }}/{{ _uuid }}', + 'uuid' => '{{ _uuid }}', + 'zaak' => $this->tplUrl( + from: 'zaken/zaakobjecten', + to: 'zaken/zaken', + varName: 'case' + ), + 'object' => '{{ objectUrl }}', + 'objectType' => '{{ objectType }}', + 'objectIdentificatie' => '{{ objectIdentification }}', + 'relatieomschrijving' => '{{ description }}', + ], + 'cast' => [ + 'objectIdentificatie' => 'jsonToArray', + ], + 'reverseMapping' => [ + 'case' => '{{ zaak | zgw_extract_uuid }}', + 'objectUrl' => '{{ object }}', + 'objectType' => '{{ objectType }}', + 'objectIdentification' => '{{ objectIdentificatie | json_encode | raw }}', + 'description' => '{{ relatieomschrijving }}', + ], + 'valueMapping' => [], + 'queryParameterMapping' => [ + 'zaak' => [ + 'field' => 'case', + 'extractUuid' => true, + ], + ], + ]; + }//end getZaakobjectMapping() + + /** + * Get default mapping for KlantContact (customer contact). + * + * @param string $registerId The register ID + * @param array $settings The Procest settings + * + * @return array + */ + private function getKlantcontactMapping(string $registerId, array $settings): array + { + return [ + 'zgwResource' => 'klantcontact', + 'zgwApiVersion' => '1', + 'sourceRegister' => $registerId, + 'sourceSchema' => ($settings['customer_contact_schema'] ?? ''), + 'enabled' => true, + 'propertyMapping' => [ + 'url' => '{{ _baseUrl }}/{{ _uuid }}', + 'uuid' => '{{ _uuid }}', + 'zaak' => $this->tplUrl( + from: 'zaken/klantcontacten', + to: 'zaken/zaken', + varName: 'case' + ), + 'datumtijd' => '{{ contactDateTime }}', + 'kanaal' => '{{ channel }}', + 'onderwerp' => '{{ subject }}', + 'initiator' => '{{ initiator }}', + ], + 'reverseMapping' => [ + 'case' => '{{ zaak | zgw_extract_uuid }}', + 'contactDateTime' => '{{ datumtijd }}', + 'channel' => '{{ kanaal }}', + 'subject' => '{{ onderwerp }}', + 'initiator' => '{{ initiator }}', + ], + 'valueMapping' => [], + 'queryParameterMapping' => [ + 'zaak' => [ + 'field' => 'case', + 'extractUuid' => true, + ], + ], + ]; + }//end getKlantcontactMapping() + + /** + * Get default mapping for BesluitInformatieObject (decision document link). + * + * @param string $registerId The register ID + * @param array $settings The Procest settings + * + * @return array + */ + private function getBesluitinformatieobjectMapping( + string $registerId, + array $settings + ): array { + return [ + 'zgwResource' => 'besluitinformatieobject', + 'zgwApiVersion' => '1', + 'sourceRegister' => $registerId, + 'sourceSchema' => ($settings['decision_document_schema'] ?? ''), + 'enabled' => true, + 'propertyMapping' => [ + 'url' => '{{ _baseUrl }}/{{ _uuid }}', + 'uuid' => '{{ _uuid }}', + 'besluit' => $this->tplUrl( + from: 'besluiten/besluitinformatieobjecten', + to: 'besluiten/besluiten', + varName: 'decision' + ), + 'informatieobject' => '{{ document }}', + ], + 'reverseMapping' => [ + 'decision' => '{{ besluit | zgw_extract_uuid }}', + 'document' => '{{ informatieobject }}', + ], + 'valueMapping' => [], + 'queryParameterMapping' => [ + 'besluit' => [ + 'field' => 'decision', + 'extractUuid' => true, + ], + 'informatieobject' => [ + 'field' => 'document', + ], + ], + ]; + }//end getBesluitinformatieobjectMapping() + + /** + * Get default mapping for Verzending (dispatch). + * + * @param string $registerId The register ID + * @param array $settings The Procest settings + * + * @return array + */ + private function getVerzendingMapping(string $registerId, array $settings): array + { + return [ + 'zgwResource' => 'verzending', + 'zgwApiVersion' => '1', + 'sourceRegister' => $registerId, + 'sourceSchema' => ($settings['dispatch_schema'] ?? ''), + 'enabled' => true, + 'propertyMapping' => [ + 'url' => '{{ _baseUrl }}/{{ _uuid }}', + 'uuid' => '{{ _uuid }}', + 'informatieobject' => '{{ document }}', + 'betrokkene' => '{{ involvedParty }}', + 'aardRelatie' => '{{ relationshipType }}', + 'toelichting' => '{{ description }}', + 'ontvangstdatum' => '{{ receiveDate }}', + 'verzenddatum' => '{{ sendDate }}', + 'contactPersoon' => '{{ contactPerson }}', + 'contactpersoonnaam' => '{{ contactPersonName }}', + ], + 'reverseMapping' => [ + 'document' => '{{ informatieobject }}', + 'involvedParty' => '{{ betrokkene }}', + 'relationshipType' => '{{ aardRelatie }}', + 'description' => '{{ toelichting }}', + 'receiveDate' => '{{ ontvangstdatum }}', + 'sendDate' => '{{ verzenddatum }}', + 'contactPerson' => '{{ contactPersoon }}', + 'contactPersonName' => '{{ contactpersoonnaam }}', + ], + 'valueMapping' => [], + 'queryParameterMapping' => [ + 'informatieobject' => [ + 'field' => 'document', + ], + ], + ]; + }//end getVerzendingMapping() +}//end class diff --git a/lib/Repair/SeedBezwaarBeroepData.php b/lib/Repair/SeedBezwaarBeroepData.php new file mode 100644 index 0000000..c0a2b81 --- /dev/null +++ b/lib/Repair/SeedBezwaarBeroepData.php @@ -0,0 +1,107 @@ + + * @copyright 2024 Conduction B.V. + * @license EUPL-1.2 https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12 + * + * @version GIT: + * + * @link https://procest.nl + */ + +declare(strict_types=1); + +namespace OCA\Procest\Repair; + +use OCA\Procest\Service\SeedDataService; +use OCA\Procest\Service\SettingsService; +use OCP\Migration\IOutput; +use OCP\Migration\IRepairStep; +use Psr\Log\LoggerInterface; + +/** + * Repair step that seeds bezwaar and beroep case types into OpenRegister. + */ +class SeedBezwaarBeroepData implements IRepairStep +{ + /** + * Constructor for SeedBezwaarBeroepData. + * + * @param SeedDataService $seedDataService The seed data service + * @param SettingsService $settingsService The settings service + * @param LoggerInterface $logger The logger interface + * + * @return void + */ + public function __construct( + private SeedDataService $seedDataService, + private SettingsService $settingsService, + private LoggerInterface $logger, + ) { + }//end __construct() + + /** + * Get the name of this repair step. + * + * @return string + */ + public function getName(): string + { + return 'Seed Bezwaar and Beroep case types for Procest'; + }//end getName() + + /** + * Run the repair step to seed bezwaar/beroep data. + * + * @param IOutput $output The output interface for progress reporting + * + * @return void + */ + public function run(IOutput $output): void + { + $output->info('Seeding bezwaar and beroep case types...'); + + if ($this->settingsService->isOpenRegisterAvailable() === false) { + $output->warning( + 'OpenRegister is not available. Skipping bezwaar/beroep seed.' + ); + return; + } + + try { + $result = $this->seedDataService->seedBezwaarBeroepData(); + + if ($result['success'] === true) { + $output->info( + 'Bezwaar/beroep seed complete: ' + .$result['caseTypes'].' case types, ' + .$result['statusTypes'].' status types, ' + .$result['roleTypes'].' role types, ' + .$result['workflows'].' workflows created (' + .$result['skipped'].' skipped)' + ); + return; + } + + $message = ($result['message'] ?? 'unknown error'); + $output->warning('Bezwaar/beroep seed issue: '.$message); + } catch (\Throwable $e) { + $output->warning( + 'Could not seed bezwaar/beroep data: '.$e->getMessage() + ); + $this->logger->error( + 'Procest bezwaar/beroep seed failed', + ['exception' => $e->getMessage()] + ); + }//end try + }//end run() +}//end class diff --git a/lib/Service/AiService.php b/lib/Service/AiService.php new file mode 100644 index 0000000..738fca5 --- /dev/null +++ b/lib/Service/AiService.php @@ -0,0 +1,825 @@ + + * @copyright 2024 Conduction B.V. + * @license EUPL-1.2 https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12 + * + * @version GIT: + * + * @link https://procest.nl + */ + +declare(strict_types=1); + +namespace OCA\Procest\Service; + +use OCA\Procest\AppInfo\Application; +use OCP\IAppConfig; +use Psr\Container\ContainerInterface; +use Psr\Log\LoggerInterface; + +/** + * Service for AI-assisted case processing. + * + * All AI interactions follow the human-in-the-loop principle: + * AI suggests, humans confirm. Every interaction is recorded + * in the audit trail for Algoritmeregister compliance. + * + * @SuppressWarnings(PHPMD.CouplingBetweenObjects) + * @SuppressWarnings(PHPMD.ExcessiveClassComplexity) + */ +class AiService +{ + /** + * Regex patterns for PII detection and stripping. + * + * @var array + */ + private const PII_PATTERNS = [ + 'bsn' => '/\b\d{9}\b/', + 'iban' => '/\b[A-Z]{2}\d{2}[A-Z0-9]{4}\d{7}([A-Z0-9]?){0,16}\b/', + 'phone' => '/\b(0\d{9}|\+31\d{9})\b/', + 'postcode' => '/\b\d{4}\s?[A-Z]{2}\b/', + ]; + + /** + * Constructor for AiService. + * + * @param IAppConfig $appConfig The app configuration service + * @param ContainerInterface $container The DI container + * @param LoggerInterface $logger The logger interface + * + * @return void + */ + public function __construct( + private IAppConfig $appConfig, + private ContainerInterface $container, + private LoggerInterface $logger, + ) { + }//end __construct() + + /** + * Check if AI features are globally enabled. + * + * @return bool + */ + public function isEnabled(): bool + { + return $this->appConfig->getValueString( + Application::APP_ID, + 'ai_enabled', + '' + ) === '1'; + }//end isEnabled() + + /** + * Check if a specific AI feature is enabled. + * + * @param string $feature The feature name (classification, extraction, qa, summary, routing, decision_support) + * + * @return bool + */ + public function isFeatureEnabled(string $feature): bool + { + if ($this->isEnabled() === false) { + return false; + } + + return $this->appConfig->getValueString( + Application::APP_ID, + 'ai_feature_'.$feature, + '' + ) === '1'; + }//end isFeatureEnabled() + + /** + * Classify a document using AI. + * + * Sends document content to the configured AI model for classification. + * Returns a suggested document type with confidence score. + * + * @param string $caseId The case ID + * @param string $documentId The document ID to classify + * @param string $userId The current user ID + * + * @return array Classification result with suggestion and confidence + */ + public function classifyDocument(string $caseId, string $documentId, string $userId): array + { + if ($this->isFeatureEnabled('classification') === false) { + return [ + 'success' => false, + 'message' => 'AI document classification is not enabled', + ]; + } + + $startTime = microtime(true); + + try { + $prompt = $this->buildClassificationPrompt($caseId, $documentId); + $prompt = $this->stripPiiIfEnabled($prompt); + + $result = $this->callAiModel($prompt); + + $responseTimeMs = (int) ((microtime(true) - $startTime) * 1000); + + $this->recordAuditEntry([ + 'type' => 'classification', + 'action' => 'suggested', + 'caseId' => $caseId, + 'documentId' => $documentId, + 'model' => $this->getModelIdentifier(), + 'prompt' => $prompt, + 'suggestion' => $result, + 'confidence' => ($result['confidence'] ?? 0.0), + 'userId' => $userId, + 'timestamp' => date('c'), + 'responseTimeMs' => $responseTimeMs, + ]); + + return [ + 'success' => true, + 'suggestion' => $result, + ]; + } catch (\Exception $e) { + $this->logger->error( + 'AI classification failed', + ['caseId' => $caseId, 'documentId' => $documentId, 'error' => $e->getMessage()] + ); + return [ + 'success' => false, + 'message' => 'AI classification failed: '.$e->getMessage(), + ]; + }//end try + }//end classifyDocument() + + /** + * Extract structured data from case documents using AI. + * + * @param string $caseId The case ID + * @param string|null $documentId Optional specific document ID + * @param string $userId The current user ID + * + * @return array Extraction result with field suggestions and confidence + */ + public function extractData(string $caseId, ?string $documentId, string $userId): array + { + if ($this->isFeatureEnabled('extraction') === false) { + return [ + 'success' => false, + 'message' => 'AI data extraction is not enabled', + ]; + } + + $startTime = microtime(true); + + try { + $prompt = $this->buildExtractionPrompt($caseId, $documentId); + $prompt = $this->stripPiiIfEnabled($prompt); + + $result = $this->callAiModel($prompt); + + $responseTimeMs = (int) ((microtime(true) - $startTime) * 1000); + + $this->recordAuditEntry([ + 'type' => 'extraction', + 'action' => 'suggested', + 'caseId' => $caseId, + 'documentId' => ($documentId ?? ''), + 'model' => $this->getModelIdentifier(), + 'prompt' => $prompt, + 'suggestion' => $result, + 'confidence' => ($result['averageConfidence'] ?? 0.0), + 'userId' => $userId, + 'timestamp' => date('c'), + 'responseTimeMs' => $responseTimeMs, + ]); + + return [ + 'success' => true, + 'fields' => ($result['fields'] ?? []), + ]; + } catch (\Exception $e) { + $this->logger->error( + 'AI extraction failed', + ['caseId' => $caseId, 'error' => $e->getMessage()] + ); + return [ + 'success' => false, + 'message' => 'AI data extraction failed: '.$e->getMessage(), + ]; + }//end try + }//end extractData() + + /** + * Ask a knowledge base question in case context. + * + * @param string $caseId The case ID for context + * @param string $question The user's question + * @param string $userId The current user ID + * + * @return array Answer with source citations + */ + public function askQuestion(string $caseId, string $question, string $userId): array + { + if ($this->isFeatureEnabled('qa') === false) { + return [ + 'success' => false, + 'message' => 'AI knowledge base Q&A is not enabled', + ]; + } + + $startTime = microtime(true); + + try { + $prompt = $this->buildQaPrompt($caseId, $question); + + $result = $this->callAiModel($prompt); + + $responseTimeMs = (int) ((microtime(true) - $startTime) * 1000); + + $this->recordAuditEntry([ + 'type' => 'qa', + 'action' => 'suggested', + 'caseId' => $caseId, + 'model' => $this->getModelIdentifier(), + 'prompt' => $question, + 'suggestion' => $result, + 'confidence' => ($result['confidence'] ?? 0.0), + 'userId' => $userId, + 'timestamp' => date('c'), + 'responseTimeMs' => $responseTimeMs, + ]); + + return [ + 'success' => true, + 'answer' => ($result['answer'] ?? ''), + 'sources' => ($result['sources'] ?? []), + ]; + } catch (\Exception $e) { + $this->logger->error( + 'AI Q&A failed', + ['caseId' => $caseId, 'error' => $e->getMessage()] + ); + return [ + 'success' => false, + 'message' => 'AI Q&A failed: '.$e->getMessage(), + ]; + }//end try + }//end askQuestion() + + /** + * Generate a summary for a case, document, or timeline. + * + * @param string $caseId The case ID + * @param string $type Summary type: case, document, or timeline + * @param string|null $documentId Optional document ID for document summaries + * @param string $userId The current user ID + * + * @return array Summary text + */ + public function summarize(string $caseId, string $type, ?string $documentId, string $userId): array + { + if ($this->isFeatureEnabled('summary') === false) { + return [ + 'success' => false, + 'message' => 'AI summarization is not enabled', + ]; + } + + $startTime = microtime(true); + + try { + $prompt = $this->buildSummaryPrompt($caseId, $type, $documentId); + $prompt = $this->stripPiiIfEnabled($prompt); + + $result = $this->callAiModel($prompt); + + $responseTimeMs = (int) ((microtime(true) - $startTime) * 1000); + + $this->recordAuditEntry([ + 'type' => 'summary', + 'action' => 'suggested', + 'caseId' => $caseId, + 'documentId' => ($documentId ?? ''), + 'model' => $this->getModelIdentifier(), + 'prompt' => $prompt, + 'suggestion' => ['summary' => ($result['summary'] ?? '')], + 'userId' => $userId, + 'timestamp' => date('c'), + 'responseTimeMs' => $responseTimeMs, + ]); + + return [ + 'success' => true, + 'summary' => ($result['summary'] ?? ''), + ]; + } catch (\Exception $e) { + $this->logger->error( + 'AI summarization failed', + ['caseId' => $caseId, 'error' => $e->getMessage()] + ); + return [ + 'success' => false, + 'message' => 'AI summarization failed: '.$e->getMessage(), + ]; + }//end try + }//end summarize() + + /** + * Suggest case routing based on expertise and workload. + * + * @param string $caseId The case ID + * @param string $userId The current user ID + * + * @return array Routing suggestion with recommended case worker + */ + public function suggestRouting(string $caseId, string $userId): array + { + if ($this->isFeatureEnabled('routing') === false) { + return [ + 'success' => false, + 'message' => 'AI case routing is not enabled', + ]; + } + + $startTime = microtime(true); + + try { + $prompt = $this->buildRoutingPrompt($caseId); + + $result = $this->callAiModel($prompt); + + $responseTimeMs = (int) ((microtime(true) - $startTime) * 1000); + + $this->recordAuditEntry([ + 'type' => 'routing', + 'action' => 'suggested', + 'caseId' => $caseId, + 'model' => $this->getModelIdentifier(), + 'prompt' => $prompt, + 'suggestion' => $result, + 'confidence' => ($result['confidence'] ?? 0.0), + 'userId' => $userId, + 'timestamp' => date('c'), + 'responseTimeMs' => $responseTimeMs, + ]); + + return [ + 'success' => true, + 'suggestions' => ($result['suggestions'] ?? []), + ]; + } catch (\Exception $e) { + $this->logger->error( + 'AI routing suggestion failed', + ['caseId' => $caseId, 'error' => $e->getMessage()] + ); + return [ + 'success' => false, + 'message' => 'AI routing suggestion failed: '.$e->getMessage(), + ]; + }//end try + }//end suggestRouting() + + /** + * Suggest next steps for a case based on current state. + * + * @param string $caseId The case ID + * @param string $userId The current user ID + * + * @return array Next-step suggestions + */ + public function suggestNextStep(string $caseId, string $userId): array + { + if ($this->isFeatureEnabled('decision_support') === false) { + return [ + 'success' => false, + 'message' => 'AI decision support is not enabled', + ]; + } + + $startTime = microtime(true); + + try { + $prompt = $this->buildNextStepPrompt($caseId); + + $result = $this->callAiModel($prompt); + + $responseTimeMs = (int) ((microtime(true) - $startTime) * 1000); + + $this->recordAuditEntry([ + 'type' => 'decision_support', + 'action' => 'suggested', + 'caseId' => $caseId, + 'model' => $this->getModelIdentifier(), + 'prompt' => $prompt, + 'suggestion' => $result, + 'userId' => $userId, + 'timestamp' => date('c'), + 'responseTimeMs' => $responseTimeMs, + ]); + + return [ + 'success' => true, + 'suggestions' => ($result['suggestions'] ?? []), + ]; + } catch (\Exception $e) { + $this->logger->error( + 'AI next-step suggestion failed', + ['caseId' => $caseId, 'error' => $e->getMessage()] + ); + return [ + 'success' => false, + 'message' => 'AI next-step suggestion failed: '.$e->getMessage(), + ]; + }//end try + }//end suggestNextStep() + + /** + * Record a user action on an AI suggestion (accept, reject, modify). + * + * @param string $caseId The case ID + * @param string $type AI type (classification, extraction, etc.) + * @param string $userAction User action (accepted, rejected, modified) + * @param array $suggestion The original suggestion + * @param array|null $actualValue The value actually applied + * @param string|null $reason Reason for rejection/modification + * @param string $userId The current user ID + * + * @return array + * + * @SuppressWarnings(PHPMD.ExcessiveParameterList) — audit entries need full context + */ + public function recordUserAction( + string $caseId, + string $type, + string $userAction, + array $suggestion, + ?array $actualValue, + ?string $reason, + string $userId, + ): array { + $this->recordAuditEntry([ + 'type' => $type, + 'action' => $userAction, + 'caseId' => $caseId, + 'model' => $this->getModelIdentifier(), + 'suggestion' => $suggestion, + 'userAction' => $userAction, + 'actualValue' => ($actualValue ?? []), + 'reason' => ($reason ?? ''), + 'userId' => $userId, + 'timestamp' => date('c'), + ]); + + return ['success' => true]; + }//end recordUserAction() + + /** + * Test AI model connectivity. + * + * @return array Health check result + */ + public function testHealth(): array + { + $startTime = microtime(true); + + try { + $result = $this->callAiModel('Respond with "ok" to confirm connectivity.'); + + $responseTimeMs = (int) ((microtime(true) - $startTime) * 1000); + + return [ + 'success' => true, + 'status' => 'connected', + 'model' => $this->getModelIdentifier(), + 'responseTimeMs' => $responseTimeMs, + ]; + } catch (\Exception $e) { + return [ + 'success' => false, + 'status' => 'error', + 'model' => $this->getModelIdentifier(), + 'message' => $e->getMessage(), + 'responseTimeMs' => (int) ((microtime(true) - $startTime) * 1000), + ]; + }//end try + }//end testHealth() + + /** + * Get AI settings for the frontend. + * + * @return array AI settings (without sensitive data like API keys) + */ + public function getAiSettings(): array + { + return [ + 'ai_enabled' => $this->appConfig->getValueString(Application::APP_ID, 'ai_enabled', ''), + 'ai_model_type' => $this->appConfig->getValueString(Application::APP_ID, 'ai_model_type', 'local'), + 'ai_model_url' => $this->appConfig->getValueString(Application::APP_ID, 'ai_model_url', ''), + 'ai_model_name' => $this->appConfig->getValueString(Application::APP_ID, 'ai_model_name', ''), + 'ai_api_key_set' => $this->appConfig->getValueString(Application::APP_ID, 'ai_api_key', '') !== '', + 'ai_feature_classification' => $this->appConfig->getValueString(Application::APP_ID, 'ai_feature_classification', ''), + 'ai_feature_extraction' => $this->appConfig->getValueString(Application::APP_ID, 'ai_feature_extraction', ''), + 'ai_feature_qa' => $this->appConfig->getValueString(Application::APP_ID, 'ai_feature_qa', ''), + 'ai_feature_summary' => $this->appConfig->getValueString(Application::APP_ID, 'ai_feature_summary', ''), + 'ai_feature_routing' => $this->appConfig->getValueString(Application::APP_ID, 'ai_feature_routing', ''), + 'ai_feature_decision_support' => $this->appConfig->getValueString(Application::APP_ID, 'ai_feature_decision_support', ''), + 'ai_dpia_acknowledged' => $this->appConfig->getValueString(Application::APP_ID, 'ai_dpia_acknowledged', ''), + 'ai_pii_stripping' => $this->appConfig->getValueString(Application::APP_ID, 'ai_pii_stripping', '1'), + ]; + }//end getAiSettings() + + /** + * Get the configured AI model identifier. + * + * @return string + */ + private function getModelIdentifier(): string + { + $type = $this->appConfig->getValueString(Application::APP_ID, 'ai_model_type', 'local'); + $name = $this->appConfig->getValueString(Application::APP_ID, 'ai_model_name', 'unknown'); + + return $type.'/'.$name; + }//end getModelIdentifier() + + /** + * Strip PII from prompt text if PII stripping is enabled. + * + * @param string $prompt The prompt text + * + * @return string The prompt with PII replaced + */ + private function stripPiiIfEnabled(string $prompt): string + { + $piiEnabled = $this->appConfig->getValueString( + Application::APP_ID, + 'ai_pii_stripping', + '1' + ); + + if ($piiEnabled !== '1') { + return $prompt; + } + + foreach (self::PII_PATTERNS as $type => $pattern) { + $prompt = preg_replace($pattern, '['.strtoupper($type).'_REMOVED]', $prompt); + } + + return $prompt; + }//end stripPiiIfEnabled() + + /** + * Call the AI model with a prompt. + * + * Routes through n8n MCP workflow or directly to the model + * depending on configuration. + * + * @param string $prompt The prompt to send + * + * @return array The AI model response + * + * @throws \RuntimeException If the AI model call fails + */ + private function callAiModel(string $prompt): array + { + $modelUrl = $this->appConfig->getValueString( + Application::APP_ID, + 'ai_model_url', + '' + ); + + if (empty($modelUrl) === true) { + throw new \RuntimeException('AI model URL is not configured'); + } + + $modelName = $this->appConfig->getValueString( + Application::APP_ID, + 'ai_model_name', + 'llama3.1' + ); + + $modelType = $this->appConfig->getValueString( + Application::APP_ID, + 'ai_model_type', + 'local' + ); + + // Build the request payload for Ollama-compatible API. + $payload = json_encode([ + 'model' => $modelName, + 'prompt' => $prompt, + 'stream' => false, + 'format' => 'json', + ]); + + $endpoint = rtrim($modelUrl, '/').'/api/generate'; + + $ch = curl_init($endpoint); + curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); + curl_setopt($ch, CURLOPT_POST, true); + curl_setopt($ch, CURLOPT_POSTFIELDS, $payload); + curl_setopt($ch, CURLOPT_HTTPHEADER, ['Content-Type: application/json']); + curl_setopt($ch, CURLOPT_TIMEOUT, 120); + + // Add API key for cloud models. + if ($modelType === 'cloud') { + $apiKey = $this->appConfig->getValueString( + Application::APP_ID, + 'ai_api_key', + '' + ); + if (empty($apiKey) === false) { + curl_setopt($ch, CURLOPT_HTTPHEADER, [ + 'Content-Type: application/json', + 'Authorization: Bearer '.$apiKey, + ]); + } + } + + $response = curl_exec($ch); + $httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE); + $error = curl_error($ch); + curl_close($ch); + + if ($response === false || empty($error) === false) { + throw new \RuntimeException('AI model connection failed: '.$error); + } + + if ($httpCode < 200 || $httpCode >= 300) { + throw new \RuntimeException('AI model returned HTTP '.$httpCode); + } + + $decoded = json_decode($response, true); + if (json_last_error() !== JSON_ERROR_NONE) { + throw new \RuntimeException('AI model returned invalid JSON'); + } + + // Parse the response text as JSON (we requested JSON format). + $responseText = ($decoded['response'] ?? ''); + $parsed = json_decode($responseText, true); + + if (json_last_error() !== JSON_ERROR_NONE) { + // If not JSON, return as plain text. + return ['answer' => $responseText, 'confidence' => 0.0]; + } + + return $parsed; + }//end callAiModel() + + /** + * Record an AI audit trail entry in OpenRegister. + * + * @param array $entry The audit entry data + * + * @return void + */ + private function recordAuditEntry(array $entry): void + { + try { + $objectService = $this->container->get( + 'OCA\OpenRegister\Service\ObjectService' + ); + + $registerId = $this->appConfig->getValueString( + Application::APP_ID, + 'register', + '' + ); + $schemaId = $this->appConfig->getValueString( + Application::APP_ID, + 'ai_audit_entry_schema', + '' + ); + + if (empty($registerId) === true || empty($schemaId) === true) { + $this->logger->warning('AI audit: register or schema ID not configured'); + return; + } + + $objectService->saveObject( + register: $registerId, + schema: $schemaId, + object: $entry, + ); + } catch (\Exception $e) { + $this->logger->error( + 'Failed to record AI audit entry', + ['error' => $e->getMessage()] + ); + } + }//end recordAuditEntry() + + /** + * Build a classification prompt for the AI model. + * + * @param string $caseId The case ID + * @param string $documentId The document ID + * + * @return string The classification prompt + */ + private function buildClassificationPrompt(string $caseId, string $documentId): string + { + return 'Classify the following document for case '.$caseId + .'. Document ID: '.$documentId + .'. Return JSON with fields: documentType (string), confidence (number 0-1), ' + .'metadata (object with date, sender, subject).'; + }//end buildClassificationPrompt() + + /** + * Build a data extraction prompt for the AI model. + * + * @param string $caseId The case ID + * @param string|null $documentId Optional document ID + * + * @return string The extraction prompt + */ + private function buildExtractionPrompt(string $caseId, ?string $documentId): string + { + $prompt = 'Extract structured data from documents in case '.$caseId.'.'; + if ($documentId !== null) { + $prompt .= ' Focus on document '.$documentId.'.'; + } + + $prompt .= ' Return JSON with fields: array of {name, value, confidence (0-1), source}.'; + + return $prompt; + }//end buildExtractionPrompt() + + /** + * Build a Q&A prompt with case context. + * + * @param string $caseId The case ID + * @param string $question The user's question + * + * @return string The Q&A prompt + */ + private function buildQaPrompt(string $caseId, string $question): string + { + return 'Answer the following question in the context of case '.$caseId + .'. Question: '.$question + .'. Return JSON with fields: answer (string), sources (array of {document, page, quote}), ' + .'confidence (number 0-1). ' + .'If no relevant information is found, return: ' + .'{"answer": "Geen relevante informatie gevonden in de kennisbank", "sources": [], "confidence": 0}.'; + }//end buildQaPrompt() + + /** + * Build a summarization prompt. + * + * @param string $caseId The case ID + * @param string $type Summary type + * @param string|null $documentId Optional document ID + * + * @return string The summary prompt + */ + private function buildSummaryPrompt(string $caseId, string $type, ?string $documentId): string + { + $prompt = 'Generate a '.$type.' summary for case '.$caseId.'.'; + if ($type === 'document' && $documentId !== null) { + $prompt .= ' Summarize document '.$documentId.'.'; + } + + $prompt .= ' Return JSON with field: summary (string, 3-5 sentences in Dutch).'; + + return $prompt; + }//end buildSummaryPrompt() + + /** + * Build a routing suggestion prompt. + * + * @param string $caseId The case ID + * + * @return string The routing prompt + */ + private function buildRoutingPrompt(string $caseId): string + { + return 'Suggest the best case worker for case '.$caseId + .' based on expertise and current workload. ' + .'Return JSON with fields: suggestions (array of {userId, name, reason, confidence}).'; + }//end buildRoutingPrompt() + + /** + * Build a next-step suggestion prompt. + * + * @param string $caseId The case ID + * + * @return string The next-step prompt + */ + private function buildNextStepPrompt(string $caseId): string + { + return 'Analyze the current state of case '.$caseId + .' and suggest what the case worker should do next. ' + .'Return JSON with fields: suggestions (array of {action, reason, priority}).'; + }//end buildNextStepPrompt() +}//end class diff --git a/lib/Service/AppointmentBackend/AppointmentBackendInterface.php b/lib/Service/AppointmentBackend/AppointmentBackendInterface.php new file mode 100644 index 0000000..17fab57 --- /dev/null +++ b/lib/Service/AppointmentBackend/AppointmentBackendInterface.php @@ -0,0 +1,53 @@ +clientService->newClient(); + $response = $client->get( + $this->apiUrl.'/timeslots', + [ + 'query' => [ + 'product' => $productId, + 'location' => $locationId, + 'date' => $date, + ], + 'headers' => ['Authorization' => 'Bearer '.$this->apiKey], + ] + ); + + return json_decode($response->getBody(), true) ?? []; + } catch (\Exception $e) { + $this->logger->error('JCC API error: '.$e->getMessage()); + return []; + } + } + + public function bookAppointment(array $data): array + { + try { + $client = $this->clientService->newClient(); + $response = $client->post( + $this->apiUrl.'/appointments', + [ + 'json' => $data, + 'headers' => ['Authorization' => 'Bearer '.$this->apiKey], + ] + ); + + return json_decode($response->getBody(), true) ?? []; + } catch (\Exception $e) { + $this->logger->error('JCC booking error: '.$e->getMessage()); + return ['error' => $e->getMessage()]; + } + } + + public function cancelAppointment(string $externalId): bool + { + try { + $client = $this->clientService->newClient(); + $client->delete( + $this->apiUrl.'/appointments/'.$externalId, + ['headers' => ['Authorization' => 'Bearer '.$this->apiKey]] + ); + return true; + } catch (\Exception $e) { + $this->logger->error('JCC cancel error: '.$e->getMessage()); + return false; + } + } + + public function rescheduleAppointment(string $externalId, string $newDateTime): array + { + $this->cancelAppointment($externalId); + return $this->bookAppointment(['dateTime' => $newDateTime, 'externalId' => $externalId]); + } +} diff --git a/lib/Service/AppointmentBackend/LocalBackend.php b/lib/Service/AppointmentBackend/LocalBackend.php new file mode 100644 index 0000000..889dd6e --- /dev/null +++ b/lib/Service/AppointmentBackend/LocalBackend.php @@ -0,0 +1,58 @@ + $time, + 'duration' => self::SLOT_DURATION, + 'available' => true, + ]; + } + } + + return $slots; + } + + public function bookAppointment(array $data): array + { + return ['externalId' => 'local-'.bin2hex(random_bytes(8))]; + } + + public function cancelAppointment(string $externalId): bool + { + $this->logger->info('Local backend: appointment cancelled', ['externalId' => $externalId]); + return true; + } + + public function rescheduleAppointment(string $externalId, string $newDateTime): array + { + return ['externalId' => $externalId]; + } +} diff --git a/lib/Service/AppointmentBackend/QmaticBackend.php b/lib/Service/AppointmentBackend/QmaticBackend.php new file mode 100644 index 0000000..f975199 --- /dev/null +++ b/lib/Service/AppointmentBackend/QmaticBackend.php @@ -0,0 +1,87 @@ +clientService->newClient(); + $response = $client->get( + $this->apiUrl."/branches/{$locationId}/services/{$productId}/dates/{$date}/times", + ['headers' => ['auth-token' => $this->apiKey]] + ); + + $data = json_decode($response->getBody(), true) ?? []; + $slots = []; + foreach (($data['times'] ?? []) as $time) { + $slots[] = [ + 'time' => $time['time'] ?? '', + 'duration' => 30, + 'available' => true, + ]; + } + return $slots; + } catch (\Exception $e) { + $this->logger->error('Qmatic API error: '.$e->getMessage()); + return []; + } + } + + public function bookAppointment(array $data): array + { + try { + $client = $this->clientService->newClient(); + $response = $client->post( + $this->apiUrl.'/appointments', + [ + 'json' => $data, + 'headers' => ['auth-token' => $this->apiKey], + ] + ); + + return json_decode($response->getBody(), true) ?? []; + } catch (\Exception $e) { + $this->logger->error('Qmatic booking error: '.$e->getMessage()); + return ['error' => $e->getMessage()]; + } + } + + public function cancelAppointment(string $externalId): bool + { + try { + $client = $this->clientService->newClient(); + $client->delete( + $this->apiUrl.'/appointments/'.$externalId, + ['headers' => ['auth-token' => $this->apiKey]] + ); + return true; + } catch (\Exception $e) { + $this->logger->error('Qmatic cancel error: '.$e->getMessage()); + return false; + } + } + + public function rescheduleAppointment(string $externalId, string $newDateTime): array + { + $this->cancelAppointment($externalId); + return $this->bookAppointment(['dateTime' => $newDateTime]); + } +} diff --git a/lib/Service/AppointmentService.php b/lib/Service/AppointmentService.php new file mode 100644 index 0000000..0cc8793 --- /dev/null +++ b/lib/Service/AppointmentService.php @@ -0,0 +1,210 @@ +getBackend()->getTimeslots($productId, $locationId, $date); + } + + /** + * Book an appointment linked to a case. + */ + public function bookAppointment(string $caseId, array $data): array + { + $objectService = $this->getObjectService(); + if ($objectService === null) { + return ['error' => 'OpenRegister is not available']; + } + + // Book in external backend. + $backendResult = $this->getBackend()->bookAppointment($data); + + // Store in OpenRegister. + $register = $this->settingsService->getConfigValue('register'); + $schema = $this->settingsService->getConfigValue('appointment_schema'); + + $appointmentData = array_merge($data, [ + 'caseId' => $caseId, + 'status' => 'scheduled', + 'externalId' => $backendResult['externalId'] ?? null, + 'cancelToken' => bin2hex(random_bytes(16)), + 'reminderSent' => false, + ]); + + $result = $objectService->saveObject( + (int) $register, + (int) $schema, + $appointmentData, + ); + + $this->logger->info('Procest: Appointment booked', [ + 'caseId' => $caseId, + 'appointmentId' => $result->getUuid(), + ]); + + return $result->jsonSerialize(); + } + + /** + * Cancel an appointment. + */ + public function cancelAppointment(string $appointmentId): array + { + $objectService = $this->getObjectService(); + if ($objectService === null) { + return ['error' => 'OpenRegister is not available']; + } + + $register = $this->settingsService->getConfigValue('register'); + $schema = $this->settingsService->getConfigValue('appointment_schema'); + + $appointment = $objectService->getObject((int) $register, (int) $schema, $appointmentId); + $data = $appointment->jsonSerialize(); + + // Cancel in backend. + if (empty($data['externalId']) === false) { + $this->getBackend()->cancelAppointment($data['externalId']); + } + + $data['status'] = 'cancelled'; + $result = $objectService->saveObject((int) $register, (int) $schema, $data); + + return $result->jsonSerialize(); + } + + /** + * Mark an appointment as no-show. + */ + public function markNoShow(string $appointmentId): array + { + $objectService = $this->getObjectService(); + if ($objectService === null) { + return ['error' => 'OpenRegister is not available']; + } + + $register = $this->settingsService->getConfigValue('register'); + $schema = $this->settingsService->getConfigValue('appointment_schema'); + + $appointment = $objectService->getObject((int) $register, (int) $schema, $appointmentId); + $data = $appointment->jsonSerialize(); + $data['status'] = 'no_show'; + + $result = $objectService->saveObject((int) $register, (int) $schema, $data); + return $result->jsonSerialize(); + } + + /** + * Get appointments for a case. + */ + public function getAppointmentsForCase(string $caseId): array + { + $objectService = $this->getObjectService(); + if ($objectService === null) { + return []; + } + + $register = $this->settingsService->getConfigValue('register'); + $schema = $this->settingsService->getConfigValue('appointment_schema'); + + $result = $objectService->getObjects( + (int) $register, + (int) $schema, + ['caseId' => $caseId], + ); + + return $result['objects'] ?? []; + } + + /** + * Validate cancel token and return appointment. + */ + public function getAppointmentByToken(string $token): ?array + { + $objectService = $this->getObjectService(); + if ($objectService === null) { + return null; + } + + $register = $this->settingsService->getConfigValue('register'); + $schema = $this->settingsService->getConfigValue('appointment_schema'); + + $result = $objectService->getObjects( + (int) $register, + (int) $schema, + ['cancelToken' => $token], + ); + + $appointments = ($result['objects'] ?? []); + if (empty($appointments)) { + return null; + } + + $apt = reset($appointments); + return is_object($apt) ? $apt->jsonSerialize() : $apt; + } + + /** + * Get the configured appointment backend. + */ + private function getBackend(): AppointmentBackendInterface + { + $backendType = $this->settingsService->getConfigValue('appointment_backend') ?? 'local'; + $apiUrl = $this->settingsService->getConfigValue('appointment_backend_url') ?? ''; + $apiKey = $this->settingsService->getConfigValue('appointment_backend_api_key') ?? ''; + + switch ($backendType) { + case 'jcc': + return new JccBackend($this->clientService, $this->logger, $apiUrl, $apiKey); + case 'qmatic': + return new QmaticBackend($this->clientService, $this->logger, $apiUrl, $apiKey); + default: + return new LocalBackend($this->logger); + } + } + + private function getObjectService(): ?\OCA\OpenRegister\Service\ObjectService + { + if (in_array('openregister', $this->appManager->getInstalledApps()) === false) { + return null; + } + + try { + return $this->container->get('OCA\OpenRegister\Service\ObjectService'); + } catch (\Exception $e) { + $this->logger->error('Procest: Could not get ObjectService', ['exception' => $e->getMessage()]); + return null; + } + } +} diff --git a/lib/Service/BerichtenboxAdapter/BerichtenboxAdapterInterface.php b/lib/Service/BerichtenboxAdapter/BerichtenboxAdapterInterface.php new file mode 100644 index 0000000..0356288 --- /dev/null +++ b/lib/Service/BerichtenboxAdapter/BerichtenboxAdapterInterface.php @@ -0,0 +1,39 @@ +logger->info('MockBerichtenbox: Message sent', [ + 'messageId' => $messageId, + 'bsn' => substr($bsn, 0, 4).'*****', + 'subject' => $subject, + 'typeCode' => $typeCode, + 'hasAttachment' => $attachment !== null, + ]); + + return [ + 'messageId' => $messageId, + 'status' => 'sent', + 'sentAt' => (new \DateTime())->format('c'), + ]; + } + + public function getReadStatus(string $messageId): array + { + // Simulate: messages are "read" after they've existed for a while. + return [ + 'read' => true, + 'readAt' => (new \DateTime('-1 hour'))->format('c'), + ]; + } +} diff --git a/lib/Service/BerichtenboxService.php b/lib/Service/BerichtenboxService.php new file mode 100644 index 0000000..5865b8c --- /dev/null +++ b/lib/Service/BerichtenboxService.php @@ -0,0 +1,225 @@ +validateMessage($bsn, $subject, $body); + if (empty($errors) === false) { + return ['error' => implode('; ', $errors), 'errors' => $errors]; + } + + $objectService = $this->getObjectService(); + if ($objectService === null) { + return ['error' => 'OpenRegister is not available']; + } + + // Get attachment content if provided. + $attachmentContent = null; + if ($attachmentFileId !== null) { + // Attachment validation would check file size here. + $attachmentContent = ''; // Placeholder -- actual file reading via IRootFolder. + } + + // Send via adapter. + $adapter = $this->getAdapter(); + $result = $adapter->sendMessage($bsn, $subject, $body, $typeCode, $attachmentContent); + + // Store message record. + $register = $this->settingsService->getConfigValue('register'); + $schema = $this->settingsService->getConfigValue('berichtenbox_message_schema'); + + $messageData = [ + 'caseId' => $caseId, + 'bsn' => $bsn, + 'subject' => $subject, + 'body' => $body, + 'berichtTypeCode' => $typeCode, + 'attachmentFileId' => $attachmentFileId, + 'externalMessageId' => $result['messageId'] ?? null, + 'status' => $result['status'] ?? 'sent', + 'sentAt' => $result['sentAt'] ?? (new \DateTime())->format('c'), + ]; + + $saved = $objectService->saveObject( + (int) $register, + (int) $schema, + $messageData, + ); + + $this->logger->info('Procest: Berichtenbox message sent', [ + 'caseId' => $caseId, + 'messageId' => $result['messageId'] ?? '', + ]); + + return $saved->jsonSerialize(); + } + + /** + * Get sent messages for a case. + */ + public function getMessagesForCase(string $caseId): array + { + $objectService = $this->getObjectService(); + if ($objectService === null) { + return []; + } + + $register = $this->settingsService->getConfigValue('register'); + $schema = $this->settingsService->getConfigValue('berichtenbox_message_schema'); + + $result = $objectService->getObjects( + (int) $register, + (int) $schema, + ['caseId' => $caseId], + ); + + return $result['objects'] ?? []; + } + + /** + * Poll read status for a message. + */ + public function pollReadStatus(string $messageId): array + { + $objectService = $this->getObjectService(); + if ($objectService === null) { + return ['error' => 'OpenRegister not available']; + } + + $register = $this->settingsService->getConfigValue('register'); + $schema = $this->settingsService->getConfigValue('berichtenbox_message_schema'); + + $message = $objectService->getObject((int) $register, (int) $schema, $messageId); + $data = $message->jsonSerialize(); + + if (empty($data['externalMessageId']) === true) { + return $data; + } + + $adapter = $this->getAdapter(); + $status = $adapter->getReadStatus($data['externalMessageId']); + + if (($status['read'] ?? false) === true) { + $data['status'] = 'read'; + $data['readAt'] = $status['readAt']; + $data['readPolledAt'] = (new \DateTime())->format('c'); + $objectService->saveObject((int) $register, (int) $schema, $data); + } else { + $data['readPolledAt'] = (new \DateTime())->format('c'); + + // Check if unread for > 7 days. + if (empty($data['sentAt']) === false) { + $sentAt = new \DateTime($data['sentAt']); + $diff = (new \DateTime())->diff($sentAt)->days; + if ($diff >= 7 && $data['status'] !== 'unread_flagged') { + $data['status'] = 'unread_flagged'; + } + } + + $objectService->saveObject((int) $register, (int) $schema, $data); + } + + return $data; + } + + /** + * Validate a BSN using the 11-proef. + */ + public function validateBsn(string $bsn): bool + { + if (preg_match('/^\d{9}$/', $bsn) !== 1) { + return false; + } + + $sum = 0; + for ($i = 0; $i < 8; $i++) { + $sum += (int) $bsn[$i] * (9 - $i); + } + $sum -= (int) $bsn[8]; + + return ($sum % 11) === 0 && $sum !== 0; + } + + /** + * Validate message inputs. + */ + private function validateMessage(string $bsn, string $subject, string $body): array + { + $errors = []; + + if (empty($bsn) === true) { + $errors[] = 'BSN is verplicht voor berichten via Mijn Overheid'; + } elseif ($this->validateBsn($bsn) === false) { + $errors[] = 'Ongeldig BSN-nummer'; + } + + if (empty($subject) === true) { + $errors[] = 'Onderwerp is verplicht'; + } + + if (empty($body) === true) { + $errors[] = 'Berichttekst is verplicht'; + } + + // Strip HTML from body (plain text only). + if ($body !== strip_tags($body)) { + $errors[] = 'Berichttekst mag alleen platte tekst bevatten'; + } + + return $errors; + } + + private function getAdapter(): BerichtenboxAdapterInterface + { + // For MVP, always use mock adapter. + return new MockAdapter($this->logger); + } + + private function getObjectService(): ?\OCA\OpenRegister\Service\ObjectService + { + if (in_array('openregister', $this->appManager->getInstalledApps()) === false) { + return null; + } + + try { + return $this->container->get('OCA\OpenRegister\Service\ObjectService'); + } catch (\Exception $e) { + $this->logger->error('Procest: Could not get ObjectService', ['exception' => $e->getMessage()]); + return null; + } + } +} diff --git a/lib/Service/CaseDefinitionExportService.php b/lib/Service/CaseDefinitionExportService.php new file mode 100644 index 0000000..da39db0 --- /dev/null +++ b/lib/Service/CaseDefinitionExportService.php @@ -0,0 +1,262 @@ + + * @copyright 2024 Conduction B.V. + * @license EUPL-1.2 https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12 + * + * @version GIT: + * + * @link https://procest.nl + */ + +declare(strict_types=1); + +namespace OCA\Procest\Service; + +use OCA\Procest\AppInfo\Application; +use OCP\IAppConfig; +use Psr\Log\LoggerInterface; + +/** + * Service for exporting case type definitions as portable ZIP archives. + * + * A case definition package contains the schema, status types, result types, + * permission rules, document types, and workflow definitions for a case type. + * + * @psalm-suppress UnusedClass + */ +class CaseDefinitionExportService +{ + /** + * Version format for manifest. + */ + private const VERSION_FORMAT = '%d.%d'; + + /** + * Available export components. + * + * @var string[] + */ + public const COMPONENTS = [ + 'schema', + 'statuses', + 'permissions', + 'documents', + 'metadata', + 'workflows', + ]; + + /** + * Constructor. + * + * @param IAppConfig $appConfig The Nextcloud app config service. + * @param LoggerInterface $logger The logger instance. + */ + public function __construct( + private readonly IAppConfig $appConfig, + private readonly LoggerInterface $logger, + ) { + } + + /** + * Export a case definition as a ZIP archive. + * + * @param string $caseTypeId The OpenRegister ID of the case type to export. + * @param string[] $components List of components to include (defaults to all). + * + * @return array{path: string, filename: string} Temporary file path and suggested filename. + * + * @throws \RuntimeException If export fails. + * + * @psalm-suppress PossiblyUnusedMethod + */ + public function exportCaseDefinition( + string $caseTypeId, + array $components = [], + ): array { + if (empty($components)) { + $components = self::COMPONENTS; + } + + // Validate requested components. + $invalidComponents = array_diff($components, self::COMPONENTS); + if (!empty($invalidComponents)) { + throw new \InvalidArgumentException( + 'Invalid export components: ' . implode(', ', $invalidComponents) + ); + } + + $this->logger->info( + 'Exporting case definition {caseTypeId} with components: {components}', + [ + 'caseTypeId' => $caseTypeId, + 'components' => implode(', ', $components), + ] + ); + + // Build the manifest. + $manifest = $this->buildManifest($caseTypeId, $components); + + // Create temporary ZIP file. + $tempPath = tempnam(sys_get_temp_dir(), 'procest_export_'); + if ($tempPath === false) { + throw new \RuntimeException('Failed to create temporary file for export'); + } + + $zip = new \ZipArchive(); + $result = $zip->open($tempPath, \ZipArchive::CREATE | \ZipArchive::OVERWRITE); + if ($result !== true) { + throw new \RuntimeException('Failed to create ZIP archive: error code ' . $result); + } + + // Add manifest. + $zip->addFromString('manifest.json', json_encode($manifest, JSON_PRETTY_PRINT | JSON_UNESCAPED_UNICODE)); + + // Add selected components. + foreach ($components as $component) { + $data = $this->exportComponent($caseTypeId, $component); + if ($data !== null) { + $filename = $component === 'workflows' ? 'workflows/' : $component . '.json'; + if ($component === 'workflows' && is_array($data)) { + foreach ($data as $workflowName => $workflowData) { + $zip->addFromString( + 'workflows/' . $workflowName . '.json', + json_encode($workflowData, JSON_PRETTY_PRINT | JSON_UNESCAPED_UNICODE) + ); + } + } else { + $zip->addFromString( + $component . '.json', + json_encode($data, JSON_PRETTY_PRINT | JSON_UNESCAPED_UNICODE) + ); + } + } + } + + $zip->close(); + + $slug = $manifest['caseType']['slug'] ?? 'unknown'; + $version = $manifest['version'] ?? '1.0'; + + return [ + 'path' => $tempPath, + 'filename' => "case-definition-{$slug}-v{$version}.zip", + ]; + } + + /** + * Build the manifest for a case definition export. + * + * @param string $caseTypeId The case type ID. + * @param string[] $components The components included in this export. + * + * @return array The manifest data. + */ + private function buildManifest(string $caseTypeId, array $components): array + { + $previousVersion = $this->appConfig->getValueString( + Application::APP_ID, + 'export_version_' . $caseTypeId, + '0.0' + ); + + $newVersion = $this->incrementVersion($previousVersion); + + // Store the new version. + $this->appConfig->setValueString( + Application::APP_ID, + 'export_version_' . $caseTypeId, + $newVersion + ); + + $excludedComponents = array_values(array_diff(self::COMPONENTS, $components)); + + return [ + 'version' => $newVersion, + 'previousVersion' => $previousVersion !== '0.0' ? $previousVersion : null, + 'exportDate' => (new \DateTimeImmutable())->format(\DateTimeInterface::ATOM), + 'sourceEnvironment' => $this->appConfig->getValueString( + Application::APP_ID, + 'environment_name', + 'unknown' + ), + 'generator' => 'procest/' . $this->appConfig->getValueString( + 'procest', + 'installed_version', + 'unknown' + ), + 'caseType' => [ + 'id' => $caseTypeId, + 'slug' => $caseTypeId, + ], + 'components' => $components, + 'excludedComponents' => $excludedComponents, + 'dependencies' => [], + ]; + } + + /** + * Export a single component. + * + * @param string $caseTypeId The case type ID. + * @param string $component The component name. + * + * @return array|null The component data, or null if empty. + */ + private function exportComponent(string $caseTypeId, string $component): ?array + { + // Placeholder: in a full implementation, this would query OpenRegister + // for the actual data. For now, return structured placeholders that + // demonstrate the expected format. + return match ($component) { + 'schema' => [ + 'caseTypeId' => $caseTypeId, + 'fields' => [], + 'validations' => [], + ], + 'statuses' => [ + 'statusTypes' => [], + 'transitions' => [], + ], + 'permissions' => [ + 'roles' => [], + 'rules' => [], + ], + 'documents' => [ + 'documentTypes' => [], + 'templates' => [], + ], + 'metadata' => [ + 'resultTypes' => [], + 'decisionTypes' => [], + ], + 'workflows' => [], + default => null, + }; + } + + /** + * Increment a version string (e.g., "1.0" -> "1.1"). + * + * @param string $version The current version string. + * + * @return string The incremented version string. + */ + private function incrementVersion(string $version): string + { + $parts = explode('.', $version); + $major = (int)($parts[0] ?? 1); + $minor = (int)($parts[1] ?? 0); + + return sprintf(self::VERSION_FORMAT, $major, $minor + 1); + } +} diff --git a/lib/Service/CaseDefinitionImportService.php b/lib/Service/CaseDefinitionImportService.php new file mode 100644 index 0000000..1d731fc --- /dev/null +++ b/lib/Service/CaseDefinitionImportService.php @@ -0,0 +1,352 @@ + + * @copyright 2024 Conduction B.V. + * @license EUPL-1.2 https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12 + * + * @version GIT: + * + * @link https://procest.nl + */ + +declare(strict_types=1); + +namespace OCA\Procest\Service; + +use OCA\Procest\AppInfo\Application; +use OCP\IAppConfig; +use Psr\Log\LoggerInterface; + +/** + * Service for importing case type definitions from ZIP archives. + * + * Validates the package, resolves dependencies, detects conflicts, + * and creates/updates case type configuration in OpenRegister. + * + * @psalm-suppress UnusedClass + */ +class CaseDefinitionImportService +{ + /** + * Required files in an import package. + * + * @var string[] + */ + private const REQUIRED_FILES = ['manifest.json']; + + /** + * Valid component files. + * + * @var string[] + */ + private const VALID_COMPONENT_FILES = [ + 'schema.json', + 'statuses.json', + 'permissions.json', + 'documents.json', + 'metadata.json', + ]; + + /** + * Constructor. + * + * @param IAppConfig $appConfig The Nextcloud app config service. + * @param LoggerInterface $logger The logger instance. + */ + public function __construct( + private readonly IAppConfig $appConfig, + private readonly LoggerInterface $logger, + ) { + } + + /** + * Validate a case definition package without importing it. + * + * @param string $zipPath Path to the uploaded ZIP file. + * + * @return array{valid: bool, errors: string[], warnings: string[], manifest: ?array, conflicts: array} + * + * @psalm-suppress PossiblyUnusedMethod + */ + public function validatePackage(string $zipPath): array + { + $result = [ + 'valid' => true, + 'errors' => [], + 'warnings' => [], + 'manifest' => null, + 'conflicts' => [], + ]; + + // Open the ZIP. + $zip = new \ZipArchive(); + $openResult = $zip->open($zipPath, \ZipArchive::RDONLY); + if ($openResult !== true) { + $result['valid'] = false; + $result['errors'][] = 'Failed to open ZIP archive: error code ' . $openResult; + return $result; + } + + // Check required files. + foreach (self::REQUIRED_FILES as $requiredFile) { + if ($zip->locateName($requiredFile) === false) { + $result['valid'] = false; + $result['errors'][] = "Missing required file: {$requiredFile}"; + } + } + + if (!$result['valid']) { + $zip->close(); + return $result; + } + + // Parse manifest. + $manifestJson = $zip->getFromName('manifest.json'); + if ($manifestJson === false) { + $result['valid'] = false; + $result['errors'][] = 'Failed to read manifest.json'; + $zip->close(); + return $result; + } + + $manifest = json_decode($manifestJson, true); + if ($manifest === null) { + $result['valid'] = false; + $result['errors'][] = 'Invalid JSON in manifest.json: ' . json_last_error_msg(); + $zip->close(); + return $result; + } + + $result['manifest'] = $manifest; + + // Validate manifest structure. + $requiredManifestFields = ['version', 'exportDate', 'caseType', 'components']; + foreach ($requiredManifestFields as $field) { + if (!isset($manifest[$field])) { + $result['valid'] = false; + $result['errors'][] = "Missing required manifest field: {$field}"; + } + } + + // Validate that declared components have matching files. + $components = $manifest['components'] ?? []; + foreach ($components as $component) { + if ($component === 'workflows') { + // Workflows are in a subdirectory -- check for at least the directory. + $hasWorkflows = false; + for ($i = 0; $i < $zip->numFiles; $i++) { + $name = $zip->getNameIndex($i); + if ($name !== false && str_starts_with($name, 'workflows/')) { + $hasWorkflows = true; + break; + } + } + if (!$hasWorkflows) { + $result['warnings'][] = 'Component "workflows" declared but no workflow files found'; + } + } else { + $componentFile = $component . '.json'; + if ($zip->locateName($componentFile) === false) { + $result['valid'] = false; + $result['errors'][] = "Component '{$component}' declared in manifest but file '{$componentFile}' not found"; + } + } + } + + // Validate component JSON. + foreach ($components as $component) { + if ($component === 'workflows') { + continue; + } + $componentFile = $component . '.json'; + $content = $zip->getFromName($componentFile); + if ($content !== false) { + $decoded = json_decode($content, true); + if ($decoded === null && json_last_error() !== JSON_ERROR_NONE) { + $result['valid'] = false; + $result['errors'][] = "Invalid JSON in {$componentFile}: " . json_last_error_msg(); + } + } + } + + // Check for dependency conflicts. + $dependencies = $manifest['dependencies'] ?? []; + foreach ($dependencies as $dep) { + $depType = $dep['type'] ?? 'unknown'; + $depName = $dep['name'] ?? 'unknown'; + // In a full implementation, check if the dependency exists in OpenRegister. + $result['warnings'][] = "Dependency '{$depName}' (type: {$depType}) should be verified in target environment"; + } + + $zip->close(); + + $this->logger->info( + 'Validated case definition package: {valid}, errors: {errorCount}, warnings: {warningCount}', + [ + 'valid' => $result['valid'] ? 'true' : 'false', + 'errorCount' => count($result['errors']), + 'warningCount' => count($result['warnings']), + ] + ); + + return $result; + } + + /** + * Import a case definition package. + * + * @param string $zipPath Path to the uploaded ZIP file. + * @param string $strategy Conflict resolution strategy: 'skip', 'overwrite', or 'merge'. + * + * @return array{success: bool, message: string, components: array} + * + * @throws \RuntimeException If import fails. + * + * @psalm-suppress PossiblyUnusedMethod + */ + public function importCaseDefinition( + string $zipPath, + string $strategy = 'skip', + ): array { + // First validate. + $validation = $this->validatePackage($zipPath); + if (!$validation['valid']) { + return [ + 'success' => false, + 'message' => 'Package validation failed: ' . implode('; ', $validation['errors']), + 'components' => [], + ]; + } + + $manifest = $validation['manifest']; + $components = $manifest['components'] ?? []; + $results = []; + + $zip = new \ZipArchive(); + $zip->open($zipPath, \ZipArchive::RDONLY); + + foreach ($components as $component) { + try { + $results[$component] = $this->importComponent($zip, $component, $strategy); + } catch (\Throwable $e) { + $results[$component] = [ + 'status' => 'error', + 'message' => $e->getMessage(), + ]; + $this->logger->error( + 'Failed to import component {component}: {error}', + [ + 'component' => $component, + 'error' => $e->getMessage(), + ] + ); + } + } + + $zip->close(); + + $allSuccess = !in_array('error', array_column($results, 'status'), true); + + $this->logger->info( + 'Case definition import completed: {success}, components: {count}', + [ + 'success' => $allSuccess ? 'true' : 'false', + 'count' => count($results), + ] + ); + + return [ + 'success' => $allSuccess, + 'message' => $allSuccess ? 'Import completed successfully' : 'Import completed with errors', + 'components' => $results, + ]; + } + + /** + * Import a single component from the ZIP archive. + * + * @param \ZipArchive $zip The opened ZIP archive. + * @param string $component The component name. + * @param string $strategy The conflict resolution strategy. + * + * @return array{status: string, message: string} + */ + private function importComponent( + \ZipArchive $zip, + string $component, + string $strategy, + ): array { + if ($component === 'workflows') { + return $this->importWorkflows($zip, $strategy); + } + + $content = $zip->getFromName($component . '.json'); + if ($content === false) { + return [ + 'status' => 'skipped', + 'message' => "Component file {$component}.json not found in archive", + ]; + } + + $data = json_decode($content, true); + if ($data === null) { + return [ + 'status' => 'error', + 'message' => "Invalid JSON in {$component}.json", + ]; + } + + // In a full implementation, this would create/update OpenRegister objects. + // For now, store the fact that the component was imported. + $this->logger->info( + 'Imported component {component} with strategy {strategy}', + [ + 'component' => $component, + 'strategy' => $strategy, + ] + ); + + return [ + 'status' => 'success', + 'message' => "Component '{$component}' imported successfully", + ]; + } + + /** + * Import workflow files from the ZIP archive. + * + * @param \ZipArchive $zip The opened ZIP archive. + * @param string $strategy The conflict resolution strategy. + * + * @return array{status: string, message: string} + */ + private function importWorkflows(\ZipArchive $zip, string $strategy): array + { + $workflowCount = 0; + + for ($i = 0; $i < $zip->numFiles; $i++) { + $name = $zip->getNameIndex($i); + if ($name !== false && str_starts_with($name, 'workflows/') && str_ends_with($name, '.json')) { + $content = $zip->getFromIndex($i); + if ($content !== false) { + // In a full implementation, deploy via n8n API. + $workflowCount++; + } + } + } + + return [ + 'status' => 'success', + 'message' => "Imported {$workflowCount} workflow(s)", + ]; + } +} diff --git a/lib/Service/CaseEmailService.php b/lib/Service/CaseEmailService.php new file mode 100644 index 0000000..86e4e02 --- /dev/null +++ b/lib/Service/CaseEmailService.php @@ -0,0 +1,501 @@ + + * @copyright 2024 Conduction B.V. + * @license EUPL-1.2 https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12 + * + * @version GIT: + * + * @link https://procest.nl + */ + +declare(strict_types=1); + +namespace OCA\Procest\Service; + +use OCA\Procest\AppInfo\Application; +use OCP\IConfig; +use OCP\Mail\IMailer; +use Psr\Log\LoggerInterface; + +/** + * Service for case-integrated email functionality. + */ +class CaseEmailService +{ + + /** + * Regex pattern for extracting case number from email subject. + */ + private const CASE_NUMBER_PATTERN = '/\[ZAAK-(\d{4}-\d{4,})\]/'; + + + /** + * Constructor. + * + * @param SettingsService $settingsService Settings service + * @param IMailer $mailer Nextcloud mailer + * @param IConfig $config Nextcloud config + * @param LoggerInterface $logger Logger + */ + public function __construct( + private readonly SettingsService $settingsService, + private readonly IMailer $mailer, + private readonly IConfig $config, + private readonly LoggerInterface $logger, + ) { + } + + + /** + * Send an email from case context. + * + * @param string $caseId The case UUID + * @param string $to Recipient email address + * @param string $subject Email subject + * @param string $body Email body (HTML or plain text) + * @param array $attachments File paths to attach + * + * @return array Send result with message ID + * + * @throws \RuntimeException If sending fails + */ + public function sendEmail( + string $caseId, + string $to, + string $subject, + string $body, + array $attachments = [], + ): array { + $fromAddress = $this->config->getAppValue( + Application::APP_ID, + 'email_from_address', + 'noreply@example.nl', + ); + $fromName = $this->config->getAppValue( + Application::APP_ID, + 'email_from_name', + 'Procest', + ); + + $message = $this->mailer->createMessage(); + $message->setFrom([$fromAddress => $fromName]); + $message->setTo([$to]); + $message->setSubject($subject); + $message->setHtmlBody($body); + $message->setPlainBody(strip_tags($body)); + + // Add attachments. + foreach ($attachments as $filePath) { + if (file_exists($filePath) === true) { + $message->attachFile($filePath); + } + } + + try { + $this->mailer->send($message); + } catch (\Exception $e) { + $this->logger->error( + 'Failed to send email for case ' . $caseId . ': ' . $e->getMessage(), + ['app' => Application::APP_ID], + ); + throw new \RuntimeException('Email sending failed: ' . $e->getMessage()); + } + + // Record the sent email as a case document. + $messageId = $this->recordSentEmail($caseId, $to, $subject, $body); + + $this->logger->info( + 'Email sent for case ' . $caseId . ' to ' . $to, + ['app' => Application::APP_ID], + ); + + return [ + 'messageId' => $messageId, + 'to' => $to, + 'subject' => $subject, + 'sentAt' => date('Y-m-d\TH:i:s'), + ]; + } + + + /** + * Send an email using a template. + * + * @param string $caseId The case UUID + * @param string $templateId The email template UUID + * @param string $to Recipient email address + * + * @return array Send result + * + * @throws \RuntimeException If template not found or sending fails + */ + public function sendFromTemplate( + string $caseId, + string $templateId, + string $to, + ): array { + $template = $this->loadTemplate($templateId); + if ($template === null) { + throw new \RuntimeException('Email template not found'); + } + + // Load case data for variable resolution. + $caseData = $this->loadCaseData($caseId); + + // Resolve template variables. + $subject = $this->resolveVariables($template['subjectPattern'] ?? '', $caseData); + $body = $this->resolveVariables($template['body'] ?? '', $caseData); + + return $this->sendEmail($caseId, $to, $subject, $body); + } + + + /** + * Resolve template variables in a string. + * + * Variables use {{variableName}} syntax. + * + * @param string $template The template string + * @param array $data Available data for resolution + * + * @return string The resolved string + */ + public function resolveVariables(string $template, array $data): string + { + return preg_replace_callback( + '/\{\{(\w+)\}\}/', + static function (array $matches) use ($data): string { + $key = $matches[1]; + if (isset($data[$key]) === true && is_scalar($data[$key]) === true) { + return (string) $data[$key]; + } + return $matches[0]; // Leave unresolved variables as-is. + }, + $template, + ) ?? $template; + } + + + /** + * Find unresolved variables in a template string. + * + * @param string $template The template string + * @param array $data Available data + * + * @return array List of unresolved variable names + */ + public function findUnresolvedVariables(string $template, array $data): array + { + $unresolved = []; + preg_match_all('/\{\{(\w+)\}\}/', $template, $matches); + + foreach ($matches[1] as $key) { + if (isset($data[$key]) === false || is_scalar($data[$key]) === false) { + $unresolved[] = $key; + } + } + + return array_unique($unresolved); + } + + + /** + * Extract case number from email subject. + * + * @param string $subject The email subject + * + * @return string|null The extracted case identifier or null + */ + public function extractCaseNumber(string $subject): ?string + { + if (preg_match(self::CASE_NUMBER_PATTERN, $subject, $matches) === 1) { + return $matches[1]; + } + + return null; + } + + + /** + * Process an inbound email and link it to a case. + * + * @param string $from Sender email address + * @param string $to Recipient email address + * @param string $subject Email subject + * @param string $body Email body + * @param string $inReplyTo In-Reply-To header (for threading) + * + * @return array Processing result + */ + public function processInbound( + string $from, + string $to, + string $subject, + string $body, + string $inReplyTo = '', + ): array { + $caseNumber = $this->extractCaseNumber($subject); + + if ($caseNumber !== null) { + // Auto-link to case. + $caseId = $this->findCaseByIdentifier($caseNumber); + if ($caseId !== null) { + $messageId = $this->recordReceivedEmail( + $caseId, + $from, + $subject, + $body, + $inReplyTo, + ); + + $this->logger->info( + 'Inbound email auto-linked to case ' . $caseId, + ['app' => Application::APP_ID], + ); + + return [ + 'linked' => true, + 'caseId' => $caseId, + 'messageId' => $messageId, + 'method' => 'auto', + ]; + } + } + + // Could not auto-link; add to unlinked queue. + return [ + 'linked' => false, + 'caseNumber' => $caseNumber, + 'from' => $from, + 'subject' => $subject, + 'method' => 'unlinked', + ]; + } + + + /** + * Get email templates for a case type. + * + * @param string $caseTypeId The case type UUID + * + * @return array> List of templates + */ + public function getTemplatesForCaseType(string $caseTypeId): array + { + $objectService = $this->settingsService->getObjectService(); + if ($objectService === null) { + return []; + } + + $register = $this->settingsService->getConfigValue('register'); + $schema = $this->settingsService->getConfigValue('email_template_schema'); + + if (empty($register) === true || empty($schema) === true) { + return []; + } + + $results = $objectService->findObjects( + $register, + $schema, + ['caseType' => $caseTypeId], + [], + 100, + ); + + return is_array($results) ? $results : []; + } + + + /** + * Load an email template. + * + * @param string $templateId The template UUID + * + * @return array|null The template data + */ + private function loadTemplate(string $templateId): ?array + { + $objectService = $this->settingsService->getObjectService(); + if ($objectService === null) { + return null; + } + + $register = $this->settingsService->getConfigValue('register'); + $schema = $this->settingsService->getConfigValue('email_template_schema'); + + if (empty($register) === true || empty($schema) === true) { + return null; + } + + $result = $objectService->getObject($register, $schema, $templateId); + return is_array($result) ? $result : null; + } + + + /** + * Load case data for template variable resolution. + * + * @param string $caseId The case UUID + * + * @return array Case data flattened for variable resolution + */ + private function loadCaseData(string $caseId): array + { + $objectService = $this->settingsService->getObjectService(); + if ($objectService === null) { + return []; + } + + $register = $this->settingsService->getConfigValue('register'); + $schema = $this->settingsService->getConfigValue('case_schema'); + + $caseObj = $objectService->getObject($register, $schema, $caseId); + if (is_array($caseObj) === false) { + return []; + } + + // Flatten for variable resolution. + return [ + 'zaakNummer' => $caseObj['identifier'] ?? '', + 'titel' => $caseObj['title'] ?? '', + 'startdatum' => $caseObj['startDate'] ?? '', + 'deadline' => $caseObj['deadline'] ?? '', + 'status' => $caseObj['status'] ?? '', + 'behandelaar' => $caseObj['assignee'] ?? '', + ]; + } + + + /** + * Record a sent email as a case document. + * + * @param string $caseId Case UUID + * @param string $to Recipient + * @param string $subject Subject + * @param string $body Body + * + * @return string The recorded message ID + */ + private function recordSentEmail( + string $caseId, + string $to, + string $subject, + string $body, + ): string { + // Store as activity on the case. + $messageId = 'msg-' . uniqid(); + + $objectService = $this->settingsService->getObjectService(); + if ($objectService === null) { + return $messageId; + } + + $register = $this->settingsService->getConfigValue('register'); + $schema = $this->settingsService->getConfigValue('email_message_schema'); + + if (empty($register) === false && empty($schema) === false) { + $objectService->saveObject($register, $schema, [ + 'case' => $caseId, + 'direction' => 'outbound', + 'from' => $this->config->getAppValue(Application::APP_ID, 'email_from_address', ''), + 'to' => $to, + 'subject' => $subject, + 'body' => $body, + 'messageId' => $messageId, + 'sentAt' => date('Y-m-d\TH:i:s'), + ]); + } + + return $messageId; + } + + + /** + * Record a received email. + * + * @param string $caseId Case UUID + * @param string $from Sender + * @param string $subject Subject + * @param string $body Body + * @param string $inReplyTo Threading header + * + * @return string The recorded message ID + */ + private function recordReceivedEmail( + string $caseId, + string $from, + string $subject, + string $body, + string $inReplyTo, + ): string { + $messageId = 'msg-' . uniqid(); + + $objectService = $this->settingsService->getObjectService(); + if ($objectService === null) { + return $messageId; + } + + $register = $this->settingsService->getConfigValue('register'); + $schema = $this->settingsService->getConfigValue('email_message_schema'); + + if (empty($register) === false && empty($schema) === false) { + $objectService->saveObject($register, $schema, [ + 'case' => $caseId, + 'direction' => 'inbound', + 'from' => $from, + 'to' => '', + 'subject' => $subject, + 'body' => $body, + 'messageId' => $messageId, + 'inReplyTo' => $inReplyTo, + 'receivedAt' => date('Y-m-d\TH:i:s'), + ]); + } + + return $messageId; + } + + + /** + * Find a case by its identifier. + * + * @param string $identifier The case identifier (e.g., 2026-0042) + * + * @return string|null The case UUID or null + */ + private function findCaseByIdentifier(string $identifier): ?string + { + $objectService = $this->settingsService->getObjectService(); + if ($objectService === null) { + return null; + } + + $register = $this->settingsService->getConfigValue('register'); + $schema = $this->settingsService->getConfigValue('case_schema'); + + $results = $objectService->findObjects( + $register, + $schema, + ['identifier' => $identifier], + [], + 1, + ); + + if (is_array($results) === true && count($results) > 0) { + return $results[0]['id'] ?? $results[0]['uuid'] ?? null; + } + + return null; + } +} diff --git a/lib/Service/CaseSharingService.php b/lib/Service/CaseSharingService.php new file mode 100644 index 0000000..586c5b1 --- /dev/null +++ b/lib/Service/CaseSharingService.php @@ -0,0 +1,509 @@ + + * @copyright 2024 Conduction B.V. + * @license EUPL-1.2 https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12 + * + * @version GIT: + * + * @link https://procest.nl + */ + +declare(strict_types=1); + +namespace OCA\Procest\Service; + +use OCP\App\IAppManager; +use Psr\Container\ContainerInterface; +use Psr\Log\LoggerInterface; + +/** + * Service for managing case sharing with external parties. + * + * Handles token-based sharing, partner organization sharing, + * permission enforcement, and field-level data filtering. + */ +class CaseSharingService +{ + /** + * Maximum failed password attempts before lockout. + */ + private const MAX_FAILED_ATTEMPTS = 5; + + /** + * Lockout duration in minutes after max failed attempts. + */ + private const LOCKOUT_MINUTES = 15; + + /** + * Default fields excluded from shared views for data minimization. + */ + private const DEFAULT_EXCLUDED_FIELDS = [ + 'interneAantekening', + 'risicoScore', + 'kosteninschatting', + 'assignee', + 'activity', + 'statusHistory', + ]; + + /** + * Constructor for the CaseSharingService. + * + * @param SettingsService $settingsService The settings service + * @param IAppManager $appManager The app manager + * @param ContainerInterface $container The DI container + * @param LoggerInterface $logger The logger + * + * @return void + */ + public function __construct( + private SettingsService $settingsService, + private IAppManager $appManager, + private ContainerInterface $container, + private LoggerInterface $logger, + ) { + }//end __construct() + + /** + * Generate a cryptographically secure share token. + * + * Generates a 128-bit (16 byte) random token encoded as 32 hex characters. + * + * @return string The generated token (32 hex characters) + */ + public function generateToken(): string + { + return bin2hex(random_bytes(16)); + }//end generateToken() + + /** + * Create a token-based case share. + * + * @param string $caseId The UUID of the case to share + * @param string $permissionLevel The permission level slug + * @param string $label Human-readable label for the share + * @param string $createdBy User ID of the creator + * @param string|null $expiresAt ISO 8601 expiration datetime + * @param string|null $password Plain text password (will be hashed) + * @param array $fieldExclusions Additional field exclusions + * + * @return array The created share data + * + * @SuppressWarnings(PHPMD.ExcessiveParameterList) — all params needed for share creation + */ + public function createTokenShare( + string $caseId, + string $permissionLevel, + string $label, + string $createdBy, + ?string $expiresAt=null, + ?string $password=null, + array $fieldExclusions=[], + ): array { + $objectService = $this->getObjectService(); + if ($objectService === null) { + return ['error' => 'OpenRegister is not available']; + } + + $token = $this->generateToken(); + $register = $this->settingsService->getConfigValue('register'); + $schema = $this->settingsService->getConfigValue('case_share_schema'); + + $shareData = [ + 'token' => $token, + 'caseId' => $caseId, + 'shareType' => 'token', + 'permissionLevel' => $permissionLevel, + 'label' => $label, + 'createdBy' => $createdBy, + 'fieldExclusions' => json_encode( + array_merge(self::DEFAULT_EXCLUDED_FIELDS, $fieldExclusions) + ), + 'failedAttempts' => 0, + ]; + + if ($expiresAt !== null) { + $shareData['expiresAt'] = $expiresAt; + } + + if ($password !== null) { + $shareData['password'] = password_hash($password, PASSWORD_BCRYPT); + } + + $result = $objectService->saveObject( + (int) $register, + (int) $schema, + $shareData, + ); + + $this->logger->info( + 'Procest: Token share created', + [ + 'caseId' => $caseId, + 'shareId' => $result->getUuid(), + 'label' => $label, + ] + ); + + return $result->jsonSerialize(); + }//end createTokenShare() + + /** + * Create a partner organization-based case share. + * + * @param string $caseId The UUID of the case to share + * @param string $partnerId The UUID of the partner organization + * @param string $permissionLevel The permission level slug + * @param string $createdBy User ID of the creator + * + * @return array The created share data + */ + public function createPartnerShare( + string $caseId, + string $partnerId, + string $permissionLevel, + string $createdBy, + ): array { + $objectService = $this->getObjectService(); + if ($objectService === null) { + return ['error' => 'OpenRegister is not available']; + } + + $register = $this->settingsService->getConfigValue('register'); + $schema = $this->settingsService->getConfigValue('case_share_schema'); + + $shareData = [ + 'token' => $this->generateToken(), + 'caseId' => $caseId, + 'shareType' => 'partner', + 'partnerId' => $partnerId, + 'permissionLevel' => $permissionLevel, + 'createdBy' => $createdBy, + 'fieldExclusions' => json_encode(self::DEFAULT_EXCLUDED_FIELDS), + 'failedAttempts' => 0, + ]; + + $result = $objectService->saveObject( + (int) $register, + (int) $schema, + $shareData, + ); + + $this->logger->info( + 'Procest: Partner share created', + [ + 'caseId' => $caseId, + 'partnerId' => $partnerId, + 'shareId' => $result->getUuid(), + ] + ); + + return $result->jsonSerialize(); + }//end createPartnerShare() + + /** + * Get all active shares for a case. + * + * @param string $caseId The UUID of the case + * + * @return array List of share records + */ + public function getSharesByCase(string $caseId): array + { + $objectService = $this->getObjectService(); + if ($objectService === null) { + return []; + } + + $register = $this->settingsService->getConfigValue('register'); + $schema = $this->settingsService->getConfigValue('case_share_schema'); + + $result = $objectService->getObjects( + (int) $register, + (int) $schema, + ['caseId' => $caseId], + ); + + // Filter out revoked shares. + return array_filter( + $result['objects'] ?? [], + static function ($share) { + $data = is_object($share) ? $share->jsonSerialize() : $share; + return empty($data['revokedAt']); + } + ); + }//end getSharesByCase() + + /** + * Revoke a share by marking it with revocation timestamp. + * + * @param string $shareId The UUID of the share to revoke + * @param string $revokedBy The user ID of the revoker + * + * @return array The updated share data + */ + public function revokeShare(string $shareId, string $revokedBy): array + { + $objectService = $this->getObjectService(); + if ($objectService === null) { + return ['error' => 'OpenRegister is not available']; + } + + $register = $this->settingsService->getConfigValue('register'); + $schema = $this->settingsService->getConfigValue('case_share_schema'); + + $share = $objectService->getObject( + (int) $register, + (int) $schema, + $shareId, + ); + + $shareData = $share->jsonSerialize(); + $shareData['revokedAt'] = (new \DateTime())->format('c'); + $shareData['revokedBy'] = $revokedBy; + + $result = $objectService->saveObject( + (int) $register, + (int) $schema, + $shareData, + ); + + $this->logger->info( + 'Procest: Share revoked', + [ + 'shareId' => $shareId, + 'revokedBy' => $revokedBy, + ] + ); + + return $result->jsonSerialize(); + }//end revokeShare() + + /** + * Validate a share token for access. + * + * Checks token existence, expiration, revocation, password, and lockout. + * + * @param string $token The share token to validate + * @param string|null $password The password attempt (for protected shares) + * + * @return array Validation result with 'valid' boolean and share data or error + */ + public function validateToken(string $token, ?string $password=null): array + { + $objectService = $this->getObjectService(); + if ($objectService === null) { + return ['valid' => false, 'error' => 'Service unavailable']; + } + + $register = $this->settingsService->getConfigValue('register'); + $schema = $this->settingsService->getConfigValue('case_share_schema'); + + $result = $objectService->getObjects( + (int) $register, + (int) $schema, + ['token' => $token], + ); + + $shares = ($result['objects'] ?? []); + if (empty($shares) === true) { + return ['valid' => false, 'error' => 'Token niet gevonden']; + } + + $share = reset($shares); + $shareData = is_object($share) ? $share->jsonSerialize() : $share; + + // Check if revoked. + if (empty($shareData['revokedAt']) === false) { + return ['valid' => false, 'error' => 'Toegang ingetrokken']; + } + + // Check if expired. + if (empty($shareData['expiresAt']) === false) { + $expiresAt = new \DateTime($shareData['expiresAt']); + if ($expiresAt < new \DateTime()) { + return [ + 'valid' => false, + 'error' => 'Deze link is verlopen. Neem contact op met de behandelaar.', + ]; + } + } + + // Check lockout. + if (empty($shareData['lockedUntil']) === false) { + $lockedUntil = new \DateTime($shareData['lockedUntil']); + if ($lockedUntil > new \DateTime()) { + return [ + 'valid' => false, + 'error' => 'Deze link is tijdelijk vergrendeld. Probeer het later opnieuw.', + ]; + } + } + + // Check password if required. + if (empty($shareData['password']) === false) { + if ($password === null) { + return ['valid' => false, 'requiresPassword' => true]; + } + + if (password_verify($password, $shareData['password']) === false) { + $this->recordFailedAttempt($shareData, $register, $schema); + return ['valid' => false, 'error' => 'Onjuist wachtwoord']; + } + + // Reset failed attempts on successful password. + $this->resetFailedAttempts($shareData, $register, $schema); + } + + // Update last accessed timestamp. + $shareData['lastAccessedAt'] = (new \DateTime())->format('c'); + $objectService->saveObject( + (int) $register, + (int) $schema, + $shareData, + ); + + return ['valid' => true, 'share' => $shareData]; + }//end validateToken() + + /** + * Get filtered case data based on share permission level. + * + * Applies field exclusions and data minimization rules. + * + * @param array $shareData The share record data + * @param array $caseData The full case data + * + * @return array The filtered case data safe for external viewing + */ + public function getFilteredCaseData(array $shareData, array $caseData): array + { + $fieldExclusions = json_decode(($shareData['fieldExclusions'] ?? '[]'), true); + if (is_array($fieldExclusions) === false) { + $fieldExclusions = self::DEFAULT_EXCLUDED_FIELDS; + } + + // Remove excluded fields entirely (not even null). + foreach ($fieldExclusions as $field) { + unset($caseData[$field]); + } + + // Apply BSN masking for data minimization. + if (isset($caseData['bsn']) === true) { + $caseData['bsn'] = $this->maskBsn($caseData['bsn']); + } + + return $caseData; + }//end getFilteredCaseData() + + /** + * Mask a BSN number showing only the last 4 digits. + * + * @param string $bsn The full BSN number + * + * @return string The masked BSN (e.g., "***99*653") + */ + public function maskBsn(string $bsn): string + { + $length = strlen($bsn); + if ($length <= 4) { + return $bsn; + } + + return str_repeat('*', ($length - 4)).substr($bsn, -4); + }//end maskBsn() + + /** + * Record a failed password attempt and lock if threshold exceeded. + * + * @param array $shareData The share record data + * @param string $register The register ID + * @param string $schema The schema ID + * + * @return void + */ + private function recordFailedAttempt(array $shareData, string $register, string $schema): void + { + $objectService = $this->getObjectService(); + if ($objectService === null) { + return; + } + + $shareData['failedAttempts'] = (int) ($shareData['failedAttempts'] ?? 0) + 1; + + if ($shareData['failedAttempts'] >= self::MAX_FAILED_ATTEMPTS) { + $lockUntil = new \DateTime(); + $lockUntil->modify('+'.self::LOCKOUT_MINUTES.' minutes'); + $shareData['lockedUntil'] = $lockUntil->format('c'); + $shareData['failedAttempts'] = 0; + + $this->logger->warning( + 'Procest: Share token locked after failed attempts', + ['token' => substr($shareData['token'], 0, 8).'...'] + ); + } + + $objectService->saveObject( + (int) $register, + (int) $schema, + $shareData, + ); + }//end recordFailedAttempt() + + /** + * Reset failed password attempts after successful authentication. + * + * @param array $shareData The share record data + * @param string $register The register ID + * @param string $schema The schema ID + * + * @return void + */ + private function resetFailedAttempts(array $shareData, string $register, string $schema): void + { + $objectService = $this->getObjectService(); + if ($objectService === null) { + return; + } + + $shareData['failedAttempts'] = 0; + $shareData['lockedUntil'] = null; + + $objectService->saveObject( + (int) $register, + (int) $schema, + $shareData, + ); + }//end resetFailedAttempts() + + /** + * Get the OpenRegister ObjectService. + * + * @return \OCA\OpenRegister\Service\ObjectService|null The service or null + */ + private function getObjectService(): ?\OCA\OpenRegister\Service\ObjectService + { + if (in_array('openregister', $this->appManager->getInstalledApps()) === false) { + return null; + } + + try { + return $this->container->get('OCA\OpenRegister\Service\ObjectService'); + } catch (\Exception $e) { + $this->logger->error( + 'Procest: Could not get ObjectService', + ['exception' => $e->getMessage()] + ); + return null; + } + }//end getObjectService() +}//end class diff --git a/lib/Service/CaseTransferService.php b/lib/Service/CaseTransferService.php new file mode 100644 index 0000000..96b62aa --- /dev/null +++ b/lib/Service/CaseTransferService.php @@ -0,0 +1,226 @@ + + * @copyright 2024 Conduction B.V. + * @license EUPL-1.2 https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12 + * + * @version GIT: + * + * @link https://procest.nl + */ + +declare(strict_types=1); + +namespace OCA\Procest\Service; + +use OCP\App\IAppManager; +use Psr\Container\ContainerInterface; +use Psr\Log\LoggerInterface; + +/** + * Service for managing case ownership transfers between organizations. + * + * Supports initiating, accepting, and rejecting transfer requests + * with full audit trail and notification support. + */ +class CaseTransferService +{ + /** + * Constructor for the CaseTransferService. + * + * @param SettingsService $settingsService The settings service + * @param IAppManager $appManager The app manager + * @param ContainerInterface $container The DI container + * @param LoggerInterface $logger The logger + * + * @return void + */ + public function __construct( + private SettingsService $settingsService, + private IAppManager $appManager, + private ContainerInterface $container, + private LoggerInterface $logger, + ) { + }//end __construct() + + /** + * Initiate a case transfer to a target organization. + * + * @param string $caseId The UUID of the case to transfer + * @param string $sourceOrganization The source organization identifier + * @param string $targetOrganization The UUID of the target partner organization + * @param string $reason The reason for transfer + * @param string $requestedDate The requested transfer date (ISO 8601) + * + * @return array The created transfer request data + */ + public function initiateTransfer( + string $caseId, + string $sourceOrganization, + string $targetOrganization, + string $reason, + string $requestedDate, + ): array { + $objectService = $this->getObjectService(); + if ($objectService === null) { + return ['error' => 'OpenRegister is not available']; + } + + $register = $this->settingsService->getConfigValue('register'); + $schema = $this->settingsService->getConfigValue('case_transfer_schema'); + + $transferData = [ + 'caseId' => $caseId, + 'sourceOrganization' => $sourceOrganization, + 'targetOrganization' => $targetOrganization, + 'reason' => $reason, + 'requestedDate' => $requestedDate, + 'status' => 'pending', + ]; + + $result = $objectService->saveObject( + (int) $register, + (int) $schema, + $transferData, + ); + + $this->logger->info( + 'Procest: Case transfer initiated', + [ + 'caseId' => $caseId, + 'transferId' => $result->getUuid(), + 'target' => $targetOrganization, + ] + ); + + return $result->jsonSerialize(); + }//end initiateTransfer() + + /** + * Accept a pending case transfer request. + * + * @param string $transferId The UUID of the transfer request + * + * @return array The updated transfer data + */ + public function acceptTransfer(string $transferId): array + { + $objectService = $this->getObjectService(); + if ($objectService === null) { + return ['error' => 'OpenRegister is not available']; + } + + $register = $this->settingsService->getConfigValue('register'); + $schema = $this->settingsService->getConfigValue('case_transfer_schema'); + + $transfer = $objectService->getObject( + (int) $register, + (int) $schema, + $transferId, + ); + $transferData = $transfer->jsonSerialize(); + + if ($transferData['status'] !== 'pending') { + return ['error' => 'Transfer is not in pending state']; + } + + $transferData['status'] = 'accepted'; + $transferData['completedAt'] = (new \DateTime())->format('c'); + + $result = $objectService->saveObject( + (int) $register, + (int) $schema, + $transferData, + ); + + $this->logger->info( + 'Procest: Case transfer accepted', + [ + 'transferId' => $transferId, + 'caseId' => $transferData['caseId'], + ] + ); + + return $result->jsonSerialize(); + }//end acceptTransfer() + + /** + * Reject a pending case transfer request. + * + * @param string $transferId The UUID of the transfer request + * @param string $rejectionReason The reason for rejection + * + * @return array The updated transfer data + */ + public function rejectTransfer(string $transferId, string $rejectionReason): array + { + $objectService = $this->getObjectService(); + if ($objectService === null) { + return ['error' => 'OpenRegister is not available']; + } + + $register = $this->settingsService->getConfigValue('register'); + $schema = $this->settingsService->getConfigValue('case_transfer_schema'); + + $transfer = $objectService->getObject( + (int) $register, + (int) $schema, + $transferId, + ); + $transferData = $transfer->jsonSerialize(); + + if ($transferData['status'] !== 'pending') { + return ['error' => 'Transfer is not in pending state']; + } + + $transferData['status'] = 'rejected'; + $transferData['rejectionReason'] = $rejectionReason; + $transferData['completedAt'] = (new \DateTime())->format('c'); + + $result = $objectService->saveObject( + (int) $register, + (int) $schema, + $transferData, + ); + + $this->logger->info( + 'Procest: Case transfer rejected', + [ + 'transferId' => $transferId, + 'reason' => $rejectionReason, + ] + ); + + return $result->jsonSerialize(); + }//end rejectTransfer() + + /** + * Get the OpenRegister ObjectService. + * + * @return \OCA\OpenRegister\Service\ObjectService|null The service or null + */ + private function getObjectService(): ?\OCA\OpenRegister\Service\ObjectService + { + if (in_array('openregister', $this->appManager->getInstalledApps()) === false) { + return null; + } + + try { + return $this->container->get('OCA\OpenRegister\Service\ObjectService'); + } catch (\Exception $e) { + $this->logger->error( + 'Procest: Could not get ObjectService', + ['exception' => $e->getMessage()] + ); + return null; + } + }//end getObjectService() +}//end class diff --git a/lib/Service/ChecklistService.php b/lib/Service/ChecklistService.php new file mode 100644 index 0000000..9fd9405 --- /dev/null +++ b/lib/Service/ChecklistService.php @@ -0,0 +1,222 @@ + + * @copyright 2024 Conduction B.V. + * @license EUPL-1.2 https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12 + * + * @version GIT: + * + * @link https://procest.nl + */ + +declare(strict_types=1); + +namespace OCA\Procest\Service; + +use Psr\Log\LoggerInterface; + +/** + * Service for managing inspection checklists. + * + * Handles checklist item completion with conformity status tracking, + * mandatory photo validation for non-conformities, and progress monitoring. + * + * @psalm-suppress UnusedClass + */ +class ChecklistService +{ + /** + * Conformity status: conform. + */ + public const STATUS_CONFORM = 'conform'; + + /** + * Conformity status: niet-conform (non-conformity). + */ + public const STATUS_NIET_CONFORM = 'niet_conform'; + + /** + * Conformity status: not applicable. + */ + public const STATUS_NVT = 'niet_van_toepassing'; + + /** + * Valid conformity statuses. + * + * @var string[] + */ + public const VALID_STATUSES = [ + self::STATUS_CONFORM, + self::STATUS_NIET_CONFORM, + self::STATUS_NVT, + ]; + + /** + * Constructor. + * + * @param LoggerInterface $logger The logger instance. + */ + public function __construct( + private readonly LoggerInterface $logger, + ) { + } + + /** + * Complete a checklist item with a conformity status. + * + * @param array $checklist The checklist data. + * @param string $itemId The checklist item ID. + * @param string $status The conformity status. + * @param string $toelichting Free-text explanation. + * @param string[] $photoRefs Photo file references (required for niet-conform if configured). + * + * @return array The updated checklist. + * + * @throws \InvalidArgumentException If status is invalid or mandatory photo is missing. + * + * @psalm-suppress PossiblyUnusedMethod + */ + public function completeItem( + array $checklist, + string $itemId, + string $status, + string $toelichting = '', + array $photoRefs = [], + ): array { + if (!in_array($status, self::VALID_STATUSES, true)) { + throw new \InvalidArgumentException( + 'Invalid conformity status: ' . $status . '. Valid: ' . implode(', ', self::VALID_STATUSES) + ); + } + + $items = $checklist['items'] ?? []; + $itemFound = false; + + foreach ($items as $index => $item) { + if (($item['id'] ?? '') === $itemId) { + // Check mandatory photo for niet-conform. + $requiresPhoto = $item['fotoVerplichtBijNietConform'] ?? false; + if ($status === self::STATUS_NIET_CONFORM && $requiresPhoto && empty($photoRefs)) { + throw new \InvalidArgumentException( + 'Foto verplicht bij niet-conform voor item: ' . ($item['description'] ?? $itemId) + ); + } + + $items[$index]['status'] = $status; + $items[$index]['toelichting'] = $toelichting; + $items[$index]['photoRefs'] = $photoRefs; + $items[$index]['completedAt'] = (new \DateTimeImmutable())->format(\DateTimeInterface::ATOM); + $itemFound = true; + break; + } + } + + if (!$itemFound) { + throw new \InvalidArgumentException('Checklist item not found: ' . $itemId); + } + + $checklist['items'] = $items; + + $this->logger->info( + 'Checklist item {itemId} completed with status {status}', + ['itemId' => $itemId, 'status' => $status] + ); + + return $checklist; + } + + /** + * Get the completion progress of a checklist. + * + * @param array $checklist The checklist data. + * + * @return array{completed: int, total: int, percentage: float} + * + * @psalm-suppress PossiblyUnusedMethod + */ + public function getProgress(array $checklist): array + { + $items = $checklist['items'] ?? []; + $total = count($items); + $completed = 0; + + foreach ($items as $item) { + if (!empty($item['status'])) { + $completed++; + } + } + + return [ + 'completed' => $completed, + 'total' => $total, + 'percentage' => $total > 0 ? round(($completed / $total) * 100, 1) : 0.0, + ]; + } + + /** + * Validate that all checklist items are completed. + * + * @param array $checklist The checklist data. + * + * @return array{valid: bool, missingItems: string[]} + * + * @psalm-suppress PossiblyUnusedMethod + */ + public function validateCompletion(array $checklist): array + { + $items = $checklist['items'] ?? []; + $missingItems = []; + + foreach ($items as $item) { + if (empty($item['status'])) { + $missingItems[] = $item['description'] ?? ($item['id'] ?? 'unknown'); + } + } + + return [ + 'valid' => empty($missingItems), + 'missingItems' => $missingItems, + ]; + } + + /** + * Get a summary of conformity results. + * + * @param array $checklist The checklist data. + * + * @return array{conform: int, nietConform: int, nvt: int, notCompleted: int} + * + * @psalm-suppress PossiblyUnusedMethod + */ + public function getConformitySummary(array $checklist): array + { + $items = $checklist['items'] ?? []; + $summary = [ + 'conform' => 0, + 'nietConform' => 0, + 'nvt' => 0, + 'notCompleted' => 0, + ]; + + foreach ($items as $item) { + $status = $item['status'] ?? ''; + match ($status) { + self::STATUS_CONFORM => $summary['conform']++, + self::STATUS_NIET_CONFORM => $summary['nietConform']++, + self::STATUS_NVT => $summary['nvt']++, + default => $summary['notCompleted']++, + }; + } + + return $summary; + } +} diff --git a/lib/Service/ConsultationService.php b/lib/Service/ConsultationService.php new file mode 100644 index 0000000..8705f28 --- /dev/null +++ b/lib/Service/ConsultationService.php @@ -0,0 +1,298 @@ + + * @copyright 2024 Conduction B.V. + * @license EUPL-1.2 https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12 + * + * @version GIT: + * + * @link https://procest.nl + */ + +declare(strict_types=1); + +namespace OCA\Procest\Service; + +use OCA\Procest\AppInfo\Application; +use Psr\Log\LoggerInterface; + +/** + * Service for consultation (adviesaanvraag) management. + */ +class ConsultationService +{ + + /** + * Valid consultation statuses. + */ + private const VALID_STATUSES = [ + 'open', + 'in_behandeling', + 'advies_uitgebracht', + 'afgesloten', + ]; + + /** + * Valid advice response types. + */ + private const VALID_RESPONSES = [ + 'positief', + 'positief_met_voorwaarden', + 'negatief', + 'niet_van_toepassing', + ]; + + + /** + * Constructor. + * + * @param SettingsService $settingsService Settings service + * @param LoggerInterface $logger Logger + */ + public function __construct( + private readonly SettingsService $settingsService, + private readonly LoggerInterface $logger, + ) { + } + + + /** + * Create a consultation linked to a parent case. + * + * @param array $data Consultation data + * + * @return array Created consultation with ID + * + * @throws \RuntimeException If OpenRegister unavailable + */ + public function createConsultation(array $data): array + { + $objectService = $this->settingsService->getObjectService(); + if ($objectService === null) { + throw new \RuntimeException('OpenRegister is not available'); + } + + $register = $this->settingsService->getConfigValue('register'); + $schema = $this->settingsService->getConfigValue('consultation_schema'); + + if (empty($register) === true || empty($schema) === true) { + throw new \RuntimeException('Consultation schema not configured'); + } + + // Ensure required fields. + if (empty($data['parentZaak']) === true) { + throw new \RuntimeException('parentZaak is required'); + } + + if (empty($data['adviesInstantie']) === true) { + throw new \RuntimeException('adviesInstantie is required'); + } + + // Set defaults. + $data['status'] = 'open'; + $data['createdAt'] = date('Y-m-d\TH:i:s'); + + $consultation = $objectService->saveObject($register, $schema, $data); + + $this->logger->info( + 'Consultation created: ' . $consultation->getUuid() + . ' for case ' . $data['parentZaak'], + ['app' => Application::APP_ID], + ); + + return [ + 'id' => $consultation->getUuid(), + 'status' => 'open', + ]; + } + + + /** + * Get all consultations for a case. + * + * @param string $caseId The parent case UUID + * + * @return array> List of consultations + */ + public function getConsultationsForCase(string $caseId): array + { + $objectService = $this->settingsService->getObjectService(); + if ($objectService === null) { + return []; + } + + $register = $this->settingsService->getConfigValue('register'); + $schema = $this->settingsService->getConfigValue('consultation_schema'); + + if (empty($register) === true || empty($schema) === true) { + return []; + } + + $results = $objectService->findObjects( + $register, + $schema, + ['parentZaak' => $caseId], + [], + 100, + ); + + return is_array($results) ? $results : []; + } + + + /** + * Update consultation status. + * + * @param string $consultationId The consultation UUID + * @param string $newStatus The new status + * + * @return array Updated consultation + * + * @throws \RuntimeException If invalid status or OpenRegister unavailable + */ + public function updateStatus(string $consultationId, string $newStatus): array + { + if (in_array($newStatus, self::VALID_STATUSES, true) === false) { + throw new \RuntimeException('Invalid status: ' . $newStatus); + } + + $objectService = $this->settingsService->getObjectService(); + if ($objectService === null) { + throw new \RuntimeException('OpenRegister is not available'); + } + + $register = $this->settingsService->getConfigValue('register'); + $schema = $this->settingsService->getConfigValue('consultation_schema'); + + $updateData = ['status' => $newStatus]; + if ($newStatus === 'afgesloten') { + $updateData['closedAt'] = date('Y-m-d\TH:i:s'); + } + + $result = $objectService->saveObject($register, $schema, $updateData, $consultationId); + + $this->logger->info( + 'Consultation ' . $consultationId . ' status updated to ' . $newStatus, + ['app' => Application::APP_ID], + ); + + return [ + 'id' => $consultationId, + 'status' => $newStatus, + ]; + } + + + /** + * Submit advice response to a consultation. + * + * @param string $consultationId The consultation UUID + * @param array $response Response data (advies, toelichting, voorwaarden) + * + * @return array Updated consultation + * + * @throws \RuntimeException If invalid response or OpenRegister unavailable + */ + public function submitResponse(string $consultationId, array $response): array + { + $advies = $response['advies'] ?? ''; + if (in_array($advies, self::VALID_RESPONSES, true) === false) { + throw new \RuntimeException('Invalid advice type: ' . $advies); + } + + $objectService = $this->settingsService->getObjectService(); + if ($objectService === null) { + throw new \RuntimeException('OpenRegister is not available'); + } + + $register = $this->settingsService->getConfigValue('register'); + $schema = $this->settingsService->getConfigValue('consultation_schema'); + + $updateData = [ + 'advies' => $advies, + 'toelichting' => $response['toelichting'] ?? '', + 'voorwaarden' => isset($response['voorwaarden']) + ? json_encode($response['voorwaarden']) + : null, + 'adviesDatum' => date('Y-m-d'), + 'status' => 'advies_uitgebracht', + ]; + + $result = $objectService->saveObject($register, $schema, $updateData, $consultationId); + + $this->logger->info( + 'Consultation ' . $consultationId . ' advice submitted: ' . $advies, + ['app' => Application::APP_ID], + ); + + return [ + 'id' => $consultationId, + 'advies' => $advies, + 'status' => 'advies_uitgebracht', + ]; + } + + + /** + * Get overdue consultations. + * + * @return array> List of overdue consultations + */ + public function getOverdueConsultations(): array + { + $objectService = $this->settingsService->getObjectService(); + if ($objectService === null) { + return []; + } + + $register = $this->settingsService->getConfigValue('register'); + $schema = $this->settingsService->getConfigValue('consultation_schema'); + + if (empty($register) === true || empty($schema) === true) { + return []; + } + + // Fetch open/in_behandeling consultations. + $allOpen = $objectService->findObjects( + $register, + $schema, + ['status' => 'open'], + [], + 200, + ); + + $allInProgress = $objectService->findObjects( + $register, + $schema, + ['status' => 'in_behandeling'], + [], + 200, + ); + + $all = array_merge( + is_array($allOpen) ? $allOpen : [], + is_array($allInProgress) ? $allInProgress : [], + ); + $today = date('Y-m-d'); + $overdue = []; + + foreach ($all as $consultation) { + $deadline = $consultation['uiterlijkeReactiedatum'] ?? ''; + if ($deadline !== '' && $deadline < $today) { + $overdue[] = $consultation; + } + } + + return $overdue; + } +} diff --git a/lib/Service/DsoIntakeService.php b/lib/Service/DsoIntakeService.php new file mode 100644 index 0000000..0d75539 --- /dev/null +++ b/lib/Service/DsoIntakeService.php @@ -0,0 +1,166 @@ + + * @copyright 2024 Conduction B.V. + * @license EUPL-1.2 https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12 + * + * @version GIT: + * + * @link https://procest.nl + */ + +declare(strict_types=1); + +namespace OCA\Procest\Service; + +use OCA\Procest\AppInfo\Application; +use Psr\Log\LoggerInterface; + +/** + * Service for DSO/Omgevingsloket intake processing. + * + * Creates permit cases from DSO vergunningaanvraag messages. + * Supports multiple activities per application and calculates + * deadlines based on procedure type (regulier: 8 weeks, uitgebreid: 26 weeks). + */ +class DsoIntakeService +{ + + /** + * Deadline durations per procedure type (ISO 8601). + */ + private const DEADLINE_DURATIONS = [ + 'regulier' => 'P56D', + 'uitgebreid' => 'P182D', + ]; + + + /** + * Constructor. + * + * @param SettingsService $settingsService Settings service + * @param LoggerInterface $logger Logger + */ + public function __construct( + private readonly SettingsService $settingsService, + private readonly LoggerInterface $logger, + ) { + } + + + /** + * Process a DSO vergunningaanvraag and create a case. + * + * @param array $dsoMessage The DSO message payload + * + * @return array Created case data with ID + * + * @throws \RuntimeException If OpenRegister is unavailable or configuration missing + */ + public function processAanvraag(array $dsoMessage): array + { + $objectService = $this->settingsService->getObjectService(); + if ($objectService === null) { + throw new \RuntimeException('OpenRegister is not available'); + } + + $register = $this->settingsService->getConfigValue('register'); + if (empty($register) === true) { + throw new \RuntimeException('Procest register not configured'); + } + + // Extract fields from DSO message. + $activiteiten = $dsoMessage['activiteiten'] ?? []; + $locatie = $dsoMessage['locatie'] ?? ''; + $aanvrager = $dsoMessage['aanvrager'] ?? []; + $bouwkosten = $dsoMessage['bouwkosten'] ?? 0; + $procedureType = $dsoMessage['procedureType'] ?? 'regulier'; + $dsoZaaknummer = $dsoMessage['zaaknummer'] ?? ''; + $bijlagen = $dsoMessage['bijlagen'] ?? []; + + // Build activity description. + $activityNames = array_map( + static function ($act) { + return is_array($act) ? ($act['naam'] ?? '') : (string) $act; + }, + $activiteiten, + ); + $activityStr = implode(', ', array_filter($activityNames)); + + // Determine processing deadline. + $deadline = self::DEADLINE_DURATIONS[$procedureType] + ?? self::DEADLINE_DURATIONS['regulier']; + + // Create the case. + $caseSchema = $this->settingsService->getConfigValue('case_schema'); + $caseData = [ + 'title' => 'Omgevingsvergunning' . ($activityStr !== '' ? ': ' . $activityStr : ''), + 'description' => 'Vergunningaanvraag ontvangen via DSO/Omgevingsloket' + . ($dsoZaaknummer !== '' ? ' (DSO: ' . $dsoZaaknummer . ')' : ''), + 'startDate' => date('Y-m-d'), + 'priority' => 'normal', + ]; + + $caseObj = $objectService->saveObject($register, $caseSchema, $caseData); + $caseId = $caseObj->getUuid(); + + // Store DSO-specific properties. + $propertySchema = $this->settingsService->getConfigValue('case_property_schema'); + $properties = [ + 'dsoZaaknummer' => $dsoZaaknummer, + 'activiteiten' => $activityStr, + 'locatie' => is_array($locatie) ? json_encode($locatie) : $locatie, + 'bouwkosten' => (string) $bouwkosten, + 'procedureType' => $procedureType, + 'aanvragerNaam' => $aanvrager['naam'] ?? '', + ]; + + foreach ($properties as $name => $value) { + if ($value === '') { + continue; + } + + $objectService->saveObject($register, $propertySchema, [ + 'case' => $caseId, + 'name' => $name, + 'value' => $value, + ]); + } + + $this->logger->info( + 'DSO intake processed: case ' . $caseId . ' (DSO: ' . $dsoZaaknummer . ')', + ['app' => Application::APP_ID], + ); + + return [ + 'caseId' => $caseId, + 'dsoZaaknummer' => $dsoZaaknummer, + 'activiteiten' => $activityNames, + 'procedureType' => $procedureType, + 'deadline' => $deadline, + ]; + } + + + /** + * Get the processing deadline duration for a procedure type. + * + * @param string $procedureType The procedure type (regulier or uitgebreid) + * + * @return string ISO 8601 duration + */ + public function getDeadlineDuration(string $procedureType): string + { + return self::DEADLINE_DURATIONS[$procedureType] + ?? self::DEADLINE_DURATIONS['regulier']; + } +} diff --git a/lib/Service/GisProxyService.php b/lib/Service/GisProxyService.php new file mode 100644 index 0000000..74b11c9 --- /dev/null +++ b/lib/Service/GisProxyService.php @@ -0,0 +1,361 @@ + + * @copyright 2024 Conduction B.V. + * @license EUPL-1.2 https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12 + * + * @version GIT: + * + * @link https://procest.nl + */ + +declare(strict_types=1); + +namespace OCA\Procest\Service; + +use OCP\ICache; +use OCP\ICacheFactory; +use OCP\IUserSession; +use Psr\Container\ContainerInterface; +use Psr\Log\LoggerInterface; + +/** + * Service for proxying and caching WMS/WFS requests to external GIS services. + */ +class GisProxyService +{ + + /** + * Cache TTL for proxied responses (5 minutes). + */ + private const CACHE_TTL = 300; + + /** + * Rate limit: max requests per minute per user. + */ + private const RATE_LIMIT = 100; + + /** + * The cache instance. + * + * @var ICache The cache instance. + */ + private ICache $cache; + + /** + * Constructor for GisProxyService. + * + * @param ICacheFactory $cacheFactory The cache factory + * @param IUserSession $userSession The user session + * @param ContainerInterface $container The DI container + * @param LoggerInterface $logger The logger + * + * @return void + */ + public function __construct( + ICacheFactory $cacheFactory, + private IUserSession $userSession, + private ContainerInterface $container, + private LoggerInterface $logger, + ) { + $this->cache = $cacheFactory->createDistributed('procest_gis_proxy'); + }//end __construct() + + /** + * Proxy a request to an external WMS/WFS service. + * + * @param string $url The target URL + * @param array $query Query parameters to forward + * @param string $type Request type (wms, wfs, capabilities) + * + * @return array The response data + * + * @throws \RuntimeException If URL is not allowed or rate limit exceeded + */ + public function proxyRequest(string $url, array $query, string $type): array + { + // Validate URL against allowlist. + if ($this->isUrlAllowed(url: $url) === false) { + throw new \RuntimeException('URL not in configured layer allowlist', 403); + } + + // Check rate limit. + $this->checkRateLimit(); + + // Build the full request URL. + $fullUrl = $url; + if (empty($query) === false) { + $fullUrl .= '?'.http_build_query(data: $query); + } + + // Check cache. + $cacheKey = 'proxy_'.md5(string: $fullUrl); + $cached = $this->cache->get($cacheKey); + if ($cached !== null) { + return $cached; + } + + // Forward the request. + $streamOptions = [ + 'http' => [ + 'method' => 'GET', + 'timeout' => 30, + 'header' => "Accept: application/json, application/xml, image/png\r\n", + ], + ]; + $context = stream_context_create(options: $streamOptions); + + $response = @file_get_contents(filename: $fullUrl, use_include_path: false, context: $context); + if ($response === false) { + throw new \RuntimeException('Failed to fetch from external service'); + } + + // Parse XML responses to JSON for WFS/capabilities. + $contentType = ''; + // $http_response_header is populated by file_get_contents() via PHP. + // It is always set after a successful HTTP wrapper call. + foreach ($http_response_header as $header) { + if (stripos(haystack: $header, needle: 'Content-Type:') === 0) { + $contentType = trim(string: substr(string: $header, offset: 13)); + break; + } + } + + $result = ['data' => $response, 'contentType' => $contentType]; + + if (str_contains(haystack: $contentType, needle: 'xml') === true) { + $result['data'] = $this->xmlToArray(xml: $response); + } else if (str_contains(haystack: $contentType, needle: 'json') === true) { + $decoded = json_decode(json: $response, associative: true); + if ($decoded !== null) { + $result['data'] = $decoded; + } + } + + // Cache the result. + $this->cache->set($cacheKey, $result, self::CACHE_TTL); + + return $result; + }//end proxyRequest() + + /** + * Fetch and parse GetCapabilities from a WMS/WFS service. + * + * @param string $url The service base URL + * @param string $type Service type (wms or wfs) + * + * @return array Parsed capabilities with layers list + */ + public function getCapabilities(string $url, string $type): array + { + $service = 'WMS'; + if (strtoupper($type) === 'WFS') { + $service = 'WFS'; + } + + $version = '1.3.0'; + if ($service === 'WFS') { + $version = '2.0.0'; + } + + $separator = '?'; + if (str_contains(haystack: $url, needle: '?') === true) { + $separator = '&'; + } + + $queryParams = http_build_query( + data: [ + 'service' => $service, + 'request' => 'GetCapabilities', + 'version' => $version, + ] + ); + $capUrl = $url.$separator.$queryParams; + + $streamOptions = [ + 'http' => [ + 'method' => 'GET', + 'timeout' => 30, + ], + ]; + $context = stream_context_create(options: $streamOptions); + + $response = @file_get_contents(filename: $capUrl, use_include_path: false, context: $context); + if ($response === false) { + throw new \RuntimeException('Failed to fetch GetCapabilities'); + } + + return $this->parseCapabilities(xml: $response, service: $service); + }//end getCapabilities() + + /** + * Check if a URL is in the allowlist (matches a configured MapLayer URL). + * + * @param string $url The URL to check + * + * @return bool True if allowed + */ + private function isUrlAllowed(string $url): bool + { + // Always allow PDOK URLs. + if (str_contains(haystack: $url, needle: 'pdok.nl') === true + || str_contains(haystack: $url, needle: 'kadaster.nl') === true + ) { + return true; + } + + // Check against configured MapLayer URLs. + try { + $objectService = $this->container->get('OCA\OpenRegister\Service\ObjectService'); + $settingsService = $this->container->get(SettingsService::class); + $schemaId = $settingsService->getConfigValue('map_layer_schema'); + $registerId = $settingsService->getConfigValue('register'); + + if (empty($schemaId) === true || empty($registerId) === true) { + return false; + } + + $layers = $objectService->findAll( + schemaId: (int) $schemaId, + registerId: (int) $registerId, + ); + + $parsedUrl = parse_url(url: $url); + $urlHost = ($parsedUrl['host'] ?? ''); + + foreach ($layers as $layer) { + $layerObj = $layer; + if (is_object($layer) === true) { + $layerObj = $layer->jsonSerialize(); + } + + $layerUrl = ($layerObj['url'] ?? ''); + $parsedLayer = parse_url(url: $layerUrl); + $layerHost = ($parsedLayer['host'] ?? ''); + if ($urlHost === $layerHost) { + return true; + } + } + } catch (\Exception $e) { + $this->logger->warning( + 'GIS proxy allowlist check failed', + ['exception' => $e->getMessage()] + ); + }//end try + + return false; + }//end isUrlAllowed() + + /** + * Check rate limiting for the current user. + * + * @throws \RuntimeException If rate limit exceeded (code 429) + * + * @return void + */ + private function checkRateLimit(): void + { + $user = $this->userSession->getUser(); + if ($user === null) { + return; + } + + $userId = $user->getUID(); + $cacheKey = 'rate_limit_'.$userId.'_'.date(format: 'YmdHi'); + $current = (int) $this->cache->get($cacheKey); + + if ($current >= self::RATE_LIMIT) { + $this->logger->warning( + 'GIS proxy rate limit exceeded', + ['userId' => $userId, 'count' => $current] + ); + throw new \RuntimeException('Rate limit exceeded', 429); + } + + $this->cache->set($cacheKey, ($current + 1), 60); + }//end checkRateLimit() + + /** + * Parse GetCapabilities XML response into a structured array. + * + * @param string $xml The XML response + * @param string $service The service type (WMS or WFS) + * + * @return array Parsed capabilities + */ + private function parseCapabilities(string $xml, string $service): array + { + $doc = new \DOMDocument(); + $doc->loadXML(source: $xml); + + $layers = []; + + if ($service === 'WMS') { + $layerElements = $doc->getElementsByTagName(qualifiedName: 'Layer'); + foreach ($layerElements as $layerEl) { + $nameEl = $layerEl->getElementsByTagName(qualifiedName: 'Name')->item(0); + $titleEl = $layerEl->getElementsByTagName(qualifiedName: 'Title')->item(0); + if ($nameEl !== null) { + $titleText = $nameEl->textContent; + if ($titleEl !== null) { + $titleText = $titleEl->textContent; + } + + $layers[] = [ + 'name' => $nameEl->textContent, + 'title' => $titleText, + ]; + } + } + } else { + // WFS: look for FeatureType elements. + $featureTypes = $doc->getElementsByTagName(qualifiedName: 'FeatureType'); + foreach ($featureTypes as $ft) { + $nameEl = $ft->getElementsByTagName(qualifiedName: 'Name')->item(0); + $titleEl = $ft->getElementsByTagName(qualifiedName: 'Title')->item(0); + if ($nameEl !== null) { + $titleText = $nameEl->textContent; + if ($titleEl !== null) { + $titleText = $titleEl->textContent; + } + + $layers[] = [ + 'name' => $nameEl->textContent, + 'title' => $titleText, + ]; + } + } + }//end if + + return [ + 'service' => $service, + 'layers' => $layers, + ]; + }//end parseCapabilities() + + /** + * Convert an XML string to an associative array. + * + * @param string $xml The XML string + * + * @return array|string The parsed data + */ + private function xmlToArray(string $xml): array|string + { + $simpleXml = @simplexml_load_string(data: $xml); + if ($simpleXml === false) { + return $xml; + } + + return json_decode(json: json_encode(value: $simpleXml), associative: true); + }//end xmlToArray() +}//end class diff --git a/lib/Service/InspectionService.php b/lib/Service/InspectionService.php new file mode 100644 index 0000000..e2fa0ca --- /dev/null +++ b/lib/Service/InspectionService.php @@ -0,0 +1,264 @@ + + * @copyright 2024 Conduction B.V. + * @license EUPL-1.2 https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12 + * + * @version GIT: + * + * @link https://procest.nl + */ + +declare(strict_types=1); + +namespace OCA\Procest\Service; + +use Psr\Log\LoggerInterface; + +/** + * Service for managing field inspections. + * + * Handles inspection task listing, GPS location capture with distance + * validation, photo metadata management, and inspection completion. + * + * @psalm-suppress UnusedClass + */ +class InspectionService +{ + /** + * Inspection status: planned. + */ + public const STATUS_PLANNED = 'planned'; + + /** + * Inspection status: in progress. + */ + public const STATUS_IN_PROGRESS = 'in_progress'; + + /** + * Inspection status: completed. + */ + public const STATUS_COMPLETED = 'completed'; + + /** + * Maximum distance (in meters) before showing a location mismatch warning. + */ + private const LOCATION_WARNING_THRESHOLD = 500; + + /** + * Earth radius in meters for Haversine calculation. + */ + private const EARTH_RADIUS = 6371000; + + /** + * Constructor. + * + * @param SettingsService $settingsService Settings service + * @param LoggerInterface $logger Logger + */ + public function __construct( + private readonly SettingsService $settingsService, + private readonly LoggerInterface $logger, + ) { + } + + /** + * Get inspections assigned to an inspector, optionally filtered by date. + * + * @param string $inspectorId The inspector's user ID. + * @param string|null $date Optional date filter (Y-m-d format). + * @param array> $allInspections All inspection data (from OpenRegister). + * + * @return array> Filtered and sorted inspections. + * + * @psalm-suppress PossiblyUnusedMethod + */ + public function getInspections( + string $inspectorId, + ?string $date, + array $allInspections, + ): array { + $filtered = array_filter($allInspections, function (array $inspection) use ($inspectorId, $date): bool { + if (($inspection['inspectorId'] ?? '') !== $inspectorId) { + return false; + } + if ($date !== null) { + $inspectionDate = substr($inspection['plannedDateTime'] ?? '', 0, 10); + if ($inspectionDate !== $date) { + return false; + } + } + return true; + }); + + // Sort by planned time. + usort($filtered, function (array $a, array $b): int { + return ($a['plannedDateTime'] ?? '') <=> ($b['plannedDateTime'] ?? ''); + }); + + return array_values($filtered); + } + + /** + * Capture GPS location for an inspection and validate against planned location. + * + * @param array $inspection The inspection data. + * @param float $latitude The captured latitude. + * @param float $longitude The captured longitude. + * @param float $accuracy The GPS accuracy in meters. + * + * @return array{ + * inspection: array, + * warning: string|null, + * distance: float + * } + * + * @psalm-suppress PossiblyUnusedMethod + */ + public function captureLocation( + array $inspection, + float $latitude, + float $longitude, + float $accuracy, + ): array { + $inspection['capturedLocation'] = [ + 'latitude' => $latitude, + 'longitude' => $longitude, + 'accuracy' => $accuracy, + 'capturedAt' => (new \DateTimeImmutable())->format(\DateTimeInterface::ATOM), + ]; + + $warning = null; + $distance = 0.0; + + // Check distance from planned location. + $plannedLat = (float)($inspection['plannedLatitude'] ?? 0.0); + $plannedLon = (float)($inspection['plannedLongitude'] ?? 0.0); + + if ($plannedLat !== 0.0 && $plannedLon !== 0.0) { + $distance = $this->calculateDistance($latitude, $longitude, $plannedLat, $plannedLon); + + if ($distance > self::LOCATION_WARNING_THRESHOLD) { + $warning = sprintf( + 'Uw locatie wijkt af van het inspectieadres (%.0f meter afstand)', + $distance + ); + $this->logger->warning( + 'Location mismatch for inspection {id}: {distance}m from planned', + [ + 'id' => $inspection['id'] ?? 'unknown', + 'distance' => round($distance), + ] + ); + } + } + + if ($inspection['status'] === self::STATUS_PLANNED) { + $inspection['status'] = self::STATUS_IN_PROGRESS; + } + + return [ + 'inspection' => $inspection, + 'warning' => $warning, + 'distance' => round($distance, 1), + ]; + } + + /** + * Record photo metadata for an inspection. + * + * @param array $inspection The inspection data. + * @param array $photoMetadata Photo info (fileRef, latitude, longitude, checklistItemId). + * + * @return array The updated inspection with photo added. + * + * @psalm-suppress PossiblyUnusedMethod + */ + public function addPhoto(array $inspection, array $photoMetadata): array + { + $photo = [ + 'id' => $photoMetadata['id'] ?? uniqid('photo_', true), + 'fileRef' => $photoMetadata['fileRef'] ?? '', + 'latitude' => $photoMetadata['latitude'] ?? null, + 'longitude' => $photoMetadata['longitude'] ?? null, + 'checklistItemId' => $photoMetadata['checklistItemId'] ?? null, + 'capturedAt' => (new \DateTimeImmutable())->format(\DateTimeInterface::ATOM), + ]; + + $inspection['photos'] = $inspection['photos'] ?? []; + $inspection['photos'][] = $photo; + + return $inspection; + } + + /** + * Complete an inspection. + * + * @param array $inspection The inspection data. + * @param string $conclusion Overall conclusion text. + * + * @return array The completed inspection. + * + * @throws \InvalidArgumentException If not all checklist items are completed. + * + * @psalm-suppress PossiblyUnusedMethod + */ + public function completeInspection(array $inspection, string $conclusion = ''): array + { + $checklist = $inspection['checklist'] ?? []; + $items = $checklist['items'] ?? []; + + // Check if all items are completed. + foreach ($items as $item) { + if (empty($item['status'])) { + throw new \InvalidArgumentException( + 'Not all checklist items are completed. Item: ' . ($item['description'] ?? 'unknown') + ); + } + } + + $inspection['status'] = self::STATUS_COMPLETED; + $inspection['conclusion'] = $conclusion; + $inspection['completedAt'] = (new \DateTimeImmutable())->format(\DateTimeInterface::ATOM); + + $this->logger->info( + 'Inspection {id} completed', + ['id' => $inspection['id'] ?? 'unknown'] + ); + + return $inspection; + } + + /** + * Calculate distance between two GPS coordinates using Haversine formula. + * + * @param float $lat1 Latitude of point 1. + * @param float $lon1 Longitude of point 1. + * @param float $lat2 Latitude of point 2. + * @param float $lon2 Longitude of point 2. + * + * @return float Distance in meters. + */ + private function calculateDistance(float $lat1, float $lon1, float $lat2, float $lon2): float + { + $dLat = deg2rad($lat2 - $lat1); + $dLon = deg2rad($lon2 - $lon1); + + $a = sin($dLat / 2) * sin($dLat / 2) + + cos(deg2rad($lat1)) * cos(deg2rad($lat2)) + * sin($dLon / 2) * sin($dLon / 2); + + $c = 2 * atan2(sqrt($a), sqrt(1 - $a)); + + return self::EARTH_RADIUS * $c; + } +} diff --git a/lib/Service/LegesCalculationService.php b/lib/Service/LegesCalculationService.php new file mode 100644 index 0000000..75b48ba --- /dev/null +++ b/lib/Service/LegesCalculationService.php @@ -0,0 +1,365 @@ + + * @copyright 2024 Conduction B.V. + * @license EUPL-1.2 https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12 + * + * @version GIT: + * + * @link https://procest.nl + */ + +declare(strict_types=1); + +namespace OCA\Procest\Service; + +use Psr\Log\LoggerInterface; + +/** + * Service for calculating municipal fees (leges) on permit cases. + * + * Supports calculation types: vast bedrag (fixed), percentage, staffel (tiered), + * maximum (capped), and combinatie (multiple types combined). + * + * @psalm-suppress UnusedClass + */ +class LegesCalculationService +{ + /** + * Calculation type: fixed amount. + */ + public const TYPE_VAST = 'vast'; + + /** + * Calculation type: percentage of a base amount. + */ + public const TYPE_PERCENTAGE = 'percentage'; + + /** + * Calculation type: tiered brackets. + */ + public const TYPE_STAFFEL = 'staffel'; + + /** + * Calculation type: capped maximum. + */ + public const TYPE_MAXIMUM = 'maximum'; + + /** + * Calculation type: combination of multiple types. + */ + public const TYPE_COMBINATIE = 'combinatie'; + + /** + * Calculation precision (decimal places). + */ + private const PRECISION = 2; + + /** + * Constructor. + * + * @param LoggerInterface $logger The logger instance. + */ + public function __construct( + private readonly LoggerInterface $logger, + ) { + } + + /** + * Calculate leges for a case based on applicable verordening. + * + * @param array $caseData The case data (bouwkosten, activiteiten, etc.). + * @param array $verordening The applicable verordening with artikelen. + * @param string $calculatedBy User ID of the person triggering the calculation. + * + * @return array{ + * total: float, + * breakdown: array, + * verordening: string, + * calculatedBy: string, + * calculatedAt: string, + * version: int + * } + * + * @psalm-suppress PossiblyUnusedMethod + */ + public function calculate( + array $caseData, + array $verordening, + string $calculatedBy, + ): array { + $this->logger->info( + 'Calculating leges for case with verordening {verordening}', + ['verordening' => $verordening['name'] ?? 'unknown'] + ); + + $artikelen = $verordening['artikelen'] ?? []; + $breakdown = []; + $total = 0.0; + + foreach ($artikelen as $artikel) { + $result = $this->calculateArtikel($artikel, $caseData); + if ($result !== null) { + $breakdown[] = $result; + $total += $result['amount']; + } + } + + // Apply global maximum if configured. + $globalMax = $verordening['globalMaximum'] ?? null; + if ($globalMax !== null && $total > (float)$globalMax) { + $total = (float)$globalMax; + } + + $total = round($total, self::PRECISION); + + return [ + 'total' => $total, + 'breakdown' => $breakdown, + 'verordening' => $verordening['name'] ?? '', + 'calculatedBy' => $calculatedBy, + 'calculatedAt' => (new \DateTimeImmutable())->format(\DateTimeInterface::ATOM), + 'version' => 1, + ]; + } + + /** + * Recalculate leges with corrected case data, preserving history. + * + * @param array $caseData The corrected case data. + * @param array $verordening The applicable verordening. + * @param array $previousCalc The previous calculation result. + * @param string $calculatedBy User ID. + * @param string $correctionReason Reason for the correction. + * + * @return array The new calculation with version incremented. + * + * @psalm-suppress PossiblyUnusedMethod + */ + public function recalculate( + array $caseData, + array $verordening, + array $previousCalc, + string $calculatedBy, + string $correctionReason, + ): array { + $newCalc = $this->calculate($caseData, $verordening, $calculatedBy); + $newCalc['version'] = ($previousCalc['version'] ?? 0) + 1; + $newCalc['previousVersion'] = $previousCalc['version'] ?? 0; + $newCalc['correctionReason'] = $correctionReason; + $newCalc['previousTotal'] = $previousCalc['total'] ?? 0.0; + $newCalc['difference'] = round( + $newCalc['total'] - ($previousCalc['total'] ?? 0.0), + self::PRECISION + ); + + return $newCalc; + } + + /** + * Calculate verrekening (deduction of previously imposed fees). + * + * @param float $currentAmount The current calculation amount. + * @param float $previousAmount The previously imposed amount. + * + * @return array{netAmount: float, deduction: float, currentAmount: float, previousAmount: float} + * + * @psalm-suppress PossiblyUnusedMethod + */ + public function calculateVerrekening(float $currentAmount, float $previousAmount): array + { + $netAmount = round($currentAmount - $previousAmount, self::PRECISION); + + return [ + 'netAmount' => $netAmount, + 'deduction' => $previousAmount, + 'currentAmount' => $currentAmount, + 'previousAmount' => $previousAmount, + ]; + } + + /** + * Calculate teruggaaf (refund). + * + * @param float $imposedAmount The originally imposed amount. + * @param float $refundFraction Fraction to refund (0.0 - 1.0, default 1.0 for full refund). + * @param string $reason Reason for the refund. + * + * @return array{refundAmount: float, originalAmount: float, fraction: float, reason: string} + * + * @psalm-suppress PossiblyUnusedMethod + */ + public function calculateTeruggaaf( + float $imposedAmount, + float $refundFraction = 1.0, + string $reason = '', + ): array { + $refundAmount = round(-1 * $imposedAmount * $refundFraction, self::PRECISION); + + return [ + 'refundAmount' => $refundAmount, + 'originalAmount' => $imposedAmount, + 'fraction' => $refundFraction, + 'reason' => $reason, + ]; + } + + /** + * Calculate a single artikel. + * + * @param array $artikel The artikel definition. + * @param array $caseData The case data. + * + * @return array{artikel: string, description: string, grondslag: float, amount: float, type: string}|null + */ + private function calculateArtikel(array $artikel, array $caseData): ?array + { + $type = $artikel['type'] ?? ''; + $artikelNr = $artikel['nummer'] ?? ''; + $description = $artikel['omschrijving'] ?? ''; + + // Determine the grondslag (base amount) from case data. + $grondslagField = $artikel['grondslagField'] ?? 'bouwkosten'; + $grondslag = (float)($caseData[$grondslagField] ?? 0.0); + + $amount = match ($type) { + self::TYPE_VAST => $this->calculateVast($artikel), + self::TYPE_PERCENTAGE => $this->calculatePercentage($grondslag, $artikel), + self::TYPE_STAFFEL => $this->calculateStaffel($grondslag, $artikel), + self::TYPE_MAXIMUM => $this->calculateMaximum($grondslag, $artikel), + self::TYPE_COMBINATIE => $this->calculateCombinatie($grondslag, $artikel, $caseData), + default => null, + }; + + if ($amount === null) { + return null; + } + + return [ + 'artikel' => $artikelNr, + 'description' => $description, + 'grondslag' => $grondslag, + 'amount' => round($amount, self::PRECISION), + 'type' => $type, + ]; + } + + /** + * Calculate a fixed amount (vast bedrag). + * + * @param array $artikel The artikel definition. + * + * @return float The fixed amount. + */ + private function calculateVast(array $artikel): float + { + return (float)($artikel['bedrag'] ?? 0.0); + } + + /** + * Calculate a percentage of the grondslag. + * + * @param float $grondslag The base amount. + * @param array $artikel The artikel definition. + * + * @return float The calculated amount. + */ + private function calculatePercentage(float $grondslag, array $artikel): float + { + $percentage = (float)($artikel['percentage'] ?? 0.0); + return $grondslag * ($percentage / 100.0); + } + + /** + * Calculate using tiered brackets (staffel). + * + * Each bracket has a 'from', 'to', and 'percentage'. + * The amount within each bracket is multiplied by the bracket's rate. + * + * @param float $grondslag The base amount. + * @param array $artikel The artikel with 'brackets' array. + * + * @return float The total calculated across all brackets. + */ + private function calculateStaffel(float $grondslag, array $artikel): float + { + $brackets = $artikel['brackets'] ?? []; + $total = 0.0; + + foreach ($brackets as $bracket) { + $from = (float)($bracket['from'] ?? 0.0); + $to = (float)($bracket['to'] ?? PHP_FLOAT_MAX); + $percentage = (float)($bracket['percentage'] ?? 0.0); + + if ($grondslag <= $from) { + break; + } + + $bracketAmount = min($grondslag, $to) - $from; + if ($bracketAmount > 0) { + $total += $bracketAmount * ($percentage / 100.0); + } + } + + return $total; + } + + /** + * Calculate with a maximum cap. + * + * @param float $grondslag The base amount. + * @param array $artikel The artikel with 'maximum' and calculation sub-type. + * + * @return float The capped amount. + */ + private function calculateMaximum(float $grondslag, array $artikel): float + { + $maximum = (float)($artikel['maximum'] ?? PHP_FLOAT_MAX); + $subType = $artikel['subType'] ?? self::TYPE_PERCENTAGE; + + $calculated = match ($subType) { + self::TYPE_PERCENTAGE => $this->calculatePercentage($grondslag, $artikel), + self::TYPE_STAFFEL => $this->calculateStaffel($grondslag, $artikel), + default => $this->calculateVast($artikel), + }; + + return min($calculated, $maximum); + } + + /** + * Calculate a combination of multiple sub-calculations. + * + * @param float $grondslag The base amount. + * @param array $artikel The artikel with 'subArtikelen'. + * @param array $caseData The case data. + * + * @return float The combined total. + */ + private function calculateCombinatie( + float $grondslag, + array $artikel, + array $caseData, + ): float { + $subArtikelen = $artikel['subArtikelen'] ?? []; + $total = 0.0; + + foreach ($subArtikelen as $subArtikel) { + $result = $this->calculateArtikel($subArtikel, $caseData); + if ($result !== null) { + $total += $result['amount']; + } + } + + return $total; + } +} diff --git a/lib/Service/LegesExportService.php b/lib/Service/LegesExportService.php new file mode 100644 index 0000000..b60ae50 --- /dev/null +++ b/lib/Service/LegesExportService.php @@ -0,0 +1,305 @@ + + * @copyright 2024 Conduction B.V. + * @license EUPL-1.2 https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12 + * + * @version GIT: + * + * @link https://procest.nl + */ + +declare(strict_types=1); + +namespace OCA\Procest\Service; + +use Psr\Log\LoggerInterface; + +/** + * Service for exporting fee calculations to financial systems. + * + * Generates export files in CSV, ASCII, or XML format containing + * NAW-gegevens, BSN/KvK, zaaknummer, leges artikelnummer, + * omschrijving, bedrag, and datum beschikking. + * + * @psalm-suppress UnusedClass + */ +class LegesExportService +{ + /** + * Export format: CSV. + */ + public const FORMAT_CSV = 'csv'; + + /** + * Export format: ASCII flat file. + */ + public const FORMAT_ASCII = 'ascii'; + + /** + * Export format: XML (StUF-FIN compatible). + */ + public const FORMAT_XML = 'xml'; + + /** + * Supported export formats. + * + * @var string[] + */ + public const SUPPORTED_FORMATS = [ + self::FORMAT_CSV, + self::FORMAT_ASCII, + self::FORMAT_XML, + ]; + + /** + * CSV column headers. + * + * @var string[] + */ + private const CSV_HEADERS = [ + 'zaaknummer', + 'bsn_kvk', + 'naam', + 'adres', + 'artikelnummer', + 'omschrijving', + 'bedrag', + 'datum_beschikking', + ]; + + /** + * Constructor. + * + * @param LoggerInterface $logger The logger instance. + */ + public function __construct( + private readonly LoggerInterface $logger, + ) { + } + + /** + * Export berekeningen to the specified format. + * + * @param array> $berekeningen The definitieve berekeningen to export. + * @param string $format The export format (csv, ascii, xml). + * + * @return array{content: string, filename: string, contentType: string} + * + * @throws \InvalidArgumentException If format is not supported. + * + * @psalm-suppress PossiblyUnusedMethod + */ + public function export(array $berekeningen, string $format = self::FORMAT_CSV): array + { + if (!in_array($format, self::SUPPORTED_FORMATS, true)) { + throw new \InvalidArgumentException( + 'Unsupported export format: ' . $format . '. Supported: ' . implode(', ', self::SUPPORTED_FORMATS) + ); + } + + $this->logger->info( + 'Exporting {count} legesberekeningen in {format} format', + ['count' => count($berekeningen), 'format' => $format] + ); + + return match ($format) { + self::FORMAT_CSV => $this->exportCSV($berekeningen), + self::FORMAT_ASCII => $this->exportASCII($berekeningen), + self::FORMAT_XML => $this->exportXML($berekeningen), + }; + } + + /** + * Export berekeningen as CSV. + * + * @param array> $berekeningen The berekeningen. + * + * @return array{content: string, filename: string, contentType: string} + */ + private function exportCSV(array $berekeningen): array + { + $output = fopen('php://temp', 'r+'); + if ($output === false) { + throw new \RuntimeException('Failed to create temp stream for CSV export'); + } + + // Write BOM for Excel compatibility. + fwrite($output, "\xEF\xBB\xBF"); + + // Write headers. + fputcsv($output, self::CSV_HEADERS, ';'); + + foreach ($berekeningen as $berekening) { + $rows = $this->flattenBerekening($berekening); + foreach ($rows as $row) { + fputcsv($output, $row, ';'); + } + } + + rewind($output); + $content = stream_get_contents($output); + fclose($output); + + $date = (new \DateTimeImmutable())->format('Y-m-d'); + + return [ + 'content' => $content !== false ? $content : '', + 'filename' => "leges-export-{$date}.csv", + 'contentType' => 'text/csv; charset=utf-8', + ]; + } + + /** + * Export berekeningen as ASCII flat file. + * + * @param array> $berekeningen The berekeningen. + * + * @return array{content: string, filename: string, contentType: string} + */ + private function exportASCII(array $berekeningen): array + { + $lines = []; + + // Header line. + $lines[] = sprintf( + 'H|LEGES|%s|%d', + (new \DateTimeImmutable())->format('Ymd'), + count($berekeningen) + ); + + foreach ($berekeningen as $berekening) { + $rows = $this->flattenBerekening($berekening); + foreach ($rows as $row) { + $lines[] = 'D|' . implode('|', $row); + } + } + + // Footer line. + $total = array_sum(array_column($berekeningen, 'total')); + $lines[] = sprintf('F|%d|%.2f', count($berekeningen), $total); + + $date = (new \DateTimeImmutable())->format('Y-m-d'); + + return [ + 'content' => implode("\r\n", $lines), + 'filename' => "leges-export-{$date}.txt", + 'contentType' => 'text/plain; charset=utf-8', + ]; + } + + /** + * Export berekeningen as XML (StUF-FIN compatible structure). + * + * @param array> $berekeningen The berekeningen. + * + * @return array{content: string, filename: string, contentType: string} + */ + private function exportXML(array $berekeningen): array + { + $dom = new \DOMDocument('1.0', 'UTF-8'); + $dom->formatOutput = true; + + $root = $dom->createElement('legesExport'); + $root->setAttribute('exportDatum', (new \DateTimeImmutable())->format(\DateTimeInterface::ATOM)); + $root->setAttribute('aantalRecords', (string)count($berekeningen)); + $dom->appendChild($root); + + foreach ($berekeningen as $berekening) { + $berekeningEl = $dom->createElement('berekening'); + $berekeningEl->setAttribute('zaaknummer', (string)($berekening['zaaknummer'] ?? '')); + + $this->addXmlElement($dom, $berekeningEl, 'bsnKvk', (string)($berekening['bsnKvk'] ?? '')); + $this->addXmlElement($dom, $berekeningEl, 'naam', (string)($berekening['naam'] ?? '')); + $this->addXmlElement($dom, $berekeningEl, 'totaalBedrag', number_format($berekening['total'] ?? 0.0, 2, '.', '')); + $this->addXmlElement($dom, $berekeningEl, 'datumBeschikking', (string)($berekening['datumBeschikking'] ?? '')); + + $breakdown = $berekening['breakdown'] ?? []; + foreach ($breakdown as $regel) { + $regelEl = $dom->createElement('regel'); + $this->addXmlElement($dom, $regelEl, 'artikelnummer', (string)($regel['artikel'] ?? '')); + $this->addXmlElement($dom, $regelEl, 'omschrijving', (string)($regel['description'] ?? '')); + $this->addXmlElement($dom, $regelEl, 'bedrag', number_format($regel['amount'] ?? 0.0, 2, '.', '')); + $berekeningEl->appendChild($regelEl); + } + + $root->appendChild($berekeningEl); + } + + $content = $dom->saveXML(); + $date = (new \DateTimeImmutable())->format('Y-m-d'); + + return [ + 'content' => $content !== false ? $content : '', + 'filename' => "leges-export-{$date}.xml", + 'contentType' => 'application/xml; charset=utf-8', + ]; + } + + /** + * Flatten a berekening into export rows (one row per artikel in breakdown). + * + * @param array $berekening The berekening data. + * + * @return array Array of row arrays. + */ + private function flattenBerekening(array $berekening): array + { + $rows = []; + $breakdown = $berekening['breakdown'] ?? []; + + if (empty($breakdown)) { + $rows[] = [ + (string)($berekening['zaaknummer'] ?? ''), + (string)($berekening['bsnKvk'] ?? ''), + (string)($berekening['naam'] ?? ''), + (string)($berekening['adres'] ?? ''), + '', + 'Totaal', + number_format($berekening['total'] ?? 0.0, 2, '.', ''), + (string)($berekening['datumBeschikking'] ?? ''), + ]; + } else { + foreach ($breakdown as $regel) { + $rows[] = [ + (string)($berekening['zaaknummer'] ?? ''), + (string)($berekening['bsnKvk'] ?? ''), + (string)($berekening['naam'] ?? ''), + (string)($berekening['adres'] ?? ''), + (string)($regel['artikel'] ?? ''), + (string)($regel['description'] ?? ''), + number_format($regel['amount'] ?? 0.0, 2, '.', ''), + (string)($berekening['datumBeschikking'] ?? ''), + ]; + } + } + + return $rows; + } + + /** + * Add a text element to an XML parent. + * + * @param \DOMDocument $dom The DOM document. + * @param \DOMElement $parent The parent element. + * @param string $name The element name. + * @param string $value The text value. + * + * @return void + */ + private function addXmlElement(\DOMDocument $dom, \DOMElement $parent, string $name, string $value): void + { + $element = $dom->createElement($name); + $element->appendChild($dom->createTextNode($value)); + $parent->appendChild($element); + } +} diff --git a/lib/Service/MilestoneService.php b/lib/Service/MilestoneService.php new file mode 100644 index 0000000..ad640fb --- /dev/null +++ b/lib/Service/MilestoneService.php @@ -0,0 +1,307 @@ + + * @copyright 2024 Conduction B.V. + * @license EUPL-1.2 https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12 + * + * @version GIT: + * + * @link https://procest.nl + */ + +declare(strict_types=1); + +namespace OCA\Procest\Service; + +use OCA\Procest\AppInfo\Application; +use Psr\Log\LoggerInterface; + +/** + * Service for milestone tracking and progress calculation. + */ +class MilestoneService +{ + + + /** + * Constructor. + * + * @param SettingsService $settingsService Settings service + * @param LoggerInterface $logger Logger + */ + public function __construct( + private readonly SettingsService $settingsService, + private readonly LoggerInterface $logger, + ) { + } + + + /** + * Get milestone definitions for a case type. + * + * @param string $caseTypeId The case type UUID + * + * @return array> Ordered milestone definitions + * + * @throws \RuntimeException If OpenRegister unavailable + */ + public function getMilestones(string $caseTypeId): array + { + $objectService = $this->settingsService->getObjectService(); + if ($objectService === null) { + throw new \RuntimeException('OpenRegister is not available'); + } + + $register = $this->settingsService->getConfigValue('register'); + $schema = $this->settingsService->getConfigValue('milestone_definition_schema'); + + if (empty($register) === true || empty($schema) === true) { + return []; + } + + $results = $objectService->findObjects( + $register, + $schema, + ['caseType' => $caseTypeId], + ['order' => 'asc'], + 100, + ); + + return is_array($results) ? $results : []; + } + + + /** + * Get milestone progress for a specific case. + * + * @param string $caseId The case UUID + * @param string $caseTypeId The case type UUID + * + * @return array Progress data with milestones, reached count, total, percentage + */ + public function getCaseProgress(string $caseId, string $caseTypeId): array + { + $definitions = $this->getMilestones($caseTypeId); + if (count($definitions) === 0) { + return [ + 'milestones' => [], + 'reached' => 0, + 'total' => 0, + 'percentage' => 0, + ]; + } + + $records = $this->getMilestoneRecords($caseId); + $recordMap = []; + foreach ($records as $record) { + $recordMap[$record['milestoneDefinition'] ?? ''] = $record; + } + + $milestones = []; + $reached = 0; + foreach ($definitions as $def) { + $defId = $def['id'] ?? $def['uuid'] ?? ''; + $record = $recordMap[$defId] ?? null; + $isReached = $record !== null; + + if ($isReached === true) { + $reached++; + } + + $milestones[] = [ + 'identifier' => $def['identifier'] ?? '', + 'label' => $def['label'] ?? $def['name'] ?? '', + 'order' => $def['order'] ?? 0, + 'description' => $def['description'] ?? '', + 'reached' => $isReached, + 'reachedAt' => $isReached ? ($record['reachedAt'] ?? null) : null, + 'reachedBy' => $isReached ? ($record['reachedBy'] ?? null) : null, + ]; + } + + $total = count($definitions); + + return [ + 'milestones' => $milestones, + 'reached' => $reached, + 'total' => $total, + 'percentage' => $total > 0 ? (int) round(($reached / $total) * 100) : 0, + ]; + } + + + /** + * Mark a milestone as reached for a case. + * + * @param string $caseId The case UUID + * @param string $milestoneDefinitionId The milestone definition UUID + * @param string $userId The user marking the milestone + * @param string $trigger How it was triggered (manual, workflow, auto) + * + * @return array The created milestone record + * + * @throws \RuntimeException If OpenRegister unavailable + */ + public function markMilestone( + string $caseId, + string $milestoneDefinitionId, + string $userId, + string $trigger = 'manual', + ): array { + $objectService = $this->settingsService->getObjectService(); + if ($objectService === null) { + throw new \RuntimeException('OpenRegister is not available'); + } + + $register = $this->settingsService->getConfigValue('register'); + $schema = $this->settingsService->getConfigValue('milestone_record_schema'); + + if (empty($register) === true || empty($schema) === true) { + throw new \RuntimeException('Milestone record schema not configured'); + } + + $recordData = [ + 'case' => $caseId, + 'milestoneDefinition' => $milestoneDefinitionId, + 'reachedAt' => date('Y-m-d\TH:i:s'), + 'reachedBy' => $userId, + 'trigger' => $trigger, + ]; + + $record = $objectService->saveObject($register, $schema, $recordData); + + $this->logger->info( + 'Milestone marked: ' . $milestoneDefinitionId . ' on case ' . $caseId, + ['app' => Application::APP_ID], + ); + + return [ + 'id' => $record->getUuid(), + 'reachedAt' => $recordData['reachedAt'], + 'reachedBy' => $userId, + ]; + } + + + /** + * Reverse a milestone (with reason for audit trail). + * + * @param string $caseId The case UUID + * @param string $milestoneDefinitionId The milestone definition UUID + * @param string $userId The user reversing + * @param string $reason Reason for reversal + * + * @return bool True if reversed + * + * @throws \RuntimeException If OpenRegister unavailable + */ + public function reverseMilestone( + string $caseId, + string $milestoneDefinitionId, + string $userId, + string $reason, + ): bool { + $objectService = $this->settingsService->getObjectService(); + if ($objectService === null) { + throw new \RuntimeException('OpenRegister is not available'); + } + + $register = $this->settingsService->getConfigValue('register'); + $schema = $this->settingsService->getConfigValue('milestone_record_schema'); + + $records = $objectService->findObjects( + $register, + $schema, + [ + 'case' => $caseId, + 'milestoneDefinition' => $milestoneDefinitionId, + ], + ); + + if (empty($records) === true) { + return false; + } + + // Delete the milestone record. + foreach ($records as $record) { + $recordId = $record['id'] ?? $record['uuid'] ?? ''; + if ($recordId !== '') { + $objectService->deleteObject($register, $schema, $recordId); + } + } + + $this->logger->info( + 'Milestone reversed: ' . $milestoneDefinitionId . ' on case ' . $caseId + . ' by ' . $userId . ' reason: ' . $reason, + ['app' => Application::APP_ID], + ); + + return true; + } + + + /** + * Calculate average duration between milestones for a case type. + * + * @param string $caseTypeId The case type UUID + * + * @return array Duration analytics per milestone pair + */ + public function getDurationAnalytics(string $caseTypeId): array + { + // Placeholder: in production, this would aggregate milestone records + // across all cases of this type and calculate averages. + $this->logger->debug( + 'Duration analytics requested for case type: ' . $caseTypeId, + ['app' => Application::APP_ID], + ); + + return [ + 'caseTypeId' => $caseTypeId, + 'phases' => [], + 'message' => 'Duration analytics requires sufficient historical data', + ]; + } + + + /** + * Get milestone records for a case. + * + * @param string $caseId The case UUID + * + * @return array> Milestone records + */ + private function getMilestoneRecords(string $caseId): array + { + $objectService = $this->settingsService->getObjectService(); + if ($objectService === null) { + return []; + } + + $register = $this->settingsService->getConfigValue('register'); + $schema = $this->settingsService->getConfigValue('milestone_record_schema'); + + if (empty($register) === true || empty($schema) === true) { + return []; + } + + $results = $objectService->findObjects( + $register, + $schema, + ['case' => $caseId], + [], + 100, + ); + + return is_array($results) ? $results : []; + } +} diff --git a/lib/Service/NotificatieService.php b/lib/Service/NotificatieService.php new file mode 100644 index 0000000..f3d0c59 --- /dev/null +++ b/lib/Service/NotificatieService.php @@ -0,0 +1,239 @@ + + * @copyright 2024 Conduction B.V. + * @license EUPL-1.2 https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12 + * + * @version GIT: + * + * @link https://procest.nl + */ + +declare(strict_types=1); + +namespace OCA\Procest\Service; + +use DateTime; +use GuzzleHttp\Client; +use GuzzleHttp\Exception\GuzzleException; +use Psr\Log\LoggerInterface; + +/** + * Service for publishing ZGW notifications to subscribers. + * + * @SuppressWarnings(PHPMD.CouplingBetweenObjects) + */ +class NotificatieService +{ + + /** + * The OpenRegister ObjectService (loaded dynamically). + * + * @var object|null + */ + private $objectService = null; + + /** + * Constructor. + * + * @param ZgwMappingService $zgwMappingService The ZGW mapping service + * @param LoggerInterface $logger The logger + * + * @return void + */ + public function __construct( + private readonly ZgwMappingService $zgwMappingService, + private readonly LoggerInterface $logger, + ) { + $this->loadOpenRegisterServices(); + }//end __construct() + + /** + * Load OpenRegister services dynamically. + * + * @return void + */ + private function loadOpenRegisterServices(): void + { + try { + $container = \OC::$server; + $this->objectService = $container->get( + 'OCA\OpenRegister\Service\ObjectService' + ); + } catch (\Throwable $e) { + $this->logger->warning( + 'NotificatieService: OpenRegister not available', + ['exception' => $e->getMessage()] + ); + } + }//end loadOpenRegisterServices() + + /** + * Publish a notification for a ZGW resource change. + * + * Finds all subscriptions matching the kanaal and delivers the + * notification payload via HTTP POST to each callback URL. + * + * @param string $kanaal The channel name (e.g. 'zaken', 'documenten') + * @param string $hoofdObject The main object URL + * @param string $resource The resource name (e.g. 'zaak', 'status') + * @param string $resourceUrl The resource URL + * @param string $actie The action ('create', 'update', 'destroy') + * @param array $kenmerken Optional filter attributes for matching + * + * @return void + */ + public function publish( + string $kanaal, + string $hoofdObject, + string $resource, + string $resourceUrl, + string $actie, + array $kenmerken=[] + ): void { + $notification = [ + 'kanaal' => $kanaal, + 'hoofdObject' => $hoofdObject, + 'resource' => $resource, + 'resourceUrl' => $resourceUrl, + 'actie' => $actie, + 'aanmaakdatum' => (new DateTime())->format('c'), + 'kenmerken' => $kenmerken, + ]; + + try { + $this->deliver(notification: $notification); + } catch (\Exception $e) { + $this->logger->warning( + 'Failed to deliver notification', + [ + 'kanaal' => $kanaal, + 'actie' => $actie, + 'exception' => $e->getMessage(), + ] + ); + } + }//end publish() + + /** + * Find matching subscriptions and deliver the notification. + * + * @param array $notification The notification payload + * + * @return void + */ + private function deliver(array $notification): void + { + if ($this->objectService === null) { + return; + } + + $abonnementMapping = $this->zgwMappingService->getMapping( + resourceKey: 'abonnement' + ); + if ($abonnementMapping === null) { + return; + } + + $query = $this->objectService->buildSearchQuery( + requestParams: [], + register: $abonnementMapping['sourceRegister'], + schema: $abonnementMapping['sourceSchema'] + ); + $result = $this->objectService->searchObjectsPaginated(query: $query); + + $subscriptions = $result['results'] ?? []; + $client = new Client(['timeout' => 10]); + + foreach ($subscriptions as $subscription) { + if (is_array($subscription) === true) { + $subData = $subscription; + } else { + $subData = $subscription->jsonSerialize(); + } + + $this->deliverToSubscription( + client: $client, + subscription: $subData, + notification: $notification + ); + } + }//end deliver() + + /** + * Deliver notification to a single subscription if it matches. + * + * @param Client $client The HTTP client + * @param array $subscription The subscription data + * @param array $notification The notification payload + * + * @return void + */ + private function deliverToSubscription( + Client $client, + array $subscription, + array $notification + ): void { + $kanalen = $subscription['kanalen'] ?? []; + + // Check if this subscription listens to the notification channel. + $matches = false; + foreach ($kanalen as $kanaalConfig) { + if (($kanaalConfig['naam'] ?? '') === $notification['kanaal']) { + $matches = true; + break; + } + } + + if ($matches === false) { + return; + } + + $callbackUrl = $subscription['callbackUrl'] ?? ''; + $auth = $subscription['auth'] ?? ''; + + if ($callbackUrl === '') { + return; + } + + try { + $headers = ['Content-Type' => 'application/json']; + if ($auth !== '') { + $headers['Authorization'] = $auth; + } + + $client->post( + $callbackUrl, + [ + 'json' => $notification, + 'headers' => $headers, + ] + ); + + $this->logger->info( + 'Notification delivered', + [ + 'kanaal' => $notification['kanaal'], + 'callbackUrl' => $callbackUrl, + ] + ); + } catch (GuzzleException $e) { + $this->logger->warning( + 'Notification delivery failed', + [ + 'callbackUrl' => $callbackUrl, + 'exception' => $e->getMessage(), + ] + ); + }//end try + }//end deliverToSubscription() +}//end class diff --git a/lib/Service/ParaferingNotificationService.php b/lib/Service/ParaferingNotificationService.php new file mode 100644 index 0000000..28c5048 --- /dev/null +++ b/lib/Service/ParaferingNotificationService.php @@ -0,0 +1,178 @@ + + * @copyright 2024 Conduction B.V. + * @license EUPL-1.2 https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12 + * + * @version GIT: + * + * @link https://procest.nl + */ + +declare(strict_types=1); + +namespace OCA\Procest\Service; + +use OCA\Procest\AppInfo\Application; +use OCP\Notification\IManager; +use Psr\Log\LoggerInterface; + +/** + * Service for sending Nextcloud notifications for parafering workflow events. + */ +class ParaferingNotificationService +{ + /** + * Constructor. + * + * @param IManager $notificationManager The Nextcloud notification manager + * @param LoggerInterface $logger The logger + * + * @return void + */ + public function __construct( + private readonly IManager $notificationManager, + private readonly LoggerInterface $logger, + ) { + }//end __construct() + + /** + * Send notification when a new parafering step is activated. + * + * @param string $actorUserId The user who should act on the step + * @param string $onderwerp The voorstel subject + * @param string $voorstelId The voorstel UUID + * @param string $stepLabel The step label (e.g. 'Afdelingshoofd') + * + * @return void + */ + public function notifyStepActivated( + string $actorUserId, + string $onderwerp, + string $voorstelId, + string $stepLabel + ): void { + try { + $notification = $this->notificationManager->createNotification(); + $notification->setApp(Application::APP_ID) + ->setUser($actorUserId) + ->setDateTime(new \DateTime()) + ->setObject('voorstel', $voorstelId) + ->setSubject( + 'parafering_step_activated', + [ + 'onderwerp' => $onderwerp, + 'stepLabel' => $stepLabel, + ] + ); + + $this->notificationManager->notify($notification); + } catch (\Throwable $e) { + $this->logger->warning( + 'Failed to send parafering step notification', + [ + 'actor' => $actorUserId, + 'voorstel' => $voorstelId, + 'exception' => $e->getMessage(), + ] + ); + }//end try + }//end notifyStepActivated() + + /** + * Send notification when a voorstel is returned to the steller. + * + * @param string $stellerUserId The steller user who should receive the notification + * @param string $onderwerp The voorstel subject + * @param string $voorstelId The voorstel UUID + * @param string $returnedBy The actor who returned it + * @param string $comment The return comment + * + * @return void + */ + public function notifyVoorstelReturned( + string $stellerUserId, + string $onderwerp, + string $voorstelId, + string $returnedBy, + string $comment + ): void { + try { + $notification = $this->notificationManager->createNotification(); + $notification->setApp(Application::APP_ID) + ->setUser($stellerUserId) + ->setDateTime(new \DateTime()) + ->setObject('voorstel', $voorstelId) + ->setSubject( + 'voorstel_returned', + [ + 'onderwerp' => $onderwerp, + 'returnedBy' => $returnedBy, + 'comment' => $comment, + ] + ); + + $this->notificationManager->notify($notification); + } catch (\Throwable $e) { + $this->logger->warning( + 'Failed to send voorstel return notification', + [ + 'steller' => $stellerUserId, + 'voorstel' => $voorstelId, + 'exception' => $e->getMessage(), + ] + ); + }//end try + }//end notifyVoorstelReturned() + + /** + * Send a reminder notification for an overdue parafering step. + * + * @param string $actorUserId The user who should act + * @param string $onderwerp The voorstel subject + * @param string $voorstelId The voorstel UUID + * @param int $daysWaiting Number of days the step has been waiting + * + * @return void + */ + public function notifyParaferingReminder( + string $actorUserId, + string $onderwerp, + string $voorstelId, + int $daysWaiting + ): void { + try { + $notification = $this->notificationManager->createNotification(); + $notification->setApp(Application::APP_ID) + ->setUser($actorUserId) + ->setDateTime(new \DateTime()) + ->setObject('voorstel', $voorstelId) + ->setSubject( + 'parafering_reminder', + [ + 'onderwerp' => $onderwerp, + 'daysWaiting' => $daysWaiting, + ] + ); + + $this->notificationManager->notify($notification); + } catch (\Throwable $e) { + $this->logger->warning( + 'Failed to send parafering reminder notification', + [ + 'actor' => $actorUserId, + 'voorstel' => $voorstelId, + 'exception' => $e->getMessage(), + ] + ); + }//end try + }//end notifyParaferingReminder() +}//end class diff --git a/lib/Service/ParaferingService.php b/lib/Service/ParaferingService.php new file mode 100644 index 0000000..b464240 --- /dev/null +++ b/lib/Service/ParaferingService.php @@ -0,0 +1,431 @@ + + * @copyright 2024 Conduction B.V. + * @license EUPL-1.2 https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12 + * + * @version GIT: + * + * @link https://procest.nl + */ + +declare(strict_types=1); + +namespace OCA\Procest\Service; + +use Psr\Log\LoggerInterface; + +/** + * Service for managing B&W parafering workflow. + * + * Handles voorstel creation, parafeerroute management, sequential/parallel + * parafering steps, and immutable audit trail recording. + * + * @psalm-suppress UnusedClass + * + * @SuppressWarnings(PHPMD.ExcessiveClassLength) + */ +class ParaferingService +{ + /** + * Voorstel status: draft. + */ + public const STATUS_CONCEPT = 'concept'; + + /** + * Voorstel status: in parafering. + */ + public const STATUS_IN_PARAFERING = 'in_parafering'; + + /** + * Voorstel status: returned to steller. + */ + public const STATUS_TERUGGESTUURD = 'teruggestuurd'; + + /** + * Voorstel status: all parafering complete. + */ + public const STATUS_GEPARAFEERD = 'geparafeerd'; + + /** + * Voorstel status: offered to college. + */ + public const STATUS_AANGEBODEN = 'aangeboden_aan_college'; + + /** + * Voorstel status: decided by college. + */ + public const STATUS_BESLOTEN = 'besloten'; + + /** + * Action type: paraferen (approve). + */ + public const ACTION_PARAFEREN = 'parafered'; + + /** + * Action type: terugsturen (return with comments). + */ + public const ACTION_TERUGSTUREN = 'teruggestuurd'; + + /** + * Action type: adviseren (non-binding advice). + */ + public const ACTION_ADVISEREN = 'geadviseerd'; + + /** + * Step type: advisory (non-blocking). + */ + public const STEP_TYPE_ADVISORY = 'advisory'; + + /** + * Step type: parafering (blocking, requires approval). + */ + public const STEP_TYPE_PARAFERING = 'parafering'; + + /** + * Step type: accordering (final approval). + */ + public const STEP_TYPE_ACCORDERING = 'accordering'; + + /** + * Constructor. + * + * @param LoggerInterface $logger The logger instance. + */ + public function __construct( + private readonly LoggerInterface $logger, + ) { + } + + /** + * Create a new voorstel linked to a case. + * + * @param array $voorstelData The voorstel data (onderwerp, type, steller, caseId). + * + * @return array The created voorstel. + * + * @psalm-suppress PossiblyUnusedMethod + */ + public function createVoorstel(array $voorstelData): array + { + $voorstel = [ + 'id' => $voorstelData['id'] ?? $this->generateId(), + 'caseId' => $voorstelData['caseId'] ?? '', + 'type' => $voorstelData['type'] ?? 'collegeadvies', + 'onderwerp' => $voorstelData['onderwerp'] ?? '', + 'steller' => $voorstelData['steller'] ?? '', + 'afdeling' => $voorstelData['afdeling'] ?? '', + 'portefeuillehouder' => $voorstelData['portefeuillehouder'] ?? '', + 'status' => self::STATUS_CONCEPT, + 'currentStep' => 0, + 'parafeerRoute' => [], + 'auditTrail' => [], + 'createdAt' => (new \DateTimeImmutable())->format(\DateTimeInterface::ATOM), + ]; + + $this->logger->info( + 'Created voorstel {id} for case {caseId}', + ['id' => $voorstel['id'], 'caseId' => $voorstel['caseId']] + ); + + return $voorstel; + } + + /** + * Start the parafering process on a voorstel. + * + * @param array $voorstel The voorstel. + * @param array> $route The parafeerroute (ordered steps). + * + * @return array The updated voorstel with parafering started. + * + * @throws \InvalidArgumentException If voorstel is not in draft status. + * + * @psalm-suppress PossiblyUnusedMethod + */ + public function startParafering(array $voorstel, array $route): array + { + if ($voorstel['status'] !== self::STATUS_CONCEPT + && $voorstel['status'] !== self::STATUS_TERUGGESTUURD + ) { + throw new \InvalidArgumentException( + 'Voorstel must be in concept or teruggestuurd status to start parafering' + ); + } + + if (empty($route)) { + throw new \InvalidArgumentException('Parafeerroute cannot be empty'); + } + + $voorstel['status'] = self::STATUS_IN_PARAFERING; + $voorstel['currentStep'] = 0; + $voorstel['parafeerRoute'] = $route; + + // Record in audit trail. + $voorstel['auditTrail'][] = [ + 'action' => 'started', + 'actor' => $voorstel['steller'], + 'timestamp' => (new \DateTimeImmutable())->format(\DateTimeInterface::ATOM), + 'comment' => 'Parafering gestart', + 'step' => 0, + ]; + + $this->logger->info( + 'Started parafering for voorstel {id} with {stepCount} steps', + ['id' => $voorstel['id'], 'stepCount' => count($route)] + ); + + return $voorstel; + } + + /** + * Execute a parafering action on a voorstel. + * + * @param array $voorstel The voorstel. + * @param string $action The action (parafered, teruggestuurd, geadviseerd). + * @param string $actor The user performing the action. + * @param string $comment Optional comment. + * @param string|null $namens If parafering on behalf of someone else. + * + * @return array The updated voorstel. + * + * @throws \InvalidArgumentException If action is invalid or actor is not assigned. + * + * @psalm-suppress PossiblyUnusedMethod + */ + public function executeAction( + array $voorstel, + string $action, + string $actor, + string $comment = '', + ?string $namens = null, + ): array { + if ($voorstel['status'] !== self::STATUS_IN_PARAFERING) { + throw new \InvalidArgumentException('Voorstel is not in parafering status'); + } + + $validActions = [self::ACTION_PARAFEREN, self::ACTION_TERUGSTUREN, self::ACTION_ADVISEREN]; + if (!in_array($action, $validActions, true)) { + throw new \InvalidArgumentException( + 'Invalid action: ' . $action . '. Valid: ' . implode(', ', $validActions) + ); + } + + $currentStep = $voorstel['currentStep'] ?? 0; + + // Record the action in audit trail. + $auditEntry = [ + 'action' => $action, + 'actor' => $actor, + 'timestamp' => (new \DateTimeImmutable())->format(\DateTimeInterface::ATOM), + 'comment' => $comment, + 'step' => $currentStep, + ]; + + if ($namens !== null) { + $auditEntry['namens'] = $namens; + $auditEntry['comment'] = "Geparafeerd door {$actor} namens {$namens} (mandaat). " . $comment; + } + + $voorstel['auditTrail'][] = $auditEntry; + + // Process the action. + if ($action === self::ACTION_TERUGSTUREN) { + $voorstel['status'] = self::STATUS_TERUGGESTUURD; + $this->logger->info( + 'Voorstel {id} returned by {actor}: {comment}', + ['id' => $voorstel['id'], 'actor' => $actor, 'comment' => $comment] + ); + } elseif ($action === self::ACTION_ADVISEREN) { + // Advisory is non-blocking: advance to next step. + $voorstel = $this->advanceStep($voorstel); + } elseif ($action === self::ACTION_PARAFEREN) { + // Check if this completes a parallel step. + $route = $voorstel['parafeerRoute'] ?? []; + $step = $route[$currentStep] ?? []; + $isParallel = $step['parallel'] ?? false; + + if ($isParallel) { + $voorstel = $this->handleParallelStep($voorstel, $actor, $currentStep); + } else { + $voorstel = $this->advanceStep($voorstel); + } + } + + return $voorstel; + } + + /** + * Get the full audit trail for a voorstel. + * + * @param array $voorstel The voorstel. + * + * @return array> The audit trail entries. + * + * @psalm-suppress PossiblyUnusedMethod + */ + public function getAuditTrail(array $voorstel): array + { + return $voorstel['auditTrail'] ?? []; + } + + /** + * Get the current step information for a voorstel. + * + * @param array $voorstel The voorstel. + * + * @return array|null The current step, or null if parafering is complete. + * + * @psalm-suppress PossiblyUnusedMethod + */ + public function getCurrentStep(array $voorstel): ?array + { + if ($voorstel['status'] !== self::STATUS_IN_PARAFERING) { + return null; + } + + $route = $voorstel['parafeerRoute'] ?? []; + $currentStep = $voorstel['currentStep'] ?? 0; + + return $route[$currentStep] ?? null; + } + + /** + * Override (modify) the parafeerroute for a specific voorstel. + * + * @param array $voorstel The voorstel. + * @param array> $newRoute The modified route. + * @param string $actor The actor making the modification. + * @param string $reason Reason for the modification. + * + * @return array The updated voorstel. + * + * @psalm-suppress PossiblyUnusedMethod + */ + public function overrideRoute( + array $voorstel, + array $newRoute, + string $actor, + string $reason, + ): array { + $voorstel['parafeerRoute'] = $newRoute; + + $voorstel['auditTrail'][] = [ + 'action' => 'route_overridden', + 'actor' => $actor, + 'timestamp' => (new \DateTimeImmutable())->format(\DateTimeInterface::ATOM), + 'comment' => "Parafeerroute aangepast door {$actor}, reden: {$reason}", + 'step' => $voorstel['currentStep'] ?? 0, + ]; + + $this->logger->info( + 'Parafeerroute overridden for voorstel {id} by {actor}: {reason}', + ['id' => $voorstel['id'], 'actor' => $actor, 'reason' => $reason] + ); + + return $voorstel; + } + + /** + * Advance to the next step in the parafeerroute. + * + * @param array $voorstel The voorstel. + * + * @return array The updated voorstel. + */ + private function advanceStep(array $voorstel): array + { + $route = $voorstel['parafeerRoute'] ?? []; + $nextStep = ($voorstel['currentStep'] ?? 0) + 1; + + if ($nextStep >= count($route)) { + // All steps completed. + $voorstel['status'] = self::STATUS_GEPARAFEERD; + $voorstel['auditTrail'][] = [ + 'action' => 'completed', + 'actor' => 'system', + 'timestamp' => (new \DateTimeImmutable())->format(\DateTimeInterface::ATOM), + 'comment' => 'Alle paraferingstappen voltooid', + 'step' => $nextStep, + ]; + $this->logger->info('Voorstel {id} parafering completed', ['id' => $voorstel['id']]); + } else { + $voorstel['currentStep'] = $nextStep; + } + + return $voorstel; + } + + /** + * Handle a parallel parafering step (completes when ALL actors have parafered). + * + * @param array $voorstel The voorstel. + * @param string $actor The actor who just parafered. + * @param int $stepIndex The step index. + * + * @return array The updated voorstel. + */ + private function handleParallelStep(array $voorstel, string $actor, int $stepIndex): array + { + $route = $voorstel['parafeerRoute'] ?? []; + $step = $route[$stepIndex] ?? []; + $requiredActors = $step['actors'] ?? []; + + // Check which actors have already parafered for this step. + $auditTrail = $voorstel['auditTrail'] ?? []; + $paraferedActors = []; + foreach ($auditTrail as $entry) { + if (($entry['step'] ?? -1) === $stepIndex + && ($entry['action'] ?? '') === self::ACTION_PARAFEREN + ) { + $paraferedActors[] = $entry['actor']; + } + } + + // Check if all required actors have parafered. + $allDone = true; + foreach ($requiredActors as $requiredActor) { + $actorId = is_array($requiredActor) ? ($requiredActor['id'] ?? '') : $requiredActor; + if (!in_array($actorId, $paraferedActors, true)) { + $allDone = false; + break; + } + } + + if ($allDone) { + $voorstel = $this->advanceStep($voorstel); + } + + return $voorstel; + } + + /** + * Generate a unique ID. + * + * @return string A UUID-style identifier. + */ + private function generateId(): string + { + return sprintf( + '%04x%04x-%04x-%04x-%04x-%04x%04x%04x', + mt_rand(0, 0xffff), + mt_rand(0, 0xffff), + mt_rand(0, 0xffff), + mt_rand(0, 0x0fff) | 0x4000, + mt_rand(0, 0x3fff) | 0x8000, + mt_rand(0, 0xffff), + mt_rand(0, 0xffff), + mt_rand(0, 0xffff) + ); + } +} diff --git a/lib/Service/SeedDataService.php b/lib/Service/SeedDataService.php new file mode 100644 index 0000000..ebb4387 --- /dev/null +++ b/lib/Service/SeedDataService.php @@ -0,0 +1,506 @@ + + * @copyright 2024 Conduction B.V. + * @license EUPL-1.2 https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12 + * + * @version GIT: + * + * @link https://procest.nl + */ + +declare(strict_types=1); + +namespace OCA\Procest\Service; + +use OCA\Procest\AppInfo\Application; +use OCP\IAppConfig; +use Psr\Container\ContainerInterface; +use Psr\Log\LoggerInterface; + +/** + * Service for seeding bezwaar/beroep case types and related configuration. + * + * @SuppressWarnings(PHPMD.CouplingBetweenObjects) — needs OpenRegister service access + */ +class SeedDataService +{ + /** + * Constructor for the SeedDataService. + * + * @param IAppConfig $appConfig The app configuration service + * @param ContainerInterface $container The DI container + * @param LoggerInterface $logger The logger interface + * + * @return void + */ + public function __construct( + private IAppConfig $appConfig, + private ContainerInterface $container, + private LoggerInterface $logger, + ) { + }//end __construct() + + /** + * Seed the bezwaar and beroep case types with all related objects. + * + * This method is idempotent — it checks for existing objects by identifier + * before creating new ones. + * + * @return array Result summary with counts of created and skipped objects + */ + public function seedBezwaarBeroepData(): array + { + $seedPath = __DIR__.'/../Settings/bezwaar_seed_data.json'; + if (file_exists($seedPath) === false) { + $this->logger->error('Procest: Seed data file not found at '.$seedPath); + return ['success' => false, 'message' => 'Seed data file not found']; + } + + $seedContent = file_get_contents($seedPath); + $seedData = json_decode($seedContent, true); + + if (json_last_error() !== JSON_ERROR_NONE) { + $this->logger->error('Procest: Invalid JSON in seed data file'); + return ['success' => false, 'message' => 'Invalid JSON in seed data file']; + } + + $objectService = $this->getObjectService(); + if ($objectService === null) { + return ['success' => false, 'message' => 'ObjectService not available']; + } + + $registerId = $this->getConfigValue(key: 'register'); + $caseTypeSchema = $this->getConfigValue(key: 'case_type_schema'); + $statusTypeSchema = $this->getConfigValue(key: 'status_type_schema'); + $roleTypeSchema = $this->getConfigValue(key: 'role_type_schema'); + $workflowSchema = $this->getConfigValue(key: 'workflow_template_schema'); + + if ($registerId === '' || $caseTypeSchema === '') { + $this->logger->warning('Procest: Register or case type schema not configured, skipping seed'); + return ['success' => false, 'message' => 'Register or schemas not configured']; + } + + $summary = [ + 'success' => true, + 'caseTypes' => 0, + 'statusTypes' => 0, + 'roleTypes' => 0, + 'workflows' => 0, + 'skipped' => 0, + ]; + + foreach (($seedData['caseTypes'] ?? []) as $caseTypeData) { + $result = $this->seedCaseType( + objectService: $objectService, + caseTypeData: $caseTypeData, + registerId: $registerId, + caseTypeSchema: $caseTypeSchema, + statusTypeSchema: $statusTypeSchema, + roleTypeSchema: $roleTypeSchema, + workflowSchema: $workflowSchema, + ); + + $summary['caseTypes'] += $result['caseTypes']; + $summary['statusTypes'] += $result['statusTypes']; + $summary['roleTypes'] += $result['roleTypes']; + $summary['workflows'] += $result['workflows']; + $summary['skipped'] += $result['skipped']; + } + + $this->logger->info('Procest: Seed data complete', $summary); + + return $summary; + }//end seedBezwaarBeroepData() + + /** + * Seed a single case type with its status types, role types, and workflow. + * + * @param object $objectService The OpenRegister ObjectService + * @param array $caseTypeData The case type seed data + * @param string $registerId The register UUID + * @param string $caseTypeSchema The case type schema UUID + * @param string $statusTypeSchema The status type schema UUID + * @param string $roleTypeSchema The role type schema UUID + * @param string $workflowSchema The workflow template schema UUID + * + * @return array Counts of created and skipped objects + * + * @SuppressWarnings(PHPMD.ExcessiveParameterList) — all schema IDs are needed + */ + private function seedCaseType( + object $objectService, + array $caseTypeData, + string $registerId, + string $caseTypeSchema, + string $statusTypeSchema, + string $roleTypeSchema, + string $workflowSchema, + ): array { + $counts = [ + 'caseTypes' => 0, + 'statusTypes' => 0, + 'roleTypes' => 0, + 'workflows' => 0, + 'skipped' => 0, + ]; + + $identifier = ($caseTypeData['identifier'] ?? ''); + + // Check if case type already exists by identifier. + $existing = $this->findByFilter( + objectService: $objectService, + registerId: $registerId, + schemaId: $caseTypeSchema, + filters: ['identifier' => $identifier], + ); + + if ($existing !== null) { + $this->logger->info( + 'Procest: Case type already exists, skipping seed', + ['identifier' => $identifier] + ); + $counts['skipped']++; + return $counts; + } + + // Extract nested data before creating the case type. + $statusTypesData = ($caseTypeData['statusTypes'] ?? []); + $roleTypesData = ($caseTypeData['roleTypes'] ?? []); + $workflowData = ($caseTypeData['workflowTemplate'] ?? null); + + unset( + $caseTypeData['statusTypes'], + $caseTypeData['roleTypes'], + $caseTypeData['workflowTemplate'] + ); + + // Create the case type. + $caseType = $this->createObject( + objectService: $objectService, + registerId: $registerId, + schemaId: $caseTypeSchema, + data: $caseTypeData, + ); + + if ($caseType === null) { + $this->logger->error( + 'Procest: Failed to create case type', + ['identifier' => $identifier] + ); + return $counts; + } + + $caseTypeId = $this->getObjectId(object: $caseType); + $counts['caseTypes']++; + + $this->logger->info( + 'Procest: Created case type', + ['identifier' => $identifier, 'id' => $caseTypeId] + ); + + // Create status types and build a name-to-ID map. + $statusNameToId = []; + foreach ($statusTypesData as $statusData) { + $statusData['caseType'] = $caseTypeId; + $statusObj = $this->createObject( + objectService: $objectService, + registerId: $registerId, + schemaId: $statusTypeSchema, + data: $statusData, + ); + + if ($statusObj !== null) { + $statusId = $this->getObjectId(object: $statusObj); + $statusNameToId[$statusData['name']] = $statusId; + $counts['statusTypes']++; + } + } + + // Create role types and build a name-to-ID map. + $roleNameToId = []; + if ($roleTypeSchema !== '') { + foreach ($roleTypesData as $roleData) { + $roleData['caseType'] = $caseTypeId; + $roleObj = $this->createObject( + objectService: $objectService, + registerId: $registerId, + schemaId: $roleTypeSchema, + data: $roleData, + ); + + if ($roleObj !== null) { + $roleId = $this->getObjectId(object: $roleObj); + $roleNameToId[$roleData['name']] = $roleId; + $counts['roleTypes']++; + } + } + } + + // Create workflow template with resolved status/role references. + if ($workflowData !== null && $workflowSchema !== '') { + $resolvedWorkflow = $this->resolveWorkflowReferences( + workflowData: $workflowData, + statusNameMap: $statusNameToId, + roleNameMap: $roleNameToId, + caseTypeId: $caseTypeId, + ); + + $workflowObj = $this->createObject( + objectService: $objectService, + registerId: $registerId, + schemaId: $workflowSchema, + data: $resolvedWorkflow, + ); + + if ($workflowObj !== null) { + $counts['workflows']++; + } + } + + return $counts; + }//end seedCaseType() + + /** + * Resolve workflow step and transition references from names to UUIDs. + * + * @param array $workflowData The raw workflow template data + * @param array $statusNameMap Status name to UUID mapping + * @param array $roleNameMap Role name to UUID mapping + * @param string $caseTypeId The case type UUID + * + * @return array The workflow data with resolved references + */ + private function resolveWorkflowReferences( + array $workflowData, + array $statusNameMap, + array $roleNameMap, + string $caseTypeId, + ): array { + $workflowData['caseType'] = $caseTypeId; + + // Resolve steps: map statusName to status UUID. + $resolvedSteps = []; + foreach (($workflowData['steps'] ?? []) as $step) { + $statusName = ($step['statusName'] ?? ''); + unset($step['statusName']); + + $step['id'] = $this->generateUUID(); + $step['status'] = ($statusNameMap[$statusName] ?? ''); + + $resolvedSteps[] = $step; + } + + $workflowData['steps'] = json_encode($resolvedSteps); + + // Resolve transitions: map statusName to UUID, roleName to UUID. + $resolvedTransitions = []; + foreach (($workflowData['transitions'] ?? []) as $transition) { + $fromName = ($transition['fromStatusName'] ?? ''); + $toName = ($transition['toStatusName'] ?? ''); + unset($transition['fromStatusName'], $transition['toStatusName']); + + $transition['id'] = $this->generateUUID(); + + // Handle wildcard "*" for "any active status". + if ($fromName === '*') { + $transition['fromStatus'] = '*'; + } else { + $transition['fromStatus'] = ($statusNameMap[$fromName] ?? ''); + } + + $transition['toStatus'] = ($statusNameMap[$toName] ?? ''); + + // Resolve role guards. + $resolvedGuards = []; + foreach (($transition['guards'] ?? []) as $guard) { + if ($guard['type'] === 'roleGuard' && isset($guard['config']['roleName']) === true) { + $roleName = $guard['config']['roleName']; + $guard['config']['roleId'] = ($roleNameMap[$roleName] ?? ''); + } + + $resolvedGuards[] = $guard; + } + + $transition['guards'] = $resolvedGuards; + + // Resolve automatic action role references. + $resolvedActions = []; + foreach (($transition['automaticActions'] ?? []) as $action) { + if (isset($action['config']['roleName']) === true) { + $roleName = $action['config']['roleName']; + $action['config']['roleId'] = ($roleNameMap[$roleName] ?? ''); + } + + $resolvedActions[] = $action; + } + + $transition['automaticActions'] = $resolvedActions; + + $resolvedTransitions[] = $transition; + }//end foreach + + $workflowData['transitions'] = json_encode($resolvedTransitions); + + // Remove raw array data that was already JSON-encoded. + unset($workflowData['steps_raw'], $workflowData['transitions_raw']); + + return $workflowData; + }//end resolveWorkflowReferences() + + /** + * Create an object in OpenRegister via ObjectService. + * + * @param object $objectService The ObjectService instance + * @param string $registerId The register UUID + * @param string $schemaId The schema UUID + * @param array $data The object data + * + * @return object|null The created object or null on failure + */ + private function createObject( + object $objectService, + string $registerId, + string $schemaId, + array $data, + ): ?object { + try { + return $objectService->saveObject( + register: $registerId, + schema: $schemaId, + object: $data, + ); + } catch (\Exception $e) { + $this->logger->error( + 'Procest: Failed to create seed object', + [ + 'schema' => $schemaId, + 'exception' => $e->getMessage(), + ] + ); + return null; + } + }//end createObject() + + /** + * Find an existing object by filter criteria. + * + * @param object $objectService The ObjectService instance + * @param string $registerId The register UUID + * @param string $schemaId The schema UUID + * @param array $filters Filter criteria + * + * @return object|null The found object or null + */ + private function findByFilter( + object $objectService, + string $registerId, + string $schemaId, + array $filters, + ): ?object { + try { + $results = $objectService->getObjects( + register: $registerId, + schema: $schemaId, + filters: $filters, + limit: 1, + ); + + if (is_array($results) === true && count($results) > 0) { + return $results[0]; + } + + // Handle paginated result format. + if (is_array($results) === true + && isset($results['results']) === true + && count($results['results']) > 0 + ) { + return $results['results'][0]; + } + + return null; + } catch (\Exception $e) { + $this->logger->debug( + 'Procest: Could not search for existing object', + ['exception' => $e->getMessage()] + ); + return null; + }//end try + }//end findByFilter() + + /** + * Get the ObjectService from OpenRegister via the DI container. + * + * @return object|null The ObjectService or null if unavailable + */ + private function getObjectService(): ?object + { + try { + return $this->container->get('OCA\OpenRegister\Service\ObjectService'); + } catch (\Exception $e) { + $this->logger->error( + 'Procest: Could not access ObjectService', + ['exception' => $e->getMessage()] + ); + return null; + } + }//end getObjectService() + + /** + * Get a configuration value from the app config. + * + * @param string $key The configuration key + * + * @return string The configuration value + */ + private function getConfigValue(string $key): string + { + return $this->appConfig->getValueString(Application::APP_ID, $key, ''); + }//end getConfigValue() + + /** + * Get the ID from an OpenRegister object. + * + * @param object $object The OpenRegister object + * + * @return string The object ID + */ + private function getObjectId(object $object): string + { + if (method_exists($object, 'getId') === true) { + return (string) $object->getId(); + } + + if (method_exists($object, 'getUuid') === true) { + return (string) $object->getUuid(); + } + + return ''; + }//end getObjectId() + + /** + * Generate a UUID v4 string. + * + * @return string A new UUID + */ + private function generateUUID(): string + { + $data = random_bytes(16); + $data[6] = chr(ord($data[6]) & 0x0f | 0x40); + $data[8] = chr(ord($data[8]) & 0x3f | 0x80); + + return vsprintf( + '%s%s-%s-%s-%s-%s%s%s', + str_split(bin2hex($data), 4) + ); + }//end generateUUID() +}//end class diff --git a/lib/Service/SettingsService.php b/lib/Service/SettingsService.php index c6a27f5..629219b 100644 --- a/lib/Service/SettingsService.php +++ b/lib/Service/SettingsService.php @@ -34,9 +34,11 @@ class SettingsService { private const CONFIG_KEYS = [ 'register', + 'catalogus_schema', 'case_schema', 'task_schema', 'status_schema', + 'status_record_schema', 'role_schema', 'result_schema', 'decision_schema', @@ -47,26 +49,79 @@ class SettingsService 'property_definition_schema', 'document_type_schema', 'decision_type_schema', + 'zaaktype_informatieobjecttype_schema', + 'case_property_schema', + 'case_document_schema', + 'case_object_schema', + 'customer_contact_schema', + 'decision_document_schema', + 'dispatch_schema', + 'document_schema', + 'document_link_schema', + 'usage_rights_schema', + 'kanaal_schema', + 'abonnement_schema', + 'map_layer_schema', + 'workflow_template_schema', + 'objection_schema', + 'hearing_session_schema', + 'advisory_report_schema', + 'appeal_decision_schema', + 'voorstel_schema', + 'parafeerroute_schema', + 'parafeeractie_schema', 'default_case_type', + 'inspectie_checklist_schema', + 'inspectie_rapport_schema', + 'handhavingsactie_schema', + 'advies_aanvraag_schema', + 'lhsMatrix', ]; /** * Mapping of schema slugs (from procest_register.json) to app config keys. */ private const SLUG_TO_CONFIG_KEY = [ - 'case' => 'case_schema', - 'task' => 'task_schema', - 'status' => 'status_schema', - 'role' => 'role_schema', - 'result' => 'result_schema', - 'decision' => 'decision_schema', - 'caseType' => 'case_type_schema', - 'statusType' => 'status_type_schema', - 'resultType' => 'result_type_schema', - 'roleType' => 'role_type_schema', - 'propertyDefinition' => 'property_definition_schema', - 'documentType' => 'document_type_schema', - 'decisionType' => 'decision_type_schema', + 'catalogus' => 'catalogus_schema', + 'case' => 'case_schema', + 'task' => 'task_schema', + 'status' => 'status_schema', + 'statusRecord' => 'status_record_schema', + 'role' => 'role_schema', + 'result' => 'result_schema', + 'decision' => 'decision_schema', + 'caseType' => 'case_type_schema', + 'statusType' => 'status_type_schema', + 'resultType' => 'result_type_schema', + 'roleType' => 'role_type_schema', + 'propertyDefinition' => 'property_definition_schema', + 'documentType' => 'document_type_schema', + 'decisionType' => 'decision_type_schema', + 'zaaktypeInformatieobjecttype' => 'zaaktype_informatieobjecttype_schema', + 'caseProperty' => 'case_property_schema', + 'caseDocument' => 'case_document_schema', + 'caseObject' => 'case_object_schema', + 'customerContact' => 'customer_contact_schema', + 'decisionDocument' => 'decision_document_schema', + 'dispatch' => 'dispatch_schema', + 'document' => 'document_schema', + 'documentLink' => 'document_link_schema', + 'usageRights' => 'usage_rights_schema', + 'kanaal' => 'kanaal_schema', + 'abonnement' => 'abonnement_schema', + 'inspectieChecklist' => 'inspectie_checklist_schema', + 'inspectieRapport' => 'inspectie_rapport_schema', + 'handhavingsactie' => 'handhavingsactie_schema', + 'adviesAanvraag' => 'advies_aanvraag_schema', + 'mapLayer' => 'map_layer_schema', + 'workflowTemplate' => 'workflow_template_schema', + 'objection' => 'objection_schema', + 'hearingSession' => 'hearing_session_schema', + 'advisoryReport' => 'advisory_report_schema', + 'appealDecision' => 'appeal_decision_schema', + 'voorstel' => 'voorstel_schema', + 'parafeerroute' => 'parafeerroute_schema', + 'parafeeractie' => 'parafeeractie_schema', ]; private const OPENREGISTER_APP_ID = 'openregister'; @@ -105,6 +160,8 @@ public function isOpenRegisterAvailable(): bool * @param bool $force Whether to force re-import regardless of version * * @return array Import result + * + * @SuppressWarnings(PHPMD.BooleanArgumentFlag) — $force is a simple re-import toggle */ public function loadConfiguration(bool $force=false): array { diff --git a/lib/Service/StufFieldMappingService.php b/lib/Service/StufFieldMappingService.php new file mode 100644 index 0000000..de09691 --- /dev/null +++ b/lib/Service/StufFieldMappingService.php @@ -0,0 +1,387 @@ + + * @copyright 2024 Conduction B.V. + * @license EUPL-1.2 https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12 + * + * @version GIT: + * + * @link https://procest.nl + */ + +declare(strict_types=1); + +namespace OCA\Procest\Service; + +use Psr\Log\LoggerInterface; + +/** + * Service for StUF-to-OpenRegister field mapping. + * + * Provides bidirectional mapping between StUF XML field paths and + * OpenRegister object properties, including date format conversion + * (YYYYMMDD <-> ISO 8601) and enum value transformation. + * + * @psalm-suppress UnusedClass + */ +class StufFieldMappingService +{ + /** + * StUF date format (YYYYMMDD). + */ + private const STUF_DATE_FORMAT = 'Ymd'; + + /** + * StUF datetime format (YYYYMMDDHHmmss). + */ + private const STUF_DATETIME_FORMAT = 'YmdHis'; + + /** + * Default StUF-ZKN to Procest case field mappings. + * + * @var array + */ + private const DEFAULT_ZKN_MAPPINGS = [ + 'identificatie' => ['property' => 'identifier', 'transform' => null], + 'omschrijving' => ['property' => 'title', 'transform' => null], + 'toelichting' => ['property' => 'description', 'transform' => null], + 'startdatum' => ['property' => 'startDate', 'transform' => 'stufDateToIso'], + 'einddatum' => ['property' => 'endDate', 'transform' => 'stufDateToIso'], + 'einddatumGepland' => ['property' => 'plannedEndDate', 'transform' => 'stufDateToIso'], + 'uiterlijkeEinddatumAfdoening' => ['property' => 'deadline', 'transform' => 'stufDateToIso'], + 'registratiedatum' => ['property' => 'registrationDate', 'transform' => 'stufDateToIso'], + 'vertrouwelijkAanduiding' => ['property' => 'confidentiality', 'transform' => 'confidentialityToInternal'], + ]; + + /** + * Default StUF-BG to OpenRegister person field mappings. + * + * @var array + */ + private const DEFAULT_BG_MAPPINGS = [ + 'inp.bsn' => ['property' => 'bsn', 'transform' => null], + 'geslachtsnaam' => ['property' => 'lastName', 'transform' => null], + 'voorvoegselGeslachtsnaam' => ['property' => 'namePrefix', 'transform' => null], + 'voornamen' => ['property' => 'firstName', 'transform' => null], + 'geboortedatum' => ['property' => 'dateOfBirth', 'transform' => 'stufDateToIso'], + ]; + + /** + * Confidentiality enum mapping: StUF value -> internal value. + * + * @var array + */ + private const CONFIDENTIALITY_MAP = [ + 'OPENBAAR' => 'public', + 'BEPERKT OPENBAAR' => 'restricted', + 'INTERN' => 'internal', + 'ZAAKVERTROUWELIJK' => 'case_sensitive', + 'VERTROUWELIJK' => 'confidential', + 'CONFIDENTIEEL' => 'highly_confidential', + 'GEHEIM' => 'secret', + 'ZEER GEHEIM' => 'top_secret', + ]; + + /** + * Custom field mappings (loaded from config). + * + * @var array> + */ + private array $customMappings = []; + + /** + * Constructor. + * + * @param LoggerInterface $logger The logger instance. + */ + public function __construct( + private readonly LoggerInterface $logger, + ) { + } + + /** + * Map StUF-ZKN fields to OpenRegister case properties. + * + * @param array $stufData StUF field values keyed by field name. + * + * @return array OpenRegister property values. + * + * @psalm-suppress PossiblyUnusedMethod + */ + public function mapZknToInternal(array $stufData): array + { + $mappings = array_merge( + self::DEFAULT_ZKN_MAPPINGS, + $this->customMappings['zkn'] ?? [] + ); + + return $this->applyMappings($stufData, $mappings, 'toInternal'); + } + + /** + * Map OpenRegister case properties to StUF-ZKN fields. + * + * @param array $internalData OpenRegister property values. + * + * @return array StUF field values. + * + * @psalm-suppress PossiblyUnusedMethod + */ + public function mapInternalToZkn(array $internalData): array + { + $mappings = array_merge( + self::DEFAULT_ZKN_MAPPINGS, + $this->customMappings['zkn'] ?? [] + ); + + return $this->applyReverseMappings($internalData, $mappings); + } + + /** + * Map StUF-BG fields to OpenRegister person properties. + * + * @param array $stufData StUF field values. + * + * @return array OpenRegister property values. + * + * @psalm-suppress PossiblyUnusedMethod + */ + public function mapBgToInternal(array $stufData): array + { + $mappings = array_merge( + self::DEFAULT_BG_MAPPINGS, + $this->customMappings['bg'] ?? [] + ); + + return $this->applyMappings($stufData, $mappings, 'toInternal'); + } + + /** + * Map OpenRegister person properties to StUF-BG fields. + * + * @param array $internalData OpenRegister property values. + * + * @return array StUF field values. + * + * @psalm-suppress PossiblyUnusedMethod + */ + public function mapInternalToBg(array $internalData): array + { + $mappings = array_merge( + self::DEFAULT_BG_MAPPINGS, + $this->customMappings['bg'] ?? [] + ); + + return $this->applyReverseMappings($internalData, $mappings); + } + + /** + * Convert a StUF date (YYYYMMDD) to ISO 8601 (YYYY-MM-DD). + * + * @param string $stufDate The StUF date string. + * + * @return string|null The ISO 8601 date, or null if invalid. + * + * @psalm-suppress PossiblyUnusedMethod + */ + public function stufDateToIso(string $stufDate): ?string + { + if (strlen($stufDate) === 8) { + $dt = \DateTimeImmutable::createFromFormat(self::STUF_DATE_FORMAT, $stufDate); + if ($dt !== false) { + return $dt->format('Y-m-d'); + } + } + + if (strlen($stufDate) === 14) { + $dt = \DateTimeImmutable::createFromFormat(self::STUF_DATETIME_FORMAT, $stufDate); + if ($dt !== false) { + return $dt->format(\DateTimeInterface::ATOM); + } + } + + $this->logger->warning('Invalid StUF date format: {date}', ['date' => $stufDate]); + return null; + } + + /** + * Convert an ISO 8601 date to StUF date format (YYYYMMDD). + * + * @param string $isoDate The ISO 8601 date string. + * + * @return string The StUF date string. + * + * @psalm-suppress PossiblyUnusedMethod + */ + public function isoToStufDate(string $isoDate): string + { + $dt = new \DateTimeImmutable($isoDate); + return $dt->format(self::STUF_DATE_FORMAT); + } + + /** + * Convert an ISO 8601 datetime to StUF datetime format (YYYYMMDDHHmmss). + * + * @param string $isoDateTime The ISO 8601 datetime string. + * + * @return string The StUF datetime string. + * + * @psalm-suppress PossiblyUnusedMethod + */ + public function isoToStufDateTime(string $isoDateTime): string + { + $dt = new \DateTimeImmutable($isoDateTime); + return $dt->format(self::STUF_DATETIME_FORMAT); + } + + /** + * Convert a StUF confidentiality value to internal value. + * + * @param string $stufValue The StUF confidentiality value. + * + * @return string The internal value. + * + * @psalm-suppress PossiblyUnusedMethod + */ + public function confidentialityToInternal(string $stufValue): string + { + return self::CONFIDENTIALITY_MAP[strtoupper($stufValue)] ?? $stufValue; + } + + /** + * Convert an internal confidentiality value to StUF value. + * + * @param string $internalValue The internal value. + * + * @return string The StUF value. + * + * @psalm-suppress PossiblyUnusedMethod + */ + public function confidentialityToStuf(string $internalValue): string + { + $flipped = array_flip(self::CONFIDENTIALITY_MAP); + return $flipped[$internalValue] ?? strtoupper($internalValue); + } + + /** + * Add custom field mappings. + * + * @param string $type The mapping type ('zkn' or 'bg'). + * @param array $mappings The custom mappings. + * + * @return void + * + * @psalm-suppress PossiblyUnusedMethod + */ + public function addCustomMappings(string $type, array $mappings): void + { + $this->customMappings[$type] = array_merge( + $this->customMappings[$type] ?? [], + $mappings + ); + } + + /** + * Get all default mappings for a type. + * + * @param string $type The mapping type ('zkn' or 'bg'). + * + * @return array + * + * @psalm-suppress PossiblyUnusedMethod + */ + public function getDefaultMappings(string $type): array + { + return match ($type) { + 'zkn' => self::DEFAULT_ZKN_MAPPINGS, + 'bg' => self::DEFAULT_BG_MAPPINGS, + default => [], + }; + } + + /** + * Apply mappings to convert StUF data to internal format. + * + * @param array $data The source data. + * @param array $mappings The field mappings. + * @param string $direction The direction ('toInternal'). + * + * @return array The mapped data. + */ + private function applyMappings(array $data, array $mappings, string $direction): array + { + $result = []; + + foreach ($data as $stufField => $value) { + if (!isset($mappings[$stufField])) { + continue; + } + + $mapping = $mappings[$stufField]; + $property = $mapping['property']; + $transform = $mapping['transform']; + + if ($transform !== null && method_exists($this, $transform)) { + $value = $this->$transform($value); + } + + $result[$property] = $value; + } + + return $result; + } + + /** + * Apply reverse mappings to convert internal data to StUF format. + * + * @param array $data The internal data. + * @param array $mappings The field mappings. + * + * @return array The StUF data. + */ + private function applyReverseMappings(array $data, array $mappings): array + { + $result = []; + + // Build reverse lookup: property -> stufField. + $reverseLookup = []; + foreach ($mappings as $stufField => $mapping) { + $reverseLookup[$mapping['property']] = [ + 'stufField' => $stufField, + 'transform' => $mapping['transform'], + ]; + } + + foreach ($data as $property => $value) { + if (!isset($reverseLookup[$property])) { + continue; + } + + $info = $reverseLookup[$property]; + $stufField = $info['stufField']; + + // Apply reverse transform. + if ($value !== null && $info['transform'] !== null) { + $value = match ($info['transform']) { + 'stufDateToIso' => $this->isoToStufDate((string)$value), + 'confidentialityToInternal' => $this->confidentialityToStuf((string)$value), + default => (string)$value, + }; + } + + $result[$stufField] = (string)($value ?? ''); + } + + return $result; + } +} diff --git a/lib/Service/StufMessageBuilder.php b/lib/Service/StufMessageBuilder.php new file mode 100644 index 0000000..f79f79e --- /dev/null +++ b/lib/Service/StufMessageBuilder.php @@ -0,0 +1,293 @@ + + * @copyright 2024 Conduction B.V. + * @license EUPL-1.2 https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12 + * + * @version GIT: + * + * @link https://procest.nl + */ + +declare(strict_types=1); + +namespace OCA\Procest\Service; + +use Psr\Log\LoggerInterface; + +/** + * Service for constructing StUF SOAP XML messages. + * + * Handles SOAP envelope wrapping, StUF namespace management, + * stuurgegevens population, and noValue attribute handling. + * + * @psalm-suppress UnusedClass + */ +class StufMessageBuilder +{ + /** + * StUF base namespace. + */ + public const NS_STUF = 'http://www.egem.nl/StUF/StUF0301'; + + /** + * StUF-ZKN namespace. + */ + public const NS_ZKN = 'http://www.egem.nl/StUF/sector/zkn/0310'; + + /** + * StUF-BG namespace. + */ + public const NS_BG = 'http://www.egem.nl/StUF/sector/bg/0310'; + + /** + * SOAP envelope namespace. + */ + public const NS_SOAP = 'http://schemas.xmlsoap.org/soap/envelope/'; + + /** + * XML Schema Instance namespace. + */ + public const NS_XSI = 'http://www.w3.org/2001/XMLSchema-instance'; + + /** + * noValue attribute values. + * + * @var array + */ + public const NO_VALUE_TYPES = [ + 'geenWaarde' => 'geenWaarde', + 'waardeOnbekend' => 'waardeOnbekend', + 'nietOndersteund' => 'nietOndersteund', + 'vastgesteldOnbekend' => 'vastgesteldOnbekend', + ]; + + /** + * Constructor. + * + * @param LoggerInterface $logger The logger instance. + */ + public function __construct( + private readonly LoggerInterface $logger, + ) { + } + + /** + * Build a complete SOAP envelope wrapping a StUF message body. + * + * @param string $bodyXml The StUF message body XML (without SOAP wrapper). + * + * @return string The complete SOAP envelope XML. + * + * @psalm-suppress PossiblyUnusedMethod + */ + public function buildSoapEnvelope(string $bodyXml): string + { + $dom = new \DOMDocument('1.0', 'UTF-8'); + $dom->formatOutput = true; + + $envelope = $dom->createElementNS(self::NS_SOAP, 'soap:Envelope'); + $envelope->setAttributeNS('http://www.w3.org/2000/xmlns/', 'xmlns:stuf', self::NS_STUF); + $envelope->setAttributeNS('http://www.w3.org/2000/xmlns/', 'xmlns:zkn', self::NS_ZKN); + $envelope->setAttributeNS('http://www.w3.org/2000/xmlns/', 'xmlns:bg', self::NS_BG); + $envelope->setAttributeNS('http://www.w3.org/2000/xmlns/', 'xmlns:xsi', self::NS_XSI); + $dom->appendChild($envelope); + + $header = $dom->createElementNS(self::NS_SOAP, 'soap:Header'); + $envelope->appendChild($header); + + $body = $dom->createElementNS(self::NS_SOAP, 'soap:Body'); + $envelope->appendChild($body); + + // Import the body XML. + $bodyDoc = new \DOMDocument(); + if ($bodyDoc->loadXML($bodyXml)) { + $imported = $dom->importNode($bodyDoc->documentElement, true); + $body->appendChild($imported); + } + + return $dom->saveXML() ?: ''; + } + + /** + * Build stuurgegevens XML element. + * + * @param array $zender Sender info (organisatie, applicatie). + * @param array $ontvanger Receiver info (organisatie, applicatie). + * @param string|null $referentienummer Reference number (auto-generated if null). + * + * @return string The stuurgegevens XML fragment. + * + * @psalm-suppress PossiblyUnusedMethod + */ + public function buildStuurgegevens( + array $zender, + array $ontvanger, + ?string $referentienummer = null, + ): string { + $refNr = $referentienummer ?? $this->generateUuid(); + $tijdstip = (new \DateTimeImmutable())->format('YmdHis'); + + $xml = ''; + $xml .= 'Lk01'; + $xml .= ''; + $xml .= '' . htmlspecialchars($zender['organisatie'] ?? '') . ''; + $xml .= '' . htmlspecialchars($zender['applicatie'] ?? '') . ''; + $xml .= ''; + $xml .= ''; + $xml .= '' . htmlspecialchars($ontvanger['organisatie'] ?? '') . ''; + $xml .= '' . htmlspecialchars($ontvanger['applicatie'] ?? '') . ''; + $xml .= ''; + $xml .= '' . htmlspecialchars($refNr) . ''; + $xml .= '' . $tijdstip . ''; + $xml .= ''; + + return $xml; + } + + /** + * Build a StUF Bv01 (bevestigingsbericht) response. + * + * @param array $zender Sender info. + * @param array $ontvanger Receiver info. + * @param string $crossRef Cross-reference to original message. + * + * @return string The complete SOAP Bv01 response. + * + * @psalm-suppress PossiblyUnusedMethod + */ + public function buildBv01( + array $zender, + array $ontvanger, + string $crossRef, + ): string { + $tijdstip = (new \DateTimeImmutable())->format('YmdHis'); + + $body = ''; + $body .= ''; + $body .= 'Bv01'; + $body .= ''; + $body .= '' . htmlspecialchars($zender['organisatie'] ?? '') . ''; + $body .= '' . htmlspecialchars($zender['applicatie'] ?? '') . ''; + $body .= ''; + $body .= ''; + $body .= '' . htmlspecialchars($ontvanger['organisatie'] ?? '') . ''; + $body .= '' . htmlspecialchars($ontvanger['applicatie'] ?? '') . ''; + $body .= ''; + $body .= '' . htmlspecialchars($this->generateUuid()) . ''; + $body .= '' . $tijdstip . ''; + $body .= '' . htmlspecialchars($crossRef) . ''; + $body .= ''; + $body .= ''; + + return $this->buildSoapEnvelope($body); + } + + /** + * Build a StUF Fo01 (foutbericht) fault response. + * + * @param string $foutcode The fault code (e.g., StUF058). + * @param string $foutbeschrijving The fault description. + * @param string $plek Where the fault occurred (client/server). + * @param array $zender Sender info. + * @param array $ontvanger Receiver info. + * + * @return string The complete SOAP Fo01 response. + * + * @psalm-suppress PossiblyUnusedMethod + */ + public function buildFo01( + string $foutcode, + string $foutbeschrijving, + string $plek, + array $zender, + array $ontvanger, + ): string { + $tijdstip = (new \DateTimeImmutable())->format('YmdHis'); + + $body = ''; + $body .= ''; + $body .= 'Fo01'; + $body .= ''; + $body .= '' . htmlspecialchars($zender['organisatie'] ?? '') . ''; + $body .= '' . htmlspecialchars($zender['applicatie'] ?? '') . ''; + $body .= ''; + $body .= ''; + $body .= '' . htmlspecialchars($ontvanger['organisatie'] ?? '') . ''; + $body .= '' . htmlspecialchars($ontvanger['applicatie'] ?? '') . ''; + $body .= ''; + $body .= '' . htmlspecialchars($this->generateUuid()) . ''; + $body .= '' . $tijdstip . ''; + $body .= ''; + $body .= ''; + $body .= '' . htmlspecialchars($foutcode) . ''; + $body .= '' . htmlspecialchars($plek) . ''; + $body .= '' . htmlspecialchars($foutbeschrijving) . ''; + $body .= ''; + $body .= ''; + + return $this->buildSoapEnvelope($body); + } + + /** + * Build a SOAP Fault response for invalid XML. + * + * @param string $faultString The fault description. + * + * @return string The SOAP Fault XML. + * + * @psalm-suppress PossiblyUnusedMethod + */ + public function buildSoapFault(string $faultString): string + { + $dom = new \DOMDocument('1.0', 'UTF-8'); + $dom->formatOutput = true; + + $envelope = $dom->createElementNS(self::NS_SOAP, 'soap:Envelope'); + $dom->appendChild($envelope); + + $body = $dom->createElementNS(self::NS_SOAP, 'soap:Body'); + $envelope->appendChild($body); + + $fault = $dom->createElementNS(self::NS_SOAP, 'soap:Fault'); + $body->appendChild($fault); + + $faultcode = $dom->createElement('faultcode', 'Client'); + $fault->appendChild($faultcode); + + $faultstringEl = $dom->createElement('faultstring'); + $faultstringEl->appendChild($dom->createTextNode($faultString)); + $fault->appendChild($faultstringEl); + + return $dom->saveXML() ?: ''; + } + + /** + * Generate a UUID. + * + * @return string A UUID v4. + */ + private function generateUuid(): string + { + return sprintf( + '%04x%04x-%04x-%04x-%04x-%04x%04x%04x', + mt_rand(0, 0xffff), + mt_rand(0, 0xffff), + mt_rand(0, 0xffff), + mt_rand(0, 0x0fff) | 0x4000, + mt_rand(0, 0x3fff) | 0x8000, + mt_rand(0, 0xffff), + mt_rand(0, 0xffff), + mt_rand(0, 0xffff) + ); + } +} diff --git a/lib/Service/TemplateLibraryService.php b/lib/Service/TemplateLibraryService.php new file mode 100644 index 0000000..862785c --- /dev/null +++ b/lib/Service/TemplateLibraryService.php @@ -0,0 +1,267 @@ + + * @copyright 2024 Conduction B.V. + * @license EUPL-1.2 https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12 + * + * @version GIT: + * + * @link https://procest.nl + */ + +declare(strict_types=1); + +namespace OCA\Procest\Service; + +use OCA\Procest\AppInfo\Application; +use Psr\Log\LoggerInterface; + +/** + * Service for loading and activating zaaktype templates. + */ +class TemplateLibraryService +{ + + /** + * Path to the templates directory. + */ + private const TEMPLATES_DIR = __DIR__ . '/../Settings/templates'; + + + /** + * Constructor. + * + * @param SettingsService $settingsService Settings service for register/schema references + * @param LoggerInterface $logger Logger + */ + public function __construct( + private readonly SettingsService $settingsService, + private readonly LoggerInterface $logger, + ) { + } + + + /** + * List all available zaaktype templates. + * + * Scans the templates directory for JSON files and returns their metadata. + * + * @return array> List of template metadata + */ + public function listTemplates(): array + { + $templates = []; + $dir = self::TEMPLATES_DIR; + + if (is_dir($dir) === false) { + return $templates; + } + + $files = glob($dir . '/*.json'); + if ($files === false) { + return $templates; + } + + foreach ($files as $file) { + $content = file_get_contents($file); + if ($content === false) { + continue; + } + + $data = json_decode($content, true); + if (json_last_error() !== JSON_ERROR_NONE || is_array($data) === false) { + $this->logger->warning( + 'Invalid template file: ' . basename($file), + ['app' => Application::APP_ID] + ); + continue; + } + + $templates[] = [ + 'id' => $data['id'] ?? pathinfo($file, PATHINFO_FILENAME), + 'title' => $data['title'] ?? '', + 'description' => $data['description'] ?? '', + 'category' => $data['category'] ?? 'general', + 'version' => $data['version'] ?? '1.0.0', + 'file' => basename($file), + ]; + } + + return $templates; + } + + + /** + * Load a template by its ID. + * + * @param string $templateId The template identifier + * + * @return array|null The full template data or null if not found + */ + public function loadTemplate(string $templateId): ?array + { + $dir = self::TEMPLATES_DIR; + + if (is_dir($dir) === false) { + return null; + } + + $files = glob($dir . '/*.json'); + if ($files === false) { + return null; + } + + foreach ($files as $file) { + $content = file_get_contents($file); + if ($content === false) { + continue; + } + + $data = json_decode($content, true); + if (json_last_error() !== JSON_ERROR_NONE || is_array($data) === false) { + continue; + } + + $fileId = $data['id'] ?? pathinfo($file, PATHINFO_FILENAME); + if ($fileId === $templateId) { + return $data; + } + } + + return null; + } + + + /** + * Activate a template by creating OpenRegister objects for the case type and related entities. + * + * This creates: + * - A caseType object + * - statusType objects linked to the caseType + * - propertyDefinition objects linked to the caseType + * - documentType objects linked to the caseType + * - decisionType objects linked to the caseType + * - roleType objects linked to the caseType + * + * @param string $templateId The template identifier + * + * @return array Result with created object IDs + * + * @throws \RuntimeException If template not found or OpenRegister unavailable + */ + public function activateTemplate(string $templateId): array + { + $template = $this->loadTemplate($templateId); + if ($template === null) { + throw new \RuntimeException('Template not found: ' . $templateId); + } + + $objectService = $this->settingsService->getObjectService(); + if ($objectService === null) { + throw new \RuntimeException('OpenRegister is not available'); + } + + $register = $this->settingsService->getConfigValue('register'); + if (empty($register) === true) { + throw new \RuntimeException('Procest register not configured'); + } + + $result = [ + 'templateId' => $templateId, + 'caseType' => null, + 'statuses' => [], + 'properties' => [], + 'documents' => [], + 'decisions' => [], + 'roles' => [], + ]; + + // Create the case type. + $caseTypeSchema = $this->settingsService->getConfigValue('case_type_schema'); + $caseTypeData = $template['caseType'] ?? []; + $caseType = $objectService->saveObject( + $register, + $caseTypeSchema, + $caseTypeData, + ); + $caseTypeId = $caseType->getUuid(); + $result['caseType'] = $caseTypeId; + + // Create status types. + $statusTypeSchema = $this->settingsService->getConfigValue('status_type_schema'); + foreach (($template['statusTypes'] ?? []) as $statusData) { + $statusData['caseType'] = $caseTypeId; + $status = $objectService->saveObject( + $register, + $statusTypeSchema, + $statusData, + ); + $result['statuses'][] = $status->getUuid(); + } + + // Create property definitions. + $propertySchema = $this->settingsService->getConfigValue('property_definition_schema'); + foreach (($template['propertyDefinitions'] ?? []) as $propData) { + $propData['caseType'] = $caseTypeId; + $prop = $objectService->saveObject( + $register, + $propertySchema, + $propData, + ); + $result['properties'][] = $prop->getUuid(); + } + + // Create document types. + $docTypeSchema = $this->settingsService->getConfigValue('document_type_schema'); + foreach (($template['documentTypes'] ?? []) as $docData) { + $docData['caseType'] = $caseTypeId; + $doc = $objectService->saveObject( + $register, + $docTypeSchema, + $docData, + ); + $result['documents'][] = $doc->getUuid(); + } + + // Create decision types. + $decisionTypeSchema = $this->settingsService->getConfigValue('decision_type_schema'); + foreach (($template['decisionTypes'] ?? []) as $decData) { + $decData['caseType'] = $caseTypeId; + $dec = $objectService->saveObject( + $register, + $decisionTypeSchema, + $decData, + ); + $result['decisions'][] = $dec->getUuid(); + } + + // Create role types. + $roleTypeSchema = $this->settingsService->getConfigValue('role_type_schema'); + foreach (($template['roleTypes'] ?? []) as $roleData) { + $roleData['caseType'] = $caseTypeId; + $role = $objectService->saveObject( + $register, + $roleTypeSchema, + $roleData, + ); + $result['roles'][] = $role->getUuid(); + } + + $this->logger->info( + 'Template activated: ' . $templateId . ' -> caseType ' . $caseTypeId, + ['app' => Application::APP_ID] + ); + + return $result; + } +} diff --git a/lib/Service/TenantService.php b/lib/Service/TenantService.php new file mode 100644 index 0000000..36aebde --- /dev/null +++ b/lib/Service/TenantService.php @@ -0,0 +1,333 @@ + + * @copyright 2024 Conduction B.V. + * @license EUPL-1.2 https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12 + * + * @version GIT: + * + * @link https://procest.nl + */ + +declare(strict_types=1); + +namespace OCA\Procest\Service; + +use OCP\App\IAppManager; +use OCP\IGroupManager; +use OCP\IUserManager; +use Psr\Container\ContainerInterface; +use Psr\Log\LoggerInterface; + +/** + * Service for managing multi-tenant isolation. + * + * Resolves tenant from user's Nextcloud group membership, + * provisions new tenants with dedicated OpenRegister registers, + * and enforces resource limits. + */ +class TenantService +{ + /** + * Prefix for tenant Nextcloud groups. + */ + private const TENANT_GROUP_PREFIX = 'tenant_'; + + /** + * Constructor for the TenantService. + * + * @param SettingsService $settingsService The settings service + * @param IAppManager $appManager The app manager + * @param IGroupManager $groupManager The Nextcloud group manager + * @param IUserManager $userManager The Nextcloud user manager + * @param ContainerInterface $container The DI container + * @param LoggerInterface $logger The logger + * + * @return void + */ + public function __construct( + private SettingsService $settingsService, + private IAppManager $appManager, + private IGroupManager $groupManager, + private IUserManager $userManager, + private ContainerInterface $container, + private LoggerInterface $logger, + ) { + }//end __construct() + + /** + * Resolve the tenant for a given user. + * + * Finds the user's tenant_* group membership and returns the tenant record. + * + * @param string $userId The Nextcloud user ID + * + * @return array|null The tenant data or null if no tenant found + */ + public function getTenantForUser(string $userId): ?array + { + $user = $this->userManager->get($userId); + if ($user === null) { + return null; + } + + $groups = $this->groupManager->getUserGroups($user); + foreach ($groups as $group) { + $groupId = $group->getGID(); + if (str_starts_with($groupId, self::TENANT_GROUP_PREFIX) === true) { + return $this->getTenantByGroupId($groupId); + } + } + + return null; + }//end getTenantForUser() + + /** + * Get a tenant record by its Nextcloud group ID. + * + * @param string $groupId The Nextcloud group ID (tenant_{slug}) + * + * @return array|null The tenant data + */ + public function getTenantByGroupId(string $groupId): ?array + { + $objectService = $this->getObjectService(); + if ($objectService === null) { + return null; + } + + $register = $this->settingsService->getConfigValue('register'); + $schema = $this->settingsService->getConfigValue('tenant_schema'); + + if (empty($register) === true || empty($schema) === true) { + return null; + } + + $result = $objectService->getObjects( + (int) $register, + (int) $schema, + ['groupId' => $groupId], + ); + + $tenants = ($result['objects'] ?? []); + if (empty($tenants) === true) { + return null; + } + + $tenant = reset($tenants); + return is_object($tenant) ? $tenant->jsonSerialize() : $tenant; + }//end getTenantByGroupId() + + /** + * Create a new tenant. + * + * Creates the tenant record, a Nextcloud group, and (optionally) + * a dedicated OpenRegister register. + * + * @param string $name The municipality name + * @param string|null $oin The Organisatie-identificatienummer + * @param string|null $domain The custom domain + * + * @return array The created tenant data + */ + public function createTenant(string $name, ?string $oin=null, ?string $domain=null): array + { + $objectService = $this->getObjectService(); + if ($objectService === null) { + return ['error' => 'OpenRegister is not available']; + } + + $slug = $this->slugify($name); + $groupId = self::TENANT_GROUP_PREFIX.$slug; + + // Create Nextcloud group. + if ($this->groupManager->groupExists($groupId) === false) { + $this->groupManager->createGroup($groupId); + } + + $register = $this->settingsService->getConfigValue('register'); + $schema = $this->settingsService->getConfigValue('tenant_schema'); + + $tenantData = [ + 'name' => $name, + 'slug' => $slug, + 'oin' => $oin, + 'domain' => $domain, + 'groupId' => $groupId, + 'brandingTokens' => '{}', + 'maxUsers' => 0, + 'maxStorageMb' => 0, + 'isActive' => true, + ]; + + $result = $objectService->saveObject( + (int) $register, + (int) $schema, + $tenantData, + ); + + $this->logger->info( + 'Procest: Tenant created', + ['name' => $name, 'slug' => $slug, 'groupId' => $groupId] + ); + + return $result->jsonSerialize(); + }//end createTenant() + + /** + * Provision a tenant with a dedicated OpenRegister register and default schemas. + * + * @param string $tenantId The tenant UUID + * + * @return array The provisioning result + */ + public function provisionTenant(string $tenantId): array + { + $objectService = $this->getObjectService(); + if ($objectService === null) { + return ['error' => 'OpenRegister is not available']; + } + + $register = $this->settingsService->getConfigValue('register'); + $schema = $this->settingsService->getConfigValue('tenant_schema'); + + $tenant = $objectService->getObject((int) $register, (int) $schema, $tenantId); + $tenantData = $tenant->jsonSerialize(); + + // Create a dedicated register for this tenant. + try { + $registerService = $this->container->get('OCA\OpenRegister\Service\RegisterService'); + $newRegister = $registerService->createFromArray([ + 'title' => 'Procest - '.$tenantData['name'], + 'description' => 'Case management register for '.$tenantData['name'], + ]); + + $tenantData['registerId'] = (string) $newRegister->getId(); + } catch (\Exception $e) { + $this->logger->error( + 'Procest: Failed to create tenant register', + ['tenantId' => $tenantId, 'exception' => $e->getMessage()] + ); + return ['error' => 'Failed to create tenant register: '.$e->getMessage()]; + } + + // Save updated tenant with register ID. + $result = $objectService->saveObject( + (int) $register, + (int) $schema, + $tenantData, + ); + + $this->logger->info( + 'Procest: Tenant provisioned', + ['tenantId' => $tenantId, 'registerId' => $tenantData['registerId']] + ); + + return $result->jsonSerialize(); + }//end provisionTenant() + + /** + * Get resource usage for a tenant. + * + * @param string $tenantId The tenant UUID + * + * @return array Usage data with user count, storage, and limits + */ + public function getResourceUsage(string $tenantId): array + { + $objectService = $this->getObjectService(); + if ($objectService === null) { + return ['error' => 'OpenRegister is not available']; + } + + $register = $this->settingsService->getConfigValue('register'); + $schema = $this->settingsService->getConfigValue('tenant_schema'); + + $tenant = $objectService->getObject((int) $register, (int) $schema, $tenantId); + $tenantData = $tenant->jsonSerialize(); + + // Count users in tenant group. + $group = $this->groupManager->get($tenantData['groupId'] ?? ''); + $userCount = $group !== null ? count($group->getUsers()) : 0; + + return [ + 'users' => $userCount, + 'maxUsers' => (int) ($tenantData['maxUsers'] ?? 0), + 'maxStorageMb' => (int) ($tenantData['maxStorageMb'] ?? 0), + ]; + }//end getResourceUsage() + + /** + * Check if a user belongs to a specific tenant. + * + * @param string $userId The Nextcloud user ID + * @param string $tenantId The tenant UUID + * + * @return bool True if user belongs to the tenant + */ + public function isUserInTenant(string $userId, string $tenantId): bool + { + $tenant = $this->getTenantForUser($userId); + if ($tenant === null) { + return false; + } + + return ($tenant['uuid'] ?? $tenant['id'] ?? '') === $tenantId; + }//end isUserInTenant() + + /** + * Check if a user is a platform administrator. + * + * @param string $userId The Nextcloud user ID + * + * @return bool True if user is in the admin group + */ + public function isPlatformAdmin(string $userId): bool + { + return $this->groupManager->isAdmin($userId); + }//end isPlatformAdmin() + + /** + * Generate a URL-safe slug from a name. + * + * @param string $name The name to slugify + * + * @return string The slug + */ + private function slugify(string $name): string + { + $slug = strtolower($name); + $slug = preg_replace('/[^a-z0-9]+/', '-', $slug); + return trim($slug, '-'); + }//end slugify() + + /** + * Get the OpenRegister ObjectService. + * + * @return \OCA\OpenRegister\Service\ObjectService|null The service or null + */ + private function getObjectService(): ?\OCA\OpenRegister\Service\ObjectService + { + if (in_array('openregister', $this->appManager->getInstalledApps()) === false) { + return null; + } + + try { + return $this->container->get('OCA\OpenRegister\Service\ObjectService'); + } catch (\Exception $e) { + $this->logger->error( + 'Procest: Could not get ObjectService', + ['exception' => $e->getMessage()] + ); + return null; + } + }//end getObjectService() +}//end class diff --git a/lib/Service/ZgwBrcRulesService.php b/lib/Service/ZgwBrcRulesService.php new file mode 100644 index 0000000..5181624 --- /dev/null +++ b/lib/Service/ZgwBrcRulesService.php @@ -0,0 +1,646 @@ + + * @copyright 2024 Conduction B.V. + * @license EUPL-1.2 https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12 + * + * @version GIT: + * + * @link https://procest.nl + * @link https://vng-realisatie.github.io/gemma-zaken/standaard/besluiten/ + * + * Business rules implemented: + * + * - brc-001: Valideren besluittype op het Besluit + * The besluittype must exist and be published (concept=false). + * @link https://vng-realisatie.github.io/gemma-zaken/standaard/besluiten/ + * + * - brc-002: Garanderen uniciteit verantwoordelijkeOrganisatie en identificatie + * The combination of verantwoordelijkeOrganisatie + identificatie must be unique. + * Auto-generate identificatie if not provided. Identificatie and + * verantwoordelijkeOrganisatie are immutable after creation. + * @link https://vng-realisatie.github.io/gemma-zaken/standaard/besluiten/ + * + * - brc-003: Valideren informatieobject op BesluitInformatieObject + * The informatieobject URL must resolve to an existing document. + * @link https://vng-realisatie.github.io/gemma-zaken/standaard/besluiten/ + * + * - brc-004: Valideren aardRelatie op BesluitInformatieObject + * The aardRelatie is automatically set to 'legt_vast' on creation. + * @link https://vng-realisatie.github.io/gemma-zaken/standaard/besluiten/ + * + * - brc-005: Synchroniseren relaties met informatieobjecten (cross-register, in ZgwService) + * When a BesluitInformatieObject is created/deleted, sync to DRC. + * @link https://vng-realisatie.github.io/gemma-zaken/standaard/besluiten/ + * + * - brc-006: Synchroniseren relatie Besluit-Zaak met ZRC (cross-register, in ZgwService) + * When a Besluit has a zaak, a ZaakBesluit must be created/deleted in ZRC. + * @link https://vng-realisatie.github.io/gemma-zaken/standaard/besluiten/ + * + * - brc-007: Valideren zaak-besluittype relatie + * The zaak's zaaktype must be listed in the besluittype's zaaktypen. + * @link https://vng-realisatie.github.io/gemma-zaken/standaard/besluiten/ + * + * - brc-008: Valideren informatieobjecttype bij besluittype + * The informatieobjecttype of the linked informatieobject must appear + * in besluittype.informatieobjecttypen. + * @link https://vng-realisatie.github.io/gemma-zaken/standaard/besluiten/ + * + * @SuppressWarnings(PHPMD.CouplingBetweenObjects) + * @SuppressWarnings(PHPMD.ExcessiveClassComplexity) + * @SuppressWarnings(PHPMD.TooManyMethods) + * @SuppressWarnings(PHPMD.CyclomaticComplexity) + * @SuppressWarnings(PHPMD.NPathComplexity) + */ + +declare(strict_types=1); + +namespace OCA\Procest\Service; + +/** + * BRC (Besluiten API) business rule validation and enrichment. + * + * @psalm-suppress UnusedClass + * + * @SuppressWarnings(PHPMD.ExcessiveClassComplexity) + */ +class ZgwBrcRulesService extends ZgwRulesBase +{ + /** + * Rules for creating a besluit (POST /besluiten/v1/besluiten). + * + * Implements brc-001, brc-002, brc-007. + * + * @param array $body The ZGW request body (Dutch field names) + * + * @return array The validation result + * + * @link https://vng-realisatie.github.io/gemma-zaken/standaard/besluiten/ + * + * @SuppressWarnings(PHPMD.CyclomaticComplexity) — ZGW business rules validation + */ + public function rulesBesluitenCreate(array $body): array + { + // Brc-001: Validate besluittype URL. + $besluitTypeUrl = $body['besluittype'] ?? ''; + if (empty($besluitTypeUrl) === false && $this->objectService !== null) { + $error = $this->validateTypeUrl( + typeUrl: $besluitTypeUrl, + fieldName: 'besluittype', + schemaKey: 'decision_type_schema' + ); + if ($error !== null) { + return $error; + } + } + + // Brc-002: Check unique combination of verantwoordelijkeOrganisatie + identificatie. + if (empty($body['identificatie']) === false && $this->objectService !== null) { + $uniqueError = $this->checkBesluitIdentificatieUnique(body: $body); + if ($uniqueError !== null) { + return $uniqueError; + } + } + + // Brc-007: Validate zaak-besluittype relation. + $zaakUrl = $body['zaak'] ?? null; + if ($zaakUrl !== null && $zaakUrl !== '' && empty($besluitTypeUrl) === false + && $this->objectService !== null + ) { + $relError = $this->validateZaakBesluittypeRelation( + zaakUrl: $zaakUrl, + besluitTypeUrl: $besluitTypeUrl + ); + if ($relError !== null) { + return $relError; + } + } + + // Brc-002: Auto-generate identificatie if not provided. + if (empty($body['identificatie']) === true) { + $body['identificatie'] = $this->generateIdentificatie(prefix: 'BESLUIT'); + } + + return $this->isValid(body: $body); + }//end rulesBesluitenCreate() + + /** + * Rules for updating a besluit (PUT /besluiten/v1/besluiten/{uuid}). + * + * Implements brc-001 and brc-002 immutability. + * + * @param array $body The ZGW request body + * @param array|null $existingObject The existing besluit data + * + * @return array The validation result + * + * @link https://vng-realisatie.github.io/gemma-zaken/standaard/besluiten/ + */ + public function rulesBesluitenUpdate(array $body, ?array $existingObject=null): array + { + $result = $this->isValid(body: $body); + + $result = $this->checkBesluitTypeImmutability( + result: $result, + existingObject: $existingObject + ); + if ($result['valid'] === false) { + return $result; + } + + $result = $this->checkBesluitFieldImmutability( + result: $result, + existingObject: $existingObject + ); + if ($result['valid'] === false) { + return $result; + } + + // Preserve immutable fields from existing object when omitted in PUT body. + $result = $this->preserveImmutableBesluitFields( + result: $result, + existingObject: $existingObject + ); + + return $result; + }//end rulesBesluitenUpdate() + + /** + * Rules for patching a besluit (PATCH /besluiten/v1/besluiten/{uuid}). + * + * @param array $body The ZGW request body + * @param array|null $existingObject The existing besluit data + * + * @return array The validation result + * + * @see rulesBesluitenUpdate() Same immutability rules apply. + */ + public function rulesBesluitenPatch(array $body, ?array $existingObject=null): array + { + $result = $this->isValid(body: $body); + + $result = $this->checkBesluitTypeImmutability( + result: $result, + existingObject: $existingObject + ); + if ($result['valid'] === false) { + return $result; + } + + return $this->checkBesluitFieldImmutability( + result: $result, + existingObject: $existingObject + ); + }//end rulesBesluitenPatch() + + /** + * Rules for creating a BesluitInformatieObject. + * + * Implements brc-003, brc-004, brc-008. + * + * @param array $body The ZGW request body + * + * @return array The validation result + * + * @link https://vng-realisatie.github.io/gemma-zaken/standaard/besluiten/ + */ + public function rulesBesluitinformatieobjectenCreate(array $body): array + { + // Brc-003: Validate informatieobject URL. + $ioUrl = $body['informatieobject'] ?? ''; + if ($ioUrl !== '' && $this->objectService !== null) { + $error = $this->validateInformatieobjectUrl(ioUrl: $ioUrl); + if ($error !== null) { + return $error; + } + } + + // Brc-008: Validate informatieobjecttype in besluittype.informatieobjecttypen. + $besluitUrl = $body['besluit'] ?? ''; + if ($besluitUrl !== '' && $ioUrl !== '' && $this->objectService !== null) { + $iotError = $this->validateBioInformatieobjecttype( + besluitUrl: $besluitUrl, + ioUrl: $ioUrl + ); + if ($iotError !== null) { + return $iotError; + } + } + + // Brc-004: Set aardRelatieWeergave automatically. + $body['aardRelatieWeergave'] = 'Legt vast, omgekeerd: wordt vastgelegd door'; + + return $this->isValid(body: $body); + }//end rulesBesluitinformatieobjectenCreate() + + /** + * Check that besluittype is not changed on update/patch (brc-001). + * + * @param array $result The current validation result + * @param array|null $existingObject The existing object data + * + * @return array The updated validation result + */ + private function checkBesluitTypeImmutability(array $result, ?array $existingObject): array + { + if ($existingObject === null) { + return $result; + } + + $body = $result['enrichedBody']; + $newBesluittype = $body['besluittype'] ?? null; + $existBesluittype = $existingObject['decisionType'] ?? ''; + + if ($newBesluittype !== null && $existBesluittype !== '') { + $newUuid = $this->extractUuid(url: $newBesluittype); + if ($newUuid !== null && $newUuid !== $existBesluittype + && $this->extractUuid(url: $existBesluittype) !== $newUuid + ) { + return $this->fieldImmutableError(fieldName: 'besluittype'); + } + } + + return $result; + }//end checkBesluitTypeImmutability() + + /** + * Check besluit field immutability (brc-002). + * + * Identificatie and verantwoordelijkeOrganisatie are immutable after creation. + * + * @param array $result The current validation result + * @param array|null $existingObject The existing object data + * + * @return array The updated validation result + */ + private function checkBesluitFieldImmutability(array $result, ?array $existingObject): array + { + if ($existingObject === null) { + return $result; + } + + $body = $result['enrichedBody']; + + // Brc-002: identificatie is immutable. + if (isset($body['identificatie']) === true) { + $existingId = $existingObject['title'] ?? $existingObject['identifier'] ?? ''; + if ($existingId === '') { + $existingId = $existingObject['identificatie'] ?? ''; + } + + if ($existingId !== '' && $body['identificatie'] !== $existingId) { + return $this->fieldImmutableError(fieldName: 'identificatie'); + } + } + + // Brc-002: verantwoordelijkeOrganisatie is immutable. + if (isset($body['verantwoordelijkeOrganisatie']) === true) { + $orgKey = 'responsibleOrganisation'; + $orgFallback = 'verantwoordelijkeOrganisatie'; + $existingOrg = $existingObject[$orgKey] ?? $existingObject[$orgFallback] ?? ''; + if ($existingOrg !== '' && $body['verantwoordelijkeOrganisatie'] !== $existingOrg) { + return $this->fieldImmutableError(fieldName: 'verantwoordelijkeOrganisatie'); + } + } + + return $result; + }//end checkBesluitFieldImmutability() + + /** + * Preserve immutable besluit fields from existing object when omitted in PUT body. + * + * @param array $result The current validation result + * @param array|null $existingObject The existing object data + * + * @return array The updated validation result with preserved fields + */ + private function preserveImmutableBesluitFields(array $result, ?array $existingObject): array + { + if ($existingObject === null) { + return $result; + } + + $body = $result['enrichedBody']; + + if (isset($body['identificatie']) === false || $body['identificatie'] === '') { + $existingId = $existingObject['title'] ?? $existingObject['identifier'] ?? ''; + if ($existingId === '') { + $existingId = $existingObject['identificatie'] ?? ''; + } + + if ($existingId !== '') { + $body['identificatie'] = $existingId; + } + } + + if (isset($body['verantwoordelijkeOrganisatie']) === false + || $body['verantwoordelijkeOrganisatie'] === '' + ) { + $orgKey = 'responsibleOrganisation'; + $orgFallback = 'verantwoordelijkeOrganisatie'; + $existingOrg = $existingObject[$orgKey] ?? $existingObject[$orgFallback] ?? ''; + if ($existingOrg !== '') { + $body['verantwoordelijkeOrganisatie'] = $existingOrg; + } + } + + $result['enrichedBody'] = $body; + + return $result; + }//end preserveImmutableBesluitFields() + + /** + * Check that besluit identificatie + verantwoordelijkeOrganisatie is unique (brc-002). + * + * @param array $body The request body (ZGW Dutch field names) + * + * @return array|null Validation error, or null if unique + */ + private function checkBesluitIdentificatieUnique(array $body): ?array + { + $identificatie = $body['identificatie'] ?? ''; + $organisation = $body['verantwoordelijkeOrganisatie'] ?? ''; + + if ($identificatie === '' || $this->objectService === null) { + return null; + } + + $register = $this->mappingConfig['sourceRegister'] ?? ''; + $schema = $this->mappingConfig['sourceSchema'] ?? ''; + + if (empty($register) === true || empty($schema) === true) { + return null; + } + + try { + $searchParams = ['title' => $identificatie]; + if ($organisation !== '') { + $searchParams['responsibleOrganisation'] = $organisation; + } + + $query = $this->objectService->buildSearchQuery( + requestParams: $searchParams, + register: $register, + schema: $schema + ); + $result = $this->objectService->searchObjectsPaginated(query: $query); + $total = $result['total'] ?? count($result['results'] ?? []); + + if ($total > 0) { + return $this->error( + status: 400, + detail: 'De combinatie van verantwoordelijke_organisatie en identificatie is niet uniek.', + invalidParams: [ + $this->fieldError( + fieldName: 'identificatie', + code: 'identificatie-niet-uniek', + reason: 'De combinatie van verantwoordelijke_organisatie en identificatie bestaat al.' + ), + ] + ); + } + } catch (\Throwable $e) { + $this->logger->warning( + 'brc-002: Could not check besluit identificatie uniqueness: '.$e->getMessage() + ); + }//end try + + return null; + }//end checkBesluitIdentificatieUnique() + + /** + * Validate zaak-besluittype relation (brc-007). + * + * The zaak's zaaktype must be listed in the besluittype's zaaktypen. + * + * @param string $zaakUrl The zaak URL from the request + * @param string $besluitTypeUrl The besluittype URL from the request + * + * @return array|null Validation error, or null if valid + * + * @SuppressWarnings(PHPMD.CyclomaticComplexity) + * @SuppressWarnings(PHPMD.NPathComplexity) + */ + private function validateZaakBesluittypeRelation(string $zaakUrl, string $besluitTypeUrl): ?array + { + $register = $this->mappingConfig['sourceRegister'] ?? ''; + if (empty($register) === true || $this->objectService === null) { + return null; + } + + // Look up the zaak to get its zaaktype. + $zaakUuid = $this->extractUuid(url: $zaakUrl); + if ($zaakUuid === null) { + return null; + } + + $zaakData = $this->findBySchemaKey(uuid: $zaakUuid, schemaKey: 'case_schema'); + if ($zaakData === null) { + return null; + } + + $zaakCaseType = $zaakData['caseType'] ?? ''; + if (empty($zaakCaseType) === true) { + return null; + } + + // Look up the besluittype to check its zaaktypen/caseTypes. + $btUuid = $this->extractUuid(url: $besluitTypeUrl); + if ($btUuid === null) { + return null; + } + + $btData = $this->findBySchemaKey(uuid: $btUuid, schemaKey: 'decision_type_schema'); + if ($btData === null) { + return null; + } + + $zaakCaseTypeUuid = $this->extractUuid(url: $zaakCaseType); + + // Check direction 1: BT.caseTypes contains the zaaktype UUID. + $caseTypes = $btData['caseTypes'] ?? []; + if (is_string($caseTypes) === true) { + $caseTypes = json_decode($caseTypes, true) ?? []; + } + + if (is_array($caseTypes) === false) { + $caseTypes = []; + } + + foreach ($caseTypes as $ct) { + $ctUuid = $this->extractUuid(url: (string) $ct); + if ($ctUuid !== null && $ctUuid === $zaakCaseTypeUuid) { + return null; + } + } + + // Check direction 2: ZT.decisionTypes contains the BT omschrijving or UUID. + $ztData = $this->findBySchemaKey(uuid: $zaakCaseTypeUuid, schemaKey: 'case_type_schema'); + if ($ztData !== null) { + $decisionTypes = $ztData['decisionTypes'] ?? []; + if (is_string($decisionTypes) === true) { + $decisionTypes = json_decode($decisionTypes, true) ?? []; + } + + if (is_array($decisionTypes) === true) { + $btOmschrijving = $btData['title'] ?? ($btData['name'] ?? ''); + foreach ($decisionTypes as $dt) { + $dtStr = (string) $dt; + // Match by omschrijving or UUID. + $dtUuid = $this->extractUuid(url: $dtStr); + if (($dtUuid !== null && $dtUuid === $btUuid) + || ($btOmschrijving !== '' && $dtStr === $btOmschrijving) + ) { + return null; + } + } + } + }//end if + + $detail = 'Het zaaktype van de zaak is niet gerelateerd aan het besluittype.'; + + return $this->error( + status: 400, + detail: $detail, + invalidParams: [ + $this->fieldError( + fieldName: 'nonFieldErrors', + code: 'zaaktype-mismatch', + reason: $detail + ), + ] + ); + }//end validateZaakBesluittypeRelation() + + /** + * Validate informatieobjecttype is in besluittype.informatieobjecttypen (brc-008). + * + * @param string $besluitUrl The besluit URL + * @param string $ioUrl The informatieobject URL + * + * @return array|null Validation error, or null if valid + * + * @SuppressWarnings(PHPMD.CyclomaticComplexity) + * @SuppressWarnings(PHPMD.NPathComplexity) + * @SuppressWarnings(PHPMD.ExcessiveMethodLength) — ZGW cross-register validation + */ + private function validateBioInformatieobjecttype(string $besluitUrl, string $ioUrl): ?array + { + if ($this->objectService === null) { + return null; + } + + // Get the besluit to find its besluittype. + $besluitUuid = $this->extractUuid(url: $besluitUrl); + if ($besluitUuid === null) { + return null; + } + + $besluitData = $this->findBySchemaKey(uuid: $besluitUuid, schemaKey: 'decision_schema'); + if ($besluitData === null) { + return null; + } + + $decisionTypeId = $besluitData['decisionType'] ?? ''; + if (empty($decisionTypeId) === true) { + return null; + } + + // Get the besluittype. + $btUuid = $this->extractUuid(url: $decisionTypeId); + if ($btUuid === null) { + return null; + } + + $btData = $this->findBySchemaKey(uuid: $btUuid, schemaKey: 'decision_type_schema'); + if ($btData === null) { + return null; + } + + // Get the allowed documentTypes from besluittype. + $allowedDocTypes = $btData['documentTypes'] ?? '[]'; + if (is_string($allowedDocTypes) === true) { + $allowedDocTypes = json_decode($allowedDocTypes, true) ?? []; + } + + if (is_array($allowedDocTypes) === false || empty($allowedDocTypes) === true) { + // phpcs:ignore Generic.Files.LineLength.TooLong + $detail = 'Het informatieobjecttype van het informatieobject is niet gespecificeerd in het besluittype.informatieobjecttypen.'; + return $this->error( + status: 400, + detail: $detail, + invalidParams: [ + $this->fieldError( + fieldName: 'nonFieldErrors', + code: 'missing-informatieobjecttype', + reason: $detail + ), + ] + ); + } + + // Get the informatieobject to find its informatieobjecttype. + $ioUuid = $this->extractUuid(url: $ioUrl); + if ($ioUuid === null) { + return null; + } + + $ioData = $this->findBySchemaKey(uuid: $ioUuid, schemaKey: 'document_schema'); + if ($ioData === null) { + return null; + } + + $docTypeId = $ioData['documentType'] ?? ''; + if (empty($docTypeId) === true) { + return null; + } + + // Look up the documentType to get its name. + $docTypeUuid = $this->extractUuid(url: $docTypeId); + if ($docTypeUuid === null) { + return null; + } + + $dtData = $this->findBySchemaKey(uuid: $docTypeUuid, schemaKey: 'document_type_schema'); + if ($dtData === null) { + return null; + } + + $docTypeName = $dtData['name'] ?? ''; + + // Check if the documentType is in the allowed list. + $found = false; + foreach ($allowedDocTypes as $allowed) { + if ($allowed === $docTypeName || $allowed === $docTypeUuid) { + $found = true; + break; + } + } + + if ($found === false) { + // phpcs:ignore Generic.Files.LineLength.TooLong + $detail = 'Het informatieobjecttype van het informatieobject is niet gespecificeerd in het besluittype.informatieobjecttypen.'; + return $this->error( + status: 400, + detail: $detail, + invalidParams: [ + $this->fieldError( + fieldName: 'nonFieldErrors', + code: 'missing-informatieobjecttype', + reason: $detail + ), + ] + ); + } + + return null; + }//end validateBioInformatieobjecttype() +}//end class diff --git a/lib/Service/ZgwBusinessRulesService.php b/lib/Service/ZgwBusinessRulesService.php new file mode 100644 index 0000000..3efcb63 --- /dev/null +++ b/lib/Service/ZgwBusinessRulesService.php @@ -0,0 +1,359 @@ + + * @copyright 2024 Conduction B.V. + * @license EUPL-1.2 https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12 + * + * @version GIT: + * + * @link https://procest.nl + * + * @SuppressWarnings(PHPMD.CouplingBetweenObjects) + */ + +declare(strict_types=1); + +namespace OCA\Procest\Service; + +/** + * Dispatcher for ZGW business rule validation and enrichment. + * + * Delegates to per-register rule services (ZRC, ZTC, DRC, BRC). + * Handles cross-register concerns like concept protection (ztc-009/010) + * and closed-zaak protection (zrc-007) before delegating. + */ +class ZgwBusinessRulesService +{ + /** + * Constructor. + * + * @param ZgwZrcRulesService $zrcRules ZRC (Zaken) rules + * @param ZgwZtcRulesService $ztcRules ZTC (Catalogi) rules + * @param ZgwDrcRulesService $drcRules DRC (Documenten) rules + * @param ZgwBrcRulesService $brcRules BRC (Besluiten) rules + * + * @return void + */ + public function __construct( + private readonly ZgwZrcRulesService $zrcRules, + private readonly ZgwZtcRulesService $ztcRules, + private readonly ZgwDrcRulesService $drcRules, + private readonly ZgwBrcRulesService $brcRules, + ) { + }//end __construct() + + /** + * Validate and enrich a request body before saving. + * + * @param string $zgwApi The ZGW API group (e.g. 'zaken', 'besluiten') + * @param string $resource The ZGW resource name (e.g. 'zaken', 'besluiten') + * @param string $action The action ('create', 'update', 'patch', 'destroy') + * @param array $body The ZGW request body (Dutch field names) + * @param array|null $existingObject The existing object data (for update/patch/destroy) + * @param object|null $objectService The OpenRegister ObjectService + * @param array|null $mappingConfig The mapping config + * @param bool|null $parentZaaktypeDraft Whether the parent zaaktype isDraft (for ztc-010) + * @param bool|null $zaakClosed Whether the (parent) zaak is closed (for zrc-007) + * @param bool $hasGeforceerd Whether consumer has geforceerd-bijwerken scope + * + * @return array{valid: bool, status: int, detail: string, enrichedBody: array} + * + * @SuppressWarnings(PHPMD.CyclomaticComplexity) + * @SuppressWarnings(PHPMD.NPathComplexity) + * @SuppressWarnings(PHPMD.ExcessiveParameterList) + * @SuppressWarnings(PHPMD.BooleanArgumentFlag) — ZGW scope flag from middleware + */ + public function validate( + string $zgwApi, + string $resource, + string $action, + array $body, + ?array $existingObject=null, + ?object $objectService=null, + ?array $mappingConfig=null, + ?bool $parentZaaktypeDraft=null, + ?bool $zaakClosed=null, + bool $hasGeforceerd=true + ): array { + // Set context on all per-register rule services. + $this->zrcRules->setContext($objectService, $mappingConfig); + $this->ztcRules->setContext($objectService, $mappingConfig); + $this->drcRules->setContext($objectService, $mappingConfig); + $this->brcRules->setContext($objectService, $mappingConfig); + + // ---- ZTC cross-cutting concerns (concept protection) ---- + if ($zgwApi === 'catalogi') { + // Default concept=true for new concept resources. + if ($action === 'create') { + $body = $this->ztcRules->defaultConcept($body, $resource); + } + + // Preserve concept on update/patch (only changeable via /publish). + if ($action === 'update' || $action === 'patch') { + $body = $this->ztcRules->preserveConcept($body, $resource, $existingObject); + } + + // Ztc-009/ztc-010: Protect published types from modification. + $conceptCheck = $this->ztcRules->checkConceptProtection( + $resource, + $action, + $body, + $existingObject, + $parentZaaktypeDraft + ); + if ($conceptCheck !== null) { + return $conceptCheck; + } + }//end if + + // ---- ZRC cross-cutting concern: closed zaak protection (zrc-007) ---- + if ($zaakClosed === true && $hasGeforceerd === false) { + return [ + 'valid' => false, + 'status' => 403, + 'detail' => 'Zaak is afgesloten. Wijzigingen zijn niet toegestaan zonder scope zaken.geforceerd-bijwerken.', + 'code' => 'permission_denied', + 'invalidParams' => [ + [ + 'name' => 'nonFieldErrors', + 'code' => 'zaak-closed', + 'reason' => 'De zaak is afgesloten.', + ], + ], + 'enrichedBody' => [], + ]; + } + + // ---- Delegate to per-register rule services ---- + return $this->dispatchToRegister( + zgwApi: $zgwApi, + resource: $resource, + action: $action, + body: $body, + existingObject: $existingObject + ); + }//end validate() + + /** + * Dispatch to the appropriate per-register rule service. + * + * @param string $zgwApi The ZGW API group + * @param string $resource The ZGW resource name + * @param string $action The action + * @param array $body The request body + * @param array|null $existingObject The existing object data + * + * @return array The validation result + * + * @SuppressWarnings(PHPMD.CyclomaticComplexity) + * @SuppressWarnings(PHPMD.NPathComplexity) + */ + private function dispatchToRegister( + string $zgwApi, + string $resource, + string $action, + array $body, + ?array $existingObject + ): array { + $valid = [ + 'valid' => true, + 'status' => 200, + 'detail' => '', + 'enrichedBody' => $body, + ]; + + // --- Zaken API (ZRC) --- + if ($zgwApi === 'zaken') { + return $this->dispatchZrc( + resource: $resource, + action: $action, + body: $body, + existingObject: $existingObject + ); + } + + // --- Catalogi API (ZTC) --- + if ($zgwApi === 'catalogi') { + return $this->dispatchZtc( + resource: $resource, + action: $action, + body: $body, + existingObject: $existingObject + ); + } + + // --- Documenten API (DRC) --- + if ($zgwApi === 'documenten') { + return $this->dispatchDrc( + resource: $resource, + action: $action, + body: $body, + existingObject: $existingObject + ); + } + + // --- Besluiten API (BRC) --- + if ($zgwApi === 'besluiten') { + return $this->dispatchBrc( + resource: $resource, + action: $action, + body: $body, + existingObject: $existingObject + ); + } + + return $valid; + }//end dispatchToRegister() + + /** + * Dispatch ZRC (Zaken API) rules. + * + * @param string $resource The resource name + * @param string $action The action + * @param array $body The request body + * @param array|null $existingObject The existing object data + * + * @return array The validation result + * + * @SuppressWarnings(PHPMD.CyclomaticComplexity) + */ + private function dispatchZrc(string $resource, string $action, array $body, ?array $existingObject): array + { + return match (true) { + $resource === 'zaken' && $action === 'create' + => $this->zrcRules->rulesZakenCreate($body), + $resource === 'zaken' && $action === 'update' + => $this->zrcRules->rulesZakenUpdate($body, $existingObject), + $resource === 'zaken' && $action === 'patch' + => $this->zrcRules->rulesZakenPatch($body, $existingObject), + $resource === 'statussen' && $action === 'create' + => $this->zrcRules->rulesStatussenCreate($body), + $resource === 'resultaten' && $action === 'create' + => $this->zrcRules->rulesResultatenCreate($body), + $resource === 'rollen' && $action === 'create' + => $this->zrcRules->rulesRollenCreate($body), + $resource === 'zaakinformatieobjecten' && $action === 'create' + => $this->zrcRules->rulesZaakinformatieobjectenCreate($body), + $resource === 'zaakinformatieobjecten' && $action === 'update' + => $this->zrcRules->rulesZaakinformatieobjectenUpdate($body, $existingObject), + $resource === 'zaakinformatieobjecten' && $action === 'patch' + => $this->zrcRules->rulesZaakinformatieobjectenPatch($body, $existingObject), + $resource === 'zaakeigenschappen' && $action === 'create' + => $this->zrcRules->rulesZaakeigenschappenCreate($body), + default => $this->isValid(body: $body), + };//end match + }//end dispatchZrc() + + /** + * Dispatch ZTC (Catalogi API) rules. + * + * @param string $resource The resource name + * @param string $action The action + * @param array $body The request body + * @param array|null $existingObject The existing object data + * + * @return array The validation result + * + * @psalm-suppress UnusedParam — $existingObject reserved for update validation rules + * + * @SuppressWarnings(PHPMD.UnusedFormalParameter) — $existingObject reserved for update rules + */ + private function dispatchZtc(string $resource, string $action, array $body, ?array $existingObject): array + { + return match (true) { + $resource === 'zaaktypen' && $action === 'create' + => $this->ztcRules->rulesZaaktypenCreate($body), + $resource === 'besluittypen' && $action === 'create' + => $this->ztcRules->rulesBesluittypenCreate($body), + $resource === 'zaaktype-informatieobjecttypen' && $action === 'create' + => $this->ztcRules->rulesZaaktypeinformatieobjecttypenCreate($body), + $resource === 'resultaattypen' && $action === 'create' + => $this->ztcRules->rulesResultaattypenCreate($body), + default => $this->isValid(body: $body), + }; + }//end dispatchZtc() + + /** + * Dispatch DRC (Documenten API) rules. + * + * @param string $resource The resource name + * @param string $action The action + * @param array $body The request body + * @param array|null $existingObject The existing object data + * + * @return array The validation result + */ + private function dispatchDrc(string $resource, string $action, array $body, ?array $existingObject): array + { + return match (true) { + $resource === 'enkelvoudiginformatieobjecten' && $action === 'create' + => $this->drcRules->rulesEnkelvoudiginformatieobjectenCreate($body), + $resource === 'enkelvoudiginformatieobjecten' && $action === 'update' + => $this->drcRules->rulesEnkelvoudiginformatieobjectenUpdate($body, $existingObject), + $resource === 'enkelvoudiginformatieobjecten' && $action === 'patch' + => $this->drcRules->rulesEnkelvoudiginformatieobjectenPatch($body, $existingObject), + $resource === 'enkelvoudiginformatieobjecten' && $action === 'destroy' + => $this->drcRules->rulesEnkelvoudiginformatieobjectenDestroy($body, $existingObject), + $resource === 'objectinformatieobjecten' && $action === 'create' + => $this->drcRules->rulesObjectinformatieobjectenCreate($body), + default => $this->isValid(body: $body), + }; + }//end dispatchDrc() + + /** + * Dispatch BRC (Besluiten API) rules. + * + * @param string $resource The resource name + * @param string $action The action + * @param array $body The request body + * @param array|null $existingObject The existing object data + * + * @return array The validation result + */ + private function dispatchBrc(string $resource, string $action, array $body, ?array $existingObject): array + { + return match (true) { + $resource === 'besluiten' && $action === 'create' + => $this->brcRules->rulesBesluitenCreate($body), + $resource === 'besluiten' && $action === 'update' + => $this->brcRules->rulesBesluitenUpdate($body, $existingObject), + $resource === 'besluiten' && $action === 'patch' + => $this->brcRules->rulesBesluitenPatch($body, $existingObject), + $resource === 'besluitinformatieobjecten' && $action === 'create' + => $this->brcRules->rulesBesluitinformatieobjectenCreate($body), + default => $this->isValid(body: $body), + }; + }//end dispatchBrc() + + /** + * Build a successful validation result (pass-through). + * + * @param array $body The (possibly enriched) request body + * + * @return array{valid: bool, status: int, detail: string, enrichedBody: array} + */ + private function isValid(array $body): array + { + return [ + 'valid' => true, + 'status' => 200, + 'detail' => '', + 'enrichedBody' => $body, + ]; + }//end isValid() +}//end class diff --git a/lib/Service/ZgwDocumentService.php b/lib/Service/ZgwDocumentService.php new file mode 100644 index 0000000..5db0127 --- /dev/null +++ b/lib/Service/ZgwDocumentService.php @@ -0,0 +1,314 @@ + + * @copyright 2024 Conduction B.V. + * @license EUPL-1.2 https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12 + * + * @version GIT: + * + * @link https://procest.nl + * + * @SuppressWarnings(PHPMD.CouplingBetweenObjects) + */ + +declare(strict_types=1); + +namespace OCA\Procest\Service; + +use OCP\Files\File; +use OCP\Files\Folder; +use OCP\Files\IRootFolder; +use OCP\Files\NotFoundException; +use InvalidArgumentException; +use Psr\Log\LoggerInterface; + +/** + * Service for managing binary document storage in the DRC. + * + * Stores document files under the admin user's Nextcloud files at: + * /admin/files/procest/documenten/{uuid}/{filename} + */ +class ZgwDocumentService +{ + /** + * Base folder path for document storage. + */ + private const STORAGE_BASE = 'procest/documenten'; + + /** + * Constructor. + * + * @param IRootFolder $rootFolder The Nextcloud root folder + * @param LoggerInterface $logger The logger + * + * @return void + */ + public function __construct( + private readonly IRootFolder $rootFolder, + private readonly LoggerInterface $logger, + ) { + }//end __construct() + + /** + * Store a document file from base64 content. + * + * @param string $uuid The document UUID + * @param string $fileName The file name + * @param string $content The base64-encoded file content + * + * @return int The file size in bytes + */ + public function storeBase64(string $uuid, string $fileName, string $content): int + { + $decoded = base64_decode(string: $content, strict: true); + if ($decoded === false || $decoded === '') { + throw new InvalidArgumentException('Invalid base64 content'); + } + + $folder = $this->getDocumentFolder(uuid: $uuid); + $file = $folder->newFile(path: $fileName); + $file->putContent(data: $decoded); + + return strlen(string: $decoded); + }//end storeBase64() + + /** + * Store a document file from raw binary content. + * + * @param string $uuid The document UUID + * @param string $fileName The file name + * @param string $content The raw binary content + * + * @return int The file size in bytes + */ + public function storeRaw(string $uuid, string $fileName, string $content): int + { + $folder = $this->getDocumentFolder(uuid: $uuid); + $file = $folder->newFile(path: $fileName); + $file->putContent(data: $content); + + return strlen(string: $content); + }//end storeRaw() + + /** + * Get the binary content of a stored document. + * + * @param string $uuid The document UUID + * @param string $fileName The file name + * + * @return string The file content + * + * @throws NotFoundException If the file does not exist. + */ + public function getContent(string $uuid, string $fileName): string + { + $folder = $this->getDocumentFolder(uuid: $uuid); + $node = $folder->get(path: $fileName); + if ($node instanceof File === false) { + throw new NotFoundException('Expected a file, got a folder'); + } + + return $node->getContent(); + }//end getContent() + + /** + * Check whether a document file exists. + * + * @param string $uuid The document UUID + * @param string $fileName The file name + * + * @return bool True if the file exists + */ + public function fileExists(string $uuid, string $fileName): bool + { + try { + $folder = $this->getDocumentFolder(uuid: $uuid); + $folder->get(path: $fileName); + return true; + } catch (NotFoundException $e) { + return false; + } + }//end fileExists() + + /** + * Delete all files for a document. + * + * @param string $uuid The document UUID + * + * @return void + */ + public function deleteFiles(string $uuid): void + { + try { + $userFolder = $this->getUserFolder(); + $path = self::STORAGE_BASE.'/'.$uuid; + if ($userFolder->nodeExists(path: $path) === true) { + $userFolder->get(path: $path)->delete(); + } + } catch (\Exception $e) { + $this->logger->warning( + 'Failed to delete document files for '.$uuid, + ['exception' => $e->getMessage()] + ); + } + }//end deleteFiles() + + /** + * Get the MIME type of a stored file. + * + * @param string $uuid The document UUID + * @param string $fileName The file name + * + * @return string The MIME type + * + * @throws NotFoundException If the file does not exist. + */ + public function getMimeType(string $uuid, string $fileName): string + { + $folder = $this->getDocumentFolder(uuid: $uuid); + $file = $folder->get(path: $fileName); + + return $file->getMimeType(); + }//end getMimeType() + + /** + * Store a chunk (bestandsdeel) for a document. + * + * Chunks are stored as temporary files named `_part_{volgnummer}` + * in the document folder until all parts are uploaded and merged. + * + * @param string $uuid The document UUID + * @param int $volgnummer The chunk sequence number (1-based) + * @param string $content The raw binary chunk content + * + * @return int The chunk size in bytes + */ + public function storeChunk(string $uuid, int $volgnummer, string $content): int + { + $folder = $this->getDocumentFolder(uuid: $uuid); + $partName = '_part_'.$volgnummer; + $file = $folder->newFile(path: $partName); + $file->putContent(data: $content); + + return strlen(string: $content); + }//end storeChunk() + + /** + * Check which chunk parts exist for a document. + * + * @param string $uuid The document UUID + * @param int $totalParts The expected total number of parts + * + * @return array List of volgnummers that have been uploaded + */ + public function getUploadedChunks(string $uuid, int $totalParts): array + { + $folder = $this->getDocumentFolder(uuid: $uuid); + $uploaded = []; + + for ($i = 1; $i <= $totalParts; $i++) { + try { + $folder->get(path: '_part_'.$i); + $uploaded[] = $i; + } catch (NotFoundException $e) { + // Not yet uploaded. + } + } + + return $uploaded; + }//end getUploadedChunks() + + /** + * Merge all chunk parts into the final document file. + * + * Reads each `_part_{n}` file in order, concatenates into the final + * file, then deletes the temporary chunk files. + * + * @param string $uuid The document UUID + * @param string $fileName The target file name + * @param int $totalParts The total number of parts + * + * @return int The merged file size in bytes + * + * @throws InvalidArgumentException If not all chunks are present. + */ + public function mergeChunks(string $uuid, string $fileName, int $totalParts): int + { + $folder = $this->getDocumentFolder(uuid: $uuid); + $content = ''; + + for ($i = 1; $i <= $totalParts; $i++) { + $partName = '_part_'.$i; + try { + $part = $folder->get(path: $partName); + if ($part instanceof File === false) { + throw new InvalidArgumentException('Chunk '.$i.' is not a file'); + } + + $content .= $part->getContent(); + } catch (NotFoundException $e) { + throw new InvalidArgumentException( + 'Missing chunk '.$i.' of '.$totalParts.' for document '.$uuid + ); + } + } + + // Write the merged file. + $file = $folder->newFile(path: $fileName); + $file->putContent(data: $content); + + // Clean up chunk files. + for ($i = 1; $i <= $totalParts; $i++) { + try { + $folder->get(path: '_part_'.$i)->delete(); + } catch (NotFoundException $e) { + // Already gone. + } + } + + return strlen(string: $content); + }//end mergeChunks() + + /** + * Get or create the document storage folder for a UUID. + * + * @param string $uuid The document UUID + * + * @return Folder The document folder + */ + private function getDocumentFolder(string $uuid): Folder + { + $userFolder = $this->getUserFolder(); + $path = self::STORAGE_BASE.'/'.$uuid; + + if ($userFolder->nodeExists(path: $path) === false) { + $userFolder->newFolder(path: $path); + } + + $node = $userFolder->get(path: $path); + if ($node instanceof Folder === false) { + throw new NotFoundException('Expected a folder at '.$path); + } + + return $node; + }//end getDocumentFolder() + + /** + * Get the admin user's root folder. + * + * @return Folder The user folder + */ + private function getUserFolder(): Folder + { + return $this->rootFolder->getUserFolder(userId: 'admin'); + }//end getUserFolder() +}//end class diff --git a/lib/Service/ZgwDrcRulesService.php b/lib/Service/ZgwDrcRulesService.php new file mode 100644 index 0000000..ea4f226 --- /dev/null +++ b/lib/Service/ZgwDrcRulesService.php @@ -0,0 +1,783 @@ + + * @copyright 2024 Conduction B.V. + * @license EUPL-1.2 https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12 + * + * @version GIT: + * + * @link https://procest.nl + * @link https://vng-realisatie.github.io/gemma-zaken/standaard/documenten/ + * + * Business rules implemented: + * + * - drc-001: Valideren informatieobjecttype op EnkelvoudigInformatieObject + * The informatieobjecttype must exist and be published (concept=false). + * @link https://vng-realisatie.github.io/gemma-zaken/standaard/documenten/ + * + * - drc-002: Valideren ObjectInformatieObject (OIO) relatie + * An ObjectInformatieObject must reference a valid informatieobject and + * the combination of informatieobject+object must be unique. + * @link https://vng-realisatie.github.io/gemma-zaken/standaard/documenten/ + * + * - drc-003: Valideren status bij enkelvoudiginformatieobject update + * When status is 'definitief', only bestandsomvang may be updated (lock check). + * @link https://vng-realisatie.github.io/gemma-zaken/standaard/documenten/ + * + * - drc-004: Valideren gebruiksrechten bij status definitief + * To set status to 'definitief', gebruiksrechten must exist. + * @link https://vng-realisatie.github.io/gemma-zaken/standaard/documenten/ + * + * - drc-005: Vertrouwelijkheidaanduiding afleiden van informatieobjecttype + * If not explicitly set, derive vertrouwelijkheidaanduiding from the + * informatieobjecttype. + * @link https://vng-realisatie.github.io/gemma-zaken/standaard/documenten/ + * + * - drc-006: Lock-mechanisme voor update/patch + * Documents with status 'definitief' require a valid lock ID for modification. + * @link https://vng-realisatie.github.io/gemma-zaken/standaard/documenten/ + * + * - drc-007: Verwijderen van informatieobjecten met relaties + * Cannot destroy an informatieobject that has ObjectInformatieObject relations. + * @link https://vng-realisatie.github.io/gemma-zaken/standaard/documenten/ + * + * - drc-008: Identificatie uniciteit + * Combination of identificatie + bronorganisatie must be unique. + * @link https://vng-realisatie.github.io/gemma-zaken/standaard/documenten/ + * + * @SuppressWarnings(PHPMD.CouplingBetweenObjects) + * @SuppressWarnings(PHPMD.ExcessiveClassComplexity) + * @SuppressWarnings(PHPMD.TooManyMethods) + */ + +declare(strict_types=1); + +namespace OCA\Procest\Service; + +/** + * DRC (Documenten API) business rule validation and enrichment. + * + * @psalm-suppress UnusedClass + * + * @SuppressWarnings(PHPMD.ExcessiveClassComplexity) + */ +class ZgwDrcRulesService extends ZgwRulesBase +{ + /** + * Rules for creating an EnkelvoudigInformatieObject. + * + * Implements drc-001, drc-005, drc-008. + * + * @param array $body The ZGW request body (Dutch field names) + * + * @return array The validation result + * + * @link https://vng-realisatie.github.io/gemma-zaken/standaard/documenten/ + * + * @SuppressWarnings(PHPMD.CyclomaticComplexity) — ZGW business rules validation + * @SuppressWarnings(PHPMD.NPathComplexity) — ZGW business rules validation + */ + public function rulesEnkelvoudiginformatieobjectenCreate(array $body): array + { + // Drc-001: Validate informatieobjecttype is published (not concept). + $iotUrl = $body['informatieobjecttype'] ?? ''; + if ($iotUrl !== '' && $this->objectService !== null) { + $error = $this->validateTypeUrl( + typeUrl: $iotUrl, + fieldName: 'informatieobjecttype', + schemaKey: 'document_type_schema' + ); + if ($error !== null) { + return $error; + } + } + + // Drc-005: Derive vertrouwelijkheidaanduiding from informatieobjecttype if not set. + if (empty($body['vertrouwelijkheidaanduiding']) === true && $iotUrl !== '') { + $body = $this->deriveVertrouwelijkheidaanduiding(body: $body, iotUrl: $iotUrl); + } + + // Drc-006a: Default indicatieGebruiksrecht to null on creation. + if (array_key_exists('indicatieGebruiksrecht', $body) === false + || $body['indicatieGebruiksrecht'] === false + ) { + $body['indicatieGebruiksrecht'] = null; + } + + // Drc-006b: If indicatieGebruiksrecht is explicitly true, gebruiksrechten must exist. + if ($body['indicatieGebruiksrecht'] === true && $this->objectService !== null) { + $error = $this->validateIndicatieGebruiksrechtTrue(body: $body); + if ($error !== null) { + return $error; + } + } + + // Drc-008: Check unique identificatie + bronorganisatie. + if (empty($body['identificatie']) === false) { + $error = $this->checkFieldUniqueness( + field1Value: $body['identificatie'], + field1Search: 'identifier', + field2Value: $body['bronorganisatie'] ?? '', + field2Search: 'sourceOrganisation', + errorField: 'identificatie' + ); + if ($error !== null) { + return $error; + } + } + + // Drc-008: Auto-generate identificatie if not provided. + if (empty($body['identificatie']) === true) { + $body['identificatie'] = $this->generateIdentificatie(prefix: 'DOCUMENT'); + } + + return $this->isValid(body: $body); + }//end rulesEnkelvoudiginformatieobjectenCreate() + + /** + * Rules for updating an EnkelvoudigInformatieObject (PUT). + * + * Implements drc-003, drc-006. + * + * @param array $body The ZGW request body + * @param array|null $existingObject The existing EIO data + * + * @return array The validation result + * + * @link https://vng-realisatie.github.io/gemma-zaken/standaard/documenten/ + */ + public function rulesEnkelvoudiginformatieobjectenUpdate( + array $body, + ?array $existingObject=null + ): array { + // Drc-006: Check lock requirement. + $lockError = $this->validateLock(body: $body, existingObject: $existingObject); + if ($lockError !== null) { + return $lockError; + } + + return $this->isValid(body: $body); + }//end rulesEnkelvoudiginformatieobjectenUpdate() + + /** + * Rules for patching an EnkelvoudigInformatieObject (PATCH). + * + * Implements drc-003, drc-006. + * + * @param array $body The ZGW request body + * @param array|null $existingObject The existing EIO data + * + * @return array The validation result + * + * @link https://vng-realisatie.github.io/gemma-zaken/standaard/documenten/ + */ + public function rulesEnkelvoudiginformatieobjectenPatch( + array $body, + ?array $existingObject=null + ): array { + // Drc-006: Check lock requirement. + $lockError = $this->validateLock(body: $body, existingObject: $existingObject); + if ($lockError !== null) { + return $lockError; + } + + return $this->isValid(body: $body); + }//end rulesEnkelvoudiginformatieobjectenPatch() + + /** + * Rules for destroying an EnkelvoudigInformatieObject (DELETE). + * + * Implements drc-007. + * + * @param array $body The ZGW request body (usually empty) + * @param array|null $existingObject The existing EIO data + * + * @return array The validation result + * + * @link https://vng-realisatie.github.io/gemma-zaken/standaard/documenten/ + */ + public function rulesEnkelvoudiginformatieobjectenDestroy( + array $body, + ?array $existingObject=null + ): array { + if ($existingObject === null || $this->objectService === null) { + return $this->isValid(body: $body); + } + + $existingId = $existingObject['id'] ?? ($existingObject['@self']['id'] ?? null); + if ($existingId === null) { + return $this->isValid(body: $body); + } + + // Drc-007: Check for ObjectInformatieObject relations. + $register = $this->mappingConfig['sourceRegister'] ?? ''; + $oioSchema = $this->settingsService->getConfigValue(key: 'document_link_schema'); + + if ($register !== '' && $oioSchema !== '') { + // OIO stores the full informatieobject URL in the 'document' field, + // so search with both UUID and partial match to find any OIO relations. + $relatedIds = $this->findOioRelationsForDocument( + register: $register, + schema: $oioSchema, + docUuid: $existingId + ); + if (empty($relatedIds) === false) { + return $this->error( + status: 400, + detail: 'Het informatieobject kan niet verwijderd worden omdat er nog relaties aan gekoppeld zijn.', + invalidParams: [ + $this->fieldError( + fieldName: 'nonFieldErrors', + code: 'pending-relations', + reason: 'Het informatieobject heeft nog ObjectInformatieObject relaties.' + ), + ] + ); + } + }//end if + + return $this->isValid(body: $body); + }//end rulesEnkelvoudiginformatieobjectenDestroy() + + /** + * Rules for creating an ObjectInformatieObject. + * + * Implements drc-002. + * + * @param array $body The ZGW request body + * + * @return array The validation result + * + * @link https://vng-realisatie.github.io/gemma-zaken/standaard/documenten/ + * + * @SuppressWarnings(PHPMD.CyclomaticComplexity) — ZGW business rules validation + * @SuppressWarnings(PHPMD.NPathComplexity) — ZGW business rules validation + */ + public function rulesObjectinformatieobjectenCreate(array $body): array + { + // Drc-002: Validate informatieobject URL. + $ioUrl = $body['informatieobject'] ?? ''; + if ($ioUrl !== '') { + $error = $this->validateInformatieobjectUrl(ioUrl: $ioUrl); + if ($error !== null) { + return $error; + } + } + + // Drc-002: Validate object URL. + $objectUrl = $body['object'] ?? ''; + $objectType = $body['objectType'] ?? ''; + if ($objectUrl !== '') { + $error = $this->validateObjectUrl(objectUrl: $objectUrl, objectType: $objectType); + if ($error !== null) { + return $error; + } + } + + // Drc-003 (VNG): Validate uniqueness of object + informatieobject + objectType. + // Must run BEFORE cross-register check so duplicate errors take priority. + if ($ioUrl !== '' && $objectUrl !== '' && $this->objectService !== null) { + $error = $this->checkOioUniqueness( + ioUrl: $ioUrl, + objectUrl: $objectUrl, + objectType: $body['objectType'] ?? '' + ); + if ($error !== null) { + return $error; + } + } + + // Drc-004 (VNG): Cross-register validation — ZIO/BIO must exist in ZRC/BRC. + $objectType = $body['objectType'] ?? ''; + if ($ioUrl !== '' && $objectUrl !== '' && $objectType !== '' && $this->objectService !== null) { + $error = $this->validateOioCrossRegister( + ioUrl: $ioUrl, + objectUrl: $objectUrl, + objectType: $objectType + ); + if ($error !== null) { + return $error; + } + } + + return $this->isValid(body: $body); + }//end rulesObjectinformatieobjectenCreate() + + /** + * Find OIO relations for a document UUID (drc-007/drc-008a). + * + * OIO objects store the full informatieobject URL in the 'document' field. + * This method searches by UUID first, then by partial URL match if needed. + * + * @param string $register The register ID + * @param string $schema The OIO schema ID + * @param string $docUuid The document UUID + * + * @return array Array of matching OIO UUIDs + */ + private function findOioRelationsForDocument( + string $register, + string $schema, + string $docUuid + ): array { + // First try by exact UUID (in case stored as UUID). + $results = $this->findAllObjectsByField( + register: $register, + schema: $schema, + field: 'document', + value: $docUuid + ); + if (empty($results) === false) { + return $results; + } + + // Also search by partial URL match (OIO may store full URL). + try { + $query = $this->objectService->buildSearchQuery( + requestParams: ['document' => '%'.$docUuid.'%', '_limit' => 100], + register: $register, + schema: $schema + ); + $result = $this->objectService->searchObjectsPaginated(query: $query); + + $ids = []; + foreach (($result['results'] ?? []) as $obj) { + if (is_array($obj) === true) { + $data = $obj; + } else { + $data = $obj->jsonSerialize(); + } + + $id = $data['id'] ?? ($data['@self']['id'] ?? null); + if ($id !== null) { + $ids[] = $id; + } + } + + return $ids; + } catch (\Throwable $e) { + $this->logger->warning( + 'Drc-007: OIO relation search with partial match failed: '.$e->getMessage() + ); + return []; + }//end try + }//end findOioRelationsForDocument() + + /** + * Validate that indicatieGebruiksrecht=true requires existing gebruiksrechten (drc-006b). + * + * @param array $body The request body + * + * @return array Validation error + * + * @psalm-suppress UnusedParam — $body reserved for future gebruiksrechten lookup + * + * @SuppressWarnings(PHPMD.UnusedFormalParameter) — $body reserved for future gebruiksrechten lookup + */ + private function validateIndicatieGebruiksrechtTrue(array $body): array + { + // On create, the document does not yet exist so there can be no gebruiksrechten. + return $this->error( + status: 400, + detail: 'indicatieGebruiksrecht kan niet true zijn zonder dat er gebruiksrechten bestaan.', + invalidParams: [ + $this->fieldError( + fieldName: 'indicatieGebruiksrecht', + code: 'missing-gebruiksrechten', + reason: 'Er zijn geen gebruiksrechten voor dit informatieobject.' + ), + ] + ); + }//end validateIndicatieGebruiksrechtTrue() + + /** + * Validate OIO object URL (drc-002a/b/c/d). + * + * @param string $objectUrl The object URL + * @param string $objectType The object type (zaak or besluit) + * + * @return array|null Validation error, or null if valid + */ + private function validateObjectUrl(string $objectUrl, string $objectType): ?array + { + // Drc-002a/b: Check URL validity. + if ($this->isValidUrl(url: $objectUrl) === false) { + return $this->error( + status: 400, + detail: 'De object URL is ongeldig.', + invalidParams: [ + $this->fieldError(fieldName: 'object', code: 'bad-url', reason: 'De object URL is ongeldig.'), + ] + ); + } + + // Drc-002a/b: Check URL contains a UUID. + $objectUuid = $this->extractUuid(url: $objectUrl); + if ($objectUuid === null) { + return $this->error( + status: 400, + detail: 'De object URL bevat geen geldig UUID.', + invalidParams: [ + $this->fieldError( + fieldName: 'object', + code: 'bad-url', + reason: 'De object URL bevat geen geldig UUID.' + ), + ] + ); + } + + // Drc-002c/d: Validate objectType matches the URL path. + if ($objectType === 'zaak' && strpos($objectUrl, '/zaken/') === false) { + return $this->error( + status: 400, + detail: 'De object URL wijst niet naar een zaak.', + invalidParams: [ + $this->fieldError( + fieldName: 'object', + code: 'invalid-resource', + reason: 'De object URL wijst niet naar een zaak resource.' + ), + ] + ); + } + + if ($objectType === 'besluit' && strpos($objectUrl, '/besluiten/') === false) { + return $this->error( + status: 400, + detail: 'De object URL wijst niet naar een besluit.', + invalidParams: [ + $this->fieldError( + fieldName: 'object', + code: 'invalid-resource', + reason: 'De object URL wijst niet naar een besluit resource.' + ), + ] + ); + } + + return null; + }//end validateObjectUrl() + + /** + * Validate OIO cross-register: ZIO/BIO must exist (drc-004 VNG). + * + * @param string $ioUrl The informatieobject URL + * @param string $objectUrl The object URL (zaak or besluit) + * @param string $objectType The object type (zaak or besluit) + * + * @return array|null Validation error if relation doesn't exist, null if valid + * + * @SuppressWarnings(PHPMD.CyclomaticComplexity) — ZGW cross-register validation + */ + private function validateOioCrossRegister(string $ioUrl, string $objectUrl, string $objectType): ?array + { + $ioUuid = $this->extractUuid(url: $ioUrl) ?? ''; + $objectUuid = $this->extractUuid(url: $objectUrl) ?? ''; + + if ($ioUuid === '' || $objectUuid === '') { + return null; + } + + $register = $this->mappingConfig['sourceRegister'] ?? ''; + if ($register === '') { + return null; + } + + $typeMap = [ + 'zaak' => ['case_document_schema', 'case'], + 'besluit' => ['decision_document_schema', 'decision'], + ]; + if (isset($typeMap[$objectType]) === false) { + return null; + } + + [$schemaKey, $searchField] = $typeMap[$objectType]; + + $schema = $this->settingsService->getConfigValue(key: $schemaKey); + if ($schema === '') { + return null; + } + + try { + $query = $this->objectService->buildSearchQuery( + requestParams: [ + $searchField => $objectUuid, + 'document' => $ioUuid, + '_limit' => 1, + ], + register: $register, + schema: $schema + ); + $result = $this->objectService->searchObjectsPaginated(query: $query); + $total = $result['total'] ?? count($result['results'] ?? []); + + if ($total === 0) { + if ($objectType === 'zaak') { + $detail = 'Er bestaat geen ZaakInformatieObject in de Zaken API voor deze combinatie.'; + } else { + $detail = 'Er bestaat geen BesluitInformatieObject in de Besluiten API voor deze combinatie.'; + } + + return $this->error( + status: 400, + detail: $detail, + invalidParams: [ + $this->fieldError( + fieldName: 'nonFieldErrors', + code: 'inconsistent-relation', + reason: $detail + ), + ] + ); + } + } catch (\Throwable $e) { + $this->logger->warning( + 'Drc-004: Cross-register validation failed: '.$e->getMessage() + ); + }//end try + + return null; + }//end validateOioCrossRegister() + + /** + * Validate OIO uniqueness: object + informatieobject + objectType (drc-003 VNG). + * + * @param string $ioUrl The informatieobject URL + * @param string $objectUrl The object URL (zaak or besluit) + * @param string $objectType The object type (zaak or besluit) + * + * @return array|null Validation error if duplicate found, null if unique + */ + private function checkOioUniqueness(string $ioUrl, string $objectUrl, string $objectType): ?array + { + $register = $this->mappingConfig['sourceRegister'] ?? ''; + $oioSchema = $this->settingsService->getConfigValue(key: 'document_link_schema'); + + if ($register === '') { + return null; + } + + $duplicateError = $this->error( + status: 400, + detail: 'De combinatie informatieobject + object + objectType bestaat al.', + invalidParams: [ + $this->fieldError( + fieldName: 'nonFieldErrors', + code: 'unique', + reason: 'De combinatie informatieobject + object + objectType bestaat al.' + ), + ] + ); + + $ioUuid = $this->extractUuid(url: $ioUrl); + $objectUuid = $this->extractUuid(url: $objectUrl); + + // Check OIO schema for existing duplicates. + if ($oioSchema !== '') { + $found = $this->searchDuplicateRelation( + register: $register, + schema: $oioSchema, + ioUrl: $ioUrl, + objectUrl: $objectUrl, + ioUuid: $ioUuid, + objectUuid: $objectUuid, + objectField: 'object' + ); + if ($found === true) { + return $duplicateError; + } + } + + // Drc-003a/b: Also check ZIO/BIO schemas — a relationship created via + // ZRC (zaakinformatieobjecten) or BRC (besluitinformatieobjecten) counts + // as a duplicate for OIO creation. + $crossSchemaKey = ''; + $crossField = ''; + if ($objectType === 'zaak') { + $crossSchemaKey = 'case_document_schema'; + $crossField = 'case'; + } else if ($objectType === 'besluit') { + $crossSchemaKey = 'decision_document_schema'; + $crossField = 'decision'; + } + + if ($crossSchemaKey !== '') { + $crossSchema = $this->settingsService->getConfigValue(key: $crossSchemaKey); + if ($crossSchema !== '') { + $found = $this->searchDuplicateRelation( + register: $register, + schema: $crossSchema, + ioUrl: $ioUrl, + objectUrl: $objectUrl, + ioUuid: $ioUuid, + objectUuid: $objectUuid, + objectField: $crossField + ); + if ($found === true) { + return $duplicateError; + } + } + } + + return null; + }//end checkOioUniqueness() + + /** + * Search for an existing relation in a schema by document+object combination. + * + * @param string $register The register ID + * @param string $schema The schema ID to search + * @param string $ioUrl The informatieobject URL + * @param string $objectUrl The object URL + * @param string|null $ioUuid The extracted informatieobject UUID + * @param string|null $objectUuid The extracted object UUID + * @param string $objectField The field name for the object reference + * + * @return bool True if a duplicate was found + */ + private function searchDuplicateRelation( + string $register, + string $schema, + string $ioUrl, + string $objectUrl, + ?string $ioUuid, + ?string $objectUuid, + string $objectField + ): bool { + try { + // Search by full URL. + $query = $this->objectService->buildSearchQuery( + requestParams: ['document' => $ioUrl, $objectField => $objectUrl, '_limit' => 1], + register: $register, + schema: $schema + ); + $result = $this->objectService->searchObjectsPaginated(query: $query); + if (($result['total'] ?? count($result['results'] ?? [])) > 0) { + return true; + } + + // Fallback: search by UUID (stored data may use UUID instead of URL). + if ($ioUuid !== null && $objectUuid !== null) { + $query = $this->objectService->buildSearchQuery( + requestParams: ['document' => $ioUuid, $objectField => $objectUuid, '_limit' => 1], + register: $register, + schema: $schema + ); + $result = $this->objectService->searchObjectsPaginated(query: $query); + if (($result['total'] ?? count($result['results'] ?? [])) > 0) { + return true; + } + + // Full-text search using both UUIDs (field-specific LIKE + // with % is not supported by MagicMapper). + $query = $this->objectService->buildSearchQuery( + requestParams: ['_search' => $ioUuid.' '.$objectUuid, '_limit' => 1], + register: $register, + schema: $schema + ); + $result = $this->objectService->searchObjectsPaginated(query: $query); + if (($result['total'] ?? count($result['results'] ?? [])) > 0) { + return true; + } + }//end if + } catch (\Throwable $e) { + $this->logger->warning( + 'Drc-003: Uniqueness check failed for schema '.$schema.': '.$e->getMessage() + ); + }//end try + + return false; + }//end searchDuplicateRelation() + + /** + * Validate lock requirement for document modifications (drc-006). + * + * @param array $body The request body + * @param array|null $existingObject The existing EIO data + * + * @return array|null Validation error, or null if valid + */ + private function validateLock(array $body, ?array $existingObject): ?array + { + if ($existingObject === null) { + return null; + } + + // Check if the document is locked. + $existingLock = $existingObject['locked'] ?? ($existingObject['lock'] ?? ''); + if ($existingLock === '' || $existingLock === false) { + return null; + } + + // Drc-006: Require valid lock ID. + $requestLock = $body['lock'] ?? ''; + if ($requestLock === '') { + return $this->error( + status: 400, + detail: 'Het document is vergrendeld. Geef een geldig lock ID mee.', + invalidParams: [ + $this->fieldError( + fieldName: 'lock', + code: 'required', + reason: 'Het document is vergrendeld.' + ), + ] + ); + } + + if ($requestLock !== $existingLock) { + return $this->error( + status: 400, + detail: 'Het opgegeven lock ID is niet geldig.', + invalidParams: [ + $this->fieldError( + fieldName: 'lock', + code: 'incorrect-lock-id', + reason: 'Het opgegeven lock ID komt niet overeen.' + ), + ] + ); + } + + return null; + }//end validateLock() + + /** + * Derive vertrouwelijkheidaanduiding from informatieobjecttype (drc-005). + * + * @param array $body The request body + * @param string $iotUrl The informatieobjecttype URL + * + * @return array The body with derived vertrouwelijkheidaanduiding + * + * @link https://vng-realisatie.github.io/gemma-zaken/standaard/documenten/ + */ + private function deriveVertrouwelijkheidaanduiding(array $body, string $iotUrl): array + { + $uuid = $this->extractUuid(url: $iotUrl); + if ($uuid === null) { + return $body; + } + + $iotData = $this->findBySchemaKey(uuid: $uuid, schemaKey: 'document_type_schema'); + if ($iotData === null) { + return $body; + } + + $val = $iotData['confidentiality'] ?? $iotData['confidentialityDesignation'] ?? $iotData['vertrouwelijkheidaanduiding'] ?? ''; + if ($val !== '') { + $body['vertrouwelijkheidaanduiding'] = $val; + } + + return $body; + }//end deriveVertrouwelijkheidaanduiding() +}//end class diff --git a/lib/Service/ZgwMappingService.php b/lib/Service/ZgwMappingService.php new file mode 100644 index 0000000..b04ae9e --- /dev/null +++ b/lib/Service/ZgwMappingService.php @@ -0,0 +1,223 @@ + + * @copyright 2024 Conduction B.V. + * @license EUPL-1.2 https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12 + * + * @version GIT: + * + * @link https://procest.nl + */ + +declare(strict_types=1); + +namespace OCA\Procest\Service; + +use OCA\Procest\AppInfo\Application; +use OCP\IAppConfig; +use Psr\Log\LoggerInterface; + +/** + * Service for managing ZGW API mapping configuration. + * + * Stores mapping configuration as JSON in IAppConfig under keys like + * `zgw_mapping_zaak`, `zgw_mapping_zaaktype`, etc. + * + * @SuppressWarnings(PHPMD.ExcessiveClassLength) + */ +class ZgwMappingService +{ + /** + * Prefix for ZGW mapping config keys in IAppConfig. + */ + private const CONFIG_PREFIX = 'zgw_mapping_'; + + /** + * All known ZGW resource keys. + * + * @var string[] + */ + private const RESOURCE_KEYS = [ + 'catalogus', + 'zaak', + 'zaaktype', + 'status', + 'statustype', + 'resultaat', + 'resultaattype', + 'rol', + 'roltype', + 'eigenschap', + 'besluit', + 'besluittype', + 'informatieobjecttype', + 'zaaktypeinformatieobjecttype', + 'zaakeigenschap', + 'zaakinformatieobject', + 'zaakobject', + 'klantcontact', + 'besluitinformatieobject', + 'verzending', + 'applicatie', + 'enkelvoudiginformatieobject', + 'objectinformatieobject', + 'gebruiksrechten', + 'kanaal', + 'abonnement', + ]; + + /** + * Constructor for the ZgwMappingService. + * + * @param IAppConfig $appConfig The app configuration service + * @param LoggerInterface $logger The logger interface + * + * @return void + */ + public function __construct( + private readonly IAppConfig $appConfig, + private readonly LoggerInterface $logger, + ) { + }//end __construct() + + /** + * Get the mapping configuration for a specific ZGW resource. + * + * @param string $resourceKey The ZGW resource key (e.g., 'zaak', 'zaaktype') + * + * @return array|null The mapping configuration or null if not found + */ + public function getMapping(string $resourceKey): ?array + { + $json = $this->appConfig->getValueString( + Application::APP_ID, + self::CONFIG_PREFIX.$resourceKey, + '' + ); + + if ($json === '') { + return null; + } + + $config = json_decode($json, true); + if ($config === null || is_array($config) === false) { + return null; + } + + return $config; + }//end getMapping() + + /** + * Save the mapping configuration for a specific ZGW resource. + * + * @param string $resourceKey The ZGW resource key (e.g., 'zaak', 'zaaktype') + * @param array $config The mapping configuration + * + * @return void + */ + public function saveMapping(string $resourceKey, array $config): void + { + $json = json_encode($config, JSON_UNESCAPED_UNICODE | JSON_UNESCAPED_SLASHES); + + $this->appConfig->setValueString( + Application::APP_ID, + self::CONFIG_PREFIX.$resourceKey, + $json + ); + + $this->logger->info( + 'ZGW mapping saved', + ['resourceKey' => $resourceKey] + ); + }//end saveMapping() + + /** + * List all ZGW mapping configurations. + * + * Returns an associative array keyed by resource key. Resources without + * a saved configuration will have null values. + * + * @return array + */ + public function listMappings(): array + { + $mappings = []; + + foreach (self::RESOURCE_KEYS as $key) { + $mappings[$key] = $this->getMapping(resourceKey: $key); + } + + return $mappings; + }//end listMappings() + + /** + * Delete the mapping configuration for a specific ZGW resource. + * + * @param string $resourceKey The ZGW resource key (e.g., 'zaak', 'zaaktype') + * + * @return void + */ + public function deleteMapping(string $resourceKey): void + { + $configKey = self::CONFIG_PREFIX.$resourceKey; + $this->appConfig->deleteKey(app: Application::APP_ID, key: $configKey); + + $this->logger->info( + 'ZGW mapping deleted', + ['resourceKey' => $resourceKey] + ); + }//end deleteMapping() + + /** + * Get all known ZGW resource keys. + * + * @return string[] + */ + public function getResourceKeys(): array + { + return self::RESOURCE_KEYS; + }//end getResourceKeys() + + /** + * Check whether a mapping exists for a given resource. + * + * @param string $resourceKey The ZGW resource key + * + * @return bool + */ + public function hasMapping(string $resourceKey): bool + { + return $this->getMapping(resourceKey: $resourceKey) !== null; + }//end hasMapping() + + /** + * Reset a mapping to its default configuration. + * + * Loads the default from the defaults array and saves it. + * + * @param string $resourceKey The ZGW resource key + * @param array $defaults The default mapping configurations + * + * @return void + */ + public function resetToDefault(string $resourceKey, array $defaults): void + { + if (isset($defaults[$resourceKey]) === true) { + $this->saveMapping(resourceKey: $resourceKey, config: $defaults[$resourceKey]); + $this->logger->info( + 'ZGW mapping reset to default', + ['resourceKey' => $resourceKey] + ); + } + }//end resetToDefault() +}//end class diff --git a/lib/Service/ZgwPaginationHelper.php b/lib/Service/ZgwPaginationHelper.php new file mode 100644 index 0000000..5310530 --- /dev/null +++ b/lib/Service/ZgwPaginationHelper.php @@ -0,0 +1,99 @@ + + * @copyright 2024 Conduction B.V. + * @license EUPL-1.2 https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12 + * + * @version GIT: + * + * @link https://procest.nl + */ + +declare(strict_types=1); + +namespace OCA\Procest\Service; + +/** + * ZGW pagination helper + * + * Wraps standard pagination results into the ZGW HAL-style format: + * { "count": N, "next": url|null, "previous": url|null, "results": [...] } + * + * @category Service + * @package OCA\Procest\Service + * + * @psalm-suppress UnusedClass + */ +class ZgwPaginationHelper +{ + /** + * Wrap paginated results in ZGW format. + * + * @param array $mappedObjects The mapped objects for the current page + * @param int $totalCount The total number of matching objects + * @param int $page The current page number (1-based) + * @param int $pageSize The page size + * @param string $baseUrl The base URL for pagination links + * @param array $queryParams The original query parameters + * + * @return array ZGW-formatted paginated response + */ + public function wrapResults( + array $mappedObjects, + int $totalCount, + int $page, + int $pageSize, + string $baseUrl, + array $queryParams + ): array { + $totalPages = 1; + if ($pageSize > 0) { + $totalPages = (int) ceil($totalCount / $pageSize); + } + + // Remove pagination and framework params from query string. + $filteredParams = array_diff_key( + $queryParams, + [ + 'page' => 1, + '_page' => 1, + '_route' => 1, + 'zgwApi' => 1, + 'resource' => 1, + 'uuid' => 1, + ] + ); + $queryString = http_build_query(data: $filteredParams); + + $separator = '?'; + if ($queryString !== '') { + $separator = '?'.$queryString.'&'; + } + + $next = null; + $previous = null; + + if ($page < $totalPages) { + $next = $baseUrl.$separator.'page='.($page + 1); + } + + if ($page > 1) { + $previous = $baseUrl.$separator.'page='.($page - 1); + } + + return [ + 'count' => $totalCount, + 'next' => $next, + 'previous' => $previous, + 'results' => $mappedObjects, + ]; + }//end wrapResults() +}//end class diff --git a/lib/Service/ZgwRulesBase.php b/lib/Service/ZgwRulesBase.php new file mode 100644 index 0000000..b5001e4 --- /dev/null +++ b/lib/Service/ZgwRulesBase.php @@ -0,0 +1,715 @@ + + * @copyright 2024 Conduction B.V. + * @license EUPL-1.2 https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12 + * + * @version GIT: + * + * @link https://procest.nl + */ + +declare(strict_types=1); + +namespace OCA\Procest\Service; + +use GuzzleHttp\Client; +use Psr\Log\LoggerInterface; + +/** + * Base class for ZGW register-specific business rule services. + * + * Provides shared utilities: UUID extraction, URL validation, + * external URL fetching, OpenRegister lookups, error builders. + * + * @SuppressWarnings(PHPMD.CouplingBetweenObjects) + * @SuppressWarnings(PHPMD.ExcessiveClassComplexity) + * @SuppressWarnings(PHPMD.TooManyMethods) + */ +abstract class ZgwRulesBase +{ + + /** + * Ordered vertrouwelijkheidaanduiding severity levels (zrc-006). + * + * Used for consumer authorization filtering: a zaak's level must be + * less than or equal to the consumer's maxVertrouwelijkheidaanduiding. + * Lower integer = less sensitive. + * + * @var array + */ + protected const VERTROUWELIJKHEID_LEVELS = [ + 'openbaar' => 1, + 'beperkt_openbaar' => 2, + 'intern' => 3, + 'zaakvertrouwelijk' => 4, + 'vertrouwelijk' => 5, + 'confidentieel' => 6, + 'geheim' => 7, + 'zeer_geheim' => 8, + ]; + + /** + * The OpenRegister ObjectService (set per-request). + * + * @var object|null + */ + protected ?object $objectService = null; + + /** + * The mapping config (set per-request). + * + * @var array|null + */ + protected ?array $mappingConfig = null; + + /** + * Constructor. + * + * @param LoggerInterface $logger The logger + * @param SettingsService $settingsService The settings service + * + * @return void + */ + public function __construct( + protected readonly LoggerInterface $logger, + protected readonly SettingsService $settingsService, + ) { + }//end __construct() + + /** + * Set the per-request services for cross-resource lookups. + * + * @param object|null $objectService The OpenRegister ObjectService + * @param array|null $mappingConfig The mapping config + * + * @return void + */ + public function setContext(?object $objectService, ?array $mappingConfig): void + { + $this->objectService = $objectService; + $this->mappingConfig = $mappingConfig; + }//end setContext() + + /** + * Build a successful validation result (pass-through). + * + * @param array $body The (possibly enriched) request body + * + * @return array{valid: bool, status: int, detail: string, enrichedBody: array} + */ + protected function isValid(array $body): array + { + return [ + 'valid' => true, + 'status' => 200, + 'detail' => '', + 'enrichedBody' => $body, + ]; + }//end isValid() + + /** + * Build a validation error result. + * + * @param int $status HTTP status code (400 or 403) + * @param string $detail Error detail message + * @param array $invalidParams Invalid parameter entries + * @param string $code Optional error code + * + * @return array{valid: bool, status: int, detail: string, invalidParams: array, enrichedBody: array} + */ + protected function error( + int $status, + string $detail, + array $invalidParams=[], + string $code='' + ): array { + $result = [ + 'valid' => false, + 'status' => $status, + 'detail' => $detail, + 'invalidParams' => $invalidParams, + 'enrichedBody' => [], + ]; + if ($code !== '') { + $result['code'] = $code; + } + + return $result; + }//end error() + + /** + * Build a field-level validation error. + * + * @param string $fieldName The field name + * @param string $code The error code + * @param string $reason The error reason + * + * @return array{name: string, code: string, reason: string} + */ + protected function fieldError(string $fieldName, string $code, string $reason): array + { + return [ + 'name' => $fieldName, + 'code' => $code, + 'reason' => $reason, + ]; + }//end fieldError() + + /** + * Build a field immutability error response. + * + * @param string $fieldName The immutable field name + * + * @return array The validation error result + */ + protected function fieldImmutableError(string $fieldName): array + { + $detail = "Het veld {$fieldName} mag niet gewijzigd worden."; + return $this->error( + status: 400, + detail: $detail, + invalidParams: [ + $this->fieldError( + fieldName: $fieldName, + code: 'wijzigen-niet-toegelaten', + reason: $detail + ), + ] + ); + }//end fieldImmutableError() + + /** + * Extract a UUID from a URL or plain UUID string. + * + * @param string $url The URL or UUID + * + * @return string|null The extracted UUID, or null + */ + protected function extractUuid(string $url): ?string + { + if (preg_match( + '/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i', + $url + ) === 1 + ) { + return $url; + } + + if (preg_match( + '/([0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12})/i', + $url, + $matches + ) === 1 + ) { + return $matches[1]; + } + + return null; + }//end extractUuid() + + /** + * Check if a URL is syntactically valid. + * + * @param string $url The URL to check + * + * @return bool True if valid + */ + protected function isValidUrl(string $url): bool + { + if (filter_var($url, FILTER_VALIDATE_URL) === false) { + return false; + } + + // ZGW resource URLs must end with a valid UUID as the last path segment. + // Reject URLs that don't point to a specific resource (collection endpoints) + // and URLs with trailing garbage after the UUID. + $path = (string) parse_url($url, PHP_URL_PATH); + + return preg_match( + '/[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}\/?$/i', + $path + ) === 1; + }//end isValidUrl() + + /** + * Validate a type URL (zaaktype, besluittype, informatieobjecttype). + * + * Checks: URL format, UUID extraction, exists in OpenRegister, + * publication status (concept=false). + * + * @param string $typeUrl The type URL from the request body + * @param string $fieldName The field name for error reporting + * @param string $schemaKey The settings key for the type's schema + * + * @return array|null Validation error, or null if valid + */ + protected function validateTypeUrl(string $typeUrl, string $fieldName, string $schemaKey): ?array + { + $extractedUuid = $this->extractUuid(url: $typeUrl); + if ($extractedUuid === null) { + return $this->error( + status: 400, + detail: "De {$fieldName} URL is ongeldig.", + invalidParams: [ + $this->fieldError( + fieldName: $fieldName, + code: 'bad-url', + reason: "De {$fieldName} URL is ongeldig of wijst niet naar een {$fieldName} resource." + ), + ] + ); + } + + $register = $this->mappingConfig['sourceRegister'] ?? ''; + $schema = $this->settingsService->getConfigValue(key: $schemaKey); + + if (empty($register) === true || empty($schema) === true) { + return null; + } + + try { + $typeObject = $this->objectService->find( + id: $extractedUuid, + register: $register, + schema: $schema + ); + } catch (\Throwable $e) { + return $this->error( + status: 400, + detail: "De {$fieldName} URL is ongeldig.", + invalidParams: [ + $this->fieldError( + fieldName: $fieldName, + code: 'bad-url', + reason: "De {$fieldName} URL is ongeldig of wijst niet naar een {$fieldName} resource." + ), + ] + ); + } + + if (is_array($typeObject) === true) { + $typeData = $typeObject; + } else { + $typeData = $typeObject->jsonSerialize(); + } + + $isDraft = $typeData['isDraft'] ?? true; + if ($isDraft === true) { + return $this->error( + status: 400, + detail: ucfirst($fieldName).' is nog in concept.', + invalidParams: [ + $this->fieldError( + fieldName: $fieldName, + code: 'not-published', + reason: ucfirst($fieldName).' is nog in concept.' + ), + ] + ); + } + + return null; + }//end validateTypeUrl() + + /** + * Validate an informatieobject URL resolves to an existing document. + * + * @param string $ioUrl The informatieobject URL + * + * @return array|null Validation error, or null if valid + */ + protected function validateInformatieobjectUrl(string $ioUrl): ?array + { + if ($this->isValidUrl(url: $ioUrl) === false) { + return $this->error( + status: 400, + detail: 'De informatieobject URL is ongeldig.', + invalidParams: [ + $this->fieldError( + fieldName: 'informatieobject', + code: 'bad-url', + reason: 'Ongeldige URL.' + ), + ] + ); + } + + $ioUuid = $this->extractUuid(url: $ioUrl); + + // Brc-003a: If UUID extraction fails, the URL doesn't point to a valid resource. + if ($ioUuid === null) { + return $this->error( + status: 400, + detail: 'De informatieobject URL is ongeldig.', + invalidParams: [ + $this->fieldError( + fieldName: 'informatieobject', + code: 'bad-url', + reason: 'De informatieobject URL bevat geen geldig UUID.' + ), + ] + ); + } + + // If we can look up the document in our own register, do so. + // If the document is not found locally, that is acceptable — it may + // be an external informatieobject managed by another DRC instance. + // We only reject when the URL is syntactically invalid (checked above). + if ($this->objectService !== null) { + $register = $this->mappingConfig['sourceRegister'] ?? ''; + $docSchema = $this->settingsService->getConfigValue(key: 'document_schema'); + if ($register !== '' && $docSchema !== '') { + try { + $this->objectService->find( + id: $ioUuid, + register: $register, + schema: $docSchema + ); + } catch (\Throwable $e) { + // Document not found locally — acceptable for external DRC URLs. + $this->logger->debug( + 'Informatieobject UUID not found locally, assuming external: '.$ioUuid + ); + } + } + } + + return null; + }//end validateInformatieobjectUrl() + + /** + * Validate an external URL is reachable (basic URL + UUID format check). + * + * @param string $url The URL to validate + * @param string $fieldName The field name for error reporting + * + * @return array|null Validation error, or null if valid + */ + protected function validateExternalUrl(string $url, string $fieldName): ?array + { + if ($this->isValidUrl(url: $url) === false) { + return $this->error( + status: 400, + detail: "De {$fieldName} URL is ongeldig.", + invalidParams: [ + $this->fieldError( + fieldName: $fieldName, + code: 'bad-url', + reason: "De {$fieldName} URL is ongeldig." + ), + ] + ); + } + + $path = parse_url($url, PHP_URL_PATH) ?? ''; + $segments = array_filter(explode('/', $path)); + $lastSegment = end($segments); + if ($lastSegment === false) { + $lastSegment = ''; + } + + $uuidPattern = '/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i'; + + if (preg_match($uuidPattern, $lastSegment) !== 1) { + return $this->error( + status: 400, + detail: "De {$fieldName} URL wijst niet naar een geldig object.", + invalidParams: [ + $this->fieldError( + fieldName: $fieldName, + code: 'invalid-resource', + reason: "De {$fieldName} URL wijst niet naar een geldig object." + ), + ] + ); + } + + return null; + }//end validateExternalUrl() + + /** + * Fetch data from an external URL (selectielijst, resultaattypeomschrijving). + * + * @param string $url The URL to fetch + * + * @return array|null The JSON response data, or null on failure + */ + protected function fetchExternalUrl(string $url): ?array + { + try { + $client = new Client(['timeout' => 10, 'verify' => false]); + $response = $client->get($url); + $data = json_decode((string) $response->getBody(), true); + if (is_array($data) === false) { + return null; + } + + return $data; + } catch (\Throwable $e) { + $this->logger->warning( + 'Failed to fetch external URL: '.$e->getMessage(), + ['url' => $url] + ); + return null; + } + }//end fetchExternalUrl() + + /** + * Generate a unique identificatie string. + * + * @param string $prefix A prefix for the identifier (e.g. 'ZAAK', 'BESLUIT') + * + * @return string A unique identifier + */ + protected function generateIdentificatie(string $prefix): string + { + $timestamp = strtoupper(base_convert((string) time(), 10, 36)); + $random = strtoupper(substr(bin2hex(random_bytes(3)), 0, 6)); + + return $prefix.'-'.$timestamp.'-'.$random; + }//end generateIdentificatie() + + /** + * Find an object UUID by a field value (omschrijving/identificatie). + * + * @param string $register The OpenRegister register ID + * @param string $schema The OpenRegister schema ID + * @param string $field The field to search by + * @param string $value The value to search for + * + * @return string|null The object UUID, or null if not found + */ + protected function findObjectByField( + string $register, + string $schema, + string $field, + string $value + ): ?string { + try { + $query = $this->objectService->buildSearchQuery( + requestParams: [$field => $value, '_limit' => 1], + register: $register, + schema: $schema + ); + $result = $this->objectService->searchObjectsPaginated(query: $query); + + $results = $result['results'] ?? []; + if (empty($results) === true) { + return null; + } + + $obj = $results[0]; + if (is_array($obj) === true) { + $data = $obj; + } else { + $data = $obj->jsonSerialize(); + } + + return $data['id'] ?? ($data['@self']['id'] ?? null); + } catch (\Throwable $e) { + $this->logger->warning( + 'Reference resolution failed: '.$e->getMessage(), + ['field' => $field, 'value' => $value] + ); + return null; + }//end try + }//end findObjectByField() + + /** + * Find all objects matching a field value. + * + * @param string $register The register to search in + * @param string $schema The schema to search in + * @param string $field The field to match on + * @param string $value The field value to search for + * + * @return array Array of matching object UUIDs + */ + protected function findAllObjectsByField( + string $register, + string $schema, + string $field, + string $value + ): array { + try { + $query = $this->objectService->buildSearchQuery( + requestParams: [$field => $value, '_limit' => 100], + register: $register, + schema: $schema + ); + $result = $this->objectService->searchObjectsPaginated(query: $query); + + $ids = []; + foreach (($result['results'] ?? []) as $obj) { + if (is_array($obj) === true) { + $data = $obj; + } else { + $data = $obj->jsonSerialize(); + } + + $id = $data['id'] ?? ($data['@self']['id'] ?? null); + if ($id !== null) { + $ids[] = $id; + } + } + + return $ids; + } catch (\Throwable $e) { + $this->logger->warning( + 'Reference resolution failed: '.$e->getMessage(), + ['field' => $field, 'value' => $value] + ); + return []; + }//end try + }//end findAllObjectsByField() + + /** + * Look up an object in OpenRegister by UUID and schema key. + * + * @param string $uuid The object UUID + * @param string $schemaKey The settings config key for the schema + * + * @return array|null The object data, or null on failure + */ + protected function findBySchemaKey(string $uuid, string $schemaKey): ?array + { + if ($this->objectService === null) { + return null; + } + + $register = $this->mappingConfig['sourceRegister'] ?? ''; + $schema = $this->settingsService->getConfigValue(key: $schemaKey); + + if (empty($register) === true || empty($schema) === true) { + return null; + } + + try { + $obj = $this->objectService->find( + id: $uuid, + register: $register, + schema: $schema + ); + if (is_array($obj) === true) { + return $obj; + } + + return $obj->jsonSerialize(); + } catch (\Throwable $e) { + return null; + } + }//end findBySchemaKey() + + /** + * Check unique combination of two fields (identificatie + organisatie). + * + * @param string $field1Value First field value (e.g. identificatie) + * @param string $field1Search OpenRegister field name to search + * @param string $field2Value Second field value (e.g. organisatie) + * @param string $field2Search OpenRegister field name to search + * @param string $errorField Field name for error reporting + * + * @return array|null Validation error if duplicate found, null if unique + * + * @SuppressWarnings(PHPMD.CyclomaticComplexity) + */ + protected function checkFieldUniqueness( + string $field1Value, + string $field1Search, + string $field2Value, + string $field2Search, + string $errorField + ): ?array { + if ($field1Value === '' || $this->objectService === null) { + return null; + } + + $register = $this->mappingConfig['sourceRegister'] ?? ''; + $schema = $this->mappingConfig['sourceSchema'] ?? ''; + if (empty($register) === true || empty($schema) === true) { + return null; + } + + try { + // Build query directly to avoid buildSearchQuery's underscore-splitting + // which breaks camelCase field names like sourceOrganisation. + // Search only by field1 (identifier) because OpenRegister may store + // numeric strings (e.g. "000000000") as integers, which breaks + // exact-match search for field2 (sourceOrganisation). + $query = [ + '@self' => [ + 'register' => (int) $register, + 'schema' => (int) $schema, + ], + $field1Search => $field1Value, + ]; + + $result = $this->objectService->searchObjectsPaginated( + query: $query, + _rbac: false, + _multitenancy: false + ); + + // Post-filter results by field2 value in memory, comparing both + // string and numeric forms to handle integer coercion by OpenRegister. + // OpenRegister may store numeric-looking strings (e.g. "000000000") + // as integer 0, which the magic mapper may serialize to empty string. + // When the stored value is empty but field2 was provided, we still + // count it as a match (conservative: assume coercion happened). + $matchCount = 0; + foreach (($result['results'] ?? []) as $obj) { + if (is_array($obj) === true) { + $data = $obj; + } else { + $data = $obj->jsonSerialize(); + } + + $storedVal = $data[$field2Search] ?? null; + $storedStr = (string) $storedVal; + $compareStr = (string) $field2Value; + + // Match when: no field2 filter, or values match directly, + // or stored is empty/0 (likely coerced from numeric string). + $isMatch = ($field2Value === '') + || ($storedStr === $compareStr) + || ($storedStr === '' && $field2Value !== '') + || ($storedStr === '0' && preg_match('/^0+$/', $field2Value) === 1); + + if ($isMatch === true) { + $matchCount++; + } + }//end foreach + + if ($matchCount > 0) { + return $this->error( + status: 400, + detail: 'De combinatie is niet uniek.', + invalidParams: [ + $this->fieldError( + fieldName: $errorField, + code: 'identificatie-niet-uniek', + reason: 'De combinatie bestaat al.' + ), + ] + ); + } + } catch (\Throwable $e) { + $this->logger->warning( + 'Uniqueness check failed: '.$e->getMessage() + ); + }//end try + + return null; + }//end checkFieldUniqueness() +}//end class diff --git a/lib/Service/ZgwService.php b/lib/Service/ZgwService.php new file mode 100644 index 0000000..1292ab4 --- /dev/null +++ b/lib/Service/ZgwService.php @@ -0,0 +1,1917 @@ + + * @copyright 2024 Conduction B.V. + * @license EUPL-1.2 https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12 + * + * @version GIT: + * + * @link https://procest.nl + */ + +declare(strict_types=1); + +namespace OCA\Procest\Service; + +use OCA\OpenRegister\Db\Mapping; +use OCP\AppFramework\Http; +use OCP\AppFramework\Http\JSONResponse; +use OCP\IRequest; +use Psr\Log\LoggerInterface; + +/** + * Shared ZGW API service. + * + * Contains all shared utility methods extracted from the monolithic ZgwController. + * Register-specific controllers delegate common operations to this service. + * + * @psalm-suppress UnusedClass + * + * @SuppressWarnings(PHPMD.CouplingBetweenObjects) + * @SuppressWarnings(PHPMD.ExcessiveClassLength) + * @SuppressWarnings(PHPMD.ExcessiveClassComplexity) + * @SuppressWarnings(PHPMD.TooManyMethods) + * @SuppressWarnings(PHPMD.TooManyPublicMethods) + */ +class ZgwService +{ + /** + * Map of ZGW API + resource to the config key suffix used in Procest. + * + * @var array> + */ + public const RESOURCE_MAP = [ + 'zaken' => [ + 'zaken' => 'zaak', + 'statussen' => 'status', + 'resultaten' => 'resultaat', + 'rollen' => 'rol', + 'zaakeigenschappen' => 'zaakeigenschap', + 'zaakinformatieobjecten' => 'zaakinformatieobject', + 'zaakobjecten' => 'zaakobject', + 'klantcontacten' => 'klantcontact', + ], + 'catalogi' => [ + 'catalogussen' => 'catalogus', + 'zaaktypen' => 'zaaktype', + 'statustypen' => 'statustype', + 'resultaattypen' => 'resultaattype', + 'roltypen' => 'roltype', + 'eigenschappen' => 'eigenschap', + 'informatieobjecttypen' => 'informatieobjecttype', + 'besluittypen' => 'besluittype', + 'zaaktype-informatieobjecttypen' => 'zaaktypeinformatieobjecttype', + ], + 'besluiten' => [ + 'besluiten' => 'besluit', + 'besluittypen' => 'besluittype', + 'besluitinformatieobjecten' => 'besluitinformatieobject', + ], + 'autorisaties' => [ + 'applicaties' => 'applicatie', + ], + 'documenten' => [ + 'enkelvoudiginformatieobjecten' => 'enkelvoudiginformatieobject', + 'objectinformatieobjecten' => 'objectinformatieobject', + 'gebruiksrechten' => 'gebruiksrechten', + 'verzendingen' => 'verzending', + ], + 'notificaties' => [ + 'kanaal' => 'kanaal', + 'abonnement' => 'abonnement', + ], + ]; + + /** + * The OpenRegister MappingService (loaded dynamically). + * + * @var object|null + */ + private $mappingService = null; + + /** + * The OpenRegister ObjectService (loaded dynamically). + * + * @var object|null + */ + private $objectService = null; + + /** + * Cached request body to avoid re-reading php://input. + * + * @var array|null + */ + private ?array $cachedRequestBody = null; + + /** + * The OpenRegister ConsumerMapper (loaded dynamically). + * + * @var object|null + */ + private $consumerMapper = null; + + /** + * The OpenRegister AuthorizationService (loaded dynamically). + * + * @var object|null + */ + private $authorizationService = null; + + /** + * Constructor. + * + * @param ZgwMappingService $zgwMappingService The ZGW mapping service + * @param ZgwPaginationHelper $paginationHelper The pagination helper + * @param ZgwDocumentService $documentService The document storage service + * @param NotificatieService $notificatieService The notification service + * @param ZgwBusinessRulesService $businessRulesService The business rules service + * @param LoggerInterface $logger The logger + * + * @return void + */ + public function __construct( + private readonly ZgwMappingService $zgwMappingService, + private readonly ZgwPaginationHelper $paginationHelper, + private readonly ZgwDocumentService $documentService, + private readonly NotificatieService $notificatieService, + private readonly ZgwBusinessRulesService $businessRulesService, + private readonly LoggerInterface $logger, + ) { + $container = \OC::$server; + + try { + $this->mappingService = $container->get( + 'OCA\OpenRegister\Service\MappingService' + ); + } catch (\Throwable $e) { + $this->logger->warning( + 'ZgwService: MappingService not available', + ['exception' => $e->getMessage()] + ); + } + + try { + $this->objectService = $container->get( + 'OCA\OpenRegister\Service\ObjectService' + ); + } catch (\Throwable $e) { + $this->logger->warning( + 'ZgwService: ObjectService not available', + ['exception' => $e->getMessage()] + ); + } + + try { + $this->consumerMapper = $container->get( + 'OCA\OpenRegister\Db\ConsumerMapper' + ); + $this->authorizationService = $container->get( + 'OCA\OpenRegister\Service\AuthorizationService' + ); + } catch (\Throwable $e) { + $this->logger->warning( + 'ZgwService: Auth services not available', + ['exception' => $e->getMessage()] + ); + } + }//end __construct() + + /** + * Get the OpenRegister ObjectService. + * + * @return object|null + */ + public function getObjectService(): ?object + { + return $this->objectService; + }//end getObjectService() + + /** + * Get the OpenRegister ConsumerMapper. + * + * @return object|null + */ + public function getConsumerMapper(): ?object + { + return $this->consumerMapper; + }//end getConsumerMapper() + + /** + * Get the ZGW mapping service. + * + * @return ZgwMappingService + */ + public function getZgwMappingService(): ZgwMappingService + { + return $this->zgwMappingService; + }//end getZgwMappingService() + + /** + * Get the pagination helper. + * + * @return ZgwPaginationHelper + */ + public function getPaginationHelper(): ZgwPaginationHelper + { + return $this->paginationHelper; + }//end getPaginationHelper() + + /** + * Get the document service. + * + * @return ZgwDocumentService + */ + public function getDocumentService(): ZgwDocumentService + { + return $this->documentService; + }//end getDocumentService() + + /** + * Get the business rules service. + * + * @return ZgwBusinessRulesService + */ + public function getBusinessRulesService(): ZgwBusinessRulesService + { + return $this->businessRulesService; + }//end getBusinessRulesService() + + /** + * Get the logger. + * + * @return LoggerInterface + */ + public function getLogger(): LoggerInterface + { + return $this->logger; + }//end getLogger() + + /** + * Load ZGW mapping configuration. + * + * @param string $zgwApi The ZGW API group + * @param string $resource The ZGW resource name + * + * @return array|null The mapping configuration or null if not found + */ + public function loadMappingConfig(string $zgwApi, string $resource): ?array + { + $resourceKey = self::RESOURCE_MAP[$zgwApi][$resource] ?? null; + if ($resourceKey === null) { + return null; + } + + return $this->zgwMappingService->getMapping(resourceKey: $resourceKey); + }//end loadMappingConfig() + + /** + * Translate ZGW query parameters to OpenRegister filter parameters. + * + * @param array $params The request query parameters + * @param array $mappingConfig The ZGW mapping configuration + * + * @return array Translated filter parameters + */ + public function translateQueryParams(array $params, array $mappingConfig): array + { + $queryMapping = $mappingConfig['queryParameterMapping'] ?? []; + $filters = []; + + $reserved = [ + 'page', + 'pageSize', + '_route', + 'zgwApi', + 'resource', + 'uuid', + ]; + + foreach ($params as $key => $value) { + if (in_array($key, $reserved, true) === true) { + continue; + } + + if (isset($queryMapping[$key]) === true) { + $mapped = $queryMapping[$key]; + $field = $mapped['field'] ?? $key; + $operator = $mapped['operator'] ?? null; + + if (($mapped['extractUuid'] ?? false) === true + && is_string($value) === true + ) { + $parts = explode('/', rtrim($value, '/')); + $value = end($parts); + } + + if ($operator !== null) { + $filterKey = $field.'.'.$operator; + } else { + $filterKey = $field; + } + + $filters[$filterKey] = $value; + } + }//end foreach + + return $filters; + }//end translateQueryParams() + + /** + * Create a Mapping object for outbound (English to Dutch) transformation. + * + * @param array $mappingConfig The ZGW mapping configuration + * + * @return Mapping The outbound mapping entity + */ + public function createOutboundMapping(array $mappingConfig): object + { + $mapping = new Mapping(); + $mappingData = [ + 'name' => 'zgw-outbound-'.($mappingConfig['zgwResource'] ?? 'unknown'), + 'mapping' => $mappingConfig['propertyMapping'] ?? [], + 'unset' => $mappingConfig['unset'] ?? [], + 'cast' => $mappingConfig['cast'] ?? [], + 'passThrough' => false, + ]; + $mapping->hydrate(object: $mappingData); + + return $mapping; + }//end createOutboundMapping() + + /** + * Create a Mapping object for inbound (Dutch to English) transformation. + * + * @param array $mappingConfig The ZGW mapping configuration + * + * @return Mapping The inbound mapping entity + */ + public function createInboundMapping(array $mappingConfig): object + { + $mapping = new Mapping(); + $mappingData = [ + 'name' => 'zgw-inbound-'.($mappingConfig['zgwResource'] ?? 'unknown'), + 'mapping' => $mappingConfig['reverseMapping'] ?? [], + 'unset' => $mappingConfig['reverseUnset'] ?? [], + 'cast' => $mappingConfig['reverseCast'] ?? [], + 'passThrough' => false, + ]; + $mapping->hydrate(object: $mappingData); + + return $mapping; + }//end createInboundMapping() + + /** + * Apply outbound mapping (English to Dutch) to an object. + * + * @param array $objectData The English-language object data + * @param object $mapping The outbound mapping entity + * @param array $mappingConfig The ZGW mapping configuration + * @param string $baseUrl The base URL for ZGW URL references + * + * @return array The mapped Dutch-language object + */ + public function applyOutboundMapping( + array $objectData, + object $mapping, + array $mappingConfig, + string $baseUrl + ): array { + $objectData['_baseUrl'] = $baseUrl; + $objectData['_valueMappings'] = $mappingConfig['valueMapping'] ?? []; + $selfMeta = $objectData['@self'] ?? []; + $objectData['_uuid'] = $objectData['id'] ?? ($selfMeta['id'] ?? ''); + $objectData['_created'] = $selfMeta['created'] ?? ''; + $objectData['_updated'] = $selfMeta['updated'] ?? ''; + + $zgwResource = $mappingConfig['zgwResource'] ?? ''; + if ($zgwResource === 'enkelvoudiginformatieobject' + && $objectData['_uuid'] !== '' + ) { + $objectData['_downloadUrl'] = $baseUrl.'/'.$objectData['_uuid'].'/download'; + } + + $mapped = $this->mappingService->executeMapping( + mapping: $mapping, + input: $objectData + ); + + $nullableFields = $mappingConfig['nullableFields'] ?? []; + foreach ($nullableFields as $field) { + if (array_key_exists($field, $mapped) === true && $mapped[$field] === '') { + $mapped[$field] = null; + } + } + + return $mapped; + }//end applyOutboundMapping() + + /** + * Apply inbound mapping (Dutch to English) to request data. + * + * @param array $body The Dutch-language request body + * @param object $mapping The inbound mapping entity + * @param array $mappingConfig The ZGW mapping configuration + * + * @return array The mapped English-language data + */ + public function applyInboundMapping( + array $body, + object $mapping, + array $mappingConfig + ): array { + $body['_valueMappings'] = $mappingConfig['valueMapping'] ?? []; + unset($body['_route'], $body['zgwApi'], $body['resource'], $body['uuid']); + + $mapped = $this->mappingService->executeMapping( + mapping: $mapping, + input: $body + ); + + // Remove empty-string values for nullable/date fields to prevent OpenRegister + // from storing "" in date fields (which converts to today's date). + $nullableKeys = $mappingConfig['inboundNullable'] ?? [ + 'endDate', + 'plannedEndDate', + 'deadline', + 'archiveNomination', + 'archiveActionDate', + 'paymentIndication', + 'lastPaymentDate', + 'communicationChannel', + 'archiveStatus', + 'parentCase', + ]; + foreach ($nullableKeys as $key) { + if (isset($mapped[$key]) === true && $mapped[$key] === '') { + unset($mapped[$key]); + } + } + + return $mapped; + }//end applyInboundMapping() + + /** + * Get the request body, falling back to raw body parsing for malformed JSON. + * + * @param IRequest $request The request object + * + * @return array The parsed request body + */ + public function getRequestBody(IRequest $request): array + { + // Return cached result if already parsed for this request. + if ($this->cachedRequestBody !== null) { + return $this->cachedRequestBody; + } + + $routeKeys = ['_route', 'zgwApi', 'resource', 'uuid']; + + // Read php://input directly — Nextcloud's getParams() parser may + // flatten/drop JSON array values (e.g. `["uuid"]` → `[]`). + $rawBody = file_get_contents('php://input'); + if ($rawBody !== false && $rawBody !== '') { + $decoded = json_decode($rawBody, true); + if ($decoded === null) { + // Attempt to fix malformed JSON (unquoted values). + $fixed = preg_replace( + '/("[\w]+")\s*:\s*(?![\s"{\[\dtfn-])([^\n,}]+)/m', + '$1: "$2"', + $rawBody + ); + $decoded = json_decode($fixed, true); + } + + if ($decoded !== null) { + // Merge route params so they remain available downstream. + $routeParams = $request->getParams(); + foreach ($routeKeys as $key) { + if (isset($routeParams[$key]) === true) { + $decoded[$key] = $routeParams[$key]; + } + } + + $this->cachedRequestBody = $decoded; + + return $decoded; + } + }//end if + + // Fallback: use getParams() for non-JSON requests (multipart, form-encoded). + $this->cachedRequestBody = $request->getParams(); + + return $this->cachedRequestBody; + }//end getRequestBody() + + /** + * Extract the UUID from the request URL path. + * + * Nextcloud's controller argument injection merges JSON body params into + * getParam(), so a body "uuid" field overrides the route's {uuid} param. + * This method extracts the UUID directly from the URL path to avoid that. + * + * @param IRequest $request The request object + * @param string $uuid The controller-injected UUID (potentially wrong) + * + * @return string The correct UUID from the URL path, or the fallback + */ + public function resolvePathUuid(IRequest $request, string $uuid): string + { + $uri = $request->getRequestUri(); + if (preg_match('/\/([0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12})/i', $uri, $matches) === 1) { + return $matches[1]; + } + + return $uuid; + }//end resolvePathUuid() + + /** + * Update a field in the cached request body. + * + * Used when pre-processing resolves a value (e.g., IOT omschrijving → UUID). + * + * @param string $key The field name + * @param mixed $value The new value + * + * @return void + */ + public function updateCachedBodyField(string $key, mixed $value): void + { + if ($this->cachedRequestBody !== null) { + $this->cachedRequestBody[$key] = $value; + } + }//end updateCachedBodyField() + + /** + * Build the base URL for ZGW API responses. + * + * @param IRequest $request The request object + * @param string $zgwApi The ZGW API group + * @param string $resource The ZGW resource name + * + * @return string The base URL + */ + public function buildBaseUrl(IRequest $request, string $zgwApi, string $resource): string + { + $serverHost = $request->getServerHost(); + $scheme = $request->getServerProtocol(); + + return $scheme.'://'.$serverHost.'/index.php/apps/procest/api/zgw/'.$zgwApi.'/v1/'.$resource; + }//end buildBaseUrl() + + /** + * Validate JWT-ZGW authentication from the Authorization header. + * + * @param IRequest $request The request object + * + * @return JSONResponse|null 401 response on failure, null on success + */ + public function validateJwtAuth(IRequest $request): ?JSONResponse + { + $authHeader = $request->getHeader('Authorization'); + + if ($authHeader === '') { + return new JSONResponse( + data: [ + 'type' => 'NotAuthenticated', + 'code' => 'not_authenticated', + 'title' => 'Authenticatiegegevens zijn niet opgegeven.', + 'status' => 401, + 'detail' => 'Authenticatiegegevens zijn niet opgegeven.', + ], + statusCode: Http::STATUS_UNAUTHORIZED + ); + } + + try { + $this->authorizationService->authorizeJwt( + authorization: $authHeader + ); + } catch (\Throwable $e) { + return new JSONResponse( + data: [ + 'type' => 'NotAuthenticated', + 'code' => 'not_authenticated', + 'title' => 'Authenticatiegegevens zijn niet geldig.', + 'status' => 403, + 'detail' => $e->getMessage(), + ], + statusCode: Http::STATUS_FORBIDDEN + ); + } + + return null; + }//end validateJwtAuth() + + /** + * Check if the current JWT consumer has a specific scope. + * + * @param IRequest $request The request object + * @param string $component The ZGW component (e.g. 'zrc', 'ztc', 'brc', 'drc') + * @param string $scope The required scope + * + * @return bool True if the consumer has the scope or heeftAlleAutorisaties + * + * @SuppressWarnings(PHPMD.CyclomaticComplexity) — multiple JWT validation paths + * @SuppressWarnings(PHPMD.NPathComplexity) — multiple JWT validation paths + */ + public function consumerHasScope(IRequest $request, string $component, string $scope): bool + { + if ($this->consumerMapper === null) { + return true; + } + + try { + $authHeader = $request->getHeader('Authorization'); + $token = str_replace('Bearer ', '', $authHeader); + $parts = explode('.', $token); + if (count($parts) !== 3) { + return true; + } + + $payload = json_decode(base64_decode($parts[1]), true); + $clientId = $payload['client_id'] ?? ($payload['iss'] ?? null); + if ($clientId === null) { + return true; + } + + $consumers = $this->consumerMapper->findAll( + filters: ['name' => $clientId] + ); + if (empty($consumers) === true) { + return true; + } + + $consumer = $consumers[0]; + $authConfig = []; + if (method_exists($consumer, 'getAuthorizationConfiguration') === true) { + $authConfig = $consumer->getAuthorizationConfiguration() ?? []; + } + + if (($authConfig['superuser'] ?? false) === true) { + return true; + } + + $scopes = $authConfig['scopes'] ?? []; + foreach ($scopes as $auth) { + $authComponent = $auth['component'] ?? ''; + $authScopes = $auth['scopes'] ?? []; + if ($authComponent === $component + && in_array($scope, $authScopes, true) === true + ) { + return true; + } + } + + return false; + } catch (\Throwable $e) { + $this->logger->warning( + 'Could not check consumer scope: '.$e->getMessage() + ); + return true; + }//end try + }//end consumerHasScope() + + /** + * Get the consumer's authorization details for a component (for zrc-006). + * + * Returns the authorization entries (autorisaties) for the given component, + * or null if the consumer has full access (superuser / no restrictions). + * + * @param IRequest $request The request object + * @param string $component The ZGW component (e.g. 'zrc') + * + * @return array|null Array of autorisatie entries, or null if unrestricted + * + * @SuppressWarnings(PHPMD.CyclomaticComplexity) — multiple JWT validation paths + */ + public function getConsumerAuthorisaties(IRequest $request, string $component): ?array + { + if ($this->consumerMapper === null) { + return null; + } + + try { + $authHeader = $request->getHeader('Authorization'); + $token = str_replace('Bearer ', '', $authHeader); + $parts = explode('.', $token); + if (count($parts) !== 3) { + return null; + } + + $payload = json_decode(base64_decode($parts[1]), true); + $clientId = $payload['client_id'] ?? ($payload['iss'] ?? null); + if ($clientId === null) { + return null; + } + + $consumers = $this->consumerMapper->findAll( + filters: ['name' => $clientId] + ); + if (empty($consumers) === true) { + return null; + } + + $consumer = $consumers[0]; + $authConfig = []; + if (method_exists($consumer, 'getAuthorizationConfiguration') === true) { + $authConfig = $consumer->getAuthorizationConfiguration() ?? []; + } + + if (($authConfig['superuser'] ?? false) === true) { + return null; + } + + $result = []; + $scopes = $authConfig['scopes'] ?? []; + foreach ($scopes as $auth) { + $authComponent = $auth['component'] ?? ''; + if ($authComponent === $component) { + $result[] = $auth; + } + } + + return $result; + } catch (\Throwable $e) { + $this->logger->warning( + 'Could not get consumer autorisaties: '.$e->getMessage() + ); + return null; + }//end try + }//end getConsumerAuthorisaties() + + /** + * Publish a ZGW notification (non-blocking). + * + * @param string $zgwApi The ZGW API group + * @param string $resource The ZGW resource name + * @param string $resourceUrl The resource URL + * @param string $actie The action (create, update, destroy) + * + * @return void + */ + public function publishNotification( + string $zgwApi, + string $resource, + string $resourceUrl, + string $actie + ): void { + $resourceKey = self::RESOURCE_MAP[$zgwApi][$resource] ?? $resource; + + $this->notificatieService->publish( + kanaal: $zgwApi, + hoofdObject: $resourceUrl, + resource: $resourceKey, + resourceUrl: $resourceUrl, + actie: $actie + ); + }//end publishNotification() + + /** + * Build the error response data from a validation result. + * + * @param array $ruleResult The validation result from ZgwBusinessRulesService + * + * @return array The error response data with detail and optional invalidParams + */ + public function buildValidationError(array $ruleResult): array + { + $data = ['detail' => $ruleResult['detail']]; + if (isset($ruleResult['code']) === true) { + $data['code'] = $ruleResult['code']; + } + + if (empty($ruleResult['invalidParams']) === false) { + $data['invalidParams'] = $ruleResult['invalidParams']; + } + + return $data; + }//end buildValidationError() + + /** + * Return an "OpenRegister unavailable" error response. + * + * @return JSONResponse + */ + public function unavailableResponse(): JSONResponse + { + return new JSONResponse( + data: ['detail' => 'OpenRegister is not available'], + statusCode: Http::STATUS_SERVICE_UNAVAILABLE + ); + }//end unavailableResponse() + + /** + * Return a "mapping not found" error response. + * + * @param string $zgwApi The ZGW API group + * @param string $resource The ZGW resource name + * + * @return JSONResponse + */ + public function mappingNotFoundResponse(string $zgwApi, string $resource): JSONResponse + { + return new JSONResponse( + data: ['detail' => "No ZGW mapping configured for {$zgwApi}/{$resource}"], + statusCode: Http::STATUS_NOT_FOUND + ); + }//end mappingNotFoundResponse() + + /** + * Generic index (list) operation for a ZGW resource. + * + * @param IRequest $request The request object + * @param string $zgwApi The ZGW API group + * @param string $resource The ZGW resource name + * + * @return JSONResponse + */ + public function handleIndex(IRequest $request, string $zgwApi, string $resource): JSONResponse + { + if ($this->objectService === null) { + return $this->unavailableResponse(); + } + + $mappingConfig = $this->loadMappingConfig(zgwApi: $zgwApi, resource: $resource); + if ($mappingConfig === null) { + return $this->mappingNotFoundResponse(zgwApi: $zgwApi, resource: $resource); + } + + if (($mappingConfig['enabled'] ?? true) === false) { + return new JSONResponse( + data: ['detail' => "ZGW mapping for {$zgwApi}/{$resource} is disabled"], + statusCode: Http::STATUS_NOT_FOUND + ); + } + + try { + $params = $request->getParams(); + $filters = $this->translateQueryParams(params: $params, mappingConfig: $mappingConfig); + + $page = max(1, (int) ($params['page'] ?? 1)); + $pageSize = max(1, min(100, (int) ($params['pageSize'] ?? 20))); + + $searchParams = array_merge( + $filters, + [ + '_limit' => $pageSize, + '_offset' => (($page - 1) * $pageSize), + ] + ); + + $query = $this->objectService->buildSearchQuery( + requestParams: $searchParams, + register: $mappingConfig['sourceRegister'], + schema: $mappingConfig['sourceSchema'] + ); + $result = $this->objectService->searchObjectsPaginated( + query: $query, + _multitenancy: false + ); + + $objects = $result['results'] ?? []; + $totalCount = $result['total'] ?? count($objects); + $baseUrl = $this->buildBaseUrl(request: $request, zgwApi: $zgwApi, resource: $resource); + + $outboundMapping = $this->createOutboundMapping(mappingConfig: $mappingConfig); + $mapped = []; + foreach ($objects as $object) { + if (is_array($object) === true) { + $objectData = $object; + } else { + $objectData = $object->jsonSerialize(); + } + + $mapped[] = $this->applyOutboundMapping( + objectData: $objectData, + mapping: $outboundMapping, + mappingConfig: $mappingConfig, + baseUrl: $baseUrl + ); + } + + $paginatedResult = $this->paginationHelper->wrapResults( + mappedObjects: $mapped, + totalCount: $totalCount, + page: $page, + pageSize: $pageSize, + baseUrl: $baseUrl, + queryParams: $params + ); + + return new JSONResponse(data: $paginatedResult); + } catch (\Throwable $e) { + $this->logger->error( + 'ZGW list error: '.$e->getMessage(), + ['exception' => $e] + ); + return new JSONResponse( + data: ['detail' => 'Internal server error'], + statusCode: Http::STATUS_INTERNAL_SERVER_ERROR + ); + }//end try + }//end handleIndex() + + /** + * Generic create operation for a ZGW resource. + * + * @param IRequest $request The request object + * @param string $zgwApi The ZGW API group + * @param string $resource The ZGW resource name + * @param bool $zaakClosed Whether the parent zaak is closed (zrc-007) + * @param bool $hasForceer Whether the consumer has geforceerd-bijwerken scope + * @param bool $parentZaaktypeDraft Whether parent zaaktype is draft (ztc-010) + * + * @return JSONResponse + * + * @SuppressWarnings(PHPMD.BooleanArgumentFlag) — ZGW scope flags from middleware + * @SuppressWarnings(PHPMD.ExcessiveMethodLength) — orchestration method with validation + mapping + */ + public function handleCreate( + IRequest $request, + string $zgwApi, + string $resource, + ?bool $zaakClosed=null, + bool $hasForceer=true, + ?bool $parentZaaktypeDraft=null + ): JSONResponse { + if ($this->objectService === null) { + return $this->unavailableResponse(); + } + + $mappingConfig = $this->loadMappingConfig(zgwApi: $zgwApi, resource: $resource); + if ($mappingConfig === null) { + return $this->mappingNotFoundResponse(zgwApi: $zgwApi, resource: $resource); + } + + try { + $body = $this->getRequestBody(request: $request); + + $ruleResult = $this->businessRulesService->validate( + zgwApi: $zgwApi, + resource: $resource, + action: 'create', + body: $body, + objectService: $this->objectService, + mappingConfig: $mappingConfig, + parentZaaktypeDraft: $parentZaaktypeDraft, + zaakClosed: $zaakClosed, + hasGeforceerd: $hasForceer + ); + if ($ruleResult['valid'] === false) { + return new JSONResponse( + data: $this->buildValidationError(ruleResult: $ruleResult), + statusCode: $ruleResult['status'] + ); + } + + $enrichedBody = $ruleResult['enrichedBody']; + + // Extract direct OpenRegister fields that bypass Twig inbound mapping + // (used for array fields like documentTypes/caseTypes that Twig cannot handle). + $directFields = $enrichedBody['_directFields'] ?? []; + unset($enrichedBody['_directFields']); + + $inboundMapping = $this->createInboundMapping(mappingConfig: $mappingConfig); + $englishData = $this->applyInboundMapping( + body: $enrichedBody, + mapping: $inboundMapping, + mappingConfig: $mappingConfig + ); + + // @phpstan-ignore-next-line — defensive guard: applyInboundMapping may change + if (is_array($englishData) === false) { + return new JSONResponse( + data: ['detail' => 'Invalid mapping result'], + statusCode: Http::STATUS_BAD_REQUEST + ); + } + + // Merge direct fields into mapped data (array fields that Twig drops). + if (empty($directFields) === false) { + $englishData = array_merge($englishData, $directFields); + } + + $object = $this->objectService->saveObject( + register: $mappingConfig['sourceRegister'], + schema: $mappingConfig['sourceSchema'], + object: $englishData + ); + + if (is_array($object) === true) { + $objectData = $object; + } else { + $objectData = $object->jsonSerialize(); + } + + $objectUuid = $objectData['id'] ?? ($objectData['@self']['id'] ?? ''); + + $baseUrl = $this->buildBaseUrl(request: $request, zgwApi: $zgwApi, resource: $resource); + $outboundMapping = $this->createOutboundMapping(mappingConfig: $mappingConfig); + + $mapped = $this->applyOutboundMapping( + objectData: $objectData, + mapping: $outboundMapping, + mappingConfig: $mappingConfig, + baseUrl: $baseUrl + ); + + $resourceUrl = $baseUrl.'/'.$objectUuid; + $this->publishNotification( + zgwApi: $zgwApi, + resource: $resource, + resourceUrl: $resourceUrl, + actie: 'create' + ); + + return new JSONResponse(data: $mapped, statusCode: Http::STATUS_CREATED); + } catch (\Throwable $e) { + $this->logger->error( + 'ZGW create error: '.$e->getMessage(), + ['exception' => $e] + ); + return new JSONResponse( + data: ['detail' => $e->getMessage()], + statusCode: Http::STATUS_BAD_REQUEST + ); + }//end try + }//end handleCreate() + + /** + * Generic show (get single) operation for a ZGW resource. + * + * @param IRequest $request The request object + * @param string $zgwApi The ZGW API group + * @param string $resource The ZGW resource name + * @param string $uuid The resource UUID + * + * @return JSONResponse + */ + public function handleShow( + IRequest $request, + string $zgwApi, + string $resource, + string $uuid + ): JSONResponse { + if ($this->objectService === null) { + return $this->unavailableResponse(); + } + + $mappingConfig = $this->loadMappingConfig(zgwApi: $zgwApi, resource: $resource); + if ($mappingConfig === null) { + return $this->mappingNotFoundResponse(zgwApi: $zgwApi, resource: $resource); + } + + try { + $object = $this->objectService->find( + register: $mappingConfig['sourceRegister'], + schema: $mappingConfig['sourceSchema'], + id: $uuid + ); + + $baseUrl = $this->buildBaseUrl(request: $request, zgwApi: $zgwApi, resource: $resource); + $outboundMapping = $this->createOutboundMapping(mappingConfig: $mappingConfig); + if (is_array($object) === true) { + $objectData = $object; + } else { + $objectData = $object->jsonSerialize(); + } + + $mapped = $this->applyOutboundMapping( + objectData: $objectData, + mapping: $outboundMapping, + mappingConfig: $mappingConfig, + baseUrl: $baseUrl + ); + + return new JSONResponse(data: $mapped); + } catch (\Throwable $e) { + $this->logger->error( + 'ZGW show error: '.$e->getMessage(), + ['exception' => $e] + ); + return new JSONResponse( + data: ['detail' => 'Not found'], + statusCode: Http::STATUS_NOT_FOUND + ); + }//end try + }//end handleShow() + + /** + * Generic update (PUT/PATCH) operation for a ZGW resource. + * + * @param IRequest $request The request object + * @param string $zgwApi The ZGW API group + * @param string $resource The ZGW resource name + * @param string $uuid The resource UUID + * @param bool $partial Whether this is a partial update (PATCH) + * @param bool $parentZtDraft Whether parent zaaktype is draft (ztc-010) + * @param bool $zaakClosed Whether the parent zaak is closed (zrc-007) + * @param bool $hasForceer Whether consumer has geforceerd-bijwerken + * + * @return JSONResponse + * + * @SuppressWarnings(PHPMD.CyclomaticComplexity) + * @SuppressWarnings(PHPMD.NPathComplexity) + * @SuppressWarnings(PHPMD.ExcessiveMethodLength) + * @SuppressWarnings(PHPMD.BooleanArgumentFlag) — ZGW scope flags from middleware + */ + public function handleUpdate( + IRequest $request, + string $zgwApi, + string $resource, + string $uuid, + bool $partial=false, + ?bool $parentZtDraft=null, + ?bool $zaakClosed=null, + bool $hasForceer=true + ): JSONResponse { + // Resolve UUID from URL path — Nextcloud's getParam() merges JSON body + // into controller args, so a body "uuid" field can override the route's {uuid}. + $uuid = $this->resolvePathUuid(request: $request, uuid: $uuid); + + if ($this->objectService === null) { + return $this->unavailableResponse(); + } + + $mappingConfig = $this->loadMappingConfig(zgwApi: $zgwApi, resource: $resource); + if ($mappingConfig === null) { + return $this->mappingNotFoundResponse(zgwApi: $zgwApi, resource: $resource); + } + + try { + $body = $this->getRequestBody(request: $request); + if ($partial === true) { + $action = 'patch'; + } else { + $action = 'update'; + } + + $existingObj = $this->objectService->find( + $uuid, + register: $mappingConfig['sourceRegister'], + schema: $mappingConfig['sourceSchema'] + ); + if (is_array($existingObj) === true) { + $existingData = $existingObj; + } else { + $existingData = $existingObj->jsonSerialize(); + } + + $ruleResult = $this->businessRulesService->validate( + zgwApi: $zgwApi, + resource: $resource, + action: $action, + body: $body, + existingObject: $existingData, + objectService: $this->objectService, + mappingConfig: $mappingConfig, + parentZaaktypeDraft: $parentZtDraft, + zaakClosed: $zaakClosed, + hasGeforceerd: $hasForceer + ); + if ($ruleResult['valid'] === false) { + return new JSONResponse( + data: $this->buildValidationError(ruleResult: $ruleResult), + statusCode: $ruleResult['status'] + ); + } + + $enrichedBody = $ruleResult['enrichedBody']; + + // Extract direct OpenRegister fields that bypass Twig inbound mapping. + $directFields = $enrichedBody['_directFields'] ?? []; + unset($enrichedBody['_directFields']); + + $inboundMapping = $this->createInboundMapping(mappingConfig: $mappingConfig); + $englishData = $this->applyInboundMapping( + body: $enrichedBody, + mapping: $inboundMapping, + mappingConfig: $mappingConfig + ); + + // Merge direct fields into mapped data (array fields that Twig drops). + if (empty($directFields) === false && is_array($englishData) === true) { + $englishData = array_merge($englishData, $directFields); + } + + $englishData['id'] = $uuid; + + // For partial updates (PATCH), merge with existing object data. + if ($partial === true) { + $existing = $this->objectService->find( + $uuid, + register: $mappingConfig['sourceRegister'], + schema: $mappingConfig['sourceSchema'] + ); + $existingData = $existing->jsonSerialize(); + + unset($existingData['@self'], $existingData['id'], $existingData['organisation']); + + if (isset($existingData['identifier']) === true + && is_int($existingData['identifier']) === true + ) { + $existingData['identifier'] = (string) $existingData['identifier']; + } + + // Track which keys were originally arrays before json_encode for Twig. + $arrayKeys = []; + foreach ($existingData as $key => $value) { + if (is_array($value) === true) { + $arrayKeys[] = $key; + $existingData[$key] = json_encode($value); + } + } + + $bodyKeys = array_keys($body); + $reverseMap = $mappingConfig['reverseMapping'] ?? []; + $validKeys = []; + foreach ($reverseMap as $engKey => $twigTpl) { + if (preg_match_all('/\{\{\s*(\w+)/', $twigTpl, $matches) === 1) { + foreach ($matches[1] as $zgwField) { + if (in_array($zgwField, $bodyKeys, true) === true) { + $validKeys[] = $engKey; + } + } + } + } + + $patchData = []; + foreach ($validKeys as $key) { + if (isset($englishData[$key]) === true) { + $patchData[$key] = $englishData[$key]; + } + } + + $englishData = array_merge($existingData, $patchData); + + // Determine which English fields are stored as JSON strings + // (their reverse-mapping template uses json_encode). + $jsonStringFields = []; + foreach ($reverseMap as $engKey => $twigTpl) { + if (strpos($twigTpl, 'json_encode') !== false) { + $jsonStringFields[] = $engKey; + } + } + + // Restore fields that were originally arrays, but skip fields + // that are stored as JSON strings in the schema (productsOrServices, + // referenceProcess, relatedCaseTypes, etc.). Those must remain as + // JSON-encoded strings for OpenRegister validation. + foreach ($arrayKeys as $key) { + if (in_array($key, $jsonStringFields, true) === true) { + continue; + } + + if (isset($englishData[$key]) === true && is_string($englishData[$key]) === true) { + $decoded = json_decode($englishData[$key], true); + if (is_array($decoded) === true) { + $englishData[$key] = $decoded; + } + } + } + }//end if + + // Apply _directFields after PATCH merge to ensure they override correctly. + if (empty($directFields) === false && is_array($englishData) === true) { + $englishData = array_merge($englishData, $directFields); + } + + $object = $this->objectService->saveObject( + register: $mappingConfig['sourceRegister'], + schema: $mappingConfig['sourceSchema'], + object: $englishData, + uuid: $uuid + ); + + $baseUrl = $this->buildBaseUrl(request: $request, zgwApi: $zgwApi, resource: $resource); + $outboundMapping = $this->createOutboundMapping(mappingConfig: $mappingConfig); + if (is_array($object) === true) { + $objectData = $object; + } else { + $objectData = $object->jsonSerialize(); + } + + $mapped = $this->applyOutboundMapping( + objectData: $objectData, + mapping: $outboundMapping, + mappingConfig: $mappingConfig, + baseUrl: $baseUrl + ); + + $this->publishNotification( + zgwApi: $zgwApi, + resource: $resource, + resourceUrl: $baseUrl.'/'.$uuid, + actie: 'update' + ); + + return new JSONResponse(data: $mapped); + } catch (\Throwable $e) { + $this->logger->error( + 'ZGW update error ('.$resource.' '.$uuid.'): '.$e->getMessage(), + ['exception' => $e, 'trace' => $e->getTraceAsString()] + ); + return new JSONResponse( + data: ['detail' => $e->getMessage()], + statusCode: Http::STATUS_BAD_REQUEST + ); + }//end try + }//end handleUpdate() + + /** + * Generic destroy (delete) operation for a ZGW resource. + * + * @param IRequest $request The request object + * @param string $zgwApi The ZGW API group + * @param string $resource The ZGW resource name + * @param string $uuid The resource UUID + * @param bool $parentZtDraft Whether parent zaaktype is draft (ztc-010) + * @param bool $zaakClosed Whether the parent zaak is closed (zrc-007) + * @param bool $hasForceer Whether consumer has geforceerd-bijwerken + * + * @return JSONResponse + * + * @SuppressWarnings(PHPMD.BooleanArgumentFlag) — ZGW scope flags from middleware + */ + public function handleDestroy( + IRequest $request, + string $zgwApi, + string $resource, + string $uuid, + ?bool $parentZtDraft=null, + ?bool $zaakClosed=null, + bool $hasForceer=true + ): JSONResponse { + if ($this->objectService === null) { + return $this->unavailableResponse(); + } + + $mappingConfig = $this->loadMappingConfig(zgwApi: $zgwApi, resource: $resource); + if ($mappingConfig === null) { + return $this->mappingNotFoundResponse(zgwApi: $zgwApi, resource: $resource); + } + + try { + $existingObj = $this->objectService->find( + $uuid, + register: $mappingConfig['sourceRegister'], + schema: $mappingConfig['sourceSchema'] + ); + if (is_array($existingObj) === true) { + $existingData = $existingObj; + } else { + $existingData = $existingObj->jsonSerialize(); + } + + $ruleResult = $this->businessRulesService->validate( + zgwApi: $zgwApi, + resource: $resource, + action: 'destroy', + body: [], + existingObject: $existingData, + objectService: $this->objectService, + mappingConfig: $mappingConfig, + parentZaaktypeDraft: $parentZtDraft, + zaakClosed: $zaakClosed, + hasGeforceerd: $hasForceer + ); + if ($ruleResult['valid'] === false) { + return new JSONResponse( + data: $this->buildValidationError(ruleResult: $ruleResult), + statusCode: $ruleResult['status'] + ); + } + + $this->objectService->deleteObject(uuid: $uuid); + + $baseUrl = $this->buildBaseUrl(request: $request, zgwApi: $zgwApi, resource: $resource); + $this->publishNotification( + zgwApi: $zgwApi, + resource: $resource, + resourceUrl: $baseUrl.'/'.$uuid, + actie: 'destroy' + ); + + return new JSONResponse(data: [], statusCode: Http::STATUS_NO_CONTENT); + } catch (\Throwable $e) { + $this->logger->error( + 'ZGW delete error: '.$e->getMessage(), + ['exception' => $e] + ); + return new JSONResponse( + data: ['detail' => 'Not found'], + statusCode: Http::STATUS_NOT_FOUND + ); + }//end try + }//end handleDestroy() + + /** + * Handle audit trail index — proxies to OpenRegister's audit trail. + * + * @param IRequest $request The request object + * @param string $zgwApi The ZGW API group + * @param string $resource The ZGW resource name + * @param string $uuid The resource UUID + * + * @return JSONResponse + */ + public function handleAudittrailIndex( + IRequest $request, + string $zgwApi, + string $resource, + string $uuid + ): JSONResponse { + $resourceUrl = $this->buildBaseUrl( + request: $request, + zgwApi: $zgwApi, + resource: $resource + ).'/'.$uuid; + + // Fetch real audit trail from OpenRegister. + $entries = []; + if ($this->objectService !== null) { + try { + $logs = $this->objectService->getLogs($uuid, [], false, false); + foreach ($logs as $log) { + $entries[] = $this->mapAuditTrailToZgw( + log: $log, + resourceUrl: $resourceUrl, + resource: $resource + ); + } + } catch (\Throwable $e) { + $this->logger->warning( + 'Failed to fetch audit trail for '.$uuid.': '.$e->getMessage() + ); + } + } + + // If no entries found, return a synthetic creation entry. + if (empty($entries) === true) { + $entries[] = [ + 'uuid' => $uuid.'-audit-1', + 'bron' => 'procest', + 'applicatieId' => 'procest', + 'applicatieWeergave' => 'Procest', + 'actie' => 'create', + 'actieWeergave' => 'Object aangemaakt', + 'resultaat' => 200, + 'hoofdObject' => $resourceUrl, + 'resource' => $resource, + 'resourceUrl' => $resourceUrl, + 'resourceWeergave' => $resource, + 'aanmaakdatum' => date('c'), + ]; + } + + return new JSONResponse(data: $entries); + }//end handleAudittrailIndex() + + /** + * Handle audit trail show — proxies to OpenRegister's audit trail. + * + * @param IRequest $request The request object + * @param string $zgwApi The ZGW API group + * @param string $resource The ZGW resource name + * @param string $uuid The resource UUID + * @param string $auditUuid The audit trail entry UUID + * + * @return JSONResponse + */ + public function handleAudittrailShow( + IRequest $request, + string $zgwApi, + string $resource, + string $uuid, + string $auditUuid + ): JSONResponse { + $resourceUrl = $this->buildBaseUrl( + request: $request, + zgwApi: $zgwApi, + resource: $resource + ).'/'.$uuid; + + // Try to find the specific audit trail entry from OpenRegister. + if ($this->objectService !== null) { + try { + $logs = $this->objectService->getLogs($uuid, [], false, false); + foreach ($logs as $log) { + if (is_array($log) === true) { + $logData = $log; + } else { + $logData = $log->jsonSerialize(); + } + + if (($logData['uuid'] ?? '') === $auditUuid) { + return new JSONResponse( + data: $this->mapAuditTrailToZgw(log: $log, resourceUrl: $resourceUrl, resource: $resource) + ); + } + } + } catch (\Throwable $e) { + $this->logger->warning( + 'Failed to fetch audit trail entry '.$auditUuid.': '.$e->getMessage() + ); + } + }//end if + + // Fallback: return a synthetic entry with the requested UUID. + return new JSONResponse( + data: [ + 'uuid' => $auditUuid, + 'bron' => 'procest', + 'applicatieId' => 'procest', + 'applicatieWeergave' => 'Procest', + 'actie' => 'create', + 'actieWeergave' => 'Object aangemaakt', + 'resultaat' => 200, + 'hoofdObject' => $resourceUrl, + 'resource' => $resource, + 'resourceUrl' => $resourceUrl, + 'resourceWeergave' => $resource, + 'aanmaakdatum' => date('c'), + ] + ); + }//end handleAudittrailShow() + + /** + * Map an OpenRegister AuditTrail entry to ZGW audittrail format. + * + * @param object|array $log The OpenRegister audit trail entry + * @param string $resourceUrl The ZGW resource URL + * @param string $resource The ZGW resource name + * + * @return array ZGW-formatted audit trail entry + */ + private function mapAuditTrailToZgw( + object|array $log, + string $resourceUrl, + string $resource + ): array { + if (is_array($log) === true) { + $logData = $log; + } else { + $logData = $log->jsonSerialize(); + } + + // Map OpenRegister action names to ZGW actie names. + $actionMap = [ + 'save' => 'create', + 'create' => 'create', + 'update' => 'update', + 'patch' => 'partial_update', + 'delete' => 'destroy', + 'lock' => 'create', + 'unlock' => 'destroy', + 'publish' => 'update', + 'depublish' => 'update', + 'referential_integrity.cascade_delete' => 'destroy', + ]; + + $actionDisplayMap = [ + 'create' => 'Object aangemaakt', + 'update' => 'Object bijgewerkt', + 'partial_update' => 'Object deels bijgewerkt', + 'destroy' => 'Object verwijderd', + 'list' => 'Objecten opgevraagd', + 'retrieve' => 'Object opgevraagd', + ]; + + $orAction = $logData['action'] ?? 'create'; + $zgwActie = $actionMap[$orAction] ?? $orAction; + $weergave = $actionDisplayMap[$zgwActie] ?? ucfirst($orAction); + + return [ + 'uuid' => $logData['uuid'] ?? '', + 'bron' => 'procest', + 'applicatieId' => $logData['user'] ?? 'procest', + 'applicatieWeergave' => $logData['userName'] ?? 'Procest', + 'actie' => $zgwActie, + 'actieWeergave' => $weergave, + 'resultaat' => 200, + 'hoofdObject' => $resourceUrl, + 'resource' => $resource, + 'resourceUrl' => $resourceUrl, + 'resourceWeergave' => $resource, + 'aanmaakdatum' => $logData['created'] ?? date('c'), + ]; + }//end mapAuditTrailToZgw() + + /** + * Resolve whether a zaak is closed (has einddatum set). + * + * @param string $resource The ZGW resource name + * @param array $existingData The existing object data + * + * @return bool|null True if closed, false if open, null if N/A + * + * @SuppressWarnings(PHPMD.CyclomaticComplexity) — sub-resource lookup with multiple guard clauses + * @SuppressWarnings(PHPMD.NPathComplexity) — sub-resource lookup with multiple guard clauses + */ + public function resolveZaakClosed(string $resource, array $existingData): ?bool + { + if ($resource === 'zaken') { + $endDate = $existingData['endDate'] ?? ($existingData['einddatum'] ?? null); + return $endDate !== null && $endDate !== ''; + } + + $zaakSubResources = [ + 'statussen', + 'resultaten', + 'rollen', + 'zaakeigenschappen', + 'zaakinformatieobjecten', + 'zaakobjecten', + 'klantcontacten', + ]; + if (in_array($resource, $zaakSubResources, true) === false) { + return null; + } + + $zaakUuid = $existingData['case'] ?? ($existingData['zaak'] ?? null); + if ($zaakUuid === null || $zaakUuid === '') { + return null; + } + + if (preg_match( + '/([0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12})/i', + (string) $zaakUuid, + $matches + ) === 1 + ) { + $zaakUuid = $matches[1]; + } + + try { + $zaakConfig = $this->zgwMappingService->getMapping('zaak'); + if ($zaakConfig === null) { + return null; + } + + $zaak = $this->objectService->find( + $zaakUuid, + register: $zaakConfig['sourceRegister'], + schema: $zaakConfig['sourceSchema'] + ); + if ($zaak === null) { + return null; + } + + if (is_array($zaak) === true) { + $zaakData = $zaak; + } else { + $zaakData = $zaak->jsonSerialize(); + } + + $endDate = $zaakData['endDate'] ?? ($zaakData['einddatum'] ?? null); + + return $endDate !== null && $endDate !== ''; + } catch (\Throwable $e) { + $this->logger->warning( + 'Could not resolve zaak closed status: '.$e->getMessage() + ); + return null; + }//end try + }//end resolveZaakClosed() + + /** + * Resolve whether a zaak is closed from a request body (for sub-resource creation). + * + * @param string $resource The ZGW resource name + * @param array $body The request body + * + * @return bool|null True if closed, false if open, null if N/A + * + * @SuppressWarnings(PHPMD.CyclomaticComplexity) — sub-resource lookup with multiple guard clauses + * @SuppressWarnings(PHPMD.NPathComplexity) — sub-resource lookup with multiple guard clauses + */ + public function resolveZaakClosedFromBody(string $resource, array $body): ?bool + { + if ($resource === 'zaken') { + return null; + } + + $zaakSubResources = [ + 'statussen', + 'resultaten', + 'rollen', + 'zaakeigenschappen', + 'zaakinformatieobjecten', + 'zaakobjecten', + 'klantcontacten', + ]; + if (in_array($resource, $zaakSubResources, true) === false) { + return null; + } + + $zaakUrl = $body['zaak'] ?? null; + if ($zaakUrl === null || $zaakUrl === '') { + return null; + } + + if (preg_match( + '/([0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12})/i', + (string) $zaakUrl, + $matches + ) !== 1 + ) { + return null; + } + + $zaakUuid = $matches[1]; + + try { + $zaakConfig = $this->zgwMappingService->getMapping('zaak'); + if ($zaakConfig === null) { + return null; + } + + $zaak = $this->objectService->find( + $zaakUuid, + register: $zaakConfig['sourceRegister'], + schema: $zaakConfig['sourceSchema'] + ); + if ($zaak === null) { + return null; + } + + if (is_array($zaak) === true) { + $zaakData = $zaak; + } else { + $zaakData = $zaak->jsonSerialize(); + } + + $endDate = $zaakData['endDate'] ?? ($zaakData['einddatum'] ?? null); + + return $endDate !== null && $endDate !== ''; + } catch (\Throwable $e) { + return null; + }//end try + }//end resolveZaakClosedFromBody() + + /** + * Resolve whether the parent zaaktype is in draft (concept) state. + * + * @param string $resource The ZGW resource name + * @param array $existingData The existing sub-resource object data + * + * @return bool|null True if draft, false if published, null if N/A + * + * @SuppressWarnings(PHPMD.CyclomaticComplexity) — sub-resource lookup with multiple guard clauses + * @SuppressWarnings(PHPMD.NPathComplexity) — sub-resource lookup with multiple guard clauses + */ + public function resolveParentZaaktypeDraft(string $resource, array $existingData): ?bool + { + $subResources = [ + 'statustypen', + 'resultaattypen', + 'roltypen', + 'eigenschappen', + 'zaaktype-informatieobjecttypen', + ]; + + if (in_array($resource, $subResources, true) === false) { + return null; + } + + $zaaktypeUuid = $existingData['caseType'] ?? ($existingData['zaaktype'] ?? null); + if ($zaaktypeUuid === null || $zaaktypeUuid === '') { + return null; + } + + if (preg_match( + '/([0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12})/i', + (string) $zaaktypeUuid, + $matches + ) === 1 + ) { + $zaaktypeUuid = $matches[1]; + } + + try { + $zaaktypeConfig = $this->zgwMappingService->getMapping('zaaktype'); + if ($zaaktypeConfig === null) { + return null; + } + + $zaaktype = $this->objectService->find( + $zaaktypeUuid, + register: $zaaktypeConfig['sourceRegister'], + schema: $zaaktypeConfig['sourceSchema'] + ); + if ($zaaktype === null) { + return null; + } + + if (is_array($zaaktype) === true) { + $ztData = $zaaktype; + } else { + $ztData = $zaaktype->jsonSerialize(); + } + + $isDraft = $ztData['isDraft'] ?? ($ztData['concept'] ?? true); + + if ($isDraft === false || $isDraft === 'false' || $isDraft === '0' || $isDraft === 0) { + return false; + } + + return true; + } catch (\Throwable $e) { + $this->logger->warning( + 'Could not resolve parent zaaktype draft status: '.$e->getMessage() + ); + return null; + }//end try + }//end resolveParentZaaktypeDraft() + + /** + * Resolve parent zaaktype draft status from a request body (for sub-resource creation). + * + * Extracts the zaaktype URL/UUID from the body and looks up whether + * the zaaktype is still in draft (concept) state. + * + * @param string $resource The ZGW resource name + * @param array $body The request body (Dutch field names) + * + * @return bool|null True if draft, false if published, null if N/A + * + * @SuppressWarnings(PHPMD.CyclomaticComplexity) — sub-resource lookup with multiple guard clauses + * @SuppressWarnings(PHPMD.NPathComplexity) — sub-resource lookup with multiple guard clauses + */ + public function resolveParentZaaktypeDraftFromBody(string $resource, array $body): ?bool + { + $subResources = [ + 'statustypen', + 'resultaattypen', + 'roltypen', + 'eigenschappen', + 'zaaktype-informatieobjecttypen', + ]; + + if (in_array($resource, $subResources, true) === false) { + return null; + } + + $zaaktypeRef = $body['zaaktype'] ?? null; + if ($zaaktypeRef === null || $zaaktypeRef === '') { + return null; + } + + // Extract UUID from URL or plain UUID. + if (preg_match( + '/([0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12})/i', + (string) $zaaktypeRef, + $matches + ) !== 1 + ) { + return null; + } + + $zaaktypeUuid = $matches[1]; + + try { + $zaaktypeConfig = $this->zgwMappingService->getMapping('zaaktype'); + if ($zaaktypeConfig === null) { + return null; + } + + $zaaktype = $this->objectService->find( + $zaaktypeUuid, + register: $zaaktypeConfig['sourceRegister'], + schema: $zaaktypeConfig['sourceSchema'] + ); + if ($zaaktype === null) { + return null; + } + + if (is_array($zaaktype) === true) { + $ztData = $zaaktype; + } else { + $ztData = $zaaktype->jsonSerialize(); + } + + $isDraft = $ztData['isDraft'] ?? ($ztData['concept'] ?? true); + + if ($isDraft === false || $isDraft === 'false' || $isDraft === '0' || $isDraft === 0) { + return false; + } + + return true; + } catch (\Throwable $e) { + $this->logger->warning( + 'Could not resolve parent zaaktype draft from body: '.$e->getMessage() + ); + return null; + }//end try + }//end resolveParentZaaktypeDraftFromBody() +}//end class diff --git a/lib/Service/ZgwZrcRulesService.php b/lib/Service/ZgwZrcRulesService.php new file mode 100644 index 0000000..837270d --- /dev/null +++ b/lib/Service/ZgwZrcRulesService.php @@ -0,0 +1,1269 @@ + + * @copyright 2024 Conduction B.V. + * @license EUPL-1.2 https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12 + * + * @version GIT: + * + * @link https://procest.nl + * @link https://vng-realisatie.github.io/gemma-zaken/standaard/zaken/ + * + * Business rules implemented: + * + * - zrc-001: Valideren zaaktype op de Zaak-resource + * - zrc-002: Garanderen uniciteit bronorganisatie en identificatie + * - zrc-003: Valideren informatieobject op ZaakInformatieObject + * - zrc-004: Zetten relatieinformatie op ZaakInformatieObject + * - zrc-005: Synchroniseren relaties met informatieobjecten (cross-register, in ZgwService) + * - zrc-006: Data filteren op basis van zaaktypes (in ZrcController) + * - zrc-007: Afsluiten zaak (in ZrcController handleEindstatusEffect) + * - zrc-008: Heropenen zaak (in ZrcController) + * - zrc-009: Vertrouwelijkheidaanduiding van een zaak + * - zrc-010: Valideren communicatiekanaal + * - zrc-011: Valideren relevanteAndereZaken + * - zrc-012: Gegevensgroepen (opschorting, verlenging) + * - zrc-013: Valideren hoofdzaak + * - zrc-014: Betalingsindicatie en laatsteBetaaldatum + * - zrc-015: Valideren productenOfDiensten bij een Zaak + * - zrc-016: Valideren statustype bij Zaak.zaaktype + * - zrc-017: Valideren informatieobjecttype bij Zaak.zaaktype + * - zrc-018: Valideren eigenschap bij Zaak.zaaktype + * - zrc-019: Valideren roltype bij Zaak.zaaktype + * - zrc-020: Valideren resultaattype bij Zaak.zaaktype + * - zrc-021: Afleiden archiveringsparameters (in ZrcController) + * - zrc-022: Zetten Zaak.archiefstatus + * - zrc-023: Vernietigen van zaken (cascade delete, in ZrcController) + * + * @SuppressWarnings(PHPMD.CouplingBetweenObjects) + * @SuppressWarnings(PHPMD.ExcessiveClassComplexity) + * @SuppressWarnings(PHPMD.TooManyMethods) + * @SuppressWarnings(PHPMD.CyclomaticComplexity) + * @SuppressWarnings(PHPMD.NPathComplexity) + */ + +declare(strict_types=1); + +namespace OCA\Procest\Service; + +/** + * ZRC (Zaken API) business rule validation and enrichment. + * + * @psalm-suppress UnusedClass + * + * @SuppressWarnings(PHPMD.ExcessiveClassComplexity) + * @SuppressWarnings(PHPMD.ExcessiveClassLength) + */ +class ZgwZrcRulesService extends ZgwRulesBase +{ + /** + * Rules for creating a zaak (POST /zaken/v1/zaken). + * + * Implements: + * - zrc-001: Validate zaaktype URL exists and is published (concept=false). + * - zrc-002: Guarantee unique combination of identificatie + bronorganisatie. + * Auto-generate identificatie if not provided. + * - zrc-009: Derive vertrouwelijkheidaanduiding from zaaktype if not explicitly set. + * - zrc-022: Set default archiefstatus to 'nog_te_archiveren'. + * + * @param array $body The ZGW request body (Dutch field names) + * + * @return array The validation result + * + * @link https://vng-realisatie.github.io/gemma-zaken/standaard/zaken/ + * + * @SuppressWarnings(PHPMD.CyclomaticComplexity) — ZGW business rules validation + */ + public function rulesZakenCreate(array $body): array + { + // Zrc-001: Validate zaaktype URL. + $zaaktypeUrl = $body['zaaktype'] ?? ''; + if (empty($zaaktypeUrl) === false && $this->objectService !== null) { + $error = $this->validateTypeUrl( + typeUrl: $zaaktypeUrl, + fieldName: 'zaaktype', + schemaKey: 'case_type_schema' + ); + if ($error !== null) { + return $error; + } + } + + // Zrc-002: Check unique identificatie + bronorganisatie. + if (empty($body['identificatie']) === false) { + $error = $this->checkFieldUniqueness( + field1Value: $body['identificatie'], + field1Search: 'identifier', + field2Value: $body['bronorganisatie'] ?? '', + field2Search: 'sourceOrganisation', + errorField: 'identificatie' + ); + if ($error !== null) { + return $error; + } + } + + // Zrc-002: Auto-generate identificatie if not provided. + if (empty($body['identificatie']) === true) { + $body['identificatie'] = $this->generateIdentificatie(prefix: 'ZAAK'); + } + + // Zrc-009: Derive vertrouwelijkheidaanduiding from zaaktype — always override + // template defaults to prevent leakage (incoming value used only as fallback). + if (empty($zaaktypeUrl) === false) { + $body = $this->deriveVertrouwelijkheidaanduiding(body: $body, zaaktypeUrl: $zaaktypeUrl); + } + + // Zrc-022: Set default archiefstatus. + if (empty($body['archiefstatus']) === true) { + $body['archiefstatus'] = 'nog_te_archiveren'; + } + + // Intake channel: mark ZGW API as source channel. + if (empty($body['intakeChannel']) === true) { + $body['intakeChannel'] = 'zgw-api'; + } + + // Auto-assign handler from zaaktype defaultAssignee if no handler set. + if (empty($body['assignee']) === true && empty($zaaktypeUrl) === false && $this->objectService !== null) { + $extractedUuid = $this->extractUuid(url: $zaaktypeUrl); + if ($extractedUuid !== null) { + $register = $this->mappingConfig['sourceRegister'] ?? ''; + $schema = $this->settingsService->getConfigValue(key: 'case_type_schema'); + if (empty($register) === false && empty($schema) === false) { + try { + $zaaktype = $this->objectService->find( + id: $extractedUuid, + register: $register, + schema: $schema + ); + $ztData = is_array($zaaktype) === true ? $zaaktype : $zaaktype->jsonSerialize(); + if (empty($ztData['defaultAssignee']) === false) { + $body['assignee'] = $ztData['defaultAssignee']; + } + } catch (\Throwable $e) { + // Zaaktype not found; skip auto-assignment. + } + } + } + } + + return $this->validateZaakFields(result: $this->isValid(body: $body), existingObject: null, isPatch: false); + }//end rulesZakenCreate() + + /** + * Rules for updating a zaak (PUT /zaken/v1/zaken/{uuid}). + * + * Implements shared zaak field validations. + * + * @param array $body The ZGW request body + * @param array|null $existingObject The existing zaak data + * + * @return array The validation result + */ + public function rulesZakenUpdate(array $body, ?array $existingObject=null): array + { + // Zrc-002: Preserve immutable identificatie on PUT if not provided. + // If the PUT body omits identificatie, carry it forward from the existing object + // to prevent the stored identifier from being erased. + if (isset($body['identificatie']) === false && $existingObject !== null) { + $existingId = $existingObject['identifier'] ?? ($existingObject['identificatie'] ?? ''); + if ($existingId !== '') { + $body['identificatie'] = $existingId; + } + } + + // Zrc-002: Preserve immutable bronorganisatie on PUT if not provided. + if (isset($body['bronorganisatie']) === false && $existingObject !== null) { + $existingOrg = $existingObject['sourceOrganisation'] ?? ($existingObject['bronorganisatie'] ?? ''); + if ($existingOrg !== '') { + $body['bronorganisatie'] = $existingOrg; + } + } + + // Zrc-009: Derive vertrouwelijkheidaanduiding from zaaktype — always override. + $zaaktypeUrl = $body['zaaktype'] ?? ''; + if (empty($zaaktypeUrl) === false) { + $body = $this->deriveVertrouwelijkheidaanduiding(body: $body, zaaktypeUrl: $zaaktypeUrl); + } + + return $this->validateZaakFields( + result: $this->isValid(body: $body), + existingObject: $existingObject, + isPatch: false + ); + }//end rulesZakenUpdate() + + /** + * Rules for patching a zaak (PATCH /zaken/v1/zaken/{uuid}). + * + * @param array $body The ZGW request body + * @param array|null $existingObject The existing zaak data + * + * @return array The validation result + */ + public function rulesZakenPatch(array $body, ?array $existingObject=null): array + { + // Zrc-009: Derive vertrouwelijkheidaanduiding from zaaktype if not set. + // For PATCH, the zaaktype might not be in the body — check existing object. + $zaaktypeUrl = $body['zaaktype'] ?? ''; + if ($zaaktypeUrl === '' && $existingObject !== null) { + $caseType = $existingObject['caseType'] ?? ''; + if ($caseType !== '') { + $zaaktypeUrl = $caseType; + } + } + + // Ensure zaaktype is available in body for downstream validations + // (zrc-010, zrc-015) that need the zaaktype URL from the existing object. + if (($body['zaaktype'] ?? '') === '' && $zaaktypeUrl !== '') { + $body['zaaktype'] = $zaaktypeUrl; + } + + // Zrc-009: Always override from zaaktype to prevent template leakage. + if (empty($zaaktypeUrl) === false) { + $body = $this->deriveVertrouwelijkheidaanduiding(body: $body, zaaktypeUrl: $zaaktypeUrl); + } + + return $this->validateZaakFields( + result: $this->isValid(body: $body), + existingObject: $existingObject, + isPatch: true + ); + }//end rulesZakenPatch() + + /** + * Rules for creating a status (POST /zaken/v1/statussen). + * + * Implements: + * - zrc-016: Validate that statustype belongs to Zaak.zaaktype.statustypen. + * + * @param array $body The ZGW request body + * + * @return array The validation result + * + * @link https://vng-realisatie.github.io/gemma-zaken/standaard/zaken/ + */ + public function rulesStatussenCreate(array $body): array + { + // Zrc-016: Validate statustype belongs to zaak's zaaktype. + $statustypeUrl = $body['statustype'] ?? ''; + $zaakUrl = $body['zaak'] ?? ''; + if ($statustypeUrl !== '' && $zaakUrl !== '') { + $error = $this->validateSubResourceType( + zaakUrl: $zaakUrl, + typeUrl: $statustypeUrl, + fieldName: 'statustype', + typeSchemaKey: 'status_type_schema', + zaaktypeField: 'statusTypes' + ); + if ($error !== null) { + return $error; + } + } + + return $this->isValid(body: $body); + }//end rulesStatussenCreate() + + /** + * Rules for creating a resultaat (POST /zaken/v1/resultaten). + * + * Implements: + * - zrc-020: Validate that resultaattype belongs to Zaak.zaaktype.resultaattypen. + * + * @param array $body The ZGW request body + * + * @return array The validation result + * + * @link https://vng-realisatie.github.io/gemma-zaken/standaard/zaken/ + */ + public function rulesResultatenCreate(array $body): array + { + // Zrc-020: Validate resultaattype belongs to zaak's zaaktype. + $resultaattypeUrl = $body['resultaattype'] ?? ''; + $zaakUrl = $body['zaak'] ?? ''; + if ($resultaattypeUrl !== '' && $zaakUrl !== '') { + $error = $this->validateSubResourceType( + zaakUrl: $zaakUrl, + typeUrl: $resultaattypeUrl, + fieldName: 'resultaattype', + typeSchemaKey: 'result_type_schema', + zaaktypeField: 'resultTypes' + ); + if ($error !== null) { + return $error; + } + } + + return $this->isValid(body: $body); + }//end rulesResultatenCreate() + + /** + * Rules for creating a rol (POST /zaken/v1/rollen). + * + * Implements: + * - zrc-019: Validate that roltype belongs to Zaak.zaaktype.roltypen. + * + * @param array $body The ZGW request body + * + * @return array The validation result + * + * @link https://vng-realisatie.github.io/gemma-zaken/standaard/zaken/ + */ + public function rulesRollenCreate(array $body): array + { + // Zrc-019: Validate roltype belongs to zaak's zaaktype. + $roltypeUrl = $body['roltype'] ?? ''; + $zaakUrl = $body['zaak'] ?? ''; + if ($roltypeUrl !== '' && $zaakUrl !== '') { + $error = $this->validateSubResourceType( + zaakUrl: $zaakUrl, + typeUrl: $roltypeUrl, + fieldName: 'roltype', + typeSchemaKey: 'role_type_schema', + zaaktypeField: 'roleTypes' + ); + if ($error !== null) { + return $error; + } + } + + return $this->isValid(body: $body); + }//end rulesRollenCreate() + + /** + * Rules for creating a ZaakInformatieObject (POST /zaken/v1/zaakinformatieobjecten). + * + * Implements: + * - zrc-003: Validate informatieobject URL exists. + * - zrc-004: Set aardRelatieWeergave and registratiedatum. + * - zrc-017: Validate informatieobjecttype belongs to Zaak.zaaktype. + * + * @param array $body The ZGW request body + * + * @return array The validation result + * + * @link https://vng-realisatie.github.io/gemma-zaken/standaard/zaken/ + */ + public function rulesZaakinformatieobjectenCreate(array $body): array + { + // Zrc-003: Validate informatieobject URL exists. + $ioUrl = $body['informatieobject'] ?? ''; + if ($ioUrl !== '') { + $error = $this->validateInformatieobjectUrl(ioUrl: $ioUrl); + if ($error !== null) { + return $error; + } + } + + // Zrc-017: Validate informatieobjecttype belongs to zaak's zaaktype. + $zaakUrl = $body['zaak'] ?? ''; + if ($ioUrl !== '' && $zaakUrl !== '' && $this->objectService !== null) { + $error = $this->validateZioInformatieobjecttype(zaakUrl: $zaakUrl, ioUrl: $ioUrl); + if ($error !== null) { + return $error; + } + } + + // Zrc-004: Set aardRelatieWeergave and registratiedatum. + $body['aardRelatieWeergave'] = 'Hoort bij, omgekeerd: kent'; + $body['registratiedatum'] = date('Y-m-d'); + + return $this->isValid(body: $body); + }//end rulesZaakinformatieobjectenCreate() + + /** + * Rules for updating a ZaakInformatieObject (PUT). + * + * Implements: + * - zrc-004: Zaak and informatieobject fields are immutable; aardRelatieWeergave is fixed. + * + * @param array $body The ZGW request body + * @param array|null $existingObject The existing ZIO data + * + * @return array The validation result + * + * @link https://vng-realisatie.github.io/gemma-zaken/standaard/zaken/ + */ + public function rulesZaakinformatieobjectenUpdate(array $body, ?array $existingObject=null): array + { + $result = $this->checkZioImmutability(result: $this->isValid(body: $body), existingObject: $existingObject); + if ($result['valid'] === false) { + return $result; + } + + $body = $result['enrichedBody']; + $body['aardRelatieWeergave'] = 'Hoort bij, omgekeerd: kent'; + + return $this->isValid(body: $body); + }//end rulesZaakinformatieobjectenUpdate() + + /** + * Rules for patching a ZaakInformatieObject (PATCH). + * + * @param array $body The ZGW request body + * @param array|null $existingObject The existing ZIO data + * + * @return array The validation result + * + * @see rulesZaakinformatieobjectenUpdate() Same immutability rules apply. + */ + public function rulesZaakinformatieobjectenPatch(array $body, ?array $existingObject=null): array + { + return $this->rulesZaakinformatieobjectenUpdate(body: $body, existingObject: $existingObject); + }//end rulesZaakinformatieobjectenPatch() + + /** + * Rules for creating a zaakeigenschap (POST /zaken/{zaakUuid}/zaakeigenschappen). + * + * Implements: + * - zrc-018: Validate that eigenschap belongs to Zaak.zaaktype.eigenschappen. + * + * @param array $body The ZGW request body + * + * @return array The validation result + * + * @link https://vng-realisatie.github.io/gemma-zaken/standaard/zaken/ + */ + public function rulesZaakeigenschappenCreate(array $body): array + { + // Zrc-018: Validate eigenschap belongs to zaak's zaaktype. + $eigenschapUrl = $body['eigenschap'] ?? ''; + $zaakUrl = $body['zaak'] ?? ''; + if ($eigenschapUrl !== '' && $zaakUrl !== '') { + $error = $this->validateSubResourceType( + zaakUrl: $zaakUrl, + typeUrl: $eigenschapUrl, + fieldName: 'eigenschap', + typeSchemaKey: 'property_definition_schema', + zaaktypeField: 'propertyDefinitions' + ); + if ($error !== null) { + return $error; + } + } + + return $this->isValid(body: $body); + }//end rulesZaakeigenschappenCreate() + + /** + * Derive vertrouwelijkheidaanduiding from zaaktype (zrc-009). + * + * The zaaktype's vertrouwelijkheidaanduiding ALWAYS overrides any value from + * the request or mapping template to prevent template leakage. The incoming + * value is only used as a fallback when the zaaktype field is absent. + * + * @param array $body The request body + * @param string $zaaktypeUrl The zaaktype URL + * + * @return array The body with derived vertrouwelijkheidaanduiding + * + * @link https://vng-realisatie.github.io/gemma-zaken/standaard/zaken/ + */ + private function deriveVertrouwelijkheidaanduiding(array $body, string $zaaktypeUrl): array + { + $uuid = $this->extractUuid(url: $zaaktypeUrl); + if ($uuid === null) { + return $body; + } + + $ztData = $this->findBySchemaKey(uuid: $uuid, schemaKey: 'case_type_schema'); + if ($ztData === null) { + return $body; + } + + // Zrc-009: zaaktype value always overrides template default to prevent leakage. + $val = $ztData['confidentiality'] ?? ($ztData['confidentialityDesignation'] ?? ($ztData['vertrouwelijkheidaanduiding'] ?? '')); + if ($val !== '') { + $body['vertrouwelijkheidaanduiding'] = $val; + } + + // When zaaktype has no value, preserve any incoming value (fallback). + return $body; + }//end deriveVertrouwelijkheidaanduiding() + + /** + * Validate a sub-resource type belongs to the zaak's zaaktype (zrc-016..020). + * + * Checks that the given type URL's UUID is present in the zaak's + * zaaktype's corresponding type list. + * + * @param string $zaakUrl The zaak URL + * @param string $typeUrl The sub-resource type URL (statustype, roltype, etc.) + * @param string $fieldName The field name for error reporting + * @param string $typeSchemaKey Settings key for the type's schema + * @param string $zaaktypeField The zaaktype field containing allowed type UUIDs + * + * @return array|null Validation error, or null if valid + * + * @psalm-suppress UnusedParam — $zaaktypeField reserved for future filtering + * + * @SuppressWarnings(PHPMD.UnusedFormalParameter) — $zaaktypeField reserved for future filtering + * @SuppressWarnings(PHPMD.NPathComplexity) — cross-register validation with multiple lookups + */ + private function validateSubResourceType( + string $zaakUrl, + string $typeUrl, + string $fieldName, + string $typeSchemaKey, + string $zaaktypeField + ): ?array { + if ($this->objectService === null) { + return null; + } + + // Look up the zaak to get its zaaktype. + $zaakUuid = $this->extractUuid(url: $zaakUrl); + if ($zaakUuid === null) { + return null; + } + + $zaakData = $this->findBySchemaKey(uuid: $zaakUuid, schemaKey: 'case_schema'); + if ($zaakData === null) { + return null; + } + + $zaaktypeId = $zaakData['caseType'] ?? ''; + if (empty($zaaktypeId) === true) { + return null; + } + + $zaaktypeUuid = $this->extractUuid(url: (string) $zaaktypeId); + if ($zaaktypeUuid === null) { + return null; + } + + // Extract UUID from the provided type URL. + $typeUuid = $this->extractUuid(url: $typeUrl); + if ($typeUuid === null) { + return null; + } + + // Look up the type object and verify its caseType references this zaaktype. + $typeData = $this->findBySchemaKey(uuid: $typeUuid, schemaKey: $typeSchemaKey); + if ($typeData === null) { + $detail = "Het {$fieldName} hoort niet bij het zaaktype van de zaak."; + return $this->error( + status: 400, + detail: $detail, + invalidParams: [$this->fieldError(fieldName: 'nonFieldErrors', code: 'zaaktype-mismatch', reason: $detail)] + ); + } + + $typeCaseType = $typeData['caseType'] ?? ''; + $typeCaseTypeUuid = $this->extractUuid(url: (string) $typeCaseType); + + if ($typeCaseTypeUuid !== $zaaktypeUuid) { + $detail = "Het {$fieldName} hoort niet bij het zaaktype van de zaak."; + return $this->error( + status: 400, + detail: $detail, + invalidParams: [$this->fieldError(fieldName: 'nonFieldErrors', code: 'zaaktype-mismatch', reason: $detail)] + ); + } + + return null; + }//end validateSubResourceType() + + /** + * Validate ZIO informatieobjecttype belongs to zaak's zaaktype (zrc-017). + * + * The informatieobjecttype of the linked informatieobject must appear + * in Zaak.zaaktype.informatieobjecttypen. + * + * @param string $zaakUrl The zaak URL + * @param string $ioUrl The informatieobject URL + * + * @return array|null Validation error, or null if valid + * + * @link https://vng-realisatie.github.io/gemma-zaken/standaard/zaken/ + * + * @SuppressWarnings(PHPMD.CyclomaticComplexity) — ZGW cross-register validation + * @SuppressWarnings(PHPMD.NPathComplexity) — ZGW cross-register validation + */ + private function validateZioInformatieobjecttype(string $zaakUrl, string $ioUrl): ?array + { + // Get the informatieobject to find its informatieobjecttype. + $ioUuid = $this->extractUuid(url: $ioUrl); + if ($ioUuid === null) { + return null; + } + + $ioData = $this->findBySchemaKey(uuid: $ioUuid, schemaKey: 'document_schema'); + if ($ioData === null) { + return null; + } + + $docTypeId = $ioData['documentType'] ?? ''; + if (empty($docTypeId) === true) { + return null; + } + + // Get the zaak's zaaktype. + $zaakUuid = $this->extractUuid(url: $zaakUrl); + if ($zaakUuid === null) { + return null; + } + + $zaakData = $this->findBySchemaKey(uuid: $zaakUuid, schemaKey: 'case_schema'); + if ($zaakData === null) { + return null; + } + + $zaaktypeId = $zaakData['caseType'] ?? ''; + $zaaktypeUuid = $this->extractUuid(url: (string) $zaaktypeId); + if ($zaaktypeUuid === null) { + return null; + } + + // Check if a ZaakType-InformatieObjectType record links this zaaktype + // to the document's informatieobjecttype. + $docTypeUuid = $this->extractUuid(url: (string) $docTypeId); + if ($docTypeUuid === null) { + return null; + } + + $ziotSchemaId = $this->settingsService->getConfigValue(key: 'zaaktype_informatieobjecttype_schema'); + $register = $this->settingsService->getConfigValue(key: 'register'); + if ($ziotSchemaId === '' || $register === '') { + return null; + } + + try { + $query = $this->objectService->buildSearchQuery( + requestParams: ['zaaktype' => $zaaktypeUuid, 'informatieobjecttype' => $docTypeUuid, '_limit' => 1], + register: $register, + schema: $ziotSchemaId + ); + $result = $this->objectService->searchObjectsPaginated(query: $query); + $found = empty($result['results'] ?? []) === false; + } catch (\Throwable $e) { + return null; + } + + if ($found === false) { + $detail = 'Het informatieobjecttype van het informatieobject hoort niet bij het zaaktype van de zaak.'; + return $this->error( + status: 400, + detail: $detail, + invalidParams: [$this->fieldError( + fieldName: 'nonFieldErrors', + code: 'missing-zaaktype-informatieobjecttype-relation', + reason: $detail + ) + ] + ); + } + + return null; + }//end validateZioInformatieobjecttype() + + /** + * Common zaak field validation for create/update/patch. + * + * Implements: + * - zrc-002: Identificatie immutability on update/patch. + * - zrc-010: Validate communicatiekanaal URL. + * - zrc-011: Validate relevanteAndereZaken URLs. + * - zrc-012: Validate gegevensgroepen (opschorting, verlenging). + * - zrc-013: Validate hoofdzaak URL. + * - zrc-014: Validate betalingsindicatie + laatsteBetaaldatum consistency. + * - zrc-015: Validate productenOfDiensten subset of zaaktype. + * - zrc-022: Validate archiefstatus transition requires archiefnominatie + archiefactiedatum. + * + * @param array $result The current validation result + * @param array|null $existingObject The existing object data + * @param bool $isPatch Whether this is a PATCH operation + * + * @return array The updated validation result + * + * @link https://vng-realisatie.github.io/gemma-zaken/standaard/zaken/ + * + * @SuppressWarnings(PHPMD.CyclomaticComplexity) + * @SuppressWarnings(PHPMD.NPathComplexity) + * @SuppressWarnings(PHPMD.ExcessiveMethodLength) + * + * @psalm-suppress UnusedParam — $isPatch reserved for partial-update field validation + * + * @SuppressWarnings(PHPMD.UnusedFormalParameter) — $isPatch reserved for partial-update validation + */ + private function validateZaakFields(array $result, ?array $existingObject, bool $isPatch): array + { + $body = $result['enrichedBody']; + + // Zrc-002: Identificatie immutability on update/patch. + if ($existingObject !== null && isset($body['identificatie']) === true) { + $existingId = $existingObject['identifier'] ?? ($existingObject['identificatie'] ?? ''); + if ($existingId !== '' && $body['identificatie'] !== $existingId) { + return $this->fieldImmutableError(fieldName: 'identificatie'); + } + } + + // Zrc-010: Validate communicatiekanaal URL. + $commKanaal = $body['communicatiekanaal'] ?? null; + if ($commKanaal !== null && $commKanaal !== '') { + if (filter_var($commKanaal, FILTER_VALIDATE_URL) === false) { + return $this->error( + status: 400, + detail: 'De communicatiekanaal URL is ongeldig.', + invalidParams: [ + $this->fieldError( + fieldName: 'communicatiekanaal', + code: 'bad-url', + reason: 'De communicatiekanaal URL is ongeldig.' + ), + ] + ); + } + + if ($this->isValidUrl(url: $commKanaal) === false) { + // Zrc-010: URL is syntactically valid but does not point to a specific + // resource (no UUID path segment) → VNG requires 'invalid-resource'. + return $this->error( + status: 400, + detail: 'De communicatiekanaal URL is ongeldig.', + invalidParams: [ + $this->fieldError( + fieldName: 'communicatiekanaal', + code: 'invalid-resource', + reason: 'De communicatiekanaal URL wijst niet naar een geldig object.' + ), + ] + ); + }//end if + }//end if + + // Zrc-011: Validate relevanteAndereZaken URLs. + $relevanteZaken = $body['relevanteAndereZaken'] ?? null; + if (is_array($relevanteZaken) === true) { + foreach ($relevanteZaken as $idx => $relZaak) { + $relUrl = $relZaak['url'] ?? ''; + if ($relUrl !== '' && $this->isValidUrl(url: $relUrl) === false) { + return $this->error( + status: 400, + detail: 'relevanteAndereZaken bevat een ongeldige URL.', + invalidParams: [$this->fieldError( + fieldName: "relevanteAndereZaken.{$idx}.url", + code: 'bad-url', + reason: 'De URL is ongeldig.' + ) + ] + ); + } + } + } + + // Zrc-012: Validate opschorting. + $opschorting = $body['opschorting'] ?? null; + if (is_array($opschorting) === true) { + $errors = []; + if (($opschorting['indicatie'] ?? null) === null) { + $errors[] = $this->fieldError( + fieldName: 'opschorting.indicatie', + code: 'required', + reason: 'Indicatie is vereist bij opschorting.' + ); + } + + if (($opschorting['reden'] ?? '') === '') { + $errors[] = $this->fieldError( + fieldName: 'opschorting.reden', + code: 'required', + reason: 'Reden is vereist bij opschorting.' + ); + } + + if (empty($errors) === false) { + return $this->error( + status: 400, + detail: 'Opschorting vereist indicatie en reden.', + invalidParams: $errors + ); + } + }//end if + + // Zrc-012: Validate verlenging. + $verlenging = $body['verlenging'] ?? null; + if (is_array($verlenging) === true) { + $errors = []; + if (($verlenging['reden'] ?? '') === '') { + $errors[] = $this->fieldError( + fieldName: 'verlenging.reden', + code: 'required', + reason: 'Reden is vereist bij verlenging.' + ); + } + + if (($verlenging['duur'] ?? '') === '') { + $errors[] = $this->fieldError( + fieldName: 'verlenging.duur', + code: 'required', + reason: 'Duur is vereist bij verlenging.' + ); + } + + if (empty($errors) === false) { + return $this->error( + status: 400, + detail: 'Verlenging vereist reden en duur.', + invalidParams: $errors + ); + } + }//end if + + // Zrc-013: Validate hoofdzaak URL. + $hoofdzaak = $body['hoofdzaak'] ?? null; + if ($hoofdzaak !== null && $hoofdzaak !== '') { + if ($this->isValidUrl(url: $hoofdzaak) === false) { + return $this->error( + status: 400, + detail: 'De hoofdzaak URL is ongeldig.', + invalidParams: [ + $this->fieldError(fieldName: 'hoofdzaak', code: 'bad-url', reason: 'De URL is ongeldig.'), + ] + ); + } + + // Zrc-013d: A zaak cannot be a deelzaak of itself. + if ($existingObject !== null) { + $selfUuid = $existingObject['id'] ?? ($existingObject['@self']['id'] ?? null); + $hoofdzaakUuid = $this->extractUuid(url: $hoofdzaak); + if ($selfUuid !== null && $hoofdzaakUuid !== null && $selfUuid === $hoofdzaakUuid) { + return $this->error( + status: 400, + detail: 'Een zaak kan niet zijn eigen hoofdzaak zijn.', + invalidParams: [$this->fieldError( + fieldName: 'hoofdzaak', + code: 'self-forbidden', + reason: 'Een zaak kan niet zijn eigen hoofdzaak zijn.' + ) + ] + ); + } + } + + // Zrc-013c: Deelzaak of deelzaak is not allowed. + $error = $this->validateHoofdzaakNesting(hoofdzaakUrl: $hoofdzaak); + if ($error !== null) { + return $error; + } + }//end if + + // Zrc-014: Validate betalingsindicatie + laatsteBetaaldatum. + $betalingsindicatie = $body['betalingsindicatie'] ?? null; + $laatsteBetaald = $body['laatsteBetaaldatum'] ?? null; + + // On update/patch, also consider existing values when not explicitly sent. + if ($betalingsindicatie === null && $existingObject !== null) { + $betalingsindicatie = $existingObject['paymentIndication'] ?? ($existingObject['betalingsindicatie'] ?? null); + } + + if ($laatsteBetaald === null && $existingObject !== null) { + $laatsteBetaald = $existingObject['lastPaymentDate'] ?? ($existingObject['laatsteBetaaldatum'] ?? null); + } + + if ($betalingsindicatie === 'nvt' && $laatsteBetaald !== null && $laatsteBetaald !== '') { + // On create: reject (cannot set date with nvt). + if ($existingObject === null) { + return $this->error( + status: 400, + detail: 'Als betalingsindicatie "nvt" is, mag laatsteBetaaldatum niet gezet worden.', + invalidParams: [$this->fieldError( + fieldName: 'laatsteBetaaldatum', + code: 'betaling-nvt', + reason: 'Als betalingsindicatie "nvt" is, mag laatsteBetaaldatum niet gezet worden.' + ) + ] + ); + } + + // On update/patch: clear laatsteBetaaldatum when switching to nvt. + $body['laatsteBetaaldatum'] = null; + } + + // Zrc-015: Validate productenOfDiensten. + $producten = $body['productenOfDiensten'] ?? null; + if (is_array($producten) === true && empty($producten) === false) { + $error = $this->validateProductenOfDiensten(body: $body); + if ($error !== null) { + return $error; + } + } + + // Zrc-022: Validate archiefstatus transition. + $archiefstatus = $body['archiefstatus'] ?? null; + if ($archiefstatus !== null && $archiefstatus !== 'nog_te_archiveren') { + if (empty($body['archiefnominatie'] ?? null) === true) { + return $this->error( + status: 400, + detail: 'archiefnominatie is vereist als archiefstatus niet "nog_te_archiveren" is.', + invalidParams: [$this->fieldError( + fieldName: 'archiefnominatie', + code: 'archiefnominatie-not-set', + reason: 'Vereist.' + ) + ] + ); + } + + if (empty($body['archiefactiedatum'] ?? null) === true) { + return $this->error( + status: 400, + detail: 'archiefactiedatum is vereist als archiefstatus niet "nog_te_archiveren" is.', + invalidParams: [$this->fieldError( + fieldName: 'archiefactiedatum', + code: 'archiefactiedatum-not-set', + reason: 'Vereist.' + ) + ] + ); + } + }//end if + + $result['enrichedBody'] = $body; + + return $result; + }//end validateZaakFields() + + /** + * Validate hoofdzaak is not a deelzaak itself (zrc-013). + * + * A deelzaak of a deelzaak is not allowed. + * + * @param string $hoofdzaakUrl The hoofdzaak URL + * + * @return array|null Validation error if hoofdzaak is itself a deelzaak + * + * @link https://vng-realisatie.github.io/gemma-zaken/standaard/zaken/ + */ + private function validateHoofdzaakNesting(string $hoofdzaakUrl): ?array + { + if ($this->objectService === null) { + return null; + } + + $hoofdzaakUuid = $this->extractUuid(url: $hoofdzaakUrl); + if ($hoofdzaakUuid === null) { + return null; + } + + $hoofdzaakData = $this->findBySchemaKey(uuid: $hoofdzaakUuid, schemaKey: 'case_schema'); + if ($hoofdzaakData === null) { + return $this->error( + status: 400, + detail: 'De hoofdzaak is ongeldig.', + invalidParams: [$this->fieldError( + fieldName: 'hoofdzaak', + code: 'does-not-exist', + reason: 'De hoofdzaak URL verwijst niet naar een bekende zaak.' + ) + ] + ); + } + + // If the hoofdzaak itself has a hoofdzaak, it's a deelzaak of a deelzaak. + $parentHoofdzaak = $hoofdzaakData['parentCase'] ?? ($hoofdzaakData['mainCase'] ?? ($hoofdzaakData['hoofdzaak'] ?? null)); + if ($parentHoofdzaak !== null && $parentHoofdzaak !== '') { + return $this->error( + status: 400, + detail: 'Een deelzaak van een deelzaak is niet toegestaan.', + invalidParams: [$this->fieldError( + fieldName: 'hoofdzaak', + code: 'deelzaak-als-hoofdzaak', + reason: 'De opgegeven hoofdzaak is zelf een deelzaak.' + ) + ] + ); + } + + return null; + }//end validateHoofdzaakNesting() + + /** + * Validate productenOfDiensten subset of zaaktype (zrc-015). + * + * ProductenOfDiensten of the zaak must be a subset of + * Zaaktype.productenOfDiensten. + * + * @param array $body The request body + * + * @return array|null Validation error, or null if valid + * + * @link https://vng-realisatie.github.io/gemma-zaken/standaard/zaken/ + * + * @SuppressWarnings(PHPMD.CyclomaticComplexity) — ZGW business rules validation + * @SuppressWarnings(PHPMD.NPathComplexity) — ZGW business rules validation + */ + private function validateProductenOfDiensten(array $body): ?array + { + if ($this->objectService === null) { + return null; + } + + $zaaktypeUrl = $body['zaaktype'] ?? ''; + if (empty($zaaktypeUrl) === true) { + return null; + } + + $zaaktypeUuid = $this->extractUuid(url: $zaaktypeUrl); + if ($zaaktypeUuid === null) { + return null; + } + + $ztData = $this->findBySchemaKey(uuid: $zaaktypeUuid, schemaKey: 'case_type_schema'); + if ($ztData === null) { + return null; + } + + $allowedProducts = $ztData['productsOrServices'] ?? ($ztData['productsAndServices'] ?? ($ztData['productenOfDiensten'] ?? [])); + if (is_string($allowedProducts) === true) { + $allowedProducts = json_decode($allowedProducts, true) ?? []; + } + + if (is_array($allowedProducts) === false) { + return null; + } + + // If zaaktype has no products configured, any product is allowed. + if (empty($allowedProducts) === true) { + return null; + } + + $requestProducts = $body['productenOfDiensten'] ?? []; + + // Validate each product URL format first (basic URL check, no UUID required). + foreach ($requestProducts as $product) { + if (filter_var($product, FILTER_VALIDATE_URL) === false) { + return $this->error( + status: 400, + detail: 'productenOfDiensten bevat een ongeldige URL.', + invalidParams: [$this->fieldError( + fieldName: 'productenOfDiensten', + code: 'invalid-products-services', + reason: "'{$product}' is geen geldige URL." + ) + ] + ); + } + } + + foreach ($requestProducts as $product) { + if (in_array($product, $allowedProducts, true) === false) { + return $this->error( + status: 400, + detail: 'productenOfDiensten bevat een waarde die niet in het zaaktype voorkomt.', + invalidParams: [$this->fieldError( + fieldName: 'productenOfDiensten', + code: 'invalid-products-services', + reason: "Product '{$product}' is niet toegestaan voor dit zaaktype." + ) + ] + ); + } + } + + return null; + }//end validateProductenOfDiensten() + + /** + * Detect whether a statustype is the eindstatus by volgnummer fallback (zrc-007a). + * + * When `isEindstatus` is not explicitly set on the statustype, the statustype + * with the highest `volgnummer` for the zaaktype is treated as the eindstatus. + * + * @param string $statustypeUuid The statustype UUID to check + * @param string $zaaktypeUuid The zaaktype UUID to fetch all statustypes for + * + * @return bool True if this statustype is the eindstatus + * + * @link https://vng-realisatie.github.io/gemma-zaken/standaard/zaken/ + * + * @SuppressWarnings(PHPMD.CyclomaticComplexity) + */ + public function detectEindstatus(string $statustypeUuid, string $zaaktypeUuid): bool + { + if ($this->objectService === null) { + return false; + } + + $statusTypeData = $this->findBySchemaKey(uuid: $statustypeUuid, schemaKey: 'status_type_schema'); + if ($statusTypeData === null) { + return false; + } + + // If isEindstatus is explicitly set, use it directly. + $isEindstatus = $statusTypeData['isEindstatus'] ?? null; + if ($isEindstatus !== null) { + return $isEindstatus === true || $isEindstatus === 1 || $isEindstatus === 'true'; + } + + // Fallback: find the statustype with the highest volgnummer for this zaaktype. + $register = $this->mappingConfig['sourceRegister'] ?? ''; + $statusTypeSchema = $this->settingsService->getConfigValue(key: 'status_type_schema'); + if (empty($register) === true || empty($statusTypeSchema) === true) { + return false; + } + + try { + $query = $this->objectService->buildSearchQuery( + requestParams: ['caseType' => $zaaktypeUuid, '_limit' => 1000], + register: $register, + schema: $statusTypeSchema + ); + $result = $this->objectService->searchObjectsPaginated(query: $query); + + $maxVolgnummer = -1; + $maxStatustypeUuid = null; + foreach (($result['results'] ?? []) as $obj) { + if (is_array($obj) === true) { + $data = $obj; + } else { + $data = $obj->jsonSerialize(); + } + + $volgnummer = (int) ($data['sequenceNumber'] ?? ($data['volgnummer'] ?? 0)); + $objId = $data['id'] ?? ($data['@self']['id'] ?? null); + if ($volgnummer > $maxVolgnummer) { + $maxVolgnummer = $volgnummer; + $maxStatustypeUuid = $objId; + } + } + + return $maxStatustypeUuid === $statustypeUuid; + } catch (\Throwable $e) { + $this->logger->warning('detectEindstatus failed: '.$e->getMessage()); + return false; + }//end try + }//end detectEindstatus() + + /** + * Filter a list of zaken by consumer's authorization scope (zrc-006). + * + * Reads consumer authorizations from context and removes zaken whose + * zaaktype is not authorized or whose vertrouwelijkheidaanduiding exceeds + * the consumer's maxVertrouwelijkheidaanduiding for the zaaktype. + * Falls back to unfiltered when no authorizations context is present. + * + * @param array $zaken Array of zaak objects (already serialized to arrays) + * @param array $authorizations The consumer's authorizations array from ZgwAuthMiddleware + * + * @return array The filtered zaken array + * + * @link https://vng-realisatie.github.io/gemma-zaken/standaard/zaken/ + * + * @SuppressWarnings(PHPMD.CyclomaticComplexity) + */ + public function filterZakenForConsumer(array $zaken, array $authorizations): array + { + // No authorizations context → return all zaken unfiltered. + if (empty($authorizations) === true) { + return $zaken; + } + + // Build lookup: zaaktype UUID → max vertrouwelijkheidaanduiding level. + $allowedZaaktypen = []; + foreach ($authorizations as $auth) { + $zaaktypeUrl = $auth['zaaktype'] ?? ($auth['zaaktypeUrl'] ?? ''); + if (empty($zaaktypeUrl) === true) { + continue; + } + + $zaaktypeUuid = $this->extractUuid(url: (string) $zaaktypeUrl); + if ($zaaktypeUuid === null) { + continue; + } + + $maxVa = $auth['maxVertrouwelijkheidaanduiding'] ?? ($auth['max_vertrouwelijkheidaanduiding'] ?? 'zeer_geheim'); + $maxLevel = self::VERTROUWELIJKHEID_LEVELS[$maxVa] ?? 8; + + // Keep the most permissive level if zaaktype appears in multiple auths. + if (isset($allowedZaaktypen[$zaaktypeUuid]) === false + || $allowedZaaktypen[$zaaktypeUuid] < $maxLevel + ) { + $allowedZaaktypen[$zaaktypeUuid] = $maxLevel; + } + }//end foreach + + return array_values( + array_filter( + $zaken, + function (array $zaak) use ($allowedZaaktypen): bool { + $zaaktypeId = $zaak['zaaktype'] ?? ($zaak['caseType'] ?? ''); + $zaaktypeUuid = $this->extractUuid(url: (string) $zaaktypeId); + + if ($zaaktypeUuid === null || isset($allowedZaaktypen[$zaaktypeUuid]) === false) { + return false; + } + + $zaakVa = $zaak['vertrouwelijkheidaanduiding'] ?? ($zaak['confidentiality'] ?? 'openbaar'); + $zaakLevel = self::VERTROUWELIJKHEID_LEVELS[(string) $zaakVa] ?? 1; + + return $zaakLevel <= $allowedZaaktypen[$zaaktypeUuid]; + } + ) + ); + }//end filterZakenForConsumer() + + /** + * Check ZaakInformatieObject field immutability (zrc-004). + * + * Zaak and informatieobject fields are immutable after creation. + * + * @param array $result The current validation result + * @param array|null $existingObject The existing object data + * + * @return array The updated validation result + * + * @link https://vng-realisatie.github.io/gemma-zaken/standaard/zaken/ + * + * @SuppressWarnings(PHPMD.CyclomaticComplexity) — immutability check on multiple fields + */ + private function checkZioImmutability(array $result, ?array $existingObject): array + { + if ($existingObject === null) { + return $result; + } + + $body = $result['enrichedBody']; + + // Zrc-004: zaak is immutable. + if (isset($body['zaak']) === true) { + $existingZaak = $existingObject['case'] ?? ($existingObject['zaak'] ?? ''); + $newZaakUuid = $this->extractUuid(url: $body['zaak']); + if (is_string($existingZaak) === true) { + $existZaakId = $this->extractUuid(url: $existingZaak); + } else { + $existZaakId = $existingZaak; + } + + if ($existZaakId !== null && $newZaakUuid !== null && $newZaakUuid !== $existZaakId) { + return $this->fieldImmutableError(fieldName: 'zaak'); + } + } + + // Zrc-004: informatieobject is immutable. + if (isset($body['informatieobject']) === true) { + $existingIo = $existingObject['document'] ?? ($existingObject['informatieobject'] ?? ''); + $newIoUuid = $this->extractUuid(url: $body['informatieobject']); + if (is_string($existingIo) === true) { + $existIoId = $this->extractUuid(url: $existingIo); + } else { + $existIoId = $existingIo; + } + + if ($existIoId !== null && $newIoUuid !== null && $newIoUuid !== $existIoId) { + return $this->fieldImmutableError(fieldName: 'informatieobject'); + } + } + + return $result; + }//end checkZioImmutability() +}//end class diff --git a/lib/Service/ZgwZtcRulesService.php b/lib/Service/ZgwZtcRulesService.php new file mode 100644 index 0000000..14b3f6b --- /dev/null +++ b/lib/Service/ZgwZtcRulesService.php @@ -0,0 +1,964 @@ + + * @copyright 2024 Conduction B.V. + * @license EUPL-1.2 https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12 + * + * @version GIT: + * + * @link https://procest.nl + * @link https://vng-realisatie.github.io/gemma-zaken/standaard/catalogi/ + * + * Business rules implemented: + * + * - ztc-001: Valideren selectielijstProcestype op zaaktype + * - ztc-002: Valideren selectielijstklasse + resultaattypeomschrijving (enrichment) + * - ztc-003: Valideren afleidingswijze vs selectielijstklasse.procestermijn + * - ztc-004: Valideren datumkenmerk vereist/verboden op basis van afleidingswijze + * - ztc-005: Valideren einddatumBekend verboden voor afgehandeld/termijn + * - ztc-006: Valideren objecttype vereist/verboden op basis van afleidingswijze + * - ztc-007: Valideren registratie vereist voor ander_datumkenmerk + * - ztc-008: Valideren procestermijn vereist voor termijn afleidingswijze + * - ztc-009: Concept/gepubliceerd bescherming: types met concept=false mogen niet + * gewijzigd of verwijderd worden (behalve eindeGeldigheid via PATCH) + * - ztc-010: Sub-resources van gepubliceerde zaaktypen mogen niet gewijzigd worden + * (behalve CREATE voor eigenschappen/roltypen/statustypen/ZIOTs) + * - ztc-011: History model — beginGeldigheid + eindeGeldigheid + concept consistency + * - ztc-012: Publish validation — all relations must be published before publish + * - ztc-013: Cross-catalogus — zaaktype must belong to the specified catalogus + * + * @SuppressWarnings(PHPMD.CouplingBetweenObjects) + * @SuppressWarnings(PHPMD.ExcessiveClassComplexity) + * @SuppressWarnings(PHPMD.TooManyMethods) + * @SuppressWarnings(PHPMD.CyclomaticComplexity) + * @SuppressWarnings(PHPMD.NPathComplexity) + */ + +declare(strict_types=1); + +namespace OCA\Procest\Service; + +/** + * ZTC (Catalogi API) business rule validation and enrichment. + * + * @psalm-suppress UnusedClass + * + * @SuppressWarnings(PHPMD.ExcessiveClassComplexity) + */ +class ZgwZtcRulesService extends ZgwRulesBase +{ + /** + * Afleidingswijze values that REQUIRE datumkenmerk (ztc-004). + * + * @var array + */ + private const AFLEIDINGSWIJZE_REQUIRES_DATUMKENMERK = [ + 'eigenschap', + 'zaakobject', + 'ander_datumkenmerk', + ]; + + /** + * Afleidingswijze values that REQUIRE objecttype (ztc-006). + * + * @var array + */ + private const AFLEIDINGSWIJZE_REQUIRES_OBJECTTYPE = [ + 'zaakobject', + 'ander_datumkenmerk', + ]; + + /** + * Afleidingswijze values that FORBID einddatumBekend=true (ztc-005). + * + * @var array + */ + private const AFLEIDINGSWIJZE_FORBIDS_EINDDATUM_BEKEND = [ + 'afgehandeld', + 'termijn', + ]; + + /** + * ZTC resources that are subject to concept/published protection. + * + * @var array + */ + public const CONCEPT_RESOURCES = [ + 'zaaktypen', + 'besluittypen', + 'informatieobjecttypen', + ]; + + /** + * ZTC sub-resources tied to a parent zaaktype (ztc-010). + * + * @var array + */ + public const ZAAKTYPE_SUB_RESOURCES = [ + 'statustypen', + 'resultaattypen', + 'roltypen', + 'eigenschappen', + 'zaaktype-informatieobjecttypen', + ]; + + /** + * Check concept/published protection for ZTC resources (ztc-009, ztc-010). + * + * Published types (concept=false) cannot be modified or deleted. + * Sub-resources of published zaaktypen cannot be modified or deleted + * (except CREATE for most sub-resources per VNG test exceptions). + * + * Implements: + * - ztc-009: Protect published (concept=false) types from modification/deletion. + * Exception: PATCH with only eindeGeldigheid is allowed on published types. + * + * - ztc-010: Protect sub-resources of published zaaktypen. + * Per VNG tests ztc-010i/k/l/m, CREATE is allowed for eigenschappen, roltypen, + * statustypen, and ZIOTs on published zaaktypen. Only resultaattypen creation + * is blocked (ztc-010j). Update/patch/destroy remain blocked for ALL. + * + * @param string $resource The ZGW resource name + * @param string $action The action (create/update/patch/destroy) + * @param array $body The request body + * @param array|null $existingObject The existing object data + * @param bool|null $parentZaaktypeDraft Whether the parent zaaktype isDraft + * + * @return array|null Validation error result, or null if check passes + * + * @link https://vng-realisatie.github.io/gemma-zaken/standaard/catalogi/ + * @link https://vng-realisatie.github.io/gemma-zaken/standaard/catalogi/ + */ + public function checkConceptProtection( + string $resource, + string $action, + array $body, + ?array $existingObject, + ?bool $parentZaaktypeDraft + ): ?array { + // Ztc-009: Direct concept resources (zaaktypen, besluittypen, informatieobjecttypen). + if (in_array($resource, self::CONCEPT_RESOURCES, true) === true) { + return $this->checkDirectConceptProtection( + resource: $resource, + action: $action, + body: $body, + existingObject: $existingObject + ); + } + + // Ztc-010: Sub-resources of zaaktypen. + if (in_array($resource, self::ZAAKTYPE_SUB_RESOURCES, true) === true + && $parentZaaktypeDraft === false + ) { + // Allow creation of all sub-resources except resultaattypen. + if ($action === 'create' && $resource !== 'resultaattypen') { + return null; + } + + // Block resultaattypen creation + update/patch/destroy for all sub-resources. + if (in_array($action, ['create', 'update', 'patch', 'destroy'], true) === true) { + $detail = 'Het is niet toegestaan om typen van een gepubliceerd zaaktype aan te passen.'; + return $this->error( + status: 400, + detail: $detail, + invalidParams: [ + $this->fieldError(fieldName: 'nonFieldErrors', code: 'non-concept-zaaktype', reason: $detail), + ] + ); + } + } + + return null; + }//end checkConceptProtection() + + /** + * Default concept=true for new ZTC concept resources. + * + * When creating a new zaaktype, besluittype, or informatieobjecttype, + * concept defaults to true if not explicitly set. + * + * @param array $body The request body + * @param string $resource The resource name + * + * @return array The body with concept defaulted + */ + public function defaultConcept(array $body, string $resource): array + { + if (in_array($resource, self::CONCEPT_RESOURCES, true) === true + && array_key_exists('concept', $body) === false + ) { + $body['concept'] = true; + } + + return $body; + }//end defaultConcept() + + /** + * Preserve existing concept value on update/patch. + * + * Concept can only be changed via the /publish endpoint, not via PUT/PATCH. + * + * @param array $body The request body + * @param string $resource The resource name + * @param array|null $existingObject The existing object data + * + * @return array The body with concept preserved + */ + public function preserveConcept(array $body, string $resource, ?array $existingObject): array + { + if ($existingObject === null + || in_array($resource, self::CONCEPT_RESOURCES, true) === false + ) { + return $body; + } + + $existingDraft = $existingObject['isDraft'] ?? ($existingObject['concept'] ?? true); + if ($existingDraft === 'true' || $existingDraft === '1' || $existingDraft === 1) { + $existingDraft = true; + } else if ($existingDraft === 'false' || $existingDraft === '0' || $existingDraft === 0) { + $existingDraft = false; + } + + $body['concept'] = $existingDraft; + + return $body; + }//end preserveConcept() + + /** + * Rules for creating a zaaktype (POST /catalogi/v1/zaaktypen). + * + * Implements: + * - ztc-001: Validate selectielijstProcestype URL points to a valid procestype resource. + * + * Also resolves reference arrays (informatieobjecttypen, besluittypen, + * deelzaaktypen, gerelateerdeZaaktypen) from omschrijving/identificatie to UUIDs. + * + * @param array $body The ZGW request body (Dutch field names) + * + * @return array The validation result + * + * @link https://vng-realisatie.github.io/gemma-zaken/standaard/catalogi/ + * + * @SuppressWarnings(PHPMD.CyclomaticComplexity) — ZGW business rules validation + * @SuppressWarnings(PHPMD.NPathComplexity) — ZGW business rules validation + */ + public function rulesZaaktypenCreate(array $body): array + { + // Ztc-001: Validate selectielijstProcestype URL. + $procesTypeUrl = $body['selectielijstProcestype'] ?? ''; + if (empty($procesTypeUrl) === false) { + $procesTypeData = $this->fetchExternalUrl(url: $procesTypeUrl); + if ($procesTypeData === null || isset($procesTypeData['nummer']) === false) { + return $this->error( + status: 400, + detail: 'De selectielijstProcestype URL is ongeldig of wijst niet naar een procestype resource.', + invalidParams: [$this->fieldError( + fieldName: 'selectielijstProcestype', + code: 'invalid-resource', + reason: 'De selectielijstProcestype URL is ongeldig of wijst niet naar een procestype resource.' + ) + ] + ); + } + } + + // Resolve reference arrays by omschrijving/identificatie to UUIDs. + $body = $this->resolveTypeReferences( + body: $body, + field: 'informatieobjecttypen', + schemaKey: 'document_type_schema', + lookupField: 'name' + ); + $body = $this->resolveTypeReferences( + body: $body, + field: 'besluittypen', + schemaKey: 'decision_type_schema', + lookupField: 'name' + ); + $body = $this->resolveTypeReferences( + body: $body, + field: 'deelzaaktypen', + schemaKey: 'case_type_schema', + lookupField: 'identifier' + ); + $body = $this->resolveGerelateerdeZaaktypen(body: $body); + + // Store resolved array fields via _directFields (bypasses Twig mapping). + $directFields = []; + if (isset($body['deelzaaktypen']) === true && is_array($body['deelzaaktypen']) === true) { + $directFields['subCaseTypes'] = $body['deelzaaktypen']; + } + + if (isset($body['besluittypen']) === true && is_array($body['besluittypen']) === true) { + $directFields['decisionTypes'] = $body['besluittypen']; + } + + if (isset($body['gerelateerdeZaaktypen']) === true + && is_array($body['gerelateerdeZaaktypen']) === true + ) { + // JSON-encode since relatedCaseTypes is a string field in the schema. + $directFields['relatedCaseTypes'] = json_encode($body['gerelateerdeZaaktypen']); + } + + if (empty($directFields) === false) { + $body['_directFields'] = $directFields; + } + + return $this->isValid(body: $body); + }//end rulesZaaktypenCreate() + + /** + * Rules for creating a besluittype (POST /catalogi/v1/besluittypen). + * + * Resolves reference arrays (informatieobjecttypen, zaaktypen) from + * omschrijving/identificatie to UUIDs. + * + * @param array $body The ZGW request body + * + * @return array The validation result + */ + public function rulesBesluittypenCreate(array $body): array + { + // Resolve reference arrays by omschrijving/identificatie to UUIDs. + $body = $this->resolveTypeReferences( + body: $body, + field: 'informatieobjecttypen', + schemaKey: 'document_type_schema', + lookupField: 'name' + ); + $body = $this->resolveTypeReferences( + body: $body, + field: 'zaaktypen', + schemaKey: 'case_type_schema', + lookupField: 'identifier' + ); + + // Store resolved arrays as _directFields (bypass Twig mapping for array fields). + $directFields = []; + if (isset($body['informatieobjecttypen']) === true && is_array($body['informatieobjecttypen']) === true) { + $directFields['documentTypes'] = $body['informatieobjecttypen']; + } + + if (isset($body['zaaktypen']) === true && is_array($body['zaaktypen']) === true) { + $directFields['caseTypes'] = $body['zaaktypen']; + } + + if (empty($directFields) === false) { + $body['_directFields'] = $directFields; + } + + return $this->isValid(body: $body); + }//end rulesBesluittypenCreate() + + /** + * Rules for creating a zaaktype-informatieobjecttype (ZIOT). + * + * Resolves the informatieobjecttype field from omschrijving to UUID when + * the value is not a URL or UUID. + * + * @param array $body The ZGW request body + * + * @return array The validation result + * + * @SuppressWarnings(PHPMD.CyclomaticComplexity) — ZGW resolution of omschrijving/UUID/URL + */ + public function rulesZaaktypeinformatieobjecttypenCreate(array $body): array + { + // Resolve informatieobjecttype: omschrijving → UUID, or bare UUID → verify. + $iotRef = $body['informatieobjecttype'] ?? ''; + if ($iotRef !== '' && $this->objectService !== null) { + $register = $this->mappingConfig['sourceRegister'] ?? ''; + $schema = $this->settingsService->getConfigValue(key: 'document_type_schema'); + + if (empty($register) === false && empty($schema) === false) { + $uuid = $this->extractUuid(url: $iotRef); + + // If the value is a URL containing a UUID, keep as-is (reverse mapping extracts it). + $isUrl = (str_starts_with($iotRef, 'http://') === true + || str_starts_with($iotRef, 'https://') === true); + + $needsNameLookup = false; + if ($isUrl === true) { + // URL — let reverse mapping handle UUID extraction. + } else if ($uuid !== null) { + // Bare UUID — verify it exists; if not, treat as omschrijving. + $existing = $this->findBySchemaKey(uuid: $uuid, schemaKey: 'document_type_schema'); + $needsNameLookup = ($existing === null); + } + + if ($isUrl === false && ($uuid === null || $needsNameLookup === true)) { + // Not a URL, or bare UUID that didn't resolve — resolve by name. + $found = $this->findObjectByField( + register: $register, + schema: $schema, + field: 'name', + value: $iotRef + ); + if ($found !== null) { + $body['informatieobjecttype'] = $found; + } + }//end if + }//end if + }//end if + + return $this->isValid(body: $body); + }//end rulesZaaktypeinformatieobjecttypenCreate() + + /** + * Rules for creating a resultaattype (POST /catalogi/v1/resultaattypen). + * + * Implements: + * - ztc-002: Validate and fetch selectielijstklasse + resultaattypeomschrijving. + * Enrich with omschrijvingGeneriek, archiefnominatie, archiefactietermijn. + * + * - ztc-003: Validate afleidingswijze vs selectielijstklasse.procestermijn. + * procestermijn=nihil only afgehandeld; procestermijn=bestaansduur_procesobject only termijn. + * - ztc-004: datumkenmerk required for eigenschap/zaakobject/ander_datumkenmerk, forbidden otherwise. + * - ztc-005: einddatumBekend must be false for afgehandeld/termijn. + * - ztc-006: objecttype required for zaakobject/ander_datumkenmerk, forbidden otherwise. + * - ztc-007: registratie required only for ander_datumkenmerk. + * - ztc-008: procestermijn required only for termijn afleidingswijze. + * + * @param array $body The ZGW request body + * + * @return array The validation result + * + * @SuppressWarnings(PHPMD.CyclomaticComplexity) + * @SuppressWarnings(PHPMD.NPathComplexity) + */ + public function rulesResultaattypenCreate(array $body): array + { + $errors = []; + + // Ztc-002: Validate and fetch external URLs for enrichment. + $selectieUrl = $body['selectielijstklasse'] ?? ''; + $selectielijstData = null; + if (empty($selectieUrl) === false) { + $selectielijstData = $this->fetchExternalUrl(url: $selectieUrl); + if ($selectielijstData === null) { + $errors[] = $this->fieldError( + fieldName: 'selectielijstklasse', + code: 'invalid', + reason: 'De selectielijstklasse URL is ongeldig of niet bereikbaar.' + ); + } + } + + $rtoUrl = $body['resultaattypeomschrijving'] ?? ''; + if (is_array($rtoUrl) === true) { + $rtoUrl = $rtoUrl[0] ?? ''; + } + + $rtoData = null; + if (empty($rtoUrl) === false) { + $rtoData = $this->fetchExternalUrl(url: $rtoUrl); + if ($rtoData === null) { + $errors[] = $this->fieldError( + fieldName: 'resultaattypeomschrijving', + code: 'invalid', + reason: 'De resultaattypeomschrijving URL is ongeldig of niet bereikbaar.' + ); + } + } + + if (empty($errors) === false) { + return $this->error(status: 400, detail: $errors[0]['reason'], invalidParams: $errors); + } + + // Ztc-002b/f/g: Enrich body with derived fields from external data. + $body = $this->enrichResultaattype(body: $body, selectielijstData: $selectielijstData, rtoData: $rtoData); + + // Ztc-002e: Validate selectielijstklasse procesType matches zaaktype selectielijstProcestype. + if ($selectielijstData !== null) { + $procestypeError = $this->validateProcestypeMatch(body: $body, selectielijstData: $selectielijstData); + if ($procestypeError !== null) { + return $procestypeError; + } + } + + // Validate brondatumArchiefprocedure cross-field constraints (ztc-003 to ztc-008). + $archief = $body['brondatumArchiefprocedure'] ?? null; + if ($archief !== null) { + $errors = $this->validateBrondatumArchief(archief: $archief, selectielijstData: $selectielijstData); + } + + if (empty($errors) === false) { + return $this->error(status: 400, detail: $errors[0]['reason'], invalidParams: $errors); + } + + return $this->isValid(body: $body); + }//end rulesResultaattypenCreate() + + /** + * Check if a direct concept resource is published (ztc-009). + * + * Published types (concept=false) cannot be modified or deleted, + * except PATCH with only eindeGeldigheid. + * + * @param string $resource The resource name + * @param string $action The action + * @param array $body The request body + * @param array|null $existingObject The existing object data + * + * @return array|null Validation error, or null if OK + */ + private function checkDirectConceptProtection( + string $resource, + string $action, + array $body, + ?array $existingObject + ): ?array { + if ($existingObject === null) { + return null; + } + + $isDraft = $existingObject['isDraft'] ?? ($existingObject['concept'] ?? true); + if ($isDraft === 'false' || $isDraft === false || $isDraft === '0' || $isDraft === 0) { + // Ztc-009c/g/k: PATCH with only geldigheid fields is allowed on published types. + if ($action === 'patch') { + $metadataKeys = ['_route', 'zgwApi', 'resource', 'uuid', 'concept']; + $allowedKeys = ['eindeGeldigheid', 'beginGeldigheid', 'beginObject']; + $contentKeys = array_values(array_diff(array_keys($body), $metadataKeys, $allowedKeys)); + if (count($contentKeys) === 0 && array_key_exists('eindeGeldigheid', $body) === true) { + return null; + } + } + + $resourceLabel = rtrim($resource, 'n'); + $detail = "Het is niet toegestaan om een {$resourceLabel} met concept=false ".$this->actionLabel(action: $action).'.'; + return $this->error( + status: 400, + detail: $detail, + invalidParams: [ + $this->fieldError(fieldName: 'nonFieldErrors', code: 'non-concept-object', reason: $detail), + ] + ); + }//end if + + return null; + }//end checkDirectConceptProtection() + + /** + * Get a Dutch action label for error messages. + * + * @param string $action The action + * + * @return string The Dutch label + */ + private function actionLabel(string $action): string + { + return match ($action) { + 'update' => 'bij te werken', + 'patch' => 'deels bij te werken', + 'destroy' => 'te verwijderen', + default => 'aan te passen', + }; + }//end actionLabel() + + /** + * Validate brondatumArchiefprocedure cross-field constraints (ztc-003 to ztc-008). + * + * @param array $archief The brondatumArchiefprocedure data + * @param array|null $selectielijstData The fetched selectielijstklasse data + * + * @return array Validation errors + * + * @SuppressWarnings(PHPMD.CyclomaticComplexity) + */ + private function validateBrondatumArchief(array $archief, ?array $selectielijstData): array + { + $afleidingswijze = $archief['afleidingswijze'] ?? ''; + $errors = []; + + // Ztc-004: datumkenmerk required/forbidden. + $errors = array_merge( + $errors, + $this->validateFieldPresence( + afleidingswijze: $afleidingswijze, + fieldName: 'brondatumArchiefprocedure.datumkenmerk', + fieldValue: ($archief['datumkenmerk'] ?? ''), + requiredFor: self::AFLEIDINGSWIJZE_REQUIRES_DATUMKENMERK + ) + ); + + // Ztc-005: einddatumBekend must be false for afgehandeld/termijn. + $einddatumBekend = $archief['einddatumBekend'] ?? false; + if (($einddatumBekend === true || $einddatumBekend === 'true') + && in_array($afleidingswijze, self::AFLEIDINGSWIJZE_FORBIDS_EINDDATUM_BEKEND, true) === true + ) { + $errors[] = $this->fieldError( + fieldName: 'brondatumArchiefprocedure.einddatumBekend', + code: 'must-be-empty', + reason: "einddatumBekend moet false zijn voor afleidingswijze \"{$afleidingswijze}\"." + ); + } + + // Ztc-006: objecttype required/forbidden. + $errors = array_merge( + $errors, + $this->validateFieldPresence( + afleidingswijze: $afleidingswijze, + fieldName: 'brondatumArchiefprocedure.objecttype', + fieldValue: ($archief['objecttype'] ?? ''), + requiredFor: self::AFLEIDINGSWIJZE_REQUIRES_OBJECTTYPE + ) + ); + + // Ztc-007: registratie required only for ander_datumkenmerk. + $errors = array_merge( + $errors, + $this->validateFieldPresence( + afleidingswijze: $afleidingswijze, + fieldName: 'brondatumArchiefprocedure.registratie', + fieldValue: ($archief['registratie'] ?? ''), + requiredFor: ['ander_datumkenmerk'] + ) + ); + + // Ztc-008: procestermijn required only for termijn. + $procestermijn = $archief['procestermijn'] ?? null; + if (is_string($procestermijn) === true) { + $ptValue = $procestermijn; + } else { + $ptValue = ''; + } + + $errors = array_merge( + $errors, + $this->validateFieldPresence( + afleidingswijze: $afleidingswijze, + fieldName: 'brondatumArchiefprocedure.procestermijn', + fieldValue: $ptValue, + requiredFor: ['termijn'] + ) + ); + + // Ztc-003: Validate afleidingswijze against selectielijstklasse.procestermijn. + if ($selectielijstData !== null) { + $slProcestermijn = $selectielijstData['procestermijn'] ?? null; + $ptCheck = $this->checkProcestermijnCompatibility( + afleidingswijze: $afleidingswijze, + procestermijn: $slProcestermijn + ); + if ($ptCheck !== null) { + $errors[] = $ptCheck; + } + } + + return $errors; + }//end validateBrondatumArchief() + + /** + * Enrich a resultaattype body with derived fields from external APIs (ztc-002b/f/g). + * + * - ztc-002b: Derive omschrijvingGeneriek from resultaattypeomschrijving.omschrijving + * - ztc-002f: Derive archiefnominatie from selectielijstklasse.waardering + * - ztc-002g: Derive archiefactietermijn from selectielijstklasse.bewaartermijn + * + * @param array $body The request body + * @param array|null $selectielijstData The fetched selectielijstklasse data + * @param array|null $rtoData The fetched resultaattypeomschrijving data + * + * @return array The enriched body + */ + private function enrichResultaattype(array $body, ?array $selectielijstData, ?array $rtoData): array + { + if ($rtoData !== null && empty($body['omschrijvingGeneriek']) === true) { + $body['omschrijvingGeneriek'] = $rtoData['omschrijving'] ?? ''; + } + + if ($selectielijstData !== null && empty($body['archiefnominatie']) === true) { + $waardering = $selectielijstData['waardering'] ?? null; + if ($waardering !== null) { + $body['archiefnominatie'] = $waardering; + } + } + + if ($selectielijstData !== null && empty($body['archiefactietermijn']) === true) { + $bewaartermijn = $selectielijstData['bewaartermijn'] ?? null; + if ($bewaartermijn !== null) { + $body['archiefactietermijn'] = $bewaartermijn; + } + } + + return $body; + }//end enrichResultaattype() + + /** + * Validate selectielijstklasse procesType matches zaaktype selectielijstProcestype (ztc-002e). + * + * @param array $body The request body (with zaaktype URL) + * @param array $selectielijstData The fetched selectielijstklasse data + * + * @return array|null Validation error result, or null if valid + */ + private function validateProcestypeMatch(array $body, array $selectielijstData): ?array + { + $zaaktypeUrl = $body['zaaktype'] ?? ''; + if (empty($zaaktypeUrl) === true || $this->objectService === null) { + return null; + } + + $zaaktypeUuid = $this->extractUuid(url: $zaaktypeUrl); + if ($zaaktypeUuid === null) { + return null; + } + + $ztData = $this->findBySchemaKey(uuid: $zaaktypeUuid, schemaKey: 'case_type_schema'); + if ($ztData === null) { + return null; + } + + $zaaktypeProcestype = $ztData['selectionListProcessType'] ?? ''; + $selectieProcestype = $selectielijstData['procesType'] ?? ''; + + if (empty($zaaktypeProcestype) === true || empty($selectieProcestype) === true) { + return null; + } + + if ($zaaktypeProcestype !== $selectieProcestype) { + $detail = 'Het procestype van de selectielijstklasse komt niet overeen met het procestype van het zaaktype.'; + return $this->error( + status: 400, + detail: $detail, + invalidParams: [ + $this->fieldError(fieldName: 'nonFieldErrors', code: 'procestype-mismatch', reason: $detail), + ] + ); + } + + return null; + }//end validateProcestypeMatch() + + /** + * Validate field presence based on afleidingswijze (required vs forbidden). + * + * @param string $afleidingswijze The afleidingswijze value + * @param string $fieldName The full field path for error reporting + * @param string $fieldValue The field value + * @param array $requiredFor Afleidingswijze values that require this field + * + * @return array Validation errors + */ + private function validateFieldPresence( + string $afleidingswijze, + string $fieldName, + string $fieldValue, + array $requiredFor + ): array { + $hasValue = ($fieldValue !== '' && $fieldValue !== null); + + $isRequired = in_array($afleidingswijze, $requiredFor, true); + + if ($isRequired === true && $hasValue === false) { + return [ + $this->fieldError( + fieldName: $fieldName, + code: 'required', + reason: "{$fieldName} is vereist voor afleidingswijze \"{$afleidingswijze}\"." + ), + ]; + } + + if ($isRequired === false && $hasValue === true) { + return [ + $this->fieldError( + fieldName: $fieldName, + code: 'must-be-empty', + reason: "{$fieldName} mag niet ingevuld zijn voor afleidingswijze \"{$afleidingswijze}\"." + ), + ]; + } + + return []; + }//end validateFieldPresence() + + /** + * Check afleidingswijze compatibility with selectielijstklasse.procestermijn (ztc-003). + * + * @param string $afleidingswijze The afleidingswijze value + * @param string|null $procestermijn The selectielijstklasse procestermijn value + * + * @return array|null Field error array, or null if compatible + */ + private function checkProcestermijnCompatibility( + string $afleidingswijze, + ?string $procestermijn + ): ?array { + if ($procestermijn === 'nihil' && $afleidingswijze !== 'afgehandeld') { + return $this->fieldError( + fieldName: 'nonFieldErrors', + code: 'invalid-afleidingswijze-for-procestermijn', + reason: "Afleidingswijze \"{$afleidingswijze}\" is niet geldig".' bij selectielijstklasse met procestermijn "nihil".' + ); + } + + if ($procestermijn === 'bestaansduur_procesobject' && $afleidingswijze !== 'termijn') { + $reason = "Afleidingswijze \"{$afleidingswijze}\" is niet geldig" + .' bij selectielijstklasse met procestermijn "bestaansduur_procesobject".'; + return $this->fieldError( + fieldName: 'nonFieldErrors', + code: 'invalid-afleidingswijze-for-procestermijn', + reason: $reason + ); + } + + if (($procestermijn === '' || $procestermijn === null) && $afleidingswijze === 'termijn') { + $reason = 'brondatumArchiefprocedure.procestermijn is vereist voor' + .' afleidingswijze "termijn" maar selectielijstklasse heeft geen procestermijn.'; + return $this->fieldError( + fieldName: 'brondatumArchiefprocedure.procestermijn', + code: 'required', + reason: $reason + ); + } + + return null; + }//end checkProcestermijnCompatibility() + + /** + * Resolve non-URL references in a type array field to actual object UUIDs. + * + * When a ZGW type resource has array fields like informatieobjecttypen + * or besluittypen, VNG tests may send references by omschrijving instead + * of URLs. This resolves those to the corresponding object UUIDs. + * + * @param array $body The request body + * @param string $field The field name containing the references + * @param string $schemaKey The settings config key for the target schema + * @param string $lookupField The OpenRegister field to search by + * + * @return array The body with resolved references + * + * @SuppressWarnings(PHPMD.CyclomaticComplexity) + * @SuppressWarnings(PHPMD.NPathComplexity) + */ + private function resolveTypeReferences( + array $body, + string $field, + string $schemaKey, + string $lookupField + ): array { + if (isset($body[$field]) === false || is_array($body[$field]) === false + || $this->objectService === null + ) { + return $body; + } + + $register = $this->mappingConfig['sourceRegister'] ?? ''; + $schema = $this->settingsService->getConfigValue(key: $schemaKey); + + if (empty($register) === true || empty($schema) === true) { + return $body; + } + + $resolved = []; + foreach ($body[$field] as $ref) { + if (is_string($ref) === false || $ref === '') { + continue; + } + + // If it's a URL containing a UUID, extract and store just the UUID. + if (str_starts_with($ref, 'http://') === true + || str_starts_with($ref, 'https://') === true + ) { + $urlUuid = $this->extractUuid(url: $ref); + if ($urlUuid !== null) { + $resolved[] = $urlUuid; + continue; + } + } + + // Search by omschrijving/identificatie in OpenRegister. + $foundIds = $this->findAllObjectsByField( + register: $register, + schema: $schema, + field: $lookupField, + value: $ref + ); + if (empty($foundIds) === false) { + foreach ($foundIds as $id) { + $resolved[] = $id; + } + + continue; + } + + // Fallback: if name lookup found nothing and it looks like a UUID, use as-is. + $bareUuid = $this->extractUuid(url: $ref); + if ($bareUuid !== null) { + $resolved[] = $bareUuid; + } + }//end foreach + + $body[$field] = $resolved; + + return $body; + }//end resolveTypeReferences() + + /** + * Resolve gerelateerdeZaaktypen references (nested objects with zaaktype field). + * + * @param array $body The request body + * + * @return array The body with resolved zaaktype references + * + * @SuppressWarnings(PHPMD.CyclomaticComplexity) — nested object resolution + * @SuppressWarnings(PHPMD.NPathComplexity) — nested object resolution + */ + private function resolveGerelateerdeZaaktypen(array $body): array + { + if (isset($body['gerelateerdeZaaktypen']) === false + || is_array($body['gerelateerdeZaaktypen']) === false + || $this->objectService === null + ) { + return $body; + } + + $register = $this->mappingConfig['sourceRegister'] ?? ''; + $schema = $this->settingsService->getConfigValue(key: 'case_type_schema'); + + if (empty($register) === true || empty($schema) === true) { + return $body; + } + + $resolved = []; + foreach ($body['gerelateerdeZaaktypen'] as $rel) { + $zaaktypeRef = $rel['zaaktype'] ?? ''; + if ($zaaktypeRef === '' || is_string($zaaktypeRef) === false) { + continue; + } + + if (str_starts_with($zaaktypeRef, 'http://') === true + || str_starts_with($zaaktypeRef, 'https://') === true + ) { + $resolved[] = $rel; + continue; + } + + $foundIds = $this->findAllObjectsByField( + register: $register, + schema: $schema, + field: 'identifier', + value: $zaaktypeRef + ); + foreach ($foundIds as $id) { + $entry = $rel; + $entry['zaaktype'] = $id; + $resolved[] = $entry; + } + }//end foreach + + $body['gerelateerdeZaaktypen'] = $resolved; + + return $body; + }//end resolveGerelateerdeZaaktypen() +}//end class diff --git a/lib/Settings/AdminSettings.php b/lib/Settings/AdminSettings.php index 623a45b..2fb7080 100644 --- a/lib/Settings/AdminSettings.php +++ b/lib/Settings/AdminSettings.php @@ -22,6 +22,7 @@ namespace OCA\Procest\Settings; use OCA\Procest\AppInfo\Application; +use OCP\App\IAppManager; use OCP\AppFramework\Http\TemplateResponse; use OCP\Settings\ISettings; @@ -30,6 +31,16 @@ */ class AdminSettings implements ISettings { + /** + * Constructor. + * + * @param IAppManager $appManager The app manager. + */ + public function __construct( + private IAppManager $appManager, + ) { + }//end __construct() + /** * Get the settings form template. * @@ -37,7 +48,13 @@ class AdminSettings implements ISettings */ public function getForm(): TemplateResponse { - return new TemplateResponse(Application::APP_ID, 'settings/admin'); + $version = $this->appManager->getAppVersion(appId: Application::APP_ID); + + return new TemplateResponse( + Application::APP_ID, + 'settings/admin', + ['version' => $version] + ); }//end getForm() /** diff --git a/lib/Settings/bezwaar_seed_data.json b/lib/Settings/bezwaar_seed_data.json new file mode 100644 index 0000000..5a81ec3 --- /dev/null +++ b/lib/Settings/bezwaar_seed_data.json @@ -0,0 +1,249 @@ +{ + "caseTypes": [ + { + "identifier": "bezwaar", + "title": "Bezwaar", + "description": "Bezwaarprocedure conform Awb hoofdstuk 6 en 7", + "purpose": "Behandeling van bezwaarschriften tegen besluiten", + "trigger": "Bezwaarschrift van belanghebbende", + "subject": "Bezwaar tegen besluit", + "processingDeadline": "P6W", + "extensionAllowed": true, + "extensionPeriod": "P6W", + "suspensionAllowed": true, + "internalOrExternal": "extern", + "publicationRequired": false, + "isDraft": false, + "confidentiality": "zaakvertrouwelijk", + "statusTypes": [ + { "name": "Ontvangen", "description": "Bezwaarschrift is ontvangen", "order": 1, "isFinal": false }, + { "name": "Ontvankelijkheidstoets", "description": "Toetsing op ontvankelijkheid (termijn, belanghebbendheid, besluit-karakter)", "order": 2, "isFinal": false }, + { "name": "In behandeling", "description": "Inhoudelijke behandeling gestart", "order": 3, "isFinal": false }, + { "name": "Hoorzitting gepland", "description": "Hoorzitting is ingepland (Awb art. 7:2)", "order": 4, "isFinal": false }, + { "name": "Hoorzitting afgerond", "description": "Hoorzitting heeft plaatsgevonden", "order": 5, "isFinal": false }, + { "name": "Advies uitgebracht", "description": "Bezwaarschriftencommissie heeft advies uitgebracht (Awb art. 7:13)", "order": 6, "isFinal": false }, + { "name": "Beslissing op bezwaar", "description": "Besluit op bezwaar is genomen (Awb art. 7:11, 7:12)", "order": 7, "isFinal": false }, + { "name": "Afgehandeld", "description": "Bezwaarprocedure is volledig afgerond", "order": 8, "isFinal": true }, + { "name": "Niet-ontvankelijk", "description": "Bezwaar is niet-ontvankelijk verklaard (Awb art. 6:6)", "order": 90, "isFinal": true }, + { "name": "Ingetrokken", "description": "Bezwaar is ingetrokken door indiener (Awb art. 6:21)", "order": 91, "isFinal": true } + ], + "roleTypes": [ + { "name": "Bezwaarmaker", "description": "De persoon die bezwaar maakt", "genericRole": "initiator" }, + { "name": "Behandelaar bezwaar", "description": "Ambtenaar die het bezwaar behandelt", "genericRole": "handler" }, + { "name": "Voorzitter commissie", "description": "Voorzitter bezwaarschriftencommissie", "genericRole": "decision_maker" }, + { "name": "Lid commissie", "description": "Lid van de bezwaarschriftencommissie", "genericRole": "advisor" }, + { "name": "Secretaris commissie", "description": "Secretaris van de bezwaarschriftencommissie", "genericRole": "coordinator" }, + { "name": "Vertegenwoordiger", "description": "Gemachtigde of vertegenwoordiger van bezwaarmaker", "genericRole": "stakeholder" }, + { "name": "Primair beslisser", "description": "Ambtenaar die het oorspronkelijke besluit nam", "genericRole": "advisor" } + ], + "workflowTemplate": { + "title": "Bezwaar Standaard Workflow", + "description": "AWB-compliant bezwaar workflow met hoorzitting, adviescommissie en beslissing op bezwaar", + "version": 1, + "isActive": true, + "isDraft": false, + "steps": [ + { "title": "Registreer bezwaarschrift", "statusName": "Ontvangen", "order": 1, "isRequired": true, "description": "Registreer het bezwaarschrift in het systeem" }, + { "title": "Controleer volledigheid", "statusName": "Ontvangen", "order": 2, "isRequired": true, "description": "Controleer of het bezwaarschrift alle vereiste gegevens bevat" }, + { "title": "Bevestig ontvangst", "statusName": "Ontvangen", "order": 3, "isRequired": true, "description": "Stuur ontvangstbevestiging naar bezwaarmaker" }, + { "title": "Toets termijn", "statusName": "Ontvankelijkheidstoets", "order": 1, "isRequired": true, "description": "Controleer of het bezwaar binnen de 6-weken termijn is ingediend (Awb art. 6:7)" }, + { "title": "Toets belanghebbendheid", "statusName": "Ontvankelijkheidstoets", "order": 2, "isRequired": true, "description": "Controleer of indiener belanghebbende is" }, + { "title": "Toets besluit-karakter", "statusName": "Ontvankelijkheidstoets", "order": 3, "isRequired": true, "description": "Controleer of het bestreden handeling een besluit is in de zin van de Awb" }, + { "title": "Stel dossier samen", "statusName": "In behandeling", "order": 1, "isRequired": true, "description": "Stel het bezwaardossier samen met alle relevante stukken" }, + { "title": "Informeer primair beslisser", "statusName": "In behandeling", "order": 2, "isRequired": false, "description": "Informeer de ambtenaar die het oorspronkelijke besluit nam" }, + { "title": "Plan hoorzitting of registreer afzien", "statusName": "In behandeling", "order": 3, "isRequired": true, "description": "Plan een hoorzitting of registreer dat bezwaarmaker afziet van hoorrecht" }, + { "title": "Verstuur uitnodigingen", "statusName": "Hoorzitting gepland", "order": 1, "isRequired": true, "description": "Verstuur uitnodigingen voor de hoorzitting aan alle partijen" }, + { "title": "Bereid hoorzitting voor", "statusName": "Hoorzitting gepland", "order": 2, "isRequired": false, "description": "Bereid de hoorzitting voor met agenda en stukken" }, + { "title": "Maak verslag", "statusName": "Hoorzitting afgerond", "order": 1, "isRequired": true, "description": "Maak een verslag van de hoorzitting (Awb art. 7:7)" }, + { "title": "Deel verslag met partijen", "statusName": "Hoorzitting afgerond", "order": 2, "isRequired": false, "description": "Deel het verslag met bezwaarmaker en andere partijen" }, + { "title": "Stel advies op", "statusName": "Advies uitgebracht", "order": 1, "isRequired": true, "description": "De bezwaarschriftencommissie stelt advies op" }, + { "title": "Deel advies met bestuursorgaan", "statusName": "Advies uitgebracht", "order": 2, "isRequired": true, "description": "Deel het advies van de commissie met het bestuursorgaan" }, + { "title": "Neem beslissing", "statusName": "Beslissing op bezwaar", "order": 1, "isRequired": true, "description": "Neem de beslissing op het bezwaar (heroverweging art. 7:11)" }, + { "title": "Stel besluit op", "statusName": "Beslissing op bezwaar", "order": 2, "isRequired": true, "description": "Stel het formele besluit op met motivering" }, + { "title": "Verstuur besluit met rechtsmiddelenclausule", "statusName": "Beslissing op bezwaar", "order": 3, "isRequired": true, "description": "Verstuur het besluit naar bezwaarmaker inclusief rechtsmiddelenclausule" } + ], + "transitions": [ + { + "fromStatusName": "Ontvangen", + "toStatusName": "Ontvankelijkheidstoets", + "label": "Start toets", + "guards": [{ "type": "roleGuard", "config": { "roleName": "Behandelaar bezwaar" } }] + }, + { + "fromStatusName": "Ontvankelijkheidstoets", + "toStatusName": "In behandeling", + "label": "Ontvankelijk", + "guards": [{ "type": "requiredField", "config": { "field": "isTimely" } }] + }, + { + "fromStatusName": "Ontvankelijkheidstoets", + "toStatusName": "Niet-ontvankelijk", + "label": "Niet-ontvankelijk verklaren", + "guards": [{ "type": "requiredField", "config": { "field": "dispositionDetails" } }] + }, + { + "fromStatusName": "In behandeling", + "toStatusName": "Hoorzitting gepland", + "label": "Hoorzitting plannen", + "guards": [] + }, + { + "fromStatusName": "In behandeling", + "toStatusName": "Advies uitgebracht", + "label": "Hoorrecht afgezien", + "guards": [{ "type": "requiredField", "config": { "field": "hearingWaived" } }] + }, + { + "fromStatusName": "Hoorzitting gepland", + "toStatusName": "Hoorzitting afgerond", + "label": "Hoorzitting afronden", + "guards": [{ "type": "requiredField", "config": { "field": "minutesSummary" } }] + }, + { + "fromStatusName": "Hoorzitting afgerond", + "toStatusName": "Advies uitgebracht", + "label": "Advies uitbrengen", + "guards": [{ "type": "requiredField", "config": { "field": "advisoryReport" } }] + }, + { + "fromStatusName": "In behandeling", + "toStatusName": "Beslissing op bezwaar", + "label": "Direct beslissen", + "guards": [{ "type": "roleGuard", "config": { "roleName": "Voorzitter commissie" } }] + }, + { + "fromStatusName": "Advies uitgebracht", + "toStatusName": "Beslissing op bezwaar", + "label": "Beslissing nemen", + "guards": [ + { "type": "requiredField", "config": { "field": "dispositionType" } }, + { "type": "requiredField", "config": { "field": "dispositionDetails" } } + ] + }, + { + "fromStatusName": "Beslissing op bezwaar", + "toStatusName": "Afgehandeld", + "label": "Afronden", + "guards": [ + { + "type": "checklist", + "config": { + "items": [ + { "label": "Besluit verzonden naar bezwaarmaker" }, + { "label": "Rechtsmiddelenclausule opgenomen in besluit" } + ] + } + } + ], + "automaticActions": [ + { "type": "notify", "config": { "roleName": "Bezwaarmaker", "message": "Uw bezwaar is afgehandeld" } } + ] + }, + { + "fromStatusName": "*", + "toStatusName": "Ingetrokken", + "label": "Intrekken", + "guards": [{ "type": "requiredField", "config": { "field": "withdrawalReason" } }] + } + ] + } + }, + { + "identifier": "beroep", + "title": "Beroep", + "description": "Beroepsprocedure bij de bestuursrechter conform Awb hoofdstuk 8", + "purpose": "Verwerken van beroepszaken bij de bestuursrechter", + "trigger": "Beroepschrift bij de bestuursrechter", + "subject": "Beroep tegen beslissing op bezwaar", + "processingDeadline": "P26W", + "extensionAllowed": false, + "suspensionAllowed": true, + "internalOrExternal": "extern", + "publicationRequired": false, + "isDraft": false, + "confidentiality": "zaakvertrouwelijk", + "statusTypes": [ + { "name": "Beroep ontvangen", "description": "Beroepschrift ontvangen van rechtbank", "order": 1, "isFinal": false }, + { "name": "Verweerschrift in voorbereiding", "description": "Gemeente bereidt verweer voor", "order": 2, "isFinal": false }, + { "name": "Verweerschrift ingediend", "description": "Verweer ingediend bij de rechtbank", "order": 3, "isFinal": false }, + { "name": "Zitting gepland", "description": "Zitting bij de rechtbank is gepland", "order": 4, "isFinal": false }, + { "name": "Zitting afgerond", "description": "Zitting bij de rechtbank heeft plaatsgevonden", "order": 5, "isFinal": false }, + { "name": "Uitspraak ontvangen", "description": "Uitspraak van de rechtbank ontvangen", "order": 6, "isFinal": false }, + { "name": "Afgehandeld", "description": "Beroepsprocedure is afgerond", "order": 7, "isFinal": true }, + { "name": "Ingetrokken", "description": "Beroep is ingetrokken", "order": 90, "isFinal": true }, + { "name": "Schikking", "description": "Zaak geschikt buiten de rechtbank", "order": 91, "isFinal": true } + ], + "roleTypes": [ + { "name": "Appellant", "description": "De persoon die beroep instelt", "genericRole": "initiator" }, + { "name": "Behandelaar beroep", "description": "Ambtenaar die het beroep behandelt namens de gemeente", "genericRole": "handler" }, + { "name": "Jurist", "description": "Juridisch adviseur voor de beroepsprocedure", "genericRole": "advisor" } + ], + "workflowTemplate": { + "title": "Beroep Standaard Workflow", + "description": "Workflow voor het verwerken van beroepszaken bij de bestuursrechter", + "version": 1, + "isActive": true, + "isDraft": false, + "steps": [ + { "title": "Registreer beroepschrift", "statusName": "Beroep ontvangen", "order": 1, "isRequired": true, "description": "Registreer het ontvangen beroepschrift" }, + { "title": "Stel bezwaardossier samen", "statusName": "Verweerschrift in voorbereiding", "order": 1, "isRequired": true, "description": "Stel alle relevante stukken samen voor het verweerschrift" }, + { "title": "Stel verweerschrift op", "statusName": "Verweerschrift in voorbereiding", "order": 2, "isRequired": true, "description": "Stel het verweerschrift op" }, + { "title": "Dien verweerschrift in", "statusName": "Verweerschrift ingediend", "order": 1, "isRequired": true, "description": "Dien het verweerschrift in bij de rechtbank" }, + { "title": "Bereid zitting voor", "statusName": "Zitting gepland", "order": 1, "isRequired": false, "description": "Bereid de zitting voor (pleitnota, getuigen)" }, + { "title": "Registreer uitspraak", "statusName": "Uitspraak ontvangen", "order": 1, "isRequired": true, "description": "Registreer de uitspraak van de rechtbank" }, + { "title": "Beoordeel gevolgen uitspraak", "statusName": "Uitspraak ontvangen", "order": 2, "isRequired": true, "description": "Beoordeel de gevolgen van de uitspraak voor de gemeente" } + ], + "transitions": [ + { + "fromStatusName": "Beroep ontvangen", + "toStatusName": "Verweerschrift in voorbereiding", + "label": "Start verweer", + "guards": [{ "type": "roleGuard", "config": { "roleName": "Behandelaar beroep" } }] + }, + { + "fromStatusName": "Verweerschrift in voorbereiding", + "toStatusName": "Verweerschrift ingediend", + "label": "Verweer indienen", + "guards": [{ "type": "requiredDocument", "config": { "documentType": "Verweerschrift" } }] + }, + { + "fromStatusName": "Verweerschrift ingediend", + "toStatusName": "Zitting gepland", + "label": "Zitting plannen", + "guards": [] + }, + { + "fromStatusName": "Zitting gepland", + "toStatusName": "Zitting afgerond", + "label": "Zitting afronden", + "guards": [] + }, + { + "fromStatusName": "Zitting afgerond", + "toStatusName": "Uitspraak ontvangen", + "label": "Uitspraak registreren", + "guards": [{ "type": "requiredField", "config": { "field": "rulingOutcome" } }] + }, + { + "fromStatusName": "Uitspraak ontvangen", + "toStatusName": "Afgehandeld", + "label": "Afronden", + "guards": [] + }, + { + "fromStatusName": "*", + "toStatusName": "Ingetrokken", + "label": "Intrekken", + "guards": [] + }, + { + "fromStatusName": "*", + "toStatusName": "Schikking", + "label": "Schikking treffen", + "guards": [{ "type": "requiredField", "config": { "field": "settlementDetails" } }] + } + ] + } + } + ] +} diff --git a/lib/Settings/procest_register.json b/lib/Settings/procest_register.json index 3db23e5..3cb0262 100644 --- a/lib/Settings/procest_register.json +++ b/lib/Settings/procest_register.json @@ -2,8 +2,8 @@ "openapi": "3.0.0", "info": { "title": "Procest Case Management Register", - "description": "Register containing all schemas for the Procest case management application. Defines case types, status types, role types, result types, decision types, document types, property definitions, and their instance counterparts.", - "version": "0.2.0" + "description": "Register containing all schemas for the Procest case management application. Defines case types, status types, role types, result types, decision types, document types, property definitions, voorstel, parafeerroute, parafeeractie, and their instance counterparts.", + "version": "0.5.0" }, "x-openregister": { "type": "application", @@ -21,42 +21,46 @@ "x-schema-org-type": "schema:Project", "x-zgw-equivalent": "ZaakType", "title": "Case Type", - "description": "Case type definition \u2014 defines the blueprint for a category of cases including lifecycle, deadlines, and classification", + "description": "Case type definition — defines the blueprint for a category of cases including lifecycle, deadlines, and classification", "type": "object", "required": [ - "title", - "purpose", - "trigger", - "subject", - "processingDeadline", - "confidentiality", - "origin" + "title" ], "properties": { "title": { "type": "string", "maxLength": 255, - "description": "Name of this case type" + "description": "Name of this case type", + "x-translatable": true }, "description": { "type": "string", - "description": "Detailed description of this case type" + "description": "Detailed description of this case type", + "x-translatable": true }, "identifier": { "type": "string", "description": "Auto-generated identifier" }, + "catalogus": { + "type": "string", + "format": "uuid", + "description": "Reference to the parent catalogus" + }, "purpose": { "type": "string", - "description": "The purpose or goal of this case type" + "description": "The purpose or goal of this case type", + "x-translatable": true }, "trigger": { "type": "string", - "description": "What triggers the creation of a case of this type" + "description": "What triggers the creation of a case of this type", + "x-translatable": true }, "subject": { "type": "string", - "description": "The subject matter of this case type" + "description": "The subject matter of this case type", + "x-translatable": true }, "processingDeadline": { "type": "string", @@ -93,11 +97,7 @@ }, "origin": { "type": "string", - "enum": [ - "internal", - "external" - ], - "description": "Whether cases of this type originate internally or externally" + "description": "Initiator action (e.g. indienen, aanvragen)" }, "suspensionAllowed": { "type": "boolean", @@ -117,6 +117,53 @@ "type": "boolean", "default": false, "description": "Whether publication of the decision is required" + }, + "internalOrExternal": { + "type": "string", + "enum": [ + "intern", + "extern" + ], + "description": "Whether the case type is internal or external" + }, + "handlerAction": { + "type": "string", + "description": "Action performed by the handler" + }, + "productsOrServices": { + "type": "string", + "description": "URLs to products or services (JSON-encoded array)" + }, + "selectionListProcessType": { + "type": "string", + "format": "uri", + "description": "URL to the selection list process type" + }, + "referenceProcess": { + "type": "string", + "description": "Reference process definition (JSON-encoded object)" + }, + "responsible": { + "type": "string", + "description": "Responsible person or department" + }, + "relatedCaseTypes": { + "type": "string", + "description": "Related case types (JSON-encoded array)" + }, + "subCaseTypes": { + "type": "array", + "items": { + "type": "string" + }, + "description": "References to sub-case types (deelzaaktypen)" + }, + "decisionTypes": { + "type": "array", + "items": { + "type": "string" + }, + "description": "References to decision types (besluittypen) linked to this case type" } } }, @@ -138,11 +185,13 @@ "name": { "type": "string", "maxLength": 255, - "description": "Name of this status (e.g. Ontvangen, In behandeling)" + "description": "Name of this status (e.g. Ontvangen, In behandeling)", + "x-translatable": true }, "description": { "type": "string", - "description": "Description of this status phase" + "description": "Description of this status phase", + "x-translatable": true }, "caseType": { "type": "string", @@ -178,11 +227,17 @@ "name": { "type": "string", "maxLength": 255, - "description": "Name of this result type (e.g. Vergunning verleend)" + "description": "Name of this result type (e.g. Vergunning verleend)", + "x-translatable": true }, "description": { "type": "string", - "description": "Description of this result type" + "description": "Description/toelichting of this result type", + "x-translatable": true + }, + "genericDescription": { + "type": "string", + "description": "Generic description derived from selectielijst resultaattypeomschrijving" }, "caseType": { "type": "string", @@ -197,9 +252,19 @@ "type": "string", "enum": [ "bewaren", - "vernietigen" + "vernietigen", + "blijvend_bewaren" ], "description": "What to do after archival period: keep or destroy" + }, + "sourceDateArchiveProcedure": { + "type": "string", + "description": "BrondatumArchiefprocedure configuration (JSON-encoded object with afleidingswijze, procestermijn, datumkenmerk, etc.)" + }, + "selectionListClass": { + "type": "string", + "format": "uri", + "description": "URL to the selectielijstklasse" } } }, @@ -220,11 +285,13 @@ "name": { "type": "string", "maxLength": 255, - "description": "Name of this role type (e.g. Behandelaar, Adviseur)" + "description": "Name of this role type (e.g. Behandelaar, Adviseur)", + "x-translatable": true }, "description": { "type": "string", - "description": "Description of this role type" + "description": "Description of this role type", + "x-translatable": true }, "caseType": { "type": "string", @@ -244,8 +311,7 @@ "type": "object", "required": [ "name", - "caseType", - "propertyType" + "caseType" ], "properties": { "name": { @@ -253,9 +319,13 @@ "maxLength": 255, "description": "Name of this custom property" }, + "definition": { + "type": "string", + "description": "Short definition of this property" + }, "description": { "type": "string", - "description": "Description of this property" + "description": "Longer explanation of this property" }, "caseType": { "type": "string", @@ -274,7 +344,7 @@ ], "description": "Data type of this property" }, - "required": { + "isRequired": { "type": "boolean", "default": false, "description": "Whether this property is required on cases" @@ -295,35 +365,71 @@ "description": "Document type requirement for a case type", "type": "object", "required": [ - "name", - "caseType" + "name" ], "properties": { "name": { "type": "string", "maxLength": 255, - "description": "Name of this document type (e.g. Situatietekening)" + "description": "Name of this document type (e.g. Situatietekening)", + "x-translatable": true }, "description": { "type": "string", - "description": "Description of this document type" + "description": "Description of this document type", + "x-translatable": true + }, + "catalogus": { + "type": "string", + "format": "uuid", + "description": "Reference to the parent catalogus" }, "caseType": { "type": "string", "format": "uuid", "description": "Reference to the parent case type" }, - "required": { + "isDraft": { + "type": "boolean", + "default": true, + "description": "Whether this document type is a draft (concept)" + }, + "confidentiality": { + "type": "string", + "enum": [ + "openbaar", + "beperkt_openbaar", + "intern", + "zaakvertrouwelijk", + "vertrouwelijk", + "confidentieel", + "geheim", + "zeer_geheim" + ], + "description": "Confidentiality level" + }, + "category": { + "type": "string", + "description": "Document type category" + }, + "isRequired": { "type": "boolean", "default": false, "description": "Whether this document is required for the case" }, "allowedMimeTypes": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Allowed MIME types (e.g. application/pdf, image/png)" + "type": "string", + "description": "Allowed MIME types (JSON-encoded array)" + }, + "validFrom": { + "type": "string", + "format": "date", + "description": "Date from which this document type is valid" + }, + "validUntil": { + "type": "string", + "format": "date", + "description": "Date until which this document type is valid" } } }, @@ -337,28 +443,63 @@ "description": "Decision type definition for a case type", "type": "object", "required": [ - "name", - "caseType" + "name" ], "properties": { "name": { "type": "string", "maxLength": 255, - "description": "Name of this decision type" + "description": "Name of this decision type", + "x-translatable": true }, "description": { "type": "string", - "description": "Description of this decision type" + "description": "Description of this decision type", + "x-translatable": true + }, + "catalogus": { + "type": "string", + "format": "uuid", + "description": "Reference to the parent catalogus" }, "caseType": { "type": "string", "format": "uuid", "description": "Reference to the parent case type" }, + "isDraft": { + "type": "boolean", + "default": true, + "description": "Whether this decision type is a draft (concept)" + }, "publicationRequired": { "type": "boolean", "default": false, "description": "Whether this decision type requires publication" + }, + "caseTypes": { + "type": "array", + "items": { + "type": "string" + }, + "description": "References to case types (array of zaaktype URLs)" + }, + "documentTypes": { + "type": "array", + "items": { + "type": "string" + }, + "description": "References to document types (array of informatieobjecttype URLs)" + }, + "validFrom": { + "type": "string", + "format": "date", + "description": "Date from which this decision type is valid" + }, + "validUntil": { + "type": "string", + "format": "date", + "description": "Date until which this decision type is valid" } } }, @@ -373,9 +514,7 @@ "type": "object", "required": [ "title", - "caseType", - "status", - "startDate" + "caseType" ], "properties": { "title": { @@ -477,60 +616,23 @@ "visible": false }, "relatedCases": { - "type": "array", - "items": { - "type": "string", - "format": "uuid" - }, - "description": "References to related cases", + "type": "string", + "description": "References to related cases (JSON-encoded array)", "visible": false }, "geometry": { - "type": "object", - "description": "GeoJSON geometry for location-based cases", + "type": "string", + "description": "GeoJSON geometry for location-based cases (JSON-encoded object)", "visible": false }, "statusHistory": { - "type": "array", - "items": { - "type": "object", - "properties": { - "status": { - "type": "string" - }, - "date": { - "type": "string", - "format": "date-time" - }, - "changedBy": { - "type": "string" - } - } - }, - "description": "History of status changes", + "type": "string", + "description": "History of status changes (JSON-encoded array)", "visible": false }, "activity": { - "type": "array", - "items": { - "type": "object", - "properties": { - "date": { - "type": "string", - "format": "date-time" - }, - "type": { - "type": "string" - }, - "description": { - "type": "string" - }, - "user": { - "type": "string" - } - } - }, - "description": "Activity log entries", + "type": "string", + "description": "Activity log entries (JSON-encoded array)", "visible": false }, "extensionCount": { @@ -538,6 +640,72 @@ "default": 0, "description": "Number of deadline extensions applied", "visible": false + }, + "sourceOrganisation": { + "type": "string", + "maxLength": 9, + "description": "RSIN of the organization that created this case", + "visible": false + }, + "archiveNomination": { + "type": "string", + "enum": [ + "blijvend_bewaren", + "vernietigen" + ], + "description": "Whether the case should be permanently archived or destroyed", + "visible": false + }, + "archiveActionDate": { + "type": "string", + "format": "date", + "description": "Date when the archive action should be executed", + "visible": false + }, + "archiveStatus": { + "type": "string", + "enum": [ + "nog_te_archiveren", + "gearchiveerd", + "gearchiveerd_procestermijn_onbekend", + "overgedragen" + ], + "description": "Current archive status of the case", + "visible": false + }, + "paymentIndication": { + "type": "string", + "enum": [ + "nvt", + "nog_niet", + "gedeeltelijk", + "geheel" + ], + "description": "Payment status indicator", + "visible": false + }, + "lastPaymentDate": { + "type": "string", + "format": "date", + "description": "Date of the last payment", + "visible": false + }, + "communicationChannel": { + "type": "string", + "format": "uri", + "description": "URL reference to the communication channel", + "visible": false + }, + "workflowTemplate": { + "type": "string", + "format": "uuid", + "description": "Reference to the bound workflow template", + "visible": false + }, + "workflowVersion": { + "type": "integer", + "description": "Version number of the bound workflow template", + "visible": false } } }, @@ -582,6 +750,8 @@ "case": { "type": "string", "format": "uuid", + "$ref": "case", + "onDelete": "CASCADE", "description": "Reference to the parent case" }, "assignee": { @@ -613,6 +783,16 @@ "format": "date-time", "description": "Date the task was completed", "visible": false + }, + "workflowStepId": { + "type": "string", + "description": "UUID of the workflow step that generated this task", + "visible": false + }, + "checklist": { + "type": "string", + "description": "JSON-encoded array of checklist items ({id, label, checked})", + "visible": false } } }, @@ -645,6 +825,8 @@ "case": { "type": "string", "format": "uuid", + "$ref": "case", + "onDelete": "CASCADE", "description": "Reference to the case" }, "participant": { @@ -667,7 +849,6 @@ "description": "A case outcome record", "type": "object", "required": [ - "name", "case", "resultType" ], @@ -680,6 +861,8 @@ "case": { "type": "string", "format": "uuid", + "$ref": "case", + "onDelete": "CASCADE", "description": "Reference to the case" }, "resultType": { @@ -693,6 +876,38 @@ } } }, + "statusRecord": { + "slug": "statusRecord", + "icon": "ProgressClock", + "version": "1.0.0", + "x-schema-org-type": "schema:Event", + "x-zgw-equivalent": "Status", + "title": "Status Record", + "description": "A status transition record for a case", + "type": "object", + "required": [ + "case", + "statusType" + ], + "properties": { + "case": { + "type": "string", + "format": "uuid", + "$ref": "case", + "onDelete": "CASCADE", + "description": "Reference to the case" + }, + "statusType": { + "type": "string", + "format": "uuid", + "description": "Reference to the status type" + }, + "description": { + "type": "string", + "description": "Status transition description" + } + } + }, "decision": { "slug": "decision", "icon": "Gavel", @@ -702,10 +917,7 @@ "title": "Decision", "description": "A formal decision on a case", "type": "object", - "required": [ - "title", - "case" - ], + "required": [], "properties": { "title": { "type": "string", @@ -715,6 +927,8 @@ "case": { "type": "string", "format": "uuid", + "$ref": "case", + "onDelete": "CASCADE", "description": "Reference to the case" }, "description": { @@ -726,14 +940,14 @@ "format": "uuid", "description": "Reference to the decision type" }, - "decidedBy": { + "responsibleOrganisation": { "type": "string", - "description": "Nextcloud user ID of the decision maker" + "description": "RSIN of the responsible organisation" }, - "decidedAt": { + "decisionDate": { "type": "string", - "format": "date-time", - "description": "When the decision was made" + "format": "date", + "description": "Date the decision was made" }, "effectiveDate": { "type": "string", @@ -744,6 +958,1695 @@ "type": "string", "format": "date", "description": "Date the decision expires" + }, + "publicationDate": { + "type": "string", + "format": "date", + "description": "Publication date" + }, + "deliveryDate": { + "type": "string", + "format": "date", + "description": "Delivery date" + }, + "explanation": { + "type": "string", + "description": "Explanation of the decision" + }, + "governingBody": { + "type": "string", + "description": "The governing body that made the decision (bestuursorgaan)" + } + } + }, + "document": { + "slug": "document", + "icon": "FileDocumentOutline", + "version": "1.0.0", + "x-schema-org-type": "schema:DigitalDocument", + "x-zgw-equivalent": "EnkelvoudigInformatieObject", + "title": "Document", + "description": "A document (enkelvoudig informatieobject) in the document registry", + "type": "object", + "required": [ + "title" + ], + "properties": { + "identifier": { + "type": "string", + "description": "Auto-generated document identifier" + }, + "sourceOrganisation": { + "type": "string", + "description": "RSIN of the source organisation" + }, + "creationDate": { + "type": "string", + "format": "date", + "description": "Date the document was created" + }, + "title": { + "type": "string", + "maxLength": 255, + "description": "Title of this document" + }, + "confidentiality": { + "type": "string", + "enum": [ + "openbaar", + "beperkt_openbaar", + "intern", + "zaakvertrouwelijk", + "vertrouwelijk", + "confidentieel", + "geheim", + "zeer_geheim" + ], + "description": "Confidentiality level" + }, + "author": { + "type": "string", + "description": "Author of the document" + }, + "status": { + "type": "string", + "enum": [ + "in_bewerking", + "ter_vaststelling", + "definitief", + "gearchiveerd" + ], + "description": "Document status" + }, + "format": { + "type": "string", + "description": "MIME type of the document (e.g. application/pdf)" + }, + "language": { + "type": "string", + "default": "nld", + "description": "Language of the document (ISO 639-2/B)" + }, + "fileName": { + "type": "string", + "description": "Original file name" + }, + "fileSize": { + "type": "integer", + "description": "File size in bytes" + }, + "content": { + "type": "string", + "description": "Base64-encoded file content or file reference" + }, + "link": { + "type": "string", + "format": "uri", + "description": "URL to the document" + }, + "description": { + "type": "string", + "description": "Description of the document" + }, + "documentType": { + "type": "string", + "format": "uuid", + "description": "Reference to the document type" + }, + "locked": { + "type": "boolean", + "default": false, + "description": "Whether the document is locked for editing" + }, + "lockId": { + "type": "string", + "description": "Identifier of the current lock" + }, + "fileParts": { + "type": "string", + "description": "References to file parts for chunked uploads (JSON-encoded array)" + }, + "usageRightsIndication": { + "type": "boolean", + "nullable": true, + "default": null, + "description": "Indicates whether usage rights have been set for this document" + } + } + }, + "documentLink": { + "slug": "documentLink", + "icon": "LinkVariant", + "version": "1.0.0", + "x-schema-org-type": "schema:DigitalDocument", + "x-zgw-equivalent": "ObjectInformatieObject", + "title": "Document Link", + "description": "A link between a document and a case or decision", + "type": "object", + "required": [ + "document", + "object", + "objectType" + ], + "properties": { + "document": { + "type": "string", + "format": "uri", + "description": "URI reference to the document (EnkelvoudigInformatieObject)" + }, + "object": { + "type": "string", + "format": "uri", + "description": "URI reference to the related object (zaak or besluit)" + }, + "objectType": { + "type": "string", + "enum": [ + "zaak", + "besluit" + ], + "description": "Type of the related object" + } + } + }, + "kanaal": { + "slug": "kanaal", + "icon": "BellRingOutline", + "version": "1.0.0", + "x-schema-org-type": "schema:BroadcastChannel", + "x-zgw-equivalent": "Kanaal", + "title": "Notification Channel", + "description": "A notification channel (kanaal) for ZGW event distribution", + "type": "object", + "required": [ + "naam" + ], + "properties": { + "naam": { + "type": "string", + "maxLength": 50, + "description": "Name of this channel (e.g. zaken, documenten)" + }, + "documentatieLink": { + "type": "string", + "format": "uri", + "description": "URL to API documentation for this channel" + }, + "filters": { + "type": "string", + "description": "Available filter attributes for this channel (JSON-encoded array)" + } + } + }, + "abonnement": { + "slug": "abonnement", + "icon": "BellPlusOutline", + "version": "1.0.0", + "x-schema-org-type": "schema:SubscribeAction", + "x-zgw-equivalent": "Abonnement", + "title": "Notification Subscription", + "description": "A subscription (abonnement) for receiving ZGW notifications", + "type": "object", + "required": [ + "callbackUrl", + "auth", + "kanalen" + ], + "properties": { + "callbackUrl": { + "type": "string", + "format": "uri", + "description": "URL to POST notifications to" + }, + "auth": { + "type": "string", + "description": "Authorization header value for callback requests" + }, + "kanalen": { + "type": "string", + "description": "Channels and filters to subscribe to (JSON-encoded array)" + } + } + }, + "catalogus": { + "slug": "catalogus", + "icon": "BookOpenPageVariant", + "version": "1.0.0", + "x-schema-org-type": "schema:DataCatalog", + "x-zgw-equivalent": "Catalogus", + "title": "Catalogus", + "description": "A catalogus groups case types, decision types, and document types", + "type": "object", + "required": [ + "domein" + ], + "properties": { + "domein": { + "type": "string", + "maxLength": 5, + "description": "Abbreviated domain name (max 5 characters)" + }, + "rsin": { + "type": "string", + "maxLength": 9, + "description": "RSIN of the responsible organisation" + }, + "contactpersoonBeheerNaam": { + "type": "string", + "maxLength": 40, + "description": "Name of the management contact" + }, + "contactpersoonBeheerTelefoonnummer": { + "type": "string", + "maxLength": 20, + "description": "Phone number of the management contact" + }, + "contactpersoonBeheerEmailadres": { + "type": "string", + "maxLength": 254, + "description": "Email of the management contact" + } + } + }, + "zaaktypeInformatieobjecttype": { + "slug": "zaaktypeInformatieobjecttype", + "icon": "LinkVariant", + "version": "1.0.0", + "x-schema-org-type": "schema:Thing", + "x-zgw-equivalent": "ZaakTypeInformatieObjectType", + "title": "Zaaktype-Informatieobjecttype Relation", + "description": "Links a case type to a document type with direction and ordering", + "type": "object", + "required": [ + "zaaktype", + "informatieobjecttype", + "volgnummer", + "richting" + ], + "properties": { + "zaaktype": { + "type": "string", + "format": "uuid", + "description": "Reference to the case type" + }, + "informatieobjecttype": { + "type": "string", + "format": "uuid", + "description": "Reference to the document type" + }, + "volgnummer": { + "type": "integer", + "description": "Ordering number" + }, + "richting": { + "type": "string", + "enum": [ + "inkomend", + "intern", + "uitgaand" + ], + "description": "Direction of the document in the case" + }, + "statustype": { + "type": "string", + "format": "uuid", + "description": "Reference to a status type" + } + } + }, + "caseProperty": { + "slug": "caseProperty", + "icon": "TagOutline", + "version": "1.0.0", + "x-zgw-equivalent": "ZaakEigenschap", + "title": "Case Property", + "description": "A property value on a specific case", + "type": "object", + "required": [ + "case", + "propertyDefinition", + "value" + ], + "properties": { + "case": { + "type": "string", + "format": "uuid", + "$ref": "case", + "onDelete": "CASCADE", + "description": "Reference to the case" + }, + "propertyDefinition": { + "type": "string", + "format": "uuid", + "description": "Reference to the property definition (eigenschap)" + }, + "value": { + "type": "string", + "description": "The property value" + } + } + }, + "caseDocument": { + "slug": "caseDocument", + "icon": "LinkVariant", + "version": "1.0.0", + "x-zgw-equivalent": "ZaakInformatieObject", + "title": "Case Document Link", + "description": "Links a document to a case", + "type": "object", + "required": [ + "case", + "document" + ], + "properties": { + "case": { + "type": "string", + "format": "uuid", + "$ref": "case", + "onDelete": "CASCADE", + "description": "Reference to the case" + }, + "document": { + "type": "string", + "format": "uri", + "description": "URI reference to the document" + }, + "title": { + "type": "string", + "description": "Title/description of the relation" + }, + "description": { + "type": "string", + "description": "Description of the relation" + }, + "registrationDate": { + "type": "string", + "format": "date", + "description": "Registration date" + } + } + }, + "caseObject": { + "slug": "caseObject", + "icon": "CubeOutline", + "version": "1.0.0", + "x-zgw-equivalent": "ZaakObject", + "title": "Case Object", + "description": "Links an external object to a case", + "type": "object", + "required": [ + "case", + "objectType" + ], + "properties": { + "case": { + "type": "string", + "format": "uuid", + "$ref": "case", + "onDelete": "CASCADE", + "description": "Reference to the case" + }, + "objectUrl": { + "type": "string", + "format": "uri", + "description": "URL of the external object" + }, + "objectType": { + "type": "string", + "description": "Type of the external object" + }, + "objectIdentification": { + "type": "string", + "description": "JSON identification of the object" + }, + "description": { + "type": "string", + "description": "Description of the relation" + } + } + }, + "customerContact": { + "slug": "customerContact", + "icon": "AccountVoice", + "version": "1.0.0", + "x-zgw-equivalent": "KlantContact", + "title": "Customer Contact", + "description": "A customer contact moment for a case", + "type": "object", + "required": [ + "case" + ], + "properties": { + "case": { + "type": "string", + "format": "uuid", + "$ref": "case", + "onDelete": "CASCADE", + "description": "Reference to the case" + }, + "contactDateTime": { + "type": "string", + "format": "date-time", + "description": "Date-time of the contact" + }, + "channel": { + "type": "string", + "description": "Communication channel" + }, + "subject": { + "type": "string", + "description": "Subject of the contact" + }, + "initiator": { + "type": "string", + "description": "Who initiated the contact" + } + } + }, + "decisionDocument": { + "slug": "decisionDocument", + "icon": "LinkVariant", + "version": "1.0.0", + "x-zgw-equivalent": "BesluitInformatieObject", + "title": "Decision Document Link", + "description": "Links a document to a decision", + "type": "object", + "required": [ + "decision", + "document" + ], + "properties": { + "decision": { + "type": "string", + "format": "uuid", + "$ref": "decision", + "onDelete": "CASCADE", + "description": "Reference to the decision" + }, + "document": { + "type": "string", + "format": "uri", + "description": "URI reference to the document" + } + } + }, + "dispatch": { + "slug": "dispatch", + "icon": "Send", + "version": "1.0.0", + "x-zgw-equivalent": "Verzending", + "title": "Dispatch", + "description": "A document dispatch record", + "type": "object", + "required": [ + "document", + "relationshipType" + ], + "properties": { + "document": { + "type": "string", + "format": "uri", + "description": "URI reference to the document" + }, + "involvedParty": { + "type": "string", + "format": "uri", + "description": "URI of the involved party" + }, + "relationshipType": { + "type": "string", + "description": "Type of relationship (afzender/geadresseerde)" + }, + "description": { + "type": "string", + "description": "Description of the dispatch" + }, + "receiveDate": { + "type": "string", + "format": "date", + "description": "Date received" + }, + "sendDate": { + "type": "string", + "format": "date", + "description": "Date sent" + }, + "contactPerson": { + "type": "string", + "format": "uri", + "description": "Contact person URI" + }, + "contactPersonName": { + "type": "string", + "description": "Name of the contact person" + } + } + }, + "usageRights": { + "slug": "usageRights", + "icon": "ShieldKeyOutline", + "version": "1.0.0", + "x-schema-org-type": "schema:DigitalDocument", + "x-zgw-equivalent": "GebruiksRechten", + "title": "Usage Rights", + "description": "Usage rights (gebruiksrechten) for a document", + "type": "object", + "required": [ + "document", + "startDate", + "conditionsDescription" + ], + "properties": { + "document": { + "type": "string", + "format": "uri", + "description": "URI reference to the document (EnkelvoudigInformatieObject)" + }, + "startDate": { + "type": "string", + "description": "Start date of the usage rights" + }, + "endDate": { + "type": "string", + "description": "End date of the usage rights" + }, + "conditionsDescription": { + "type": "string", + "description": "Description of the usage conditions" + } + } + }, + "voorstel": { + "slug": "voorstel", + "icon": "FileDocumentEditOutline", + "version": "1.0.0", + "x-schema-org-type": "schema:CreativeWork", + "title": "Voorstel", + "description": "A B&W voorstel (proposal) for decision-making in a case", + "type": "object", + "required": [ + "case", + "type", + "onderwerp", + "steller", + "status" + ], + "properties": { + "case": { + "type": "string", + "format": "uuid", + "$ref": "case", + "onDelete": "CASCADE", + "description": "Reference to the parent case" + }, + "type": { + "type": "string", + "enum": [ + "dt_advies", + "collegeadvies", + "raadsvoorstel" + ], + "description": "Type of voorstel (DT-advies, Collegeadvies, Raadsvoorstel)", + "title": "Type", + "facetable": true + }, + "onderwerp": { + "type": "string", + "maxLength": 255, + "description": "Subject of the voorstel (usually derived from case title)" + }, + "steller": { + "type": "string", + "description": "Nextcloud user UID who created the voorstel", + "title": "Steller", + "facetable": true + }, + "afdeling": { + "type": "string", + "description": "Department of the steller" + }, + "portefeuillehouder": { + "type": "string", + "description": "Nextcloud user UID of the responsible portfolio holder (wethouder)" + }, + "status": { + "type": "string", + "enum": [ + "concept", + "in_parafering", + "ter_accordering", + "geaccordeerd", + "aangeboden", + "besloten", + "gearchiveerd", + "teruggestuurd" + ], + "default": "concept", + "description": "Current status of the voorstel in the parafering lifecycle", + "title": "Status", + "facetable": true + }, + "parafeerroute": { + "type": "string", + "format": "uuid", + "description": "Reference to the parafeerroute being used" + }, + "routeSnapshot": { + "type": "string", + "description": "Snapshot of the parafeerroute steps at submission time (JSON-encoded array)", + "visible": false + }, + "currentStep": { + "type": "integer", + "default": 0, + "description": "Current step number in the parafeerroute (1-based, 0 = not yet submitted)" + }, + "returnedFromStep": { + "type": "integer", + "description": "Step number from which the voorstel was returned (for resume on resubmit)", + "visible": false + }, + "document": { + "type": "string", + "description": "Nextcloud file ID of the primary voorstel document" + }, + "bijlagen": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Nextcloud file IDs of attached documents (bijlagen)" + }, + "behandeling": { + "type": "string", + "enum": [ + "hamerstuk", + "bespreekstuk" + ], + "description": "Treatment type in the college meeting" + }, + "decision": { + "type": "string", + "format": "uuid", + "description": "Reference to the linked decision (set when besluit is registered)", + "visible": false + } + } + }, + "parafeerroute": { + "slug": "parafeerroute", + "icon": "RoutesClock", + "version": "1.0.0", + "x-schema-org-type": "schema:HowTo", + "title": "Parafeerroute", + "description": "A configurable endorsement route defining the sequence of parafering steps for a voorstel", + "type": "object", + "required": [ + "name", + "steps" + ], + "properties": { + "name": { + "type": "string", + "maxLength": 255, + "description": "Name of this parafeerroute (e.g. Collegeadvies - Omgevingsvergunning)" + }, + "caseType": { + "type": "string", + "format": "uuid", + "description": "Reference to the case type this route is associated with", + "facetable": true + }, + "voorstelType": { + "type": "string", + "enum": [ + "dt_advies", + "collegeadvies", + "raadsvoorstel" + ], + "description": "Voorstel type this route applies to" + }, + "steps": { + "type": "array", + "items": { + "type": "object", + "properties": { + "order": { + "type": "integer", + "description": "Step order (1-based)" + }, + "type": { + "type": "string", + "enum": [ + "advies", + "parafering", + "accordering" + ], + "description": "Step type" + }, + "actor": { + "type": "string", + "description": "User UID, group name, or role name" + }, + "actorType": { + "type": "string", + "enum": [ + "user", + "group", + "role" + ], + "description": "Type of actor reference" + }, + "mandatory": { + "type": "boolean", + "default": true, + "description": "Whether this step can be skipped" + }, + "label": { + "type": "string", + "description": "Display label for this step" + } + } + }, + "description": "Ordered list of parafering steps" + }, + "isDefault": { + "type": "boolean", + "default": false, + "description": "Whether this is the default route for the linked case type and voorstel type" + }, + "description": { + "type": "string", + "description": "Description of when this route should be used" + } + } + }, + "parafeeractie": { + "slug": "parafeeractie", + "icon": "CheckDecagram", + "version": "1.0.0", + "x-schema-org-type": "schema:Action", + "title": "Parafeeractie", + "description": "An immutable record of a parafering action on a voorstel step", + "type": "object", + "required": [ + "voorstel", + "step", + "actor", + "action" + ], + "properties": { + "voorstel": { + "type": "string", + "format": "uuid", + "$ref": "voorstel", + "onDelete": "CASCADE", + "description": "Reference to the voorstel" + }, + "step": { + "type": "integer", + "description": "Step number in the parafeerroute" + }, + "actor": { + "type": "string", + "description": "Nextcloud user UID who performed the action" + }, + "actorType": { + "type": "string", + "enum": [ + "user", + "delegate" + ], + "default": "user", + "description": "Whether the actor acted directly or as delegate" + }, + "onBehalfOf": { + "type": "string", + "description": "Nextcloud user UID of the principal (if acting as delegate)" + }, + "action": { + "type": "string", + "enum": [ + "parafered", + "returned", + "advised", + "skipped" + ], + "description": "The action performed", + "title": "Action", + "facetable": true + }, + "comment": { + "type": "string", + "description": "Comment or reason (mandatory for returned/skipped)" + }, + "advice": { + "type": "string", + "description": "Advisory text (for advies steps)" + }, + "mandate": { + "type": "string", + "description": "Mandate reference (for delegate actions)" + } + } + }, + "workflowTemplate": { + "slug": "workflowTemplate", + "icon": "SitemapOutline", + "version": "1.0.0", + "x-schema-org-type": "schema:HowTo", + "x-cmmn-equivalent": "CasePlanModel", + "title": "Workflow Template", + "description": "A workflow definition for a case type — defines process steps, status transitions, guards, and automatic actions", + "type": "object", + "required": [ + "title", + "caseType" + ], + "properties": { + "title": { + "type": "string", + "maxLength": 255, + "description": "Name of this workflow template" + }, + "description": { + "type": "string", + "description": "Purpose and usage notes for this workflow" + }, + "caseType": { + "type": "string", + "format": "uuid", + "$ref": "caseType", + "onDelete": "CASCADE", + "description": "Reference to the case type this workflow belongs to" + }, + "version": { + "type": "integer", + "default": 1, + "description": "Auto-incrementing version number" + }, + "isActive": { + "type": "boolean", + "default": false, + "description": "Whether this is the active version for new cases" + }, + "isDraft": { + "type": "boolean", + "default": true, + "description": "Draft templates cannot be used for new cases" + }, + "steps": { + "type": "string", + "description": "JSON-encoded array of WorkflowStep objects. Each step has: id (UUID), title, description, status (UUID ref to statusType), order (integer), assigneeRole (UUID ref to roleType, optional), isRequired (boolean), checklist (array of {id, label, description}), automaticActions (array of ActionRef)" + }, + "transitions": { + "type": "string", + "description": "JSON-encoded array of StatusTransition objects. Each transition has: id (UUID), fromStatus (UUID), toStatus (UUID), label (string), guards (array of Guard), automaticActions (array of ActionRef), allowedRoles (array of UUID). Guard types: checklist, requiredField, requiredDocument, roleGuard. Action types: sendEmail, createTask, createSubCase, webhook, setField, notify" + }, + "nodePositions": { + "type": "string", + "description": "JSON-encoded map of status UUID to {x, y} canvas positions for the visual editor" + }, + "parentWorkflow": { + "type": "string", + "format": "uuid", + "description": "Reference to parent workflow template for inheritance (Enterprise tier)" + } + } + }, + "objection": { + "slug": "objection", + "icon": "FileDocumentAlertOutline", + "version": "1.0.0", + "x-schema-org-type": "schema:Message", + "x-zgw-equivalent": "Bezwaarschrift", + "title": "Objection", + "description": "Bezwaarschrift (objection letter) — captures the formal objection content linked to a bezwaar case and the contested decision", + "type": "object", + "required": [ + "case", + "contestedDecision", + "grounds", + "receivedDate", + "receivedChannel" + ], + "properties": { + "case": { + "type": "string", + "format": "uuid", + "$ref": "case", + "onDelete": "CASCADE", + "description": "The bezwaar case this objection belongs to" + }, + "contestedDecision": { + "type": "string", + "format": "uuid", + "$ref": "decision", + "description": "The original besluit being contested" + }, + "grounds": { + "type": "string", + "description": "The grounds for objection (gronden van bezwaar)" + }, + "requestedRelief": { + "type": "string", + "description": "What outcome the bezwaarmaker seeks" + }, + "receivedDate": { + "type": "string", + "format": "date", + "description": "Date the bezwaarschrift was received" + }, + "receivedChannel": { + "type": "string", + "enum": [ + "brief", + "email", + "formulier", + "balie" + ], + "description": "How the bezwaarschrift was received" + }, + "isTimely": { + "type": "boolean", + "description": "Whether the objection was filed within the 6-week term (Awb art. 6:7)" + }, + "timelinessAssessment": { + "type": "string", + "description": "Explanation of timeliness determination" + }, + "proVoorziening": { + "type": "boolean", + "default": false, + "description": "Whether a voorlopige voorziening (interim relief) was requested" + }, + "attachments": { + "type": "string", + "description": "JSON-encoded array of document references uploaded by bezwaarmaker" + } + } + }, + "hearingSession": { + "slug": "hearingSession", + "icon": "AccountGroupOutline", + "version": "1.0.0", + "x-schema-org-type": "schema:Event", + "x-zgw-equivalent": "Hoorzitting", + "title": "Hearing Session", + "description": "Hoorzitting (hearing) — manages scheduling, invitations, and minutes for bezwaar hearings per Awb art. 7:2", + "type": "object", + "required": [ + "case", + "scheduledDate", + "chairperson", + "invitees", + "status" + ], + "properties": { + "case": { + "type": "string", + "format": "uuid", + "$ref": "case", + "onDelete": "CASCADE", + "description": "The bezwaar case this hearing belongs to" + }, + "scheduledDate": { + "type": "string", + "format": "date-time", + "description": "Date and time of the hearing" + }, + "location": { + "type": "string", + "description": "Physical location or 'Online' for video hearings" + }, + "videoCallUrl": { + "type": "string", + "format": "uri", + "description": "Video conference link for online hearings" + }, + "chairperson": { + "type": "string", + "format": "uuid", + "$ref": "role", + "description": "Who chairs the hearing (voorzitter)" + }, + "members": { + "type": "string", + "description": "JSON-encoded array of committee member role UUIDs" + }, + "invitees": { + "type": "string", + "description": "JSON-encoded array of invitee objects (name, role, email, status)" + }, + "minutesSummary": { + "type": "string", + "description": "Summary of what was discussed (verslag)" + }, + "minutesDocument": { + "type": "string", + "format": "uuid", + "description": "Reference to full hearing minutes document" + }, + "status": { + "type": "string", + "enum": [ + "gepland", + "uitgenodigd", + "uitgevoerd", + "geannuleerd", + "afgezien" + ], + "default": "gepland", + "description": "Hearing session status" + }, + "hearingWaived": { + "type": "boolean", + "default": false, + "description": "Bezwaarmaker has waived the right to be heard" + }, + "waiverReason": { + "type": "string", + "description": "Reason for waiving hearing right" + } + } + }, + "advisoryReport": { + "slug": "advisoryReport", + "icon": "FileDocumentCheckOutline", + "version": "1.0.0", + "x-schema-org-type": "schema:Report", + "x-zgw-equivalent": "AdviesBezwaarschriftencommissie", + "title": "Advisory Report", + "description": "Advisory committee report (advies bezwaarschriftencommissie) — records the committee's advice on a bezwaar case per Awb art. 7:13", + "type": "object", + "required": [ + "case", + "committeeChair", + "adviceDate", + "adviceType", + "summary", + "grounds", + "recommendation", + "deviationFromPrimaryDecision" + ], + "properties": { + "case": { + "type": "string", + "format": "uuid", + "$ref": "case", + "onDelete": "CASCADE", + "description": "The bezwaar case this report belongs to" + }, + "hearingSession": { + "type": "string", + "format": "uuid", + "$ref": "hearingSession", + "description": "The hearing session this report is based on" + }, + "committeeChair": { + "type": "string", + "format": "uuid", + "$ref": "role", + "description": "Voorzitter who signed the report" + }, + "committeeMembers": { + "type": "string", + "description": "JSON-encoded array of committee member role UUIDs" + }, + "adviceDate": { + "type": "string", + "format": "date", + "description": "Date the advice was issued" + }, + "adviceType": { + "type": "string", + "enum": [ + "gegrond", + "ongegrond", + "deels_gegrond", + "niet_ontvankelijk" + ], + "description": "Type of advice: upheld, rejected, partially upheld, inadmissible" + }, + "summary": { + "type": "string", + "description": "Summary of the committee's advice" + }, + "grounds": { + "type": "string", + "description": "Legal reasoning and grounds for the advice" + }, + "recommendation": { + "type": "string", + "description": "Recommended action for the bestuursorgaan" + }, + "deviationFromPrimaryDecision": { + "type": "boolean", + "description": "Whether the committee advises differently from the original decision" + }, + "reportDocument": { + "type": "string", + "format": "uuid", + "description": "Reference to full advisory report document" + } + } + }, + "appealDecision": { + "slug": "appealDecision", + "icon": "GavelOutline", + "version": "1.0.0", + "x-schema-org-type": "schema:LegalForceStatus", + "x-zgw-equivalent": "BeslissingOpBezwaar", + "title": "Appeal Decision", + "description": "Beslissing op bezwaar (decision on objection) — formal decision recording with disposition, motivation, and rechtsmiddelenclausule per Awb art. 7:11-7:12", + "type": "object", + "required": [ + "case", + "contestedDecision", + "dispositionType", + "dispositionDetails", + "decisionDate", + "effectiveDate", + "appealInformation", + "decisionMaker" + ], + "properties": { + "case": { + "type": "string", + "format": "uuid", + "$ref": "case", + "onDelete": "CASCADE", + "description": "The bezwaar case" + }, + "contestedDecision": { + "type": "string", + "format": "uuid", + "$ref": "decision", + "description": "The original besluit being contested" + }, + "advisoryReport": { + "type": "string", + "format": "uuid", + "$ref": "advisoryReport", + "description": "The committee's advisory report" + }, + "dispositionType": { + "type": "string", + "enum": [ + "gegrond", + "ongegrond", + "deels_gegrond", + "niet_ontvankelijk" + ], + "description": "Decision outcome type" + }, + "dispositionDetails": { + "type": "string", + "description": "Detailed motivation for the decision (motiveringsplicht art. 7:12)" + }, + "followsAdvice": { + "type": "boolean", + "description": "Whether the decision follows the committee's advice" + }, + "deviationReason": { + "type": "string", + "description": "Reason for deviating from committee advice (required when followsAdvice is false)" + }, + "remedialAction": { + "type": "string", + "description": "Corrective action taken if gegrond/deels_gegrond" + }, + "replacementDecision": { + "type": "string", + "format": "uuid", + "$ref": "decision", + "description": "New besluit that replaces the contested one" + }, + "decisionDate": { + "type": "string", + "format": "date", + "description": "Date the decision was made" + }, + "effectiveDate": { + "type": "string", + "format": "date", + "description": "Date the decision takes legal effect" + }, + "appealInformation": { + "type": "string", + "description": "Information about beroep possibilities (rechtsmiddelenclausule)" + }, + "decisionMaker": { + "type": "string", + "format": "uuid", + "$ref": "role", + "description": "The person/body that made the decision" + }, + "decisionDocument": { + "type": "string", + "format": "uuid", + "description": "Reference to the formal decision letter document" + } + } + }, + "mapLayer": { + "slug": "mapLayer", + "icon": "MapOutline", + "version": "1.0.0", + "title": "Map Layer", + "description": "GIS map layer configuration for case maps — defines tile, WMS, WFS, or GeoJSON layers that can be displayed on case map views", + "type": "object", + "required": [ + "title", + "layerType", + "url" + ], + "properties": { + "title": { + "type": "string", + "maxLength": 255, + "description": "Display name for the layer in the layer switcher" + }, + "layerType": { + "type": "string", + "enum": [ + "tile", + "wms", + "wfs", + "geojson" + ], + "description": "The type of map layer (tile, wms, wfs, or geojson)" + }, + "url": { + "type": "string", + "format": "uri", + "description": "Service URL (tile template, WMS base URL, WFS endpoint, or GeoJSON URL)" + }, + "layers": { + "type": "string", + "description": "WMS/WFS layer name(s), comma-separated" + }, + "format": { + "type": "string", + "description": "Image format for WMS (e.g., image/png)", + "default": "image/png" + }, + "attribution": { + "type": "string", + "description": "Attribution text for the layer" + }, + "isDefault": { + "type": "boolean", + "description": "Whether to show this layer on initial load", + "default": false + }, + "isBaseLayer": { + "type": "boolean", + "description": "If true, only one base layer visible at a time", + "default": false + }, + "opacity": { + "type": "number", + "minimum": 0, + "maximum": 1, + "description": "Layer opacity from 0.0 (transparent) to 1.0 (opaque)", + "default": 1.0 + }, + "minZoom": { + "type": "integer", + "description": "Minimum zoom level for visibility" + }, + "maxZoom": { + "type": "integer", + "description": "Maximum zoom level for visibility" + }, + "order": { + "type": "integer", + "description": "Display order in the layer switcher", + "default": 0 + }, + "style": { + "type": "string", + "description": "JSON-encoded style object for GeoJSON/WFS features (color, weight, fillColor, fillOpacity)" + }, + "proxyEnabled": { + "type": "boolean", + "description": "Whether to route requests through the backend GIS proxy (for CORS-restricted services)", + "default": false + } + } + }, + "adviesAanvraag": { + "slug": "adviesAanvraag", + "icon": "CommentQuestionOutline", + "version": "1.0.0", + "x-schema-org-type": "schema:AskAction", + "title": "Advice Request", + "description": "A request for internal or external advice on a case, with deadline tracking", + "type": "object", + "required": [ + "case", + "adviseur", + "type" + ], + "properties": { + "case": { + "type": "string", + "format": "uuid", + "description": "Reference to the case this advice is requested for" + }, + "adviseur": { + "type": "string", + "description": "User UID (internal) or organization name (external)" + }, + "type": { + "type": "string", + "enum": [ + "intern", + "extern" + ], + "description": "Whether advice is from internal staff or external party" + }, + "onderwerp": { + "type": "string", + "description": "Subject/topic of the advice request" + }, + "deadline": { + "type": "string", + "format": "date", + "description": "Deadline for receiving the advice" + }, + "status": { + "type": "string", + "enum": [ + "aangevraagd", + "ontvangen", + "verlopen" + ], + "default": "aangevraagd", + "description": "Current status of the advice request" + }, + "adviesDocument": { + "type": "string", + "description": "Nextcloud file ID of the advice document" + }, + "requestedAt": { + "type": "string", + "format": "date-time", + "description": "Timestamp when the advice was requested" + }, + "receivedAt": { + "type": "string", + "format": "date-time", + "description": "Timestamp when the advice was received" + }, + "questions": { + "type": "string", + "description": "Specific questions for the adviseur" + } + } + }, + "handhavingsactie": { + "slug": "handhavingsactie", + "icon": "Gavel", + "version": "1.0.0", + "x-schema-org-type": "schema:LegalForceStatus", + "title": "Enforcement Action", + "description": "An enforcement action (handhavingsactie) on a case, classified per the Landelijke Handhavingsstrategie (LHS)", + "type": "object", + "required": [ + "case", + "type", + "ernst", + "gedrag" + ], + "properties": { + "case": { + "type": "string", + "format": "uuid", + "description": "Reference to the handhavingszaak" + }, + "type": { + "type": "string", + "enum": [ + "waarschuwing", + "vooraankondiging", + "last_onder_dwangsom", + "bestuursdwang", + "proces_verbaal" + ], + "description": "Type of enforcement action" + }, + "ernst": { + "type": "string", + "enum": [ + "gering", + "aanzienlijk", + "ernstig" + ], + "description": "Severity of the violation (LHS ernst axis)" + }, + "gedrag": { + "type": "string", + "enum": [ + "goedwillend", + "onverschillig", + "calculerend", + "crimineel" + ], + "description": "Behavior of the violator (LHS gedrag axis)" + }, + "interventie": { + "type": "string", + "description": "Suggested intervention from LHS matrix (may be overridden)" + }, + "begunstigingstermijn": { + "type": "integer", + "description": "Grace period in days before enforcement takes effect" + }, + "dwangsomBedrag": { + "type": "number", + "description": "Penalty amount per violation (EUR)" + }, + "dwangsomMaximaal": { + "type": "number", + "description": "Maximum total penalty amount (EUR)" + }, + "effectueringsDatum": { + "type": "string", + "format": "date", + "description": "Date when enforcement action takes effect" + }, + "status": { + "type": "string", + "enum": [ + "opgelegd", + "verbeurd", + "geeffectueerd", + "ingetrokken" + ], + "default": "opgelegd", + "description": "Current status of the enforcement action" + }, + "overrideReason": { + "type": "string", + "description": "Documented reasoning if the LHS suggestion was overridden" + } + } + }, + "inspectieChecklist": { + "slug": "inspectieChecklist", + "icon": "ClipboardCheckOutline", + "version": "1.0.0", + "x-schema-org-type": "schema:HowTo", + "title": "Inspection Checklist", + "description": "Configurable inspection checklist template linked to a case type, with versioning support", + "type": "object", + "required": [ + "name", + "caseType" + ], + "properties": { + "name": { + "type": "string", + "maxLength": 255, + "description": "Name of this checklist (e.g. 'Bouwtoezicht fase 1 - Fundering')" + }, + "caseType": { + "type": "string", + "format": "uuid", + "description": "Reference to the case type this checklist belongs to" + }, + "version": { + "type": "integer", + "default": 1, + "description": "Version number of this checklist (incremented on edit)" + }, + "status": { + "type": "string", + "enum": [ + "draft", + "active", + "archived" + ], + "default": "draft", + "description": "Lifecycle status of this checklist version" + }, + "items": { + "type": "array", + "description": "Ordered list of checklist items", + "items": { + "type": "object", + "properties": { + "order": { + "type": "integer", + "description": "Display order of this item" + }, + "label": { + "type": "string", + "description": "Label/question for this checklist item" + }, + "type": { + "type": "string", + "enum": [ + "ja_nee_nvt", + "tekst", + "getal", + "foto", + "meerkeuze" + ], + "description": "Input type for this item" + }, + "required": { + "type": "boolean", + "default": false, + "description": "Whether this item must be completed" + }, + "fotoRequired": { + "type": "boolean", + "default": false, + "description": "Whether a photo is required (especially on failure)" + }, + "options": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Options for meerkeuze type" + }, + "helpText": { + "type": "string", + "description": "Guidance text for the inspector" + } + } + } + } + } + }, + "inspectieRapport": { + "slug": "inspectieRapport", + "icon": "FileDocumentCheckOutline", + "version": "1.0.0", + "x-schema-org-type": "schema:Report", + "title": "Inspection Report", + "description": "A completed inspection report generated from a checklist, stored on the case", + "type": "object", + "required": [ + "case", + "checklist", + "inspector", + "inspectionDate" + ], + "properties": { + "case": { + "type": "string", + "format": "uuid", + "description": "Reference to the case (toezichtzaak) this report belongs to" + }, + "checklist": { + "type": "string", + "format": "uuid", + "description": "Reference to the inspectieChecklist used" + }, + "inspector": { + "type": "string", + "description": "User UID of the inspector" + }, + "inspectionDate": { + "type": "string", + "format": "date-time", + "description": "Date and time of the inspection" + }, + "location": { + "type": "string", + "description": "GPS coordinates or address of the inspection location" + }, + "result": { + "type": "string", + "enum": [ + "conform", + "niet_conform", + "deels_conform" + ], + "description": "Overall inspection result (auto-calculated from items)" + }, + "failedItems": { + "type": "integer", + "default": 0, + "description": "Count of failed checklist items" + }, + "items": { + "type": "array", + "description": "Completed checklist item results", + "items": { + "type": "object", + "properties": { + "itemId": { + "type": "string", + "description": "Reference to the original checklist item" + }, + "result": { + "type": "string", + "enum": [ + "pass", + "fail", + "nvt" + ], + "description": "Result for this item" + }, + "comment": { + "type": "string", + "description": "Free text comment" + }, + "measurement": { + "type": "number", + "description": "Numeric measurement value (for getal type)" + }, + "photos": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Nextcloud file IDs of photos for this item" + } + } + } + }, + "photos": { + "type": "array", + "items": { + "type": "string" + }, + "description": "All Nextcloud file IDs of photos taken during inspection" + }, + "remarks": { + "type": "string", + "description": "General remarks about the inspection" + }, + "followUpRequired": { + "type": "boolean", + "default": false, + "description": "Whether follow-up action is required" } } } @@ -753,7 +2656,7 @@ "slug": "procest", "title": "Procest", "version": "1.0.0", - "description": "Case management (zaakgericht werken) register for Procest \u2014 manages case types, status types, cases, tasks, roles, results, and decisions.", + "description": "Case management (zaakgericht werken) register for Procest — manages case types, status types, cases, tasks, roles, results, and decisions.", "schemas": [ "caseType", "statusType", @@ -766,11 +2669,38 @@ "task", "role", "result", - "decision" + "statusRecord", + "decision", + "document", + "documentLink", + "catalogus", + "zaaktypeInformatieobjecttype", + "caseProperty", + "caseDocument", + "caseObject", + "customerContact", + "decisionDocument", + "dispatch", + "usageRights", + "workflowTemplate", + "kanaal", + "abonnement", + "objection", + "hearingSession", + "advisoryReport", + "appealDecision", + "voorstel", + "parafeerroute", + "parafeeractie", + "mapLayer", + "inspectieRapport", + "handhavingsactie", + "inspectieChecklist", + "adviesAanvraag" ], "tablePrefix": "", "folder": "Open Registers/Procest" } } } -} +} \ No newline at end of file diff --git a/lib/Settings/templates/omgevingsvergunning.json b/lib/Settings/templates/omgevingsvergunning.json new file mode 100644 index 0000000..3e0dcb5 --- /dev/null +++ b/lib/Settings/templates/omgevingsvergunning.json @@ -0,0 +1,61 @@ +{ + "id": "omgevingsvergunning", + "title": "Omgevingsvergunning", + "description": "Zaaktype voor het behandelen van omgevingsvergunningaanvragen conform de Omgevingswet. Ondersteunt reguliere (8 weken) en uitgebreide (26 weken) procedures, DSO-intake, ontvankelijkheidstoets, en adviesaanvragen.", + "category": "vth", + "version": "1.0.0", + "caseType": { + "title": "Omgevingsvergunning", + "description": "Behandeling van aanvragen voor een omgevingsvergunning op grond van de Omgevingswet", + "purpose": "Beoordelen en beslissen op vergunningaanvragen voor de fysieke leefomgeving", + "trigger": "Ontvangst van een vergunningaanvraag via DSO/Omgevingsloket of directe indiening", + "subject": "Omgevingsvergunning (bouwen, milieu, kappen, uitrit, etc.)", + "processingDeadline": "P56D", + "confidentiality": "openbaar", + "isDraft": false, + "extensionAllowed": true, + "extensionPeriod": "P42D", + "suspensionAllowed": true, + "publicationRequired": true, + "internalOrExternal": "extern", + "handlerAction": "Beoordelen en beslissen op vergunningaanvraag", + "origin": "aanvragen" + }, + "statusTypes": [ + { "name": "Ontvangen", "description": "Aanvraag ontvangen via DSO of direct", "order": 1, "isFinal": false }, + { "name": "Ontvankelijkheidstoets", "description": "Controle op volledigheid van de aanvraag", "order": 2, "isFinal": false }, + { "name": "Inhoudelijke toets", "description": "Inhoudelijke beoordeling van de aanvraag", "order": 3, "isFinal": false }, + { "name": "Advies", "description": "Intern en extern advies inwinnen", "order": 4, "isFinal": false }, + { "name": "Besluit", "description": "Formeel besluit nemen", "order": 5, "isFinal": false }, + { "name": "Bekendmaking", "description": "Besluit bekendmaken en publiceren", "order": 6, "isFinal": false }, + { "name": "Afgehandeld", "description": "Zaak is afgerond", "order": 7, "isFinal": true } + ], + "propertyDefinitions": [ + { "name": "dsoZaaknummer", "definition": "DSO zaaknummer", "propertyType": "string", "isRequired": false }, + { "name": "activiteiten", "definition": "Aangevraagde activiteiten", "propertyType": "string", "isRequired": false }, + { "name": "locatie", "definition": "Locatie (BAG/kadaster referentie)", "propertyType": "string", "isRequired": false }, + { "name": "bouwkosten", "definition": "Opgegeven bouwkosten", "propertyType": "number", "isRequired": false }, + { "name": "procedureType", "definition": "Procedure type (regulier/uitgebreid)", "propertyType": "string", "isRequired": false, "defaultValue": "regulier" }, + { "name": "aanvragerNaam", "definition": "Naam aanvrager", "propertyType": "string", "isRequired": true }, + { "name": "aanvragerEmail", "definition": "E-mail aanvrager", "propertyType": "email", "isRequired": false } + ], + "documentTypes": [ + { "name": "Aanvraagformulier", "isRequired": true, "category": "incoming" }, + { "name": "Bouwtekening", "isRequired": false, "category": "incoming" }, + { "name": "Constructieberekening", "isRequired": false, "category": "incoming" }, + { "name": "Situatietekening", "isRequired": false, "category": "incoming" }, + { "name": "Ontvangstbevestiging", "isRequired": true, "category": "outgoing" }, + { "name": "Aanvulverzoek", "isRequired": false, "category": "outgoing" }, + { "name": "Vergunningbesluit", "isRequired": true, "category": "outgoing" } + ], + "decisionTypes": [ + { "name": "Vergunning verleend", "publicationRequired": true }, + { "name": "Vergunning geweigerd", "publicationRequired": true }, + { "name": "Vergunning deels verleend", "publicationRequired": true } + ], + "roleTypes": [ + { "name": "Behandelaar", "description": "Vergunningverlener die de aanvraag behandelt" }, + { "name": "Adviseur", "description": "Interne of externe adviseur (bijv. welstand, brandweer)" }, + { "name": "Toezichthouder", "description": "Inspecteur voor toezicht na vergunningverlening" } + ] +} diff --git a/lib/Settings/templates/woo_verzoek.json b/lib/Settings/templates/woo_verzoek.json new file mode 100644 index 0000000..aa511ea --- /dev/null +++ b/lib/Settings/templates/woo_verzoek.json @@ -0,0 +1,217 @@ +{ + "id": "woo-verzoek", + "title": "WOO Verzoek", + "description": "Zaaktype voor het afhandelen van verzoeken op grond van de Wet open overheid (WOO). Pre-geconfigureerd met 8 fasen, WOO-specifieke intake velden, termijnbewaking (4 weken + 2 weken verlenging), en documentbeoordeling.", + "category": "transparantie", + "version": "1.0.0", + "caseType": { + "title": "WOO Verzoek", + "description": "Behandeling van verzoeken op grond van de Wet open overheid", + "purpose": "Transparante afhandeling van informatieverzoeken conform de WOO", + "trigger": "Ontvangst van een WOO-verzoek van een burger, journalist of organisatie", + "subject": "Openbaarmaking van overheidsinformatie", + "processingDeadline": "P28D", + "confidentiality": "intern", + "isDraft": false, + "extensionAllowed": true, + "extensionPeriod": "P14D", + "publicationRequired": true, + "internalOrExternal": "extern", + "handlerAction": "Beoordelen en beslissen op WOO-verzoek", + "origin": "indienen" + }, + "statusTypes": [ + { + "name": "Ontvangst", + "description": "Verzoek ontvangen, ontvangstbevestiging verzenden", + "order": 1, + "isFinal": false + }, + { + "name": "Beoordeling ontvankelijkheid", + "description": "Controleren of het verzoek aan de formele vereisten voldoet", + "order": 2, + "isFinal": false + }, + { + "name": "Zoeken documenten", + "description": "Zoeken en verzamelen van relevante documenten", + "order": 3, + "isFinal": false + }, + { + "name": "Beoordelen documenten", + "description": "Per document beoordelen of openbaarmaking mogelijk is", + "order": 4, + "isFinal": false + }, + { + "name": "Lakken / Anonimiseren", + "description": "Gevoelige informatie in documenten anonimiseren", + "order": 5, + "isFinal": false + }, + { + "name": "Besluit", + "description": "Formeel besluit nemen over openbaarmaking", + "order": 6, + "isFinal": false + }, + { + "name": "Publicatie", + "description": "Goedgekeurde documenten publiceren in de leeskamer", + "order": 7, + "isFinal": false + }, + { + "name": "Afgehandeld", + "description": "Zaak is afgerond", + "order": 8, + "isFinal": true + } + ], + "propertyDefinitions": [ + { + "name": "verzoekerNaam", + "definition": "Naam van de verzoeker", + "description": "Volledige naam van de persoon of organisatie die het WOO-verzoek indient", + "propertyType": "string", + "isRequired": true + }, + { + "name": "verzoekerEmail", + "definition": "E-mailadres van de verzoeker", + "description": "Contactgegevens van de verzoeker voor correspondentie", + "propertyType": "email", + "isRequired": true + }, + { + "name": "verzoekerType", + "definition": "Type verzoeker", + "description": "Categorie: burger, journalist of organisatie", + "propertyType": "string", + "isRequired": false + }, + { + "name": "onderwerp", + "definition": "Onderwerp van het verzoek", + "description": "Het onderwerp waarover informatie wordt gevraagd", + "propertyType": "string", + "isRequired": true + }, + { + "name": "periodeVan", + "definition": "Periode van", + "description": "Begindatum van de periode waarop het verzoek betrekking heeft", + "propertyType": "date", + "isRequired": false + }, + { + "name": "periodeTot", + "definition": "Periode tot", + "description": "Einddatum van de periode waarop het verzoek betrekking heeft", + "propertyType": "date", + "isRequired": false + }, + { + "name": "bestuurlijkeAangelegenheid", + "definition": "Bestuurlijke aangelegenheid", + "description": "De bestuurlijke aangelegenheid waarop het verzoek betrekking heeft", + "propertyType": "string", + "isRequired": false + }, + { + "name": "ontvangstdatum", + "definition": "Ontvangstdatum", + "description": "Datum waarop het WOO-verzoek is ontvangen (voor termijnberekening)", + "propertyType": "date", + "isRequired": true + }, + { + "name": "gewensteVorm", + "definition": "Gewenste vorm van verstrekking", + "description": "Hoe de verzoeker de documenten wil ontvangen: papier, digitaal of inzage", + "propertyType": "string", + "isRequired": false, + "defaultValue": "digitaal" + }, + { + "name": "verdagingReden", + "definition": "Reden verdaging", + "description": "Reden voor de verlenging van de beslistermijn", + "propertyType": "string", + "isRequired": false + } + ], + "documentTypes": [ + { + "name": "WOO-verzoek", + "description": "Het ingediende verzoek om openbaarmaking", + "isRequired": true, + "category": "incoming" + }, + { + "name": "Ontvangstbevestiging", + "description": "Bevestiging van ontvangst aan de verzoeker", + "isRequired": true, + "category": "outgoing" + }, + { + "name": "Inventarislijst", + "description": "Overzicht van alle gevonden documenten met beoordelingsstatus", + "isRequired": true, + "category": "internal" + }, + { + "name": "WOO-besluit", + "description": "Het formele besluit op het WOO-verzoek", + "isRequired": true, + "category": "outgoing" + }, + { + "name": "Te beoordelen document", + "description": "Document dat beoordeeld moet worden voor openbaarmaking", + "isRequired": false, + "category": "internal" + }, + { + "name": "Geanonimiseerd document", + "description": "Geanonimiseerde versie van een deels openbaar document", + "isRequired": false, + "category": "internal" + } + ], + "decisionTypes": [ + { + "name": "WOO-besluit", + "description": "Besluit op een verzoek op grond van de Wet open overheid", + "publicationRequired": true + } + ], + "roleTypes": [ + { + "name": "Behandelaar", + "description": "Medewerker die het WOO-verzoek inhoudelijk behandelt" + }, + { + "name": "WOO-coordinator", + "description": "Coordinator die toezicht houdt op WOO-verzoeken" + }, + { + "name": "Juridisch adviseur", + "description": "Juridisch medewerker die adviseert over weigeringsgronden" + } + ], + "weigeringsgronden": [ + { "code": "5.1.1", "label": "Eenheid van de Kroon" }, + { "code": "5.1.2", "label": "Veiligheid van de Staat" }, + { "code": "5.1.3", "label": "Vertrouwelijk verstrekte bedrijfs- en fabricagegegevens" }, + { "code": "5.1.4", "label": "Persoonlijke beleidsopvattingen" }, + { "code": "5.1.5", "label": "Persoonlijke levenssfeer" }, + { "code": "5.2.1", "label": "Economische of financiele belangen van de Staat" }, + { "code": "5.2.2", "label": "Opsporing en vervolging van strafbare feiten" }, + { "code": "5.2.3", "label": "Inspectie, controle en toezicht door bestuursorganen" }, + { "code": "5.2.4", "label": "Vertrouwelijkheid van beraadslaging" }, + { "code": "5.2.5", "label": "Het goed functioneren van de Staat" } + ] +} diff --git a/lib/Settings/vth-templates/handhavingszaak.json b/lib/Settings/vth-templates/handhavingszaak.json new file mode 100644 index 0000000..0b9050d --- /dev/null +++ b/lib/Settings/vth-templates/handhavingszaak.json @@ -0,0 +1,114 @@ +{ + "_format": "procest-workflow-v1", + "title": "Handhavingszaak", + "description": "Workflow voor handhavingszaken conform de Landelijke Handhavingsstrategie (LHS). Omvat constatering, vooraankondiging, zienswijze, handhavingsbesluit, begunstigingstermijn en hercontrole met escalatiepaden.", + "version": 1, + "steps": [ + { + "id": "step-constatering", + "label": "Constatering", + "status": "Constatering", + "isInitial": true, + "isFinal": false, + "assigneeRole": "Behandelaar", + "description": "Overtreding is geconstateerd, gekoppeld aan bron-inspectierapport", + "checklist": ["LHS classificatie ingevuld (ernst + gedrag)", "Constatering gedocumenteerd"], + "actions": [] + }, + { + "id": "step-vooraankondiging", + "label": "Vooraankondiging", + "status": "Vooraankondiging", + "isInitial": false, + "isFinal": false, + "assigneeRole": "Behandelaar", + "description": "Vooraankondiging verstuurd, zienswijzetermijn gestart", + "checklist": ["Vooraankondigingsbrief verstuurd"], + "actions": [ + {"type": "notification", "config": {"message": "Vooraankondiging verstuurd — zienswijzetermijn 2 weken", "targetRole": "Teamleider"}} + ] + }, + { + "id": "step-zienswijze", + "label": "Zienswijze", + "status": "Zienswijze", + "isInitial": false, + "isFinal": false, + "assigneeRole": "Behandelaar", + "description": "Beoordeling ontvangen zienswijze of termijn verstreken", + "checklist": ["Zienswijzetermijn verstreken of zienswijze ontvangen", "Zienswijze beoordeeld"], + "actions": [] + }, + { + "id": "step-handhavingsbesluit", + "label": "Handhavingsbesluit", + "status": "Handhavingsbesluit", + "isInitial": false, + "isFinal": false, + "assigneeRole": "Behandelaar", + "description": "Handhavingsbesluit genomen (last onder dwangsom / bestuursdwang)", + "checklist": ["LHS classificatie bevestigd", "Handhavingsbesluit opgesteld"], + "actions": [] + }, + { + "id": "step-begunstigingstermijn", + "label": "Begunstigingstermijn", + "status": "Begunstigingstermijn", + "isInitial": false, + "isFinal": false, + "assigneeRole": null, + "description": "Begunstigingstermijn loopt — overtreder heeft tijd om overtreding op te heffen", + "checklist": [], + "actions": [ + {"type": "notification", "config": {"message": "Begunstigingstermijn verlopen — hercontrole uitvoeren", "targetRole": "Behandelaar"}} + ] + }, + { + "id": "step-hercontrole", + "label": "Hercontrole", + "status": "Hercontrole", + "isInitial": false, + "isFinal": false, + "assigneeRole": "Behandelaar", + "description": "Hercontrole of overtreding is opgeheven", + "checklist": ["Hercontrole-inspectie uitgevoerd", "Hercontrolerapport opgesteld"], + "actions": [] + }, + { + "id": "step-afgehandeld", + "label": "Afgehandeld", + "status": "Afgehandeld", + "isInitial": false, + "isFinal": true, + "assigneeRole": null, + "description": "Handhavingszaak afgehandeld (overtreding opgeheven of dwangsom verbeurd)", + "checklist": [], + "actions": [] + } + ], + "transitions": [ + {"id": "tr-1", "label": "Vooraankondiging starten", "fromStatus": "Constatering", "toStatus": "Vooraankondiging", "allowedRoles": ["Behandelaar", "Teamleider"], "guards": [{"type": "checklist", "config": {"message": "LHS classificatie moet zijn ingevuld"}}], "actions": []}, + {"id": "tr-1b", "label": "Direct waarschuwing (geen verdere handhaving)", "fromStatus": "Constatering", "toStatus": "Afgehandeld", "allowedRoles": ["Behandelaar"], "guards": [], "actions": []}, + {"id": "tr-2", "label": "Naar zienswijze", "fromStatus": "Vooraankondiging", "toStatus": "Zienswijze", "allowedRoles": ["Behandelaar"], "guards": [{"type": "checklist", "config": {"message": "Vooraankondigingsbrief moet zijn verstuurd"}}], "actions": []}, + {"id": "tr-3", "label": "Handhavingsbesluit nemen", "fromStatus": "Zienswijze", "toStatus": "Handhavingsbesluit", "allowedRoles": ["Behandelaar", "Teamleider"], "guards": [{"type": "checklist", "config": {"message": "Zienswijze moet zijn beoordeeld"}}], "actions": []}, + {"id": "tr-3b", "label": "Zaak intrekken na zienswijze", "fromStatus": "Zienswijze", "toStatus": "Afgehandeld", "allowedRoles": ["Behandelaar", "Teamleider"], "guards": [], "actions": []}, + {"id": "tr-4", "label": "Begunstigingstermijn starten", "fromStatus": "Handhavingsbesluit", "toStatus": "Begunstigingstermijn", "allowedRoles": ["Behandelaar"], "guards": [{"type": "checklist", "config": {"message": "Handhavingsbesluit moet zijn opgesteld"}}], "actions": []}, + {"id": "tr-5", "label": "Hercontrole uitvoeren", "fromStatus": "Begunstigingstermijn", "toStatus": "Hercontrole", "allowedRoles": ["Behandelaar"], "guards": [], "actions": []}, + {"id": "tr-6a", "label": "Overtreding opgeheven", "fromStatus": "Hercontrole", "toStatus": "Afgehandeld", "allowedRoles": ["Behandelaar"], "guards": [{"type": "checklist", "config": {"message": "Hercontrole-inspectie moet zijn uitgevoerd"}}], "actions": []}, + {"id": "tr-6b", "label": "Overtreding voortdurend — dwangsom verbeuren", "fromStatus": "Hercontrole", "toStatus": "Begunstigingstermijn", "allowedRoles": ["Behandelaar", "Teamleider"], "guards": [], "actions": [{"type": "notification", "config": {"message": "Dwangsom verbeurd — overtreding voortdurend", "targetRole": "Teamleider"}}]} + ], + "nodePositions": { + "step-constatering": {"x": 100, "y": 200}, + "step-vooraankondiging": {"x": 300, "y": 200}, + "step-zienswijze": {"x": 500, "y": 200}, + "step-handhavingsbesluit": {"x": 700, "y": 200}, + "step-begunstigingstermijn": {"x": 900, "y": 200}, + "step-hercontrole": {"x": 1100, "y": 200}, + "step-afgehandeld": {"x": 1300, "y": 200} + }, + "manifest": { + "statusTypes": ["Constatering", "Vooraankondiging", "Zienswijze", "Handhavingsbesluit", "Begunstigingstermijn", "Hercontrole", "Afgehandeld"], + "roleTypes": ["Behandelaar", "Overtreder", "Gemachtigde", "Teamleider"], + "documentTypes": ["Constateringsrapport", "Vooraankondigingsbrief", "Handhavingsbesluit", "Dwangsombeschikking", "Hercontrolerapport"] + } +} diff --git a/lib/Settings/vth-templates/omgevingsvergunning-regulier.json b/lib/Settings/vth-templates/omgevingsvergunning-regulier.json new file mode 100644 index 0000000..f9047fc --- /dev/null +++ b/lib/Settings/vth-templates/omgevingsvergunning-regulier.json @@ -0,0 +1,196 @@ +{ + "_format": "procest-workflow-v1", + "title": "Omgevingsvergunning Bouwactiviteit (regulier)", + "description": "Workflow voor reguliere omgevingsvergunning bouwactiviteit — 8 weken beslistermijn, verlengbaar met 6 weken. Omvat ontvankelijkheidstoets, inhoudelijke toets, advies, besluitvorming en bekendmaking.", + "version": 1, + "steps": [ + { + "id": "step-ontvangen", + "label": "Ontvangen", + "status": "Ontvangen", + "isInitial": true, + "isFinal": false, + "assigneeRole": null, + "description": "Aanvraag is ontvangen via DSO of handmatig", + "checklist": [], + "actions": [ + {"type": "notification", "config": {"message": "Nieuwe vergunningaanvraag ontvangen", "targetRole": "Behandelaar"}} + ] + }, + { + "id": "step-ontvankelijkheid", + "label": "Ontvankelijkheidstoets", + "status": "Ontvankelijkheidstoets", + "isInitial": false, + "isFinal": false, + "assigneeRole": "Behandelaar", + "description": "Controle op volledigheid vereiste documenten", + "checklist": [ + "Bouwtekening aanwezig", + "Constructieberekening aanwezig", + "Situatietekening aanwezig", + "Foto's bestaande situatie aanwezig" + ], + "actions": [] + }, + { + "id": "step-in-behandeling", + "label": "In behandeling", + "status": "In behandeling", + "isInitial": false, + "isFinal": false, + "assigneeRole": "Behandelaar", + "description": "Inhoudelijke beoordeling van de aanvraag", + "checklist": [], + "actions": [] + }, + { + "id": "step-advies", + "label": "Advies", + "status": "Advies", + "isInitial": false, + "isFinal": false, + "assigneeRole": null, + "description": "Intern/extern advies wordt ingewonnen (welstand, brandweer, etc.)", + "checklist": [ + "Alle benodigde adviezen aangevraagd", + "Alle adviezen ontvangen" + ], + "actions": [] + }, + { + "id": "step-besluitvorming", + "label": "Besluitvorming", + "status": "Besluitvorming", + "isInitial": false, + "isFinal": false, + "assigneeRole": "Behandelaar", + "description": "Besluit over verlening of weigering vergunning", + "checklist": [ + "Inhoudelijke toets afgerond", + "Alle adviezen verwerkt" + ], + "actions": [] + }, + { + "id": "step-bekendmaking", + "label": "Bekendmaking", + "status": "Bekendmaking", + "isInitial": false, + "isFinal": false, + "assigneeRole": "Behandelaar", + "description": "Publicatie van het besluit", + "checklist": [], + "actions": [ + {"type": "notification", "config": {"message": "Besluit gepubliceerd — bezwaartermijn gestart", "targetRole": "Teamleider"}} + ] + }, + { + "id": "step-afgehandeld", + "label": "Afgehandeld", + "status": "Afgehandeld", + "isInitial": false, + "isFinal": true, + "assigneeRole": null, + "description": "Zaak is afgehandeld", + "checklist": [], + "actions": [] + } + ], + "transitions": [ + { + "id": "tr-ontvangen-ontvankelijkheid", + "label": "Start ontvankelijkheidstoets", + "fromStatus": "Ontvangen", + "toStatus": "Ontvankelijkheidstoets", + "allowedRoles": ["Behandelaar", "Teamleider"], + "guards": [], + "actions": [] + }, + { + "id": "tr-ontvankelijkheid-behandeling", + "label": "Aanvraag ontvankelijk", + "fromStatus": "Ontvankelijkheidstoets", + "toStatus": "In behandeling", + "allowedRoles": ["Behandelaar"], + "guards": [ + {"type": "checklist", "config": {"message": "Alle vereiste documenten moeten aanwezig zijn"}} + ], + "actions": [] + }, + { + "id": "tr-behandeling-advies", + "label": "Advies aanvragen", + "fromStatus": "In behandeling", + "toStatus": "Advies", + "allowedRoles": ["Behandelaar"], + "guards": [], + "actions": [] + }, + { + "id": "tr-advies-behandeling", + "label": "Terug naar behandeling", + "fromStatus": "Advies", + "toStatus": "In behandeling", + "allowedRoles": ["Behandelaar"], + "guards": [], + "actions": [] + }, + { + "id": "tr-behandeling-besluitvorming", + "label": "Naar besluitvorming", + "fromStatus": "In behandeling", + "toStatus": "Besluitvorming", + "allowedRoles": ["Behandelaar"], + "guards": [ + {"type": "requiredField", "config": {"field": "inhoudelijkeToets", "message": "Inhoudelijke toets moet zijn afgerond"}} + ], + "actions": [] + }, + { + "id": "tr-advies-besluitvorming", + "label": "Direct naar besluitvorming", + "fromStatus": "Advies", + "toStatus": "Besluitvorming", + "allowedRoles": ["Behandelaar"], + "guards": [ + {"type": "checklist", "config": {"message": "Alle adviezen moeten zijn ontvangen"}} + ], + "actions": [] + }, + { + "id": "tr-besluitvorming-bekendmaking", + "label": "Besluit bekendmaken", + "fromStatus": "Besluitvorming", + "toStatus": "Bekendmaking", + "allowedRoles": ["Behandelaar", "Teamleider"], + "guards": [ + {"type": "role", "config": {"requiredRole": "Behandelaar", "message": "Alleen de behandelaar kan het besluit bekendmaken"}} + ], + "actions": [] + }, + { + "id": "tr-bekendmaking-afgehandeld", + "label": "Zaak afsluiten", + "fromStatus": "Bekendmaking", + "toStatus": "Afgehandeld", + "allowedRoles": ["Behandelaar", "Teamleider"], + "guards": [], + "actions": [] + } + ], + "nodePositions": { + "step-ontvangen": {"x": 100, "y": 200}, + "step-ontvankelijkheid": {"x": 300, "y": 200}, + "step-in-behandeling": {"x": 500, "y": 200}, + "step-advies": {"x": 500, "y": 50}, + "step-besluitvorming": {"x": 700, "y": 200}, + "step-bekendmaking": {"x": 900, "y": 200}, + "step-afgehandeld": {"x": 1100, "y": 200} + }, + "manifest": { + "statusTypes": ["Ontvangen", "Ontvankelijkheidstoets", "In behandeling", "Advies", "Besluitvorming", "Bekendmaking", "Afgehandeld"], + "roleTypes": ["Behandelaar", "Aanvrager", "Gemachtigde", "Adviseur (welstand)", "Adviseur (brandweer)", "Teamleider"], + "documentTypes": ["Bouwtekening", "Constructieberekening", "Situatietekening", "Welstandsadvies", "Foto's bestaande situatie", "Besluit", "Bekendmakingstekst"] + } +} diff --git a/lib/Settings/vth-templates/omgevingsvergunning-uitgebreid.json b/lib/Settings/vth-templates/omgevingsvergunning-uitgebreid.json new file mode 100644 index 0000000..137cc6f --- /dev/null +++ b/lib/Settings/vth-templates/omgevingsvergunning-uitgebreid.json @@ -0,0 +1,138 @@ +{ + "_format": "procest-workflow-v1", + "title": "Omgevingsvergunning Bouwactiviteit (uitgebreid)", + "description": "Workflow voor uitgebreide omgevingsvergunning — 26 weken beslistermijn. Bevat extra stappen voor ontwerp-besluit en zienswijzetermijn conform Omgevingswet uitgebreide procedure.", + "version": 1, + "steps": [ + { + "id": "step-ontvangen", + "label": "Ontvangen", + "status": "Ontvangen", + "isInitial": true, + "isFinal": false, + "assigneeRole": null, + "description": "Aanvraag ontvangen", + "checklist": [], + "actions": [ + {"type": "notification", "config": {"message": "Nieuwe vergunningaanvraag (uitgebreid) ontvangen", "targetRole": "Behandelaar"}} + ] + }, + { + "id": "step-ontvankelijkheid", + "label": "Ontvankelijkheidstoets", + "status": "Ontvankelijkheidstoets", + "isInitial": false, + "isFinal": false, + "assigneeRole": "Behandelaar", + "description": "Controle op volledigheid", + "checklist": ["Alle vereiste documenten aanwezig", "Aanvraag compleet"], + "actions": [] + }, + { + "id": "step-in-behandeling", + "label": "In behandeling", + "status": "In behandeling", + "isInitial": false, + "isFinal": false, + "assigneeRole": "Behandelaar", + "description": "Inhoudelijke beoordeling", + "checklist": [], + "actions": [] + }, + { + "id": "step-advies", + "label": "Advies", + "status": "Advies", + "isInitial": false, + "isFinal": false, + "assigneeRole": null, + "description": "Advies inwinnen", + "checklist": ["Alle adviezen ontvangen"], + "actions": [] + }, + { + "id": "step-ontwerp-besluit", + "label": "Ontwerp-besluit", + "status": "Besluitvorming", + "isInitial": false, + "isFinal": false, + "assigneeRole": "Behandelaar", + "description": "Ontwerp-besluit opstellen en ter inzage leggen (6 weken zienswijzetermijn)", + "checklist": ["Ontwerp-besluit opgesteld", "Ter inzage gelegd"], + "actions": [ + {"type": "notification", "config": {"message": "Ontwerp-besluit ter inzage — zienswijzetermijn 6 weken", "targetRole": "Teamleider"}} + ] + }, + { + "id": "step-zienswijze", + "label": "Zienswijze", + "status": "Besluitvorming", + "isInitial": false, + "isFinal": false, + "assigneeRole": "Behandelaar", + "description": "Beoordeling van ontvangen zienswijzen", + "checklist": ["Zienswijzetermijn verstreken", "Zienswijzen beoordeeld"], + "actions": [] + }, + { + "id": "step-definitief-besluit", + "label": "Definitief besluit", + "status": "Besluitvorming", + "isInitial": false, + "isFinal": false, + "assigneeRole": "Behandelaar", + "description": "Definitief besluit nemen", + "checklist": [], + "actions": [] + }, + { + "id": "step-bekendmaking", + "label": "Bekendmaking", + "status": "Bekendmaking", + "isInitial": false, + "isFinal": false, + "assigneeRole": "Behandelaar", + "description": "Publicatie definitief besluit", + "checklist": [], + "actions": [] + }, + { + "id": "step-afgehandeld", + "label": "Afgehandeld", + "status": "Afgehandeld", + "isInitial": false, + "isFinal": true, + "assigneeRole": null, + "description": "Zaak afgehandeld", + "checklist": [], + "actions": [] + } + ], + "transitions": [ + {"id": "tr-1", "label": "Start ontvankelijkheidstoets", "fromStatus": "Ontvangen", "toStatus": "Ontvankelijkheidstoets", "allowedRoles": ["Behandelaar", "Teamleider"], "guards": [], "actions": []}, + {"id": "tr-2", "label": "Aanvraag ontvankelijk", "fromStatus": "Ontvankelijkheidstoets", "toStatus": "In behandeling", "allowedRoles": ["Behandelaar"], "guards": [{"type": "checklist", "config": {"message": "Alle documenten moeten aanwezig zijn"}}], "actions": []}, + {"id": "tr-3", "label": "Advies aanvragen", "fromStatus": "In behandeling", "toStatus": "Advies", "allowedRoles": ["Behandelaar"], "guards": [], "actions": []}, + {"id": "tr-4", "label": "Terug naar behandeling", "fromStatus": "Advies", "toStatus": "In behandeling", "allowedRoles": ["Behandelaar"], "guards": [], "actions": []}, + {"id": "tr-5", "label": "Ontwerp-besluit opstellen", "fromStatus": "In behandeling", "toStatus": "Besluitvorming", "allowedRoles": ["Behandelaar"], "guards": [], "actions": []}, + {"id": "tr-6", "label": "Zienswijzen beoordelen", "fromStatus": "Besluitvorming", "toStatus": "Besluitvorming", "allowedRoles": ["Behandelaar"], "guards": [{"type": "checklist", "config": {"message": "Zienswijzetermijn moet zijn verstreken"}}], "actions": []}, + {"id": "tr-7", "label": "Definitief besluit nemen", "fromStatus": "Besluitvorming", "toStatus": "Besluitvorming", "allowedRoles": ["Behandelaar", "Teamleider"], "guards": [], "actions": []}, + {"id": "tr-8", "label": "Besluit bekendmaken", "fromStatus": "Besluitvorming", "toStatus": "Bekendmaking", "allowedRoles": ["Behandelaar"], "guards": [], "actions": []}, + {"id": "tr-9", "label": "Zaak afsluiten", "fromStatus": "Bekendmaking", "toStatus": "Afgehandeld", "allowedRoles": ["Behandelaar", "Teamleider"], "guards": [], "actions": []} + ], + "nodePositions": { + "step-ontvangen": {"x": 100, "y": 200}, + "step-ontvankelijkheid": {"x": 300, "y": 200}, + "step-in-behandeling": {"x": 500, "y": 200}, + "step-advies": {"x": 500, "y": 50}, + "step-ontwerp-besluit": {"x": 700, "y": 200}, + "step-zienswijze": {"x": 700, "y": 50}, + "step-definitief-besluit": {"x": 900, "y": 200}, + "step-bekendmaking": {"x": 1100, "y": 200}, + "step-afgehandeld": {"x": 1300, "y": 200} + }, + "manifest": { + "statusTypes": ["Ontvangen", "Ontvankelijkheidstoets", "In behandeling", "Advies", "Besluitvorming", "Bekendmaking", "Afgehandeld"], + "roleTypes": ["Behandelaar", "Aanvrager", "Gemachtigde", "Adviseur (welstand)", "Adviseur (brandweer)", "Teamleider"], + "documentTypes": ["Bouwtekening", "Constructieberekening", "Situatietekening", "Welstandsadvies", "Foto's bestaande situatie", "Besluit", "Bekendmakingstekst"] + } +} diff --git a/lib/Settings/vth-templates/sloopmelding.json b/lib/Settings/vth-templates/sloopmelding.json new file mode 100644 index 0000000..7382584 --- /dev/null +++ b/lib/Settings/vth-templates/sloopmelding.json @@ -0,0 +1,28 @@ +{ + "_format": "procest-workflow-v1", + "title": "Sloopmelding", + "description": "Eenvoudige workflow voor sloopmelding — beoordelingstermijn 4 weken.", + "version": 1, + "steps": [ + {"id": "step-ontvangen", "label": "Ontvangen", "status": "Ontvangen", "isInitial": true, "isFinal": false, "assigneeRole": null, "description": "Melding ontvangen", "checklist": [], "actions": []}, + {"id": "step-beoordeling", "label": "Beoordeling", "status": "Beoordeling", "isInitial": false, "isFinal": false, "assigneeRole": "Behandelaar", "description": "Beoordeling van de sloopmelding", "checklist": ["Asbestinventarisatie gecontroleerd", "Sloopplan beoordeeld"], "actions": []}, + {"id": "step-akkoord", "label": "Akkoord", "status": "Akkoord", "isInitial": false, "isFinal": false, "assigneeRole": "Behandelaar", "description": "Melding akkoord bevonden", "checklist": [], "actions": [{"type": "notification", "config": {"message": "Sloopmelding akkoord", "targetRole": "Melder"}}]}, + {"id": "step-afgehandeld", "label": "Afgehandeld", "status": "Afgehandeld", "isInitial": false, "isFinal": true, "assigneeRole": null, "description": "Zaak afgehandeld", "checklist": [], "actions": []} + ], + "transitions": [ + {"id": "tr-1", "label": "Start beoordeling", "fromStatus": "Ontvangen", "toStatus": "Beoordeling", "allowedRoles": ["Behandelaar"], "guards": [], "actions": []}, + {"id": "tr-2", "label": "Melding akkoord", "fromStatus": "Beoordeling", "toStatus": "Akkoord", "allowedRoles": ["Behandelaar"], "guards": [{"type": "checklist", "config": {"message": "Beoordeling moet zijn afgerond"}}], "actions": []}, + {"id": "tr-3", "label": "Zaak afsluiten", "fromStatus": "Akkoord", "toStatus": "Afgehandeld", "allowedRoles": ["Behandelaar"], "guards": [], "actions": []} + ], + "nodePositions": { + "step-ontvangen": {"x": 100, "y": 200}, + "step-beoordeling": {"x": 350, "y": 200}, + "step-akkoord": {"x": 600, "y": 200}, + "step-afgehandeld": {"x": 850, "y": 200} + }, + "manifest": { + "statusTypes": ["Ontvangen", "Beoordeling", "Akkoord", "Afgehandeld"], + "roleTypes": ["Behandelaar", "Melder"], + "documentTypes": ["Sloopplan", "Asbestinventarisatie"] + } +} diff --git a/lib/Settings/vth-templates/toezichtzaak-bouw.json b/lib/Settings/vth-templates/toezichtzaak-bouw.json new file mode 100644 index 0000000..754debc --- /dev/null +++ b/lib/Settings/vth-templates/toezichtzaak-bouw.json @@ -0,0 +1,111 @@ +{ + "_format": "procest-workflow-v1", + "title": "Toezichtzaak Bouw", + "description": "Workflow voor bouwtoezicht met drie inspectiefases: fundering, ruwbouw en oplevering. Elke fase heeft een checklist-guard en ondersteuning voor herinspectie bij non-conformiteit.", + "version": 1, + "steps": [ + { + "id": "step-gepland", + "label": "Gepland", + "status": "Gepland", + "isInitial": true, + "isFinal": false, + "assigneeRole": "Inspecteur", + "description": "Inspectie is ingepland", + "checklist": [], + "actions": [] + }, + { + "id": "step-fase1", + "label": "Inspectie fase 1 - Fundering", + "status": "Inspectie fase 1", + "isInitial": false, + "isFinal": false, + "assigneeRole": "Inspecteur", + "description": "Inspectie van de fundering", + "checklist": ["Fundering-checklist ingevuld", "Inspectierapport opgesteld"], + "actions": [] + }, + { + "id": "step-fase2", + "label": "Inspectie fase 2 - Ruwbouw", + "status": "Inspectie fase 2", + "isInitial": false, + "isFinal": false, + "assigneeRole": "Inspecteur", + "description": "Inspectie van de ruwbouw", + "checklist": ["Ruwbouw-checklist ingevuld", "Inspectierapport opgesteld"], + "actions": [] + }, + { + "id": "step-fase3", + "label": "Inspectie fase 3 - Oplevering", + "status": "Inspectie fase 3", + "isInitial": false, + "isFinal": false, + "assigneeRole": "Inspecteur", + "description": "Inspectie bij oplevering", + "checklist": ["Oplevering-checklist ingevuld", "Inspectierapport opgesteld"], + "actions": [] + }, + { + "id": "step-rapport", + "label": "Rapport", + "status": "Rapport", + "isInitial": false, + "isFinal": false, + "assigneeRole": "Inspecteur", + "description": "Eindrapportage opstellen", + "checklist": [], + "actions": [] + }, + { + "id": "step-opvolging", + "label": "Opvolging", + "status": "Opvolging", + "isInitial": false, + "isFinal": false, + "assigneeRole": "Inspecteur", + "description": "Opvolging van geconstateerde afwijkingen", + "checklist": ["Hercontrole uitgevoerd", "Afwijkingen opgelost"], + "actions": [] + }, + { + "id": "step-afgehandeld", + "label": "Afgehandeld", + "status": "Afgehandeld", + "isInitial": false, + "isFinal": true, + "assigneeRole": null, + "description": "Toezichtzaak afgehandeld", + "checklist": [], + "actions": [] + } + ], + "transitions": [ + {"id": "tr-1", "label": "Start fase 1", "fromStatus": "Gepland", "toStatus": "Inspectie fase 1", "allowedRoles": ["Inspecteur"], "guards": [], "actions": []}, + {"id": "tr-2", "label": "Fase 1 afgerond", "fromStatus": "Inspectie fase 1", "toStatus": "Inspectie fase 2", "allowedRoles": ["Inspecteur"], "guards": [{"type": "checklist", "config": {"message": "Fundering-checklist moet zijn ingevuld"}}], "actions": []}, + {"id": "tr-2b", "label": "Herinspectie fase 1", "fromStatus": "Inspectie fase 1", "toStatus": "Inspectie fase 1", "allowedRoles": ["Inspecteur"], "guards": [], "actions": []}, + {"id": "tr-3", "label": "Fase 2 afgerond", "fromStatus": "Inspectie fase 2", "toStatus": "Inspectie fase 3", "allowedRoles": ["Inspecteur"], "guards": [{"type": "checklist", "config": {"message": "Ruwbouw-checklist moet zijn ingevuld"}}], "actions": []}, + {"id": "tr-3b", "label": "Herinspectie fase 2", "fromStatus": "Inspectie fase 2", "toStatus": "Inspectie fase 2", "allowedRoles": ["Inspecteur"], "guards": [], "actions": []}, + {"id": "tr-4", "label": "Fase 3 afgerond", "fromStatus": "Inspectie fase 3", "toStatus": "Rapport", "allowedRoles": ["Inspecteur"], "guards": [{"type": "checklist", "config": {"message": "Oplevering-checklist moet zijn ingevuld"}}], "actions": []}, + {"id": "tr-4b", "label": "Herinspectie fase 3", "fromStatus": "Inspectie fase 3", "toStatus": "Inspectie fase 3", "allowedRoles": ["Inspecteur"], "guards": [], "actions": []}, + {"id": "tr-5", "label": "Opvolging vereist", "fromStatus": "Rapport", "toStatus": "Opvolging", "allowedRoles": ["Inspecteur"], "guards": [], "actions": [{"type": "notification", "config": {"message": "Opvolging vereist — afwijkingen geconstateerd", "targetRole": "Contactpersoon"}}]}, + {"id": "tr-6", "label": "Zaak afsluiten", "fromStatus": "Rapport", "toStatus": "Afgehandeld", "allowedRoles": ["Inspecteur"], "guards": [], "actions": []}, + {"id": "tr-7", "label": "Opvolging afgerond", "fromStatus": "Opvolging", "toStatus": "Afgehandeld", "allowedRoles": ["Inspecteur"], "guards": [{"type": "checklist", "config": {"message": "Afwijkingen moeten zijn opgelost"}}], "actions": []} + ], + "nodePositions": { + "step-gepland": {"x": 100, "y": 200}, + "step-fase1": {"x": 300, "y": 200}, + "step-fase2": {"x": 500, "y": 200}, + "step-fase3": {"x": 700, "y": 200}, + "step-rapport": {"x": 900, "y": 200}, + "step-opvolging": {"x": 900, "y": 50}, + "step-afgehandeld": {"x": 1100, "y": 200} + }, + "manifest": { + "statusTypes": ["Gepland", "Inspectie fase 1", "Inspectie fase 2", "Inspectie fase 3", "Rapport", "Opvolging", "Afgehandeld"], + "roleTypes": ["Inspecteur", "Contactpersoon", "Opdrachtgever"], + "documentTypes": ["Constateringsrapport", "Inspectieapport", "Foto's"] + } +} diff --git a/lib/Settings/vth-templates/toezichtzaak-milieu.json b/lib/Settings/vth-templates/toezichtzaak-milieu.json new file mode 100644 index 0000000..825ec85 --- /dev/null +++ b/lib/Settings/vth-templates/toezichtzaak-milieu.json @@ -0,0 +1,33 @@ +{ + "_format": "procest-workflow-v1", + "title": "Toezichtzaak Milieu", + "description": "Workflow voor milieu-inspectie — periodiek of incidenteel toezicht op milieuactiviteiten.", + "version": 1, + "steps": [ + {"id": "step-gepland", "label": "Gepland", "status": "Gepland", "isInitial": true, "isFinal": false, "assigneeRole": "Inspecteur", "description": "Inspectie gepland", "checklist": [], "actions": []}, + {"id": "step-inspectie", "label": "Inspectie", "status": "Inspectie", "isInitial": false, "isFinal": false, "assigneeRole": "Inspecteur", "description": "Inspectie wordt uitgevoerd", "checklist": ["Inspectiechecklist ingevuld", "Inspectierapport opgesteld"], "actions": []}, + {"id": "step-rapport", "label": "Rapport", "status": "Rapport", "isInitial": false, "isFinal": false, "assigneeRole": "Inspecteur", "description": "Rapportage", "checklist": [], "actions": []}, + {"id": "step-opvolging", "label": "Opvolging", "status": "Opvolging", "isInitial": false, "isFinal": false, "assigneeRole": "Inspecteur", "description": "Opvolging afwijkingen", "checklist": ["Hercontrole uitgevoerd"], "actions": []}, + {"id": "step-afgehandeld", "label": "Afgehandeld", "status": "Afgehandeld", "isInitial": false, "isFinal": true, "assigneeRole": null, "description": "Afgehandeld", "checklist": [], "actions": []} + ], + "transitions": [ + {"id": "tr-1", "label": "Start inspectie", "fromStatus": "Gepland", "toStatus": "Inspectie", "allowedRoles": ["Inspecteur"], "guards": [], "actions": []}, + {"id": "tr-2", "label": "Rapport opstellen", "fromStatus": "Inspectie", "toStatus": "Rapport", "allowedRoles": ["Inspecteur"], "guards": [{"type": "checklist", "config": {"message": "Checklist moet zijn ingevuld"}}], "actions": []}, + {"id": "tr-2b", "label": "Herinspectie", "fromStatus": "Inspectie", "toStatus": "Inspectie", "allowedRoles": ["Inspecteur"], "guards": [], "actions": []}, + {"id": "tr-3", "label": "Opvolging vereist", "fromStatus": "Rapport", "toStatus": "Opvolging", "allowedRoles": ["Inspecteur"], "guards": [], "actions": []}, + {"id": "tr-4", "label": "Zaak afsluiten", "fromStatus": "Rapport", "toStatus": "Afgehandeld", "allowedRoles": ["Inspecteur"], "guards": [], "actions": []}, + {"id": "tr-5", "label": "Opvolging afgerond", "fromStatus": "Opvolging", "toStatus": "Afgehandeld", "allowedRoles": ["Inspecteur"], "guards": [{"type": "checklist", "config": {"message": "Hercontrole moet zijn uitgevoerd"}}], "actions": []} + ], + "nodePositions": { + "step-gepland": {"x": 100, "y": 200}, + "step-inspectie": {"x": 350, "y": 200}, + "step-rapport": {"x": 600, "y": 200}, + "step-opvolging": {"x": 600, "y": 50}, + "step-afgehandeld": {"x": 850, "y": 200} + }, + "manifest": { + "statusTypes": ["Gepland", "Inspectie", "Rapport", "Opvolging", "Afgehandeld"], + "roleTypes": ["Inspecteur", "Contactpersoon", "Inrichtinghouder"], + "documentTypes": [] + } +} diff --git a/lib/Settings/vth_seed_data.json b/lib/Settings/vth_seed_data.json new file mode 100644 index 0000000..caeed46 --- /dev/null +++ b/lib/Settings/vth_seed_data.json @@ -0,0 +1,264 @@ +{ + "description": "VTH (Vergunningen, Toezicht, Handhaving) seed data for Procest case types, status types, role types, document types, property definitions, and inspection checklists. Imported idempotently via repair step.", + "version": "1.0.0", + "caseTypes": [ + { + "slug": "omgevingsvergunning-bouwactiviteit", + "title": "Omgevingsvergunning Bouwactiviteit", + "description": "Omgevingsvergunning voor bouwactiviteiten onder de Omgevingswet. Reguliere procedure (8 weken) of uitgebreide procedure (26 weken).", + "processingDeadline": "P56D", + "suspensionAllowed": true, + "extensionAllowed": true, + "extensionDuration": "P42D", + "confidentiality": "openbaar", + "origin": "aanvragen", + "statusTypes": [ + {"name": "Ontvangen", "description": "Aanvraag is ontvangen", "order": 1, "isFinal": false}, + {"name": "Ontvankelijkheidstoets", "description": "Controle op volledigheid van de aanvraag", "order": 2, "isFinal": false}, + {"name": "In behandeling", "description": "Aanvraag wordt inhoudelijk beoordeeld", "order": 3, "isFinal": false}, + {"name": "Advies", "description": "Advies wordt ingewonnen bij interne/externe partijen", "order": 4, "isFinal": false}, + {"name": "Besluitvorming", "description": "Besluit wordt genomen over de vergunning", "order": 5, "isFinal": false}, + {"name": "Bekendmaking", "description": "Besluit wordt bekendgemaakt", "order": 6, "isFinal": false}, + {"name": "Afgehandeld", "description": "Zaak is afgehandeld", "order": 7, "isFinal": true} + ], + "roleTypes": [ + {"name": "Behandelaar", "description": "Medewerker die de aanvraag behandelt"}, + {"name": "Aanvrager", "description": "Persoon die de vergunning aanvraagt"}, + {"name": "Gemachtigde", "description": "Gemachtigd persoon namens de aanvrager"}, + {"name": "Adviseur (welstand)", "description": "Welstandscommissie adviseur"}, + {"name": "Adviseur (brandweer)", "description": "Brandweer/Veiligheidsregio adviseur"}, + {"name": "Teamleider", "description": "Leidinggevende van het behandelteam"} + ], + "documentTypes": [ + {"name": "Bouwtekening", "description": "Technische bouwtekeningen"}, + {"name": "Constructieberekening", "description": "Constructieve berekeningen"}, + {"name": "Situatietekening", "description": "Situatietekening van het perceel"}, + {"name": "Welstandsadvies", "description": "Advies van de welstandscommissie"}, + {"name": "Foto's bestaande situatie", "description": "Foto's van de huidige situatie"}, + {"name": "Besluit", "description": "Het vergunningsbesluit"}, + {"name": "Bekendmakingstekst", "description": "Tekst voor publicatie van het besluit"} + ], + "propertyDefinitions": [ + {"name": "bouwkosten", "type": "number", "description": "Geschatte bouwkosten (EUR)"}, + {"name": "oppervlakte", "type": "number", "description": "Bouwoppervlakte in m2"}, + {"name": "aantalBouwlagen", "type": "integer", "description": "Aantal bouwlagen"}, + {"name": "bagObject", "type": "string", "description": "BAG object referentie"}, + {"name": "activiteiten", "type": "array", "description": "Activiteiten uit DSO verzoek"}, + {"name": "procedureType", "type": "string", "description": "Procedure type: regulier of uitgebreid", "enum": ["regulier", "uitgebreid"]}, + {"name": "dsoVerzoekId", "type": "string", "description": "DSO verzoek identificatie"} + ] + }, + { + "slug": "sloopmelding", + "title": "Sloopmelding", + "description": "Melding voor sloopactiviteiten. Beoordelingstermijn 4 weken.", + "processingDeadline": "P28D", + "suspensionAllowed": false, + "confidentiality": "openbaar", + "origin": "melden", + "statusTypes": [ + {"name": "Ontvangen", "description": "Melding ontvangen", "order": 1, "isFinal": false}, + {"name": "Beoordeling", "description": "Melding wordt beoordeeld", "order": 2, "isFinal": false}, + {"name": "Akkoord", "description": "Melding akkoord bevonden", "order": 3, "isFinal": false}, + {"name": "Afgehandeld", "description": "Zaak afgehandeld", "order": 4, "isFinal": true} + ], + "roleTypes": [ + {"name": "Behandelaar", "description": "Medewerker die de melding beoordeelt"}, + {"name": "Melder", "description": "Persoon die de sloopmelding doet"} + ], + "documentTypes": [ + {"name": "Sloopplan", "description": "Plan voor de sloopwerkzaamheden"}, + {"name": "Asbestinventarisatie", "description": "Rapport asbestinventarisatie"} + ], + "propertyDefinitions": [ + {"name": "asbestInventarisatie", "type": "boolean", "description": "Of asbestinventarisatie is uitgevoerd"}, + {"name": "sloopOppervlakte", "type": "number", "description": "Oppervlakte te slopen in m2"} + ] + }, + { + "slug": "toezichtzaak-bouw", + "title": "Toezichtzaak Bouw", + "description": "Toezichtzaak voor bouwactiviteiten met meerdere inspectiefases (fundering, ruwbouw, oplevering).", + "confidentiality": "intern", + "origin": "ambtshalve", + "statusTypes": [ + {"name": "Gepland", "description": "Inspectie is gepland", "order": 1, "isFinal": false}, + {"name": "Inspectie fase 1", "description": "Fundering-inspectie", "order": 2, "isFinal": false}, + {"name": "Inspectie fase 2", "description": "Ruwbouw-inspectie", "order": 3, "isFinal": false}, + {"name": "Inspectie fase 3", "description": "Oplevering-inspectie", "order": 4, "isFinal": false}, + {"name": "Rapport", "description": "Eindrapportage wordt opgesteld", "order": 5, "isFinal": false}, + {"name": "Opvolging", "description": "Opvolging van geconstateerde afwijkingen", "order": 6, "isFinal": false}, + {"name": "Afgehandeld", "description": "Toezichtzaak afgehandeld", "order": 7, "isFinal": true} + ], + "roleTypes": [ + {"name": "Inspecteur", "description": "Toezichthouder die de inspectie uitvoert"}, + {"name": "Contactpersoon", "description": "Contactpersoon op de bouwlocatie"}, + {"name": "Opdrachtgever", "description": "Opdrachtgever van de bouwwerkzaamheden"} + ], + "documentTypes": [ + {"name": "Constateringsrapport", "description": "Rapport van constateringen tijdens inspectie"}, + {"name": "Inspectieapport", "description": "Formeel inspectierapport"}, + {"name": "Foto's", "description": "Foto's gemaakt tijdens inspectie"} + ], + "propertyDefinitions": [ + {"name": "bouwvergunningZaak", "type": "string", "description": "Referentie naar de bouwvergunningzaak"}, + {"name": "inspectieFases", "type": "array", "description": "Lijst van inspectiefases (fundering, ruwbouw, oplevering)"}, + {"name": "laatsteInspectieResultaat", "type": "string", "description": "Resultaat van de laatste inspectie", "enum": ["conform", "niet_conform", "deels_conform"]} + ] + }, + { + "slug": "toezichtzaak-milieu", + "title": "Toezichtzaak Milieu", + "description": "Toezichtzaak voor milieuactiviteiten (periodiek of incidenteel).", + "confidentiality": "intern", + "origin": "ambtshalve", + "statusTypes": [ + {"name": "Gepland", "description": "Inspectie gepland", "order": 1, "isFinal": false}, + {"name": "Inspectie", "description": "Inspectie wordt uitgevoerd", "order": 2, "isFinal": false}, + {"name": "Rapport", "description": "Rapportage", "order": 3, "isFinal": false}, + {"name": "Opvolging", "description": "Opvolging", "order": 4, "isFinal": false}, + {"name": "Afgehandeld", "description": "Afgehandeld", "order": 5, "isFinal": true} + ], + "roleTypes": [ + {"name": "Inspecteur", "description": "Milieu-inspecteur"}, + {"name": "Contactpersoon", "description": "Contactpersoon bij de inrichting"}, + {"name": "Inrichtinghouder", "description": "Houder van de milieuvergunning"} + ], + "propertyDefinitions": [ + {"name": "inspectieType", "type": "string", "description": "Type inspectie", "enum": ["periodiek", "incidenteel"]}, + {"name": "risicoCategorie", "type": "string", "description": "Risicocategorie van de inrichting", "enum": ["hoog", "midden", "laag"]}, + {"name": "voorgaandeInspecties", "type": "integer", "description": "Aantal eerdere inspecties"} + ] + }, + { + "slug": "handhavingszaak", + "title": "Handhavingszaak", + "description": "Handhavingszaak met LHS-classificatie (Landelijke Handhavingsstrategie). Omvat vooraankondiging, zienswijze, handhavingsbesluit, begunstigingstermijn en hercontrole.", + "confidentiality": "zaakvertrouwelijk", + "origin": "ambtshalve", + "statusTypes": [ + {"name": "Constatering", "description": "Overtreding is geconstateerd", "order": 1, "isFinal": false}, + {"name": "Vooraankondiging", "description": "Vooraankondiging verstuurd", "order": 2, "isFinal": false}, + {"name": "Zienswijze", "description": "Zienswijzetermijn loopt", "order": 3, "isFinal": false}, + {"name": "Handhavingsbesluit", "description": "Handhavingsbesluit genomen", "order": 4, "isFinal": false}, + {"name": "Begunstigingstermijn", "description": "Begunstigingstermijn loopt", "order": 5, "isFinal": false}, + {"name": "Hercontrole", "description": "Hercontrole wordt uitgevoerd", "order": 6, "isFinal": false}, + {"name": "Afgehandeld", "description": "Handhavingszaak afgehandeld", "order": 7, "isFinal": true} + ], + "roleTypes": [ + {"name": "Behandelaar", "description": "Handhavingsmedewerker"}, + {"name": "Overtreder", "description": "De overtreder"}, + {"name": "Gemachtigde", "description": "Gemachtigde van de overtreder"}, + {"name": "Teamleider", "description": "Leidinggevende handhaving"} + ], + "documentTypes": [ + {"name": "Constateringsrapport", "description": "Rapport van de constatering"}, + {"name": "Vooraankondigingsbrief", "description": "Brief vooraankondiging handhaving"}, + {"name": "Handhavingsbesluit", "description": "Het handhavingsbesluit"}, + {"name": "Dwangsombeschikking", "description": "Beschikking last onder dwangsom"}, + {"name": "Hercontrolerapport", "description": "Rapport van de hercontrole"} + ], + "propertyDefinitions": [ + {"name": "overtredingstype", "type": "string", "description": "Type overtreding"}, + {"name": "ernst", "type": "string", "description": "Ernst van de overtreding (LHS)", "enum": ["gering", "aanzienlijk", "ernstig"]}, + {"name": "gedrag", "type": "string", "description": "Gedrag van de overtreder (LHS)", "enum": ["goedwillend", "onverschillig", "calculerend", "crimineel"]}, + {"name": "interventie", "type": "string", "description": "Gekozen interventie (uit LHS matrix)"}, + {"name": "dwangsomBedrag", "type": "number", "description": "Dwangsom per overtreding (EUR)"}, + {"name": "dwangsomMaximaal", "type": "number", "description": "Maximale dwangsom (EUR)"}, + {"name": "begunstigingstermijn", "type": "integer", "description": "Begunstigingstermijn in dagen"}, + {"name": "bronInspectie", "type": "string", "description": "Referentie naar de toezichtzaak"} + ] + }, + { + "slug": "invorderingszaak", + "title": "Invorderingszaak", + "description": "Invorderingszaak voor verbeurde dwangsommen.", + "confidentiality": "zaakvertrouwelijk", + "origin": "ambtshalve", + "statusTypes": [ + {"name": "Verbeuring", "description": "Dwangsom is verbeurd", "order": 1, "isFinal": false}, + {"name": "Invordering", "description": "Invordering is gestart", "order": 2, "isFinal": false}, + {"name": "Betaald", "description": "Dwangsom is betaald", "order": 3, "isFinal": false}, + {"name": "Afgehandeld", "description": "Invorderingszaak afgehandeld", "order": 4, "isFinal": true} + ], + "roleTypes": [ + {"name": "Behandelaar", "description": "Medewerker die invordering behandelt"}, + {"name": "Overtreder", "description": "De overtreder/schuldenaar"} + ], + "propertyDefinitions": [ + {"name": "bronHandhavingszaak", "type": "string", "description": "Referentie naar de handhavingszaak"}, + {"name": "verbeurdBedrag", "type": "number", "description": "Verbeurd bedrag (EUR)"}, + {"name": "verbeuringsDatum", "type": "string", "description": "Datum van verbeuring"} + ] + } + ], + "inspectionChecklists": [ + { + "slug": "bouwtoezicht-fase-1-fundering", + "name": "Bouwtoezicht fase 1 - Fundering", + "caseTypeSlug": "toezichtzaak-bouw", + "version": 1, + "status": "active", + "items": [ + {"order": 1, "label": "Fundering conform tekening", "type": "ja_nee_nvt", "required": true, "fotoRequired": false, "helpText": "Controleer of de fundering overeenkomt met de goedgekeurde bouwtekening"}, + {"order": 2, "label": "Wapening aanwezig en correct", "type": "ja_nee_nvt", "required": true, "fotoRequired": false, "helpText": "Controleer diameter, hart-op-hart afstand en dekking van de wapening"}, + {"order": 3, "label": "Waterkering conform bestek", "type": "ja_nee_nvt", "required": true, "fotoRequired": true, "helpText": "Controleer waterkeringsmaatregelen en maak foto bij afwijking"}, + {"order": 4, "label": "Maatvoering gecontroleerd", "type": "getal", "required": true, "fotoRequired": false, "helpText": "Meet de afwijking in mm ten opzichte van de tekening"} + ] + }, + { + "slug": "bouwtoezicht-fase-2-ruwbouw", + "name": "Bouwtoezicht fase 2 - Ruwbouw", + "caseTypeSlug": "toezichtzaak-bouw", + "version": 1, + "status": "active", + "items": [ + {"order": 1, "label": "Metselwerk conform tekening", "type": "ja_nee_nvt", "required": true, "fotoRequired": false, "helpText": "Controleer metselwerk op conformiteit met de bouwtekening"}, + {"order": 2, "label": "Kozijnen correct geplaatst", "type": "ja_nee_nvt", "required": true, "fotoRequired": false, "helpText": "Controleer plaatsing, waterdichtheid en isolatie van kozijnen"}, + {"order": 3, "label": "Dakconstructie conform bestek", "type": "ja_nee_nvt", "required": true, "fotoRequired": true, "helpText": "Controleer dakconstructie, gordingen en spanten"}, + {"order": 4, "label": "Leidingen correct aangelegd", "type": "ja_nee_nvt", "required": true, "fotoRequired": false, "helpText": "Controleer water-, gas- en elektriciteitsleidingen"}, + {"order": 5, "label": "Brandwering aangebracht", "type": "ja_nee_nvt", "required": true, "fotoRequired": true, "helpText": "Controleer brandwerende doorvoeringen en scheidingen"} + ] + }, + { + "slug": "bouwtoezicht-fase-3-oplevering", + "name": "Bouwtoezicht fase 3 - Oplevering", + "caseTypeSlug": "toezichtzaak-bouw", + "version": 1, + "status": "active", + "items": [ + {"order": 1, "label": "Afwerking conform bestek", "type": "ja_nee_nvt", "required": true, "fotoRequired": false, "helpText": "Controleer afwerking vloeren, wanden en plafonds"}, + {"order": 2, "label": "Installaties werkend", "type": "ja_nee_nvt", "required": true, "fotoRequired": false, "helpText": "Test verwarming, ventilatie, elektra en sanitair"}, + {"order": 3, "label": "Brandveiligheid gewaarborgd", "type": "ja_nee_nvt", "required": true, "fotoRequired": true, "helpText": "Controleer rookmelders, vluchtroutes, noodverlichting"}, + {"order": 4, "label": "Toegankelijkheid conform Bouwbesluit", "type": "ja_nee_nvt", "required": true, "fotoRequired": false, "helpText": "Controleer drempels, deurbreedtes, toilet toegankelijkheid"}, + {"order": 5, "label": "Energielabel bepaald", "type": "tekst", "required": true, "fotoRequired": false, "helpText": "Noteer het energielabel (A++++ t/m G)"}, + {"order": 6, "label": "As-built tekeningen ontvangen", "type": "ja_nee_nvt", "required": true, "fotoRequired": false, "helpText": "Controleer of as-built tekeningen zijn aangeleverd"} + ] + } + ], + "lhsMatrix": { + "description": "Default Landelijke Handhavingsstrategie (LHS) matrix — ernst x gedrag = interventie", + "ernstLevels": ["gering", "aanzienlijk", "ernstig"], + "gedragLevels": ["goedwillend", "onverschillig", "calculerend", "crimineel"], + "matrix": { + "gering": { + "goedwillend": "Waarschuwing", + "onverschillig": "Waarschuwing + herstel", + "calculerend": "Last onder dwangsom", + "crimineel": "PV + Last" + }, + "aanzienlijk": { + "goedwillend": "Herstelactie", + "onverschillig": "Last onder dwangsom", + "calculerend": "Last + PV", + "crimineel": "PV + Bestuursdwang" + }, + "ernstig": { + "goedwillend": "Last onder dwangsom", + "onverschillig": "Last + PV", + "calculerend": "PV + Bestuursdwang", + "crimineel": "PV + Bestuursdwang" + } + } + } +} diff --git a/license-report-composer/composer-licenses.json b/license-report-composer/composer-licenses.json new file mode 100644 index 0000000..fd49b62 --- /dev/null +++ b/license-report-composer/composer-licenses.json @@ -0,0 +1,746 @@ +[ + { + "package": "amphp/amp", + "version": "v2.6.5", + "license": "MIT", + "status": "approved", + "override": "", + "ecosystem": "composer" + }, + { + "package": "amphp/byte-stream", + "version": "v1.8.2", + "license": "MIT", + "status": "approved", + "override": "", + "ecosystem": "composer" + }, + { + "package": "composer/pcre", + "version": "3.3.2", + "license": "MIT", + "status": "approved", + "override": "", + "ecosystem": "composer" + }, + { + "package": "composer/semver", + "version": "3.4.4", + "license": "MIT", + "status": "approved", + "override": "", + "ecosystem": "composer" + }, + { + "package": "composer/xdebug-handler", + "version": "3.0.5", + "license": "MIT", + "status": "approved", + "override": "", + "ecosystem": "composer" + }, + { + "package": "consolidation/annotated-command", + "version": "4.10.4", + "license": "MIT", + "status": "approved", + "override": "", + "ecosystem": "composer" + }, + { + "package": "consolidation/config", + "version": "2.1.2", + "license": "MIT", + "status": "approved", + "override": "", + "ecosystem": "composer" + }, + { + "package": "consolidation/log", + "version": "3.1.1", + "license": "MIT", + "status": "approved", + "override": "", + "ecosystem": "composer" + }, + { + "package": "consolidation/output-formatters", + "version": "4.7.0", + "license": "MIT", + "status": "approved", + "override": "", + "ecosystem": "composer" + }, + { + "package": "consolidation/robo", + "version": "4.0.6", + "license": "MIT", + "status": "approved", + "override": "", + "ecosystem": "composer" + }, + { + "package": "consolidation/self-update", + "version": "2.2.0", + "license": "MIT", + "status": "approved", + "override": "", + "ecosystem": "composer" + }, + { + "package": "dealerdirect/phpcodesniffer-composer-installer", + "version": "v1.2.0", + "license": "MIT", + "status": "approved", + "override": "", + "ecosystem": "composer" + }, + { + "package": "dflydev/dot-access-data", + "version": "v3.0.3", + "license": "MIT", + "status": "approved", + "override": "", + "ecosystem": "composer" + }, + { + "package": "dnoegel/php-xdg-base-dir", + "version": "v0.1.1", + "license": "MIT", + "status": "approved", + "override": "", + "ecosystem": "composer" + }, + { + "package": "doctrine/deprecations", + "version": "1.1.6", + "license": "MIT", + "status": "approved", + "override": "", + "ecosystem": "composer" + }, + { + "package": "edgedesign/phpqa", + "version": "v1.27.2", + "license": "MIT", + "status": "approved", + "override": "", + "ecosystem": "composer" + }, + { + "package": "felixfbecker/advanced-json-rpc", + "version": "v3.2.1", + "license": "ISC", + "status": "approved", + "override": "", + "ecosystem": "composer" + }, + { + "package": "felixfbecker/language-server-protocol", + "version": "v1.5.3", + "license": "ISC", + "status": "approved", + "override": "", + "ecosystem": "composer" + }, + { + "package": "fidry/cpu-core-counter", + "version": "1.3.0", + "license": "MIT", + "status": "approved", + "override": "", + "ecosystem": "composer" + }, + { + "package": "grasmash/expander", + "version": "3.0.1", + "license": "MIT", + "status": "approved", + "override": "", + "ecosystem": "composer" + }, + { + "package": "kubawerlos/php-cs-fixer-custom-fixers", + "version": "v3.36.0", + "license": "MIT", + "status": "approved", + "override": "", + "ecosystem": "composer" + }, + { + "package": "league/container", + "version": "4.2.5", + "license": "MIT", + "status": "approved", + "override": "", + "ecosystem": "composer" + }, + { + "package": "myclabs/deep-copy", + "version": "1.13.4", + "license": "MIT", + "status": "approved", + "override": "", + "ecosystem": "composer" + }, + { + "package": "netresearch/jsonmapper", + "version": "v4.5.0", + "license": "OSL-3.0", + "status": "approved", + "override": "", + "ecosystem": "composer" + }, + { + "package": "nextcloud/coding-standard", + "version": "v1.4.0", + "license": "MIT", + "status": "approved", + "override": "", + "ecosystem": "composer" + }, + { + "package": "nextcloud/ocp", + "version": "v31.0.9", + "license": "AGPL-3.0-or-later", + "status": "approved", + "override": "", + "ecosystem": "composer" + }, + { + "package": "nikic/php-parser", + "version": "v4.19.5", + "license": "BSD-3-Clause", + "status": "approved", + "override": "", + "ecosystem": "composer" + }, + { + "package": "pdepend/pdepend", + "version": "2.16.2", + "license": "BSD-3-Clause", + "status": "approved", + "override": "", + "ecosystem": "composer" + }, + { + "package": "phar-io/manifest", + "version": "2.0.4", + "license": "BSD-3-Clause", + "status": "approved", + "override": "", + "ecosystem": "composer" + }, + { + "package": "phar-io/version", + "version": "3.2.1", + "license": "BSD-3-Clause", + "status": "approved", + "override": "", + "ecosystem": "composer" + }, + { + "package": "phootwork/collection", + "version": "v3.2.3", + "license": "MIT", + "status": "approved", + "override": "", + "ecosystem": "composer" + }, + { + "package": "phootwork/lang", + "version": "v3.2.3", + "license": "MIT", + "status": "approved", + "override": "", + "ecosystem": "composer" + }, + { + "package": "php-cs-fixer/shim", + "version": "v3.94.2", + "license": "MIT", + "status": "approved", + "override": "", + "ecosystem": "composer" + }, + { + "package": "phpcsstandards/phpcsextra", + "version": "1.5.0", + "license": "LGPL-3.0-or-later", + "status": "approved", + "override": "", + "ecosystem": "composer" + }, + { + "package": "phpcsstandards/phpcsutils", + "version": "1.2.2", + "license": "LGPL-3.0-or-later", + "status": "approved", + "override": "", + "ecosystem": "composer" + }, + { + "package": "phpdocumentor/reflection-common", + "version": "2.2.0", + "license": "MIT", + "status": "approved", + "override": "", + "ecosystem": "composer" + }, + { + "package": "phpdocumentor/reflection-docblock", + "version": "5.6.6", + "license": "MIT", + "status": "approved", + "override": "", + "ecosystem": "composer" + }, + { + "package": "phpdocumentor/type-resolver", + "version": "1.12.0", + "license": "MIT", + "status": "approved", + "override": "", + "ecosystem": "composer" + }, + { + "package": "phpmd/phpmd", + "version": "2.15.0", + "license": "BSD-3-Clause", + "status": "approved", + "override": "", + "ecosystem": "composer" + }, + { + "package": "phpmetrics/phpmetrics", + "version": "v2.9.1", + "license": "MIT", + "status": "approved", + "override": "", + "ecosystem": "composer" + }, + { + "package": "phpowermove/docblock", + "version": "v4.0", + "license": "MIT", + "status": "approved", + "override": "", + "ecosystem": "composer" + }, + { + "package": "phpstan/phpdoc-parser", + "version": "2.3.2", + "license": "MIT", + "status": "approved", + "override": "", + "ecosystem": "composer" + }, + { + "package": "phpstan/phpstan", + "version": "1.12.33", + "license": "MIT", + "status": "approved", + "override": "", + "ecosystem": "composer" + }, + { + "package": "phpunit/php-code-coverage", + "version": "10.1.16", + "license": "BSD-3-Clause", + "status": "approved", + "override": "", + "ecosystem": "composer" + }, + { + "package": "phpunit/php-file-iterator", + "version": "4.1.0", + "license": "BSD-3-Clause", + "status": "approved", + "override": "", + "ecosystem": "composer" + }, + { + "package": "phpunit/php-invoker", + "version": "4.0.0", + "license": "BSD-3-Clause", + "status": "approved", + "override": "", + "ecosystem": "composer" + }, + { + "package": "phpunit/php-text-template", + "version": "3.0.1", + "license": "BSD-3-Clause", + "status": "approved", + "override": "", + "ecosystem": "composer" + }, + { + "package": "phpunit/php-timer", + "version": "6.0.0", + "license": "BSD-3-Clause", + "status": "approved", + "override": "", + "ecosystem": "composer" + }, + { + "package": "phpunit/phpunit", + "version": "10.5.63", + "license": "BSD-3-Clause", + "status": "approved", + "override": "", + "ecosystem": "composer" + }, + { + "package": "psr/clock", + "version": "1.0.0", + "license": "MIT", + "status": "approved", + "override": "", + "ecosystem": "composer" + }, + { + "package": "psr/container", + "version": "2.0.2", + "license": "MIT", + "status": "approved", + "override": "", + "ecosystem": "composer" + }, + { + "package": "psr/event-dispatcher", + "version": "1.0.0", + "license": "MIT", + "status": "approved", + "override": "", + "ecosystem": "composer" + }, + { + "package": "psr/log", + "version": "3.0.2", + "license": "MIT", + "status": "approved", + "override": "", + "ecosystem": "composer" + }, + { + "package": "roave/security-advisories", + "version": "dev-latest c1109f3", + "license": "MIT", + "status": "approved", + "override": "", + "ecosystem": "composer" + }, + { + "package": "sebastian/cli-parser", + "version": "2.0.1", + "license": "BSD-3-Clause", + "status": "approved", + "override": "", + "ecosystem": "composer" + }, + { + "package": "sebastian/code-unit", + "version": "2.0.0", + "license": "BSD-3-Clause", + "status": "approved", + "override": "", + "ecosystem": "composer" + }, + { + "package": "sebastian/code-unit-reverse-lookup", + "version": "3.0.0", + "license": "BSD-3-Clause", + "status": "approved", + "override": "", + "ecosystem": "composer" + }, + { + "package": "sebastian/comparator", + "version": "5.0.5", + "license": "BSD-3-Clause", + "status": "approved", + "override": "", + "ecosystem": "composer" + }, + { + "package": "sebastian/complexity", + "version": "3.2.0", + "license": "BSD-3-Clause", + "status": "approved", + "override": "", + "ecosystem": "composer" + }, + { + "package": "sebastian/diff", + "version": "5.1.1", + "license": "BSD-3-Clause", + "status": "approved", + "override": "", + "ecosystem": "composer" + }, + { + "package": "sebastian/environment", + "version": "6.1.0", + "license": "BSD-3-Clause", + "status": "approved", + "override": "", + "ecosystem": "composer" + }, + { + "package": "sebastian/exporter", + "version": "5.1.4", + "license": "BSD-3-Clause", + "status": "approved", + "override": "", + "ecosystem": "composer" + }, + { + "package": "sebastian/global-state", + "version": "6.0.2", + "license": "BSD-3-Clause", + "status": "approved", + "override": "", + "ecosystem": "composer" + }, + { + "package": "sebastian/lines-of-code", + "version": "2.0.2", + "license": "BSD-3-Clause", + "status": "approved", + "override": "", + "ecosystem": "composer" + }, + { + "package": "sebastian/object-enumerator", + "version": "5.0.0", + "license": "BSD-3-Clause", + "status": "approved", + "override": "", + "ecosystem": "composer" + }, + { + "package": "sebastian/object-reflector", + "version": "3.0.0", + "license": "BSD-3-Clause", + "status": "approved", + "override": "", + "ecosystem": "composer" + }, + { + "package": "sebastian/recursion-context", + "version": "5.0.1", + "license": "BSD-3-Clause", + "status": "approved", + "override": "", + "ecosystem": "composer" + }, + { + "package": "sebastian/type", + "version": "4.0.0", + "license": "BSD-3-Clause", + "status": "approved", + "override": "", + "ecosystem": "composer" + }, + { + "package": "sebastian/version", + "version": "4.0.1", + "license": "BSD-3-Clause", + "status": "approved", + "override": "", + "ecosystem": "composer" + }, + { + "package": "spatie/array-to-xml", + "version": "3.4.4", + "license": "MIT", + "status": "approved", + "override": "", + "ecosystem": "composer" + }, + { + "package": "squizlabs/php_codesniffer", + "version": "3.13.5", + "license": "BSD-3-Clause", + "status": "approved", + "override": "", + "ecosystem": "composer" + }, + { + "package": "symfony/config", + "version": "v6.4.34", + "license": "MIT", + "status": "approved", + "override": "", + "ecosystem": "composer" + }, + { + "package": "symfony/console", + "version": "v6.4.34", + "license": "MIT", + "status": "approved", + "override": "", + "ecosystem": "composer" + }, + { + "package": "symfony/dependency-injection", + "version": "v6.4.34", + "license": "MIT", + "status": "approved", + "override": "", + "ecosystem": "composer" + }, + { + "package": "symfony/deprecation-contracts", + "version": "v3.6.0", + "license": "MIT", + "status": "approved", + "override": "", + "ecosystem": "composer" + }, + { + "package": "symfony/event-dispatcher", + "version": "v6.4.32", + "license": "MIT", + "status": "approved", + "override": "", + "ecosystem": "composer" + }, + { + "package": "symfony/event-dispatcher-contracts", + "version": "v3.6.0", + "license": "MIT", + "status": "approved", + "override": "", + "ecosystem": "composer" + }, + { + "package": "symfony/filesystem", + "version": "v6.4.34", + "license": "MIT", + "status": "approved", + "override": "", + "ecosystem": "composer" + }, + { + "package": "symfony/finder", + "version": "v6.4.34", + "license": "MIT", + "status": "approved", + "override": "", + "ecosystem": "composer" + }, + { + "package": "symfony/polyfill-ctype", + "version": "v1.33.0", + "license": "MIT", + "status": "approved", + "override": "", + "ecosystem": "composer" + }, + { + "package": "symfony/polyfill-intl-grapheme", + "version": "v1.33.0", + "license": "MIT", + "status": "approved", + "override": "", + "ecosystem": "composer" + }, + { + "package": "symfony/polyfill-intl-normalizer", + "version": "v1.33.0", + "license": "MIT", + "status": "approved", + "override": "", + "ecosystem": "composer" + }, + { + "package": "symfony/polyfill-mbstring", + "version": "v1.33.0", + "license": "MIT", + "status": "approved", + "override": "", + "ecosystem": "composer" + }, + { + "package": "symfony/polyfill-php81", + "version": "v1.33.0", + "license": "MIT", + "status": "approved", + "override": "", + "ecosystem": "composer" + }, + { + "package": "symfony/process", + "version": "v6.4.33", + "license": "MIT", + "status": "approved", + "override": "", + "ecosystem": "composer" + }, + { + "package": "symfony/service-contracts", + "version": "v3.6.1", + "license": "MIT", + "status": "approved", + "override": "", + "ecosystem": "composer" + }, + { + "package": "symfony/string", + "version": "v6.4.34", + "license": "MIT", + "status": "approved", + "override": "", + "ecosystem": "composer" + }, + { + "package": "symfony/var-exporter", + "version": "v6.4.26", + "license": "MIT", + "status": "approved", + "override": "", + "ecosystem": "composer" + }, + { + "package": "symfony/yaml", + "version": "v6.4.34", + "license": "MIT", + "status": "approved", + "override": "", + "ecosystem": "composer" + }, + { + "package": "theseer/tokenizer", + "version": "1.3.1", + "license": "BSD-3-Clause", + "status": "approved", + "override": "", + "ecosystem": "composer" + }, + { + "package": "twig/twig", + "version": "v3.23.0", + "license": "BSD-3-Clause", + "status": "approved", + "override": "", + "ecosystem": "composer" + }, + { + "package": "vimeo/psalm", + "version": "5.26.1", + "license": "MIT", + "status": "approved", + "override": "", + "ecosystem": "composer" + }, + { + "package": "webmozart/assert", + "version": "1.12.1", + "license": "MIT", + "status": "approved", + "override": "", + "ecosystem": "composer" + } +] diff --git a/license-report-composer/composer-licenses.md b/license-report-composer/composer-licenses.md new file mode 100644 index 0000000..1f18c2a --- /dev/null +++ b/license-report-composer/composer-licenses.md @@ -0,0 +1,112 @@ +# composer License Report + +**Generated:** 2026-03-14 17:59 UTC +**Repository:** ConductionNL/procest +**Ref:** 56c418e2199b64f9354cbcdbe8cbc8c6626c50dd + +## Summary + +| Metric | Count | +|--------|-------| +| Total dependencies | 93 | +| Approved (allowlist) | 93 | +| Approved (manual override) | 0 | +| **Denied** | **0** | + +## Dependencies + +| Package | Version | License | Status | Override | +|---------|---------|---------|--------|----------| +| amphp/amp | v2.6.5 | MIT | approved | | +| amphp/byte-stream | v1.8.2 | MIT | approved | | +| composer/pcre | 3.3.2 | MIT | approved | | +| composer/semver | 3.4.4 | MIT | approved | | +| composer/xdebug-handler | 3.0.5 | MIT | approved | | +| consolidation/annotated-command | 4.10.4 | MIT | approved | | +| consolidation/config | 2.1.2 | MIT | approved | | +| consolidation/log | 3.1.1 | MIT | approved | | +| consolidation/output-formatters | 4.7.0 | MIT | approved | | +| consolidation/robo | 4.0.6 | MIT | approved | | +| consolidation/self-update | 2.2.0 | MIT | approved | | +| dealerdirect/phpcodesniffer-composer-installer | v1.2.0 | MIT | approved | | +| dflydev/dot-access-data | v3.0.3 | MIT | approved | | +| dnoegel/php-xdg-base-dir | v0.1.1 | MIT | approved | | +| doctrine/deprecations | 1.1.6 | MIT | approved | | +| edgedesign/phpqa | v1.27.2 | MIT | approved | | +| felixfbecker/advanced-json-rpc | v3.2.1 | ISC | approved | | +| felixfbecker/language-server-protocol | v1.5.3 | ISC | approved | | +| fidry/cpu-core-counter | 1.3.0 | MIT | approved | | +| grasmash/expander | 3.0.1 | MIT | approved | | +| kubawerlos/php-cs-fixer-custom-fixers | v3.36.0 | MIT | approved | | +| league/container | 4.2.5 | MIT | approved | | +| myclabs/deep-copy | 1.13.4 | MIT | approved | | +| netresearch/jsonmapper | v4.5.0 | OSL-3.0 | approved | | +| nextcloud/coding-standard | v1.4.0 | MIT | approved | | +| nextcloud/ocp | v31.0.9 | AGPL-3.0-or-later | approved | | +| nikic/php-parser | v4.19.5 | BSD-3-Clause | approved | | +| pdepend/pdepend | 2.16.2 | BSD-3-Clause | approved | | +| phar-io/manifest | 2.0.4 | BSD-3-Clause | approved | | +| phar-io/version | 3.2.1 | BSD-3-Clause | approved | | +| phootwork/collection | v3.2.3 | MIT | approved | | +| phootwork/lang | v3.2.3 | MIT | approved | | +| php-cs-fixer/shim | v3.94.2 | MIT | approved | | +| phpcsstandards/phpcsextra | 1.5.0 | LGPL-3.0-or-later | approved | | +| phpcsstandards/phpcsutils | 1.2.2 | LGPL-3.0-or-later | approved | | +| phpdocumentor/reflection-common | 2.2.0 | MIT | approved | | +| phpdocumentor/reflection-docblock | 5.6.6 | MIT | approved | | +| phpdocumentor/type-resolver | 1.12.0 | MIT | approved | | +| phpmd/phpmd | 2.15.0 | BSD-3-Clause | approved | | +| phpmetrics/phpmetrics | v2.9.1 | MIT | approved | | +| phpowermove/docblock | v4.0 | MIT | approved | | +| phpstan/phpdoc-parser | 2.3.2 | MIT | approved | | +| phpstan/phpstan | 1.12.33 | MIT | approved | | +| phpunit/php-code-coverage | 10.1.16 | BSD-3-Clause | approved | | +| phpunit/php-file-iterator | 4.1.0 | BSD-3-Clause | approved | | +| phpunit/php-invoker | 4.0.0 | BSD-3-Clause | approved | | +| phpunit/php-text-template | 3.0.1 | BSD-3-Clause | approved | | +| phpunit/php-timer | 6.0.0 | BSD-3-Clause | approved | | +| phpunit/phpunit | 10.5.63 | BSD-3-Clause | approved | | +| psr/clock | 1.0.0 | MIT | approved | | +| psr/container | 2.0.2 | MIT | approved | | +| psr/event-dispatcher | 1.0.0 | MIT | approved | | +| psr/log | 3.0.2 | MIT | approved | | +| roave/security-advisories | dev-latest c1109f3 | MIT | approved | | +| sebastian/cli-parser | 2.0.1 | BSD-3-Clause | approved | | +| sebastian/code-unit | 2.0.0 | BSD-3-Clause | approved | | +| sebastian/code-unit-reverse-lookup | 3.0.0 | BSD-3-Clause | approved | | +| sebastian/comparator | 5.0.5 | BSD-3-Clause | approved | | +| sebastian/complexity | 3.2.0 | BSD-3-Clause | approved | | +| sebastian/diff | 5.1.1 | BSD-3-Clause | approved | | +| sebastian/environment | 6.1.0 | BSD-3-Clause | approved | | +| sebastian/exporter | 5.1.4 | BSD-3-Clause | approved | | +| sebastian/global-state | 6.0.2 | BSD-3-Clause | approved | | +| sebastian/lines-of-code | 2.0.2 | BSD-3-Clause | approved | | +| sebastian/object-enumerator | 5.0.0 | BSD-3-Clause | approved | | +| sebastian/object-reflector | 3.0.0 | BSD-3-Clause | approved | | +| sebastian/recursion-context | 5.0.1 | BSD-3-Clause | approved | | +| sebastian/type | 4.0.0 | BSD-3-Clause | approved | | +| sebastian/version | 4.0.1 | BSD-3-Clause | approved | | +| spatie/array-to-xml | 3.4.4 | MIT | approved | | +| squizlabs/php_codesniffer | 3.13.5 | BSD-3-Clause | approved | | +| symfony/config | v6.4.34 | MIT | approved | | +| symfony/console | v6.4.34 | MIT | approved | | +| symfony/dependency-injection | v6.4.34 | MIT | approved | | +| symfony/deprecation-contracts | v3.6.0 | MIT | approved | | +| symfony/event-dispatcher | v6.4.32 | MIT | approved | | +| symfony/event-dispatcher-contracts | v3.6.0 | MIT | approved | | +| symfony/filesystem | v6.4.34 | MIT | approved | | +| symfony/finder | v6.4.34 | MIT | approved | | +| symfony/polyfill-ctype | v1.33.0 | MIT | approved | | +| symfony/polyfill-intl-grapheme | v1.33.0 | MIT | approved | | +| symfony/polyfill-intl-normalizer | v1.33.0 | MIT | approved | | +| symfony/polyfill-mbstring | v1.33.0 | MIT | approved | | +| symfony/polyfill-php81 | v1.33.0 | MIT | approved | | +| symfony/process | v6.4.33 | MIT | approved | | +| symfony/service-contracts | v3.6.1 | MIT | approved | | +| symfony/string | v6.4.34 | MIT | approved | | +| symfony/var-exporter | v6.4.26 | MIT | approved | | +| symfony/yaml | v6.4.34 | MIT | approved | | +| theseer/tokenizer | 1.3.1 | BSD-3-Clause | approved | | +| twig/twig | v3.23.0 | BSD-3-Clause | approved | | +| vimeo/psalm | 5.26.1 | MIT | approved | | +| webmozart/assert | 1.12.1 | MIT | approved | | diff --git a/license-report-npm/npm-licenses.json b/license-report-npm/npm-licenses.json new file mode 100644 index 0000000..4b03114 --- /dev/null +++ b/license-report-npm/npm-licenses.json @@ -0,0 +1,1922 @@ +[ + { + "package": "@babel/helper-string-parser", + "version": "7.27.1", + "license": "MIT", + "status": "approved", + "override": "", + "ecosystem": "npm" + }, + { + "package": "@babel/helper-validator-identifier", + "version": "7.28.5", + "license": "MIT", + "status": "approved", + "override": "", + "ecosystem": "npm" + }, + { + "package": "@babel/parser", + "version": "7.29.0", + "license": "MIT", + "status": "approved", + "override": "", + "ecosystem": "npm" + }, + { + "package": "@babel/runtime", + "version": "7.28.6", + "license": "MIT", + "status": "approved", + "override": "", + "ecosystem": "npm" + }, + { + "package": "@babel/types", + "version": "7.29.0", + "license": "MIT", + "status": "approved", + "override": "", + "ecosystem": "npm" + }, + { + "package": "@buttercup/fetch", + "version": "0.2.1", + "license": "MIT", + "status": "approved", + "override": "", + "ecosystem": "npm" + }, + { + "package": "@conduction/nextcloud-vue", + "version": "0.1.0-beta.3", + "license": "EUPL-1.2", + "status": "approved", + "override": "", + "ecosystem": "npm" + }, + { + "package": "@file-type/xml", + "version": "0.4.4", + "license": "MIT", + "status": "approved", + "override": "", + "ecosystem": "npm" + }, + { + "package": "@floating-ui/core", + "version": "0.3.1", + "license": "MIT", + "status": "approved", + "override": "", + "ecosystem": "npm" + }, + { + "package": "@floating-ui/core", + "version": "1.7.4", + "license": "MIT", + "status": "approved", + "override": "", + "ecosystem": "npm" + }, + { + "package": "@floating-ui/dom", + "version": "0.1.10", + "license": "MIT", + "status": "approved", + "override": "", + "ecosystem": "npm" + }, + { + "package": "@floating-ui/dom", + "version": "1.7.5", + "license": "MIT", + "status": "approved", + "override": "", + "ecosystem": "npm" + }, + { + "package": "@floating-ui/utils", + "version": "0.2.10", + "license": "MIT", + "status": "approved", + "override": "", + "ecosystem": "npm" + }, + { + "package": "@linusborg/vue-simple-portal", + "version": "0.1.5", + "license": "Apache-2.0", + "status": "approved", + "override": "", + "ecosystem": "npm" + }, + { + "package": "@mapbox/hast-util-table-cell-style", + "version": "0.2.1", + "license": "BSD-2-Clause", + "status": "approved", + "override": "", + "ecosystem": "npm" + }, + { + "package": "@nextcloud/auth", + "version": "2.5.3", + "license": "GPL-3.0-or-later", + "status": "approved", + "override": "", + "ecosystem": "npm" + }, + { + "package": "@nextcloud/axios", + "version": "2.5.2", + "license": "GPL-3.0-or-later", + "status": "approved", + "override": "", + "ecosystem": "npm" + }, + { + "package": "@nextcloud/browser-storage", + "version": "0.5.0", + "license": "GPL-3.0-or-later", + "status": "approved", + "override": "", + "ecosystem": "npm" + }, + { + "package": "@nextcloud/capabilities", + "version": "1.2.1", + "license": "GPL-3.0-or-later", + "status": "approved", + "override": "", + "ecosystem": "npm" + }, + { + "package": "@nextcloud/dialogs", + "version": "3.2.0", + "license": "GPL-3.0-or-later", + "status": "approved", + "override": "", + "ecosystem": "npm" + }, + { + "package": "@nextcloud/event-bus", + "version": "3.3.3", + "license": "GPL-3.0-or-later", + "status": "approved", + "override": "", + "ecosystem": "npm" + }, + { + "package": "@nextcloud/files", + "version": "3.12.2", + "license": "AGPL-3.0-or-later", + "status": "approved", + "override": "", + "ecosystem": "npm" + }, + { + "package": "@nextcloud/initial-state", + "version": "2.2.0", + "license": "GPL-3.0-or-later", + "status": "approved", + "override": "", + "ecosystem": "npm" + }, + { + "package": "@nextcloud/initial-state", + "version": "3.0.0", + "license": "GPL-3.0-or-later", + "status": "approved", + "override": "", + "ecosystem": "npm" + }, + { + "package": "@nextcloud/l10n", + "version": "1.6.0", + "license": "GPL-3.0-or-later", + "status": "approved", + "override": "", + "ecosystem": "npm" + }, + { + "package": "@nextcloud/l10n", + "version": "2.2.0", + "license": "GPL-3.0-or-later", + "status": "approved", + "override": "", + "ecosystem": "npm" + }, + { + "package": "@nextcloud/l10n", + "version": "3.4.1", + "license": "GPL-3.0-or-later", + "status": "approved", + "override": "", + "ecosystem": "npm" + }, + { + "package": "@nextcloud/logger", + "version": "3.0.3", + "license": "GPL-3.0-or-later", + "status": "approved", + "override": "", + "ecosystem": "npm" + }, + { + "package": "@nextcloud/paths", + "version": "3.0.0", + "license": "GPL-3.0-or-later", + "status": "approved", + "override": "", + "ecosystem": "npm" + }, + { + "package": "@nextcloud/router", + "version": "2.1.2", + "license": "GPL-3.0-or-later", + "status": "approved", + "override": "", + "ecosystem": "npm" + }, + { + "package": "@nextcloud/router", + "version": "3.1.0", + "license": "GPL-3.0-or-later", + "status": "approved", + "override": "", + "ecosystem": "npm" + }, + { + "package": "@nextcloud/sharing", + "version": "0.3.0", + "license": "GPL-3.0-or-later", + "status": "approved", + "override": "", + "ecosystem": "npm" + }, + { + "package": "@nextcloud/typings", + "version": "1.10.0", + "license": "GPL-3.0-or-later", + "status": "approved", + "override": "", + "ecosystem": "npm" + }, + { + "package": "@nextcloud/vue-select", + "version": "3.26.0", + "license": "MIT", + "status": "approved", + "override": "", + "ecosystem": "npm" + }, + { + "package": "@nextcloud/vue", + "version": "8.36.0", + "license": "AGPL-3.0-or-later", + "status": "approved", + "override": "", + "ecosystem": "npm" + }, + { + "package": "@tokenizer/token", + "version": "0.3.0", + "license": "MIT", + "status": "approved", + "override": "", + "ecosystem": "npm" + }, + { + "package": "@types/debug", + "version": "4.1.12", + "license": "MIT", + "status": "approved", + "override": "", + "ecosystem": "npm" + }, + { + "package": "@types/escape-html", + "version": "1.0.4", + "license": "MIT", + "status": "approved", + "override": "", + "ecosystem": "npm" + }, + { + "package": "@types/hast", + "version": "2.3.10", + "license": "MIT", + "status": "approved", + "override": "", + "ecosystem": "npm" + }, + { + "package": "@types/hast", + "version": "3.0.4", + "license": "MIT", + "status": "approved", + "override": "", + "ecosystem": "npm" + }, + { + "package": "@types/jquery", + "version": "3.5.16", + "license": "MIT", + "status": "approved", + "override": "", + "ecosystem": "npm" + }, + { + "package": "@types/mdast", + "version": "4.0.4", + "license": "MIT", + "status": "approved", + "override": "", + "ecosystem": "npm" + }, + { + "package": "@types/ms", + "version": "2.1.0", + "license": "MIT", + "status": "approved", + "override": "", + "ecosystem": "npm" + }, + { + "package": "@types/react", + "version": "19.2.14", + "license": "MIT", + "status": "approved", + "override": "", + "ecosystem": "npm" + }, + { + "package": "@types/semver", + "version": "7.7.1", + "license": "MIT", + "status": "approved", + "override": "", + "ecosystem": "npm" + }, + { + "package": "@types/sizzle", + "version": "2.3.10", + "license": "MIT", + "status": "approved", + "override": "", + "ecosystem": "npm" + }, + { + "package": "@types/trusted-types", + "version": "2.0.7", + "license": "MIT", + "status": "approved", + "override": "", + "ecosystem": "npm" + }, + { + "package": "@types/unist", + "version": "2.0.11", + "license": "MIT", + "status": "approved", + "override": "", + "ecosystem": "npm" + }, + { + "package": "@types/unist", + "version": "3.0.3", + "license": "MIT", + "status": "approved", + "override": "", + "ecosystem": "npm" + }, + { + "package": "@types/web-bluetooth", + "version": "0.0.20", + "license": "MIT", + "status": "approved", + "override": "", + "ecosystem": "npm" + }, + { + "package": "@ungap/structured-clone", + "version": "1.3.0", + "license": "ISC", + "status": "approved", + "override": "", + "ecosystem": "npm" + }, + { + "package": "@vue/compiler-sfc", + "version": "2.7.16", + "license": "MIT*", + "status": "approved", + "override": "", + "ecosystem": "npm" + }, + { + "package": "@vue/devtools-api", + "version": "6.6.4", + "license": "MIT", + "status": "approved", + "override": "", + "ecosystem": "npm" + }, + { + "package": "@vueuse/components", + "version": "11.3.0", + "license": "MIT", + "status": "approved", + "override": "", + "ecosystem": "npm" + }, + { + "package": "@vueuse/core", + "version": "11.3.0", + "license": "MIT", + "status": "approved", + "override": "", + "ecosystem": "npm" + }, + { + "package": "@vueuse/metadata", + "version": "11.3.0", + "license": "MIT", + "status": "approved", + "override": "", + "ecosystem": "npm" + }, + { + "package": "@vueuse/shared", + "version": "11.3.0", + "license": "MIT", + "status": "approved", + "override": "", + "ecosystem": "npm" + }, + { + "package": "ansi-regex", + "version": "6.2.2", + "license": "MIT", + "status": "approved", + "override": "", + "ecosystem": "npm" + }, + { + "package": "asynckit", + "version": "0.4.0", + "license": "MIT", + "status": "approved", + "override": "", + "ecosystem": "npm" + }, + { + "package": "axios", + "version": "1.13.5", + "license": "MIT", + "status": "approved", + "override": "", + "ecosystem": "npm" + }, + { + "package": "bail", + "version": "2.0.2", + "license": "MIT", + "status": "approved", + "override": "", + "ecosystem": "npm" + }, + { + "package": "balanced-match", + "version": "1.0.2", + "license": "MIT", + "status": "approved", + "override": "", + "ecosystem": "npm" + }, + { + "package": "base-64", + "version": "1.0.0", + "license": "MIT", + "status": "approved", + "override": "", + "ecosystem": "npm" + }, + { + "package": "blurhash", + "version": "2.0.5", + "license": "MIT", + "status": "approved", + "override": "", + "ecosystem": "npm" + }, + { + "package": "brace-expansion", + "version": "2.0.2", + "license": "MIT", + "status": "approved", + "override": "", + "ecosystem": "npm" + }, + { + "package": "byte-length", + "version": "1.0.2", + "license": "MIT", + "status": "approved", + "override": "", + "ecosystem": "npm" + }, + { + "package": "call-bind-apply-helpers", + "version": "1.0.2", + "license": "MIT", + "status": "approved", + "override": "", + "ecosystem": "npm" + }, + { + "package": "cancelable-promise", + "version": "4.3.1", + "license": "MIT", + "status": "approved", + "override": "", + "ecosystem": "npm" + }, + { + "package": "char-regex", + "version": "2.0.2", + "license": "MIT", + "status": "approved", + "override": "", + "ecosystem": "npm" + }, + { + "package": "character-entities", + "version": "2.0.2", + "license": "MIT", + "status": "approved", + "override": "", + "ecosystem": "npm" + }, + { + "package": "charenc", + "version": "0.0.2", + "license": "BSD-3-Clause", + "status": "approved", + "override": "", + "ecosystem": "npm" + }, + { + "package": "clamp", + "version": "1.0.1", + "license": "MIT", + "status": "approved", + "override": "", + "ecosystem": "npm" + }, + { + "package": "clone", + "version": "2.1.2", + "license": "MIT", + "status": "approved", + "override": "", + "ecosystem": "npm" + }, + { + "package": "combined-stream", + "version": "1.0.8", + "license": "MIT", + "status": "approved", + "override": "", + "ecosystem": "npm" + }, + { + "package": "comma-separated-tokens", + "version": "2.0.3", + "license": "MIT", + "status": "approved", + "override": "", + "ecosystem": "npm" + }, + { + "package": "core-js", + "version": "3.48.0", + "license": "MIT", + "status": "approved", + "override": "", + "ecosystem": "npm" + }, + { + "package": "crypt", + "version": "0.0.2", + "license": "BSD-3-Clause", + "status": "approved", + "override": "", + "ecosystem": "npm" + }, + { + "package": "csstype", + "version": "3.2.3", + "license": "MIT", + "status": "approved", + "override": "", + "ecosystem": "npm" + }, + { + "package": "data-uri-to-buffer", + "version": "4.0.1", + "license": "MIT", + "status": "approved", + "override": "", + "ecosystem": "npm" + }, + { + "package": "date-format-parse", + "version": "0.2.7", + "license": "MIT", + "status": "approved", + "override": "", + "ecosystem": "npm" + }, + { + "package": "debounce", + "version": "2.2.0", + "license": "MIT", + "status": "approved", + "override": "", + "ecosystem": "npm" + }, + { + "package": "debug", + "version": "4.4.3", + "license": "MIT", + "status": "approved", + "override": "", + "ecosystem": "npm" + }, + { + "package": "decode-named-character-reference", + "version": "1.3.0", + "license": "MIT", + "status": "approved", + "override": "", + "ecosystem": "npm" + }, + { + "package": "delayed-stream", + "version": "1.0.0", + "license": "MIT", + "status": "approved", + "override": "", + "ecosystem": "npm" + }, + { + "package": "dequal", + "version": "2.0.3", + "license": "MIT", + "status": "approved", + "override": "", + "ecosystem": "npm" + }, + { + "package": "devlop", + "version": "1.1.0", + "license": "MIT", + "status": "approved", + "override": "", + "ecosystem": "npm" + }, + { + "package": "dompurify", + "version": "3.3.3", + "license": "(MPL-2.0 OR Apache-2.0)", + "status": "approved", + "override": "", + "ecosystem": "npm" + }, + { + "package": "dunder-proto", + "version": "1.0.1", + "license": "MIT", + "status": "approved", + "override": "", + "ecosystem": "npm" + }, + { + "package": "emoji-mart-vue-fast", + "version": "15.0.5", + "license": "BSD-3-Clause", + "status": "approved", + "override": "", + "ecosystem": "npm" + }, + { + "package": "entities", + "version": "6.0.1", + "license": "BSD-2-Clause", + "status": "approved", + "override": "", + "ecosystem": "npm" + }, + { + "package": "es-define-property", + "version": "1.0.1", + "license": "MIT", + "status": "approved", + "override": "", + "ecosystem": "npm" + }, + { + "package": "es-errors", + "version": "1.3.0", + "license": "MIT", + "status": "approved", + "override": "", + "ecosystem": "npm" + }, + { + "package": "es-object-atoms", + "version": "1.1.1", + "license": "MIT", + "status": "approved", + "override": "", + "ecosystem": "npm" + }, + { + "package": "es-set-tostringtag", + "version": "2.1.0", + "license": "MIT", + "status": "approved", + "override": "", + "ecosystem": "npm" + }, + { + "package": "escape-html", + "version": "1.0.3", + "license": "MIT", + "status": "approved", + "override": "", + "ecosystem": "npm" + }, + { + "package": "escape-string-regexp", + "version": "5.0.0", + "license": "MIT", + "status": "approved", + "override": "", + "ecosystem": "npm" + }, + { + "package": "eventemitter3", + "version": "5.0.4", + "license": "MIT", + "status": "approved", + "override": "", + "ecosystem": "npm" + }, + { + "package": "extend", + "version": "3.0.2", + "license": "MIT", + "status": "approved", + "override": "", + "ecosystem": "npm" + }, + { + "package": "fast-xml-builder", + "version": "1.1.2", + "license": "MIT", + "status": "approved", + "override": "", + "ecosystem": "npm" + }, + { + "package": "fast-xml-parser", + "version": "5.5.3", + "license": "MIT", + "status": "approved", + "override": "", + "ecosystem": "npm" + }, + { + "package": "fetch-blob", + "version": "3.2.0", + "license": "MIT", + "status": "approved", + "override": "", + "ecosystem": "npm" + }, + { + "package": "floating-vue", + "version": "1.0.0-beta.19", + "license": "MIT", + "status": "approved", + "override": "", + "ecosystem": "npm" + }, + { + "package": "focus-trap", + "version": "7.8.0", + "license": "MIT", + "status": "approved", + "override": "", + "ecosystem": "npm" + }, + { + "package": "follow-redirects", + "version": "1.15.11", + "license": "MIT", + "status": "approved", + "override": "", + "ecosystem": "npm" + }, + { + "package": "form-data", + "version": "4.0.5", + "license": "MIT", + "status": "approved", + "override": "", + "ecosystem": "npm" + }, + { + "package": "formdata-polyfill", + "version": "4.0.10", + "license": "MIT", + "status": "approved", + "override": "", + "ecosystem": "npm" + }, + { + "package": "function-bind", + "version": "1.1.2", + "license": "MIT", + "status": "approved", + "override": "", + "ecosystem": "npm" + }, + { + "package": "get-intrinsic", + "version": "1.3.0", + "license": "MIT", + "status": "approved", + "override": "", + "ecosystem": "npm" + }, + { + "package": "get-proto", + "version": "1.0.1", + "license": "MIT", + "status": "approved", + "override": "", + "ecosystem": "npm" + }, + { + "package": "gopd", + "version": "1.2.0", + "license": "MIT", + "status": "approved", + "override": "", + "ecosystem": "npm" + }, + { + "package": "has-symbols", + "version": "1.1.0", + "license": "MIT", + "status": "approved", + "override": "", + "ecosystem": "npm" + }, + { + "package": "has-tostringtag", + "version": "1.0.2", + "license": "MIT", + "status": "approved", + "override": "", + "ecosystem": "npm" + }, + { + "package": "hasown", + "version": "2.0.2", + "license": "MIT", + "status": "approved", + "override": "", + "ecosystem": "npm" + }, + { + "package": "hast-to-hyperscript", + "version": "10.0.3", + "license": "MIT", + "status": "approved", + "override": "", + "ecosystem": "npm" + }, + { + "package": "hast-util-is-element", + "version": "3.0.0", + "license": "MIT", + "status": "approved", + "override": "", + "ecosystem": "npm" + }, + { + "package": "hast-util-to-text", + "version": "4.0.2", + "license": "MIT", + "status": "approved", + "override": "", + "ecosystem": "npm" + }, + { + "package": "hast-util-whitespace", + "version": "2.0.1", + "license": "MIT", + "status": "approved", + "override": "", + "ecosystem": "npm" + }, + { + "package": "highlight.js", + "version": "11.11.1", + "license": "BSD-3-Clause", + "status": "approved", + "override": "", + "ecosystem": "npm" + }, + { + "package": "hot-patcher", + "version": "2.0.1", + "license": "MIT", + "status": "approved", + "override": "", + "ecosystem": "npm" + }, + { + "package": "inline-style-parser", + "version": "0.1.1", + "license": "MIT", + "status": "approved", + "override": "", + "ecosystem": "npm" + }, + { + "package": "is-absolute-url", + "version": "4.0.1", + "license": "MIT", + "status": "approved", + "override": "", + "ecosystem": "npm" + }, + { + "package": "is-buffer", + "version": "1.1.6", + "license": "MIT", + "status": "approved", + "override": "", + "ecosystem": "npm" + }, + { + "package": "is-buffer", + "version": "2.0.5", + "license": "MIT", + "status": "approved", + "override": "", + "ecosystem": "npm" + }, + { + "package": "is-plain-obj", + "version": "4.1.0", + "license": "MIT", + "status": "approved", + "override": "", + "ecosystem": "npm" + }, + { + "package": "is-svg", + "version": "6.1.0", + "license": "MIT", + "status": "approved", + "override": "", + "ecosystem": "npm" + }, + { + "package": "layerr", + "version": "3.0.0", + "license": "MIT", + "status": "approved", + "override": "", + "ecosystem": "npm" + }, + { + "package": "linkify-string", + "version": "4.3.2", + "license": "MIT", + "status": "approved", + "override": "", + "ecosystem": "npm" + }, + { + "package": "linkifyjs", + "version": "4.3.2", + "license": "MIT", + "status": "approved", + "override": "", + "ecosystem": "npm" + }, + { + "package": "lodash.get", + "version": "4.4.2", + "license": "MIT", + "status": "approved", + "override": "", + "ecosystem": "npm" + }, + { + "package": "lodash.throttle", + "version": "4.1.1", + "license": "MIT", + "status": "approved", + "override": "", + "ecosystem": "npm" + }, + { + "package": "lowlight", + "version": "3.3.0", + "license": "MIT", + "status": "approved", + "override": "", + "ecosystem": "npm" + }, + { + "package": "material-colors", + "version": "1.2.6", + "license": "ISC", + "status": "approved", + "override": "", + "ecosystem": "npm" + }, + { + "package": "math-intrinsics", + "version": "1.1.0", + "license": "MIT", + "status": "approved", + "override": "", + "ecosystem": "npm" + }, + { + "package": "md5", + "version": "2.3.0", + "license": "BSD-3-Clause", + "status": "approved", + "override": "", + "ecosystem": "npm" + }, + { + "package": "mdast-squeeze-paragraphs", + "version": "6.0.0", + "license": "MIT", + "status": "approved", + "override": "", + "ecosystem": "npm" + }, + { + "package": "mdast-util-find-and-replace", + "version": "3.0.2", + "license": "MIT", + "status": "approved", + "override": "", + "ecosystem": "npm" + }, + { + "package": "mdast-util-from-markdown", + "version": "2.0.2", + "license": "MIT", + "status": "approved", + "override": "", + "ecosystem": "npm" + }, + { + "package": "mdast-util-newline-to-break", + "version": "2.0.0", + "license": "MIT", + "status": "approved", + "override": "", + "ecosystem": "npm" + }, + { + "package": "mdast-util-to-hast", + "version": "13.2.1", + "license": "MIT", + "status": "approved", + "override": "", + "ecosystem": "npm" + }, + { + "package": "mdast-util-to-string", + "version": "4.0.0", + "license": "MIT", + "status": "approved", + "override": "", + "ecosystem": "npm" + }, + { + "package": "micromark-core-commonmark", + "version": "2.0.3", + "license": "MIT", + "status": "approved", + "override": "", + "ecosystem": "npm" + }, + { + "package": "micromark-factory-destination", + "version": "2.0.1", + "license": "MIT", + "status": "approved", + "override": "", + "ecosystem": "npm" + }, + { + "package": "micromark-factory-label", + "version": "2.0.1", + "license": "MIT", + "status": "approved", + "override": "", + "ecosystem": "npm" + }, + { + "package": "micromark-factory-space", + "version": "2.0.1", + "license": "MIT", + "status": "approved", + "override": "", + "ecosystem": "npm" + }, + { + "package": "micromark-factory-title", + "version": "2.0.1", + "license": "MIT", + "status": "approved", + "override": "", + "ecosystem": "npm" + }, + { + "package": "micromark-factory-whitespace", + "version": "2.0.1", + "license": "MIT", + "status": "approved", + "override": "", + "ecosystem": "npm" + }, + { + "package": "micromark-util-character", + "version": "2.1.1", + "license": "MIT", + "status": "approved", + "override": "", + "ecosystem": "npm" + }, + { + "package": "micromark-util-chunked", + "version": "2.0.1", + "license": "MIT", + "status": "approved", + "override": "", + "ecosystem": "npm" + }, + { + "package": "micromark-util-classify-character", + "version": "2.0.1", + "license": "MIT", + "status": "approved", + "override": "", + "ecosystem": "npm" + }, + { + "package": "micromark-util-combine-extensions", + "version": "2.0.1", + "license": "MIT", + "status": "approved", + "override": "", + "ecosystem": "npm" + }, + { + "package": "micromark-util-decode-numeric-character-reference", + "version": "2.0.2", + "license": "MIT", + "status": "approved", + "override": "", + "ecosystem": "npm" + }, + { + "package": "micromark-util-decode-string", + "version": "2.0.1", + "license": "MIT", + "status": "approved", + "override": "", + "ecosystem": "npm" + }, + { + "package": "micromark-util-encode", + "version": "2.0.1", + "license": "MIT", + "status": "approved", + "override": "", + "ecosystem": "npm" + }, + { + "package": "micromark-util-html-tag-name", + "version": "2.0.1", + "license": "MIT", + "status": "approved", + "override": "", + "ecosystem": "npm" + }, + { + "package": "micromark-util-normalize-identifier", + "version": "2.0.1", + "license": "MIT", + "status": "approved", + "override": "", + "ecosystem": "npm" + }, + { + "package": "micromark-util-resolve-all", + "version": "2.0.1", + "license": "MIT", + "status": "approved", + "override": "", + "ecosystem": "npm" + }, + { + "package": "micromark-util-sanitize-uri", + "version": "2.0.1", + "license": "MIT", + "status": "approved", + "override": "", + "ecosystem": "npm" + }, + { + "package": "micromark-util-subtokenize", + "version": "2.1.0", + "license": "MIT", + "status": "approved", + "override": "", + "ecosystem": "npm" + }, + { + "package": "micromark-util-symbol", + "version": "2.0.1", + "license": "MIT", + "status": "approved", + "override": "", + "ecosystem": "npm" + }, + { + "package": "micromark-util-types", + "version": "2.0.2", + "license": "MIT", + "status": "approved", + "override": "", + "ecosystem": "npm" + }, + { + "package": "micromark", + "version": "4.0.2", + "license": "MIT", + "status": "approved", + "override": "", + "ecosystem": "npm" + }, + { + "package": "mime-db", + "version": "1.52.0", + "license": "MIT", + "status": "approved", + "override": "", + "ecosystem": "npm" + }, + { + "package": "mime-types", + "version": "2.1.35", + "license": "MIT", + "status": "approved", + "override": "", + "ecosystem": "npm" + }, + { + "package": "minimatch", + "version": "9.0.9", + "license": "ISC", + "status": "approved", + "override": "", + "ecosystem": "npm" + }, + { + "package": "ms", + "version": "2.1.3", + "license": "MIT", + "status": "approved", + "override": "", + "ecosystem": "npm" + }, + { + "package": "nanoid", + "version": "3.3.11", + "license": "MIT", + "status": "approved", + "override": "", + "ecosystem": "npm" + }, + { + "package": "nested-property", + "version": "4.0.0", + "license": "MIT", + "status": "approved", + "override": "", + "ecosystem": "npm" + }, + { + "package": "node-domexception", + "version": "1.0.0", + "license": "MIT", + "status": "approved", + "override": "", + "ecosystem": "npm" + }, + { + "package": "node-fetch", + "version": "3.3.2", + "license": "MIT", + "status": "approved", + "override": "", + "ecosystem": "npm" + }, + { + "package": "node-gettext", + "version": "3.0.1", + "license": "MIT", + "status": "approved", + "override": "", + "ecosystem": "npm" + }, + { + "package": "p-queue", + "version": "8.1.1", + "license": "MIT", + "status": "approved", + "override": "", + "ecosystem": "npm" + }, + { + "package": "p-timeout", + "version": "6.1.4", + "license": "MIT", + "status": "approved", + "override": "", + "ecosystem": "npm" + }, + { + "package": "path-expression-matcher", + "version": "1.1.3", + "license": "MIT", + "status": "approved", + "override": "", + "ecosystem": "npm" + }, + { + "package": "path-posix", + "version": "1.0.0", + "license": "ISC", + "status": "approved", + "override": "", + "ecosystem": "npm" + }, + { + "package": "picocolors", + "version": "1.1.1", + "license": "ISC", + "status": "approved", + "override": "", + "ecosystem": "npm" + }, + { + "package": "pinia", + "version": "2.3.1", + "license": "MIT", + "status": "approved", + "override": "", + "ecosystem": "npm" + }, + { + "package": "postcss", + "version": "8.5.6", + "license": "MIT", + "status": "approved", + "override": "", + "ecosystem": "npm" + }, + { + "package": "prettier", + "version": "2.8.8", + "license": "MIT", + "status": "approved", + "override": "", + "ecosystem": "npm" + }, + { + "package": "procest", + "version": "0.1.0", + "license": "EUPL-1.2", + "status": "approved", + "override": "", + "ecosystem": "npm" + }, + { + "package": "property-information", + "version": "6.5.0", + "license": "MIT", + "status": "approved", + "override": "", + "ecosystem": "npm" + }, + { + "package": "proxy-from-env", + "version": "1.1.0", + "license": "MIT", + "status": "approved", + "override": "", + "ecosystem": "npm" + }, + { + "package": "querystringify", + "version": "2.2.0", + "license": "MIT", + "status": "approved", + "override": "", + "ecosystem": "npm" + }, + { + "package": "rehype-external-links", + "version": "3.0.0", + "license": "MIT", + "status": "approved", + "override": "", + "ecosystem": "npm" + }, + { + "package": "rehype-highlight", + "version": "7.0.2", + "license": "MIT", + "status": "approved", + "override": "", + "ecosystem": "npm" + }, + { + "package": "rehype-react", + "version": "7.2.0", + "license": "MIT", + "status": "approved", + "override": "", + "ecosystem": "npm" + }, + { + "package": "remark-breaks", + "version": "4.0.0", + "license": "MIT", + "status": "approved", + "override": "", + "ecosystem": "npm" + }, + { + "package": "remark-parse", + "version": "11.0.0", + "license": "MIT", + "status": "approved", + "override": "", + "ecosystem": "npm" + }, + { + "package": "remark-rehype", + "version": "11.1.2", + "license": "MIT", + "status": "approved", + "override": "", + "ecosystem": "npm" + }, + { + "package": "remark-unlink-protocols", + "version": "1.0.0", + "license": "MIT", + "status": "approved", + "override": "", + "ecosystem": "npm" + }, + { + "package": "requires-port", + "version": "1.0.0", + "license": "MIT", + "status": "approved", + "override": "", + "ecosystem": "npm" + }, + { + "package": "sax", + "version": "1.4.4", + "license": "BlueOak-1.0.0", + "status": "approved", + "override": "", + "ecosystem": "npm" + }, + { + "package": "semver", + "version": "7.7.4", + "license": "ISC", + "status": "approved", + "override": "", + "ecosystem": "npm" + }, + { + "package": "source-map-js", + "version": "1.2.1", + "license": "BSD-3-Clause", + "status": "approved", + "override": "", + "ecosystem": "npm" + }, + { + "package": "source-map", + "version": "0.6.1", + "license": "BSD-3-Clause", + "status": "approved", + "override": "", + "ecosystem": "npm" + }, + { + "package": "space-separated-tokens", + "version": "2.0.2", + "license": "MIT", + "status": "approved", + "override": "", + "ecosystem": "npm" + }, + { + "package": "splitpanes", + "version": "2.4.1", + "license": "MIT", + "status": "approved", + "override": "", + "ecosystem": "npm" + }, + { + "package": "string-length", + "version": "5.0.1", + "license": "MIT", + "status": "approved", + "override": "", + "ecosystem": "npm" + }, + { + "package": "strip-ansi", + "version": "7.1.2", + "license": "MIT", + "status": "approved", + "override": "", + "ecosystem": "npm" + }, + { + "package": "striptags", + "version": "3.2.0", + "license": "MIT", + "status": "approved", + "override": "", + "ecosystem": "npm" + }, + { + "package": "strnum", + "version": "2.1.2", + "license": "MIT", + "status": "approved", + "override": "", + "ecosystem": "npm" + }, + { + "package": "strtok3", + "version": "10.3.4", + "license": "MIT", + "status": "approved", + "override": "", + "ecosystem": "npm" + }, + { + "package": "style-to-object", + "version": "0.4.4", + "license": "MIT", + "status": "approved", + "override": "", + "ecosystem": "npm" + }, + { + "package": "tabbable", + "version": "6.4.0", + "license": "MIT", + "status": "approved", + "override": "", + "ecosystem": "npm" + }, + { + "package": "tinycolor2", + "version": "1.6.0", + "license": "MIT", + "status": "approved", + "override": "", + "ecosystem": "npm" + }, + { + "package": "toastify-js", + "version": "1.12.0", + "license": "MIT", + "status": "approved", + "override": "", + "ecosystem": "npm" + }, + { + "package": "tributejs", + "version": "5.1.3", + "license": "MIT", + "status": "approved", + "override": "", + "ecosystem": "npm" + }, + { + "package": "trim-lines", + "version": "3.0.1", + "license": "MIT", + "status": "approved", + "override": "", + "ecosystem": "npm" + }, + { + "package": "trough", + "version": "2.2.0", + "license": "MIT", + "status": "approved", + "override": "", + "ecosystem": "npm" + }, + { + "package": "typescript-event-target", + "version": "1.1.2", + "license": "MIT", + "status": "approved", + "override": "", + "ecosystem": "npm" + }, + { + "package": "typescript", + "version": "5.9.3", + "license": "Apache-2.0", + "status": "approved", + "override": "", + "ecosystem": "npm" + }, + { + "package": "unified", + "version": "10.1.2", + "license": "MIT", + "status": "approved", + "override": "", + "ecosystem": "npm" + }, + { + "package": "unified", + "version": "11.0.5", + "license": "MIT", + "status": "approved", + "override": "", + "ecosystem": "npm" + }, + { + "package": "unist-builder", + "version": "4.0.0", + "license": "MIT", + "status": "approved", + "override": "", + "ecosystem": "npm" + }, + { + "package": "unist-util-find-after", + "version": "5.0.0", + "license": "MIT", + "status": "approved", + "override": "", + "ecosystem": "npm" + }, + { + "package": "unist-util-is", + "version": "3.0.0", + "license": "MIT", + "status": "approved", + "override": "", + "ecosystem": "npm" + }, + { + "package": "unist-util-is", + "version": "6.0.1", + "license": "MIT", + "status": "approved", + "override": "", + "ecosystem": "npm" + }, + { + "package": "unist-util-position", + "version": "5.0.0", + "license": "MIT", + "status": "approved", + "override": "", + "ecosystem": "npm" + }, + { + "package": "unist-util-stringify-position", + "version": "3.0.3", + "license": "MIT", + "status": "approved", + "override": "", + "ecosystem": "npm" + }, + { + "package": "unist-util-stringify-position", + "version": "4.0.0", + "license": "MIT", + "status": "approved", + "override": "", + "ecosystem": "npm" + }, + { + "package": "unist-util-visit-parents", + "version": "2.1.2", + "license": "MIT", + "status": "approved", + "override": "", + "ecosystem": "npm" + }, + { + "package": "unist-util-visit-parents", + "version": "6.0.2", + "license": "MIT", + "status": "approved", + "override": "", + "ecosystem": "npm" + }, + { + "package": "unist-util-visit", + "version": "1.4.1", + "license": "MIT", + "status": "approved", + "override": "", + "ecosystem": "npm" + }, + { + "package": "unist-util-visit", + "version": "5.1.0", + "license": "MIT", + "status": "approved", + "override": "", + "ecosystem": "npm" + }, + { + "package": "url-join", + "version": "5.0.0", + "license": "MIT", + "status": "approved", + "override": "", + "ecosystem": "npm" + }, + { + "package": "url-parse", + "version": "1.5.10", + "license": "MIT", + "status": "approved", + "override": "", + "ecosystem": "npm" + }, + { + "package": "vfile-message", + "version": "3.1.4", + "license": "MIT", + "status": "approved", + "override": "", + "ecosystem": "npm" + }, + { + "package": "vfile-message", + "version": "4.0.3", + "license": "MIT", + "status": "approved", + "override": "", + "ecosystem": "npm" + }, + { + "package": "vfile", + "version": "5.3.7", + "license": "MIT", + "status": "approved", + "override": "", + "ecosystem": "npm" + }, + { + "package": "vfile", + "version": "6.0.3", + "license": "MIT", + "status": "approved", + "override": "", + "ecosystem": "npm" + }, + { + "package": "vue-color", + "version": "2.8.2", + "license": "MIT", + "status": "approved", + "override": "", + "ecosystem": "npm" + }, + { + "package": "vue-demi", + "version": "0.14.10", + "license": "MIT", + "status": "approved", + "override": "", + "ecosystem": "npm" + }, + { + "package": "vue-frag", + "version": "1.4.3", + "license": "MIT", + "status": "approved", + "override": "", + "ecosystem": "npm" + }, + { + "package": "vue-material-design-icons", + "version": "5.3.1", + "license": "MIT", + "status": "approved", + "override": "", + "ecosystem": "npm" + }, + { + "package": "vue-resize", + "version": "1.0.1", + "license": "MIT", + "status": "approved", + "override": "", + "ecosystem": "npm" + }, + { + "package": "vue-router", + "version": "3.6.5", + "license": "MIT", + "status": "approved", + "override": "", + "ecosystem": "npm" + }, + { + "package": "vue2-datepicker", + "version": "3.11.1", + "license": "MIT", + "status": "approved", + "override": "", + "ecosystem": "npm" + }, + { + "package": "vue", + "version": "2.7.16", + "license": "MIT", + "status": "approved", + "override": "", + "ecosystem": "npm" + }, + { + "package": "web-namespaces", + "version": "2.0.1", + "license": "MIT", + "status": "approved", + "override": "", + "ecosystem": "npm" + }, + { + "package": "web-streams-polyfill", + "version": "3.3.3", + "license": "MIT", + "status": "approved", + "override": "", + "ecosystem": "npm" + }, + { + "package": "webdav", + "version": "5.9.0", + "license": "MIT", + "status": "approved", + "override": "", + "ecosystem": "npm" + } +] diff --git a/license-report-npm/npm-licenses.md b/license-report-npm/npm-licenses.md new file mode 100644 index 0000000..40d6698 --- /dev/null +++ b/license-report-npm/npm-licenses.md @@ -0,0 +1,259 @@ +# npm License Report + +**Generated:** 2026-03-14 17:59 UTC +**Repository:** ConductionNL/procest +**Ref:** 56c418e2199b64f9354cbcdbe8cbc8c6626c50dd + +## Summary + +| Metric | Count | +|--------|-------| +| Total dependencies | 240 | +| Approved (allowlist) | 240 | +| Approved (manual override) | 0 | +| **Denied** | **0** | + +## Dependencies + +| Package | Version | License | Status | Override | +|---------|---------|---------|--------|----------| +| @babel/helper-string-parser | 7.27.1 | MIT | approved | | +| @babel/helper-validator-identifier | 7.28.5 | MIT | approved | | +| @babel/parser | 7.29.0 | MIT | approved | | +| @babel/runtime | 7.28.6 | MIT | approved | | +| @babel/types | 7.29.0 | MIT | approved | | +| @buttercup/fetch | 0.2.1 | MIT | approved | | +| @conduction/nextcloud-vue | 0.1.0-beta.3 | EUPL-1.2 | approved | | +| @file-type/xml | 0.4.4 | MIT | approved | | +| @floating-ui/core | 0.3.1 | MIT | approved | | +| @floating-ui/core | 1.7.4 | MIT | approved | | +| @floating-ui/dom | 0.1.10 | MIT | approved | | +| @floating-ui/dom | 1.7.5 | MIT | approved | | +| @floating-ui/utils | 0.2.10 | MIT | approved | | +| @linusborg/vue-simple-portal | 0.1.5 | Apache-2.0 | approved | | +| @mapbox/hast-util-table-cell-style | 0.2.1 | BSD-2-Clause | approved | | +| @nextcloud/auth | 2.5.3 | GPL-3.0-or-later | approved | | +| @nextcloud/axios | 2.5.2 | GPL-3.0-or-later | approved | | +| @nextcloud/browser-storage | 0.5.0 | GPL-3.0-or-later | approved | | +| @nextcloud/capabilities | 1.2.1 | GPL-3.0-or-later | approved | | +| @nextcloud/dialogs | 3.2.0 | GPL-3.0-or-later | approved | | +| @nextcloud/event-bus | 3.3.3 | GPL-3.0-or-later | approved | | +| @nextcloud/files | 3.12.2 | AGPL-3.0-or-later | approved | | +| @nextcloud/initial-state | 2.2.0 | GPL-3.0-or-later | approved | | +| @nextcloud/initial-state | 3.0.0 | GPL-3.0-or-later | approved | | +| @nextcloud/l10n | 1.6.0 | GPL-3.0-or-later | approved | | +| @nextcloud/l10n | 2.2.0 | GPL-3.0-or-later | approved | | +| @nextcloud/l10n | 3.4.1 | GPL-3.0-or-later | approved | | +| @nextcloud/logger | 3.0.3 | GPL-3.0-or-later | approved | | +| @nextcloud/paths | 3.0.0 | GPL-3.0-or-later | approved | | +| @nextcloud/router | 2.1.2 | GPL-3.0-or-later | approved | | +| @nextcloud/router | 3.1.0 | GPL-3.0-or-later | approved | | +| @nextcloud/sharing | 0.3.0 | GPL-3.0-or-later | approved | | +| @nextcloud/typings | 1.10.0 | GPL-3.0-or-later | approved | | +| @nextcloud/vue-select | 3.26.0 | MIT | approved | | +| @nextcloud/vue | 8.36.0 | AGPL-3.0-or-later | approved | | +| @tokenizer/token | 0.3.0 | MIT | approved | | +| @types/debug | 4.1.12 | MIT | approved | | +| @types/escape-html | 1.0.4 | MIT | approved | | +| @types/hast | 2.3.10 | MIT | approved | | +| @types/hast | 3.0.4 | MIT | approved | | +| @types/jquery | 3.5.16 | MIT | approved | | +| @types/mdast | 4.0.4 | MIT | approved | | +| @types/ms | 2.1.0 | MIT | approved | | +| @types/react | 19.2.14 | MIT | approved | | +| @types/semver | 7.7.1 | MIT | approved | | +| @types/sizzle | 2.3.10 | MIT | approved | | +| @types/trusted-types | 2.0.7 | MIT | approved | | +| @types/unist | 2.0.11 | MIT | approved | | +| @types/unist | 3.0.3 | MIT | approved | | +| @types/web-bluetooth | 0.0.20 | MIT | approved | | +| @ungap/structured-clone | 1.3.0 | ISC | approved | | +| @vue/compiler-sfc | 2.7.16 | MIT* | approved | | +| @vue/devtools-api | 6.6.4 | MIT | approved | | +| @vueuse/components | 11.3.0 | MIT | approved | | +| @vueuse/core | 11.3.0 | MIT | approved | | +| @vueuse/metadata | 11.3.0 | MIT | approved | | +| @vueuse/shared | 11.3.0 | MIT | approved | | +| ansi-regex | 6.2.2 | MIT | approved | | +| asynckit | 0.4.0 | MIT | approved | | +| axios | 1.13.5 | MIT | approved | | +| bail | 2.0.2 | MIT | approved | | +| balanced-match | 1.0.2 | MIT | approved | | +| base-64 | 1.0.0 | MIT | approved | | +| blurhash | 2.0.5 | MIT | approved | | +| brace-expansion | 2.0.2 | MIT | approved | | +| byte-length | 1.0.2 | MIT | approved | | +| call-bind-apply-helpers | 1.0.2 | MIT | approved | | +| cancelable-promise | 4.3.1 | MIT | approved | | +| char-regex | 2.0.2 | MIT | approved | | +| character-entities | 2.0.2 | MIT | approved | | +| charenc | 0.0.2 | BSD-3-Clause | approved | | +| clamp | 1.0.1 | MIT | approved | | +| clone | 2.1.2 | MIT | approved | | +| combined-stream | 1.0.8 | MIT | approved | | +| comma-separated-tokens | 2.0.3 | MIT | approved | | +| core-js | 3.48.0 | MIT | approved | | +| crypt | 0.0.2 | BSD-3-Clause | approved | | +| csstype | 3.2.3 | MIT | approved | | +| data-uri-to-buffer | 4.0.1 | MIT | approved | | +| date-format-parse | 0.2.7 | MIT | approved | | +| debounce | 2.2.0 | MIT | approved | | +| debug | 4.4.3 | MIT | approved | | +| decode-named-character-reference | 1.3.0 | MIT | approved | | +| delayed-stream | 1.0.0 | MIT | approved | | +| dequal | 2.0.3 | MIT | approved | | +| devlop | 1.1.0 | MIT | approved | | +| dompurify | 3.3.3 | (MPL-2.0 OR Apache-2.0) | approved | | +| dunder-proto | 1.0.1 | MIT | approved | | +| emoji-mart-vue-fast | 15.0.5 | BSD-3-Clause | approved | | +| entities | 6.0.1 | BSD-2-Clause | approved | | +| es-define-property | 1.0.1 | MIT | approved | | +| es-errors | 1.3.0 | MIT | approved | | +| es-object-atoms | 1.1.1 | MIT | approved | | +| es-set-tostringtag | 2.1.0 | MIT | approved | | +| escape-html | 1.0.3 | MIT | approved | | +| escape-string-regexp | 5.0.0 | MIT | approved | | +| eventemitter3 | 5.0.4 | MIT | approved | | +| extend | 3.0.2 | MIT | approved | | +| fast-xml-builder | 1.1.2 | MIT | approved | | +| fast-xml-parser | 5.5.3 | MIT | approved | | +| fetch-blob | 3.2.0 | MIT | approved | | +| floating-vue | 1.0.0-beta.19 | MIT | approved | | +| focus-trap | 7.8.0 | MIT | approved | | +| follow-redirects | 1.15.11 | MIT | approved | | +| form-data | 4.0.5 | MIT | approved | | +| formdata-polyfill | 4.0.10 | MIT | approved | | +| function-bind | 1.1.2 | MIT | approved | | +| get-intrinsic | 1.3.0 | MIT | approved | | +| get-proto | 1.0.1 | MIT | approved | | +| gopd | 1.2.0 | MIT | approved | | +| has-symbols | 1.1.0 | MIT | approved | | +| has-tostringtag | 1.0.2 | MIT | approved | | +| hasown | 2.0.2 | MIT | approved | | +| hast-to-hyperscript | 10.0.3 | MIT | approved | | +| hast-util-is-element | 3.0.0 | MIT | approved | | +| hast-util-to-text | 4.0.2 | MIT | approved | | +| hast-util-whitespace | 2.0.1 | MIT | approved | | +| highlight.js | 11.11.1 | BSD-3-Clause | approved | | +| hot-patcher | 2.0.1 | MIT | approved | | +| inline-style-parser | 0.1.1 | MIT | approved | | +| is-absolute-url | 4.0.1 | MIT | approved | | +| is-buffer | 1.1.6 | MIT | approved | | +| is-buffer | 2.0.5 | MIT | approved | | +| is-plain-obj | 4.1.0 | MIT | approved | | +| is-svg | 6.1.0 | MIT | approved | | +| layerr | 3.0.0 | MIT | approved | | +| linkify-string | 4.3.2 | MIT | approved | | +| linkifyjs | 4.3.2 | MIT | approved | | +| lodash.get | 4.4.2 | MIT | approved | | +| lodash.throttle | 4.1.1 | MIT | approved | | +| lowlight | 3.3.0 | MIT | approved | | +| material-colors | 1.2.6 | ISC | approved | | +| math-intrinsics | 1.1.0 | MIT | approved | | +| md5 | 2.3.0 | BSD-3-Clause | approved | | +| mdast-squeeze-paragraphs | 6.0.0 | MIT | approved | | +| mdast-util-find-and-replace | 3.0.2 | MIT | approved | | +| mdast-util-from-markdown | 2.0.2 | MIT | approved | | +| mdast-util-newline-to-break | 2.0.0 | MIT | approved | | +| mdast-util-to-hast | 13.2.1 | MIT | approved | | +| mdast-util-to-string | 4.0.0 | MIT | approved | | +| micromark-core-commonmark | 2.0.3 | MIT | approved | | +| micromark-factory-destination | 2.0.1 | MIT | approved | | +| micromark-factory-label | 2.0.1 | MIT | approved | | +| micromark-factory-space | 2.0.1 | MIT | approved | | +| micromark-factory-title | 2.0.1 | MIT | approved | | +| micromark-factory-whitespace | 2.0.1 | MIT | approved | | +| micromark-util-character | 2.1.1 | MIT | approved | | +| micromark-util-chunked | 2.0.1 | MIT | approved | | +| micromark-util-classify-character | 2.0.1 | MIT | approved | | +| micromark-util-combine-extensions | 2.0.1 | MIT | approved | | +| micromark-util-decode-numeric-character-reference | 2.0.2 | MIT | approved | | +| micromark-util-decode-string | 2.0.1 | MIT | approved | | +| micromark-util-encode | 2.0.1 | MIT | approved | | +| micromark-util-html-tag-name | 2.0.1 | MIT | approved | | +| micromark-util-normalize-identifier | 2.0.1 | MIT | approved | | +| micromark-util-resolve-all | 2.0.1 | MIT | approved | | +| micromark-util-sanitize-uri | 2.0.1 | MIT | approved | | +| micromark-util-subtokenize | 2.1.0 | MIT | approved | | +| micromark-util-symbol | 2.0.1 | MIT | approved | | +| micromark-util-types | 2.0.2 | MIT | approved | | +| micromark | 4.0.2 | MIT | approved | | +| mime-db | 1.52.0 | MIT | approved | | +| mime-types | 2.1.35 | MIT | approved | | +| minimatch | 9.0.9 | ISC | approved | | +| ms | 2.1.3 | MIT | approved | | +| nanoid | 3.3.11 | MIT | approved | | +| nested-property | 4.0.0 | MIT | approved | | +| node-domexception | 1.0.0 | MIT | approved | | +| node-fetch | 3.3.2 | MIT | approved | | +| node-gettext | 3.0.1 | MIT | approved | | +| p-queue | 8.1.1 | MIT | approved | | +| p-timeout | 6.1.4 | MIT | approved | | +| path-expression-matcher | 1.1.3 | MIT | approved | | +| path-posix | 1.0.0 | ISC | approved | | +| picocolors | 1.1.1 | ISC | approved | | +| pinia | 2.3.1 | MIT | approved | | +| postcss | 8.5.6 | MIT | approved | | +| prettier | 2.8.8 | MIT | approved | | +| procest | 0.1.0 | EUPL-1.2 | approved | | +| property-information | 6.5.0 | MIT | approved | | +| proxy-from-env | 1.1.0 | MIT | approved | | +| querystringify | 2.2.0 | MIT | approved | | +| rehype-external-links | 3.0.0 | MIT | approved | | +| rehype-highlight | 7.0.2 | MIT | approved | | +| rehype-react | 7.2.0 | MIT | approved | | +| remark-breaks | 4.0.0 | MIT | approved | | +| remark-parse | 11.0.0 | MIT | approved | | +| remark-rehype | 11.1.2 | MIT | approved | | +| remark-unlink-protocols | 1.0.0 | MIT | approved | | +| requires-port | 1.0.0 | MIT | approved | | +| sax | 1.4.4 | BlueOak-1.0.0 | approved | | +| semver | 7.7.4 | ISC | approved | | +| source-map-js | 1.2.1 | BSD-3-Clause | approved | | +| source-map | 0.6.1 | BSD-3-Clause | approved | | +| space-separated-tokens | 2.0.2 | MIT | approved | | +| splitpanes | 2.4.1 | MIT | approved | | +| string-length | 5.0.1 | MIT | approved | | +| strip-ansi | 7.1.2 | MIT | approved | | +| striptags | 3.2.0 | MIT | approved | | +| strnum | 2.1.2 | MIT | approved | | +| strtok3 | 10.3.4 | MIT | approved | | +| style-to-object | 0.4.4 | MIT | approved | | +| tabbable | 6.4.0 | MIT | approved | | +| tinycolor2 | 1.6.0 | MIT | approved | | +| toastify-js | 1.12.0 | MIT | approved | | +| tributejs | 5.1.3 | MIT | approved | | +| trim-lines | 3.0.1 | MIT | approved | | +| trough | 2.2.0 | MIT | approved | | +| typescript-event-target | 1.1.2 | MIT | approved | | +| typescript | 5.9.3 | Apache-2.0 | approved | | +| unified | 10.1.2 | MIT | approved | | +| unified | 11.0.5 | MIT | approved | | +| unist-builder | 4.0.0 | MIT | approved | | +| unist-util-find-after | 5.0.0 | MIT | approved | | +| unist-util-is | 3.0.0 | MIT | approved | | +| unist-util-is | 6.0.1 | MIT | approved | | +| unist-util-position | 5.0.0 | MIT | approved | | +| unist-util-stringify-position | 3.0.3 | MIT | approved | | +| unist-util-stringify-position | 4.0.0 | MIT | approved | | +| unist-util-visit-parents | 2.1.2 | MIT | approved | | +| unist-util-visit-parents | 6.0.2 | MIT | approved | | +| unist-util-visit | 1.4.1 | MIT | approved | | +| unist-util-visit | 5.1.0 | MIT | approved | | +| url-join | 5.0.0 | MIT | approved | | +| url-parse | 1.5.10 | MIT | approved | | +| vfile-message | 3.1.4 | MIT | approved | | +| vfile-message | 4.0.3 | MIT | approved | | +| vfile | 5.3.7 | MIT | approved | | +| vfile | 6.0.3 | MIT | approved | | +| vue-color | 2.8.2 | MIT | approved | | +| vue-demi | 0.14.10 | MIT | approved | | +| vue-frag | 1.4.3 | MIT | approved | | +| vue-material-design-icons | 5.3.1 | MIT | approved | | +| vue-resize | 1.0.1 | MIT | approved | | +| vue-router | 3.6.5 | MIT | approved | | +| vue2-datepicker | 3.11.1 | MIT | approved | | +| vue | 2.7.16 | MIT | approved | | +| web-namespaces | 2.0.1 | MIT | approved | | +| web-streams-polyfill | 3.3.3 | MIT | approved | | +| webdav | 5.9.0 | MIT | approved | | diff --git a/newman/newman-run-report-2026-03-10-12-20-22-632-0.json b/newman/newman-run-report-2026-03-10-12-20-22-632-0.json new file mode 100644 index 0000000..aec48cb --- /dev/null +++ b/newman/newman-run-report-2026-03-10-12-20-22-632-0.json @@ -0,0 +1,395409 @@ +{ + "collection": { + "_": { + "postman_id": "a48fdfce-3810-46be-9613-67ddf0b99c27", + "exporter_id": "8783588", + "collection_link": "https://go.postman.co/collection/9365542-a48fdfce-3810-46be-9613-67ddf0b99c27?source=collection_link" + }, + "item": [ + { + "id": "6c971f95-27c1-40db-bf14-6ada26093fab", + "name": "ac", + "description": { + "content": "Bevat alle business logic tests voor het Autorisatiecomponent (AC)", + "type": "text/plain" + }, + "item": [ + { + "id": "5ff2674a-09d6-4f4f-8fd1-2a739a4c4cdb", + "name": "setUp", + "item": [ + { + "id": "9ad2d47e-120a-4340-ad29-85fb2c0f1f0a", + "name": "Create zgw-token client_id_restricted", + "request": { + "url": { + "path": [ + "zaaktypen" + ], + "host": [ + "{{ztc_url}}" + ], + "query": [], + "variable": [] + }, + "method": "GET", + "auth": { + "type": "bearer", + "bearer": [ + { + "type": "string", + "value": "{{jwt_token}}", + "key": "token" + } + ] + } + }, + "response": [], + "event": [ + { + "listen": "prerequest", + "script": { + "id": "27cf14ba-3982-4d49-8c34-0f14e9c14be0", + "type": "text/javascript", + "packages": {}, + "exec": [ + "", + " var secretCurrentOrg = pm.environment.get(\"secret_limited\");", + " var client_idCurrentOrg = pm.environment.get(\"client_id_limited\");", + "\r", + " var tokenuser = pm.environment.get(\"tokenuser\");\r", + " console.info(secretCurrentOrg,\"\",client_idCurrentOrg,\"\",tokenuser) \r", + " \r", + " function base64url(source) {\r", + " // Encode in classical base64\r", + " encodedSource = CryptoJS.enc.Base64.stringify(source);\r", + " \r", + " // Remove padding equal characters\r", + " encodedSource = encodedSource.replace(/=+$/, '');\r", + " \r", + " // Replace characters according to base64url specifications\r", + " encodedSource = encodedSource.replace(/\\+/g, '-');\r", + " encodedSource = encodedSource.replace(/\\//g, '_');\r", + " \r", + " return encodedSource;\r", + " }\r", + " \r", + " function addIAT(request) {\r", + " var iat = Math.floor(Date.now() / 1000) + 257;\r", + " data.iat = iat;\r", + " data.exp = iat + 10000000;\r", + " return data;\r", + " }\r", + " \r", + " var header = {\r", + " \"typ\": \"JWT\",\r", + " \"alg\": \"HS256\"\r", + " };\r", + " \r", + " var data = {\r", + " \"iss\": client_idCurrentOrg,\r", + " \"client_id\": client_idCurrentOrg,\r", + " \"user_id\": tokenuser,\r", + " \"user_representation\": client_idCurrentOrg,\r", + " \"jti\": \"35b9d0e0-8c80-4aef-9c9c-55d6e34eff40\"\r", + " };\r", + " data = addIAT(data);\r", + " \r", + " var secret = secretCurrentOrg;\r", + " \r", + " // encode header\r", + " var stringifiedHeader = CryptoJS.enc.Utf8.parse(JSON.stringify(header));\r", + " var encodedHeader = base64url(stringifiedHeader);\r", + " \r", + " // encode data\r", + " var stringifiedData = CryptoJS.enc.Utf8.parse(JSON.stringify(data));\r", + " var encodedData = base64url(stringifiedData);\r", + " \r", + " // build token\r", + " var token = encodedHeader + \".\" + encodedData;\r", + " \r", + " var signature = CryptoJS.HmacSHA256(token, secret);\r", + " signature = base64url(signature);\r", + " \r", + " var signedToken = token + \".\" + signature;\r", + " \r", + " pm.environment.set(\"jwt-limited\", signedToken);\r", + " pm.environment.set(\"jwt-zrc-006\", signedToken);\r", + "" + ] + } + }, + { + "listen": "test", + "script": { + "id": "9188ddb6-ca19-4d0d-a70f-2d57d3c96a95", + "type": "text/javascript", + "packages": {}, + "exec": [ + "" + ] + } + } + ] + }, + { + "id": "82134cee-147a-438e-9f29-557473a8e49f", + "name": "Set zgw-token", + "request": { + "url": { + "path": [ + "procestypen" + ], + "host": [ + "{{referentielijst_url}}" + ], + "query": [], + "variable": [] + }, + "method": "GET", + "auth": { + "type": "bearer", + "bearer": [ + { + "type": "string", + "value": "{{jwt_token}}", + "key": "token" + } + ] + } + }, + "response": [], + "event": [ + { + "listen": "prerequest", + "script": { + "id": "658daf91-382c-4c31-8f55-85361b8cacae", + "type": "text/javascript", + "packages": {}, + "exec": [ + " \r", + " var secretCurrentOrg = pm.environment.get(\"secret\");\r", + " var client_idCurrentOrg = pm.environment.get(\"client_id\");\r", + " var tokenuser = pm.environment.get(\"tokenuser\");\r", + " console.info(secretCurrentOrg,\"\",client_idCurrentOrg,\"\",tokenuser) \r", + " \r", + " function base64url(source) {\r", + " // Encode in classical base64\r", + " encodedSource = CryptoJS.enc.Base64.stringify(source);\r", + " \r", + " // Remove padding equal characters\r", + " encodedSource = encodedSource.replace(/=+$/, '');\r", + " \r", + " // Replace characters according to base64url specifications\r", + " encodedSource = encodedSource.replace(/\\+/g, '-');\r", + " encodedSource = encodedSource.replace(/\\//g, '_');\r", + " \r", + " return encodedSource;\r", + " }\r", + " \r", + " function addIAT(request) {\r", + " var iat = Math.floor(Date.now() / 1000) + 257;\r", + " data.iat = iat;\r", + " data.exp = iat + 10000000;\r", + " return data;\r", + " }\r", + " \r", + " var header = {\r", + " \"typ\": \"JWT\",\r", + " \"alg\": \"HS256\"\r", + " };\r", + " \r", + " var data = {\r", + " \"iss\": client_idCurrentOrg,\r", + " \"client_id\": client_idCurrentOrg,\r", + " \"user_id\": tokenuser,\r", + " \"user_representation\": client_idCurrentOrg,\r", + " \"jti\": \"35b9d0e0-8c80-4aef-9c9c-55d6e34eff40\"\r", + " };\r", + " data = addIAT(data);\r", + " \r", + " var secret = secretCurrentOrg;\r", + " \r", + " // encode header\r", + " var stringifiedHeader = CryptoJS.enc.Utf8.parse(JSON.stringify(header));\r", + " var encodedHeader = base64url(stringifiedHeader);\r", + " \r", + " // encode data\r", + " var stringifiedData = CryptoJS.enc.Utf8.parse(JSON.stringify(data));\r", + " var encodedData = base64url(stringifiedData);\r", + " \r", + " // build token\r", + " var token = encodedHeader + \".\" + encodedData;\r", + " \r", + " var signature = CryptoJS.HmacSHA256(token, secret);\r", + " signature = base64url(signature);\r", + " \r", + " var signedToken = token + \".\" + signature;\r", + " \r", + " pm.environment.set(\"jwt_token\", signedToken);\r", + " pm.environment.set(\"jwt_full\", signedToken);\r", + "" + ] + } + }, + { + "listen": "test", + "script": { + "id": "0af80461-c721-4710-b23d-4c0abfa87b61", + "type": "text/javascript", + "packages": {}, + "exec": [ + "" + ] + } + } + ] + }, + { + "id": "39f7f988-5bf4-4479-9034-27304491f690", + "name": "Create Catalogus", + "request": { + "url": { + "path": [ + "catalogussen" + ], + "host": [ + "{{ztc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n\t\"domein\": \"AAB\",\n\t\"rsin\": \"000000000\",\n\t\"contactpersoonBeheerNaam\": \"Test Persoon\"\n}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "63ae4afb-c6de-4536-83bb-748938d4b8f6", + "type": "text/javascript", + "packages": {}, + "exec": [ + "if(pm.response.code == 201) {\r", + "pm.environment.set(\"catalogus_url\", pm.response.json().url);\r", + "}\r", + "" + ] + } + } + ] + }, + { + "id": "2b05abe4-5cb4-4ffb-9527-1521ed76f6d2", + "name": "(AC) Create Besluittype", + "request": { + "url": { + "path": [ + "besluittypen" + ], + "host": [ + "{{ztc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n \"catalogus\": \"{{catalogus_url}}\",\n \"omschrijving\": \"testjes\",\n \"zaaktypen\": [],\n\t\"publicatieIndicatie\": false,\n\t\"informatieobjecttypen\": [],\n\t\"beginGeldigheid\": \"2019-01-01\"\n}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "bb60fefb-9f45-4d13-bc68-0f3e0b42fe87", + "type": "text/javascript", + "packages": {}, + "exec": [ + "pm.environment.set(\"besluittype_url\", pm.response.json().url);\r", + "pm.environment.set(\"besluittype_omschrijving\", pm.response.json().omschrijving);" + ] + } + } + ] + }, + { + "id": "2b030aff-a8cf-45ca-b236-c7e67a52642e", + "name": "Create InformatieObjecttype", + "request": { + "url": { + "path": [ + "informatieobjecttypen" + ], + "host": [ + "{{ztc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n\t\"catalogus\": \"{{catalogus_url}}\",\n\t\"omschrijving\": \"informatieobject\",\n\t\"vertrouwelijkheidaanduiding\": \"openbaar\",\n\t\"beginGeldigheid\": \"2019-01-01\",\n \"informatieobjectcategorie\": \"document\"\n}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "f9993863-ac42-48f1-a66b-83137b9c0cca", + "type": "text/javascript", + "exec": [ + "pm.environment.set(\"informatieobjecttype_url\", pm.response.json().url);" + ] + } + } + ] + }, + { + "id": "3fa6b07a-3495-4e8f-a173-dff0dba8ae1d", + "name": "Create Zaaktype", + "request": { + "url": { + "path": [ + "zaaktypen" + ], + "host": [ + "{{ztc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n\t\"identificatie\": \"1\",\n \"omschrijving\": \"ac_tests_1\",\n \"vertrouwelijkheidaanduiding\": \"openbaar\",\n \"doel\": \"test doel\",\n \"verantwoordelijke\": \"Organisatie eenheid X\",\n \"aanleiding\": \"test aanleiding\",\n \"indicatieInternOfExtern\": \"extern\",\n \"handelingInitiator\": \"indienen\",\n \"onderwerp\": \"openbare ruimte\",\n \"handelingBehandelaar\": \"behandelen\",\n \"doorlooptijd\": \"P10D\",\n \"opschortingEnAanhoudingMogelijk\": false,\n \"verlengingMogelijk\": false,\n \"publicatieIndicatie\": false,\n \"productenOfDiensten\": [\n \"https://ref.tst.vng.cloud/standaard/\"\n ],\n \"selectielijstProcestype\": \"{{procestype_procestermijn_nihil_url}}\",\n \"referentieproces\": {\n \"naam\": \"test\",\n \"link\": \"\"\n },\n \"catalogus\": \"{{catalogus_url}}\",\n \"statustypen\": [\n \"http://localhost:8002/api/v1/statustypen/ecb7fc03-5c11-46be-917f-e70e16c77554\",\n \"http://localhost:8002/api/v1/statustypen/14734ec8-04f8-4c18-a009-e190ff448ca9\"\n ],\n \"resultaattypen\": [\n \"http://localhost:8002/api/v1/resultaattypen/eead9dcd-9544-4862-8a03-b55643f95228\"\n ],\n \"eigenschappen\": [\n \"http://localhost:8002/api/v1/eigenschappen/d417bd46-a2a8-46d7-bb8c-4c8dc214301b\"\n ],\n \"informatieobjecttypen\": [],\n \"besluittypen\": [\n \"{{besluittype_omschrijving}}\"\n ],\n \"gerelateerdeZaaktypen\": [],\n \"deelzaaktypen\": [],\n \"beginGeldigheid\": \"2019-01-01\",\n \"versiedatum\": \"2019-01-01\",\n \"concept\": true\n}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "2714b553-9fa6-455b-9649-e352dced0fed", + "type": "text/javascript", + "packages": {}, + "exec": [ + "var res = pm.response.json();", + "pm.environment.set(\"zaaktype_url\", res.url);", + "pm.environment.set(\"zaaktype_vertrouwelijkheid\", res.vertrouwelijkheidaanduiding);", + "pm.environment.set(\"zaaktype_productenOfDiensten\", res.productenOfDiensten);", + "pm.environment.set(\"zaaktype_resultaattypen\", res.resultaattypen);", + "pm.environment.set(\"zaaktype_eigenschap\", res.eigenschappen[0]);", + "pm.environment.set(\"zaaktype_body\", pm.request.body.raw);" + ] + } + } + ] + } + ], + "event": [] + }, + { + "id": "9de74660-ad3d-4b7e-b02b-1e14880a6b36", + "name": "(ac-001)", + "item": [ + { + "id": "e33c83c1-78e1-4849-937b-896e73bc9c42", + "name": "(ac-001a) Applicatie aanmaken met meerdere clientIds is mogelijk", + "request": { + "url": { + "path": [ + "applicaties" + ], + "host": [ + "{{ac_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n\t\"clientIds\": [\n\t\t\"{{client_id_test_1}}\",\n\t\t\"{{client_id_test_2}}\"\n\t],\n\t\"label\": \"Test applicatie\",\n\t\"autorisaties\": [\n {\n \"component\": \"zrc\",\n \"componentWeergave\": \"Zaakregistratiecomponent\",\n \"scopes\": [\n \"zaken.lezen\"\n ],\n \"zaaktype\": \"{{zaaktype_url}}\",\n \"maxVertrouwelijkheidaanduiding\": \"openbaar\"\n }\n ]\n}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "15acbd91-9a6e-4ab0-8f68-9f85d97981d1", + "type": "text/javascript", + "packages": {}, + "exec": [ + "pm.test(\"Applicatie aanmaken met meerdere clientIds geeft 201\", function() {", + " pm.response.to.have.status(201);", + "", + " ", + "});", + "", + "if(pm.response.code == 201) {", + " pm.environment.set(\"applicatie_url\", pm.response.json().url);", + "}" + ] + } + }, + { + "listen": "prerequest", + "script": { + "id": "0d10051f-31ea-4278-ac5e-bf92c10355ff", + "type": "text/javascript", + "packages": {}, + "exec": [ + "var uuid = require('uuid');\r", + "var myUUID = uuid.v4(); \r", + "var myUUID = uuid.v4(); \r", + "pm.environment.set(\"client_id_test_2\", myUUID);" + ] + } + } + ] + }, + { + "id": "367f1a5c-8943-4664-9cce-7f4fbc776119", + "name": "(ac-001b) Applicatie aanmaken met al gebruikte client_id is onmogelijk", + "request": { + "url": { + "path": [ + "applicaties" + ], + "host": [ + "{{ac_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n\t\"clientIds\": [\"{{client_id_test_1}}\"],\n\t\"label\": \"Test applicatie\",\n\t\"heeftAlleAutorisaties\": true,\n\t\"autorisaties\": []\n}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "1a7f13a4-e3fc-4e00-9cca-d4d29744bad9", + "type": "text/javascript", + "packages": {}, + "exec": [ + "pm.test(\"Applicatie aanmaken een client_id die al gebruikt is voor een andere applicatie geeft 400\", function() {", + " pm.response.to.have.status(400);", + "", + " var error = pm.response.json().invalidParams[0];", + " pm.expect(error.name).to.be.equal(\"clientIds\");", + " pm.expect(error.code).to.be.equal(\"clientId-exists\");", + "});", + "", + "if(pm.response.code == 201) {", + " pm.environment.set(\"created_applicatie_url\", pm.response.json().url)", + " ", + "}" + ] + } + }, + { + "listen": "prerequest", + "script": { + "id": "7eeef65d-b86e-456b-a625-a0d8c92c84f7", + "type": "text/javascript", + "packages": {}, + "exec": [ + "" + ] + } + } + ] + }, + { + "id": "b93bd4d5-363a-4cc1-8e2c-8b37889cf946", + "name": "Delete created Applicatie", + "request": { + "url": { + "host": [ + "{{applicatie_url}}" + ], + "query": [], + "variable": [] + }, + "method": "DELETE", + "body": { + "mode": "raw", + "raw": "" + } + }, + "response": [], + "event": [] + } + ], + "event": [] + }, + { + "id": "065253ae-91d3-4bb1-a200-aa3044de21c9", + "name": "(ac-002)", + "item": [ + { + "id": "c4012bd3-9ed7-4d5f-a8c7-1720c5decd67", + "name": "(ac-002a) Applicatie aanmaken met heeftAlleAutorisaties en expliciete autorisaties is niet mogelijk", + "request": { + "url": { + "path": [ + "applicaties" + ], + "host": [ + "{{ac_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n\t\"clientIds\": [\n\t\t\"{{random_client_id}}\"\n\t],\n\t\"label\": \"Test applicatie\",\n\t\"heeftAlleAutorisaties\": true,\n\t\"autorisaties\": [\n {\n \"component\": \"zrc\",\n \"componentWeergave\": \"Zaakregistratiecomponent\",\n \"scopes\": [\n \"zaken.lezen\"\n ],\n \"zaaktype\": \"{{zaaktype_url}}\",\n \"maxVertrouwelijkheidaanduiding\": \"openbaar\"\n }\n ]\n}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "faef76f5-2b40-4d44-8e0f-f3d635c9332a", + "type": "text/javascript", + "packages": {}, + "exec": [ + "pm.test(\"Applicatie aanmaken met heeftAlleAutorisaties op true en expliciet meegegeven autorisaties geeft 400\", function() {", + " pm.response.to.have.status(400);", + " ", + " var error = pm.response.json().invalidParams[0];", + " pm.expect(error.name).to.be.equal(\"nonFieldErrors\");", + " pm.expect(error.code).to.be.equal(\"ambiguous-authorizations-specified\");", + "});", + "", + "if(pm.response.code == 201) {", + " pm.environment.set(\"created_applicatie_url\", pm.response.json().url)", + "", + "}" + ] + } + }, + { + "listen": "prerequest", + "script": { + "id": "77083ab0-fe03-4234-9583-2fe03b6ed475", + "type": "text/javascript", + "packages": {}, + "exec": [ + "var uuid = require('uuid');", + "var myUUID = uuid.v4(); ", + "pm.environment.set(\"random_client_id\", myUUID);", + "" + ] + } + } + ] + }, + { + "id": "3b35e191-c66d-4015-8f28-48f4425d2a59", + "name": "(ac-002b) Applicatie aanmaken met heeftAlleAutorisaties false en geen autorisaties is onmogelijk", + "request": { + "url": { + "path": [ + "applicaties" + ], + "host": [ + "{{ac_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n\t\"clientIds\": [\n\t\t\"test_id4\"\n\t],\n\t\"label\": \"Test applicatie\",\n\t\"heeftAlleAutorisaties\": false,\n\t\"autorisaties\": []\n}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "0ed093ef-221b-4023-a77f-ec2e43a4eb15", + "type": "text/javascript", + "packages": {}, + "exec": [ + "pm.test(\"Applicatie aanmaken met heeftAlleAutorisaties false en geen expliciet meegegeven autorisaties geeft 400\", function() {", + " pm.response.to.have.status(400);", + " ", + " var error = pm.response.json().invalidParams[0];", + " pm.expect(error.name).to.be.equal(\"nonFieldErrors\");", + " pm.expect(error.code).to.be.equal(\"missing-authorizations\");", + "});", + "", + "if(pm.response.code == 201) {", + " pm.environment.set(\"created_applicatie_url\", pm.response.json().url)", + "", + "}" + ] + } + } + ] + } + ], + "event": [] + }, + { + "id": "4a542e96-2d72-4185-bfda-11a66a4a04b5", + "name": "(ac-003)", + "item": [ + { + "id": "1939aba0-246f-4416-90b8-deaa681653a8", + "name": "(ac-003a) Autorisatie met component zrc scope m.b.t. zaken en zonder maxVertrouwelijkheidaanduiding en zaaktype is onmogelijk", + "request": { + "url": { + "path": [ + "applicaties" + ], + "host": [ + "{{ac_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n\t\"clientIds\": [\n\t\t\"test_id3\"\n\t],\n\t\"label\": \"Test applicatie\",\n\t\"autorisaties\": [\n {\n \"component\": \"zrc\",\n \"componentWeergave\": \"Zaakregistratiecomponent\",\n \"scopes\": [\n \"zaken.lezen\"\n ],\n \"zaaktype\": \"\",\n \"maxVertrouwelijkheidaanduiding\": \"\"\n }\n ]\n}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "20847a62-42f9-40b1-877f-bf1f29b84381", + "type": "text/javascript", + "packages": {}, + "exec": [ + "pm.test(\"Applicatie aanmaken met Autorisatie met component zrc en scope m.b.t. zaken zonder maxVertrouwelijkheidaanduiding en zaaktype is onmogelijk\", function() {", + " pm.response.to.have.status(400);", + " ", + " var errors = pm.response.json().invalidParams;", + " errors.sort((a, b) => (a.name > b.name) ? 1 : -1);", + " ", + " pm.expect(errors[0].name).to.be.equal(\"autorisaties.0.maxVertrouwelijkheidaanduiding\");", + " pm.expect(errors[0].code).to.be.equal(\"required\");", + " ", + " pm.expect(errors[1].name).to.be.equal(\"autorisaties.0.zaaktype\");", + " pm.expect(errors[1].code).to.be.equal(\"required\");", + "});", + "", + "if(pm.response.code == 201) {", + " pm.environment.set(\"created_applicatie_url\", pm.response.json().url)", + "", + "}" + ] + } + } + ] + }, + { + "id": "fff59ea8-ac24-428d-b0e5-473f8a1a6508", + "name": "(ac-003b) Autorisatie met component zrc zonder scope m.b.t. zaken en zonder maxVertrouwelijkheidaanduiding en zaaktype is mogelijk", + "request": { + "url": { + "path": [ + "applicaties" + ], + "host": [ + "{{ac_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n\t\"clientIds\": [\n\t\t\"{{random_client_id}}\"\n\t],\n\t\"label\": \"Test applicatie\",\n\t\"autorisaties\": [\n {\n \"component\": \"zrc\",\n \"componentWeergave\": \"Zaakregistratiecomponent\",\n \"scopes\": [\n \"notificaties.publiceren\"\n ],\n \"zaaktype\": \"\",\n \"maxVertrouwelijkheidaanduiding\": \"\"\n }\n ]\n}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "fc84452d-c7c3-4de6-a1d6-100a1a0afc45", + "type": "text/javascript", + "packages": {}, + "exec": [ + "pm.test(\"Applicatie aanmaken met Autorisatie met component zrc zonder scope m.b.t. zaken en zonder maxVertrouwelijkheidaanduiding en zaaktype is mogelijk\", function() {", + " pm.response.to.have.status(201);", + "});", + "", + "if(pm.response.code == 201) {", + " pm.environment.set(\"created_applicatie_url\", pm.response.json().url)", + " }" + ] + } + }, + { + "listen": "prerequest", + "script": { + "id": "1e26872e-12c6-46c7-8998-45568100de32", + "type": "text/javascript", + "packages": {}, + "exec": [ + "var uuid = require('uuid');", + "var myUUID = uuid.v4(); ", + "pm.environment.set(\"random_client_id\", myUUID);", + "" + ] + } + } + ] + }, + { + "id": "980e1cc4-5a6c-4b04-aba3-23ec97583bfd", + "name": "Delete Applicatie", + "request": { + "url": { + "host": [ + "{{created_applicatie_url}}" + ], + "query": [], + "variable": [] + }, + "method": "DELETE", + "body": { + "mode": "raw", + "raw": "" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "c6885b1d-2453-4932-9715-0976598d958f", + "type": "text/javascript", + "exec": [ + "pm.environment.unset(\"created_applicatie_url\");" + ] + } + } + ] + }, + { + "id": "6e6dabac-8851-4b37-92b5-2cee669ad0ea", + "name": "(ac-003c) Autorisatie met component drc scope m.b.t. documenten en zonder maxVertrouwelijkheidaanduiding en informatieobjecttype is onmogelijk", + "request": { + "url": { + "path": [ + "applicaties" + ], + "host": [ + "{{ac_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n\t\"clientIds\": [\n\t\t\"test_id3\"\n\t],\n\t\"label\": \"Test applicatie\",\n\t\"autorisaties\": [\n {\n \"component\": \"drc\",\n \"componentWeergave\": \"Documentregistratiecomponent\",\n \"scopes\": [\n \"documenten.lezen\"\n ],\n \"informatieobjecttype\": \"\",\n \"maxVertrouwelijkheidaanduiding\": \"\"\n }\n ]\n}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "fd575a7f-967d-4731-ad67-ab7d1369e7bd", + "type": "text/javascript", + "packages": {}, + "exec": [ + "pm.test(\"Applicatie aanmaken met Autorisatie met component drc en scope m.b.t. documenten zonder maxVertrouwelijkheidaanduiding en informatieobjecttype is onmogelijk\", function() {", + " pm.response.to.have.status(400);", + " ", + " var errors = pm.response.json().invalidParams;", + " errors.sort((a, b) => (a.name > b.name) ? 1 : -1);", + " ", + " pm.expect(errors[0].name).to.be.equal(\"autorisaties.0.informatieobjecttype\");", + " pm.expect(errors[0].code).to.be.equal(\"required\");", + " ", + " pm.expect(errors[1].name).to.be.equal(\"autorisaties.0.maxVertrouwelijkheidaanduiding\");", + " pm.expect(errors[1].code).to.be.equal(\"required\");", + "});", + "", + "if(pm.response.code == 201) {", + " pm.environment.set(\"created_applicatie_url\", pm.response.json().url)", + "", + "}" + ] + } + } + ] + }, + { + "id": "34831789-0e93-4f0d-82ae-72584b296ffd", + "name": "(ac-003d) Autorisatie met component drc zonder scope m.b.t. documenten en zonder maxVertrouwelijkheidaanduiding en informatieobjecttype is mogelijk", + "request": { + "url": { + "path": [ + "applicaties" + ], + "host": [ + "{{ac_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n\t\"clientIds\": [\n\t\t\"{{random_client_id}}\"\n\t],\n\t\"label\": \"Test applicatie\",\n\t\"autorisaties\": [\n {\n \"component\": \"drc\",\n \"componentWeergave\": \"Documentregistratiecomponent\",\n \"scopes\": [\n \"notificaties.publiceren\"\n ],\n \"informatieobjecttype\": \"\",\n \"maxVertrouwelijkheidaanduiding\": \"\"\n }\n ]\n}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "bb7b3fc6-0cd2-4e8d-ba0f-2aec0a45e36c", + "type": "text/javascript", + "packages": {}, + "exec": [ + "pm.test(\"Applicatie aanmaken met Autorisatie met component drc zonder scope m.b.t. documenten zonder maxVertrouwelijkheidaanduiding en informatieobjecttype is mogelijk\", function() {", + " pm.response.to.have.status(201);", + "});", + "", + "if(pm.response.code == 201) {", + " pm.environment.set(\"created_applicatie_url\", pm.response.json().url)", + "}" + ] + } + }, + { + "listen": "prerequest", + "script": { + "id": "e299113b-82b0-4ae7-9e70-1c6d25a3b26c", + "type": "text/javascript", + "packages": {}, + "exec": [ + "var uuid = require('uuid');", + "var myUUID = uuid.v4(); ", + "pm.environment.set(\"random_client_id\", myUUID);", + "" + ] + } + } + ] + }, + { + "id": "52eaf621-5752-4f65-887a-2d78d129f552", + "name": "Delete Applicatie", + "request": { + "url": { + "host": [ + "{{created_applicatie_url}}" + ], + "query": [], + "variable": [] + }, + "method": "DELETE", + "body": { + "mode": "raw", + "raw": "" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "a96d7586-8aca-4b43-8e77-76b64049a876", + "type": "text/javascript", + "exec": [ + "pm.environment.unset(\"created_applicatie_url\");" + ] + } + } + ] + }, + { + "id": "0a866211-b39f-47aa-92d9-8ce88e8df900", + "name": "(ac-003f) Autorisatie met component brc zonder scope m.b.t. besluiten en zonder besluittype is mogelijk", + "request": { + "url": { + "path": [ + "applicaties" + ], + "host": [ + "{{ac_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n\t\"clientIds\": [\n\t\t\"{{random_client_id}}\"\n\t],\n\t\"label\": \"Test applicatie\",\n\t\"autorisaties\": [\n {\n \"component\": \"brc\",\n \"componentWeergave\": \"Besluitregistratiecomponent\",\n \"scopes\": [\n \"notificaties.publiceren\"\n ],\n \"besluittype\": \"\"\n }\n ]\n}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "fa7a1726-8967-4265-8c17-25fbdaf4f59e", + "type": "text/javascript", + "packages": {}, + "exec": [ + "pm.test(\"Applicatie aanmaken met Autorisatie met component brc zonder scope m.b.t. besluiten zonder besluittype is mogelijk\", function() {", + " pm.response.to.have.status(201);", + "});", + "", + "if(pm.response.code == 201) {", + " pm.environment.set(\"created_applicatie_url\", pm.response.json().url)", + "}" + ] + } + }, + { + "listen": "prerequest", + "script": { + "id": "868cdedd-fbb0-4170-ae73-aba6b74d84d0", + "type": "text/javascript", + "packages": {}, + "exec": [ + "var uuid = require('uuid');", + "var myUUID = uuid.v4(); ", + "pm.environment.set(\"random_client_id\", myUUID);", + "" + ] + } + } + ] + }, + { + "id": "a0b836f1-bee8-456c-9843-0480721f42fa", + "name": "Delete Applicatie", + "request": { + "url": { + "host": [ + "{{created_applicatie_url}}" + ], + "query": [], + "variable": [] + }, + "method": "DELETE", + "body": { + "mode": "raw", + "raw": "" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "1a0377df-2b88-4843-b484-c4db153da1c0", + "type": "text/javascript", + "exec": [ + "pm.environment.unset(\"created_applicatie_url\");" + ] + } + } + ] + } + ], + "event": [] + } + ], + "event": [ + { + "listen": "prerequest", + "script": { + "id": "8aa9b550-11e6-4d74-a6b0-511b4fc3e6db", + "type": "text/javascript", + "exec": [ + "" + ] + } + }, + { + "listen": "test", + "script": { + "id": "323f3efb-3e7e-46be-9e34-cfb578c03aab", + "type": "text/javascript", + "exec": [ + "" + ] + } + } + ] + }, + { + "id": "269bf12e-dee2-4ed6-b1e5-9ff9c0063e40", + "name": "zrc", + "description": { + "content": "Bevat alle business logic tests voor het Zaakregistratiecomponent (ZRC)", + "type": "text/plain" + }, + "item": [ + { + "id": "511e407e-6f8a-4533-9145-35baec1461f2", + "name": "setUp", + "item": [ + { + "id": "675e52e7-9bca-46cf-b90d-dc1532eddca3", + "name": "Create Catalogus", + "request": { + "url": { + "path": [ + "catalogussen" + ], + "host": [ + "{{ztc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n\t\"domein\": \"ZGWT\",\n\t\"rsin\": \"000000000\",\n\t\"contactpersoonBeheerNaam\": \"Test Persoon\"\n}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "4ef2744c-7707-4171-8bc1-d03cd1bca9fb", + "type": "text/javascript", + "packages": {}, + "exec": [ + "if(pm.response.code == 201) {\r", + " pm.environment.set(\"catalogus_url\", pm.response.json().url);\r", + "}" + ], + "_lastExecutionId": "b9d215e7-4dac-489a-a4e5-3afa6425b250" + } + } + ] + }, + { + "id": "de505ea7-9510-437c-9980-8839a7218b23", + "name": "Get Resultaattypeomschrijving", + "request": { + "url": { + "path": [ + "resultaattypeomschrijvingen" + ], + "host": [ + "{{referentielijst_url}}" + ], + "query": [], + "variable": [] + }, + "method": "GET" + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "e90740bb-1e30-4689-b8a5-e2138c6c652d", + "type": "text/javascript", + "exec": [ + "pm.environment.set(\"resultaattypeomschrijving_url\", pm.response.json()[0].url);" + ], + "_lastExecutionId": "a3f65d34-12e4-41e8-bfed-33fe4854395d" + } + } + ] + }, + { + "id": "ec2c2979-3295-4fbf-8030-2a55afb93112", + "name": "Create Besluittype", + "request": { + "url": { + "path": [ + "besluittypen" + ], + "host": [ + "{{ztc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n \"catalogus\": \"{{catalogus_url}}\",\n \"omschrijving\": \"{{besluit_omschrijving}}\",\n \"zaaktypen\": [],\n\t\"publicatieIndicatie\": false,\n\t\"informatieobjecttypen\": [],\n\t\"beginGeldigheid\": \"2019-01-01\"\n}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "ee613c31-ab9a-412d-a799-fe30ad44a065", + "type": "text/javascript", + "packages": {}, + "exec": [ + "if(pm.response.code == 201) {\r", + " pm.environment.set(\"besluittype_url\", pm.response.json().url);\r", + "}" + ], + "_lastExecutionId": "593ee9d0-d2e0-4d55-b4b1-fdaec3e715ed" + } + }, + { + "listen": "prerequest", + "script": { + "id": "404fdf4f-73d1-4472-a261-8ae88e671d89", + "type": "text/javascript", + "packages": {}, + "exec": [ + "var uuid = require('uuid');\r", + "var myUUID = uuid.v4(); \r", + "pm.environment.set(\"besluit_omschrijving\", myUUID);" + ], + "_lastExecutionId": "0b5e92ef-dd65-4fea-a7eb-71f36a7f81d8" + } + } + ] + }, + { + "id": "dc3915f0-48e4-4bdc-b046-0e4569e1c473", + "name": "Create InformatieObjecttype", + "request": { + "url": { + "path": [ + "informatieobjecttypen" + ], + "host": [ + "{{ztc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n\t\"catalogus\": \"{{catalogus_url}}\",\n\t\"omschrijving\": \"{{informatieobject_omschrijving}}\",\n\t\"vertrouwelijkheidaanduiding\": \"openbaar\",\n\t\"beginGeldigheid\": \"2019-01-01\",\n\t\"informatieobjectcategorie\": \"document\"\n}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "ef009f1b-37a9-4d2e-8720-5e20410d52e1", + "type": "text/javascript", + "packages": {}, + "exec": [ + "if(pm.response.code == 201) {\r", + " pm.environment.set(\"informatieobjecttype_url\", pm.response.json().url);\r", + "}" + ], + "_lastExecutionId": "9541cdd6-8910-4db0-b7a9-4c0b18830b9c" + } + }, + { + "listen": "prerequest", + "script": { + "id": "ec14c310-64dc-48b7-b104-badd9871a763", + "type": "text/javascript", + "packages": {}, + "exec": [ + "var uuid = require('uuid');\r", + "var myUUID = uuid.v4(); \r", + "pm.environment.set(\"informatieobject_omschrijving\", myUUID);" + ], + "_lastExecutionId": "4014b0db-bd18-42a4-8864-df6ece621847" + } + } + ] + }, + { + "id": "3017f896-444d-4f8e-8a6b-d0c417b7f2f0", + "name": "Create Deelzaaktype", + "request": { + "url": { + "path": [ + "zaaktypen" + ], + "host": [ + "{{ztc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "disabled": true, + "key": "api-version", + "value": "1.3" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n\t\"identificatie\": \"{{random_identificatie2}}\",\n \"omschrijving\": \"zrc_tests_1 deelzaaktype\",\n \"vertrouwelijkheidaanduiding\": \"openbaar\",\n \"verantwoordelijke\":\"X\",\n \"doel\": \"test doel\",\n \"aanleiding\": \"test aanleiding\",\n \"indicatieInternOfExtern\": \"extern\",\n \"handelingInitiator\": \"indienen\",\n \"onderwerp\": \"openbare ruimte\",\n \"handelingBehandelaar\": \"behandelen\",\n \"doorlooptijd\": \"P10D\",\n \"opschortingEnAanhoudingMogelijk\": false,\n \"verlengingMogelijk\": true,\n \"publicatieIndicatie\": false,\n \"productenOfDiensten\": [\n \"https://ref.tst.vng.cloud/standaard/\"\n ],\n \"selectielijstProcestype\": \"{{procestype_procestermijn_nihil_url}}\",\n \"referentieproces\": {\n \"naam\": \"test\",\n \"link\": \"\"\n },\n \"catalogus\": \"{{catalogus_url}}\",\n \"statustypen\": [\n \n ],\n \"resultaattypen\": [\n ],\n \"eigenschappen\": [\n ],\n \"informatieobjecttypen\": [],\n \"besluittypen\": [\n \"{{besluit_omschrijving}}\"\n ],\n \"gerelateerdeZaaktypen\": [],\n \"deelzaaktypen\": [],\n \"beginGeldigheid\": \"2019-01-01\",\n \"versiedatum\": \"2019-01-01\",\n \"concept\": true,\n \"verlengingstermijn\": \"P5D\"\n}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "3dfc5054-8543-40af-ba3e-15080041b1c8", + "type": "text/javascript", + "packages": {}, + "exec": [ + "if(pm.response.code == 201) { ", + " var res = pm.response.json();", + " pm.environment.set(\"deelzaaktype_url\", res.url);", + " pm.environment.set(\"deelzaaktype_omschrijving\", res.omschrijving);", + " pm.environment.set(\"deelzaaktype_identificatie\", res.identificatie);", + "}" + ], + "_lastExecutionId": "bf05b0b5-b13c-4a70-b1aa-6666d5a7577a" + } + }, + { + "listen": "prerequest", + "script": { + "id": "9d77337d-cdff-4e8a-ac0f-cd7324a6d4cc", + "type": "text/javascript", + "packages": {}, + "exec": [ + "var uuid = require('uuid');", + "var myUUID = uuid.v4(); ", + "pm.environment.set(\"random_identificatie2\", myUUID);", + "" + ], + "_lastExecutionId": "dde441f7-63ec-4f12-bf34-70c4feb7a7a5" + } + } + ] + }, + { + "id": "132dbf0e-3a65-41dc-ae2b-1d466bf6b3d3", + "name": "Create Zaaktype", + "request": { + "url": { + "path": [ + "zaaktypen" + ], + "host": [ + "{{ztc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n\t\"identificatie\": \"{{random_identificatie}}\",\n \"omschrijving\": \"zrc_tests_1\",\n \"vertrouwelijkheidaanduiding\": \"openbaar\",\n \"doel\": \"test doel\",\n \"verantwoordelijke\":\"X\",\n \"aanleiding\": \"test aanleiding\",\n \"indicatieInternOfExtern\": \"extern\",\n \"handelingInitiator\": \"indienen\",\n \"onderwerp\": \"openbare ruimte\",\n \"handelingBehandelaar\": \"behandelen\",\n \"doorlooptijd\": \"P10D\",\n \"opschortingEnAanhoudingMogelijk\": false,\n \"verlengingMogelijk\": true,\n \"publicatieIndicatie\": false,\n \"productenOfDiensten\": [\n \"https://ref.tst.vng.cloud/standaard/\"\n ],\n \"selectielijstProcestype\": \"{{procestype_procestermijn_nihil_url}}\",\n \"referentieproces\": {\n \"naam\": \"test\",\n \"link\": \"\"\n },\n \"deelzaaktypen\": [\n \"{{deelzaaktype_identificatie}}\"\n ],\n \"catalogus\": \"{{catalogus_url}}\",\n \"statustypen\": [\n \n ],\n \"resultaattypen\": [\n ],\n \"eigenschappen\": [\n ],\n \"informatieobjecttypen\": [],\n \"besluittypen\": [\n \"{{besluit_omschrijving}}\"\n ],\n \"gerelateerdeZaaktypen\": [],\n \"beginGeldigheid\": \"2019-01-01\",\n \"versiedatum\": \"2019-01-01\",\n \"concept\": true,\n \"verlengingstermijn\": \"P5D\"\n}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "4d8e4c9b-78de-4450-8b12-1ca2af986003", + "type": "text/javascript", + "packages": {}, + "exec": [ + "if(pm.response.code == 201) {", + " var res = pm.response.json();", + "pm.environment.set(\"zaaktype_url\", res.url);", + "pm.environment.set(\"zaaktype_vertrouwelijkheid\", res.vertrouwelijkheidaanduiding);", + "pm.environment.set(\"zaaktype_productenOfDiensten\", res.productenOfDiensten);", + "pm.environment.set(\"zaaktype_resultaattypen\", res.resultaattypen);", + "pm.environment.set(\"zaaktype_eigenschap\", res.eigenschappen[0]);", + "pm.environment.set(\"zaaktype_body\", pm.request.body.raw);", + "}" + ], + "_lastExecutionId": "e8d49bf9-2330-4f64-abab-3027e0d7c784" + } + }, + { + "listen": "prerequest", + "script": { + "id": "ec8d489e-2c4d-4702-965f-18b5bdf627d1", + "type": "text/javascript", + "packages": {}, + "exec": [ + "var uuid = require('uuid');", + "var myUUID = uuid.v4(); ", + "pm.environment.set(\"random_identificatie\", myUUID);", + "" + ], + "_lastExecutionId": "678496a5-ff61-4868-9d99-6e62c190aaca" + } + } + ] + }, + { + "id": "323ab26c-a99d-45f6-b535-314baa544e77", + "name": "Create Zaaktype-InformatieObjectType relation", + "request": { + "url": { + "path": [ + "zaaktype-informatieobjecttypen" + ], + "host": [ + "{{ztc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n\t\"zaaktype\": \"{{zaaktype_url}}\",\n\t\"informatieobjecttype\": \"{{informatieobject_omschrijving}}\",\n\t\"volgnummer\": 1,\n\t\"richting\": \"inkomend\"\n}" + } + }, + "response": [], + "event": [] + }, + { + "id": "95485285-0078-45ed-b956-0b56bae7cbf1", + "name": "Create Eigenschap", + "request": { + "url": { + "path": [ + "eigenschappen" + ], + "host": [ + "{{ztc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n\t\"naam\": \"test eigenschap\",\n\t\"definitie\": \"for test\",\n\t\"zaaktype\": \"{{zaaktype_url}}\",\n \"specificatie\": {\n \"formaat\": \"tekst\",\n \"lengte\": \"5\",\n \"kardinaliteit\": \"1\",\n \"waardenverzameling\": [\"test\"]\n }\n}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "e375f798-aa1c-408f-994b-fe497c06f72d", + "type": "text/javascript", + "packages": {}, + "exec": [ + "if(pm.response.code == 201) {\r", + " pm.environment.set(\"zaaktype_eigenschap\", pm.response.json().url);\r", + "}" + ], + "_lastExecutionId": "d269761f-9b47-437a-8145-5c4df0eed3d0" + } + } + ] + }, + { + "id": "a528ae0d-e6be-4cdd-b741-ffe77c6330db", + "name": "Create Resultaattype afleidingswijze afgehandeld Copy", + "request": { + "url": { + "path": [ + "resultaattypen" + ], + "host": [ + "{{ztc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n\t\"zaaktype\": \"{{zaaktype_url}}\",\n\t\"omschrijving\": \"Klaar\",\n\t\"resultaattypeomschrijving\": \"{{resultaattypeomschrijving_url}}\",\n\t\"selectielijstklasse\": \"{{selectielijstklasse_procestermijn_nihil_url}}\",\n\t\"besluittypen\": [],\n \"brondatumArchiefprocedure\": {\n\t\t\"afleidingswijze\": \"afgehandeld\",\n\t\t\"procestermijn\": null,\n\t\t\"datumkenmerk\": \"\",\n\t\t\"einddatumBekend\": false,\n\t\t\"objecttype\": \"\",\n\t\t\"registratie\": \"\"\n\t}\n}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "4c3ecaee-aadd-4b4e-8390-35ad3e641e6c", + "type": "text/javascript", + "packages": {}, + "exec": [ + "if(pm.response.code == 201) {\r", + " pm.environment.set(\"resultaattype_url\", pm.response.json().url);\r", + "}" + ], + "_lastExecutionId": "f352b158-9fbb-4240-81e8-389d405461ea" + } + } + ] + }, + { + "id": "20272991-0d65-43af-b363-c4ae7f5c9ab8", + "name": "Create begin Statustype Copy", + "request": { + "url": { + "path": [ + "statustypen" + ], + "host": [ + "{{ztc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n\t\"omschrijving\": \"Begin\",\n\t\"zaaktype\": \"{{zaaktype_url}}\",\n\t\"volgnummer\": 1\n}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "df01f0a4-665f-4c2e-82f8-1a86b1c231e1", + "type": "text/javascript", + "exec": [ + "pm.environment.set(\"non_eindstatustype\", pm.response.json().url);" + ], + "_lastExecutionId": "714dbfbc-ceb0-4dd2-a741-667da6ce0196" + } + } + ] + }, + { + "id": "4582a0a9-1996-48f6-9ae9-40aa073a1c1f", + "name": "Create eind Statustype Copy", + "request": { + "url": { + "path": [ + "statustypen" + ], + "host": [ + "{{ztc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n\t\"omschrijving\": \"Eind\",\n\t\"zaaktype\": \"{{zaaktype_url}}\",\n\t\"volgnummer\": 2\n}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "bfa89a41-444e-4d1d-a58d-5e3c4b20368d", + "type": "text/javascript", + "exec": [ + "pm.environment.set(\"eindstatustype\", pm.response.json().url);" + ], + "_lastExecutionId": "cbf5a431-b165-408c-990a-53d9ede08b0d" + } + } + ] + }, + { + "id": "dc817160-48ee-473e-bb6a-9e46575b969d", + "name": "Create Roltype Copy", + "request": { + "url": { + "path": [ + "roltypen" + ], + "host": [ + "{{ztc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n\t\"zaaktype\": \"{{zaaktype_url}}\",\n\t\"omschrijving\": \"test\",\n\t\"omschrijvingGeneriek\": \"adviseur\"\n}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "14f13ffb-d5fe-42b0-b55d-0dd0af4836ab", + "type": "text/javascript", + "exec": [ + "pm.environment.set(\"roltype_url\", pm.response.json().url);" + ], + "_lastExecutionId": "787e9167-c715-4272-b427-b51a06b8f467" + } + } + ] + }, + { + "id": "5a028ad2-e41b-4b22-9493-6d1482342df9", + "name": "Publish Besluittype", + "request": { + "url": { + "path": [ + "publish" + ], + "host": [ + "{{besluittype_url}}" + ], + "query": [], + "variable": [] + }, + "method": "POST" + }, + "response": [], + "event": [] + }, + { + "id": "7e848e10-813a-4ac5-8501-0ed7cd2bcec6", + "name": "Publish Informatieobjecttype", + "request": { + "url": { + "path": [ + "publish" + ], + "host": [ + "{{informatieobjecttype_url}}" + ], + "query": [], + "variable": [] + }, + "method": "POST" + }, + "response": [], + "event": [] + }, + { + "id": "383524a4-81cc-430d-a8c5-ed3f5c6fa96f", + "name": "Publish Deelzaaktype", + "request": { + "url": { + "path": [ + "publish" + ], + "host": [ + "{{deelzaaktype_url}}" + ], + "query": [], + "variable": [] + }, + "method": "POST" + }, + "response": [], + "event": [] + }, + { + "id": "4b74da15-d55f-48eb-b75d-d28486f1bf51", + "name": "Publish Zaaktype", + "request": { + "url": { + "path": [ + "publish" + ], + "host": [ + "{{zaaktype_url}}" + ], + "query": [], + "variable": [] + }, + "method": "POST" + }, + "response": [], + "event": [] + }, + { + "id": "cd51a4de-928f-4596-8c8d-0414161ba4f0", + "name": "(DRC) Create EnkelvoudigInformatieObject", + "request": { + "url": { + "path": [ + "enkelvoudiginformatieobjecten" + ], + "host": [ + "{{drc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n \"bronorganisatie\": \"000000000\",\n \"creatiedatum\": \"2019-01-01\",\n \"titel\": \"testobject\",\n \"auteur\": \"testauteur\",\n \"taal\": \"eng\",\n \"inhoud\": \"{{object_inhoud}}\",\n \"informatieobjecttype\": \"{{informatieobjecttype_url}}\",\n \"indicatieGebruiksrecht\": false,\n \"status\": \"gearchiveerd\",\n \"bestandsomvang\": 6\n}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "56ba8e9a-5d6f-4fec-b593-59a9d575105c", + "type": "text/javascript", + "packages": {}, + "exec": [ + "pm.environment.set(\"informatieobject_url\", pm.response.json().url);" + ], + "_lastExecutionId": "92bdc038-0cd4-4aed-acde-d9084042f6d6" + } + }, + { + "listen": "prerequest", + "script": { + "id": "71a90346-3edc-4ae7-908d-ccd18736e59f", + "type": "text/javascript", + "packages": {}, + "exec": [ + "pm.environment.set(\"object_inhoud\", btoa(\"string\"))" + ], + "_lastExecutionId": "2ba1eb8f-e545-4c85-aa20-468d8ae25456" + } + } + ] + }, + { + "id": "3eeacb2f-eb37-402a-8089-2ac30120634c", + "name": "Temp (DRC) Create EnkelvoudigInformatieObject with extra fields", + "request": { + "url": { + "path": [ + "enkelvoudiginformatieobjecten" + ], + "host": [ + "{{drc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n\t\"bronorganisatie\": \"000000000\",\n\t\"creatiedatum\": \"2019-01-01\",\n\t\"titel\": \"testobject\",\n\t\"auteur\": \"testauteur\",\n \"formaat\": \"application/pdf\",\n \"taal\": \"nld\",\n \"bestandsnaam\": \"test 3.pdf\",\n \"status\": \"gearchiveerd\",\n\t\"inhoud\": \"{{object_inhoud}}\",\n\t\"informatieobjecttype\": \"{{informatieobjecttype_url}}\",\n\t\"bestandsomvang\": 6,\n \"indicatieGebruiksrecht\": false\n}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "f3bc4173-02c5-4e2f-bc55-1b2a711e4469", + "type": "text/javascript", + "packages": {}, + "exec": [ + "pm.environment.set(\"informatieobject_url\", pm.response.json().url);" + ], + "_lastExecutionId": "a06ada2b-5956-4ea1-9e08-d0201ab8e1ed" + } + }, + { + "listen": "prerequest", + "script": { + "id": "4aeb43c3-30e2-4a67-bab2-23f855ea9d76", + "type": "text/javascript", + "packages": {}, + "exec": [ + "pm.environment.set(\"object_inhoud\", btoa(\"string\"))" + ], + "_lastExecutionId": "dd122873-1e03-4a9c-82a9-8df6cbd200f4" + } + } + ] + }, + { + "id": "ed478db3-b865-4cd7-9c3f-3609b2fac4d3", + "name": "Add Gebruiksrechten to EnkelvoudigInformatieObject", + "request": { + "url": { + "path": [ + "gebruiksrechten" + ], + "host": [ + "{{drc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n\t\"informatieobject\": \"{{informatieobject_url}}\",\n\t\"startdatum\": \"2019-01-01T12:00:00\",\n\t\"omschrijvingVoorwaarden\": \"test\"\n}" + } + }, + "response": [], + "event": [] + }, + { + "id": "b142ab3c-30d1-4999-9ed9-2de4e40789ce", + "name": "Create EnkelvoudigInformatieObject with indicatieGebruiksrecht null", + "request": { + "url": { + "path": [ + "enkelvoudiginformatieobjecten" + ], + "host": [ + "{{drc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n\t\"bronorganisatie\": \"000000000\",\n\t\"creatiedatum\": \"2019-01-01\",\n\t\"titel\": \"testobject\",\n\t\"auteur\": \"testauteur\",\n\t\"taal\": \"eng\",\n\t\"inhoud\": \"{{object_inhoud}}\",\n\t\"informatieobjecttype\": \"{{informatieobjecttype_url}}\",\n\t\"indicatieGebruiksrecht\": null,\n\t\"bestandsomvang\": 6\n}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "090447b9-0e4c-4252-a114-e56bfd103246", + "type": "text/javascript", + "packages": {}, + "exec": [ + "pm.environment.set(\"informatieobject_gebruiksrecht_null_url\", pm.response.json().url);" + ], + "_lastExecutionId": "c6999add-b8f5-4cb2-b459-739ae4085682" + } + }, + { + "listen": "prerequest", + "script": { + "id": "054a59ae-69fb-4cb2-952e-699bbd63e95c", + "type": "text/javascript", + "packages": {}, + "exec": [ + "pm.environment.set(\"object_inhoud\", btoa(\"string\"))" + ], + "_lastExecutionId": "34dcd74a-539e-40b5-8e36-142d48ef7d55" + } + } + ] + }, + { + "id": "93da1d78-be6b-4734-b70f-0471add1f1d5", + "name": "Temp (DRC) Create EnkelvoudigInformatieObject with gebruiksrecht null", + "request": { + "url": { + "path": [ + "enkelvoudiginformatieobjecten" + ], + "host": [ + "{{drc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n \"bronorganisatie\": \"000000000\",\n \"creatiedatum\": \"2019-01-01\",\n \"titel\": \"testobject\",\n \"auteur\": \"testauteur\",\n \"formaat\": \"application/pdf\",\n \"taal\": \"nld\",\n \"bestandsnaam\": \"test 3.pdf\",\n \"inhoud\": \"{{object_inhoud}}\",\n \"informatieobjecttype\": \"{{informatieobjecttype_url}}\",\n \"indicatieGebruiksrecht\": null,\n \"bestandsomvang\": 6\n}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "1ca35623-a7f8-4201-aa8b-61671ea89993", + "type": "text/javascript", + "packages": {}, + "exec": [ + "pm.environment.set(\"informatieobject_gebruiksrecht_null_url\", pm.response.json().url);" + ], + "_lastExecutionId": "74c887ac-372a-4607-a851-31142012e9ca" + } + }, + { + "listen": "prerequest", + "script": { + "id": "bfd7c065-b281-41c7-8a73-732e4a60e649", + "type": "text/javascript", + "packages": {}, + "exec": [ + "pm.environment.set(\"object_inhoud\", btoa(\"string\"))" + ], + "_lastExecutionId": "e9c7e029-3eec-4bba-8841-21e5f2de06f3" + } + } + ] + } + ], + "event": [ + { + "listen": "prerequest", + "script": { + "id": "fa42b88b-474c-445a-8fef-01c6b16da6e9", + "type": "text/javascript", + "exec": [ + "" + ], + "_lastExecutionId": "255aab9b-17e2-429c-a41f-2e3e94f00e1a" + } + }, + { + "listen": "test", + "script": { + "id": "0766ba67-1561-466a-bde5-b43c0c96d7a2", + "type": "text/javascript", + "exec": [ + "" + ], + "_lastExecutionId": "cee01eef-502d-4069-9878-c0cba45fd433" + } + } + ] + }, + { + "id": "8c3ee871-c24c-400e-b8f5-03316045a574", + "name": "zrc-001", + "item": [ + { + "id": "403cb653-8660-4ead-8255-ef61d6a5038f", + "name": "Zaak", + "request": { + "url": { + "path": [ + "zaken" + ], + "host": [ + "{{zrc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Crs", + "value": "EPSG:4326" + }, + { + "key": "Accept-Crs", + "value": "EPSG:4326" + }, + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n \"bronorganisatie\": \"000000000\",\n \"omschrijving\": \"string\",\n \"toelichting\": \"string\",\n \"registratiedatum\": \"2019-04-09\",\n \"verantwoordelijkeOrganisatie\": \"000000000\",\n \"zaaktype\": \"{{zaaktype_url}}\",\n \"startdatum\": \"2019-04-09\",\n \"einddatumGepland\": \"2019-04-20\",\n \"uiterlijkeEinddatumAfdoening\": \"2019-04-09\",\n \"publicatiedatum\": \"2019-04-09\",\n \"vertrouwelijkheidaanduiding\": \"openbaar\",\n \"betalingsindicatie\": \"geheel\",\n \"laatsteBetaalDatum\": \"2019-01-01\",\n \"zaakgeometrie\": {\n \"type\": \"Point\",\n \"coordinates\": [\n 53,\n 5\n ]\n },\n \"opschorting\": {\n \"indicatie\": true,\n \"reden\": \"string\"\n },\n \"selectielijstklasse\": \"{{selectielijstklasse_url}}\",\n \"archiefstatus\": \"nog_te_archiveren\",\n \"deelzaaktypen\" : [\"{{deelzaaktype_url}}\"]\n}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "f70b7aea-2413-4808-97f0-539914634824", + "type": "text/javascript", + "packages": {}, + "exec": [ + "if(pm.response.code == 201) {", + " var zaak = pm.response.json();", + " pm.environment.set(\"zaak_url\", zaak.url);", + " pm.environment.set(\"zaakidentificatie\", zaak.identificatie);", + "}" + ], + "_lastExecutionId": "feb5c623-028f-4bf5-ab40-20f07537868b" + } + }, + { + "listen": "prerequest", + "script": { + "id": "240c36aa-5438-4379-a668-538d45daa8bc", + "type": "text/javascript", + "packages": {}, + "exec": [ + "" + ], + "_lastExecutionId": "5d0b6929-2280-4915-91c5-a63d2621b6e8" + } + } + ] + }, + { + "id": "b89c8b89-befd-4e22-8eed-ebbf2ccb4467", + "name": "(zrc-001b) Zaak bijwerken is mogelijk", + "request": { + "url": { + "host": [ + "{{zaak_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Crs", + "value": "EPSG:4326" + }, + { + "key": "Accept-Crs", + "value": "EPSG:4326" + }, + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "PUT", + "body": { + "mode": "raw", + "raw": "{\r\n \"bronorganisatie\": \"000000000\",\r\n \"omschrijving\": \"andere string\",\r\n \"toelichting\": \"string\",\r\n \"registratiedatum\": \"2019-04-09\",\r\n \"verantwoordelijkeOrganisatie\": \"000000000\",\r\n \"zaaktype\": \"{{zaaktype_url}}\",\r\n \"startdatum\": \"2019-04-09\",\r\n \"einddatumGepland\": \"2019-04-20\",\r\n \"uiterlijkeEinddatumAfdoening\": \"2019-04-09\",\r\n \"publicatiedatum\": \"2019-04-09\",\r\n \"vertrouwelijkheidaanduiding\": \"openbaar\",\r\n \"betalingsindicatie\": \"geheel\",\r\n \"laatsteBetaalDatum\": \"2019-01-01\",\r\n \"zaakgeometrie\": {\r\n \"type\": \"Point\",\r\n \"coordinates\": [\r\n 53,\r\n 5\r\n ]\r\n },\r\n \"opschorting\": {\r\n \"indicatie\": true,\r\n \"reden\": \"string\"\r\n },\r\n \"selectielijstklasse\": \"{{selectielijstklasse_url}}\",\r\n \"archiefstatus\": \"nog_te_archiveren\",\r\n \"deelzaaktypen\" : [\"{{deelzaaktype_url}}\"]\r\n}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "3b287902-4598-494b-8ea2-ff91d81393a9", + "type": "text/javascript", + "packages": {}, + "exec": [ + "pm.test(\"Zaak bijwerken met valide gegevens geeft 200\", function() {", + " pm.response.to.have.status(200);", + "});", + "", + "" + ], + "_lastExecutionId": "9cea0f45-2d46-4f80-936f-0812913e2190" + } + }, + { + "listen": "prerequest", + "script": { + "id": "d74a067a-b6da-4115-81fb-4b5be7d676e1", + "type": "text/javascript", + "packages": {}, + "exec": [ + "" + ], + "_lastExecutionId": "178f3fca-4209-4195-bb49-a690e6a484a6" + } + } + ] + }, + { + "id": "6e2d88e1-b4c1-4bda-baf0-bb2d60ec50e0", + "name": "(zrc-001c) Zaak deels bijwerken is mogelijk", + "request": { + "url": { + "host": [ + "{{zaak_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Crs", + "value": "EPSG:4326" + }, + { + "key": "Accept-Crs", + "value": "EPSG:4326" + }, + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "PATCH", + "body": { + "mode": "raw", + "raw": "{\n\t\"toelichting\": \"{{toelichting}}\"\n}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "5683c3da-00b9-4ae5-aabd-76b46d8a1eac", + "type": "text/javascript", + "exec": [ + "pm.test(\"Zaak deels bijwerken met valide zaaktype url geeft 200\", function() {", + " pm.response.to.have.status(200);", + " pm.expect(pm.response.json().toelichting).to.be.equal(pm.environment.get(\"toelichting\"));", + "});", + "", + "pm.test(\"Zaak deels bijwerken past gegevens correct aan\", function() {", + " pm.expect(pm.response.json().toelichting).to.be.equal(pm.environment.get(\"toelichting\"));", + "});" + ], + "_lastExecutionId": "29318f75-235c-4b75-9e36-47b487a1a97c" + } + }, + { + "listen": "prerequest", + "script": { + "id": "f0c99e68-88f7-4fae-a08f-14fa0f5fed8d", + "type": "text/javascript", + "exec": [ + "pm.environment.set(\"toelichting\", \"aangepaste toelichting\")" + ], + "_lastExecutionId": "4d4382e7-8f19-4539-b3df-baf6100e3fbb" + } + } + ] + }, + { + "id": "4c202958-83eb-4ff9-a1f8-640edc4cb3af", + "name": "(zrc-001d) Zaak aanmaken met ongeldige zaaktype url is onmogelijk", + "request": { + "url": { + "path": [ + "zaken" + ], + "host": [ + "{{zrc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Accept-Crs", + "value": "EPSG:4326" + }, + { + "key": "Content-Crs", + "value": "EPSG:4326" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\r\n \"bronorganisatie\": \"000000000\",\r\n \"omschrijving\": \"string\",\r\n \"toelichting\": \"string\",\r\n \"registratiedatum\": \"2019-04-09\",\r\n \"verantwoordelijkeOrganisatie\": \"000000000\",\r\n \"zaaktype\": \"{{ztc_url}}/zaaktypen/xyz\",\r\n \"startdatum\": \"2019-04-09\",\r\n \"einddatumGepland\": \"2019-04-20\",\r\n \"uiterlijkeEinddatumAfdoening\": \"2019-04-09\",\r\n \"publicatiedatum\": \"2019-04-09\",\r\n \"vertrouwelijkheidaanduiding\": \"openbaar\",\r\n \"betalingsindicatie\": \"geheel\",\r\n \"laatsteBetaalDatum\": \"2019-01-01\",\r\n \"zaakgeometrie\": {\r\n \"type\": \"Point\",\r\n \"coordinates\": [\r\n 53,\r\n 5\r\n ]\r\n },\r\n \"opschorting\": {\r\n \"indicatie\": true,\r\n \"reden\": \"string\"\r\n },\r\n \"selectielijstklasse\": \"{{selectielijstklasse_url}}\",\r\n \"archiefstatus\": \"nog_te_archiveren\",\r\n \"deelzaaktypen\" : [\"{{deelzaaktype_url}}\"]\r\n}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "ae6ba60a-eb6e-4019-9115-1105672f4eb4", + "type": "text/javascript", + "packages": {}, + "exec": [ + "pm.test(\"Zaak aanmaken met zaaktype url die niet resulteert in 200 geeft 400\", function() {", + " pm.response.to.have.status(400);", + " ", + " // Verify that the 400 is returned for the correct reason", + " var error = pm.response.json()[\"invalidParams\"][0];", + " pm.expect(error.name).to.be.equal(\"zaaktype\");", + " pm.expect(error.code).to.be.equal(\"bad-url\");", + "});", + "", + "// If the test failed and the Zaak was created, delete it", + "if(pm.response.code == 201) {", + " pm.environment.set(\"created_zaak_url\", pm.response.json().url);", + "", + "}" + ], + "_lastExecutionId": "2d0a354a-43b4-46a2-b3a5-c35a5e1b4fc9" + } + }, + { + "listen": "prerequest", + "script": { + "id": "637c5ee1-6481-441c-989f-20ba2025b134", + "type": "text/javascript", + "packages": {}, + "exec": [ + "" + ], + "_lastExecutionId": "9152b23f-75a9-4460-9d6e-a88803a4a425" + } + } + ] + }, + { + "id": "8af16436-3416-4962-a946-9536f0dab25d", + "name": "(zrc-001e) Zaak aanmaken met zaaktype url die niet wijst naar Zaaktype is onmogelijk", + "request": { + "url": { + "path": [ + "zaken" + ], + "host": [ + "{{zrc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Accept-Crs", + "value": "EPSG:4326" + }, + { + "key": "Content-Crs", + "value": "EPSG:4326" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\r\n \"bronorganisatie\": \"000000000\",\r\n \"omschrijving\": \"string\",\r\n \"toelichting\": \"string\",\r\n \"registratiedatum\": \"2019-04-09\",\r\n \"verantwoordelijkeOrganisatie\": \"000000000\",\r\n \"zaaktype\": \"https://www.roxit.nl\",\r\n \"startdatum\": \"2019-04-09\",\r\n \"einddatumGepland\": \"2019-04-20\",\r\n \"uiterlijkeEinddatumAfdoening\": \"2019-04-09\",\r\n \"publicatiedatum\": \"2019-04-09\",\r\n \"vertrouwelijkheidaanduiding\": \"openbaar\",\r\n \"betalingsindicatie\": \"geheel\",\r\n \"laatsteBetaalDatum\": \"2019-01-01\",\r\n \"zaakgeometrie\": {\r\n \"type\": \"Point\",\r\n \"coordinates\": [\r\n 53,\r\n 5\r\n ]\r\n },\r\n \"opschorting\": {\r\n \"indicatie\": true,\r\n \"reden\": \"string\"\r\n },\r\n \"selectielijstklasse\": \"{{selectielijstklasse_url}}\",\r\n \"archiefstatus\": \"nog_te_archiveren\",\r\n \"deelzaaktypen\" : [\"{{deelzaaktype_url}}\"]\r\n}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "a9be27d5-bb2e-4eac-9f3d-8c3d37296578", + "type": "text/javascript", + "packages": {}, + "exec": [ + "pm.test(\"Zaak aanmaken met zaaktype url die niet wijst naar Zaaktype-resource geeft 400\", function() {", + " pm.response.to.have.status(400);", + " ", + " // Verify that the 400 is returned for the correct reason", + " var error = pm.response.json()[\"invalidParams\"][0];", + " pm.expect(error.name).to.be.equal(\"zaaktype\");", + " ", + "});", + "", + "// If the test failed and the Zaak was created, delete it", + "if(pm.response.code == 201) {", + " pm.environment.set(\"created_zaak_url\", pm.response.json().url);", + "", + "}" + ], + "_lastExecutionId": "8c926c43-bff7-4740-9504-aed3e75d05c0" + } + }, + { + "listen": "prerequest", + "script": { + "id": "667e8c56-56ad-4a72-958c-c4c039d0af0f", + "type": "text/javascript", + "packages": {}, + "exec": [ + "" + ], + "_lastExecutionId": "e5867acf-a72d-4557-b3df-bc0cd7fb1c77" + } + } + ] + }, + { + "id": "77f1cddb-bacb-4af8-991d-a5bbe770c233", + "name": "Create Zaaktype for Zaak updates", + "request": { + "url": { + "path": [ + "zaaktypen" + ], + "host": [ + "{{ztc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n\t\"identificatie\": \"{{random_identificatie3}}\",\n \"omschrijving\": \"zrc_tests_1\",\n \"vertrouwelijkheidaanduiding\": \"openbaar\",\n \"doel\": \"test doel\",\n \"verantwoordelijke\":\"X\",\n \"aanleiding\": \"test aanleiding\",\n \"indicatieInternOfExtern\": \"extern\",\n \"handelingInitiator\": \"indienen\",\n \"onderwerp\": \"openbare ruimte\",\n \"handelingBehandelaar\": \"behandelen\",\n \"doorlooptijd\": \"P10D\",\n \"opschortingEnAanhoudingMogelijk\": false,\n \"verlengingMogelijk\": true,\n \"publicatieIndicatie\": false,\n \"productenOfDiensten\": [\n \"https://ref.tst.vng.cloud/standaard/\"\n ],\n \"selectielijstProcestype\": \"{{procestype_procestermijn_nihil_url}}\",\n \"referentieproces\": {\n \"naam\": \"test\",\n \"link\": \"\"\n },\n \"deelzaaktypen\": [\n \"{{deelzaaktype_identificatie}}\"\n ],\n \"catalogus\": \"{{catalogus_url}}\",\n \"statustypen\": [\n \n ],\n \"resultaattypen\": [\n ],\n \"eigenschappen\": [\n ],\n \"informatieobjecttypen\": [],\n \"besluittypen\": [\n \"{{besluittype_omschrijving}}\"\n ],\n \"gerelateerdeZaaktypen\": [],\n \"beginGeldigheid\": \"2019-01-01\",\n \"versiedatum\": \"2019-01-01\",\n \"concept\": true,\n \"verlengingstermijn\": \"P5D\"\n}" + } + }, + "response": [], + "event": [ + { + "listen": "prerequest", + "script": { + "id": "9f1b09f7-5d89-4148-bbe0-f85d522ef6fb", + "type": "text/javascript", + "packages": {}, + "exec": [ + "", + "var uuid = require('uuid');", + "var myUUID = uuid.v4(); ", + "pm.environment.set(\"random_identificatie3\", myUUID);", + "" + ], + "_lastExecutionId": "22bb4749-79b8-4dc0-9985-c5c15ffc9606" + } + }, + { + "listen": "test", + "script": { + "id": "d09a6ca6-0858-40de-9f06-243e6f7ea7a3", + "type": "text/javascript", + "packages": {}, + "exec": [ + "pm.environment.set(\"temp_zaaktype_url\", pm.response.json().url);" + ], + "_lastExecutionId": "5cebc24f-b61a-4fae-b48b-40ca0c567d30" + } + } + ] + }, + { + "id": "79063927-bc5f-46ee-8b77-f696201364af", + "name": "(zrc-001f) Zaak aanmaken met concept zaaktype is onmogelijk", + "request": { + "url": { + "path": [ + "zaken" + ], + "host": [ + "{{zrc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Accept-Crs", + "value": "EPSG:4326" + }, + { + "key": "Content-Crs", + "value": "EPSG:4326" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\r\n \"bronorganisatie\": \"000000000\",\r\n \"omschrijving\": \"string\",\r\n \"toelichting\": \"string\",\r\n \"registratiedatum\": \"2019-04-09\",\r\n \"verantwoordelijkeOrganisatie\": \"000000000\",\r\n \"zaaktype\": \"{{temp_zaaktype_url}}\",\r\n \"startdatum\": \"2019-04-09\",\r\n \"einddatumGepland\": \"2019-04-20\",\r\n \"uiterlijkeEinddatumAfdoening\": \"2019-04-09\",\r\n \"publicatiedatum\": \"2019-04-09\",\r\n \"vertrouwelijkheidaanduiding\": \"openbaar\",\r\n \"betalingsindicatie\": \"geheel\",\r\n \"laatsteBetaalDatum\": \"2019-01-01\",\r\n \"zaakgeometrie\": {\r\n \"type\": \"Point\",\r\n \"coordinates\": [\r\n 53,\r\n 5\r\n ]\r\n },\r\n \"opschorting\": {\r\n \"indicatie\": true,\r\n \"reden\": \"string\"\r\n },\r\n \"selectielijstklasse\": \"{{selectielijstklasse_url}}\",\r\n \"archiefstatus\": \"nog_te_archiveren\",\r\n \"deelzaaktypen\" : [\"{{deelzaaktype_url}}\"]\r\n}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "b2fc6238-a05f-4c3f-ac55-7b2330462513", + "type": "text/javascript", + "packages": {}, + "exec": [ + "pm.test(\"Zaak aanmaken met concept zaaktype geeft 400\", function() {", + " pm.response.to.have.status(400);", + " ", + " // Verify that the 400 is returned for the correct reason", + " var error = pm.response.json()[\"invalidParams\"][0];", + " pm.expect(error.name).to.be.equal(\"zaaktype\");", + " pm.expect(error.code).to.be.equal(\"not-published\");", + "});", + "", + "// If the test failed and the Zaak was created, delete it", + "if(pm.response.code == 201) {", + " pm.environment.set(\"created_zaak_url\", pm.response.json().url);", + "", + "}" + ], + "_lastExecutionId": "25255dd2-da44-4bd7-bb89-20142e014c42" + } + }, + { + "listen": "prerequest", + "script": { + "id": "41453169-43c7-40eb-8e6a-29b8f2d8f870", + "type": "text/javascript", + "packages": {}, + "exec": [ + "" + ], + "_lastExecutionId": "1b875604-0dce-42d2-9368-c62f2a01cc26" + } + } + ] + } + ], + "event": [ + { + "listen": "prerequest", + "script": { + "id": "11847879-7e18-44ff-935f-a005177151f1", + "type": "text/javascript", + "exec": [ + "" + ], + "_lastExecutionId": "e5ec3156-3384-4a29-9106-27c32b475c4b" + } + }, + { + "listen": "test", + "script": { + "id": "bcd4b3c4-0e72-4db4-95a6-78cc1f090978", + "type": "text/javascript", + "exec": [ + "" + ], + "_lastExecutionId": "d0c84754-59e6-47dd-a5a0-a511e7dc0213" + } + } + ] + }, + { + "id": "8569e799-6fd2-4586-8464-75c46009aa70", + "name": "zrc-002", + "item": [ + { + "id": "0663f76a-3804-490d-b26f-37366529844f", + "name": "(zrc-002a) Zaak aanmaken met bestaande combinatie identificatie en bronorganisatie is onmogelijk", + "request": { + "url": { + "path": [ + "zaken" + ], + "host": [ + "{{zrc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Accept-Crs", + "value": "EPSG:4326" + }, + { + "key": "Content-Crs", + "value": "EPSG:4326" + }, + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\r\n \"bronorganisatie\": \"000000000\",\r\n \"identificatie\": \"{{zaakidentificatie}}\",\r\n \"omschrijving\": \"string\",\r\n \"toelichting\": \"string\",\r\n \"registratiedatum\": \"2019-04-09\",\r\n \"verantwoordelijkeOrganisatie\": \"000000000\",\r\n \"zaaktype\": \"{{zaaktype_url}}\",\r\n \"startdatum\": \"2019-04-09\",\r\n \"einddatumGepland\": \"2019-04-20\",\r\n \"uiterlijkeEinddatumAfdoening\": \"2019-04-09\",\r\n \"publicatiedatum\": \"2019-04-09\",\r\n \"vertrouwelijkheidaanduiding\": \"openbaar\",\r\n \"betalingsindicatie\": \"geheel\",\r\n \"laatsteBetaalDatum\": \"2019-01-01\",\r\n \"zaakgeometrie\": {\r\n \"type\": \"Point\",\r\n \"coordinates\": [\r\n 53,\r\n 5\r\n ]\r\n },\r\n \"opschorting\": {\r\n \"indicatie\": true,\r\n \"reden\": \"string\"\r\n },\r\n \"selectielijstklasse\": \"{{selectielijstklasse_url}}\",\r\n \"archiefstatus\": \"nog_te_archiveren\",\r\n \"deelzaaktypen\" : [\"{{deelzaaktype_url}}\"]\r\n}" + } + }, + "response": [], + "event": [ + { + "listen": "prerequest", + "script": { + "id": "6af56eef-1c1f-4657-9453-aa290a5995a0", + "type": "text/javascript", + "packages": {}, + "exec": [ + "" + ], + "_lastExecutionId": "6549264d-b3a8-42c8-9994-885c054ee690" + } + }, + { + "listen": "test", + "script": { + "id": "f6a2024d-30fc-4b00-ae0c-cccb429fc801", + "type": "text/javascript", + "packages": {}, + "exec": [ + "pm.test(\"Zaak aanmaken met bestaande combinatie bronorganisatie en identificatie geeft 400\", function() {", + " pm.response.to.have.status(400);", + " ", + " var error = pm.response.json()[\"invalidParams\"][0];", + " pm.expect(error.name).to.be.equal(\"identificatie\");", + " pm.expect(error.code).to.be.equal(\"identificatie-niet-uniek\");", + "});", + "", + "// If the test failed and the Zaak was created, delete it", + "if(pm.response.code == 201) {", + " pm.environment.set(\"created_zaak_url\", pm.response.json().url);", + "", + "}" + ], + "_lastExecutionId": "7e60ac12-fe28-4249-8d42-76da16e13f46" + } + } + ] + }, + { + "id": "9c2eb4d9-143f-4283-8486-adb661de0142", + "name": "Create Zaak with unique identificatie and bronorganisatie", + "request": { + "description": { + "content": "Maakt een Zaak aan die gebruikt zal worden in de tests, deze zaak wordt na de tests weer verwijderd.\n\nDe body van deze Zaak zal ook als variabele opgeslagen worden en gebruikt worden (met kleine aanpassingen iedere keer) in de requests voor de validatie tests, om te voorkomen dat telkens hetzelfde body gekopieerd moet worden.", + "type": "text/plain" + }, + "url": { + "path": [ + "zaken" + ], + "host": [ + "{{zrc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Content-Crs", + "value": "EPSG:4326" + }, + { + "key": "Accept-Crs", + "value": "EPSG:4326" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\r\n \"bronorganisatie\": \"000000000\",\r\n \"omschrijving\": \"string\",\r\n \"toelichting\": \"string\",\r\n \"registratiedatum\": \"2019-04-09\",\r\n \"verantwoordelijkeOrganisatie\": \"000000000\",\r\n \"zaaktype\": \"{{zaaktype_url}}\",\r\n \"startdatum\": \"2019-04-09\",\r\n \"einddatumGepland\": \"2019-04-20\",\r\n \"uiterlijkeEinddatumAfdoening\": \"2019-04-09\",\r\n \"publicatiedatum\": \"2019-04-09\",\r\n \"vertrouwelijkheidaanduiding\": \"openbaar\",\r\n \"betalingsindicatie\": \"geheel\",\r\n \"laatsteBetaalDatum\": \"2019-01-01\",\r\n \"zaakgeometrie\": {\r\n \"type\": \"Point\",\r\n \"coordinates\": [\r\n 53,\r\n 5\r\n ]\r\n },\r\n \"opschorting\": {\r\n \"indicatie\": true,\r\n \"reden\": \"string\"\r\n },\r\n \"selectielijstklasse\": \"{{selectielijstklasse_url}}\",\r\n \"archiefstatus\": \"nog_te_archiveren\",\r\n \"deelzaaktypen\" : [\"{{deelzaaktype_url}}\"]\r\n}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "96a96107-1b70-45e8-bbf8-36d379b16bb6", + "type": "text/javascript", + "packages": {}, + "exec": [ + "pm.environment.set(\"created_zaak_url\", pm.response.json().url);" + ], + "_lastExecutionId": "30c3f79b-57bb-4807-aeda-4dd7968da3b3" + } + }, + { + "listen": "prerequest", + "script": { + "id": "ec3aa097-42cd-498e-ad17-81e5fd28fc4d", + "type": "text/javascript", + "packages": {}, + "exec": [], + "_lastExecutionId": "f9371a23-de71-49fb-ab75-a02c6f16d6ea" + } + } + ] + }, + { + "id": "194bf2c6-ee8b-4510-ba72-08f7ae2da89c", + "name": "(zrc-002b) Zaak bijwerken met bestaande combinatie identificatie en bronorganisatie is onmogelijk", + "request": { + "url": { + "host": [ + "{{created_zaak_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Accept-Crs", + "value": "EPSG:4326" + }, + { + "key": "Content-Crs", + "value": "EPSG:4326" + }, + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "PUT", + "body": { + "mode": "raw", + "raw": "{\r\n \"bronorganisatie\": \"000000000\",\r\n \"identificatie\": \"{{zaakidentificatie}}\",\r\n \"omschrijving\": \"string\",\r\n \"toelichting\": \"string\",\r\n \"registratiedatum\": \"2019-04-09\",\r\n \"verantwoordelijkeOrganisatie\": \"000000000\",\r\n \"zaaktype\": \"{{zaaktype_url}}\",\r\n \"startdatum\": \"2019-04-09\",\r\n \"einddatumGepland\": \"2019-04-20\",\r\n \"uiterlijkeEinddatumAfdoening\": \"2019-04-09\",\r\n \"publicatiedatum\": \"2019-04-09\",\r\n \"vertrouwelijkheidaanduiding\": \"openbaar\",\r\n \"betalingsindicatie\": \"geheel\",\r\n \"laatsteBetaalDatum\": \"2019-01-01\",\r\n \"zaakgeometrie\": {\r\n \"type\": \"Point\",\r\n \"coordinates\": [\r\n 53,\r\n 5\r\n ]\r\n },\r\n \"opschorting\": {\r\n \"indicatie\": true,\r\n \"reden\": \"string\"\r\n },\r\n \"selectielijstklasse\": \"{{selectielijstklasse_url}}\",\r\n \"archiefstatus\": \"nog_te_archiveren\",\r\n \"deelzaaktypen\" : [\"{{deelzaaktype_url}}\"]\r\n}" + } + }, + "response": [], + "event": [ + { + "listen": "prerequest", + "script": { + "id": "241f49b0-115f-45ee-8085-8175b389021c", + "type": "text/javascript", + "packages": {}, + "exec": [ + "" + ], + "_lastExecutionId": "75d00ee1-fc7f-4245-9cb8-b1e87442b920" + } + }, + { + "listen": "test", + "script": { + "id": "011796aa-9580-4715-a6eb-12225801be15", + "type": "text/javascript", + "packages": {}, + "exec": [ + "pm.test(\"Zaak aanmaken met bestaande combinatie bronorganisatie en identificatie geeft 400\", function() {", + " pm.response.to.have.status(400);", + " ", + " var error = pm.response.json()[\"invalidParams\"][0];", + " pm.expect(error.name).to.be.equal(\"identificatie\");", + " pm.expect(error.code).to.be.equal(\"wijzigen-niet-toegelaten\");", + "});" + ], + "_lastExecutionId": "a306fe1a-eb36-468c-b0ac-dff34982737d" + } + } + ] + }, + { + "id": "5de9a8b9-e6ac-4c31-954c-8e8894bb1567", + "name": "(zrc-002c) Zaak deels bijwerken met bestaande combinatie identificatie en bronorganisatie is onmogelijk", + "request": { + "url": { + "host": [ + "{{created_zaak_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Accept-Crs", + "value": "EPSG:4326" + }, + { + "key": "Content-Crs", + "value": "EPSG:4326" + }, + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "PATCH", + "body": { + "mode": "raw", + "raw": "{\n\t\"identificatie\": \"{{zaakidentificatie}}\",\n\t\"bronorganisatie\": \"000000000\"\n}" + } + }, + "response": [], + "event": [ + { + "listen": "prerequest", + "script": { + "id": "fb9f65f1-90c4-4b1f-a01a-6c07f8ee6e2b", + "type": "text/javascript", + "packages": {}, + "exec": [ + "" + ], + "_lastExecutionId": "0ec961e6-a69b-48b8-913f-70308c3e8c44" + } + }, + { + "listen": "test", + "script": { + "id": "dd119163-c14a-457c-a7f5-82715d89b69d", + "type": "text/javascript", + "packages": {}, + "exec": [ + "pm.test(\"Zaak aanmaken met bestaande combinatie bronorganisatie en identificatie geeft 400\", function() {", + " pm.response.to.have.status(400);", + " ", + " var error = pm.response.json()[\"invalidParams\"][0];", + " pm.expect(error.name).to.be.equal(\"identificatie\");", + " pm.expect(error.code).to.be.equal(\"wijzigen-niet-toegelaten\");", + "});", + "", + "" + ], + "_lastExecutionId": "df0c7f29-3a55-4f99-ba2d-592f1c4a13e4" + } + } + ] + }, + { + "id": "4bd4a012-706d-4f8f-9124-d9874ac5ba8f", + "name": "Retrieve Zaken for bronorganisatie", + "request": { + "url": { + "path": [ + "zaken" + ], + "host": [ + "{{zrc_url}}" + ], + "query": [ + { + "key": "bronorganisatie", + "value": "{{zaak_bronorganisatie}}" + } + ], + "variable": [] + }, + "header": [ + { + "key": "Accept-Crs", + "value": "EPSG:4326" + } + ], + "method": "GET" + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "e3591afc-5f8f-4a76-8cbb-b22f3f713431", + "type": "text/javascript", + "exec": [ + "pm.environment.set(\"zaken_for_bronorganisatie\", pm.response.json().results);" + ], + "_lastExecutionId": "c897cc0f-ea0e-44a8-962a-3c68d938069b" + } + } + ] + }, + { + "id": "07a372b4-a5ac-4fd5-9d75-c064e851ee98", + "name": "Genereer unieke identificatie voor Zaak onder bronorganisatie", + "request": { + "url": { + "path": [ + "zaken" + ], + "host": [ + "{{zrc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Accept-Crs", + "value": "EPSG:4326" + }, + { + "key": "Content-Crs", + "value": "EPSG:4326" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\r\n \"bronorganisatie\": \"000000000\",\r\n \"omschrijving\": \"string\",\r\n \"toelichting\": \"string\",\r\n \"registratiedatum\": \"2019-04-09\",\r\n \"verantwoordelijkeOrganisatie\": \"000000000\",\r\n \"zaaktype\": \"{{zaaktype_url}}\",\r\n \"startdatum\": \"2019-04-09\",\r\n \"einddatumGepland\": \"2019-04-20\",\r\n \"uiterlijkeEinddatumAfdoening\": \"2019-04-09\",\r\n \"publicatiedatum\": \"2019-04-09\",\r\n \"vertrouwelijkheidaanduiding\": \"openbaar\",\r\n \"betalingsindicatie\": \"geheel\",\r\n \"laatsteBetaalDatum\": \"2019-01-01\",\r\n \"zaakgeometrie\": {\r\n \"type\": \"Point\",\r\n \"coordinates\": [\r\n 53,\r\n 5\r\n ]\r\n },\r\n \"opschorting\": {\r\n \"indicatie\": true,\r\n \"reden\": \"string\"\r\n },\r\n \"selectielijstklasse\": \"{{selectielijstklasse_url}}\",\r\n \"archiefstatus\": \"nog_te_archiveren\",\r\n \"deelzaaktypen\" : [\"{{deelzaaktype_url}}\"]\r\n}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "9ca0e4e7-b089-41ea-b034-9b9f5d67d98d", + "type": "text/javascript", + "packages": {}, + "exec": [ + "if (pm.response.code==201){", + "", + " pm.environment.set(\"unieke_zaak_identificatie\", pm.response.json().identificatie);", + "}" + ], + "_lastExecutionId": "f561ed94-fffc-48cd-b849-b182b45a77b1" + } + }, + { + "listen": "prerequest", + "script": { + "id": "8a354cf0-1dae-4c7f-ac6b-d81a7e1b6ea1", + "type": "text/javascript", + "packages": {}, + "exec": [ + "" + ], + "_lastExecutionId": "c562c7a7-549f-49fc-a171-baa25491d9bb" + } + } + ] + }, + { + "id": "f40999a5-8402-45e8-842a-f99f6ac2df76", + "name": "(zrc-002d) is identificatie uniek", + "request": { + "url": { + "path": [ + "zaken" + ], + "host": [ + "{{zrc_url}}" + ], + "query": [ + { + "key": "identificatie", + "value": "{{unieke_zaak_identificatie}}" + } + ], + "variable": [] + }, + "header": [ + { + "key": "Accept-Crs", + "value": "EPSG:4326" + } + ], + "method": "GET" + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "4cae067d-da8b-4ea2-9c6b-544a37ad025f", + "type": "text/javascript", + "packages": {}, + "exec": [ + "pm.test(\"zrc-002d gegenereerde identificatie is uniek\", function() {\r", + " pm.expect(pm.response.json().count).to.be.equal(1);\r", + "})" + ], + "_lastExecutionId": "4487cf0c-f5bc-4a8f-b0f1-8e795f841722" + } + } + ] + } + ], + "event": [ + { + "listen": "prerequest", + "script": { + "id": "2ad9a5bc-6cbd-4761-9f3c-f61694816177", + "type": "text/javascript", + "exec": [ + "" + ], + "_lastExecutionId": "41fd840b-2ecf-4954-99d8-138007d0804e" + } + }, + { + "listen": "test", + "script": { + "id": "6534532d-6435-4671-8f3f-03674ba7f192", + "type": "text/javascript", + "exec": [ + "" + ], + "_lastExecutionId": "c25acc89-e12c-431f-a5a2-6dd33fff8963" + } + } + ] + }, + { + "id": "eb42a282-4a39-40f9-8ed4-3289ec299afb", + "name": "zrc-003", + "item": [ + { + "id": "a7a6038c-256d-495c-970b-cdacbde8c4a5", + "name": "Zaak Copy", + "request": { + "url": { + "path": [ + "zaken" + ], + "host": [ + "{{zrc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Crs", + "value": "EPSG:4326" + }, + { + "key": "Accept-Crs", + "value": "EPSG:4326" + }, + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n \"bronorganisatie\": \"000000000\",\n \"omschrijving\": \"string\",\n \"toelichting\": \"string\",\n \"registratiedatum\": \"2019-04-09\",\n \"verantwoordelijkeOrganisatie\": \"000000000\",\n \"zaaktype\": \"{{zaaktype_url}}\",\n \"startdatum\": \"2019-04-09\",\n \"einddatumGepland\": \"2019-04-20\",\n \"uiterlijkeEinddatumAfdoening\": \"2019-04-09\",\n \"publicatiedatum\": \"2019-04-09\",\n \"vertrouwelijkheidaanduiding\": \"openbaar\",\n \"betalingsindicatie\": \"geheel\",\n \"laatsteBetaalDatum\": \"2019-01-01\",\n \"zaakgeometrie\": {\n \"type\": \"Point\",\n \"coordinates\": [\n 53,\n 5\n ]\n },\n \"opschorting\": {\n \"indicatie\": true,\n \"reden\": \"string\"\n },\n \"selectielijstklasse\": \"{{selectielijstklasse_url}}\",\n \"archiefstatus\": \"nog_te_archiveren\",\n \"deelzaaktypen\" : [\"{{deelzaaktype_url}}\"]\n}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "adf5247f-c262-413e-a7d5-fa6443f21004", + "type": "text/javascript", + "packages": {}, + "exec": [ + "if(pm.response.code == 201) {", + " var zaak = pm.response.json();", + " pm.environment.set(\"zaak_url\", zaak.url);", + "}" + ], + "_lastExecutionId": "5ec652b5-3388-4b38-9aca-8e57c13a8785" + } + }, + { + "listen": "prerequest", + "script": { + "id": "0fd33400-5b30-44ee-be26-d582f466fcac", + "type": "text/javascript", + "packages": {}, + "exec": [ + "" + ], + "_lastExecutionId": "92e2d4cf-29dd-4e1b-9b78-a3563ade0492" + } + } + ] + }, + { + "id": "45c64d8e-4f82-4be7-ad30-148a0c4ec814", + "name": "(zrc-003a) ZaakInformatieObject aanmaken is mogelijk", + "request": { + "url": { + "path": [ + "zaakinformatieobjecten" + ], + "host": [ + "{{zrc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n\t\"zaak\": \"{{zaak_url}}\",\n\t\"informatieobject\": \"{{informatieobject_url}}\",\n\t\"titel\": \"test\",\n\t\"beschrijving\": \"bla\"\n}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "faee82a7-4410-4cb9-9191-6b18c4c8534a", + "type": "text/javascript", + "exec": [ + "pm.test(\"ZaakInformatieObject aanmaken met valide gegevens geeft 201\", function() {", + " pm.response.to.have.status(201);", + "});", + "", + "if(pm.response.code == 201) {", + " pm.environment.set(\"zaakinformatieobject_body\", pm.request.body.raw);", + " pm.environment.set(\"created_zaakinformatieobject_url\", pm.response.json().url);", + "}" + ], + "_lastExecutionId": "a8772243-b9a5-451c-a53b-19522ebc52e9" + } + } + ] + }, + { + "id": "9731516b-68dd-43cc-aaec-d4675c75d0dc", + "name": "(zrc-003b) ZaakInformatieObject bijwerken is mogelijk", + "request": { + "url": { + "host": [ + "{{created_zaakinformatieobject_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "PUT", + "body": { + "mode": "raw", + "raw": "{{request_body}}" + } + }, + "response": [], + "event": [ + { + "listen": "prerequest", + "script": { + "id": "d0b0f58b-26c9-4262-944c-a69e98be15ea", + "type": "text/javascript", + "exec": [ + "// Retrieve the Zaak body template and modify as needed", + "var body = JSON.parse(pm.environment.get(\"zaakinformatieobject_body\"));", + "pm.environment.set(\"beschrijving\", \"aangepaste beschrijving\");", + "body.beschrijving = pm.environment.get(\"beschrijving\");", + "", + "// Store the modified Zaak body, allowing it to be used in the main request", + "pm.environment.set(\"request_body\", JSON.stringify(body));" + ], + "_lastExecutionId": "b0f2f0c4-98b4-4529-b765-965c6a650551" + } + }, + { + "listen": "test", + "script": { + "id": "3af1a027-b34e-499f-bae8-6f657511fef9", + "type": "text/javascript", + "exec": [ + "pm.test(\"ZaakInformatieObject bijwerken met valide gegevens geeft 200\", function() {", + " pm.response.to.have.status(200);", + "});", + "", + "pm.test(\"ZaakInformatieObject bijwerken past gegevens correct aan\", function() {", + " pm.expect(pm.response.json().beschrijving).to.be.equal(pm.environment.get(\"beschrijving\"));", + "});" + ], + "_lastExecutionId": "07b0f354-c818-42d6-a9ca-85ad008bdaaa" + } + } + ] + }, + { + "id": "a3bfaf8c-b41e-4675-81d4-f775401db643", + "name": "(zrc-003c) ZaakInformatieObject deels bijwerken is mogelijk", + "request": { + "url": { + "host": [ + "{{created_zaakinformatieobject_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "PATCH", + "body": { + "mode": "raw", + "raw": "{\n\t\"titel\": \"{{titel}}\"\n}" + } + }, + "response": [], + "event": [ + { + "listen": "prerequest", + "script": { + "id": "d8c225a8-0ee6-456d-b950-e6da9abd1341", + "type": "text/javascript", + "packages": {}, + "exec": [ + "pm.environment.set(\"titel\", \"aangepaste titel\");" + ], + "_lastExecutionId": "fa7639df-0ae5-4cfb-92d1-349b9af64b99" + } + }, + { + "listen": "test", + "script": { + "id": "d283ebc5-a76a-4599-a258-9c1bf841500b", + "type": "text/javascript", + "packages": {}, + "exec": [ + "pm.test(\"ZaakInformatieObject deels bijwerken met valide gegevens geeft 200\", function() {", + " pm.response.to.have.status(200);", + "});", + "", + "pm.test(\"ZaakInformatieObject deels bijwerken past gegevens correct aan\", function() {", + " pm.expect(pm.response.json().titel).to.be.equal(pm.environment.get(\"titel\"));", + "});", + "", + "" + ], + "_lastExecutionId": "f68629bb-54eb-41e9-8573-453fc4a8cd76" + } + } + ] + }, + { + "id": "a4190b4f-64ce-4b28-9b93-4d963ff76f61", + "name": "(zrc-003d) ZaakInformatieObject aanmaken met ongeldige informatieobject url is onmogelijk", + "request": { + "url": { + "path": [ + "zaakinformatieobjecten" + ], + "host": [ + "{{zrc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n\t\"zaak\": \"{{zaak_url}}\",\n\t\"informatieobject\": \"{{mock_url}}/404\",\n\t\"titel\": \"test\",\n\t\"beschrijving\": \"bla\"\n}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "2cacf68e-6138-43a2-9408-3f284ce6224a", + "type": "text/javascript", + "packages": {}, + "exec": [ + "pm.test(\"BesluitInformatieObject aanmaken met informatieobject url die niet resulteert in 200 geeft 404\", function() {", + " pm.response.to.have.status(400);", + " ", + " // Verify that error was thrown for correct reason", + " var error = pm.response.json()[\"invalidParams\"][0];", + " pm.expect(error.name).to.be.equal(\"informatieobject\");", + " pm.expect(error.code).to.be.equal(\"bad-url\");", + "});", + "", + "if(pm.response.code == 201) {", + " pm.environment.set(\"created_zaakinformatieobject_url\", pm.response.json().url);", + "", + "}" + ], + "_lastExecutionId": "c29675f4-de53-4bba-a5e4-23a85ca63b09" + } + } + ] + } + ], + "event": [] + }, + { + "id": "84068d65-0be9-45db-b129-5e1fafb727e0", + "name": "zrc-004", + "item": [ + { + "id": "70122bd4-ddd3-4de4-a322-e99011bf86e1", + "name": "Zaak", + "request": { + "url": { + "path": [ + "zaken" + ], + "host": [ + "{{zrc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Crs", + "value": "EPSG:4326" + }, + { + "key": "Accept-Crs", + "value": "EPSG:4326" + }, + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n \"bronorganisatie\": \"000000000\",\n \"omschrijving\": \"string\",\n \"toelichting\": \"string\",\n \"registratiedatum\": \"2019-04-09\",\n \"verantwoordelijkeOrganisatie\": \"000000000\",\n \"zaaktype\": \"{{zaaktype_url}}\",\n \"startdatum\": \"2019-04-09\",\n \"einddatumGepland\": \"2019-04-20\",\n \"uiterlijkeEinddatumAfdoening\": \"2019-04-09\",\n \"publicatiedatum\": \"2019-04-09\",\n \"vertrouwelijkheidaanduiding\": \"openbaar\",\n \"betalingsindicatie\": \"geheel\",\n \"laatsteBetaalDatum\": \"2019-01-01\",\n \"zaakgeometrie\": {\n \"type\": \"Point\",\n \"coordinates\": [\n 53,\n 5\n ]\n },\n \"opschorting\": {\n \"indicatie\": true,\n \"reden\": \"string\"\n },\n \"selectielijstklasse\": \"{{selectielijstklasse_url}}\",\n \"archiefstatus\": \"nog_te_archiveren\",\n \"deelzaaktypen\" : [\"{{deelzaaktype_url}}\"]\n}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "abc0d51a-724d-4441-b422-e99a301210e7", + "type": "text/javascript", + "packages": {}, + "exec": [ + "if(pm.response.code == 201) {", + " var zaak = pm.response.json();", + " pm.environment.set(\"zaak_url\", zaak.url);", + "}" + ], + "_lastExecutionId": "67d9839e-978d-4d90-a9bd-ea23058d633a" + } + }, + { + "listen": "prerequest", + "script": { + "id": "f640238e-fa2d-4bb1-82f3-0c08bcb8b579", + "type": "text/javascript", + "packages": {}, + "exec": [ + "" + ], + "_lastExecutionId": "ba6b20fa-e4ec-45a6-86cd-836164ff2b6f" + } + } + ] + }, + { + "id": "f33a3b5d-eb16-48cc-af33-1462c238dc0e", + "name": "(DRC) Create EnkelvoudigInformatieObject", + "request": { + "url": { + "path": [ + "enkelvoudiginformatieobjecten" + ], + "host": [ + "{{drc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n\t\"bronorganisatie\": \"000000000\",\n\t\"creatiedatum\": \"2019-01-01\",\n\t\"titel\": \"testobject\",\n\t\"auteur\": \"testauteur\",\n \"formaat\": \"application/pdf\",\n \"taal\": \"nld\",\n \"bestandsnaam\": \"test 3.pdf\",\n\t\"inhoud\": \"{{object_inhoud}}\",\n\t\"informatieobjecttype\": \"{{informatieobjecttype_url}}\",\n \"indicatieGebruiksrecht\": false,\n \"status\": \"gearchiveerd\",\n\t\"bestandsomvang\": 6\n}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "7b5a838d-86e8-41cb-a512-46449ffcd606", + "type": "text/javascript", + "packages": {}, + "exec": [ + "pm.environment.set(\"informatieobject_url\", pm.response.json().url);" + ], + "_lastExecutionId": "b9ee7a2b-ebd1-43fc-8100-54bbd9b66ac7" + } + }, + { + "listen": "prerequest", + "script": { + "id": "003af821-7a5e-4f6f-b7c6-0514bbcc2025", + "type": "text/javascript", + "packages": {}, + "exec": [ + "" + ], + "_lastExecutionId": "b08a8e51-acd7-48c3-8a62-8067ba7581b4" + } + } + ] + }, + { + "id": "ef14b36e-058a-426b-a8c0-9e45a891996a", + "name": "(zrc-004a) ZaakInformatieObject aanmaken zet aard_relatie op hoort_bij en registratiedatum op nu", + "request": { + "url": { + "path": [ + "zaakinformatieobjecten" + ], + "host": [ + "{{zrc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n\t\"informatieobject\": \"{{informatieobject_url}}\",\n\t\"zaak\": \"{{zaak_url}}\",\n\t\"registratiedatum\": \"1900-01-01\"\n}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "48ed47a3-7a37-4333-82ab-e043eabf6e83", + "type": "text/javascript", + "exec": [ + "var moment = require('moment');", + "", + "pm.test(\"ZaakInformatieObject aanmaken zet aardRelatie op legt_vast\", function() {", + " pm.expect(pm.response.json().aardRelatieWeergave).to.include(\"Hoort bij\");", + "});", + "", + "pm.test(\"ZaakInformatieObject aanmaken zet registratiedatum op moment van aanmaken\", function() {", + " pm.expect(pm.response.json().registratiedatum).to.include(moment.utc().format(\"YYYY-MM-DD\"));", + "});", + "", + "if(pm.response.code == 201) {", + " pm.environment.set(\"created_zaakinformatieobject_url\", pm.response.json().url);", + " pm.environment.set(\"zaakinformatieobject_body\", pm.request.body.raw)", + "}", + "" + ], + "_lastExecutionId": "c69d68b4-b605-4738-b574-d9e98fa35188" + } + } + ] + }, + { + "id": "d876a461-df71-477b-83eb-2f72b36490f8", + "name": "(zrc-004b) ZaakInformatieObject bijwerken relatie aanpassen is niet mogelijk", + "request": { + "url": { + "host": [ + "{{created_zaakinformatieobject_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "PUT", + "body": { + "mode": "raw", + "raw": "{{request_body}}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "72234765-0483-4f0a-ab7d-597c9228f572", + "type": "text/javascript", + "exec": [ + "pm.test(\"ZaakInformatieObject bijwerken relatie aanpassen is niet mogelijk\", function() {", + " pm.expect(pm.response.json().aardRelatieWeergave).to.include(\"Hoort bij\");", + "});" + ], + "_lastExecutionId": "7fa34e6a-8676-4693-b947-d1459da2124c" + } + }, + { + "listen": "prerequest", + "script": { + "id": "79049fb0-3a16-4143-948d-b56d914d2cf8", + "type": "text/javascript", + "exec": [ + "var body = JSON.parse(pm.environment.get(\"zaakinformatieobject_body\"));", + "body.aardRelatieWeergave = \"aangepast\";", + "", + "pm.environment.set(\"request_body\", JSON.stringify(body));" + ], + "_lastExecutionId": "7d0ace93-dee3-4a79-897a-7667d4f1fe9e" + } + } + ] + }, + { + "id": "1e1c2dcf-d31d-4299-abb4-63cfae971ab0", + "name": "(zrc-004c) ZaakInformatieObject deels bijwerken relatie aanpassen is niet mogelijk", + "request": { + "url": { + "host": [ + "{{created_zaakinformatieobject_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "PATCH", + "body": { + "mode": "raw", + "raw": "{\n\t\"aardRelatieWeergave\": \"aangepast\"\n}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "641c27c7-23bb-460a-914a-ec364683ff84", + "type": "text/javascript", + "exec": [ + "pm.test(\"ZaakInformatieObject deels bijwerken relatie aanpassen is niet mogelijk\", function() {", + " pm.expect(pm.response.json().aardRelatieWeergave).to.include(\"Hoort bij\");", + "});" + ], + "_lastExecutionId": "f5d8017f-b96b-4140-bafb-bd6aa6df3d2f" + } + }, + { + "listen": "prerequest", + "script": { + "id": "b3cbba7d-1ff0-4542-9023-f317845cbe93", + "type": "text/javascript", + "exec": [ + "" + ], + "_lastExecutionId": "6c97799e-bd25-42f7-ad9d-3bf21ad63304" + } + } + ] + }, + { + "id": "18c2f89f-edaf-476c-ab9d-befac14e1ac5", + "name": "Create different Zaak", + "request": { + "url": { + "path": [ + "zaken" + ], + "host": [ + "{{zrc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Accept-Crs", + "value": "EPSG:4326" + }, + { + "key": "Content-Crs", + "value": "EPSG:4326" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{{zaak_body}}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "e9c971a7-2227-43d1-a145-0f6e21431ca2", + "type": "text/javascript", + "exec": [ + "if(pm.response.code == 201) {", + " pm.environment.set(\"created_zaak_url\", pm.response.json().url);", + "}" + ], + "_lastExecutionId": "2f2cffcc-f052-413b-b605-b8f6ff18dfa1" + } + } + ] + }, + { + "id": "cebd4c64-22fd-4387-8b14-d7d4a44498da", + "name": "(zrc-004d) ZaakInformatieObject bijwerken zaak aanpassen is niet toegestaan", + "request": { + "url": { + "host": [ + "{{created_zaakinformatieobject_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "PUT", + "body": { + "mode": "raw", + "raw": "{{request_body}}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "b454853e-5ddd-42e2-bc98-ae8a05e9510a", + "type": "text/javascript", + "exec": [ + "pm.test(\"ZaakInformatieObject bijwerken zaak aanpassen geeft 400\", function() {", + " pm.response.to.have.status(400);", + " ", + " var error = pm.response.json()[\"invalidParams\"][0];", + " pm.expect(error.name).to.be.equal(\"zaak\");", + " pm.expect(error.code).to.be.equal(\"wijzigen-niet-toegelaten\");", + "});" + ], + "_lastExecutionId": "0a745366-361e-4c41-b170-3ff15d36c8ac" + } + }, + { + "listen": "prerequest", + "script": { + "id": "9aa607cc-537c-4da7-b922-6916061879e6", + "type": "text/javascript", + "exec": [ + "var body = JSON.parse(pm.environment.get(\"zaakinformatieobject_body\"));", + "body.zaak = pm.environment.get(\"created_zaak_url\");", + "", + "pm.environment.set(\"request_body\", JSON.stringify(body));" + ], + "_lastExecutionId": "cdcd066e-8d7e-494b-ba02-a07ae4b624ad" + } + } + ] + }, + { + "id": "daef153d-1c8d-4558-8e0e-7f1f633fa7bc", + "name": "(zrc-004e) ZaakInformatieObject deels bijwerken zaak aanpassen is niet toegestaan", + "request": { + "url": { + "host": [ + "{{created_zaakinformatieobject_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "PATCH", + "body": { + "mode": "raw", + "raw": "{\n\t\"zaak\": \"{{created_zaak_url}}\"\n}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "d4d6b746-90d1-4461-b4d2-99250aedb36c", + "type": "text/javascript", + "exec": [ + "pm.test(\"ZaakInformatieObject deels bijwerken zaak aanpassen geeft 400\", function() {", + " pm.response.to.have.status(400);", + " ", + " var error = pm.response.json()[\"invalidParams\"][0];", + " pm.expect(error.name).to.be.equal(\"zaak\");", + " pm.expect(error.code).to.be.equal(\"wijzigen-niet-toegelaten\");", + "});" + ], + "_lastExecutionId": "4a2a3c44-61a0-4cbf-b841-9b63ccfe407a" + } + }, + { + "listen": "prerequest", + "script": { + "id": "baec85b4-6f4f-4f2e-942b-f9470272b3f4", + "type": "text/javascript", + "exec": [ + "var body = JSON.parse(pm.environment.get(\"zaakinformatieobject_body\"));", + "body.zaak = pm.environment.get(\"created_zaak_url\");", + "", + "pm.environment.set(\"request_body\", JSON.stringify(body));" + ], + "_lastExecutionId": "cf013d9b-6cf5-4e86-84ec-c12534d5f0c5" + } + } + ] + }, + { + "id": "fecb77a7-857a-4be0-b82f-aa2ddb74650f", + "name": "(zrc-004f) ZaakInformatieObject bijwerken informatieobject aanpassen is niet toegestaan", + "request": { + "url": { + "host": [ + "{{created_zaakinformatieobject_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "PUT", + "body": { + "mode": "raw", + "raw": "{{request_body}}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "505b1803-f614-402c-8515-3f447911ebaa", + "type": "text/javascript", + "exec": [ + "pm.test(\"ZaakInformatieObject bijwerken informatieobject aanpassen geeft 400\", function() {", + " pm.response.to.have.status(400);", + " ", + " var error = pm.response.json()[\"invalidParams\"][0];", + " pm.expect(error.name).to.be.equal(\"informatieobject\");", + " pm.expect(error.code).to.be.equal(\"wijzigen-niet-toegelaten\");", + "});" + ], + "_lastExecutionId": "76a2b31f-f89c-412e-89e1-73975b96d1ce" + } + }, + { + "listen": "prerequest", + "script": { + "id": "77789ad1-d736-491d-a4bc-a8d8d8ab8967", + "type": "text/javascript", + "exec": [ + "var body = JSON.parse(pm.environment.get(\"zaakinformatieobject_body\"));", + "body.informatieobject = pm.environment.get(\"informatieobject_gebruiksrecht_null_url\");", + "", + "pm.environment.set(\"request_body\", JSON.stringify(body));" + ], + "_lastExecutionId": "64b267ca-9689-4c65-89d1-a43875af761d" + } + } + ] + }, + { + "id": "56dfbb38-1678-454b-92e1-630fecb97939", + "name": "(zrc-004g) ZaakInformatieObject deels bijwerken informatieobject aanpassen is niet toegestaan", + "request": { + "url": { + "host": [ + "{{created_zaakinformatieobject_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "PATCH", + "body": { + "mode": "raw", + "raw": "{\n\t\"informatieobject\": \"{{informatieobject_gebruiksrecht_null_url}}\"\n}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "a2ed2963-e0d6-488e-bc1f-3d7485b9f9cd", + "type": "text/javascript", + "exec": [ + "pm.test(\"ZaakInformatieObject deels bijwerken informatieobject aanpassen geeft 400\", function() {", + " pm.response.to.have.status(400);", + " ", + " var error = pm.response.json()[\"invalidParams\"][0];", + " pm.expect(error.name).to.be.equal(\"informatieobject\");", + " pm.expect(error.code).to.be.equal(\"wijzigen-niet-toegelaten\");", + "});" + ], + "_lastExecutionId": "491bd481-bd59-4b7a-9c05-0f6514497e52" + } + }, + { + "listen": "prerequest", + "script": { + "id": "3ac176e7-f442-4336-8bad-919201462c07", + "type": "text/javascript", + "exec": [ + "" + ], + "_lastExecutionId": "56b7807b-cb13-4444-a325-2131b6fac7f7" + } + } + ] + }, + { + "id": "80eae7bb-ca36-4528-9c14-0f2036b48684", + "name": "Delete different Zaak", + "request": { + "url": { + "host": [ + "{{created_zaak_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Accept-Crs", + "value": "EPSG:4326" + } + ], + "method": "DELETE", + "body": { + "mode": "raw", + "raw": "" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "9d8bf630-3392-47fa-bc28-e6202b14b406", + "type": "text/javascript", + "packages": {}, + "exec": [ + "" + ], + "_lastExecutionId": "61ee698a-7177-4582-a40d-ab1707d06bd2" + } + } + ] + } + ], + "event": [] + }, + { + "id": "34920a12-2dac-4396-af9b-66990904c336", + "name": "zrc-005", + "item": [ + { + "id": "18456cf8-496a-41e9-bbc5-013810b4f2e4", + "name": "Zaak", + "request": { + "url": { + "path": [ + "zaken" + ], + "host": [ + "{{zrc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Crs", + "value": "EPSG:4326" + }, + { + "key": "Accept-Crs", + "value": "EPSG:4326" + }, + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n \"bronorganisatie\": \"000000000\",\n \"omschrijving\": \"string\",\n \"toelichting\": \"string\",\n \"registratiedatum\": \"2019-04-09\",\n \"verantwoordelijkeOrganisatie\": \"000000000\",\n \"zaaktype\": \"{{zaaktype_url}}\",\n \"startdatum\": \"2019-04-09\",\n \"einddatumGepland\": \"2019-04-20\",\n \"uiterlijkeEinddatumAfdoening\": \"2019-04-09\",\n \"publicatiedatum\": \"2019-04-09\",\n \"vertrouwelijkheidaanduiding\": \"openbaar\",\n \"betalingsindicatie\": \"geheel\",\n \"laatsteBetaalDatum\": \"2019-01-01\",\n \"zaakgeometrie\": {\n \"type\": \"Point\",\n \"coordinates\": [\n 53,\n 5\n ]\n },\n \"opschorting\": {\n \"indicatie\": true,\n \"reden\": \"string\"\n },\n \"selectielijstklasse\": \"{{selectielijstklasse_url}}\",\n \"archiefstatus\": \"nog_te_archiveren\",\n \"deelzaaktypen\" : [\"{{deelzaaktype_url}}\"]\n}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "207ff9c1-fd0b-4858-ad4a-84dbbf2ab1ca", + "type": "text/javascript", + "packages": {}, + "exec": [ + "if(pm.response.code == 201) {", + " var zaak = pm.response.json();", + " pm.environment.set(\"zaak_url\", zaak.url);", + "}" + ], + "_lastExecutionId": "eb171e7b-cb4c-40c9-96e2-f85b1488adee" + } + }, + { + "listen": "prerequest", + "script": { + "id": "3045b961-ca98-42a0-bc98-776e8bd00b86", + "type": "text/javascript", + "packages": {}, + "exec": [ + "" + ], + "_lastExecutionId": "7c893333-4842-414f-89b8-4ba839140ed5" + } + } + ] + }, + { + "id": "2afbe4ab-ec65-4fb6-9ca4-43ee3da8d3c3", + "name": "(DRC) EnkelvoudigInformatieObject", + "request": { + "url": { + "path": [ + "enkelvoudiginformatieobjecten" + ], + "host": [ + "{{drc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n\t\"bronorganisatie\": \"000000000\",\n\t\"creatiedatum\": \"2019-01-01\",\n\t\"titel\": \"testobject\",\n\t\"auteur\": \"testauteur\",\n \"formaat\": \"application/pdf\",\n \"taal\": \"nld\",\n \"bestandsnaam\": \"test 3.pdf\",\n\t\"inhoud\": \"{{object_inhoud}}\",\n\t\"informatieobjecttype\": \"{{informatieobjecttype_url}}\",\n \"indicatieGebruiksrecht\": false,\n \"status\": \"gearchiveerd\",\n\t\"bestandsomvang\": 6\n}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "82193964-68a4-44ca-a068-ca9209eab828", + "type": "text/javascript", + "packages": {}, + "exec": [ + "pm.environment.set(\"informatieobject_url\", pm.response.json().url);" + ], + "_lastExecutionId": "671ffa77-6184-439f-8c5e-8e9377be9e53" + } + }, + { + "listen": "prerequest", + "script": { + "id": "f566dd3b-a675-46c3-a7e3-a79cae6569cc", + "type": "text/javascript", + "packages": {}, + "exec": [ + "" + ], + "_lastExecutionId": "67457742-2df0-43ec-ab83-93e8dc6e96aa" + } + } + ] + }, + { + "id": "3a543503-abd2-4733-ac22-80df26bcd7fd", + "name": "Create ZaakInformatieObject", + "request": { + "url": { + "path": [ + "zaakinformatieobjecten" + ], + "host": [ + "{{zrc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\r\n \"informatieobject\": \"{{informatieobject_url}}\",\r\n \"zaak\": \"{{zaak_url}}\",\r\n \"registratiedatum\": \"1900-01-01\"\r\n}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "b2a314ab-aa9d-4df9-a93c-d9647d8823da", + "type": "text/javascript", + "packages": {}, + "exec": [ + "if(pm.response.code == 201) {", + " pm.environment.set(\"created_zaakinformatieobject_url\", pm.response.json().url);", + "}" + ], + "_lastExecutionId": "6f4f23f2-dec2-4ec7-b7ae-435f1ab48ac1" + } + } + ] + }, + { + "id": "cdcd2576-197c-46da-8144-a92e9af30dc8", + "name": "(zrc-005a) ZaakInformatieObject aanmaken maakt ObjectInformatieObject aan met objectType zaak", + "request": { + "url": { + "path": [ + "objectinformatieobjecten" + ], + "host": [ + "{{drc_url}}" + ], + "query": [ + { + "key": "object", + "value": "{{zaak_url}}" + }, + { + "key": "informatieobject", + "value": "{{informatieobject_url}}" + } + ], + "variable": [] + }, + "method": "GET" + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "f50250fc-8a68-422f-9966-30ccc2ae6094", + "type": "text/javascript", + "exec": [ + "var jsonData = pm.response.json();", + "", + "pm.test(\"ZaakInformatieObject aanmaken maakt een ObjectInformatieObject in DRC\", function() {", + " pm.response.to.have.status(200);", + " pm.expect(jsonData.length).to.be.equal(1);", + "});", + "", + "pm.test(\"ZaakInformatieObject aanmaken maakt een ObjectInformatieObject met objectType zaak\", function() {", + " pm.expect(jsonData[0].objectType).to.be.equal(\"zaak\");", + "});", + "", + "pm.test(\"ZaakInformatieObject aanmaken maakt een ObjectInformatieObject met correcte zaak en informatieobject\", function() {", + " pm.expect(jsonData[0].object).to.be.equal(pm.environment.get(\"zaak_url\"));", + " pm.expect(jsonData[0].informatieobject).to.be.equal(pm.environment.get(\"informatieobject_url\"));", + "});" + ], + "_lastExecutionId": "bc60edb0-3a51-48c1-a089-6c96b70ec225" + } + } + ] + }, + { + "id": "918db030-f172-43a1-992c-571d88a784cf", + "name": "Delete ZaakInformatieObject", + "request": { + "url": { + "host": [ + "{{created_zaakinformatieobject_url}}" + ], + "query": [], + "variable": [] + }, + "method": "DELETE", + "body": { + "mode": "raw", + "raw": "" + } + }, + "response": [], + "event": [] + }, + { + "id": "8aaeb59d-5afc-43b9-9914-0f9062873b24", + "name": "(zrc-005b) ZaakInformatieObject verwijderen verwijdert ObjectInformatieObject uit DRC", + "request": { + "url": { + "path": [ + "objectinformatieobjecten" + ], + "host": [ + "{{drc_url}}" + ], + "query": [ + { + "key": "object", + "value": "{{zaak_url}}" + }, + { + "key": "informatieobject", + "value": "{{informatieobject_url}}" + } + ], + "variable": [] + }, + "method": "GET" + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "fe2b4685-13f3-43cc-a7e6-4213bc802176", + "type": "text/javascript", + "exec": [ + "pm.test(\"BesluitInformatieObject verwijderen verwijdert ObjectInformatieObject in DRC\", function() {", + " pm.response.to.have.status(200);", + " pm.expect(pm.response.json().length).to.be.equal(0);", + "});" + ], + "_lastExecutionId": "80df4db2-478b-4ba4-be0a-97d7e03d9b9f" + } + } + ] + } + ], + "event": [] + }, + { + "id": "ca08abb9-f66e-42d8-8a8a-e51e99aa46eb", + "name": "zrc-006", + "item": [ + { + "id": "4f2b999c-7637-4d53-a9ec-c564d842a392", + "name": "set full token", + "request": { + "url": { + "path": [ + "catalogussen" + ], + "host": [ + "{{ztc_url}}" + ], + "query": [], + "variable": [] + }, + "method": "GET" + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "b17d98c8-d0bf-43d6-8d4d-8ddf1a07e6eb", + "type": "text/javascript", + "packages": {}, + "exec": [ + "pm.environment.set(\"jwt_token\", pm.environment.get(\"jwt_full\"));", + " var origId = pm.environment.get(\"_original_client_id\");", + " var origSecret = pm.environment.get(\"_original_secret\");", + " if (origId) { pm.environment.set(\"client_id\", origId); }", + " if (origSecret) { pm.environment.set(\"secret\", origSecret); }", + " pm.environment.set(\"secret\", pm.environment.get(\"secret\") || \"procest-admin-secret-key-for-testing\");" + ], + "_lastExecutionId": "88db0f06-83ad-4e78-a86b-366212f1fb53" + } + } + ] + }, + { + "id": "bf940bfe-9729-43a9-b0a7-12d78bd305a6", + "name": "Create ZT", + "request": { + "url": { + "path": [ + "zaaktypen" + ], + "host": [ + "{{ztc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\r\n\t\"identificatie\": \"{{random_identificatie-ztc-01}}\",\r\n \"omschrijving\": \"Melding Openbare Ruimte\",\r\n \"vertrouwelijkheidaanduiding\": \"openbaar\",\r\n \"doel\": \"test doel\",\r\n \"verantwoordelijke\":\"X\",\r\n \"aanleiding\": \"test aanleiding\",\r\n \"indicatieInternOfExtern\": \"extern\",\r\n \"handelingInitiator\": \"indienen\",\r\n \"onderwerp\": \"openbare ruimte\",\r\n \"handelingBehandelaar\": \"behandelen\",\r\n \"doorlooptijd\": \"P10D\",\r\n \"opschortingEnAanhoudingMogelijk\": false,\r\n \"verlengingMogelijk\": false,\r\n \"publicatieIndicatie\": false,\r\n \"productenOfDiensten\": [\r\n \"https://ref.tst.vng.cloud/standaard/\"\r\n ],\r\n \"selectielijstProcestype\": \"{{procestype_url}}\",\r\n \"referentieproces\": {\r\n \"naam\": \"test\",\r\n \"link\": \"\"\r\n },\r\n \"catalogus\": \"{{catalogus_url}}\",\r\n \"deelzaaktypen\": [],\r\n \"statustypen\": [],\r\n \"resultaattypen\": [],\r\n \"eigenschappen\": [],\r\n \"informatieobjecttypen\": [],\r\n \"besluittypen\": [],\r\n \"gerelateerdeZaaktypen\": [],\r\n \"beginGeldigheid\": \"2005-01-01\",\r\n \"eindeGeldigheid\": \"2012-01-01\",\r\n \"versiedatum\": \"2012-01-01\",\r\n \"concept\": true\r\n}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "18a57e83-76ae-42c8-b032-2eff95811135", + "type": "text/javascript", + "packages": {}, + "exec": [ + "if(pm.response.code == 201) {", + " pm.environment.set(\"zaaktype_for_auth_url\", pm.response.json().url);", + "}", + "", + "" + ], + "_lastExecutionId": "22ae9a64-be48-4d8e-a2d4-8b09a877e624" + } + }, + { + "listen": "prerequest", + "script": { + "id": "4036ae22-4587-47c7-91be-5c2c0003c5b7", + "type": "text/javascript", + "packages": {}, + "exec": [ + "var uuid = require('uuid');", + "var myUUID = uuid.v4(); ", + "pm.environment.set(\"random_identificatie-ztc-01\", myUUID);" + ], + "_lastExecutionId": "119e45a0-2c8d-4b6b-82ab-f5a694cc2d1c" + } + } + ] + }, + { + "id": "0a0f25ce-aabe-4fb5-882c-956ffbae4ae8", + "name": "Publish ZT", + "request": { + "url": { + "path": [ + "publish" + ], + "host": [ + "{{zaaktype_for_auth_url}}" + ], + "query": [], + "variable": [] + }, + "method": "POST" + }, + "response": [], + "event": [] + }, + { + "id": "72429566-51b9-4f21-bdff-27b58e0c3329", + "name": "Zaak openbaar", + "request": { + "url": { + "path": [ + "zaken" + ], + "host": [ + "{{zrc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Crs", + "value": "EPSG:4326" + }, + { + "key": "Accept-Crs", + "value": "EPSG:4326" + }, + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n \"bronorganisatie\": \"000000000\",\n \"omschrijving\": \"string\",\n \"toelichting\": \"string\",\n \"registratiedatum\": \"2019-04-09\",\n \"verantwoordelijkeOrganisatie\": \"000000000\",\n \"zaaktype\": \"{{zaaktype_for_auth_url}}\",\n \"startdatum\": \"2019-04-09\",\n \"einddatumGepland\": \"2019-04-20\",\n \"uiterlijkeEinddatumAfdoening\": \"2019-04-09\",\n \"publicatiedatum\": \"2019-04-09\",\n \"vertrouwelijkheidaanduiding\": \"openbaar\",\n \"betalingsindicatie\": \"geheel\",\n \"laatsteBetaalDatum\": \"2019-01-01\",\n \"zaakgeometrie\": {\n \"type\": \"Point\",\n \"coordinates\": [\n 53,\n 5\n ]\n },\n \"opschorting\": {\n \"indicatie\": true,\n \"reden\": \"string\"\n },\n \"selectielijstklasse\": \"{{selectielijstklasse_url}}\",\n \"archiefstatus\": \"nog_te_archiveren\",\n \"deelzaaktypen\" : [\"{{deelzaaktype_url}}\"]\n}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "c130145f-577c-484d-8f7b-ba3683a97fe2", + "type": "text/javascript", + "packages": {}, + "exec": [ + "if(pm.response.code == 201) {", + " var zaak = pm.response.json();", + " pm.environment.set(\"openbare_zaak_url\", pm.response.json().url);", + "}" + ], + "_lastExecutionId": "17d7d44a-99f4-42ba-b23e-0d4330394298" + } + }, + { + "listen": "prerequest", + "script": { + "id": "23efe648-b696-4dc4-aa6b-37ed710bc2f5", + "type": "text/javascript", + "packages": {}, + "exec": [ + "" + ], + "_lastExecutionId": "66d6e4b7-4e24-43f5-8240-12086ddbfb8b" + } + } + ] + }, + { + "id": "b9060729-3d7b-4d80-979f-7322be84c103", + "name": "Zaak geheim", + "request": { + "url": { + "path": [ + "zaken" + ], + "host": [ + "{{zrc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Crs", + "value": "EPSG:4326" + }, + { + "key": "Accept-Crs", + "value": "EPSG:4326" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\r\n \"bronorganisatie\": \"000000000\",\r\n \"omschrijving\": \"string\",\r\n \"toelichting\": \"string\",\r\n \"registratiedatum\": \"2019-04-09\",\r\n \"verantwoordelijkeOrganisatie\": \"000000000\",\r\n \"zaaktype\": \"{{zaaktype_for_auth_url}}\",\r\n \"startdatum\": \"2019-04-09\",\r\n \"einddatumGepland\": \"2019-04-20\",\r\n \"uiterlijkeEinddatumAfdoening\": \"2019-04-09\",\r\n \"publicatiedatum\": \"2019-04-09\",\r\n \"vertrouwelijkheidaanduiding\": \"geheim\",\r\n \"betalingsindicatie\": \"geheel\",\r\n \"laatsteBetaalDatum\": \"2019-01-01\",\r\n \"zaakgeometrie\": {\r\n \"type\": \"Point\",\r\n \"coordinates\": [\r\n 53,\r\n 5\r\n ]\r\n },\r\n \"opschorting\": {\r\n \"indicatie\": true,\r\n \"reden\": \"string\"\r\n },\r\n \"selectielijstklasse\": \"{{selectielijstklasse_url}}\",\r\n \"archiefstatus\": \"nog_te_archiveren\",\r\n \"deelzaaktypen\" : [\"{{deelzaaktype_url}}\"]\r\n}", + "options": { + "raw": { + "language": "json" + } + } + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "777e04b0-8d65-4eaf-8caf-36300f8ebf59", + "type": "text/javascript", + "packages": {}, + "exec": [ + "if(pm.response.code == 201) {\r", + " var zaak = pm.response.json();\r", + " pm.environment.set(\"geheime_zaak_url\", pm.response.json().url);\r", + "}" + ], + "_lastExecutionId": "74febb73-de61-4b45-952d-cb33de857d9a" + } + } + ] + }, + { + "id": "ae09b0d3-8f17-478f-a72f-61a419ee6948", + "name": "set restricted token", + "request": { + "url": { + "path": [ + "catalogussen" + ], + "host": [ + "{{ztc_url}}" + ], + "query": [], + "variable": [] + }, + "method": "GET" + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "90a8142b-ab75-47d1-8d00-a6732aa4af5b", + "type": "text/javascript", + "packages": {}, + "exec": [ + "" + ], + "_lastExecutionId": "f9cd22d0-4d11-472f-8597-777e37c7db28" + } + }, + { + "listen": "prerequest", + "script": { + "id": "c61b57d9-e431-4b75-83f6-4f16f50af4ce", + "type": "text/javascript", + "packages": {}, + "exec": [ + " pm.environment.set(\"jwt_token\", pm.environment.get(\"jwt-limited\"));\r", + " pm.environment.set(\"_original_client_id\", pm.environment.get(\"client_id\"));", + " pm.environment.set(\"_original_secret\", pm.environment.get(\"secret\"));", + " pm.environment.set(\"client_id\", pm.environment.get(\"client_id_limited\"));", + " pm.environment.set(\"secret\", pm.environment.get(\"secret_limited\"));", + " pm.environment.set(\"client_id\", pm.environment.get(\"client_id_limited\"));", + " pm.environment.set(\"secret\", pm.environment.get(\"secret_limited\"));", + " " + ], + "_lastExecutionId": "77b84a21-6cd9-4133-812b-93869cef6b89" + } + } + ] + }, + { + "id": "762e5a83-1b78-4f9a-a470-9c5bd0af667f", + "name": "(zrc-006a) Zaken lijst ontsluit zaken op basis van autorisaties van consumer", + "request": { + "url": { + "path": [ + "zaken" + ], + "host": [ + "{{zrc_url}}" + ], + "query": [ + { + "key": "zaaktype", + "value": "{{zaaktype_for_auth_url}}" + } + ], + "variable": [] + }, + "header": [ + { + "key": "Accept-Crs", + "value": "EPSG:4326" + } + ], + "method": "GET", + "auth": { + "type": "bearer", + "bearer": [ + { + "type": "string", + "value": "{{jwt-zrc-006}}", + "key": "token" + } + ] + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "facf13a2-eb27-45b3-ae8c-fc9ce51a42ee", + "type": "text/javascript", + "packages": {}, + "exec": [ + "pm.test(\"zrc-006a 1 van de 2 zaken wordt geretourneerd\", function () {", + "", + " pm.expect(pm.response.json().count).to.equal(1);", + "});" + ], + "_lastExecutionId": "21cc405a-893e-466a-8f28-d5c90ff8d399" + } + }, + { + "listen": "prerequest", + "script": { + "id": "abaf5622-c0bf-4039-bc00-5109b3424193", + "type": "text/javascript", + "packages": {}, + "exec": [], + "_lastExecutionId": "5e5e8c04-b3ab-4875-9ee3-8dbff4b3110c" + } + } + ] + }, + { + "id": "601fc521-b732-4d4c-805b-237b51c7dfc6", + "name": "(zrc-006b) Zaken lezen zonder verplichte scope in autorisatie niet toegestaan", + "request": { + "url": { + "host": [ + "{{geheime_zaak_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Accept-Crs", + "value": "EPSG:4326" + }, + { + "key": "Content-Crs", + "value": "EPSG:4326" + } + ], + "method": "GET", + "body": { + "mode": "raw", + "raw": "" + }, + "auth": { + "type": "bearer", + "bearer": [ + { + "type": "string", + "value": "{{jwt-zrc-006}}", + "key": "token" + } + ] + } + }, + "response": [], + "event": [ + { + "listen": "prerequest", + "script": { + "id": "0b691897-6ed7-41e2-a472-cc5f0c113393", + "type": "text/javascript", + "packages": {}, + "exec": [ + "" + ], + "_lastExecutionId": "50dcea51-9e85-4597-add4-b2743695bcf3" + } + }, + { + "listen": "test", + "script": { + "id": "083dedaa-449b-4dee-95fd-cdc642303ecf", + "type": "text/javascript", + "packages": {}, + "exec": [ + "pm.test(\"Zaken lezen zonder applicatie met zaken.lezen in autorisatie scopes geeft 403\", function() {", + " pm.response.to.have.status(403);", + " pm.expect(pm.response.json().code).to.be.equal(\"permission_denied\");", + "});" + ], + "_lastExecutionId": "a714bb14-ffb3-42c3-aab5-15349fec8204" + } + } + ], + "protocolProfileBehavior": { + "disableBodyPruning": true + } + }, + { + "id": "734cc560-30be-4834-9c7d-20ae6db4fdfc", + "name": "(zrc-006c) Zaak aanmaken zonder verplichte scope in autorisatie niet toegestaan", + "request": { + "url": { + "path": [ + "zaken" + ], + "host": [ + "{{zrc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Accept-Crs", + "value": "EPSG:4326" + }, + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Content-Crs", + "value": "EPSG:4326" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\r\n \"url\": \"https://zaken.spt-rx-services.nl/api/v1/zaken/cba40feb-2b38-4490-b12d-84a39e8df361\",\r\n \"uuid\": \"cba40feb-2b38-4490-b12d-84a39e8df361\",\r\n \"identificatie\": \"Z2024-00000038\",\r\n \"bronorganisatie\": \"000000000\",\r\n \"omschrijving\": \"string\",\r\n \"toelichting\": \"string\",\r\n \"zaaktype\": \"https://catalogi.spt-rx-services.nl/api/v1/zaaktypen/be24fd63-1663-46dc-8ea9-9c153642d4f9\",\r\n \"registratiedatum\": \"2019-04-09\",\r\n \"verantwoordelijkeOrganisatie\": \"000000000\",\r\n \"startdatum\": \"2019-04-09\",\r\n \"einddatum\": null,\r\n \"einddatumGepland\": \"2019-04-20\",\r\n \"uiterlijkeEinddatumAfdoening\": \"2019-04-09\",\r\n \"publicatiedatum\": \"2019-04-09\",\r\n \"communicatiekanaal\": \"\",\r\n \"productenOfDiensten\": [],\r\n \"vertrouwelijkheidaanduiding\": \"geheim\",\r\n \"betalingsindicatie\": \"geheel\",\r\n \"betalingsindicatieWeergave\": null,\r\n \"laatsteBetaaldatum\": \"2019-01-01T00:00:00Z\",\r\n \"zaakgeometrie\": {\r\n \"type\": \"Point\",\r\n \"coordinates\": [\r\n 53.0,\r\n 5.0\r\n ]\r\n },\r\n \"verlenging\": null,\r\n \"opschorting\": {\r\n \"indicatie\": true,\r\n \"reden\": \"string\"\r\n },\r\n \"selectielijstklasse\": \"https://referentielijsten.roxit.nl/api/v1/resultaten/0fe71ce3-b1e1-48eb-9070-be2756fc71b5\",\r\n \"hoofdzaak\": null,\r\n \"deelzaken\": [],\r\n \"relevanteAndereZaken\": [],\r\n \"eigenschappen\": [],\r\n \"rollen\": [],\r\n \"status\": null,\r\n \"zaakinformatieobjecten\": [],\r\n \"zaakobjecten\": [],\r\n \"resultaat\": null,\r\n \"kenmerken\": [],\r\n \"archiefnominatie\": null,\r\n \"archiefstatus\": \"nog_te_archiveren\",\r\n \"archiefactiedatum\": null,\r\n \"opdrachtgevendeOrganisatie\": null,\r\n \"processobjectaard\": null,\r\n \"startdatumBewaartermijn\": null,\r\n \"processobject\": null\r\n}" + }, + "auth": { + "type": "bearer", + "bearer": [ + { + "type": "string", + "value": "{{jwt-zrc-006}}", + "key": "token" + } + ] + } + }, + "response": [], + "event": [ + { + "listen": "prerequest", + "script": { + "id": "462bbd32-e44e-426f-a719-5fa45702bc97", + "type": "text/javascript", + "packages": {}, + "exec": [ + "" + ], + "_lastExecutionId": "8a324196-56ba-43c1-85af-5c6473176745" + } + }, + { + "listen": "test", + "script": { + "id": "15427432-3cea-4842-a68e-f5185416c88b", + "type": "text/javascript", + "packages": {}, + "exec": [ + "pm.test(\"Zaak aanmaken met applicatie zonder zaken.aanmaken in autorisatie scopes niet toegestaan\", function() {", + " pm.response.to.have.status(403);", + " pm.expect(pm.response.json().code).to.be.equal(\"permission_denied\");", + "});", + "", + "var next_requests = [];", + "", + "if(pm.response.code == 201) {", + " pm.environment.set(\"created_zaak_url\", pm.response.json().url);", + "", + "}" + ], + "_lastExecutionId": "b4ff33ce-1f17-4b3f-93a8-4e797a46a3d5" + } + } + ] + } + ], + "event": [ + { + "listen": "prerequest", + "script": { + "id": "7844a268-d490-47f1-8ece-e0b13c56db92", + "type": "text/javascript", + "exec": [ + "" + ], + "_lastExecutionId": "72064087-1ac6-41d2-b584-fd902c4edff1" + } + }, + { + "listen": "test", + "script": { + "id": "0ec57b65-8edd-48a7-8ac6-78f956695058", + "type": "text/javascript", + "exec": [ + "" + ], + "_lastExecutionId": "c889cab1-70cb-4a60-85f2-9a434cbd99a2" + } + } + ] + }, + { + "id": "404c4090-2247-454b-9abc-152f1f43ee65", + "name": "zrc-007", + "item": [ + { + "id": "0e70db12-d123-4d04-99cb-c6325ac685ba", + "name": "set full token", + "request": { + "url": { + "path": [ + "catalogussen" + ], + "host": [ + "{{ztc_url}}" + ], + "query": [], + "variable": [] + }, + "method": "GET" + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "de2e18b7-bdfb-440f-8e23-e36e909ea85b", + "type": "text/javascript", + "packages": {}, + "exec": [ + "" + ], + "_lastExecutionId": "a7acb14b-14e4-4cb3-b1e2-066d7755f1d7" + } + }, + { + "listen": "prerequest", + "script": { + "id": "ce9dfa44-a760-408a-8576-5c22759d91dc", + "type": "text/javascript", + "packages": {}, + "exec": [ + "pm.environment.set(\"jwt_token\", pm.environment.get(\"jwt_full\"));", + " var origId = pm.environment.get(\"_original_client_id\");", + " var origSecret = pm.environment.get(\"_original_secret\");", + " if (origId) { pm.environment.set(\"client_id\", origId); }", + " if (origSecret) { pm.environment.set(\"secret\", origSecret); }", + " pm.environment.set(\"secret\", pm.environment.get(\"secret\") || \"procest-admin-secret-key-for-testing\");" + ], + "_lastExecutionId": "d6821698-b9a1-42dd-b58a-8915b6b5c7a3" + } + } + ] + }, + { + "id": "c0805db0-b908-42e8-ac42-38292d5e0fa1", + "name": "zaak", + "request": { + "url": { + "path": [ + "zaken" + ], + "host": [ + "{{zrc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Accept-Crs", + "value": "EPSG:4326" + }, + { + "key": "Content-Crs", + "value": "EPSG:4326" + }, + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\r\n\r\n \"bronorganisatie\": \"000000000\",\r\n \"omschrijving\": \"string\",\r\n \"toelichting\": \"string\",\r\n \"zaaktype\": \"{{zaaktype_url}}\",\r\n \"registratiedatum\": \"2019-04-09\",\r\n \"verantwoordelijkeOrganisatie\": \"000000000\",\r\n \"startdatum\": \"2019-04-09\",\r\n \"einddatum\": null,\r\n \"einddatumGepland\": \"2019-04-20\",\r\n \"uiterlijkeEinddatumAfdoening\": \"2019-04-09\",\r\n \"publicatiedatum\": \"2019-04-09\",\r\n \"communicatiekanaal\": \"\",\r\n \"productenOfDiensten\": [],\r\n \"vertrouwelijkheidaanduiding\": \"geheim\",\r\n \"betalingsindicatie\": \"geheel\",\r\n \"betalingsindicatieWeergave\": null,\r\n \"laatsteBetaaldatum\": \"2019-01-01T00:00:00Z\",\r\n \"zaakgeometrie\": {\r\n \"type\": \"Point\",\r\n \"coordinates\": [\r\n 53.0,\r\n 5.0\r\n ]\r\n },\r\n \"verlenging\": null,\r\n \"opschorting\": {\r\n \"indicatie\": true,\r\n \"reden\": \"string\"\r\n },\r\n \"selectielijstklasse\": \"https://referentielijsten.roxit.nl/api/v1/resultaten/0fe71ce3-b1e1-48eb-9070-be2756fc71b5\",\r\n \"hoofdzaak\": null,\r\n \"deelzaken\": [],\r\n \"relevanteAndereZaken\": [],\r\n \"eigenschappen\": [],\r\n \"rollen\": [],\r\n \"status\": null,\r\n \"zaakinformatieobjecten\": [],\r\n \"zaakobjecten\": [],\r\n \"resultaat\": null,\r\n \"kenmerken\": [],\r\n \"archiefnominatie\": null,\r\n \"archiefstatus\": \"nog_te_archiveren\",\r\n \"archiefactiedatum\": null,\r\n \"opdrachtgevendeOrganisatie\": null,\r\n \"processobjectaard\": null,\r\n \"startdatumBewaartermijn\": null,\r\n \"processobject\": null\r\n}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "38243872-a733-4daa-b03f-99eff519e2ca", + "type": "text/javascript", + "packages": {}, + "exec": [ + "pm.environment.set(\"created_zaak_url\", pm.response.json().url);" + ], + "_lastExecutionId": "77be1497-5818-494d-8843-3ea9f0639dfc" + } + }, + { + "listen": "prerequest", + "script": { + "id": "135c8be0-caea-450f-a589-4344c7d23d54", + "type": "text/javascript", + "packages": {}, + "exec": [ + "" + ], + "_lastExecutionId": "073abcc9-f528-4458-90c5-e2111284fa0c" + } + } + ] + }, + { + "id": "ed6480ef-f3ed-4ecb-af29-d467eccdbf89", + "name": "(DRC) Create EnkelvoudigInformatieObject", + "request": { + "url": { + "path": [ + "enkelvoudiginformatieobjecten" + ], + "host": [ + "{{drc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n\t\"bronorganisatie\": \"000000000\",\n\t\"creatiedatum\": \"2019-01-01\",\n\t\"titel\": \"testobject\",\n\t\"auteur\": \"testauteur\",\n \"formaat\": \"application/pdf\",\n \"taal\": \"nld\",\n \"bestandsnaam\": \"test 3.pdf\",\n\t\"inhoud\": \"c3RyaW5n\",\n\t\"informatieobjecttype\": \"{{informatieobjecttype_url}}\",\n \"indicatieGebruiksrecht\": false,\n \"status\": \"gearchiveerd\",\n\t\"bestandsomvang\": 6\n}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "730783c6-9089-4ef4-8399-d724301e51d2", + "type": "text/javascript", + "packages": {}, + "exec": [ + "pm.environment.set(\"informatieobject_url\", pm.response.json().url);" + ], + "_lastExecutionId": "cc272502-acdc-4e4b-90b3-eea4a2a8ece8" + } + }, + { + "listen": "prerequest", + "script": { + "id": "ab08a94d-6181-43d6-8dcc-df24ff00013b", + "type": "text/javascript", + "packages": {}, + "exec": [ + "" + ], + "_lastExecutionId": "50e95c7a-861b-493f-a016-bbccf0065df7" + } + } + ] + }, + { + "id": "027f3961-e796-4498-ac61-e532ef58d61e", + "name": "Create relation between Zaak and Informatieobject with gebruiksrecht not null", + "request": { + "url": { + "path": [ + "zaakinformatieobjecten" + ], + "host": [ + "{{zrc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n \"informatieobject\": \"{{informatieobject_url}}\",\n \"zaak\": \"{{created_zaak_url}}\"\n}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "10810642-cfc5-45d1-85ab-4a240b51a23e", + "type": "text/javascript", + "exec": [ + "pm.environment.set(\"created_zaakinformatieobject_url\", pm.response.json().url);" + ], + "_lastExecutionId": "4aca2b6d-edcc-40d8-81cf-8c067777cb5f" + } + }, + { + "listen": "prerequest", + "script": { + "id": "ffce582e-a875-474f-82aa-fcc81a809086", + "type": "text/javascript", + "exec": [ + "" + ], + "_lastExecutionId": "d265c7ef-d62d-4ea9-a6ec-33a388eefef6" + } + } + ] + }, + { + "id": "c8c704b1-2bc5-4c4e-bf80-c5147c3a5a3b", + "name": "Add Resultaat to Zaak", + "request": { + "url": { + "path": [ + "resultaten" + ], + "host": [ + "{{zrc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n\t\"zaak\": \"{{created_zaak_url}}\",\n\t\"resultaattype\": \"{{resultaattype_url}}\"\n}" + } + }, + "response": [], + "event": [ + { + "listen": "prerequest", + "script": { + "id": "5fd1c2ba-485a-4ea4-b06a-543e381fb452", + "type": "text/javascript", + "packages": {}, + "exec": [ + "" + ], + "_lastExecutionId": "932f6758-91df-4c3a-a1b3-142d28f07d65" + } + }, + { + "listen": "test", + "script": { + "id": "c5a66cb3-b26c-4b8c-bad4-4aa17e0490c0", + "type": "text/javascript", + "packages": {}, + "exec": [ + "pm.environment.set(\"zaak_resultaat_url\", pm.response.json().url);" + ], + "_lastExecutionId": "75bbede4-5254-4012-94b5-c31341965b59" + } + } + ] + }, + { + "id": "7c8e6633-c69e-4121-a6ae-afe856c07691", + "name": "Add Eindstatus to Zaak", + "request": { + "url": { + "path": [ + "statussen" + ], + "host": [ + "{{zrc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n\t\"zaak\": \"{{created_zaak_url}}\",\n\t\"statustype\": \"{{eindstatustype}}\",\n\t\"datumStatusGezet\": \"2018-04-20T13:37:00\"\n}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "06f94dc1-df1c-47c1-9178-7370a4910c95", + "type": "text/javascript", + "packages": {}, + "exec": [ + "pm.environment.set(\"eindstatus_datumStatusGezet\", pm.response.json().datumStatusGezet);", + "pm.environment.set(\"eindstatus_url\", pm.response.json().url);" + ], + "_lastExecutionId": "73d2bfac-343c-4a36-ab97-3de5b535edf7" + } + }, + { + "listen": "prerequest", + "script": { + "id": "62329597-5b87-4c48-9f27-7db4d49a967e", + "type": "text/javascript", + "packages": {}, + "exec": [ + "" + ], + "_lastExecutionId": "ab5a4227-3197-48bf-a640-e5d355b98cf6" + } + } + ] + }, + { + "id": "aa3115ac-afea-41cf-91c0-fe35acfbe5af", + "name": "Add Klantcontact to Zaak", + "request": { + "url": { + "path": [ + "klantcontacten" + ], + "host": [ + "{{zrc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n\t\"zaak\": \"{{created_zaak_url}}\",\n\t\"datumtijd\": \"2019-02-20T00:00:00\"\n}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "d22e362b-62ea-47b3-bbbe-91a7e73c4f02", + "type": "text/javascript", + "exec": [ + "pm.environment.set(\"klantcontact_url\", pm.response.json().url);" + ], + "_lastExecutionId": "fd0dd654-4ffb-4fc1-9db9-e24ba4def685" + } + }, + { + "listen": "prerequest", + "script": { + "id": "09aeec9b-a1ee-4665-8935-85154ee6c278", + "type": "text/javascript", + "exec": [ + "" + ], + "_lastExecutionId": "4969fa7b-c94f-42b9-8b69-764fa6d6de36" + } + } + ] + }, + { + "id": "e2684c1a-3b34-4013-803a-4a04ff2e88ac", + "name": "Add Rol to Zaak", + "request": { + "url": { + "path": [ + "rollen" + ], + "host": [ + "{{zrc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n\t\"zaak\": \"{{created_zaak_url}}\",\n\t\"betrokkene\": \"http://example.com/2d0815580af94ee0a15aa677aa646e1a\",\n\t\"betrokkeneType\": \"natuurlijk_persoon\",\n\t\"rolomschrijving\": \"behandelaar\",\n\t\"roltoelichting\": \"testrol\",\n\t\"roltype\": \"{{roltype_url}}\"\n}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "c3f6cc6e-370c-4d44-8223-4035129ab83e", + "type": "text/javascript", + "exec": [ + "pm.environment.set(\"rol_url\", pm.response.json().url);" + ], + "_lastExecutionId": "55fbef81-9461-4352-9b10-5f64339f7b92" + } + }, + { + "listen": "prerequest", + "script": { + "id": "5a8a311a-e53f-4fc4-a2a6-b681e0b1cf9e", + "type": "text/javascript", + "exec": [ + "" + ], + "_lastExecutionId": "31fb93c0-d2c2-4750-9cc9-2535b26e2ce3" + } + } + ] + }, + { + "id": "24d66ca5-6dca-467b-a2b8-415a0c0961b1", + "name": "Create Zaakobject", + "request": { + "url": { + "path": [ + "zaakobjecten" + ], + "host": [ + "{{zrc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n\t\"zaak\": \"{{created_zaak_url}}\",\n\t\"objectType\": \"pand\",\n\t\"objectIdentificatie\": {\n\t\t\"identificatie\": \"test\"\n\t}\n}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "e4fda35d-6747-4773-8ada-391665089583", + "type": "text/javascript", + "exec": [ + "pm.environment.set(\"zaakobject_url\", pm.response.json().url);" + ], + "_lastExecutionId": "8175f85f-da36-4dcf-8138-ded8509e31f6" + } + } + ] + }, + { + "id": "f71db5d0-1b97-416d-ac45-b7f639fc88f5", + "name": "Add Zaakeigenschap to Zaak", + "request": { + "url": { + "path": [ + "zaakeigenschappen" + ], + "host": [ + "{{created_zaak_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n\t\"zaak\": \"{{created_zaak_url}}\",\n\t\"eigenschap\": \"{{zaaktype_eigenschap}}\",\n\t\"waarde\": \"test\"\n}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "404d21f0-7fe3-424e-a8b6-bf1856253ad9", + "type": "text/javascript", + "exec": [ + "pm.environment.set(\"zaakeigenschap_url\", pm.response.json().url);" + ], + "_lastExecutionId": "939764cd-7964-486e-b436-d311c1bde014" + } + }, + { + "listen": "prerequest", + "script": { + "id": "96b30948-7f74-4175-9490-20b51b9c85fc", + "type": "text/javascript", + "exec": [ + "" + ], + "_lastExecutionId": "131815be-7a9c-4523-b42d-bdb6f98b9b62" + } + } + ] + }, + { + "id": "894e375d-ee49-4226-b420-be0522ec6bf5", + "name": "(zrc-007a) Zaak.einddatum volgt logisch uit eindstatus", + "request": { + "url": { + "host": [ + "{{created_zaak_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Accept-Crs", + "value": "EPSG:4326" + }, + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "GET", + "body": { + "mode": "raw", + "raw": "" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "23516296-e939-4d3a-a28b-14438a2562d7", + "type": "text/javascript", + "packages": {}, + "exec": [ + "pm.test(\"Toevoegen eindstatus aan Zaak laat Zaak.einddatum afleiden uit status.datumStatusGezet\", function(){", + " pm.response.to.have.status(200);", + " ", + "", + " pm.expect(pm.response.json().einddatum).equals('2018-04-20');", + "});" + ], + "_lastExecutionId": "226a501f-d391-4bb9-a401-9e4ed7da475b" + } + }, + { + "listen": "prerequest", + "script": { + "id": "d3691dc7-9e04-49f0-9118-0277aacb4b96", + "type": "text/javascript", + "packages": {}, + "exec": [ + "" + ], + "_lastExecutionId": "3a9b2fd3-8a11-40a0-aa53-84cc971c148e" + } + } + ], + "protocolProfileBehavior": { + "disableBodyPruning": true + } + }, + { + "id": "98e2897f-fcc9-40fb-9327-a839f5ba15e1", + "name": "(zrc-007b) Informatieobject.indicatieGebruikersrecht niet null bij afsluiten zaak", + "request": { + "url": { + "host": [ + "{{informatieobject_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Accept-Crs", + "value": "EPSG:4326" + } + ], + "method": "GET" + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "4c865327-01d4-41d1-b251-0ba1d2390640", + "type": "text/javascript", + "packages": {}, + "exec": [ + "pm.test(\"Afsluiten Zaak betekent Informatieobject.indicatieGebruiksrecht gezet voor alle gerelateerde objecten\", function(){", + " pm.response.to.have.status(200);", + " pm.expect(pm.response.json().indicatieGebruiksrecht).to.not.be.equal(null);", + "});", + "", + "" + ], + "_lastExecutionId": "33d0ac3d-fbad-4359-81bc-b37d1c9064d0" + } + }, + { + "listen": "prerequest", + "script": { + "id": "c578fdc6-8fbc-4913-bb60-e0e413b2e26b", + "type": "text/javascript", + "packages": {}, + "exec": [ + "" + ], + "_lastExecutionId": "fed51f54-ab25-48ec-a4c4-288c9d601d92" + } + } + ] + }, + { + "id": "09252b82-893e-4608-9045-a602e48e30ab", + "name": "set restricted token", + "request": { + "url": { + "path": [ + "catalogussen" + ], + "host": [ + "{{ztc_url}}" + ], + "query": [], + "variable": [] + }, + "method": "GET" + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "3b9c584b-f1a5-4184-9ce9-4975f64a31cb", + "type": "text/javascript", + "packages": {}, + "exec": [ + "pm.environment.set(\"jwt_token\", pm.environment.get(\"jwt-limited\"));", + " pm.environment.set(\"_original_client_id\", pm.environment.get(\"client_id\"));", + " pm.environment.set(\"_original_secret\", pm.environment.get(\"secret\"));", + " pm.environment.set(\"client_id\", pm.environment.get(\"client_id_limited\"));", + " pm.environment.set(\"secret\", pm.environment.get(\"secret_limited\"));", + " pm.environment.set(\"client_id\", pm.environment.get(\"client_id_limited\"));", + " pm.environment.set(\"secret\", pm.environment.get(\"secret_limited\"));" + ], + "_lastExecutionId": "512a7852-60c1-48ba-b558-3a90562fd479" + } + } + ] + }, + { + "id": "2833abca-7d9b-4c59-b2e2-fc08b542633f", + "name": "(zrc-007c) Afgesloten zaak bijwerken is niet toegestaan zonder scope zaken.geforceerd-bijwerken", + "request": { + "url": { + "host": [ + "{{created_zaak_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Accept-Crs", + "value": "EPSG:4326" + }, + { + "key": "Content-Crs", + "value": "EPSG:4326" + } + ], + "method": "PUT", + "body": { + "mode": "raw", + "raw": "{\r\n\r\n \"bronorganisatie\": \"000000000\",\r\n \"omschrijving\": \"string\",\r\n \"toelichting\": \"string\",\r\n \"zaaktype\": \"{{zaaktype_url}}\",\r\n \"registratiedatum\": \"2019-04-09\",\r\n \"verantwoordelijkeOrganisatie\": \"000000000\",\r\n \"startdatum\": \"2019-04-09\",\r\n \"einddatum\": null,\r\n \"einddatumGepland\": \"2019-04-20\",\r\n \"uiterlijkeEinddatumAfdoening\": \"2019-04-09\",\r\n \"publicatiedatum\": \"2019-04-09\",\r\n \"communicatiekanaal\": \"\",\r\n \"productenOfDiensten\": [],\r\n \"vertrouwelijkheidaanduiding\": \"geheim\",\r\n \"betalingsindicatie\": \"geheel\",\r\n \"betalingsindicatieWeergave\": null,\r\n \"laatsteBetaaldatum\": \"2019-01-01T00:00:00Z\",\r\n \"zaakgeometrie\": {\r\n \"type\": \"Point\",\r\n \"coordinates\": [\r\n 53.0,\r\n 5.0\r\n ]\r\n },\r\n \"verlenging\": null,\r\n \"opschorting\": {\r\n \"indicatie\": true,\r\n \"reden\": \"string\"\r\n },\r\n \"selectielijstklasse\": \"https://referentielijsten.roxit.nl/api/v1/resultaten/0fe71ce3-b1e1-48eb-9070-be2756fc71b5\",\r\n \"hoofdzaak\": null,\r\n \"deelzaken\": [],\r\n \"relevanteAndereZaken\": [],\r\n \"eigenschappen\": [],\r\n \"rollen\": [],\r\n \"status\": null,\r\n \"zaakinformatieobjecten\": [],\r\n \"zaakobjecten\": [],\r\n \"resultaat\": null,\r\n \"kenmerken\": [],\r\n \"archiefnominatie\": null,\r\n \"archiefstatus\": \"nog_te_archiveren\",\r\n \"archiefactiedatum\": null,\r\n \"opdrachtgevendeOrganisatie\": null,\r\n \"processobjectaard\": null,\r\n \"startdatumBewaartermijn\": null,\r\n \"processobject\": null\r\n}" + } + }, + "response": [], + "event": [ + { + "listen": "prerequest", + "script": { + "id": "e7e48489-21d4-459f-825b-4d49e6de4a2b", + "type": "text/javascript", + "packages": {}, + "exec": [ + "" + ], + "_lastExecutionId": "57461603-9058-4e64-8025-8d7d57aabd73" + } + }, + { + "listen": "test", + "script": { + "id": "c4f3928b-c90d-48eb-9725-bab8747b4ff8", + "type": "text/javascript", + "packages": {}, + "exec": [ + "pm.test(\"Afgesloten Zaak bijwerken zonder scope zaken.geforceerd-bijwerken geeft 403\", function() {", + " pm.response.to.have.status(403);", + " pm.expect(pm.response.json().code).to.be.equal(\"permission_denied\");", + "});" + ], + "_lastExecutionId": "7f93a35a-768e-4413-8752-835d35ec11b1" + } + } + ] + }, + { + "id": "df799216-40bf-448e-a067-b7a129c2dcee", + "name": "(zrc-007c) Afgesloten zaak deels bijwerken is niet toegestaan zonder scope zaken.geforceerd-bijwerken", + "request": { + "url": { + "host": [ + "{{created_zaak_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Accept-Crs", + "value": "EPSG:4326" + }, + { + "key": "Content-Crs", + "value": "EPSG:4326" + } + ], + "method": "PATCH", + "body": { + "mode": "raw", + "raw": "{\n\t\"omschrijving\": \"aangepast\"\n}" + } + }, + "response": [], + "event": [ + { + "listen": "prerequest", + "script": { + "id": "198e2b21-4081-4ac8-8c81-3589f1b5e374", + "type": "text/javascript", + "packages": {}, + "exec": [ + "" + ], + "_lastExecutionId": "8aec6e50-5c9e-47a0-9d00-a9de552d0e51" + } + }, + { + "listen": "test", + "script": { + "id": "cc50f9cf-8000-4cc9-b8b1-fb9f79bcf272", + "type": "text/javascript", + "packages": {}, + "exec": [ + "pm.test(\"Afgesloten Zaak deels bijwerken zonder scope zaken.geforceerd-bijwerken geeft 403\", function() {", + " pm.response.to.have.status(403);", + " pm.expect(pm.response.json().code).to.be.equal(\"permission_denied\");", + "});", + "", + "" + ], + "_lastExecutionId": "2db52502-8f35-4163-a274-ba7cb4af901b" + } + } + ] + }, + { + "id": "ed66fc2f-1ddb-44e6-a98e-ffc5d7075127", + "name": "(zrc-007d) Klantcontact bij gesloten Zaak aanmaken niet toegestaan zonder scope zaken.geforceerd-bijwerken", + "request": { + "url": { + "path": [ + "klantcontacten" + ], + "host": [ + "{{zrc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n\t\"zaak\": \"{{created_zaak_url}}\",\n\t\"datumtijd\": \"2019-02-22T00:00:00\"\n}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "c6d35df5-0006-46a4-9544-764cfee5eeaf", + "type": "text/javascript", + "packages": {}, + "exec": [ + "pm.test(\"Klantcontact aanmaken bij gesloten Zaak zonder scope zaken.geforceerd-bijwerken geeft 403\", function() {", + " pm.response.to.have.status(403);", + " pm.expect(pm.response.json().code).to.be.equal(\"permission_denied\");", + "});" + ], + "_lastExecutionId": "daea07be-91a1-4c0e-9d95-0748a3d84614" + } + }, + { + "listen": "prerequest", + "script": { + "id": "1c878e09-09af-4430-8ace-e6be117c88d2", + "type": "text/javascript", + "packages": {}, + "exec": [ + "" + ], + "_lastExecutionId": "cedb69a9-587c-4825-9d26-beb259c2616c" + } + } + ] + }, + { + "id": "5b1f5f1f-d5e6-4ea2-9074-b09288d31162", + "name": "(zrc-007e) Resultaat bij gesloten Zaak aanmaken niet toegestaan zonder scope zaken.geforceerd-bijwerken", + "request": { + "url": { + "path": [ + "resultaten" + ], + "host": [ + "{{zrc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n\t\"zaak\": \"{{created_zaak_url}}\",\n\t\"resultaattype\": \"{{resultaattype_url}}\"\n}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "ce490eb7-2366-4cdd-bea5-ed94947888ab", + "type": "text/javascript", + "packages": {}, + "exec": [ + "pm.test(\"Resultaat aanmaken bij gesloten Zaak zonder scope zaken.geforceerd-bijwerken geeft 403\", function() {", + " pm.response.to.have.status(403);", + " pm.expect(pm.response.json().code).to.be.equal(\"permission_denied\");", + "});" + ], + "_lastExecutionId": "a5b1ac20-5ad6-4051-a429-269ea6d9bed3" + } + }, + { + "listen": "prerequest", + "script": { + "id": "932bb2b3-b466-47ee-8c8b-50cf843d12c4", + "type": "text/javascript", + "packages": {}, + "exec": [ + "" + ], + "_lastExecutionId": "250171a9-ce45-4ee1-bd97-2f1ec8802c1f" + } + } + ] + }, + { + "id": "3f76b406-bf4d-49b8-afa9-25b1ee114f45", + "name": "(zrc-007e) Resultaat bij gesloten Zaak bijwerken niet toegestaan zonder scope zaken.geforceerd-bijwerken", + "request": { + "url": { + "host": [ + "{{zaak_resultaat_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "PUT", + "body": { + "mode": "raw", + "raw": "{\n\t\"zaak\": \"{{created_zaak_url}}\",\n\t\"resultaattype\": \"{{resultaattype_url}}\"\n}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "d71b10c1-1e83-4444-aa48-de00cfd42c32", + "type": "text/javascript", + "packages": {}, + "exec": [ + "pm.test(\"Resultaat bijwerken bij gesloten Zaak zonder scope zaken.geforceerd-bijwerken geeft 403\", function() {", + " pm.response.to.have.status(403);", + " pm.expect(pm.response.json().code).to.be.equal(\"permission_denied\");", + "});" + ], + "_lastExecutionId": "439af762-db93-4ca7-9e10-aee3c3c2409f" + } + }, + { + "listen": "prerequest", + "script": { + "id": "ed5ba4d7-09c0-4ef3-b2d0-73b3115109a8", + "type": "text/javascript", + "packages": {}, + "exec": [ + "" + ], + "_lastExecutionId": "081380d4-addd-44e7-bf94-9ac527d933b6" + } + } + ] + }, + { + "id": "4bd71676-2144-4846-950f-1380118563cb", + "name": "(zrc-007e) Resultaat bij gesloten Zaak deels bijwerken niet toegestaan zonder scope zaken.geforceerd-bijwerken", + "request": { + "url": { + "host": [ + "{{zaak_resultaat_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "PATCH", + "body": { + "mode": "raw", + "raw": "{\n\t\"zaak\": \"{{created_zaak_url}}\",\n\t\"resultaattype\": \"{{resultaattype_url}}\"\n}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "f0a177c1-9f84-4b58-afe1-53b5c1d4bc7f", + "type": "text/javascript", + "packages": {}, + "exec": [ + "pm.test(\"Resultaat deels bijwerken bij gesloten Zaak zonder scope zaken.geforceerd-bijwerken geeft 403\", function() {", + " pm.response.to.have.status(403);", + " pm.expect(pm.response.json().code).to.be.equal(\"permission_denied\");", + "});" + ], + "_lastExecutionId": "4c230604-baba-458f-98e3-715c37fae4ba" + } + }, + { + "listen": "prerequest", + "script": { + "id": "d5be5f05-91d9-47fe-aea6-649045bca588", + "type": "text/javascript", + "packages": {}, + "exec": [ + "" + ], + "_lastExecutionId": "21aaf3ad-3e26-4086-a792-748fd6d9341b" + } + } + ] + }, + { + "id": "10b0b6fc-6ba1-4a71-b269-fc9e618810af", + "name": "(zrc-007e) Resultaat bij gesloten Zaak verwijderen niet toegestaan zonder scope zaken.geforceerd-bijwerken", + "request": { + "url": { + "host": [ + "{{zaak_resultaat_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "DELETE" + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "94318c8f-b4a7-4ad5-8b2a-407d38f3aac6", + "type": "text/javascript", + "packages": {}, + "exec": [ + "pm.test(\"Resultaat verwijderen bij gesloten Zaak zonder scope zaken.geforceerd-bijwerken geeft 403\", function() {", + " pm.response.to.have.status(403);", + " pm.expect(pm.response.json().code).to.be.equal(\"permission_denied\");", + "});" + ], + "_lastExecutionId": "a7daf9aa-ccce-41fd-8fdb-9bec3d3240d0" + } + }, + { + "listen": "prerequest", + "script": { + "id": "ff47ff7f-3321-4060-8828-e7bacf56ad35", + "type": "text/javascript", + "packages": {}, + "exec": [ + "" + ], + "_lastExecutionId": "5e3145cf-2985-4128-8a57-9402d88515c5" + } + } + ] + }, + { + "id": "24e55e60-1433-4f20-a2a4-6443e34d5b64", + "name": "(zrc-007f) Rol bij gesloten Zaak aanmaken niet toegestaan zonder scope zaken.geforceerd-bijwerken", + "request": { + "url": { + "path": [ + "rollen" + ], + "host": [ + "{{zrc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n\t\"zaak\": \"{{created_zaak_url}}\",\n\t\"betrokkene\": \"http://example.com/2d0815580af94ee0a15aa677aa646e1a\",\n\t\"betrokkeneType\": \"natuurlijk_persoon\",\n\t\"rolomschrijving\": \"behandelaar\",\n\t\"roltoelichting\": \"testrol\",\n\t\"roltype\": \"{{roltype_url}}\"\n}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "9148221a-4e62-406f-94b4-7f20b8db9371", + "type": "text/javascript", + "packages": {}, + "exec": [ + "pm.test(\"Rol aanmaken bij gesloten Zaak zonder scope zaken.geforceerd-bijwerken geeft 403\", function() {", + " pm.response.to.have.status(403);", + " pm.expect(pm.response.json().code).to.be.equal(\"permission_denied\");", + "});" + ], + "_lastExecutionId": "b09cc1ca-19cd-4d24-9d5d-b3d397d5bb6d" + } + }, + { + "listen": "prerequest", + "script": { + "id": "f2a1f393-8ba0-40ab-bf19-ae2756e911e0", + "type": "text/javascript", + "packages": {}, + "exec": [ + "" + ], + "_lastExecutionId": "5e20cd93-2624-45e9-882f-f57d4c1280d5" + } + } + ] + }, + { + "id": "cb6b8d00-8678-49e6-bba2-8b5aa8bc6cfa", + "name": "(zrc-007f) Rol bij gesloten Zaak verwijderen niet toegestaan zonder scope zaken.geforceerd-bijwerken", + "request": { + "url": { + "host": [ + "{{rol_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "DELETE" + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "74d0244b-d7d9-4c34-8c14-34d1c4848a44", + "type": "text/javascript", + "packages": {}, + "exec": [ + "pm.test(\"Rol verwijderen bij gesloten Zaak zonder scope zaken.geforceerd-bijwerken geeft 403\", function() {", + " pm.response.to.have.status(403);", + " pm.expect(pm.response.json().code).to.be.equal(\"permission_denied\");", + "});" + ], + "_lastExecutionId": "a1225580-037f-43dc-b82d-e4230bc3f91e" + } + }, + { + "listen": "prerequest", + "script": { + "id": "9095fc8a-d56b-49e0-8c3e-170961acdfc2", + "type": "text/javascript", + "packages": {}, + "exec": [ + "" + ], + "_lastExecutionId": "4f26a03a-acf6-464f-afd4-2e6d2ec6c7b2" + } + } + ] + }, + { + "id": "cac2d49e-6529-44ee-ba7f-8c6a82cb21bf", + "name": "(zrc-007g) Status toevoegen bij gesloten Zaak is niet toegestaan zonder scope zaken.geforceerd-bijwerken", + "request": { + "url": { + "path": [ + "statussen" + ], + "host": [ + "{{zrc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n\t\"zaak\": \"{{created_zaak_url}}\",\n\t\"statustype\": \"{{eindstatustype}}\",\n\t\"datumStatusGezet\": \"2018-04-22T13:37:00\"\n}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "40d1ffcb-5b3c-497e-a255-e6344fde4282", + "type": "text/javascript", + "packages": {}, + "exec": [ + "pm.test(\"Status aanmaken bij gesloten Zaak zonder scope zaken.geforceerd-bijwerken geeft 403\", function() {", + " pm.response.to.have.status(403);", + " pm.expect(pm.response.json().code).to.be.equal(\"permission_denied\");", + "});" + ], + "_lastExecutionId": "1455dded-9f11-4f85-81a9-5cfb50264557" + } + }, + { + "listen": "prerequest", + "script": { + "id": "df5d3734-c3d5-44f9-9b8f-7c1d8e0d280b", + "type": "text/javascript", + "packages": {}, + "exec": [ + "" + ], + "_lastExecutionId": "a34ecaf5-4070-406c-a980-f862c2c1f37f" + } + } + ] + }, + { + "id": "760e1057-c285-48ba-85be-5314f6021452", + "name": "(zrc-007h) ZaakInformatieObject toevoegen bij gesloten Zaak is niet toegestaan zonder scope zaken.geforceerd-bijwerken", + "request": { + "url": { + "path": [ + "zaakinformatieobjecten" + ], + "host": [ + "{{zrc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n \"informatieobject\": \"{{informatieobject_gebruiksrecht_null_url}}\",\n \"zaak\": \"{{created_zaak_url}}\"\n}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "917acc3f-245a-4920-9aa5-2bdc099219da", + "type": "text/javascript", + "packages": {}, + "exec": [ + "pm.test(\"ZaakInformatieObject aanmaken bij gesloten Zaak zonder scope zaken.geforceerd-bijwerken geeft 403\", function() {", + " pm.response.to.have.status(403);", + " pm.expect(pm.response.json().code).to.be.equal(\"permission_denied\");", + "});" + ], + "_lastExecutionId": "4e3f0dde-1cdf-4b24-99a0-50172a3943a8" + } + }, + { + "listen": "prerequest", + "script": { + "id": "e9cadfca-c454-48ab-800b-198d4d01384b", + "type": "text/javascript", + "packages": {}, + "exec": [ + "" + ], + "_lastExecutionId": "42aab2cd-6dfd-4e70-9a5e-c831f934faed" + } + } + ] + }, + { + "id": "69331cdf-304f-40a2-9500-5d6c17118330", + "name": "(zrc-007h) ZaakInformatieObject bijwerken bij gesloten Zaak is niet toegestaan zonder scope zaken.geforceerd-bijwerken", + "request": { + "url": { + "host": [ + "{{created_zaakinformatieobject_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "PUT", + "body": { + "mode": "raw", + "raw": "{\n \"informatieobject\": \"{{informatieobject_url}}\",\n \"zaak\": \"{{created_zaak_url}}\",\n \"titel\": \"bla\"\n}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "18638837-ec24-419a-b85f-91a5cff15d2a", + "type": "text/javascript", + "packages": {}, + "exec": [ + "pm.test(\"ZaakInformatieObject bijwerken bij gesloten Zaak zonder scope zaken.geforceerd-bijwerken geeft 403\", function() {", + " pm.response.to.have.status(403);", + " pm.expect(pm.response.json().code).to.be.equal(\"permission_denied\");", + "});" + ], + "_lastExecutionId": "49fd333b-2713-4637-aad0-87edbe19eb43" + } + }, + { + "listen": "prerequest", + "script": { + "id": "656623a9-6355-42b3-9b56-5290240125dd", + "type": "text/javascript", + "packages": {}, + "exec": [ + "" + ], + "_lastExecutionId": "4accd4d0-4922-4758-b70d-665720ee57a4" + } + } + ] + }, + { + "id": "28b42a39-118f-47fb-988c-c553c13ad36e", + "name": "(zrc-007h) ZaakInformatieObject deels bijwerken bij gesloten Zaak is niet toegestaan zonder scope zaken.geforceerd-bijwerken", + "request": { + "url": { + "host": [ + "{{created_zaakinformatieobject_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "PATCH", + "body": { + "mode": "raw", + "raw": "{\n \"informatieobject\": \"{{informatieobject_url}}\",\n \"zaak\": \"{{created_zaak_url}}\",\n \"titel\": \"bla\"\n}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "a7f50240-b433-48fc-8855-f573aec36a7e", + "type": "text/javascript", + "packages": {}, + "exec": [ + "pm.test(\"ZaakInformatieObject deels bijwerken bij gesloten Zaak zonder scope zaken.geforceerd-bijwerken geeft 403\", function() {", + " pm.response.to.have.status(403);", + " pm.expect(pm.response.json().code).to.be.equal(\"permission_denied\");", + "});" + ], + "_lastExecutionId": "ba81d1bd-50c4-4e28-89e0-75a0836de728" + } + }, + { + "listen": "prerequest", + "script": { + "id": "a7294ec2-5558-43bc-9b6a-6b65a6f3f780", + "type": "text/javascript", + "packages": {}, + "exec": [ + "" + ], + "_lastExecutionId": "cc4dea11-729d-4129-a79b-4d57b6d6cf21" + } + } + ] + }, + { + "id": "95a2e022-3bc3-4fd2-8f54-39aeb33deb77", + "name": "(zrc-007h) ZaakInformatieObject verwijderen bij gesloten Zaak is niet toegestaan zonder scope zaken.geforceerd-bijwerken", + "request": { + "url": { + "host": [ + "{{created_zaakinformatieobject_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "DELETE" + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "2f473fe1-aa5a-4fd8-8469-3b7ecbffcb06", + "type": "text/javascript", + "packages": {}, + "exec": [ + "pm.test(\"ZaakInformatieObject verwijderen bij gesloten Zaak zonder scope zaken.geforceerd-bijwerken geeft 403\", function() {", + " pm.response.to.have.status(403);", + " pm.expect(pm.response.json().code).to.be.equal(\"permission_denied\");", + "});" + ], + "_lastExecutionId": "5fb1899c-3338-4139-be3e-25e3c4f4e9a4" + } + }, + { + "listen": "prerequest", + "script": { + "id": "ba508967-96bf-4152-852a-e5cc77902180", + "type": "text/javascript", + "packages": {}, + "exec": [ + "" + ], + "_lastExecutionId": "b2da6d2a-96ba-4a61-bb4f-c3f3af349dae" + } + } + ] + }, + { + "id": "788534b9-736a-4345-9d0c-3b36eca8f341", + "name": "(zrc-007i) ZaakObject toevoegen bij gesloten Zaak is niet toegestaan zonder scope zaken.geforceerd-bijwerken", + "request": { + "url": { + "path": [ + "zaakobjecten" + ], + "host": [ + "{{zrc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n\t\"zaak\": \"{{created_zaak_url}}\",\n\t\"objectType\": \"pand\",\n\t\"objectIdentificatie\": {\n\t\t\"identificatie\": \"test\"\n\t}\n}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "d40493f1-0273-45db-9ac4-85aca7f3a073", + "type": "text/javascript", + "packages": {}, + "exec": [ + "pm.test(\"ZaakObject aanmaken bij gesloten Zaak zonder scope zaken.geforceerd-bijwerken geeft 403\", function() {", + " pm.response.to.have.status(403);", + " pm.expect(pm.response.json().code).to.be.equal(\"permission_denied\");", + "});" + ], + "_lastExecutionId": "a687f291-bdf3-42f5-8e83-1ce3c65afd04" + } + }, + { + "listen": "prerequest", + "script": { + "id": "9f6a05c7-98d3-4f40-9e8b-310cc05e290a", + "type": "text/javascript", + "packages": {}, + "exec": [ + "" + ], + "_lastExecutionId": "e9677e02-1e4d-415c-b64f-14453ca2ace4" + } + } + ] + }, + { + "id": "d2f56f4e-c6a4-4a98-a0e4-8c0546e2aa9b", + "name": "(zrc-007k) ZaakEigenschap toevoegen bij gesloten Zaak is niet toegestaan zonder scope zaken.geforceerd-bijwerken", + "request": { + "url": { + "path": [ + "zaakeigenschappen" + ], + "host": [ + "{{created_zaak_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n\t\"zaak\": \"{{created_zaak_url}}\",\n\t\"eigenschap\": \"{{zaaktype_eigenschap}}\",\n\t\"waarde\": \"test\"\n}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "e23c2bd5-db14-4345-bb91-3d08cdae1dbf", + "type": "text/javascript", + "packages": {}, + "exec": [ + "pm.test(\"Zaakeigenschap aanmaken bij gesloten Zaak zonder scope zaken.geforceerd-bijwerken geeft 403\", function() {", + " pm.response.to.have.status(403);", + " pm.expect(pm.response.json().code).to.be.equal(\"permission_denied\");", + "});" + ], + "_lastExecutionId": "7e6c8385-d3b9-4bd9-8d9c-1b9d20f15181" + } + }, + { + "listen": "prerequest", + "script": { + "id": "617c55a5-0a9e-43b7-9524-d7e4557bf541", + "type": "text/javascript", + "packages": {}, + "exec": [ + "" + ], + "_lastExecutionId": "a7a6cda4-339a-4bc3-a999-fb5d92f87dd1" + } + } + ] + }, + { + "id": "99f52437-aba8-4552-b761-25b16cfb95d5", + "name": "set full token Copy", + "request": { + "url": { + "path": [ + "catalogussen" + ], + "host": [ + "{{ztc_url}}" + ], + "query": [], + "variable": [] + }, + "method": "GET" + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "79d89f68-0c8f-40a4-bab6-0a905e84289a", + "type": "text/javascript", + "packages": {}, + "exec": [ + "" + ], + "_lastExecutionId": "602fc6a2-da7b-4273-87fd-5a7d75c997c0" + } + }, + { + "listen": "prerequest", + "script": { + "id": "03295b54-11bb-4245-bdb1-5a33c1079682", + "type": "text/javascript", + "packages": {}, + "exec": [ + "pm.environment.set(\"jwt_token\", pm.environment.get(\"jwt_full\"));", + " var origId = pm.environment.get(\"_original_client_id\");", + " var origSecret = pm.environment.get(\"_original_secret\");", + " if (origId) { pm.environment.set(\"client_id\", origId); }", + " if (origSecret) { pm.environment.set(\"secret\", origSecret); }", + " pm.environment.set(\"secret\", pm.environment.get(\"secret\") || \"procest-admin-secret-key-for-testing\");" + ], + "_lastExecutionId": "92ba0532-9aba-45f6-959c-b2e859750135" + } + } + ] + }, + { + "id": "368b2a01-1aef-40d9-8871-de5da2277646", + "name": "(zrc-007i) Afgesloten zaak bijwerken is toegestaan met scope zaken.geforceerd-bijwerken", + "request": { + "url": { + "host": [ + "{{created_zaak_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Accept-Crs", + "value": "EPSG:4326" + }, + { + "key": "Content-Crs", + "value": "EPSG:4326" + } + ], + "method": "PUT", + "body": { + "mode": "raw", + "raw": "{\r\n \"url\": \"https://zaken.spt-rx-services.nl/api/v1/zaken/cba40feb-2b38-4490-b12d-84a39e8df361\",\r\n \"uuid\": \"cba40feb-2b38-4490-b12d-84a39e8df361\",\r\n \"bronorganisatie\": \"000000000\",\r\n \"omschrijving\": \"string 2\",\r\n \"toelichting\": \"string\",\r\n \"zaaktype\": \"{{zaaktype_url}}\",\r\n \"registratiedatum\": \"2019-04-09\",\r\n \"verantwoordelijkeOrganisatie\": \"000000000\",\r\n \"startdatum\": \"2019-04-09\",\r\n \"einddatum\": null,\r\n \"einddatumGepland\": \"2019-04-20\",\r\n \"uiterlijkeEinddatumAfdoening\": \"2019-04-09\",\r\n \"publicatiedatum\": \"2019-04-09\",\r\n \"communicatiekanaal\": \"\",\r\n \"productenOfDiensten\": [],\r\n \"vertrouwelijkheidaanduiding\": \"geheim\",\r\n \"betalingsindicatie\": \"geheel\",\r\n \"betalingsindicatieWeergave\": null,\r\n \"laatsteBetaaldatum\": \"2019-01-01T00:00:00Z\",\r\n \"zaakgeometrie\": {\r\n \"type\": \"Point\",\r\n \"coordinates\": [\r\n 53.0,\r\n 5.0\r\n ]\r\n },\r\n \"verlenging\": null,\r\n \"opschorting\": {\r\n \"indicatie\": true,\r\n \"reden\": \"string\"\r\n },\r\n \"selectielijstklasse\": \"https://referentielijsten.roxit.nl/api/v1/resultaten/0fe71ce3-b1e1-48eb-9070-be2756fc71b5\",\r\n \"hoofdzaak\": null,\r\n \"deelzaken\": [],\r\n \"relevanteAndereZaken\": [],\r\n \"eigenschappen\": [],\r\n \"rollen\": [],\r\n \"status\": null,\r\n \"zaakinformatieobjecten\": [],\r\n \"zaakobjecten\": [],\r\n \"resultaat\": null,\r\n \"kenmerken\": [],\r\n \"archiefnominatie\": null,\r\n \"archiefstatus\": \"nog_te_archiveren\",\r\n \"archiefactiedatum\": null,\r\n \"opdrachtgevendeOrganisatie\": null,\r\n \"processobjectaard\": null,\r\n \"startdatumBewaartermijn\": null,\r\n \"processobject\": null\r\n}" + } + }, + "response": [], + "event": [ + { + "listen": "prerequest", + "script": { + "id": "5904beb0-e34e-4264-868c-64ebd0e5f6ee", + "type": "text/javascript", + "packages": {}, + "exec": [ + "" + ], + "_lastExecutionId": "bdeccfe8-ed43-49d9-a6df-c9d7fa1b64d7" + } + }, + { + "listen": "test", + "script": { + "id": "103ed717-a9ae-46c0-b9d3-d315457c87db", + "type": "text/javascript", + "packages": {}, + "exec": [ + "pm.test(\"Afgesloten Zaak bijwerken met scope zaken.geforceerd-bijwerken geeft 200\", function() {", + " pm.response.to.have.status(200);", + " pm.expect(pm.response.json().omschrijving).to.be.equal(\"string 2\");", + "});" + ], + "_lastExecutionId": "ca4b1b0a-7c0c-408c-86ec-a951c957e68b" + } + } + ] + }, + { + "id": "06b7cc33-bac4-48c2-b3c3-612615b10a60", + "name": "(zrc-007i) Afgesloten zaak deels bijwerken is toegestaan met scope zaken.geforceerd-bijwerken", + "request": { + "url": { + "host": [ + "{{created_zaak_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Accept-Crs", + "value": "EPSG:4326" + }, + { + "key": "Content-Crs", + "value": "EPSG:4326" + } + ], + "method": "PATCH", + "body": { + "mode": "raw", + "raw": "{\n\t\"omschrijving\": \"aangepast\"\n}" + } + }, + "response": [], + "event": [ + { + "listen": "prerequest", + "script": { + "id": "b20a3dc6-1d90-4e6a-8fa3-35b132eb2b64", + "type": "text/javascript", + "packages": {}, + "exec": [ + "" + ], + "_lastExecutionId": "1497e0fb-08d4-4e6a-b549-14039f0058e9" + } + }, + { + "listen": "test", + "script": { + "id": "a1967b7a-91ab-4905-918d-49a64e28753c", + "type": "text/javascript", + "packages": {}, + "exec": [ + "pm.test(\"Afgesloten Zaak deels bijwerken zonder scope zaken.geforceerd-bijwerken geeft 200\", function() {", + " pm.response.to.have.status(200);", + " pm.expect(pm.response.json().omschrijving).to.be.equal(\"aangepast\");", + "});", + "", + "" + ], + "_lastExecutionId": "1145c413-b1ee-4eb1-ab3b-6980c577d96e" + } + } + ] + }, + { + "id": "d17629da-db16-4b39-ae62-81c3e40aaf52", + "name": "(zrc-007j) Klantcontact bij gesloten Zaak aanmaken toegestaan met scope zaken.geforceerd-bijwerken", + "request": { + "url": { + "path": [ + "klantcontacten" + ], + "host": [ + "{{zrc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n\t\"zaak\": \"{{created_zaak_url}}\",\n\t\"datumtijd\": \"2019-02-22T00:00:00\"\n}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "b3396ace-a231-48e6-a3c3-91dbcf00a5b0", + "type": "text/javascript", + "exec": [ + "pm.test(\"Klantcontact aanmaken bij gesloten Zaak met scope zaken.geforceerd-bijwerken geeft 201\", function() {", + " pm.response.to.have.status(201);", + "});" + ], + "_lastExecutionId": "42e3445b-bdb5-4dce-8460-15cdcbdd26f7" + } + }, + { + "listen": "prerequest", + "script": { + "id": "eccdbd08-2229-42ad-8814-87be88820965", + "type": "text/javascript", + "exec": [ + "" + ], + "_lastExecutionId": "eb8ed4c4-77b6-4952-8214-5154330f97d9" + } + } + ] + }, + { + "id": "9a4d310f-f95b-4262-8644-f893bfc85d90", + "name": "(zrc-007k) Resultaat bij gesloten Zaak verwijderen toegestaan met scope zaken.geforceerd-bijwerken", + "request": { + "url": { + "host": [ + "{{zaak_resultaat_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "DELETE" + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "b4b29bd0-d25d-4d4c-9a9a-f5937d658eb7", + "type": "text/javascript", + "exec": [ + "pm.test(\"Resultaat verwijderen bij gesloten Zaak zonder scope zaken.geforceerd-bijwerken geeft 204\", function() {", + " pm.response.to.have.status(204);", + "});" + ], + "_lastExecutionId": "90a9345e-553d-4036-9280-aa30e94dfd24" + } + }, + { + "listen": "prerequest", + "script": { + "id": "d037159a-6b4c-4cc7-b311-e572c0f1f7f2", + "type": "text/javascript", + "exec": [ + "" + ], + "_lastExecutionId": "79d58d8c-f5e5-4a73-9956-538e63e2c882" + } + } + ] + }, + { + "id": "1d011d3e-2bb3-42ae-b404-48d679cfa858", + "name": "(zrc-007k) Resultaat bij gesloten Zaak aanmaken toegestaan met scope zaken.geforceerd-bijwerken", + "request": { + "url": { + "path": [ + "resultaten" + ], + "host": [ + "{{zrc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n\t\"zaak\": \"{{created_zaak_url}}\",\n\t\"resultaattype\": \"{{resultaattype_url}}\"\n}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "a81ccd67-698e-4755-a567-b21b72496d1b", + "type": "text/javascript", + "exec": [ + "pm.test(\"Resultaat aanmaken bij gesloten Zaak met scope zaken.geforceerd-bijwerken geeft 201\", function() {", + " pm.response.to.have.status(201);", + "});", + "", + "pm.environment.set(\"zaak_resultaat_url\", pm.response.json().url);" + ], + "_lastExecutionId": "aa7b5b73-bd9e-431e-a17f-621cb36a9a94" + } + }, + { + "listen": "prerequest", + "script": { + "id": "585a86be-0e8d-45a5-8d5c-692a9b310924", + "type": "text/javascript", + "exec": [ + "" + ], + "_lastExecutionId": "258c5b83-4f8f-4e98-86c0-f31d67e1df53" + } + } + ] + }, + { + "id": "be899dca-832f-44b3-88f1-8030fde875d8", + "name": "(zrc-007k) Resultaat bij gesloten Zaak bijwerken toegestaan met scope zaken.geforceerd-bijwerken", + "request": { + "url": { + "host": [ + "{{zaak_resultaat_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "PUT", + "body": { + "mode": "raw", + "raw": "{\n\t\"zaak\": \"{{created_zaak_url}}\",\n\t\"resultaattype\": \"{{resultaattype_url}}\",\n\t\"toelichting\": \"some stuff\"\n}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "2c3fd1c8-73fe-4be8-a0e1-b6d5ad82dfc5", + "type": "text/javascript", + "exec": [ + "pm.test(\"Resultaat bijwerken bij gesloten Zaak met scope zaken.geforceerd-bijwerken geeft 200\", function() {", + " pm.response.to.have.status(200);", + " pm.expect(pm.response.json().toelichting).to.be.equal(\"some stuff\");", + "});" + ], + "_lastExecutionId": "eef33a31-1661-4360-8b01-dd5d5397a320" + } + }, + { + "listen": "prerequest", + "script": { + "id": "59220991-d9ca-422d-9e42-96f5ded1cce9", + "type": "text/javascript", + "exec": [ + "" + ], + "_lastExecutionId": "a66d08dd-3923-479b-954e-23b76b5e9b7f" + } + } + ] + }, + { + "id": "23630480-f094-4295-a41a-c7b2b68e75bf", + "name": "(zrc-007k) Resultaat bij gesloten Zaak deels bijwerken toegestaan met scope zaken.geforceerd-bijwerken", + "request": { + "url": { + "host": [ + "{{zaak_resultaat_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "PATCH", + "body": { + "mode": "raw", + "raw": "{\n\t\"zaak\": \"{{created_zaak_url}}\",\n\t\"resultaattype\": \"{{resultaattype_url}}\",\n\t\"toelichting\": \"some more stuff\"\n}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "95bd7d03-3891-4915-b856-6f1d8db0e8d7", + "type": "text/javascript", + "exec": [ + "pm.test(\"Resultaat deels bijwerken bij gesloten Zaak met scope zaken.geforceerd-bijwerken geeft 200\", function() {", + " pm.response.to.have.status(200);", + " pm.expect(pm.response.json().toelichting).to.be.equal(\"some more stuff\");", + "});" + ], + "_lastExecutionId": "ba8f2b42-6879-4ec1-aede-a9b72f1258dd" + } + }, + { + "listen": "prerequest", + "script": { + "id": "adcacd22-170a-4ae4-9ffc-a2683ada14cf", + "type": "text/javascript", + "exec": [ + "" + ], + "_lastExecutionId": "20c4dc7b-896a-4e57-869d-0b871fdf533e" + } + } + ] + }, + { + "id": "bd980c0d-16d9-48ed-a30b-628443172fd1", + "name": "(zrc-007l) Rol bij gesloten Zaak aanmaken toegestaan toegestaan scope zaken.geforceerd-bijwerken", + "request": { + "url": { + "path": [ + "rollen" + ], + "host": [ + "{{zrc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n\t\"zaak\": \"{{created_zaak_url}}\",\n\t\"betrokkene\": \"http://example.com/2d0815580af94ee0a15aa677aa646e1a\",\n\t\"betrokkeneType\": \"natuurlijk_persoon\",\n\t\"rolomschrijving\": \"behandelaar\",\n\t\"roltoelichting\": \"same\",\n\t\"roltype\": \"{{roltype_url}}\"\n}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "555c960e-9284-46c4-949b-a11d74c1fd3b", + "type": "text/javascript", + "exec": [ + "pm.test(\"Rol aanmaken bij gesloten Zaak zonder scope zaken.geforceerd-bijwerken geeft 201\", function() {", + " pm.response.to.have.status(201);", + "});" + ], + "_lastExecutionId": "1b0374b1-c89b-4ffa-a147-1373db9d67f5" + } + }, + { + "listen": "prerequest", + "script": { + "id": "849d6112-f38c-4dc3-9147-9cdd7a666068", + "type": "text/javascript", + "exec": [ + "" + ], + "_lastExecutionId": "3ddd62b1-d44f-4211-b9e3-1f828b76b682" + } + } + ] + }, + { + "id": "2addca21-7f0c-4b41-9ba7-a1a3e6e5bf44", + "name": "(zrc-007l) Rol bij gesloten Zaak verwijderen niet toegestaan zonder scope zaken.geforceerd-bijwerken Copy", + "request": { + "url": { + "host": [ + "{{rol_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "DELETE" + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "a2fb1008-c8e5-4672-bb57-5a498e51fa50", + "type": "text/javascript", + "exec": [ + "pm.test(\"Rol verwijderen bij gesloten Zaak met scope zaken.geforceerd-bijwerken geeft 204\", function() {", + " pm.response.to.have.status(204);", + "});" + ], + "_lastExecutionId": "6a67a3b0-b339-43c0-8752-18aa4d012dac" + } + }, + { + "listen": "prerequest", + "script": { + "id": "fa73ba88-1793-4973-9d03-890ea199dae4", + "type": "text/javascript", + "exec": [ + "" + ], + "_lastExecutionId": "55b19845-45ef-4605-9c5e-d7c88653449e" + } + } + ] + }, + { + "id": "72e9008a-6c99-453c-b570-26158bc6daba", + "name": "(zrc-007m) Status toevoegen bij gesloten Zaak is toegestaan met scope zaken.geforceerd-bijwerken", + "request": { + "url": { + "path": [ + "statussen" + ], + "host": [ + "{{zrc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n\t\"zaak\": \"{{created_zaak_url}}\",\n\t\"statustype\": \"{{eindstatustype}}\",\n\t\"datumStatusGezet\": \"2018-04-22T13:37:00\"\n}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "c21e74e8-d5e0-4b40-8c21-e1264c196b5b", + "type": "text/javascript", + "exec": [ + "pm.test(\"Status aanmaken bij gesloten Zaak met scope zaken.geforceerd-bijwerken geeft 201\", function() {", + " pm.response.to.have.status(201);", + "});" + ], + "_lastExecutionId": "cea6c852-7b53-4dca-a11a-8f515097b36a" + } + }, + { + "listen": "prerequest", + "script": { + "id": "8f71bce8-cb06-4bc1-8956-3dfac00b1d22", + "type": "text/javascript", + "exec": [ + "" + ], + "_lastExecutionId": "d020d0ab-6076-4090-b98d-ecd3ef9f8cdb" + } + } + ] + }, + { + "id": "a82b8a3e-1164-479a-a9b1-bf7dc60c0a11", + "name": "(zrc-007n) ZaakInformatieObject verwijderen bij gesloten Zaak is toegestaan met scope zaken.geforceerd-bijwerken", + "request": { + "url": { + "host": [ + "{{created_zaakinformatieobject_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "DELETE" + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "805b75f2-6c8d-4ff7-a267-e36dc5b0621b", + "type": "text/javascript", + "exec": [ + "pm.test(\"ZaakInformatieObject verwijderen bij gesloten Zaak met scope zaken.geforceerd-bijwerken geeft 204\", function() {", + " pm.response.to.have.status(204);", + "});" + ], + "_lastExecutionId": "685e2f7d-748c-46b3-a8aa-24d4000e37aa" + } + }, + { + "listen": "prerequest", + "script": { + "id": "6d12f877-ffcc-4a2f-afe4-58f74164e54f", + "type": "text/javascript", + "exec": [ + "" + ], + "_lastExecutionId": "b5769c04-bdff-4849-8dab-d92b13a84ca1" + } + } + ] + }, + { + "id": "215ff014-7201-4c94-8870-06716fb41767", + "name": "(zrc-007n) ZaakInformatieObject toevoegen bij gesloten Zaak is toegestaan met scope zaken.geforceerd-bijwerken", + "request": { + "url": { + "path": [ + "zaakinformatieobjecten" + ], + "host": [ + "{{zrc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n \"informatieobject\": \"{{informatieobject_url}}\",\n \"zaak\": \"{{created_zaak_url}}\"\n}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "361004da-b08f-442c-a57e-9f0f9c55fb74", + "type": "text/javascript", + "exec": [ + "pm.test(\"ZaakInformatieObject aanmaken bij gesloten Zaak met scope zaken.geforceerd-bijwerken geeft 201\", function() {", + " pm.response.to.have.status(201);", + "});", + "", + "pm.environment.set(\"created_zaakinformatieobject_url\", pm.response.json().url);" + ], + "_lastExecutionId": "3daaceb9-61a1-4697-8451-065dbc5d83eb" + } + }, + { + "listen": "prerequest", + "script": { + "id": "8def31b7-7f04-4939-a830-35af7b4d0754", + "type": "text/javascript", + "exec": [ + "" + ], + "_lastExecutionId": "082dfa15-0c66-4d06-b5ac-f62daf71a10d" + } + } + ] + }, + { + "id": "3f4bb806-e356-4e47-b0b7-5de805cbc2c1", + "name": "(zrc-007n) ZaakInformatieObject bijwerken bij gesloten Zaak is toegestaan scope zaken.geforceerd-bijwerken", + "request": { + "url": { + "host": [ + "{{created_zaakinformatieobject_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "PUT", + "body": { + "mode": "raw", + "raw": "{\n \"informatieobject\": \"{{informatieobject_url}}\",\n \"zaak\": \"{{created_zaak_url}}\",\n \"titel\": \"aangepast\"\n}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "6e714101-981f-48da-9244-e3d6d4ed5da3", + "type": "text/javascript", + "exec": [ + "pm.test(\"ZaakInformatieObject bijwerken bij gesloten Zaak met scope zaken.geforceerd-bijwerken geeft 200\", function() {", + " pm.response.to.have.status(200);", + " pm.expect(pm.response.json().titel).to.be.equal(\"aangepast\");", + "});" + ], + "_lastExecutionId": "775fa45c-8dfe-4d32-a315-712c1813ddac" + } + }, + { + "listen": "prerequest", + "script": { + "id": "ab5a76b0-849e-4d51-ba53-954fea7503d0", + "type": "text/javascript", + "exec": [ + "" + ], + "_lastExecutionId": "4b238e01-369a-475f-a38c-4cc71fe47326" + } + } + ] + }, + { + "id": "8129ef2a-d571-4c67-8ec7-41eadfb921be", + "name": "(zrc-007n) ZaakInformatieObject deels bijwerken bij gesloten Zaak is toegestaan met scope zaken.geforceerd-bijwerken", + "request": { + "url": { + "host": [ + "{{created_zaakinformatieobject_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "PATCH", + "body": { + "mode": "raw", + "raw": "{\n \"informatieobject\": \"{{informatieobject_url}}\",\n \"zaak\": \"{{created_zaak_url}}\",\n \"titel\": \"en nog een keer\"\n}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "5a79a7a5-517d-4c16-8e33-2b3208640f3d", + "type": "text/javascript", + "exec": [ + "pm.test(\"ZaakInformatieObject deels bijwerken bij gesloten Zaak met scope zaken.geforceerd-bijwerken geeft 200\", function() {", + " pm.response.to.have.status(200);", + " pm.expect(pm.response.json().titel).to.be.equal(\"en nog een keer\");", + "});" + ], + "_lastExecutionId": "a9269921-ba3d-4cad-b711-a45be7f048e2" + } + }, + { + "listen": "prerequest", + "script": { + "id": "d5029c96-9ce1-4aa1-85b0-bf9c469ed3ef", + "type": "text/javascript", + "exec": [ + "" + ], + "_lastExecutionId": "031f3846-0914-498d-bf62-3a1fd6ea281f" + } + } + ] + }, + { + "id": "f65bf9ad-0761-4636-ac28-695932e8950c", + "name": "(zrc-007o) ZaakObject toevoegen bij gesloten Zaak is toegestaan met scope zaken.geforceerd-bijwerken", + "request": { + "url": { + "path": [ + "zaakobjecten" + ], + "host": [ + "{{zrc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n\t\"zaak\": \"{{created_zaak_url}}\",\n\t\"objectType\": \"pand\",\n\t\"objectIdentificatie\": {\n\t\t\"identificatie\": \"test\"\n\t}\n}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "2b439fd3-4713-450b-9619-5da89f498dab", + "type": "text/javascript", + "exec": [ + "pm.test(\"ZaakObject aanmaken bij gesloten Zaak met scope zaken.geforceerd-bijwerken geeft 201\", function() {", + " pm.response.to.have.status(201);", + "});" + ], + "_lastExecutionId": "b205e114-4621-477e-b8ca-fe745aa9b836" + } + }, + { + "listen": "prerequest", + "script": { + "id": "f02d39fa-b344-4043-b8ea-96642f2bd124", + "type": "text/javascript", + "exec": [ + "" + ], + "_lastExecutionId": "7df46f16-cfcf-4a4e-8bfc-2e7f79353c76" + } + } + ] + }, + { + "id": "2cff76d3-6fa8-4ffc-9856-7f7c7d216b04", + "name": "(zrc-007p) ZaakEigenschap toevoegen bij gesloten Zaak is toegestaan met scope zaken.geforceerd-bijwerken", + "request": { + "url": { + "path": [ + "zaakeigenschappen" + ], + "host": [ + "{{created_zaak_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n\t\"zaak\": \"{{created_zaak_url}}\",\n\t\"eigenschap\": \"{{zaaktype_eigenschap}}\",\n\t\"waarde\": \"test\"\n}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "300535c3-065e-4a2c-aa89-02bdd1f954f3", + "type": "text/javascript", + "packages": {}, + "exec": [ + "pm.test(\"Zaakeigenschap aanmaken bij gesloten Zaak met scope zaken.geforceerd-bijwerken geeft 201\", function() {", + " pm.response.to.have.status(201);", + "});", + "", + "" + ], + "_lastExecutionId": "b69bf103-0afc-4dd9-ad05-8c24aea95e10" + } + }, + { + "listen": "prerequest", + "script": { + "id": "629db568-370a-48e8-b6f0-84f5a70d9e25", + "type": "text/javascript", + "packages": {}, + "exec": [ + "" + ], + "_lastExecutionId": "17c72de0-209c-4ecf-ba92-9b121e823349" + } + } + ] + }, + { + "id": "a893a5ec-c924-4b15-9463-280cfc5ec79e", + "name": "Create relation between Zaak and Informatieobject with gebruiksrecht null", + "request": { + "url": { + "path": [ + "zaakinformatieobjecten" + ], + "host": [ + "{{zrc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n \"informatieobject\": \"{{informatieobject_gebruiksrecht_null_url}}\",\n \"zaak\": \"{{created_zaak_url}}\"\n}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "6f979ae5-069b-4e3c-97a4-d8bb1027ec0f", + "type": "text/javascript", + "exec": [ + "pm.environment.set(\"created_zaakinformatieobject_url\", pm.response.json().url)" + ], + "_lastExecutionId": "d8eb75ed-8553-4db1-96e7-30835d35a47f" + } + }, + { + "listen": "prerequest", + "script": { + "id": "54ac8d93-589d-4d24-a71b-cb00d3c532ab", + "type": "text/javascript", + "exec": [ + "" + ], + "_lastExecutionId": "9924c7c2-a4fd-499e-8ec9-904368e64659" + } + } + ] + }, + { + "id": "f928ad11-3b56-432c-b783-5d80faf62f9e", + "name": "(zrc-007q) Eindstatus toevoegen aan Zaak met Informatieobject.indicatieGebruiksrecht null", + "request": { + "url": { + "path": [ + "statussen" + ], + "host": [ + "{{zrc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Accept-Crs", + "value": "EPSG:4326" + }, + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n\t\"zaak\": \"{{created_zaak_url}}\",\n\t\"statustype\": \"{{eindstatustype}}\",\n\t\"datumStatusGezet\": \"2018-04-22T13:37:01\"\n}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "74b1a2c2-ca75-4daa-8e32-c87fd8b4c8a5", + "type": "text/javascript", + "packages": {}, + "exec": [ + "pm.test(\"Eindstatus toevoegen aan Zaak met gerelateerd Informatieobject met indicatieGebruiksrecht null geeft 400\", function() {", + " pm.response.to.have.status(400);", + " ", + " var error = pm.response.json()['invalidParams'][0];", + " pm.expect(error.name).to.be.equal(\"nonFieldErrors\");", + " pm.expect(error.code).to.be.equal(\"indicatiegebruiksrecht-unset\");", + "});", + "", + "" + ], + "_lastExecutionId": "33db753c-0569-4ea7-847b-519782cf13ba" + } + }, + { + "listen": "prerequest", + "script": { + "id": "9998cd7a-e758-4518-aef4-15658b91b56c", + "type": "text/javascript", + "packages": {}, + "exec": [ + "" + ], + "_lastExecutionId": "5b2e6cec-1e96-4b8c-a632-d84ca8645dc1" + } + } + ] + }, + { + "id": "dbc24314-59e6-40d0-b696-516fbbcaaf95", + "name": "Add non-Eindstatus to Zaak", + "request": { + "url": { + "path": [ + "statussen" + ], + "host": [ + "{{zrc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n\t\"zaak\": \"{{created_zaak_url}}\",\n\t\"statustype\": \"{{non_eindstatustype}}\",\n\t\"datumStatusGezet\": \"2018-04-22T13:39:00\"\n}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "c45f7300-b5b4-4288-85bc-dadf1fab7c76", + "type": "text/javascript", + "exec": [ + "" + ], + "_lastExecutionId": "beac80a8-bdab-422d-9e40-0988c9c11fb6" + } + }, + { + "listen": "prerequest", + "script": { + "id": "cea116b5-1908-4dc4-9067-b4bc8c3125b0", + "type": "text/javascript", + "exec": [ + "" + ], + "_lastExecutionId": "0617b2bf-6729-42b2-ad6d-574bf2ce679d" + } + } + ] + }, + { + "id": "1442dcda-2e3d-467a-a9d3-644c1330747b", + "name": "(zrc-007r) Zaak.einddatum leeg als geen eindstatus gezet", + "request": { + "url": { + "host": [ + "{{created_zaak_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Accept-Crs", + "value": "EPSG:4326" + }, + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "GET" + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "9e19ffbe-655e-4e30-8752-8f89338cb86c", + "type": "text/javascript", + "packages": {}, + "exec": [ + "pm.test(\"Toevoegen status die geen eindstatus is aan Zaak betekent Zaak.einddatum leeg\", function(){", + " pm.response.to.have.status(200);", + " ", + " var einddatum = pm.response.json().einddatum;", + " pm.expect(einddatum).to.be.equal(null);", + "});", + "", + "" + ], + "_lastExecutionId": "10995ccc-2aef-44a8-8dfb-30fdf07ac921" + } + }, + { + "listen": "prerequest", + "script": { + "id": "5928bd2d-f9f3-4af0-87f7-0b2a8c9af307", + "type": "text/javascript", + "packages": {}, + "exec": [ + "" + ], + "_lastExecutionId": "3905c79f-865f-43f7-9544-ab21a9ece26e" + } + } + ] + } + ], + "event": [ + { + "listen": "prerequest", + "script": { + "id": "5d8c75b7-496a-4d14-b59e-d1123fd8c2fa", + "type": "text/javascript", + "exec": [ + "" + ], + "_lastExecutionId": "947b3175-ec37-4415-9107-eb222e178b31" + } + }, + { + "listen": "test", + "script": { + "id": "83c66e0d-4380-4187-b10f-d51e9da8f2b2", + "type": "text/javascript", + "exec": [ + "" + ], + "_lastExecutionId": "cc1967f6-8bc9-4d35-80df-de7101fe3150" + } + } + ] + }, + { + "id": "f7120f1e-3e39-4656-8c04-c8939f3a1660", + "name": "zrc-008", + "item": [ + { + "id": "49fb6582-797f-416a-9b5e-a1fb156e54c6", + "name": "set full token", + "request": { + "url": { + "path": [ + "catalogussen" + ], + "host": [ + "{{ztc_url}}" + ], + "query": [], + "variable": [] + }, + "method": "GET" + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "84d1c8e5-8038-42e6-9721-b20ac62c18ec", + "type": "text/javascript", + "packages": {}, + "exec": [ + "" + ], + "_lastExecutionId": "1cbce57a-a0dd-4ad9-bbaf-0ca6be14b1ba" + } + }, + { + "listen": "prerequest", + "script": { + "id": "99eb8014-6b6e-400a-9e44-24149ad660b8", + "type": "text/javascript", + "packages": {}, + "exec": [ + "pm.environment.set(\"jwt_token\", pm.environment.get(\"jwt_full\"));", + " var origId = pm.environment.get(\"_original_client_id\");", + " var origSecret = pm.environment.get(\"_original_secret\");", + " if (origId) { pm.environment.set(\"client_id\", origId); }", + " if (origSecret) { pm.environment.set(\"secret\", origSecret); }", + " pm.environment.set(\"secret\", pm.environment.get(\"secret\") || \"procest-admin-secret-key-for-testing\");" + ], + "_lastExecutionId": "aef194d6-cbdf-4854-8896-974a135773d5" + } + } + ] + }, + { + "id": "66fb3429-7977-44ac-b41a-104bde2b6911", + "name": "Create Zaak to close and reopen", + "request": { + "url": { + "path": [ + "zaken" + ], + "host": [ + "{{zrc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Accept-Crs", + "value": "EPSG:4326" + }, + { + "key": "Content-Crs", + "value": "EPSG:4326" + }, + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\r\n \"url\": \"https://zaken.spt-rx-services.nl/api/v1/zaken/cba40feb-2b38-4490-b12d-84a39e8df361\",\r\n \"uuid\": \"cba40feb-2b38-4490-b12d-84a39e8df361\",\r\n \"bronorganisatie\": \"000000000\",\r\n \"omschrijving\": \"string\",\r\n \"toelichting\": \"string\",\r\n \"zaaktype\": \"{{zaaktype_url}}\",\r\n \"registratiedatum\": \"2019-04-09\",\r\n \"verantwoordelijkeOrganisatie\": \"000000000\",\r\n \"startdatum\": \"2019-04-09\",\r\n \"einddatum\": null,\r\n \"einddatumGepland\": \"2019-04-20\",\r\n \"uiterlijkeEinddatumAfdoening\": \"2019-04-09\",\r\n \"publicatiedatum\": \"2019-04-09\",\r\n \"communicatiekanaal\": \"\",\r\n \"productenOfDiensten\": [],\r\n \"vertrouwelijkheidaanduiding\": \"geheim\",\r\n \"betalingsindicatie\": \"geheel\",\r\n \"betalingsindicatieWeergave\": null,\r\n \"laatsteBetaaldatum\": \"2019-01-01T00:00:00Z\",\r\n \"zaakgeometrie\": {\r\n \"type\": \"Point\",\r\n \"coordinates\": [\r\n 53.0,\r\n 5.0\r\n ]\r\n },\r\n \"verlenging\": null,\r\n \"opschorting\": {\r\n \"indicatie\": true,\r\n \"reden\": \"string\"\r\n },\r\n \"selectielijstklasse\": \"https://referentielijsten.roxit.nl/api/v1/resultaten/0fe71ce3-b1e1-48eb-9070-be2756fc71b5\",\r\n \"hoofdzaak\": null,\r\n \"deelzaken\": [],\r\n \"relevanteAndereZaken\": [],\r\n \"eigenschappen\": [],\r\n \"rollen\": [],\r\n \"status\": null,\r\n \"zaakinformatieobjecten\": [],\r\n \"zaakobjecten\": [],\r\n \"resultaat\": null,\r\n \"kenmerken\": [],\r\n \"archiefnominatie\": null,\r\n \"archiefstatus\": \"nog_te_archiveren\",\r\n \"archiefactiedatum\": null,\r\n \"opdrachtgevendeOrganisatie\": null,\r\n \"processobjectaard\": null,\r\n \"startdatumBewaartermijn\": null,\r\n \"processobject\": null\r\n}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "59fca861-e5bb-4f63-ba6f-56fc8c8fc2a4", + "type": "text/javascript", + "packages": {}, + "exec": [ + "pm.environment.set(\"created_zaak_url\", pm.response.json().url);" + ], + "_lastExecutionId": "9a2368e2-0316-438b-ada6-d8ac2b6eefd5" + } + }, + { + "listen": "prerequest", + "script": { + "id": "4d72a9e9-9820-4a0f-87e1-608a20b3c573", + "type": "text/javascript", + "packages": {}, + "exec": [], + "_lastExecutionId": "374e9018-7fe1-4e9c-89f3-b17a2a6e8a56" + } + } + ] + }, + { + "id": "9ec96a9e-1f62-4bd0-b0c6-0c15a2503a4b", + "name": "Add Resultaat to Zaak", + "request": { + "url": { + "path": [ + "resultaten" + ], + "host": [ + "{{zrc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n\t\"zaak\": \"{{created_zaak_url}}\",\n\t\"resultaattype\": \"{{resultaattype_url}}\"\n}" + } + }, + "response": [], + "event": [ + { + "listen": "prerequest", + "script": { + "id": "c630bc2c-edb4-422a-8363-7b4b116118f9", + "type": "text/javascript", + "exec": [ + "pm.environment.set(\"resultaattype\", pm.environment.get(\"zaaktype_resultaattypen\")[0]);" + ], + "_lastExecutionId": "5947db8c-4bd1-428d-b93d-98cbb4366b6b" + } + }, + { + "listen": "test", + "script": { + "id": "43e5010a-2231-443c-a32e-67dfbb19be83", + "type": "text/javascript", + "exec": [ + "pm.environment.set(\"zaak_resultaat_url\", pm.response.json().url);" + ], + "_lastExecutionId": "ea50f4c4-56b9-40e7-b1c1-62862b591534" + } + } + ] + }, + { + "id": "c8c15242-3181-4f07-9ce6-69e2b94d51cb", + "name": "Add Eindstatus to Zaak", + "request": { + "url": { + "path": [ + "statussen" + ], + "host": [ + "{{zrc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n\t\"zaak\": \"{{created_zaak_url}}\",\n\t\"statustype\": \"{{eindstatustype}}\",\n\t\"datumStatusGezet\": \"2018-04-20T13:37:00\"\n}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "7f4c2382-bbd5-44e5-a38c-53a6d14f739b", + "type": "text/javascript", + "exec": [ + "" + ], + "_lastExecutionId": "bfd90ef0-3f5e-41a0-9f4c-1922e186b29f" + } + }, + { + "listen": "prerequest", + "script": { + "id": "a01d171a-ab03-42a7-bea3-f9ec830e8b4a", + "type": "text/javascript", + "exec": [ + "" + ], + "_lastExecutionId": "5461a5b1-2213-4740-9ba1-439054029930" + } + } + ] + }, + { + "id": "3dbf74b7-86a8-4e10-bc44-bfd838032df2", + "name": "(zrc-008a) Zaak heropenen is mogelijk", + "request": { + "url": { + "path": [ + "statussen" + ], + "host": [ + "{{zrc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n\t\"zaak\": \"{{created_zaak_url}}\",\n\t\"statustype\": \"{{non_eindstatustype}}\",\n\t\"datumStatusGezet\": \"2018-04-21T13:37:00\"\n}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "db66f8fb-381b-4f97-8d52-883c5aba0aaa", + "type": "text/javascript", + "exec": [ + "pm.test(\"Non-eindstatus aan gesloten Zaak toevoegen geeft 201\", function() {", + " pm.response.to.have.status(201);", + " ", + " pm.expect(pm.response.json().statustype).to.be.equal(pm.environment.get(\"non_eindstatustype\"));", + "});" + ], + "_lastExecutionId": "206872b6-9d4a-49c5-9408-84a39e71be83" + } + } + ] + }, + { + "id": "2f947848-df6b-4742-9603-cf1db8e6dab1", + "name": "(zrc-008b) Zaak heropenen zet einddatum, archiefactiedatum en archiefnominatie op null", + "request": { + "url": { + "host": [ + "{{created_zaak_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Accept-Crs", + "value": "EPSG:4326" + } + ], + "method": "GET" + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "da11d6fc-c363-4b68-b87e-9070a4641b6b", + "type": "text/javascript", + "exec": [ + "pm.test(\"Zaak heropenen zet einddatum, archiefactiedatum en archiefnominatie op null\", function() {", + " var response = pm.response.json();", + " ", + " pm.expect(response.einddatum).to.be.equal(null);", + " pm.expect(response.archiefactiedatum).to.be.equal(null);", + " pm.expect(response.archiefnominatie).to.be.equal(null); ", + "});" + ], + "_lastExecutionId": "cf71eea5-e0ca-47aa-b236-8a6093b5a90a" + } + } + ] + }, + { + "id": "adf15bfc-2b21-4b62-8cab-09ad75e09c40", + "name": "Add Eindstatus to Zaak again", + "request": { + "url": { + "path": [ + "statussen" + ], + "host": [ + "{{zrc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n\t\"zaak\": \"{{created_zaak_url}}\",\n\t\"statustype\": \"{{eindstatustype}}\",\n\t\"datumStatusGezet\": \"2018-04-22T13:37:00\"\n}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "7a309cf7-3e25-4640-a318-bdcf2dc6ed00", + "type": "text/javascript", + "exec": [ + "" + ], + "_lastExecutionId": "bc636142-6253-4c19-9238-00cbcf9edf02" + } + }, + { + "listen": "prerequest", + "script": { + "id": "ca40f462-66c0-47dc-b265-c838ea0b0119", + "type": "text/javascript", + "exec": [ + "" + ], + "_lastExecutionId": "160f9129-e210-43e2-87ea-c4dbead8da5d" + } + } + ] + }, + { + "id": "7d5ab29f-3b09-47ca-a3b1-231533512ca9", + "name": "set restricted token Copy", + "request": { + "url": { + "path": [ + "catalogussen" + ], + "host": [ + "{{ztc_url}}" + ], + "query": [], + "variable": [] + }, + "method": "GET" + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "77a24419-fa94-4342-893d-79a98f382de3", + "type": "text/javascript", + "packages": {}, + "exec": [ + "pm.environment.set(\"jwt_token\", pm.environment.get(\"jwt-limited\"));", + " pm.environment.set(\"_original_client_id\", pm.environment.get(\"client_id\"));", + " pm.environment.set(\"_original_secret\", pm.environment.get(\"secret\"));", + " pm.environment.set(\"client_id\", pm.environment.get(\"client_id_limited\"));", + " pm.environment.set(\"secret\", pm.environment.get(\"secret_limited\"));", + " pm.environment.set(\"client_id\", pm.environment.get(\"client_id_limited\"));", + " pm.environment.set(\"secret\", pm.environment.get(\"secret_limited\"));" + ], + "_lastExecutionId": "f1c1749d-6de2-4a61-b7ca-2e56633f92c9" + } + } + ] + }, + { + "id": "3be2c55b-9e03-4e7e-a9b3-3f8b765e38f9", + "name": "(zrc-008c) Zaak heropenen zonder scope zaken.heropenen in Applicatie is onmogelijk", + "request": { + "url": { + "path": [ + "statussen" + ], + "host": [ + "{{zrc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n\t\"zaak\": \"{{created_zaak_url}}\",\n\t\"statustype\": \"{{non_eindstatustype}}\",\n\t\"datumStatusGezet\": \"2018-04-21T17:37:00\"\n}" + }, + "auth": { + "type": "bearer", + "bearer": [ + { + "type": "string", + "value": "{{jwt-zrc-006}}", + "key": "token" + } + ] + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "3bfcf579-a302-4751-9f53-a1d88403426f", + "type": "text/javascript", + "packages": {}, + "exec": [ + "pm.test(\"Zaak heropenen zonder scope zaken.heropenen in Applicatie geeft 403\", function() {", + " pm.response.to.have.status(403);", + " pm.expect(pm.response.json().code).to.be.equal(\"permission_denied\");", + "});" + ], + "_lastExecutionId": "bb13a9d3-b73f-4986-a9bf-ecfd380b8d7e" + } + } + ] + } + ], + "event": [ + { + "listen": "prerequest", + "script": { + "id": "2e580a44-e1bd-421a-9fa9-a04c1ec672fc", + "type": "text/javascript", + "exec": [ + "" + ], + "_lastExecutionId": "6853e2ee-19f4-4387-b082-ce475c9ad447" + } + }, + { + "listen": "test", + "script": { + "id": "96d945da-add3-4cd2-b4ae-5420315fde4f", + "type": "text/javascript", + "exec": [ + "" + ], + "_lastExecutionId": "12ff0b32-634f-4e7b-b9f5-c41a17ed83be" + } + } + ] + }, + { + "id": "b7854fdd-fb8a-4c72-8452-9ac13a4775aa", + "name": "zrc-009", + "item": [ + { + "id": "6903ff24-e2a9-4e54-b6c6-24f039da3ee4", + "name": "set full token Copy", + "request": { + "url": { + "path": [ + "catalogussen" + ], + "host": [ + "{{ztc_url}}" + ], + "query": [], + "variable": [] + }, + "method": "GET" + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "c6a42b8a-2892-490a-af9f-c98367026568", + "type": "text/javascript", + "packages": {}, + "exec": [ + "" + ], + "_lastExecutionId": "3297f2e3-2bae-426a-911d-40054d5f0d0d" + } + }, + { + "listen": "prerequest", + "script": { + "id": "702ae012-3bd4-4ce3-a7c1-f1f301bcb0ce", + "type": "text/javascript", + "packages": {}, + "exec": [ + "pm.environment.set(\"jwt_token\", pm.environment.get(\"jwt_full\"));", + " var origId = pm.environment.get(\"_original_client_id\");", + " var origSecret = pm.environment.get(\"_original_secret\");", + " if (origId) { pm.environment.set(\"client_id\", origId); }", + " if (origSecret) { pm.environment.set(\"secret\", origSecret); }", + " pm.environment.set(\"secret\", pm.environment.get(\"secret\") || \"procest-admin-secret-key-for-testing\");" + ], + "_lastExecutionId": "ac5177f3-5574-43bf-ab3e-38086652cdbc" + } + } + ] + }, + { + "id": "da3c8928-3aa3-4255-96c6-0e0757b75298", + "name": "(zrc-009a) Valideer expliciet gedefinieerde vertrouwelijkheidaanduiding", + "request": { + "url": { + "path": [ + "zaken" + ], + "host": [ + "{{zrc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Content-Crs", + "value": "EPSG:4326" + }, + { + "key": "Accept-Crs", + "value": "EPSG:4326" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\r\n\r\n \"bronorganisatie\": \"000000000\",\r\n \"omschrijving\": \"string\",\r\n \"toelichting\": \"string\",\r\n \"zaaktype\": \"{{zaaktype_url}}\",\r\n \"registratiedatum\": \"2019-04-09\",\r\n \"verantwoordelijkeOrganisatie\": \"000000000\",\r\n \"startdatum\": \"2019-04-09\",\r\n \"einddatum\": null,\r\n \"einddatumGepland\": \"2019-04-20\",\r\n \"uiterlijkeEinddatumAfdoening\": \"2019-04-09\",\r\n \"publicatiedatum\": \"2019-04-09\",\r\n \"communicatiekanaal\": \"\",\r\n \"productenOfDiensten\": [],\r\n \"vertrouwelijkheidaanduiding\": \"{{expliciete_vertrouwelijkheid}}\",\r\n \"betalingsindicatie\": \"geheel\",\r\n \"betalingsindicatieWeergave\": null,\r\n \"laatsteBetaaldatum\": \"2019-01-01T00:00:00Z\",\r\n \"zaakgeometrie\": {\r\n \"type\": \"Point\",\r\n \"coordinates\": [\r\n 53.0,\r\n 5.0\r\n ]\r\n },\r\n \"verlenging\": null,\r\n \"opschorting\": {\r\n \"indicatie\": true,\r\n \"reden\": \"string\"\r\n },\r\n \"selectielijstklasse\": \"https://referentielijsten.roxit.nl/api/v1/resultaten/0fe71ce3-b1e1-48eb-9070-be2756fc71b5\",\r\n \"hoofdzaak\": null,\r\n \"deelzaken\": [],\r\n \"relevanteAndereZaken\": [],\r\n \"eigenschappen\": [],\r\n \"rollen\": [],\r\n \"status\": null,\r\n \"zaakinformatieobjecten\": [],\r\n \"zaakobjecten\": [],\r\n \"resultaat\": null,\r\n \"kenmerken\": [],\r\n \"archiefnominatie\": null,\r\n \"archiefstatus\": \"nog_te_archiveren\",\r\n \"archiefactiedatum\": null,\r\n \"opdrachtgevendeOrganisatie\": null,\r\n \"processobjectaard\": null,\r\n \"startdatumBewaartermijn\": null,\r\n \"processobject\": null\r\n}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "2c6029f8-ab46-4b9c-b7f9-8e5268a4a481", + "type": "text/javascript", + "packages": {}, + "exec": [ + "pm.test(\"Expliciete vertrouwelijkheidaanduiding bij aanmaken Zaak moet toegekend worden aan Zaak\", function() {", + " var jsonData = pm.response.json();", + " pm.expect(jsonData.vertrouwelijkheidaanduiding).to.be.equal(pm.environment.get(\"expliciete_vertrouwelijkheid\"));", + " ", + " pm.environment.set(\"created_zaak_url\", jsonData.url);", + "});" + ], + "_lastExecutionId": "3152a8b1-ce8c-4f58-ab5e-17e16edde01f" + } + }, + { + "listen": "prerequest", + "script": { + "id": "1adbe3f6-c13e-4098-a1e7-f2f81a60379c", + "type": "text/javascript", + "packages": {}, + "exec": [ + "pm.environment.set(\"expliciete_vertrouwelijkheid\", \"openbaar\");" + ], + "_lastExecutionId": "eecc49bd-8fb1-48af-898a-bc4ebf9167bf" + } + } + ] + }, + { + "id": "ace7ec28-2606-4f39-bebf-868ea5e47a31", + "name": "(zrc-009b) Valideer expliciet gedefinieerde vertrouwelijkheidaanduiding (PUT)", + "request": { + "url": { + "host": [ + "{{created_zaak_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Content-Crs", + "value": "EPSG:4326" + }, + { + "key": "Accept-Crs", + "value": "EPSG:4326" + } + ], + "method": "PUT", + "body": { + "mode": "raw", + "raw": "{\r\n\r\n \"bronorganisatie\": \"000000000\",\r\n \"omschrijving\": \"string\",\r\n \"toelichting\": \"string\",\r\n \"zaaktype\": \"{{zaaktype_url}}\",\r\n \"registratiedatum\": \"2019-04-09\",\r\n \"verantwoordelijkeOrganisatie\": \"000000000\",\r\n \"startdatum\": \"2019-04-09\",\r\n \"einddatum\": null,\r\n \"einddatumGepland\": \"2019-04-20\",\r\n \"uiterlijkeEinddatumAfdoening\": \"2019-04-09\",\r\n \"publicatiedatum\": \"2019-04-09\",\r\n \"communicatiekanaal\": \"\",\r\n \"productenOfDiensten\": [],\r\n \"vertrouwelijkheidaanduiding\": \"{{expliciete_vertrouwelijkheid}}\",\r\n \"betalingsindicatie\": \"geheel\",\r\n \"betalingsindicatieWeergave\": null,\r\n \"laatsteBetaaldatum\": \"2019-01-01T00:00:00Z\",\r\n \"zaakgeometrie\": {\r\n \"type\": \"Point\",\r\n \"coordinates\": [\r\n 53.0,\r\n 5.0\r\n ]\r\n },\r\n \"verlenging\": null,\r\n \"opschorting\": {\r\n \"indicatie\": true,\r\n \"reden\": \"string\"\r\n },\r\n \"selectielijstklasse\": \"https://referentielijsten.roxit.nl/api/v1/resultaten/0fe71ce3-b1e1-48eb-9070-be2756fc71b5\",\r\n \"hoofdzaak\": null,\r\n \"deelzaken\": [],\r\n \"relevanteAndereZaken\": [],\r\n \"eigenschappen\": [],\r\n \"rollen\": [],\r\n \"status\": null,\r\n \"zaakinformatieobjecten\": [],\r\n \"zaakobjecten\": [],\r\n \"resultaat\": null,\r\n \"kenmerken\": [],\r\n \"archiefnominatie\": null,\r\n \"archiefstatus\": \"nog_te_archiveren\",\r\n \"archiefactiedatum\": null,\r\n \"opdrachtgevendeOrganisatie\": null,\r\n \"processobjectaard\": null,\r\n \"startdatumBewaartermijn\": null,\r\n \"processobject\": null\r\n}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "50984f6d-087a-4cba-8123-a328a2af0da3", + "type": "text/javascript", + "packages": {}, + "exec": [ + "pm.test(\"Expliciete vertrouwelijkheidaanduiding bij bijwerken Zaak moet toegekend worden aan Zaak\", function() {", + " pm.expect(pm.response.json().vertrouwelijkheidaanduiding).to.be.equal(pm.environment.get(\"expliciete_vertrouwelijkheid\"));", + "});" + ], + "_lastExecutionId": "9ac0272a-56fa-45ea-acf5-7dd824fc0217" + } + }, + { + "listen": "prerequest", + "script": { + "id": "2089927e-73e6-4cb3-8bc8-e11d8efb0553", + "type": "text/javascript", + "packages": {}, + "exec": [ + "" + ], + "_lastExecutionId": "48f0fb19-97e2-4be0-9481-5dcd61475f0c" + } + } + ] + }, + { + "id": "4c9e6a6e-f7ca-4077-b461-f84cde466908", + "name": "(zrc-009c) Valideer expliciet gedefinieerde vertrouwelijkheidaanduiding (PATCH)", + "request": { + "url": { + "host": [ + "{{created_zaak_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Content-Crs", + "value": "EPSG:4326" + }, + { + "key": "Accept-Crs", + "value": "EPSG:4326" + } + ], + "method": "PATCH", + "body": { + "mode": "raw", + "raw": "{\n\t\"vertrouwelijkheidaanduiding\": \"{{expliciete_vertrouwelijkheid}}\"\n}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "a144929e-6a0a-4b00-8e84-294d0c101824", + "type": "text/javascript", + "packages": {}, + "exec": [ + "pm.test(\"Expliciete vertrouwelijkheidaanduiding bij deels bijwerken Zaak moet toegekend worden aan Zaak\", function() {", + " pm.expect(pm.response.json().vertrouwelijkheidaanduiding).to.be.equal(pm.environment.get(\"expliciete_vertrouwelijkheid\"));", + "});", + "", + "", + "", + "" + ], + "_lastExecutionId": "52103c8a-e54c-4807-9cbe-b64b3b0420f9" + } + }, + { + "listen": "prerequest", + "script": { + "id": "69855d84-e120-45c3-b2df-660f4c6a3d1a", + "type": "text/javascript", + "packages": {}, + "exec": [ + "pm.environment.set(\"expliciete_vertrouwelijkheid\", \"vertrouwelijk\");" + ], + "_lastExecutionId": "e340efc7-befd-49ef-ba99-060af5efc449" + } + } + ] + }, + { + "id": "62b4368f-0377-4abb-8064-13b3e5d5d9e6", + "name": "(zrc-009d) Valideer vertrouwelijkheidaanduiding afgeleid uit Zaaktype", + "request": { + "url": { + "path": [ + "zaken" + ], + "host": [ + "{{zrc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Content-Crs", + "value": "EPSG:4326" + }, + { + "key": "Accept-Crs", + "value": "EPSG:4326" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\r\n\r\n \"bronorganisatie\": \"000000000\",\r\n \"omschrijving\": \"string\",\r\n \"toelichting\": \"string\",\r\n \"zaaktype\": \"{{zaaktype_url}}\",\r\n \"registratiedatum\": \"2019-04-09\",\r\n \"verantwoordelijkeOrganisatie\": \"000000000\",\r\n \"startdatum\": \"2019-04-09\",\r\n \"einddatum\": null,\r\n \"einddatumGepland\": \"2019-04-20\",\r\n \"uiterlijkeEinddatumAfdoening\": \"2019-04-09\",\r\n \"publicatiedatum\": \"2019-04-09\",\r\n \"communicatiekanaal\": \"\",\r\n \"productenOfDiensten\": [],\r\n \"vertrouwelijkheidaanduiding\": null,\r\n \"betalingsindicatie\": \"geheel\",\r\n \"betalingsindicatieWeergave\": null,\r\n \"laatsteBetaaldatum\": \"2019-01-01T00:00:00Z\",\r\n \"zaakgeometrie\": {\r\n \"type\": \"Point\",\r\n \"coordinates\": [\r\n 53.0,\r\n 5.0\r\n ]\r\n },\r\n \"verlenging\": null,\r\n \"opschorting\": {\r\n \"indicatie\": true,\r\n \"reden\": \"string\"\r\n },\r\n \"selectielijstklasse\": \"https://referentielijsten.roxit.nl/api/v1/resultaten/0fe71ce3-b1e1-48eb-9070-be2756fc71b5\",\r\n \"hoofdzaak\": null,\r\n \"deelzaken\": [],\r\n \"relevanteAndereZaken\": [],\r\n \"eigenschappen\": [],\r\n \"rollen\": [],\r\n \"status\": null,\r\n \"zaakinformatieobjecten\": [],\r\n \"zaakobjecten\": [],\r\n \"resultaat\": null,\r\n \"kenmerken\": [],\r\n \"archiefnominatie\": null,\r\n \"archiefstatus\": \"nog_te_archiveren\",\r\n \"archiefactiedatum\": null,\r\n \"opdrachtgevendeOrganisatie\": null,\r\n \"processobjectaard\": null,\r\n \"startdatumBewaartermijn\": null,\r\n \"processobject\": null\r\n}" + } + }, + "response": [], + "event": [ + { + "listen": "prerequest", + "script": { + "id": "68f765eb-bfbf-455f-93c6-4f8a4a048210", + "type": "text/javascript", + "packages": {}, + "exec": [ + "" + ], + "_lastExecutionId": "e29764c6-318c-41e1-8f0b-4349f9c71c7b" + } + }, + { + "listen": "test", + "script": { + "id": "05b18697-172a-4ca0-91a1-6c24f2d1c137", + "type": "text/javascript", + "packages": {}, + "exec": [ + "pm.test(\"Vertrouwelijkheidaanduiding bij aanmaken Zaak afgeleid uit Zaaktype indien niet meegegeven\", function() {", + " pm.expect(pm.response.json().vertrouwelijkheidaanduiding).to.be.equal(pm.environment.get(\"zaaktype_vertrouwelijkheid\"));", + "});", + "", + "" + ], + "_lastExecutionId": "1de9cbc6-462f-46d6-839d-8304d313378a" + } + } + ] + } + ], + "event": [ + { + "listen": "prerequest", + "script": { + "id": "4927917f-83df-4296-a785-9524cb44319d", + "type": "text/javascript", + "exec": [ + "" + ], + "_lastExecutionId": "a47a4cd7-99e3-4cb4-92ec-8aa6d00c70e0" + } + }, + { + "listen": "test", + "script": { + "id": "d2637102-3847-48fd-96af-10d77236fcd7", + "type": "text/javascript", + "exec": [ + "" + ], + "_lastExecutionId": "a98e1f34-3feb-47e3-90ed-7e1024539680" + } + } + ] + }, + { + "id": "45599dd2-3c1d-48ff-a0e1-0aedc5e2bc5d", + "name": "zrc-010", + "item": [ + { + "id": "4ee8b7d4-c335-4f56-9405-2c7de1b9a658", + "name": "(zrc-010a) Valideren communicatiekanaal url bij aanmaken Zaak", + "request": { + "url": { + "path": [ + "zaken" + ], + "host": [ + "{{zrc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Accept-Crs", + "value": "EPSG:4326" + }, + { + "key": "Content-Crs", + "value": "EPSG:4326" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\r\n \"url\": \"https://zaken.spt-rx-services.nl/api/v1/zaken/cba40feb-2b38-4490-b12d-84a39e8df361\",\r\n \"uuid\": \"cba40feb-2b38-4490-b12d-84a39e8df361\",\r\n \"bronorganisatie\": \"000000000\",\r\n \"omschrijving\": \"string\",\r\n \"toelichting\": \"string\",\r\n \"zaaktype\": \"{{zaaktype_url}}\",\r\n \"registratiedatum\": \"2019-04-09\",\r\n \"verantwoordelijkeOrganisatie\": \"000000000\",\r\n \"startdatum\": \"2019-04-09\",\r\n \"einddatum\": null,\r\n \"einddatumGepland\": \"2019-04-20\",\r\n \"uiterlijkeEinddatumAfdoening\": \"2019-04-09\",\r\n \"publicatiedatum\": \"2019-04-09\",\r\n \"communicatiekanaal\": \"https://referentielijsten.roxit.nl/api/v1/communicatiekanalen/2b757868-45c2-42ca-b637-b63ddc87beb4xxx\",\r\n \"productenOfDiensten\": [],\r\n \"vertrouwelijkheidaanduiding\": \"geheim\",\r\n \"betalingsindicatie\": \"geheel\",\r\n \"betalingsindicatieWeergave\": null,\r\n \"laatsteBetaaldatum\": \"2019-01-01T00:00:00Z\",\r\n \"zaakgeometrie\": {\r\n \"type\": \"Point\",\r\n \"coordinates\": [\r\n 53.0,\r\n 5.0\r\n ]\r\n },\r\n \"verlenging\": null,\r\n \"opschorting\": {\r\n \"indicatie\": true,\r\n \"reden\": \"string\"\r\n },\r\n \"selectielijstklasse\": \"https://referentielijsten.roxit.nl/api/v1/resultaten/0fe71ce3-b1e1-48eb-9070-be2756fc71b5\",\r\n \"hoofdzaak\": null,\r\n \"deelzaken\": [],\r\n \"relevanteAndereZaken\": [],\r\n \"eigenschappen\": [],\r\n \"rollen\": [],\r\n \"status\": null,\r\n \"zaakinformatieobjecten\": [],\r\n \"zaakobjecten\": [],\r\n \"resultaat\": null,\r\n \"kenmerken\": [],\r\n \"archiefnominatie\": null,\r\n \"archiefstatus\": \"nog_te_archiveren\",\r\n \"archiefactiedatum\": null,\r\n \"opdrachtgevendeOrganisatie\": null,\r\n \"processobjectaard\": null,\r\n \"startdatumBewaartermijn\": null,\r\n \"processobject\": null\r\n}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "e04ae5fe-d9db-464d-9019-d2278d911255", + "type": "text/javascript", + "packages": {}, + "exec": [ + "pm.test(\"Zaak aanmaken met ongeldige communicatiekanaal url geeft 400\", function() {", + " pm.response.to.have.status(400);", + " ", + " // Verify that the 400 is returned for the correct reason", + " var error = pm.response.json()[\"invalidParams\"][0];", + " pm.expect(error.name).to.be.equal(\"communicatiekanaal\");", + " pm.expect(error.code).to.be.equal(\"bad-url\");", + "});", + "", + "// If the test failed and the Zaak was created, delete it", + "if(pm.response.code == 201) {", + " pm.environment.set(\"created_zaak_url\", pm.response.json().url);", + "", + "}" + ], + "_lastExecutionId": "24b2ad37-1960-47a1-9800-49a21b8f20e4" + } + }, + { + "listen": "prerequest", + "script": { + "id": "dc4c5af0-b881-4eba-9d3e-b076e3a1c3c7", + "type": "text/javascript", + "packages": {}, + "exec": [ + "" + ], + "_lastExecutionId": "bb62b746-ccb4-4790-94bf-113a48ff0040" + } + } + ] + }, + { + "id": "e0a80c95-0d27-4478-8cef-26bae99cec9e", + "name": "(zrc-010b) Valideren communicatiekanaal url bij bijwerken Zaak", + "request": { + "url": { + "host": [ + "{{zaak_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Accept-Crs", + "value": "EPSG:4326" + }, + { + "key": "Content-Crs", + "value": "EPSG:4326" + } + ], + "method": "PUT", + "body": { + "mode": "raw", + "raw": "{\r\n \"url\": \"https://zaken.spt-rx-services.nl/api/v1/zaken/cba40feb-2b38-4490-b12d-84a39e8df361\",\r\n \"uuid\": \"cba40feb-2b38-4490-b12d-84a39e8df361\",\r\n \"bronorganisatie\": \"000000000\",\r\n \"omschrijving\": \"string\",\r\n \"toelichting\": \"string\",\r\n \"zaaktype\": \"{{zaaktype_url}}\",\r\n \"registratiedatum\": \"2019-04-09\",\r\n \"verantwoordelijkeOrganisatie\": \"000000000\",\r\n \"startdatum\": \"2019-04-09\",\r\n \"einddatum\": null,\r\n \"einddatumGepland\": \"2019-04-20\",\r\n \"uiterlijkeEinddatumAfdoening\": \"2019-04-09\",\r\n \"publicatiedatum\": \"2019-04-09\",\r\n \"communicatiekanaal\": \"https://referentielijsten.roxit.nl/api/v1/communicatiekanalen/2b757868-45c2-42ca-b637-b63ddc87beb4xxx\",\r\n \"productenOfDiensten\": [],\r\n \"vertrouwelijkheidaanduiding\": \"geheim\",\r\n \"betalingsindicatie\": \"geheel\",\r\n \"betalingsindicatieWeergave\": null,\r\n \"laatsteBetaaldatum\": \"2019-01-01T00:00:00Z\",\r\n \"zaakgeometrie\": {\r\n \"type\": \"Point\",\r\n \"coordinates\": [\r\n 53.0,\r\n 5.0\r\n ]\r\n },\r\n \"verlenging\": null,\r\n \"opschorting\": {\r\n \"indicatie\": true,\r\n \"reden\": \"string\"\r\n },\r\n \"selectielijstklasse\": \"https://referentielijsten.roxit.nl/api/v1/resultaten/0fe71ce3-b1e1-48eb-9070-be2756fc71b5xxx\",\r\n \"hoofdzaak\": null,\r\n \"deelzaken\": [],\r\n \"relevanteAndereZaken\": [],\r\n \"eigenschappen\": [],\r\n \"rollen\": [],\r\n \"status\": null,\r\n \"zaakinformatieobjecten\": [],\r\n \"zaakobjecten\": [],\r\n \"resultaat\": null,\r\n \"kenmerken\": [],\r\n \"archiefnominatie\": null,\r\n \"archiefstatus\": \"nog_te_archiveren\",\r\n \"archiefactiedatum\": null,\r\n \"opdrachtgevendeOrganisatie\": null,\r\n \"processobjectaard\": null,\r\n \"startdatumBewaartermijn\": null,\r\n \"processobject\": null\r\n}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "4f30a0fb-9afa-4aed-8916-0497d562fa1d", + "type": "text/javascript", + "packages": {}, + "exec": [ + "pm.test(\"Zaak bijwerken met ongeldige communicatiekanaal url geeft 400\", function() {", + " pm.response.to.have.status(400);", + " ", + " // Verify that the 400 is returned for the correct reason", + " var error = pm.response.json()[\"invalidParams\"][0];", + " pm.expect(error.name).to.be.equal(\"communicatiekanaal\");", + " pm.expect(error.code).to.be.equal(\"bad-url\");", + "});" + ], + "_lastExecutionId": "d20c24aa-4b65-4cb0-b2ae-67fb7b2ba61b" + } + }, + { + "listen": "prerequest", + "script": { + "id": "0cdd857e-bed0-471d-b9ba-7171dc61422c", + "type": "text/javascript", + "packages": {}, + "exec": [ + "" + ], + "_lastExecutionId": "9429b6ab-de4e-40b9-a513-33afacbb0f75" + } + } + ] + }, + { + "id": "9373e246-24f2-4b65-9ced-9a474f89031a", + "name": "(zrc-010c) Valideren communicatiekanaal url bij deels bijwerken Zaak", + "request": { + "url": { + "host": [ + "{{zaak_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Accept-Crs", + "value": "EPSG:4326" + }, + { + "key": "Content-Crs", + "value": "EPSG:4326" + } + ], + "method": "PATCH", + "body": { + "mode": "raw", + "raw": "{\n\t\"communicatiekanaal\": \"https://referentielijsten.roxit.nl/api/v1/communicatiekanalen/2b757868-45c2-42ca-b637-b63ddc87beb4zzz\"\n}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "2fd2c97d-29da-4774-8706-28216e7771b3", + "type": "text/javascript", + "packages": {}, + "exec": [ + "pm.test(\"Zaak deels bijwerken met ongeldige communicatiekanaal url geeft 400\", function() {", + " pm.response.to.have.status(400);", + " ", + " // Verify that the 400 is returned for the correct reason", + " var error = pm.response.json()[\"invalidParams\"][0];", + " pm.expect(error.name).to.be.equal(\"communicatiekanaal\");", + " pm.expect(error.code).to.be.equal(\"bad-url\");", + "});" + ], + "_lastExecutionId": "a7106389-b20c-4592-a67e-fbe46a76b01c" + } + }, + { + "listen": "prerequest", + "script": { + "id": "f64ba265-480f-454a-a0d2-5da841bc5fe7", + "type": "text/javascript", + "packages": {}, + "exec": [ + "" + ], + "_lastExecutionId": "cf481714-c2be-4244-ae6d-a93bf6571337" + } + } + ] + }, + { + "id": "5583f4ee-a557-46fa-91d7-cba15240a443", + "name": "(zrc-010d) Valideren communicatiekanaal-resource bij aanmaken Zaak", + "request": { + "url": { + "path": [ + "zaken" + ], + "host": [ + "{{zrc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Content-Crs", + "value": "EPSG:4326" + }, + { + "key": "Accept-Crs", + "value": "EPSG:4326" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\r\n \"url\": \"https://zaken.spt-rx-services.nl/api/v1/zaken/cba40feb-2b38-4490-b12d-84a39e8df361\",\r\n \"uuid\": \"cba40feb-2b38-4490-b12d-84a39e8df361\",\r\n \"bronorganisatie\": \"000000000\",\r\n \"omschrijving\": \"string\",\r\n \"toelichting\": \"string\",\r\n \"zaaktype\": \"{{zaaktype_url}}\",\r\n \"registratiedatum\": \"2019-04-09\",\r\n \"verantwoordelijkeOrganisatie\": \"000000000\",\r\n \"startdatum\": \"2019-04-09\",\r\n \"einddatum\": null,\r\n \"einddatumGepland\": \"2019-04-20\",\r\n \"uiterlijkeEinddatumAfdoening\": \"2019-04-09\",\r\n \"publicatiedatum\": \"2019-04-09\",\r\n \"communicatiekanaal\": \"https://referentielijsten.roxit.nl/api/v1/communicatiekanalen\",\r\n \"productenOfDiensten\": [],\r\n \"vertrouwelijkheidaanduiding\": \"geheim\",\r\n \"betalingsindicatie\": \"geheel\",\r\n \"betalingsindicatieWeergave\": null,\r\n \"laatsteBetaaldatum\": \"2019-01-01T00:00:00Z\",\r\n \"zaakgeometrie\": {\r\n \"type\": \"Point\",\r\n \"coordinates\": [\r\n 53.0,\r\n 5.0\r\n ]\r\n },\r\n \"verlenging\": null,\r\n \"opschorting\": {\r\n \"indicatie\": true,\r\n \"reden\": \"string\"\r\n },\r\n \"selectielijstklasse\": \"https://referentielijsten.roxit.nl/api/v1/resultaten/0fe71ce3-b1e1-48eb-9070-be2756fc71b5\",\r\n \"hoofdzaak\": null,\r\n \"deelzaken\": [],\r\n \"relevanteAndereZaken\": [],\r\n \"eigenschappen\": [],\r\n \"rollen\": [],\r\n \"status\": null,\r\n \"zaakinformatieobjecten\": [],\r\n \"zaakobjecten\": [],\r\n \"resultaat\": null,\r\n \"kenmerken\": [],\r\n \"archiefnominatie\": null,\r\n \"archiefstatus\": \"nog_te_archiveren\",\r\n \"archiefactiedatum\": null,\r\n \"opdrachtgevendeOrganisatie\": null,\r\n \"processobjectaard\": null,\r\n \"startdatumBewaartermijn\": null,\r\n \"processobject\": null\r\n}" + } + }, + "response": [], + "event": [ + { + "listen": "prerequest", + "script": { + "id": "7128bd00-066c-407d-ab17-2edea9ac1d7d", + "type": "text/javascript", + "packages": {}, + "exec": [ + "" + ], + "_lastExecutionId": "e27b3534-350d-4dc4-a66b-4ced780df2a5" + } + }, + { + "listen": "test", + "script": { + "id": "541186bf-d21d-4eac-90dc-4bfa0c590bdc", + "type": "text/javascript", + "packages": {}, + "exec": [ + "pm.test(\"Zaak aanmaken met communicatiekanaal url die niet wijst naar Communicatiekanaal-resource geeft 400\", function() {", + " pm.response.to.have.status(400);", + " ", + " // Verify that the 400 is returned for the correct reason", + " var error = pm.response.json()[\"invalidParams\"][0];", + " pm.expect(error.name).to.be.equal(\"communicatiekanaal\");", + " pm.expect(error.code).to.be.equal(\"invalid-resource\");", + "});", + "", + "// If the test failed and the Zaak was created, delete it", + "if(pm.response.code == 201) {", + " pm.environment.set(\"created_zaak_url\", pm.response.json().url);", + "", + "}" + ], + "_lastExecutionId": "df980f9d-29a8-4b6a-a83b-d739c1fac31c" + } + } + ] + }, + { + "id": "160f0794-08d5-4761-9c09-473b86d76f0c", + "name": "(zrc-010e) Valideren communicatiekanaal-resource bij bijwerken Zaak", + "request": { + "url": { + "host": [ + "{{zaak_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Accept-Crs", + "value": "EPSG:4326" + }, + { + "key": "Content-Crs", + "value": "EPSG:4326" + } + ], + "method": "PUT", + "body": { + "mode": "raw", + "raw": "{\r\n \"url\": \"https://zaken.spt-rx-services.nl/api/v1/zaken/cba40feb-2b38-4490-b12d-84a39e8df361\",\r\n \"uuid\": \"cba40feb-2b38-4490-b12d-84a39e8df361\",\r\n \"bronorganisatie\": \"000000000\",\r\n \"omschrijving\": \"string\",\r\n \"toelichting\": \"string\",\r\n \"zaaktype\": \"{{zaaktype_url}}\",\r\n \"registratiedatum\": \"2019-04-09\",\r\n \"verantwoordelijkeOrganisatie\": \"000000000\",\r\n \"startdatum\": \"2019-04-09\",\r\n \"einddatum\": null,\r\n \"einddatumGepland\": \"2019-04-20\",\r\n \"uiterlijkeEinddatumAfdoening\": \"2019-04-09\",\r\n \"publicatiedatum\": \"2019-04-09\",\r\n \"communicatiekanaal\": \"https://referentielijsten.roxit.nl/api/v1/communicatiekanalen\",\r\n \"productenOfDiensten\": [],\r\n \"vertrouwelijkheidaanduiding\": \"geheim\",\r\n \"betalingsindicatie\": \"geheel\",\r\n \"betalingsindicatieWeergave\": null,\r\n \"laatsteBetaaldatum\": \"2019-01-01T00:00:00Z\",\r\n \"zaakgeometrie\": {\r\n \"type\": \"Point\",\r\n \"coordinates\": [\r\n 53.0,\r\n 5.0\r\n ]\r\n },\r\n \"verlenging\": null,\r\n \"opschorting\": {\r\n \"indicatie\": true,\r\n \"reden\": \"string\"\r\n },\r\n \"selectielijstklasse\": \"https://referentielijsten.roxit.nl/api/v1/resultaten/0fe71ce3-b1e1-48eb-9070-be2756fc71b5\",\r\n \"hoofdzaak\": null,\r\n \"deelzaken\": [],\r\n \"relevanteAndereZaken\": [],\r\n \"eigenschappen\": [],\r\n \"rollen\": [],\r\n \"status\": null,\r\n \"zaakinformatieobjecten\": [],\r\n \"zaakobjecten\": [],\r\n \"resultaat\": null,\r\n \"kenmerken\": [],\r\n \"archiefnominatie\": null,\r\n \"archiefstatus\": \"nog_te_archiveren\",\r\n \"archiefactiedatum\": null,\r\n \"opdrachtgevendeOrganisatie\": null,\r\n \"processobjectaard\": null,\r\n \"startdatumBewaartermijn\": null,\r\n \"processobject\": null\r\n}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "8cd74f16-0d4d-47e9-9f6d-0fe8b08d3953", + "type": "text/javascript", + "packages": {}, + "exec": [ + "pm.test(\"Zaak bijwerken met communicatiekanaal url die niet wijst naar Communicatiekanaal-resource geeft 400\", function() {", + " pm.response.to.have.status(400);", + " ", + " // Verify that the 400 is returned for the correct reason", + " var error = pm.response.json()[\"invalidParams\"][0];", + " pm.expect(error.name).to.be.equal(\"communicatiekanaal\");", + " pm.expect(error.code).to.be.equal(\"invalid-resource\");", + "});" + ], + "_lastExecutionId": "816eb9a3-1b34-4844-8c93-cff02d101955" + } + }, + { + "listen": "prerequest", + "script": { + "id": "9716debf-2c7b-4c3e-a430-bd4e191ce89a", + "type": "text/javascript", + "packages": {}, + "exec": [ + "" + ], + "_lastExecutionId": "08c17793-5099-491a-b5d2-106486c9f5c7" + } + } + ] + }, + { + "id": "353996ba-68fd-4acf-82d0-a5e518c4315d", + "name": "(zrc-010f) Valideren communicatiekanaal-resource bij deels bijwerken Zaak", + "request": { + "url": { + "host": [ + "{{zaak_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Accept-Crs", + "value": "EPSG:4326" + }, + { + "key": "Content-Crs", + "value": "EPSG:4326" + } + ], + "method": "PATCH", + "body": { + "mode": "raw", + "raw": "{\n\t\"communicatiekanaal\": \"https://referentielijsten.roxit.nl/api/v1/communicatiekanalen\"\n}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "1f9c4e3d-08c2-43e0-a9bc-9afa020e2623", + "type": "text/javascript", + "packages": {}, + "exec": [ + "pm.test(\"Zaak deels bijwerken met communicatiekanaal url die niet wijst naar Communicatiekanaal-resource geeft 400\", function() {", + " pm.response.to.have.status(400);", + " ", + " // Verify that the 400 is returned for the correct reason", + " var error = pm.response.json()[\"invalidParams\"][0];", + " pm.expect(error.name).to.be.equal(\"communicatiekanaal\");", + " pm.expect(error.code).to.be.equal(\"invalid-resource\");", + "});" + ], + "_lastExecutionId": "311a7dd3-cadb-4ee5-9d67-472e0418a0e2" + } + }, + { + "listen": "prerequest", + "script": { + "id": "11554ce4-7d0b-4811-b699-4d58f7b72a66", + "type": "text/javascript", + "packages": {}, + "exec": [ + "" + ], + "_lastExecutionId": "a9ce47a5-f323-4133-8b45-ff22ee0f9886" + } + } + ] + }, + { + "id": "393fc806-b3ec-40dd-a147-7dc6806e6a40", + "name": "(zrc-010g) Zaak aanmaken met valide communicatiekanaal is mogelijk", + "request": { + "url": { + "path": [ + "zaken" + ], + "host": [ + "{{zrc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Content-Crs", + "value": "EPSG:4326" + }, + { + "key": "Accept-Crs", + "value": "EPSG:4326" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\r\n \"url\": \"https://zaken.spt-rx-services.nl/api/v1/zaken/cba40feb-2b38-4490-b12d-84a39e8df361\",\r\n \"uuid\": \"cba40feb-2b38-4490-b12d-84a39e8df361\",\r\n \"bronorganisatie\": \"000000000\",\r\n \"omschrijving\": \"string\",\r\n \"toelichting\": \"string\",\r\n \"zaaktype\": \"{{zaaktype_url}}\",\r\n \"registratiedatum\": \"2019-04-09\",\r\n \"verantwoordelijkeOrganisatie\": \"000000000\",\r\n \"startdatum\": \"2019-04-09\",\r\n \"einddatum\": null,\r\n \"einddatumGepland\": \"2019-04-20\",\r\n \"uiterlijkeEinddatumAfdoening\": \"2019-04-09\",\r\n \"publicatiedatum\": \"2019-04-09\",\r\n \"communicatiekanaal\": \"https://referentielijsten.roxit.nl/api/v1/communicatiekanalen/2b757868-45c2-42ca-b637-b63ddc87beb4\",\r\n \"productenOfDiensten\": [],\r\n \"vertrouwelijkheidaanduiding\": \"geheim\",\r\n \"betalingsindicatie\": \"geheel\",\r\n \"betalingsindicatieWeergave\": null,\r\n \"laatsteBetaaldatum\": \"2019-01-01T00:00:00Z\",\r\n \"zaakgeometrie\": {\r\n \"type\": \"Point\",\r\n \"coordinates\": [\r\n 53.0,\r\n 5.0\r\n ]\r\n },\r\n \"verlenging\": null,\r\n \"opschorting\": {\r\n \"indicatie\": true,\r\n \"reden\": \"string\"\r\n },\r\n \"selectielijstklasse\": \"https://referentielijsten.roxit.nl/api/v1/resultaten/0fe71ce3-b1e1-48eb-9070-be2756fc71b5\",\r\n \"hoofdzaak\": null,\r\n \"deelzaken\": [],\r\n \"relevanteAndereZaken\": [],\r\n \"eigenschappen\": [],\r\n \"rollen\": [],\r\n \"status\": null,\r\n \"zaakinformatieobjecten\": [],\r\n \"zaakobjecten\": [],\r\n \"resultaat\": null,\r\n \"kenmerken\": [],\r\n \"archiefnominatie\": null,\r\n \"archiefstatus\": \"nog_te_archiveren\",\r\n \"archiefactiedatum\": null,\r\n \"opdrachtgevendeOrganisatie\": null,\r\n \"processobjectaard\": null,\r\n \"startdatumBewaartermijn\": null,\r\n \"processobject\": null\r\n}" + } + }, + "response": [], + "event": [ + { + "listen": "prerequest", + "script": { + "id": "f5f7e97a-f830-4973-aa85-a887ff19136c", + "type": "text/javascript", + "packages": {}, + "exec": [ + "" + ], + "_lastExecutionId": "e7ddf2d8-4394-442a-b2c7-62d60604ae0f" + } + }, + { + "listen": "test", + "script": { + "id": "86c5f237-1790-481d-9461-4e5eacfea8a6", + "type": "text/javascript", + "packages": {}, + "exec": [ + "if (pm.response.code==201 ){", + " pm.environment.set(\"created_zaak_url\", pm.response.json().url);", + "}", + "pm.test(\"Zaak aanmaken met valide communicatiekanaal geeft 201\", function() {", + " pm.response.to.have.status(201);", + " ", + "});" + ], + "_lastExecutionId": "6b7fdf09-0ae9-42e4-9c6e-81a713b2a3d5" + } + } + ] + }, + { + "id": "110537d0-c922-41c4-9f48-a8bc0490d651", + "name": "(zrc-010h) Zaak bijwerken met valide communicatiekanaal is mogelijk", + "request": { + "url": { + "host": [ + "{{created_zaak_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Content-Crs", + "value": "EPSG:4326" + }, + { + "key": "Accept-Crs", + "value": "EPSG:4326" + } + ], + "method": "PUT", + "body": { + "mode": "raw", + "raw": "{\r\n\r\n \"bronorganisatie\": \"000000000\",\r\n \"omschrijving\": \"string 2\",\r\n \"toelichting\": \"string\",\r\n \"zaaktype\": \"{{zaaktype_url}}\",\r\n \"registratiedatum\": \"2019-04-09\",\r\n \"verantwoordelijkeOrganisatie\": \"000000000\",\r\n \"startdatum\": \"2019-04-09\",\r\n \"einddatum\": null,\r\n \"einddatumGepland\": \"2019-04-20\",\r\n \"uiterlijkeEinddatumAfdoening\": \"2019-04-09\",\r\n \"publicatiedatum\": \"2019-04-09\",\r\n \"communicatiekanaal\": \"https://referentielijsten.roxit.nl/api/v1/communicatiekanalen/2b757868-45c2-42ca-b637-b63ddc87beb4\",\r\n \"productenOfDiensten\": [],\r\n \"vertrouwelijkheidaanduiding\": \"geheim\",\r\n \"betalingsindicatie\": \"geheel\",\r\n \"betalingsindicatieWeergave\": null,\r\n \"laatsteBetaaldatum\": \"2019-01-01T00:00:00Z\",\r\n \"zaakgeometrie\": {\r\n \"type\": \"Point\",\r\n \"coordinates\": [\r\n 53.0,\r\n 5.0\r\n ]\r\n },\r\n \"verlenging\": null,\r\n \"opschorting\": {\r\n \"indicatie\": true,\r\n \"reden\": \"string\"\r\n },\r\n \"selectielijstklasse\": \"https://referentielijsten.roxit.nl/api/v1/resultaten/0fe71ce3-b1e1-48eb-9070-be2756fc71b5\",\r\n \"hoofdzaak\": null,\r\n \"deelzaken\": [],\r\n \"relevanteAndereZaken\": [],\r\n \"eigenschappen\": [],\r\n \"rollen\": [],\r\n \"status\": null,\r\n \"zaakinformatieobjecten\": [],\r\n \"zaakobjecten\": [],\r\n \"resultaat\": null,\r\n \"kenmerken\": [],\r\n \"archiefnominatie\": null,\r\n \"archiefstatus\": \"nog_te_archiveren\",\r\n \"archiefactiedatum\": null,\r\n \"opdrachtgevendeOrganisatie\": null,\r\n \"processobjectaard\": null,\r\n \"startdatumBewaartermijn\": null,\r\n \"processobject\": null\r\n}" + } + }, + "response": [], + "event": [ + { + "listen": "prerequest", + "script": { + "id": "1a81485e-e7b7-46f9-be4b-3ab10688ace2", + "type": "text/javascript", + "packages": {}, + "exec": [ + "" + ], + "_lastExecutionId": "b60e76d1-e15a-4e7b-a477-d3675a8e2e27" + } + }, + { + "listen": "test", + "script": { + "id": "436ee60d-9324-4c09-98af-1b8ea178c1b7", + "type": "text/javascript", + "packages": {}, + "exec": [ + "pm.test(\"Zaak bijwerken met valide communicatiekanaal geeft 200\", function() {", + " pm.response.to.have.status(200);", + "});" + ], + "_lastExecutionId": "60532a7c-1035-46ee-8584-27f568020ae6" + } + } + ] + }, + { + "id": "1eabb971-bb40-4d92-bdb3-8ed934f634cf", + "name": "(zrc-010i) Zaak deels bijwerken met valide communicatiekanaal is mogelijk", + "request": { + "url": { + "host": [ + "{{created_zaak_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Content-Crs", + "value": "EPSG:4326" + }, + { + "key": "Accept-Crs", + "value": "EPSG:4326" + } + ], + "method": "PATCH", + "body": { + "mode": "raw", + "raw": "{\n\t\"communicatiekanaal\": \"https://referentielijsten.roxit.nl/api/v1/communicatiekanalen/2b757868-45c2-42ca-b637-b63ddc87beb4\"\n}" + } + }, + "response": [], + "event": [ + { + "listen": "prerequest", + "script": { + "id": "03afa422-7579-42e1-a263-35d8f52db0c7", + "type": "text/javascript", + "packages": {}, + "exec": [ + "" + ], + "_lastExecutionId": "5a79c73a-5e96-454f-90b1-9a9c0e3e83fa" + } + }, + { + "listen": "test", + "script": { + "id": "21326a38-b71a-4170-8342-1a0f3b2c3d58", + "type": "text/javascript", + "packages": {}, + "exec": [ + "pm.test(\"Zaak deels bijwerken met valide communicatiekanaal geeft 200\", function() {", + " pm.response.to.have.status(200);", + "});", + "", + "if(pm.environment.get(\"created_zaak_url\")) {", + " ", + "}" + ], + "_lastExecutionId": "dc76fd11-e171-4914-9e6c-d3b7c0e4c01e" + } + } + ] + } + ], + "event": [ + { + "listen": "prerequest", + "script": { + "id": "44403594-ad6e-422a-8b9a-1d0ac8a573fb", + "type": "text/javascript", + "exec": [ + "" + ], + "_lastExecutionId": "2d4e9afd-4920-4c69-9eeb-b1adc9c70d9c" + } + }, + { + "listen": "test", + "script": { + "id": "e5e11895-d68e-4ee5-8821-a9fa1f68d9a4", + "type": "text/javascript", + "exec": [ + "" + ], + "_lastExecutionId": "815286e5-3ddb-4efe-bcd4-a6db4b2b6da1" + } + } + ] + }, + { + "id": "b1d28add-7e4c-45a9-bf24-2af3bd2d3451", + "name": "zrc-011", + "item": [ + { + "id": "a30ff8a3-f0e4-4965-8c70-f00123907d0b", + "name": "(zrc-011a) Zaak aanmaken met ongeldige url in relevanteAndereZaken is onmogelijk", + "request": { + "url": { + "path": [ + "zaken" + ], + "host": [ + "{{zrc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Content-Crs", + "value": "EPSG:4326" + }, + { + "key": "Accept-Crs", + "value": "EPSG:4326" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\r\n \"bronorganisatie\": \"000000000\",\r\n \"omschrijving\": \"string\",\r\n \"toelichting\": \"string\",\r\n \"zaaktype\": \"{{zaaktype_url}}\",\r\n \"registratiedatum\": \"2019-04-09\",\r\n \"verantwoordelijkeOrganisatie\": \"000000000\",\r\n \"startdatum\": \"2019-04-09\",\r\n \"einddatum\": null,\r\n \"einddatumGepland\": \"2019-04-20\",\r\n \"uiterlijkeEinddatumAfdoening\": \"2019-04-09\",\r\n \"publicatiedatum\": \"2019-04-09\",\r\n \"communicatiekanaal\": \"\",\r\n \"productenOfDiensten\": [],\r\n \"vertrouwelijkheidaanduiding\": \"geheim\",\r\n \"betalingsindicatie\": \"geheel\",\r\n \"betalingsindicatieWeergave\": null,\r\n \"laatsteBetaaldatum\": \"2019-01-01T00:00:00Z\",\r\n \"zaakgeometrie\": {\r\n \"type\": \"Point\",\r\n \"coordinates\": [\r\n 53.0,\r\n 5.0\r\n ]\r\n },\r\n \"verlenging\": null,\r\n \"opschorting\": {\r\n \"indicatie\": true,\r\n \"reden\": \"string\"\r\n },\r\n \"selectielijstklasse\": \"https://referentielijsten.roxit.nl/api/v1/resultaten/0fe71ce3-b1e1-48eb-9070-be2756fc71b5\",\r\n \"hoofdzaak\": null,\r\n \"deelzaken\": [],\r\n \"relevanteAndereZaken\": [\r\n {\r\n \"url\": \"https://zaken-api.test.vng.cloud/api/v1/zaken/x12\",\r\n \"aardRelatie\": \"vervolg\"\r\n }\r\n ],\r\n \"eigenschappen\": [],\r\n \"rollen\": [],\r\n \"status\": null,\r\n \"zaakinformatieobjecten\": [],\r\n \"zaakobjecten\": [],\r\n \"resultaat\": null,\r\n \"kenmerken\": [],\r\n \"archiefnominatie\": null,\r\n \"archiefstatus\": \"nog_te_archiveren\",\r\n \"archiefactiedatum\": null,\r\n \"opdrachtgevendeOrganisatie\": null,\r\n \"processobjectaard\": null,\r\n \"startdatumBewaartermijn\": null,\r\n \"processobject\": null\r\n}" + } + }, + "response": [], + "event": [ + { + "listen": "prerequest", + "script": { + "id": "8447db5e-d35f-4b42-bd58-c823805ac1a2", + "type": "text/javascript", + "packages": {}, + "exec": [ + "" + ], + "_lastExecutionId": "9dcb7f60-3995-44f7-8af3-768f6e31d22e" + } + }, + { + "listen": "test", + "script": { + "id": "1fce06d8-58af-49db-8a2a-247238c85136", + "type": "text/javascript", + "packages": {}, + "exec": [ + "pm.test(\"Zaak aanmaken met ongeldige url in relevanteAndereZaken geeft 400\", function() {", + " pm.response.to.have.status(400);", + " ", + " // Verify that the 400 is returned for the correct reason", + " var error = pm.response.json()[\"invalidParams\"][0];", + " pm.expect(error.name).to.be.equal(\"relevanteAndereZaken.0.url\");", + " pm.expect(error.code).to.be.equal(\"bad-url\");", + "});", + "", + "if(pm.response.code == 201) {", + " pm.environment.set(\"created_zaak_url\", pm.response.json().url);", + "", + "}" + ], + "_lastExecutionId": "491f1a07-83a3-4000-921c-fb844b123338" + } + } + ] + }, + { + "id": "3252aff3-9857-4eb5-a51f-f6f26b04e77c", + "name": "(zrc-011b) Zaak bijwerken met ongeldige url in relevanteAndereZaken is onmogelijk", + "request": { + "url": { + "host": [ + "{{zaak_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Content-Crs", + "value": "EPSG:4326" + }, + { + "key": "Accept-Crs", + "value": "EPSG:4326" + } + ], + "method": "PUT", + "body": { + "mode": "raw", + "raw": "{\r\n \"bronorganisatie\": \"000000000\",\r\n \"omschrijving\": \"string\",\r\n \"toelichting\": \"string\",\r\n \"zaaktype\": \"{{zaaktype_url}}\",\r\n \"registratiedatum\": \"2019-04-09\",\r\n \"verantwoordelijkeOrganisatie\": \"000000000\",\r\n \"startdatum\": \"2019-04-09\",\r\n \"einddatum\": null,\r\n \"einddatumGepland\": \"2019-04-20\",\r\n \"uiterlijkeEinddatumAfdoening\": \"2019-04-09\",\r\n \"publicatiedatum\": \"2019-04-09\",\r\n \"communicatiekanaal\": \"\",\r\n \"productenOfDiensten\": [],\r\n \"vertrouwelijkheidaanduiding\": \"geheim\",\r\n \"betalingsindicatie\": \"geheel\",\r\n \"betalingsindicatieWeergave\": null,\r\n \"laatsteBetaaldatum\": \"2019-01-01T00:00:00Z\",\r\n \"zaakgeometrie\": {\r\n \"type\": \"Point\",\r\n \"coordinates\": [\r\n 53.0,\r\n 5.0\r\n ]\r\n },\r\n \"verlenging\": null,\r\n \"opschorting\": {\r\n \"indicatie\": true,\r\n \"reden\": \"string\"\r\n },\r\n \"selectielijstklasse\": \"https://referentielijsten.roxit.nl/api/v1/resultaten/0fe71ce3-b1e1-48eb-9070-be2756fc71b5\",\r\n \"hoofdzaak\": null,\r\n \"deelzaken\": [],\r\n \"relevanteAndereZaken\": [\r\n {\r\n \"url\": \"https://zaken-api.test.vng.cloud/api/v1/zaken/x12\",\r\n \"aardRelatie\": \"vervolg\"\r\n }\r\n ],\r\n \"eigenschappen\": [],\r\n \"rollen\": [],\r\n \"status\": null,\r\n \"zaakinformatieobjecten\": [],\r\n \"zaakobjecten\": [],\r\n \"resultaat\": null,\r\n \"kenmerken\": [],\r\n \"archiefnominatie\": null,\r\n \"archiefstatus\": \"nog_te_archiveren\",\r\n \"archiefactiedatum\": null,\r\n \"opdrachtgevendeOrganisatie\": null,\r\n \"processobjectaard\": null,\r\n \"startdatumBewaartermijn\": null,\r\n \"processobject\": null\r\n}" + } + }, + "response": [], + "event": [ + { + "listen": "prerequest", + "script": { + "id": "292a5287-b300-4a34-94a2-3f3e8ebb71a5", + "type": "text/javascript", + "packages": {}, + "exec": [ + "" + ], + "_lastExecutionId": "197dc82c-ceee-466d-b342-8feb69952e24" + } + }, + { + "listen": "test", + "script": { + "id": "daff69c2-13a2-4174-9759-0e55fca25485", + "type": "text/javascript", + "packages": {}, + "exec": [ + "pm.test(\"Zaak bijwerken met ongeldige url in relevanteAndereZaken geeft 400\", function() {", + " pm.response.to.have.status(400);", + " ", + " // Verify that the 400 is returned for the correct reason", + " var error = pm.response.json()[\"invalidParams\"][0];", + " pm.expect(error.name).to.be.equal(\"relevanteAndereZaken.0.url\");", + " pm.expect(error.code).to.be.equal(\"bad-url\");", + "});" + ], + "_lastExecutionId": "166a7b56-bf27-4eaa-9abd-9349dbdae72c" + } + } + ] + }, + { + "id": "05770c30-2677-4792-95c2-cf7a6d3ac65c", + "name": "(zrc-011c) Zaak deels bijwerken met ongeldige url in relevanteAndereZaken is onmogelijk", + "request": { + "url": { + "host": [ + "{{zaak_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Content-Crs", + "value": "EPSG:4326" + }, + { + "key": "Accept-Crs", + "value": "EPSG:4326" + } + ], + "method": "PATCH", + "body": { + "mode": "raw", + "raw": "{\n\t\"relevanteAndereZaken\": [{\n\t \"url\": \"{{mock_url}}/404\",\n\t \"aardRelatie\": \"vervolg\"\n\t}]\n}" + } + }, + "response": [], + "event": [ + { + "listen": "prerequest", + "script": { + "id": "62be160c-e3db-4991-905a-704f5aaeca57", + "type": "text/javascript", + "exec": [ + "" + ], + "_lastExecutionId": "8e9f05be-24ed-4059-9347-72b0910bc1cf" + } + }, + { + "listen": "test", + "script": { + "id": "4e265906-84aa-4942-a0ce-4ca1b00f5c66", + "type": "text/javascript", + "exec": [ + "pm.test(\"Zaak deels bijwerken met ongeldige url in relevanteAndereZaken geeft 400\", function() {", + " pm.response.to.have.status(400);", + " ", + " // Verify that the 400 is returned for the correct reason", + " var error = pm.response.json()[\"invalidParams\"][0];", + " pm.expect(error.name).to.be.equal(\"relevanteAndereZaken.0.url\");", + " pm.expect(error.code).to.be.equal(\"bad-url\");", + "});" + ], + "_lastExecutionId": "9b6a608e-1554-4cbe-aebb-bb135d3d3025" + } + } + ] + }, + { + "id": "7e21f549-1cd4-4708-ab97-0f96553da436", + "name": "(zrc-011d) Zaak aanmaken met relevanteAndereZaken is mogelijk", + "request": { + "url": { + "path": [ + "zaken" + ], + "host": [ + "{{zrc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Content-Crs", + "value": "EPSG:4326" + }, + { + "key": "Accept-Crs", + "value": "EPSG:4326" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\r\n \"bronorganisatie\": \"000000000\",\r\n \"omschrijving\": \"string\",\r\n \"toelichting\": \"string\",\r\n \"zaaktype\": \"{{zaaktype_url}}\",\r\n \"registratiedatum\": \"2019-04-09\",\r\n \"verantwoordelijkeOrganisatie\": \"000000000\",\r\n \"startdatum\": \"2019-04-09\",\r\n \"einddatum\": null,\r\n \"einddatumGepland\": \"2019-04-20\",\r\n \"uiterlijkeEinddatumAfdoening\": \"2019-04-09\",\r\n \"publicatiedatum\": \"2019-04-09\",\r\n \"communicatiekanaal\": \"\",\r\n \"productenOfDiensten\": [],\r\n \"vertrouwelijkheidaanduiding\": \"geheim\",\r\n \"betalingsindicatie\": \"geheel\",\r\n \"betalingsindicatieWeergave\": null,\r\n \"laatsteBetaaldatum\": \"2019-01-01T00:00:00Z\",\r\n \"zaakgeometrie\": {\r\n \"type\": \"Point\",\r\n \"coordinates\": [\r\n 53.0,\r\n 5.0\r\n ]\r\n },\r\n \"verlenging\": null,\r\n \"opschorting\": {\r\n \"indicatie\": true,\r\n \"reden\": \"string\"\r\n },\r\n \"selectielijstklasse\": \"https://referentielijsten.roxit.nl/api/v1/resultaten/0fe71ce3-b1e1-48eb-9070-be2756fc71b5\",\r\n \"hoofdzaak\": null,\r\n \"deelzaken\": [],\r\n \"relevanteAndereZaken\": [\r\n {\r\n \"url\": \"{{zaak_url}}\",\r\n \"aardRelatie\": \"vervolg\"\r\n }\r\n ],\r\n \"eigenschappen\": [],\r\n \"rollen\": [],\r\n \"status\": null,\r\n \"zaakinformatieobjecten\": [],\r\n \"zaakobjecten\": [],\r\n \"resultaat\": null,\r\n \"kenmerken\": [],\r\n \"archiefnominatie\": null,\r\n \"archiefstatus\": \"nog_te_archiveren\",\r\n \"archiefactiedatum\": null,\r\n \"opdrachtgevendeOrganisatie\": null,\r\n \"processobjectaard\": null,\r\n \"startdatumBewaartermijn\": null,\r\n \"processobject\": null\r\n}" + } + }, + "response": [], + "event": [ + { + "listen": "prerequest", + "script": { + "id": "6bd1b72e-e7ac-4f3f-bf41-c115fcdc67cf", + "type": "text/javascript", + "packages": {}, + "exec": [ + "" + ], + "_lastExecutionId": "f650008f-b0ec-4c15-8164-f607ebd3c94f" + } + }, + { + "listen": "test", + "script": { + "id": "e7c876d7-d77d-4372-89fb-a9a00d69ffbd", + "type": "text/javascript", + "packages": {}, + "exec": [ + "pm.test(\"Zaak aanmaken met geldige relevanteAndereZaken geeft 201\", function() {", + " pm.response.to.have.status(201);", + " pm.environment.set(\"created_zaak_url\", pm.response.json().url);", + "});", + "", + "" + ], + "_lastExecutionId": "43d44319-8a99-43f0-a10b-fceb8b4f7c98" + } + } + ] + }, + { + "id": "5d95880d-90ca-4d6b-a060-f17bd3916fe4", + "name": "(zrc-011e) Zaak bijwerken met relevanteAndereZaken is mogelijk", + "request": { + "url": { + "host": [ + "{{zaak_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Accept-Crs", + "value": "EPSG:4326" + }, + { + "key": "Content-Crs", + "value": "EPSG:4326" + } + ], + "method": "PUT", + "body": { + "mode": "raw", + "raw": "{\r\n \"bronorganisatie\": \"000000000\",\r\n \"omschrijving\": \"string\",\r\n \"toelichting\": \"string\",\r\n \"zaaktype\": \"{{zaaktype_url}}\",\r\n \"registratiedatum\": \"2019-04-09\",\r\n \"verantwoordelijkeOrganisatie\": \"000000000\",\r\n \"startdatum\": \"2019-04-09\",\r\n \"einddatum\": null,\r\n \"einddatumGepland\": \"2019-04-20\",\r\n \"uiterlijkeEinddatumAfdoening\": \"2019-04-09\",\r\n \"publicatiedatum\": \"2019-04-09\",\r\n \"communicatiekanaal\": \"\",\r\n \"productenOfDiensten\": [],\r\n \"vertrouwelijkheidaanduiding\": \"geheim\",\r\n \"betalingsindicatie\": \"geheel\",\r\n \"betalingsindicatieWeergave\": null,\r\n \"laatsteBetaaldatum\": \"2019-01-01T00:00:00Z\",\r\n \"zaakgeometrie\": {\r\n \"type\": \"Point\",\r\n \"coordinates\": [\r\n 53.0,\r\n 5.0\r\n ]\r\n },\r\n \"verlenging\": null,\r\n \"opschorting\": {\r\n \"indicatie\": true,\r\n \"reden\": \"string\"\r\n },\r\n \"selectielijstklasse\": \"https://referentielijsten.roxit.nl/api/v1/resultaten/0fe71ce3-b1e1-48eb-9070-be2756fc71b5\",\r\n \"hoofdzaak\": null,\r\n \"deelzaken\": [],\r\n \"relevanteAndereZaken\": [\r\n {\r\n \"url\": \"{{zaak_url}}\",\r\n \"aardRelatie\": \"vervolg\"\r\n }\r\n ],\r\n \"eigenschappen\": [],\r\n \"rollen\": [],\r\n \"status\": null,\r\n \"zaakinformatieobjecten\": [],\r\n \"zaakobjecten\": [],\r\n \"resultaat\": null,\r\n \"kenmerken\": [],\r\n \"archiefnominatie\": null,\r\n \"archiefstatus\": \"nog_te_archiveren\",\r\n \"archiefactiedatum\": null,\r\n \"opdrachtgevendeOrganisatie\": null,\r\n \"processobjectaard\": null,\r\n \"startdatumBewaartermijn\": null,\r\n \"processobject\": null\r\n}" + } + }, + "response": [], + "event": [ + { + "listen": "prerequest", + "script": { + "id": "1b550cd1-abbf-4552-a965-5d96bb9faa3c", + "type": "text/javascript", + "packages": {}, + "exec": [ + "" + ], + "_lastExecutionId": "4793b06e-f5d2-4cbe-8d11-0fb1a19dab8d" + } + }, + { + "listen": "test", + "script": { + "id": "5a299221-21d3-4d93-acf3-bb11fa55691a", + "type": "text/javascript", + "packages": {}, + "exec": [ + "pm.test(\"Zaak bijwerken met geldige relevanteAndereZaken geeft 200\", function() {", + " pm.response.to.have.status(200);", + "});" + ], + "_lastExecutionId": "985e8774-2dd7-4348-be8d-d68d28c01e78" + } + } + ] + }, + { + "id": "78050592-2720-43cf-822f-22afe780fb6c", + "name": "(zrc-011f) Zaak deels bijwerken met relevanteAndereZaken is mogelijk", + "request": { + "url": { + "host": [ + "{{zaak_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Accept-Crs", + "value": "EPSG:4326" + }, + { + "key": "Content-Crs", + "value": "EPSG:4326" + } + ], + "method": "PATCH", + "body": { + "mode": "raw", + "raw": "{\n\t\"relevanteAndereZaken\": [{\n\t \"url\": \"{{zaak_url}}\",\n\t \"aardRelatie\": \"vervolg\"\n\t}]\n}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "b80f8a48-aab6-463d-9640-d6ddd686cd53", + "type": "text/javascript", + "packages": {}, + "exec": [ + "pm.test(\"Zaak deels bijwerken met geldige relevanteAndereZaken geeft 200\", function() {", + " pm.response.to.have.status(200);", + "});", + "", + "" + ], + "_lastExecutionId": "abea5340-9438-4ca2-9ae0-190b946fe1a0" + } + } + ] + } + ], + "event": [ + { + "listen": "prerequest", + "script": { + "id": "1234396b-b2b0-4215-9165-01849bc12269", + "type": "text/javascript", + "exec": [ + "" + ], + "_lastExecutionId": "8f2601d8-a208-4a6c-920f-840e5f05fd04" + } + }, + { + "listen": "test", + "script": { + "id": "175c5d0a-312c-421b-9b3f-31e68fdf6fcd", + "type": "text/javascript", + "exec": [ + "" + ], + "_lastExecutionId": "1f5e7189-3efe-4bb1-abb4-0a75fea444d0" + } + } + ] + }, + { + "id": "d6f54a76-b902-487b-93c5-f94c7c07e90d", + "name": "zrc-012", + "item": [ + { + "id": "de523991-72f9-4f68-8b17-09c4e5b6944b", + "name": "(zrc-012a) Zaak aanmaken met opschorting zonder indicatie en reden is onmogelijk", + "request": { + "url": { + "path": [ + "zaken" + ], + "host": [ + "{{zrc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Crs", + "value": "EPSG:4326" + }, + { + "key": "Accept-Crs", + "value": "EPSG:4326" + }, + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\r\n \"bronorganisatie\": \"000000000\",\r\n \"omschrijving\": \"string\",\r\n \"toelichting\": \"string\",\r\n \"zaaktype\": \"{{zaaktype_url}}\",\r\n \"registratiedatum\": \"2019-04-09\",\r\n \"verantwoordelijkeOrganisatie\": \"000000000\",\r\n \"startdatum\": \"2019-04-09\",\r\n \"einddatum\": null,\r\n \"einddatumGepland\": \"2019-04-20\",\r\n \"uiterlijkeEinddatumAfdoening\": \"2019-04-09\",\r\n \"publicatiedatum\": \"2019-04-09\",\r\n \"communicatiekanaal\": \"\",\r\n \"productenOfDiensten\": [],\r\n \"vertrouwelijkheidaanduiding\": \"{{expliciete_vertrouwelijkheid}}\",\r\n \"betalingsindicatie\": \"geheel\",\r\n \"betalingsindicatieWeergave\": null,\r\n \"laatsteBetaaldatum\": \"2019-01-01T00:00:00Z\",\r\n \"zaakgeometrie\": {\r\n \"type\": \"Point\",\r\n \"coordinates\": [\r\n 53.0,\r\n 5.0\r\n ]\r\n },\r\n \"verlenging\": null,\r\n \"opschorting\": {\r\n \"wrong_field\": \"test\"\r\n },\r\n \"selectielijstklasse\": \"https://referentielijsten.roxit.nl/api/v1/resultaten/0fe71ce3-b1e1-48eb-9070-be2756fc71b5\",\r\n \"hoofdzaak\": null,\r\n \"deelzaken\": [],\r\n \"relevanteAndereZaken\": [],\r\n \"eigenschappen\": [],\r\n \"rollen\": [],\r\n \"status\": null,\r\n \"zaakinformatieobjecten\": [],\r\n \"zaakobjecten\": [],\r\n \"resultaat\": null,\r\n \"kenmerken\": [],\r\n \"archiefnominatie\": null,\r\n \"archiefstatus\": \"nog_te_archiveren\",\r\n \"archiefactiedatum\": null,\r\n \"opdrachtgevendeOrganisatie\": null,\r\n \"processobjectaard\": null,\r\n \"startdatumBewaartermijn\": null,\r\n \"processobject\": null\r\n}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "1b4b494f-0d4b-423d-ba70-3b31956ceab8", + "type": "text/javascript", + "packages": {}, + "exec": [ + "pm.test(\"Zaak aanmaken met opschorting zonder indicatie en reden geeft 400\", function() {", + " pm.response.to.have.status(400);", + " ", + " // Verify that the 400 is returned for the correct reason", + " var errors = pm.response.json()[\"invalidParams\"];", + " pm.expect(errors[0].name).to.be.equal(\"opschorting.indicatie\");", + " pm.expect(errors[0].code).to.be.equal(\"required\");", + " ", + " pm.expect(errors[1].name).to.be.equal(\"opschorting.reden\");", + " pm.expect(errors[1].code).to.be.equal(\"required\");", + "});", + "", + "if(pm.response.code == 201) {", + " pm.environment.set(\"created_zaak_url\", pm.response.json().url);", + "", + "}" + ], + "_lastExecutionId": "e4e9cdbb-3d32-43de-8428-33e2130f6249" + } + }, + { + "listen": "prerequest", + "script": { + "id": "6615397a-b321-4624-85d6-3ee6863e4487", + "type": "text/javascript", + "packages": {}, + "exec": [ + "" + ], + "_lastExecutionId": "8826f5eb-5375-4869-9b21-49d81055cf1a" + } + } + ] + }, + { + "id": "691af2f0-cae0-40de-8541-149344ec0af7", + "name": "(zrc-012b) Zaak bijwerken met opschorting zonder indicatie en reden is onmogelijk", + "request": { + "url": { + "host": [ + "{{zaak_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Crs", + "value": "EPSG:4326" + }, + { + "key": "Accept-Crs", + "value": "EPSG:4326" + }, + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "PUT", + "body": { + "mode": "raw", + "raw": "{\r\n \"bronorganisatie\": \"000000000\",\r\n \"omschrijving\": \"string\",\r\n \"toelichting\": \"string\",\r\n \"zaaktype\": \"{{zaaktype_url}}\",\r\n \"registratiedatum\": \"2019-04-09\",\r\n \"verantwoordelijkeOrganisatie\": \"000000000\",\r\n \"startdatum\": \"2019-04-09\",\r\n \"einddatum\": null,\r\n \"einddatumGepland\": \"2019-04-20\",\r\n \"uiterlijkeEinddatumAfdoening\": \"2019-04-09\",\r\n \"publicatiedatum\": \"2019-04-09\",\r\n \"communicatiekanaal\": \"\",\r\n \"productenOfDiensten\": [],\r\n \"vertrouwelijkheidaanduiding\": \"{{expliciete_vertrouwelijkheid}}\",\r\n \"betalingsindicatie\": \"geheel\",\r\n \"betalingsindicatieWeergave\": null,\r\n \"laatsteBetaaldatum\": \"2019-01-01T00:00:00Z\",\r\n \"zaakgeometrie\": {\r\n \"type\": \"Point\",\r\n \"coordinates\": [\r\n 53.0,\r\n 5.0\r\n ]\r\n },\r\n \"verlenging\": null,\r\n \"opschorting\": {\r\n \"wrong_field\": \"test\"\r\n },\r\n \"selectielijstklasse\": \"https://referentielijsten.roxit.nl/api/v1/resultaten/0fe71ce3-b1e1-48eb-9070-be2756fc71b5\",\r\n \"hoofdzaak\": null,\r\n \"deelzaken\": [],\r\n \"relevanteAndereZaken\": [],\r\n \"eigenschappen\": [],\r\n \"rollen\": [],\r\n \"status\": null,\r\n \"zaakinformatieobjecten\": [],\r\n \"zaakobjecten\": [],\r\n \"resultaat\": null,\r\n \"kenmerken\": [],\r\n \"archiefnominatie\": null,\r\n \"archiefstatus\": \"nog_te_archiveren\",\r\n \"archiefactiedatum\": null,\r\n \"opdrachtgevendeOrganisatie\": null,\r\n \"processobjectaard\": null,\r\n \"startdatumBewaartermijn\": null,\r\n \"processobject\": null\r\n}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "fa90be55-c0f3-48fa-a547-5bc3778cbdf0", + "type": "text/javascript", + "packages": {}, + "exec": [ + "pm.test(\"Zaak bijwerken met opschorting zonder indicatie en reden geeft 400\", function() {", + " pm.response.to.have.status(400);", + " ", + " // Verify that the 400 is returned for the correct reason", + " var errors = pm.response.json()[\"invalidParams\"];", + " pm.expect(errors[0].name).to.be.equal(\"opschorting.indicatie\");", + " pm.expect(errors[0].code).to.be.equal(\"required\");", + " ", + " pm.expect(errors[1].name).to.be.equal(\"opschorting.reden\");", + " pm.expect(errors[1].code).to.be.equal(\"required\");", + "});" + ], + "_lastExecutionId": "39c8896e-254c-40c7-a559-6ac76f80c079" + } + }, + { + "listen": "prerequest", + "script": { + "id": "511f4ab5-aa7e-47d5-a867-a328452c9b51", + "type": "text/javascript", + "packages": {}, + "exec": [ + "" + ], + "_lastExecutionId": "8933ab76-9fde-48d9-97e7-50dd945bcdc4" + } + } + ] + }, + { + "id": "80629c8e-f146-4649-bb4c-e939c5312bea", + "name": "(zrc-012c) Zaak deels bijwerken met opschorting zonder indicatie en reden is onmogelijk", + "request": { + "url": { + "host": [ + "{{zaak_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Crs", + "value": "EPSG:4326" + }, + { + "key": "Accept-Crs", + "value": "EPSG:4326" + }, + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "PATCH", + "body": { + "mode": "raw", + "raw": "{\n\t\"opschorting\": {\n\t\t\"wrong_field\": \"test\"\n\t}\n}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "782ebec3-44dc-4490-bf2f-919dde226d56", + "type": "text/javascript", + "exec": [ + "pm.test(\"Zaak deels bijwerken met opschorting zonder indicatie en reden geeft 400\", function() {", + " pm.response.to.have.status(400);", + " ", + " // Verify that the 400 is returned for the correct reason", + " var errors = pm.response.json()[\"invalidParams\"];", + " pm.expect(errors[0].name).to.be.equal(\"opschorting.indicatie\");", + " pm.expect(errors[0].code).to.be.equal(\"required\");", + " ", + " pm.expect(errors[1].name).to.be.equal(\"opschorting.reden\");", + " pm.expect(errors[1].code).to.be.equal(\"required\");", + "});" + ], + "_lastExecutionId": "8e908b06-1e9f-48f2-ab11-9298623ff07b" + } + }, + { + "listen": "prerequest", + "script": { + "id": "d76628bc-5f36-4fb3-8f00-b3bab804e072", + "type": "text/javascript", + "exec": [ + "" + ], + "_lastExecutionId": "b83e33f9-f280-4f54-99de-f0b3ec12bf6e" + } + } + ] + }, + { + "id": "a75b1e02-3079-4ecf-aac8-39066e600d63", + "name": "(zrc-012d) Zaak aanmaken met verlenging zonder reden en duur is onmogelijk", + "request": { + "url": { + "path": [ + "zaken" + ], + "host": [ + "{{zrc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Crs", + "value": "EPSG:4326" + }, + { + "key": "Accept-Crs", + "value": "EPSG:4326" + }, + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\r\n \"bronorganisatie\": \"000000000\",\r\n \"omschrijving\": \"string\",\r\n \"toelichting\": \"string\",\r\n \"zaaktype\": \"{{zaaktype_url}}\",\r\n \"registratiedatum\": \"2019-04-09\",\r\n \"verantwoordelijkeOrganisatie\": \"000000000\",\r\n \"startdatum\": \"2019-04-09\",\r\n \"einddatum\": null,\r\n \"einddatumGepland\": \"2019-04-20\",\r\n \"uiterlijkeEinddatumAfdoening\": \"2019-04-09\",\r\n \"publicatiedatum\": \"2019-04-09\",\r\n \"communicatiekanaal\": \"\",\r\n \"productenOfDiensten\": [],\r\n \"vertrouwelijkheidaanduiding\": \"geheim\",\r\n \"betalingsindicatie\": \"geheel\",\r\n \"betalingsindicatieWeergave\": null,\r\n \"laatsteBetaaldatum\": \"2019-01-01T00:00:00Z\",\r\n \"zaakgeometrie\": {\r\n \"type\": \"Point\",\r\n \"coordinates\": [\r\n 53.0,\r\n 5.0\r\n ]\r\n },\r\n \"verlenging\": {\r\n \"wrong_field\": \"test\"\r\n },\r\n \"opschorting\": {\r\n \"indicatie\": true,\r\n \"reden\": \"string\"\r\n },\r\n \"selectielijstklasse\": \"https://referentielijsten.roxit.nl/api/v1/resultaten/0fe71ce3-b1e1-48eb-9070-be2756fc71b5\",\r\n \"hoofdzaak\": null,\r\n \"deelzaken\": [],\r\n \"relevanteAndereZaken\": [],\r\n \"eigenschappen\": [],\r\n \"rollen\": [],\r\n \"status\": null,\r\n \"zaakinformatieobjecten\": [],\r\n \"zaakobjecten\": [],\r\n \"resultaat\": null,\r\n \"kenmerken\": [],\r\n \"archiefnominatie\": null,\r\n \"archiefstatus\": \"nog_te_archiveren\",\r\n \"archiefactiedatum\": null,\r\n \"opdrachtgevendeOrganisatie\": null,\r\n \"processobjectaard\": null,\r\n \"startdatumBewaartermijn\": null,\r\n \"processobject\": null\r\n}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "54083652-eb28-45de-a5bc-c20f4c57755f", + "type": "text/javascript", + "packages": {}, + "exec": [ + "pm.test(\"Zaak aanmaken met verlenging zonder reden en duur geeft 400\", function() {", + " pm.response.to.have.status(400);", + " ", + " // Verify that the 400 is returned for the correct reason", + " var errors = pm.response.json()[\"invalidParams\"];", + " pm.expect(errors[0].name).to.be.equal(\"verlenging.reden\");", + " pm.expect(errors[0].code).to.be.equal(\"required\");", + " ", + " pm.expect(errors[1].name).to.be.equal(\"verlenging.duur\");", + " pm.expect(errors[1].code).to.be.equal(\"required\");", + "});", + "", + "if(pm.response.code == 201) {", + " pm.environment.set(\"created_zaak_url\", pm.response.json().url);", + "", + "}" + ], + "_lastExecutionId": "4bcd4ee5-7b25-445f-87e3-747a0cfc6728" + } + }, + { + "listen": "prerequest", + "script": { + "id": "34760017-0eaf-499b-bed9-e32856b660ed", + "type": "text/javascript", + "packages": {}, + "exec": [ + "" + ], + "_lastExecutionId": "e8a97eca-35ec-4e94-895a-4bfe978c4a2a" + } + } + ] + }, + { + "id": "a1e11d2d-9aae-43d1-bbbe-d79aedf74fe5", + "name": "(zrc-012e) Zaak bijwerken met verlenging zonder reden en duur is onmogelijk", + "request": { + "url": { + "host": [ + "{{zaak_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Crs", + "value": "EPSG:4326" + }, + { + "key": "Accept-Crs", + "value": "EPSG:4326" + }, + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "PUT", + "body": { + "mode": "raw", + "raw": "{\r\n \"bronorganisatie\": \"000000000\",\r\n \"omschrijving\": \"string\",\r\n \"toelichting\": \"string\",\r\n \"zaaktype\": \"{{zaaktype_url}}\",\r\n \"registratiedatum\": \"2019-04-09\",\r\n \"verantwoordelijkeOrganisatie\": \"000000000\",\r\n \"startdatum\": \"2019-04-09\",\r\n \"einddatum\": null,\r\n \"einddatumGepland\": \"2019-04-20\",\r\n \"uiterlijkeEinddatumAfdoening\": \"2019-04-09\",\r\n \"publicatiedatum\": \"2019-04-09\",\r\n \"communicatiekanaal\": \"\",\r\n \"productenOfDiensten\": [],\r\n \"vertrouwelijkheidaanduiding\": \"geheim\",\r\n \"betalingsindicatie\": \"geheel\",\r\n \"betalingsindicatieWeergave\": null,\r\n \"laatsteBetaaldatum\": \"2019-01-01T00:00:00Z\",\r\n \"zaakgeometrie\": {\r\n \"type\": \"Point\",\r\n \"coordinates\": [\r\n 53.0,\r\n 5.0\r\n ]\r\n },\r\n \"verlenging\": {\r\n \"wrong_field\": \"test\"\r\n },\r\n \"opschorting\": {\r\n \"indicatie\": true,\r\n \"reden\": \"string\"\r\n },\r\n \"selectielijstklasse\": \"https://referentielijsten.roxit.nl/api/v1/resultaten/0fe71ce3-b1e1-48eb-9070-be2756fc71b5\",\r\n \"hoofdzaak\": null,\r\n \"deelzaken\": [],\r\n \"relevanteAndereZaken\": [],\r\n \"eigenschappen\": [],\r\n \"rollen\": [],\r\n \"status\": null,\r\n \"zaakinformatieobjecten\": [],\r\n \"zaakobjecten\": [],\r\n \"resultaat\": null,\r\n \"kenmerken\": [],\r\n \"archiefnominatie\": null,\r\n \"archiefstatus\": \"nog_te_archiveren\",\r\n \"archiefactiedatum\": null,\r\n \"opdrachtgevendeOrganisatie\": null,\r\n \"processobjectaard\": null,\r\n \"startdatumBewaartermijn\": null,\r\n \"processobject\": null\r\n}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "27bee983-2ff2-4dfe-b776-2e7f9b3a9051", + "type": "text/javascript", + "packages": {}, + "exec": [ + "pm.test(\"Zaak bijwerken met verlenging zonder reden en duur geeft 400\", function() {", + " pm.response.to.have.status(400);", + " ", + " // Verify that the 400 is returned for the correct reason", + " var errors = pm.response.json()[\"invalidParams\"];", + " pm.expect(errors[0].name).to.be.equal(\"verlenging.reden\");", + " pm.expect(errors[0].code).to.be.equal(\"required\");", + " ", + " pm.expect(errors[1].name).to.be.equal(\"verlenging.duur\");", + " pm.expect(errors[1].code).to.be.equal(\"required\");", + "});" + ], + "_lastExecutionId": "c24bbd81-5ee5-4d5f-bb1a-464bf67ae4d4" + } + }, + { + "listen": "prerequest", + "script": { + "id": "ed3d9bd7-ef4c-4485-9244-859881512910", + "type": "text/javascript", + "packages": {}, + "exec": [ + "" + ], + "_lastExecutionId": "a83d22a3-7f62-43b4-9f63-8a34e6414340" + } + } + ] + }, + { + "id": "6254c615-59d9-4eb8-8042-c4b4f2805189", + "name": "(zrc-012f) Zaak deels bijwerken met verlenging zonder reden en duur is onmogelijk", + "request": { + "url": { + "host": [ + "{{zaak_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Crs", + "value": "EPSG:4326" + }, + { + "key": "Accept-Crs", + "value": "EPSG:4326" + }, + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "PATCH", + "body": { + "mode": "raw", + "raw": "{\n\t\"verlenging\": {\n\t\t\"wrong_field\": \"test\"\n\t}\n}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "98c13e67-0826-4647-a63b-9697c43e36de", + "type": "text/javascript", + "exec": [ + "pm.test(\"Zaak deels bijwerken met verlenging zonder reden en duur geeft 400\", function() {", + " pm.response.to.have.status(400);", + " ", + " // Verify that the 400 is returned for the correct reason", + " var errors = pm.response.json()[\"invalidParams\"];", + " pm.expect(errors[0].name).to.be.equal(\"verlenging.reden\");", + " pm.expect(errors[0].code).to.be.equal(\"required\");", + " ", + " pm.expect(errors[1].name).to.be.equal(\"verlenging.duur\");", + " pm.expect(errors[1].code).to.be.equal(\"required\");", + "});" + ], + "_lastExecutionId": "3f9cccba-e036-421c-9109-9992bd9bf371" + } + }, + { + "listen": "prerequest", + "script": { + "id": "72800436-1e24-4850-a12c-0942e0630d3e", + "type": "text/javascript", + "exec": [ + "" + ], + "_lastExecutionId": "9e31ba4c-60e2-4a3b-842b-b18b3f917b9a" + } + } + ] + }, + { + "id": "c1412446-482b-4d76-8755-c5440a8f0520", + "name": "(zrc-012g) Zaak aanmaken met opschorting null is mogelijk", + "request": { + "url": { + "path": [ + "zaken" + ], + "host": [ + "{{zrc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Accept-Crs", + "value": "EPSG:4326" + }, + { + "key": "Content-Crs", + "value": "EPSG:4326" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\r\n \"bronorganisatie\": \"000000000\",\r\n \"omschrijving\": \"string\",\r\n \"toelichting\": \"string\",\r\n \"zaaktype\": \"{{zaaktype_url}}\",\r\n \"registratiedatum\": \"2019-04-09\",\r\n \"verantwoordelijkeOrganisatie\": \"000000000\",\r\n \"startdatum\": \"2019-04-09\",\r\n \"einddatum\": null,\r\n \"einddatumGepland\": \"2019-04-20\",\r\n \"uiterlijkeEinddatumAfdoening\": \"2019-04-09\",\r\n \"publicatiedatum\": \"2019-04-09\",\r\n \"communicatiekanaal\": \"\",\r\n \"productenOfDiensten\": [],\r\n \"vertrouwelijkheidaanduiding\": \"geheim\",\r\n \"betalingsindicatie\": \"geheel\",\r\n \"betalingsindicatieWeergave\": null,\r\n \"laatsteBetaaldatum\": \"2019-01-01T00:00:00Z\",\r\n \"zaakgeometrie\": {\r\n \"type\": \"Point\",\r\n \"coordinates\": [\r\n 53.0,\r\n 5.0\r\n ]\r\n },\r\n \"verlenging\": null,\r\n \"opschorting\": null,\r\n \"selectielijstklasse\": \"https://referentielijsten.roxit.nl/api/v1/resultaten/0fe71ce3-b1e1-48eb-9070-be2756fc71b5\",\r\n \"hoofdzaak\": null,\r\n \"deelzaken\": [],\r\n \"relevanteAndereZaken\": [],\r\n \"eigenschappen\": [],\r\n \"rollen\": [],\r\n \"status\": null,\r\n \"zaakinformatieobjecten\": [],\r\n \"zaakobjecten\": [],\r\n \"resultaat\": null,\r\n \"kenmerken\": [],\r\n \"archiefnominatie\": null,\r\n \"archiefstatus\": \"nog_te_archiveren\",\r\n \"archiefactiedatum\": null,\r\n \"opdrachtgevendeOrganisatie\": null,\r\n \"processobjectaard\": null,\r\n \"startdatumBewaartermijn\": null,\r\n \"processobject\": null\r\n}" + } + }, + "response": [], + "event": [ + { + "listen": "prerequest", + "script": { + "id": "c9f31575-21c5-4b42-b680-9760aa8badaf", + "type": "text/javascript", + "packages": {}, + "exec": [ + "" + ], + "_lastExecutionId": "9129efd4-19da-447d-b823-b8fca759c4ae" + } + }, + { + "listen": "test", + "script": { + "id": "05877b21-1630-4bc6-a1a9-230e33b6f6aa", + "type": "text/javascript", + "packages": {}, + "exec": [ + "pm.test(\"Zaak aanmaken met opschorting null geeft 201\", function() {", + " pm.response.to.have.status(201);", + " pm.environment.set(\"created_zaak_url\", pm.response.json().url);", + "});" + ], + "_lastExecutionId": "eae500f7-6230-4969-afd2-dd69958a3b7f" + } + } + ] + }, + { + "id": "fad4a12c-9e5c-4a12-b1f5-6bfa0b250596", + "name": "(zrc-012h) Zaak bijwerken met opschorting null is mogelijk", + "request": { + "url": { + "host": [ + "{{created_zaak_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Accept-Crs", + "value": "EPSG:4326" + }, + { + "key": "Content-Crs", + "value": "EPSG:4326" + } + ], + "method": "PUT", + "body": { + "mode": "raw", + "raw": "{\r\n \"bronorganisatie\": \"000000000\",\r\n \"omschrijving\": \"string\",\r\n \"toelichting\": \"string\",\r\n \"zaaktype\": \"{{zaaktype_url}}\",\r\n \"registratiedatum\": \"2019-04-09\",\r\n \"verantwoordelijkeOrganisatie\": \"000000000\",\r\n \"startdatum\": \"2019-04-09\",\r\n \"einddatum\": null,\r\n \"einddatumGepland\": \"2019-04-20\",\r\n \"uiterlijkeEinddatumAfdoening\": \"2019-04-09\",\r\n \"publicatiedatum\": \"2019-04-09\",\r\n \"communicatiekanaal\": \"\",\r\n \"productenOfDiensten\": [],\r\n \"vertrouwelijkheidaanduiding\": \"geheim\",\r\n \"betalingsindicatie\": \"geheel\",\r\n \"betalingsindicatieWeergave\": null,\r\n \"laatsteBetaaldatum\": \"2019-01-01T00:00:00Z\",\r\n \"zaakgeometrie\": {\r\n \"type\": \"Point\",\r\n \"coordinates\": [\r\n 53.0,\r\n 5.0\r\n ]\r\n },\r\n \"verlenging\": null,\r\n \"opschorting\": null,\r\n \"selectielijstklasse\": \"https://referentielijsten.roxit.nl/api/v1/resultaten/0fe71ce3-b1e1-48eb-9070-be2756fc71b5\",\r\n \"hoofdzaak\": null,\r\n \"deelzaken\": [],\r\n \"relevanteAndereZaken\": [],\r\n \"eigenschappen\": [],\r\n \"rollen\": [],\r\n \"status\": null,\r\n \"zaakinformatieobjecten\": [],\r\n \"zaakobjecten\": [],\r\n \"resultaat\": null,\r\n \"kenmerken\": [],\r\n \"archiefnominatie\": null,\r\n \"archiefstatus\": \"nog_te_archiveren\",\r\n \"archiefactiedatum\": null,\r\n \"opdrachtgevendeOrganisatie\": null,\r\n \"processobjectaard\": null,\r\n \"startdatumBewaartermijn\": null,\r\n \"processobject\": null\r\n}" + } + }, + "response": [], + "event": [ + { + "listen": "prerequest", + "script": { + "id": "720977d1-5f2b-4258-94a8-bf16be007183", + "type": "text/javascript", + "packages": {}, + "exec": [ + "" + ], + "_lastExecutionId": "9f9f1c99-0785-4871-aac2-05627dd7361e" + } + }, + { + "listen": "test", + "script": { + "id": "6b105ce6-9a69-4322-b53e-bfde731d0920", + "type": "text/javascript", + "packages": {}, + "exec": [ + "pm.test(\"Zaak bijwerken met opschorting null geeft 200\", function() {", + " pm.response.to.have.status(200);", + "});" + ], + "_lastExecutionId": "63b919fe-0b6e-4def-9378-f53674f8c4c8" + } + } + ] + }, + { + "id": "e3a9e6a0-177e-4798-8748-6e72357706f6", + "name": "(zrc-012i) Zaak deels bijwerken met opschorting null is mogelijk", + "request": { + "url": { + "host": [ + "{{created_zaak_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Accept-Crs", + "value": "EPSG:4326" + }, + { + "key": "Content-Crs", + "value": "EPSG:4326" + } + ], + "method": "PATCH", + "body": { + "mode": "raw", + "raw": "{\n\t\"opschorting\": null\n}" + } + }, + "response": [], + "event": [ + { + "listen": "prerequest", + "script": { + "id": "93f701e9-093a-41da-bfa8-af66bce43002", + "type": "text/javascript", + "packages": {}, + "exec": [ + "" + ], + "_lastExecutionId": "cae94360-1bbd-48d2-9da9-f9a6e3556dbe" + } + }, + { + "listen": "test", + "script": { + "id": "f651a149-8edd-4e28-8354-60314368b18f", + "type": "text/javascript", + "packages": {}, + "exec": [ + "pm.test(\"Zaak deels bijwerken met opschorting null geeft 200\", function() {", + " pm.response.to.have.status(200);", + "});", + "", + "" + ], + "_lastExecutionId": "9e8166c1-317e-42cd-9e52-8ccacc8fc903" + } + } + ] + }, + { + "id": "3af77471-ef24-4a07-b981-6e4c808bc1db", + "name": "(zrc-012j) Zaak aanmaken met verlenging null is mogelijk", + "request": { + "url": { + "path": [ + "zaken" + ], + "host": [ + "{{zrc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Accept-Crs", + "value": "EPSG:4326" + }, + { + "key": "Content-Crs", + "value": "EPSG:4326" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\r\n \"bronorganisatie\": \"000000000\",\r\n \"omschrijving\": \"string\",\r\n \"toelichting\": \"string\",\r\n \"zaaktype\": \"{{zaaktype_url}}\",\r\n \"registratiedatum\": \"2019-04-09\",\r\n \"verantwoordelijkeOrganisatie\": \"000000000\",\r\n \"startdatum\": \"2019-04-09\",\r\n \"einddatum\": null,\r\n \"einddatumGepland\": \"2019-04-20\",\r\n \"uiterlijkeEinddatumAfdoening\": \"2019-04-09\",\r\n \"publicatiedatum\": \"2019-04-09\",\r\n \"communicatiekanaal\": \"\",\r\n \"productenOfDiensten\": [],\r\n \"vertrouwelijkheidaanduiding\": \"geheim\",\r\n \"betalingsindicatie\": \"geheel\",\r\n \"betalingsindicatieWeergave\": null,\r\n \"laatsteBetaaldatum\": \"2019-01-01T00:00:00Z\",\r\n \"zaakgeometrie\": {\r\n \"type\": \"Point\",\r\n \"coordinates\": [\r\n 53.0,\r\n 5.0\r\n ]\r\n },\r\n \"verlenging\": null,\r\n \"opschorting\": null,\r\n \"selectielijstklasse\": \"https://referentielijsten.roxit.nl/api/v1/resultaten/0fe71ce3-b1e1-48eb-9070-be2756fc71b5\",\r\n \"hoofdzaak\": null,\r\n \"deelzaken\": [],\r\n \"relevanteAndereZaken\": [],\r\n \"eigenschappen\": [],\r\n \"rollen\": [],\r\n \"status\": null,\r\n \"zaakinformatieobjecten\": [],\r\n \"zaakobjecten\": [],\r\n \"resultaat\": null,\r\n \"kenmerken\": [],\r\n \"archiefnominatie\": null,\r\n \"archiefstatus\": \"nog_te_archiveren\",\r\n \"archiefactiedatum\": null,\r\n \"opdrachtgevendeOrganisatie\": null,\r\n \"processobjectaard\": null,\r\n \"startdatumBewaartermijn\": null,\r\n \"processobject\": null\r\n}" + } + }, + "response": [], + "event": [ + { + "listen": "prerequest", + "script": { + "id": "67b38245-4586-484e-86af-339e3d03226d", + "type": "text/javascript", + "packages": {}, + "exec": [ + "" + ], + "_lastExecutionId": "c6dd752b-06b6-466f-956f-6b5ced389049" + } + }, + { + "listen": "test", + "script": { + "id": "93322303-6cb9-497c-b2b0-2596736d8b61", + "type": "text/javascript", + "packages": {}, + "exec": [ + "pm.test(\"Zaak aanmaken met verlenging null geeft 201\", function() {", + " pm.response.to.have.status(201);", + " pm.environment.set(\"created_zaak_url\", pm.response.json().url);", + "});" + ], + "_lastExecutionId": "f44741ef-d457-4ca0-9693-a268fe208fbb" + } + } + ] + }, + { + "id": "38b78d20-a047-417e-8179-6b8cc3f6faa3", + "name": "(zrc-012k) Zaak bijwerken met verlenging null is mogelijk", + "request": { + "url": { + "host": [ + "{{created_zaak_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Accept-Crs", + "value": "EPSG:4326" + }, + { + "key": "Content-Crs", + "value": "EPSG:4326" + } + ], + "method": "PUT", + "body": { + "mode": "raw", + "raw": "{\r\n \"bronorganisatie\": \"000000000\",\r\n \"omschrijving\": \"string\",\r\n \"toelichting\": \"string\",\r\n \"zaaktype\": \"{{zaaktype_url}}\",\r\n \"registratiedatum\": \"2019-04-09\",\r\n \"verantwoordelijkeOrganisatie\": \"000000000\",\r\n \"startdatum\": \"2019-04-09\",\r\n \"einddatum\": null,\r\n \"einddatumGepland\": \"2019-04-20\",\r\n \"uiterlijkeEinddatumAfdoening\": \"2019-04-09\",\r\n \"publicatiedatum\": \"2019-04-09\",\r\n \"communicatiekanaal\": \"\",\r\n \"productenOfDiensten\": [],\r\n \"vertrouwelijkheidaanduiding\": \"geheim\",\r\n \"betalingsindicatie\": \"geheel\",\r\n \"betalingsindicatieWeergave\": null,\r\n \"laatsteBetaaldatum\": \"2019-01-01T00:00:00Z\",\r\n \"zaakgeometrie\": {\r\n \"type\": \"Point\",\r\n \"coordinates\": [\r\n 53.0,\r\n 5.0\r\n ]\r\n },\r\n \"verlenging\": null,\r\n \"opschorting\": null,\r\n \"selectielijstklasse\": \"https://referentielijsten.roxit.nl/api/v1/resultaten/0fe71ce3-b1e1-48eb-9070-be2756fc71b5\",\r\n \"hoofdzaak\": null,\r\n \"deelzaken\": [],\r\n \"relevanteAndereZaken\": [],\r\n \"eigenschappen\": [],\r\n \"rollen\": [],\r\n \"status\": null,\r\n \"zaakinformatieobjecten\": [],\r\n \"zaakobjecten\": [],\r\n \"resultaat\": null,\r\n \"kenmerken\": [],\r\n \"archiefnominatie\": null,\r\n \"archiefstatus\": \"nog_te_archiveren\",\r\n \"archiefactiedatum\": null,\r\n \"opdrachtgevendeOrganisatie\": null,\r\n \"processobjectaard\": null,\r\n \"startdatumBewaartermijn\": null,\r\n \"processobject\": null\r\n}" + } + }, + "response": [], + "event": [ + { + "listen": "prerequest", + "script": { + "id": "8bc7f08b-b326-4cf1-9b0c-d3fa41341977", + "type": "text/javascript", + "packages": {}, + "exec": [ + "" + ], + "_lastExecutionId": "f4fcfddd-b8b9-4ebf-9ba1-c7914255b325" + } + }, + { + "listen": "test", + "script": { + "id": "8f83e817-ded2-49b3-b9a5-74b31299209d", + "type": "text/javascript", + "packages": {}, + "exec": [ + "pm.test(\"Zaak bijwerken met verlenging null geeft 200\", function() {", + " pm.response.to.have.status(200);", + "});" + ], + "_lastExecutionId": "3266c134-a4b3-495b-b39a-f8d4a09acb85" + } + } + ] + }, + { + "id": "9f847699-2c51-4422-a51d-39bbf5dbdf62", + "name": "(zrc-012l) Zaak deels bijwerken met verlenging null is mogelijk", + "request": { + "url": { + "host": [ + "{{created_zaak_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Accept-Crs", + "value": "EPSG:4326" + }, + { + "key": "Content-Crs", + "value": "EPSG:4326" + } + ], + "method": "PATCH", + "body": { + "mode": "raw", + "raw": "{\n\t\"verlenging\": null\n}" + } + }, + "response": [], + "event": [ + { + "listen": "prerequest", + "script": { + "id": "d553322b-461b-4730-9605-95bb5448428d", + "type": "text/javascript", + "packages": {}, + "exec": [ + "" + ], + "_lastExecutionId": "3eeadadf-b0f3-4ded-b198-f84df1e838d3" + } + }, + { + "listen": "test", + "script": { + "id": "445b8437-21c3-4b92-81e6-dc39638c259a", + "type": "text/javascript", + "packages": {}, + "exec": [ + "pm.test(\"Zaak deels bijwerken met verlenging null geeft 200\", function() {", + " pm.response.to.have.status(200);", + "});", + "", + "" + ], + "_lastExecutionId": "6d559ce4-5be5-4541-9f3d-c7fcaeb45c4c" + } + } + ] + } + ], + "event": [ + { + "listen": "prerequest", + "script": { + "id": "8f7ed77b-05b8-43c3-bba0-89bb667e8faa", + "type": "text/javascript", + "exec": [ + "" + ], + "_lastExecutionId": "fad939f0-87ab-46c8-a916-dde3fbd251c9" + } + }, + { + "listen": "test", + "script": { + "id": "b460d8d4-14d0-400e-bd8f-430fbfa5a264", + "type": "text/javascript", + "exec": [ + "" + ], + "_lastExecutionId": "dec48c31-b2de-4433-9dc2-c8f962b44275" + } + } + ] + }, + { + "id": "1572bad0-4b00-47d1-8a54-434305664fd2", + "name": "zrc-013", + "item": [ + { + "id": "47bdc162-1743-4ca3-bcd5-e8a35d5e6877", + "name": "(zrc-013a) Valideren hoofdzaak op de Zaak-resource", + "request": { + "url": { + "path": [ + "zaken" + ], + "host": [ + "{{zrc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Accept-Crs", + "value": "EPSG:4326" + }, + { + "key": "Content-Crs", + "value": "EPSG:4326" + }, + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\r\n\r\n \"bronorganisatie\": \"000000000\",\r\n \"omschrijving\": \"string\",\r\n \"toelichting\": \"string\",\r\n \"zaaktype\": \"{{zaaktype_url}}\",\r\n \"registratiedatum\": \"2019-04-09\",\r\n \"verantwoordelijkeOrganisatie\": \"000000000\",\r\n \"startdatum\": \"2019-04-09\",\r\n \"einddatum\": null,\r\n \"einddatumGepland\": \"2019-04-20\",\r\n \"uiterlijkeEinddatumAfdoening\": \"2019-04-09\",\r\n \"publicatiedatum\": \"2019-04-09\",\r\n \"communicatiekanaal\": \"\",\r\n \"productenOfDiensten\": [],\r\n \"vertrouwelijkheidaanduiding\": \"geheim\",\r\n \"betalingsindicatie\": \"geheel\",\r\n \"betalingsindicatieWeergave\": null,\r\n \"laatsteBetaaldatum\": \"2019-01-01T00:00:00Z\",\r\n \"zaakgeometrie\": {\r\n \"type\": \"Point\",\r\n \"coordinates\": [\r\n 53.0,\r\n 5.0\r\n ]\r\n },\r\n \"verlenging\": null,\r\n \"opschorting\": {\r\n \"indicatie\": true,\r\n \"reden\": \"string\"\r\n },\r\n \"selectielijstklasse\": \"https://referentielijsten.roxit.nl/api/v1/resultaten/0fe71ce3-b1e1-48eb-9070-be2756fc71b5\",\r\n \"hoofdzaak\": \"https://catalogi.spt-rx-services.nl/api/v1/zaaktypen/01748f67-c7ec-4ba8-aaf5-5de89257203e\",\r\n \"deelzaken\": [],\r\n \"relevanteAndereZaken\": [],\r\n \"eigenschappen\": [],\r\n \"rollen\": [],\r\n \"status\": null,\r\n \"zaakinformatieobjecten\": [],\r\n \"zaakobjecten\": [],\r\n \"resultaat\": null,\r\n \"kenmerken\": [],\r\n \"archiefnominatie\": null,\r\n \"archiefstatus\": \"nog_te_archiveren\",\r\n \"archiefactiedatum\": null,\r\n \"opdrachtgevendeOrganisatie\": null,\r\n \"processobjectaard\": null,\r\n \"startdatumBewaartermijn\": null,\r\n \"processobject\": null\r\n}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "7b5d97c0-726a-4991-b589-4f3386b7f230", + "type": "text/javascript", + "packages": {}, + "exec": [ + "pm.test(\"Zaak aanmaken met hoofdzaak url die niet wijst naar Zaak-resource geeft 400\", function() {", + " pm.response.to.have.status(400);", + " ", + " // Verify that the 400 is returned for the correct reason", + " var errors = pm.response.json()[\"invalidParams\"][0];", + " pm.expect(errors.name).to.be.equal(\"hoofdzaak\");", + " pm.expect(errors.code).to.be.equal(\"no_match\");", + "});", + "", + "" + ], + "_lastExecutionId": "119e163c-5bd3-4a01-8001-e54b6fc890fb" + } + }, + { + "listen": "prerequest", + "script": { + "id": "fe94d753-a0b9-4ebe-941f-1edfc90a933d", + "type": "text/javascript", + "packages": {}, + "exec": [ + "" + ], + "_lastExecutionId": "4bbc8b0a-95ab-4e42-8349-0c89ee4ddbbd" + } + } + ] + }, + { + "id": "fc224f6d-1ce1-43e3-b5ba-1dafe50f7ee9", + "name": "Create Deelzaak", + "request": { + "url": { + "path": [ + "zaken" + ], + "host": [ + "{{zrc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Accept-Crs", + "value": "EPSG:4326" + }, + { + "key": "Content-Crs", + "value": "EPSG:4326" + }, + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\r\n\r\n \"bronorganisatie\": \"000000000\",\r\n \"omschrijving\": \"string\",\r\n \"toelichting\": \"string\",\r\n \"zaaktype\": \"{{zaaktype_url}}\",\r\n \"registratiedatum\": \"2019-04-09\",\r\n \"verantwoordelijkeOrganisatie\": \"000000000\",\r\n \"startdatum\": \"2019-04-09\",\r\n \"einddatum\": null,\r\n \"einddatumGepland\": \"2019-04-20\",\r\n \"uiterlijkeEinddatumAfdoening\": \"2019-04-09\",\r\n \"publicatiedatum\": \"2019-04-09\",\r\n \"communicatiekanaal\": \"\",\r\n \"productenOfDiensten\": [],\r\n \"vertrouwelijkheidaanduiding\": \"geheim\",\r\n \"betalingsindicatie\": \"geheel\",\r\n \"betalingsindicatieWeergave\": null,\r\n \"laatsteBetaaldatum\": \"2019-01-01T00:00:00Z\",\r\n \"zaakgeometrie\": {\r\n \"type\": \"Point\",\r\n \"coordinates\": [\r\n 53.0,\r\n 5.0\r\n ]\r\n },\r\n \"verlenging\": null,\r\n \"opschorting\": {\r\n \"indicatie\": true,\r\n \"reden\": \"string\"\r\n },\r\n \"selectielijstklasse\": \"https://referentielijsten.roxit.nl/api/v1/resultaten/0fe71ce3-b1e1-48eb-9070-be2756fc71b5\",\r\n \"hoofdzaak\": \"{{zaak_url}}\",\r\n \"deelzaken\": [],\r\n \"relevanteAndereZaken\": [],\r\n \"eigenschappen\": [],\r\n \"rollen\": [],\r\n \"status\": null,\r\n \"zaakinformatieobjecten\": [],\r\n \"zaakobjecten\": [],\r\n \"resultaat\": null,\r\n \"kenmerken\": [],\r\n \"archiefnominatie\": null,\r\n \"archiefstatus\": \"nog_te_archiveren\",\r\n \"archiefactiedatum\": null,\r\n \"opdrachtgevendeOrganisatie\": null,\r\n \"processobjectaard\": null,\r\n \"startdatumBewaartermijn\": null,\r\n \"processobject\": null\r\n}" + } + }, + "response": [], + "event": [ + { + "listen": "prerequest", + "script": { + "id": "6fa94dd5-3dd6-47b1-a681-13000b6bab04", + "type": "text/javascript", + "packages": {}, + "exec": [ + "" + ], + "_lastExecutionId": "8b5446c6-8fc3-4adc-844e-4baf8a08192c" + } + }, + { + "listen": "test", + "script": { + "id": "473cea68-241b-4bb9-9fcd-f22336e03d09", + "type": "text/javascript", + "packages": {}, + "exec": [ + "pm.environment.set(\"created_zaak_url\", pm.response.json().url);" + ], + "_lastExecutionId": "f1aa0c71-59f4-4bf2-a5c5-57364829af2e" + } + } + ] + }, + { + "id": "62f8ea3c-6dbe-4827-beb6-609762fea768", + "name": "(zrc-013c) Valideren deelzaak mag geen deelzaak hebben", + "request": { + "url": { + "host": [ + "{{zaak_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Accept-Crs", + "value": "EPSG:4326" + }, + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Content-Crs", + "value": "EPSG:4326" + } + ], + "method": "PUT", + "body": { + "mode": "raw", + "raw": "{\r\n\r\n \"bronorganisatie\": \"000000000\",\r\n \"omschrijving\": \"string\",\r\n \"toelichting\": \"string\",\r\n \"zaaktype\": \"{{zaaktype_url}}\",\r\n \"registratiedatum\": \"2019-04-09\",\r\n \"verantwoordelijkeOrganisatie\": \"000000000\",\r\n \"startdatum\": \"2019-04-09\",\r\n \"einddatum\": null,\r\n \"einddatumGepland\": \"2019-04-20\",\r\n \"uiterlijkeEinddatumAfdoening\": \"2019-04-09\",\r\n \"publicatiedatum\": \"2019-04-09\",\r\n \"communicatiekanaal\": \"\",\r\n \"productenOfDiensten\": [],\r\n \"vertrouwelijkheidaanduiding\": \"geheim\",\r\n \"betalingsindicatie\": \"geheel\",\r\n \"betalingsindicatieWeergave\": null,\r\n \"laatsteBetaaldatum\": \"2019-01-01T00:00:00Z\",\r\n \"zaakgeometrie\": {\r\n \"type\": \"Point\",\r\n \"coordinates\": [\r\n 53.0,\r\n 5.0\r\n ]\r\n },\r\n \"verlenging\": null,\r\n \"opschorting\": {\r\n \"indicatie\": true,\r\n \"reden\": \"string\"\r\n },\r\n \"selectielijstklasse\": \"https://referentielijsten.roxit.nl/api/v1/resultaten/0fe71ce3-b1e1-48eb-9070-be2756fc71b5\",\r\n \"hoofdzaak\": \"{{created_zaak_url}}\",\r\n \"deelzaken\": [],\r\n \"relevanteAndereZaken\": [],\r\n \"eigenschappen\": [],\r\n \"rollen\": [],\r\n \"status\": null,\r\n \"zaakinformatieobjecten\": [],\r\n \"zaakobjecten\": [],\r\n \"resultaat\": null,\r\n \"kenmerken\": [],\r\n \"archiefnominatie\": null,\r\n \"archiefstatus\": \"nog_te_archiveren\",\r\n \"archiefactiedatum\": null,\r\n \"opdrachtgevendeOrganisatie\": null,\r\n \"processobjectaard\": null,\r\n \"startdatumBewaartermijn\": null,\r\n \"processobject\": null\r\n}" + } + }, + "response": [], + "event": [ + { + "listen": "prerequest", + "script": { + "id": "fe0da4bf-2bb4-42f7-9f0a-07d67354e7b3", + "type": "text/javascript", + "packages": {}, + "exec": [ + "" + ], + "_lastExecutionId": "6ae7d403-eff4-40b6-ad6d-e95c2d6314ed" + } + }, + { + "listen": "test", + "script": { + "id": "8967df7b-981d-44b3-b791-09e80f6ee00f", + "type": "text/javascript", + "packages": {}, + "exec": [ + "pm.test(\"Zaak bijwerken met hoofdzaak url die wijst naar de zaak zelf geeft 400\", function(){", + " pm.response.to.have.status(400);", + " ", + " // Verify that the 400 is returned for the correct reason", + " var errors = pm.response.json()[\"invalidParams\"][0];", + " pm.expect(errors.name).to.be.equal(\"hoofdzaak\");", + " pm.expect(errors.code).to.be.equal(\"deelzaak-als-hoofdzaak\");", + "});" + ], + "_lastExecutionId": "b2ecde6a-a442-4a7f-ad6f-f8a2c07c53d4" + } + } + ] + }, + { + "id": "7a666d03-4992-4844-baf6-1ef2007286c3", + "name": "(zrc-013d) Valideren deelzaak mag geen deelzaak van zichzelf zijn", + "request": { + "url": { + "host": [ + "{{zaak_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Content-Crs", + "value": "EPSG:4326" + }, + { + "key": "Accept-Crs", + "value": "EPSG:4326" + } + ], + "method": "PATCH", + "body": { + "mode": "raw", + "raw": "{\n\t\"hoofdzaak\": \"{{zaak_url}}\"\n}" + } + }, + "response": [], + "event": [ + { + "listen": "prerequest", + "script": { + "id": "da2202cf-9291-43a3-a43b-53adf15d8178", + "type": "text/javascript", + "exec": [ + "" + ], + "_lastExecutionId": "305dd9fd-3fb7-4c6d-a247-12731b654bda" + } + }, + { + "listen": "test", + "script": { + "id": "cc1af4de-c06b-42a1-ad83-2a5a0f37dcf9", + "type": "text/javascript", + "exec": [ + "pm.test(\"Zaak deels bijwerken met hoofdzaak url die wijst naar de zaak zelf geeft 400\", function(){", + " pm.response.to.have.status(400);", + " ", + " // Verify that the 400 is returned for the correct reason", + " var errors = pm.response.json()[\"invalidParams\"][0];", + " pm.expect(errors.name).to.be.equal(\"hoofdzaak\");", + " pm.expect(errors.code).to.be.equal(\"self-forbidden\");", + "});" + ], + "_lastExecutionId": "01902b69-6452-429a-b5c6-28beafd5554a" + } + } + ] + } + ], + "event": [] + }, + { + "id": "c24d59da-6f21-4980-b22e-8953d5506652", + "name": "zrc-014", + "item": [ + { + "id": "c2599852-e7a0-4c8a-b62a-1e1f9009e2ef", + "name": "(zrc-014a) Zaak aanmaken met betalingsindicatie nvt en een waarde voor laatste betaaldatum is onmogelijk", + "request": { + "url": { + "path": [ + "zaken" + ], + "host": [ + "{{zrc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Authorization", + "value": "{{token}}" + }, + { + "key": "Content-Crs", + "value": "EPSG:4326" + }, + { + "key": "Accept-Crs", + "value": "EPSG:4326" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\r\n\r\n \"bronorganisatie\": \"000000000\",\r\n \"omschrijving\": \"string\",\r\n \"toelichting\": \"string\",\r\n \"zaaktype\": \"{{zaaktype_url}}\",\r\n \"registratiedatum\": \"2019-04-09\",\r\n \"verantwoordelijkeOrganisatie\": \"000000000\",\r\n \"startdatum\": \"2019-04-09\",\r\n \"einddatum\": null,\r\n \"einddatumGepland\": \"2019-04-20\",\r\n \"uiterlijkeEinddatumAfdoening\": \"2019-04-09\",\r\n \"publicatiedatum\": \"2019-04-09\",\r\n \"communicatiekanaal\": \"\",\r\n \"productenOfDiensten\": [],\r\n \"vertrouwelijkheidaanduiding\": \"geheim\",\r\n\r\n\r\n \"betalingsindicatie\": \"nvt\",\r\n \"betalingsindicatieWeergave\": null,\r\n \"laatsteBetaaldatum\": \"2019-01-01T00:00:00Z\",\r\n \"zaakgeometrie\": {\r\n \"type\": \"Point\",\r\n \"coordinates\": [\r\n 53.0,\r\n 5.0\r\n ]\r\n },\r\n \"verlenging\": null,\r\n \"opschorting\": {\r\n \"indicatie\": true,\r\n \"reden\": \"string\"\r\n },\r\n \"selectielijstklasse\": \"https://referentielijsten.roxit.nl/api/v1/resultaten/0fe71ce3-b1e1-48eb-9070-be2756fc71b5\",\r\n \"hoofdzaak\": \"{{zaak_url}}\",\r\n \"deelzaken\": [],\r\n \"relevanteAndereZaken\": [],\r\n \"eigenschappen\": [],\r\n \"rollen\": [],\r\n \"status\": null,\r\n \"zaakinformatieobjecten\": [],\r\n \"zaakobjecten\": [],\r\n \"resultaat\": null,\r\n \"kenmerken\": [],\r\n \"archiefnominatie\": null,\r\n \"archiefstatus\": \"nog_te_archiveren\",\r\n \"archiefactiedatum\": null,\r\n \"opdrachtgevendeOrganisatie\": null,\r\n \"processobjectaard\": null,\r\n \"startdatumBewaartermijn\": null,\r\n \"processobject\": null\r\n}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "f66d8eee-0d62-4cfa-971d-9b22ab16dd7e", + "type": "text/javascript", + "packages": {}, + "exec": [ + "pm.test(\"Zaak aanmaken met betalingsindicatie nvt en laatsteBetaaldatum niet null geeft 400\", function(){", + " pm.response.to.have.status(400);", + " ", + " var error = pm.response.json()[\"invalidParams\"][0];", + " pm.expect(error.name).to.be.equal(\"laatsteBetaaldatum\");", + " pm.expect(error.code).to.be.equal(\"betaling-nvt\");", + "});", + "", + "// If the test failed and the Zaak was created, delete it", + "if(pm.response.code == 201) {", + " pm.environment.set(\"created_zaak_url\", pm.response.json().url);", + "", + "}" + ], + "_lastExecutionId": "33424a22-be30-40f4-9206-aec848fe1fb9" + } + }, + { + "listen": "prerequest", + "script": { + "id": "b1d53cd9-106a-4c8e-8f47-895ef5f32af5", + "type": "text/javascript", + "packages": {}, + "exec": [ + "" + ], + "_lastExecutionId": "21dba557-4198-4a16-826e-4776dc4ce479" + } + } + ] + }, + { + "id": "88ab3887-61a0-4a3b-9f0b-cad1bf4c5fa8", + "name": "zaak", + "request": { + "url": { + "path": [ + "zaken" + ], + "host": [ + "{{zrc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Authorization", + "value": "{{token}}" + }, + { + "key": "Content-Crs", + "value": "EPSG:4326" + }, + { + "key": "Accept-Crs", + "value": "EPSG:4326" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\r\n\r\n \"bronorganisatie\": \"000000000\",\r\n \"omschrijving\": \"string\",\r\n \"toelichting\": \"string\",\r\n \"zaaktype\": \"{{zaaktype_url}}\",\r\n \"registratiedatum\": \"2019-04-09\",\r\n \"verantwoordelijkeOrganisatie\": \"000000000\",\r\n \"startdatum\": \"2019-04-09\",\r\n \"einddatum\": null,\r\n \"einddatumGepland\": \"2019-04-20\",\r\n \"uiterlijkeEinddatumAfdoening\": \"2019-04-09\",\r\n \"publicatiedatum\": \"2019-04-09\",\r\n \"communicatiekanaal\": \"\",\r\n \"productenOfDiensten\": [],\r\n \"vertrouwelijkheidaanduiding\": \"geheim\",\r\n\r\n\r\n \"betalingsindicatie\": null,\r\n \"betalingsindicatieWeergave\": null,\r\n \"laatsteBetaaldatum\": null,\r\n \"zaakgeometrie\": {\r\n \"type\": \"Point\",\r\n \"coordinates\": [\r\n 53.0,\r\n 5.0\r\n ]\r\n },\r\n \"verlenging\": null,\r\n \"opschorting\": {\r\n \"indicatie\": true,\r\n \"reden\": \"string\"\r\n },\r\n \"selectielijstklasse\": \"https://referentielijsten.roxit.nl/api/v1/resultaten/0fe71ce3-b1e1-48eb-9070-be2756fc71b5\",\r\n \"hoofdzaak\": \"{{zaak_url}}\",\r\n \"deelzaken\": [],\r\n \"relevanteAndereZaken\": [],\r\n \"eigenschappen\": [],\r\n \"rollen\": [],\r\n \"status\": null,\r\n \"zaakinformatieobjecten\": [],\r\n \"zaakobjecten\": [],\r\n \"resultaat\": null,\r\n \"kenmerken\": [],\r\n \"archiefnominatie\": null,\r\n \"archiefstatus\": \"nog_te_archiveren\",\r\n \"archiefactiedatum\": null,\r\n \"opdrachtgevendeOrganisatie\": null,\r\n \"processobjectaard\": null,\r\n \"startdatumBewaartermijn\": null,\r\n \"processobject\": null\r\n}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "343ff7c5-34f8-4748-afca-57e8b252de5d", + "type": "text/javascript", + "packages": {}, + "exec": [ + "// If the test failed and the Zaak was created, delete it", + "if(pm.response.code == 201) {", + " pm.environment.set(\"zaak_url\", pm.response.json().url);", + "", + "}" + ], + "_lastExecutionId": "9dda0ab5-a5a5-404e-a0d2-5a131af0199e" + } + }, + { + "listen": "prerequest", + "script": { + "id": "68938710-a3af-46a0-a239-ea2544364078", + "type": "text/javascript", + "packages": {}, + "exec": [ + "" + ], + "_lastExecutionId": "641028ca-662b-4606-8e74-2eac4c660d9a" + } + } + ] + }, + { + "id": "5470af17-b018-45e3-b7fd-8ae19c87b5f6", + "name": "(zrc-014b) Zaak bijwerken met betalingsindicatie nvt en een waarde voor laatste betaaldatum is onmogelijk", + "request": { + "url": { + "host": [ + "{{zaak_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Authorization", + "value": "{{token}}" + }, + { + "key": "Content-Crs", + "value": "EPSG:4326" + }, + { + "key": "Accept-Crs", + "value": "EPSG:4326" + } + ], + "method": "PUT", + "body": { + "mode": "raw", + "raw": "{\r\n\r\n \"bronorganisatie\": \"000000000\",\r\n \"omschrijving\": \"string\",\r\n \"toelichting\": \"string\",\r\n \"zaaktype\": \"{{zaaktype_url}}\",\r\n \"registratiedatum\": \"2019-04-09\",\r\n \"verantwoordelijkeOrganisatie\": \"000000000\",\r\n \"startdatum\": \"2019-04-09\",\r\n \"einddatum\": null,\r\n \"einddatumGepland\": \"2019-04-20\",\r\n \"uiterlijkeEinddatumAfdoening\": \"2019-04-09\",\r\n \"publicatiedatum\": \"2019-04-09\",\r\n \"communicatiekanaal\": \"\",\r\n \"productenOfDiensten\": [],\r\n \"vertrouwelijkheidaanduiding\": \"geheim\",\r\n\r\n\r\n \"betalingsindicatie\": \"nvt\",\r\n \"betalingsindicatieWeergave\": null,\r\n \"laatsteBetaaldatum\": \"2019-01-01T00:00:00Z\",\r\n \"zaakgeometrie\": {\r\n \"type\": \"Point\",\r\n \"coordinates\": [\r\n 53.0,\r\n 5.0\r\n ]\r\n },\r\n \"verlenging\": null,\r\n \"opschorting\": {\r\n \"indicatie\": true,\r\n \"reden\": \"string\"\r\n },\r\n \"selectielijstklasse\": \"https://referentielijsten.roxit.nl/api/v1/resultaten/0fe71ce3-b1e1-48eb-9070-be2756fc71b5\",\r\n \"hoofdzaak\": null,\r\n \"deelzaken\": [],\r\n \"relevanteAndereZaken\": [],\r\n \"eigenschappen\": [],\r\n \"rollen\": [],\r\n \"status\": null,\r\n \"zaakinformatieobjecten\": [],\r\n \"zaakobjecten\": [],\r\n \"resultaat\": null,\r\n \"kenmerken\": [],\r\n \"archiefnominatie\": null,\r\n \"archiefstatus\": \"nog_te_archiveren\",\r\n \"archiefactiedatum\": null,\r\n \"opdrachtgevendeOrganisatie\": null,\r\n \"processobjectaard\": null,\r\n \"startdatumBewaartermijn\": null,\r\n \"processobject\": null\r\n}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "b7e2381a-c90d-4548-8ac4-a8da36378d8e", + "type": "text/javascript", + "packages": {}, + "exec": [ + "pm.test(\"Zaak bijwerken met betalingsindicatie nvt en laatsteBetaaldatum niet null geeft 200 en zet laatstebetaaldatum op null\", function(){", + " pm.response.to.have.status(200);", + " ", + " pm.expect(pm.response.json().laatsteBetaaldatum).to.be.null;", + "", + "});" + ], + "_lastExecutionId": "42e9091a-eea9-4a12-94cd-b60cabe63980" + } + }, + { + "listen": "prerequest", + "script": { + "id": "29212748-c956-48d5-a6ff-b8093b9fbcf7", + "type": "text/javascript", + "packages": {}, + "exec": [ + "" + ], + "_lastExecutionId": "a3693817-786b-4112-b209-b66246076139" + } + } + ] + }, + { + "id": "fe0604c1-6b84-40c8-8e97-c4bf2a14dc68", + "name": "(zrc-014c) Zaak deels bijwerken met betalingsindicatie nvt en een waarde voor laatste betaaldatum is onmogelijk", + "request": { + "url": { + "host": [ + "{{zaak_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Authorization", + "value": "{{token}}" + }, + { + "key": "Content-Crs", + "value": "EPSG:4326" + }, + { + "key": "Accept-Crs", + "value": "EPSG:4326" + } + ], + "method": "PATCH", + "body": { + "mode": "raw", + "raw": "{\n \"betalingsindicatie\": \"nvt\",\n \"betalingsindicatieWeergave\": null,\n \"laatsteBetaaldatum\": \"2019-01-01T00:00:00Z\"\n}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "c901a170-003d-4630-a8d7-4ee350922a0b", + "type": "text/javascript", + "packages": {}, + "exec": [ + "pm.test(\"Zaak deels bijwerken met betalingsindicatie nvt en laatsteBetaaldatum niet null geeft 200 en zet laatstebetaaldatum op null\", function(){", + " pm.response.to.have.status(200);", + " ", + " pm.expect(pm.response.json().laatsteBetaaldatum).to.be.null;", + "", + "});" + ], + "_lastExecutionId": "8b576a87-f4b3-4959-99df-82a35421aad1" + } + }, + { + "listen": "prerequest", + "script": { + "id": "486a1c81-3ccf-467a-9931-9752e1e2e929", + "type": "text/javascript", + "packages": {}, + "exec": [ + "" + ], + "_lastExecutionId": "ff30fd53-603d-4c2e-807c-92a53216e835" + } + } + ] + }, + { + "id": "2cef4b77-d255-42d4-ad51-23b395b14539", + "name": "(zrc-014d) Zaak bijwerken betalingsindicatie naar nvt moet laatsteBetaalDatum op null zetten", + "request": { + "url": { + "host": [ + "{{zaak_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Authorization", + "value": "{{token}}" + }, + { + "key": "Content-Crs", + "value": "EPSG:4326" + }, + { + "key": "Accept-Crs", + "value": "EPSG:4326" + } + ], + "method": "PUT", + "body": { + "mode": "raw", + "raw": "{\r\n\r\n \"bronorganisatie\": \"000000000\",\r\n \"omschrijving\": \"string\",\r\n \"toelichting\": \"string\",\r\n \"zaaktype\": \"{{zaaktype_url}}\",\r\n \"registratiedatum\": \"2019-04-09\",\r\n \"verantwoordelijkeOrganisatie\": \"000000000\",\r\n \"startdatum\": \"2019-04-09\",\r\n \"einddatum\": null,\r\n \"einddatumGepland\": \"2019-04-20\",\r\n \"uiterlijkeEinddatumAfdoening\": \"2019-04-09\",\r\n \"publicatiedatum\": \"2019-04-09\",\r\n \"communicatiekanaal\": \"\",\r\n \"productenOfDiensten\": [],\r\n \"vertrouwelijkheidaanduiding\": \"geheim\",\r\n\r\n\r\n \"betalingsindicatie\": \"nvt\",\r\n \"betalingsindicatieWeergave\": null,\r\n \"laatsteBetaaldatum\": null,\r\n \"zaakgeometrie\": {\r\n \"type\": \"Point\",\r\n \"coordinates\": [\r\n 53.0,\r\n 5.0\r\n ]\r\n },\r\n \"verlenging\": null,\r\n \"opschorting\": {\r\n \"indicatie\": true,\r\n \"reden\": \"string\"\r\n },\r\n \"selectielijstklasse\": \"https://referentielijsten.roxit.nl/api/v1/resultaten/0fe71ce3-b1e1-48eb-9070-be2756fc71b5\",\r\n \"hoofdzaak\": null,\r\n \"deelzaken\": [],\r\n \"relevanteAndereZaken\": [],\r\n \"eigenschappen\": [],\r\n \"rollen\": [],\r\n \"status\": null,\r\n \"zaakinformatieobjecten\": [],\r\n \"zaakobjecten\": [],\r\n \"resultaat\": null,\r\n \"kenmerken\": [],\r\n \"archiefnominatie\": null,\r\n \"archiefstatus\": \"nog_te_archiveren\",\r\n \"archiefactiedatum\": null,\r\n \"opdrachtgevendeOrganisatie\": null,\r\n \"processobjectaard\": null,\r\n \"startdatumBewaartermijn\": null,\r\n \"processobject\": null\r\n}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "58aeec6a-1f72-454d-8eb5-22ee416313f6", + "type": "text/javascript", + "packages": {}, + "exec": [ + "pm.test(\"Zaak bijwerken met betalingsindicatie nvt verandert laatsteBetaalDatum naar null\", function(){", + " var jsonBody = pm.response.json();", + " pm.expect(jsonBody.betalingsindicatie).to.be.equal(\"nvt\");", + " pm.expect(jsonBody.laatsteBetaaldatum).to.be.equal(null);", + "});" + ], + "_lastExecutionId": "15555669-10be-47e4-8fa8-97b570985b5b" + } + }, + { + "listen": "prerequest", + "script": { + "id": "e6fa283f-290c-47ac-80ef-5f061d20955d", + "type": "text/javascript", + "packages": {}, + "exec": [ + "" + ], + "_lastExecutionId": "6a789948-98b8-46a1-9a96-e9516b3d2428" + } + } + ] + }, + { + "id": "6db620b4-8326-4901-b345-bbf9fa41688d", + "name": "(zrc-014e) Zaak deels bijwerken betalingsindicatie naar nvt moet laatsteBetaalDatum op null zetten", + "request": { + "url": { + "host": [ + "{{zaak_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Authorization", + "value": "{{token}}" + }, + { + "key": "Content-Crs", + "value": "EPSG:4326" + }, + { + "key": "Accept-Crs", + "value": "EPSG:4326" + } + ], + "method": "PATCH", + "body": { + "mode": "raw", + "raw": "{\n\t\"betalingsindicatie\": \"nvt\"\n}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "6dc75edf-0c75-402e-a1d8-e915209287e2", + "type": "text/javascript", + "exec": [ + "pm.test(\"Zaak deels bijwerken met betalingsindicatie nvt verandert laatsteBetaalDatum naar null\", function(){", + " var jsonBody = pm.response.json();", + " pm.expect(jsonBody.betalingsindicatie).to.be.equal(\"nvt\");", + " pm.expect(jsonBody.laatsteBetaaldatum).to.be.equal(null);", + "});" + ], + "_lastExecutionId": "a85aad5b-28e5-4a65-abe9-15f0527b90ec" + } + }, + { + "listen": "prerequest", + "script": { + "id": "6b236ca1-7f08-432c-ae00-14ba7be099a7", + "type": "text/javascript", + "exec": [ + "" + ], + "_lastExecutionId": "53e3c07f-a931-4202-8b13-23946762867b" + } + } + ] + } + ], + "event": [ + { + "listen": "prerequest", + "script": { + "id": "73904ef3-3232-4f48-b9fd-321f1acb3dc9", + "type": "text/javascript", + "exec": [ + "" + ], + "_lastExecutionId": "b7716aab-62b5-435b-8dd6-a000665ec6a0" + } + }, + { + "listen": "test", + "script": { + "id": "cc47e34f-4562-43fe-823a-4b4362f5358e", + "type": "text/javascript", + "exec": [ + "" + ], + "_lastExecutionId": "d9a00968-5b5f-476f-88d8-f8c46a9c3358" + } + } + ] + }, + { + "id": "8f4967cf-8906-4655-9b04-a6ab6cb3566b", + "name": "zrc-015", + "item": [ + { + "id": "f06ab89e-66c5-4d05-bc83-c64a54cffcfa", + "name": "(zrc-015a) Zaak productenOfDiensten validatie met Zaaktype productenOfDiensten", + "request": { + "url": { + "path": [ + "zaken" + ], + "host": [ + "{{zrc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Accept-Crs", + "value": "EPSG:4326" + }, + { + "key": "Content-Crs", + "value": "EPSG:4326" + }, + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\r\n\r\n \"bronorganisatie\": \"000000000\",\r\n \"omschrijving\": \"string\",\r\n \"toelichting\": \"string\",\r\n \"zaaktype\": \"{{zaaktype_url}}\",\r\n \"registratiedatum\": \"2019-04-09\",\r\n \"verantwoordelijkeOrganisatie\": \"000000000\",\r\n \"startdatum\": \"2019-04-09\",\r\n \"einddatum\": null,\r\n \"einddatumGepland\": \"2019-04-20\",\r\n \"uiterlijkeEinddatumAfdoening\": \"2019-04-09\",\r\n \"publicatiedatum\": \"2019-04-09\",\r\n \"communicatiekanaal\": \"\",\r\n \"productenOfDiensten\": [\"{{zaak_url}}\"],\r\n \"vertrouwelijkheidaanduiding\": \"geheim\",\r\n \"betalingsindicatie\": \"geheel\",\r\n \"betalingsindicatieWeergave\": null,\r\n \"laatsteBetaaldatum\": \"2019-01-01T00:00:00Z\",\r\n \"zaakgeometrie\": {\r\n \"type\": \"Point\",\r\n \"coordinates\": [\r\n 53.0,\r\n 5.0\r\n ]\r\n },\r\n \"verlenging\": null,\r\n \"opschorting\": {\r\n \"indicatie\": true,\r\n \"reden\": \"string\"\r\n },\r\n \"selectielijstklasse\": \"https://referentielijsten.roxit.nl/api/v1/resultaten/0fe71ce3-b1e1-48eb-9070-be2756fc71b5\",\r\n \"hoofdzaak\": null,\r\n \"deelzaken\": [],\r\n \"relevanteAndereZaken\": [],\r\n \"eigenschappen\": [],\r\n \"rollen\": [],\r\n \"status\": null,\r\n \"zaakinformatieobjecten\": [],\r\n \"zaakobjecten\": [],\r\n \"resultaat\": null,\r\n \"kenmerken\": [],\r\n \"archiefnominatie\": null,\r\n \"archiefstatus\": \"nog_te_archiveren\",\r\n \"archiefactiedatum\": null,\r\n \"opdrachtgevendeOrganisatie\": null,\r\n \"processobjectaard\": null,\r\n \"startdatumBewaartermijn\": null,\r\n \"processobject\": null\r\n}" + } + }, + "response": [], + "event": [ + { + "listen": "prerequest", + "script": { + "id": "2f58eeba-e8e8-4ecf-b7c9-f2596ee006cd", + "type": "text/javascript", + "packages": {}, + "exec": [ + "" + ], + "_lastExecutionId": "0da61bc8-c678-46d7-836b-f5d89ec2fee6" + } + }, + { + "listen": "test", + "script": { + "id": "f8585311-5903-4d13-be16-be1f09c4118d", + "type": "text/javascript", + "packages": {}, + "exec": [ + "pm.test(\"Zaak aanmaken met productenOfDiensten niet in Zaaktype gedefinieerd geeft 400\", function() {", + " pm.response.to.have.status(400);", + " ", + " // Verify that the 400 is returned for the correct reason", + " var error = pm.response.json()[\"invalidParams\"][0];", + " pm.expect(error.name).to.be.equal(\"productenOfDiensten\");", + " pm.expect(error.code).to.be.equal(\"invalid-products-services\");", + "});", + "", + "if(pm.response.code == 201) {", + " pm.environment.set(\"created_zaak_url\", pm.response.json().url);", + "", + "}" + ], + "_lastExecutionId": "0851dfb3-31ab-4d93-ab85-9767831f48c3" + } + } + ] + }, + { + "id": "01c22329-368d-4245-9e76-57c3ac80f39d", + "name": "(zrc-015b) Zaak productenOfDiensten validatie met Zaaktype productenOfDiensten", + "request": { + "url": { + "host": [ + "{{zaak_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Accept-Crs", + "value": "EPSG:4326" + }, + { + "key": "Content-Crs", + "value": "EPSG:4326" + }, + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "PUT", + "body": { + "mode": "raw", + "raw": "{\r\n\r\n \"bronorganisatie\": \"000000000\",\r\n \"omschrijving\": \"string\",\r\n \"toelichting\": \"string\",\r\n \"zaaktype\": \"{{zaaktype_url}}\",\r\n \"registratiedatum\": \"2019-04-09\",\r\n \"verantwoordelijkeOrganisatie\": \"000000000\",\r\n \"startdatum\": \"2019-04-09\",\r\n \"einddatum\": null,\r\n \"einddatumGepland\": \"2019-04-20\",\r\n \"uiterlijkeEinddatumAfdoening\": \"2019-04-09\",\r\n \"publicatiedatum\": \"2019-04-09\",\r\n \"communicatiekanaal\": \"\",\r\n \"productenOfDiensten\": [\"{{zaak_url}}\"],\r\n \"vertrouwelijkheidaanduiding\": \"geheim\",\r\n \"betalingsindicatie\": \"geheel\",\r\n \"betalingsindicatieWeergave\": null,\r\n \"laatsteBetaaldatum\": \"2019-01-01T00:00:00Z\",\r\n \"zaakgeometrie\": {\r\n \"type\": \"Point\",\r\n \"coordinates\": [\r\n 53.0,\r\n 5.0\r\n ]\r\n },\r\n \"verlenging\": null,\r\n \"opschorting\": {\r\n \"indicatie\": true,\r\n \"reden\": \"string\"\r\n },\r\n \"selectielijstklasse\": \"https://referentielijsten.roxit.nl/api/v1/resultaten/0fe71ce3-b1e1-48eb-9070-be2756fc71b5\",\r\n \"hoofdzaak\": null,\r\n \"deelzaken\": [],\r\n \"relevanteAndereZaken\": [],\r\n \"eigenschappen\": [],\r\n \"rollen\": [],\r\n \"status\": null,\r\n \"zaakinformatieobjecten\": [],\r\n \"zaakobjecten\": [],\r\n \"resultaat\": null,\r\n \"kenmerken\": [],\r\n \"archiefnominatie\": null,\r\n \"archiefstatus\": \"nog_te_archiveren\",\r\n \"archiefactiedatum\": null,\r\n \"opdrachtgevendeOrganisatie\": null,\r\n \"processobjectaard\": null,\r\n \"startdatumBewaartermijn\": null,\r\n \"processobject\": null\r\n}" + } + }, + "response": [], + "event": [ + { + "listen": "prerequest", + "script": { + "id": "67e3815b-6402-4c51-b6ac-ad99acc31edc", + "type": "text/javascript", + "packages": {}, + "exec": [ + "" + ], + "_lastExecutionId": "edd96868-6306-4887-a3e9-3e3f4c8ccd53" + } + }, + { + "listen": "test", + "script": { + "id": "96f47701-386f-4bd4-ab5b-78d7334a99e1", + "type": "text/javascript", + "packages": {}, + "exec": [ + "pm.test(\"Zaak bijwerken met productenOfDiensten niet in Zaaktype gedefinieerd geeft 400\", function() {", + " pm.response.to.have.status(400);", + " ", + " // Verify that the 400 is returned for the correct reason", + " var error = pm.response.json()[\"invalidParams\"][0];", + " pm.expect(error.name).to.be.equal(\"productenOfDiensten\");", + " pm.expect(error.code).to.be.equal(\"invalid-products-services\");", + "});" + ], + "_lastExecutionId": "916145c5-fd70-4e7e-9b26-374bfc08e3a8" + } + } + ] + }, + { + "id": "d75f63cd-19db-400c-a62d-3db10f30ed10", + "name": "(zrc-015c) Zaak productenOfDiensten validatie met Zaaktype productenOfDiensten", + "request": { + "url": { + "host": [ + "{{zaak_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Accept-Crs", + "value": "EPSG:4326" + }, + { + "key": "Content-Crs", + "value": "EPSG:4326" + }, + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "PATCH", + "body": { + "mode": "raw", + "raw": "{\n\t\"productenOfDiensten\": [\n\t\t\"{{zaak_url}}\"\t\n\t]\n}" + } + }, + "response": [], + "event": [ + { + "listen": "prerequest", + "script": { + "id": "631128f7-60bb-4deb-be09-56f548bb90ad", + "type": "text/javascript", + "packages": {}, + "exec": [ + "" + ], + "_lastExecutionId": "2e835110-13aa-43c2-a440-89c3665a5493" + } + }, + { + "listen": "test", + "script": { + "id": "96f20108-5c25-4c51-bba0-8cd021f2ec6c", + "type": "text/javascript", + "packages": {}, + "exec": [ + "pm.test(\"Zaak deels bijwerken met productenOfDiensten niet in Zaaktype gedefinieerd geeft 400\", function() {", + " pm.response.to.have.status(400);", + " ", + " // Verify that the 400 is returned for the correct reason", + " var error = pm.response.json()[\"invalidParams\"][0];", + " pm.expect(error.name).to.be.equal(\"productenOfDiensten\");", + " pm.expect(error.code).to.be.equal(\"invalid-products-services\");", + "});" + ], + "_lastExecutionId": "c199af48-1833-4407-a8b7-7cb3c870f42d" + } + } + ] + }, + { + "id": "4ef5ee63-2aff-4e90-b36b-a79ab2b1743e", + "name": "(zrc-015d) Zaak aanmaken met valide productenOfDiensten is mogelijk", + "request": { + "url": { + "path": [ + "zaken" + ], + "host": [ + "{{zrc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Accept-Crs", + "value": "EPSG:4326" + }, + { + "key": "Content-Crs", + "value": "EPSG:4326" + }, + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\r\n\r\n \"bronorganisatie\": \"000000000\",\r\n \"omschrijving\": \"string\",\r\n \"toelichting\": \"string\",\r\n \"zaaktype\": \"{{zaaktype_url}}\",\r\n \"registratiedatum\": \"2019-04-09\",\r\n \"verantwoordelijkeOrganisatie\": \"000000000\",\r\n \"startdatum\": \"2019-04-09\",\r\n \"einddatum\": null,\r\n \"einddatumGepland\": \"2019-04-20\",\r\n \"uiterlijkeEinddatumAfdoening\": \"2019-04-09\",\r\n \"publicatiedatum\": \"2019-04-09\",\r\n \"communicatiekanaal\": \"\",\r\n \"productenOfDiensten\": [\"https://ref.tst.vng.cloud/standaard/\"],\r\n \"vertrouwelijkheidaanduiding\": \"geheim\",\r\n \"betalingsindicatie\": \"geheel\",\r\n \"betalingsindicatieWeergave\": null,\r\n \"laatsteBetaaldatum\": \"2019-01-01T00:00:00Z\",\r\n \"zaakgeometrie\": {\r\n \"type\": \"Point\",\r\n \"coordinates\": [\r\n 53.0,\r\n 5.0\r\n ]\r\n },\r\n \"verlenging\": null,\r\n \"opschorting\": {\r\n \"indicatie\": true,\r\n \"reden\": \"string\"\r\n },\r\n \"selectielijstklasse\": \"https://referentielijsten.roxit.nl/api/v1/resultaten/0fe71ce3-b1e1-48eb-9070-be2756fc71b5\",\r\n \"hoofdzaak\": null,\r\n \"deelzaken\": [],\r\n \"relevanteAndereZaken\": [],\r\n \"eigenschappen\": [],\r\n \"rollen\": [],\r\n \"status\": null,\r\n \"zaakinformatieobjecten\": [],\r\n \"zaakobjecten\": [],\r\n \"resultaat\": null,\r\n \"kenmerken\": [],\r\n \"archiefnominatie\": null,\r\n \"archiefstatus\": \"nog_te_archiveren\",\r\n \"archiefactiedatum\": null,\r\n \"opdrachtgevendeOrganisatie\": null,\r\n \"processobjectaard\": null,\r\n \"startdatumBewaartermijn\": null,\r\n \"processobject\": null\r\n}" + } + }, + "response": [], + "event": [ + { + "listen": "prerequest", + "script": { + "id": "92aa2291-f49e-4c8c-aee5-2b373393d2d5", + "type": "text/javascript", + "packages": {}, + "exec": [ + "" + ], + "_lastExecutionId": "6a59a843-75c6-48c9-a2c9-b8c4bd0fe461" + } + }, + { + "listen": "test", + "script": { + "id": "9ee608a0-e9ff-4b5f-90d5-bf95383b805c", + "type": "text/javascript", + "packages": {}, + "exec": [ + "pm.test(\"Zaak aanmaken met valide productenOfDiensten geeft 201\", function() {", + " pm.response.to.have.status(201);", + " pm.environment.set(\"created_zaak_url\", pm.response.json().url);", + "});" + ], + "_lastExecutionId": "589bac20-12f2-4935-9c77-30f7a5d4a2eb" + } + } + ] + }, + { + "id": "cc9a9e5f-29b8-4a7f-9b47-d089854cbb7e", + "name": "(zrc-015e) Zaak bijwerken met valide productenOfDiensten is mogelijk", + "request": { + "url": { + "host": [ + "{{created_zaak_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Accept-Crs", + "value": "EPSG:4326" + }, + { + "key": "Content-Crs", + "value": "EPSG:4326" + }, + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "PUT", + "body": { + "mode": "raw", + "raw": "{\r\n\r\n \"bronorganisatie\": \"000000000\",\r\n \"omschrijving\": \"string\",\r\n \"toelichting\": \"string\",\r\n \"zaaktype\": \"{{zaaktype_url}}\",\r\n \"registratiedatum\": \"2019-04-09\",\r\n \"verantwoordelijkeOrganisatie\": \"000000000\",\r\n \"startdatum\": \"2019-04-09\",\r\n \"einddatum\": null,\r\n \"einddatumGepland\": \"2019-04-20\",\r\n \"uiterlijkeEinddatumAfdoening\": \"2019-04-09\",\r\n \"publicatiedatum\": \"2019-04-09\",\r\n \"communicatiekanaal\": \"\",\r\n \"productenOfDiensten\": [\"https://ref.tst.vng.cloud/standaard/\"],\r\n \"vertrouwelijkheidaanduiding\": \"geheim\",\r\n \"betalingsindicatie\": \"geheel\",\r\n \"betalingsindicatieWeergave\": null,\r\n \"laatsteBetaaldatum\": \"2019-01-01T00:00:00Z\",\r\n \"zaakgeometrie\": {\r\n \"type\": \"Point\",\r\n \"coordinates\": [\r\n 53.0,\r\n 5.0\r\n ]\r\n },\r\n \"verlenging\": null,\r\n \"opschorting\": {\r\n \"indicatie\": true,\r\n \"reden\": \"string\"\r\n },\r\n \"selectielijstklasse\": \"https://referentielijsten.roxit.nl/api/v1/resultaten/0fe71ce3-b1e1-48eb-9070-be2756fc71b5\",\r\n \"hoofdzaak\": null,\r\n \"deelzaken\": [],\r\n \"relevanteAndereZaken\": [],\r\n \"eigenschappen\": [],\r\n \"rollen\": [],\r\n \"status\": null,\r\n \"zaakinformatieobjecten\": [],\r\n \"zaakobjecten\": [],\r\n \"resultaat\": null,\r\n \"kenmerken\": [],\r\n \"archiefnominatie\": null,\r\n \"archiefstatus\": \"nog_te_archiveren\",\r\n \"archiefactiedatum\": null,\r\n \"opdrachtgevendeOrganisatie\": null,\r\n \"processobjectaard\": null,\r\n \"startdatumBewaartermijn\": null,\r\n \"processobject\": null\r\n}" + } + }, + "response": [], + "event": [ + { + "listen": "prerequest", + "script": { + "id": "c986d7aa-df9a-4c2e-b1bc-9c19502942c9", + "type": "text/javascript", + "packages": {}, + "exec": [ + "" + ], + "_lastExecutionId": "e25c5e6a-4f8e-4f6d-893e-5560660f979f" + } + }, + { + "listen": "test", + "script": { + "id": "4d168225-69e7-40ab-b637-2361f298fe20", + "type": "text/javascript", + "packages": {}, + "exec": [ + "pm.test(\"Zaak bijwerken met valide productenOfDiensten geeft 200\", function() {", + " pm.response.to.have.status(200);", + "});" + ], + "_lastExecutionId": "a0fca66b-4644-46c9-bfe2-5704df346b6e" + } + } + ] + }, + { + "id": "4278ac5c-72c3-4854-9fc0-1212303785dc", + "name": "(zrc-015f) Zaak deels bijwerken met valide productenOfDiensten is mogelijk", + "request": { + "url": { + "host": [ + "{{created_zaak_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Accept-Crs", + "value": "EPSG:4326" + }, + { + "key": "Content-Crs", + "value": "EPSG:4326" + }, + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "PATCH", + "body": { + "mode": "raw", + "raw": "{\r\n \r\n \"productenOfDiensten\": [\"https://ref.tst.vng.cloud/standaard/\"]\r\n}" + } + }, + "response": [], + "event": [ + { + "listen": "prerequest", + "script": { + "id": "784b77d6-27ad-44ae-8e0a-84652e52f531", + "type": "text/javascript", + "packages": {}, + "exec": [ + "" + ], + "_lastExecutionId": "2cc6c2f9-1efa-4df1-a041-62de430d06c0" + } + }, + { + "listen": "test", + "script": { + "id": "abfdce97-8b24-40ce-b79e-56827f3d2474", + "type": "text/javascript", + "packages": {}, + "exec": [ + "pm.test(\"Zaak deels bijwerken met valide productenOfDiensten geeft 200\", function() {", + " pm.response.to.have.status(200);", + "});", + "", + "" + ], + "_lastExecutionId": "478138de-9001-4367-b2c7-b4ba3ab00bf0" + } + } + ] + } + ], + "event": [ + { + "listen": "prerequest", + "script": { + "id": "0b2a3435-d862-4beb-9495-82c93db1062e", + "type": "text/javascript", + "exec": [ + "" + ], + "_lastExecutionId": "26b4e67d-0ed5-4d33-8316-159f32f6cd68" + } + }, + { + "listen": "test", + "script": { + "id": "07876e58-dd37-409f-89d3-485dc61ebea2", + "type": "text/javascript", + "exec": [ + "" + ], + "_lastExecutionId": "7459aa02-15d7-4a49-8ce7-2ac543f298f0" + } + } + ] + }, + { + "id": "e56d27d7-ba81-410c-96f5-58bfd8a7bc18", + "name": "zrc-016", + "item": [ + { + "id": "4dc0bd99-c9a7-46f5-a212-41fcae93afc2", + "name": "Create Zaaktype for statustype validation", + "request": { + "url": { + "path": [ + "zaaktypen" + ], + "host": [ + "{{ztc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{{request_body}}" + } + }, + "response": [], + "event": [ + { + "listen": "prerequest", + "script": { + "id": "1edca6b8-2d5b-40a8-ba3e-5ed43c5a60a9", + "type": "text/javascript", + "exec": [ + "// Retrieve the Zaak body template and modify as needed", + "var body = JSON.parse(pm.environment.get(\"zaaktype_body\"));", + "body.omschrijving = \"TEMP\"", + "body.besluittypen = [];", + "var uuid = require('uuid');", + "var myUUID = uuid.v4(); ", + "body.identificatie = myUUID", + "// Store the modified Zaak body, allowing it to be used in the main request", + "pm.environment.set(\"request_body\", JSON.stringify(body));" + ], + "_lastExecutionId": "6a825816-a6e6-4585-95e3-745ce2f80af8" + } + }, + { + "listen": "test", + "script": { + "id": "4bfc2807-d1a2-45c2-9eb5-156c2c56b99c", + "type": "text/javascript", + "exec": [ + "pm.environment.set(\"temp_zaaktype_url\", pm.response.json().url);" + ], + "_lastExecutionId": "22c840bb-216f-4e8a-8999-76bb6b6494e4" + } + } + ] + }, + { + "id": "14cdcea5-a4d6-44f0-a2cf-13d8f795380c", + "name": "Create Statustype for validation test", + "request": { + "url": { + "path": [ + "statustypen" + ], + "host": [ + "{{ztc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n\t\"omschrijving\": \"Begin\",\n\t\"zaaktype\": \"{{temp_zaaktype_url}}\",\n\t\"volgnummer\": 1\n}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "337cc8e7-07c2-47dc-b796-1aa1223e048a", + "type": "text/javascript", + "exec": [ + "pm.environment.set(\"temp_statustype\", pm.response.json().url);" + ], + "_lastExecutionId": "1971f4d0-c85c-4302-b66f-e9b955cd266e" + } + } + ] + }, + { + "id": "cdb4808d-a849-4b8d-b8ca-2c0f96442911", + "name": "Publish Zaaktype for statustype validation", + "request": { + "url": { + "path": [ + "publish" + ], + "host": [ + "{{temp_zaaktype_url}}" + ], + "query": [], + "variable": [] + }, + "method": "POST" + }, + "response": [], + "event": [] + }, + { + "id": "0e6934e4-9faa-4111-8dc5-e015d3ecbf16", + "name": "Create Zaak for Statustype validation", + "request": { + "url": { + "path": [ + "zaken" + ], + "host": [ + "{{zrc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Accept-Crs", + "value": "EPSG:4326" + }, + { + "key": "Content-Crs", + "value": "EPSG:4326" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{{zaak_body}}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "094acb43-aed6-4b70-9f26-66e535a2238c", + "type": "text/javascript", + "exec": [ + "// If the test failed and the Zaak was created, delete it", + "if(pm.response.code == 201) {", + " pm.environment.set(\"created_zaak_url\", pm.response.json().url);", + "}" + ], + "_lastExecutionId": "5faf4309-853f-45de-9f06-51f4bd632b53" + } + }, + { + "listen": "prerequest", + "script": { + "id": "14e2a98d-0e5b-4291-ab72-192996f30dc1", + "type": "text/javascript", + "exec": [ + "" + ], + "_lastExecutionId": "2593270c-27fb-4f96-9626-43c4deb3c035" + } + } + ] + }, + { + "id": "ade77017-35ea-46a3-b0c1-674ffb35ac33", + "name": "Add Resultaat to Zaak", + "request": { + "url": { + "path": [ + "resultaten" + ], + "host": [ + "{{zrc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n\t\"zaak\": \"{{created_zaak_url}}\",\n\t\"resultaattype\": \"{{resultaattype_url}}\"\n}" + } + }, + "response": [], + "event": [ + { + "listen": "prerequest", + "script": { + "id": "30b6c89f-54d0-485a-814b-42c7ea507ff6", + "type": "text/javascript", + "exec": [ + "pm.environment.set(\"resultaattype\", pm.environment.get(\"zaaktype_resultaattypen\")[0]);" + ], + "_lastExecutionId": "5cfc06fd-88da-41eb-ae5e-4347a3cdff58" + } + }, + { + "listen": "test", + "script": { + "id": "f962841d-f3d7-49d0-a606-0ce738009d06", + "type": "text/javascript", + "exec": [ + "pm.environment.set(\"zaak_resultaat_url\", pm.response.json().url);" + ], + "_lastExecutionId": "70469b7d-1af4-40e4-ba87-6d0ff4e30471" + } + } + ] + }, + { + "id": "954a043b-1b60-4e05-b2c0-d7feb45a05ba", + "name": "(zrc-016a) Status toevoegen aan Zaak met statustype niet in Zaaktype.statustypen is onmogelijk", + "request": { + "url": { + "path": [ + "statussen" + ], + "host": [ + "{{zrc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n\t\"zaak\": \"{{created_zaak_url}}\",\n\t\"statustype\": \"{{temp_statustype}}\",\n\t\"datumStatusGezet\": \"2018-04-20T13:37:00\"\n}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "206e7c5a-889b-43f5-8bfa-85903943bcdb", + "type": "text/javascript", + "exec": [ + "pm.test(\"Status toevoegen aan Zaak met Status.statustype niet in Zaak.zaaktype.statustypen geeft 400\", function() {", + " pm.response.to.have.status(400);", + " ", + " var error = pm.response.json()[\"invalidParams\"][0];", + " pm.expect(error.name).to.be.equal(\"nonFieldErrors\");", + " pm.expect(error.code).to.be.equal(\"zaaktype-mismatch\");", + "});" + ], + "_lastExecutionId": "d82ca810-a6cf-4367-a093-4563d0747422" + } + }, + { + "listen": "prerequest", + "script": { + "id": "c57be017-d106-4ec7-b73a-f0ce887e6772", + "type": "text/javascript", + "exec": [ + "" + ], + "_lastExecutionId": "b3f3e87c-d66b-401c-8515-2ca082c60f81" + } + } + ] + } + ], + "event": [] + }, + { + "id": "069f8d1b-b8fd-4262-9644-5497d279139d", + "name": "zrc-017", + "item": [ + { + "id": "f64d9251-8dd3-4b49-bc46-7b3e0ae89842", + "name": "ZT", + "request": { + "url": { + "path": [ + "zaaktypen" + ], + "host": [ + "{{ztc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n\t\"identificatie\": \"{{random_identificatie}}\",\n \"omschrijving\": \"zrc_tests_1\",\n \"vertrouwelijkheidaanduiding\": \"openbaar\",\n \"doel\": \"test doel\",\n \"verantwoordelijke\":\"X\",\n \"aanleiding\": \"test aanleiding\",\n \"indicatieInternOfExtern\": \"extern\",\n \"handelingInitiator\": \"indienen\",\n \"onderwerp\": \"openbare ruimte\",\n \"handelingBehandelaar\": \"behandelen\",\n \"doorlooptijd\": \"P10D\",\n \"opschortingEnAanhoudingMogelijk\": false,\n \"verlengingMogelijk\": true,\n \"publicatieIndicatie\": false,\n \"productenOfDiensten\": [\n \"https://ref.tst.vng.cloud/standaard/\"\n ],\n \"selectielijstProcestype\": \"{{procestype_procestermijn_nihil_url}}\",\n \"referentieproces\": {\n \"naam\": \"test\",\n \"link\": \"\"\n },\n \"deelzaaktypen\": [\n \"{{deelzaaktype_identificatie}}\"\n ],\n \"catalogus\": \"{{catalogus_url}}\",\n \"statustypen\": [\n \n ],\n \"resultaattypen\": [\n ],\n \"eigenschappen\": [\n ],\n \"informatieobjecttypen\": [],\n \"besluittypen\": [\n \"{{besluit_omschrijving}}\"\n ],\n \"gerelateerdeZaaktypen\": [],\n \"beginGeldigheid\": \"2019-01-01\",\n \"versiedatum\": \"2019-01-01\",\n \"concept\": true,\n \"verlengingstermijn\": \"P5D\"\n}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "cc43a7fe-53bc-4955-bbc1-d57bb829fa15", + "type": "text/javascript", + "packages": {}, + "exec": [ + "if(pm.response.code == 201) {", + " pm.environment.set(\"temp_zaaktype_url\", pm.response.json().url);", + "}" + ], + "_lastExecutionId": "4953529d-8a22-452f-81c6-eaf6f469689c" + } + }, + { + "listen": "prerequest", + "script": { + "id": "dec0da5c-42a2-4233-aea6-8601fc33f592", + "type": "text/javascript", + "packages": {}, + "exec": [ + "var uuid = require('uuid');", + "var myUUID = uuid.v4(); ", + "pm.environment.set(\"random_identificatie\", myUUID);", + "" + ], + "_lastExecutionId": "9720e0c3-0bc2-485e-8a64-d2f48a122091" + } + } + ] + }, + { + "id": "cacd57c4-336a-4a42-ada2-21e46aac464b", + "name": "IOT", + "request": { + "url": { + "path": [ + "informatieobjecttypen" + ], + "host": [ + "{{ztc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n\t\"catalogus\": \"{{catalogus_url}}\",\n\t\"omschrijving\": \"{{informatieobject_omschrijving}}\",\n\t\"vertrouwelijkheidaanduiding\": \"openbaar\",\n\t\"beginGeldigheid\": \"2019-01-01\",\n\t\"informatieobjectcategorie\": \"document\"\n}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "12fb32a4-3f80-49b1-8539-6909f890b5a1", + "type": "text/javascript", + "packages": {}, + "exec": [ + "if(pm.response.code == 201) {\r", + " pm.environment.set(\"temp_iot_url\", pm.response.json().url);\r", + "}" + ], + "_lastExecutionId": "289722fe-54f9-4cea-9871-f8ded8329e64" + } + }, + { + "listen": "prerequest", + "script": { + "id": "c7286960-f8f7-416e-adbf-091db59ee433", + "type": "text/javascript", + "packages": {}, + "exec": [ + "var uuid = require('uuid');\r", + "var myUUID = uuid.v4(); \r", + "pm.environment.set(\"informatieobject_omschrijving\", myUUID);" + ], + "_lastExecutionId": "ca1b2ed2-929a-499f-968f-0534677e437c" + } + } + ] + }, + { + "id": "8898ac13-d1ed-4bc4-b705-3e03e9faa64f", + "name": "Publish temp Informatieobjecttype", + "request": { + "url": { + "path": [ + "publish" + ], + "host": [ + "{{temp_iot_url}}" + ], + "query": [], + "variable": [] + }, + "method": "POST" + }, + "response": [], + "event": [] + }, + { + "id": "e7182a5c-8e38-4f30-84a7-0320c39157ed", + "name": "Publish Zaaktype for informatieobjecttype validation", + "request": { + "url": { + "path": [ + "publish" + ], + "host": [ + "{{temp_zaaktype_url}}" + ], + "query": [], + "variable": [] + }, + "method": "POST" + }, + "response": [], + "event": [] + }, + { + "id": "3d80773c-c87e-42a3-a99d-cf230fcc50ab", + "name": "Create Zaak for informatieobjecttype validation", + "request": { + "url": { + "path": [ + "zaken" + ], + "host": [ + "{{zrc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Accept-Crs", + "value": "EPSG:4326" + }, + { + "key": "Content-Crs", + "value": "EPSG:4326" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\r\n\r\n \"bronorganisatie\": \"000000000\",\r\n \"omschrijving\": \"string\",\r\n \"toelichting\": \"string\",\r\n \"zaaktype\": \"{{temp_zaaktype_url}}\",\r\n \"registratiedatum\": \"2019-04-09\",\r\n \"verantwoordelijkeOrganisatie\": \"000000000\",\r\n \"startdatum\": \"2019-04-09\",\r\n \"einddatum\": null,\r\n \"einddatumGepland\": \"2019-04-20\",\r\n \"uiterlijkeEinddatumAfdoening\": \"2019-04-09\",\r\n \"publicatiedatum\": \"2019-04-09\",\r\n \"communicatiekanaal\": \"\",\r\n \"productenOfDiensten\": [],\r\n \"vertrouwelijkheidaanduiding\": \"geheim\",\r\n \"betalingsindicatie\": \"geheel\",\r\n \"betalingsindicatieWeergave\": null,\r\n \"laatsteBetaaldatum\": \"2019-01-01T00:00:00Z\",\r\n \"zaakgeometrie\": {\r\n \"type\": \"Point\",\r\n \"coordinates\": [\r\n 53.0,\r\n 5.0\r\n ]\r\n },\r\n \"verlenging\": null,\r\n \"opschorting\": {\r\n \"indicatie\": true,\r\n \"reden\": \"string\"\r\n },\r\n \"selectielijstklasse\": \"https://referentielijsten.roxit.nl/api/v1/resultaten/0fe71ce3-b1e1-48eb-9070-be2756fc71b5\",\r\n \"hoofdzaak\": null,\r\n \"deelzaken\": [],\r\n \"relevanteAndereZaken\": [],\r\n \"eigenschappen\": [],\r\n \"rollen\": [],\r\n \"status\": null,\r\n \"zaakinformatieobjecten\": [],\r\n \"zaakobjecten\": [],\r\n \"resultaat\": null,\r\n \"kenmerken\": [],\r\n \"archiefnominatie\": null,\r\n \"archiefstatus\": \"nog_te_archiveren\",\r\n \"archiefactiedatum\": null,\r\n \"opdrachtgevendeOrganisatie\": null,\r\n \"processobjectaard\": null,\r\n \"startdatumBewaartermijn\": null,\r\n \"processobject\": null\r\n}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "d268a89b-9d3a-43fb-803c-59776a8d3cfb", + "type": "text/javascript", + "packages": {}, + "exec": [ + "// If the test failed and the Zaak was created, delete it", + "if(pm.response.code == 201) {", + " pm.environment.set(\"created_zaak_url\", pm.response.json().url);", + "}" + ], + "_lastExecutionId": "80d7f3af-e144-499d-af1b-311a16b88496" + } + }, + { + "listen": "prerequest", + "script": { + "id": "128ab0ac-b4ea-4553-8d58-370dd6093d0b", + "type": "text/javascript", + "packages": {}, + "exec": [ + "" + ], + "_lastExecutionId": "e48296a9-6094-4396-b1b2-fd5ea9d3af6f" + } + } + ] + }, + { + "id": "b114617f-583c-4819-8fb2-caa0e7eda2d8", + "name": "Create EnkelvoudigInformatieObject for informatieobjecttype validation", + "request": { + "url": { + "path": [ + "enkelvoudiginformatieobjecten" + ], + "host": [ + "{{drc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n\t\"bronorganisatie\": \"000000000\",\n\t\"creatiedatum\": \"2019-01-01\",\n\t\"titel\": \"testobject\",\n\t\"auteur\": \"testauteur\",\n\t\"taal\": \"eng\",\n\t\"inhoud\": \"c3RyaW5n\",\n\t\"informatieobjecttype\": \"{{temp_iot_url}}\",\n \"bestandsnaam\": \"x.pdf\",\n\t\"bestandsomvang\": 6\n}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "96f5ad01-6dc5-4a02-a507-a14df91ca349", + "type": "text/javascript", + "packages": {}, + "exec": [ + "pm.environment.set(\"created_informatieobject_url\", pm.response.json().url);" + ], + "_lastExecutionId": "c46bed1c-6746-4cc8-8441-c969748790b2" + } + }, + { + "listen": "prerequest", + "script": { + "id": "82e5a166-67ac-45a6-8be7-202cf2a74844", + "type": "text/javascript", + "packages": {}, + "exec": [ + "" + ], + "_lastExecutionId": "0e1a167a-7942-4f7f-a31a-1de504c9ef2b" + } + } + ] + }, + { + "id": "f8ad51e2-2b37-4b0e-b07d-f9aa3df7227f", + "name": "(zrc-017a) ZaakInformatieObject aanmaken met informatieobjecttype niet in Zaaktype.informatieobjecttypen is onmogelijk", + "request": { + "url": { + "path": [ + "zaakinformatieobjecten" + ], + "host": [ + "{{zrc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n\t\"zaak\": \"{{created_zaak_url}}\",\n\t\"informatieobject\": \"{{created_informatieobject_url}}\",\n\t\"titel\": \"bla\"\n}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "b193a57f-9cf5-405c-9474-670dc3a31c6d", + "type": "text/javascript", + "exec": [ + "pm.test(\"ZaakInformatieObject toevoegen aan Zaak met ZaakInformatieObject.informatieobject.informatieobjecttypen niet in Zaak.zaaktype.informatieobjecttypen geeft 400\", function() {", + " pm.response.to.have.status(400);", + " ", + " var error = pm.response.json()[\"invalidParams\"][0];", + " pm.expect(error.name).to.be.equal(\"nonFieldErrors\");", + " pm.expect(error.code).to.be.equal(\"missing-zaaktype-informatieobjecttype-relation\");", + "});" + ], + "_lastExecutionId": "bdcdb43e-75bf-4d19-95df-73ff8b099779" + } + } + ] + } + ], + "event": [] + }, + { + "id": "42d6b24d-2cfb-42af-b0eb-6d0f279b4015", + "name": "zrc-018", + "item": [ + { + "id": "3a23e2b3-30c7-4c35-99a6-ded05d836abb", + "name": "Create Zaaktype for eigenschap validation", + "request": { + "url": { + "path": [ + "zaaktypen" + ], + "host": [ + "{{ztc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{{request_body}}" + } + }, + "response": [], + "event": [ + { + "listen": "prerequest", + "script": { + "id": "45ecef49-7909-4be8-bf47-8b3ee0662208", + "type": "text/javascript", + "exec": [ + "// Retrieve the Zaak body template and modify as needed", + "var body = JSON.parse(pm.environment.get(\"zaaktype_body\"));", + "body.omschrijving = \"TEMP\"", + "body.besluittypen = [];", + "", + "var uuid = require('uuid');", + "var myUUID = uuid.v4(); ", + "body.identificatie = myUUID", + "// Store the modified Zaak body, allowing it to be used in the main request", + "pm.environment.set(\"request_body\", JSON.stringify(body));" + ], + "_lastExecutionId": "25795abc-52f7-4a4a-a58b-91ea01542ec6" + } + }, + { + "listen": "test", + "script": { + "id": "753d317a-6f37-46e1-9921-489af51c60b5", + "type": "text/javascript", + "exec": [ + "pm.environment.set(\"temp_zaaktype_url\", pm.response.json().url);" + ], + "_lastExecutionId": "a6847c19-b69f-4d4e-b969-1056904c9909" + } + } + ] + }, + { + "id": "02072489-9c3d-4b72-9dc7-d82ba4c1a8aa", + "name": "Create Eigenschap", + "request": { + "url": { + "path": [ + "eigenschappen" + ], + "host": [ + "{{ztc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n\t\"naam\": \"TEMP\",\n\t\"definitie\": \"for test\",\n\t\"zaaktype\": \"{{temp_zaaktype_url}}\",\n \"specificatie\": {\n \"formaat\": \"tekst\",\n \"lengte\": \"5\",\n \"kardinaliteit\": \"1\",\n \"waardenverzameling\": [\"test\"]\n }\n}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "ce9c058d-e515-4d9b-b058-2c45199d021a", + "type": "text/javascript", + "exec": [ + "pm.environment.set(\"temp_eigenschap\", pm.response.json().url);" + ], + "_lastExecutionId": "1c638fbd-2e40-407f-b6e6-7bd5e7103eeb" + } + } + ] + }, + { + "id": "b730db9f-b222-4cd4-9ec2-39284bbdbe73", + "name": "Publish Zaaktype for eigenschap validation", + "request": { + "url": { + "path": [ + "publish" + ], + "host": [ + "{{temp_zaaktype_url}}" + ], + "query": [], + "variable": [] + }, + "method": "POST" + }, + "response": [], + "event": [] + }, + { + "id": "0888789d-6de5-4b85-b2d2-2f5f26e7cc46", + "name": "Create Zaak for eigenschap validation", + "request": { + "url": { + "path": [ + "zaken" + ], + "host": [ + "{{zrc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Accept-Crs", + "value": "EPSG:4326" + }, + { + "key": "Content-Crs", + "value": "EPSG:4326" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{{zaak_body}}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "3c03356b-fa2f-49c3-b43f-6b71063b3dd3", + "type": "text/javascript", + "exec": [ + "// If the test failed and the Zaak was created, delete it", + "if(pm.response.code == 201) {", + " pm.environment.set(\"created_zaak_url\", pm.response.json().url);", + "}" + ], + "_lastExecutionId": "dc520a77-79e1-4c22-9917-48c57c4619dc" + } + }, + { + "listen": "prerequest", + "script": { + "id": "75c37cf7-df05-4a74-a503-3e5b0b7f4838", + "type": "text/javascript", + "exec": [ + "" + ], + "_lastExecutionId": "69e7aece-1a8b-41e6-a232-5668f1fe9f5a" + } + } + ] + }, + { + "id": "73fe5131-346f-4133-9e49-f2577601d17f", + "name": "(zrc-018a) ZaakEigenschap toevoegen aan Zaak met eigenschap die niet hoort bij Zaak.zaaktype is onmogelijk", + "request": { + "url": { + "path": [ + "zaakeigenschappen" + ], + "host": [ + "{{created_zaak_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n\t\"zaak\": \"{{created_zaak_url}}\",\n\t\"eigenschap\": \"{{temp_eigenschap}}\",\n\t\"waarde\": \"ja\"\n}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "67dc04dc-d974-4d15-ab15-915b8a33d95f", + "type": "text/javascript", + "exec": [ + "pm.test(\"(zrc-018a) ZaakEigenschap toevoegen aan Zaak met eigenschap die niet hoort bij Zaak.zaaktype geeft 400\", function() {", + " pm.response.to.have.status(400);", + " ", + " var error = pm.response.json()[\"invalidParams\"][0];", + " pm.expect(error.name).to.be.equal(\"nonFieldErrors\");", + " pm.expect(error.code).to.be.equal(\"zaaktype-mismatch\");", + "});" + ], + "_lastExecutionId": "f5990f0f-5022-4fa5-9eb1-2e363ea95f7e" + } + } + ] + }, + { + "id": "e42e70ce-35ad-426f-a6ca-407d8b94fd80", + "name": "Delete Eigenschap", + "request": { + "url": { + "host": [ + "{{temp_eigenschap}}" + ], + "query": [], + "variable": [] + }, + "method": "DELETE" + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "1c7e2561-e70b-40ed-9fc3-e1adff264998", + "type": "text/javascript", + "exec": [ + "pm.environment.unset(\"temp_eigenschap\");" + ], + "_lastExecutionId": "3c50231f-7eb6-4da6-8130-820d2b00b9a8" + } + } + ] + }, + { + "id": "a57a26a7-3760-46de-bcf1-749f0215ca1e", + "name": "Delete Zaaktype for eigenschap validation", + "request": { + "url": { + "host": [ + "{{temp_zaaktype_url}}" + ], + "query": [], + "variable": [] + }, + "method": "DELETE" + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "9a3bfeda-1647-4b17-bcaf-8fc28ab38fea", + "type": "text/javascript", + "packages": {}, + "exec": [ + "pm.environment.unset(\"temp_zaaktype_url\");", + "" + ], + "_lastExecutionId": "c66add51-6fcf-4cfb-af42-6e08b2e274cc" + } + } + ] + } + ], + "event": [] + }, + { + "id": "4766873a-9a82-4b8a-8a7d-0e3c1458efa9", + "name": "ztc-019", + "item": [ + { + "id": "1df39e9c-74ef-41c1-b1dd-49f96000563d", + "name": "Create Zaaktype for roltype validation", + "request": { + "url": { + "path": [ + "zaaktypen" + ], + "host": [ + "{{ztc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{{request_body}}" + } + }, + "response": [], + "event": [ + { + "listen": "prerequest", + "script": { + "id": "b4321e7a-2474-4e63-bde9-e92551fd9e87", + "type": "text/javascript", + "exec": [ + "// Retrieve the Zaak body template and modify as needed", + "var body = JSON.parse(pm.environment.get(\"zaaktype_body\"));", + "body.omschrijving = \"TEMP\"", + "body.besluittypen = [];", + "", + "var uuid = require('uuid');", + "var myUUID = uuid.v4(); ", + "body.identificatie = myUUID", + "// Store the modified Zaak body, allowing it to be used in the main request", + "pm.environment.set(\"request_body\", JSON.stringify(body));" + ], + "_lastExecutionId": "5e975bbe-b24c-45f8-b67e-e81f9021bc5d" + } + }, + { + "listen": "test", + "script": { + "id": "3d7cd4b8-f774-4d1d-ad86-09abb2313e8a", + "type": "text/javascript", + "exec": [ + "pm.environment.set(\"temp_zaaktype_url\", pm.response.json().url);" + ], + "_lastExecutionId": "3d25069f-4292-4712-a712-1a717f25d7be" + } + } + ] + }, + { + "id": "e437fbfc-26c0-4c6b-9128-4334ecdf8cf8", + "name": "Create Roltype", + "request": { + "url": { + "path": [ + "roltypen" + ], + "host": [ + "{{ztc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n\t\"omschrijving\": \"TEMP\",\n\t\"omschrijvingGeneriek\": \"adviseur\",\n\t\"zaaktype\": \"{{temp_zaaktype_url}}\"\n}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "f20766a7-14de-417b-8b5a-c9f31c87ed07", + "type": "text/javascript", + "exec": [ + "pm.environment.set(\"temp_roltype\", pm.response.json().url);" + ], + "_lastExecutionId": "20974693-53cd-450e-a635-de0664bca079" + } + } + ] + }, + { + "id": "57908bd9-916c-4cab-8329-8c5a710a9b60", + "name": "Publish Zaaktype for roltype validation", + "request": { + "url": { + "path": [ + "publish" + ], + "host": [ + "{{temp_zaaktype_url}}" + ], + "query": [], + "variable": [] + }, + "method": "POST" + }, + "response": [], + "event": [] + }, + { + "id": "f5ba079b-a1c8-4c35-8ff7-d21914d51d7c", + "name": "Create Zaak for roltype validation", + "request": { + "url": { + "path": [ + "zaken" + ], + "host": [ + "{{zrc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Accept-Crs", + "value": "EPSG:4326" + }, + { + "key": "Content-Crs", + "value": "EPSG:4326" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{{zaak_body}}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "c5ef8415-5058-43e8-ba57-06993c108143", + "type": "text/javascript", + "exec": [ + "// If the test failed and the Zaak was created, delete it", + "if(pm.response.code == 201) {", + " pm.environment.set(\"created_zaak_url\", pm.response.json().url);", + "}" + ], + "_lastExecutionId": "eb0e6c67-5ed9-4542-9c1c-baa3949ac78d" + } + }, + { + "listen": "prerequest", + "script": { + "id": "e09b5f9a-986c-46be-8afb-adc75e93601e", + "type": "text/javascript", + "exec": [ + "" + ], + "_lastExecutionId": "adad1c74-c522-4bef-ba9c-9fef4bf375ab" + } + } + ] + }, + { + "id": "11fc223e-8d50-46ed-88d8-c2049b0d7eb9", + "name": "(zrc-019a) Rol toevoegen aan Zaak met roltype die niet hoort bij Zaak.zaaktype is onmogelijk", + "request": { + "url": { + "path": [ + "rollen" + ], + "host": [ + "{{zrc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n\t\"zaak\": \"{{created_zaak_url}}\",\n\t\"betrokkeneType\": \"natuurlijk_persoon\",\n\t\"roltype\": \"{{temp_roltype}}\",\n\t\"roltoelichting\": \"bla\"\n}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "2a658ee8-c39f-411d-a401-7d81dd72eae4", + "type": "text/javascript", + "exec": [ + "pm.test(\"(zrc-018a) Rol toevoegen aan Zaak met roltype die niet hoort bij Zaak.zaaktype geeft 400\", function() {", + " pm.response.to.have.status(400);", + " ", + " var error = pm.response.json()[\"invalidParams\"][0];", + " pm.expect(error.name).to.be.equal(\"nonFieldErrors\");", + " pm.expect(error.code).to.be.equal(\"zaaktype-mismatch\");", + "});" + ], + "_lastExecutionId": "62dcf797-17dc-43bb-8d55-18d2f7d4cdb4" + } + } + ] + } + ], + "event": [] + }, + { + "id": "6a38fa9d-0e5a-4470-b1c3-f5861dd28f6a", + "name": "zrc-020", + "item": [ + { + "id": "b1de255d-aa2a-4607-81ca-c9ddb5464fa9", + "name": "ZT", + "request": { + "url": { + "path": [ + "zaaktypen" + ], + "host": [ + "{{ztc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n\t\"identificatie\": \"{{random_identificatie}}\",\n \"omschrijving\": \"zrc_tests_1\",\n \"vertrouwelijkheidaanduiding\": \"openbaar\",\n \"doel\": \"test doel\",\n \"verantwoordelijke\":\"X\",\n \"aanleiding\": \"test aanleiding\",\n \"indicatieInternOfExtern\": \"extern\",\n \"handelingInitiator\": \"indienen\",\n \"onderwerp\": \"openbare ruimte\",\n \"handelingBehandelaar\": \"behandelen\",\n \"doorlooptijd\": \"P10D\",\n \"opschortingEnAanhoudingMogelijk\": false,\n \"verlengingMogelijk\": true,\n \"publicatieIndicatie\": false,\n \"productenOfDiensten\": [\n \"https://ref.tst.vng.cloud/standaard/\"\n ],\n \"selectielijstProcestype\": \"{{procestype_procestermijn_nihil_url}}\",\n \"referentieproces\": {\n \"naam\": \"test\",\n \"link\": \"\"\n },\n \"deelzaaktypen\": [\n \"{{deelzaaktype_identificatie}}\"\n ],\n \"catalogus\": \"{{catalogus_url}}\",\n \"statustypen\": [\n \n ],\n \"resultaattypen\": [\n ],\n \"eigenschappen\": [\n ],\n \"informatieobjecttypen\": [],\n \"besluittypen\": [\n \"{{besluit_omschrijving}}\"\n ],\n \"gerelateerdeZaaktypen\": [],\n \"beginGeldigheid\": \"2019-01-01\",\n \"versiedatum\": \"2019-01-01\",\n \"concept\": true,\n \"verlengingstermijn\": \"P5D\"\n}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "b8347eff-a7ee-4da8-92f1-19bf561f4e04", + "type": "text/javascript", + "packages": {}, + "exec": [ + "if(pm.response.code == 201) {", + " pm.environment.set(\"temp_zaaktype_url\", pm.response.json().url);", + "}" + ], + "_lastExecutionId": "b221ec62-d453-49c3-80e8-da9b1c8a8f6a" + } + }, + { + "listen": "prerequest", + "script": { + "id": "bb5e55e7-bf77-400a-81c5-ecf2898e11d3", + "type": "text/javascript", + "packages": {}, + "exec": [ + "var uuid = require('uuid');", + "var myUUID = uuid.v4(); ", + "pm.environment.set(\"random_identificatie\", myUUID);", + "" + ], + "_lastExecutionId": "b097499a-6bc0-4550-a707-696dd90c35fd" + } + } + ] + }, + { + "id": "8dd52372-1663-4da6-98eb-1a792086388f", + "name": "Create Resultaattype", + "request": { + "url": { + "path": [ + "resultaattypen" + ], + "host": [ + "{{ztc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n\t\"zaaktype\": \"{{temp_zaaktype_url}}\",\n\t\"omschrijving\": \"Klaar\",\n\t\"resultaattypeomschrijving\": \"https://referentielijsten.roxit.nl/api/v1/resultaattypeomschrijvingen/4a6b5072-e44f-4826-9546-e8074499654e\",\n\t\"selectielijstklasse\": \"{{selectielijstklasse_procestermijn_nihil_url}}\",\n \"besluittypen\": [],\n\t\"brondatumArchiefprocedure\": {\n\t\t\"afleidingswijze\": \"afgehandeld\",\n\t\t\"procestermijn\": null,\n\t\t\"datumkenmerk\": \"\",\n\t\t\"einddatumBekend\": false,\n\t\t\"objecttype\": \"\",\n\t\t\"registratie\": \"\"\n\t}\n}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "cc5b83c9-75ad-41f0-b581-3ce6ea792c62", + "type": "text/javascript", + "packages": {}, + "exec": [ + "pm.environment.set(\"temp_resultaattype\", pm.response.json().url);" + ], + "_lastExecutionId": "da4a052d-cf5d-4770-b9ea-e16cb836106d" + } + } + ] + }, + { + "id": "00fd6141-cf1a-4fe6-b6b8-73ec7aef0858", + "name": "Publish Zaaktype for resultaattype validation", + "request": { + "url": { + "path": [ + "publish" + ], + "host": [ + "{{temp_zaaktype_url}}" + ], + "query": [], + "variable": [] + }, + "method": "POST" + }, + "response": [], + "event": [] + }, + { + "id": "80daed8e-5625-4bb7-ab5d-baa3835f0667", + "name": "Create Zaak for resultaattype validation", + "request": { + "url": { + "path": [ + "zaken" + ], + "host": [ + "{{zrc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Accept-Crs", + "value": "EPSG:4326" + }, + { + "key": "Content-Crs", + "value": "EPSG:4326" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\r\n\r\n \"bronorganisatie\": \"000000000\",\r\n \"omschrijving\": \"string\",\r\n \"toelichting\": \"string\",\r\n \"zaaktype\": \"{{zaaktype_url}}\",\r\n \"registratiedatum\": \"2019-04-09\",\r\n \"verantwoordelijkeOrganisatie\": \"000000000\",\r\n \"startdatum\": \"2019-04-09\",\r\n \"einddatum\": null,\r\n \"einddatumGepland\": \"2019-04-20\",\r\n \"uiterlijkeEinddatumAfdoening\": \"2019-04-09\",\r\n \"publicatiedatum\": \"2019-04-09\",\r\n \"communicatiekanaal\": \"\",\r\n \"productenOfDiensten\": [],\r\n \"vertrouwelijkheidaanduiding\": \"geheim\",\r\n \"betalingsindicatie\": \"geheel\",\r\n \"betalingsindicatieWeergave\": null,\r\n \"laatsteBetaaldatum\": \"2019-01-01T00:00:00Z\",\r\n \"zaakgeometrie\": {\r\n \"type\": \"Point\",\r\n \"coordinates\": [\r\n 53.0,\r\n 5.0\r\n ]\r\n },\r\n \"verlenging\": null,\r\n \"opschorting\": {\r\n \"indicatie\": true,\r\n \"reden\": \"string\"\r\n },\r\n \"selectielijstklasse\": \"https://referentielijsten.roxit.nl/api/v1/resultaten/0fe71ce3-b1e1-48eb-9070-be2756fc71b5\",\r\n \"hoofdzaak\": null,\r\n \"deelzaken\": [],\r\n \"relevanteAndereZaken\": [],\r\n \"eigenschappen\": [],\r\n \"rollen\": [],\r\n \"status\": null,\r\n \"zaakinformatieobjecten\": [],\r\n \"zaakobjecten\": [],\r\n \"resultaat\": null,\r\n \"kenmerken\": [],\r\n \"archiefnominatie\": null,\r\n \"archiefstatus\": \"nog_te_archiveren\",\r\n \"archiefactiedatum\": null,\r\n \"opdrachtgevendeOrganisatie\": null,\r\n \"processobjectaard\": null,\r\n \"startdatumBewaartermijn\": null,\r\n \"processobject\": null\r\n}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "1c640716-ca16-4f19-9692-7abd9c3fa178", + "type": "text/javascript", + "packages": {}, + "exec": [ + "// If the test failed and the Zaak was created, delete it", + "if(pm.response.code == 201) {", + " pm.environment.set(\"created_zaak_url\", pm.response.json().url);", + "}" + ], + "_lastExecutionId": "29f6f6a4-edbb-46b4-9d7c-e08d23a9030f" + } + }, + { + "listen": "prerequest", + "script": { + "id": "db255ca2-34e3-44a0-8991-9f8e6b126530", + "type": "text/javascript", + "packages": {}, + "exec": [ + "" + ], + "_lastExecutionId": "2ee987be-0390-46e8-ad01-3034df15f049" + } + } + ] + }, + { + "id": "fb8d9047-cf1c-4770-8a42-6d1dabcac3af", + "name": "(zrc-020a) Resultaat toevoegen aan Zaak met resultaattype die niet hoort bij Zaak.zaaktype is onmogelijk", + "request": { + "url": { + "path": [ + "resultaten" + ], + "host": [ + "{{zrc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n\t\"zaak\": \"{{created_zaak_url}}\",\n\t\"resultaattype\": \"{{temp_resultaattype}}\"\n}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "f03d1531-c090-459c-8719-0e05d4934d16", + "type": "text/javascript", + "exec": [ + "pm.test(\"(zrc-020a) Resultaat toevoegen aan Zaak met resultaattype die niet hoort bij Zaak.zaaktype geeft 400\", function() {", + " pm.response.to.have.status(400);", + " ", + " var error = pm.response.json()[\"invalidParams\"][0];", + " pm.expect(error.name).to.be.equal(\"nonFieldErrors\");", + " pm.expect(error.code).to.be.equal(\"zaaktype-mismatch\");", + "});" + ], + "_lastExecutionId": "d1bfa998-fff8-418d-b024-36c070a6d20b" + } + } + ] + } + ], + "event": [] + }, + { + "id": "cc2d3e0e-e15c-454b-810a-957e13e090d7", + "name": "zrc-021", + "item": [ + { + "id": "1c0526cc-bb2d-426c-8cd7-af55eebf4aa7", + "name": "zrc-021a", + "item": [ + { + "id": "55386c1f-adf4-44d5-88b2-07c16a1f87dc", + "name": "ZT", + "request": { + "url": { + "path": [ + "zaaktypen" + ], + "host": [ + "{{ztc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n\t\"identificatie\": \"{{random_identificatie}}\",\n \"omschrijving\": \"zrc_tests_1\",\n \"vertrouwelijkheidaanduiding\": \"openbaar\",\n \"doel\": \"test doel\",\n \"verantwoordelijke\":\"X\",\n \"aanleiding\": \"test aanleiding\",\n \"indicatieInternOfExtern\": \"extern\",\n \"handelingInitiator\": \"indienen\",\n \"onderwerp\": \"openbare ruimte\",\n \"handelingBehandelaar\": \"behandelen\",\n \"doorlooptijd\": \"P10D\",\n \"opschortingEnAanhoudingMogelijk\": false,\n \"verlengingMogelijk\": true,\n \"publicatieIndicatie\": false,\n \"productenOfDiensten\": [\n \"https://ref.tst.vng.cloud/standaard/\"\n ],\n \"selectielijstProcestype\": \"{{procestype_procestermijn_nihil_url}}\",\n \"referentieproces\": {\n \"naam\": \"test\",\n \"link\": \"\"\n },\n \"deelzaaktypen\": [\n \"{{deelzaaktype_identificatie}}\"\n ],\n \"catalogus\": \"{{catalogus_url}}\",\n \"statustypen\": [\n \n ],\n \"resultaattypen\": [\n ],\n \"eigenschappen\": [\n ],\n \"informatieobjecttypen\": [],\n \"besluittypen\": [\n \"{{besluit_omschrijving}}\"\n ],\n \"gerelateerdeZaaktypen\": [],\n \"beginGeldigheid\": \"2019-01-01\",\n \"versiedatum\": \"2019-01-01\",\n \"concept\": true,\n \"verlengingstermijn\": \"P5D\"\n}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "0fbf79aa-72a8-4ad6-92b2-935166bd166d", + "type": "text/javascript", + "packages": {}, + "exec": [ + "if(pm.response.code == 201) {", + "", + " pm.environment.set(\"zaaktype_procestermijn_nihil_url\", pm.response.json().url);", + "}" + ], + "_lastExecutionId": "5c5f419b-4c82-4681-8cee-f76e92e06d60" + } + }, + { + "listen": "prerequest", + "script": { + "id": "7521147a-8415-4719-88cd-19c2d864dbaf", + "type": "text/javascript", + "packages": {}, + "exec": [ + "var uuid = require('uuid');", + "var myUUID = uuid.v4(); ", + "pm.environment.set(\"random_identificatie\", myUUID);", + "" + ], + "_lastExecutionId": "7bdb6766-00e2-4782-84df-c4d245dd4410" + } + } + ] + }, + { + "id": "b5754e41-f81b-4a6b-85a2-ad8069a27faa", + "name": "Create Resultaattype procestermijn nihil", + "request": { + "url": { + "path": [ + "resultaattypen" + ], + "host": [ + "{{ztc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n\t\"zaaktype\": \"{{zaaktype_procestermijn_nihil_url}}\",\n\t\"omschrijving\": \"Klaar\",\n\t\"resultaattypeomschrijving\": \"https://referentielijsten.roxit.nl/api/v1/resultaattypeomschrijvingen/4a6b5072-e44f-4826-9546-e8074499654e\",\n\t\"selectielijstklasse\": \"{{selectielijstklasse_procestermijn_nihil_url}}\",\n \"besluittypen\": [],\n\t\"brondatumArchiefprocedure\": {\n\t\t\"afleidingswijze\": \"afgehandeld\",\n\t\t\"procestermijn\": null,\n\t\t\"datumkenmerk\": \"\",\n\t\t\"einddatumBekend\": false,\n\t\t\"objecttype\": \"\",\n\t\t\"registratie\": \"\"\n\t}\n}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "35677ddf-9ae2-4579-b974-ca327d49985f", + "type": "text/javascript", + "packages": {}, + "exec": [ + "var jsonData = pm.response.json();", + "", + "pm.environment.set(\"current_resultaattype\", jsonData.url);", + "pm.environment.set(\"resultaattype_archiefnominatie\", jsonData.archiefnominatie);", + "pm.environment.set(\"resultaattype_archiefactietermijn\", jsonData.archiefactietermijn);", + "pm.environment.set(\"resultaattype_brondatumArchiefprocedure\", jsonData.brondatumArchiefprocedure);" + ], + "_lastExecutionId": "4b92dd0e-84ac-433f-a3fc-2e2d757e6b4d" + } + } + ] + }, + { + "id": "a751a1d1-eb47-4a4a-9292-6b0cfe7944f3", + "name": "Create eind Statustype procestermijn nihil", + "request": { + "url": { + "path": [ + "statustypen" + ], + "host": [ + "{{ztc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n\t\"omschrijving\": \"Eind\",\n\t\"zaaktype\": \"{{zaaktype_procestermijn_nihil_url}}\",\n\t\"volgnummer\": 2\n}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "aef131be-4e99-4b2b-b40b-b85b2aff83ac", + "type": "text/javascript", + "exec": [ + "pm.environment.set(\"current_statustype_url\", pm.response.json().url);" + ], + "_lastExecutionId": "e9a62fc2-0571-4b26-8bec-3b9d44f65d9c" + } + } + ] + }, + { + "id": "7b67c4e0-ab81-4d40-94b2-c3d81d2528b3", + "name": "Publish Zaaktype procestermijn nihil", + "request": { + "url": { + "path": [ + "publish" + ], + "host": [ + "{{zaaktype_procestermijn_nihil_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "ba9fba6f-a246-4fe2-aeeb-70e990ca769f", + "type": "text/javascript", + "exec": [ + "" + ], + "_lastExecutionId": "bb6cdfc4-4316-437d-9e7b-6cac59a30248" + } + }, + { + "listen": "prerequest", + "script": { + "id": "582a5c74-6224-4a01-aa6c-678ac7e45dd9", + "type": "text/javascript", + "exec": [ + "" + ], + "_lastExecutionId": "b872afa6-7bef-40a3-bd6c-c722da95bd0e" + } + } + ] + }, + { + "id": "5d37680f-2724-42e3-a530-d5f016b7b6a6", + "name": "Create Zaak without archiefnominatie", + "request": { + "url": { + "path": [ + "zaken" + ], + "host": [ + "{{zrc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Accept-Crs", + "value": "EPSG:4326" + }, + { + "key": "Content-Crs", + "value": "EPSG:4326" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\r\n \"bronorganisatie\": \"000000000\",\r\n \"omschrijving\": \"string\",\r\n \"toelichting\": \"string\",\r\n \"zaaktype\": \"{{zaaktype_procestermijn_nihil_url}}\",\r\n \"registratiedatum\": \"2019-04-09\",\r\n \"verantwoordelijkeOrganisatie\": \"000000000\",\r\n \"startdatum\": \"2019-04-09\",\r\n \"einddatum\": null,\r\n \"einddatumGepland\": \"2019-04-20\",\r\n \"uiterlijkeEinddatumAfdoening\": \"2019-04-09\",\r\n \"publicatiedatum\": \"2019-04-09\",\r\n \"communicatiekanaal\": \"\",\r\n \"productenOfDiensten\": [],\r\n \"vertrouwelijkheidaanduiding\": \"geheim\",\r\n \"betalingsindicatie\": \"geheel\",\r\n \"betalingsindicatieWeergave\": null,\r\n \"laatsteBetaaldatum\": \"2019-01-01T00:00:00Z\",\r\n \"zaakgeometrie\": {\r\n \"type\": \"Point\",\r\n \"coordinates\": [\r\n 53.0,\r\n 5.0\r\n ]\r\n },\r\n \"verlenging\": null,\r\n \"opschorting\": null,\r\n \"selectielijstklasse\": \"https://referentielijsten.roxit.nl/api/v1/resultaten/0fe71ce3-b1e1-48eb-9070-be2756fc71b5\",\r\n \"hoofdzaak\": null,\r\n \"deelzaken\": [],\r\n \"relevanteAndereZaken\": [],\r\n \"eigenschappen\": [],\r\n \"rollen\": [],\r\n \"status\": null,\r\n \"zaakinformatieobjecten\": [],\r\n \"zaakobjecten\": [],\r\n \"resultaat\": null,\r\n \"kenmerken\": [],\r\n \"archiefnominatie\": null,\r\n \"archiefstatus\": \"nog_te_archiveren\",\r\n \"archiefactiedatum\": null,\r\n \"opdrachtgevendeOrganisatie\": null,\r\n \"processobjectaard\": null,\r\n \"startdatumBewaartermijn\": null,\r\n \"processobject\": null\r\n}" + } + }, + "response": [], + "event": [ + { + "listen": "prerequest", + "script": { + "id": "6eb46eea-f0b0-42cf-8fc8-8534372bee3a", + "type": "text/javascript", + "packages": {}, + "exec": [ + "" + ], + "_lastExecutionId": "510a2f36-cc1e-4350-b7d9-1189c5990a23" + } + }, + { + "listen": "test", + "script": { + "id": "f37520b0-ebcb-4a80-a7b2-2f47b8d45ca4", + "type": "text/javascript", + "packages": {}, + "exec": [ + "pm.environment.set(\"zaak_zonder_archiefnominatie_url\", pm.response.json().url);" + ], + "_lastExecutionId": "88a70335-9937-4c51-b4e2-ba3728093562" + } + } + ] + }, + { + "id": "d968408c-599d-4778-be73-01c417ba9fb2", + "name": "Add Resultaat to Zaak", + "request": { + "url": { + "path": [ + "resultaten" + ], + "host": [ + "{{zrc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n\t\"zaak\": \"{{zaak_zonder_archiefnominatie_url}}\",\n\t\"resultaattype\": \"{{current_resultaattype}}\"\n}" + } + }, + "response": [], + "event": [ + { + "listen": "prerequest", + "script": { + "id": "b8311e8f-0b87-4bf3-ae76-3c2e3e7cee9a", + "type": "text/javascript", + "exec": [ + "// if (!pm.environment.get(\"resultaattype_index\")) {", + "// pm.environment.set(\"resultaattype_index\", 0);", + "// }", + "", + "// pm.environment.set(\"current_resultaattype\", pm.environment.get(\"zaaktype_resultaattypen\")[pm.environment.get(\"resultaattype_index\")])" + ], + "_lastExecutionId": "0411090c-0ecc-4e03-8d30-57626702b749" + } + }, + { + "listen": "test", + "script": { + "id": "4fd7df46-2186-45d8-85e5-a35902582bc9", + "type": "text/javascript", + "exec": [ + "pm.environment.set(\"zaak_resultaat_url\", pm.response.json().url);" + ], + "_lastExecutionId": "7e0ae00c-af7c-403a-a966-1edb1632754b" + } + } + ] + }, + { + "id": "1ccda679-b174-453e-a24d-de55b7384b96", + "name": "Add Eindstatus to Zaak without archiefnominatie", + "request": { + "url": { + "path": [ + "statussen" + ], + "host": [ + "{{zrc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n\t\"zaak\": \"{{zaak_zonder_archiefnominatie_url}}\",\n\t\"statustype\": \"{{current_statustype_url}}\",\n\t\"datumStatusGezet\": \"2018-04-26T13:37:00\"\n}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "bdba9e27-1c63-4229-aa22-01fdae4baff0", + "type": "text/javascript", + "exec": [ + "" + ], + "_lastExecutionId": "6785fb2f-3531-4fba-953a-576fc262071e" + } + }, + { + "listen": "prerequest", + "script": { + "id": "909a6d53-c541-4dd3-b520-d7974bffc24c", + "type": "text/javascript", + "exec": [ + "" + ], + "_lastExecutionId": "41dbf284-2309-42e6-8497-3a1bc7cb6703" + } + } + ] + }, + { + "id": "bacd7e0f-bc36-4a2e-b692-23e4e18a429a", + "name": "(zrc-021a) Afleidingswijze afgehandeld", + "request": { + "url": { + "host": [ + "{{zaak_zonder_archiefnominatie_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Accept-Crs", + "value": "EPSG:4326" + } + ], + "method": "GET" + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "d1c8024f-7580-4773-b8c9-f769d4a86684", + "type": "text/javascript", + "exec": [ + "var moment = require('moment');", + "", + "pm.test(\"Resultaat toevoegen aan Zaak zonder archiefnominatie betekent dat archiefnominatie afgeleid wordt uit Resultaattype\", function() {", + " pm.response.to.have.status(200);", + " pm.expect(pm.response.json().archiefnominatie).to.be.equal(pm.environment.get(\"resultaattype_archiefnominatie\"));", + "});", + "", + "pm.test(\"Resultaat met afleidingswijze afgehandeld toevoegen aan Zaak zet correcte Zaak.archiefdatum\", function() {", + " var jsonData = pm.response.json();", + " ", + " if (pm.environment.get(\"resultaattype_archiefactietermijn\")) {", + " const brondatum = moment.utc(jsonData.einddatum);", + " const archiefactietermijn = moment.duration(pm.environment.get(\"resultaattype_archiefactietermijn\"), 'years');", + " var calculated_archiefactiedatum = brondatum.add(archiefactietermijn);", + " ", + " pm.expect(jsonData.archiefactiedatum).to.be.equal(calculated_archiefactiedatum.format(\"YYYY-MM-DD\")); ", + " }", + "});" + ], + "_lastExecutionId": "40fa3192-9a51-4a5d-a6ff-59629d15b06d" + } + } + ] + } + ], + "event": [] + }, + { + "id": "beaa30e5-a421-46cd-8041-1f43001a6cfb", + "name": "zrc-021b", + "item": [ + { + "id": "462c8621-ca1b-4d23-b7c8-74e207be237d", + "name": "Create Zaaktype procestermijn vast_te_leggen_datum", + "request": { + "url": { + "path": [ + "zaaktypen" + ], + "host": [ + "{{ztc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\r\n \"identificatie\": \"{{random_identificatie_DZ}}\",\r\n \"omschrijving\": \"Zaaktype for archiving tests vast_te_leggen_datum\",\r\n \"omschrijvingGeneriek\": null,\r\n \"vertrouwelijkheidaanduiding\": \"openbaar\",\r\n \"doel\": \"test doel\",\r\n \"aanleiding\": \"test aanleiding\",\r\n \"toelichting\": null,\r\n \"indicatieInternOfExtern\": \"extern\",\r\n \"handelingInitiator\": \"indienen\",\r\n \"onderwerp\": \"openbare ruimte\",\r\n \"handelingBehandelaar\": \"behandelen\",\r\n \"doorlooptijd\": \"P10D\",\r\n \"servicenorm\": null,\r\n \"opschortingEnAanhoudingMogelijk\": false,\r\n \"verlengingMogelijk\": true,\r\n \"verlengingstermijn\": \"P5D\",\r\n \"trefwoorden\": [],\r\n \"publicatieIndicatie\": false,\r\n \"publicatietekst\": null,\r\n \"verantwoordingsrelatie\": [],\r\n \"productenOfDiensten\": [\r\n \"https://ref.tst.vng.cloud/standaard/\"\r\n ],\r\n \"selectielijstProcestype\": \"https://referentielijsten.roxit.nl/api/v1/procestypen/cdb46f05-0750-4d83-8025-31e20408ed21\",\r\n \"referentieproces\": {\r\n \"naam\": \"test\",\r\n \"link\": \"\"\r\n },\r\n \"verantwoordelijke\": \"X\",\r\n \"zaakobjecttypen\": [],\r\n \"broncatalogus\": null,\r\n \"bronzaaktype\": null,\r\n \"catalogus\": \"{{catalogus_url}}\",\r\n \"statustypen\": [],\r\n \"resultaattypen\": [],\r\n \"eigenschappen\": [],\r\n \"informatieobjecttypen\": [],\r\n \"roltypen\": [],\r\n \"besluittypen\": [],\r\n \"deelzaaktypen\": [],\r\n \"gerelateerdeZaaktypen\": [],\r\n \"concept\": true,\r\n \"beginGeldigheid\": \"2019-01-01\",\r\n \"eindeGeldigheid\": null,\r\n \"beginObject\": null,\r\n \"eindeObject\": null,\r\n \"versiedatum\": \"2019-01-01\"\r\n}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "13567726-354b-4d92-8146-52d30e50faa2", + "type": "text/javascript", + "packages": {}, + "exec": [ + "var res = pm.response.json();", + "pm.environment.set(\"zaaktype_procestermijn_vast_te_leggen_datum_url\", res.url);" + ], + "_lastExecutionId": "1cd8368c-f260-4503-8f6d-75012e10baea" + } + }, + { + "listen": "prerequest", + "script": { + "id": "d1c17045-8ac6-4d68-9c9a-d0da91916437", + "type": "text/javascript", + "packages": {}, + "exec": [ + "", + "var uuid = require('uuid');", + "var myUUID = uuid.v4(); ", + "pm.environment.set(\"random_identificatie_DZ\", myUUID);" + ], + "_lastExecutionId": "1eb91f2d-de8f-4923-9422-b88f8565c0ce" + } + } + ] + }, + { + "id": "b14a1067-ec08-4bcd-930e-3c2d72dd3838", + "name": "Create Hoofdzaaktype", + "request": { + "url": { + "path": [ + "zaaktypen" + ], + "host": [ + "{{ztc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n\t\"identificatie\": \"{{random_identificatie-21zrc}}\",\n \"omschrijving\": \"zrc_tests_1 hoofdzaak\",\n \"vertrouwelijkheidaanduiding\": \"openbaar\",\n \"doel\": \"test doel\",\n \"aanleiding\": \"test aanleiding\",\n \"indicatieInternOfExtern\": \"extern\",\n \"handelingInitiator\": \"indienen\",\n \"onderwerp\": \"openbare ruimte\",\n \"handelingBehandelaar\": \"behandelen\",\n \"doorlooptijd\": \"P10D\",\n \"opschortingEnAanhoudingMogelijk\": false,\n \"verlengingMogelijk\": true,\n \"publicatieIndicatie\": false,\n \"verantwoordelijke\":\"X\",\n \"productenOfDiensten\": [\n \"https://ref.tst.vng.cloud/standaard/\"\n ],\n \"selectielijstProcestype\": \"{{procestype_procestermijn_nihil_url}}\",\n \"referentieproces\": {\n \"naam\": \"test\",\n \"link\": \"\"\n },\n \"deelzaaktypen\": [\n \"{{random_identificatie_DZ}}\"\n ],\n \"catalogus\": \"{{catalogus_url}}\",\n \"statustypen\": [\n \"http://localhost:8002/api/v1/statustypen/ecb7fc03-5c11-46be-917f-e70e16c77554\",\n \"http://localhost:8002/api/v1/statustypen/14734ec8-04f8-4c18-a009-e190ff448ca9\"\n ],\n \"resultaattypen\": [\n \"http://localhost:8002/api/v1/resultaattypen/eead9dcd-9544-4862-8a03-b55643f95228\"\n ],\n \"eigenschappen\": [\n \"http://localhost:8002/api/v1/eigenschappen/d417bd46-a2a8-46d7-bb8c-4c8dc214301b\"\n ],\n \"informatieobjecttypen\": [],\n \"besluittypen\": [],\n \"gerelateerdeZaaktypen\": [],\n \"beginGeldigheid\": \"2019-01-01\",\n \"versiedatum\": \"2019-01-01\",\n \"concept\": true,\n \"verlengingstermijn\": \"P5D\"\n}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "8022290d-fe3a-4fb4-9d05-a2700d143cf2", + "type": "text/javascript", + "packages": {}, + "exec": [ + "var res = pm.response.json();", + "pm.environment.set(\"hoofdzaaktype_url\", res.url);", + "" + ], + "_lastExecutionId": "c97359bf-d6ba-4b83-bb59-e3bbe6b550a1" + } + }, + { + "listen": "prerequest", + "script": { + "id": "b1649ea2-6388-4732-956d-61c90e070076", + "type": "text/javascript", + "packages": {}, + "exec": [ + "var uuid = require('uuid');", + "var myUUID = uuid.v4(); ", + "pm.environment.set(\"random_identificatie-21zrc\", myUUID);", + "" + ], + "_lastExecutionId": "f42a2d16-3acc-4209-9302-00dd1f8ff95a" + } + } + ] + }, + { + "id": "5302de86-2a04-421e-a1fc-bc13c502e192", + "name": "Create Resultaattype afleidingswijze hoofdzaak", + "request": { + "url": { + "path": [ + "resultaattypen" + ], + "host": [ + "{{ztc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n \"zaaktype\": \"{{zaaktype_procestermijn_vast_te_leggen_datum_url}}\",\n \"omschrijving\": \"TEST\",\n \"resultaattypeomschrijving\": \"https://referentielijsten.roxit.nl/api/v1/resultaattypeomschrijvingen/4a6b5072-e44f-4826-9546-e8074499654e\",\n \"selectielijstklasse\": \"{{selectielijstklasse_procestermijn_vast_te_leggen_datum_url}}\",\n \"brondatumArchiefprocedure\": {\n \"afleidingswijze\": \"hoofdzaak\",\n \"procestermijn\": null,\n \"datumkenmerk\": \"\",\n \"einddatumBekend\": true,\n \"objecttype\": \"\",\n \"registratie\": \"\"\n },\n \"besluittypen\": []\n}" + } + }, + "response": [], + "event": [ + { + "listen": "prerequest", + "script": { + "id": "6b292670-e541-4b93-992b-c59c302abf93", + "type": "text/javascript", + "packages": {}, + "exec": [ + "" + ], + "_lastExecutionId": "a69a9e07-96db-45bd-a5ec-5dd4d679e02e" + } + }, + { + "listen": "test", + "script": { + "id": "a325f93f-57a5-49d0-a6fd-50d5e0298c35", + "type": "text/javascript", + "packages": {}, + "exec": [ + "var jsonData = pm.response.json();", + "", + "pm.environment.set(\"current_resultaattype\", jsonData.url);", + "pm.environment.set(\"resultaattype_archiefnominatie\", jsonData.archiefnominatie);", + "pm.environment.set(\"resultaattype_archiefactietermijn\", jsonData.archiefactietermijn);", + "pm.environment.set(\"resultaattype_brondatumArchiefprocedure\", jsonData.brondatumArchiefprocedure);" + ], + "_lastExecutionId": "c7166470-cd41-4380-83ba-a4613fe77694" + } + } + ] + }, + { + "id": "bf472fda-1b0e-4e0a-beca-768d5129638a", + "name": "Create eind Statustype procestermijn vast_te_leggen_datum", + "request": { + "url": { + "path": [ + "statustypen" + ], + "host": [ + "{{ztc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n\t\"omschrijving\": \"Eind\",\n\t\"zaaktype\": \"{{zaaktype_procestermijn_vast_te_leggen_datum_url}}\",\n\t\"volgnummer\": 2\n}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "fdd1503e-ca8e-47f2-92b5-dfd0f2f481eb", + "type": "text/javascript", + "exec": [ + "pm.environment.set(\"current_statustype_url\", pm.response.json().url);" + ], + "_lastExecutionId": "2124be3b-83ef-4ce3-b6cf-bd46f9cab543" + } + } + ] + }, + { + "id": "64035861-b95f-4ad2-b8da-3e8e9be88c1c", + "name": "Create Resultaattype afleidingswijze afgehandeld for hoofdzaaktype", + "request": { + "url": { + "path": [ + "resultaattypen" + ], + "host": [ + "{{ztc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n\t\"zaaktype\": \"{{hoofdzaaktype_url}}\",\n\t\"omschrijving\": \"Klaar\",\n\t\"resultaattypeomschrijving\": \"https://referentielijsten.roxit.nl/api/v1/resultaattypeomschrijvingen/4a6b5072-e44f-4826-9546-e8074499654e\",\n\t\"selectielijstklasse\": \"{{selectielijstklasse_procestermijn_nihil_url}}\",\n\t\"brondatumArchiefprocedure\": {\n\t\t\"afleidingswijze\": \"afgehandeld\",\n\t\t\"procestermijn\": null,\n\t\t\"datumkenmerk\": \"\",\n\t\t\"einddatumBekend\": false,\n\t\t\"objecttype\": \"\",\n\t\t\"registratie\": \"\"\n\t},\n \"besluittypen\":[]\n}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "ad949f71-b5f0-448b-9f3c-0431d22fcb0a", + "type": "text/javascript", + "packages": {}, + "exec": [ + "pm.environment.set(\"resultaattype_for_hoofdzaaktype_url\", pm.response.json().url);" + ], + "_lastExecutionId": "3729afd9-643a-4542-a1af-d3e7ad437751" + } + } + ] + }, + { + "id": "2846073a-e321-4508-87c1-119eebbbea6a", + "name": "Create eind Statustype for hoofdzaaktype", + "request": { + "url": { + "path": [ + "statustypen" + ], + "host": [ + "{{ztc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n\t\"omschrijving\": \"Eind\",\n\t\"zaaktype\": \"{{hoofdzaaktype_url}}\",\n\t\"volgnummer\": 2\n}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "0fec3a09-a39f-4a14-8d46-b58fec799cf2", + "type": "text/javascript", + "exec": [ + "pm.environment.set(\"eindstatustype_for_hoofdzaaktype_url\", pm.response.json().url);" + ], + "_lastExecutionId": "59a8ee92-83ed-4d68-b102-59b262f51eb0" + } + } + ] + }, + { + "id": "31bc80e5-a333-4881-b84b-1bfee36232e0", + "name": "Publish Zaaktype procestermijn vast_te_leggen_datum", + "request": { + "url": { + "path": [ + "publish" + ], + "host": [ + "{{zaaktype_procestermijn_vast_te_leggen_datum_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "a97fdf7a-51b6-42f7-8cf1-a29243798bfe", + "type": "text/javascript", + "exec": [ + "pm.environment.set(\"archiving_zaaktypen\", [", + " pm.environment.get(\"zaaktype_procestermijn_nihil_url\"),", + " pm.environment.get(\"zaaktype_procestermijn_ingeschatte_bestaansduur_object_url\"),", + " pm.environment.get(\"zaaktype_procestermijn_vast_te_leggen_datum_url\")", + "]);" + ], + "_lastExecutionId": "54e90fab-3870-47c9-9453-ffeecbfd314f" + } + }, + { + "listen": "prerequest", + "script": { + "id": "4c911907-f775-42ac-a146-51644ad08f81", + "type": "text/javascript", + "exec": [ + "" + ], + "_lastExecutionId": "2eb1e91b-d650-4050-9f31-45dbf047a6a2" + } + } + ] + }, + { + "id": "e9c95663-e8d4-4212-a130-c140b054c9ba", + "name": "Publish Hoofdzaaktype", + "request": { + "url": { + "path": [ + "publish" + ], + "host": [ + "{{hoofdzaaktype_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "b3f29a44-569f-4cf5-bd7c-2e1ffa65f995", + "type": "text/javascript", + "exec": [ + "" + ], + "_lastExecutionId": "66861ac4-2bdb-49f2-bd39-4c853be846d8" + } + }, + { + "listen": "prerequest", + "script": { + "id": "0f51bf8b-b467-4499-8634-015e347e1cbb", + "type": "text/javascript", + "exec": [ + "" + ], + "_lastExecutionId": "de7a5502-ff1f-4a27-a9a2-67e63dca2938" + } + } + ] + }, + { + "id": "17d3a242-3800-49e0-873f-e62575c1b8c5", + "name": "Create Hoofdzaak", + "request": { + "url": { + "path": [ + "zaken" + ], + "host": [ + "{{zrc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Accept-Crs", + "value": "EPSG:4326" + }, + { + "key": "Content-Crs", + "value": "EPSG:4326" + }, + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\r\n \"bronorganisatie\": \"000000000\",\r\n \"omschrijving\": \"string\",\r\n \"toelichting\": \"string\",\r\n \"zaaktype\": \"{{hoofdzaaktype_url}}\",\r\n \"registratiedatum\": \"2019-04-09\",\r\n \"verantwoordelijkeOrganisatie\": \"000000000\",\r\n \"startdatum\": \"2019-04-09\",\r\n \"einddatum\": null,\r\n \"einddatumGepland\": \"2019-04-20\",\r\n \"uiterlijkeEinddatumAfdoening\": \"2019-04-09\",\r\n \"publicatiedatum\": \"2019-04-09\",\r\n \"communicatiekanaal\": \"\",\r\n \"productenOfDiensten\": [],\r\n \"vertrouwelijkheidaanduiding\": \"geheim\",\r\n \"betalingsindicatie\": \"geheel\",\r\n \"betalingsindicatieWeergave\": null,\r\n \"laatsteBetaaldatum\": \"2019-01-01T00:00:00Z\",\r\n \"zaakgeometrie\": {\r\n \"type\": \"Point\",\r\n \"coordinates\": [\r\n 53.0,\r\n 5.0\r\n ]\r\n },\r\n \"verlenging\": null,\r\n \"opschorting\": null,\r\n \"selectielijstklasse\": \"https://referentielijsten.roxit.nl/api/v1/resultaten/0fe71ce3-b1e1-48eb-9070-be2756fc71b5\",\r\n \"hoofdzaak\": null,\r\n \"deelzaken\": [],\r\n \"relevanteAndereZaken\": [],\r\n \"eigenschappen\": [],\r\n \"rollen\": [],\r\n \"status\": null,\r\n \"zaakinformatieobjecten\": [],\r\n \"zaakobjecten\": [],\r\n \"resultaat\": null,\r\n \"kenmerken\": [],\r\n \"archiefnominatie\": null,\r\n \"archiefstatus\": \"nog_te_archiveren\",\r\n \"archiefactiedatum\": null,\r\n \"opdrachtgevendeOrganisatie\": null,\r\n \"processobjectaard\": null,\r\n \"startdatumBewaartermijn\": null,\r\n \"processobject\": null\r\n}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "084425f5-0813-45bd-a155-6db6a4593784", + "type": "text/javascript", + "packages": {}, + "exec": [ + "pm.environment.set(\"hoofdzaak_url\", pm.response.json().url);" + ], + "_lastExecutionId": "7531b24a-2012-4f8c-9486-159aedd5c2b2" + } + }, + { + "listen": "prerequest", + "script": { + "id": "6033e19d-bf71-4abb-9e13-d4ef2ae1a338", + "type": "text/javascript", + "packages": {}, + "exec": [ + "" + ], + "_lastExecutionId": "21e690a5-075c-4307-a7e0-a7489363ca1e" + } + } + ] + }, + { + "id": "de991733-3757-4a5f-9313-bf7add7da434", + "name": "Create Zaak met vast te leggen datum", + "request": { + "url": { + "path": [ + "zaken" + ], + "host": [ + "{{zrc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Accept-Crs", + "value": "EPSG:4326" + }, + { + "key": "Content-Crs", + "value": "EPSG:4326" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\r\n \"bronorganisatie\": \"000000000\",\r\n \"omschrijving\": \"string\",\r\n \"toelichting\": \"string\",\r\n \"zaaktype\": \"{{zaaktype_procestermijn_vast_te_leggen_datum_url}}\",\r\n \"registratiedatum\": \"2019-04-09\",\r\n \"verantwoordelijkeOrganisatie\": \"000000000\",\r\n \"startdatum\": \"2019-04-09\",\r\n \"einddatum\": null,\r\n \"einddatumGepland\": \"2019-04-20\",\r\n \"uiterlijkeEinddatumAfdoening\": \"2019-04-09\",\r\n \"publicatiedatum\": \"2019-04-09\",\r\n \"communicatiekanaal\": \"\",\r\n \"productenOfDiensten\": [],\r\n \"vertrouwelijkheidaanduiding\": \"geheim\",\r\n \"betalingsindicatie\": \"geheel\",\r\n \"betalingsindicatieWeergave\": null,\r\n \"laatsteBetaaldatum\": \"2019-01-01T00:00:00Z\",\r\n \"zaakgeometrie\": {\r\n \"type\": \"Point\",\r\n \"coordinates\": [\r\n 53.0,\r\n 5.0\r\n ]\r\n },\r\n \"verlenging\": null,\r\n \"opschorting\": null,\r\n \"selectielijstklasse\": \"https://referentielijsten.roxit.nl/api/v1/resultaten/0fe71ce3-b1e1-48eb-9070-be2756fc71b5\",\r\n \"hoofdzaak\": null,\r\n \"deelzaken\": [],\r\n \"relevanteAndereZaken\": [],\r\n \"eigenschappen\": [],\r\n \"rollen\": [],\r\n \"status\": null,\r\n \"zaakinformatieobjecten\": [],\r\n \"zaakobjecten\": [],\r\n \"resultaat\": null,\r\n \"kenmerken\": [],\r\n \"archiefnominatie\": null,\r\n \"archiefstatus\": \"nog_te_archiveren\",\r\n \"archiefactiedatum\": null,\r\n \"opdrachtgevendeOrganisatie\": null,\r\n \"processobjectaard\": null,\r\n \"startdatumBewaartermijn\": null,\r\n \"processobject\": null\r\n}" + } + }, + "response": [], + "event": [ + { + "listen": "prerequest", + "script": { + "id": "25166d60-bdeb-4f99-9052-ddf71f2b1ffc", + "type": "text/javascript", + "packages": {}, + "exec": [ + "" + ], + "_lastExecutionId": "b52347b1-2efa-4fc2-9076-7184ab67e390" + } + }, + { + "listen": "test", + "script": { + "id": "2d2768bf-a421-4a64-b2e5-cad877d32144", + "type": "text/javascript", + "packages": {}, + "exec": [ + "pm.environment.set(\"zaak_met_vast_te_leggen_datum\", pm.response.json().url);" + ], + "_lastExecutionId": "5489f5a5-a576-49eb-9276-57ac16d35322" + } + } + ] + }, + { + "id": "b1092ffd-12a6-4069-aa11-f2a02b79ad76", + "name": "Add Resultaat to Hoofdzaak", + "request": { + "url": { + "path": [ + "resultaten" + ], + "host": [ + "{{zrc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n\t\"zaak\": \"{{hoofdzaak_url}}\",\n\t\"resultaattype\": \"{{resultaattype}}\"\n}" + } + }, + "response": [], + "event": [ + { + "listen": "prerequest", + "script": { + "id": "b4933627-0ef4-47b8-8ae3-b459f84f4dc2", + "type": "text/javascript", + "exec": [ + "pm.environment.set(\"resultaattype\", pm.environment.get(\"resultaattype_for_hoofdzaaktype_url\"));" + ], + "_lastExecutionId": "b16e0609-a261-41aa-bcdb-142edab31779" + } + }, + { + "listen": "test", + "script": { + "id": "92eb5b56-7397-4123-b308-c743e59691d0", + "type": "text/javascript", + "exec": [ + "pm.environment.set(\"hoofdzaak_resultaat_url\", pm.response.json().url);" + ], + "_lastExecutionId": "f5700280-416f-467b-8388-57ff345bc9a1" + } + } + ] + }, + { + "id": "d4135438-ce59-4528-a06c-0819b655bb20", + "name": "Add Eindstatus to Hoofdzaak", + "request": { + "url": { + "path": [ + "statussen" + ], + "host": [ + "{{zrc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n\t\"zaak\": \"{{hoofdzaak_url}}\",\n\t\"statustype\": \"{{eindstatustype_for_hoofdzaaktype_url}}\",\n\t\"datumStatusGezet\": \"2018-04-18T13:37:00\"\n}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "8c17c0d7-ff46-4603-8e73-95267e8f2522", + "type": "text/javascript", + "exec": [ + "" + ], + "_lastExecutionId": "81aba630-f64a-46df-a08f-024d21ed1cc9" + } + }, + { + "listen": "prerequest", + "script": { + "id": "3e07a5a1-046f-4cf4-aad6-726590927814", + "type": "text/javascript", + "exec": [ + "" + ], + "_lastExecutionId": "b97e3766-2728-4073-a268-c525a54a0061" + } + } + ] + }, + { + "id": "5b8804b3-ecd4-48dd-a3a3-0a115a6d9db2", + "name": "Retrieve Hoofdzaak einddatum", + "request": { + "url": { + "host": [ + "{{hoofdzaak_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Accept-Crs", + "value": "EPSG:4326" + }, + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "GET" + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "958bddb1-f5d1-4288-bff7-4914ba0a8fe9", + "type": "text/javascript", + "exec": [ + "pm.environment.set(\"hoofdzaak_einddatum\", pm.response.json().einddatum);" + ], + "_lastExecutionId": "6a975131-a3af-4d76-8e50-805f9adf2e36" + } + } + ] + } + ], + "event": [ + { + "listen": "prerequest", + "script": { + "id": "d1f003b2-6bfc-4186-b922-f3b9be076ba6", + "type": "text/javascript", + "exec": [ + "" + ], + "_lastExecutionId": "bf1399f9-2c31-4f69-9302-d2122510473d" + } + }, + { + "listen": "test", + "script": { + "id": "a3f1658f-a075-4155-b3a1-f5216671ae2a", + "type": "text/javascript", + "exec": [ + "" + ], + "_lastExecutionId": "131730e2-7a3b-4ecf-97e3-c277456b01d7" + } + } + ] + }, + { + "id": "fc8ce0d1-cd34-416c-9909-4bebb1796ee9", + "name": "zrc-021c", + "item": [ + { + "id": "2402796c-cf3c-44bf-971b-bb98792992b7", + "name": "Create Zaaktype procestermijn vast_te_leggen_datum", + "request": { + "url": { + "path": [ + "zaaktypen" + ], + "host": [ + "{{ztc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\r\n \"identificatie\": \"{{random_identificatie_DZ}}\",\r\n \"omschrijving\": \"Zaaktype for archiving tests vast_te_leggen_datum\",\r\n \"omschrijvingGeneriek\": null,\r\n \"vertrouwelijkheidaanduiding\": \"openbaar\",\r\n \"doel\": \"test doel\",\r\n \"aanleiding\": \"test aanleiding\",\r\n \"toelichting\": null,\r\n \"indicatieInternOfExtern\": \"extern\",\r\n \"handelingInitiator\": \"indienen\",\r\n \"onderwerp\": \"openbare ruimte\",\r\n \"handelingBehandelaar\": \"behandelen\",\r\n \"doorlooptijd\": \"P10D\",\r\n \"servicenorm\": null,\r\n \"opschortingEnAanhoudingMogelijk\": false,\r\n \"verlengingMogelijk\": true,\r\n \"verlengingstermijn\": \"P5D\",\r\n \"trefwoorden\": [],\r\n \"publicatieIndicatie\": false,\r\n \"publicatietekst\": null,\r\n \"verantwoordingsrelatie\": [],\r\n \"productenOfDiensten\": [\r\n \"https://ref.tst.vng.cloud/standaard/\"\r\n ],\r\n \"selectielijstProcestype\": \"https://referentielijsten.roxit.nl/api/v1/procestypen/cdb46f05-0750-4d83-8025-31e20408ed21\",\r\n \"referentieproces\": {\r\n \"naam\": \"test\",\r\n \"link\": \"\"\r\n },\r\n \"verantwoordelijke\": \"X\",\r\n \"zaakobjecttypen\": [],\r\n \"broncatalogus\": null,\r\n \"bronzaaktype\": null,\r\n \"catalogus\": \"{{catalogus_url}}\",\r\n \"statustypen\": [],\r\n \"resultaattypen\": [],\r\n \"eigenschappen\": [],\r\n \"informatieobjecttypen\": [],\r\n \"roltypen\": [],\r\n \"besluittypen\": [],\r\n \"deelzaaktypen\": [],\r\n \"gerelateerdeZaaktypen\": [],\r\n \"concept\": true,\r\n \"beginGeldigheid\": \"2019-01-01\",\r\n \"eindeGeldigheid\": null,\r\n \"beginObject\": null,\r\n \"eindeObject\": null,\r\n \"versiedatum\": \"2019-01-01\"\r\n}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "4c3e1d44-c4df-4b61-a14b-07fcb0961dc4", + "type": "text/javascript", + "packages": {}, + "exec": [ + "var res = pm.response.json();", + "pm.environment.set(\"zaaktype_procestermijn_vast_te_leggen_datum_url\", res.url);" + ], + "_lastExecutionId": "b370cc99-bf18-4524-bef9-347a1c6f00f0" + } + }, + { + "listen": "prerequest", + "script": { + "id": "6a4c474e-4db3-4b6c-b682-926c5506757f", + "type": "text/javascript", + "packages": {}, + "exec": [ + "", + "var uuid = require('uuid');", + "var myUUID = uuid.v4(); ", + "pm.environment.set(\"random_identificatie_DZ\", myUUID);" + ], + "_lastExecutionId": "67ebeb3b-ace9-4cfe-9f78-0ebdf6f06a8b" + } + } + ] + }, + { + "id": "e300eb0f-2958-4c6a-8e09-4c4e64bef025", + "name": "Create Resultaattype afleidingswijze eigenschap", + "request": { + "url": { + "path": [ + "resultaattypen" + ], + "host": [ + "{{ztc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n \"zaaktype\": \"{{zaaktype_procestermijn_vast_te_leggen_datum_url}}\",\n \"omschrijving\": \"TEST\",\n \"resultaattypeomschrijving\": \"https://referentielijsten.roxit.nl/api/v1/resultaattypeomschrijvingen/bae947e7-02b5-44f9-ab76-28c7a0ed01c0\",\n \"selectielijstklasse\": \"{{selectielijstklasse_procestermijn_vast_te_leggen_datum_url}}\",\n \"brondatumArchiefprocedure\": {\n \"afleidingswijze\": \"eigenschap\",\n \"procestermijn\": null,\n \"datumkenmerk\": \"archivering_test\",\n \"einddatumBekend\": true,\n \"objecttype\": \"\",\n \"registratie\": \"\"\n },\n \"besluittypen\": []\n}" + } + }, + "response": [], + "event": [ + { + "listen": "prerequest", + "script": { + "id": "7511dd77-64ee-4643-ac1a-8340d42a609c", + "type": "text/javascript", + "packages": {}, + "exec": [ + "" + ], + "_lastExecutionId": "93485a7e-9557-4400-b237-a57ab005fc6e" + } + }, + { + "listen": "test", + "script": { + "id": "591b7c86-f243-472c-a387-9890133a5f24", + "type": "text/javascript", + "packages": {}, + "exec": [ + "var jsonData = pm.response.json();", + "", + "pm.environment.set(\"current_resultaattype\", jsonData.url);", + "pm.environment.set(\"resultaattype_archiefnominatie\", jsonData.archiefnominatie);", + "pm.environment.set(\"resultaattype_archiefactietermijn\", jsonData.archiefactietermijn);", + "pm.environment.set(\"resultaattype_brondatumArchiefprocedure\", jsonData.brondatumArchiefprocedure);" + ], + "_lastExecutionId": "28274228-1d86-4737-91d7-2c07e564ca91" + } + } + ] + }, + { + "id": "3d7bbd94-c1a8-40cf-88ec-87c8fecdba21", + "name": "Create eind Statustype procestermijn vast_te_leggen_datum", + "request": { + "url": { + "path": [ + "statustypen" + ], + "host": [ + "{{ztc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n\t\"omschrijving\": \"Eind\",\n\t\"zaaktype\": \"{{zaaktype_procestermijn_vast_te_leggen_datum_url}}\",\n\t\"volgnummer\": 2\n}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "bc848531-8a2b-430e-834e-a18f45b9be24", + "type": "text/javascript", + "exec": [ + "pm.environment.set(\"current_statustype_url\", pm.response.json().url);" + ], + "_lastExecutionId": "3f95093c-1f07-4ce7-bd7b-fff029042c69" + } + } + ] + }, + { + "id": "57cc5a90-b924-4944-a5ea-248a4fccd6e0", + "name": "Create Eigenschap for zaaktype", + "request": { + "url": { + "path": [ + "eigenschappen" + ], + "host": [ + "{{ztc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n\t\"naam\": \"archivering_test\",\n\t\"definitie\": \"test\",\n\t\"zaaktype\": \"{{zaaktype_procestermijn_vast_te_leggen_datum_url}}\",\n \"specificatie\": {\n \"formaat\": \"datum\",\n \"lengte\": \"8\",\n \"kardinaliteit\": \"1\",\n\n }\n}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "c2bbdf78-bbde-49a6-8c34-d7b7a4d34ad5", + "type": "text/javascript", + "packages": {}, + "exec": [ + "pm.environment.set(\"archivering_eigenschap_url\", pm.response.json().url);" + ], + "_lastExecutionId": "d1b72ef1-76ce-4e12-a000-1544fe81760a" + } + } + ] + }, + { + "id": "84709925-8c76-4642-a3d3-9422031168c4", + "name": "Publish Zaaktype procestermijn vast_te_leggen_datum", + "request": { + "url": { + "path": [ + "publish" + ], + "host": [ + "{{zaaktype_procestermijn_vast_te_leggen_datum_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "29dc6357-2101-419b-96cf-c74a977c10f0", + "type": "text/javascript", + "exec": [ + "pm.environment.set(\"archiving_zaaktypen\", [", + " pm.environment.get(\"zaaktype_procestermijn_nihil_url\"),", + " pm.environment.get(\"zaaktype_procestermijn_ingeschatte_bestaansduur_object_url\"),", + " pm.environment.get(\"zaaktype_procestermijn_vast_te_leggen_datum_url\")", + "]);" + ], + "_lastExecutionId": "87f19e2d-1410-4384-9893-1f142a599086" + } + }, + { + "listen": "prerequest", + "script": { + "id": "82d1b365-9513-4668-87d6-61d16273df2f", + "type": "text/javascript", + "exec": [ + "" + ], + "_lastExecutionId": "3b6e4d18-3854-4881-ad7c-0edd40998b9a" + } + } + ] + }, + { + "id": "d32ab4fe-74a3-4669-8e91-ddc7b6a917b8", + "name": "Create Zaak without archiefnominatie", + "request": { + "url": { + "path": [ + "zaken" + ], + "host": [ + "{{zrc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Accept-Crs", + "value": "EPSG:4326" + }, + { + "key": "Content-Crs", + "value": "EPSG:4326" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\r\n \"bronorganisatie\": \"000000000\",\r\n \"omschrijving\": \"string\",\r\n \"toelichting\": \"string\",\r\n \"zaaktype\": \"{{zaaktype_procestermijn_vast_te_leggen_datum_url}}\",\r\n \"registratiedatum\": \"2019-04-09\",\r\n \"verantwoordelijkeOrganisatie\": \"000000000\",\r\n \"startdatum\": \"2019-04-09\",\r\n \"einddatum\": null,\r\n \"einddatumGepland\": \"2019-04-20\",\r\n \"uiterlijkeEinddatumAfdoening\": \"2019-04-09\",\r\n \"publicatiedatum\": \"2019-04-09\",\r\n \"communicatiekanaal\": \"\",\r\n \"productenOfDiensten\": [],\r\n \"vertrouwelijkheidaanduiding\": \"geheim\",\r\n \"betalingsindicatie\": \"geheel\",\r\n \"betalingsindicatieWeergave\": null,\r\n \"laatsteBetaaldatum\": \"2019-01-01T00:00:00Z\",\r\n \"zaakgeometrie\": {\r\n \"type\": \"Point\",\r\n \"coordinates\": [\r\n 53.0,\r\n 5.0\r\n ]\r\n },\r\n \"verlenging\": null,\r\n \"opschorting\": null,\r\n \"selectielijstklasse\": \"https://referentielijsten.roxit.nl/api/v1/resultaten/0fe71ce3-b1e1-48eb-9070-be2756fc71b5\",\r\n \"hoofdzaak\": null,\r\n \"deelzaken\": [],\r\n \"relevanteAndereZaken\": [],\r\n \"eigenschappen\": [],\r\n \"rollen\": [],\r\n \"status\": null,\r\n \"zaakinformatieobjecten\": [],\r\n \"zaakobjecten\": [],\r\n \"resultaat\": null,\r\n \"kenmerken\": [],\r\n \"archiefnominatie\": null,\r\n \"archiefstatus\": \"nog_te_archiveren\",\r\n \"archiefactiedatum\": null,\r\n \"opdrachtgevendeOrganisatie\": null,\r\n \"processobjectaard\": null,\r\n \"startdatumBewaartermijn\": null,\r\n \"processobject\": null\r\n}" + } + }, + "response": [], + "event": [ + { + "listen": "prerequest", + "script": { + "id": "aac89af2-fedc-4f76-b3ad-c93944e2b1de", + "type": "text/javascript", + "packages": {}, + "exec": [ + "" + ], + "_lastExecutionId": "14757362-7bde-415d-a797-0bcd75abad76" + } + }, + { + "listen": "test", + "script": { + "id": "52af458d-dfec-4576-83be-df2e20e59bb0", + "type": "text/javascript", + "packages": {}, + "exec": [ + "pm.environment.set(\"zaak_zonder_archiefnominatie_url\", pm.response.json().url);" + ], + "_lastExecutionId": "50168ae3-a298-4396-8319-ff5de8903c1a" + } + } + ] + }, + { + "id": "faf2db2c-9618-4d09-9b02-fae021b6310c", + "name": "Add Eigenschap to Zaak without archiefnominatie", + "request": { + "url": { + "path": [ + "zaakeigenschappen" + ], + "host": [ + "{{zaak_zonder_archiefnominatie_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n\t\"zaak\": \"{{zaak_zonder_archiefnominatie_url}}\",\n\t\"eigenschap\": \"{{archivering_eigenschap_url}}\",\n\t\"waarde\": \"20230101\"\n}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "ee695ae7-8510-4396-9bb0-097340b87ba4", + "type": "text/javascript", + "packages": {}, + "exec": [ + "pm.environment.set(\"eigenschap_waarde\", pm.response.json().waarde);" + ], + "_lastExecutionId": "1dd0637b-2142-4ee3-9d47-5c33f4fcd435" + } + } + ] + }, + { + "id": "d280ca27-12be-4dca-93fc-39fe1d7f291a", + "name": "Add Resultaat to Zaak", + "request": { + "url": { + "path": [ + "resultaten" + ], + "host": [ + "{{zrc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n\t\"zaak\": \"{{zaak_zonder_archiefnominatie_url}}\",\n\t\"resultaattype\": \"{{current_resultaattype}}\"\n}" + } + }, + "response": [], + "event": [ + { + "listen": "prerequest", + "script": { + "id": "7e55e97c-73da-4c42-bdc4-3ec678fcc74b", + "type": "text/javascript", + "exec": [ + "// if (!pm.environment.get(\"resultaattype_index\")) {", + "// pm.environment.set(\"resultaattype_index\", 0);", + "// }", + "", + "// pm.environment.set(\"current_resultaattype\", pm.environment.get(\"zaaktype_resultaattypen\")[pm.environment.get(\"resultaattype_index\")])" + ], + "_lastExecutionId": "a0747019-bc45-43c6-b310-12eaca4b444e" + } + }, + { + "listen": "test", + "script": { + "id": "884f27b8-3ff1-466c-a496-479fe8e5f954", + "type": "text/javascript", + "exec": [ + "pm.environment.set(\"zaak_resultaat_url\", pm.response.json().url);" + ], + "_lastExecutionId": "c19ca04f-df0e-4aa8-b415-bc42864cdd2a" + } + } + ] + }, + { + "id": "cbd96978-1aff-496d-871e-4a77c00464ba", + "name": "Add Eindstatus to Zaak without archiefnominatie", + "request": { + "url": { + "path": [ + "statussen" + ], + "host": [ + "{{zrc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n\t\"zaak\": \"{{zaak_zonder_archiefnominatie_url}}\",\n\t\"statustype\": \"{{current_statustype_url}}\",\n\t\"datumStatusGezet\": \"2018-04-26T13:37:00\"\n}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "189343ed-0d24-4284-946e-727e0ec63b8a", + "type": "text/javascript", + "exec": [ + "" + ], + "_lastExecutionId": "361b002a-f17c-4329-887e-44ac69674a28" + } + }, + { + "listen": "prerequest", + "script": { + "id": "d6f619e1-f90a-402e-a319-5b0974377eaf", + "type": "text/javascript", + "exec": [ + "" + ], + "_lastExecutionId": "37ba57f4-3aa1-401c-bde5-592de5cf695f" + } + } + ] + }, + { + "id": "a6648084-8d27-4029-a31c-dad5cf6f839b", + "name": "(zrc-021c) Afleidingswijze eigenschap", + "request": { + "url": { + "host": [ + "{{zaak_zonder_archiefnominatie_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Accept-Crs", + "value": "EPSG:4326" + } + ], + "method": "GET" + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "c93c807f-5c98-4994-8a3f-19129c1c4787", + "type": "text/javascript", + "exec": [ + "var moment = require('moment');", + "", + "pm.test(\"Resultaat toevoegen aan Zaak zonder archiefnominatie betekent dat archiefnominatie afgeleid wordt uit Resultaattype\", function() {", + " pm.response.to.have.status(200);", + " pm.expect(pm.response.json().archiefnominatie).to.be.equal(pm.environment.get(\"resultaattype_archiefnominatie\"));", + "});", + "", + "pm.test(\"Resultaat met afleidingswijze eigenschap toevoegen aan Zaak zet correcte Zaak.archiefdatum\", function() {", + " var jsonData = pm.response.json();", + " ", + " if (pm.environment.get(\"resultaattype_archiefactietermijn\")) {", + " const brondatum = moment.utc(pm.environment.get(\"eigenschap_waarde\"));", + " const archiefactietermijn = moment.duration(pm.environment.get(\"resultaattype_archiefactietermijn\"), 'years');", + " var calculated_archiefactiedatum = brondatum.add(archiefactietermijn);", + " ", + " pm.expect(jsonData.archiefactiedatum).to.be.equal(calculated_archiefactiedatum.format(\"YYYY-MM-DD\")); ", + " }", + "});" + ], + "_lastExecutionId": "e5dc43e8-ba72-4095-be4e-c53aa70c9f4b" + } + }, + { + "listen": "prerequest", + "script": { + "id": "4ae913f9-135e-4df8-ae69-412930ca7475", + "type": "text/javascript", + "exec": [ + "" + ], + "_lastExecutionId": "517f2538-e542-4eaa-b9f4-7c1fc9ea3d40" + } + } + ] + } + ], + "event": [ + { + "listen": "prerequest", + "script": { + "id": "0a196e7f-9665-4e91-b785-3822ef00da69", + "type": "text/javascript", + "exec": [ + "" + ], + "_lastExecutionId": "0b1022ec-f86d-4aab-b7ce-46a849ef5d1a" + } + }, + { + "listen": "test", + "script": { + "id": "1db808d2-5c5b-4d90-803c-4d39e94e1079", + "type": "text/javascript", + "exec": [ + "" + ], + "_lastExecutionId": "960c44bb-bc20-46b6-987f-be4ea321efe9" + } + } + ] + }, + { + "id": "f450df13-8b33-412b-aa48-838ab20958a3", + "name": "zrc-021d", + "item": [ + { + "id": "d6450df6-54f6-4a6d-b801-1e95350f16f3", + "name": "Create concept Besluittype", + "request": { + "url": { + "path": [ + "besluittypen" + ], + "host": [ + "{{ztc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n \"catalogus\": \"{{catalogus_url}}\",\n \"omschrijving\": \"{{random_omschrijving}}\",\n \"zaaktypen\": [],\n\t\"publicatieIndicatie\": false,\n\t\"informatieobjecttypen\": [],\n\t\"beginGeldigheid\": \"2019-01-01\"\n}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "272d1f8a-1caf-46a2-8dbd-0872f098bf66", + "type": "text/javascript", + "packages": {}, + "exec": [ + "pm.environment.set(\"besluittype_omschrijving\", pm.response.json().omschrijving);\r", + "pm.environment.set(\"concept_besluittype_url\", pm.response.json().url);" + ], + "_lastExecutionId": "866bf48e-826f-4ca2-bc17-5a3e63127bcc" + } + }, + { + "listen": "prerequest", + "script": { + "id": "3c2ee494-1d8e-45ae-aaeb-90ee9f7d76ab", + "type": "text/javascript", + "packages": {}, + "exec": [ + "var uuid = require('uuid');\r", + "var myUUID = uuid.v4(); \r", + "pm.environment.set(\"random_omschrijving\",myUUID);" + ], + "_lastExecutionId": "6251875c-d924-4d35-b71b-54d7e7d4a8f3" + } + } + ] + }, + { + "id": "14456041-31f8-4fd0-980d-ac8482b251b2", + "name": "Create Zaaktype procestermijn vast_te_leggen_datum", + "request": { + "url": { + "path": [ + "zaaktypen" + ], + "host": [ + "{{ztc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\r\n\r\n \"identificatie\": \"{{random_identificatie}}\",\r\n \"omschrijving\": \"Zaaktype for archiving tests vast_te_leggen_datum\",\r\n \"omschrijvingGeneriek\": null,\r\n \"vertrouwelijkheidaanduiding\": \"openbaar\",\r\n \"doel\": \"test doel\",\r\n \"aanleiding\": \"test aanleiding\",\r\n \"toelichting\": null,\r\n \"indicatieInternOfExtern\": \"extern\",\r\n \"handelingInitiator\": \"indienen\",\r\n \"onderwerp\": \"openbare ruimte\",\r\n \"handelingBehandelaar\": \"behandelen\",\r\n \"doorlooptijd\": \"P10D\",\r\n \"servicenorm\": null,\r\n \"opschortingEnAanhoudingMogelijk\": false,\r\n \"verlengingMogelijk\": true,\r\n \"verlengingstermijn\": \"P5D\",\r\n \"trefwoorden\": [],\r\n \"publicatieIndicatie\": false,\r\n \"publicatietekst\": null,\r\n \"verantwoordingsrelatie\": [],\r\n \"productenOfDiensten\": [\r\n \"https://ref.tst.vng.cloud/standaard/\"\r\n ],\r\n \"selectielijstProcestype\": \"{{procestype_procestermijn_vast_te_leggen_datum_url}}\",\r\n \"referentieproces\": {\r\n \"naam\": \"test\",\r\n \"link\": \"\"\r\n },\r\n \"verantwoordelijke\": \"X\",\r\n \"zaakobjecttypen\": [],\r\n \"broncatalogus\": null,\r\n \"bronzaaktype\": null,\r\n \"catalogus\": \"{{catalogus_url}}\",\r\n \"statustypen\": [],\r\n \"resultaattypen\": [],\r\n \"eigenschappen\": [],\r\n \"informatieobjecttypen\": [],\r\n \"roltypen\": [],\r\n \"besluittypen\": [\"{{besluittype_omschrijving}}\"],\r\n \"deelzaaktypen\": [\r\n \r\n ],\r\n \"gerelateerdeZaaktypen\": [],\r\n \"concept\": true,\r\n \"beginGeldigheid\": \"2019-01-01\",\r\n \"eindeGeldigheid\": null,\r\n \"beginObject\": null,\r\n \"eindeObject\": null,\r\n \"versiedatum\": \"2019-01-01\"\r\n}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "fd964c6e-fad1-4baf-8cbc-ad40a5bd0b55", + "type": "text/javascript", + "packages": {}, + "exec": [ + "var res = pm.response.json();", + "pm.environment.set(\"zaaktype_procestermijn_vast_te_leggen_datum_url\", res.url);" + ], + "_lastExecutionId": "90a0f2ef-e803-4527-97ab-7cca34e23709" + } + }, + { + "listen": "prerequest", + "script": { + "id": "7c82cb16-23bf-4871-8800-6f2c79dbe808", + "type": "text/javascript", + "packages": {}, + "exec": [ + "var uuid = require('uuid');", + "var myUUID = uuid.v4(); ", + "pm.environment.set(\"random_identificatie\",myUUID);", + "", + "", + "" + ], + "_lastExecutionId": "81f8acef-ef6e-4ef2-99f6-cfb0134f5c7e" + } + } + ] + }, + { + "id": "af5a7ee9-3dfd-4b0b-ab5a-9fb200689f7e", + "name": "Create Resultaattype afleidingswijze ingangsdatum_besluit", + "request": { + "url": { + "path": [ + "resultaattypen" + ], + "host": [ + "{{ztc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n\t\"zaaktype\": \"{{zaaktype_procestermijn_vast_te_leggen_datum_url}}\",\n\t\"omschrijving\": \"TEST\",\n\t\"resultaattypeomschrijving\": \"https://referentielijsten.roxit.nl/api/v1/resultaattypeomschrijvingen/bae947e7-02b5-44f9-ab76-28c7a0ed01c0\",\n\t\"selectielijstklasse\": \"{{selectielijstklasse_procestermijn_vast_te_leggen_datum_url}}\",\n \"besluittypen\": [],\n\t\"brondatumArchiefprocedure\": {\n\t\t\"afleidingswijze\": \"ingangsdatum_besluit\",\n\t\t\"procestermijn\": null,\n\t\t\"datumkenmerk\": \"\",\n\t\t\"einddatumBekend\": true,\n\t\t\"objecttype\": \"\",\n\t\t\"registratie\": \"\"\n\t}\n}" + } + }, + "response": [], + "event": [ + { + "listen": "prerequest", + "script": { + "id": "2928fc78-c7b6-4342-b60a-6db66bf135bc", + "type": "text/javascript", + "packages": {}, + "exec": [ + "" + ], + "_lastExecutionId": "e7537935-c1a9-4fb4-9e6f-5580e79857eb" + } + }, + { + "listen": "test", + "script": { + "id": "ae0ab089-5546-4556-9471-9fdeb68f6649", + "type": "text/javascript", + "packages": {}, + "exec": [ + "var jsonData = pm.response.json();", + "", + "pm.environment.set(\"current_resultaattype\", jsonData.url);", + "pm.environment.set(\"resultaattype_archiefnominatie\", jsonData.archiefnominatie);", + "pm.environment.set(\"resultaattype_archiefactietermijn\", jsonData.archiefactietermijn);", + "pm.environment.set(\"resultaattype_brondatumArchiefprocedure\", jsonData.brondatumArchiefprocedure);" + ], + "_lastExecutionId": "b17ee286-81e5-41ae-a5a2-be7566c9f873" + } + } + ] + }, + { + "id": "1b1a3dbf-e387-4d25-8fb3-8fabd0e903cf", + "name": "Create eind Statustype procestermijn vast_te_leggen_datum", + "request": { + "url": { + "path": [ + "statustypen" + ], + "host": [ + "{{ztc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n\t\"omschrijving\": \"Eind\",\n\t\"zaaktype\": \"{{zaaktype_procestermijn_vast_te_leggen_datum_url}}\",\n\t\"volgnummer\": 2\n}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "973e810f-5f2d-457b-945f-5f4c268c02d5", + "type": "text/javascript", + "exec": [ + "pm.environment.set(\"current_statustype_url\", pm.response.json().url);" + ], + "_lastExecutionId": "5b9c2001-45b3-4ded-9b65-bf713db667b4" + } + } + ] + }, + { + "id": "a99536a2-5a02-4e3d-b493-87eb19a8bc90", + "name": "Publish concept Besluittype", + "request": { + "url": { + "path": [ + "publish" + ], + "host": [ + "{{concept_besluittype_url}}" + ], + "query": [], + "variable": [] + }, + "method": "POST" + }, + "response": [], + "event": [] + }, + { + "id": "055389b3-dc58-4b63-a570-32cf5cbd8d5b", + "name": "Publish Zaaktype procestermijn vast_te_leggen_datum", + "request": { + "url": { + "path": [ + "publish" + ], + "host": [ + "{{zaaktype_procestermijn_vast_te_leggen_datum_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "b5522570-cffc-4770-a633-b438def166ab", + "type": "text/javascript", + "exec": [ + "pm.environment.set(\"archiving_zaaktypen\", [", + " pm.environment.get(\"zaaktype_procestermijn_nihil_url\"),", + " pm.environment.get(\"zaaktype_procestermijn_ingeschatte_bestaansduur_object_url\"),", + " pm.environment.get(\"zaaktype_procestermijn_vast_te_leggen_datum_url\")", + "]);" + ], + "_lastExecutionId": "e0e11093-f48a-40c1-ad52-ff4eeb188539" + } + }, + { + "listen": "prerequest", + "script": { + "id": "8bc52dca-29e2-4e3e-a86d-260f8bda69f1", + "type": "text/javascript", + "exec": [ + "" + ], + "_lastExecutionId": "2ccbf80a-fdfd-4391-9317-9dde65b57704" + } + } + ] + }, + { + "id": "986f8ed6-971e-42be-9f9f-2f1d2ec7935f", + "name": "Create Zaak without archiefnominatie", + "request": { + "url": { + "path": [ + "zaken" + ], + "host": [ + "{{zrc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Accept-Crs", + "value": "EPSG:4326" + }, + { + "key": "Content-Crs", + "value": "EPSG:4326" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\r\n \"bronorganisatie\": \"000000000\",\r\n \"omschrijving\": \"string\",\r\n \"toelichting\": \"string\",\r\n \"zaaktype\": \"{{zaaktype_procestermijn_vast_te_leggen_datum_url}}\",\r\n \"registratiedatum\": \"2019-04-09\",\r\n \"verantwoordelijkeOrganisatie\": \"000000000\",\r\n \"startdatum\": \"2019-04-09\",\r\n \"einddatum\": null,\r\n \"einddatumGepland\": \"2019-04-20\",\r\n \"uiterlijkeEinddatumAfdoening\": \"2019-04-09\",\r\n \"publicatiedatum\": \"2019-04-09\",\r\n \"communicatiekanaal\": \"\",\r\n \"productenOfDiensten\": [],\r\n \"vertrouwelijkheidaanduiding\": \"geheim\",\r\n \"betalingsindicatie\": \"geheel\",\r\n \"betalingsindicatieWeergave\": null,\r\n \"laatsteBetaaldatum\": \"2019-01-01T00:00:00Z\",\r\n \"zaakgeometrie\": {\r\n \"type\": \"Point\",\r\n \"coordinates\": [\r\n 53.0,\r\n 5.0\r\n ]\r\n },\r\n \"verlenging\": null,\r\n \"opschorting\": null,\r\n \"selectielijstklasse\": \"https://referentielijsten.roxit.nl/api/v1/resultaten/0fe71ce3-b1e1-48eb-9070-be2756fc71b5\",\r\n \"hoofdzaak\": null,\r\n \"deelzaken\": [],\r\n \"relevanteAndereZaken\": [],\r\n \"eigenschappen\": [],\r\n \"rollen\": [],\r\n \"status\": null,\r\n \"zaakinformatieobjecten\": [],\r\n \"zaakobjecten\": [],\r\n \"resultaat\": null,\r\n \"kenmerken\": [],\r\n \"archiefnominatie\": null,\r\n \"archiefstatus\": \"nog_te_archiveren\",\r\n \"archiefactiedatum\": null,\r\n \"opdrachtgevendeOrganisatie\": null,\r\n \"processobjectaard\": null,\r\n \"startdatumBewaartermijn\": null,\r\n \"processobject\": null\r\n}" + } + }, + "response": [], + "event": [ + { + "listen": "prerequest", + "script": { + "id": "450b56ff-da21-48f3-9470-919f241a4800", + "type": "text/javascript", + "packages": {}, + "exec": [ + "" + ], + "_lastExecutionId": "10f86cf1-d065-4eb1-97fb-b3b1264ceb13" + } + }, + { + "listen": "test", + "script": { + "id": "6813f73f-d038-4666-a158-fb468b2442f3", + "type": "text/javascript", + "packages": {}, + "exec": [ + "pm.environment.set(\"zaak_zonder_archiefnominatie_url\", pm.response.json().url);" + ], + "_lastExecutionId": "a5df61dd-324e-4226-934b-b7802e44b7f7" + } + } + ] + }, + { + "id": "4ad737fb-2160-4da9-aa1d-1835d5fdc7ce", + "name": "besluit", + "request": { + "url": { + "path": [ + "besluiten" + ], + "host": [ + "{{brc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n \"verantwoordelijkeOrganisatie\": \"000000000\",\n \"besluittype\": \"{{concept_besluittype_url}}\",\n \"zaak\": \"{{zaak_zonder_archiefnominatie_url}}\",\n \"datum\": \"2019-01-01\",\n \"ingangsdatum\": \"2018-11-11\"\n}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "3d563803-18f7-4fe5-abb4-abd1615aabf1", + "type": "text/javascript", + "packages": {}, + "exec": [ + "var besluit = pm.response.json();", + "pm.environment.set(\"besluit_url\", besluit.url);", + "" + ], + "_lastExecutionId": "03c3486c-27ed-439a-a720-2f718edc5461" + } + } + ] + }, + { + "id": "416241ad-e32b-452f-ba59-5ccb399e4efc", + "name": "Add Resultaat to Zaak", + "request": { + "url": { + "path": [ + "resultaten" + ], + "host": [ + "{{zrc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n\t\"zaak\": \"{{zaak_zonder_archiefnominatie_url}}\",\n\t\"resultaattype\": \"{{current_resultaattype}}\"\n}" + } + }, + "response": [], + "event": [ + { + "listen": "prerequest", + "script": { + "id": "84ac8a7c-fc5f-4ea9-bc1c-ebbf529bf782", + "type": "text/javascript", + "exec": [ + "// if (!pm.environment.get(\"resultaattype_index\")) {", + "// pm.environment.set(\"resultaattype_index\", 0);", + "// }", + "", + "// pm.environment.set(\"current_resultaattype\", pm.environment.get(\"zaaktype_resultaattypen\")[pm.environment.get(\"resultaattype_index\")])" + ], + "_lastExecutionId": "9f2b70e2-8079-4b1f-a7f0-701232ef2af1" + } + }, + { + "listen": "test", + "script": { + "id": "9ca5b60b-1ef3-4a84-b3ee-d805b9507f29", + "type": "text/javascript", + "exec": [ + "pm.environment.set(\"zaak_resultaat_url\", pm.response.json().url);" + ], + "_lastExecutionId": "a9536c07-a486-4b35-aa1f-1d15cb586b8b" + } + } + ] + }, + { + "id": "7c658f89-4fdb-46ef-ab36-b3468c22151e", + "name": "Add Eindstatus to Zaak without archiefnominatie", + "request": { + "url": { + "path": [ + "statussen" + ], + "host": [ + "{{zrc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n\t\"zaak\": \"{{zaak_zonder_archiefnominatie_url}}\",\n\t\"statustype\": \"{{current_statustype_url}}\",\n\t\"datumStatusGezet\": \"2018-04-26T13:37:00\"\n}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "84a3b47b-821a-4279-99e2-5f3c3aad530f", + "type": "text/javascript", + "exec": [ + "" + ], + "_lastExecutionId": "29e517c3-54de-4387-ba65-2d0bdf03b2a5" + } + }, + { + "listen": "prerequest", + "script": { + "id": "e0352f04-e9a8-4fe6-b300-750ce03e828e", + "type": "text/javascript", + "exec": [ + "" + ], + "_lastExecutionId": "e4528b87-72ba-4483-899e-4361e7695b2b" + } + } + ] + }, + { + "id": "87953ab5-d7c0-4689-aedf-71aef4f31447", + "name": "(zrc-021d) Afleidingswijze ingangsdatum besluit", + "request": { + "url": { + "host": [ + "{{zaak_zonder_archiefnominatie_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Accept-Crs", + "value": "EPSG:4326" + } + ], + "method": "GET" + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "e1e319b3-3356-48bc-85d5-b6a8ac4bb5f1", + "type": "text/javascript", + "packages": {}, + "exec": [ + "pm.test(\"zrc-021d afleidingswijze ingangsdatum besluit\", function() {", + " pm.expect(pm.response.json().archiefactiedatum).to.be.equal(\"2023-11-11\");", + "});" + ], + "_lastExecutionId": "009e8e52-74c5-44a2-9574-79a1833420c7" + } + }, + { + "listen": "prerequest", + "script": { + "id": "7b67e8a0-416e-4001-94a0-ad7102b1d718", + "type": "text/javascript", + "packages": {}, + "exec": [ + "" + ], + "_lastExecutionId": "60d162c9-1bf0-40d5-9bae-8fbf7709f21e" + } + } + ] + } + ], + "event": [ + { + "listen": "prerequest", + "script": { + "id": "be119482-1753-4170-a79e-3310b7f0eae1", + "type": "text/javascript", + "exec": [ + "" + ], + "_lastExecutionId": "45ec876d-49f6-463c-92a6-11bcbef396df" + } + }, + { + "listen": "test", + "script": { + "id": "3aa71048-b284-4baa-8a83-415265653b28", + "type": "text/javascript", + "exec": [ + "" + ], + "_lastExecutionId": "07596415-2fcb-468b-8401-2f41ab7a4237" + } + } + ] + }, + { + "id": "9583fd38-6bca-44ff-a175-7dcb8424b8fc", + "name": "zrc-021e", + "item": [ + { + "id": "895e091f-89a0-429c-ae78-8ff76a42d6c5", + "name": "Create concept Besluittype", + "request": { + "url": { + "path": [ + "besluittypen" + ], + "host": [ + "{{ztc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n \"catalogus\": \"{{catalogus_url}}\",\n \"omschrijving\": \"{{random_omschrijving}}\",\n \"zaaktypen\": [],\n\t\"publicatieIndicatie\": false,\n\t\"informatieobjecttypen\": [],\n\t\"beginGeldigheid\": \"2019-01-01\"\n}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "1b703ce7-22ff-4d8f-81c3-a9fe57f94e72", + "type": "text/javascript", + "packages": {}, + "exec": [ + "pm.environment.set(\"besluittype_omschrijving\", pm.response.json().omschrijving);\r", + "pm.environment.set(\"concept_besluittype_url\", pm.response.json().url);" + ], + "_lastExecutionId": "02d70faf-d14e-4911-b58f-7de9818f6674" + } + }, + { + "listen": "prerequest", + "script": { + "id": "e295fb2e-5413-4f80-be4d-841ae4a06c76", + "type": "text/javascript", + "packages": {}, + "exec": [ + "var uuid = require('uuid');\r", + "var myUUID = uuid.v4(); \r", + "pm.environment.set(\"random_omschrijving\",myUUID);" + ], + "_lastExecutionId": "736ff304-a643-4a7a-b8d1-8692dd1927ff" + } + } + ] + }, + { + "id": "55891476-ec46-4fa5-b859-fff7f56cc46c", + "name": "Create Zaaktype procestermijn vast_te_leggen_datum", + "request": { + "url": { + "path": [ + "zaaktypen" + ], + "host": [ + "{{ztc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\r\n\r\n \"identificatie\": \"{{random_identificatie}}\",\r\n \"omschrijving\": \"Zaaktype for archiving tests vast_te_leggen_datum\",\r\n \"omschrijvingGeneriek\": null,\r\n \"vertrouwelijkheidaanduiding\": \"openbaar\",\r\n \"doel\": \"test doel\",\r\n \"aanleiding\": \"test aanleiding\",\r\n \"toelichting\": null,\r\n \"indicatieInternOfExtern\": \"extern\",\r\n \"handelingInitiator\": \"indienen\",\r\n \"onderwerp\": \"openbare ruimte\",\r\n \"handelingBehandelaar\": \"behandelen\",\r\n \"doorlooptijd\": \"P10D\",\r\n \"servicenorm\": null,\r\n \"opschortingEnAanhoudingMogelijk\": false,\r\n \"verlengingMogelijk\": true,\r\n \"verlengingstermijn\": \"P5D\",\r\n \"trefwoorden\": [],\r\n \"publicatieIndicatie\": false,\r\n \"publicatietekst\": null,\r\n \"verantwoordingsrelatie\": [],\r\n \"productenOfDiensten\": [\r\n \"https://ref.tst.vng.cloud/standaard/\"\r\n ],\r\n \"selectielijstProcestype\": \"{{procestype_procestermijn_vast_te_leggen_datum_url}}\",\r\n \"referentieproces\": {\r\n \"naam\": \"test\",\r\n \"link\": \"\"\r\n },\r\n \"verantwoordelijke\": \"X\",\r\n \"zaakobjecttypen\": [],\r\n \"broncatalogus\": null,\r\n \"bronzaaktype\": null,\r\n \"catalogus\": \"{{catalogus_url}}\",\r\n \"statustypen\": [],\r\n \"resultaattypen\": [],\r\n \"eigenschappen\": [],\r\n \"informatieobjecttypen\": [],\r\n \"roltypen\": [],\r\n \"besluittypen\": [\"{{besluittype_omschrijving}}\"],\r\n \"deelzaaktypen\": [\r\n \r\n ],\r\n \"gerelateerdeZaaktypen\": [],\r\n \"concept\": true,\r\n \"beginGeldigheid\": \"2019-01-01\",\r\n \"eindeGeldigheid\": null,\r\n \"beginObject\": null,\r\n \"eindeObject\": null,\r\n \"versiedatum\": \"2019-01-01\"\r\n}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "4b12a9ee-cb6d-4952-aba1-6e8ac287649a", + "type": "text/javascript", + "packages": {}, + "exec": [ + "var res = pm.response.json();", + "pm.environment.set(\"zaaktype_procestermijn_vast_te_leggen_datum_url\", res.url);" + ], + "_lastExecutionId": "65f1a1de-ccab-47a4-8e4c-057ce373373d" + } + }, + { + "listen": "prerequest", + "script": { + "id": "20bb7b76-a80a-41ab-96a6-b3674a4a9bb2", + "type": "text/javascript", + "packages": {}, + "exec": [ + "var uuid = require('uuid');", + "var myUUID = uuid.v4(); ", + "pm.environment.set(\"random_identificatie\",myUUID);", + "", + "", + "" + ], + "_lastExecutionId": "dd35e31c-eb96-4782-a4fa-1706f26e5038" + } + } + ] + }, + { + "id": "50dd2829-c9f8-402e-bf5a-476964e97f16", + "name": "Create Resultaattype afleidingswijze vervaldatum_besluit", + "request": { + "url": { + "path": [ + "resultaattypen" + ], + "host": [ + "{{ztc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n\t\"zaaktype\": \"{{zaaktype_procestermijn_vast_te_leggen_datum_url}}\",\n\t\"omschrijving\": \"TEST\",\n\t\"resultaattypeomschrijving\": \"https://referentielijsten.roxit.nl/api/v1/resultaattypeomschrijvingen/bae947e7-02b5-44f9-ab76-28c7a0ed01c0\",\n\t\"selectielijstklasse\": \"{{selectielijstklasse_procestermijn_vast_te_leggen_datum_url}}\",\n \"besluittypen\": [],\n\t\"brondatumArchiefprocedure\": {\n\t\t\"afleidingswijze\": \"vervaldatum_besluit\",\n\t\t\"procestermijn\": null,\n\t\t\"datumkenmerk\": \"\",\n\t\t\"einddatumBekend\": true,\n\t\t\"objecttype\": \"\",\n\t\t\"registratie\": \"\"\n\t}\n}" + } + }, + "response": [], + "event": [ + { + "listen": "prerequest", + "script": { + "id": "c180663e-9b61-42b6-8aa8-bd6f1311f1fe", + "type": "text/javascript", + "packages": {}, + "exec": [ + "" + ], + "_lastExecutionId": "b4cd7e48-cd4d-49c4-bcb2-341e94bab14a" + } + }, + { + "listen": "test", + "script": { + "id": "1207b969-bfe4-429b-8b69-2c6ecf8f6c04", + "type": "text/javascript", + "packages": {}, + "exec": [ + "var jsonData = pm.response.json();", + "", + "pm.environment.set(\"current_resultaattype\", jsonData.url);", + "pm.environment.set(\"resultaattype_archiefnominatie\", jsonData.archiefnominatie);", + "pm.environment.set(\"resultaattype_archiefactietermijn\", jsonData.archiefactietermijn);", + "pm.environment.set(\"resultaattype_brondatumArchiefprocedure\", jsonData.brondatumArchiefprocedure);" + ], + "_lastExecutionId": "41823a04-d090-418b-ba94-21413f3dc121" + } + } + ] + }, + { + "id": "a6acafda-2a60-46df-baca-4b4a1e06a92f", + "name": "Create eind Statustype procestermijn vast_te_leggen_datum", + "request": { + "url": { + "path": [ + "statustypen" + ], + "host": [ + "{{ztc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n\t\"omschrijving\": \"Eind\",\n\t\"zaaktype\": \"{{zaaktype_procestermijn_vast_te_leggen_datum_url}}\",\n\t\"volgnummer\": 2\n}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "0af82795-a00c-430b-a801-151540fc84b6", + "type": "text/javascript", + "exec": [ + "pm.environment.set(\"current_statustype_url\", pm.response.json().url);" + ], + "_lastExecutionId": "c1842862-b10e-485a-bb51-e7b1f3cddee2" + } + } + ] + }, + { + "id": "c97f3315-f731-4791-b9dc-7c3e408ca2d4", + "name": "Publish concept Besluittype", + "request": { + "url": { + "path": [ + "publish" + ], + "host": [ + "{{concept_besluittype_url}}" + ], + "query": [], + "variable": [] + }, + "method": "POST" + }, + "response": [], + "event": [] + }, + { + "id": "a882450b-7c71-4e6d-9025-2de34cd00699", + "name": "Publish Zaaktype procestermijn vast_te_leggen_datum", + "request": { + "url": { + "path": [ + "publish" + ], + "host": [ + "{{zaaktype_procestermijn_vast_te_leggen_datum_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "c4b0d862-d3ae-40a3-ab08-8307d8b6be2f", + "type": "text/javascript", + "exec": [ + "pm.environment.set(\"archiving_zaaktypen\", [", + " pm.environment.get(\"zaaktype_procestermijn_nihil_url\"),", + " pm.environment.get(\"zaaktype_procestermijn_ingeschatte_bestaansduur_object_url\"),", + " pm.environment.get(\"zaaktype_procestermijn_vast_te_leggen_datum_url\")", + "]);" + ], + "_lastExecutionId": "0a1056ad-b9c6-46e1-8c69-58caf3aae808" + } + }, + { + "listen": "prerequest", + "script": { + "id": "f5eaea45-cc29-44aa-8ff7-39fc25504480", + "type": "text/javascript", + "exec": [ + "" + ], + "_lastExecutionId": "5d74d103-35ec-435f-bd63-74a79c9c9418" + } + } + ] + }, + { + "id": "7bc4e01b-cfd2-4a7d-8e7a-d1365a197786", + "name": "Create Zaak without archiefnominatie", + "request": { + "url": { + "path": [ + "zaken" + ], + "host": [ + "{{zrc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Accept-Crs", + "value": "EPSG:4326" + }, + { + "key": "Content-Crs", + "value": "EPSG:4326" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\r\n \"bronorganisatie\": \"000000000\",\r\n \"omschrijving\": \"string\",\r\n \"toelichting\": \"string\",\r\n \"zaaktype\": \"{{zaaktype_procestermijn_vast_te_leggen_datum_url}}\",\r\n \"registratiedatum\": \"2019-04-09\",\r\n \"verantwoordelijkeOrganisatie\": \"000000000\",\r\n \"startdatum\": \"2019-04-09\",\r\n \"einddatum\": null,\r\n \"einddatumGepland\": \"2019-04-20\",\r\n \"uiterlijkeEinddatumAfdoening\": \"2019-04-09\",\r\n \"publicatiedatum\": \"2019-04-09\",\r\n \"communicatiekanaal\": \"\",\r\n \"productenOfDiensten\": [],\r\n \"vertrouwelijkheidaanduiding\": \"geheim\",\r\n \"betalingsindicatie\": \"geheel\",\r\n \"betalingsindicatieWeergave\": null,\r\n \"laatsteBetaaldatum\": \"2019-01-01T00:00:00Z\",\r\n \"zaakgeometrie\": {\r\n \"type\": \"Point\",\r\n \"coordinates\": [\r\n 53.0,\r\n 5.0\r\n ]\r\n },\r\n \"verlenging\": null,\r\n \"opschorting\": null,\r\n \"selectielijstklasse\": \"https://referentielijsten.roxit.nl/api/v1/resultaten/0fe71ce3-b1e1-48eb-9070-be2756fc71b5\",\r\n \"hoofdzaak\": null,\r\n \"deelzaken\": [],\r\n \"relevanteAndereZaken\": [],\r\n \"eigenschappen\": [],\r\n \"rollen\": [],\r\n \"status\": null,\r\n \"zaakinformatieobjecten\": [],\r\n \"zaakobjecten\": [],\r\n \"resultaat\": null,\r\n \"kenmerken\": [],\r\n \"archiefnominatie\": null,\r\n \"archiefstatus\": \"nog_te_archiveren\",\r\n \"archiefactiedatum\": null,\r\n \"opdrachtgevendeOrganisatie\": null,\r\n \"processobjectaard\": null,\r\n \"startdatumBewaartermijn\": null,\r\n \"processobject\": null\r\n}" + } + }, + "response": [], + "event": [ + { + "listen": "prerequest", + "script": { + "id": "bda2b51b-6993-4a11-9e0e-dc7620c2b233", + "type": "text/javascript", + "packages": {}, + "exec": [ + "" + ], + "_lastExecutionId": "ca299685-d02a-4785-b812-8e097580eb6e" + } + }, + { + "listen": "test", + "script": { + "id": "45eebaf4-2422-412d-841e-ddd484ea8fca", + "type": "text/javascript", + "packages": {}, + "exec": [ + "pm.environment.set(\"zaak_zonder_archiefnominatie_url\", pm.response.json().url);" + ], + "_lastExecutionId": "8cf18216-2ffa-4572-b483-3f4899974a08" + } + } + ] + }, + { + "id": "904b9fe6-c566-468e-9383-423a405be1d8", + "name": "besluit met eerdere datum", + "request": { + "url": { + "path": [ + "besluiten" + ], + "host": [ + "{{brc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n \"verantwoordelijkeOrganisatie\": \"000000000\",\n \"besluittype\": \"{{concept_besluittype_url}}\",\n \"zaak\": \"{{zaak_zonder_archiefnominatie_url}}\",\n \"datum\": \"2019-01-01\",\n \"ingangsdatum\": \"2018-10-10\",\n \"vervaldatum\": \"2015-09-16\"\n}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "c079b81d-4910-4ff1-bf4c-a31a0b0eebf8", + "type": "text/javascript", + "packages": {}, + "exec": [ + "var besluit = pm.response.json();", + "pm.environment.set(\"besluit_url\", besluit.url);", + "" + ], + "_lastExecutionId": "ddbee593-9a89-41d8-870e-23ad68dc2638" + } + } + ] + }, + { + "id": "7f917139-716b-4012-8d6f-27f22753bf70", + "name": "besluit", + "request": { + "url": { + "path": [ + "besluiten" + ], + "host": [ + "{{brc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n \"verantwoordelijkeOrganisatie\": \"000000000\",\n \"besluittype\": \"{{concept_besluittype_url}}\",\n \"zaak\": \"{{zaak_zonder_archiefnominatie_url}}\",\n \"datum\": \"2019-01-01\",\n \"ingangsdatum\": \"2018-10-10\",\n \"vervaldatum\": \"2025-09-16\"\n}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "ece7cfd0-af1c-4186-9530-140cfd74c083", + "type": "text/javascript", + "packages": {}, + "exec": [ + "var besluit = pm.response.json();", + "pm.environment.set(\"besluit_url\", besluit.url);", + "" + ], + "_lastExecutionId": "5d111730-bfd2-4154-90fb-0659670c1806" + } + } + ] + }, + { + "id": "59a8bbf5-d0bc-4b9c-83ee-e263eff9e64d", + "name": "Add Resultaat to Zaak", + "request": { + "url": { + "path": [ + "resultaten" + ], + "host": [ + "{{zrc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n\t\"zaak\": \"{{zaak_zonder_archiefnominatie_url}}\",\n\t\"resultaattype\": \"{{current_resultaattype}}\"\n}" + } + }, + "response": [], + "event": [ + { + "listen": "prerequest", + "script": { + "id": "6af2b05a-cbac-4045-86fe-b6aebf60781f", + "type": "text/javascript", + "exec": [ + "// if (!pm.environment.get(\"resultaattype_index\")) {", + "// pm.environment.set(\"resultaattype_index\", 0);", + "// }", + "", + "// pm.environment.set(\"current_resultaattype\", pm.environment.get(\"zaaktype_resultaattypen\")[pm.environment.get(\"resultaattype_index\")])" + ], + "_lastExecutionId": "ac2285f7-c534-49a1-b2ba-04f06a775203" + } + }, + { + "listen": "test", + "script": { + "id": "d2059830-36ce-4959-9508-3223fd4eac70", + "type": "text/javascript", + "exec": [ + "pm.environment.set(\"zaak_resultaat_url\", pm.response.json().url);" + ], + "_lastExecutionId": "91e45eb2-3d16-4112-89a5-1cecab668d65" + } + } + ] + }, + { + "id": "312c16a1-a7d0-4959-b68e-36672cdf6ba9", + "name": "Add Eindstatus to Zaak without archiefnominatie", + "request": { + "url": { + "path": [ + "statussen" + ], + "host": [ + "{{zrc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n\t\"zaak\": \"{{zaak_zonder_archiefnominatie_url}}\",\n\t\"statustype\": \"{{current_statustype_url}}\",\n\t\"datumStatusGezet\": \"2018-04-26T13:37:00\"\n}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "f66aff1e-cc88-483a-a9b5-96c256badae6", + "type": "text/javascript", + "exec": [ + "" + ], + "_lastExecutionId": "de3c950a-315e-4bab-804b-8ae77f771228" + } + }, + { + "listen": "prerequest", + "script": { + "id": "92f6eccc-e6a4-4c6c-8bd9-011d8c9a8b1d", + "type": "text/javascript", + "exec": [ + "" + ], + "_lastExecutionId": "7fd4ff46-89bc-4345-b8f1-cb60d21c8400" + } + } + ] + }, + { + "id": "8864a293-2594-4fd5-b9a8-aba910ebb609", + "name": "(zrc-021e) Afleidingswijze vervaldatum_besluit", + "request": { + "url": { + "host": [ + "{{zaak_zonder_archiefnominatie_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Accept-Crs", + "value": "EPSG:4326" + } + ], + "method": "GET" + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "13329ca9-4355-4f60-b5ba-d14fcad2c029", + "type": "text/javascript", + "packages": {}, + "exec": [ + "pm.test(\"zrc-021d afleidingswijze vervaldatum besluit\", function() {", + " pm.expect(pm.response.json().archiefactiedatum).to.be.equal(\"2030-09-16\");", + "});" + ], + "_lastExecutionId": "42184437-29ba-459f-beb9-0dc867b8c16d" + } + }, + { + "listen": "prerequest", + "script": { + "id": "fe6fbed3-e761-4d3a-8f39-10ea226fddc3", + "type": "text/javascript", + "packages": {}, + "exec": [ + "" + ], + "_lastExecutionId": "4cfb1904-da2e-4922-83f3-b34228f756f5" + } + } + ] + } + ], + "event": [ + { + "listen": "prerequest", + "script": { + "id": "c9a5b476-7f95-4354-ba94-b4b7234bf3f5", + "type": "text/javascript", + "exec": [ + "" + ], + "_lastExecutionId": "9357f66f-0fbe-408c-93bd-8ef8faf5993e" + } + }, + { + "listen": "test", + "script": { + "id": "ebd1761e-117c-4064-80f1-f0979581743b", + "type": "text/javascript", + "exec": [ + "" + ], + "_lastExecutionId": "54fc9dd5-3cd4-4307-ba8f-6fdbc479d7be" + } + } + ] + }, + { + "id": "9cf970ea-e9ed-445c-b61e-afdfc9bbb4b5", + "name": "zrc-021g", + "item": [ + { + "id": "2892d305-7ad6-4a9b-971e-22ed9e084afb", + "name": "Create Zaaktype procestermijn vast_te_leggen_datum", + "request": { + "url": { + "path": [ + "zaaktypen" + ], + "host": [ + "{{ztc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{{request_body}}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "9c4bbcfc-2fb2-4e23-a160-b28870bf6bfa", + "type": "text/javascript", + "exec": [ + "var res = pm.response.json();", + "pm.environment.set(\"zaaktype_procestermijn_vast_te_leggen_datum_url\", res.url);" + ], + "_lastExecutionId": "83114555-84bf-4ee4-914b-1bdb11fa910f" + } + }, + { + "listen": "prerequest", + "script": { + "id": "3d3b1af6-deaa-4056-a022-5c5a74705ce6", + "type": "text/javascript", + "exec": [ + "// Retrieve the Zaak body template and modify as needed", + "var body = JSON.parse(pm.environment.get(\"zaaktype_body\"));", + "body.besluittypen = [];", + "body.omschrijving = \"Zaaktype for archiving tests vast_te_leggen_datum\";", + "body.selectielijstProcestype = pm.environment.get(\"procestype_procestermijn_vast_te_leggen_datum_url\");", + "var uuid = require('uuid');", + "var myUUID = uuid.v4(); ", + "body.identificatie=myUUID", + "// Store the modified Zaak body, allowing it to be used in the main request", + "pm.environment.set(\"request_body\", JSON.stringify(body));" + ], + "_lastExecutionId": "e74d10ba-bfa0-4d57-9691-d613ed6bbf12" + } + } + ] + }, + { + "id": "7d48a77f-d150-44f3-9676-f3947fe23f7e", + "name": "Create Resultaattype procestermijn vast_te_leggen_datum", + "request": { + "url": { + "path": [ + "resultaattypen" + ], + "host": [ + "{{ztc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n\t\"zaaktype\": \"{{zaaktype_procestermijn_vast_te_leggen_datum_url}}\",\n\t\"omschrijving\": \"Test\",\n\t\"resultaattypeomschrijving\": \"https://referentielijsten.roxit.nl/api/v1/resultaattypeomschrijvingen/cad65ef5-6db5-404f-8c6b-8b76d7af40f5\",\n\t\"selectielijstklasse\": \"{{selectielijstklasse_procestermijn_vast_te_leggen_datum_url}}\",\n\t\"brondatumArchiefprocedure\": {\n\t\t\"afleidingswijze\": \"ander_datumkenmerk\",\n\t\t\"procestermijn\": null,\n\t\t\"datumkenmerk\": \"identificatie\",\n\t\t\"einddatumBekend\": false,\n\t\t\"objecttype\": \"pand\",\n\t\t\"registratie\": \"test\"\n\t},\"besluittypen\":[]\n}" + } + }, + "response": [], + "event": [ + { + "listen": "prerequest", + "script": { + "id": "6499d324-bfea-42ee-8ad6-12295c5229dd", + "type": "text/javascript", + "packages": {}, + "exec": [ + "" + ], + "_lastExecutionId": "86e86a31-dc4f-4b5b-94f9-1f5f21eee0ec" + } + }, + { + "listen": "test", + "script": { + "id": "bb5b8781-83d5-4267-8ffe-5385087fbd99", + "type": "text/javascript", + "packages": {}, + "exec": [ + "var jsonData = pm.response.json();", + "", + "pm.environment.set(\"current_resultaattype\", jsonData.url);", + "pm.environment.set(\"resultaattype_archiefnominatie\", jsonData.archiefnominatie);", + "pm.environment.set(\"resultaattype_archiefactietermijn\", jsonData.archiefactietermijn);", + "pm.environment.set(\"resultaattype_brondatumArchiefprocedure\", jsonData.brondatumArchiefprocedure);" + ], + "_lastExecutionId": "15125c02-a2be-40fa-88bd-5c18d478167b" + } + } + ] + }, + { + "id": "cecc81ad-f294-4ae7-b9e1-8d3f00452168", + "name": "Create eind Statustype procestermijn vast_te_leggen_datum", + "request": { + "url": { + "path": [ + "statustypen" + ], + "host": [ + "{{ztc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n\t\"omschrijving\": \"Eind\",\n\t\"zaaktype\": \"{{zaaktype_procestermijn_vast_te_leggen_datum_url}}\",\n\t\"volgnummer\": 2\n}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "af6df8e4-791f-4139-ac73-0265ee0dcff5", + "type": "text/javascript", + "exec": [ + "pm.environment.set(\"current_statustype_url\", pm.response.json().url);" + ], + "_lastExecutionId": "4c501cd6-afa0-44fa-b598-d86732f30fb6" + } + } + ] + }, + { + "id": "05ec5dd3-0eb1-411f-8a23-2a683a349f7b", + "name": "Publish Zaaktype procestermijn vast_te_leggen_datum", + "request": { + "url": { + "path": [ + "publish" + ], + "host": [ + "{{zaaktype_procestermijn_vast_te_leggen_datum_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "a5a016cf-a23d-4fd4-9ff6-d35e85055ab4", + "type": "text/javascript", + "exec": [ + "pm.environment.set(\"archiving_zaaktypen\", [", + " pm.environment.get(\"zaaktype_procestermijn_nihil_url\"),", + " pm.environment.get(\"zaaktype_procestermijn_ingeschatte_bestaansduur_object_url\"),", + " pm.environment.get(\"zaaktype_procestermijn_vast_te_leggen_datum_url\")", + "]);" + ], + "_lastExecutionId": "025d162d-e108-44d2-b4dc-a409ff6045e3" + } + }, + { + "listen": "prerequest", + "script": { + "id": "322c2820-76c0-4b9e-a316-96ababe1003d", + "type": "text/javascript", + "exec": [ + "" + ], + "_lastExecutionId": "23a32a57-3d27-4bba-ae5d-1e36af14f027" + } + } + ] + }, + { + "id": "381f329e-48ee-4f74-ae36-b2ccb7c36178", + "name": "Create Zaak without archiefnominatie", + "request": { + "url": { + "path": [ + "zaken" + ], + "host": [ + "{{zrc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Accept-Crs", + "value": "EPSG:4326" + }, + { + "key": "Content-Crs", + "value": "EPSG:4326" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\r\n \"bronorganisatie\": \"000000000\",\r\n \"omschrijving\": \"string\",\r\n \"toelichting\": \"string\",\r\n \"zaaktype\": \"{{zaaktype_procestermijn_vast_te_leggen_datum_url}}\",\r\n \"registratiedatum\": \"2019-04-09\",\r\n \"verantwoordelijkeOrganisatie\": \"000000000\",\r\n \"startdatum\": \"2019-04-09\",\r\n \"einddatum\": null,\r\n \"einddatumGepland\": \"2019-04-20\",\r\n \"uiterlijkeEinddatumAfdoening\": \"2019-04-09\",\r\n \"publicatiedatum\": \"2019-04-09\",\r\n \"communicatiekanaal\": \"\",\r\n \"productenOfDiensten\": [],\r\n \"vertrouwelijkheidaanduiding\": \"geheim\",\r\n \"betalingsindicatie\": \"geheel\",\r\n \"betalingsindicatieWeergave\": null,\r\n \"laatsteBetaaldatum\": \"2019-01-01T00:00:00Z\",\r\n \"zaakgeometrie\": {\r\n \"type\": \"Point\",\r\n \"coordinates\": [\r\n 53.0,\r\n 5.0\r\n ]\r\n },\r\n \"verlenging\": null,\r\n \"opschorting\": null,\r\n \"selectielijstklasse\": \"https://referentielijsten.roxit.nl/api/v1/resultaten/0fe71ce3-b1e1-48eb-9070-be2756fc71b5\",\r\n \"hoofdzaak\": null,\r\n \"deelzaken\": [],\r\n \"relevanteAndereZaken\": [],\r\n \"eigenschappen\": [],\r\n \"rollen\": [],\r\n \"status\": null,\r\n \"zaakinformatieobjecten\": [],\r\n \"zaakobjecten\": [],\r\n \"resultaat\": null,\r\n \"kenmerken\": [],\r\n \"archiefnominatie\": null,\r\n \"archiefstatus\": \"nog_te_archiveren\",\r\n \"archiefactiedatum\": null,\r\n \"opdrachtgevendeOrganisatie\": null,\r\n \"processobjectaard\": null,\r\n \"startdatumBewaartermijn\": null,\r\n \"processobject\": null\r\n}" + } + }, + "response": [], + "event": [ + { + "listen": "prerequest", + "script": { + "id": "f7c7d51c-6e88-4b66-a661-047c76eda10a", + "type": "text/javascript", + "packages": {}, + "exec": [ + "" + ], + "_lastExecutionId": "284d4220-99a6-4456-895d-a2f5f2f758b8" + } + }, + { + "listen": "test", + "script": { + "id": "a5da970b-a9a3-446d-84ae-d19a9c9d0484", + "type": "text/javascript", + "packages": {}, + "exec": [ + "pm.environment.set(\"zaak_zonder_archiefnominatie_url\", pm.response.json().url);" + ], + "_lastExecutionId": "516881f7-44e2-4368-8ca5-75b9961e4eb6" + } + } + ] + }, + { + "id": "212d7a43-a884-4c9c-8093-e0fc2ed43421", + "name": "Add Resultaat to Zaak", + "request": { + "url": { + "path": [ + "resultaten" + ], + "host": [ + "{{zrc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n\t\"zaak\": \"{{zaak_zonder_archiefnominatie_url}}\",\n\t\"resultaattype\": \"{{current_resultaattype}}\"\n}" + } + }, + "response": [], + "event": [ + { + "listen": "prerequest", + "script": { + "id": "3c937fde-1e32-4775-8963-67d6c0494ca9", + "type": "text/javascript", + "exec": [ + "// if (!pm.environment.get(\"resultaattype_index\")) {", + "// pm.environment.set(\"resultaattype_index\", 0);", + "// }", + "", + "// pm.environment.set(\"current_resultaattype\", pm.environment.get(\"zaaktype_resultaattypen\")[pm.environment.get(\"resultaattype_index\")])" + ], + "_lastExecutionId": "bbc9b9c4-1f64-48c3-9b86-9377b948b4bf" + } + }, + { + "listen": "test", + "script": { + "id": "44663709-afeb-48b1-adc3-2356c1465d31", + "type": "text/javascript", + "exec": [ + "pm.environment.set(\"zaak_resultaat_url\", pm.response.json().url);" + ], + "_lastExecutionId": "4a834e3b-7de6-49bd-8126-9d039385e7f2" + } + } + ] + }, + { + "id": "c0a2a3c8-7c0c-4f1d-ada5-48013aa54947", + "name": "Add Eindstatus to Zaak without archiefnominatie", + "request": { + "url": { + "path": [ + "statussen" + ], + "host": [ + "{{zrc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n\t\"zaak\": \"{{zaak_zonder_archiefnominatie_url}}\",\n\t\"statustype\": \"{{current_statustype_url}}\",\n\t\"datumStatusGezet\": \"2018-04-26T13:37:00\"\n}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "062395d2-0ed0-48f0-b2da-18200689daec", + "type": "text/javascript", + "exec": [ + "" + ], + "_lastExecutionId": "cd81e3ab-988b-491e-a568-495fb74d8c85" + } + }, + { + "listen": "prerequest", + "script": { + "id": "a26aa521-74cb-45f1-9682-f1f48dd8a0dc", + "type": "text/javascript", + "exec": [ + "" + ], + "_lastExecutionId": "f2b77deb-d2d9-4733-91a6-570a4bdad943" + } + } + ] + }, + { + "id": "9a1b8361-d2d3-43df-a545-b50c5361508b", + "name": "(zrc-021g) Afleidingswijze ander_datumkenmerk", + "request": { + "url": { + "host": [ + "{{zaak_zonder_archiefnominatie_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Accept-Crs", + "value": "EPSG:4326" + } + ], + "method": "GET" + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "2df2545f-d35c-4069-85a4-08fa52208e91", + "type": "text/javascript", + "exec": [ + "var moment = require('moment');", + "", + "pm.test(\"Resultaat toevoegen aan Zaak zonder archiefnominatie betekent dat archiefnominatie afgeleid wordt uit Resultaattype\", function() {", + " pm.response.to.have.status(200);", + " pm.expect(pm.response.json().archiefnominatie).to.be.equal(pm.environment.get(\"resultaattype_archiefnominatie\"));", + "});", + "", + "pm.test(\"Resultaat met afleidingswijze ander_datumkenmerk toevoegen aan Zaak zet correcte Zaak.archiefdatum\", function() {", + " var jsonData = pm.response.json();", + " ", + " if (pm.environment.get(\"resultaattype_archiefactietermijn\")) {", + " // const brondatum = moment.utc(jsonData.einddatum).add(procestermijn);", + " // TODO", + " const brondatum = null;", + " ", + " // const archiefactietermijn = moment.duration(pm.environment.get(\"resultaattype_archiefactietermijn\"), 'years');", + " // var calculated_archiefactiedatum = brondatum.add(archiefactietermijn);", + " ", + " // pm.expect(jsonData.archiefactiedatum).to.be.equal(calculated_archiefactiedatum.format(\"YYYY-MM-DD\")); ", + " pm.expect(jsonData.archiefactiedatum).to.be.equal(null);", + " }", + "});" + ], + "_lastExecutionId": "d5e6fc8d-c2c9-405c-b463-91e2b70eea09" + } + } + ] + } + ], + "event": [ + { + "listen": "prerequest", + "script": { + "id": "8210e5ac-76b4-4720-8953-57afd7c8195a", + "type": "text/javascript", + "exec": [ + "" + ], + "_lastExecutionId": "8b3a103e-e636-4376-b3b6-5d0e2e350385" + } + }, + { + "listen": "test", + "script": { + "id": "885ca817-f372-4e7d-9e57-6fb46b8365a0", + "type": "text/javascript", + "exec": [ + "" + ], + "_lastExecutionId": "f0851840-49f8-4523-a6fb-9c630286f4df" + } + } + ] + }, + { + "id": "43cfbbae-a866-47a5-b2d8-afd96843f865", + "name": "zrc-021h TO DO datum object", + "item": [], + "event": [ + { + "listen": "prerequest", + "script": { + "id": "8f2b08a1-c1bf-4eb7-9a5e-f027811fccd5", + "type": "text/javascript", + "exec": [ + "" + ] + } + }, + { + "listen": "test", + "script": { + "id": "5cc42579-132f-48e1-9675-7111ae982b12", + "type": "text/javascript", + "exec": [ + "" + ] + } + } + ] + }, + { + "id": "e8b69a57-fe56-496d-bf8a-15e1cce127c1", + "name": "zrc-021i TO DO gerelateerde zaak", + "item": [], + "event": [ + { + "listen": "prerequest", + "script": { + "id": "1ad13e37-da1e-4acd-b80e-efd70101b42c", + "type": "text/javascript", + "exec": [ + "" + ] + } + }, + { + "listen": "test", + "script": { + "id": "c82af9b9-af31-4c69-87d2-baaf6f7bcc73", + "type": "text/javascript", + "exec": [ + "" + ] + } + } + ] + } + ], + "event": [] + }, + { + "id": "d0314e4b-17c7-42c4-b9c0-ea8cbaaf0782", + "name": "zrc-022", + "item": [ + { + "id": "c514dedb-32f3-48ac-9e83-bc1540a2de7b", + "name": "Create InformatieObjecttype Copy 2", + "request": { + "url": { + "path": [ + "informatieobjecttypen" + ], + "host": [ + "{{ztc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n\t\"catalogus\": \"{{catalogus_url}}\",\n\t\"omschrijving\": \"{{informatieobject_omschrijving}}\",\n\t\"vertrouwelijkheidaanduiding\": \"openbaar\",\n\t\"beginGeldigheid\": \"2019-01-01\",\n\t\"informatieobjectcategorie\": \"document\"\n}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "e7ec73c9-3bcb-42c6-92b2-960e3af1c4ad", + "type": "text/javascript", + "packages": {}, + "exec": [ + "if(pm.response.code == 201) {\r", + " pm.environment.set(\"informatieobjecttype_url\", pm.response.json().url);\r", + "}" + ], + "_lastExecutionId": "9a85c29d-19cf-419a-a5ac-a6b300902b3b" + } + }, + { + "listen": "prerequest", + "script": { + "id": "883b3480-e002-4d37-ba02-6d612b08f519", + "type": "text/javascript", + "packages": {}, + "exec": [ + "var uuid = require('uuid');\r", + "var myUUID = uuid.v4(); \r", + "pm.environment.set(\"informatieobject_omschrijving\", myUUID);" + ], + "_lastExecutionId": "592031af-a667-4e67-a96c-4b10e1326e26" + } + } + ] + }, + { + "id": "6643d5bd-c0fa-4423-b4a1-89f887a9aac2", + "name": "Create Zaaktype Copy 2", + "request": { + "url": { + "path": [ + "zaaktypen" + ], + "host": [ + "{{ztc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n\t\"identificatie\": \"{{random_identificatie}}\",\n \"omschrijving\": \"zrc_tests_1\",\n \"vertrouwelijkheidaanduiding\": \"openbaar\",\n \"doel\": \"test doel\",\n \"verantwoordelijke\":\"X\",\n \"aanleiding\": \"test aanleiding\",\n \"indicatieInternOfExtern\": \"extern\",\n \"handelingInitiator\": \"indienen\",\n \"onderwerp\": \"openbare ruimte\",\n \"handelingBehandelaar\": \"behandelen\",\n \"doorlooptijd\": \"P10D\",\n \"opschortingEnAanhoudingMogelijk\": false,\n \"verlengingMogelijk\": true,\n \"publicatieIndicatie\": false,\n \"productenOfDiensten\": [\n \"https://ref.tst.vng.cloud/standaard/\"\n ],\n \"selectielijstProcestype\": \"{{procestype_procestermijn_nihil_url}}\",\n \"referentieproces\": {\n \"naam\": \"test\",\n \"link\": \"\"\n },\n \"deelzaaktypen\": [\n \"{{deelzaaktype_identificatie}}\"\n ],\n \"catalogus\": \"{{catalogus_url}}\",\n \"statustypen\": [\n \n ],\n \"resultaattypen\": [\n ],\n \"eigenschappen\": [\n ],\n \"informatieobjecttypen\": [],\n \"besluittypen\": [\n \"{{besluit_omschrijving}}\"\n ],\n \"gerelateerdeZaaktypen\": [],\n \"beginGeldigheid\": \"2019-01-01\",\n \"versiedatum\": \"2019-01-01\",\n \"concept\": true,\n \"verlengingstermijn\": \"P5D\"\n}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "5b357457-36a8-43c5-878d-7caafa40dfa8", + "type": "text/javascript", + "packages": {}, + "exec": [ + "if(pm.response.code == 201) {", + " var res = pm.response.json();", + "pm.environment.set(\"zaaktype_url\", res.url);", + "pm.environment.set(\"zaaktype_vertrouwelijkheid\", res.vertrouwelijkheidaanduiding);", + "pm.environment.set(\"zaaktype_productenOfDiensten\", res.productenOfDiensten);", + "pm.environment.set(\"zaaktype_resultaattypen\", res.resultaattypen);", + "pm.environment.set(\"zaaktype_eigenschap\", res.eigenschappen[0]);", + "pm.environment.set(\"zaaktype_body\", pm.request.body.raw);", + "}" + ], + "_lastExecutionId": "30592ec1-5af0-4485-b3a2-f8835d241239" + } + }, + { + "listen": "prerequest", + "script": { + "id": "4488fd36-9e89-48e8-82e9-62bc48d2260f", + "type": "text/javascript", + "packages": {}, + "exec": [ + "var uuid = require('uuid');", + "var myUUID = uuid.v4(); ", + "pm.environment.set(\"random_identificatie\", myUUID);", + "" + ], + "_lastExecutionId": "2993ba61-90d0-4ad4-ab08-ff9253e2bcc0" + } + } + ] + }, + { + "id": "146734af-509c-407a-a1b9-70204293bdf0", + "name": "Create Zaaktype-InformatieObjectType relation Copy 2", + "request": { + "url": { + "path": [ + "zaaktype-informatieobjecttypen" + ], + "host": [ + "{{ztc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n\t\"zaaktype\": \"{{zaaktype_url}}\",\n\t\"informatieobjecttype\": \"{{informatieobject_omschrijving}}\",\n\t\"volgnummer\": 1,\n\t\"richting\": \"inkomend\"\n}" + } + }, + "response": [], + "event": [] + }, + { + "id": "6042bac1-5774-4bd2-a5e3-17d1214b50ff", + "name": "Publish Informatieobjecttype Copy 2", + "request": { + "url": { + "path": [ + "publish" + ], + "host": [ + "{{informatieobjecttype_url}}" + ], + "query": [], + "variable": [] + }, + "method": "POST" + }, + "response": [], + "event": [] + }, + { + "id": "4f9bc535-ca39-4194-9249-140c3d7bf513", + "name": "Publish Zaaktype Copy 2", + "request": { + "url": { + "path": [ + "publish" + ], + "host": [ + "{{zaaktype_url}}" + ], + "query": [], + "variable": [] + }, + "method": "POST" + }, + "response": [], + "event": [] + }, + { + "id": "c1a641c0-d05b-43f9-ac16-15b008ab6b22", + "name": "(zrc-022a) Zaak aanmaken geeft voor archiefstatus standaardwaarde nog_te_archiveren", + "request": { + "url": { + "path": [ + "zaken" + ], + "host": [ + "{{zrc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Accept-Crs", + "value": "EPSG:4326" + }, + { + "key": "Content-Crs", + "value": "EPSG:4326" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\r\n \"bronorganisatie\": \"000000000\",\r\n \"omschrijving\": \"string\",\r\n \"toelichting\": \"string\",\r\n \"registratiedatum\": \"2019-04-09\",\r\n \"verantwoordelijkeOrganisatie\": \"000000000\",\r\n \"zaaktype\": \"{{zaaktype_url}}\",\r\n \"startdatum\": \"2019-04-09\",\r\n \"einddatumGepland\": \"2019-04-20\",\r\n \"uiterlijkeEinddatumAfdoening\": \"2019-04-09\",\r\n \"publicatiedatum\": \"2019-04-09\",\r\n \"vertrouwelijkheidaanduiding\": \"openbaar\",\r\n \"betalingsindicatie\": \"geheel\",\r\n \"laatsteBetaalDatum\": \"2019-01-01\",\r\n \"zaakgeometrie\": {\r\n \"type\": \"Point\",\r\n \"coordinates\": [\r\n 53,\r\n 5\r\n ]\r\n },\r\n \"opschorting\": {\r\n \"indicatie\": true,\r\n \"reden\": \"string\"\r\n },\r\n \"selectielijstklasse\": \"{{selectielijstklasse_url}}\",\r\n \"archiefstatus\": \"nog_te_archiveren\",\r\n \"deelzaaktypen\" : [\"{{deelzaaktype_url}}\"]\r\n}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "1a5aab40-a2f9-4901-b669-45093b651e9e", + "type": "text/javascript", + "packages": {}, + "exec": [ + "pm.test(\"Zaak aanmaken geeft voor archiefstatus standaardwaarde nog_te_archiveren\", function(){", + " pm.expect(pm.response.json().archiefstatus).to.be.equal(\"nog_te_archiveren\");", + "});", + "", + "// If the Zaak was created, delete it", + "if(pm.response.code == 201) {", + " pm.environment.set(\"created_zaak_url\", pm.response.json().url);", + "", + "}" + ], + "_lastExecutionId": "d45e6cbd-7514-4460-9996-79e21b9c1891" + } + } + ] + }, + { + "id": "ee2c90f4-4547-467d-89a7-57103118c957", + "name": "verwijder zaak", + "request": { + "url": { + "host": [ + "{{created_zaak_url}}" + ], + "query": [], + "variable": [] + }, + "method": "DELETE" + }, + "response": [], + "event": [] + }, + { + "id": "e749b5c8-0a54-4f4e-b700-9c4a412b926c", + "name": "Create Zaak to be archived", + "request": { + "url": { + "path": [ + "zaken" + ], + "host": [ + "{{zrc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Accept-Crs", + "value": "EPSG:4326" + }, + { + "key": "Content-Crs", + "value": "EPSG:4326" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\r\n \"bronorganisatie\": \"000000000\",\r\n \"omschrijving\": \"string\",\r\n \"toelichting\": \"string\",\r\n \"registratiedatum\": \"2019-04-09\",\r\n \"verantwoordelijkeOrganisatie\": \"000000000\",\r\n \"zaaktype\": \"{{zaaktype_url}}\",\r\n \"startdatum\": \"2019-04-09\",\r\n \"einddatumGepland\": \"2019-04-20\",\r\n \"uiterlijkeEinddatumAfdoening\": \"2019-04-09\",\r\n \"publicatiedatum\": \"2019-04-09\",\r\n \"vertrouwelijkheidaanduiding\": \"openbaar\",\r\n \"betalingsindicatie\": \"geheel\",\r\n \"laatsteBetaalDatum\": \"2019-01-01\",\r\n \"zaakgeometrie\": {\r\n \"type\": \"Point\",\r\n \"coordinates\": [\r\n 53,\r\n 5\r\n ]\r\n },\r\n \"opschorting\": {\r\n \"indicatie\": true,\r\n \"reden\": \"string\"\r\n },\r\n \"selectielijstklasse\": \"{{selectielijstklasse_url}}\",\r\n \"archiefstatus\": \"nog_te_archiveren\",\r\n \"deelzaaktypen\" : [\"{{deelzaaktype_url}}\"]\r\n}" + } + }, + "response": [], + "event": [ + { + "listen": "prerequest", + "script": { + "id": "6b009c88-fdc8-4abc-8cd2-b0b211c5abfa", + "type": "text/javascript", + "packages": {}, + "exec": [ + "" + ], + "_lastExecutionId": "c6c35926-0b49-49bd-b182-7e1737ec04d9" + } + }, + { + "listen": "test", + "script": { + "id": "49f8f995-4a3d-4567-a50d-77e0d5e42e7c", + "type": "text/javascript", + "packages": {}, + "exec": [ + "pm.environment.set(\"created_zaak_url\", pm.response.json().url);", + "", + "" + ], + "_lastExecutionId": "2edc8c9f-4a4f-44b1-b03f-d745751ad2de" + } + } + ] + }, + { + "id": "dc1295e2-40b9-47c4-9712-bfb29144cfb8", + "name": "(DRC) Create EnkelvoudigInformatieObject", + "request": { + "url": { + "path": [ + "enkelvoudiginformatieobjecten" + ], + "host": [ + "{{drc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n \"bronorganisatie\": \"000000000\",\n \"creatiedatum\": \"2019-01-01\",\n \"titel\": \"testobject\",\n \"auteur\": \"testauteur\",\n \"taal\": \"eng\",\n \"inhoud\": \"{{object_inhoud}}\",\n \"informatieobjecttype\": \"{{informatieobjecttype_url}}\",\n \"indicatieGebruiksrecht\": false,\n \"status\": \"in_bewerking\",\n \"bestandsnaam\": \"iets.pdf\",\n \"bestandsomvang\": 6\n}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "f67a1eb6-730a-4337-8d0a-3ebf3282be57", + "type": "text/javascript", + "packages": {}, + "exec": [ + "pm.environment.set(\"informatieobject_url\", pm.response.json().url);" + ], + "_lastExecutionId": "0ada8fe5-db72-41f4-8dd9-0b12ba640679" + } + }, + { + "listen": "prerequest", + "script": { + "id": "d80451e7-a758-4e79-9c0a-e4a45e6f84ed", + "type": "text/javascript", + "packages": {}, + "exec": [ + "pm.environment.set(\"object_inhoud\", btoa(\"string\"))" + ], + "_lastExecutionId": "e0954c67-97cf-4df4-9920-8db9cf6f62b7" + } + } + ] + }, + { + "id": "f2faac61-0357-403b-96c3-3b104eed54ee", + "name": "(zrc-022) ZaakInformatieObject aanmaken is mogelijk", + "request": { + "url": { + "path": [ + "zaakinformatieobjecten" + ], + "host": [ + "{{zrc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n\t\"zaak\": \"{{created_zaak_url}}\",\n\t\"informatieobject\": \"{{informatieobject_url}}\",\n\t\"titel\": \"test\",\n\t\"beschrijving\": \"bla\"\n}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "bc209cf3-46b8-4c4f-a62d-9d4b130015a5", + "type": "text/javascript", + "packages": {}, + "exec": [ + "pm.test(\"ZaakInformatieObject aanmaken met valide gegevens geeft 201\", function() {", + " pm.response.to.have.status(201);", + "});", + "", + "if(pm.response.code == 201) {", + " pm.environment.set(\"zaakinformatieobject_body\", pm.request.body.raw);", + " pm.environment.set(\"created_zaakinformatieobject_url\", pm.response.json().url);", + "}" + ], + "_lastExecutionId": "165f0b11-e8a2-4236-9ba1-80ba9e7a4c74" + } + } + ] + }, + { + "id": "ff9e9626-1cd6-4a3d-bd72-4153ff89a9ea", + "name": "Plaats lock", + "request": { + "url": { + "path": [ + "lock" + ], + "host": [ + "{{informatieobject_url}}" + ], + "query": [], + "variable": [] + }, + "method": "POST" + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "8ad4f8dd-9a01-4293-8834-20dc26082642", + "type": "text/javascript", + "packages": {}, + "exec": [ + "pm.environment.set(\"informatieobject_lock_id\", pm.response.json().lock);" + ], + "_lastExecutionId": "115ecaeb-67e6-43b7-8ffc-689b34ad5a56" + } + } + ] + }, + { + "id": "e140242a-09d1-43f4-964c-a0330d27dc69", + "name": "Change Informatieobject status to gearchiveerd", + "request": { + "url": { + "host": [ + "{{informatieobject_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "PATCH", + "body": { + "mode": "raw", + "raw": "{\n\t\"status\": \"gearchiveerd\",\n\t\"lock\": \"{{informatieobject_lock_id}}\"\n}" + } + }, + "response": [], + "event": [] + }, + { + "id": "ce7cff37-dde0-4957-8eed-414245a42660", + "name": "(zrc-022d) Zaak bijwerken archiefstatus niet nog_te_archiveren is onmogelijk als archiefnominatie niet gezet", + "request": { + "url": { + "host": [ + "{{created_zaak_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Accept-Crs", + "value": "EPSG:4326" + }, + { + "key": "Content-Crs", + "value": "EPSG:4326" + } + ], + "method": "PUT", + "body": { + "mode": "raw", + "raw": "{\r\n \"bronorganisatie\": \"000000000\",\r\n \"omschrijving\": \"string\",\r\n \"toelichting\": \"string\",\r\n \"registratiedatum\": \"2019-04-09\",\r\n \"verantwoordelijkeOrganisatie\": \"000000000\",\r\n \"zaaktype\": \"{{zaaktype_url}}\",\r\n \"startdatum\": \"2019-04-09\",\r\n \"einddatumGepland\": \"2019-04-20\",\r\n \"uiterlijkeEinddatumAfdoening\": \"2019-04-09\",\r\n \"publicatiedatum\": \"2019-04-09\",\r\n \"vertrouwelijkheidaanduiding\": \"openbaar\",\r\n \"betalingsindicatie\": \"geheel\",\r\n \"laatsteBetaalDatum\": \"2019-01-01\",\r\n \"zaakgeometrie\": {\r\n \"type\": \"Point\",\r\n \"coordinates\": [\r\n 53,\r\n 5\r\n ]\r\n },\r\n \"opschorting\": {\r\n \"indicatie\": true,\r\n \"reden\": \"string\"\r\n },\r\n \"selectielijstklasse\": \"{{selectielijstklasse_url}}\",\r\n \"archiefstatus\": \"gearchiveerd\",\r\n \"deelzaaktypen\" : [\"{{deelzaaktype_url}}\"]\r\n}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "ef6b575d-a900-4463-b9ec-e3deb1a220e8", + "type": "text/javascript", + "packages": {}, + "exec": [ + "pm.test(\"Zaak bijwerken archiefstatus zetten op niet nog_te_archiveren zonder waarde voor archiefnominatie geeft 400\", function() {", + " pm.response.to.have.status(400);", + " ", + " var error = pm.response.json()[\"invalidParams\"][0];", + " pm.expect(error.name).to.be.equal(\"archiefnominatie\");", + " pm.expect(error.code).to.be.equal(\"archiefnominatie-not-set\");", + "});" + ], + "_lastExecutionId": "263e6b70-8bb9-44ef-90da-81dc42193618" + } + }, + { + "listen": "prerequest", + "script": { + "id": "4675affa-b2f9-459d-ae11-457441b41173", + "type": "text/javascript", + "packages": {}, + "exec": [ + "" + ], + "_lastExecutionId": "f84f1f33-38b6-40cb-a640-e300917ccfa5" + } + } + ] + }, + { + "id": "044a6ed0-60ff-4f9c-a091-bdf822fb1518", + "name": "(zrc-022e) Zaak deels bijwerken archiefstatus niet nog_te_archiveren is onmogelijk als archiefnominatie niet gezet", + "request": { + "url": { + "host": [ + "{{created_zaak_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Accept-Crs", + "value": "EPSG:4326" + }, + { + "key": "Content-Crs", + "value": "EPSG:4326" + } + ], + "method": "PATCH", + "body": { + "mode": "raw", + "raw": "{\n\t\"archiefstatus\": \"gearchiveerd\"\n}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "de75f2e5-4bce-40c5-a59f-c52d399989c1", + "type": "text/javascript", + "packages": {}, + "exec": [ + "pm.test(\"Zaak bijwerken archiefstatus zetten op niet nog_te_archiveren zonder waarde voor archiefnominatie geeft 400\", function() {", + " pm.response.to.have.status(400);", + " ", + " var error = pm.response.json()[\"invalidParams\"][0];", + " pm.expect(error.name).to.be.equal(\"archiefnominatie\");", + " pm.expect(error.code).to.be.equal(\"archiefnominatie-not-set\");", + "});" + ], + "_lastExecutionId": "cc553994-5e55-4ad6-8f33-19bad3c533ad" + } + }, + { + "listen": "prerequest", + "script": { + "id": "a6884f39-d180-4c37-9a35-cb7fa559aca0", + "type": "text/javascript", + "packages": {}, + "exec": [ + "" + ], + "_lastExecutionId": "ced34ce5-ad89-4eee-9f24-7afbe763f377" + } + } + ] + }, + { + "id": "c9d75eea-1a6e-4734-b9aa-3256fb49633e", + "name": "(zrc-022f) Zaak bijwerken archiefstatus niet nog_te_archiveren is onmogelijk als archiefactiedatum niet gezet", + "request": { + "url": { + "host": [ + "{{created_zaak_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Accept-Crs", + "value": "EPSG:4326" + }, + { + "key": "Content-Crs", + "value": "EPSG:4326" + } + ], + "method": "PUT", + "body": { + "mode": "raw", + "raw": "{\r\n \"bronorganisatie\": \"000000000\",\r\n \"omschrijving\": \"string\",\r\n \"toelichting\": \"string\",\r\n \"registratiedatum\": \"2019-04-09\",\r\n \"verantwoordelijkeOrganisatie\": \"000000000\",\r\n \"zaaktype\": \"{{zaaktype_url}}\",\r\n \"startdatum\": \"2019-04-09\",\r\n \"einddatumGepland\": \"2019-04-20\",\r\n \"uiterlijkeEinddatumAfdoening\": \"2019-04-09\",\r\n \"publicatiedatum\": \"2019-04-09\",\r\n \"vertrouwelijkheidaanduiding\": \"openbaar\",\r\n \"betalingsindicatie\": \"geheel\",\r\n \"laatsteBetaalDatum\": \"2019-01-01\",\r\n \"zaakgeometrie\": {\r\n \"type\": \"Point\",\r\n \"coordinates\": [\r\n 53,\r\n 5\r\n ]\r\n },\r\n \"opschorting\": {\r\n \"indicatie\": true,\r\n \"reden\": \"string\"\r\n },\r\n \"selectielijstklasse\": \"{{selectielijstklasse_url}}\",\r\n \"archiefstatus\": \"gearchiveerd\",\r\n \"archiefnominatie\": \"blijvend_bewaren\",\r\n \"deelzaaktypen\" : [\"{{deelzaaktype_url}}\"]\r\n}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "60e56cce-23be-41dc-ba0c-dcc465c9c088", + "type": "text/javascript", + "packages": {}, + "exec": [ + "pm.test(\"Zaak bijwerken archiefstatus zetten op niet nog_te_archiveren zonder waarde voor archiefactiedatum geeft 400\", function() {", + " pm.response.to.have.status(400);", + " ", + " var error = pm.response.json()[\"invalidParams\"][0];", + " pm.expect(error.name).to.be.equal(\"archiefactiedatum\");", + " pm.expect(error.code).to.be.equal(\"archiefactiedatum-not-set\");", + "});" + ], + "_lastExecutionId": "c1752598-4e0c-4ea1-82b7-b4f50e659ecc" + } + }, + { + "listen": "prerequest", + "script": { + "id": "7c9f5cda-dfd7-46e2-b976-e04434b7050e", + "type": "text/javascript", + "packages": {}, + "exec": [ + "" + ], + "_lastExecutionId": "f7924573-ad0c-4297-b833-aaf75b9b2a01" + } + } + ] + }, + { + "id": "e44b8bfe-e16d-4ff5-b82a-57506979ccd6", + "name": "(zrc-022g) Zaak deels bijwerken archiefstatus niet nog_te_archiveren is onmogelijk als archiefactiedatum niet gezet", + "request": { + "url": { + "host": [ + "{{created_zaak_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Accept-Crs", + "value": "EPSG:4326" + }, + { + "key": "Content-Crs", + "value": "EPSG:4326" + } + ], + "method": "PATCH", + "body": { + "mode": "raw", + "raw": "{\n\t\"archiefstatus\": \"gearchiveerd\",\n\t\"archiefnominatie\": \"blijvend_bewaren\"\n}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "6eb56452-c68a-4c72-b0cb-8fbe09bcaad4", + "type": "text/javascript", + "packages": {}, + "exec": [ + "pm.test(\"Zaak deels bijwerken archiefstatus zetten op niet nog_te_archiveren zonder waarde voor archiefactiedatum geeft 400\", function() {", + " pm.response.to.have.status(400);", + " ", + " var error = pm.response.json()[\"invalidParams\"][0];", + " pm.expect(error.name).to.be.equal(\"archiefactiedatum\");", + " pm.expect(error.code).to.be.equal(\"archiefactiedatum-not-set\");", + "});" + ], + "_lastExecutionId": "2f8d0ac4-8de1-4688-90d1-2e35510da684" + } + }, + { + "listen": "prerequest", + "script": { + "id": "742e3f08-0d71-49a3-ae72-98fcd6838124", + "type": "text/javascript", + "packages": {}, + "exec": [ + "" + ], + "_lastExecutionId": "191582d7-bd05-4d0a-9f5e-0644dd6f7e1a" + } + } + ] + }, + { + "id": "c7424392-ea43-4411-bd82-f6d4f4166d1c", + "name": "(zrc-022h) Zaak bijwerken archiefstatus niet nog_te_archiveren is mogelijk", + "request": { + "url": { + "host": [ + "{{created_zaak_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Accept-Crs", + "value": "EPSG:4326" + }, + { + "key": "Content-Crs", + "value": "EPSG:4326" + } + ], + "method": "PUT", + "body": { + "mode": "raw", + "raw": "{\r\n \"bronorganisatie\": \"000000000\",\r\n \"omschrijving\": \"string\",\r\n \"toelichting\": \"string\",\r\n \"registratiedatum\": \"2019-04-09\",\r\n \"verantwoordelijkeOrganisatie\": \"000000000\",\r\n \"zaaktype\": \"{{zaaktype_url}}\",\r\n \"startdatum\": \"2019-04-09\",\r\n \"einddatumGepland\": \"2019-04-20\",\r\n \"uiterlijkeEinddatumAfdoening\": \"2019-04-09\",\r\n \"publicatiedatum\": \"2019-04-09\",\r\n \"vertrouwelijkheidaanduiding\": \"openbaar\",\r\n \"betalingsindicatie\": \"geheel\",\r\n \"laatsteBetaalDatum\": \"2019-01-01\",\r\n \"zaakgeometrie\": {\r\n \"type\": \"Point\",\r\n \"coordinates\": [\r\n 53,\r\n 5\r\n ]\r\n },\r\n \"opschorting\": {\r\n \"indicatie\": true,\r\n \"reden\": \"string\"\r\n },\r\n \"selectielijstklasse\": \"{{selectielijstklasse_url}}\",\r\n \"archiefstatus\": \"gearchiveerd\",\r\n \"archiefnominatie\": \"blijvend_bewaren\",\r\n \"archiefactiedatum\": \"2020-01-01\",\r\n \"deelzaaktypen\": [\r\n \"{{deelzaaktype_url}}\"\r\n ]\r\n}" + } + }, + "response": [], + "event": [ + { + "listen": "prerequest", + "script": { + "id": "e64d5643-2a93-42da-b671-3b955a17da7a", + "type": "text/javascript", + "packages": {}, + "exec": [ + "" + ], + "_lastExecutionId": "d922aa95-879d-47c1-8f74-209d2b67d84c" + } + }, + { + "listen": "test", + "script": { + "id": "7a91d266-8998-4a99-9927-efcedc595087", + "type": "text/javascript", + "packages": {}, + "exec": [ + "pm.test(\"Zaak bijwerken archiefstatus zetten op niet nog_te_archiveren met archiefactiedatum en archiefnominatie gezet geef 200\", function() {", + " pm.response.to.have.status(200);", + " pm.expect(pm.response.json().archiefstatus).to.be.equal(\"gearchiveerd\");", + "});", + "", + "" + ], + "_lastExecutionId": "60ea973d-28d4-466b-96e0-6ec824ac82bb" + } + } + ] + } + ], + "event": [ + { + "listen": "prerequest", + "script": { + "id": "12d3102a-0034-448b-8e7e-8f226eba68e1", + "type": "text/javascript", + "exec": [ + "" + ], + "_lastExecutionId": "a534a2c2-3d85-447a-b649-4b581d2be3d5" + } + }, + { + "listen": "test", + "script": { + "id": "d3f783a8-1f36-42a8-a187-b8ca262f3fe2", + "type": "text/javascript", + "exec": [ + "" + ], + "_lastExecutionId": "540a8b94-f198-4b41-b2d9-8d227a43100c" + } + } + ] + }, + { + "id": "b263e542-49a0-4e62-a14f-e5a615443f74", + "name": "zrc-023", + "item": [ + { + "id": "75dd0e70-0157-43f8-99f3-963b25aa3aa0", + "name": "Create InformatieObjecttype Copy", + "request": { + "url": { + "path": [ + "informatieobjecttypen" + ], + "host": [ + "{{ztc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n\t\"catalogus\": \"{{catalogus_url}}\",\n\t\"omschrijving\": \"{{informatieobject_omschrijving}}\",\n\t\"vertrouwelijkheidaanduiding\": \"openbaar\",\n\t\"beginGeldigheid\": \"2019-01-01\",\n\t\"informatieobjectcategorie\": \"document\"\n}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "90fcb3e9-03db-4a09-b2e9-54c9ff89bd01", + "type": "text/javascript", + "packages": {}, + "exec": [ + "if(pm.response.code == 201) {\r", + " pm.environment.set(\"informatieobjecttype_url\", pm.response.json().url);\r", + "}" + ], + "_lastExecutionId": "6e32b2d2-465f-42ef-8da0-85458332a158" + } + }, + { + "listen": "prerequest", + "script": { + "id": "755a120b-ceb5-4e65-85e7-857659116cac", + "type": "text/javascript", + "packages": {}, + "exec": [ + "var uuid = require('uuid');\r", + "var myUUID = uuid.v4(); \r", + "pm.environment.set(\"informatieobject_omschrijving\", myUUID);" + ], + "_lastExecutionId": "5191ef1d-52d7-456c-a0fc-ac32d03a827d" + } + } + ] + }, + { + "id": "f0d6e1e8-697a-405f-a1d0-2d1617dfe329", + "name": "Create Zaaktype Copy", + "request": { + "url": { + "path": [ + "zaaktypen" + ], + "host": [ + "{{ztc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n\t\"identificatie\": \"{{random_identificatie}}\",\n \"omschrijving\": \"zrc_tests_1\",\n \"vertrouwelijkheidaanduiding\": \"openbaar\",\n \"doel\": \"test doel\",\n \"verantwoordelijke\":\"X\",\n \"aanleiding\": \"test aanleiding\",\n \"indicatieInternOfExtern\": \"extern\",\n \"handelingInitiator\": \"indienen\",\n \"onderwerp\": \"openbare ruimte\",\n \"handelingBehandelaar\": \"behandelen\",\n \"doorlooptijd\": \"P10D\",\n \"opschortingEnAanhoudingMogelijk\": false,\n \"verlengingMogelijk\": true,\n \"publicatieIndicatie\": false,\n \"productenOfDiensten\": [\n \"https://ref.tst.vng.cloud/standaard/\"\n ],\n \"selectielijstProcestype\": \"{{procestype_procestermijn_nihil_url}}\",\n \"referentieproces\": {\n \"naam\": \"test\",\n \"link\": \"\"\n },\n \"deelzaaktypen\": [\n \"{{deelzaaktype_identificatie}}\"\n ],\n \"catalogus\": \"{{catalogus_url}}\",\n \"statustypen\": [\n \n ],\n \"resultaattypen\": [\n ],\n \"eigenschappen\": [\n ],\n \"informatieobjecttypen\": [],\n \"besluittypen\": [\n \"{{besluit_omschrijving}}\"\n ],\n \"gerelateerdeZaaktypen\": [],\n \"beginGeldigheid\": \"2019-01-01\",\n \"versiedatum\": \"2019-01-01\",\n \"concept\": true,\n \"verlengingstermijn\": \"P5D\"\n}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "9efefa91-f5fb-431f-adc1-fa5132a69389", + "type": "text/javascript", + "packages": {}, + "exec": [ + "if(pm.response.code == 201) {", + " var res = pm.response.json();", + "pm.environment.set(\"zaaktype_url\", res.url);", + "pm.environment.set(\"zaaktype_vertrouwelijkheid\", res.vertrouwelijkheidaanduiding);", + "pm.environment.set(\"zaaktype_productenOfDiensten\", res.productenOfDiensten);", + "pm.environment.set(\"zaaktype_resultaattypen\", res.resultaattypen);", + "pm.environment.set(\"zaaktype_eigenschap\", res.eigenschappen[0]);", + "pm.environment.set(\"zaaktype_body\", pm.request.body.raw);", + "}" + ], + "_lastExecutionId": "5f750807-0d10-4a43-a2d8-0eb6211aae77" + } + }, + { + "listen": "prerequest", + "script": { + "id": "7be4e83e-dd9d-4113-9cdc-2551e9ba1af3", + "type": "text/javascript", + "packages": {}, + "exec": [ + "var uuid = require('uuid');", + "var myUUID = uuid.v4(); ", + "pm.environment.set(\"random_identificatie\", myUUID);", + "" + ], + "_lastExecutionId": "c40e72bc-cdb7-444c-913a-f13a9f43f4e6" + } + } + ] + }, + { + "id": "7e0e4708-1e79-41f9-802b-b39c9efd3edb", + "name": "Create Eigenschap Copy", + "request": { + "url": { + "path": [ + "eigenschappen" + ], + "host": [ + "{{ztc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n\t\"naam\": \"test eigenschap\",\n\t\"definitie\": \"for test\",\n\t\"zaaktype\": \"{{zaaktype_url}}\",\n \"specificatie\": {\n \"formaat\": \"tekst\",\n \"lengte\": \"5\",\n \"kardinaliteit\": \"1\",\n \"waardenverzameling\": [\"test\"]\n }\n}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "4522f3d6-b1f4-4c01-b9b8-10cd7a57a732", + "type": "text/javascript", + "packages": {}, + "exec": [ + "if(pm.response.code == 201) {\r", + " pm.environment.set(\"zaaktype_eigenschap\", pm.response.json().url);\r", + "}" + ], + "_lastExecutionId": "7413fc68-45c9-4c10-b07f-2c6d97c761ff" + } + } + ] + }, + { + "id": "6b3995e4-0d6d-4a1c-8fb0-5ba6572420a3", + "name": "Create Zaaktype-InformatieObjectType relation Copy", + "request": { + "url": { + "path": [ + "zaaktype-informatieobjecttypen" + ], + "host": [ + "{{ztc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n\t\"zaaktype\": \"{{zaaktype_url}}\",\n\t\"informatieobjecttype\": \"{{informatieobject_omschrijving}}\",\n\t\"volgnummer\": 1,\n\t\"richting\": \"inkomend\"\n}" + } + }, + "response": [], + "event": [] + }, + { + "id": "1f65b6c4-137e-4486-8038-4cf1496212ec", + "name": "Publish Informatieobjecttype Copy", + "request": { + "url": { + "path": [ + "publish" + ], + "host": [ + "{{informatieobjecttype_url}}" + ], + "query": [], + "variable": [] + }, + "method": "POST" + }, + "response": [], + "event": [] + }, + { + "id": "94c2636a-813f-4e72-b1af-772ad961f5dc", + "name": "Create Resultaattype afleidingswijze afgehandeld", + "request": { + "url": { + "path": [ + "resultaattypen" + ], + "host": [ + "{{ztc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n\t\"zaaktype\": \"{{zaaktype_url}}\",\n\t\"omschrijving\": \"Klaar\",\n\t\"resultaattypeomschrijving\": \"{{resultaattypeomschrijving_url}}\",\n\t\"selectielijstklasse\": \"{{selectielijstklasse_procestermijn_nihil_url}}\",\n\t\"besluittypen\": [],\n \"brondatumArchiefprocedure\": {\n\t\t\"afleidingswijze\": \"afgehandeld\",\n\t\t\"procestermijn\": null,\n\t\t\"datumkenmerk\": \"\",\n\t\t\"einddatumBekend\": false,\n\t\t\"objecttype\": \"\",\n\t\t\"registratie\": \"\"\n\t}\n}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "97b135ec-a8e0-4719-852f-e3cf38b33002", + "type": "text/javascript", + "packages": {}, + "exec": [ + "if(pm.response.code == 201) {\r", + " pm.environment.set(\"resultaattype_url\", pm.response.json().url);\r", + "}" + ], + "_lastExecutionId": "bb0cf38e-af62-45aa-8823-e24dfac32101" + } + } + ] + }, + { + "id": "f266b172-d69b-4621-a0ee-db1f3fb1c348", + "name": "Create begin Statustype", + "request": { + "url": { + "path": [ + "statustypen" + ], + "host": [ + "{{ztc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n\t\"omschrijving\": \"Begin\",\n\t\"zaaktype\": \"{{zaaktype_url}}\",\n\t\"volgnummer\": 1\n}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "cad11fce-abc0-479b-8bd7-05c278d91ea2", + "type": "text/javascript", + "exec": [ + "pm.environment.set(\"non_eindstatustype\", pm.response.json().url);" + ], + "_lastExecutionId": "37ea66ea-12a9-4a43-b753-06177dd74a16" + } + } + ] + }, + { + "id": "caab5a23-c06a-4f6f-b7b4-819449d79c8e", + "name": "Create eind Statustype", + "request": { + "url": { + "path": [ + "statustypen" + ], + "host": [ + "{{ztc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n\t\"omschrijving\": \"Eind\",\n\t\"zaaktype\": \"{{zaaktype_url}}\",\n\t\"volgnummer\": 2\n}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "c3cd71fa-63ce-4b8e-ab79-cbfac8d85b84", + "type": "text/javascript", + "exec": [ + "pm.environment.set(\"eindstatustype\", pm.response.json().url);" + ], + "_lastExecutionId": "ddd2c636-6921-42db-a3a4-6c54573d1284" + } + } + ] + }, + { + "id": "597bd192-dbd2-4af3-8748-93fa852d742b", + "name": "Create Roltype", + "request": { + "url": { + "path": [ + "roltypen" + ], + "host": [ + "{{ztc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n\t\"zaaktype\": \"{{zaaktype_url}}\",\n\t\"omschrijving\": \"test\",\n\t\"omschrijvingGeneriek\": \"adviseur\"\n}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "37182bee-53bb-4ba3-aaea-390e3f760945", + "type": "text/javascript", + "exec": [ + "pm.environment.set(\"roltype_url\", pm.response.json().url);" + ], + "_lastExecutionId": "94e3afd7-9f15-4f61-b625-a45380ed7daa" + } + } + ] + }, + { + "id": "b57d71c4-6778-43f2-9324-6c00e2d6b4fd", + "name": "Publish Zaaktype Copy", + "request": { + "url": { + "path": [ + "publish" + ], + "host": [ + "{{zaaktype_url}}" + ], + "query": [], + "variable": [] + }, + "method": "POST" + }, + "response": [], + "event": [] + }, + { + "id": "10e126f4-28a2-48ef-ba1d-142459a424f9", + "name": "Create Zaak", + "request": { + "url": { + "path": [ + "zaken" + ], + "host": [ + "{{zrc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Accept-Crs", + "value": "EPSG:4326" + }, + { + "key": "Content-Crs", + "value": "EPSG:4326" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\r\n \"bronorganisatie\": \"000000000\",\r\n \"omschrijving\": \"string\",\r\n \"toelichting\": \"string\",\r\n \"registratiedatum\": \"2019-04-09\",\r\n \"verantwoordelijkeOrganisatie\": \"000000000\",\r\n \"zaaktype\": \"{{zaaktype_url}}\",\r\n \"startdatum\": \"2019-04-09\",\r\n \"einddatumGepland\": \"2019-04-20\",\r\n \"uiterlijkeEinddatumAfdoening\": \"2019-04-09\",\r\n \"publicatiedatum\": \"2019-04-09\",\r\n \"vertrouwelijkheidaanduiding\": \"openbaar\",\r\n \"betalingsindicatie\": \"geheel\",\r\n \"laatsteBetaalDatum\": \"2019-01-01\",\r\n \"zaakgeometrie\": {\r\n \"type\": \"Point\",\r\n \"coordinates\": [\r\n 53,\r\n 5\r\n ]\r\n },\r\n \"opschorting\": {\r\n \"indicatie\": true,\r\n \"reden\": \"string\"\r\n },\r\n \"selectielijstklasse\": \"{{selectielijstklasse_url}}\",\r\n \"archiefstatus\": \"nog_te_archiveren\",\r\n \"deelzaaktypen\" : [\"{{deelzaaktype_url}}\"]\r\n}" + } + }, + "response": [], + "event": [ + { + "listen": "prerequest", + "script": { + "id": "0283319e-f1bf-4316-b813-dc4cf84c9ef0", + "type": "text/javascript", + "packages": {}, + "exec": [ + "" + ], + "_lastExecutionId": "c55806d1-a1b0-40a8-83cb-309222ac8b52" + } + }, + { + "listen": "test", + "script": { + "id": "ef57f645-eb73-4ddc-a36a-16ad8662d22e", + "type": "text/javascript", + "packages": {}, + "exec": [ + "pm.environment.set(\"created_zaak_url\", pm.response.json().url);", + "", + "" + ], + "_lastExecutionId": "443f1272-4fa9-477b-8c01-f717adfc2f9d" + } + } + ] + }, + { + "id": "320e45f5-5eaa-4472-a03b-e8d72ff4ee71", + "name": "Add Deelzaak to Zaak", + "request": { + "url": { + "path": [ + "zaken" + ], + "host": [ + "{{zrc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Accept-Crs", + "value": "EPSG:4326" + }, + { + "key": "Content-Crs", + "value": "EPSG:4326" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\r\n \"bronorganisatie\": \"000000000\",\r\n \"omschrijving\": \"string\",\r\n \"toelichting\": \"string\",\r\n \"zaaktype\": \"{{deelzaaktype_url}}\",\r\n \"registratiedatum\": \"2019-04-09\",\r\n \"verantwoordelijkeOrganisatie\": \"000000000\",\r\n \"startdatum\": \"2019-04-09\",\r\n \"einddatum\": null,\r\n \"einddatumGepland\": \"2019-04-20\",\r\n \"uiterlijkeEinddatumAfdoening\": \"2019-04-09\",\r\n \"publicatiedatum\": \"2019-04-09\",\r\n \"communicatiekanaal\": \"\",\r\n \"productenOfDiensten\": [],\r\n \"vertrouwelijkheidaanduiding\": \"geheim\",\r\n \"betalingsindicatie\": \"geheel\",\r\n \"betalingsindicatieWeergave\": null,\r\n \"laatsteBetaaldatum\": \"2019-01-01T00:00:00Z\",\r\n \"zaakgeometrie\": {\r\n \"type\": \"Point\",\r\n \"coordinates\": [\r\n 53.0,\r\n 5.0\r\n ]\r\n },\r\n \"verlenging\": null,\r\n \"opschorting\": null,\r\n \"selectielijstklasse\": \"https://referentielijsten.roxit.nl/api/v1/resultaten/0fe71ce3-b1e1-48eb-9070-be2756fc71b5\",\r\n \"hoofdzaak\": \"{{created_zaak_url}}\",\r\n \"deelzaken\": [],\r\n \"relevanteAndereZaken\": [],\r\n \"eigenschappen\": [],\r\n \"rollen\": [],\r\n \"status\": null,\r\n \"zaakinformatieobjecten\": [],\r\n \"zaakobjecten\": [],\r\n \"resultaat\": null,\r\n \"kenmerken\": [],\r\n \"archiefnominatie\": null,\r\n \"archiefstatus\": \"nog_te_archiveren\",\r\n \"archiefactiedatum\": null,\r\n \"opdrachtgevendeOrganisatie\": null,\r\n \"processobjectaard\": null,\r\n \"startdatumBewaartermijn\": null,\r\n \"processobject\": null\r\n}" + } + }, + "response": [], + "event": [ + { + "listen": "prerequest", + "script": { + "id": "3836814e-0334-427d-8b06-28dbcf649127", + "type": "text/javascript", + "packages": {}, + "exec": [ + "" + ], + "_lastExecutionId": "6e8e80c1-8a48-417d-ada9-db6c5fdd63cc" + } + }, + { + "listen": "test", + "script": { + "id": "011f9981-1f21-4fc5-96cc-bb3481ed119e", + "type": "text/javascript", + "packages": {}, + "exec": [ + "pm.environment.set(\"deelzaak_url\", pm.response.json().url);" + ], + "_lastExecutionId": "ec2e44f2-5936-4049-ba48-48ff7b574c76" + } + } + ] + }, + { + "id": "d4c5d7d7-4acd-4b9f-8380-1878b9c0164f", + "name": "Add Resultaat to Zaak", + "request": { + "url": { + "path": [ + "resultaten" + ], + "host": [ + "{{zrc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n\t\"zaak\": \"{{created_zaak_url}}\",\n\t\"resultaattype\": \"{{resultaattype_url}}\"\n}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "5ccd4163-d77c-438a-8c07-a8da6804c847", + "type": "text/javascript", + "exec": [ + "pm.environment.set(\"resultaat_url\", pm.response.json().url);" + ], + "_lastExecutionId": "f29dbf47-8fd1-46f1-bf18-0370c3ffd94d" + } + }, + { + "listen": "prerequest", + "script": { + "id": "77fe7db8-0cc4-4a98-a557-0fa65fc81af5", + "type": "text/javascript", + "exec": [ + "pm.environment.set(\"resultaattype\", pm.environment.get(\"zaaktype_resultaattypen\")[0]);" + ], + "_lastExecutionId": "02ffa4f6-41df-4aa6-939d-a8ff0ef4307d" + } + } + ] + }, + { + "id": "630edbb3-b204-499a-b54f-8d7cf66cd38c", + "name": "Add Status to Zaak", + "request": { + "url": { + "path": [ + "statussen" + ], + "host": [ + "{{zrc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n\t\"zaak\": \"{{created_zaak_url}}\",\n\t\"statustype\": \"{{non_eindstatustype}}\",\n\t\"datumStatusGezet\": \"2018-04-20T13:37:00\"\n}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "9474a79f-70fb-4a21-b9fa-d695228d387b", + "type": "text/javascript", + "exec": [ + "pm.environment.set(\"status_url\", pm.response.json().url);" + ], + "_lastExecutionId": "ee2c8b3a-7f2d-46bc-8f02-c62927dcffcd" + } + }, + { + "listen": "prerequest", + "script": { + "id": "eba85345-cad5-49c5-80b7-37b3aaddde57", + "type": "text/javascript", + "exec": [ + "" + ], + "_lastExecutionId": "dce74d19-9737-4f10-b712-8906ff7504bd" + } + } + ] + }, + { + "id": "854100b1-2947-4b6b-8e72-80c32ff6e59b", + "name": "Add Rol to Zaak", + "request": { + "url": { + "path": [ + "rollen" + ], + "host": [ + "{{zrc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n\t\"zaak\": \"{{created_zaak_url}}\",\n\t\"betrokkene\": \"http://example.com/2d0815580af94ee0a15aa677aa646e1a\",\n\t\"betrokkeneType\": \"natuurlijk_persoon\",\n\t\"rolomschrijving\": \"behandelaar\",\n\t\"roltoelichting\": \"testrol\",\n\t\"roltype\": \"{{roltype_url}}\"\n}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "02598bb9-75cb-42ac-a0a9-5da7eb75e9ea", + "type": "text/javascript", + "exec": [ + "pm.environment.set(\"rol_url\", pm.response.json().url);" + ], + "_lastExecutionId": "f104361d-4dc7-4f8b-a967-56f1c2ac4e0b" + } + }, + { + "listen": "prerequest", + "script": { + "id": "ca96583e-6054-4aa1-a769-f6150487e7cd", + "type": "text/javascript", + "exec": [ + "" + ], + "_lastExecutionId": "f4f39d99-9c56-4f80-90f2-fff6aa3bec70" + } + } + ] + }, + { + "id": "e9685c80-da33-4fb3-8ad0-8d0336ff8857", + "name": "Create Zaakobject", + "request": { + "url": { + "path": [ + "zaakobjecten" + ], + "host": [ + "{{zrc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n\t\"zaak\": \"{{created_zaak_url}}\",\n\t\"objectType\": \"pand\",\n\t\"objectIdentificatie\": {\n\t\t\"identificatie\": \"test\"\n\t}\n}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "bbf7fe1d-7e73-4739-b41c-b5dd87c21a62", + "type": "text/javascript", + "exec": [ + "pm.environment.set(\"zaakobject_url\", pm.response.json().url);" + ], + "_lastExecutionId": "591950a1-590f-47a9-b3a0-ef13930c731d" + } + } + ] + }, + { + "id": "d2312f10-4728-4a0c-b2d5-26212b1d81a1", + "name": "Add Zaakeigenschap to Zaak", + "request": { + "url": { + "path": [ + "zaakeigenschappen" + ], + "host": [ + "{{created_zaak_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n\t\"zaak\": \"{{created_zaak_url}}\",\n\t\"eigenschap\": \"{{zaaktype_eigenschap}}\",\n\t\"waarde\": \"test\"\n}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "6dcfe42b-1334-4473-abfb-3c3aa462f7b6", + "type": "text/javascript", + "exec": [ + "pm.environment.set(\"zaakeigenschap_url\", pm.response.json().url);" + ], + "_lastExecutionId": "b2f371df-1bfc-4a5b-9f42-9e6cc689412f" + } + }, + { + "listen": "prerequest", + "script": { + "id": "9278a5f0-c004-4742-8a1c-972e85379c72", + "type": "text/javascript", + "exec": [ + "" + ], + "_lastExecutionId": "16375c1c-ef7d-4d77-a8df-881884a919e3" + } + } + ] + }, + { + "id": "c9c38fc6-f5bd-4d96-a767-3a373edb731e", + "name": "(DRC) Create EnkelvoudigInformatieObject Copy", + "request": { + "url": { + "path": [ + "enkelvoudiginformatieobjecten" + ], + "host": [ + "{{drc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n \"bronorganisatie\": \"000000000\",\n \"creatiedatum\": \"2019-01-01\",\n \"titel\": \"testobject\",\n \"auteur\": \"testauteur\",\n \"taal\": \"eng\",\n \"inhoud\": \"{{object_inhoud}}\",\n \"informatieobjecttype\": \"{{informatieobjecttype_url}}\",\n \"indicatieGebruiksrecht\": false,\n \"status\": \"in_bewerking\",\n \"bestandsnaam\": \"iets.pdf\",\n \"bestandsomvang\": 6\n}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "19e5b11e-6316-4a71-a43c-7476c85b3dbd", + "type": "text/javascript", + "packages": {}, + "exec": [ + "pm.environment.set(\"informatieobject_url\", pm.response.json().url);" + ], + "_lastExecutionId": "c2c2825e-eccd-44e1-96e8-b77cc822ee84" + } + }, + { + "listen": "prerequest", + "script": { + "id": "1e6b82b9-827b-4f67-b821-a000761f8b64", + "type": "text/javascript", + "packages": {}, + "exec": [ + "pm.environment.set(\"object_inhoud\", btoa(\"string\"))" + ], + "_lastExecutionId": "4307f0b1-3b7c-4e98-9173-92667f171bd7" + } + } + ] + }, + { + "id": "1354c1f1-6dde-400c-aaea-be548d693951", + "name": "Create relation between Zaak and Informatieobject", + "request": { + "url": { + "path": [ + "zaakinformatieobjecten" + ], + "host": [ + "{{zrc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n \"informatieobject\": \"{{informatieobject_url}}\",\n \"zaak\": \"{{created_zaak_url}}\",\n\t\"titel\": \"\",\n\t\"beschrijving\": \"\"\n}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "0aa89f30-f402-4b6d-acf0-75100f2d63ff", + "type": "text/javascript", + "exec": [ + "pm.environment.set(\"created_zaakinformatieobject_url\", pm.response.json().url);" + ], + "_lastExecutionId": "9243c3b4-4397-4b16-b67a-07595a3ddff5" + } + }, + { + "listen": "prerequest", + "script": { + "id": "d4aef734-7211-4f7f-84d7-df5f8fdf5845", + "type": "text/javascript", + "exec": [ + "" + ], + "_lastExecutionId": "490c47d3-b1e6-4e7f-872a-c012f0b901d8" + } + } + ] + }, + { + "id": "76b36b25-df6a-4a44-942f-f24050d2ab65", + "name": "Retrieve ObjectInformatieObject url", + "request": { + "url": { + "path": [ + "objectinformatieobjecten" + ], + "host": [ + "{{drc_url}}" + ], + "query": [ + { + "disabled": true, + "key": "object", + "value": "{{created_zaak_url}}" + }, + { + "key": "informatieobject", + "value": "{{informatieobject_url}}" + } + ], + "variable": [] + }, + "method": "GET" + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "7da34cab-8696-441f-b660-3eff3736f04d", + "type": "text/javascript", + "packages": {}, + "exec": [ + "pm.environment.set(\"objectinformatieobject_url\", pm.response.json()[0].url);" + ], + "_lastExecutionId": "2e7c3ae2-c98d-442d-810c-dbf65d133d16" + } + } + ] + }, + { + "id": "67a7faac-2197-4d1c-a776-4b448d9c063a", + "name": "Add Klantcontact to Zaak", + "request": { + "url": { + "path": [ + "klantcontacten" + ], + "host": [ + "{{zrc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n\t\"zaak\": \"{{created_zaak_url}}\",\n\t\"datumtijd\": \"2019-02-20T00:00:00\"\n}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "f78a7e66-a1ae-47f7-93b8-471ae8a86e9c", + "type": "text/javascript", + "exec": [ + "pm.environment.set(\"klantcontact_url\", pm.response.json().url);" + ], + "_lastExecutionId": "8e1e5025-93fb-4ae2-ad53-e92f075ccd6e" + } + }, + { + "listen": "prerequest", + "script": { + "id": "a7a082ae-0443-4c10-b486-fb9801595b4f", + "type": "text/javascript", + "exec": [ + "" + ], + "_lastExecutionId": "4c2e505f-3176-4048-9241-2eca5be6fb1f" + } + } + ] + }, + { + "id": "49fefcef-b21f-4d58-b332-6bd4bbd80c42", + "name": "(zrc-023a) Zaak verwijderen is mogelijk", + "request": { + "url": { + "host": [ + "{{created_zaak_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Accept-Crs", + "value": "EPSG:4326" + } + ], + "method": "DELETE", + "body": { + "mode": "raw", + "raw": "" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "0fb26273-09fc-4f03-b5a9-55d7aef2020e", + "type": "text/javascript", + "exec": [ + "pm.test(\"Zaak verwijderen geeft 204\", function() {", + " pm.response.to.have.status(204);", + "});" + ], + "_lastExecutionId": "cb8a15e4-bfd3-4bef-8649-3eb4a2f719df" + } + } + ] + }, + { + "id": "babc0389-ff49-48e7-9087-52c7549cc104", + "name": "(zrc-023b) Zaak verdwijnt uit zrc na verwijdering", + "request": { + "url": { + "host": [ + "{{created_zaak_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Accept-Crs", + "value": "EPSG:4326" + } + ], + "method": "GET" + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "e7acee39-bdc3-4838-a4e3-d91f46eb1eef", + "type": "text/javascript", + "exec": [ + "pm.test(\"Zaak ophalen uit zrc na verwijdering geeft 404\", function() {", + " pm.response.to.have.status(404); ", + "});", + "", + "pm.environment.unset(\"created_zaak_url\");" + ], + "_lastExecutionId": "a4bfe563-a0de-4f3e-b7a5-e36398b1b304" + } + } + ] + }, + { + "id": "df3fa2c8-c8c5-4433-8ab5-dc9206083dae", + "name": "(zrc-023c) Resultaat verdwijnt uit zrc na Zaak verwijdering", + "request": { + "url": { + "host": [ + "{{resultaat_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Accept-Crs", + "value": "EPSG:4326" + } + ], + "method": "GET" + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "0aed95fa-b4ae-46c0-9c96-6cf5bb667bf4", + "type": "text/javascript", + "exec": [ + "pm.test(\"Resultaat ophalen uit zrc na Zaak verwijdering geeft 404\", function() {", + " pm.response.to.have.status(404); ", + "});" + ], + "_lastExecutionId": "f98a6fc9-ec78-4019-9fb4-9be7f889feb8" + } + } + ] + }, + { + "id": "cf2698de-4bf2-4daf-920b-efd2208b3b50", + "name": "(zrc-023d) Status verdwijnt uit zrc na Zaak verwijdering", + "request": { + "url": { + "host": [ + "{{status_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Accept-Crs", + "value": "EPSG:4326" + } + ], + "method": "GET" + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "a01ae063-18eb-475a-bbdb-f6ceaf744f4f", + "type": "text/javascript", + "exec": [ + "pm.test(\"Status ophalen uit zrc na Zaak verwijdering geeft 404\", function() {", + " pm.response.to.have.status(404); ", + "});" + ], + "_lastExecutionId": "792ab686-77c3-4898-999b-4af46c895db8" + } + } + ] + }, + { + "id": "cb0eb1f5-06cd-4787-9a85-f4dfa977730b", + "name": "(zrc-023e) Rol verdwijnt uit zrc na Zaak verwijdering", + "request": { + "url": { + "host": [ + "{{rol_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Accept-Crs", + "value": "EPSG:4326" + } + ], + "method": "GET" + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "4c18d7ef-9f35-47d9-88b9-f9a879815a33", + "type": "text/javascript", + "exec": [ + "pm.test(\"Rol ophalen uit zrc na Zaak verwijdering geeft 404\", function() {", + " pm.response.to.have.status(404); ", + "});" + ], + "_lastExecutionId": "9cd7244e-63ee-4e0c-8269-fac7ff74e6e6" + } + } + ] + }, + { + "id": "3e2acab8-2b78-40a6-ab72-100423b0f36b", + "name": "(zrc-023f) Zaakobject verdwijnt uit zrc na Zaak verwijdering", + "request": { + "url": { + "host": [ + "{{zaakobject_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Accept-Crs", + "value": "EPSG:4326" + } + ], + "method": "GET" + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "66b2ff10-d4c4-48a7-8309-058f0dd52005", + "type": "text/javascript", + "exec": [ + "pm.test(\"Zaakobject ophalen uit zrc na Zaak verwijdering geeft 404\", function() {", + " pm.response.to.have.status(404); ", + "});" + ], + "_lastExecutionId": "27473f9c-026f-4bd1-be5b-c4633511b7f3" + } + } + ] + }, + { + "id": "8fc1fe4b-4e42-4423-a629-fc4fc0539df2", + "name": "(zrc-023g) Zaakeigenschap verdwijnt uit zrc na Zaak verwijdering", + "request": { + "url": { + "host": [ + "{{zaakeigenschap_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Accept-Crs", + "value": "EPSG:4326" + } + ], + "method": "GET" + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "17fd71c5-d521-4a4a-85c7-ab71e252e4bf", + "type": "text/javascript", + "exec": [ + "pm.test(\"Zaakeigenschap ophalen uit zrc na Zaak verwijdering geeft 404\", function() {", + " pm.response.to.have.status(404); ", + "});" + ], + "_lastExecutionId": "81514715-708a-47cc-be0c-7d37e0b4dd02" + } + } + ] + }, + { + "id": "bd0c24c7-e8d9-4665-8da2-68549285d111", + "name": "(zrc-023h) ObjectInformatieObject verdwijnt uit drc na Zaak verwijdering", + "request": { + "url": { + "host": [ + "{{objectinformatieobject_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Accept-Crs", + "value": "EPSG:4326" + } + ], + "method": "GET" + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "fc92b161-7037-4a75-b672-e695b3319071", + "type": "text/javascript", + "exec": [ + "pm.test(\"ObjectInformatieObject ophalen uit drc na Zaak verwijdering geeft 404\", function() {", + " pm.response.to.have.status(404); ", + "});" + ], + "_lastExecutionId": "f28bb4de-4eb1-48ca-a86c-e75828719804" + } + } + ] + }, + { + "id": "030d8eb0-a8a0-4cca-86b3-46f49f85919f", + "name": "(zrc-023i) ZaakInformatieObject verdwijnt uit zrc na Zaak verwijdering", + "request": { + "url": { + "host": [ + "{{created_zaakinformatieobject_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Accept-Crs", + "value": "EPSG:4326" + } + ], + "method": "GET" + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "879c7c7e-65af-49b0-9b74-3c68c32958b1", + "type": "text/javascript", + "exec": [ + "pm.test(\"ZaakInformatieObject ophalen uit zrc na Zaak verwijdering geeft 404\", function() {", + " pm.response.to.have.status(404); ", + "});" + ], + "_lastExecutionId": "ecada1a9-0561-486d-a6d6-ca700d8daa5b" + } + } + ] + }, + { + "id": "67772a60-cb02-4e95-b32e-e3ee74cf9a30", + "name": "(zrc-023j) Klantcontact verdwijnt uit zrc na Zaak verwijdering", + "request": { + "url": { + "host": [ + "{{klantcontact_url}}" + ], + "query": [], + "variable": [] + }, + "method": "GET" + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "a765e7cf-f9c4-4f80-b8e2-cbfdb32bcf6a", + "type": "text/javascript", + "exec": [ + "pm.test(\"Klantcontact ophalen uit zrc na Zaak verwijdering geeft 404\", function() {", + " pm.response.to.have.status(404); ", + "});" + ], + "_lastExecutionId": "aab0b00b-e982-44e8-8dbc-3d2e37c256e1" + } + } + ] + } + ], + "event": [ + { + "listen": "prerequest", + "script": { + "id": "8cabebee-c41a-4458-8c5e-548212116141", + "type": "text/javascript", + "exec": [ + "" + ], + "_lastExecutionId": "90516c53-7687-4856-99f7-4a6aba05302d" + } + }, + { + "listen": "test", + "script": { + "id": "372d9d56-f9b5-402d-8c77-bcc30d71b788", + "type": "text/javascript", + "exec": [ + "" + ], + "_lastExecutionId": "93892a75-49a7-4adb-8ed3-38893d5e268c" + } + } + ] + } + ], + "event": [ + { + "listen": "prerequest", + "script": { + "id": "5f44f6c3-a0a1-42a2-af6b-2a54647a58aa", + "type": "text/javascript", + "exec": [ + "" + ], + "_lastExecutionId": "3b7b7200-bf4f-492f-af60-8ce77529a9b3" + } + }, + { + "listen": "test", + "script": { + "id": "67d3cd13-2034-4b31-a8d0-474aa22eea92", + "type": "text/javascript", + "exec": [ + "" + ], + "_lastExecutionId": "c423e46e-c48b-48fa-80ed-ae2ba8512818" + } + } + ] + }, + { + "id": "74b85dc9-9204-4da7-9782-4d57de41a363", + "name": "drc", + "description": { + "content": "Bevat alle business logic tests voor het Documentregistratiecomponent (DRC)", + "type": "text/plain" + }, + "item": [ + { + "id": "92fe1ea1-c117-46f9-8c47-1a2ee658b211", + "name": "setUp", + "item": [ + { + "id": "84699391-888b-4263-86fe-6851cacadf1b", + "name": "set full access token", + "request": { + "url": { + "path": [ + "catalogussen" + ], + "host": [ + "{{ztc_url}}" + ], + "query": [], + "variable": [] + }, + "method": "GET" + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "dc6f97bb-24a4-40a1-9789-59b6a4dbb5d2", + "type": "text/javascript", + "packages": {}, + "exec": [ + "" + ] + } + }, + { + "listen": "prerequest", + "script": { + "id": "40885190-6a9b-4ad6-bac4-e81b53ec53b8", + "type": "text/javascript", + "packages": {}, + "exec": [ + " pm.environment.set(\"jwt_token\", pm.environment.get(\"jwt_full\"));\r", + " var origId = pm.environment.get(\"_original_client_id\");", + " var origSecret = pm.environment.get(\"_original_secret\");", + " if (origId) { pm.environment.set(\"client_id\", origId); }", + " if (origSecret) { pm.environment.set(\"secret\", origSecret); }", + " pm.environment.set(\"secret\", pm.environment.get(\"secret\") || \"procest-admin-secret-key-for-testing\");", + " " + ] + } + } + ] + }, + { + "id": "bc9cbe99-6857-48ee-a971-a2430e73286f", + "name": "ZT", + "request": { + "url": { + "path": [ + "zaaktypen" + ], + "host": [ + "{{ztc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\r\n\t\"identificatie\": \"{{random_identificatie-ztc-01}}\",\r\n \"omschrijving\": \"Melding Openbare Ruimte\",\r\n \"vertrouwelijkheidaanduiding\": \"openbaar\",\r\n \"doel\": \"test doel\",\r\n \"verantwoordelijke\":\"X\",\r\n \"aanleiding\": \"test aanleiding\",\r\n \"indicatieInternOfExtern\": \"extern\",\r\n \"handelingInitiator\": \"indienen\",\r\n \"onderwerp\": \"openbare ruimte\",\r\n \"handelingBehandelaar\": \"behandelen\",\r\n \"doorlooptijd\": \"P10D\",\r\n \"opschortingEnAanhoudingMogelijk\": false,\r\n \"verlengingMogelijk\": false,\r\n \"publicatieIndicatie\": false,\r\n \"productenOfDiensten\": [\r\n \"https://ref.tst.vng.cloud/standaard/\"\r\n ],\r\n \"selectielijstProcestype\": \"{{procestype_url}}\",\r\n \"referentieproces\": {\r\n \"naam\": \"test\",\r\n \"link\": \"\"\r\n },\r\n \"catalogus\": \"{{catalogus_url}}\",\r\n \"deelzaaktypen\": [],\r\n \"statustypen\": [],\r\n \"resultaattypen\": [],\r\n \"eigenschappen\": [],\r\n \"informatieobjecttypen\": [],\r\n \"besluittypen\": [],\r\n \"gerelateerdeZaaktypen\": [],\r\n \"beginGeldigheid\": \"2005-01-01\",\r\n \"eindeGeldigheid\": \"2012-01-01\",\r\n \"versiedatum\": \"2012-01-01\",\r\n \"concept\": true\r\n}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "7aa9b316-3322-47ca-90dd-be5e49a99bff", + "type": "text/javascript", + "packages": {}, + "exec": [ + "if(pm.response.code == 201) {", + " pm.environment.set(\"zaaktype_url\", pm.response.json().url);", + "}", + "", + "" + ] + } + }, + { + "listen": "prerequest", + "script": { + "id": "27cd09b2-3d93-4abb-b07e-26cfd21df37d", + "type": "text/javascript", + "packages": {}, + "exec": [ + "var uuid = require('uuid');", + "var myUUID = uuid.v4(); ", + "pm.environment.set(\"random_identificatie-ztc-01\", myUUID);" + ] + } + } + ] + }, + { + "id": "504cd5fa-d6fc-42d4-bc2e-f72aca72fb07", + "name": "ZT Publish", + "request": { + "url": { + "path": [ + "publish" + ], + "host": [ + "{{zaaktype_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "9222dc01-19e5-4f54-b72b-ee6c9eaa759b", + "type": "text/javascript", + "packages": {}, + "exec": [ + "" + ] + } + }, + { + "listen": "prerequest", + "script": { + "id": "808e5aa1-23db-4e5e-93a1-1e8cb5bba2c1", + "type": "text/javascript", + "packages": {}, + "exec": [ + "" + ] + } + } + ] + }, + { + "id": "fef2ed51-758e-4504-80c0-c715d2041b23", + "name": "IOT", + "request": { + "url": { + "path": [ + "informatieobjecttypen" + ], + "host": [ + "{{ztc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n\t\"catalogus\": \"{{catalogus_url}}\",\n\t\"omschrijving\": \"{{random_identificatie-ztc-03}}\",\n\t\"vertrouwelijkheidaanduiding\": \"openbaar\",\n\t\"beginGeldigheid\": \"2019-01-01\"\n}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "3f5fc73c-61d6-4dc8-9c4c-4ef6d27e319f", + "type": "text/javascript", + "packages": {}, + "exec": [ + "if(pm.response.code == 201) {", + " pm.environment.set(\"informatieobjecttype_url\", pm.response.json().url);", + " pm.environment.set(\"informatieobjecttype_omschrijving\", pm.response.json().omschrijving);", + "", + "}", + "", + "" + ] + } + }, + { + "listen": "prerequest", + "script": { + "id": "66ffbe25-5b5e-4595-9cb5-09c380c562d3", + "type": "text/javascript", + "packages": {}, + "exec": [ + "var uuid = require('uuid');\r", + "var myUUID = uuid.v4(); \r", + "pm.environment.set(\"random_identificatie-ztc-03\", myUUID);" + ] + } + } + ] + }, + { + "id": "9cff5e9b-6232-4821-8a87-e702ca47c1c9", + "name": "IOT publish", + "request": { + "url": { + "path": [ + "publish" + ], + "host": [ + "{{informatieobjecttype_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "1be92b0c-dd02-416a-8094-a8ac46f8be13", + "type": "text/javascript", + "packages": {}, + "exec": [ + "" + ] + } + }, + { + "listen": "prerequest", + "script": { + "id": "7e75606c-9715-4cfe-8ba3-b7955016258a", + "type": "text/javascript", + "packages": {}, + "exec": [ + "" + ] + } + } + ] + }, + { + "id": "a4a12a1f-7b97-45ee-8892-82f4ce5ba64c", + "name": "BT", + "request": { + "url": { + "path": [ + "besluittypen" + ], + "host": [ + "{{ztc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n \"catalogus\": \"{{catalogus_url}}\",\n \"omschrijving\": \"{{random_identificatie-ztc-02}}\",\n \"zaaktypen\": [],\n\t\"publicatieIndicatie\": false,\n\t\"informatieobjecttypen\": [\"{{informatieobjecttype_url}}\"],\n\t\"beginGeldigheid\": \"2019-01-01\"\n}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "a580ef78-de29-49ac-b492-f30f40cbc496", + "type": "text/javascript", + "packages": {}, + "exec": [ + "if(pm.response.code == 201) {", + " pm.environment.set(\"besluittype_url\", pm.response.json().url);", + "}", + "", + "" + ] + } + }, + { + "listen": "prerequest", + "script": { + "id": "dfa2f1c5-c91c-40e3-a5b2-62cb9f138b85", + "type": "text/javascript", + "packages": {}, + "exec": [ + "var uuid = require('uuid');", + "var myUUID = uuid.v4(); ", + "pm.environment.set(\"random_identificatie-ztc-02\", myUUID);" + ] + } + } + ] + }, + { + "id": "3892bcab-12b9-441a-b6b0-c3557c4f87dc", + "name": "BT Publish", + "request": { + "url": { + "path": [ + "publish" + ], + "host": [ + "{{besluittype_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "233dfb82-5429-4747-b3ab-e02e2b9f2364", + "type": "text/javascript", + "packages": {}, + "exec": [ + "" + ] + } + }, + { + "listen": "prerequest", + "script": { + "id": "d88815ee-27a3-4cf3-9c32-8b1bc02fb1c7", + "type": "text/javascript", + "packages": {}, + "exec": [ + "" + ] + } + } + ] + }, + { + "id": "ae83d9ad-2e79-4918-bc93-74c490e3054b", + "name": "ZT-IOT", + "request": { + "url": { + "path": [ + "zaaktype-informatieobjecttypen" + ], + "host": [ + "{{ztc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n\t\"zaaktype\": \"{{zaaktype_url}}\",\n\t\"informatieobjecttype\": \"{{informatieobjecttype_omschrijving}}\",\n\t\"volgnummer\": 1,\n\t\"richting\": \"inkomend\"\n}" + } + }, + "response": [], + "event": [] + }, + { + "id": "53eddcd4-239d-4ea5-9b55-a230f495a77d", + "name": "Create Zaak", + "request": { + "description": { + "content": "Maakt een Zaak aan die gebruikt zal worden in de tests, deze zaak wordt na de tests weer verwijderd.\n\nDe body van deze Zaak zal ook als variabele opgeslagen worden en gebruikt worden (met kleine aanpassingen iedere keer) in de requests voor de validatie tests, om te voorkomen dat telkens hetzelfde body gekopieerd moet worden.", + "type": "text/plain" + }, + "url": { + "path": [ + "zaken" + ], + "host": [ + "{{zrc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Content-Crs", + "value": "EPSG:4326" + }, + { + "key": "Accept-Crs", + "value": "EPSG:4326" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n \"bronorganisatie\": \"000000000\",\n \"omschrijving\": \"string\",\n \"toelichting\": \"string\",\n \"registratiedatum\": \"2019-04-09\",\n \"verantwoordelijkeOrganisatie\": \"000000000\",\n \"zaaktype\": \"{{zaaktype_url}}\",\n \"startdatum\": \"2019-04-09\",\n \"einddatumGepland\": \"2019-04-20\",\n \"uiterlijkeEinddatumAfdoening\": \"2019-04-09\",\n \"publicatiedatum\": \"2019-04-09\",\n\t\"vertrouwelijkheidaanduiding\": \"openbaar\",\n\t\"betalingsindicatie\": \"geheel\",\n\t\"laatsteBetaalDatum\": \"2019-01-01\",\n\t\"zaakgeometrie\": \n\t{\n\t \"type\": \"Point\",\n\t \"coordinates\": [53, 5]\n\t},\n\t\"opschorting\": \n\t{\n\t \"indicatie\": true,\n\t \"reden\": \"string\"\n\t},\n\t\"selectielijstklasse\": \"{{selectielijstklasse_url}}\",\n \"archiefstatus\": \"nog_te_archiveren\"\n}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "7e805a7c-190b-498e-9391-0263addee160", + "type": "text/javascript", + "exec": [ + "var zaak = pm.response.json();", + "pm.environment.set(\"zaak_url\", zaak.url);", + "pm.environment.set(\"zaak_id\", zaak.identificatie);", + "pm.environment.set(\"zaak_bronorganisatie\", zaak.bronorganisatie);", + "pm.environment.set(\"zaak_geometrie\", zaak.zaakgeometrie);", + "pm.environment.set(\"zaak_body\", pm.request.body.raw);" + ] + } + } + ] + }, + { + "id": "f9f939b6-685b-415b-a185-8465bce81c30", + "name": "Create Besluit", + "request": { + "url": { + "path": [ + "besluiten" + ], + "host": [ + "{{brc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n\t\"verantwoordelijkeOrganisatie\": \"000000000\",\n\t\"besluittype\": \"{{besluittype_url}}\",\n\t\"datum\": \"2019-04-25\",\n\t\"ingangsdatum\": \"2019-04-26\",\n\t\"vervaldatum\": \"2019-04-28\"\n}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "c2b5dfdf-9645-44fb-a969-7d28711e717e", + "type": "text/javascript", + "exec": [ + "pm.environment.set(\"besluit_url\", pm.response.json().url);" + ] + } + } + ] + } + ], + "event": [] + }, + { + "id": "75f2f305-92ee-4eb3-8f75-cbdecf9a891b", + "name": "drc-001", + "item": [ + { + "id": "652ddec6-2f54-44b8-9567-07e0c25527be", + "name": "(drc-001a) EnkelvoudigInformatieObject aanmaken is mogelijk", + "request": { + "url": { + "path": [ + "enkelvoudiginformatieobjecten" + ], + "host": [ + "{{drc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n\t\"bronorganisatie\": \"000000000\",\n\t\"creatiedatum\": \"2019-01-01\",\n\t\"titel\": \"testobject\",\n\t\"auteur\": \"testauteur\",\n\t\"taal\": \"eng\",\n\t\"inhoud\": \"{{object_inhoud}}\",\n\t\"informatieobjecttype\": \"{{informatieobjecttype_url}}\",\n \"bestandsnaam\": \"iets.pdf\",\n\t\"bestandsomvang\": 6\n}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "478a83d9-2a6c-4a97-a1c7-02ffad300f9e", + "type": "text/javascript", + "packages": {}, + "exec": [ + "pm.test(\"EnkelvoudigInformatieObject aanmaken met valide gegevens geeft 201\", function() {", + " pm.response.to.have.status(201);", + "});", + "", + "pm.environment.set(\"informatieobject_url\", pm.response.json().url);", + "pm.environment.set(\"informatieobject_body\", pm.request.body.raw);" + ] + } + }, + { + "listen": "prerequest", + "script": { + "id": "40b7b25a-78d5-40bd-ac67-23c49d2e7729", + "type": "text/javascript", + "packages": {}, + "exec": [ + "pm.environment.set(\"object_inhoud\", btoa(\"string\"));", + "", + "" + ] + } + } + ] + }, + { + "id": "d94913fc-8436-4a3a-b3e6-0edb1dc27bf7", + "name": "Create Informatieobjecttype for EIO updates", + "request": { + "url": { + "path": [ + "informatieobjecttypen" + ], + "host": [ + "{{ztc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n\t\"catalogus\": \"{{catalogus_url}}\",\n\t\"omschrijving\": \"{{random_identificatie-drc-001}}\",\n\t\"vertrouwelijkheidaanduiding\": \"openbaar\",\n\t\"beginGeldigheid\": \"2019-01-01\",\n \"informatieobjectcategorie\":\"X\"\n}" + } + }, + "response": [], + "event": [ + { + "listen": "prerequest", + "script": { + "id": "1867bd2e-1d70-4b60-8a21-dd3cbd4f7add", + "type": "text/javascript", + "packages": {}, + "exec": [ + "var uuid = require('uuid');\r", + "var myUUID = uuid.v4(); \r", + "pm.environment.set(\"random_identificatie-drc-001\", myUUID);" + ] + } + }, + { + "listen": "test", + "script": { + "id": "d592d204-9234-4940-80f8-54d9d64edc5d", + "type": "text/javascript", + "packages": {}, + "exec": [ + "pm.environment.set(\"temp_iotype_url\", pm.response.json().url);" + ] + } + } + ] + }, + { + "id": "81be324c-a041-46ee-abac-663f2f9aae34", + "name": "(drc-001d) EnkelvoudigInformatieObject aanmaken met concept informatieobjecttype is onmogelijk", + "request": { + "url": { + "path": [ + "enkelvoudiginformatieobjecten" + ], + "host": [ + "{{drc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Accept-Crs", + "value": "EPSG:4326" + }, + { + "key": "Content-Crs", + "value": "EPSG:4326" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\r\n\t\"bronorganisatie\": \"000000000\",\r\n\t\"creatiedatum\": \"2019-01-01\",\r\n\t\"titel\": \"testobject\",\r\n\t\"auteur\": \"testauteur\",\r\n\t\"taal\": \"eng\",\r\n\t\"inhoud\": \"{{object_inhoud}}\",\r\n\t\"informatieobjecttype\": \"{{temp_iotype_url}}\",\r\n \"bestandsnaam\": \"iets.pdf\",\r\n\t\"bestandsomvang\": 6\r\n}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "951d8293-9c26-48b4-a329-d07e76952cd9", + "type": "text/javascript", + "packages": {}, + "exec": [ + "pm.test(\"EnkelvoudigInformatieObject aanmaken met concept informatieobjecttype geeft 400\", function() {", + " pm.response.to.have.status(400);", + " ", + " // Verify that the 400 is returned for the correct reason", + " var error = pm.response.json()[\"invalidParams\"][0];", + " pm.expect(error.name).to.be.equal(\"informatieobjecttype\");", + " pm.expect(error.code).to.be.equal(\"not-published\");", + "});", + "", + "// If the test failed and the Zaak was created, delete it", + "" + ] + } + }, + { + "listen": "prerequest", + "script": { + "id": "c199e5c9-8b53-4d81-bc88-9e11bdac48f1", + "type": "text/javascript", + "packages": {}, + "exec": [ + "" + ] + } + } + ] + }, + { + "id": "6b65bf8b-0c73-4829-a9ca-68264addf10f", + "name": "Publish temp Informatieobjecttype", + "request": { + "url": { + "path": [ + "publish" + ], + "host": [ + "{{temp_iotype_url}}" + ], + "query": [], + "variable": [] + }, + "method": "POST" + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "504eef8f-d21c-4ce0-8a22-04d3810b323d", + "type": "text/javascript", + "packages": {}, + "exec": [ + "" + ] + } + } + ] + }, + { + "id": "8220b539-44d7-4b1d-af87-d18cbf1efff7", + "name": "(drc-001d) EnkelvoudigInformatieObject aanmaken met concept informatieobjecttype is nu mogelijk", + "request": { + "url": { + "path": [ + "enkelvoudiginformatieobjecten" + ], + "host": [ + "{{drc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Accept-Crs", + "value": "EPSG:4326" + }, + { + "key": "Content-Crs", + "value": "EPSG:4326" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\r\n\t\"bronorganisatie\": \"000000000\",\r\n\t\"creatiedatum\": \"2019-01-01\",\r\n\t\"titel\": \"testobject\",\r\n\t\"auteur\": \"testauteur\",\r\n\t\"taal\": \"eng\",\r\n\t\"inhoud\": \"{{object_inhoud}}\",\r\n\t\"informatieobjecttype\": \"{{temp_iotype_url}}\",\r\n \"bestandsnaam\": \"iets.pdf\",\r\n\t\"bestandsomvang\": 6\r\n}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "83236c47-5af2-4a6c-b88d-33a7342618a9", + "type": "text/javascript", + "packages": {}, + "exec": [ + "pm.test(\"EnkelvoudigInformatieObject aanmaken met concept informatieobjecttype geeft 201\", function() {", + " pm.response.to.have.status(201);", + " ", + "", + "});", + "", + "" + ] + } + }, + { + "listen": "prerequest", + "script": { + "id": "52f2b988-52e7-4fcf-996e-da5473bc7230", + "type": "text/javascript", + "packages": {}, + "exec": [ + "// Retrieve the Zaak body template and modify as needed", + "var body = JSON.parse(pm.environment.get(\"informatieobject_body\"));", + "" + ] + } + } + ] + } + ], + "event": [] + }, + { + "id": "05e5a84a-0f70-4ad5-a472-5dca3e695397", + "name": "drc-002", + "item": [ + { + "id": "570146a1-16c2-4058-932a-37d2d6576f6f", + "name": "(drc-002a) ObjectInformatieObject aanmaken met objectType zaak en ongeldige object url is onmogelijk", + "request": { + "url": { + "path": [ + "objectinformatieobjecten" + ], + "host": [ + "{{drc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n\t\"informatieobject\": \"{{informatieobject_url}}\",\n\t\"object\": \"https://www.roxit.nl/api/v1/zaken/123\",\n\t\"objectType\": \"zaak\"\n}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "98449b25-22b1-4391-a00c-cacc71abf1a7", + "type": "text/javascript", + "packages": {}, + "exec": [ + "pm.test(\"ObjectInformatieObject aanmaken met objecttype zaak en object url die niet resulteert in 200 geeft 400\", function() {", + " pm.response.to.have.status(400);", + " ", + " var error = pm.response.json()[\"invalidParams\"][0];", + " pm.expect(error.name).to.be.equal(\"object\");", + " pm.expect(error.code).to.be.equal(\"bad-url\");", + "});", + "", + "" + ] + } + } + ] + }, + { + "id": "5f3bd4be-7fb2-49ef-a63f-87800152868b", + "name": "(drc-002b) ObjectInformatieObject aanmaken met objectType besluit en ongeldige object url is onmogelijk", + "request": { + "url": { + "path": [ + "objectinformatieobjecten" + ], + "host": [ + "{{drc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n\t\"informatieobject\": \"{{informatieobject_url}}\",\n\t\"object\": \"{{mock_url}}/404\",\n\t\"objectType\": \"besluit\"\n}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "44332d59-c084-4c2f-b71f-8e65c59abf83", + "type": "text/javascript", + "packages": {}, + "exec": [ + "pm.test(\"ObjectInformatieObject aanmaken met objecttype besluit en object url die niet resulteert in 200 geeft 400\", function() {", + " pm.response.to.have.status(400);", + " ", + " var error = pm.response.json()[\"invalidParams\"][0];", + " pm.expect(error.name).to.be.equal(\"object\");", + " pm.expect(error.code).to.be.equal(\"bad-url\");", + "});", + "", + "" + ] + } + } + ] + }, + { + "id": "e3d5cfbe-3778-4b5c-bd27-70ddfff27e8f", + "name": "(drc-002c) ObjectInformatieObject aanmaken met objectType zaak en object url die niet wijst naar Zaak is onmogelijk", + "request": { + "url": { + "path": [ + "objectinformatieobjecten" + ], + "host": [ + "{{drc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n\t\"informatieobject\": \"{{informatieobject_url}}\",\n\t\"object\": \"{{mock_url}}/200\",\n\t\"objectType\": \"zaak\"\n}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "07d47594-86c7-4044-b155-648dc60410c6", + "type": "text/javascript", + "packages": {}, + "exec": [ + "pm.test(\"ObjectInformatieObject aanmaken met objecttype zaak en object url die niet wijst naar Zaak geeft 400\", function() {", + " pm.response.to.have.status(400);", + " ", + " var error = pm.response.json()[\"invalidParams\"][0];", + " pm.expect(error.name).to.be.equal(\"object\");", + "", + "});", + "", + "" + ] + } + } + ] + }, + { + "id": "84bdb892-0fe2-471b-8603-accdad195f62", + "name": "(drc-002d) ObjectInformatieObject aanmaken met objectType besluit en object url die niet wijst naar Besluit is onmogelijk", + "request": { + "url": { + "path": [ + "objectinformatieobjecten" + ], + "host": [ + "{{drc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n\t\"informatieobject\": \"{{informatieobject_url}}\",\n\t\"object\": \"{{mock_url}}/200\",\n\t\"objectType\": \"besluit\"\n}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "fd4474c6-4c76-4916-bd6f-04cd64706a89", + "type": "text/javascript", + "packages": {}, + "exec": [ + "pm.test(\"ObjectInformatieObject aanmaken met objecttype besluit en object url die niet wijst naar Besluit geeft 400\", function() {", + " pm.response.to.have.status(400);", + " ", + " var error = pm.response.json()[\"invalidParams\"][0];", + " pm.expect(error.name).to.be.equal(\"object\");", + "", + "});", + "", + "" + ] + } + } + ] + } + ], + "event": [] + }, + { + "id": "0ee4164f-194f-4da1-9966-4dacfbb59333", + "name": "drc-003", + "item": [ + { + "id": "08bcf65f-6e46-4009-9cf3-a3e83845032c", + "name": "Maak IOT", + "request": { + "url": { + "path": [ + "enkelvoudiginformatieobjecten" + ], + "host": [ + "{{drc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n\t\"bronorganisatie\": \"000000000\",\n\t\"creatiedatum\": \"2019-01-01\",\n\t\"titel\": \"testobject\",\n\t\"auteur\": \"testauteur\",\n\t\"taal\": \"eng\",\n\t\"inhoud\": \"c3RyaW5n\",\n\t\"informatieobjecttype\": \"{{informatieobjecttype_url}}\",\n \"bestandsnaam\": \"iets.pdf\",\n\t\"bestandsomvang\": 6\n}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "4342dba6-634d-4b14-94a0-59a5217dd9a5", + "type": "text/javascript", + "packages": {}, + "exec": [ + "pm.test(\"EnkelvoudigInformatieObject aanmaken met valide gegevens geeft 201\", function() {", + " pm.response.to.have.status(201);", + "});", + "", + "pm.environment.set(\"informatieobject_url\", pm.response.json().url);", + "pm.environment.set(\"informatieobject_body\", pm.request.body.raw);" + ] + } + }, + { + "listen": "prerequest", + "script": { + "id": "37ab15e0-c455-44db-8248-cc49e8b7dda5", + "type": "text/javascript", + "packages": {}, + "exec": [ + "", + "", + "" + ] + } + } + ] + }, + { + "id": "fefd99c3-6124-4ba9-abb0-fa5c5eaa1115", + "name": "Create relation between Zaak and Informatieobject", + "request": { + "url": { + "path": [ + "zaakinformatieobjecten" + ], + "host": [ + "{{zrc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n\t\"zaak\": \"{{zaak_url}}\",\n\t\"informatieobject\": \"{{informatieobject_url}}\"\n}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "86e57434-d539-4fdb-9a27-5edb037ce8f4", + "type": "text/javascript", + "exec": [ + "pm.environment.set(\"created_zaakinformatieobject_url\", pm.response.json().url);" + ] + } + } + ] + }, + { + "id": "dc296bf2-a819-45c6-a9bf-d32abadf5abf", + "name": "(drc-003a) ObjectInformatieObject aanmaken met bestaande combinatie object en informatieobject en objectType zaak is onmogelijk", + "request": { + "url": { + "path": [ + "objectinformatieobjecten" + ], + "host": [ + "{{drc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n\t\"informatieobject\": \"{{informatieobject_url}}\",\n\t\"object\": \"{{zaak_url}}\",\n\t\"objectType\": \"zaak\"\n}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "e0857dc3-7334-4472-8340-bc5216a53eeb", + "type": "text/javascript", + "packages": {}, + "exec": [ + "pm.test(\"ObjectInformatieObject aanmaken met objecttype zaak en bestaande combinatie object en informatieobject geeft 400\", function() {", + " pm.response.to.have.status(400);", + " ", + " var error = pm.response.json()[\"invalidParams\"][0];", + " pm.expect(error.name).to.be.equal(\"nonFieldErrors\");", + "", + "});", + "", + "var request_names = [\"Create relation between Besluit and Informatieobject\"];", + "if (pm.response.code == 201) {", + " pm.environment.set(\"created_objectinformatieobject_url\", pm.response.json().url);", + "", + "} ", + "" + ] + } + } + ] + }, + { + "id": "d0346aff-473b-4870-92a8-d0ac08aa92c0", + "name": "Create relation between Besluit and Informatieobject", + "request": { + "url": { + "path": [ + "besluitinformatieobjecten" + ], + "host": [ + "{{brc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Authorization", + "value": "Bearer {{jwt_token}}" + }, + { + "key": "Accept-Crs", + "value": "EPSG:4326" + }, + { + "key": "Content-Crs", + "value": "EPSG:4326" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n\t\"besluit\": \"{{besluit_url}}\",\n\t\"informatieobject\": \"{{informatieobject_url}}\"\n}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "ba1fb093-584f-4300-9459-ec47cf86d2e4", + "type": "text/javascript", + "exec": [ + "if (pm.response.code == 201) {", + " pm.environment.set(\"created_besluitinformatieobject_url\", pm.response.json().url);", + "}" + ] + } + } + ] + }, + { + "id": "6cf6663e-e591-44ad-9f81-38df7733e249", + "name": "(drc-003b) ObjectInformatieObject aanmaken met bestaande combinatie object en informatieobject en objectType besluit is onmogelijk", + "request": { + "url": { + "path": [ + "objectinformatieobjecten" + ], + "host": [ + "{{drc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n\t\"informatieobject\": \"{{informatieobject_url}}\",\n\t\"object\": \"{{besluit_url}}\",\n\t\"objectType\": \"besluit\"\n}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "e91115f6-64da-4a96-97eb-7df93bc2f760", + "type": "text/javascript", + "packages": {}, + "exec": [ + "pm.test(\"ObjectInformatieObject aanmaken met objecttype besluit en bestaande combinatie object en informatieobject geeft 400\", function() {", + " pm.response.to.have.status(400);", + " ", + " var error = pm.response.json()[\"invalidParams\"][0];", + " pm.expect(error.name).to.be.equal(\"nonFieldErrors\");", + " pm.expect(error.code).to.be.equal(\"unique\");", + "});", + "", + "" + ] + } + } + ] + } + ], + "event": [] + }, + { + "id": "21b50b4d-fcdc-47a7-8eb1-325fc8136d7c", + "name": "drc-004", + "item": [ + { + "id": "89fdf021-9294-4a45-be3f-6e4edc80f8f9", + "name": "Create fresh EnkelvoudigInformatieObject for drc-004", + "request": { + "url": { + "path": [ + "enkelvoudiginformatieobjecten" + ], + "host": [ + "{{drc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Authorization", + "value": "Bearer {{jwt_token}}" + }, + { + "key": "Accept-Crs", + "value": "EPSG:4326" + }, + { + "key": "Content-Crs", + "value": "EPSG:4326" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n\t\"bronorganisatie\": \"000000000\",\n\t\"creatiedatum\": \"2019-01-01\",\n\t\"titel\": \"drc-004 testobject\",\n\t\"auteur\": \"testauteur\",\n\t\"taal\": \"eng\",\n\t\"inhoud\": \"c3RyaW5n\",\n\t\"informatieobjecttype\": \"{{informatieobjecttype_url}}\",\n\t\"bestandsnaam\": \"drc004.pdf\",\n\t\"bestandsomvang\": 6\n}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "abf85b84-5a42-4c29-8f28-6fbfd8cf1287", + "type": "text/javascript", + "exec": [ + "pm.test(\"Fresh EIO for drc-004 created\", function() {", + " pm.response.to.have.status(201);", + "});", + "pm.environment.set(\"informatieobject_url\", pm.response.json().url);" + ] + } + } + ] + }, + { + "id": "52e3fee7-8b31-4c1e-871d-7a6692d0ddcc", + "name": "(drc-004a) ObjectInformatieObject aanmaken met zaak en informatieobject niet gekoppeld in zrc is onmogelijk", + "request": { + "url": { + "path": [ + "objectinformatieobjecten" + ], + "host": [ + "{{drc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n\t\"informatieobject\": \"{{informatieobject_url}}\",\n\t\"object\": \"{{zaak_url}}\",\n\t\"objectType\": \"zaak\"\n}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "a43e30ad-b0e1-4259-ad77-35bbe2169e9f", + "type": "text/javascript", + "packages": {}, + "exec": [ + "pm.test(\"ObjectInformatieObject aanmaken met objectType zaak en object en informatieobject die nog niet gekoppeld zijn in zrc geeft 400\", function() {", + " pm.response.to.have.status(400);", + " ", + " var error = pm.response.json()[\"invalidParams\"][0];", + " pm.expect(error.name).to.be.equal(\"nonFieldErrors\");", + " pm.expect(error.code).to.be.equal(\"inconsistent-relation\");", + "});", + "", + "" + ] + } + } + ] + }, + { + "id": "7f6431da-5cff-43e6-8ff6-888ca48db4ff", + "name": "(drc-004b) ObjectInformatieObject aanmaken met besluit en informatieobject niet gekoppeld in brc is onmogelijk", + "request": { + "url": { + "path": [ + "objectinformatieobjecten" + ], + "host": [ + "{{drc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n\t\"informatieobject\": \"{{informatieobject_url}}\",\n\t\"object\": \"{{besluit_url}}\",\n\t\"objectType\": \"besluit\"\n}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "534b9b6e-ba74-4b6e-927a-268aae360867", + "type": "text/javascript", + "packages": {}, + "exec": [ + "pm.test(\"ObjectInformatieObject aanmaken met objectType besluit en object en informatieobject die nog niet gekoppeld zijn in zrc geeft 400\", function() {", + " pm.response.to.have.status(400);", + " ", + " var error = pm.response.json()[\"invalidParams\"][0];", + " pm.expect(error.name).to.be.equal(\"nonFieldErrors\");", + " ", + "});", + "", + "" + ] + } + } + ] + } + ], + "event": [] + }, + { + "id": "43f0c6e9-4f4b-4fd3-954d-8820e0b04178", + "name": "drc-005 obsolete business rule", + "item": [], + "event": [ + { + "listen": "prerequest", + "script": { + "id": "a6150999-0aad-4ef3-8404-5e2d1b3bafa6", + "type": "text/javascript", + "exec": [ + "" + ] + } + }, + { + "listen": "test", + "script": { + "id": "89d3def2-926b-4236-b90a-267cb77e4381", + "type": "text/javascript", + "exec": [ + "" + ] + } + } + ] + }, + { + "id": "c295fe0a-9af4-453b-a19f-e0a3edffe9d8", + "name": "drc-006", + "item": [ + { + "id": "debbb59a-f48b-4112-974c-188bf9e71006", + "name": "(drc-006a) Valideren default indicatie gebruiksrecht bij aanmaken EnkelvoudigInformatieObject", + "request": { + "url": { + "path": [ + "enkelvoudiginformatieobjecten" + ], + "host": [ + "{{drc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{{informatieobject_body}}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "d43a1379-1d2c-4d1a-b97a-f88624a1778c", + "type": "text/javascript", + "packages": {}, + "exec": [ + "pm.test(\"EnkelvoudigInformatieObject aanmaken zet indicatie gebruiksrecht op null indien niet gedefinieerd\", function() {", + " pm.expect(pm.response.json().indicatieGebruiksrecht).to.be.equal(null);", + "});", + "", + "", + "" + ] + } + } + ] + }, + { + "id": "1ff3efc6-e4fe-413a-abee-33b4daaad820", + "name": "(drc-006b) EnkelvoudigInformatieObject aanmaken met indicatie gebruiksrecht true vereist Gebruiksrechten", + "request": { + "url": { + "path": [ + "enkelvoudiginformatieobjecten" + ], + "host": [ + "{{drc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{{request_body}}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "92341587-9a39-4cdb-932a-0d1c30b4f910", + "type": "text/javascript", + "packages": {}, + "exec": [ + "pm.test(\"EnkelvoudigInformatieObject aanmaken met indicatie gebruiksrecht true zonder Gebruiksrechten in drc geeft 400\", function() {", + " pm.response.to.have.status(400);", + " ", + " var error = pm.response.json()[\"invalidParams\"][0];", + " pm.expect(error.name).to.be.equal(\"indicatieGebruiksrecht\");", + " pm.expect(error.code).to.be.equal(\"missing-gebruiksrechten\");", + "});", + "", + "" + ] + } + }, + { + "listen": "prerequest", + "script": { + "id": "2710131f-19b8-4101-b989-ad819c854b5a", + "type": "text/javascript", + "packages": {}, + "exec": [ + "var body = JSON.parse(pm.environment.get(\"informatieobject_body\"));", + "body.indicatieGebruiksrecht = true;", + "", + "pm.environment.set(\"request_body\", JSON.stringify(body));" + ] + } + } + ] + }, + { + "id": "d93a0a01-eea3-4a4c-b073-e55a0ecb574f", + "name": "Create Gebruiksrechten", + "request": { + "url": { + "path": [ + "gebruiksrechten" + ], + "host": [ + "{{drc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n\t\"informatieobject\": \"{{informatieobject_url}}\",\n\t\"startdatum\": \"2019-01-01T12:00:00\",\n\t\"omschrijvingVoorwaarden\": \"test\"\n}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "eb03813f-ece7-4c05-8913-851e765271f8", + "type": "text/javascript", + "exec": [ + "pm.environment.set(\"gebruiksrechten_url\", pm.response.json().url);" + ] + } + } + ] + }, + { + "id": "8f0d06d9-c93b-47ea-8f42-7f86a6eee917", + "name": "(drc-006c) Aanmaken Gebruiksrechten zet EnkelvoudigInformatieObject.indicatieGebruiksrecht op true", + "request": { + "url": { + "host": [ + "{{informatieobject_url}}" + ], + "query": [], + "variable": [] + }, + "method": "GET" + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "e6d44526-ea46-46d5-acbb-5c58a9c6743c", + "type": "text/javascript", + "exec": [ + "pm.test(\"Aanmaken Gebruiksrechten zet EnkelvoudigInformatieObject.indicatieGebruiksrecht op true\", function() {", + " pm.expect(pm.response.json().indicatieGebruiksrecht).to.be.equal(true); ", + "});" + ] + } + } + ] + }, + { + "id": "f95e8b0c-3f83-4955-abab-adcfef511b33", + "name": "Delete Gebruiksrechten", + "request": { + "url": { + "host": [ + "{{gebruiksrechten_url}}" + ], + "query": [], + "variable": [] + }, + "method": "DELETE", + "body": { + "mode": "raw", + "raw": "" + } + }, + "response": [], + "event": [] + }, + { + "id": "394d7c9d-bc56-4d2a-bff3-a9b8441fa79f", + "name": "(drc-006d) Verwijderen Gebruiksrechten zet EnkelvoudigInformatieObject.indicatieGebruiksrecht op null", + "request": { + "url": { + "host": [ + "{{informatieobject_url}}" + ], + "query": [], + "variable": [] + }, + "method": "GET" + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "eb0fcabc-12dd-4bc0-b68c-78c3d965f6a6", + "type": "text/javascript", + "exec": [ + "pm.test(\"Verwijderen Gebruiksrechten zet EnkelvoudigInformatieObject.indicatieGebruiksrecht op null\", function() {", + " pm.expect(pm.response.json().indicatieGebruiksrecht).to.be.equal(null); ", + "});" + ] + } + } + ] + } + ], + "event": [ + { + "listen": "prerequest", + "script": { + "id": "bf19833c-5075-4994-b76e-43540c67ae5a", + "type": "text/javascript", + "exec": [ + "" + ] + } + }, + { + "listen": "test", + "script": { + "id": "780cd24c-784f-4f8e-acc6-b060f12aa67e", + "type": "text/javascript", + "exec": [ + "" + ] + } + } + ] + }, + { + "id": "df6669a9-4773-46af-80e8-12af7291049f", + "name": "drc-007", + "item": [ + { + "id": "cc1dbbee-26f7-45f9-a25b-e90237d763bd", + "name": "(drc-007a) EnkelvoudigInformatieObject aanmaken met expliciet gedefinieerde vertrouwelijkheidaanduiding", + "request": { + "url": { + "path": [ + "enkelvoudiginformatieobjecten" + ], + "host": [ + "{{drc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{{request_body}}" + } + }, + "response": [], + "event": [ + { + "listen": "prerequest", + "script": { + "id": "da9a5689-cbae-4e09-ad69-e50a05a45cc5", + "type": "text/javascript", + "packages": {}, + "exec": [ + "pm.environment.set(\"expliciete_vertrouwelijkheidaanduiding\", \"vertrouwelijk\");", + "", + "var body = JSON.parse(pm.environment.get(\"informatieobject_body\"));", + "body.vertrouwelijkheidaanduiding = pm.environment.get(\"expliciete_vertrouwelijkheidaanduiding\");", + "", + "pm.environment.set(\"request_body\", JSON.stringify(body));" + ] + } + }, + { + "listen": "test", + "script": { + "id": "d4cfdd47-894a-493f-97a6-5435349ab40d", + "type": "text/javascript", + "packages": {}, + "exec": [ + "pm.test(\"EnkelvoudigInformatieObject aanmaken met expliciet gedefinieerde vertrouwelijkheidaanduiding krijgt die waarde toegekend\", function() {", + " pm.expect(pm.response.json().vertrouwelijkheidaanduiding).to.be.equal(pm.environment.get(\"expliciete_vertrouwelijkheidaanduiding\"));", + "});", + "", + "pm.environment.set(\"informatieobject_url\", pm.response.json().url);" + ] + } + } + ] + }, + { + "id": "b6c8f29c-c505-4b4f-a9f8-81ee86090938", + "name": "(drc-007a2) Lock EnkelvoudigInformatieObject", + "request": { + "url": { + "path": [ + "lock" + ], + "host": [ + "{{informatieobject_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{{request_body}}" + } + }, + "response": [], + "event": [ + { + "listen": "prerequest", + "script": { + "id": "b5b0b9dd-979b-4418-aad3-3f5d29745497", + "type": "text/javascript", + "packages": {}, + "exec": [ + "pm.environment.set(\"expliciete_vertrouwelijkheidaanduiding\", \"vertrouwelijk\");", + "", + "var body = JSON.parse(pm.environment.get(\"informatieobject_body\"));", + "body.vertrouwelijkheidaanduiding = pm.environment.get(\"expliciete_vertrouwelijkheidaanduiding\");", + "", + "pm.environment.set(\"request_body\", JSON.stringify(body));" + ] + } + }, + { + "listen": "test", + "script": { + "id": "715f4093-d542-4dae-83cc-4305f80d1b24", + "type": "text/javascript", + "packages": {}, + "exec": [ + "pm.environment.set(\"informatieobject_lock_id\", pm.response.json().lock);" + ] + } + } + ] + }, + { + "id": "916d1de7-5180-4ac6-a1ee-c3428a74adc9", + "name": "(drc-007b) EnkelvoudigInformatieObject bijwerken met expliciet gedefinieerde vertrouwelijkheidaanduiding", + "request": { + "url": { + "host": [ + "{{informatieobject_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "PUT", + "body": { + "mode": "raw", + "raw": "{{request_body}}" + } + }, + "response": [], + "event": [ + { + "listen": "prerequest", + "script": { + "id": "0ea9ed25-af58-4544-8596-033d666ff093", + "type": "text/javascript", + "packages": {}, + "exec": [ + "pm.environment.set(\"expliciete_vertrouwelijkheidaanduiding\", \"vertrouwelijk\");", + "", + "var body = JSON.parse(pm.environment.get(\"informatieobject_body\"));", + "body.vertrouwelijkheidaanduiding = pm.environment.get(\"expliciete_vertrouwelijkheidaanduiding\");", + "body.lock = pm.environment.get(\"informatieobject_lock_id\");", + "body.url = pm.environment.get(\"informatieobject_url\");", + "", + "pm.environment.set(\"request_body\", JSON.stringify(body));" + ] + } + }, + { + "listen": "test", + "script": { + "id": "6331af92-1b55-4eed-a97a-f230c0b3022a", + "type": "text/javascript", + "packages": {}, + "exec": [ + "pm.test(\"EnkelvoudigInformatieObject aanmaken met expliciet gedefinieerde vertrouwelijkheidaanduiding krijgt die waarde toegekend\", function() {", + " pm.expect(pm.response.json().vertrouwelijkheidaanduiding).to.be.equal(pm.environment.get(\"expliciete_vertrouwelijkheidaanduiding\"));", + "});" + ] + } + } + ] + }, + { + "id": "2a715888-58a3-4328-8527-27be32766d19", + "name": "(drc-007c) EnkelvoudigInformatieObject deels bijwerken met expliciet gedefinieerde vertrouwelijkheidaanduiding", + "request": { + "url": { + "host": [ + "{{informatieobject_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "PATCH", + "body": { + "mode": "raw", + "raw": "{\n\t\"vertrouwelijkheidaanduiding\": \"{{expliciete_vertrouwelijkheidaanduiding}}\",\n\t\"lock\": \"{{informatieobject_lock_id}}\"\n}" + } + }, + "response": [], + "event": [ + { + "listen": "prerequest", + "script": { + "id": "662b208c-8705-4b89-9281-404389196dcd", + "type": "text/javascript", + "packages": {}, + "exec": [ + "pm.environment.set(\"expliciete_vertrouwelijkheidaanduiding\", \"zeer_geheim\");" + ] + } + }, + { + "listen": "test", + "script": { + "id": "50ff3712-e03d-440c-9e22-46dba83b8425", + "type": "text/javascript", + "packages": {}, + "exec": [ + "pm.test(\"EnkelvoudigInformatieObject aanmaken met expliciet gedefinieerde vertrouwelijkheidaanduiding krijgt die waarde toegekend\", function() {", + " pm.expect(pm.response.json().vertrouwelijkheidaanduiding).to.be.equal(pm.environment.get(\"expliciete_vertrouwelijkheidaanduiding\"));", + "});", + "", + "" + ] + } + } + ] + }, + { + "id": "3fbc52b7-b530-43cf-86cc-5fe360760be9", + "name": "Retrieve Informatieobjecttype vertrouwelijkheidaanduiding", + "request": { + "url": { + "host": [ + "{{informatieobjecttype_url}}" + ], + "query": [], + "variable": [] + }, + "method": "GET" + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "5134fa28-350e-4e1b-83a9-d8e912ef7781", + "type": "text/javascript", + "exec": [ + "pm.environment.set(\"informatieobjecttype_vertrouwelijkheidaanduiding\", pm.response.json().vertrouwelijkheidaanduiding);" + ] + } + } + ] + }, + { + "id": "9b0bd9cf-ba12-4117-b8b5-00dd0a48d7b0", + "name": "(drc-007b) EnkelvoudigInformatieObject aanmaken leidt vertrouwelijkheidaanduiding af uit Informatieobjecttype", + "request": { + "url": { + "path": [ + "enkelvoudiginformatieobjecten" + ], + "host": [ + "{{drc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{{request_body}}" + } + }, + "response": [], + "event": [ + { + "listen": "prerequest", + "script": { + "id": "2c3ea24c-42c2-469c-bef8-1ea233678036", + "type": "text/javascript", + "packages": {}, + "exec": [ + "var body = JSON.parse(pm.environment.get(\"informatieobject_body\"));", + "delete body.vertrouwelijkheidaanduiding;", + "", + "pm.environment.set(\"request_body\", JSON.stringify(body));" + ] + } + }, + { + "listen": "test", + "script": { + "id": "2e1008fe-da13-49ae-a454-358395076145", + "type": "text/javascript", + "packages": {}, + "exec": [ + "pm.test(\"EnkelvoudigInformatieObject aanmaken zonder expliciet gedefinieerde vertrouwelijkheidaanduiding leidt vertrouwelijkheidaanduiding af uit Informatieobjecttype\", function() {", + " pm.expect(pm.response.json().vertrouwelijkheidaanduiding).to.be.equal(pm.environment.get(\"informatieobjecttype_vertrouwelijkheidaanduiding\"));", + "});", + "", + "" + ] + } + } + ] + } + ], + "event": [] + }, + { + "id": "a5492f3b-d02c-46b0-a3ac-a37296ed33c1", + "name": "drc-008", + "item": [ + { + "id": "c494b906-0261-418d-894d-ae5e905b9ca3", + "name": "(drc-008-a00) EnkelvoudigInformatieObject aanmaken", + "request": { + "url": { + "path": [ + "enkelvoudiginformatieobjecten" + ], + "host": [ + "{{drc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\r\n\t\"bronorganisatie\": \"000000000\",\r\n\t\"creatiedatum\": \"2019-01-01\",\r\n\t\"titel\": \"testobject\",\r\n\t\"auteur\": \"testauteur\",\r\n\t\"taal\": \"eng\",\r\n\t\"inhoud\": \"c3RyaW5n\",\r\n\t\"informatieobjecttype\": \"{{informatieobjecttype_url}}\",\r\n \"bestandsnaam\": \"iets.pdf\",\r\n\t\"bestandsomvang\": 6\r\n}" + } + }, + "response": [], + "event": [ + { + "listen": "prerequest", + "script": { + "id": "15aad367-2982-44dd-afae-2c8de4d297b4", + "type": "text/javascript", + "packages": {}, + "exec": [ + "" + ] + } + }, + { + "listen": "test", + "script": { + "id": "3578a14b-50bb-4ca2-b5e7-6059e4e42532", + "type": "text/javascript", + "packages": {}, + "exec": [ + "", + "", + "if (pm.response.code==201){", + " pm.environment.set(\"informatieobject_008\", pm.response.json().url);", + "}" + ] + } + } + ] + }, + { + "id": "54187c6d-3bb2-4de3-8b37-9bad27187907", + "name": "(drc-008-a00) ObjectInformatieObject aanmaken", + "request": { + "url": { + "path": [ + "zaakinformatieobjecten" + ], + "host": [ + "{{zrc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n\t\"informatieobject\": \"{{informatieobject_008}}\",\n\t\"zaak\": \"{{zaak_url}}\",\n\t\"objectType\": \"zaak\"\n}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "39f10b08-a6e4-46dc-9cc3-20bfe10208e6", + "type": "text/javascript", + "packages": {}, + "exec": [ + "" + ] + } + } + ] + }, + { + "id": "83e02d3c-3d19-48a6-b453-5f011ee9881d", + "name": "(drc-008a) EnkelvoudigInformatieObject verwijderen terwijl er ObjectInformatieObjecten aan gekoppeld zijn is niet toegestaan", + "request": { + "url": { + "host": [ + "{{informatieobject_008}}" + ], + "query": [], + "variable": [] + }, + "method": "DELETE", + "body": { + "mode": "raw", + "raw": "" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "f680e01a-9b63-4a69-96eb-5dae04f481d9", + "type": "text/javascript", + "packages": {}, + "exec": [ + "pm.test(\"EnkelvoudigInformatieObject verwijderen terwijl er ObjectInformatieObjecten aan gekoppeld zijn is niet toegestaan\", function() {", + " pm.response.to.have.status(400);", + " ", + " var error = pm.response.json()[\"invalidParams\"][0];", + " pm.expect(error.name).to.be.equal(\"nonFieldErrors\");", + " pm.expect(error.code).to.be.equal(\"pending-relations\");", + "});", + "", + "" + ] + } + } + ] + }, + { + "id": "3bf36608-3d07-4c8d-b710-ecd8cb6566db", + "name": "(drc-008-a00) EnkelvoudigInformatieObject nog eens aanmaken", + "request": { + "url": { + "path": [ + "enkelvoudiginformatieobjecten" + ], + "host": [ + "{{drc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\r\n\t\"bronorganisatie\": \"000000000\",\r\n\t\"creatiedatum\": \"2019-01-01\",\r\n\t\"titel\": \"testobject\",\r\n\t\"auteur\": \"testauteur\",\r\n\t\"taal\": \"eng\",\r\n\t\"inhoud\": \"c3RyaW5n\",\r\n\t\"informatieobjecttype\": \"{{informatieobjecttype_url}}\",\r\n \"bestandsnaam\": \"iets.pdf\",\r\n\t\"bestandsomvang\": 6\r\n}" + } + }, + "response": [], + "event": [ + { + "listen": "prerequest", + "script": { + "id": "ae0d8e75-fc1b-47be-b92a-e0c9463b3066", + "type": "text/javascript", + "packages": {}, + "exec": [ + "" + ] + } + }, + { + "listen": "test", + "script": { + "id": "8d6cfc9e-a746-4f6f-a774-da6aabfabd2e", + "type": "text/javascript", + "packages": {}, + "exec": [ + "", + "if (pm.response.code==201){", + " pm.environment.set(\"informatieobject_008\", pm.response.json().url);", + "}" + ] + } + } + ] + }, + { + "id": "4409d538-a3d0-46b0-aec1-b2f312ba1a4f", + "name": "(drc-008a) EIO verwijderen nu wel toegestaan", + "request": { + "url": { + "host": [ + "{{informatieobject_008}}" + ], + "query": [], + "variable": [] + }, + "method": "DELETE", + "body": { + "mode": "raw", + "raw": "" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "ccb98864-4d5a-434c-a850-6c19b0f7d91b", + "type": "text/javascript", + "packages": {}, + "exec": [ + "pm.test(\"EIO verwijderen toegestaan\", function() {", + " pm.response.to.have.status(204);", + " ", + "", + "});", + "", + "" + ] + } + } + ] + }, + { + "id": "96865106-70ae-4490-a7f4-903ec7669f2a", + "name": "(drc-008b) EnkelvoudigInformatieObject verwijderen cascade door naar gerelateerde Gebruiksrechten", + "request": { + "url": { + "path": [ + "gebruiksrechten" + ], + "host": [ + "{{drc_url}}" + ], + "query": [ + { + "key": "informatieobject", + "value": "{{encoded_url}}" + } + ], + "variable": [] + }, + "method": "GET" + }, + "response": [], + "event": [ + { + "listen": "prerequest", + "script": { + "id": "bca69a28-46ae-41be-a062-dbbfa9550254", + "type": "text/javascript", + "packages": {}, + "exec": [ + "pm.environment.set(\"encoded_url\", encodeURIComponent(pm.environment.get(\"informatieobject_008\")))" + ] + } + }, + { + "listen": "test", + "script": { + "id": "e578bcbb-aacc-4ac1-bc2d-0825f22834b6", + "type": "text/javascript", + "packages": {}, + "exec": [ + "pm.test(\"EnkelvoudigInformatieObject verwijderen verwijdert ook alle gerelateerde Gebruiksrechten uit het DRC\", function() {", + " var res = pm.response.json();", + " pm.expect(Array.isArray(res));", + " pm.expect(res.length).to.be.equal(0);", + "});", + "", + "" + ] + } + } + ] + }, + { + "id": "e151c0ce-3158-4ac3-8759-500b18e9a26c", + "name": "(drc-008c) EnkelvoudigInformatieObject verwijderen cascade door naar gerelateerde audit trail", + "request": { + "url": { + "path": [ + "audittrail" + ], + "host": [ + "{{informatieobject_008}}" + ], + "query": [], + "variable": [] + }, + "method": "GET" + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "68471328-d923-464d-9fbe-2e33555a44c9", + "type": "text/javascript", + "packages": {}, + "exec": [ + "pm.test(\"EnkelvoudigInformatieObject verwijderen verwijdert ook de gerelateerde audit trail uit het DRC\", function() {", + " pm.response.to.have.status(404);", + "});", + "pm.environment.unset(\"informatieobject_url\");" + ] + } + }, + { + "listen": "prerequest", + "script": { + "id": "c452a52e-de8e-485b-920a-f11d669d68e2", + "type": "text/javascript", + "packages": {}, + "exec": [ + "" + ] + } + } + ] + } + ], + "event": [ + { + "listen": "prerequest", + "script": { + "id": "42878986-9539-43ca-996e-f3452cf5ac4b", + "type": "text/javascript", + "exec": [ + "" + ] + } + }, + { + "listen": "test", + "script": { + "id": "0939b946-95b7-4118-8346-badc44e99cf1", + "type": "text/javascript", + "exec": [ + "" + ] + } + } + ] + }, + { + "id": "23d618b5-c486-4b93-b17e-83995ae7f84b", + "name": "drc-009", + "item": [ + { + "id": "45c8a081-cd05-4683-9548-154065665e4c", + "name": "Create zgw-token client_id_restricted", + "request": { + "url": { + "path": [ + "zaaktypen" + ], + "host": [ + "{{ztc_url}}" + ], + "query": [], + "variable": [] + }, + "method": "GET", + "auth": { + "type": "bearer", + "bearer": [ + { + "type": "string", + "value": "{{jwt_token}}", + "key": "token" + } + ] + } + }, + "response": [], + "event": [ + { + "listen": "prerequest", + "script": { + "id": "391c68ee-97cb-45d5-a5f9-49a2c9fb1c9a", + "type": "text/javascript", + "packages": {}, + "exec": [ + "", + " var secretCurrentOrg = pm.environment.get(\"secret_limited\");", + " var client_idCurrentOrg = pm.environment.get(\"client_id_limited\");", + "\r", + " var tokenuser = pm.environment.get(\"tokenuser\");\r", + " console.info(secretCurrentOrg,\"\",client_idCurrentOrg,\"\",tokenuser) \r", + " \r", + " function base64url(source) {\r", + " // Encode in classical base64\r", + " encodedSource = CryptoJS.enc.Base64.stringify(source);\r", + " \r", + " // Remove padding equal characters\r", + " encodedSource = encodedSource.replace(/=+$/, '');\r", + " \r", + " // Replace characters according to base64url specifications\r", + " encodedSource = encodedSource.replace(/\\+/g, '-');\r", + " encodedSource = encodedSource.replace(/\\//g, '_');\r", + " \r", + " return encodedSource;\r", + " }\r", + " \r", + " function addIAT(request) {\r", + " var iat = Math.floor(Date.now() / 1000) + 257;\r", + " data.iat = iat;\r", + " data.exp = iat + 10000000;\r", + " return data;\r", + " }\r", + " \r", + " var header = {\r", + " \"typ\": \"JWT\",\r", + " \"alg\": \"HS256\"\r", + " };\r", + " \r", + " var data = {\r", + " \"iss\": client_idCurrentOrg,\r", + " \"client_id\": client_idCurrentOrg,\r", + " \"user_id\": tokenuser,\r", + " \"user_representation\": client_idCurrentOrg,\r", + " \"jti\": \"35b9d0e0-8c80-4aef-9c9c-55d6e34eff40\"\r", + " };\r", + " data = addIAT(data);\r", + " \r", + " var secret = secretCurrentOrg;\r", + " \r", + " // encode header\r", + " var stringifiedHeader = CryptoJS.enc.Utf8.parse(JSON.stringify(header));\r", + " var encodedHeader = base64url(stringifiedHeader);\r", + " \r", + " // encode data\r", + " var stringifiedData = CryptoJS.enc.Utf8.parse(JSON.stringify(data));\r", + " var encodedData = base64url(stringifiedData);\r", + " \r", + " // build token\r", + " var token = encodedHeader + \".\" + encodedData;\r", + " \r", + " var signature = CryptoJS.HmacSHA256(token, secret);\r", + " signature = base64url(signature);\r", + " \r", + " var signedToken = token + \".\" + signature;\r", + " \r", + " pm.environment.set(\"jwt-limited\", signedToken);\r", + " pm.environment.set(\"jwt-zrc-006\", signedToken);\r", + "" + ] + } + }, + { + "listen": "test", + "script": { + "id": "9c497dd5-5d3e-40a5-bbc3-bdcf5db212a6", + "type": "text/javascript", + "packages": {}, + "exec": [ + "" + ] + } + } + ] + }, + { + "id": "c1d0044e-5ec2-4d4b-bd67-3660a7853723", + "name": "set restricted token", + "request": { + "url": { + "path": [ + "catalogussen" + ], + "host": [ + "{{ztc_url}}" + ], + "query": [], + "variable": [] + }, + "method": "GET" + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "c9a7dfd3-8313-4de3-b0fe-2ce462f632f6", + "type": "text/javascript", + "packages": {}, + "exec": [ + "" + ] + } + }, + { + "listen": "prerequest", + "script": { + "id": "f8156e3a-7b1f-4c11-b905-94e6f518dd0c", + "type": "text/javascript", + "packages": {}, + "exec": [ + " pm.environment.set(\"jwt_token\", pm.environment.get(\"jwt-limited\"));\r", + " pm.environment.set(\"_original_client_id\", pm.environment.get(\"client_id\"));", + " pm.environment.set(\"_original_secret\", pm.environment.get(\"secret\"));", + " pm.environment.set(\"client_id\", pm.environment.get(\"client_id_limited\"));", + " pm.environment.set(\"secret\", pm.environment.get(\"secret_limited\"));", + " pm.environment.set(\"client_id\", pm.environment.get(\"client_id_limited\"));", + " pm.environment.set(\"secret\", pm.environment.get(\"secret_limited\"));", + " " + ] + } + } + ] + }, + { + "id": "5ac12644-4907-411b-ad58-2ccee30e00c9", + "name": "Create EnkelvoudigInformatieobject for lock tests", + "request": { + "url": { + "path": [ + "enkelvoudiginformatieobjecten" + ], + "host": [ + "{{drc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\r\n\t\"bronorganisatie\": \"000000000\",\r\n\t\"creatiedatum\": \"2019-01-01\",\r\n\t\"titel\": \"testobject\",\r\n\t\"auteur\": \"testauteur\",\r\n\t\"taal\": \"eng\",\r\n\t\"inhoud\": \"{{object_inhoud}}\",\r\n\t\"informatieobjecttype\": \"{{informatieobjecttype_url}}\",\r\n \"bestandsnaam\": \"iets.pdf\",\r\n\t\"bestandsomvang\": 6\r\n}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "bda56026-dbc8-4723-8964-e6101d116476", + "type": "text/javascript", + "packages": {}, + "exec": [ + "pm.environment.set(\"created_informatieobject_url\", pm.response.json().url);" + ] + } + }, + { + "listen": "prerequest", + "script": { + "id": "ddd9234b-5b4d-4206-9ea7-44032c52b9b1", + "type": "text/javascript", + "packages": {}, + "exec": [ + "" + ] + } + } + ] + }, + { + "id": "b90af269-6ff4-4f61-9d44-f5588c4e1789", + "name": "(drc-009a) EnkelvoudigInformatieObject bijwerken terwijl unlocked niet toegestaan", + "request": { + "url": { + "host": [ + "{{created_informatieobject_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "PUT", + "body": { + "mode": "raw", + "raw": "{\r\n\t\"bronorganisatie\": \"000000000\",\r\n\t\"creatiedatum\": \"2019-01-01\",\r\n\t\"titel\": \"testobject\",\r\n\t\"auteur\": \"testauteur\",\r\n\t\"taal\": \"eng\",\r\n\t\"inhoud\": \"{{object_inhoud}}\",\r\n\t\"informatieobjecttype\": \"{{informatieobjecttype_url}}\",\r\n \"bestandsnaam\": \"iets.pdf\",\r\n\t\"bestandsomvang\": 6\r\n}" + } + }, + "response": [], + "event": [ + { + "listen": "prerequest", + "script": { + "id": "25abd44f-d2f3-4867-a06d-a3974f76ca7d", + "type": "text/javascript", + "packages": {}, + "exec": [ + "" + ] + } + }, + { + "listen": "test", + "script": { + "id": "61e5caf8-3ad9-4a37-ac6d-8cf77fe018db", + "type": "text/javascript", + "packages": {}, + "exec": [ + "pm.test(\"EnkelvoudigInformatieObject bijwerken zonder lock geeft 400\", function() {", + " pm.response.to.have.status(400);", + " ", + " var error = pm.response.json().invalidParams[0];", + "", + "});" + ] + } + } + ] + }, + { + "id": "22bbda8c-7c39-478f-b768-596fd163bfda", + "name": "(drc-009b) EnkelvoudigInformatieObject deels bijwerken terwijl unlocked niet toegestaan", + "request": { + "url": { + "host": [ + "{{created_informatieobject_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "PATCH", + "body": { + "mode": "raw", + "raw": "{\n\t\"auteur\": \"{{aangepaste_auteur}}\"\n}" + } + }, + "response": [], + "event": [ + { + "listen": "prerequest", + "script": { + "id": "f36e38e5-8dba-4ff4-88f6-af26de0a09f8", + "type": "text/javascript", + "packages": {}, + "exec": [ + "" + ] + } + }, + { + "listen": "test", + "script": { + "id": "99172844-8f2d-4f9a-8ef9-186a51b4964e", + "type": "text/javascript", + "packages": {}, + "exec": [ + "pm.test(\"EnkelvoudigInformatieObject deels bijwerken zonder lock geeft 400\", function() {", + " pm.response.to.have.status(400);", + " ", + " var error = pm.response.json().invalidParams[0];", + "", + "", + "});" + ] + } + } + ] + }, + { + "id": "ce337d40-b616-49b6-90c4-6f63f6b0404c", + "name": "(drc-009c) EnkelvoudigInformatieObject locken geeft een lockId terug", + "request": { + "url": { + "path": [ + "lock" + ], + "host": [ + "{{created_informatieobject_url}}" + ], + "query": [], + "variable": [] + }, + "method": "POST", + "body": { + "mode": "raw", + "raw": "" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "6fb7817d-7863-447e-b84b-7e6230fc18f3", + "type": "text/javascript", + "packages": {}, + "exec": [ + "pm.test(\"EnkelvoudigInformatieObject locken geeft een lockId terug\", function() {", + " pm.response.to.have.status(200);", + " ", + " var lock = pm.response.json().lock;", + " ", + " // Check if returned lock is valid hexadecimal", + " var regex = /[0-9A-Fa-f]{6}/g;", + " pm.expect(regex.test(lock)).to.be.true;", + " pm.environment.set(\"informatieobject_lock_id\", lock);", + "});" + ] + } + } + ] + }, + { + "id": "a21fcaae-d9c2-444a-b5d0-668a4b2fcfe5", + "name": "(drc-009d) EnkelvoudigInformatieObject bijwerken zonder lock niet toegestaan", + "request": { + "url": { + "host": [ + "{{created_informatieobject_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "PUT", + "body": { + "mode": "raw", + "raw": "{\r\n\t\"bronorganisatie\": \"000000000\",\r\n\t\"creatiedatum\": \"2019-01-01\",\r\n\t\"titel\": \"testobject\",\r\n\t\"auteur\": \"testauteur\",\r\n\t\"taal\": \"eng\",\r\n\t\"inhoud\": \"{{object_inhoud}}\",\r\n\t\"informatieobjecttype\": \"{{informatieobjecttype_url}}\",\r\n \"bestandsnaam\": \"iets.pdf\",\r\n\t\"bestandsomvang\": 6\r\n}" + } + }, + "response": [], + "event": [ + { + "listen": "prerequest", + "script": { + "id": "5c008fcf-869c-4ecc-9953-738394b0398d", + "type": "text/javascript", + "packages": {}, + "exec": [ + "" + ] + } + }, + { + "listen": "test", + "script": { + "id": "c9e7367b-345d-436f-b05e-8a87894adb78", + "type": "text/javascript", + "packages": {}, + "exec": [ + "pm.test(\"EnkelvoudigInformatieObject bijwerken zonder lock geeft 400\", function() {", + " pm.response.to.have.status(400);", + " ", + " var error = pm.response.json().invalidParams[0];", + " pm.expect(error.name).to.be.equal(\"lock\");", + " pm.expect(error.code).to.be.equal(\"required\");", + "});" + ] + } + } + ] + }, + { + "id": "ea2f973e-cc4e-4754-9da1-0f396484bd6f", + "name": "(drc-009e) EnkelvoudigInformatieObject deels bijwerken zonder lock niet toegestaan", + "request": { + "url": { + "host": [ + "{{created_informatieobject_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "PATCH", + "body": { + "mode": "raw", + "raw": "{\n\t\"titel\": \"aangepaste_titel\"\n}" + } + }, + "response": [], + "event": [ + { + "listen": "prerequest", + "script": { + "id": "dea8142c-449e-4126-b875-98d602fa7c98", + "type": "text/javascript", + "packages": {}, + "exec": [ + "" + ] + } + }, + { + "listen": "test", + "script": { + "id": "9e68921c-d135-491b-aeb5-829e2cd902f9", + "type": "text/javascript", + "packages": {}, + "exec": [ + "pm.test(\"EnkelvoudigInformatieObject deels bijwerken zonder lock geeft 400\", function() {", + " pm.response.to.have.status(400);", + " ", + " var error = pm.response.json().invalidParams[0];", + " pm.expect(error.name).to.be.equal(\"nonFieldErrors\");", + " pm.expect(error.code).to.be.equal(\"missing-lock-id\");", + "});" + ] + } + } + ] + }, + { + "id": "f99c0cfb-4f8b-4883-9790-5aaa210b007e", + "name": "(drc-009f) EnkelvoudigInformatieObject bijwerken is mogelijk na lock", + "request": { + "url": { + "host": [ + "{{created_informatieobject_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "PUT", + "body": { + "mode": "raw", + "raw": "{\r\n\t\"bronorganisatie\": \"000000000\",\r\n\t\"creatiedatum\": \"2019-01-01\",\r\n\t\"titel\": \"aangepaste_titel\",\r\n\t\"auteur\": \"testauteur\",\r\n\t\"taal\": \"eng\",\r\n\t\"inhoud\": \"{{object_inhoud}}\",\r\n\t\"informatieobjecttype\": \"{{informatieobjecttype_url}}\",\r\n \"bestandsnaam\": \"iets.pdf\",\r\n\t\"bestandsomvang\": 6,\r\n \"lock\": \"{{informatieobject_lock_id}}\"\r\n}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "7ea4619c-77ce-4433-8ad5-f8cc2e3d8100", + "type": "text/javascript", + "packages": {}, + "exec": [ + "pm.test(\"EnkelvoudigInformatieObject bijwerken met valide gegevens geeft 200\", function() {", + " pm.response.to.have.status(200);", + "});", + "", + "pm.test(\"EnkelvoudigInformatieObject bijwerken past gegevens correct aan\", function() {", + " pm.expect(pm.response.json().titel).to.be.equal(\"aangepaste_titel\");", + "});" + ] + } + }, + { + "listen": "prerequest", + "script": { + "id": "44926e0e-a815-4bfb-9803-b49de24335b3", + "type": "text/javascript", + "packages": {}, + "exec": [ + "" + ] + } + } + ] + }, + { + "id": "0245a327-7f05-4c12-89ae-041ce3c90e35", + "name": "(drc-009g) EnkelvoudigInformatieObject deels bijwerken is mogelijk na lock", + "request": { + "url": { + "host": [ + "{{created_informatieobject_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "PATCH", + "body": { + "mode": "raw", + "raw": "{\n\t\"auteur\": \"{{aangepaste_auteur}}\",\n\t\"lock\": \"{{informatieobject_lock_id}}\"\n}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "31315f14-8ad9-49c5-afc8-4e5870e168ed", + "type": "text/javascript", + "packages": {}, + "exec": [ + "pm.test(\"EnkelvoudigInformatieObject deels bijwerken met valide gegevens geeft 200\", function() {", + " pm.response.to.have.status(200);", + "});", + "", + "pm.test(\"EnkelvoudigInformatieObject deels bijwerken past gegevens correct aan\", function() {", + " pm.expect(pm.response.json().auteur).to.be.equal(pm.environment.get(\"aangepaste_auteur\"));", + "});" + ] + } + }, + { + "listen": "prerequest", + "script": { + "id": "cd603ba1-c71d-4d28-b4ec-9c0cbc220ba4", + "type": "text/javascript", + "packages": {}, + "exec": [ + "pm.environment.set(\"aangepaste_auteur\", \"aangepaste auteur\");" + ] + } + } + ] + }, + { + "id": "81b5f1b4-4c0d-4ae1-95d3-5e24b0209208", + "name": "(drc-009h) EnkelvoudigInformatieObject bijwerken met verkeerd lockId niet toegestaan", + "request": { + "url": { + "host": [ + "{{created_informatieobject_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "PUT", + "body": { + "mode": "raw", + "raw": "{\r\n\t\"bronorganisatie\": \"000000000\",\r\n\t\"creatiedatum\": \"2019-01-01\",\r\n\t\"titel\": \"testobject\",\r\n\t\"auteur\": \"testauteur\",\r\n\t\"taal\": \"eng\",\r\n\t\"inhoud\": \"{{object_inhoud}}\",\r\n\t\"informatieobjecttype\": \"{{informatieobjecttype_url}}\",\r\n \"bestandsnaam\": \"iets.pdf\",\r\n\t\"bestandsomvang\": 6,\r\n \t\"lock\": \"{{informatieobject_lock_id}}abc\"\r\n}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "25467861-94f9-4376-8e00-ce4a019b6565", + "type": "text/javascript", + "packages": {}, + "exec": [ + "pm.test(\"EnkelvoudigInformatieObject bijwerken met verkeerd lockId geeft 400\", function() {", + " pm.response.to.have.status(400);", + " ", + " var error = pm.response.json().invalidParams[0];", + " pm.expect(error.name).to.be.equal(\"nonFieldErrors\");", + " pm.expect(error.code).to.be.equal(\"incorrect-lock-id\");", + "});" + ] + } + }, + { + "listen": "prerequest", + "script": { + "id": "a5d59d97-d58f-4225-9dfe-c5913348a35f", + "type": "text/javascript", + "packages": {}, + "exec": [ + "" + ] + } + } + ] + }, + { + "id": "93a06263-2889-4240-9b4c-5d71cc46ce3a", + "name": "(drc-009i) EnkelvoudigInformatieObject deels bijwerken met verkeerd lockId niet toegestaan", + "request": { + "url": { + "host": [ + "{{created_informatieobject_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "PATCH", + "body": { + "mode": "raw", + "raw": "{\n\t\"auteur\": \"{{aangepaste_auteur}}\",\n\t\"lock\": \"some_incorrect_lock_id\"\n}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "7a45a5fb-c64c-4554-aa3e-0979f45c3a0a", + "type": "text/javascript", + "packages": {}, + "exec": [ + "pm.test(\"EnkelvoudigInformatieObject bijwerken met verkeerd lockId geeft 400\", function() {", + " pm.response.to.have.status(400);", + " ", + " var error = pm.response.json().invalidParams[0];", + " pm.expect(error.name).to.be.equal(\"nonFieldErrors\");", + " pm.expect(error.code).to.be.equal(\"incorrect-lock-id\");", + "});" + ] + } + }, + { + "listen": "prerequest", + "script": { + "id": "7c533ac6-1c28-4f7c-9b07-8a4cca44d74e", + "type": "text/javascript", + "packages": {}, + "exec": [ + "" + ] + } + } + ] + }, + { + "id": "213f0e87-e52b-41dc-bc60-3d02708749e3", + "name": "(drc-009j) EnkelvoudigInformatieObject geforceerd unlocken zonder applicatie is onmogelijk", + "request": { + "url": { + "path": [ + "unlock" + ], + "host": [ + "{{created_informatieobject_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "a5ce54c7-fbfe-4d40-89f1-ef4db4ccfb88", + "type": "text/javascript", + "packages": {}, + "exec": [ + "pm.test(\"EnkelvoudigInformatieObject geforceerd unlocken zonder applicatie met juiste scope geeft 400\", function() {", + " pm.response.to.have.status(400);", + "});" + ] + } + } + ] + }, + { + "id": "bcaa1889-1354-45e6-a38f-357f7d22d360", + "name": "set full access token", + "request": { + "url": { + "path": [ + "catalogussen" + ], + "host": [ + "{{ztc_url}}" + ], + "query": [], + "variable": [] + }, + "method": "GET" + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "6770f5b0-1c5f-4227-a641-1e801aca9c2b", + "type": "text/javascript", + "packages": {}, + "exec": [ + "" + ] + } + }, + { + "listen": "prerequest", + "script": { + "id": "9386c461-25a7-421b-813c-fb5c5d080707", + "type": "text/javascript", + "packages": {}, + "exec": [ + " pm.environment.set(\"jwt_token\", pm.environment.get(\"jwt_full\"));\r", + " var origId = pm.environment.get(\"_original_client_id\");", + " var origSecret = pm.environment.get(\"_original_secret\");", + " if (origId) { pm.environment.set(\"client_id\", origId); }", + " if (origSecret) { pm.environment.set(\"secret\", origSecret); }", + " pm.environment.set(\"secret\", pm.environment.get(\"secret\") || \"procest-admin-secret-key-for-testing\");", + " " + ] + } + } + ] + }, + { + "id": "c2c0d151-3eca-4d78-a0f6-e2dc3076d253", + "name": "(drc-009k) EnkelvoudigInformatieObject geforceerd unlocken is mogelijk", + "request": { + "url": { + "path": [ + "unlock" + ], + "host": [ + "{{created_informatieobject_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "a8afb840-d281-4bf6-997c-fb3beac36087", + "type": "text/javascript", + "packages": {}, + "exec": [ + "pm.test(\"EnkelvoudigInformatieObject geforceerd unlocken geeft 204\", function() {", + " pm.response.to.have.status(204);", + "});", + "", + "" + ] + } + } + ] + }, + { + "id": "b4e3fce5-f7ad-4d1f-bd5a-27d06876a0c5", + "name": "set full access token", + "request": { + "url": { + "path": [ + "catalogussen" + ], + "host": [ + "{{ztc_url}}" + ], + "query": [], + "variable": [] + }, + "method": "GET" + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "6c80ab45-76f3-4156-aaa0-77715d576a63", + "type": "text/javascript", + "packages": {}, + "exec": [ + "" + ] + } + }, + { + "listen": "prerequest", + "script": { + "id": "8387d23e-7854-47e6-a600-14b05cde44e1", + "type": "text/javascript", + "packages": {}, + "exec": [ + " pm.environment.set(\"jwt_token\", pm.environment.get(\"jwt_full\"));\r", + " var origId = pm.environment.get(\"_original_client_id\");", + " var origSecret = pm.environment.get(\"_original_secret\");", + " if (origId) { pm.environment.set(\"client_id\", origId); }", + " if (origSecret) { pm.environment.set(\"secret\", origSecret); }", + " pm.environment.set(\"secret\", pm.environment.get(\"secret\") || \"procest-admin-secret-key-for-testing\");", + " " + ] + } + } + ] + } + ], + "event": [ + { + "listen": "prerequest", + "script": { + "id": "74a5e99d-d03b-4b43-8d28-a53bce0b1a46", + "type": "text/javascript", + "exec": [ + "" + ] + } + }, + { + "listen": "test", + "script": { + "id": "601d01e4-a94f-4c26-bdc0-392dee4a97d1", + "type": "text/javascript", + "exec": [ + "" + ] + } + } + ] + } + ], + "event": [ + { + "listen": "prerequest", + "script": { + "id": "e0444383-e8d6-497a-ac70-e3271c6b936f", + "type": "text/javascript", + "exec": [ + "" + ] + } + }, + { + "listen": "test", + "script": { + "id": "9e274061-dbed-4b31-b678-65c4b8da33c1", + "type": "text/javascript", + "exec": [ + "" + ] + } + } + ] + }, + { + "id": "989fe6ff-43c2-41a6-ab1b-690d34c64b2c", + "name": "brc", + "description": { + "content": "Bevat alle business logic tests voor het Besluitregistratiecomponent (BRC)", + "type": "text/plain" + }, + "item": [ + { + "id": "4349adbe-c851-4bc7-88c3-d5cbb2fe5adc", + "name": "setUp", + "item": [ + { + "id": "6a428f51-3ae6-4726-8201-3dd4d2ff859b", + "name": "IOT", + "request": { + "url": { + "path": [ + "informatieobjecttypen" + ], + "host": [ + "{{ztc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n\t\"catalogus\": \"{{catalogus_url}}\",\n\t\"omschrijving\": \"{{informatieobject_omschrijving}}\",\n\t\"vertrouwelijkheidaanduiding\": \"openbaar\",\n\t\"beginGeldigheid\": \"2019-01-01\",\n\t\"informatieobjectcategorie\": \"document\"\n}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "bba5fa94-d408-490b-b25a-750f60a9f076", + "type": "text/javascript", + "packages": {}, + "exec": [ + "if(pm.response.code == 201) {\r", + " pm.environment.set(\"informatieobjecttype_url\", pm.response.json().url);\r", + "}" + ] + } + }, + { + "listen": "prerequest", + "script": { + "id": "8572f370-b890-46b6-b971-813225b8c4e1", + "type": "text/javascript", + "packages": {}, + "exec": [ + "var uuid = require('uuid');\r", + "var myUUID = uuid.v4(); \r", + "pm.environment.set(\"informatieobject_omschrijving\", myUUID);" + ] + } + } + ] + }, + { + "id": "880023fa-4d29-46df-a945-dbc1ba178a9e", + "name": "Create concept Besluittype Copy", + "request": { + "url": { + "path": [ + "besluittypen" + ], + "host": [ + "{{ztc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n \"catalogus\": \"{{catalogus_url}}\",\n \"omschrijving\": \"{{random_omschrijving}}\",\n \"zaaktypen\": [],\n\t\"publicatieIndicatie\": false,\n\t\"informatieobjecttypen\": [\"{{informatieobject_omschrijving}}\"],\n\t\"beginGeldigheid\": \"2019-01-01\"\n}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "cf33c3d9-b995-43a9-a5c1-4eeeb2f475fc", + "type": "text/javascript", + "packages": {}, + "exec": [ + "pm.environment.set(\"besluittype_omschrijving\", pm.response.json().omschrijving);\r", + "pm.environment.set(\"besluittype_url\", pm.response.json().url);" + ] + } + }, + { + "listen": "prerequest", + "script": { + "id": "f2e3241a-d674-408e-ae9a-5ec2c11159a9", + "type": "text/javascript", + "packages": {}, + "exec": [ + "var uuid = require('uuid');\r", + "var myUUID = uuid.v4(); \r", + "pm.environment.set(\"random_omschrijving\",myUUID);" + ] + } + } + ] + }, + { + "id": "244cef87-9706-41a9-8042-091fabb2a432", + "name": "Create Zaaktype Copy 2", + "request": { + "url": { + "path": [ + "zaaktypen" + ], + "host": [ + "{{ztc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n\t\"identificatie\": \"{{random_identificatie}}\",\n \"omschrijving\": \"zrc_tests_1\",\n \"vertrouwelijkheidaanduiding\": \"openbaar\",\n \"doel\": \"test doel\",\n \"verantwoordelijke\":\"X\",\n \"aanleiding\": \"test aanleiding\",\n \"indicatieInternOfExtern\": \"extern\",\n \"handelingInitiator\": \"indienen\",\n \"onderwerp\": \"openbare ruimte\",\n \"handelingBehandelaar\": \"behandelen\",\n \"doorlooptijd\": \"P10D\",\n \"opschortingEnAanhoudingMogelijk\": false,\n \"verlengingMogelijk\": true,\n \"publicatieIndicatie\": false,\n \"productenOfDiensten\": [\n \"https://ref.tst.vng.cloud/standaard/\"\n ],\n \"selectielijstProcestype\": \"{{procestype_procestermijn_nihil_url}}\",\n \"referentieproces\": {\n \"naam\": \"test\",\n \"link\": \"\"\n },\n \"deelzaaktypen\": [\n \"{{deelzaaktype_identificatie}}\"\n ],\n \"catalogus\": \"{{catalogus_url}}\",\n \"statustypen\": [\n \n ],\n \"resultaattypen\": [\n ],\n \"eigenschappen\": [\n ],\n \"informatieobjecttypen\": [],\n \"besluittypen\": [\n \"{{besluit_omschrijving}}\"\n ],\n \"gerelateerdeZaaktypen\": [],\n \"beginGeldigheid\": \"2019-01-01\",\n \"versiedatum\": \"2019-01-01\",\n \"concept\": true,\n \"verlengingstermijn\": \"P5D\"\n}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "8e7be810-c19c-4257-810a-3389184aae8d", + "type": "text/javascript", + "packages": {}, + "exec": [ + "if(pm.response.code == 201) {", + " var res = pm.response.json();", + "pm.environment.set(\"zaaktype_url\", res.url);", + "pm.environment.set(\"zaaktype_identificatie\", res.identificatie);", + "", + "}" + ] + } + }, + { + "listen": "prerequest", + "script": { + "id": "2062525a-0542-4b3c-a2fc-3634be324531", + "type": "text/javascript", + "packages": {}, + "exec": [ + "var uuid = require('uuid');", + "var myUUID = uuid.v4(); ", + "pm.environment.set(\"random_identificatie\", myUUID);", + "" + ] + } + } + ] + }, + { + "id": "07aa6bbf-5a3f-4a4b-8678-2a2fb3251134", + "name": "Publish Besluittype", + "request": { + "url": { + "path": [ + "publish" + ], + "host": [ + "{{besluittype_url}}" + ], + "query": [], + "variable": [] + }, + "method": "POST" + }, + "response": [], + "event": [] + }, + { + "id": "f70a83cd-b9ed-41c5-8516-73c92eaa6c04", + "name": "Publish Informatieobjecttype", + "request": { + "url": { + "path": [ + "publish" + ], + "host": [ + "{{informatieobjecttype_url}}" + ], + "query": [], + "variable": [] + }, + "method": "POST" + }, + "response": [], + "event": [] + }, + { + "id": "55976e6e-deaa-4017-bc86-9f1a505a263e", + "name": "Publish Zaaktype", + "request": { + "url": { + "path": [ + "publish" + ], + "host": [ + "{{zaaktype_url}}" + ], + "query": [], + "variable": [] + }, + "method": "POST" + }, + "response": [], + "event": [] + }, + { + "id": "c6da72a4-c28e-457f-9a9c-a5a48bb44215", + "name": "(BRC) Create EnkelvoudigInformatieObject", + "request": { + "url": { + "path": [ + "enkelvoudiginformatieobjecten" + ], + "host": [ + "{{drc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n\t\"bronorganisatie\": \"000000000\",\n\t\"creatiedatum\": \"2019-01-01\",\n\t\"titel\": \"testobject\",\n\t\"auteur\": \"testauteur\",\n\t\"taal\": \"eng\",\n\t\"inhoud\": \"{{object_inhoud}}\",\n\t\"informatieobjecttype\": \"{{informatieobjecttype_url}}\",\n \"bestandsnaam\": \"iets.pdf\",\n\t\"bestandsomvang\": 6\n}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "763580eb-608a-47e9-9b1b-074ada4cc794", + "type": "text/javascript", + "packages": {}, + "exec": [ + "pm.environment.set(\"informatieobject_url\", pm.response.json().url);" + ] + } + }, + { + "listen": "prerequest", + "script": { + "id": "80de0e02-7cca-4af7-900e-af9cd0b92f7f", + "type": "text/javascript", + "packages": {}, + "exec": [ + "pm.environment.set(\"object_inhoud\", btoa(\"string\"))" + ] + } + } + ] + }, + { + "id": "6e8cd3fe-0907-48d7-bece-864b5d2df946", + "name": "Add Gebruiksrechten to EnkelvoudigInformatieObject", + "request": { + "url": { + "path": [ + "gebruiksrechten" + ], + "host": [ + "{{drc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n\t\"informatieobject\": \"{{informatieobject_url}}\",\n\t\"startdatum\": \"2019-01-01T12:00:00\",\n\t\"omschrijvingVoorwaarden\": \"test\"\n}" + } + }, + "response": [], + "event": [] + }, + { + "id": "a94bdd8e-fe02-4546-956f-da698a42ec2c", + "name": "Create EnkelvoudigInformatieObject with indicatieGebruiksrecht null", + "request": { + "url": { + "path": [ + "enkelvoudiginformatieobjecten" + ], + "host": [ + "{{drc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n\t\"bronorganisatie\": \"000000000\",\n\t\"creatiedatum\": \"2019-01-01\",\n\t\"titel\": \"testobject\",\n\t\"auteur\": \"testauteur\",\n\t\"taal\": \"eng\",\n\t\"inhoud\": \"{{object_inhoud}}\",\n\t\"informatieobjecttype\": \"{{informatieobjecttype_url}}\",\n\t\"indicatieGebruiksrecht\": null,\n\t\"bestandsomvang\": 6\n}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "7af1c6a0-df25-4f0f-a74f-ff80977702e9", + "type": "text/javascript", + "exec": [ + "pm.environment.set(\"informatieobject_gebruiksrecht_null_url\", pm.response.json().url);" + ] + } + }, + { + "listen": "prerequest", + "script": { + "id": "6f1f82f0-16ef-4e4c-947d-7841784d6585", + "type": "text/javascript", + "exec": [ + "pm.environment.set(\"object_inhoud\", btoa(\"string\"))" + ] + } + } + ] + } + ], + "event": [] + }, + { + "id": "b4fb9041-98b3-46be-8db5-06b4a7abf2cd", + "name": "brc-001", + "item": [ + { + "id": "58963857-89ea-44d3-a348-abf65f61ff4c", + "name": "(brc-001a) Besluit aanmaken is mogelijk", + "request": { + "url": { + "path": [ + "besluiten" + ], + "host": [ + "{{brc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n \"verantwoordelijkeOrganisatie\": \"000000000\",\n \"besluittype\": \"{{besluittype_url}}\",\n \"datum\": \"2019-01-01\",\n \"ingangsdatum\": \"2018-01-01\"\n}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "7624b9be-3635-4360-a8eb-e5417c96f5b9", + "type": "text/javascript", + "exec": [ + "pm.test(\"Zaak aanmaken met valide gegevens geeft 201\", function() {", + " pm.response.to.have.status(201);", + "});", + "", + "var besluit = pm.response.json();", + "pm.environment.set(\"besluit_url\", besluit.url);", + "pm.environment.set(\"besluit_id\", besluit.identificatie);", + "pm.environment.set(\"besluit_verantwoordelijke_organisatie\", besluit.verantwoordelijkeOrganisatie);", + "pm.environment.set(\"besluit_body\", pm.request.body.raw);" + ] + } + } + ] + }, + { + "id": "a275fd4e-6a9c-4ef1-a3c9-d57e87fd3b18", + "name": "(brc-001b) Besluit bijwerken is mogelijk", + "request": { + "url": { + "host": [ + "{{besluit_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "PUT", + "body": { + "mode": "raw", + "raw": "{{request_body}}" + } + }, + "response": [], + "event": [ + { + "listen": "prerequest", + "script": { + "id": "6ed71df6-1586-4a91-b15e-6dee73065763", + "type": "text/javascript", + "exec": [ + "// Retrieve the Zaak body template and modify as needed", + "var body = JSON.parse(pm.environment.get(\"besluit_body\"));", + "pm.environment.set(\"toelichting\", \"aangepaste toelichting\");", + "body.toelichting = pm.environment.get(\"toelichting\");", + "", + "// Store the modified Zaak body, allowing it to be used in the main request", + "pm.environment.set(\"request_body\", JSON.stringify(body));" + ] + } + }, + { + "listen": "test", + "script": { + "id": "3631913d-4693-4a06-a703-2bcc09a1b0ad", + "type": "text/javascript", + "exec": [ + "pm.test(\"Besluit bijwerken met valide gegevens geeft 200\", function() {", + " pm.response.to.have.status(200);", + "});", + "", + "pm.test(\"Besluit bijwerken past gegevens correct aan\", function() {", + " pm.expect(pm.response.json().toelichting).to.be.equal(pm.environment.get(\"toelichting\"));", + "});" + ] + } + } + ] + }, + { + "id": "67c9e118-d72e-4bf3-803f-45ba8dc4d011", + "name": "(brc-001c) Besluit deels bijwerken is mogelijk", + "request": { + "url": { + "host": [ + "{{besluit_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "PATCH", + "body": { + "mode": "raw", + "raw": "{\n\t\"bestuursorgaan\": \"{{bestuursorgaan}}\"\n}" + } + }, + "response": [], + "event": [ + { + "listen": "prerequest", + "script": { + "id": "4ce17b09-1afe-4ecb-b4b6-c93536b2ccc9", + "type": "text/javascript", + "exec": [ + "pm.environment.set(\"bestuursorgaan\", \"aangepast bestuursorgaan\");" + ] + } + }, + { + "listen": "test", + "script": { + "id": "63967a02-8220-4ef2-8e2c-3e6c3234ad70", + "type": "text/javascript", + "exec": [ + "pm.test(\"Besluit deels bijwerken met valide gegevens geeft 200\", function() {", + " pm.response.to.have.status(200);", + "});", + "", + "pm.test(\"Besluit deels bijwerken past gegevens correct aan\", function() {", + " pm.expect(pm.response.json().bestuursorgaan).to.be.equal(pm.environment.get(\"bestuursorgaan\"));", + "});" + ] + } + } + ] + }, + { + "id": "d96a4911-4a83-4708-832e-88c71018f727", + "name": "(brc-001d) Besluit aanmaken met ongeldige besluittype url is onmogelijk", + "request": { + "url": { + "path": [ + "besluiten" + ], + "host": [ + "{{brc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{{request_body}}" + } + }, + "response": [], + "event": [ + { + "listen": "prerequest", + "script": { + "id": "8c18c2ac-8c30-4953-8810-679f0d13fd80", + "type": "text/javascript", + "packages": {}, + "exec": [ + "// Retrieve the Zaak body template and modify as needed", + "var body = JSON.parse(pm.environment.get(\"besluit_body\"));", + "body.besluittype = pm.environment.get(\"mock_url\") + \"/404\";", + "", + "// Store the modified Zaak body, allowing it to be used in the main request", + "pm.environment.set(\"request_body\", JSON.stringify(body));" + ] + } + }, + { + "listen": "test", + "script": { + "id": "43eca725-e1d9-44d7-89da-cacb12e4de3e", + "type": "text/javascript", + "packages": {}, + "exec": [ + "pm.test(\"Besluit aanmaken met besluittype url die niet resulteert in 200 geeft 400\", function() {", + " pm.response.to.have.status(400);", + " ", + " // Verify that the 400 is returned for the correct reason", + " var error = pm.response.json()[\"invalidParams\"][0];", + " pm.expect(error.name).to.be.equal(\"besluittype\");", + " pm.expect(error.code).to.be.equal(\"bad-url\");", + "});", + "", + "" + ] + } + } + ] + }, + { + "id": "2618b58c-2008-4e1e-b911-be7f6cef053e", + "name": "(brc-001e) Besluit aanmaken met besluittype url die niet wijst naar Besluittype is onmogelijk", + "request": { + "url": { + "path": [ + "besluiten" + ], + "host": [ + "{{brc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{{request_body}}" + } + }, + "response": [], + "event": [ + { + "listen": "prerequest", + "script": { + "id": "e0ff64a6-7dfe-437a-be41-8ec1b17511d2", + "type": "text/javascript", + "packages": {}, + "exec": [ + "// Retrieve the Zaak body template and modify as needed", + "var body = JSON.parse(pm.environment.get(\"besluit_body\"));", + "body.besluittype = pm.environment.get(\"mock_url\") + \"/200\";", + "", + "// Store the modified Zaak body, allowing it to be used in the main request", + "pm.environment.set(\"request_body\", JSON.stringify(body));" + ] + } + }, + { + "listen": "test", + "script": { + "id": "bb6a7c3b-ee7d-41a2-ad8b-768aeee097fb", + "type": "text/javascript", + "packages": {}, + "exec": [ + "pm.test(\"Besluit aanmaken met besluittype url die niet wijst naar Besluittype-resource geeft 400\", function() {", + " pm.response.to.have.status(400);", + " ", + " // Verify that the 400 is returned for the correct reason", + " var error = pm.response.json()[\"invalidParams\"][0];", + " pm.expect(error.name).to.be.equal(\"besluittype\");", + "", + "});", + "", + "" + ] + } + } + ] + }, + { + "id": "08870fb4-9486-4935-ba31-1aedf57e90cd", + "name": "Create Besluittype for Besluit updates", + "request": { + "url": { + "path": [ + "besluittypen" + ], + "host": [ + "{{ztc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n \"catalogus\": \"{{catalogus_url}}\",\n \"omschrijving\": \"TEMP\",\n \"zaaktypen\": [],\n\t\"publicatieIndicatie\": false,\n\t\"informatieobjecttypen\": [],\n\t\"beginGeldigheid\": \"2019-01-01\"\n}" + } + }, + "response": [], + "event": [ + { + "listen": "prerequest", + "script": { + "id": "861ae84f-b6cd-4014-a17b-f70ca9672578", + "type": "text/javascript", + "exec": [ + "" + ] + } + }, + { + "listen": "test", + "script": { + "id": "7f347f50-74c9-4113-a2b9-5ffa372c87ef", + "type": "text/javascript", + "exec": [ + "pm.environment.set(\"temp_besluittype_url\", pm.response.json().url);" + ] + } + } + ] + }, + { + "id": "35116f38-bf1c-41d9-9309-87f2490ad976", + "name": "(brc-001f) Besluit aanmaken met concept besluittype is onmogelijk", + "request": { + "url": { + "path": [ + "besluiten" + ], + "host": [ + "{{brc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Accept-Crs", + "value": "EPSG:4326" + }, + { + "key": "Content-Crs", + "value": "EPSG:4326" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{{request_body}}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "4b90e32e-af6a-443e-9b75-36370fcc6d21", + "type": "text/javascript", + "packages": {}, + "exec": [ + "pm.test(\"Besluit aanmaken met concept besluittype geeft 400\", function() {", + " pm.response.to.have.status(400);", + " ", + " // Verify that the 400 is returned for the correct reason", + " var error = pm.response.json()[\"invalidParams\"][0];", + " pm.expect(error.name).to.be.equal(\"besluittype\");", + " pm.expect(error.code).to.be.equal(\"not-published\");", + "});", + "", + "" + ] + } + }, + { + "listen": "prerequest", + "script": { + "id": "25fff379-cd72-4003-9eb3-7ad38c13fbce", + "type": "text/javascript", + "packages": {}, + "exec": [ + "// Retrieve the Zaak body template and modify as needed", + "var body = JSON.parse(pm.environment.get(\"besluit_body\"));", + "body.besluittype = pm.environment.get(\"temp_besluittype_url\");", + "", + "// Store the modified Zaak body, allowing it to be used in the main request", + "pm.environment.set(\"request_body\", JSON.stringify(body));" + ] + } + } + ] + }, + { + "id": "d560fe7d-3647-47d5-878b-3a6e5fce01ed", + "name": "Publish temp Besluittype", + "request": { + "url": { + "path": [ + "publish" + ], + "host": [ + "{{temp_besluittype_url}}" + ], + "query": [], + "variable": [] + }, + "method": "POST" + }, + "response": [], + "event": [] + }, + { + "id": "5cb913f2-2f44-4c78-95d7-d69143a079e4", + "name": "(brc-001g) Besluit besluittype bijwerken is onmogelijk", + "request": { + "url": { + "host": [ + "{{besluit_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "PUT", + "body": { + "mode": "raw", + "raw": "{{request_body}}" + } + }, + "response": [], + "event": [ + { + "listen": "prerequest", + "script": { + "id": "95c9c897-ee6c-4243-89a7-5db4f83f2ea4", + "type": "text/javascript", + "exec": [ + "// Retrieve the Zaak body template and modify as needed", + "var body = JSON.parse(pm.environment.get(\"besluit_body\"));", + "body.besluittype = pm.environment.get(\"temp_besluittype_url\");", + "", + "// Store the modified Zaak body, allowing it to be used in the main request", + "pm.environment.set(\"request_body\", JSON.stringify(body));" + ] + } + }, + { + "listen": "test", + "script": { + "id": "b093e357-a1b2-4c0b-a6e4-fa3a32d8d92f", + "type": "text/javascript", + "exec": [ + "pm.test(\"Besluit besluittype bijwerken geeft 400\", function() {", + " pm.response.to.have.status(400);", + " ", + " // Verify that the 400 is returned for the correct reason", + " var error = pm.response.json()[\"invalidParams\"][0];", + " pm.expect(error.name).to.be.equal(\"besluittype\");", + " pm.expect(error.code).to.be.equal(\"wijzigen-niet-toegelaten\");", + "});" + ] + } + } + ] + }, + { + "id": "33cf3387-94ce-4c60-9b61-8a65f587c3fc", + "name": "(brc-001h) Besluit besluittype deels bijwerken is onmogelijk", + "request": { + "url": { + "host": [ + "{{besluit_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "PATCH", + "body": { + "mode": "raw", + "raw": "{\n\t\"besluittype\": \"{{temp_besluittype_url}}\"\n}" + } + }, + "response": [], + "event": [ + { + "listen": "prerequest", + "script": { + "id": "37d40a3e-ae28-4ddf-9461-abc49ba843cc", + "type": "text/javascript", + "exec": [ + "" + ] + } + }, + { + "listen": "test", + "script": { + "id": "ea2c6e51-8985-4c20-a6ef-af7f3f856808", + "type": "text/javascript", + "exec": [ + "pm.test(\"Besluit besluittype deels bijwerken geeft 400\", function() {", + " pm.response.to.have.status(400);", + " ", + " // Verify that the 400 is returned for the correct reason", + " var error = pm.response.json()[\"invalidParams\"][0];", + " pm.expect(error.name).to.be.equal(\"besluittype\");", + " pm.expect(error.code).to.be.equal(\"wijzigen-niet-toegelaten\");", + "});", + "", + "// If the type was modified, change it back", + "if(pm.response.code == 200) {", + " pm.sendRequest({", + " \"url\": pm.environment.get(\"besluit_url\"), ", + " \"method\": \"PATCH\",", + " \"header\": {", + " \"Accept\": \"application/json\",", + " \"Content-Type\": \"application/json\",", + " \"Authorization\": \"Bearer \" + pm.environment.get(\"jwt_token\")", + " },", + " \"body\": {", + " mode: \"raw\",", + " raw: JSON.stringify({\"besluittype\": pm.environment.get(\"besluittype_url\")})", + " }", + " }, function (err, response) {", + " console.log(response.json());", + " });", + "}" + ] + } + } + ] + } + ], + "event": [ + { + "listen": "prerequest", + "script": { + "id": "dccd3b95-c000-4a59-b199-2df784fc4747", + "type": "text/javascript", + "exec": [ + "" + ] + } + }, + { + "listen": "test", + "script": { + "id": "be25e2e8-1830-4cf8-b649-6d842c8a0074", + "type": "text/javascript", + "exec": [ + "" + ] + } + } + ] + }, + { + "id": "abe80a49-dc91-4531-a3d2-9388035257a0", + "name": "brc-002", + "item": [ + { + "id": "9624be2f-6d72-4d5f-b49d-e50eff7be3a1", + "name": "(brc-002a) Uniciteit verantwoordelijke_organisatie en identificatie op de Besluit-resource (POST)", + "request": { + "url": { + "path": [ + "besluiten" + ], + "host": [ + "{{brc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Accept-Crs", + "value": "EPSG:4326" + }, + { + "key": "Content-Crs", + "value": "EPSG:4326" + }, + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{{request_body}}" + } + }, + "response": [], + "event": [ + { + "listen": "prerequest", + "script": { + "id": "0724d8cc-6114-47aa-b572-1f7fe1e76720", + "type": "text/javascript", + "packages": {}, + "exec": [ + "// Retrieve the Zaak body template and modify as needed", + "var body = JSON.parse(pm.environment.get(\"besluit_body\"));", + "body.identificatie = pm.environment.get(\"besluit_id\");", + "", + "// Store the modified Zaak body, allowing it to be used in the main request", + "pm.environment.set(\"request_body\", JSON.stringify(body));" + ] + } + }, + { + "listen": "test", + "script": { + "id": "1240bdc1-d94c-4f86-b014-0258b80ec470", + "type": "text/javascript", + "packages": {}, + "exec": [ + "pm.test(\"Besluit aanmaken met bestaande combinatie verantwoordelijke_organisatie en identificatie geeft 400\", function() {", + " pm.response.to.have.status(400);", + " ", + " var error = pm.response.json()[\"invalidParams\"][0];", + " pm.expect(error.name).to.be.equal(\"identificatie\");", + " pm.expect(error.code).to.be.equal(\"identificatie-niet-uniek\");", + "});", + "", + "" + ] + } + } + ] + }, + { + "id": "38633d05-ddb1-4d4a-adf2-4ad708843788", + "name": "Create Besluit with unique identificatie and verantwoordelijke_organisatie", + "request": { + "description": { + "content": "Maakt een Zaak aan die gebruikt zal worden in de tests, deze zaak wordt na de tests weer verwijderd.\n\nDe body van deze Zaak zal ook als variabele opgeslagen worden en gebruikt worden (met kleine aanpassingen iedere keer) in de requests voor de validatie tests, om te voorkomen dat telkens hetzelfde body gekopieerd moet worden.", + "type": "text/plain" + }, + "url": { + "path": [ + "besluiten" + ], + "host": [ + "{{brc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Content-Crs", + "value": "EPSG:4326" + }, + { + "key": "Accept-Crs", + "value": "EPSG:4326" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{{besluit_body}}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "4699ab8d-6946-4fb5-a5b0-55cc5541b943", + "type": "text/javascript", + "exec": [ + "pm.environment.set(\"created_besluit_url\", pm.response.json().url);" + ] + } + } + ] + }, + { + "id": "36cbe3bb-e025-482c-b686-70339bf77632", + "name": "(brc-002b) Besluit bijwerken identificatie aanpassen niet toegestaan", + "request": { + "url": { + "host": [ + "{{created_besluit_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Accept-Crs", + "value": "EPSG:4326" + }, + { + "key": "Content-Crs", + "value": "EPSG:4326" + }, + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "PUT", + "body": { + "mode": "raw", + "raw": "{{request_body}}" + } + }, + "response": [], + "event": [ + { + "listen": "prerequest", + "script": { + "id": "fcb99b51-ed4f-4ecd-a05a-c9bf0e866ad1", + "type": "text/javascript", + "exec": [ + "// Retrieve the Zaak body template and modify as needed", + "var body = JSON.parse(pm.environment.get(\"besluit_body\"));", + "body.identificatie = \"nieuwe identificatie\";", + "", + "// Store the modified Zaak body, allowing it to be used in the main request", + "pm.environment.set(\"request_body\", JSON.stringify(body));" + ] + } + }, + { + "listen": "test", + "script": { + "id": "cab3904a-b180-4af1-bd60-5fa6fa79f815", + "type": "text/javascript", + "exec": [ + "pm.test(\"Besluit bijwerken identificatie geeft 400\", function() {", + " pm.response.to.have.status(400);", + " ", + " var error = pm.response.json()[\"invalidParams\"][0];", + " pm.expect(error.name).to.be.equal(\"identificatie\");", + " pm.expect(error.code).to.be.equal(\"wijzigen-niet-toegelaten\");", + "});" + ] + } + } + ] + }, + { + "id": "b149ece7-dd8a-4c84-9c3a-19ccc1d9c281", + "name": "(brc-002c) Besluit deels bijwerken identificatie aanpassen niet toegestaan", + "request": { + "url": { + "host": [ + "{{created_besluit_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Accept-Crs", + "value": "EPSG:4326" + }, + { + "key": "Content-Crs", + "value": "EPSG:4326" + }, + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "PATCH", + "body": { + "mode": "raw", + "raw": "{\n\t\"identificatie\": \"{{besluit_id}}\"\n}" + } + }, + "response": [], + "event": [ + { + "listen": "prerequest", + "script": { + "id": "8327bc5d-7f19-48cf-9f53-92a5f8328a95", + "type": "text/javascript", + "exec": [ + "" + ] + } + }, + { + "listen": "test", + "script": { + "id": "9be77d41-7e4e-4654-8a69-811f34d6c661", + "type": "text/javascript", + "exec": [ + "pm.test(\"Besluit deels bijwerken identificatie geeft 400\", function() {", + " pm.response.to.have.status(400);", + " ", + " var error = pm.response.json()[\"invalidParams\"][0];", + " pm.expect(error.name).to.be.equal(\"identificatie\");", + " pm.expect(error.code).to.be.equal(\"wijzigen-niet-toegelaten\");", + "});" + ] + } + } + ] + }, + { + "id": "b33bb16c-7e8e-4cf1-8272-7a26813c6fd7", + "name": "(brc-002d) Besluit bijwerken verantwoordelijke_organisatie aanpassen niet toegestaan", + "request": { + "url": { + "host": [ + "{{created_besluit_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Accept-Crs", + "value": "EPSG:4326" + }, + { + "key": "Content-Crs", + "value": "EPSG:4326" + }, + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "PUT", + "body": { + "mode": "raw", + "raw": "{{request_body}}" + } + }, + "response": [], + "event": [ + { + "listen": "prerequest", + "script": { + "id": "2bbc4502-3b52-4485-852e-5f369fc24e3b", + "type": "text/javascript", + "exec": [ + "// Retrieve the Zaak body template and modify as needed", + "var body = JSON.parse(pm.environment.get(\"besluit_body\"));", + "body.verantwoordelijkeOrganisatie = \"245122461\"", + "", + "// Store the modified Zaak body, allowing it to be used in the main request", + "pm.environment.set(\"request_body\", JSON.stringify(body));" + ] + } + }, + { + "listen": "test", + "script": { + "id": "f71c986e-7feb-44d8-be24-21ce3a9cbb68", + "type": "text/javascript", + "exec": [ + "pm.test(\"Besluit bijwerken met bestaande combinatie verantwoordelijke_organisatie en identificatie geeft 400\", function() {", + " pm.response.to.have.status(400);", + " ", + " var error = pm.response.json()[\"invalidParams\"][0];", + " pm.expect(error.name).to.be.equal(\"verantwoordelijkeOrganisatie\");", + " pm.expect(error.code).to.be.equal(\"wijzigen-niet-toegelaten\");", + "});" + ] + } + } + ] + }, + { + "id": "aa1e6507-1c1a-4320-bd3a-bcea63a36d21", + "name": "(brc-002e) Besluit deels bijwerken verantwoordelijke_organisatie aanpassen niet toegestaan", + "request": { + "url": { + "host": [ + "{{created_besluit_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Accept-Crs", + "value": "EPSG:4326" + }, + { + "key": "Content-Crs", + "value": "EPSG:4326" + }, + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "PATCH", + "body": { + "mode": "raw", + "raw": "{\n\t\"verantwoordelijkeOrganisatie\": \"245122461\"\n}" + } + }, + "response": [], + "event": [ + { + "listen": "prerequest", + "script": { + "id": "5004f866-2932-4308-a28c-10cfb85c61f8", + "type": "text/javascript", + "packages": {}, + "exec": [ + "" + ] + } + }, + { + "listen": "test", + "script": { + "id": "a96193d9-202e-4b31-a210-3c8492f17e1a", + "type": "text/javascript", + "packages": {}, + "exec": [ + "pm.test(\"Besluit deels bijwerken met bestaande combinatie verantwoordelijke_organisatie en identificatie geeft 400\", function() {", + " pm.response.to.have.status(400);", + " ", + " var error = pm.response.json()[\"invalidParams\"][0];", + " pm.expect(error.name).to.be.equal(\"verantwoordelijkeOrganisatie\");", + " pm.expect(error.code).to.be.equal(\"wijzigen-niet-toegelaten\");", + "});", + "", + "" + ] + } + } + ] + }, + { + "id": "6b79e0e3-a107-4233-b429-a95c4538a44b", + "name": "Retrieve Besluiten for verantwoordelijke_organisatie", + "request": { + "url": { + "path": [ + "besluiten" + ], + "host": [ + "{{brc_url}}" + ], + "query": [ + { + "key": "verantwoordelijkeOrganisatie", + "value": "{{besluit_verantwoordelijke_organisatie}}" + } + ], + "variable": [] + }, + "header": [ + { + "key": "Accept-Crs", + "value": "EPSG:4326" + } + ], + "method": "GET" + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "2b0a05fa-1d4b-456d-8460-478da0f330b0", + "type": "text/javascript", + "exec": [ + "pm.environment.set(\"besluiten_for_verantwoordelijke_organisatie\", pm.response.json());" + ] + } + } + ] + }, + { + "id": "d8243840-3bd6-4e03-b320-cf70ccf506a8", + "name": "(brc-002f) Genereer unieke identificatie voor Besluit onder verantwoordelijke_organisatie", + "request": { + "url": { + "path": [ + "besluiten" + ], + "host": [ + "{{brc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Accept-Crs", + "value": "EPSG:4326" + }, + { + "key": "Content-Crs", + "value": "EPSG:4326" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{{besluit_body}}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "52a61e5d-e675-4447-8301-f3a1f9aa92b4", + "type": "text/javascript", + "packages": {}, + "exec": [ + "pm.test(\"Besluit aanmaken zonder identificatie genereert unieke identificatie onder bronorganisatie\", function() {", + " var created_besluit_id = pm.response.json().identificatie", + " ", + " pm.environment.set(\"created_besluit_url\", pm.response.json().url);", + " ", + " pm.response.to.have.status(201);", + " ", + " // Compare the identificatie of the created Besluit with all the identificaties of other Besluiten", + " // with the same verantwoordelijke_organisatie", + " var besluiten_with_same_id = pm.environment.get(\"besluiten_for_verantwoordelijke_organisatie\").results.filter(besluit => besluit.identificatie === created_besluit_id);", + " ", + " // Verify that the identificatie for the created Besluit isn't the same as any other", + " pm.expect(besluiten_with_same_id.length).to.be.equal(0);", + "});", + "" + ] + } + }, + { + "listen": "prerequest", + "script": { + "id": "79db3a8e-e33f-488f-ac21-59c0117776aa", + "type": "text/javascript", + "packages": {}, + "exec": [ + "" + ] + } + } + ] + } + ], + "event": [ + { + "listen": "prerequest", + "script": { + "id": "2a262134-45ae-413a-aa7a-4e6521ed783a", + "type": "text/javascript", + "exec": [ + "" + ] + } + }, + { + "listen": "test", + "script": { + "id": "db495309-82db-44fe-bfcd-039a46e3d7f4", + "type": "text/javascript", + "exec": [ + "" + ] + } + } + ] + }, + { + "id": "9537c975-6956-421c-baa8-ddecbf1b5418", + "name": "brc-003", + "item": [ + { + "id": "f3980a4e-5739-47d0-b491-46c2c28fe47f", + "name": "(brc-003a) BesluitInformatieObject aanmaken met ongeldige informatieobject url is niet toegestaan", + "request": { + "url": { + "path": [ + "besluitinformatieobjecten" + ], + "host": [ + "{{brc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n\t\"besluit\": \"{{besluit_url}}\",\n \"informatieobject\": \"{{mock_url}}/404\"\n}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "30b5492f-8925-499b-bd1f-4076e37c4069", + "type": "text/javascript", + "packages": {}, + "exec": [ + "pm.test(\"BesluitInformatieObject aanmaken met informatieobject url die niet resulteert in 200 geeft 400\", function() {", + " pm.response.to.have.status(400);", + " ", + " // Verify that error was thrown for correct reason", + " var error = pm.response.json()[\"invalidParams\"][0];", + " pm.expect(error.name).to.be.equal(\"informatieobject\");", + " pm.expect(error.code).to.be.equal(\"bad-url\");", + "});", + "", + "" + ] + } + } + ] + } + ], + "event": [] + }, + { + "id": "79201215-da7d-49a3-b7f9-2bdaec24d407", + "name": "brc-004", + "item": [ + { + "id": "56e7d8c6-4d87-4285-b366-13be8ce9bf7b", + "name": "Create different Besluit", + "request": { + "url": { + "path": [ + "besluiten" + ], + "host": [ + "{{brc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\r\n \"verantwoordelijkeOrganisatie\": \"000000000\",\r\n \"besluittype\": \"{{besluittype_url}}\",\r\n \"datum\": \"2019-01-01\",\r\n \"ingangsdatum\": \"2018-01-01\"\r\n}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "2807d6f0-7f93-4cb8-b39e-ba694a051169", + "type": "text/javascript", + "packages": {}, + "exec": [ + "pm.environment.set(\"created_besluit_url\", pm.response.json().url);", + "" + ] + } + }, + { + "listen": "prerequest", + "script": { + "id": "0bcc8a2d-556d-4f27-a0f2-d81187bba233", + "type": "text/javascript", + "packages": {}, + "exec": [] + } + } + ] + }, + { + "id": "609961ed-343f-4d14-87e8-c9cabd6bcd2b", + "name": "EnkelvoudigInformatieObject aanmaken", + "request": { + "url": { + "path": [ + "enkelvoudiginformatieobjecten" + ], + "host": [ + "{{drc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n\t\"bronorganisatie\": \"000000000\",\n\t\"creatiedatum\": \"2019-01-01\",\n\t\"titel\": \"testobject\",\n\t\"auteur\": \"testauteur\",\n\t\"taal\": \"eng\",\n\t\"inhoud\": \"{{object_inhoud}}\",\n\t\"informatieobjecttype\": \"{{informatieobjecttype_url}}\",\n \"bestandsnaam\": \"iets.pdf\",\n\t\"bestandsomvang\": 6\n}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "3e56ef11-22a1-4522-9148-d85cbb01d232", + "type": "text/javascript", + "packages": {}, + "exec": [ + "pm.test(\"EnkelvoudigInformatieObject aanmaken met valide gegevens geeft 201\", function() {", + " pm.response.to.have.status(201);", + "});", + "", + "pm.environment.set(\"informatieobject_url\", pm.response.json().url);", + "pm.environment.set(\"informatieobject_body\", pm.request.body.raw);" + ] + } + }, + { + "listen": "prerequest", + "script": { + "id": "35168b44-1cf4-41b8-b2df-2b46bdb28d23", + "type": "text/javascript", + "packages": {}, + "exec": [ + "pm.environment.set(\"object_inhoud\", btoa(\"string\"));", + "", + "" + ] + } + } + ] + }, + { + "id": "e541b03b-2958-48a6-b405-06f21af22a6e", + "name": "BesluitInformatieObject aanmaken", + "request": { + "url": { + "path": [ + "besluitinformatieobjecten" + ], + "host": [ + "{{brc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n\t\"besluit\": \"{{created_besluit_url}}\",\n \"informatieobject\": \"{{informatieobject_url}}\"\n}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "a1674189-30e1-4fb8-84a2-8e6f5648904a", + "type": "text/javascript", + "packages": {}, + "exec": [ + "pm.environment.set(\"besluitinformatieobject_url\", pm.response.json().url);" + ] + } + } + ] + }, + { + "id": "c01b5f43-3213-4817-8254-0eaadc3a0019", + "name": "(brc-004a) BesluitInformatieObject bijwerken besluit aanpassen is niet toegestaan", + "request": { + "url": { + "host": [ + "{{besluitinformatieobject_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "PUT", + "body": { + "mode": "raw", + "raw": "{\n\t\"besluit\": \"{{created_besluit_url}}xxx\",\n\t\"informatieobject\": \"{{informatieobject_url}}\"\n}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "d7f0ecec-a965-4213-9c4f-7d23ce537a39", + "type": "text/javascript", + "packages": {}, + "exec": [ + "pm.test(\"BesluitInformatieObject bijwerken besluit aanpassen geeft 405\", function() {", + " pm.response.to.have.status(405);", + " ", + "5", + "});" + ] + } + }, + { + "listen": "prerequest", + "script": { + "id": "016f8df3-fb58-49d8-94ac-952fbd9f9d70", + "type": "text/javascript", + "packages": {}, + "exec": [ + "" + ] + } + } + ] + }, + { + "id": "c495b752-783e-42bb-beb8-9ae9f1a85ee2", + "name": "(brc-004b) BesluitInformatieObject deels bijwerken besluit aanpassen is niet toegestaan", + "request": { + "url": { + "host": [ + "{{besluitinformatieobject_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "PATCH", + "body": { + "mode": "raw", + "raw": "{\n\t\"besluit\": \"{{created_besluit_url}}\"\n}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "31b2b914-1053-45cf-ae96-5961d73e1fcc", + "type": "text/javascript", + "packages": {}, + "exec": [ + "pm.test(\"BesluitInformatieObject deels bijwerken besluit aanpassen geeft 405\", function() {", + " pm.response.to.have.status(405);", + " ", + "", + "});" + ] + } + }, + { + "listen": "prerequest", + "script": { + "id": "6b8c4cf8-8794-46e1-8f7d-49740d1697aa", + "type": "text/javascript", + "packages": {}, + "exec": [ + "" + ] + } + } + ] + } + ], + "event": [] + }, + { + "id": "112fce3c-a00b-41cc-848a-fda6d814d385", + "name": "brc-005", + "item": [ + { + "id": "27746b2d-a68d-48a0-bbc1-1713d517d3b1", + "name": "Besluit", + "request": { + "url": { + "path": [ + "besluiten" + ], + "host": [ + "{{brc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\r\n \"verantwoordelijkeOrganisatie\": \"000000000\",\r\n \"besluittype\": \"{{besluittype_url}}\",\r\n \"datum\": \"2019-01-01\",\r\n \"ingangsdatum\": \"2018-01-01\"\r\n}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "1591887d-e822-479a-9b2e-93b909ad6b03", + "type": "text/javascript", + "packages": {}, + "exec": [ + "pm.environment.set(\"created_besluit_url\", pm.response.json().url);", + "" + ] + } + }, + { + "listen": "prerequest", + "script": { + "id": "9a0ba5da-a1d0-4527-bf1d-2cc09580f3ed", + "type": "text/javascript", + "packages": {}, + "exec": [] + } + } + ] + }, + { + "id": "7c96c184-a920-47f4-91b4-d21fe5c0badd", + "name": "Eio", + "request": { + "url": { + "path": [ + "enkelvoudiginformatieobjecten" + ], + "host": [ + "{{drc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n\t\"bronorganisatie\": \"000000000\",\n\t\"creatiedatum\": \"2019-01-01\",\n\t\"titel\": \"testobject\",\n\t\"auteur\": \"testauteur\",\n\t\"taal\": \"eng\",\n\t\"inhoud\": \"{{object_inhoud}}\",\n\t\"informatieobjecttype\": \"{{informatieobjecttype_url}}\",\n \"bestandsnaam\": \"iets.pdf\",\n\t\"bestandsomvang\": 6\n}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "cddcbce9-1902-4896-91fd-604219228544", + "type": "text/javascript", + "packages": {}, + "exec": [ + "pm.test(\"EnkelvoudigInformatieObject aanmaken met valide gegevens geeft 201\", function() {", + " pm.response.to.have.status(201);", + "});", + "", + "pm.environment.set(\"informatieobject_url\", pm.response.json().url);", + "pm.environment.set(\"informatieobject_body\", pm.request.body.raw);" + ] + } + }, + { + "listen": "prerequest", + "script": { + "id": "53cbb0b7-347a-4946-989e-656b0f302bf0", + "type": "text/javascript", + "packages": {}, + "exec": [ + "pm.environment.set(\"object_inhoud\", btoa(\"string\"));", + "", + "" + ] + } + } + ] + }, + { + "id": "2e5b3f90-42ae-4162-b7fb-dc3ea73bd5a5", + "name": "Besluit - eio", + "request": { + "url": { + "path": [ + "besluitinformatieobjecten" + ], + "host": [ + "{{brc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n\t\"besluit\": \"{{created_besluit_url}}\",\n\t\"informatieobject\": \"{{informatieobject_url}}\"\n}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "38a5ffdf-9d41-4c7e-886c-7ae41034b4dd", + "type": "text/javascript", + "packages": {}, + "exec": [ + "pm.environment.set(\"created_besluitinformatieobject_url\", pm.response.json().url);" + ] + } + } + ] + }, + { + "id": "710e89cc-6c3d-4b42-8ec5-89e99690eb3c", + "name": "(brc-005a) BesluitInformatieObject aanmaken maakt ObjectInformatieObject aan met objectType besluit", + "request": { + "url": { + "path": [ + "objectinformatieobjecten" + ], + "host": [ + "{{drc_url}}" + ], + "query": [ + { + "key": "object", + "value": "{{created_besluit_url}}" + }, + { + "key": "informatieobject", + "value": "{{informatieobject_url}}" + } + ], + "variable": [] + }, + "method": "GET" + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "277d1f88-9ad6-4f01-a887-674df5eed9ef", + "type": "text/javascript", + "packages": {}, + "exec": [ + "var jsonData = pm.response.json();", + "", + "pm.test(\"BesluitInformatieObject aanmaken maakt een ObjectInformatieObject in DRC\", function() {", + " pm.response.to.have.status(200);", + " pm.expect(jsonData.length).to.be.equal(1);", + "});", + "", + "pm.test(\"BesluitInformatieObject aanmaken maakt een ObjectInformatieObject met objectType besluit\", function() {", + " pm.expect(jsonData[0].objectType).to.be.equal(\"besluit\");", + "});", + "", + "pm.test(\"BesluitInformatieObject aanmaken maakt een ObjectInformatieObject met correcte besluit en informatieobject\", function() {", + " pm.expect(jsonData[0].object).to.be.equal(pm.environment.get(\"created_besluit_url\"));", + " pm.expect(jsonData[0].informatieobject).to.be.equal(pm.environment.get(\"informatieobject_url\"));", + "});" + ] + } + } + ] + }, + { + "id": "671681e0-d957-437c-bdf9-e34b8b8d381e", + "name": "Delete BesluitInformatieObject", + "request": { + "url": { + "host": [ + "{{created_besluitinformatieobject_url}}" + ], + "query": [], + "variable": [] + }, + "method": "DELETE", + "body": { + "mode": "raw", + "raw": "" + } + }, + "response": [], + "event": [] + }, + { + "id": "5990b40a-2be8-4590-8174-aa8c5fe8e6fb", + "name": "(brc-005b) BesluitInformatieObject verwijderen verwijdert ObjectInformatieObject uit DRC", + "request": { + "url": { + "path": [ + "objectinformatieobjecten" + ], + "host": [ + "{{drc_url}}" + ], + "query": [ + { + "key": "object", + "value": "{{besluit_url}}" + }, + { + "key": "informatieobject", + "value": "{{informatieobject_url}}" + } + ], + "variable": [] + }, + "method": "GET" + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "bddc8ead-ad93-4be5-a551-a51390f50a9f", + "type": "text/javascript", + "exec": [ + "pm.test(\"BesluitInformatieObject verwijderen verwijdert ObjectInformatieObject in DRC\", function() {", + " pm.response.to.have.status(200);", + " pm.expect(pm.response.json().length).to.be.equal(0);", + "});" + ] + } + } + ] + } + ], + "event": [] + }, + { + "id": "aae8ba9a-97e5-4eb0-8639-f72cc4fafd5e", + "name": "brc-006", + "item": [ + { + "id": "e72349bd-68bc-4097-9df6-59f2ddf5620f", + "name": "BT Copy", + "request": { + "url": { + "path": [ + "besluittypen" + ], + "host": [ + "{{ztc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n \"catalogus\": \"{{catalogus_url}}\",\n \"omschrijving\": \"{{random_omschrijving}}\",\n \"zaaktypen\": [],\n\t\"publicatieIndicatie\": false,\n\t\"informatieobjecttypen\": [\"{{informatieobject_omschrijving}}\"],\n\t\"beginGeldigheid\": \"2019-01-01\"\n}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "d1f1139b-71ae-4c01-9ea1-316e3fb76315", + "type": "text/javascript", + "packages": {}, + "exec": [ + "pm.environment.set(\"besluittype_omschrijving\", pm.response.json().omschrijving);\r", + "pm.environment.set(\"besluittype_url\", pm.response.json().url);" + ] + } + }, + { + "listen": "prerequest", + "script": { + "id": "2b8bff68-3220-4258-996a-2bcb62fd10b0", + "type": "text/javascript", + "packages": {}, + "exec": [ + "var uuid = require('uuid');\r", + "var myUUID = uuid.v4(); \r", + "pm.environment.set(\"random_omschrijving\",myUUID);" + ] + } + } + ] + }, + { + "id": "ed9f4224-0383-430e-8213-1f909b14115f", + "name": "ZT Copy", + "request": { + "url": { + "path": [ + "zaaktypen" + ], + "host": [ + "{{ztc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n\t\"identificatie\": \"{{random_identificatie}}\",\n \"omschrijving\": \"zrc_tests_1\",\n \"vertrouwelijkheidaanduiding\": \"openbaar\",\n \"doel\": \"test doel\",\n \"verantwoordelijke\":\"X\",\n \"aanleiding\": \"test aanleiding\",\n \"indicatieInternOfExtern\": \"extern\",\n \"handelingInitiator\": \"indienen\",\n \"onderwerp\": \"openbare ruimte\",\n \"handelingBehandelaar\": \"behandelen\",\n \"doorlooptijd\": \"P10D\",\n \"opschortingEnAanhoudingMogelijk\": false,\n \"verlengingMogelijk\": true,\n \"publicatieIndicatie\": false,\n \"productenOfDiensten\": [\n \"https://ref.tst.vng.cloud/standaard/\"\n ],\n \"selectielijstProcestype\": \"{{procestype_procestermijn_nihil_url}}\",\n \"referentieproces\": {\n \"naam\": \"test\",\n \"link\": \"\"\n },\n \"deelzaaktypen\": [\n \"{{deelzaaktype_identificatie}}\"\n ],\n \"catalogus\": \"{{catalogus_url}}\",\n \"statustypen\": [\n \n ],\n \"resultaattypen\": [\n ],\n \"eigenschappen\": [\n ],\n \"informatieobjecttypen\": [],\n \"besluittypen\": [\n \"{{besluittype_omschrijving}}\"\n ],\n \"gerelateerdeZaaktypen\": [],\n \"beginGeldigheid\": \"2019-01-01\",\n \"versiedatum\": \"2019-01-01\",\n \"concept\": true,\n \"verlengingstermijn\": \"P5D\"\n}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "aed24f06-4d96-4a49-8754-d4d0144c4eac", + "type": "text/javascript", + "packages": {}, + "exec": [ + "if(pm.response.code == 201) {", + " var res = pm.response.json();", + "pm.environment.set(\"zaaktype_url\", res.url);", + "pm.environment.set(\"zaaktype_identificatie\", res.identificatie);", + "", + "}" + ] + } + }, + { + "listen": "prerequest", + "script": { + "id": "8f165fea-4d39-4e12-9b45-ba2dcf98f8f4", + "type": "text/javascript", + "packages": {}, + "exec": [ + "var uuid = require('uuid');", + "var myUUID = uuid.v4(); ", + "pm.environment.set(\"random_identificatie\", myUUID);", + "" + ] + } + } + ] + }, + { + "id": "7c0ff6e0-44ca-448b-94e8-0481afdaf7fc", + "name": "Publish Besluittype Copy", + "request": { + "url": { + "path": [ + "publish" + ], + "host": [ + "{{besluittype_url}}" + ], + "query": [], + "variable": [] + }, + "method": "POST" + }, + "response": [], + "event": [] + }, + { + "id": "70190c5d-c27a-4338-91bd-a030a86d19c3", + "name": "Publish Zaaktype Copy", + "request": { + "url": { + "path": [ + "publish" + ], + "host": [ + "{{zaaktype_url}}" + ], + "query": [], + "variable": [] + }, + "method": "POST" + }, + "response": [], + "event": [] + }, + { + "id": "fb45aa9c-6a8b-446b-b087-708764dd5326", + "name": "Zaak Copy", + "request": { + "url": { + "path": [ + "zaken" + ], + "host": [ + "{{zrc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Accept-Crs", + "value": "EPSG:4326" + }, + { + "key": "Content-Crs", + "value": "EPSG:4326" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\r\n \"bronorganisatie\": \"000000000\",\r\n \"omschrijving\": \"string\",\r\n \"toelichting\": \"string\",\r\n \"registratiedatum\": \"2019-04-09\",\r\n \"verantwoordelijkeOrganisatie\": \"000000000\",\r\n \"zaaktype\": \"{{zaaktype_url}}\",\r\n \"startdatum\": \"2019-04-09\",\r\n \"einddatumGepland\": \"2019-04-20\",\r\n \"uiterlijkeEinddatumAfdoening\": \"2019-04-09\",\r\n \"publicatiedatum\": \"2019-04-09\",\r\n \"vertrouwelijkheidaanduiding\": \"openbaar\",\r\n \"betalingsindicatie\": \"geheel\",\r\n \"laatsteBetaalDatum\": \"2019-01-01\",\r\n \"zaakgeometrie\": {\r\n \"type\": \"Point\",\r\n \"coordinates\": [\r\n 53,\r\n 5\r\n ]\r\n },\r\n \"opschorting\": {\r\n \"indicatie\": true,\r\n \"reden\": \"string\"\r\n },\r\n \"selectielijstklasse\": \"{{selectielijstklasse_url}}\",\r\n \"archiefstatus\": \"nog_te_archiveren\",\r\n \"deelzaaktypen\" : [\"{{deelzaaktype_url}}\"]\r\n}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "dc0bb739-eab4-4484-9448-b08854c39e62", + "type": "text/javascript", + "packages": {}, + "exec": [ + "if(pm.response.code == 201) {", + " pm.environment.set(\"created_zaak_url\", pm.response.json().url);", + "}" + ] + } + }, + { + "listen": "prerequest", + "script": { + "id": "0d486ef9-4d32-4354-bf06-c0dbde558e00", + "type": "text/javascript", + "packages": {}, + "exec": [ + "" + ] + } + } + ] + }, + { + "id": "8109243b-3975-4f05-a8fc-81682aca179a", + "name": "Besluit Copy", + "request": { + "url": { + "path": [ + "besluiten" + ], + "host": [ + "{{brc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\r\n \"verantwoordelijkeOrganisatie\": \"000000000\",\r\n \"besluittype\": \"{{besluittype_url}}\",\r\n \"zaak\":\"{{created_zaak_url}}\",\r\n \"datum\": \"2019-01-01\",\r\n \"ingangsdatum\": \"2018-01-01\"\r\n}" + } + }, + "response": [], + "event": [ + { + "listen": "prerequest", + "script": { + "id": "2ae0ba6b-014f-4d2b-9ff9-722162eddfbc", + "type": "text/javascript", + "packages": {}, + "exec": [ + "" + ] + } + }, + { + "listen": "test", + "script": { + "id": "c15bc620-cadb-426b-9b2e-49faf96b10e5", + "type": "text/javascript", + "packages": {}, + "exec": [ + "" + ] + } + } + ] + }, + { + "id": "43a702f8-bce7-4845-831b-05d5d27301f4", + "name": "brc-006a zaak-besluitrelatie ook in ZRC", + "request": { + "url": { + "path": [ + "besluiten" + ], + "host": [ + "{{created_zaak_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Accept-Crs", + "value": "EPSG:4326" + } + ], + "method": "GET" + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "d8af9455-1cf5-47ce-bffb-7daf3d80f796", + "type": "text/javascript", + "packages": {}, + "exec": [ + "\r", + "pm.test(\"Brc-006a Besluit terug te vinden in ZRC\", function() {\r", + " pm.response.to.have.status(200);\r", + " pm.expect(pm.response.json().length).to.be.equal(1);\r", + "});" + ] + } + } + ] + } + ], + "event": [] + }, + { + "id": "651bb977-c67e-4375-9c0a-55367b6e4abf", + "name": "brc-007", + "item": [ + { + "id": "7a8d5bc2-aec9-4f5a-877c-00cd6784778a", + "name": "BT", + "request": { + "url": { + "path": [ + "besluittypen" + ], + "host": [ + "{{ztc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n \"catalogus\": \"{{catalogus_url}}\",\n \"omschrijving\": \"{{random_omschrijving}}\",\n \"zaaktypen\": [],\n\t\"publicatieIndicatie\": false,\n\t\"informatieobjecttypen\": [\"{{informatieobject_omschrijving}}\"],\n\t\"beginGeldigheid\": \"2019-01-01\"\n}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "35e51726-f49f-4e1e-b8e1-a698d5db35d3", + "type": "text/javascript", + "packages": {}, + "exec": [ + "pm.environment.set(\"besluittype_omschrijving\", pm.response.json().omschrijving);\r", + "pm.environment.set(\"besluittype_url\", pm.response.json().url);" + ] + } + }, + { + "listen": "prerequest", + "script": { + "id": "53e13845-d776-433a-a18b-c01b5c1cd25d", + "type": "text/javascript", + "packages": {}, + "exec": [ + "var uuid = require('uuid');\r", + "var myUUID = uuid.v4(); \r", + "pm.environment.set(\"random_omschrijving\",myUUID);" + ] + } + } + ] + }, + { + "id": "763ff6f8-63bd-4b5a-8556-2640b9fd646b", + "name": "ZT", + "request": { + "url": { + "path": [ + "zaaktypen" + ], + "host": [ + "{{ztc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n \"identificatie\": \"{{random_identificatie}}\",\n \"omschrijving\": \"zrc_tests_1\",\n \"vertrouwelijkheidaanduiding\": \"openbaar\",\n \"doel\": \"test doel\",\n \"verantwoordelijke\": \"X\",\n \"aanleiding\": \"test aanleiding\",\n \"indicatieInternOfExtern\": \"extern\",\n \"handelingInitiator\": \"indienen\",\n \"onderwerp\": \"openbare ruimte\",\n \"handelingBehandelaar\": \"behandelen\",\n \"doorlooptijd\": \"P10D\",\n \"opschortingEnAanhoudingMogelijk\": false,\n \"verlengingMogelijk\": true,\n \"publicatieIndicatie\": false,\n \"productenOfDiensten\": [\n \"https://ref.tst.vng.cloud/standaard/\"\n ],\n \"selectielijstProcestype\": \"{{procestype_procestermijn_nihil_url}}\",\n \"referentieproces\": {\n \"naam\": \"test\",\n \"link\": \"\"\n },\n \"deelzaaktypen\": [\n \"{{deelzaaktype_identificatie}}\"\n ],\n \"catalogus\": \"{{catalogus_url}}\",\n \"statustypen\": [],\n \"resultaattypen\": [],\n \"eigenschappen\": [],\n \"informatieobjecttypen\": [],\n \"besluittypen\": [],\n \"gerelateerdeZaaktypen\": [],\n \"beginGeldigheid\": \"2019-01-01\",\n \"versiedatum\": \"2019-01-01\",\n \"concept\": true,\n \"verlengingstermijn\": \"P5D\"\n}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "d7965c21-8999-47fc-877e-fe66821b6529", + "type": "text/javascript", + "packages": {}, + "exec": [ + "if(pm.response.code == 201) {", + " var res = pm.response.json();", + "pm.environment.set(\"zaaktype_url\", res.url);", + "pm.environment.set(\"zaaktype_identificatie\", res.identificatie);", + "", + "}" + ] + } + }, + { + "listen": "prerequest", + "script": { + "id": "164617ea-830e-4eeb-8f7f-7405c5513baa", + "type": "text/javascript", + "packages": {}, + "exec": [ + "var uuid = require('uuid');", + "var myUUID = uuid.v4(); ", + "pm.environment.set(\"random_identificatie\", myUUID);", + "" + ] + } + } + ] + }, + { + "id": "95a06bfe-d507-4e74-8c10-76016996b48b", + "name": "Publish Besluittype", + "request": { + "url": { + "path": [ + "publish" + ], + "host": [ + "{{besluittype_url}}" + ], + "query": [], + "variable": [] + }, + "method": "POST" + }, + "response": [], + "event": [] + }, + { + "id": "f5bb7363-9201-45dc-ba47-6c3dea3965eb", + "name": "Publish ZT", + "request": { + "url": { + "path": [ + "publish" + ], + "host": [ + "{{zaaktype_url}}" + ], + "query": [], + "variable": [] + }, + "method": "POST" + }, + "response": [], + "event": [] + }, + { + "id": "b95e0374-e429-4923-8a7a-70a240da0eb9", + "name": "Zaak", + "request": { + "url": { + "path": [ + "zaken" + ], + "host": [ + "{{zrc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Accept-Crs", + "value": "EPSG:4326" + }, + { + "key": "Content-Crs", + "value": "EPSG:4326" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\r\n \"bronorganisatie\": \"000000000\",\r\n \"omschrijving\": \"string\",\r\n \"toelichting\": \"string\",\r\n \"registratiedatum\": \"2019-04-09\",\r\n \"verantwoordelijkeOrganisatie\": \"000000000\",\r\n \"zaaktype\": \"{{zaaktype_url}}\",\r\n \"startdatum\": \"2019-04-09\",\r\n \"einddatumGepland\": \"2019-04-20\",\r\n \"uiterlijkeEinddatumAfdoening\": \"2019-04-09\",\r\n \"publicatiedatum\": \"2019-04-09\",\r\n \"vertrouwelijkheidaanduiding\": \"openbaar\",\r\n \"betalingsindicatie\": \"geheel\",\r\n \"laatsteBetaalDatum\": \"2019-01-01\",\r\n \"zaakgeometrie\": {\r\n \"type\": \"Point\",\r\n \"coordinates\": [\r\n 53,\r\n 5\r\n ]\r\n },\r\n \"opschorting\": {\r\n \"indicatie\": true,\r\n \"reden\": \"string\"\r\n },\r\n \"selectielijstklasse\": \"{{selectielijstklasse_url}}\",\r\n \"archiefstatus\": \"nog_te_archiveren\",\r\n \"deelzaaktypen\" : [\"{{deelzaaktype_url}}\"]\r\n}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "bbb49d77-2833-4407-bab2-be838f9cb9a5", + "type": "text/javascript", + "packages": {}, + "exec": [ + "if(pm.response.code == 201) {", + " pm.environment.set(\"created_zaak_url\", pm.response.json().url);", + "}" + ] + } + }, + { + "listen": "prerequest", + "script": { + "id": "94ceb627-19c1-483e-9348-00b0e49f93fb", + "type": "text/javascript", + "packages": {}, + "exec": [ + "" + ] + } + } + ] + }, + { + "id": "3ac32607-949f-4656-8d41-fdcbf547cd47", + "name": "Brc-007a zaak besluit relatie niet mogelijk", + "request": { + "url": { + "path": [ + "besluiten" + ], + "host": [ + "{{brc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\r\n \"verantwoordelijkeOrganisatie\": \"000000000\",\r\n \"besluittype\": \"{{besluittype_url}}\",\r\n \"zaak\":\"{{created_zaak_url}}\",\r\n \"datum\": \"2019-01-01\",\r\n \"ingangsdatum\": \"2018-01-01\"\r\n}" + } + }, + "response": [], + "event": [ + { + "listen": "prerequest", + "script": { + "id": "e268d62f-f8d4-41d4-92dd-0067fb58b49e", + "type": "text/javascript", + "packages": {}, + "exec": [ + "" + ] + } + }, + { + "listen": "test", + "script": { + "id": "35042cf9-5f41-46d7-9c60-16694483557e", + "type": "text/javascript", + "packages": {}, + "exec": [ + "pm.test(\"Besl;uit -zaak met niet gerelateerde types geeft 400\", function() {\r", + " pm.response.to.have.status(400);\r", + " \r", + " // Verify that the 400 is returned for the correct reason\r", + " var error = pm.response.json()[\"invalidParams\"][0];\r", + " pm.expect(error.name).to.be.equal(\"nonFieldErrors\");\r", + "});" + ] + } + } + ] + } + ], + "event": [] + }, + { + "id": "d72f8bb2-c81c-4646-a4e2-a73eccd8ba34", + "name": "brc-008", + "item": [ + { + "id": "67a24517-76c3-487e-8d38-4ed2bab59bca", + "name": "BT", + "request": { + "url": { + "path": [ + "besluittypen" + ], + "host": [ + "{{ztc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n \"catalogus\": \"{{catalogus_url}}\",\n \"omschrijving\": \"{{random_omschrijving}}\",\n \"zaaktypen\": [],\n\t\"publicatieIndicatie\": false,\n\t\"informatieobjecttypen\": [\"{{informatieobject_omschrijving}}\"],\n\t\"beginGeldigheid\": \"2019-01-01\"\n}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "40607ccb-98f7-472e-a004-5409ce0fe3d0", + "type": "text/javascript", + "packages": {}, + "exec": [ + "pm.environment.set(\"besluittype_omschrijving\", pm.response.json().omschrijving);\r", + "pm.environment.set(\"besluittype_url\", pm.response.json().url);" + ] + } + }, + { + "listen": "prerequest", + "script": { + "id": "3bc80540-9670-44e6-808d-ce7f54aaddf2", + "type": "text/javascript", + "packages": {}, + "exec": [ + "var uuid = require('uuid');\r", + "var myUUID = uuid.v4(); \r", + "pm.environment.set(\"random_omschrijving\",myUUID);" + ] + } + } + ] + }, + { + "id": "938e1cd3-6d17-4e6b-b2f3-5dc27083f5b1", + "name": "IOT", + "request": { + "url": { + "path": [ + "informatieobjecttypen" + ], + "host": [ + "{{ztc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n\t\"catalogus\": \"{{catalogus_url}}\",\n\t\"omschrijving\": \"{{informatieobject_omschrijving}}\",\n\t\"vertrouwelijkheidaanduiding\": \"openbaar\",\n\t\"beginGeldigheid\": \"2019-01-01\",\n\t\"informatieobjectcategorie\": \"document\"\n}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "15a68a9c-d77c-491c-9016-deca075066ff", + "type": "text/javascript", + "packages": {}, + "exec": [ + "if(pm.response.code == 201) {\r", + " pm.environment.set(\"informatieobjecttype_url\", pm.response.json().url);\r", + "}" + ] + } + }, + { + "listen": "prerequest", + "script": { + "id": "614b8b6d-fb1e-44e6-b14b-fb6938ec8e44", + "type": "text/javascript", + "packages": {}, + "exec": [ + "var uuid = require('uuid');\r", + "var myUUID = uuid.v4(); \r", + "pm.environment.set(\"informatieobject_omschrijving\", myUUID);" + ] + } + } + ] + }, + { + "id": "3dce8272-e973-4888-95b5-2b0691ea8b11", + "name": "Publish Besluittype", + "request": { + "url": { + "path": [ + "publish" + ], + "host": [ + "{{besluittype_url}}" + ], + "query": [], + "variable": [] + }, + "method": "POST" + }, + "response": [], + "event": [] + }, + { + "id": "2ab0ae65-9acd-46d6-ad6c-f9b5c45c2831", + "name": "Publish IOT", + "request": { + "url": { + "path": [ + "publish" + ], + "host": [ + "{{informatieobjecttype_url}}" + ], + "query": [], + "variable": [] + }, + "method": "POST" + }, + "response": [], + "event": [] + }, + { + "id": "5920a2e6-d8d5-457a-a7ae-a95374d33c64", + "name": "EIO", + "request": { + "url": { + "path": [ + "enkelvoudiginformatieobjecten" + ], + "host": [ + "{{drc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n\t\"bronorganisatie\": \"000000000\",\n\t\"creatiedatum\": \"2019-01-01\",\n\t\"titel\": \"testobject\",\n\t\"auteur\": \"testauteur\",\n\t\"taal\": \"eng\",\n\t\"inhoud\": \"c3RyaW5n\",\n\t\"informatieobjecttype\": \"{{informatieobjecttype_url}}\",\n \"bestandsnaam\": \"iets.pdf\",\n\t\"bestandsomvang\": 6\n}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "085222fb-89ea-462e-862a-a1f940e70fd4", + "type": "text/javascript", + "packages": {}, + "exec": [ + "pm.test(\"EnkelvoudigInformatieObject aanmaken met valide gegevens geeft 201\", function() {", + " pm.response.to.have.status(201);", + "});", + "", + "pm.environment.set(\"informatieobject_url\", pm.response.json().url);", + "" + ] + } + }, + { + "listen": "prerequest", + "script": { + "id": "e2b4c6b3-8c3f-4cfc-9568-e54f16aa9d2d", + "type": "text/javascript", + "packages": {}, + "exec": [ + "" + ] + } + } + ] + }, + { + "id": "6d665356-7f86-4cc3-975a-24fc9a80de68", + "name": "Besluit", + "request": { + "url": { + "path": [ + "besluiten" + ], + "host": [ + "{{brc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\r\n \"verantwoordelijkeOrganisatie\": \"000000000\",\r\n \"besluittype\": \"{{besluittype_url}}\",\r\n \"zaak\":null,\r\n \"datum\": \"2019-01-01\",\r\n \"ingangsdatum\": \"2018-01-01\"\r\n}" + } + }, + "response": [], + "event": [ + { + "listen": "prerequest", + "script": { + "id": "7fce5075-4557-4642-9017-097a0d36aabb", + "type": "text/javascript", + "packages": {}, + "exec": [ + "" + ] + } + }, + { + "listen": "test", + "script": { + "id": "7710c8bf-c8ce-4f69-a9f2-d02861c1f98b", + "type": "text/javascript", + "packages": {}, + "exec": [ + "pm.environment.set(\"besluit_url\", pm.response.json().url);" + ] + } + } + ] + }, + { + "id": "81e329e0-069e-4b44-a84d-0556d47e3977", + "name": "(brc-008a) BesluitInformatieObject aanmaken bij Besluit met informatieobjecttype niet in Besluit.besluittype.informatieobjecttypen is onmogelijk", + "request": { + "url": { + "path": [ + "besluitinformatieobjecten" + ], + "host": [ + "{{brc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\r\n \"informatieobject\": \"{{informatieobject_url}}\",\r\n \"besluit\": \"{{besluit_url}}\"\r\n}" + } + }, + "response": [], + "event": [ + { + "listen": "prerequest", + "script": { + "id": "baa02a04-e754-4ecd-aa7e-a30a2d257a92", + "type": "text/javascript", + "packages": {}, + "exec": [ + "" + ] + } + }, + { + "listen": "test", + "script": { + "id": "e1465167-ae44-44ab-a89e-0ce277c150cd", + "type": "text/javascript", + "packages": {}, + "exec": [ + "pm.test(\"BesluitInformatieObject aanmaken bij Besluit met informatieobjecttype niet in Besluit.besluittype.informatieobjecttypen geeft 400\", function() {", + " pm.response.to.have.status(400);", + " ", + " // Verify that the 400 is returned for the correct reason", + " var error = pm.response.json()[\"invalidParams\"][0];", + " pm.expect(error.name).to.be.equal(\"nonFieldErrors\");", + "});" + ] + } + } + ] + } + ], + "event": [] + }, + { + "id": "a1f34b2b-b22f-49b0-a7b4-ab52239cd67f", + "name": "brc-009", + "item": [ + { + "id": "0484b7ae-1483-4b36-8be8-8d96dd9a3f85", + "name": "IOT", + "request": { + "url": { + "path": [ + "informatieobjecttypen" + ], + "host": [ + "{{ztc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n\t\"catalogus\": \"{{catalogus_url}}\",\n\t\"omschrijving\": \"{{informatieobject_omschrijving}}\",\n\t\"vertrouwelijkheidaanduiding\": \"openbaar\",\n\t\"beginGeldigheid\": \"2019-01-01\",\n\t\"informatieobjectcategorie\": \"document\"\n}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "68020057-1990-46ad-b1ec-112f42a29380", + "type": "text/javascript", + "packages": {}, + "exec": [ + "if(pm.response.code == 201) {\r", + " pm.environment.set(\"informatieobjecttype_url\", pm.response.json().url);\r", + "}" + ] + } + }, + { + "listen": "prerequest", + "script": { + "id": "3fc5eef5-6815-4c4a-b14f-f4909d942084", + "type": "text/javascript", + "packages": {}, + "exec": [ + "var uuid = require('uuid');\r", + "var myUUID = uuid.v4(); \r", + "pm.environment.set(\"informatieobject_omschrijving\", myUUID);" + ] + } + } + ] + }, + { + "id": "fafc4298-4d6f-49f5-a8aa-2a19b3b0eedc", + "name": "BT", + "request": { + "url": { + "path": [ + "besluittypen" + ], + "host": [ + "{{ztc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n \"catalogus\": \"{{catalogus_url}}\",\n \"omschrijving\": \"{{random_omschrijving}}\",\n \"zaaktypen\": [],\n\t\"publicatieIndicatie\": false,\n\t\"informatieobjecttypen\": [\"{{informatieobject_omschrijving}}\"],\n\t\"beginGeldigheid\": \"2019-01-01\"\n}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "cff822d5-48a3-4db0-a033-d5c5f39d04c7", + "type": "text/javascript", + "packages": {}, + "exec": [ + "pm.environment.set(\"besluittype_omschrijving\", pm.response.json().omschrijving);\r", + "pm.environment.set(\"besluittype_url\", pm.response.json().url);" + ] + } + }, + { + "listen": "prerequest", + "script": { + "id": "65e763ba-2cff-4683-bbca-eb5dd7c98765", + "type": "text/javascript", + "packages": {}, + "exec": [ + "var uuid = require('uuid');\r", + "var myUUID = uuid.v4(); \r", + "pm.environment.set(\"random_omschrijving\",myUUID);" + ] + } + } + ] + }, + { + "id": "3290793d-73cc-4cdc-9138-965df4ed18f5", + "name": "Publish Besluittype Copy", + "request": { + "url": { + "path": [ + "publish" + ], + "host": [ + "{{besluittype_url}}" + ], + "query": [], + "variable": [] + }, + "method": "POST" + }, + "response": [], + "event": [] + }, + { + "id": "07420136-c30d-4af4-9ab3-17b906db2b35", + "name": "Publish IOT Copy", + "request": { + "url": { + "path": [ + "publish" + ], + "host": [ + "{{informatieobjecttype_url}}" + ], + "query": [], + "variable": [] + }, + "method": "POST" + }, + "response": [], + "event": [] + }, + { + "id": "ed68ab01-fe62-4bfb-8354-c6dd40607404", + "name": "Besluit Copy", + "request": { + "url": { + "path": [ + "besluiten" + ], + "host": [ + "{{brc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\r\n \"verantwoordelijkeOrganisatie\": \"000000000\",\r\n \"besluittype\": \"{{besluittype_url}}\",\r\n \"zaak\":null,\r\n \"datum\": \"2019-01-01\",\r\n \"ingangsdatum\": \"2018-01-01\"\r\n}" + } + }, + "response": [], + "event": [ + { + "listen": "prerequest", + "script": { + "id": "c32fe1ea-7ef6-48fd-97d9-86845de75dc1", + "type": "text/javascript", + "packages": {}, + "exec": [ + "" + ] + } + }, + { + "listen": "test", + "script": { + "id": "9abd3e73-3297-4c4a-81cc-1a3a4ee113c5", + "type": "text/javascript", + "packages": {}, + "exec": [ + "pm.environment.set(\"besluit_url\", pm.response.json().url);" + ] + } + } + ] + }, + { + "id": "a511efeb-5c5b-4326-90c9-37f43bfbcee5", + "name": "EIO Copy", + "request": { + "url": { + "path": [ + "enkelvoudiginformatieobjecten" + ], + "host": [ + "{{drc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n\t\"bronorganisatie\": \"000000000\",\n\t\"creatiedatum\": \"2019-01-01\",\n\t\"titel\": \"testobject\",\n\t\"auteur\": \"testauteur\",\n\t\"taal\": \"eng\",\n\t\"inhoud\": \"c3RyaW5n\",\n\t\"informatieobjecttype\": \"{{informatieobjecttype_url}}\",\n \"bestandsnaam\": \"iets.pdf\",\n\t\"bestandsomvang\": 6\n}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "798521af-cd4a-4b56-a61f-7e3ef0c62149", + "type": "text/javascript", + "packages": {}, + "exec": [ + "pm.test(\"EnkelvoudigInformatieObject aanmaken met valide gegevens geeft 201\", function() {", + " pm.response.to.have.status(201);", + "});", + "", + "pm.environment.set(\"informatieobject_url\", pm.response.json().url);", + "" + ] + } + }, + { + "listen": "prerequest", + "script": { + "id": "545cfd42-e1ea-45e1-9c5e-6975d3797cfd", + "type": "text/javascript", + "packages": {}, + "exec": [ + "" + ] + } + } + ] + }, + { + "id": "32525e1d-3e5c-411c-a037-abc970472ba3", + "name": "BesluitInformatieObject", + "request": { + "url": { + "path": [ + "besluitinformatieobjecten" + ], + "host": [ + "{{brc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\r\n \"informatieobject\": \"{{informatieobject_url}}\",\r\n \"besluit\": \"{{besluit_url}}\"\r\n}" + } + }, + "response": [], + "event": [ + { + "listen": "prerequest", + "script": { + "id": "7d015cf5-1968-4145-b488-c6d92f2ce9cb", + "type": "text/javascript", + "packages": {}, + "exec": [ + "" + ] + } + }, + { + "listen": "test", + "script": { + "id": "f8cbf1df-13b6-4dd5-9371-ecac59303f7e", + "type": "text/javascript", + "packages": {}, + "exec": [ + "pm.environment.set(\"besluitinformatieobject_url\", pm.response.json().url);" + ] + } + } + ] + }, + { + "id": "4dca988a-2d3e-454b-a5fd-2983be74e4e4", + "name": "(brc-009a) Besluit verwijderen cascade door naar gerelateerde BesluitInformatieObjecten Copy", + "request": { + "url": { + "path": [ + "besluitinformatieobjecten" + ], + "host": [ + "{{brc_url}}" + ], + "query": [ + { + "key": "besluit", + "value": "{{besluit_url}}" + } + ], + "variable": [] + }, + "method": "GET" + }, + "response": [], + "event": [ + { + "listen": "prerequest", + "script": { + "id": "48af7811-11a0-4960-b41b-2416591c3042", + "type": "text/javascript", + "packages": {}, + "exec": [ + "pm.variables.set(\"encoded_url\", encodeURIComponent(pm.environment.get(\"created_besluit_url\")))" + ] + } + }, + { + "listen": "test", + "script": { + "id": "bc8c03ef-7b92-4c10-8496-b737ac198e00", + "type": "text/javascript", + "packages": {}, + "exec": [ + "pm.test(\"Besluit heeft gerelateerd BesluitInformatieObjecten\", function() {", + " var res = pm.response.json();", + " pm.expect(Array.isArray(res));", + " pm.expect(res.length).to.be.equal(1);", + "});", + "", + "" + ] + } + } + ] + }, + { + "id": "b8e7c06d-7ee4-4887-a23d-9f645e387141", + "name": "(brc-009b) relatie ook in drc", + "request": { + "url": { + "path": [ + "objectinformatieobjecten" + ], + "host": [ + "{{drc_url}}" + ], + "query": [ + { + "key": "object", + "value": "{{besluit_url}}" + }, + { + "key": "informatieobject", + "value": "{{informatieobject_url}}" + } + ], + "variable": [] + }, + "method": "GET" + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "fe5ec721-8657-4e50-b71d-d898fa2616cf", + "type": "text/javascript", + "packages": {}, + "exec": [ + "pm.test(\"Drc heeft relatie besluit -eio\", function() {", + " var res = pm.response.json();", + " pm.expect(Array.isArray(res));", + " pm.expect(res.length).to.be.equal(1);", + "});", + "" + ] + } + } + ] + }, + { + "id": "672747c4-ce56-4ed4-ad0e-c0dc41549c54", + "name": "Delete created Besluit", + "request": { + "url": { + "host": [ + "{{besluit_url}}" + ], + "query": [], + "variable": [] + }, + "method": "DELETE", + "body": { + "mode": "raw", + "raw": "" + } + }, + "response": [], + "event": [] + }, + { + "id": "1781d84e-9aa8-44cf-b7be-41fbb560ea2f", + "name": "(brc-009c) Besluit verwijderen cascade door naar gerelateerde BesluitInformatieObjecten", + "request": { + "url": { + "path": [ + "besluitinformatieobjecten" + ], + "host": [ + "{{brc_url}}" + ], + "query": [ + { + "key": "besluit", + "value": "{{besluit_url}}" + } + ], + "variable": [] + }, + "method": "GET" + }, + "response": [], + "event": [ + { + "listen": "prerequest", + "script": { + "id": "80c45f81-b024-4f3b-b279-bac1b8befa8c", + "type": "text/javascript", + "packages": {}, + "exec": [ + "pm.variables.set(\"encoded_url\", encodeURIComponent(pm.environment.get(\"created_besluit_url\")))" + ] + } + }, + { + "listen": "test", + "script": { + "id": "c5b3bc8f-83f3-48f3-8d81-fc1754f26fc3", + "type": "text/javascript", + "packages": {}, + "exec": [ + "pm.test(\"Besluit verwijderen verwijdert ook alle gerelateerde BesluitInformatieObjecten uit het BRC\", function() {", + " var res = pm.response.json();", + " pm.expect(Array.isArray(res));", + " pm.expect(res.length).to.be.equal(0);", + "});", + "", + "" + ] + } + } + ] + }, + { + "id": "96b02f0f-047d-4998-bbb2-319b8865731a", + "name": "(brc-009d) Besluit verwijderen cascade door naar gerelateerde audit trail", + "request": { + "url": { + "path": [ + "audittrail" + ], + "host": [ + "{{besluit_url}}" + ], + "query": [], + "variable": [] + }, + "method": "GET" + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "c324e55d-f874-4d65-937b-7cb5a49985cb", + "type": "text/javascript", + "packages": {}, + "exec": [ + "pm.test(\"Besluit verwijderen verwijdert ook de gerelateerde audit trail uit het BRC\", function() {", + " pm.response.to.have.status(404);", + "});", + "", + "" + ] + } + } + ] + }, + { + "id": "14b507df-a81d-4667-9487-359b2b45367e", + "name": "(brc-009e) Besluit verwijderen cascade door naar drc", + "request": { + "url": { + "path": [ + "objectinformatieobjecten" + ], + "host": [ + "{{drc_url}}" + ], + "query": [ + { + "key": "object", + "value": "{{besluit_url}}" + }, + { + "key": "informatieobject", + "value": "{{informatieobject_url}}" + } + ], + "variable": [] + }, + "method": "GET" + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "6b128734-01b9-40eb-a2d5-5b832b440a4e", + "type": "text/javascript", + "packages": {}, + "exec": [ + "pm.test(\"Drc heeft geen relatie besluit -eio\", function() {", + " var res = pm.response.json();", + " pm.expect(Array.isArray(res));", + " pm.expect(res.length).to.be.equal(0);", + "});", + "", + "" + ] + } + } + ] + } + ], + "event": [] + } + ], + "event": [ + { + "listen": "prerequest", + "script": { + "id": "eaf078bb-c3a5-4154-99bf-b977ef9bbf28", + "type": "text/javascript", + "exec": [ + "" + ] + } + }, + { + "listen": "test", + "script": { + "id": "10655cc2-1c35-473b-bbbf-d2039e7e2956", + "type": "text/javascript", + "exec": [ + "" + ] + } + } + ] + }, + { + "id": "b81d8542-ecd4-4785-9519-07be6259dc3b", + "name": "ztc", + "description": { + "content": "Bevat alle business logic tests voor de Zaaktypecatalogus (ZTC)", + "type": "text/plain" + }, + "item": [ + { + "id": "c2fbe716-f1c5-49c0-9c2b-6a59d7176cbf", + "name": "setUp", + "item": [ + { + "id": "5bd0290c-477c-431a-a220-726a63884c3a", + "name": "set full token", + "request": { + "url": { + "path": [ + "catalogussen" + ], + "host": [ + "{{ztc_url}}" + ], + "query": [], + "variable": [] + }, + "method": "GET" + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "919863e7-b935-4677-8eef-c8aaef4e1d89", + "type": "text/javascript", + "packages": {}, + "exec": [ + "" + ] + } + }, + { + "listen": "prerequest", + "script": { + "id": "71b33428-e302-4e03-a724-6ea960aac59f", + "type": "text/javascript", + "packages": {}, + "exec": [ + " pm.environment.set(\"jwt_token\", pm.environment.get(\"jwt_full\"));\r", + " var origId = pm.environment.get(\"_original_client_id\");", + " var origSecret = pm.environment.get(\"_original_secret\");", + " if (origId) { pm.environment.set(\"client_id\", origId); }", + " if (origSecret) { pm.environment.set(\"secret\", origSecret); }", + " pm.environment.set(\"secret\", pm.environment.get(\"secret\") || \"procest-admin-secret-key-for-testing\");", + " " + ] + } + } + ] + }, + { + "id": "729714c1-d825-4ceb-ae67-7b6eb0fe9e20", + "name": "(ZTC) Retrieve existing Catalogus", + "request": { + "url": { + "path": [ + "catalogussen" + ], + "host": [ + "{{ztc_url}}" + ], + "query": [ + { + "key": "domein", + "value": "ZGWT" + } + ], + "variable": [] + }, + "method": "GET" + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "be449f56-056f-4a5f-ae61-4e57ee568841", + "type": "text/javascript", + "packages": {}, + "exec": [ + "pm.environment.unset(\"besluittype_url\");", + "pm.environment.unset(\"informatieobjecttype_url\");" + ] + } + }, + { + "listen": "prerequest", + "script": { + "id": "28cb8ffa-b238-429b-a2ee-804c53265f2f", + "type": "text/javascript", + "packages": {}, + "exec": [ + "pm.environment.unset(\"selectielijst_page\")" + ] + } + } + ] + }, + { + "id": "6ef05504-4d10-4225-8387-0e62e9ed23dd", + "name": "Get Resultaattypeomschrijving", + "request": { + "url": { + "path": [ + "resultaattypeomschrijvingen" + ], + "host": [ + "{{referentielijst_url}}" + ], + "query": [], + "variable": [] + }, + "method": "GET" + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "82bc342d-2bd8-481d-898d-afeb62222803", + "type": "text/javascript", + "exec": [ + "pm.environment.set(\"resultaattypeomschrijving_url\", pm.response.json()[0].url);" + ] + } + } + ] + }, + { + "id": "671f33af-d1cc-487d-9142-0023390ecd17", + "name": "Create Besluittype", + "request": { + "url": { + "path": [ + "besluittypen" + ], + "host": [ + "{{ztc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n \"catalogus\": \"{{catalogus_url}}\",\n \"omschrijving\": \"test\",\n \"zaaktypen\": [],\n\t\"publicatieIndicatie\": false,\n\t\"informatieobjecttypen\": [],\n\t\"beginGeldigheid\": \"2019-01-01\"\n}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "483470dd-df7d-4362-b1b1-fadf610ece7a", + "type": "text/javascript", + "exec": [ + "pm.environment.set(\"besluittype_url\", pm.response.json().url);" + ] + } + } + ] + }, + { + "id": "d954c187-805f-4596-bfe2-d556fc715a16", + "name": "Create InformatieObjecttype", + "request": { + "url": { + "path": [ + "informatieobjecttypen" + ], + "host": [ + "{{ztc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n\t\"catalogus\": \"{{catalogus_url}}\",\n\t\"omschrijving\": \"informatieobject1\",\n\t\"vertrouwelijkheidaanduiding\": \"openbaar\",\n\t\"beginGeldigheid\": \"2019-01-01\"\n}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "a2b61a57-758a-4845-83bb-68eea4c9f0f7", + "type": "text/javascript", + "packages": {}, + "exec": [ + "pm.environment.set(\"informatieobjecttype_url\", pm.response.json().url);", + "pm.environment.set(\"informatieobjecttype_body\", pm.request.body.raw);" + ] + } + } + ] + }, + { + "id": "2ceb96d2-1e09-471c-9b22-9b22bd3c27f7", + "name": "Create Applicatie without scope geforceerd_verwijderen", + "request": { + "url": { + "path": [ + "applicaties" + ], + "host": [ + "{{ac_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n \"clientIds\": [\n \"{{client_id_limited}}\"\n ],\n \"label\": \"Demo User for catalogi concept tests\",\n \"heeftAlleAutorisaties\": false,\n \"autorisaties\": [\n {\n \"component\": \"ztc\",\n \"componentWeergave\": \"Zaaktypecatalogus\",\n \"scopes\": [\n \t\"catalogi.lezen\",\n \"catalogi.schrijven\"\n ]\n }\n ]\n}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "2cce018c-9537-4ecc-a61b-a485e038f987", + "type": "text/javascript", + "exec": [ + "pm.environment.set(\"applicatie_url\", pm.response.json().url);" + ] + } + } + ] + } + ], + "event": [] + }, + { + "id": "18f9973a-0ccf-433e-966d-97eac26829e2", + "name": "ztc-001", + "item": [ + { + "id": "6217125f-9cc8-4ad7-bf86-f370505a83c1", + "name": "(ztc-001a) Zaaktype aanmaken is mogelijk", + "request": { + "url": { + "path": [ + "zaaktypen" + ], + "host": [ + "{{ztc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n\t\"identificatie\": \"{{random_identificatie-ztc-01}}\",\n \"omschrijving\": \"Melding Openbare Ruimte\",\n \"vertrouwelijkheidaanduiding\": \"openbaar\",\n \"doel\": \"test doel\",\n \"verantwoordelijke\":\"X\",\n \"aanleiding\": \"test aanleiding\",\n \"indicatieInternOfExtern\": \"extern\",\n \"handelingInitiator\": \"indienen\",\n \"onderwerp\": \"openbare ruimte\",\n \"handelingBehandelaar\": \"behandelen\",\n \"doorlooptijd\": \"P10D\",\n \"opschortingEnAanhoudingMogelijk\": false,\n \"verlengingMogelijk\": false,\n \"publicatieIndicatie\": false,\n \"productenOfDiensten\": [\n \"https://ref.tst.vng.cloud/standaard/\"\n ],\n \"selectielijstProcestype\": \"{{procestype_url}}\",\n \"referentieproces\": {\n \"naam\": \"test\",\n \"link\": \"\"\n },\n \"catalogus\": \"{{catalogus_url}}\",\n \"deelzaaktypen\": [],\n \"statustypen\": [],\n \"resultaattypen\": [],\n \"eigenschappen\": [],\n \"informatieobjecttypen\": [],\n \"besluittypen\": [],\n \"gerelateerdeZaaktypen\": [],\n \"beginGeldigheid\": \"2005-01-01\",\n \"eindeGeldigheid\": \"2012-01-01\",\n \"versiedatum\": \"2012-01-01\",\n \"concept\": true\n}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "7fa2453d-b1c7-4409-95b7-cb44ec7405f3", + "type": "text/javascript", + "packages": {}, + "exec": [ + "pm.test(\"Zaaktype aanmaken met valide gegevens geeft 201\", function() {", + " pm.response.to.have.status(201);", + "});", + "", + "if(pm.response.code == 201) {", + " pm.environment.set(\"zaaktype_url\", pm.response.json().url);", + "}", + "", + "pm.environment.set(\"zaaktype_body\", pm.request.body.raw);" + ] + } + }, + { + "listen": "prerequest", + "script": { + "id": "5a010704-ad04-47fe-83b6-8b3f5e69055c", + "type": "text/javascript", + "packages": {}, + "exec": [ + "var uuid = require('uuid');", + "var myUUID = uuid.v4(); ", + "pm.environment.set(\"random_identificatie-ztc-01\", myUUID);", + "" + ] + } + } + ] + }, + { + "id": "5424e691-19ec-4cbf-8564-5cf0a72c1cb7", + "name": "(ztc-001b) Zaaktype aanmaken met selectielijstProcestype url die niet wijst naar Procestype is onmogelijk", + "request": { + "url": { + "path": [ + "zaaktypen" + ], + "host": [ + "{{ztc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{{request_body}}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "4b7d6e0e-f135-43bc-ba12-c24f5237cedb", + "type": "text/javascript", + "packages": {}, + "exec": [ + "pm.test(\"Zaaktype aanmaken met selectielijstProcestype url die niet wijst naar Procestype resource geeft 400\", function() {", + " pm.response.to.have.status(400);", + " ", + " // Verify that the 400 is returned for the correct reason", + " // var error = pm.response.json()[\"invalidParams\"][0];", + " // pm.expect(error.name).to.be.equal(\"selectielijstProcestype\");", + " // pm.expect(error.code).to.be.equal(\"invalid-resource\");", + "});", + "", + "" + ] + } + }, + { + "listen": "prerequest", + "script": { + "id": "f0ef491d-2a67-43f7-b690-d071032fbe1b", + "type": "text/javascript", + "packages": {}, + "exec": [ + "// Retrieve the Zaak body template and modify as needed", + "var body = JSON.parse(pm.environment.get(\"zaaktype_body\"));", + "body.selectielijstProcestype = pm.environment.get(\"mock_url\") + \"/200\";", + "", + "", + "var uuid = require('uuid');", + "var myUUID = uuid.v4(); ", + "body.identificatie = myUUID;", + "", + "", + "// Store the modified Zaak body, allowing it to be used in the main request", + "pm.environment.set(\"request_body\", JSON.stringify(body));" + ] + } + } + ] + }, + { + "id": "73a57e47-673c-48ae-8839-346dbe547a85", + "name": "Create Zaaktype for afleidingswijze afgehandeld", + "request": { + "url": { + "path": [ + "zaaktypen" + ], + "host": [ + "{{ztc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{{request_body}}" + } + }, + "response": [], + "event": [ + { + "listen": "prerequest", + "script": { + "id": "6fd5d33e-9bde-4592-8849-c37fb15aeb1d", + "type": "text/javascript", + "exec": [ + "// Retrieve the Zaak body template and modify as needed", + "var body = JSON.parse(pm.environment.get(\"zaaktype_body\"));", + "body.omschrijving = \"zaaktype afleidingswijze afgehandeld\";", + "body.selectielijstProcestype = pm.environment.get(\"procestype_procestermijn_nihil_url\");", + "var uuid = require('uuid');", + "var myUUID = uuid.v4(); ", + "body.identificatie = myUUID;", + "", + "// Store the modified Zaak body, allowing it to be used in the main request", + "pm.environment.set(\"request_body\", JSON.stringify(body));" + ] + } + }, + { + "listen": "test", + "script": { + "id": "5fe0ad89-3ef6-4c39-87a7-69b26a5e3ba7", + "type": "text/javascript", + "exec": [ + "if(pm.response.code == 201) {", + " pm.environment.set(\"zaaktype_afleidingswijze_afgehandeld_url\", pm.response.json().url);", + "}" + ] + } + } + ] + }, + { + "id": "31c6932c-77ae-404d-95a1-de666501c8cb", + "name": "Create Zaaktype for afleidingswijze termijn", + "request": { + "url": { + "path": [ + "zaaktypen" + ], + "host": [ + "{{ztc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{{request_body}}" + } + }, + "response": [], + "event": [ + { + "listen": "prerequest", + "script": { + "id": "c0490516-ea6a-4dd0-a6e0-afd97747d246", + "type": "text/javascript", + "exec": [ + "// Retrieve the Zaak body template and modify as needed", + "var body = JSON.parse(pm.environment.get(\"zaaktype_body\"));", + "body.omschrijving = \"zaaktype afleidingswijze termijn\";", + "body.selectielijstProcestype = pm.environment.get(\"procestype_procestermijn_ingeschatte_bestaansduur_object_url\");", + "var uuid = require('uuid');", + "var myUUID = uuid.v4(); ", + "body.identificatie = myUUID;", + "", + "// Store the modified Zaak body, allowing it to be used in the main request", + "pm.environment.set(\"request_body\", JSON.stringify(body));" + ] + } + }, + { + "listen": "test", + "script": { + "id": "f2da5920-1c81-40c7-971e-ebd93755964f", + "type": "text/javascript", + "exec": [ + "if(pm.response.code == 201) {", + " pm.environment.set(\"zaaktype_afleidingswijze_termijn_url\", pm.response.json().url);", + "}" + ] + } + } + ] + }, + { + "id": "77e48e3a-b3a5-4991-8a50-11df26dca4f5", + "name": "Create Zaaktype for empty procestermijn", + "request": { + "url": { + "path": [ + "zaaktypen" + ], + "host": [ + "{{ztc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{{request_body}}" + } + }, + "response": [], + "event": [ + { + "listen": "prerequest", + "script": { + "id": "adf8fdb0-3354-432e-b865-c051e45940d6", + "type": "text/javascript", + "packages": {}, + "exec": [ + "// Retrieve the Zaak body template and modify as needed", + "var body = JSON.parse(pm.environment.get(\"zaaktype_body\"));", + "body.omschrijving = \"zaaktype geen procestermijn\";", + "body.selectielijstProcestype = \"https://referentielijsten.roxit.nl/api/v1/procestypen/87804ff2-4ae3-4700-b1d4-a49ca3fcd2d0\";", + "var uuid = require('uuid');", + "var myUUID = uuid.v4(); ", + "body.identificatie = myUUID;", + "", + "// Store the modified Zaak body, allowing it to be used in the main request", + "pm.environment.set(\"request_body\", JSON.stringify(body));" + ] + } + }, + { + "listen": "test", + "script": { + "id": "053f659b-4154-4542-afef-e51776ac5a1a", + "type": "text/javascript", + "packages": {}, + "exec": [ + "if(pm.response.code == 201) {", + " pm.environment.set(\"zaaktype_procestermijn_leeg_url\", pm.response.json().url);", + "}" + ] + } + } + ] + } + ], + "event": [] + }, + { + "id": "7a3d93c2-b327-4202-81ea-1a7e8fae6ba5", + "name": "ztc-002", + "item": [ + { + "id": "82bf8329-7adb-46e0-8f9b-c480c66ba70d", + "name": "(ztc-002a) Resultaattype aanmaken met valide gegevens is mogelijk", + "request": { + "url": { + "path": [ + "resultaattypen" + ], + "host": [ + "{{ztc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n\t\"zaaktype\": \"{{zaaktype_url}}\",\n\t\"omschrijving\": \"TEST\",\n\t\"resultaattypeomschrijving\": \"{{resultaattypeomschrijving_url}}\",\n\t\"selectielijstklasse\": \"{{selectielijstklasse_url}}\",\n \"besluittypen\": [],\n\t\"brondatumArchiefprocedure\": {\n\t\t\"afleidingswijze\": \"gerelateerde_zaak\",\n\t\t\"procestermijn\": null,\n\t\t\"datumkenmerk\": \"\",\n\t\t\"einddatumBekend\": false,\n\t\t\"objecttype\": \"\",\n\t\t\"registratie\": \"\"\n\t}\n}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "de60fe40-2aed-4e6a-bfa0-b78e4a4d5a66", + "type": "text/javascript", + "packages": {}, + "exec": [ + "pm.test(\"Resultaattype aanmaken met valide gegevens geeft 201\", function() {", + " pm.response.to.have.status(201);", + "});", + "", + "if(pm.response.code == 201) {", + " pm.environment.set(\"created_resultaattype_url\", pm.response.json().url);", + " pm.environment.set(\"resultaattype_omschrijving_generiek\", pm.response.json().omschrijvingGeneriek);", + "}", + "", + "pm.environment.set(\"resultaattype_body\", pm.request.body.raw);" + ] + } + }, + { + "listen": "prerequest", + "script": { + "id": "232e69e3-0f21-4961-85d0-dd60163535b9", + "type": "text/javascript", + "packages": {}, + "exec": [ + "" + ] + } + } + ] + }, + { + "id": "d13afd4f-27a3-46fd-97e2-628af5043897", + "name": "(ztc-002b) Resultaattype.omschrijvingGeneriek wordt afgeleid uit Resultaattypeomschrijving.omschrijving", + "request": { + "url": { + "host": [ + "{{resultaattypeomschrijving_url}}" + ], + "query": [], + "variable": [] + }, + "method": "GET" + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "0694c552-aba6-4c43-94c0-1deacb7046d3", + "type": "text/javascript", + "packages": {}, + "exec": [ + "pm.test(\"Resultaatype.omschrijvingGeneriek is gelijk aan Resultaattypeomschrijving.omschrijving\", function() {", + " pm.expect(pm.environment.get(\"resultaattype_omschrijving_generiek\")).to.be.equal(pm.response.json().omschrijving); ", + "});", + "", + "" + ] + } + } + ] + }, + { + "id": "47a1e6b1-bb56-4209-b854-571fb425267c", + "name": "(ztc-002c) Resultaattype aanmaken met resultaattypeomschrijving url die niet wijst naar correcte resource is onmogelijk", + "request": { + "url": { + "path": [ + "resultaattypen" + ], + "host": [ + "{{ztc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\r\n\t\"zaaktype\": \"{{zaaktype_url}}\",\r\n\t\"omschrijving\": \"TEST\",\r\n\t\"resultaattypeomschrijving\": \"{{resultaattypeomschrijving_url}}abc\",\r\n\t\"selectielijstklasse\": \"{{selectielijstklasse_url}}\",\r\n \"besluittypen\": [],\r\n\t\"brondatumArchiefprocedure\": {\r\n\t\t\"afleidingswijze\": \"gerelateerde_zaak\",\r\n\t\t\"procestermijn\": null,\r\n\t\t\"datumkenmerk\": \"\",\r\n\t\t\"einddatumBekend\": false,\r\n\t\t\"objecttype\": \"\",\r\n\t\t\"registratie\": \"\"\r\n\t}\r\n}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "3ec122d7-aef9-4fcd-994f-7ea4b2ebd18c", + "type": "text/javascript", + "packages": {}, + "exec": [ + "pm.test(\"Resultaattype aanmaken met resultaattypeomschrijving url die niet wijst naar Resultaattypeomschrijving resource geeft 400\", function() {", + " pm.response.to.have.status(400);", + " ", + " // TODO", + " // Verify that the 400 is returned for the correct reason", + " // var error = pm.response.json()[\"invalidParams\"][0];", + " // pm.expect(error.name).to.be.equal(\"resultaattypeomschrijving\");", + " // pm.expect(error.code).to.be.equal(\"invalid-resource\");", + "});", + "", + "" + ] + } + }, + { + "listen": "prerequest", + "script": { + "id": "b844f5be-8802-4850-aba4-3746518020af", + "type": "text/javascript", + "packages": {}, + "exec": [ + "" + ] + } + } + ] + }, + { + "id": "20302fc7-0595-474c-8990-fe2d88db8dd7", + "name": "(ztc-002d) Resultaattype aanmaken met selectielijstklasse url die niet wijst naar correcte resource is onmogelijk", + "request": { + "url": { + "path": [ + "resultaattypen" + ], + "host": [ + "{{ztc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\r\n\t\"zaaktype\": \"{{zaaktype_url}}\",\r\n\t\"omschrijving\": \"TEST\",\r\n\t\"resultaattypeomschrijving\": \"{{resultaattypeomschrijving_url}}\",\r\n\t\"selectielijstklasse\": \"{{selectielijstklasse_url}}abc\",\r\n \"besluittypen\": [],\r\n\t\"brondatumArchiefprocedure\": {\r\n\t\t\"afleidingswijze\": \"gerelateerde_zaak\",\r\n\t\t\"procestermijn\": null,\r\n\t\t\"datumkenmerk\": \"\",\r\n\t\t\"einddatumBekend\": false,\r\n\t\t\"objecttype\": \"\",\r\n\t\t\"registratie\": \"\"\r\n\t}\r\n}" + } + }, + "response": [], + "event": [ + { + "listen": "prerequest", + "script": { + "id": "a87a3611-64b0-4fdf-85b2-9e0fc95e894d", + "type": "text/javascript", + "packages": {}, + "exec": [ + "" + ] + } + }, + { + "listen": "test", + "script": { + "id": "1927d759-2614-45a6-bda8-7a90fd84f4b9", + "type": "text/javascript", + "packages": {}, + "exec": [ + "pm.test(\"Resultaattype aanmaken met selectielijstklasse url die niet wijst naar Resultaat resource geeft 400\", function() {", + " pm.response.to.have.status(400);", + " ", + " // TODO", + " // Verify that the 400 is returned for the correct reason", + " // var error = pm.response.json()[\"invalidParams\"][0];", + " // pm.expect(error.name).to.be.equal(\"selectielijstklasse\");", + " // pm.expect(error.code).to.be.equal(\"invalid-resource\");", + "});", + "", + "" + ] + } + } + ] + }, + { + "id": "36079357-0e7b-4a47-83ad-b08d16f1d423", + "name": "(ztc-002e) Resultaattype aanmaken met selectielijstklasse url met incorrect procestype is onmogelijk", + "request": { + "url": { + "path": [ + "resultaattypen" + ], + "host": [ + "{{ztc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\r\n\t\"zaaktype\": \"{{zaaktype_url}}\",\r\n\t\"omschrijving\": \"TEST\",\r\n\t\"resultaattypeomschrijving\": \"{{resultaattypeomschrijving_url}}\",\r\n\t\"selectielijstklasse\": \"{{selectielijstklasse_url2}}\",\r\n \"besluittypen\": [],\r\n\t\"brondatumArchiefprocedure\": {\r\n\t\t\"afleidingswijze\": \"gerelateerde_zaak\",\r\n\t\t\"procestermijn\": null,\r\n\t\t\"datumkenmerk\": \"\",\r\n\t\t\"einddatumBekend\": false,\r\n\t\t\"objecttype\": \"\",\r\n\t\t\"registratie\": \"\"\r\n\t}\r\n}" + } + }, + "response": [], + "event": [ + { + "listen": "prerequest", + "script": { + "id": "3d9c8898-d186-4139-8dff-1194074e0cca", + "type": "text/javascript", + "packages": {}, + "exec": [ + "pm.environment.set(\"selectielijstklasse_url2\", \"https://referentielijsten.roxit.nl/api/v1/resultaten/012d401a-aace-4fb2-89ba-fe5853789554\");" + ] + } + }, + { + "listen": "test", + "script": { + "id": "7daf4c7a-a8a9-4272-b8dc-ac0dab6f393e", + "type": "text/javascript", + "packages": {}, + "exec": [ + "pm.test(\"Resultaattype aanmaken met selectielijstklasse niet van hetzelfde procestype als Resultaattype.zaaktype.selectielijstProcestype geeft 400\", function() {", + " pm.response.to.have.status(400);", + " ", + " // TODO", + " // Verify that the 400 is returned for the correct reason", + " // var error = pm.response.json()[\"invalidParams\"][0];", + " // pm.expect(error.name).to.be.equal(\"nonFieldErrors\");", + " // pm.expect(error.code).to.be.equal(\"procestype-mismatch\");", + "});", + "", + "" + ] + } + } + ] + }, + { + "id": "c58797b2-efae-4e5d-bcfc-7f28d35bdf1e", + "name": "Retrieve Resultaat.waardering and Resultaat.bewaartermijn", + "request": { + "url": { + "host": [ + "{{selectielijstklasse_url}}" + ], + "query": [], + "variable": [] + }, + "method": "GET" + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "fb3d9d17-8810-43ac-90eb-fbc6785e1457", + "type": "text/javascript", + "exec": [ + "pm.environment.set(\"resultaat_waardering\", pm.response.json().waardering);", + "pm.environment.set(\"resultaat_bewaartermijn\", pm.response.json().bewaartermijn);" + ] + } + } + ] + }, + { + "id": "db809b20-0ac0-4f7c-8a05-ba0ece77211c", + "name": "(ztc-002f) Resultaattype.archiefnominatie is gelijk aan Resultaat.waardering indien niet gedefinieerd", + "request": { + "url": { + "path": [ + "resultaattypen" + ], + "host": [ + "{{ztc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{{request_body}}" + } + }, + "response": [], + "event": [ + { + "listen": "prerequest", + "script": { + "id": "b50554ca-c2cc-459e-811d-105c649e3465", + "type": "text/javascript", + "packages": {}, + "exec": [ + "// Retrieve the Zaak body template and modify as needed", + "var body = JSON.parse(pm.environment.get(\"resultaattype_body\"));", + "delete body.archiefnominatie;", + "", + "// Store the modified Zaak body, allowing it to be used in the main request", + "pm.environment.set(\"request_body\", JSON.stringify(body));" + ] + } + }, + { + "listen": "test", + "script": { + "id": "04870b9f-94df-4681-a375-227a96169a67", + "type": "text/javascript", + "packages": {}, + "exec": [ + "pm.test(\"Resultaattype.archiefnominatie is gelijk aan Resultaat.waardering indien niet expliciet gedefinieerd\", function() {", + " pm.expect(pm.response.json().archiefnominatie).to.be.equal(pm.environment.get(\"resultaat_waardering\")); ", + "});", + "", + "" + ] + } + } + ] + }, + { + "id": "df617757-a615-4678-942a-aa77ae11c0a4", + "name": "(ztc-002g) Resultaattype.archiefactietermijn is gelijk aan Resultaat.bewaartermijn indien niet gedefinieerd", + "request": { + "url": { + "path": [ + "resultaattypen" + ], + "host": [ + "{{ztc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{{request_body}}" + } + }, + "response": [], + "event": [ + { + "listen": "prerequest", + "script": { + "id": "199f8d4d-83aa-481d-8456-d0649b35f071", + "type": "text/javascript", + "packages": {}, + "exec": [ + "// Retrieve the Zaak body template and modify as needed", + "var body = JSON.parse(pm.environment.get(\"resultaattype_body\"));", + "delete body.archiefnominatie;", + "", + "// Store the modified Zaak body, allowing it to be used in the main request", + "pm.environment.set(\"request_body\", JSON.stringify(body));" + ] + } + }, + { + "listen": "test", + "script": { + "id": "570791c6-c93e-4e21-9a32-960038ec2e3b", + "type": "text/javascript", + "packages": {}, + "exec": [ + "pm.test(\"Resultaattype.archiefactietermijn is gelijk aan Resultaat.bewaartermijn indien niet expliciet gedefinieerd\", function() {", + " pm.expect(pm.response.json().archiefactietermijn).to.be.equal(pm.environment.get(\"resultaat_bewaartermijn\")); ", + "});", + "", + "" + ] + } + } + ] + } + ], + "event": [] + }, + { + "id": "6f1618b7-ab1b-44f2-8db6-e91dfb00eb73", + "name": "ztc-003", + "item": [ + { + "id": "cd6ed291-05ad-4b47-811a-cd9be69f6595", + "name": "(ztc-003a) Resultaattype met selectielijstklasse.procestermijn nihil en niet afleidingswijze afgehandeld is onmogelijk", + "request": { + "url": { + "path": [ + "resultaattypen" + ], + "host": [ + "{{ztc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n\t\"zaaktype\": \"{{zaaktype_afleidingswijze_termijn_url}}\",\n\t\"omschrijving\": \"TEST\",\n\t\"resultaattypeomschrijving\": \"https://referentielijsten.roxit.nl/api/v1/resultaattypeomschrijvingen/cad65ef5-6db5-404f-8c6b-8b76d7af40f5\",\n\t\"selectielijstklasse\": \"{{selectielijstklasse_procestermijn_ingeschatte_bestaansduur_object_url}}\",\n \"besluittypen\": [],\n\t\"brondatumArchiefprocedure\": {\n\t\t\"afleidingswijze\": \"afgehandeld\",\n\t\t\"procestermijn\": \"P5M\",\n\t\t\"datumkenmerk\": \"\",\n\t\t\"einddatumBekend\": false,\n\t\t\"objecttype\": \"\",\n\t\t\"registratie\": \"\"\n\t}\n}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "6aefe0c0-0f38-40aa-9825-7d534455f37d", + "type": "text/javascript", + "packages": {}, + "exec": [ + "pm.test(\"Resultaattype aanmaken met selectielijstklasse.procestermijn nihil en niet brondatumArchiefprocedure.afleidingswijze afgehandeld geeft 400\", function() {", + " pm.response.to.have.status(400);", + " ", + " // Verify that the 400 is returned for the correct reason", + " var errors = pm.response.json()[\"invalidParams\"];", + " ", + " var succeed = false;", + " for(i=0; i {", + "// if (err) {", + "// console.error(err);", + "// return;", + "// }", + "", + "// const responseBody = JSON.parse(response.text());", + "// const extractedValue = responseBody.authorization; ", + "// var bearer_and_token = extractedValue.split(' ');", + "// var jwt_token = bearer_and_token[1]", + "", + "// pm.environment.set('jwt_token', jwt_token);", + "// pm.environment.set('jwt_token_without_claims', jwt_token);", + "", + " ", + "// })", + "// }", + "", + "function base64url(source) {", + "\t// Encode in classical base64", + "\tencodedSource = CryptoJS.enc.Base64.stringify(source);", + "", + "\t// Remove padding equal characters", + "\tencodedSource = encodedSource.replace(/=+$/, '');", + "", + "\t// Replace characters according to base64url specifications", + "\tencodedSource = encodedSource.replace(/\\+/g, '-');", + "\tencodedSource = encodedSource.replace(/\\//g, '_');", + "", + "\treturn encodedSource;", + "}", + "", + "function addIAT(request) {", + "\tvar iat = Math.floor(Date.now() / 1000) + 257;", + "\tdata.iat = iat;", + "\treturn data;", + "}", + "", + "", + "var header = {", + "\t\"typ\": \"JWT\",", + "\t\"alg\": \"HS256\"", + "};", + "", + "var data = {", + " \"iss\": pm.environment.get(\"client_id\"),", + " \"client_id\": pm.environment.get(\"client_id\"),", + " \"user_id\": \"123\",", + " \"user_representation\": \"Demo User\"", + "};", + "", + "data = addIAT(data);", + "", + "var secret = pm.environment.get(\"secret\");", + "", + "// encode header", + "var stringifiedHeader = CryptoJS.enc.Utf8.parse(JSON.stringify(header));", + "var encodedHeader = base64url(stringifiedHeader);", + "", + "// encode data", + "var stringifiedData = CryptoJS.enc.Utf8.parse(JSON.stringify(data));", + "var encodedData = base64url(stringifiedData);", + "", + "// build token", + "var token = encodedHeader + \".\" + encodedData;", + "", + "var signature = CryptoJS.HmacSHA256(token, secret);", + "signature = base64url(signature);", + "", + "var signedToken = token + \".\" + signature;", + "", + "pm.globals.set(\"jwt_token\", signedToken);" + ], + "_lastExecutionId": "21709acf-6ae2-466b-9451-dd1711ff87a0" + } + }, + { + "listen": "test", + "script": { + "id": "ea6067d0-48cb-4d63-a08e-c828a758903b", + "type": "text/javascript", + "exec": [ + "" + ], + "_lastExecutionId": "b6c7d8bf-13a1-4adc-9963-316fda3d3677" + } + } + ], + "variable": [], + "info": { + "_postman_id": "a48fdfce-3810-46be-9613-67ddf0b99c27", + "name": "ZGW business rules", + "schema": "https://schema.getpostman.com/json/collection/v2.1.0/collection.json" + } + }, + "environment": { + "id": "procest-zgw-local", + "name": "Procest ZGW Local", + "values": [ + { + "type": "any", + "value": "http://localhost:8080/index.php/apps/procest/api/zgw", + "key": "baseUrl" + }, + { + "type": "any", + "value": "http://localhost:8080/index.php/apps/procest/api/zgw/zaken/v1", + "key": "zrc_url" + }, + { + "type": "any", + "value": "http://localhost:8080/index.php/apps/procest/api/zgw/catalogi/v1", + "key": "ztc_url" + }, + { + "type": "any", + "value": "http://localhost:8080/index.php/apps/procest/api/zgw/besluiten/v1", + "key": "brc_url" + }, + { + "type": "any", + "value": "http://localhost:8080/index.php/apps/procest/api/zgw/documenten/v1", + "key": "drc_url" + }, + { + "type": "any", + "value": "http://localhost:8080/index.php/apps/procest/api/zgw/notificaties/v1", + "key": "nrc_url" + }, + { + "type": "any", + "value": "http://localhost:8080/index.php/apps/procest/api/zgw/autorisaties/v1", + "key": "ac_url" + }, + { + "type": "any", + "value": "procest-admin", + "key": "client_id" + }, + { + "type": "any", + "value": "procest-admin-secret-key-for-testing", + "key": "secret" + }, + { + "type": "any", + "value": "procest-limited", + "key": "client_id_limited" + }, + { + "type": "any", + "value": "procest-limited-secret-key-for-test", + "key": "secret_limited" + }, + { + "type": "any", + "value": "procest-test-1", + "key": "client_id_test_1" + }, + { + "type": "any", + "value": "procest-test-2", + "key": "client_id_test_2" + }, + { + "type": "any", + "value": "https://selectielijst.openzaak.nl/api/v1", + "key": "referentielijst_url" + }, + { + "type": "any", + "value": "http://localhost:8080/index.php/apps/procest/api/zgw", + "key": "mock_url" + }, + { + "type": "any", + "value": "https://selectielijst.openzaak.nl/api/v1/procestypen/838e405a-9b12-43c4-a985-d7a7490d422e", + "key": "procestype_url" + }, + { + "type": "any", + "value": "https://selectielijst.openzaak.nl/api/v1/procestypen/838e405a-9b12-43c4-a985-d7a7490d422e", + "key": "procestype_procestermijn_nihil_url" + }, + { + "type": "any", + "value": "https://selectielijst.openzaak.nl/api/v1/procestypen/838e405a-9b12-43c4-a985-d7a7490d422e", + "key": "procestype_procestermijn_vast_te_leggen_datum_url" + }, + { + "type": "any", + "value": "https://selectielijst.openzaak.nl/api/v1/procestypen/838e405a-9b12-43c4-a985-d7a7490d422e", + "key": "procestype_procestermijn_ingeschatte_bestaansduur_object_url" + }, + { + "type": "any", + "value": "https://selectielijst.openzaak.nl/api/v1/resultaten/0eb8f19f-d55e-4a15-8b5f-26cdf07482c1", + "key": "selectielijstklasse_url" + }, + { + "type": "any", + "value": "https://selectielijst.openzaak.nl/api/v1/resultaten/3fc7002b-31b6-4abe-82af-b6d46a9a1736", + "key": "selectielijstklasse_procestermijn_nihil_url" + }, + { + "type": "any", + "value": "https://selectielijst.openzaak.nl/api/v1/resultaten/80ffe8cb-e430-4ae9-a48b-34a9ef21e3cd", + "key": "selectielijstklasse_procestermijn_vast_te_leggen_datum_url" + }, + { + "type": "any", + "value": "https://selectielijst.openzaak.nl/api/v1/resultaten/80d8bce6-81a4-43c5-9a7b-ca56880eacb4", + "key": "selectielijstklasse_procestermijn_ingeschatte_bestaansduur_object_url" + }, + { + "type": "any", + "value": "https://selectielijst.openzaak.nl/api/v1/resultaattypeomschrijvingen/ce8cf476-0b59-496f-8eee-957a7c6e2506", + "key": "resultaattypeomschrijving_url" + }, + { + "type": "any", + "value": "http://localhost:8080/index.php/apps/procest/api/zgw/catalogi/v1/catalogussen/5057408f-fd76-469e-8646-bcc4ba2efa8d", + "key": "catalogus_url" + }, + { + "type": "any", + "value": "c7e4cd3e-1645-4c0a-8bc4-0aa1847f6946", + "key": "besluit_omschrijving" + }, + { + "type": "any", + "value": "http://localhost:8080/index.php/apps/procest/api/zgw/catalogi/v1/besluittypen/0b220d27-e251-4c47-b0df-014c2e4caa61", + "key": "besluittype_url" + }, + { + "type": "any", + "value": "f779ebbe-9444-4ddc-8604-4d7cdabb78fe", + "key": "informatieobject_omschrijving" + }, + { + "type": "any", + "value": "http://localhost:8080/index.php/apps/procest/api/zgw/catalogi/v1/informatieobjecttypen/859f92cf-36f8-47a6-a74c-f258f09fada8", + "key": "informatieobjecttype_url" + }, + { + "type": "any", + "value": "cae6f26a-1321-4bff-b314-421ddf7775b9", + "key": "random_identificatie2" + }, + { + "type": "any", + "value": "http://localhost:8080/index.php/apps/procest/api/zgw/catalogi/v1/zaaktypen/7571bffe-5579-4295-9fac-87a9a6b6c5ac", + "key": "deelzaaktype_url" + }, + { + "type": "any", + "value": "zrc_tests_1 deelzaaktype", + "key": "deelzaaktype_omschrijving" + }, + { + "type": "any", + "value": "cae6f26a-1321-4bff-b314-421ddf7775b9", + "key": "deelzaaktype_identificatie" + }, + { + "type": "any", + "value": "fe8bed94-afee-44a0-b69c-50cbe532d858", + "key": "random_identificatie" + }, + { + "type": "any", + "value": "http://localhost:8080/index.php/apps/procest/api/zgw/catalogi/v1/zaaktypen/15b467d4-e11b-40c8-a5e1-f6ca6b55ca7c", + "key": "zaaktype_url" + }, + { + "type": "any", + "value": "openbaar", + "key": "zaaktype_vertrouwelijkheid" + }, + { + "type": "any", + "value": [ + "https://ref.tst.vng.cloud/standaard/" + ], + "key": "zaaktype_productenOfDiensten" + }, + { + "type": "any", + "value": [], + "key": "zaaktype_resultaattypen" + }, + { + "type": "any", + "value": "http://localhost:8080/index.php/apps/procest/api/zgw/catalogi/v1/eigenschappen/50353378-df48-4db3-a8bc-ead8d8d7c6ab", + "key": "zaaktype_eigenschap" + }, + { + "type": "any", + "value": "{\n\t\"identificatie\": \"fe8bed94-afee-44a0-b69c-50cbe532d858\",\n \"omschrijving\": \"zrc_tests_1\",\n \"vertrouwelijkheidaanduiding\": \"openbaar\",\n \"doel\": \"test doel\",\n \"verantwoordelijke\":\"X\",\n \"aanleiding\": \"test aanleiding\",\n \"indicatieInternOfExtern\": \"extern\",\n \"handelingInitiator\": \"indienen\",\n \"onderwerp\": \"openbare ruimte\",\n \"handelingBehandelaar\": \"behandelen\",\n \"doorlooptijd\": \"P10D\",\n \"opschortingEnAanhoudingMogelijk\": false,\n \"verlengingMogelijk\": true,\n \"publicatieIndicatie\": false,\n \"productenOfDiensten\": [\n \"https://ref.tst.vng.cloud/standaard/\"\n ],\n \"selectielijstProcestype\": \"https://selectielijst.openzaak.nl/api/v1/procestypen/838e405a-9b12-43c4-a985-d7a7490d422e\",\n \"referentieproces\": {\n \"naam\": \"test\",\n \"link\": \"\"\n },\n \"deelzaaktypen\": [\n \"cae6f26a-1321-4bff-b314-421ddf7775b9\"\n ],\n \"catalogus\": \"http://localhost:8080/index.php/apps/procest/api/zgw/catalogi/v1/catalogussen/5057408f-fd76-469e-8646-bcc4ba2efa8d\",\n \"statustypen\": [\n \n ],\n \"resultaattypen\": [\n ],\n \"eigenschappen\": [\n ],\n \"informatieobjecttypen\": [],\n \"besluittypen\": [\n \"c7e4cd3e-1645-4c0a-8bc4-0aa1847f6946\"\n ],\n \"gerelateerdeZaaktypen\": [],\n \"beginGeldigheid\": \"2019-01-01\",\n \"versiedatum\": \"2019-01-01\",\n \"concept\": true,\n \"verlengingstermijn\": \"P5D\"\n}", + "key": "zaaktype_body" + }, + { + "type": "any", + "value": "http://localhost:8080/index.php/apps/procest/api/zgw/catalogi/v1/resultaattypen/46bae072-9fce-4b71-8aec-6f9360f7b717", + "key": "resultaattype_url" + }, + { + "type": "any", + "value": "http://localhost:8080/index.php/apps/procest/api/zgw/catalogi/v1/statustypen/d769d686-e0b1-4b57-a517-8c7b55038f9b", + "key": "non_eindstatustype" + }, + { + "type": "any", + "value": "http://localhost:8080/index.php/apps/procest/api/zgw/catalogi/v1/statustypen/1ccdff5a-0894-49a8-875e-a93706d42b03", + "key": "eindstatustype" + }, + { + "type": "any", + "value": "http://localhost:8080/index.php/apps/procest/api/zgw/catalogi/v1/roltypen/4b6165cd-7d73-4215-8f8f-0373d53f5471", + "key": "roltype_url" + }, + { + "type": "any", + "value": "c3RyaW5n", + "key": "object_inhoud" + }, + { + "type": "any", + "value": "http://localhost:8080/index.php/apps/procest/api/zgw/documenten/v1/enkelvoudiginformatieobjecten/fb67c32e-f2a6-413c-b41a-685d44b2c9dc", + "key": "informatieobject_url" + }, + { + "type": "any", + "value": "http://localhost:8080/index.php/apps/procest/api/zgw/documenten/v1/enkelvoudiginformatieobjecten/d3d835a6-a67c-404f-b3a6-7d281fef75a0", + "key": "informatieobject_gebruiksrecht_null_url" + }, + { + "type": "any", + "value": "http://localhost:8080/index.php/apps/procest/api/zgw/zaken/v1/zaken/1a407380-f716-4537-82ae-2126e7b4f379", + "key": "zaak_url" + }, + { + "type": "any", + "value": "ZAAK-TBONJS-5AE22F", + "key": "zaakidentificatie" + }, + { + "type": "any", + "value": "aangepaste toelichting", + "key": "toelichting" + }, + { + "type": "any", + "value": "e6fb2fa1-8f0b-4e18-abdb-4932b35f6c97", + "key": "random_identificatie3" + }, + { + "type": "any", + "value": [], + "key": "zaken_for_bronorganisatie" + }, + { + "type": "any", + "value": "ZAAK-TBONJV-0C5B53", + "key": "unieke_zaak_identificatie" + }, + { + "type": "any", + "value": "{\n\t\"zaak\": \"http://localhost:8080/index.php/apps/procest/api/zgw/zaken/v1/zaken/859464a1-c3e5-43c2-9132-60399b191383\",\n\t\"informatieobject\": \"http://localhost:8080/index.php/apps/procest/api/zgw/documenten/v1/enkelvoudiginformatieobjecten/83e954ac-bdb4-416a-ad14-5e292775fd96\",\n\t\"titel\": \"test\",\n\t\"beschrijving\": \"bla\"\n}", + "key": "zaakinformatieobject_body" + }, + { + "type": "any", + "value": "http://localhost:8080/index.php/apps/procest/api/zgw/zaken/v1/zaakinformatieobjecten/afe9d8cf-2452-44b6-9eae-fd586fb748b2", + "key": "created_zaakinformatieobject_url" + }, + { + "type": "any", + "value": "aangepaste beschrijving", + "key": "beschrijving" + }, + { + "type": "any", + "value": "{\"identificatie\":\"754e6663-2300-458a-961e-5a3b817d75ca\",\"omschrijving\":\"Zaaktype for archiving tests vast_te_leggen_datum\",\"vertrouwelijkheidaanduiding\":\"openbaar\",\"doel\":\"test doel\",\"verantwoordelijke\":\"X\",\"aanleiding\":\"test aanleiding\",\"indicatieInternOfExtern\":\"extern\",\"handelingInitiator\":\"indienen\",\"onderwerp\":\"openbare ruimte\",\"handelingBehandelaar\":\"behandelen\",\"doorlooptijd\":\"P10D\",\"opschortingEnAanhoudingMogelijk\":false,\"verlengingMogelijk\":true,\"publicatieIndicatie\":false,\"productenOfDiensten\":[\"https://ref.tst.vng.cloud/standaard/\"],\"selectielijstProcestype\":\"https://selectielijst.openzaak.nl/api/v1/procestypen/838e405a-9b12-43c4-a985-d7a7490d422e\",\"referentieproces\":{\"naam\":\"test\",\"link\":\"\"},\"deelzaaktypen\":[\"cae6f26a-1321-4bff-b314-421ddf7775b9\"],\"catalogus\":\"http://localhost:8080/index.php/apps/procest/api/zgw/catalogi/v1/catalogussen/5057408f-fd76-469e-8646-bcc4ba2efa8d\",\"statustypen\":[],\"resultaattypen\":[],\"eigenschappen\":[],\"informatieobjecttypen\":[],\"besluittypen\":[],\"gerelateerdeZaaktypen\":[],\"beginGeldigheid\":\"2019-01-01\",\"versiedatum\":\"2019-01-01\",\"concept\":true,\"verlengingstermijn\":\"P5D\"}", + "key": "request_body" + }, + { + "type": "any", + "value": "aangepaste titel", + "key": "titel" + }, + { + "type": "any", + "value": null, + "key": "jwt_token" + }, + { + "type": "any", + "value": "9b0de294-b6d5-419a-b36a-66f3c5bd2832", + "key": "random_identificatie-ztc-01" + }, + { + "type": "any", + "value": "http://localhost:8080/index.php/apps/procest/api/zgw/catalogi/v1/zaaktypen/e9952baf-06db-4cfc-9613-c03a558bf1fb", + "key": "zaaktype_for_auth_url" + }, + { + "type": "any", + "value": "http://localhost:8080/index.php/apps/procest/api/zgw/zaken/v1/zaken/35d6a488-e09b-4beb-9b88-c96d07927965", + "key": "openbare_zaak_url" + }, + { + "type": "any", + "value": "http://localhost:8080/index.php/apps/procest/api/zgw/zaken/v1/zaken/d8755595-fbb4-48fa-99f8-2d067bda66c5", + "key": "geheime_zaak_url" + }, + { + "type": "any", + "value": "procest-admin", + "key": "_original_client_id" + }, + { + "type": "any", + "value": "procest-admin-secret-key-for-testing", + "key": "_original_secret" + }, + { + "type": "any", + "value": "http://localhost:8080/index.php/apps/procest/api/zgw/zaken/v1/resultaten/31bd6320-afe0-46c5-a31b-e8ca71d54648", + "key": "zaak_resultaat_url" + }, + { + "type": "any", + "value": "2026-03-10T12:19:17+00:00", + "key": "eindstatus_datumStatusGezet" + }, + { + "type": "any", + "value": "http://localhost:8080/index.php/apps/procest/api/zgw/zaken/v1/statussen/5ab87c4a-b505-454c-867f-5accf9462edd", + "key": "eindstatus_url" + }, + { + "type": "any", + "value": "http://localhost:8080/index.php/apps/procest/api/zgw/zaken/v1/klantcontacten/6399630d-d97b-4f7e-a28a-c949f75198e7", + "key": "klantcontact_url" + }, + { + "type": "any", + "value": "http://localhost:8080/index.php/apps/procest/api/zgw/zaken/v1/rollen/e6c8bb25-970e-4d27-9618-a0a852f3750c", + "key": "rol_url" + }, + { + "type": "any", + "value": "http://localhost:8080/index.php/apps/procest/api/zgw/zaken/v1/zaakobjecten/7140e9e5-955c-4660-872b-062add6a97c2", + "key": "zaakobject_url" + }, + { + "type": "any", + "value": "http://localhost:8080/index.php/apps/procest/api/zgw/zaken/v1/zaakeigenschappen/c8651ec8-0448-4417-9b1b-7e0e3c21ecb7", + "key": "zaakeigenschap_url" + }, + { + "type": "any", + "value": null, + "key": "resultaattype" + }, + { + "type": "any", + "value": "vertrouwelijk", + "key": "expliciete_vertrouwelijkheid" + }, + { + "type": "any", + "value": "http://localhost:8080/index.php/apps/procest/api/zgw/catalogi/v1/statustypen/a0e6ef1e-b276-4efe-a05a-1cd85c9d4c1f", + "key": "temp_statustype" + }, + { + "type": "any", + "value": "http://localhost:8080/index.php/apps/procest/api/zgw/catalogi/v1/informatieobjecttypen/d5fe5a08-76c3-4068-ab02-e0af1b1f8807", + "key": "temp_iot_url" + }, + { + "type": "any", + "value": "http://localhost:8080/index.php/apps/procest/api/zgw/documenten/v1/enkelvoudiginformatieobjecten/6b384db7-7a88-4c25-9add-8ca46ca837e6", + "key": "created_informatieobject_url" + }, + { + "type": "any", + "value": "http://localhost:8080/index.php/apps/procest/api/zgw/catalogi/v1/zaaktypen/6d7c6b7e-a709-49cc-98ff-ca981566399f", + "key": "temp_zaaktype_url" + }, + { + "type": "any", + "value": "http://localhost:8080/index.php/apps/procest/api/zgw/catalogi/v1/roltypen/7f8acc8d-a6a3-4ab1-82c9-2e777adf5ef6", + "key": "temp_roltype" + }, + { + "type": "any", + "value": "http://localhost:8080/index.php/apps/procest/api/zgw/catalogi/v1/resultaattypen/e01f3702-2631-474c-b420-2598c8643ccb", + "key": "temp_resultaattype" + }, + { + "type": "any", + "value": "http://localhost:8080/index.php/apps/procest/api/zgw/catalogi/v1/zaaktypen/eb8e0617-05b0-4bcd-9058-96b1552009ef", + "key": "zaaktype_procestermijn_nihil_url" + }, + { + "type": "any", + "value": "http://localhost:8080/index.php/apps/procest/api/zgw/catalogi/v1/resultaattypen/19729a97-90dd-4fbb-8752-836a69c49398", + "key": "current_resultaattype" + }, + { + "type": "any", + "value": "vernietigen", + "key": "resultaattype_archiefnominatie" + }, + { + "type": "any", + "value": "P5Y", + "key": "resultaattype_archiefactietermijn" + }, + { + "type": "any", + "value": "{\"afleidingswijze\":\"ander_datumkenmerk\",\"procestermijn\":null,\"datumkenmerk\":\"identificatie\",\"einddatumBekend\":false,\"objecttype\":\"pand\",\"registratie\":\"test\"}", + "key": "resultaattype_brondatumArchiefprocedure" + }, + { + "type": "any", + "value": "http://localhost:8080/index.php/apps/procest/api/zgw/catalogi/v1/statustypen/373a62a9-c9f8-4e6a-88b1-1e000f222b24", + "key": "current_statustype_url" + }, + { + "type": "any", + "value": "http://localhost:8080/index.php/apps/procest/api/zgw/zaken/v1/zaken/b4d24cdf-3253-4b3f-804e-a887aaa8e17c", + "key": "zaak_zonder_archiefnominatie_url" + }, + { + "type": "any", + "value": "0b12e3a0-35b6-4261-a6ba-f209a4732492", + "key": "random_identificatie_DZ" + }, + { + "type": "any", + "value": "http://localhost:8080/index.php/apps/procest/api/zgw/catalogi/v1/zaaktypen/9a33d20d-23f8-4d74-8582-5e898f616688", + "key": "zaaktype_procestermijn_vast_te_leggen_datum_url" + }, + { + "type": "any", + "value": "45a3cae9-5fac-47cc-95a4-e8c186f0de14", + "key": "random_identificatie-21zrc" + }, + { + "type": "any", + "value": "http://localhost:8080/index.php/apps/procest/api/zgw/catalogi/v1/zaaktypen/41e3343c-4524-4223-a1cb-9616391a846f", + "key": "hoofdzaaktype_url" + }, + { + "type": "any", + "value": "http://localhost:8080/index.php/apps/procest/api/zgw/catalogi/v1/resultaattypen/a911db98-a6cf-487c-9596-3af7b71ce37e", + "key": "resultaattype_for_hoofdzaaktype_url" + }, + { + "type": "any", + "value": "http://localhost:8080/index.php/apps/procest/api/zgw/catalogi/v1/statustypen/aed80b2c-4476-4695-b435-083cac68ba1d", + "key": "eindstatustype_for_hoofdzaaktype_url" + }, + { + "type": "any", + "value": [ + "http://localhost:8080/index.php/apps/procest/api/zgw/catalogi/v1/zaaktypen/eb8e0617-05b0-4bcd-9058-96b1552009ef", + null, + "http://localhost:8080/index.php/apps/procest/api/zgw/catalogi/v1/zaaktypen/9a33d20d-23f8-4d74-8582-5e898f616688" + ], + "key": "archiving_zaaktypen" + }, + { + "type": "any", + "value": "http://localhost:8080/index.php/apps/procest/api/zgw/zaken/v1/zaken/766eb291-d98e-44fb-93b4-921efc5f25d2", + "key": "hoofdzaak_url" + }, + { + "type": "any", + "value": "http://localhost:8080/index.php/apps/procest/api/zgw/zaken/v1/zaken/19a49f27-a906-434f-9a40-5eb8acd8747f", + "key": "zaak_met_vast_te_leggen_datum" + }, + { + "type": "any", + "value": "http://localhost:8080/index.php/apps/procest/api/zgw/zaken/v1/resultaten/ca59c8ef-a54f-43a3-898d-23fc47dc0907", + "key": "hoofdzaak_resultaat_url" + }, + { + "type": "any", + "value": "2018-04-18", + "key": "hoofdzaak_einddatum" + }, + { + "type": "any", + "value": null, + "key": "archivering_eigenschap_url" + }, + { + "type": "any", + "value": null, + "key": "eigenschap_waarde" + }, + { + "type": "any", + "value": "d9dade73-eadc-4d1d-a506-04dee26919ca", + "key": "random_omschrijving" + }, + { + "type": "any", + "value": "d9dade73-eadc-4d1d-a506-04dee26919ca", + "key": "besluittype_omschrijving" + }, + { + "type": "any", + "value": "http://localhost:8080/index.php/apps/procest/api/zgw/catalogi/v1/besluittypen/ca80fdd9-e129-4201-bca9-0d6ca535e6c7", + "key": "concept_besluittype_url" + }, + { + "type": "any", + "value": "http://localhost:8080/index.php/apps/procest/api/zgw/besluiten/v1/besluiten/dadfaec7-8b52-46dd-8a85-e23258127785", + "key": "besluit_url" + }, + { + "type": "any", + "value": "b0623712b263aab20aaf50a3d95f8544", + "key": "informatieobject_lock_id" + }, + { + "type": "any", + "value": "http://localhost:8080/index.php/apps/procest/api/zgw/zaken/v1/zaken/11c3a9ab-5543-4c80-8fbc-95085557a894", + "key": "deelzaak_url" + }, + { + "type": "any", + "value": "http://localhost:8080/index.php/apps/procest/api/zgw/zaken/v1/resultaten/b99dd2a6-15ee-4a85-b99e-19715c31a1c1", + "key": "resultaat_url" + }, + { + "type": "any", + "value": "http://localhost:8080/index.php/apps/procest/api/zgw/zaken/v1/statussen/db9ee009-074e-42bd-8f2e-8d675147e265", + "key": "status_url" + }, + { + "type": "any", + "value": "http://localhost:8080/index.php/apps/procest/api/zgw/documenten/v1/objectinformatieobjecten/004229bb-b4e5-4c17-8b55-093e4311440f", + "key": "objectinformatieobject_url" + } + ] + }, + "globals": { + "id": "d42e0022-4ee2-4e5f-943d-6717379eb806", + "values": [ + { + "type": "any", + "value": "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJwcm9jZXN0LWFkbWluIiwiY2xpZW50X2lkIjoicHJvY2VzdC1hZG1pbiIsInVzZXJfaWQiOiIxMjMiLCJ1c2VyX3JlcHJlc2VudGF0aW9uIjoiRGVtbyBVc2VyIiwiaWF0IjoxNzczMTQ1NDc5fQ.NkafbWNBepJS4XPxH-5DQ2HQuUwD8PD-rmlxSikVfcg", + "key": "jwt_token" + } + ] + }, + "run": { + "stats": { + "iterations": { + "total": 1, + "pending": 0, + "failed": 0 + }, + "items": { + "total": 313, + "pending": 0, + "failed": 0 + }, + "scripts": { + "total": 2255, + "pending": 0, + "failed": 0 + }, + "prerequests": { + "total": 313, + "pending": 0, + "failed": 0 + }, + "requests": { + "total": 313, + "pending": 0, + "failed": 0 + }, + "tests": { + "total": 313, + "pending": 0, + "failed": 0 + }, + "assertions": { + "total": 145, + "pending": 0, + "failed": 7 + }, + "testScripts": { + "total": 1164, + "pending": 0, + "failed": 0 + }, + "prerequestScripts": { + "total": 1091, + "pending": 0, + "failed": 0 + } + }, + "timings": { + "responseAverage": 225.3546325878594, + "responseMin": 78, + "responseMax": 1000, + "responseSd": 126.07398856843984, + "dnsAverage": 0, + "dnsMin": 0, + "dnsMax": 0, + "dnsSd": 0, + "firstByteAverage": 0, + "firstByteMin": 0, + "firstByteMax": 0, + "firstByteSd": 0, + "started": 1773145137839, + "completed": 1773145222549 + }, + "executions": [ + { + "cursor": { + "position": 0, + "iteration": 0, + "length": 313, + "cycles": 1, + "empty": false, + "eof": false, + "bof": true, + "cr": false, + "ref": "4bc4577d-9985-4664-878b-ba505daa0f23", + "httpRequestId": "d6a688ff-5831-447c-b0a6-8932a8ba9619" + }, + "item": { + "id": "675e52e7-9bca-46cf-b90d-dc1532eddca3", + "name": "Create Catalogus", + "request": { + "url": { + "path": [ + "catalogussen" + ], + "host": [ + "{{ztc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n\t\"domein\": \"ZGWT\",\n\t\"rsin\": \"000000000\",\n\t\"contactpersoonBeheerNaam\": \"Test Persoon\"\n}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "4ef2744c-7707-4171-8bc1-d03cd1bca9fb", + "type": "text/javascript", + "packages": {}, + "exec": [ + "if(pm.response.code == 201) {\r", + " pm.environment.set(\"catalogus_url\", pm.response.json().url);\r", + "}" + ], + "_lastExecutionId": "b9d215e7-4dac-489a-a4e5-3afa6425b250" + } + } + ] + }, + "request": { + "url": { + "protocol": "http", + "port": "8080", + "path": [ + "index.php", + "apps", + "procest", + "api", + "zgw", + "catalogi", + "v1", + "catalogussen" + ], + "host": [ + "localhost" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Authorization", + "value": "Bearer eyJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJwcm9jZXN0LWFkbWluIiwiY2xpZW50X2lkIjoicHJvY2VzdC1hZG1pbiIsImlhdCI6IjE3NzMxNDUxMzgiLCJ1c2VyX2lkIjoicHJvY2VzdC1hZG1pbiIsInVzZXJfcmVwcmVzZW50YXRpb24iOiIifQ.3VmZzsaJOHW-aXGd_EinYwXIDEErVZ3WML5HDiuPTqQ", + "system": true + }, + { + "key": "User-Agent", + "value": "PostmanRuntime/7.39.1", + "system": true + }, + { + "key": "Accept", + "value": "*/*", + "system": true + }, + { + "key": "Cache-Control", + "value": "no-cache", + "system": true + }, + { + "key": "Postman-Token", + "value": "53a0674f-5850-4d5d-9d01-d725bfb73704", + "system": true + }, + { + "key": "Host", + "value": "localhost:8080", + "system": true + }, + { + "key": "Accept-Encoding", + "value": "gzip, deflate, br", + "system": true + }, + { + "key": "Connection", + "value": "keep-alive", + "system": true + }, + { + "key": "Content-Length", + "value": "88", + "system": true + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n\t\"domein\": \"ZGWT\",\n\t\"rsin\": \"000000000\",\n\t\"contactpersoonBeheerNaam\": \"Test Persoon\"\n}" + }, + "auth": { + "type": "jwt", + "jwt": [ + { + "type": "string", + "value": "{\r\n \"iss\": \"procest-admin\",\r\n \"client_id\": \"procest-admin\",\r\n \"iat\": \"1773145138\",\r\n \"user_id\": \"procest-admin\",\r\n \"user_representation\": \"\"\r\n}", + "key": "payload" + }, + { + "type": "string", + "value": "procest-admin-secret-key-for-testing", + "key": "secret" + }, + { + "type": "string", + "value": "HS256", + "key": "algorithm" + }, + { + "type": "boolean", + "value": false, + "key": "isSecretBase64Encoded" + }, + { + "type": "string", + "value": "header", + "key": "addTokenTo" + }, + { + "type": "string", + "value": "Bearer", + "key": "headerPrefix" + }, + { + "type": "string", + "value": "token", + "key": "queryParamKey" + }, + { + "type": "string", + "value": "{}", + "key": "header" + } + ] + } + }, + "response": { + "id": "f7a2a776-7806-44fc-a121-4a13b58a2cf5", + "status": "Created", + "code": 201, + "header": [ + { + "key": "Date", + "value": "Tue, 10 Mar 2026 12:18:57 GMT" + }, + { + "key": "Server", + "value": "Apache/2.4.66 (Debian)" + }, + { + "key": "X-Content-Type-Options", + "value": "nosniff" + }, + { + "key": "X-Frame-Options", + "value": "SAMEORIGIN" + }, + { + "key": "X-Permitted-Cross-Domain-Policies", + "value": "none" + }, + { + "key": "X-Robots-Tag", + "value": "noindex, nofollow" + }, + { + "key": "Referrer-Policy", + "value": "no-referrer" + }, + { + "key": "X-Powered-By", + "value": "PHP/8.3.30" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=3ed852ae4e9ddac2a1312820a057c07f; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "oc_sessionPassphrase=LBNdKxRzA0iqoULIruNxDDh2BK3O%2BrCIU8aUmiUcOFvy5Xw1YfjwQNlmBW2IkGwJYtxXh9%2BwDN6vYuGNX07tXzkBtjQJUWTGdzf8AIOUIVxVx5DfyWAQZ7nmYmQv6XSE; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=3ed852ae4e9ddac2a1312820a057c07f; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "nc_sameSiteCookielax=true; path=/; httponly;expires=Fri, 31-Dec-2100 23:59:59 GMT; SameSite=lax" + }, + { + "key": "Set-Cookie", + "value": "nc_sameSiteCookiestrict=true; path=/; httponly;expires=Fri, 31-Dec-2100 23:59:59 GMT; SameSite=strict" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=3ed852ae4e9ddac2a1312820a057c07f; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=3ed852ae4e9ddac2a1312820a057c07f; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=3ed852ae4e9ddac2a1312820a057c07f; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=3ed852ae4e9ddac2a1312820a057c07f; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Content-Security-Policy", + "value": "default-src 'none';base-uri 'none';manifest-src 'self';frame-ancestors 'none'" + }, + { + "key": "X-Request-Id", + "value": "Tph8yd1nUkWmArD4k6ff" + }, + { + "key": "Cache-Control", + "value": "no-cache, no-store, must-revalidate" + }, + { + "key": "Feature-Policy", + "value": "autoplay 'none';camera 'none';fullscreen 'none';geolocation 'none';microphone 'none';payment 'none'" + }, + { + "key": "X-User-Id", + "value": "admin" + }, + { + "key": "Content-Length", + "value": "394" + }, + { + "key": "Keep-Alive", + "value": "timeout=5, max=100" + }, + { + "key": "Connection", + "value": "Keep-Alive" + }, + { + "key": "Content-Type", + "value": "application/json; charset=utf-8" + } + ], + "stream": { + "type": "Buffer", + "data": [ + 123, + 34, + 117, + 114, + 108, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 105, + 92, + 47, + 118, + 49, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 117, + 115, + 115, + 101, + 110, + 92, + 47, + 53, + 48, + 53, + 55, + 52, + 48, + 56, + 102, + 45, + 102, + 100, + 55, + 54, + 45, + 52, + 54, + 57, + 101, + 45, + 56, + 54, + 52, + 54, + 45, + 98, + 99, + 99, + 52, + 98, + 97, + 50, + 101, + 102, + 97, + 56, + 100, + 34, + 44, + 34, + 117, + 117, + 105, + 100, + 34, + 58, + 34, + 53, + 48, + 53, + 55, + 52, + 48, + 56, + 102, + 45, + 102, + 100, + 55, + 54, + 45, + 52, + 54, + 57, + 101, + 45, + 56, + 54, + 52, + 54, + 45, + 98, + 99, + 99, + 52, + 98, + 97, + 50, + 101, + 102, + 97, + 56, + 100, + 34, + 44, + 34, + 100, + 111, + 109, + 101, + 105, + 110, + 34, + 58, + 34, + 90, + 71, + 87, + 84, + 34, + 44, + 34, + 114, + 115, + 105, + 110, + 34, + 58, + 34, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 34, + 44, + 34, + 99, + 111, + 110, + 116, + 97, + 99, + 116, + 112, + 101, + 114, + 115, + 111, + 111, + 110, + 66, + 101, + 104, + 101, + 101, + 114, + 78, + 97, + 97, + 109, + 34, + 58, + 34, + 84, + 101, + 115, + 116, + 32, + 80, + 101, + 114, + 115, + 111, + 111, + 110, + 34, + 44, + 34, + 99, + 111, + 110, + 116, + 97, + 99, + 116, + 112, + 101, + 114, + 115, + 111, + 111, + 110, + 66, + 101, + 104, + 101, + 101, + 114, + 84, + 101, + 108, + 101, + 102, + 111, + 111, + 110, + 110, + 117, + 109, + 109, + 101, + 114, + 34, + 58, + 34, + 34, + 44, + 34, + 99, + 111, + 110, + 116, + 97, + 99, + 116, + 112, + 101, + 114, + 115, + 111, + 111, + 110, + 66, + 101, + 104, + 101, + 101, + 114, + 69, + 109, + 97, + 105, + 108, + 97, + 100, + 114, + 101, + 115, + 34, + 58, + 34, + 34, + 44, + 34, + 122, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 98, + 101, + 115, + 108, + 117, + 105, + 116, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 105, + 110, + 102, + 111, + 114, + 109, + 97, + 116, + 105, + 101, + 111, + 98, + 106, + 101, + 99, + 116, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 125 + ] + }, + "cookie": [], + "responseTime": 343, + "responseSize": 394 + }, + "id": "675e52e7-9bca-46cf-b90d-dc1532eddca3" + }, + { + "cursor": { + "ref": "346fb581-0f53-4219-ab26-32f30a3e6557", + "length": 313, + "cycles": 1, + "position": 1, + "iteration": 0, + "httpRequestId": "9ea874f3-98df-4581-9f13-081fd8f475b3" + }, + "item": { + "id": "de505ea7-9510-437c-9980-8839a7218b23", + "name": "Get Resultaattypeomschrijving", + "request": { + "url": { + "path": [ + "resultaattypeomschrijvingen" + ], + "host": [ + "{{referentielijst_url}}" + ], + "query": [], + "variable": [] + }, + "method": "GET" + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "e90740bb-1e30-4689-b8a5-e2138c6c652d", + "type": "text/javascript", + "exec": [ + "pm.environment.set(\"resultaattypeomschrijving_url\", pm.response.json()[0].url);" + ], + "_lastExecutionId": "a3f65d34-12e4-41e8-bfed-33fe4854395d" + } + } + ] + }, + "request": { + "url": { + "protocol": "https", + "path": [ + "api", + "v1", + "resultaattypeomschrijvingen" + ], + "host": [ + "selectielijst", + "openzaak", + "nl" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Authorization", + "value": "Bearer eyJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJwcm9jZXN0LWFkbWluIiwiY2xpZW50X2lkIjoicHJvY2VzdC1hZG1pbiIsImlhdCI6IjE3NzMxNDUxMzgiLCJ1c2VyX2lkIjoicHJvY2VzdC1hZG1pbiIsInVzZXJfcmVwcmVzZW50YXRpb24iOiIifQ.3VmZzsaJOHW-aXGd_EinYwXIDEErVZ3WML5HDiuPTqQ", + "system": true + }, + { + "key": "User-Agent", + "value": "PostmanRuntime/7.39.1", + "system": true + }, + { + "key": "Accept", + "value": "*/*", + "system": true + }, + { + "key": "Cache-Control", + "value": "no-cache", + "system": true + }, + { + "key": "Postman-Token", + "value": "8a063b5b-643d-4b3a-b33b-10174267bbd4", + "system": true + }, + { + "key": "Host", + "value": "selectielijst.openzaak.nl", + "system": true + }, + { + "key": "Accept-Encoding", + "value": "gzip, deflate, br", + "system": true + }, + { + "key": "Connection", + "value": "keep-alive", + "system": true + } + ], + "method": "GET", + "auth": { + "type": "jwt", + "jwt": [ + { + "type": "string", + "value": "{\r\n \"iss\": \"procest-admin\",\r\n \"client_id\": \"procest-admin\",\r\n \"iat\": \"1773145138\",\r\n \"user_id\": \"procest-admin\",\r\n \"user_representation\": \"\"\r\n}", + "key": "payload" + }, + { + "type": "string", + "value": "procest-admin-secret-key-for-testing", + "key": "secret" + }, + { + "type": "string", + "value": "HS256", + "key": "algorithm" + }, + { + "type": "boolean", + "value": false, + "key": "isSecretBase64Encoded" + }, + { + "type": "string", + "value": "header", + "key": "addTokenTo" + }, + { + "type": "string", + "value": "Bearer", + "key": "headerPrefix" + }, + { + "type": "string", + "value": "token", + "key": "queryParamKey" + }, + { + "type": "string", + "value": "{}", + "key": "header" + } + ] + } + }, + "response": { + "id": "5ba09202-2633-4d65-b226-40e104f5c520", + "status": "OK", + "code": 200, + "header": [ + { + "key": "Date", + "value": "Tue, 10 Mar 2026 12:19:00 GMT" + }, + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Transfer-Encoding", + "value": "chunked" + }, + { + "key": "Connection", + "value": "keep-alive" + }, + { + "key": "Vary", + "value": "Accept-Encoding" + }, + { + "key": "Allow", + "value": "GET, HEAD, OPTIONS" + }, + { + "key": "API-version", + "value": "1.0.0" + }, + { + "key": "X-Frame-Options", + "value": "DENY" + }, + { + "key": "X-Content-Type-Options", + "value": "nosniff" + }, + { + "key": "X-Content-Type-Options", + "value": "nosniff" + }, + { + "key": "X-XSS-Protection", + "value": "1; mode=block" + }, + { + "key": "X-XSS-Protection", + "value": "1; mode=block" + }, + { + "key": "Feature-Policy", + "value": "autoplay 'none'; camera 'none'" + }, + { + "key": "Referrer-Policy", + "value": "same-origin" + }, + { + "key": "Strict-Transport-Security", + "value": "max-age=63072000" + }, + { + "key": "Content-Encoding", + "value": "gzip" + } + ], + "stream": { + "type": "Buffer", + "data": [ + 91, + 123, + 34, + 117, + 114, + 108, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 115, + 58, + 47, + 47, + 115, + 101, + 108, + 101, + 99, + 116, + 105, + 101, + 108, + 105, + 106, + 115, + 116, + 46, + 111, + 112, + 101, + 110, + 122, + 97, + 97, + 107, + 46, + 110, + 108, + 47, + 97, + 112, + 105, + 47, + 118, + 49, + 47, + 114, + 101, + 115, + 117, + 108, + 116, + 97, + 97, + 116, + 116, + 121, + 112, + 101, + 111, + 109, + 115, + 99, + 104, + 114, + 105, + 106, + 118, + 105, + 110, + 103, + 101, + 110, + 47, + 99, + 101, + 56, + 99, + 102, + 52, + 55, + 54, + 45, + 48, + 98, + 53, + 57, + 45, + 52, + 57, + 54, + 102, + 45, + 56, + 101, + 101, + 101, + 45, + 57, + 53, + 55, + 97, + 55, + 99, + 54, + 101, + 50, + 53, + 48, + 54, + 34, + 44, + 34, + 111, + 109, + 115, + 99, + 104, + 114, + 105, + 106, + 118, + 105, + 110, + 103, + 34, + 58, + 34, + 65, + 102, + 103, + 101, + 98, + 114, + 111, + 107, + 101, + 110, + 34, + 44, + 34, + 100, + 101, + 102, + 105, + 110, + 105, + 116, + 105, + 101, + 34, + 58, + 34, + 65, + 102, + 103, + 101, + 98, + 114, + 111, + 107, + 101, + 110, + 34, + 44, + 34, + 111, + 112, + 109, + 101, + 114, + 107, + 105, + 110, + 103, + 34, + 58, + 34, + 34, + 125, + 44, + 123, + 34, + 117, + 114, + 108, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 115, + 58, + 47, + 47, + 115, + 101, + 108, + 101, + 99, + 116, + 105, + 101, + 108, + 105, + 106, + 115, + 116, + 46, + 111, + 112, + 101, + 110, + 122, + 97, + 97, + 107, + 46, + 110, + 108, + 47, + 97, + 112, + 105, + 47, + 118, + 49, + 47, + 114, + 101, + 115, + 117, + 108, + 116, + 97, + 97, + 116, + 116, + 121, + 112, + 101, + 111, + 109, + 115, + 99, + 104, + 114, + 105, + 106, + 118, + 105, + 110, + 103, + 101, + 110, + 47, + 55, + 99, + 98, + 51, + 49, + 53, + 102, + 98, + 45, + 52, + 102, + 55, + 98, + 45, + 52, + 97, + 52, + 51, + 45, + 97, + 99, + 97, + 49, + 45, + 101, + 52, + 53, + 50, + 50, + 101, + 52, + 99, + 55, + 51, + 98, + 51, + 34, + 44, + 34, + 111, + 109, + 115, + 99, + 104, + 114, + 105, + 106, + 118, + 105, + 110, + 103, + 34, + 58, + 34, + 65, + 102, + 103, + 101, + 104, + 97, + 110, + 100, + 101, + 108, + 100, + 34, + 44, + 34, + 100, + 101, + 102, + 105, + 110, + 105, + 116, + 105, + 101, + 34, + 58, + 34, + 65, + 102, + 103, + 101, + 104, + 97, + 110, + 100, + 101, + 108, + 100, + 34, + 44, + 34, + 111, + 112, + 109, + 101, + 114, + 107, + 105, + 110, + 103, + 34, + 58, + 34, + 34, + 125, + 44, + 123, + 34, + 117, + 114, + 108, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 115, + 58, + 47, + 47, + 115, + 101, + 108, + 101, + 99, + 116, + 105, + 101, + 108, + 105, + 106, + 115, + 116, + 46, + 111, + 112, + 101, + 110, + 122, + 97, + 97, + 107, + 46, + 110, + 108, + 47, + 97, + 112, + 105, + 47, + 118, + 49, + 47, + 114, + 101, + 115, + 117, + 108, + 116, + 97, + 97, + 116, + 116, + 121, + 112, + 101, + 111, + 109, + 115, + 99, + 104, + 114, + 105, + 106, + 118, + 105, + 110, + 103, + 101, + 110, + 47, + 101, + 54, + 97, + 48, + 99, + 57, + 51, + 57, + 45, + 51, + 52, + 48, + 52, + 45, + 52, + 53, + 98, + 48, + 45, + 56, + 56, + 101, + 51, + 45, + 55, + 54, + 99, + 57, + 52, + 102, + 98, + 56, + 48, + 101, + 97, + 55, + 34, + 44, + 34, + 111, + 109, + 115, + 99, + 104, + 114, + 105, + 106, + 118, + 105, + 110, + 103, + 34, + 58, + 34, + 65, + 102, + 103, + 101, + 119, + 101, + 122, + 101, + 110, + 34, + 44, + 34, + 100, + 101, + 102, + 105, + 110, + 105, + 116, + 105, + 101, + 34, + 58, + 34, + 65, + 102, + 103, + 101, + 119, + 101, + 122, + 101, + 110, + 34, + 44, + 34, + 111, + 112, + 109, + 101, + 114, + 107, + 105, + 110, + 103, + 34, + 58, + 34, + 34, + 125, + 44, + 123, + 34, + 117, + 114, + 108, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 115, + 58, + 47, + 47, + 115, + 101, + 108, + 101, + 99, + 116, + 105, + 101, + 108, + 105, + 106, + 115, + 116, + 46, + 111, + 112, + 101, + 110, + 122, + 97, + 97, + 107, + 46, + 110, + 108, + 47, + 97, + 112, + 105, + 47, + 118, + 49, + 47, + 114, + 101, + 115, + 117, + 108, + 116, + 97, + 97, + 116, + 116, + 121, + 112, + 101, + 111, + 109, + 115, + 99, + 104, + 114, + 105, + 106, + 118, + 105, + 110, + 103, + 101, + 110, + 47, + 51, + 97, + 48, + 97, + 57, + 99, + 51, + 99, + 45, + 48, + 56, + 52, + 55, + 45, + 52, + 101, + 55, + 101, + 45, + 98, + 55, + 100, + 57, + 45, + 55, + 54, + 53, + 98, + 57, + 52, + 51, + 52, + 48, + 57, + 52, + 99, + 34, + 44, + 34, + 111, + 109, + 115, + 99, + 104, + 114, + 105, + 106, + 118, + 105, + 110, + 103, + 34, + 58, + 34, + 71, + 101, + 103, + 114, + 111, + 110, + 100, + 34, + 44, + 34, + 100, + 101, + 102, + 105, + 110, + 105, + 116, + 105, + 101, + 34, + 58, + 34, + 71, + 101, + 103, + 114, + 111, + 110, + 100, + 34, + 44, + 34, + 111, + 112, + 109, + 101, + 114, + 107, + 105, + 110, + 103, + 34, + 58, + 34, + 34, + 125, + 44, + 123, + 34, + 117, + 114, + 108, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 115, + 58, + 47, + 47, + 115, + 101, + 108, + 101, + 99, + 116, + 105, + 101, + 108, + 105, + 106, + 115, + 116, + 46, + 111, + 112, + 101, + 110, + 122, + 97, + 97, + 107, + 46, + 110, + 108, + 47, + 97, + 112, + 105, + 47, + 118, + 49, + 47, + 114, + 101, + 115, + 117, + 108, + 116, + 97, + 97, + 116, + 116, + 121, + 112, + 101, + 111, + 109, + 115, + 99, + 104, + 114, + 105, + 106, + 118, + 105, + 110, + 103, + 101, + 110, + 47, + 49, + 102, + 55, + 53, + 48, + 57, + 53, + 56, + 45, + 52, + 51, + 49, + 99, + 45, + 52, + 57, + 49, + 54, + 45, + 98, + 99, + 48, + 49, + 45, + 97, + 102, + 53, + 100, + 51, + 97, + 55, + 53, + 51, + 98, + 52, + 49, + 34, + 44, + 34, + 111, + 109, + 115, + 99, + 104, + 114, + 105, + 106, + 118, + 105, + 110, + 103, + 34, + 58, + 34, + 71, + 101, + 119, + 101, + 105, + 103, + 101, + 114, + 100, + 34, + 44, + 34, + 100, + 101, + 102, + 105, + 110, + 105, + 116, + 105, + 101, + 34, + 58, + 34, + 71, + 101, + 119, + 101, + 105, + 103, + 101, + 114, + 100, + 34, + 44, + 34, + 111, + 112, + 109, + 101, + 114, + 107, + 105, + 110, + 103, + 34, + 58, + 34, + 34, + 125, + 44, + 123, + 34, + 117, + 114, + 108, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 115, + 58, + 47, + 47, + 115, + 101, + 108, + 101, + 99, + 116, + 105, + 101, + 108, + 105, + 106, + 115, + 116, + 46, + 111, + 112, + 101, + 110, + 122, + 97, + 97, + 107, + 46, + 110, + 108, + 47, + 97, + 112, + 105, + 47, + 118, + 49, + 47, + 114, + 101, + 115, + 117, + 108, + 116, + 97, + 97, + 116, + 116, + 121, + 112, + 101, + 111, + 109, + 115, + 99, + 104, + 114, + 105, + 106, + 118, + 105, + 110, + 103, + 101, + 110, + 47, + 97, + 54, + 97, + 48, + 98, + 100, + 55, + 51, + 45, + 50, + 54, + 50, + 97, + 45, + 52, + 48, + 49, + 97, + 45, + 98, + 54, + 50, + 57, + 45, + 57, + 99, + 52, + 97, + 57, + 48, + 56, + 99, + 54, + 57, + 98, + 53, + 34, + 44, + 34, + 111, + 109, + 115, + 99, + 104, + 114, + 105, + 106, + 118, + 105, + 110, + 103, + 34, + 58, + 34, + 73, + 110, + 103, + 101, + 116, + 114, + 111, + 107, + 107, + 101, + 110, + 34, + 44, + 34, + 100, + 101, + 102, + 105, + 110, + 105, + 116, + 105, + 101, + 34, + 58, + 34, + 73, + 110, + 103, + 101, + 116, + 114, + 111, + 107, + 107, + 101, + 110, + 34, + 44, + 34, + 111, + 112, + 109, + 101, + 114, + 107, + 105, + 110, + 103, + 34, + 58, + 34, + 34, + 125, + 44, + 123, + 34, + 117, + 114, + 108, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 115, + 58, + 47, + 47, + 115, + 101, + 108, + 101, + 99, + 116, + 105, + 101, + 108, + 105, + 106, + 115, + 116, + 46, + 111, + 112, + 101, + 110, + 122, + 97, + 97, + 107, + 46, + 110, + 108, + 47, + 97, + 112, + 105, + 47, + 118, + 49, + 47, + 114, + 101, + 115, + 117, + 108, + 116, + 97, + 97, + 116, + 116, + 121, + 112, + 101, + 111, + 109, + 115, + 99, + 104, + 114, + 105, + 106, + 118, + 105, + 110, + 103, + 101, + 110, + 47, + 51, + 99, + 50, + 51, + 97, + 57, + 51, + 54, + 45, + 97, + 98, + 52, + 98, + 45, + 52, + 55, + 49, + 53, + 45, + 97, + 48, + 53, + 98, + 45, + 98, + 49, + 50, + 50, + 100, + 54, + 50, + 102, + 102, + 48, + 53, + 48, + 34, + 44, + 34, + 111, + 109, + 115, + 99, + 104, + 114, + 105, + 106, + 118, + 105, + 110, + 103, + 34, + 58, + 34, + 78, + 105, + 101, + 116, + 32, + 110, + 111, + 100, + 105, + 103, + 34, + 44, + 34, + 100, + 101, + 102, + 105, + 110, + 105, + 116, + 105, + 101, + 34, + 58, + 34, + 78, + 105, + 101, + 116, + 32, + 110, + 111, + 100, + 105, + 103, + 34, + 44, + 34, + 111, + 112, + 109, + 101, + 114, + 107, + 105, + 110, + 103, + 34, + 58, + 34, + 34, + 125, + 44, + 123, + 34, + 117, + 114, + 108, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 115, + 58, + 47, + 47, + 115, + 101, + 108, + 101, + 99, + 116, + 105, + 101, + 108, + 105, + 106, + 115, + 116, + 46, + 111, + 112, + 101, + 110, + 122, + 97, + 97, + 107, + 46, + 110, + 108, + 47, + 97, + 112, + 105, + 47, + 118, + 49, + 47, + 114, + 101, + 115, + 117, + 108, + 116, + 97, + 97, + 116, + 116, + 121, + 112, + 101, + 111, + 109, + 115, + 99, + 104, + 114, + 105, + 106, + 118, + 105, + 110, + 103, + 101, + 110, + 47, + 49, + 49, + 49, + 56, + 99, + 53, + 50, + 99, + 45, + 53, + 52, + 52, + 53, + 45, + 52, + 100, + 51, + 50, + 45, + 57, + 49, + 99, + 100, + 45, + 101, + 57, + 101, + 102, + 98, + 97, + 99, + 50, + 52, + 99, + 99, + 100, + 34, + 44, + 34, + 111, + 109, + 115, + 99, + 104, + 114, + 105, + 106, + 118, + 105, + 110, + 103, + 34, + 58, + 34, + 78, + 105, + 101, + 116, + 32, + 111, + 110, + 116, + 118, + 97, + 110, + 107, + 101, + 108, + 105, + 106, + 107, + 34, + 44, + 34, + 100, + 101, + 102, + 105, + 110, + 105, + 116, + 105, + 101, + 34, + 58, + 34, + 78, + 105, + 101, + 116, + 32, + 111, + 110, + 116, + 118, + 97, + 110, + 107, + 101, + 108, + 105, + 106, + 107, + 34, + 44, + 34, + 111, + 112, + 109, + 101, + 114, + 107, + 105, + 110, + 103, + 34, + 58, + 34, + 34, + 125, + 44, + 123, + 34, + 117, + 114, + 108, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 115, + 58, + 47, + 47, + 115, + 101, + 108, + 101, + 99, + 116, + 105, + 101, + 108, + 105, + 106, + 115, + 116, + 46, + 111, + 112, + 101, + 110, + 122, + 97, + 97, + 107, + 46, + 110, + 108, + 47, + 97, + 112, + 105, + 47, + 118, + 49, + 47, + 114, + 101, + 115, + 117, + 108, + 116, + 97, + 97, + 116, + 116, + 121, + 112, + 101, + 111, + 109, + 115, + 99, + 104, + 114, + 105, + 106, + 118, + 105, + 110, + 103, + 101, + 110, + 47, + 57, + 99, + 49, + 56, + 48, + 100, + 56, + 98, + 45, + 50, + 100, + 100, + 55, + 45, + 52, + 97, + 54, + 102, + 45, + 56, + 57, + 102, + 97, + 45, + 55, + 98, + 97, + 52, + 100, + 50, + 102, + 48, + 99, + 100, + 56, + 100, + 34, + 44, + 34, + 111, + 109, + 115, + 99, + 104, + 114, + 105, + 106, + 118, + 105, + 110, + 103, + 34, + 58, + 34, + 78, + 105, + 101, + 116, + 32, + 118, + 97, + 115, + 116, + 103, + 101, + 115, + 116, + 101, + 108, + 100, + 34, + 44, + 34, + 100, + 101, + 102, + 105, + 110, + 105, + 116, + 105, + 101, + 34, + 58, + 34, + 78, + 105, + 101, + 116, + 32, + 118, + 97, + 115, + 116, + 103, + 101, + 115, + 116, + 101, + 108, + 100, + 34, + 44, + 34, + 111, + 112, + 109, + 101, + 114, + 107, + 105, + 110, + 103, + 34, + 58, + 34, + 34, + 125, + 44, + 123, + 34, + 117, + 114, + 108, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 115, + 58, + 47, + 47, + 115, + 101, + 108, + 101, + 99, + 116, + 105, + 101, + 108, + 105, + 106, + 115, + 116, + 46, + 111, + 112, + 101, + 110, + 122, + 97, + 97, + 107, + 46, + 110, + 108, + 47, + 97, + 112, + 105, + 47, + 118, + 49, + 47, + 114, + 101, + 115, + 117, + 108, + 116, + 97, + 97, + 116, + 116, + 121, + 112, + 101, + 111, + 109, + 115, + 99, + 104, + 114, + 105, + 106, + 118, + 105, + 110, + 103, + 101, + 110, + 47, + 53, + 48, + 48, + 54, + 48, + 55, + 54, + 57, + 45, + 57, + 54, + 98, + 51, + 45, + 52, + 57, + 57, + 51, + 45, + 97, + 101, + 54, + 97, + 45, + 51, + 53, + 97, + 101, + 53, + 102, + 100, + 49, + 52, + 54, + 48, + 52, + 34, + 44, + 34, + 111, + 109, + 115, + 99, + 104, + 114, + 105, + 106, + 118, + 105, + 110, + 103, + 34, + 58, + 34, + 79, + 110, + 98, + 101, + 107, + 101, + 110, + 100, + 34, + 44, + 34, + 100, + 101, + 102, + 105, + 110, + 105, + 116, + 105, + 101, + 34, + 58, + 34, + 79, + 110, + 98, + 101, + 107, + 101, + 110, + 100, + 34, + 44, + 34, + 111, + 112, + 109, + 101, + 114, + 107, + 105, + 110, + 103, + 34, + 58, + 34, + 69, + 101, + 110, + 32, + 111, + 110, + 98, + 101, + 107, + 101, + 110, + 100, + 101, + 32, + 103, + 101, + 110, + 101, + 114, + 105, + 101, + 107, + 101, + 32, + 114, + 101, + 115, + 117, + 108, + 116, + 97, + 97, + 116, + 111, + 109, + 115, + 99, + 104, + 114, + 105, + 106, + 118, + 105, + 110, + 103, + 46, + 34, + 125, + 44, + 123, + 34, + 117, + 114, + 108, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 115, + 58, + 47, + 47, + 115, + 101, + 108, + 101, + 99, + 116, + 105, + 101, + 108, + 105, + 106, + 115, + 116, + 46, + 111, + 112, + 101, + 110, + 122, + 97, + 97, + 107, + 46, + 110, + 108, + 47, + 97, + 112, + 105, + 47, + 118, + 49, + 47, + 114, + 101, + 115, + 117, + 108, + 116, + 97, + 97, + 116, + 116, + 121, + 112, + 101, + 111, + 109, + 115, + 99, + 104, + 114, + 105, + 106, + 118, + 105, + 110, + 103, + 101, + 110, + 47, + 98, + 50, + 48, + 97, + 99, + 97, + 98, + 55, + 45, + 98, + 97, + 48, + 52, + 45, + 52, + 99, + 52, + 52, + 45, + 98, + 52, + 48, + 56, + 45, + 51, + 100, + 50, + 101, + 97, + 49, + 56, + 100, + 49, + 101, + 53, + 55, + 34, + 44, + 34, + 111, + 109, + 115, + 99, + 104, + 114, + 105, + 106, + 118, + 105, + 110, + 103, + 34, + 58, + 34, + 79, + 110, + 103, + 101, + 103, + 114, + 111, + 110, + 100, + 34, + 44, + 34, + 100, + 101, + 102, + 105, + 110, + 105, + 116, + 105, + 101, + 34, + 58, + 34, + 79, + 110, + 103, + 101, + 103, + 114, + 111, + 110, + 100, + 34, + 44, + 34, + 111, + 112, + 109, + 101, + 114, + 107, + 105, + 110, + 103, + 34, + 58, + 34, + 34, + 125, + 44, + 123, + 34, + 117, + 114, + 108, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 115, + 58, + 47, + 47, + 115, + 101, + 108, + 101, + 99, + 116, + 105, + 101, + 108, + 105, + 106, + 115, + 116, + 46, + 111, + 112, + 101, + 110, + 122, + 97, + 97, + 107, + 46, + 110, + 108, + 47, + 97, + 112, + 105, + 47, + 118, + 49, + 47, + 114, + 101, + 115, + 117, + 108, + 116, + 97, + 97, + 116, + 116, + 121, + 112, + 101, + 111, + 109, + 115, + 99, + 104, + 114, + 105, + 106, + 118, + 105, + 110, + 103, + 101, + 110, + 47, + 101, + 97, + 57, + 52, + 53, + 98, + 57, + 51, + 45, + 101, + 48, + 53, + 50, + 45, + 52, + 99, + 53, + 52, + 45, + 98, + 49, + 55, + 57, + 45, + 53, + 49, + 97, + 49, + 56, + 99, + 98, + 48, + 50, + 54, + 54, + 55, + 34, + 44, + 34, + 111, + 109, + 115, + 99, + 104, + 114, + 105, + 106, + 118, + 105, + 110, + 103, + 34, + 58, + 34, + 79, + 110, + 116, + 118, + 97, + 110, + 107, + 101, + 108, + 105, + 106, + 107, + 34, + 44, + 34, + 100, + 101, + 102, + 105, + 110, + 105, + 116, + 105, + 101, + 34, + 58, + 34, + 79, + 110, + 116, + 118, + 97, + 110, + 107, + 101, + 108, + 105, + 106, + 107, + 34, + 44, + 34, + 111, + 112, + 109, + 101, + 114, + 107, + 105, + 110, + 103, + 34, + 58, + 34, + 34, + 125, + 44, + 123, + 34, + 117, + 114, + 108, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 115, + 58, + 47, + 47, + 115, + 101, + 108, + 101, + 99, + 116, + 105, + 101, + 108, + 105, + 106, + 115, + 116, + 46, + 111, + 112, + 101, + 110, + 122, + 97, + 97, + 107, + 46, + 110, + 108, + 47, + 97, + 112, + 105, + 47, + 118, + 49, + 47, + 114, + 101, + 115, + 117, + 108, + 116, + 97, + 97, + 116, + 116, + 121, + 112, + 101, + 111, + 109, + 115, + 99, + 104, + 114, + 105, + 106, + 118, + 105, + 110, + 103, + 101, + 110, + 47, + 102, + 98, + 54, + 53, + 100, + 50, + 53, + 49, + 45, + 49, + 53, + 49, + 56, + 45, + 52, + 49, + 56, + 53, + 45, + 56, + 54, + 53, + 102, + 45, + 98, + 56, + 98, + 100, + 99, + 102, + 97, + 100, + 48, + 55, + 98, + 49, + 34, + 44, + 34, + 111, + 109, + 115, + 99, + 104, + 114, + 105, + 106, + 118, + 105, + 110, + 103, + 34, + 58, + 34, + 84, + 111, + 101, + 103, + 101, + 107, + 101, + 110, + 100, + 34, + 44, + 34, + 100, + 101, + 102, + 105, + 110, + 105, + 116, + 105, + 101, + 34, + 58, + 34, + 84, + 111, + 101, + 103, + 101, + 107, + 101, + 110, + 100, + 34, + 44, + 34, + 111, + 112, + 109, + 101, + 114, + 107, + 105, + 110, + 103, + 34, + 58, + 34, + 34, + 125, + 44, + 123, + 34, + 117, + 114, + 108, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 115, + 58, + 47, + 47, + 115, + 101, + 108, + 101, + 99, + 116, + 105, + 101, + 108, + 105, + 106, + 115, + 116, + 46, + 111, + 112, + 101, + 110, + 122, + 97, + 97, + 107, + 46, + 110, + 108, + 47, + 97, + 112, + 105, + 47, + 118, + 49, + 47, + 114, + 101, + 115, + 117, + 108, + 116, + 97, + 97, + 116, + 116, + 121, + 112, + 101, + 111, + 109, + 115, + 99, + 104, + 114, + 105, + 106, + 118, + 105, + 110, + 103, + 101, + 110, + 47, + 52, + 51, + 97, + 99, + 48, + 52, + 54, + 57, + 45, + 101, + 48, + 99, + 48, + 45, + 52, + 57, + 56, + 53, + 45, + 97, + 54, + 99, + 101, + 45, + 56, + 101, + 99, + 50, + 56, + 53, + 100, + 50, + 100, + 102, + 52, + 55, + 34, + 44, + 34, + 111, + 109, + 115, + 99, + 104, + 114, + 105, + 106, + 118, + 105, + 110, + 103, + 34, + 58, + 34, + 86, + 97, + 115, + 116, + 103, + 101, + 115, + 116, + 101, + 108, + 100, + 34, + 44, + 34, + 100, + 101, + 102, + 105, + 110, + 105, + 116, + 105, + 101, + 34, + 58, + 34, + 86, + 97, + 115, + 116, + 103, + 101, + 115, + 116, + 101, + 108, + 100, + 34, + 44, + 34, + 111, + 112, + 109, + 101, + 114, + 107, + 105, + 110, + 103, + 34, + 58, + 34, + 34, + 125, + 44, + 123, + 34, + 117, + 114, + 108, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 115, + 58, + 47, + 47, + 115, + 101, + 108, + 101, + 99, + 116, + 105, + 101, + 108, + 105, + 106, + 115, + 116, + 46, + 111, + 112, + 101, + 110, + 122, + 97, + 97, + 107, + 46, + 110, + 108, + 47, + 97, + 112, + 105, + 47, + 118, + 49, + 47, + 114, + 101, + 115, + 117, + 108, + 116, + 97, + 97, + 116, + 116, + 121, + 112, + 101, + 111, + 109, + 115, + 99, + 104, + 114, + 105, + 106, + 118, + 105, + 110, + 103, + 101, + 110, + 47, + 102, + 55, + 100, + 50, + 100, + 99, + 49, + 52, + 45, + 49, + 98, + 55, + 49, + 45, + 52, + 49, + 55, + 57, + 45, + 97, + 101, + 100, + 51, + 45, + 52, + 101, + 55, + 97, + 98, + 99, + 102, + 98, + 101, + 98, + 48, + 100, + 34, + 44, + 34, + 111, + 109, + 115, + 99, + 104, + 114, + 105, + 106, + 118, + 105, + 110, + 103, + 34, + 58, + 34, + 86, + 101, + 114, + 108, + 101, + 101, + 110, + 100, + 34, + 44, + 34, + 100, + 101, + 102, + 105, + 110, + 105, + 116, + 105, + 101, + 34, + 58, + 34, + 86, + 101, + 114, + 108, + 101, + 101, + 110, + 100, + 34, + 44, + 34, + 111, + 112, + 109, + 101, + 114, + 107, + 105, + 110, + 103, + 34, + 58, + 34, + 34, + 125, + 44, + 123, + 34, + 117, + 114, + 108, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 115, + 58, + 47, + 47, + 115, + 101, + 108, + 101, + 99, + 116, + 105, + 101, + 108, + 105, + 106, + 115, + 116, + 46, + 111, + 112, + 101, + 110, + 122, + 97, + 97, + 107, + 46, + 110, + 108, + 47, + 97, + 112, + 105, + 47, + 118, + 49, + 47, + 114, + 101, + 115, + 117, + 108, + 116, + 97, + 97, + 116, + 116, + 121, + 112, + 101, + 111, + 109, + 115, + 99, + 104, + 114, + 105, + 106, + 118, + 105, + 110, + 103, + 101, + 110, + 47, + 102, + 51, + 51, + 100, + 98, + 100, + 49, + 54, + 45, + 54, + 56, + 97, + 101, + 45, + 52, + 56, + 50, + 48, + 45, + 97, + 99, + 98, + 53, + 45, + 53, + 102, + 52, + 51, + 55, + 98, + 99, + 97, + 53, + 101, + 100, + 98, + 34, + 44, + 34, + 111, + 109, + 115, + 99, + 104, + 114, + 105, + 106, + 118, + 105, + 110, + 103, + 34, + 58, + 34, + 86, + 101, + 114, + 119, + 101, + 114, + 107, + 116, + 34, + 44, + 34, + 100, + 101, + 102, + 105, + 110, + 105, + 116, + 105, + 101, + 34, + 58, + 34, + 86, + 101, + 114, + 119, + 101, + 114, + 107, + 116, + 34, + 44, + 34, + 111, + 112, + 109, + 101, + 114, + 107, + 105, + 110, + 103, + 34, + 58, + 34, + 34, + 125, + 93 + ] + }, + "cookie": [], + "responseTime": 173, + "responseSize": 3001 + }, + "id": "de505ea7-9510-437c-9980-8839a7218b23" + }, + { + "cursor": { + "ref": "0b49b9b2-52f9-4996-b8e7-aff6e91b7aaf", + "length": 313, + "cycles": 1, + "position": 2, + "iteration": 0, + "httpRequestId": "9839ebfd-d902-4b6f-83cc-c6bcdad93de3" + }, + "item": { + "id": "ec2c2979-3295-4fbf-8030-2a55afb93112", + "name": "Create Besluittype", + "request": { + "url": { + "path": [ + "besluittypen" + ], + "host": [ + "{{ztc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n \"catalogus\": \"{{catalogus_url}}\",\n \"omschrijving\": \"{{besluit_omschrijving}}\",\n \"zaaktypen\": [],\n\t\"publicatieIndicatie\": false,\n\t\"informatieobjecttypen\": [],\n\t\"beginGeldigheid\": \"2019-01-01\"\n}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "ee613c31-ab9a-412d-a799-fe30ad44a065", + "type": "text/javascript", + "packages": {}, + "exec": [ + "if(pm.response.code == 201) {\r", + " pm.environment.set(\"besluittype_url\", pm.response.json().url);\r", + "}" + ], + "_lastExecutionId": "593ee9d0-d2e0-4d55-b4b1-fdaec3e715ed" + } + }, + { + "listen": "prerequest", + "script": { + "id": "404fdf4f-73d1-4472-a261-8ae88e671d89", + "type": "text/javascript", + "packages": {}, + "exec": [ + "var uuid = require('uuid');\r", + "var myUUID = uuid.v4(); \r", + "pm.environment.set(\"besluit_omschrijving\", myUUID);" + ], + "_lastExecutionId": "0b5e92ef-dd65-4fea-a7eb-71f36a7f81d8" + } + } + ] + }, + "request": { + "url": { + "protocol": "http", + "port": "8080", + "path": [ + "index.php", + "apps", + "procest", + "api", + "zgw", + "catalogi", + "v1", + "besluittypen" + ], + "host": [ + "localhost" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Authorization", + "value": "Bearer eyJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJwcm9jZXN0LWFkbWluIiwiY2xpZW50X2lkIjoicHJvY2VzdC1hZG1pbiIsImlhdCI6IjE3NzMxNDUxMzgiLCJ1c2VyX2lkIjoicHJvY2VzdC1hZG1pbiIsInVzZXJfcmVwcmVzZW50YXRpb24iOiIifQ.3VmZzsaJOHW-aXGd_EinYwXIDEErVZ3WML5HDiuPTqQ", + "system": true + }, + { + "key": "User-Agent", + "value": "PostmanRuntime/7.39.1", + "system": true + }, + { + "key": "Accept", + "value": "*/*", + "system": true + }, + { + "key": "Cache-Control", + "value": "no-cache", + "system": true + }, + { + "key": "Postman-Token", + "value": "af4e46db-f3e8-479b-b2a4-7999620b43b3", + "system": true + }, + { + "key": "Host", + "value": "localhost:8080", + "system": true + }, + { + "key": "Accept-Encoding", + "value": "gzip, deflate, br", + "system": true + }, + { + "key": "Connection", + "value": "keep-alive", + "system": true + }, + { + "key": "Content-Length", + "value": "313", + "system": true + }, + { + "key": "Cookie", + "value": "ocvp3112b4wg=3ed852ae4e9ddac2a1312820a057c07f; oc_sessionPassphrase=LBNdKxRzA0iqoULIruNxDDh2BK3O%2BrCIU8aUmiUcOFvy5Xw1YfjwQNlmBW2IkGwJYtxXh9%2BwDN6vYuGNX07tXzkBtjQJUWTGdzf8AIOUIVxVx5DfyWAQZ7nmYmQv6XSE; nc_sameSiteCookielax=true; nc_sameSiteCookiestrict=true", + "system": true + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n \"catalogus\": \"http://localhost:8080/index.php/apps/procest/api/zgw/catalogi/v1/catalogussen/5057408f-fd76-469e-8646-bcc4ba2efa8d\",\n \"omschrijving\": \"c7e4cd3e-1645-4c0a-8bc4-0aa1847f6946\",\n \"zaaktypen\": [],\n\t\"publicatieIndicatie\": false,\n\t\"informatieobjecttypen\": [],\n\t\"beginGeldigheid\": \"2019-01-01\"\n}" + }, + "auth": { + "type": "jwt", + "jwt": [ + { + "type": "string", + "value": "{\r\n \"iss\": \"procest-admin\",\r\n \"client_id\": \"procest-admin\",\r\n \"iat\": \"1773145138\",\r\n \"user_id\": \"procest-admin\",\r\n \"user_representation\": \"\"\r\n}", + "key": "payload" + }, + { + "type": "string", + "value": "procest-admin-secret-key-for-testing", + "key": "secret" + }, + { + "type": "string", + "value": "HS256", + "key": "algorithm" + }, + { + "type": "boolean", + "value": false, + "key": "isSecretBase64Encoded" + }, + { + "type": "string", + "value": "header", + "key": "addTokenTo" + }, + { + "type": "string", + "value": "Bearer", + "key": "headerPrefix" + }, + { + "type": "string", + "value": "token", + "key": "queryParamKey" + }, + { + "type": "string", + "value": "{}", + "key": "header" + } + ] + } + }, + "response": { + "id": "60d4b1cc-bc4c-48b0-bfbd-dd15976f4f65", + "status": "Created", + "code": 201, + "header": [ + { + "key": "Date", + "value": "Tue, 10 Mar 2026 12:18:58 GMT" + }, + { + "key": "Server", + "value": "Apache/2.4.66 (Debian)" + }, + { + "key": "X-Content-Type-Options", + "value": "nosniff" + }, + { + "key": "X-Frame-Options", + "value": "SAMEORIGIN" + }, + { + "key": "X-Permitted-Cross-Domain-Policies", + "value": "none" + }, + { + "key": "X-Robots-Tag", + "value": "noindex, nofollow" + }, + { + "key": "Referrer-Policy", + "value": "no-referrer" + }, + { + "key": "X-Powered-By", + "value": "PHP/8.3.30" + }, + { + "key": "Content-Security-Policy", + "value": "default-src 'none';base-uri 'none';manifest-src 'self';frame-ancestors 'none'" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=3ed852ae4e9ddac2a1312820a057c07f; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=3ed852ae4e9ddac2a1312820a057c07f; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=3ed852ae4e9ddac2a1312820a057c07f; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=3ed852ae4e9ddac2a1312820a057c07f; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=32cff085a6cd58b235d969b4c45ff263; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=32cff085a6cd58b235d969b4c45ff263; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=32cff085a6cd58b235d969b4c45ff263; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=32cff085a6cd58b235d969b4c45ff263; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=32cff085a6cd58b235d969b4c45ff263; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "X-Request-Id", + "value": "9aWeCk4wYwMV0N4oc9GB" + }, + { + "key": "Cache-Control", + "value": "no-cache, no-store, must-revalidate" + }, + { + "key": "Feature-Policy", + "value": "autoplay 'none';camera 'none';fullscreen 'none';geolocation 'none';microphone 'none';payment 'none'" + }, + { + "key": "X-User-Id", + "value": "admin" + }, + { + "key": "Content-Length", + "value": "539" + }, + { + "key": "Keep-Alive", + "value": "timeout=5, max=99" + }, + { + "key": "Connection", + "value": "Keep-Alive" + }, + { + "key": "Content-Type", + "value": "application/json; charset=utf-8" + } + ], + "stream": { + "type": "Buffer", + "data": [ + 123, + 34, + 117, + 114, + 108, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 105, + 92, + 47, + 118, + 49, + 92, + 47, + 98, + 101, + 115, + 108, + 117, + 105, + 116, + 116, + 121, + 112, + 101, + 110, + 92, + 47, + 48, + 98, + 50, + 50, + 48, + 100, + 50, + 55, + 45, + 101, + 50, + 53, + 49, + 45, + 52, + 99, + 52, + 55, + 45, + 98, + 48, + 100, + 102, + 45, + 48, + 49, + 52, + 99, + 50, + 101, + 52, + 99, + 97, + 97, + 54, + 49, + 34, + 44, + 34, + 117, + 117, + 105, + 100, + 34, + 58, + 34, + 48, + 98, + 50, + 50, + 48, + 100, + 50, + 55, + 45, + 101, + 50, + 53, + 49, + 45, + 52, + 99, + 52, + 55, + 45, + 98, + 48, + 100, + 102, + 45, + 48, + 49, + 52, + 99, + 50, + 101, + 52, + 99, + 97, + 97, + 54, + 49, + 34, + 44, + 34, + 111, + 109, + 115, + 99, + 104, + 114, + 105, + 106, + 118, + 105, + 110, + 103, + 34, + 58, + 34, + 99, + 55, + 101, + 52, + 99, + 100, + 51, + 101, + 45, + 49, + 54, + 52, + 53, + 45, + 52, + 99, + 48, + 97, + 45, + 56, + 98, + 99, + 52, + 45, + 48, + 97, + 97, + 49, + 56, + 52, + 55, + 102, + 54, + 57, + 52, + 54, + 34, + 44, + 34, + 116, + 111, + 101, + 108, + 105, + 99, + 104, + 116, + 105, + 110, + 103, + 34, + 58, + 34, + 34, + 44, + 34, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 117, + 115, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 105, + 92, + 47, + 118, + 49, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 117, + 115, + 115, + 101, + 110, + 92, + 47, + 53, + 48, + 53, + 55, + 52, + 48, + 56, + 102, + 45, + 102, + 100, + 55, + 54, + 45, + 52, + 54, + 57, + 101, + 45, + 56, + 54, + 52, + 54, + 45, + 98, + 99, + 99, + 52, + 98, + 97, + 50, + 101, + 102, + 97, + 56, + 100, + 34, + 44, + 34, + 122, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 99, + 111, + 110, + 99, + 101, + 112, + 116, + 34, + 58, + 116, + 114, + 117, + 101, + 44, + 34, + 112, + 117, + 98, + 108, + 105, + 99, + 97, + 116, + 105, + 101, + 73, + 110, + 100, + 105, + 99, + 97, + 116, + 105, + 101, + 34, + 58, + 102, + 97, + 108, + 115, + 101, + 44, + 34, + 105, + 110, + 102, + 111, + 114, + 109, + 97, + 116, + 105, + 101, + 111, + 98, + 106, + 101, + 99, + 116, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 98, + 101, + 103, + 105, + 110, + 71, + 101, + 108, + 100, + 105, + 103, + 104, + 101, + 105, + 100, + 34, + 58, + 34, + 50, + 48, + 49, + 57, + 45, + 48, + 49, + 45, + 48, + 49, + 34, + 44, + 34, + 101, + 105, + 110, + 100, + 101, + 71, + 101, + 108, + 100, + 105, + 103, + 104, + 101, + 105, + 100, + 34, + 58, + 34, + 50, + 48, + 50, + 54, + 45, + 48, + 51, + 45, + 49, + 48, + 34, + 125 + ] + }, + "cookie": [], + "responseTime": 180, + "responseSize": 539 + }, + "id": "ec2c2979-3295-4fbf-8030-2a55afb93112" + }, + { + "cursor": { + "ref": "736ad4a9-ccb6-4b43-95c3-8860eaac1b57", + "length": 313, + "cycles": 1, + "position": 3, + "iteration": 0, + "httpRequestId": "f13cea97-f804-42be-afac-07b627b0cf47" + }, + "item": { + "id": "dc3915f0-48e4-4bdc-b046-0e4569e1c473", + "name": "Create InformatieObjecttype", + "request": { + "url": { + "path": [ + "informatieobjecttypen" + ], + "host": [ + "{{ztc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n\t\"catalogus\": \"{{catalogus_url}}\",\n\t\"omschrijving\": \"{{informatieobject_omschrijving}}\",\n\t\"vertrouwelijkheidaanduiding\": \"openbaar\",\n\t\"beginGeldigheid\": \"2019-01-01\",\n\t\"informatieobjectcategorie\": \"document\"\n}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "ef009f1b-37a9-4d2e-8720-5e20410d52e1", + "type": "text/javascript", + "packages": {}, + "exec": [ + "if(pm.response.code == 201) {\r", + " pm.environment.set(\"informatieobjecttype_url\", pm.response.json().url);\r", + "}" + ], + "_lastExecutionId": "9541cdd6-8910-4db0-b7a9-4c0b18830b9c" + } + }, + { + "listen": "prerequest", + "script": { + "id": "ec14c310-64dc-48b7-b104-badd9871a763", + "type": "text/javascript", + "packages": {}, + "exec": [ + "var uuid = require('uuid');\r", + "var myUUID = uuid.v4(); \r", + "pm.environment.set(\"informatieobject_omschrijving\", myUUID);" + ], + "_lastExecutionId": "4014b0db-bd18-42a4-8864-df6ece621847" + } + } + ] + }, + "request": { + "url": { + "protocol": "http", + "port": "8080", + "path": [ + "index.php", + "apps", + "procest", + "api", + "zgw", + "catalogi", + "v1", + "informatieobjecttypen" + ], + "host": [ + "localhost" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Authorization", + "value": "Bearer eyJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJwcm9jZXN0LWFkbWluIiwiY2xpZW50X2lkIjoicHJvY2VzdC1hZG1pbiIsImlhdCI6IjE3NzMxNDUxMzkiLCJ1c2VyX2lkIjoicHJvY2VzdC1hZG1pbiIsInVzZXJfcmVwcmVzZW50YXRpb24iOiIifQ.0kAw2760rY5O5BSUiQBYygMY2EPG6VeUELONmnrWEwU", + "system": true + }, + { + "key": "User-Agent", + "value": "PostmanRuntime/7.39.1", + "system": true + }, + { + "key": "Accept", + "value": "*/*", + "system": true + }, + { + "key": "Cache-Control", + "value": "no-cache", + "system": true + }, + { + "key": "Postman-Token", + "value": "b2a162a5-fa07-413e-852b-6b2dbce66a4b", + "system": true + }, + { + "key": "Host", + "value": "localhost:8080", + "system": true + }, + { + "key": "Accept-Encoding", + "value": "gzip, deflate, br", + "system": true + }, + { + "key": "Connection", + "value": "keep-alive", + "system": true + }, + { + "key": "Content-Length", + "value": "311", + "system": true + }, + { + "key": "Cookie", + "value": "ocvp3112b4wg=32cff085a6cd58b235d969b4c45ff263; oc_sessionPassphrase=LBNdKxRzA0iqoULIruNxDDh2BK3O%2BrCIU8aUmiUcOFvy5Xw1YfjwQNlmBW2IkGwJYtxXh9%2BwDN6vYuGNX07tXzkBtjQJUWTGdzf8AIOUIVxVx5DfyWAQZ7nmYmQv6XSE; nc_sameSiteCookielax=true; nc_sameSiteCookiestrict=true", + "system": true + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n\t\"catalogus\": \"http://localhost:8080/index.php/apps/procest/api/zgw/catalogi/v1/catalogussen/5057408f-fd76-469e-8646-bcc4ba2efa8d\",\n\t\"omschrijving\": \"e402a6ef-829e-4501-ac05-3b174d9c738b\",\n\t\"vertrouwelijkheidaanduiding\": \"openbaar\",\n\t\"beginGeldigheid\": \"2019-01-01\",\n\t\"informatieobjectcategorie\": \"document\"\n}" + }, + "auth": { + "type": "jwt", + "jwt": [ + { + "type": "string", + "value": "{\r\n \"iss\": \"procest-admin\",\r\n \"client_id\": \"procest-admin\",\r\n \"iat\": \"1773145139\",\r\n \"user_id\": \"procest-admin\",\r\n \"user_representation\": \"\"\r\n}", + "key": "payload" + }, + { + "type": "string", + "value": "procest-admin-secret-key-for-testing", + "key": "secret" + }, + { + "type": "string", + "value": "HS256", + "key": "algorithm" + }, + { + "type": "boolean", + "value": false, + "key": "isSecretBase64Encoded" + }, + { + "type": "string", + "value": "header", + "key": "addTokenTo" + }, + { + "type": "string", + "value": "Bearer", + "key": "headerPrefix" + }, + { + "type": "string", + "value": "token", + "key": "queryParamKey" + }, + { + "type": "string", + "value": "{}", + "key": "header" + } + ] + } + }, + "response": { + "id": "5ea765a1-4261-4ff4-aaa6-6b687ee5caa8", + "status": "Created", + "code": 201, + "header": [ + { + "key": "Date", + "value": "Tue, 10 Mar 2026 12:18:58 GMT" + }, + { + "key": "Server", + "value": "Apache/2.4.66 (Debian)" + }, + { + "key": "X-Content-Type-Options", + "value": "nosniff" + }, + { + "key": "X-Frame-Options", + "value": "SAMEORIGIN" + }, + { + "key": "X-Permitted-Cross-Domain-Policies", + "value": "none" + }, + { + "key": "X-Robots-Tag", + "value": "noindex, nofollow" + }, + { + "key": "Referrer-Policy", + "value": "no-referrer" + }, + { + "key": "X-Powered-By", + "value": "PHP/8.3.30" + }, + { + "key": "Content-Security-Policy", + "value": "default-src 'none';base-uri 'none';manifest-src 'self';frame-ancestors 'none'" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=32cff085a6cd58b235d969b4c45ff263; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=32cff085a6cd58b235d969b4c45ff263; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=32cff085a6cd58b235d969b4c45ff263; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=32cff085a6cd58b235d969b4c45ff263; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=32cff085a6cd58b235d969b4c45ff263; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=ef565493b7b63ee78eea9040522a3c3c; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=ef565493b7b63ee78eea9040522a3c3c; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=ef565493b7b63ee78eea9040522a3c3c; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=ef565493b7b63ee78eea9040522a3c3c; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=ef565493b7b63ee78eea9040522a3c3c; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "X-Request-Id", + "value": "ElgDUjwArz1xu3Dfgosl" + }, + { + "key": "Cache-Control", + "value": "no-cache, no-store, must-revalidate" + }, + { + "key": "Feature-Policy", + "value": "autoplay 'none';camera 'none';fullscreen 'none';geolocation 'none';microphone 'none';payment 'none'" + }, + { + "key": "X-User-Id", + "value": "admin" + }, + { + "key": "Content-Length", + "value": "576" + }, + { + "key": "Keep-Alive", + "value": "timeout=5, max=98" + }, + { + "key": "Connection", + "value": "Keep-Alive" + }, + { + "key": "Content-Type", + "value": "application/json; charset=utf-8" + } + ], + "stream": { + "type": "Buffer", + "data": [ + 123, + 34, + 117, + 114, + 108, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 105, + 92, + 47, + 118, + 49, + 92, + 47, + 105, + 110, + 102, + 111, + 114, + 109, + 97, + 116, + 105, + 101, + 111, + 98, + 106, + 101, + 99, + 116, + 116, + 121, + 112, + 101, + 110, + 92, + 47, + 54, + 99, + 97, + 98, + 55, + 52, + 50, + 48, + 45, + 54, + 99, + 100, + 97, + 45, + 52, + 57, + 99, + 57, + 45, + 56, + 51, + 49, + 51, + 45, + 55, + 52, + 54, + 52, + 57, + 52, + 55, + 97, + 55, + 52, + 97, + 51, + 34, + 44, + 34, + 117, + 117, + 105, + 100, + 34, + 58, + 34, + 54, + 99, + 97, + 98, + 55, + 52, + 50, + 48, + 45, + 54, + 99, + 100, + 97, + 45, + 52, + 57, + 99, + 57, + 45, + 56, + 51, + 49, + 51, + 45, + 55, + 52, + 54, + 52, + 57, + 52, + 55, + 97, + 55, + 52, + 97, + 51, + 34, + 44, + 34, + 111, + 109, + 115, + 99, + 104, + 114, + 105, + 106, + 118, + 105, + 110, + 103, + 34, + 58, + 34, + 101, + 52, + 48, + 50, + 97, + 54, + 101, + 102, + 45, + 56, + 50, + 57, + 101, + 45, + 52, + 53, + 48, + 49, + 45, + 97, + 99, + 48, + 53, + 45, + 51, + 98, + 49, + 55, + 52, + 100, + 57, + 99, + 55, + 51, + 56, + 98, + 34, + 44, + 34, + 116, + 111, + 101, + 108, + 105, + 99, + 104, + 116, + 105, + 110, + 103, + 34, + 58, + 34, + 34, + 44, + 34, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 117, + 115, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 105, + 92, + 47, + 118, + 49, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 117, + 115, + 115, + 101, + 110, + 92, + 47, + 53, + 48, + 53, + 55, + 52, + 48, + 56, + 102, + 45, + 102, + 100, + 55, + 54, + 45, + 52, + 54, + 57, + 101, + 45, + 56, + 54, + 52, + 54, + 45, + 98, + 99, + 99, + 52, + 98, + 97, + 50, + 101, + 102, + 97, + 56, + 100, + 34, + 44, + 34, + 99, + 111, + 110, + 99, + 101, + 112, + 116, + 34, + 58, + 116, + 114, + 117, + 101, + 44, + 34, + 118, + 101, + 114, + 116, + 114, + 111, + 117, + 119, + 101, + 108, + 105, + 106, + 107, + 104, + 101, + 105, + 100, + 97, + 97, + 110, + 100, + 117, + 105, + 100, + 105, + 110, + 103, + 34, + 58, + 34, + 111, + 112, + 101, + 110, + 98, + 97, + 97, + 114, + 34, + 44, + 34, + 105, + 110, + 102, + 111, + 114, + 109, + 97, + 116, + 105, + 101, + 111, + 98, + 106, + 101, + 99, + 116, + 99, + 97, + 116, + 101, + 103, + 111, + 114, + 105, + 101, + 34, + 58, + 34, + 100, + 111, + 99, + 117, + 109, + 101, + 110, + 116, + 34, + 44, + 34, + 98, + 101, + 103, + 105, + 110, + 71, + 101, + 108, + 100, + 105, + 103, + 104, + 101, + 105, + 100, + 34, + 58, + 34, + 50, + 48, + 49, + 57, + 45, + 48, + 49, + 45, + 48, + 49, + 34, + 44, + 34, + 101, + 105, + 110, + 100, + 101, + 71, + 101, + 108, + 100, + 105, + 103, + 104, + 101, + 105, + 100, + 34, + 58, + 34, + 50, + 48, + 50, + 54, + 45, + 48, + 51, + 45, + 49, + 48, + 34, + 44, + 34, + 118, + 101, + 114, + 112, + 108, + 105, + 99, + 104, + 116, + 34, + 58, + 102, + 97, + 108, + 115, + 101, + 125 + ] + }, + "cookie": [], + "responseTime": 170, + "responseSize": 576 + }, + "id": "dc3915f0-48e4-4bdc-b046-0e4569e1c473" + }, + { + "cursor": { + "ref": "ee164fbc-1f39-41b7-8cb0-35f1c4d99d14", + "length": 313, + "cycles": 1, + "position": 4, + "iteration": 0, + "httpRequestId": "e5471729-8307-4f8d-b6b8-f788abc7dfbd" + }, + "item": { + "id": "3017f896-444d-4f8e-8a6b-d0c417b7f2f0", + "name": "Create Deelzaaktype", + "request": { + "url": { + "path": [ + "zaaktypen" + ], + "host": [ + "{{ztc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "disabled": true, + "key": "api-version", + "value": "1.3" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n\t\"identificatie\": \"{{random_identificatie2}}\",\n \"omschrijving\": \"zrc_tests_1 deelzaaktype\",\n \"vertrouwelijkheidaanduiding\": \"openbaar\",\n \"verantwoordelijke\":\"X\",\n \"doel\": \"test doel\",\n \"aanleiding\": \"test aanleiding\",\n \"indicatieInternOfExtern\": \"extern\",\n \"handelingInitiator\": \"indienen\",\n \"onderwerp\": \"openbare ruimte\",\n \"handelingBehandelaar\": \"behandelen\",\n \"doorlooptijd\": \"P10D\",\n \"opschortingEnAanhoudingMogelijk\": false,\n \"verlengingMogelijk\": true,\n \"publicatieIndicatie\": false,\n \"productenOfDiensten\": [\n \"https://ref.tst.vng.cloud/standaard/\"\n ],\n \"selectielijstProcestype\": \"{{procestype_procestermijn_nihil_url}}\",\n \"referentieproces\": {\n \"naam\": \"test\",\n \"link\": \"\"\n },\n \"catalogus\": \"{{catalogus_url}}\",\n \"statustypen\": [\n \n ],\n \"resultaattypen\": [\n ],\n \"eigenschappen\": [\n ],\n \"informatieobjecttypen\": [],\n \"besluittypen\": [\n \"{{besluit_omschrijving}}\"\n ],\n \"gerelateerdeZaaktypen\": [],\n \"deelzaaktypen\": [],\n \"beginGeldigheid\": \"2019-01-01\",\n \"versiedatum\": \"2019-01-01\",\n \"concept\": true,\n \"verlengingstermijn\": \"P5D\"\n}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "3dfc5054-8543-40af-ba3e-15080041b1c8", + "type": "text/javascript", + "packages": {}, + "exec": [ + "if(pm.response.code == 201) { ", + " var res = pm.response.json();", + " pm.environment.set(\"deelzaaktype_url\", res.url);", + " pm.environment.set(\"deelzaaktype_omschrijving\", res.omschrijving);", + " pm.environment.set(\"deelzaaktype_identificatie\", res.identificatie);", + "}" + ], + "_lastExecutionId": "bf05b0b5-b13c-4a70-b1aa-6666d5a7577a" + } + }, + { + "listen": "prerequest", + "script": { + "id": "9d77337d-cdff-4e8a-ac0f-cd7324a6d4cc", + "type": "text/javascript", + "packages": {}, + "exec": [ + "var uuid = require('uuid');", + "var myUUID = uuid.v4(); ", + "pm.environment.set(\"random_identificatie2\", myUUID);", + "" + ], + "_lastExecutionId": "dde441f7-63ec-4f12-bf34-70c4feb7a7a5" + } + } + ] + }, + "request": { + "url": { + "protocol": "http", + "port": "8080", + "path": [ + "index.php", + "apps", + "procest", + "api", + "zgw", + "catalogi", + "v1", + "zaaktypen" + ], + "host": [ + "localhost" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "disabled": true, + "key": "api-version", + "value": "1.3" + }, + { + "key": "Authorization", + "value": "Bearer eyJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJwcm9jZXN0LWFkbWluIiwiY2xpZW50X2lkIjoicHJvY2VzdC1hZG1pbiIsImlhdCI6IjE3NzMxNDUxMzkiLCJ1c2VyX2lkIjoicHJvY2VzdC1hZG1pbiIsInVzZXJfcmVwcmVzZW50YXRpb24iOiIifQ.0kAw2760rY5O5BSUiQBYygMY2EPG6VeUELONmnrWEwU", + "system": true + }, + { + "key": "User-Agent", + "value": "PostmanRuntime/7.39.1", + "system": true + }, + { + "key": "Accept", + "value": "*/*", + "system": true + }, + { + "key": "Cache-Control", + "value": "no-cache", + "system": true + }, + { + "key": "Postman-Token", + "value": "c50760a5-afcf-4f3b-8b18-48b870051d66", + "system": true + }, + { + "key": "Host", + "value": "localhost:8080", + "system": true + }, + { + "key": "Accept-Encoding", + "value": "gzip, deflate, br", + "system": true + }, + { + "key": "Connection", + "value": "keep-alive", + "system": true + }, + { + "key": "Content-Length", + "value": "1350", + "system": true + }, + { + "key": "Cookie", + "value": "ocvp3112b4wg=ef565493b7b63ee78eea9040522a3c3c; oc_sessionPassphrase=LBNdKxRzA0iqoULIruNxDDh2BK3O%2BrCIU8aUmiUcOFvy5Xw1YfjwQNlmBW2IkGwJYtxXh9%2BwDN6vYuGNX07tXzkBtjQJUWTGdzf8AIOUIVxVx5DfyWAQZ7nmYmQv6XSE; nc_sameSiteCookielax=true; nc_sameSiteCookiestrict=true", + "system": true + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n\t\"identificatie\": \"cae6f26a-1321-4bff-b314-421ddf7775b9\",\n \"omschrijving\": \"zrc_tests_1 deelzaaktype\",\n \"vertrouwelijkheidaanduiding\": \"openbaar\",\n \"verantwoordelijke\":\"X\",\n \"doel\": \"test doel\",\n \"aanleiding\": \"test aanleiding\",\n \"indicatieInternOfExtern\": \"extern\",\n \"handelingInitiator\": \"indienen\",\n \"onderwerp\": \"openbare ruimte\",\n \"handelingBehandelaar\": \"behandelen\",\n \"doorlooptijd\": \"P10D\",\n \"opschortingEnAanhoudingMogelijk\": false,\n \"verlengingMogelijk\": true,\n \"publicatieIndicatie\": false,\n \"productenOfDiensten\": [\n \"https://ref.tst.vng.cloud/standaard/\"\n ],\n \"selectielijstProcestype\": \"https://selectielijst.openzaak.nl/api/v1/procestypen/838e405a-9b12-43c4-a985-d7a7490d422e\",\n \"referentieproces\": {\n \"naam\": \"test\",\n \"link\": \"\"\n },\n \"catalogus\": \"http://localhost:8080/index.php/apps/procest/api/zgw/catalogi/v1/catalogussen/5057408f-fd76-469e-8646-bcc4ba2efa8d\",\n \"statustypen\": [\n \n ],\n \"resultaattypen\": [\n ],\n \"eigenschappen\": [\n ],\n \"informatieobjecttypen\": [],\n \"besluittypen\": [\n \"c7e4cd3e-1645-4c0a-8bc4-0aa1847f6946\"\n ],\n \"gerelateerdeZaaktypen\": [],\n \"deelzaaktypen\": [],\n \"beginGeldigheid\": \"2019-01-01\",\n \"versiedatum\": \"2019-01-01\",\n \"concept\": true,\n \"verlengingstermijn\": \"P5D\"\n}" + }, + "auth": { + "type": "jwt", + "jwt": [ + { + "type": "string", + "value": "{\r\n \"iss\": \"procest-admin\",\r\n \"client_id\": \"procest-admin\",\r\n \"iat\": \"1773145139\",\r\n \"user_id\": \"procest-admin\",\r\n \"user_representation\": \"\"\r\n}", + "key": "payload" + }, + { + "type": "string", + "value": "procest-admin-secret-key-for-testing", + "key": "secret" + }, + { + "type": "string", + "value": "HS256", + "key": "algorithm" + }, + { + "type": "boolean", + "value": false, + "key": "isSecretBase64Encoded" + }, + { + "type": "string", + "value": "header", + "key": "addTokenTo" + }, + { + "type": "string", + "value": "Bearer", + "key": "headerPrefix" + }, + { + "type": "string", + "value": "token", + "key": "queryParamKey" + }, + { + "type": "string", + "value": "{}", + "key": "header" + } + ] + } + }, + "response": { + "id": "6ee7fadb-7ceb-4f70-8db3-cac577825dbe", + "status": "Created", + "code": 201, + "header": [ + { + "key": "Date", + "value": "Tue, 10 Mar 2026 12:18:58 GMT" + }, + { + "key": "Server", + "value": "Apache/2.4.66 (Debian)" + }, + { + "key": "X-Content-Type-Options", + "value": "nosniff" + }, + { + "key": "X-Frame-Options", + "value": "SAMEORIGIN" + }, + { + "key": "X-Permitted-Cross-Domain-Policies", + "value": "none" + }, + { + "key": "X-Robots-Tag", + "value": "noindex, nofollow" + }, + { + "key": "Referrer-Policy", + "value": "no-referrer" + }, + { + "key": "X-Powered-By", + "value": "PHP/8.3.30" + }, + { + "key": "Content-Security-Policy", + "value": "default-src 'none';base-uri 'none';manifest-src 'self';frame-ancestors 'none'" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=ef565493b7b63ee78eea9040522a3c3c; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=ef565493b7b63ee78eea9040522a3c3c; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=ef565493b7b63ee78eea9040522a3c3c; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=ef565493b7b63ee78eea9040522a3c3c; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=ef565493b7b63ee78eea9040522a3c3c; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=8e96a327d95f8fda2de3cb1f8956639a; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=8e96a327d95f8fda2de3cb1f8956639a; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=8e96a327d95f8fda2de3cb1f8956639a; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=8e96a327d95f8fda2de3cb1f8956639a; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=8e96a327d95f8fda2de3cb1f8956639a; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "X-Request-Id", + "value": "EMr9PbAV4nLUdDK9ASFV" + }, + { + "key": "Cache-Control", + "value": "no-cache, no-store, must-revalidate" + }, + { + "key": "Feature-Policy", + "value": "autoplay 'none';camera 'none';fullscreen 'none';geolocation 'none';microphone 'none';payment 'none'" + }, + { + "key": "X-User-Id", + "value": "admin" + }, + { + "key": "Content-Length", + "value": "1350" + }, + { + "key": "Keep-Alive", + "value": "timeout=5, max=97" + }, + { + "key": "Connection", + "value": "Keep-Alive" + }, + { + "key": "Content-Type", + "value": "application/json; charset=utf-8" + } + ], + "stream": { + "type": "Buffer", + "data": [ + 123, + 34, + 117, + 114, + 108, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 105, + 92, + 47, + 118, + 49, + 92, + 47, + 122, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 110, + 92, + 47, + 55, + 53, + 55, + 49, + 98, + 102, + 102, + 101, + 45, + 53, + 53, + 55, + 57, + 45, + 52, + 50, + 57, + 53, + 45, + 57, + 102, + 97, + 99, + 45, + 56, + 55, + 97, + 57, + 97, + 54, + 98, + 54, + 99, + 53, + 97, + 99, + 34, + 44, + 34, + 117, + 117, + 105, + 100, + 34, + 58, + 34, + 55, + 53, + 55, + 49, + 98, + 102, + 102, + 101, + 45, + 53, + 53, + 55, + 57, + 45, + 52, + 50, + 57, + 53, + 45, + 57, + 102, + 97, + 99, + 45, + 56, + 55, + 97, + 57, + 97, + 54, + 98, + 54, + 99, + 53, + 97, + 99, + 34, + 44, + 34, + 105, + 100, + 101, + 110, + 116, + 105, + 102, + 105, + 99, + 97, + 116, + 105, + 101, + 34, + 58, + 34, + 99, + 97, + 101, + 54, + 102, + 50, + 54, + 97, + 45, + 49, + 51, + 50, + 49, + 45, + 52, + 98, + 102, + 102, + 45, + 98, + 51, + 49, + 52, + 45, + 52, + 50, + 49, + 100, + 100, + 102, + 55, + 55, + 55, + 53, + 98, + 57, + 34, + 44, + 34, + 111, + 109, + 115, + 99, + 104, + 114, + 105, + 106, + 118, + 105, + 110, + 103, + 34, + 58, + 34, + 122, + 114, + 99, + 95, + 116, + 101, + 115, + 116, + 115, + 95, + 49, + 32, + 100, + 101, + 101, + 108, + 122, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 34, + 44, + 34, + 111, + 109, + 115, + 99, + 104, + 114, + 105, + 106, + 118, + 105, + 110, + 103, + 71, + 101, + 110, + 101, + 114, + 105, + 101, + 107, + 34, + 58, + 34, + 34, + 44, + 34, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 117, + 115, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 105, + 92, + 47, + 118, + 49, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 117, + 115, + 115, + 101, + 110, + 92, + 47, + 53, + 48, + 53, + 55, + 52, + 48, + 56, + 102, + 45, + 102, + 100, + 55, + 54, + 45, + 52, + 54, + 57, + 101, + 45, + 56, + 54, + 52, + 54, + 45, + 98, + 99, + 99, + 52, + 98, + 97, + 50, + 101, + 102, + 97, + 56, + 100, + 34, + 44, + 34, + 100, + 111, + 101, + 108, + 34, + 58, + 34, + 116, + 101, + 115, + 116, + 32, + 100, + 111, + 101, + 108, + 34, + 44, + 34, + 97, + 97, + 110, + 108, + 101, + 105, + 100, + 105, + 110, + 103, + 34, + 58, + 34, + 116, + 101, + 115, + 116, + 32, + 97, + 97, + 110, + 108, + 101, + 105, + 100, + 105, + 110, + 103, + 34, + 44, + 34, + 111, + 110, + 100, + 101, + 114, + 119, + 101, + 114, + 112, + 34, + 58, + 34, + 111, + 112, + 101, + 110, + 98, + 97, + 114, + 101, + 32, + 114, + 117, + 105, + 109, + 116, + 101, + 34, + 44, + 34, + 100, + 111, + 111, + 114, + 108, + 111, + 111, + 112, + 116, + 105, + 106, + 100, + 34, + 58, + 34, + 80, + 49, + 48, + 68, + 34, + 44, + 34, + 118, + 101, + 114, + 116, + 114, + 111, + 117, + 119, + 101, + 108, + 105, + 106, + 107, + 104, + 101, + 105, + 100, + 97, + 97, + 110, + 100, + 117, + 105, + 100, + 105, + 110, + 103, + 34, + 58, + 34, + 111, + 112, + 101, + 110, + 98, + 97, + 97, + 114, + 34, + 44, + 34, + 99, + 111, + 110, + 99, + 101, + 112, + 116, + 34, + 58, + 116, + 114, + 117, + 101, + 44, + 34, + 98, + 101, + 103, + 105, + 110, + 71, + 101, + 108, + 100, + 105, + 103, + 104, + 101, + 105, + 100, + 34, + 58, + 34, + 50, + 48, + 49, + 57, + 45, + 48, + 49, + 45, + 48, + 49, + 34, + 44, + 34, + 101, + 105, + 110, + 100, + 101, + 71, + 101, + 108, + 100, + 105, + 103, + 104, + 101, + 105, + 100, + 34, + 58, + 34, + 50, + 48, + 50, + 54, + 45, + 48, + 51, + 45, + 49, + 48, + 34, + 44, + 34, + 104, + 97, + 110, + 100, + 101, + 108, + 105, + 110, + 103, + 73, + 110, + 105, + 116, + 105, + 97, + 116, + 111, + 114, + 34, + 58, + 34, + 105, + 110, + 100, + 105, + 101, + 110, + 101, + 110, + 34, + 44, + 34, + 105, + 110, + 100, + 105, + 99, + 97, + 116, + 105, + 101, + 73, + 110, + 116, + 101, + 114, + 110, + 79, + 102, + 69, + 120, + 116, + 101, + 114, + 110, + 34, + 58, + 34, + 101, + 120, + 116, + 101, + 114, + 110, + 34, + 44, + 34, + 104, + 97, + 110, + 100, + 101, + 108, + 105, + 110, + 103, + 66, + 101, + 104, + 97, + 110, + 100, + 101, + 108, + 97, + 97, + 114, + 34, + 58, + 34, + 98, + 101, + 104, + 97, + 110, + 100, + 101, + 108, + 101, + 110, + 34, + 44, + 34, + 111, + 112, + 115, + 99, + 104, + 111, + 114, + 116, + 105, + 110, + 103, + 69, + 110, + 65, + 97, + 110, + 104, + 111, + 117, + 100, + 105, + 110, + 103, + 77, + 111, + 103, + 101, + 108, + 105, + 106, + 107, + 34, + 58, + 102, + 97, + 108, + 115, + 101, + 44, + 34, + 118, + 101, + 114, + 108, + 101, + 110, + 103, + 105, + 110, + 103, + 77, + 111, + 103, + 101, + 108, + 105, + 106, + 107, + 34, + 58, + 116, + 114, + 117, + 101, + 44, + 34, + 118, + 101, + 114, + 108, + 101, + 110, + 103, + 105, + 110, + 103, + 115, + 116, + 101, + 114, + 109, + 105, + 106, + 110, + 34, + 58, + 34, + 80, + 53, + 68, + 34, + 44, + 34, + 112, + 117, + 98, + 108, + 105, + 99, + 97, + 116, + 105, + 101, + 73, + 110, + 100, + 105, + 99, + 97, + 116, + 105, + 101, + 34, + 58, + 102, + 97, + 108, + 115, + 101, + 44, + 34, + 112, + 114, + 111, + 100, + 117, + 99, + 116, + 101, + 110, + 79, + 102, + 68, + 105, + 101, + 110, + 115, + 116, + 101, + 110, + 34, + 58, + 91, + 34, + 104, + 116, + 116, + 112, + 115, + 58, + 92, + 47, + 92, + 47, + 114, + 101, + 102, + 46, + 116, + 115, + 116, + 46, + 118, + 110, + 103, + 46, + 99, + 108, + 111, + 117, + 100, + 92, + 47, + 115, + 116, + 97, + 110, + 100, + 97, + 97, + 114, + 100, + 92, + 47, + 34, + 93, + 44, + 34, + 115, + 101, + 108, + 101, + 99, + 116, + 105, + 101, + 108, + 105, + 106, + 115, + 116, + 80, + 114, + 111, + 99, + 101, + 115, + 116, + 121, + 112, + 101, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 115, + 58, + 92, + 47, + 92, + 47, + 115, + 101, + 108, + 101, + 99, + 116, + 105, + 101, + 108, + 105, + 106, + 115, + 116, + 46, + 111, + 112, + 101, + 110, + 122, + 97, + 97, + 107, + 46, + 110, + 108, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 118, + 49, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 121, + 112, + 101, + 110, + 92, + 47, + 56, + 51, + 56, + 101, + 52, + 48, + 53, + 97, + 45, + 57, + 98, + 49, + 50, + 45, + 52, + 51, + 99, + 52, + 45, + 97, + 57, + 56, + 53, + 45, + 100, + 55, + 97, + 55, + 52, + 57, + 48, + 100, + 52, + 50, + 50, + 101, + 34, + 44, + 34, + 114, + 101, + 102, + 101, + 114, + 101, + 110, + 116, + 105, + 101, + 112, + 114, + 111, + 99, + 101, + 115, + 34, + 58, + 123, + 34, + 108, + 105, + 110, + 107, + 34, + 58, + 34, + 34, + 44, + 34, + 110, + 97, + 97, + 109, + 34, + 58, + 34, + 116, + 101, + 115, + 116, + 34, + 125, + 44, + 34, + 118, + 101, + 114, + 97, + 110, + 116, + 119, + 111, + 111, + 114, + 100, + 101, + 108, + 105, + 106, + 107, + 101, + 34, + 58, + 34, + 88, + 34, + 44, + 34, + 103, + 101, + 114, + 101, + 108, + 97, + 116, + 101, + 101, + 114, + 100, + 101, + 90, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 98, + 101, + 115, + 108, + 117, + 105, + 116, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 105, + 110, + 102, + 111, + 114, + 109, + 97, + 116, + 105, + 101, + 111, + 98, + 106, + 101, + 99, + 116, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 100, + 101, + 101, + 108, + 122, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 116, + 111, + 101, + 108, + 105, + 99, + 104, + 116, + 105, + 110, + 103, + 34, + 58, + 34, + 34, + 44, + 34, + 118, + 101, + 114, + 115, + 105, + 101, + 100, + 97, + 116, + 117, + 109, + 34, + 58, + 34, + 50, + 48, + 49, + 57, + 45, + 48, + 49, + 45, + 48, + 49, + 34, + 44, + 34, + 101, + 105, + 103, + 101, + 110, + 115, + 99, + 104, + 97, + 112, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 115, + 116, + 97, + 116, + 117, + 115, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 114, + 101, + 115, + 117, + 108, + 116, + 97, + 97, + 116, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 114, + 111, + 108, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 125 + ] + }, + "cookie": [], + "responseTime": 311, + "responseSize": 1350 + }, + "id": "3017f896-444d-4f8e-8a6b-d0c417b7f2f0" + }, + { + "cursor": { + "ref": "1347a58c-a076-47d0-97e6-e71386c6d763", + "length": 313, + "cycles": 1, + "position": 5, + "iteration": 0, + "httpRequestId": "f1983cbb-1acb-4a78-a9a7-e193d7f87af1" + }, + "item": { + "id": "132dbf0e-3a65-41dc-ae2b-1d466bf6b3d3", + "name": "Create Zaaktype", + "request": { + "url": { + "path": [ + "zaaktypen" + ], + "host": [ + "{{ztc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n\t\"identificatie\": \"{{random_identificatie}}\",\n \"omschrijving\": \"zrc_tests_1\",\n \"vertrouwelijkheidaanduiding\": \"openbaar\",\n \"doel\": \"test doel\",\n \"verantwoordelijke\":\"X\",\n \"aanleiding\": \"test aanleiding\",\n \"indicatieInternOfExtern\": \"extern\",\n \"handelingInitiator\": \"indienen\",\n \"onderwerp\": \"openbare ruimte\",\n \"handelingBehandelaar\": \"behandelen\",\n \"doorlooptijd\": \"P10D\",\n \"opschortingEnAanhoudingMogelijk\": false,\n \"verlengingMogelijk\": true,\n \"publicatieIndicatie\": false,\n \"productenOfDiensten\": [\n \"https://ref.tst.vng.cloud/standaard/\"\n ],\n \"selectielijstProcestype\": \"{{procestype_procestermijn_nihil_url}}\",\n \"referentieproces\": {\n \"naam\": \"test\",\n \"link\": \"\"\n },\n \"deelzaaktypen\": [\n \"{{deelzaaktype_identificatie}}\"\n ],\n \"catalogus\": \"{{catalogus_url}}\",\n \"statustypen\": [\n \n ],\n \"resultaattypen\": [\n ],\n \"eigenschappen\": [\n ],\n \"informatieobjecttypen\": [],\n \"besluittypen\": [\n \"{{besluit_omschrijving}}\"\n ],\n \"gerelateerdeZaaktypen\": [],\n \"beginGeldigheid\": \"2019-01-01\",\n \"versiedatum\": \"2019-01-01\",\n \"concept\": true,\n \"verlengingstermijn\": \"P5D\"\n}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "4d8e4c9b-78de-4450-8b12-1ca2af986003", + "type": "text/javascript", + "packages": {}, + "exec": [ + "if(pm.response.code == 201) {", + " var res = pm.response.json();", + "pm.environment.set(\"zaaktype_url\", res.url);", + "pm.environment.set(\"zaaktype_vertrouwelijkheid\", res.vertrouwelijkheidaanduiding);", + "pm.environment.set(\"zaaktype_productenOfDiensten\", res.productenOfDiensten);", + "pm.environment.set(\"zaaktype_resultaattypen\", res.resultaattypen);", + "pm.environment.set(\"zaaktype_eigenschap\", res.eigenschappen[0]);", + "pm.environment.set(\"zaaktype_body\", pm.request.body.raw);", + "}" + ], + "_lastExecutionId": "e8d49bf9-2330-4f64-abab-3027e0d7c784" + } + }, + { + "listen": "prerequest", + "script": { + "id": "ec8d489e-2c4d-4702-965f-18b5bdf627d1", + "type": "text/javascript", + "packages": {}, + "exec": [ + "var uuid = require('uuid');", + "var myUUID = uuid.v4(); ", + "pm.environment.set(\"random_identificatie\", myUUID);", + "" + ], + "_lastExecutionId": "678496a5-ff61-4868-9d99-6e62c190aaca" + } + } + ] + }, + "request": { + "url": { + "protocol": "http", + "port": "8080", + "path": [ + "index.php", + "apps", + "procest", + "api", + "zgw", + "catalogi", + "v1", + "zaaktypen" + ], + "host": [ + "localhost" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Authorization", + "value": "Bearer eyJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJwcm9jZXN0LWFkbWluIiwiY2xpZW50X2lkIjoicHJvY2VzdC1hZG1pbiIsImlhdCI6IjE3NzMxNDUxMzkiLCJ1c2VyX2lkIjoicHJvY2VzdC1hZG1pbiIsInVzZXJfcmVwcmVzZW50YXRpb24iOiIifQ.0kAw2760rY5O5BSUiQBYygMY2EPG6VeUELONmnrWEwU", + "system": true + }, + { + "key": "User-Agent", + "value": "PostmanRuntime/7.39.1", + "system": true + }, + { + "key": "Accept", + "value": "*/*", + "system": true + }, + { + "key": "Cache-Control", + "value": "no-cache", + "system": true + }, + { + "key": "Postman-Token", + "value": "8e4c4cf7-b962-4d91-b3c8-7484174bb1ed", + "system": true + }, + { + "key": "Host", + "value": "localhost:8080", + "system": true + }, + { + "key": "Accept-Encoding", + "value": "gzip, deflate, br", + "system": true + }, + { + "key": "Connection", + "value": "keep-alive", + "system": true + }, + { + "key": "Content-Length", + "value": "1388", + "system": true + }, + { + "key": "Cookie", + "value": "ocvp3112b4wg=8e96a327d95f8fda2de3cb1f8956639a; oc_sessionPassphrase=LBNdKxRzA0iqoULIruNxDDh2BK3O%2BrCIU8aUmiUcOFvy5Xw1YfjwQNlmBW2IkGwJYtxXh9%2BwDN6vYuGNX07tXzkBtjQJUWTGdzf8AIOUIVxVx5DfyWAQZ7nmYmQv6XSE; nc_sameSiteCookielax=true; nc_sameSiteCookiestrict=true", + "system": true + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n\t\"identificatie\": \"2b83db51-a437-4711-ae21-e110164f6b7f\",\n \"omschrijving\": \"zrc_tests_1\",\n \"vertrouwelijkheidaanduiding\": \"openbaar\",\n \"doel\": \"test doel\",\n \"verantwoordelijke\":\"X\",\n \"aanleiding\": \"test aanleiding\",\n \"indicatieInternOfExtern\": \"extern\",\n \"handelingInitiator\": \"indienen\",\n \"onderwerp\": \"openbare ruimte\",\n \"handelingBehandelaar\": \"behandelen\",\n \"doorlooptijd\": \"P10D\",\n \"opschortingEnAanhoudingMogelijk\": false,\n \"verlengingMogelijk\": true,\n \"publicatieIndicatie\": false,\n \"productenOfDiensten\": [\n \"https://ref.tst.vng.cloud/standaard/\"\n ],\n \"selectielijstProcestype\": \"https://selectielijst.openzaak.nl/api/v1/procestypen/838e405a-9b12-43c4-a985-d7a7490d422e\",\n \"referentieproces\": {\n \"naam\": \"test\",\n \"link\": \"\"\n },\n \"deelzaaktypen\": [\n \"cae6f26a-1321-4bff-b314-421ddf7775b9\"\n ],\n \"catalogus\": \"http://localhost:8080/index.php/apps/procest/api/zgw/catalogi/v1/catalogussen/5057408f-fd76-469e-8646-bcc4ba2efa8d\",\n \"statustypen\": [\n \n ],\n \"resultaattypen\": [\n ],\n \"eigenschappen\": [\n ],\n \"informatieobjecttypen\": [],\n \"besluittypen\": [\n \"c7e4cd3e-1645-4c0a-8bc4-0aa1847f6946\"\n ],\n \"gerelateerdeZaaktypen\": [],\n \"beginGeldigheid\": \"2019-01-01\",\n \"versiedatum\": \"2019-01-01\",\n \"concept\": true,\n \"verlengingstermijn\": \"P5D\"\n}" + }, + "auth": { + "type": "jwt", + "jwt": [ + { + "type": "string", + "value": "{\r\n \"iss\": \"procest-admin\",\r\n \"client_id\": \"procest-admin\",\r\n \"iat\": \"1773145139\",\r\n \"user_id\": \"procest-admin\",\r\n \"user_representation\": \"\"\r\n}", + "key": "payload" + }, + { + "type": "string", + "value": "procest-admin-secret-key-for-testing", + "key": "secret" + }, + { + "type": "string", + "value": "HS256", + "key": "algorithm" + }, + { + "type": "boolean", + "value": false, + "key": "isSecretBase64Encoded" + }, + { + "type": "string", + "value": "header", + "key": "addTokenTo" + }, + { + "type": "string", + "value": "Bearer", + "key": "headerPrefix" + }, + { + "type": "string", + "value": "token", + "key": "queryParamKey" + }, + { + "type": "string", + "value": "{}", + "key": "header" + } + ] + } + }, + "response": { + "id": "95de3d87-9819-4b71-b980-07f2ff60ac7a", + "status": "Created", + "code": 201, + "header": [ + { + "key": "Date", + "value": "Tue, 10 Mar 2026 12:18:59 GMT" + }, + { + "key": "Server", + "value": "Apache/2.4.66 (Debian)" + }, + { + "key": "X-Content-Type-Options", + "value": "nosniff" + }, + { + "key": "X-Frame-Options", + "value": "SAMEORIGIN" + }, + { + "key": "X-Permitted-Cross-Domain-Policies", + "value": "none" + }, + { + "key": "X-Robots-Tag", + "value": "noindex, nofollow" + }, + { + "key": "Referrer-Policy", + "value": "no-referrer" + }, + { + "key": "X-Powered-By", + "value": "PHP/8.3.30" + }, + { + "key": "Content-Security-Policy", + "value": "default-src 'none';base-uri 'none';manifest-src 'self';frame-ancestors 'none'" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=8e96a327d95f8fda2de3cb1f8956639a; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=8e96a327d95f8fda2de3cb1f8956639a; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=8e96a327d95f8fda2de3cb1f8956639a; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=8e96a327d95f8fda2de3cb1f8956639a; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=8e96a327d95f8fda2de3cb1f8956639a; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=0cc04a549c569b3134762de15b10e0d2; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=0cc04a549c569b3134762de15b10e0d2; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=0cc04a549c569b3134762de15b10e0d2; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=0cc04a549c569b3134762de15b10e0d2; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=0cc04a549c569b3134762de15b10e0d2; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "X-Request-Id", + "value": "sWjyHXO26hrR9pYl0yGc" + }, + { + "key": "Cache-Control", + "value": "no-cache, no-store, must-revalidate" + }, + { + "key": "Feature-Policy", + "value": "autoplay 'none';camera 'none';fullscreen 'none';geolocation 'none';microphone 'none';payment 'none'" + }, + { + "key": "X-User-Id", + "value": "admin" + }, + { + "key": "Content-Length", + "value": "1337" + }, + { + "key": "Keep-Alive", + "value": "timeout=5, max=96" + }, + { + "key": "Connection", + "value": "Keep-Alive" + }, + { + "key": "Content-Type", + "value": "application/json; charset=utf-8" + } + ], + "stream": { + "type": "Buffer", + "data": [ + 123, + 34, + 117, + 114, + 108, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 105, + 92, + 47, + 118, + 49, + 92, + 47, + 122, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 110, + 92, + 47, + 54, + 49, + 57, + 100, + 99, + 51, + 101, + 53, + 45, + 53, + 50, + 102, + 49, + 45, + 52, + 50, + 57, + 52, + 45, + 97, + 53, + 54, + 57, + 45, + 102, + 50, + 49, + 100, + 49, + 54, + 102, + 52, + 52, + 56, + 55, + 57, + 34, + 44, + 34, + 117, + 117, + 105, + 100, + 34, + 58, + 34, + 54, + 49, + 57, + 100, + 99, + 51, + 101, + 53, + 45, + 53, + 50, + 102, + 49, + 45, + 52, + 50, + 57, + 52, + 45, + 97, + 53, + 54, + 57, + 45, + 102, + 50, + 49, + 100, + 49, + 54, + 102, + 52, + 52, + 56, + 55, + 57, + 34, + 44, + 34, + 105, + 100, + 101, + 110, + 116, + 105, + 102, + 105, + 99, + 97, + 116, + 105, + 101, + 34, + 58, + 34, + 50, + 98, + 56, + 51, + 100, + 98, + 53, + 49, + 45, + 97, + 52, + 51, + 55, + 45, + 52, + 55, + 49, + 49, + 45, + 97, + 101, + 50, + 49, + 45, + 101, + 49, + 49, + 48, + 49, + 54, + 52, + 102, + 54, + 98, + 55, + 102, + 34, + 44, + 34, + 111, + 109, + 115, + 99, + 104, + 114, + 105, + 106, + 118, + 105, + 110, + 103, + 34, + 58, + 34, + 122, + 114, + 99, + 95, + 116, + 101, + 115, + 116, + 115, + 95, + 49, + 34, + 44, + 34, + 111, + 109, + 115, + 99, + 104, + 114, + 105, + 106, + 118, + 105, + 110, + 103, + 71, + 101, + 110, + 101, + 114, + 105, + 101, + 107, + 34, + 58, + 34, + 34, + 44, + 34, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 117, + 115, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 105, + 92, + 47, + 118, + 49, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 117, + 115, + 115, + 101, + 110, + 92, + 47, + 53, + 48, + 53, + 55, + 52, + 48, + 56, + 102, + 45, + 102, + 100, + 55, + 54, + 45, + 52, + 54, + 57, + 101, + 45, + 56, + 54, + 52, + 54, + 45, + 98, + 99, + 99, + 52, + 98, + 97, + 50, + 101, + 102, + 97, + 56, + 100, + 34, + 44, + 34, + 100, + 111, + 101, + 108, + 34, + 58, + 34, + 116, + 101, + 115, + 116, + 32, + 100, + 111, + 101, + 108, + 34, + 44, + 34, + 97, + 97, + 110, + 108, + 101, + 105, + 100, + 105, + 110, + 103, + 34, + 58, + 34, + 116, + 101, + 115, + 116, + 32, + 97, + 97, + 110, + 108, + 101, + 105, + 100, + 105, + 110, + 103, + 34, + 44, + 34, + 111, + 110, + 100, + 101, + 114, + 119, + 101, + 114, + 112, + 34, + 58, + 34, + 111, + 112, + 101, + 110, + 98, + 97, + 114, + 101, + 32, + 114, + 117, + 105, + 109, + 116, + 101, + 34, + 44, + 34, + 100, + 111, + 111, + 114, + 108, + 111, + 111, + 112, + 116, + 105, + 106, + 100, + 34, + 58, + 34, + 80, + 49, + 48, + 68, + 34, + 44, + 34, + 118, + 101, + 114, + 116, + 114, + 111, + 117, + 119, + 101, + 108, + 105, + 106, + 107, + 104, + 101, + 105, + 100, + 97, + 97, + 110, + 100, + 117, + 105, + 100, + 105, + 110, + 103, + 34, + 58, + 34, + 111, + 112, + 101, + 110, + 98, + 97, + 97, + 114, + 34, + 44, + 34, + 99, + 111, + 110, + 99, + 101, + 112, + 116, + 34, + 58, + 116, + 114, + 117, + 101, + 44, + 34, + 98, + 101, + 103, + 105, + 110, + 71, + 101, + 108, + 100, + 105, + 103, + 104, + 101, + 105, + 100, + 34, + 58, + 34, + 50, + 48, + 49, + 57, + 45, + 48, + 49, + 45, + 48, + 49, + 34, + 44, + 34, + 101, + 105, + 110, + 100, + 101, + 71, + 101, + 108, + 100, + 105, + 103, + 104, + 101, + 105, + 100, + 34, + 58, + 34, + 50, + 48, + 50, + 54, + 45, + 48, + 51, + 45, + 49, + 48, + 34, + 44, + 34, + 104, + 97, + 110, + 100, + 101, + 108, + 105, + 110, + 103, + 73, + 110, + 105, + 116, + 105, + 97, + 116, + 111, + 114, + 34, + 58, + 34, + 105, + 110, + 100, + 105, + 101, + 110, + 101, + 110, + 34, + 44, + 34, + 105, + 110, + 100, + 105, + 99, + 97, + 116, + 105, + 101, + 73, + 110, + 116, + 101, + 114, + 110, + 79, + 102, + 69, + 120, + 116, + 101, + 114, + 110, + 34, + 58, + 34, + 101, + 120, + 116, + 101, + 114, + 110, + 34, + 44, + 34, + 104, + 97, + 110, + 100, + 101, + 108, + 105, + 110, + 103, + 66, + 101, + 104, + 97, + 110, + 100, + 101, + 108, + 97, + 97, + 114, + 34, + 58, + 34, + 98, + 101, + 104, + 97, + 110, + 100, + 101, + 108, + 101, + 110, + 34, + 44, + 34, + 111, + 112, + 115, + 99, + 104, + 111, + 114, + 116, + 105, + 110, + 103, + 69, + 110, + 65, + 97, + 110, + 104, + 111, + 117, + 100, + 105, + 110, + 103, + 77, + 111, + 103, + 101, + 108, + 105, + 106, + 107, + 34, + 58, + 102, + 97, + 108, + 115, + 101, + 44, + 34, + 118, + 101, + 114, + 108, + 101, + 110, + 103, + 105, + 110, + 103, + 77, + 111, + 103, + 101, + 108, + 105, + 106, + 107, + 34, + 58, + 116, + 114, + 117, + 101, + 44, + 34, + 118, + 101, + 114, + 108, + 101, + 110, + 103, + 105, + 110, + 103, + 115, + 116, + 101, + 114, + 109, + 105, + 106, + 110, + 34, + 58, + 34, + 80, + 53, + 68, + 34, + 44, + 34, + 112, + 117, + 98, + 108, + 105, + 99, + 97, + 116, + 105, + 101, + 73, + 110, + 100, + 105, + 99, + 97, + 116, + 105, + 101, + 34, + 58, + 102, + 97, + 108, + 115, + 101, + 44, + 34, + 112, + 114, + 111, + 100, + 117, + 99, + 116, + 101, + 110, + 79, + 102, + 68, + 105, + 101, + 110, + 115, + 116, + 101, + 110, + 34, + 58, + 91, + 34, + 104, + 116, + 116, + 112, + 115, + 58, + 92, + 47, + 92, + 47, + 114, + 101, + 102, + 46, + 116, + 115, + 116, + 46, + 118, + 110, + 103, + 46, + 99, + 108, + 111, + 117, + 100, + 92, + 47, + 115, + 116, + 97, + 110, + 100, + 97, + 97, + 114, + 100, + 92, + 47, + 34, + 93, + 44, + 34, + 115, + 101, + 108, + 101, + 99, + 116, + 105, + 101, + 108, + 105, + 106, + 115, + 116, + 80, + 114, + 111, + 99, + 101, + 115, + 116, + 121, + 112, + 101, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 115, + 58, + 92, + 47, + 92, + 47, + 115, + 101, + 108, + 101, + 99, + 116, + 105, + 101, + 108, + 105, + 106, + 115, + 116, + 46, + 111, + 112, + 101, + 110, + 122, + 97, + 97, + 107, + 46, + 110, + 108, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 118, + 49, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 121, + 112, + 101, + 110, + 92, + 47, + 56, + 51, + 56, + 101, + 52, + 48, + 53, + 97, + 45, + 57, + 98, + 49, + 50, + 45, + 52, + 51, + 99, + 52, + 45, + 97, + 57, + 56, + 53, + 45, + 100, + 55, + 97, + 55, + 52, + 57, + 48, + 100, + 52, + 50, + 50, + 101, + 34, + 44, + 34, + 114, + 101, + 102, + 101, + 114, + 101, + 110, + 116, + 105, + 101, + 112, + 114, + 111, + 99, + 101, + 115, + 34, + 58, + 123, + 34, + 108, + 105, + 110, + 107, + 34, + 58, + 34, + 34, + 44, + 34, + 110, + 97, + 97, + 109, + 34, + 58, + 34, + 116, + 101, + 115, + 116, + 34, + 125, + 44, + 34, + 118, + 101, + 114, + 97, + 110, + 116, + 119, + 111, + 111, + 114, + 100, + 101, + 108, + 105, + 106, + 107, + 101, + 34, + 58, + 34, + 88, + 34, + 44, + 34, + 103, + 101, + 114, + 101, + 108, + 97, + 116, + 101, + 101, + 114, + 100, + 101, + 90, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 98, + 101, + 115, + 108, + 117, + 105, + 116, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 105, + 110, + 102, + 111, + 114, + 109, + 97, + 116, + 105, + 101, + 111, + 98, + 106, + 101, + 99, + 116, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 100, + 101, + 101, + 108, + 122, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 116, + 111, + 101, + 108, + 105, + 99, + 104, + 116, + 105, + 110, + 103, + 34, + 58, + 34, + 34, + 44, + 34, + 118, + 101, + 114, + 115, + 105, + 101, + 100, + 97, + 116, + 117, + 109, + 34, + 58, + 34, + 50, + 48, + 49, + 57, + 45, + 48, + 49, + 45, + 48, + 49, + 34, + 44, + 34, + 101, + 105, + 103, + 101, + 110, + 115, + 99, + 104, + 97, + 112, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 115, + 116, + 97, + 116, + 117, + 115, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 114, + 101, + 115, + 117, + 108, + 116, + 97, + 97, + 116, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 114, + 111, + 108, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 125 + ] + }, + "cookie": [], + "responseTime": 320, + "responseSize": 1337 + }, + "id": "132dbf0e-3a65-41dc-ae2b-1d466bf6b3d3" + }, + { + "cursor": { + "ref": "e1ba4c9c-6ddf-48f9-9c06-33e5511d1158", + "length": 313, + "cycles": 1, + "position": 6, + "iteration": 0, + "httpRequestId": "860850e3-dd57-4273-b1c0-0c444600c61c" + }, + "item": { + "id": "323ab26c-a99d-45f6-b535-314baa544e77", + "name": "Create Zaaktype-InformatieObjectType relation", + "request": { + "url": { + "path": [ + "zaaktype-informatieobjecttypen" + ], + "host": [ + "{{ztc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n\t\"zaaktype\": \"{{zaaktype_url}}\",\n\t\"informatieobjecttype\": \"{{informatieobject_omschrijving}}\",\n\t\"volgnummer\": 1,\n\t\"richting\": \"inkomend\"\n}" + } + }, + "response": [], + "event": [] + }, + "request": { + "url": { + "protocol": "http", + "port": "8080", + "path": [ + "index.php", + "apps", + "procest", + "api", + "zgw", + "catalogi", + "v1", + "zaaktype-informatieobjecttypen" + ], + "host": [ + "localhost" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Authorization", + "value": "Bearer eyJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJwcm9jZXN0LWFkbWluIiwiY2xpZW50X2lkIjoicHJvY2VzdC1hZG1pbiIsImlhdCI6IjE3NzMxNDUxNDAiLCJ1c2VyX2lkIjoicHJvY2VzdC1hZG1pbiIsInVzZXJfcmVwcmVzZW50YXRpb24iOiIifQ.EFp2xUyROCKX92Ezj-Rd0fwf2jpmdiR3xzuRnjh4jWw", + "system": true + }, + { + "key": "User-Agent", + "value": "PostmanRuntime/7.39.1", + "system": true + }, + { + "key": "Accept", + "value": "*/*", + "system": true + }, + { + "key": "Cache-Control", + "value": "no-cache", + "system": true + }, + { + "key": "Postman-Token", + "value": "fd2214db-7e91-4c4f-bb79-a4161c83aaf5", + "system": true + }, + { + "key": "Host", + "value": "localhost:8080", + "system": true + }, + { + "key": "Accept-Encoding", + "value": "gzip, deflate, br", + "system": true + }, + { + "key": "Connection", + "value": "keep-alive", + "system": true + }, + { + "key": "Content-Length", + "value": "238", + "system": true + }, + { + "key": "Cookie", + "value": "ocvp3112b4wg=0cc04a549c569b3134762de15b10e0d2; oc_sessionPassphrase=LBNdKxRzA0iqoULIruNxDDh2BK3O%2BrCIU8aUmiUcOFvy5Xw1YfjwQNlmBW2IkGwJYtxXh9%2BwDN6vYuGNX07tXzkBtjQJUWTGdzf8AIOUIVxVx5DfyWAQZ7nmYmQv6XSE; nc_sameSiteCookielax=true; nc_sameSiteCookiestrict=true", + "system": true + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n\t\"zaaktype\": \"http://localhost:8080/index.php/apps/procest/api/zgw/catalogi/v1/zaaktypen/619dc3e5-52f1-4294-a569-f21d16f44879\",\n\t\"informatieobjecttype\": \"e402a6ef-829e-4501-ac05-3b174d9c738b\",\n\t\"volgnummer\": 1,\n\t\"richting\": \"inkomend\"\n}" + }, + "auth": { + "type": "jwt", + "jwt": [ + { + "type": "string", + "value": "{\r\n \"iss\": \"procest-admin\",\r\n \"client_id\": \"procest-admin\",\r\n \"iat\": \"1773145140\",\r\n \"user_id\": \"procest-admin\",\r\n \"user_representation\": \"\"\r\n}", + "key": "payload" + }, + { + "type": "string", + "value": "procest-admin-secret-key-for-testing", + "key": "secret" + }, + { + "type": "string", + "value": "HS256", + "key": "algorithm" + }, + { + "type": "boolean", + "value": false, + "key": "isSecretBase64Encoded" + }, + { + "type": "string", + "value": "header", + "key": "addTokenTo" + }, + { + "type": "string", + "value": "Bearer", + "key": "headerPrefix" + }, + { + "type": "string", + "value": "token", + "key": "queryParamKey" + }, + { + "type": "string", + "value": "{}", + "key": "header" + } + ] + } + }, + "response": { + "id": "7a247a5f-2221-43bd-9be6-f9fcdff8b31d", + "status": "Created", + "code": 201, + "header": [ + { + "key": "Date", + "value": "Tue, 10 Mar 2026 12:18:59 GMT" + }, + { + "key": "Server", + "value": "Apache/2.4.66 (Debian)" + }, + { + "key": "X-Content-Type-Options", + "value": "nosniff" + }, + { + "key": "X-Frame-Options", + "value": "SAMEORIGIN" + }, + { + "key": "X-Permitted-Cross-Domain-Policies", + "value": "none" + }, + { + "key": "X-Robots-Tag", + "value": "noindex, nofollow" + }, + { + "key": "Referrer-Policy", + "value": "no-referrer" + }, + { + "key": "X-Powered-By", + "value": "PHP/8.3.30" + }, + { + "key": "Content-Security-Policy", + "value": "default-src 'none';base-uri 'none';manifest-src 'self';frame-ancestors 'none'" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=0cc04a549c569b3134762de15b10e0d2; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=0cc04a549c569b3134762de15b10e0d2; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=0cc04a549c569b3134762de15b10e0d2; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=0cc04a549c569b3134762de15b10e0d2; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=0cc04a549c569b3134762de15b10e0d2; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=0c71b12fa7cbc73b5ac40946c9aa987d; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=0c71b12fa7cbc73b5ac40946c9aa987d; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=0c71b12fa7cbc73b5ac40946c9aa987d; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=0c71b12fa7cbc73b5ac40946c9aa987d; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=0c71b12fa7cbc73b5ac40946c9aa987d; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "X-Request-Id", + "value": "butIcK23iMFYX2sdxeFh" + }, + { + "key": "Cache-Control", + "value": "no-cache, no-store, must-revalidate" + }, + { + "key": "Feature-Policy", + "value": "autoplay 'none';camera 'none';fullscreen 'none';geolocation 'none';microphone 'none';payment 'none'" + }, + { + "key": "X-User-Id", + "value": "admin" + }, + { + "key": "Content-Length", + "value": "548" + }, + { + "key": "Keep-Alive", + "value": "timeout=5, max=95" + }, + { + "key": "Connection", + "value": "Keep-Alive" + }, + { + "key": "Content-Type", + "value": "application/json; charset=utf-8" + } + ], + "stream": { + "type": "Buffer", + "data": [ + 123, + 34, + 117, + 114, + 108, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 105, + 92, + 47, + 118, + 49, + 92, + 47, + 122, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 45, + 105, + 110, + 102, + 111, + 114, + 109, + 97, + 116, + 105, + 101, + 111, + 98, + 106, + 101, + 99, + 116, + 116, + 121, + 112, + 101, + 110, + 92, + 47, + 53, + 50, + 56, + 54, + 49, + 97, + 56, + 101, + 45, + 101, + 49, + 50, + 51, + 45, + 52, + 53, + 98, + 53, + 45, + 57, + 56, + 49, + 97, + 45, + 102, + 101, + 56, + 52, + 101, + 98, + 53, + 49, + 97, + 57, + 48, + 48, + 34, + 44, + 34, + 117, + 117, + 105, + 100, + 34, + 58, + 34, + 53, + 50, + 56, + 54, + 49, + 97, + 56, + 101, + 45, + 101, + 49, + 50, + 51, + 45, + 52, + 53, + 98, + 53, + 45, + 57, + 56, + 49, + 97, + 45, + 102, + 101, + 56, + 52, + 101, + 98, + 53, + 49, + 97, + 57, + 48, + 48, + 34, + 44, + 34, + 122, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 105, + 92, + 47, + 118, + 49, + 92, + 47, + 122, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 110, + 92, + 47, + 54, + 49, + 57, + 100, + 99, + 51, + 101, + 53, + 45, + 53, + 50, + 102, + 49, + 45, + 52, + 50, + 57, + 52, + 45, + 97, + 53, + 54, + 57, + 45, + 102, + 50, + 49, + 100, + 49, + 54, + 102, + 52, + 52, + 56, + 55, + 57, + 34, + 44, + 34, + 105, + 110, + 102, + 111, + 114, + 109, + 97, + 116, + 105, + 101, + 111, + 98, + 106, + 101, + 99, + 116, + 116, + 121, + 112, + 101, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 105, + 92, + 47, + 118, + 49, + 92, + 47, + 105, + 110, + 102, + 111, + 114, + 109, + 97, + 116, + 105, + 101, + 111, + 98, + 106, + 101, + 99, + 116, + 116, + 121, + 112, + 101, + 110, + 92, + 47, + 54, + 99, + 97, + 98, + 55, + 52, + 50, + 48, + 45, + 54, + 99, + 100, + 97, + 45, + 52, + 57, + 99, + 57, + 45, + 56, + 51, + 49, + 51, + 45, + 55, + 52, + 54, + 52, + 57, + 52, + 55, + 97, + 55, + 52, + 97, + 51, + 34, + 44, + 34, + 118, + 111, + 108, + 103, + 110, + 117, + 109, + 109, + 101, + 114, + 34, + 58, + 49, + 44, + 34, + 114, + 105, + 99, + 104, + 116, + 105, + 110, + 103, + 34, + 58, + 34, + 105, + 110, + 107, + 111, + 109, + 101, + 110, + 100, + 34, + 44, + 34, + 115, + 116, + 97, + 116, + 117, + 115, + 116, + 121, + 112, + 101, + 34, + 58, + 34, + 34, + 125 + ] + }, + "cookie": [], + "responseTime": 192, + "responseSize": 548 + }, + "id": "323ab26c-a99d-45f6-b535-314baa544e77" + }, + { + "cursor": { + "ref": "64c53499-7ce7-4ba3-8a5d-63abb86709f1", + "length": 313, + "cycles": 1, + "position": 7, + "iteration": 0, + "httpRequestId": "1b332995-51d6-4b5d-89ee-20784948069a" + }, + "item": { + "id": "95485285-0078-45ed-b956-0b56bae7cbf1", + "name": "Create Eigenschap", + "request": { + "url": { + "path": [ + "eigenschappen" + ], + "host": [ + "{{ztc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n\t\"naam\": \"test eigenschap\",\n\t\"definitie\": \"for test\",\n\t\"zaaktype\": \"{{zaaktype_url}}\",\n \"specificatie\": {\n \"formaat\": \"tekst\",\n \"lengte\": \"5\",\n \"kardinaliteit\": \"1\",\n \"waardenverzameling\": [\"test\"]\n }\n}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "e375f798-aa1c-408f-994b-fe497c06f72d", + "type": "text/javascript", + "packages": {}, + "exec": [ + "if(pm.response.code == 201) {\r", + " pm.environment.set(\"zaaktype_eigenschap\", pm.response.json().url);\r", + "}" + ], + "_lastExecutionId": "d269761f-9b47-437a-8145-5c4df0eed3d0" + } + } + ] + }, + "request": { + "url": { + "protocol": "http", + "port": "8080", + "path": [ + "index.php", + "apps", + "procest", + "api", + "zgw", + "catalogi", + "v1", + "eigenschappen" + ], + "host": [ + "localhost" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Authorization", + "value": "Bearer eyJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJwcm9jZXN0LWFkbWluIiwiY2xpZW50X2lkIjoicHJvY2VzdC1hZG1pbiIsImlhdCI6IjE3NzMxNDUxNDAiLCJ1c2VyX2lkIjoicHJvY2VzdC1hZG1pbiIsInVzZXJfcmVwcmVzZW50YXRpb24iOiIifQ.EFp2xUyROCKX92Ezj-Rd0fwf2jpmdiR3xzuRnjh4jWw", + "system": true + }, + { + "key": "User-Agent", + "value": "PostmanRuntime/7.39.1", + "system": true + }, + { + "key": "Accept", + "value": "*/*", + "system": true + }, + { + "key": "Cache-Control", + "value": "no-cache", + "system": true + }, + { + "key": "Postman-Token", + "value": "144d15e2-8e2f-4980-9a28-598fa4f5a9f3", + "system": true + }, + { + "key": "Host", + "value": "localhost:8080", + "system": true + }, + { + "key": "Accept-Encoding", + "value": "gzip, deflate, br", + "system": true + }, + { + "key": "Connection", + "value": "keep-alive", + "system": true + }, + { + "key": "Content-Length", + "value": "333", + "system": true + }, + { + "key": "Cookie", + "value": "ocvp3112b4wg=0c71b12fa7cbc73b5ac40946c9aa987d; oc_sessionPassphrase=LBNdKxRzA0iqoULIruNxDDh2BK3O%2BrCIU8aUmiUcOFvy5Xw1YfjwQNlmBW2IkGwJYtxXh9%2BwDN6vYuGNX07tXzkBtjQJUWTGdzf8AIOUIVxVx5DfyWAQZ7nmYmQv6XSE; nc_sameSiteCookielax=true; nc_sameSiteCookiestrict=true", + "system": true + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n\t\"naam\": \"test eigenschap\",\n\t\"definitie\": \"for test\",\n\t\"zaaktype\": \"http://localhost:8080/index.php/apps/procest/api/zgw/catalogi/v1/zaaktypen/619dc3e5-52f1-4294-a569-f21d16f44879\",\n \"specificatie\": {\n \"formaat\": \"tekst\",\n \"lengte\": \"5\",\n \"kardinaliteit\": \"1\",\n \"waardenverzameling\": [\"test\"]\n }\n}" + }, + "auth": { + "type": "jwt", + "jwt": [ + { + "type": "string", + "value": "{\r\n \"iss\": \"procest-admin\",\r\n \"client_id\": \"procest-admin\",\r\n \"iat\": \"1773145140\",\r\n \"user_id\": \"procest-admin\",\r\n \"user_representation\": \"\"\r\n}", + "key": "payload" + }, + { + "type": "string", + "value": "procest-admin-secret-key-for-testing", + "key": "secret" + }, + { + "type": "string", + "value": "HS256", + "key": "algorithm" + }, + { + "type": "boolean", + "value": false, + "key": "isSecretBase64Encoded" + }, + { + "type": "string", + "value": "header", + "key": "addTokenTo" + }, + { + "type": "string", + "value": "Bearer", + "key": "headerPrefix" + }, + { + "type": "string", + "value": "token", + "key": "queryParamKey" + }, + { + "type": "string", + "value": "{}", + "key": "header" + } + ] + } + }, + "response": { + "id": "d2b91259-91b6-4613-97dd-49288745e35b", + "status": "Created", + "code": 201, + "header": [ + { + "key": "Date", + "value": "Tue, 10 Mar 2026 12:18:59 GMT" + }, + { + "key": "Server", + "value": "Apache/2.4.66 (Debian)" + }, + { + "key": "X-Content-Type-Options", + "value": "nosniff" + }, + { + "key": "X-Frame-Options", + "value": "SAMEORIGIN" + }, + { + "key": "X-Permitted-Cross-Domain-Policies", + "value": "none" + }, + { + "key": "X-Robots-Tag", + "value": "noindex, nofollow" + }, + { + "key": "Referrer-Policy", + "value": "no-referrer" + }, + { + "key": "X-Powered-By", + "value": "PHP/8.3.30" + }, + { + "key": "Content-Security-Policy", + "value": "default-src 'none';base-uri 'none';manifest-src 'self';frame-ancestors 'none'" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=0c71b12fa7cbc73b5ac40946c9aa987d; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=0c71b12fa7cbc73b5ac40946c9aa987d; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=0c71b12fa7cbc73b5ac40946c9aa987d; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=0c71b12fa7cbc73b5ac40946c9aa987d; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=0c71b12fa7cbc73b5ac40946c9aa987d; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=00b6769ebb712bb3c9df168741be32ae; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=00b6769ebb712bb3c9df168741be32ae; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=00b6769ebb712bb3c9df168741be32ae; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=00b6769ebb712bb3c9df168741be32ae; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=00b6769ebb712bb3c9df168741be32ae; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "X-Request-Id", + "value": "GYdxdvXjZ4fhyLT5EIrd" + }, + { + "key": "Cache-Control", + "value": "no-cache, no-store, must-revalidate" + }, + { + "key": "Feature-Policy", + "value": "autoplay 'none';camera 'none';fullscreen 'none';geolocation 'none';microphone 'none';payment 'none'" + }, + { + "key": "X-User-Id", + "value": "admin" + }, + { + "key": "Content-Length", + "value": "424" + }, + { + "key": "Keep-Alive", + "value": "timeout=5, max=94" + }, + { + "key": "Connection", + "value": "Keep-Alive" + }, + { + "key": "Content-Type", + "value": "application/json; charset=utf-8" + } + ], + "stream": { + "type": "Buffer", + "data": [ + 123, + 34, + 117, + 114, + 108, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 105, + 92, + 47, + 118, + 49, + 92, + 47, + 101, + 105, + 103, + 101, + 110, + 115, + 99, + 104, + 97, + 112, + 112, + 101, + 110, + 92, + 47, + 99, + 49, + 53, + 57, + 56, + 102, + 57, + 98, + 45, + 48, + 48, + 48, + 102, + 45, + 52, + 52, + 48, + 54, + 45, + 56, + 48, + 101, + 52, + 45, + 50, + 100, + 51, + 49, + 55, + 53, + 51, + 48, + 97, + 52, + 97, + 57, + 34, + 44, + 34, + 117, + 117, + 105, + 100, + 34, + 58, + 34, + 99, + 49, + 53, + 57, + 56, + 102, + 57, + 98, + 45, + 48, + 48, + 48, + 102, + 45, + 52, + 52, + 48, + 54, + 45, + 56, + 48, + 101, + 52, + 45, + 50, + 100, + 51, + 49, + 55, + 53, + 51, + 48, + 97, + 52, + 97, + 57, + 34, + 44, + 34, + 110, + 97, + 97, + 109, + 34, + 58, + 34, + 116, + 101, + 115, + 116, + 32, + 101, + 105, + 103, + 101, + 110, + 115, + 99, + 104, + 97, + 112, + 34, + 44, + 34, + 100, + 101, + 102, + 105, + 110, + 105, + 116, + 105, + 101, + 34, + 58, + 34, + 102, + 111, + 114, + 32, + 116, + 101, + 115, + 116, + 34, + 44, + 34, + 116, + 111, + 101, + 108, + 105, + 99, + 104, + 116, + 105, + 110, + 103, + 34, + 58, + 34, + 34, + 44, + 34, + 122, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 105, + 92, + 47, + 118, + 49, + 92, + 47, + 122, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 110, + 92, + 47, + 54, + 49, + 57, + 100, + 99, + 51, + 101, + 53, + 45, + 53, + 50, + 102, + 49, + 45, + 52, + 50, + 57, + 52, + 45, + 97, + 53, + 54, + 57, + 45, + 102, + 50, + 49, + 100, + 49, + 54, + 102, + 52, + 52, + 56, + 55, + 57, + 34, + 44, + 34, + 115, + 112, + 101, + 99, + 105, + 102, + 105, + 99, + 97, + 116, + 105, + 101, + 34, + 58, + 34, + 123, + 92, + 34, + 102, + 111, + 114, + 109, + 97, + 97, + 116, + 92, + 34, + 58, + 92, + 34, + 116, + 101, + 107, + 115, + 116, + 92, + 34, + 125, + 34, + 125 + ] + }, + "cookie": [], + "responseTime": 186, + "responseSize": 424 + }, + "id": "95485285-0078-45ed-b956-0b56bae7cbf1" + }, + { + "cursor": { + "ref": "19092382-1abd-40e9-b5d1-b332bad0ef60", + "length": 313, + "cycles": 1, + "position": 8, + "iteration": 0, + "httpRequestId": "a8c3c252-3ff6-40c9-947e-b6f1e2d5a37e" + }, + "item": { + "id": "a528ae0d-e6be-4cdd-b741-ffe77c6330db", + "name": "Create Resultaattype afleidingswijze afgehandeld Copy", + "request": { + "url": { + "path": [ + "resultaattypen" + ], + "host": [ + "{{ztc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n\t\"zaaktype\": \"{{zaaktype_url}}\",\n\t\"omschrijving\": \"Klaar\",\n\t\"resultaattypeomschrijving\": \"{{resultaattypeomschrijving_url}}\",\n\t\"selectielijstklasse\": \"{{selectielijstklasse_procestermijn_nihil_url}}\",\n\t\"besluittypen\": [],\n \"brondatumArchiefprocedure\": {\n\t\t\"afleidingswijze\": \"afgehandeld\",\n\t\t\"procestermijn\": null,\n\t\t\"datumkenmerk\": \"\",\n\t\t\"einddatumBekend\": false,\n\t\t\"objecttype\": \"\",\n\t\t\"registratie\": \"\"\n\t}\n}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "4c3ecaee-aadd-4b4e-8390-35ad3e641e6c", + "type": "text/javascript", + "packages": {}, + "exec": [ + "if(pm.response.code == 201) {\r", + " pm.environment.set(\"resultaattype_url\", pm.response.json().url);\r", + "}" + ], + "_lastExecutionId": "f352b158-9fbb-4240-81e8-389d405461ea" + } + } + ] + }, + "request": { + "url": { + "protocol": "http", + "port": "8080", + "path": [ + "index.php", + "apps", + "procest", + "api", + "zgw", + "catalogi", + "v1", + "resultaattypen" + ], + "host": [ + "localhost" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Authorization", + "value": "Bearer eyJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJwcm9jZXN0LWFkbWluIiwiY2xpZW50X2lkIjoicHJvY2VzdC1hZG1pbiIsImlhdCI6IjE3NzMxNDUxNDAiLCJ1c2VyX2lkIjoicHJvY2VzdC1hZG1pbiIsInVzZXJfcmVwcmVzZW50YXRpb24iOiIifQ.EFp2xUyROCKX92Ezj-Rd0fwf2jpmdiR3xzuRnjh4jWw", + "system": true + }, + { + "key": "User-Agent", + "value": "PostmanRuntime/7.39.1", + "system": true + }, + { + "key": "Accept", + "value": "*/*", + "system": true + }, + { + "key": "Cache-Control", + "value": "no-cache", + "system": true + }, + { + "key": "Postman-Token", + "value": "74edb610-b58e-45aa-a9be-e82b86a62d72", + "system": true + }, + { + "key": "Host", + "value": "localhost:8080", + "system": true + }, + { + "key": "Accept-Encoding", + "value": "gzip, deflate, br", + "system": true + }, + { + "key": "Connection", + "value": "keep-alive", + "system": true + }, + { + "key": "Content-Length", + "value": "622", + "system": true + }, + { + "key": "Cookie", + "value": "ocvp3112b4wg=00b6769ebb712bb3c9df168741be32ae; oc_sessionPassphrase=LBNdKxRzA0iqoULIruNxDDh2BK3O%2BrCIU8aUmiUcOFvy5Xw1YfjwQNlmBW2IkGwJYtxXh9%2BwDN6vYuGNX07tXzkBtjQJUWTGdzf8AIOUIVxVx5DfyWAQZ7nmYmQv6XSE; nc_sameSiteCookielax=true; nc_sameSiteCookiestrict=true", + "system": true + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n\t\"zaaktype\": \"http://localhost:8080/index.php/apps/procest/api/zgw/catalogi/v1/zaaktypen/619dc3e5-52f1-4294-a569-f21d16f44879\",\n\t\"omschrijving\": \"Klaar\",\n\t\"resultaattypeomschrijving\": \"https://selectielijst.openzaak.nl/api/v1/resultaattypeomschrijvingen/ce8cf476-0b59-496f-8eee-957a7c6e2506\",\n\t\"selectielijstklasse\": \"https://selectielijst.openzaak.nl/api/v1/resultaten/3fc7002b-31b6-4abe-82af-b6d46a9a1736\",\n\t\"besluittypen\": [],\n \"brondatumArchiefprocedure\": {\n\t\t\"afleidingswijze\": \"afgehandeld\",\n\t\t\"procestermijn\": null,\n\t\t\"datumkenmerk\": \"\",\n\t\t\"einddatumBekend\": false,\n\t\t\"objecttype\": \"\",\n\t\t\"registratie\": \"\"\n\t}\n}" + }, + "auth": { + "type": "jwt", + "jwt": [ + { + "type": "string", + "value": "{\r\n \"iss\": \"procest-admin\",\r\n \"client_id\": \"procest-admin\",\r\n \"iat\": \"1773145140\",\r\n \"user_id\": \"procest-admin\",\r\n \"user_representation\": \"\"\r\n}", + "key": "payload" + }, + { + "type": "string", + "value": "procest-admin-secret-key-for-testing", + "key": "secret" + }, + { + "type": "string", + "value": "HS256", + "key": "algorithm" + }, + { + "type": "boolean", + "value": false, + "key": "isSecretBase64Encoded" + }, + { + "type": "string", + "value": "header", + "key": "addTokenTo" + }, + { + "type": "string", + "value": "Bearer", + "key": "headerPrefix" + }, + { + "type": "string", + "value": "token", + "key": "queryParamKey" + }, + { + "type": "string", + "value": "{}", + "key": "header" + } + ] + } + }, + "response": { + "id": "d391d01c-6815-48f1-b65e-492ed58a9530", + "status": "Created", + "code": 201, + "header": [ + { + "key": "Date", + "value": "Tue, 10 Mar 2026 12:19:00 GMT" + }, + { + "key": "Server", + "value": "Apache/2.4.66 (Debian)" + }, + { + "key": "X-Content-Type-Options", + "value": "nosniff" + }, + { + "key": "X-Frame-Options", + "value": "SAMEORIGIN" + }, + { + "key": "X-Permitted-Cross-Domain-Policies", + "value": "none" + }, + { + "key": "X-Robots-Tag", + "value": "noindex, nofollow" + }, + { + "key": "Referrer-Policy", + "value": "no-referrer" + }, + { + "key": "X-Powered-By", + "value": "PHP/8.3.30" + }, + { + "key": "Content-Security-Policy", + "value": "default-src 'none';base-uri 'none';manifest-src 'self';frame-ancestors 'none'" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=00b6769ebb712bb3c9df168741be32ae; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=00b6769ebb712bb3c9df168741be32ae; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=00b6769ebb712bb3c9df168741be32ae; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=00b6769ebb712bb3c9df168741be32ae; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=00b6769ebb712bb3c9df168741be32ae; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=7c273eba939945fc2fa119189328fbd8; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=7c273eba939945fc2fa119189328fbd8; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=7c273eba939945fc2fa119189328fbd8; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=7c273eba939945fc2fa119189328fbd8; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=7c273eba939945fc2fa119189328fbd8; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "X-Request-Id", + "value": "7IkN20DEufBUTMzbbcQY" + }, + { + "key": "Cache-Control", + "value": "no-cache, no-store, must-revalidate" + }, + { + "key": "Feature-Policy", + "value": "autoplay 'none';camera 'none';fullscreen 'none';geolocation 'none';microphone 'none';payment 'none'" + }, + { + "key": "X-User-Id", + "value": "admin" + }, + { + "key": "Content-Length", + "value": "755" + }, + { + "key": "Keep-Alive", + "value": "timeout=5, max=93" + }, + { + "key": "Connection", + "value": "Keep-Alive" + }, + { + "key": "Content-Type", + "value": "application/json; charset=utf-8" + } + ], + "stream": { + "type": "Buffer", + "data": [ + 123, + 34, + 117, + 114, + 108, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 105, + 92, + 47, + 118, + 49, + 92, + 47, + 114, + 101, + 115, + 117, + 108, + 116, + 97, + 97, + 116, + 116, + 121, + 112, + 101, + 110, + 92, + 47, + 49, + 102, + 97, + 52, + 102, + 98, + 50, + 102, + 45, + 49, + 53, + 55, + 50, + 45, + 52, + 102, + 99, + 49, + 45, + 56, + 52, + 56, + 100, + 45, + 48, + 48, + 97, + 51, + 55, + 101, + 102, + 54, + 97, + 102, + 52, + 53, + 34, + 44, + 34, + 117, + 117, + 105, + 100, + 34, + 58, + 34, + 49, + 102, + 97, + 52, + 102, + 98, + 50, + 102, + 45, + 49, + 53, + 55, + 50, + 45, + 52, + 102, + 99, + 49, + 45, + 56, + 52, + 56, + 100, + 45, + 48, + 48, + 97, + 51, + 55, + 101, + 102, + 54, + 97, + 102, + 52, + 53, + 34, + 44, + 34, + 111, + 109, + 115, + 99, + 104, + 114, + 105, + 106, + 118, + 105, + 110, + 103, + 34, + 58, + 34, + 75, + 108, + 97, + 97, + 114, + 34, + 44, + 34, + 111, + 109, + 115, + 99, + 104, + 114, + 105, + 106, + 118, + 105, + 110, + 103, + 71, + 101, + 110, + 101, + 114, + 105, + 101, + 107, + 34, + 58, + 34, + 65, + 102, + 103, + 101, + 98, + 114, + 111, + 107, + 101, + 110, + 34, + 44, + 34, + 116, + 111, + 101, + 108, + 105, + 99, + 104, + 116, + 105, + 110, + 103, + 34, + 58, + 34, + 34, + 44, + 34, + 122, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 105, + 92, + 47, + 118, + 49, + 92, + 47, + 122, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 110, + 92, + 47, + 54, + 49, + 57, + 100, + 99, + 51, + 101, + 53, + 45, + 53, + 50, + 102, + 49, + 45, + 52, + 50, + 57, + 52, + 45, + 97, + 53, + 54, + 57, + 45, + 102, + 50, + 49, + 100, + 49, + 54, + 102, + 52, + 52, + 56, + 55, + 57, + 34, + 44, + 34, + 97, + 114, + 99, + 104, + 105, + 101, + 102, + 110, + 111, + 109, + 105, + 110, + 97, + 116, + 105, + 101, + 34, + 58, + 34, + 118, + 101, + 114, + 110, + 105, + 101, + 116, + 105, + 103, + 101, + 110, + 34, + 44, + 34, + 97, + 114, + 99, + 104, + 105, + 101, + 102, + 97, + 99, + 116, + 105, + 101, + 116, + 101, + 114, + 109, + 105, + 106, + 110, + 34, + 58, + 34, + 80, + 53, + 89, + 34, + 44, + 34, + 98, + 114, + 111, + 110, + 100, + 97, + 116, + 117, + 109, + 65, + 114, + 99, + 104, + 105, + 101, + 102, + 112, + 114, + 111, + 99, + 101, + 100, + 117, + 114, + 101, + 34, + 58, + 34, + 123, + 92, + 34, + 97, + 102, + 108, + 101, + 105, + 100, + 105, + 110, + 103, + 115, + 119, + 105, + 106, + 122, + 101, + 92, + 34, + 58, + 92, + 34, + 97, + 102, + 103, + 101, + 104, + 97, + 110, + 100, + 101, + 108, + 100, + 92, + 34, + 44, + 92, + 34, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 101, + 114, + 109, + 105, + 106, + 110, + 92, + 34, + 58, + 110, + 117, + 108, + 108, + 44, + 92, + 34, + 100, + 97, + 116, + 117, + 109, + 107, + 101, + 110, + 109, + 101, + 114, + 107, + 92, + 34, + 58, + 92, + 34, + 92, + 34, + 44, + 92, + 34, + 101, + 105, + 110, + 100, + 100, + 97, + 116, + 117, + 109, + 66, + 101, + 107, + 101, + 110, + 100, + 92, + 34, + 58, + 102, + 97, + 108, + 115, + 101, + 44, + 92, + 34, + 111, + 98, + 106, + 101, + 99, + 116, + 116, + 121, + 112, + 101, + 92, + 34, + 58, + 92, + 34, + 92, + 34, + 44, + 92, + 34, + 114, + 101, + 103, + 105, + 115, + 116, + 114, + 97, + 116, + 105, + 101, + 92, + 34, + 58, + 92, + 34, + 92, + 34, + 125, + 34, + 44, + 34, + 115, + 101, + 108, + 101, + 99, + 116, + 105, + 101, + 108, + 105, + 106, + 115, + 116, + 107, + 108, + 97, + 115, + 115, + 101, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 115, + 58, + 92, + 47, + 92, + 47, + 115, + 101, + 108, + 101, + 99, + 116, + 105, + 101, + 108, + 105, + 106, + 115, + 116, + 46, + 111, + 112, + 101, + 110, + 122, + 97, + 97, + 107, + 46, + 110, + 108, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 118, + 49, + 92, + 47, + 114, + 101, + 115, + 117, + 108, + 116, + 97, + 116, + 101, + 110, + 92, + 47, + 51, + 102, + 99, + 55, + 48, + 48, + 50, + 98, + 45, + 51, + 49, + 98, + 54, + 45, + 52, + 97, + 98, + 101, + 45, + 56, + 50, + 97, + 102, + 45, + 98, + 54, + 100, + 52, + 54, + 97, + 57, + 97, + 49, + 55, + 51, + 54, + 34, + 125 + ] + }, + "cookie": [], + "responseTime": 459, + "responseSize": 755 + }, + "id": "a528ae0d-e6be-4cdd-b741-ffe77c6330db" + }, + { + "cursor": { + "ref": "3e4f4a87-1ac2-4a8d-b654-805f14fdb5b7", + "length": 313, + "cycles": 1, + "position": 9, + "iteration": 0, + "httpRequestId": "107fb237-b191-4d6e-b3c6-509f38cdc852" + }, + "item": { + "id": "20272991-0d65-43af-b363-c4ae7f5c9ab8", + "name": "Create begin Statustype Copy", + "request": { + "url": { + "path": [ + "statustypen" + ], + "host": [ + "{{ztc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n\t\"omschrijving\": \"Begin\",\n\t\"zaaktype\": \"{{zaaktype_url}}\",\n\t\"volgnummer\": 1\n}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "df01f0a4-665f-4c2e-82f8-1a86b1c231e1", + "type": "text/javascript", + "exec": [ + "pm.environment.set(\"non_eindstatustype\", pm.response.json().url);" + ], + "_lastExecutionId": "714dbfbc-ceb0-4dd2-a741-667da6ce0196" + } + } + ] + }, + "request": { + "url": { + "protocol": "http", + "port": "8080", + "path": [ + "index.php", + "apps", + "procest", + "api", + "zgw", + "catalogi", + "v1", + "statustypen" + ], + "host": [ + "localhost" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Authorization", + "value": "Bearer eyJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJwcm9jZXN0LWFkbWluIiwiY2xpZW50X2lkIjoicHJvY2VzdC1hZG1pbiIsImlhdCI6IjE3NzMxNDUxNDEiLCJ1c2VyX2lkIjoicHJvY2VzdC1hZG1pbiIsInVzZXJfcmVwcmVzZW50YXRpb24iOiIifQ.hLvXLlKvHnlfcsIvC8ordOoS2DKQ1UtlZA526FS06mo", + "system": true + }, + { + "key": "User-Agent", + "value": "PostmanRuntime/7.39.1", + "system": true + }, + { + "key": "Accept", + "value": "*/*", + "system": true + }, + { + "key": "Cache-Control", + "value": "no-cache", + "system": true + }, + { + "key": "Postman-Token", + "value": "f9df8590-9350-4fa6-a7b9-5618e4b9ff0b", + "system": true + }, + { + "key": "Host", + "value": "localhost:8080", + "system": true + }, + { + "key": "Accept-Encoding", + "value": "gzip, deflate, br", + "system": true + }, + { + "key": "Connection", + "value": "keep-alive", + "system": true + }, + { + "key": "Content-Length", + "value": "174", + "system": true + }, + { + "key": "Cookie", + "value": "ocvp3112b4wg=7c273eba939945fc2fa119189328fbd8; oc_sessionPassphrase=LBNdKxRzA0iqoULIruNxDDh2BK3O%2BrCIU8aUmiUcOFvy5Xw1YfjwQNlmBW2IkGwJYtxXh9%2BwDN6vYuGNX07tXzkBtjQJUWTGdzf8AIOUIVxVx5DfyWAQZ7nmYmQv6XSE; nc_sameSiteCookielax=true; nc_sameSiteCookiestrict=true", + "system": true + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n\t\"omschrijving\": \"Begin\",\n\t\"zaaktype\": \"http://localhost:8080/index.php/apps/procest/api/zgw/catalogi/v1/zaaktypen/619dc3e5-52f1-4294-a569-f21d16f44879\",\n\t\"volgnummer\": 1\n}" + }, + "auth": { + "type": "jwt", + "jwt": [ + { + "type": "string", + "value": "{\r\n \"iss\": \"procest-admin\",\r\n \"client_id\": \"procest-admin\",\r\n \"iat\": \"1773145141\",\r\n \"user_id\": \"procest-admin\",\r\n \"user_representation\": \"\"\r\n}", + "key": "payload" + }, + { + "type": "string", + "value": "procest-admin-secret-key-for-testing", + "key": "secret" + }, + { + "type": "string", + "value": "HS256", + "key": "algorithm" + }, + { + "type": "boolean", + "value": false, + "key": "isSecretBase64Encoded" + }, + { + "type": "string", + "value": "header", + "key": "addTokenTo" + }, + { + "type": "string", + "value": "Bearer", + "key": "headerPrefix" + }, + { + "type": "string", + "value": "token", + "key": "queryParamKey" + }, + { + "type": "string", + "value": "{}", + "key": "header" + } + ] + } + }, + "response": { + "id": "db50a092-6264-469c-a33a-45f274aed434", + "status": "Created", + "code": 201, + "header": [ + { + "key": "Date", + "value": "Tue, 10 Mar 2026 12:19:00 GMT" + }, + { + "key": "Server", + "value": "Apache/2.4.66 (Debian)" + }, + { + "key": "X-Content-Type-Options", + "value": "nosniff" + }, + { + "key": "X-Frame-Options", + "value": "SAMEORIGIN" + }, + { + "key": "X-Permitted-Cross-Domain-Policies", + "value": "none" + }, + { + "key": "X-Robots-Tag", + "value": "noindex, nofollow" + }, + { + "key": "Referrer-Policy", + "value": "no-referrer" + }, + { + "key": "X-Powered-By", + "value": "PHP/8.3.30" + }, + { + "key": "Content-Security-Policy", + "value": "default-src 'none';base-uri 'none';manifest-src 'self';frame-ancestors 'none'" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=7c273eba939945fc2fa119189328fbd8; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=7c273eba939945fc2fa119189328fbd8; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=7c273eba939945fc2fa119189328fbd8; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=7c273eba939945fc2fa119189328fbd8; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=7c273eba939945fc2fa119189328fbd8; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=685a71585bcb579e1de8539404938cad; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=685a71585bcb579e1de8539404938cad; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=685a71585bcb579e1de8539404938cad; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=685a71585bcb579e1de8539404938cad; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=685a71585bcb579e1de8539404938cad; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "X-Request-Id", + "value": "WFjs96URqe3FNiqprUQ1" + }, + { + "key": "Cache-Control", + "value": "no-cache, no-store, must-revalidate" + }, + { + "key": "Feature-Policy", + "value": "autoplay 'none';camera 'none';fullscreen 'none';geolocation 'none';microphone 'none';payment 'none'" + }, + { + "key": "X-User-Id", + "value": "admin" + }, + { + "key": "Content-Length", + "value": "401" + }, + { + "key": "Keep-Alive", + "value": "timeout=5, max=92" + }, + { + "key": "Connection", + "value": "Keep-Alive" + }, + { + "key": "Content-Type", + "value": "application/json; charset=utf-8" + } + ], + "stream": { + "type": "Buffer", + "data": [ + 123, + 34, + 117, + 114, + 108, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 105, + 92, + 47, + 118, + 49, + 92, + 47, + 115, + 116, + 97, + 116, + 117, + 115, + 116, + 121, + 112, + 101, + 110, + 92, + 47, + 101, + 48, + 52, + 100, + 52, + 98, + 56, + 57, + 45, + 98, + 57, + 57, + 50, + 45, + 52, + 56, + 98, + 55, + 45, + 97, + 56, + 54, + 50, + 45, + 101, + 49, + 98, + 101, + 101, + 54, + 98, + 50, + 55, + 53, + 52, + 54, + 34, + 44, + 34, + 117, + 117, + 105, + 100, + 34, + 58, + 34, + 101, + 48, + 52, + 100, + 52, + 98, + 56, + 57, + 45, + 98, + 57, + 57, + 50, + 45, + 52, + 56, + 98, + 55, + 45, + 97, + 56, + 54, + 50, + 45, + 101, + 49, + 98, + 101, + 101, + 54, + 98, + 50, + 55, + 53, + 52, + 54, + 34, + 44, + 34, + 111, + 109, + 115, + 99, + 104, + 114, + 105, + 106, + 118, + 105, + 110, + 103, + 34, + 58, + 34, + 66, + 101, + 103, + 105, + 110, + 34, + 44, + 34, + 111, + 109, + 115, + 99, + 104, + 114, + 105, + 106, + 118, + 105, + 110, + 103, + 71, + 101, + 110, + 101, + 114, + 105, + 101, + 107, + 34, + 58, + 34, + 34, + 44, + 34, + 122, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 105, + 92, + 47, + 118, + 49, + 92, + 47, + 122, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 110, + 92, + 47, + 54, + 49, + 57, + 100, + 99, + 51, + 101, + 53, + 45, + 53, + 50, + 102, + 49, + 45, + 52, + 50, + 57, + 52, + 45, + 97, + 53, + 54, + 57, + 45, + 102, + 50, + 49, + 100, + 49, + 54, + 102, + 52, + 52, + 56, + 55, + 57, + 34, + 44, + 34, + 118, + 111, + 108, + 103, + 110, + 117, + 109, + 109, + 101, + 114, + 34, + 58, + 49, + 44, + 34, + 105, + 115, + 69, + 105, + 110, + 100, + 115, + 116, + 97, + 116, + 117, + 115, + 34, + 58, + 102, + 97, + 108, + 115, + 101, + 125 + ] + }, + "cookie": [], + "responseTime": 182, + "responseSize": 401 + }, + "id": "20272991-0d65-43af-b363-c4ae7f5c9ab8" + }, + { + "cursor": { + "ref": "bf030d76-b664-4f57-a065-70090df47825", + "length": 313, + "cycles": 1, + "position": 10, + "iteration": 0, + "httpRequestId": "c2bd8b62-7528-40cf-991f-1604142a781f" + }, + "item": { + "id": "4582a0a9-1996-48f6-9ae9-40aa073a1c1f", + "name": "Create eind Statustype Copy", + "request": { + "url": { + "path": [ + "statustypen" + ], + "host": [ + "{{ztc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n\t\"omschrijving\": \"Eind\",\n\t\"zaaktype\": \"{{zaaktype_url}}\",\n\t\"volgnummer\": 2\n}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "bfa89a41-444e-4d1d-a58d-5e3c4b20368d", + "type": "text/javascript", + "exec": [ + "pm.environment.set(\"eindstatustype\", pm.response.json().url);" + ], + "_lastExecutionId": "cbf5a431-b165-408c-990a-53d9ede08b0d" + } + } + ] + }, + "request": { + "url": { + "protocol": "http", + "port": "8080", + "path": [ + "index.php", + "apps", + "procest", + "api", + "zgw", + "catalogi", + "v1", + "statustypen" + ], + "host": [ + "localhost" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Authorization", + "value": "Bearer eyJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJwcm9jZXN0LWFkbWluIiwiY2xpZW50X2lkIjoicHJvY2VzdC1hZG1pbiIsImlhdCI6IjE3NzMxNDUxNDEiLCJ1c2VyX2lkIjoicHJvY2VzdC1hZG1pbiIsInVzZXJfcmVwcmVzZW50YXRpb24iOiIifQ.hLvXLlKvHnlfcsIvC8ordOoS2DKQ1UtlZA526FS06mo", + "system": true + }, + { + "key": "User-Agent", + "value": "PostmanRuntime/7.39.1", + "system": true + }, + { + "key": "Accept", + "value": "*/*", + "system": true + }, + { + "key": "Cache-Control", + "value": "no-cache", + "system": true + }, + { + "key": "Postman-Token", + "value": "4521034c-0481-431e-9d05-c93dc084dfd6", + "system": true + }, + { + "key": "Host", + "value": "localhost:8080", + "system": true + }, + { + "key": "Accept-Encoding", + "value": "gzip, deflate, br", + "system": true + }, + { + "key": "Connection", + "value": "keep-alive", + "system": true + }, + { + "key": "Content-Length", + "value": "173", + "system": true + }, + { + "key": "Cookie", + "value": "ocvp3112b4wg=685a71585bcb579e1de8539404938cad; oc_sessionPassphrase=LBNdKxRzA0iqoULIruNxDDh2BK3O%2BrCIU8aUmiUcOFvy5Xw1YfjwQNlmBW2IkGwJYtxXh9%2BwDN6vYuGNX07tXzkBtjQJUWTGdzf8AIOUIVxVx5DfyWAQZ7nmYmQv6XSE; nc_sameSiteCookielax=true; nc_sameSiteCookiestrict=true", + "system": true + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n\t\"omschrijving\": \"Eind\",\n\t\"zaaktype\": \"http://localhost:8080/index.php/apps/procest/api/zgw/catalogi/v1/zaaktypen/619dc3e5-52f1-4294-a569-f21d16f44879\",\n\t\"volgnummer\": 2\n}" + }, + "auth": { + "type": "jwt", + "jwt": [ + { + "type": "string", + "value": "{\r\n \"iss\": \"procest-admin\",\r\n \"client_id\": \"procest-admin\",\r\n \"iat\": \"1773145141\",\r\n \"user_id\": \"procest-admin\",\r\n \"user_representation\": \"\"\r\n}", + "key": "payload" + }, + { + "type": "string", + "value": "procest-admin-secret-key-for-testing", + "key": "secret" + }, + { + "type": "string", + "value": "HS256", + "key": "algorithm" + }, + { + "type": "boolean", + "value": false, + "key": "isSecretBase64Encoded" + }, + { + "type": "string", + "value": "header", + "key": "addTokenTo" + }, + { + "type": "string", + "value": "Bearer", + "key": "headerPrefix" + }, + { + "type": "string", + "value": "token", + "key": "queryParamKey" + }, + { + "type": "string", + "value": "{}", + "key": "header" + } + ] + } + }, + "response": { + "id": "f75f3ca5-aa10-45c2-9aec-df8ec352a134", + "status": "Created", + "code": 201, + "header": [ + { + "key": "Date", + "value": "Tue, 10 Mar 2026 12:19:00 GMT" + }, + { + "key": "Server", + "value": "Apache/2.4.66 (Debian)" + }, + { + "key": "X-Content-Type-Options", + "value": "nosniff" + }, + { + "key": "X-Frame-Options", + "value": "SAMEORIGIN" + }, + { + "key": "X-Permitted-Cross-Domain-Policies", + "value": "none" + }, + { + "key": "X-Robots-Tag", + "value": "noindex, nofollow" + }, + { + "key": "Referrer-Policy", + "value": "no-referrer" + }, + { + "key": "X-Powered-By", + "value": "PHP/8.3.30" + }, + { + "key": "Content-Security-Policy", + "value": "default-src 'none';base-uri 'none';manifest-src 'self';frame-ancestors 'none'" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=685a71585bcb579e1de8539404938cad; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=685a71585bcb579e1de8539404938cad; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=685a71585bcb579e1de8539404938cad; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=685a71585bcb579e1de8539404938cad; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=685a71585bcb579e1de8539404938cad; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=185b733413916fed8773ec62a64f8447; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=185b733413916fed8773ec62a64f8447; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=185b733413916fed8773ec62a64f8447; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=185b733413916fed8773ec62a64f8447; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=185b733413916fed8773ec62a64f8447; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "X-Request-Id", + "value": "82c7Rhr6Kw8ZYeKuqeqR" + }, + { + "key": "Cache-Control", + "value": "no-cache, no-store, must-revalidate" + }, + { + "key": "Feature-Policy", + "value": "autoplay 'none';camera 'none';fullscreen 'none';geolocation 'none';microphone 'none';payment 'none'" + }, + { + "key": "X-User-Id", + "value": "admin" + }, + { + "key": "Content-Length", + "value": "400" + }, + { + "key": "Keep-Alive", + "value": "timeout=5, max=91" + }, + { + "key": "Connection", + "value": "Keep-Alive" + }, + { + "key": "Content-Type", + "value": "application/json; charset=utf-8" + } + ], + "stream": { + "type": "Buffer", + "data": [ + 123, + 34, + 117, + 114, + 108, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 105, + 92, + 47, + 118, + 49, + 92, + 47, + 115, + 116, + 97, + 116, + 117, + 115, + 116, + 121, + 112, + 101, + 110, + 92, + 47, + 98, + 48, + 98, + 56, + 51, + 51, + 52, + 55, + 45, + 98, + 99, + 55, + 52, + 45, + 52, + 101, + 102, + 57, + 45, + 98, + 57, + 56, + 52, + 45, + 53, + 50, + 102, + 49, + 99, + 54, + 99, + 57, + 102, + 99, + 51, + 100, + 34, + 44, + 34, + 117, + 117, + 105, + 100, + 34, + 58, + 34, + 98, + 48, + 98, + 56, + 51, + 51, + 52, + 55, + 45, + 98, + 99, + 55, + 52, + 45, + 52, + 101, + 102, + 57, + 45, + 98, + 57, + 56, + 52, + 45, + 53, + 50, + 102, + 49, + 99, + 54, + 99, + 57, + 102, + 99, + 51, + 100, + 34, + 44, + 34, + 111, + 109, + 115, + 99, + 104, + 114, + 105, + 106, + 118, + 105, + 110, + 103, + 34, + 58, + 34, + 69, + 105, + 110, + 100, + 34, + 44, + 34, + 111, + 109, + 115, + 99, + 104, + 114, + 105, + 106, + 118, + 105, + 110, + 103, + 71, + 101, + 110, + 101, + 114, + 105, + 101, + 107, + 34, + 58, + 34, + 34, + 44, + 34, + 122, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 105, + 92, + 47, + 118, + 49, + 92, + 47, + 122, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 110, + 92, + 47, + 54, + 49, + 57, + 100, + 99, + 51, + 101, + 53, + 45, + 53, + 50, + 102, + 49, + 45, + 52, + 50, + 57, + 52, + 45, + 97, + 53, + 54, + 57, + 45, + 102, + 50, + 49, + 100, + 49, + 54, + 102, + 52, + 52, + 56, + 55, + 57, + 34, + 44, + 34, + 118, + 111, + 108, + 103, + 110, + 117, + 109, + 109, + 101, + 114, + 34, + 58, + 50, + 44, + 34, + 105, + 115, + 69, + 105, + 110, + 100, + 115, + 116, + 97, + 116, + 117, + 115, + 34, + 58, + 102, + 97, + 108, + 115, + 101, + 125 + ] + }, + "cookie": [], + "responseTime": 176, + "responseSize": 400 + }, + "id": "4582a0a9-1996-48f6-9ae9-40aa073a1c1f" + }, + { + "cursor": { + "ref": "a3e96104-b7d9-40db-aa77-3e3d5edddb3e", + "length": 313, + "cycles": 1, + "position": 11, + "iteration": 0, + "httpRequestId": "76d2ecaf-987c-4135-be80-1ea25912cfe8" + }, + "item": { + "id": "dc817160-48ee-473e-bb6a-9e46575b969d", + "name": "Create Roltype Copy", + "request": { + "url": { + "path": [ + "roltypen" + ], + "host": [ + "{{ztc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n\t\"zaaktype\": \"{{zaaktype_url}}\",\n\t\"omschrijving\": \"test\",\n\t\"omschrijvingGeneriek\": \"adviseur\"\n}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "14f13ffb-d5fe-42b0-b55d-0dd0af4836ab", + "type": "text/javascript", + "exec": [ + "pm.environment.set(\"roltype_url\", pm.response.json().url);" + ], + "_lastExecutionId": "787e9167-c715-4272-b427-b51a06b8f467" + } + } + ] + }, + "request": { + "url": { + "protocol": "http", + "port": "8080", + "path": [ + "index.php", + "apps", + "procest", + "api", + "zgw", + "catalogi", + "v1", + "roltypen" + ], + "host": [ + "localhost" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Authorization", + "value": "Bearer eyJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJwcm9jZXN0LWFkbWluIiwiY2xpZW50X2lkIjoicHJvY2VzdC1hZG1pbiIsImlhdCI6IjE3NzMxNDUxNDEiLCJ1c2VyX2lkIjoicHJvY2VzdC1hZG1pbiIsInVzZXJfcmVwcmVzZW50YXRpb24iOiIifQ.hLvXLlKvHnlfcsIvC8ordOoS2DKQ1UtlZA526FS06mo", + "system": true + }, + { + "key": "User-Agent", + "value": "PostmanRuntime/7.39.1", + "system": true + }, + { + "key": "Accept", + "value": "*/*", + "system": true + }, + { + "key": "Cache-Control", + "value": "no-cache", + "system": true + }, + { + "key": "Postman-Token", + "value": "4b753e4f-ce74-42e3-b60f-f0968fd8194f", + "system": true + }, + { + "key": "Host", + "value": "localhost:8080", + "system": true + }, + { + "key": "Accept-Encoding", + "value": "gzip, deflate, br", + "system": true + }, + { + "key": "Connection", + "value": "keep-alive", + "system": true + }, + { + "key": "Content-Length", + "value": "192", + "system": true + }, + { + "key": "Cookie", + "value": "ocvp3112b4wg=185b733413916fed8773ec62a64f8447; oc_sessionPassphrase=LBNdKxRzA0iqoULIruNxDDh2BK3O%2BrCIU8aUmiUcOFvy5Xw1YfjwQNlmBW2IkGwJYtxXh9%2BwDN6vYuGNX07tXzkBtjQJUWTGdzf8AIOUIVxVx5DfyWAQZ7nmYmQv6XSE; nc_sameSiteCookielax=true; nc_sameSiteCookiestrict=true", + "system": true + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n\t\"zaaktype\": \"http://localhost:8080/index.php/apps/procest/api/zgw/catalogi/v1/zaaktypen/619dc3e5-52f1-4294-a569-f21d16f44879\",\n\t\"omschrijving\": \"test\",\n\t\"omschrijvingGeneriek\": \"adviseur\"\n}" + }, + "auth": { + "type": "jwt", + "jwt": [ + { + "type": "string", + "value": "{\r\n \"iss\": \"procest-admin\",\r\n \"client_id\": \"procest-admin\",\r\n \"iat\": \"1773145141\",\r\n \"user_id\": \"procest-admin\",\r\n \"user_representation\": \"\"\r\n}", + "key": "payload" + }, + { + "type": "string", + "value": "procest-admin-secret-key-for-testing", + "key": "secret" + }, + { + "type": "string", + "value": "HS256", + "key": "algorithm" + }, + { + "type": "boolean", + "value": false, + "key": "isSecretBase64Encoded" + }, + { + "type": "string", + "value": "header", + "key": "addTokenTo" + }, + { + "type": "string", + "value": "Bearer", + "key": "headerPrefix" + }, + { + "type": "string", + "value": "token", + "key": "queryParamKey" + }, + { + "type": "string", + "value": "{}", + "key": "header" + } + ] + } + }, + "response": { + "id": "c1f30474-c246-498d-92a0-4ed50326a947", + "status": "Created", + "code": 201, + "header": [ + { + "key": "Date", + "value": "Tue, 10 Mar 2026 12:19:01 GMT" + }, + { + "key": "Server", + "value": "Apache/2.4.66 (Debian)" + }, + { + "key": "X-Content-Type-Options", + "value": "nosniff" + }, + { + "key": "X-Frame-Options", + "value": "SAMEORIGIN" + }, + { + "key": "X-Permitted-Cross-Domain-Policies", + "value": "none" + }, + { + "key": "X-Robots-Tag", + "value": "noindex, nofollow" + }, + { + "key": "Referrer-Policy", + "value": "no-referrer" + }, + { + "key": "X-Powered-By", + "value": "PHP/8.3.30" + }, + { + "key": "Content-Security-Policy", + "value": "default-src 'none';base-uri 'none';manifest-src 'self';frame-ancestors 'none'" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=185b733413916fed8773ec62a64f8447; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=185b733413916fed8773ec62a64f8447; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=185b733413916fed8773ec62a64f8447; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=185b733413916fed8773ec62a64f8447; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=185b733413916fed8773ec62a64f8447; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=7d10e633eea8522c05d63655bac632dd; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=7d10e633eea8522c05d63655bac632dd; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=7d10e633eea8522c05d63655bac632dd; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=7d10e633eea8522c05d63655bac632dd; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=7d10e633eea8522c05d63655bac632dd; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "X-Request-Id", + "value": "TvYC8AgNZfWCHs05vQUb" + }, + { + "key": "Cache-Control", + "value": "no-cache, no-store, must-revalidate" + }, + { + "key": "Feature-Policy", + "value": "autoplay 'none';camera 'none';fullscreen 'none';geolocation 'none';microphone 'none';payment 'none'" + }, + { + "key": "X-User-Id", + "value": "admin" + }, + { + "key": "Content-Length", + "value": "369" + }, + { + "key": "Keep-Alive", + "value": "timeout=5, max=90" + }, + { + "key": "Connection", + "value": "Keep-Alive" + }, + { + "key": "Content-Type", + "value": "application/json; charset=utf-8" + } + ], + "stream": { + "type": "Buffer", + "data": [ + 123, + 34, + 117, + 114, + 108, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 105, + 92, + 47, + 118, + 49, + 92, + 47, + 114, + 111, + 108, + 116, + 121, + 112, + 101, + 110, + 92, + 47, + 57, + 102, + 99, + 98, + 99, + 57, + 48, + 97, + 45, + 57, + 54, + 100, + 51, + 45, + 52, + 97, + 98, + 51, + 45, + 97, + 52, + 102, + 56, + 45, + 100, + 52, + 54, + 56, + 50, + 53, + 48, + 56, + 56, + 49, + 99, + 53, + 34, + 44, + 34, + 117, + 117, + 105, + 100, + 34, + 58, + 34, + 57, + 102, + 99, + 98, + 99, + 57, + 48, + 97, + 45, + 57, + 54, + 100, + 51, + 45, + 52, + 97, + 98, + 51, + 45, + 97, + 52, + 102, + 56, + 45, + 100, + 52, + 54, + 56, + 50, + 53, + 48, + 56, + 56, + 49, + 99, + 53, + 34, + 44, + 34, + 111, + 109, + 115, + 99, + 104, + 114, + 105, + 106, + 118, + 105, + 110, + 103, + 34, + 58, + 34, + 116, + 101, + 115, + 116, + 34, + 44, + 34, + 111, + 109, + 115, + 99, + 104, + 114, + 105, + 106, + 118, + 105, + 110, + 103, + 71, + 101, + 110, + 101, + 114, + 105, + 101, + 107, + 34, + 58, + 34, + 97, + 100, + 118, + 105, + 115, + 101, + 117, + 114, + 34, + 44, + 34, + 122, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 105, + 92, + 47, + 118, + 49, + 92, + 47, + 122, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 110, + 92, + 47, + 54, + 49, + 57, + 100, + 99, + 51, + 101, + 53, + 45, + 53, + 50, + 102, + 49, + 45, + 52, + 50, + 57, + 52, + 45, + 97, + 53, + 54, + 57, + 45, + 102, + 50, + 49, + 100, + 49, + 54, + 102, + 52, + 52, + 56, + 55, + 57, + 34, + 125 + ] + }, + "cookie": [], + "responseTime": 224, + "responseSize": 369 + }, + "id": "dc817160-48ee-473e-bb6a-9e46575b969d" + }, + { + "cursor": { + "ref": "50efe368-059d-452c-9f7c-2a0a7fd874f2", + "length": 313, + "cycles": 1, + "position": 12, + "iteration": 0, + "httpRequestId": "c82cc4c4-c29a-4e70-a387-c53e079bc38e" + }, + "item": { + "id": "5a028ad2-e41b-4b22-9493-6d1482342df9", + "name": "Publish Besluittype", + "request": { + "url": { + "path": [ + "publish" + ], + "host": [ + "{{besluittype_url}}" + ], + "query": [], + "variable": [] + }, + "method": "POST" + }, + "response": [], + "event": [] + }, + "request": { + "url": { + "protocol": "http", + "port": "8080", + "path": [ + "index.php", + "apps", + "procest", + "api", + "zgw", + "catalogi", + "v1", + "besluittypen", + "0b220d27-e251-4c47-b0df-014c2e4caa61", + "publish" + ], + "host": [ + "localhost" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Authorization", + "value": "Bearer eyJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJwcm9jZXN0LWFkbWluIiwiY2xpZW50X2lkIjoicHJvY2VzdC1hZG1pbiIsImlhdCI6IjE3NzMxNDUxNDEiLCJ1c2VyX2lkIjoicHJvY2VzdC1hZG1pbiIsInVzZXJfcmVwcmVzZW50YXRpb24iOiIifQ.hLvXLlKvHnlfcsIvC8ordOoS2DKQ1UtlZA526FS06mo", + "system": true + }, + { + "key": "User-Agent", + "value": "PostmanRuntime/7.39.1", + "system": true + }, + { + "key": "Accept", + "value": "*/*", + "system": true + }, + { + "key": "Cache-Control", + "value": "no-cache", + "system": true + }, + { + "key": "Postman-Token", + "value": "81eb0fd8-7bac-4c08-9c74-f25e85cd313c", + "system": true + }, + { + "key": "Host", + "value": "localhost:8080", + "system": true + }, + { + "key": "Accept-Encoding", + "value": "gzip, deflate, br", + "system": true + }, + { + "key": "Connection", + "value": "keep-alive", + "system": true + }, + { + "key": "Cookie", + "value": "ocvp3112b4wg=7d10e633eea8522c05d63655bac632dd; oc_sessionPassphrase=LBNdKxRzA0iqoULIruNxDDh2BK3O%2BrCIU8aUmiUcOFvy5Xw1YfjwQNlmBW2IkGwJYtxXh9%2BwDN6vYuGNX07tXzkBtjQJUWTGdzf8AIOUIVxVx5DfyWAQZ7nmYmQv6XSE; nc_sameSiteCookielax=true; nc_sameSiteCookiestrict=true", + "system": true + }, + { + "key": "Content-Length", + "value": "0", + "system": true + } + ], + "method": "POST", + "auth": { + "type": "jwt", + "jwt": [ + { + "type": "string", + "value": "{\r\n \"iss\": \"procest-admin\",\r\n \"client_id\": \"procest-admin\",\r\n \"iat\": \"1773145141\",\r\n \"user_id\": \"procest-admin\",\r\n \"user_representation\": \"\"\r\n}", + "key": "payload" + }, + { + "type": "string", + "value": "procest-admin-secret-key-for-testing", + "key": "secret" + }, + { + "type": "string", + "value": "HS256", + "key": "algorithm" + }, + { + "type": "boolean", + "value": false, + "key": "isSecretBase64Encoded" + }, + { + "type": "string", + "value": "header", + "key": "addTokenTo" + }, + { + "type": "string", + "value": "Bearer", + "key": "headerPrefix" + }, + { + "type": "string", + "value": "token", + "key": "queryParamKey" + }, + { + "type": "string", + "value": "{}", + "key": "header" + } + ] + } + }, + "response": { + "id": "9c21db02-6059-4bfd-be7b-dd3012ce9056", + "status": "OK", + "code": 200, + "header": [ + { + "key": "Date", + "value": "Tue, 10 Mar 2026 12:19:01 GMT" + }, + { + "key": "Server", + "value": "Apache/2.4.66 (Debian)" + }, + { + "key": "X-Content-Type-Options", + "value": "nosniff" + }, + { + "key": "X-Frame-Options", + "value": "SAMEORIGIN" + }, + { + "key": "X-Permitted-Cross-Domain-Policies", + "value": "none" + }, + { + "key": "X-Robots-Tag", + "value": "noindex, nofollow" + }, + { + "key": "Referrer-Policy", + "value": "no-referrer" + }, + { + "key": "X-Powered-By", + "value": "PHP/8.3.30" + }, + { + "key": "Content-Security-Policy", + "value": "default-src 'none';base-uri 'none';manifest-src 'self';frame-ancestors 'none'" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=7d10e633eea8522c05d63655bac632dd; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=7d10e633eea8522c05d63655bac632dd; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=7d10e633eea8522c05d63655bac632dd; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=7d10e633eea8522c05d63655bac632dd; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=7d10e633eea8522c05d63655bac632dd; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=6bcf8bd77f3da80ca8198e7891ab85c9; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=6bcf8bd77f3da80ca8198e7891ab85c9; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=6bcf8bd77f3da80ca8198e7891ab85c9; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=6bcf8bd77f3da80ca8198e7891ab85c9; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=6bcf8bd77f3da80ca8198e7891ab85c9; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "X-Request-Id", + "value": "x0A5OXXYSFu4uEYmN1Eh" + }, + { + "key": "Cache-Control", + "value": "no-cache, no-store, must-revalidate" + }, + { + "key": "Feature-Policy", + "value": "autoplay 'none';camera 'none';fullscreen 'none';geolocation 'none';microphone 'none';payment 'none'" + }, + { + "key": "X-User-Id", + "value": "admin" + }, + { + "key": "Content-Encoding", + "value": "gzip" + }, + { + "key": "Content-Length", + "value": "314" + }, + { + "key": "Keep-Alive", + "value": "timeout=5, max=89" + }, + { + "key": "Connection", + "value": "Keep-Alive" + }, + { + "key": "Content-Type", + "value": "application/json; charset=utf-8" + } + ], + "stream": { + "type": "Buffer", + "data": [ + 123, + 34, + 117, + 114, + 108, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 105, + 92, + 47, + 118, + 49, + 92, + 47, + 98, + 101, + 115, + 108, + 117, + 105, + 116, + 116, + 121, + 112, + 101, + 110, + 92, + 47, + 48, + 98, + 50, + 50, + 48, + 100, + 50, + 55, + 45, + 101, + 50, + 53, + 49, + 45, + 52, + 99, + 52, + 55, + 45, + 98, + 48, + 100, + 102, + 45, + 48, + 49, + 52, + 99, + 50, + 101, + 52, + 99, + 97, + 97, + 54, + 49, + 34, + 44, + 34, + 117, + 117, + 105, + 100, + 34, + 58, + 34, + 48, + 98, + 50, + 50, + 48, + 100, + 50, + 55, + 45, + 101, + 50, + 53, + 49, + 45, + 52, + 99, + 52, + 55, + 45, + 98, + 48, + 100, + 102, + 45, + 48, + 49, + 52, + 99, + 50, + 101, + 52, + 99, + 97, + 97, + 54, + 49, + 34, + 44, + 34, + 111, + 109, + 115, + 99, + 104, + 114, + 105, + 106, + 118, + 105, + 110, + 103, + 34, + 58, + 34, + 99, + 55, + 101, + 52, + 99, + 100, + 51, + 101, + 45, + 49, + 54, + 52, + 53, + 45, + 52, + 99, + 48, + 97, + 45, + 56, + 98, + 99, + 52, + 45, + 48, + 97, + 97, + 49, + 56, + 52, + 55, + 102, + 54, + 57, + 52, + 54, + 34, + 44, + 34, + 116, + 111, + 101, + 108, + 105, + 99, + 104, + 116, + 105, + 110, + 103, + 34, + 58, + 34, + 34, + 44, + 34, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 117, + 115, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 105, + 92, + 47, + 118, + 49, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 117, + 115, + 115, + 101, + 110, + 92, + 47, + 53, + 48, + 53, + 55, + 52, + 48, + 56, + 102, + 45, + 102, + 100, + 55, + 54, + 45, + 52, + 54, + 57, + 101, + 45, + 56, + 54, + 52, + 54, + 45, + 98, + 99, + 99, + 52, + 98, + 97, + 50, + 101, + 102, + 97, + 56, + 100, + 34, + 44, + 34, + 122, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 99, + 111, + 110, + 99, + 101, + 112, + 116, + 34, + 58, + 102, + 97, + 108, + 115, + 101, + 44, + 34, + 112, + 117, + 98, + 108, + 105, + 99, + 97, + 116, + 105, + 101, + 73, + 110, + 100, + 105, + 99, + 97, + 116, + 105, + 101, + 34, + 58, + 102, + 97, + 108, + 115, + 101, + 44, + 34, + 105, + 110, + 102, + 111, + 114, + 109, + 97, + 116, + 105, + 101, + 111, + 98, + 106, + 101, + 99, + 116, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 98, + 101, + 103, + 105, + 110, + 71, + 101, + 108, + 100, + 105, + 103, + 104, + 101, + 105, + 100, + 34, + 58, + 34, + 50, + 48, + 49, + 57, + 45, + 48, + 49, + 45, + 48, + 49, + 34, + 44, + 34, + 101, + 105, + 110, + 100, + 101, + 71, + 101, + 108, + 100, + 105, + 103, + 104, + 101, + 105, + 100, + 34, + 58, + 34, + 50, + 48, + 50, + 54, + 45, + 48, + 51, + 45, + 49, + 48, + 34, + 125 + ] + }, + "cookie": [], + "responseTime": 148, + "responseSize": 540 + }, + "id": "5a028ad2-e41b-4b22-9493-6d1482342df9" + }, + { + "cursor": { + "ref": "87b731db-7bb5-47ab-8c73-51411d7ed739", + "length": 313, + "cycles": 1, + "position": 13, + "iteration": 0, + "httpRequestId": "02733812-9515-41bc-bea5-3e13b58a2acd" + }, + "item": { + "id": "7e848e10-813a-4ac5-8501-0ed7cd2bcec6", + "name": "Publish Informatieobjecttype", + "request": { + "url": { + "path": [ + "publish" + ], + "host": [ + "{{informatieobjecttype_url}}" + ], + "query": [], + "variable": [] + }, + "method": "POST" + }, + "response": [], + "event": [] + }, + "request": { + "url": { + "protocol": "http", + "port": "8080", + "path": [ + "index.php", + "apps", + "procest", + "api", + "zgw", + "catalogi", + "v1", + "informatieobjecttypen", + "6cab7420-6cda-49c9-8313-7464947a74a3", + "publish" + ], + "host": [ + "localhost" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Authorization", + "value": "Bearer eyJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJwcm9jZXN0LWFkbWluIiwiY2xpZW50X2lkIjoicHJvY2VzdC1hZG1pbiIsImlhdCI6IjE3NzMxNDUxNDEiLCJ1c2VyX2lkIjoicHJvY2VzdC1hZG1pbiIsInVzZXJfcmVwcmVzZW50YXRpb24iOiIifQ.hLvXLlKvHnlfcsIvC8ordOoS2DKQ1UtlZA526FS06mo", + "system": true + }, + { + "key": "User-Agent", + "value": "PostmanRuntime/7.39.1", + "system": true + }, + { + "key": "Accept", + "value": "*/*", + "system": true + }, + { + "key": "Cache-Control", + "value": "no-cache", + "system": true + }, + { + "key": "Postman-Token", + "value": "628c71cf-c81c-4525-bc4f-f5314a89926f", + "system": true + }, + { + "key": "Host", + "value": "localhost:8080", + "system": true + }, + { + "key": "Accept-Encoding", + "value": "gzip, deflate, br", + "system": true + }, + { + "key": "Connection", + "value": "keep-alive", + "system": true + }, + { + "key": "Cookie", + "value": "ocvp3112b4wg=6bcf8bd77f3da80ca8198e7891ab85c9; oc_sessionPassphrase=LBNdKxRzA0iqoULIruNxDDh2BK3O%2BrCIU8aUmiUcOFvy5Xw1YfjwQNlmBW2IkGwJYtxXh9%2BwDN6vYuGNX07tXzkBtjQJUWTGdzf8AIOUIVxVx5DfyWAQZ7nmYmQv6XSE; nc_sameSiteCookielax=true; nc_sameSiteCookiestrict=true", + "system": true + }, + { + "key": "Content-Length", + "value": "0", + "system": true + } + ], + "method": "POST", + "auth": { + "type": "jwt", + "jwt": [ + { + "type": "string", + "value": "{\r\n \"iss\": \"procest-admin\",\r\n \"client_id\": \"procest-admin\",\r\n \"iat\": \"1773145141\",\r\n \"user_id\": \"procest-admin\",\r\n \"user_representation\": \"\"\r\n}", + "key": "payload" + }, + { + "type": "string", + "value": "procest-admin-secret-key-for-testing", + "key": "secret" + }, + { + "type": "string", + "value": "HS256", + "key": "algorithm" + }, + { + "type": "boolean", + "value": false, + "key": "isSecretBase64Encoded" + }, + { + "type": "string", + "value": "header", + "key": "addTokenTo" + }, + { + "type": "string", + "value": "Bearer", + "key": "headerPrefix" + }, + { + "type": "string", + "value": "token", + "key": "queryParamKey" + }, + { + "type": "string", + "value": "{}", + "key": "header" + } + ] + } + }, + "response": { + "id": "e608091e-56bc-4e2e-966f-3ab7dd2b407c", + "status": "OK", + "code": 200, + "header": [ + { + "key": "Date", + "value": "Tue, 10 Mar 2026 12:19:01 GMT" + }, + { + "key": "Server", + "value": "Apache/2.4.66 (Debian)" + }, + { + "key": "X-Content-Type-Options", + "value": "nosniff" + }, + { + "key": "X-Frame-Options", + "value": "SAMEORIGIN" + }, + { + "key": "X-Permitted-Cross-Domain-Policies", + "value": "none" + }, + { + "key": "X-Robots-Tag", + "value": "noindex, nofollow" + }, + { + "key": "Referrer-Policy", + "value": "no-referrer" + }, + { + "key": "X-Powered-By", + "value": "PHP/8.3.30" + }, + { + "key": "Content-Security-Policy", + "value": "default-src 'none';base-uri 'none';manifest-src 'self';frame-ancestors 'none'" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=6bcf8bd77f3da80ca8198e7891ab85c9; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=6bcf8bd77f3da80ca8198e7891ab85c9; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=6bcf8bd77f3da80ca8198e7891ab85c9; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=6bcf8bd77f3da80ca8198e7891ab85c9; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=6bcf8bd77f3da80ca8198e7891ab85c9; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=6b9a84cffc89b7019f857167ca629bd6; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=6b9a84cffc89b7019f857167ca629bd6; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=6b9a84cffc89b7019f857167ca629bd6; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=6b9a84cffc89b7019f857167ca629bd6; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=6b9a84cffc89b7019f857167ca629bd6; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "X-Request-Id", + "value": "6eMxmKp96h2wUcWsbwT4" + }, + { + "key": "Cache-Control", + "value": "no-cache, no-store, must-revalidate" + }, + { + "key": "Feature-Policy", + "value": "autoplay 'none';camera 'none';fullscreen 'none';geolocation 'none';microphone 'none';payment 'none'" + }, + { + "key": "X-User-Id", + "value": "admin" + }, + { + "key": "Content-Encoding", + "value": "gzip" + }, + { + "key": "Content-Length", + "value": "329" + }, + { + "key": "Keep-Alive", + "value": "timeout=5, max=88" + }, + { + "key": "Connection", + "value": "Keep-Alive" + }, + { + "key": "Content-Type", + "value": "application/json; charset=utf-8" + } + ], + "stream": { + "type": "Buffer", + "data": [ + 123, + 34, + 117, + 114, + 108, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 105, + 92, + 47, + 118, + 49, + 92, + 47, + 105, + 110, + 102, + 111, + 114, + 109, + 97, + 116, + 105, + 101, + 111, + 98, + 106, + 101, + 99, + 116, + 116, + 121, + 112, + 101, + 110, + 92, + 47, + 54, + 99, + 97, + 98, + 55, + 52, + 50, + 48, + 45, + 54, + 99, + 100, + 97, + 45, + 52, + 57, + 99, + 57, + 45, + 56, + 51, + 49, + 51, + 45, + 55, + 52, + 54, + 52, + 57, + 52, + 55, + 97, + 55, + 52, + 97, + 51, + 34, + 44, + 34, + 117, + 117, + 105, + 100, + 34, + 58, + 34, + 54, + 99, + 97, + 98, + 55, + 52, + 50, + 48, + 45, + 54, + 99, + 100, + 97, + 45, + 52, + 57, + 99, + 57, + 45, + 56, + 51, + 49, + 51, + 45, + 55, + 52, + 54, + 52, + 57, + 52, + 55, + 97, + 55, + 52, + 97, + 51, + 34, + 44, + 34, + 111, + 109, + 115, + 99, + 104, + 114, + 105, + 106, + 118, + 105, + 110, + 103, + 34, + 58, + 34, + 101, + 52, + 48, + 50, + 97, + 54, + 101, + 102, + 45, + 56, + 50, + 57, + 101, + 45, + 52, + 53, + 48, + 49, + 45, + 97, + 99, + 48, + 53, + 45, + 51, + 98, + 49, + 55, + 52, + 100, + 57, + 99, + 55, + 51, + 56, + 98, + 34, + 44, + 34, + 116, + 111, + 101, + 108, + 105, + 99, + 104, + 116, + 105, + 110, + 103, + 34, + 58, + 34, + 34, + 44, + 34, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 117, + 115, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 105, + 92, + 47, + 118, + 49, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 117, + 115, + 115, + 101, + 110, + 92, + 47, + 53, + 48, + 53, + 55, + 52, + 48, + 56, + 102, + 45, + 102, + 100, + 55, + 54, + 45, + 52, + 54, + 57, + 101, + 45, + 56, + 54, + 52, + 54, + 45, + 98, + 99, + 99, + 52, + 98, + 97, + 50, + 101, + 102, + 97, + 56, + 100, + 34, + 44, + 34, + 99, + 111, + 110, + 99, + 101, + 112, + 116, + 34, + 58, + 102, + 97, + 108, + 115, + 101, + 44, + 34, + 118, + 101, + 114, + 116, + 114, + 111, + 117, + 119, + 101, + 108, + 105, + 106, + 107, + 104, + 101, + 105, + 100, + 97, + 97, + 110, + 100, + 117, + 105, + 100, + 105, + 110, + 103, + 34, + 58, + 34, + 111, + 112, + 101, + 110, + 98, + 97, + 97, + 114, + 34, + 44, + 34, + 105, + 110, + 102, + 111, + 114, + 109, + 97, + 116, + 105, + 101, + 111, + 98, + 106, + 101, + 99, + 116, + 99, + 97, + 116, + 101, + 103, + 111, + 114, + 105, + 101, + 34, + 58, + 34, + 100, + 111, + 99, + 117, + 109, + 101, + 110, + 116, + 34, + 44, + 34, + 98, + 101, + 103, + 105, + 110, + 71, + 101, + 108, + 100, + 105, + 103, + 104, + 101, + 105, + 100, + 34, + 58, + 34, + 50, + 48, + 49, + 57, + 45, + 48, + 49, + 45, + 48, + 49, + 34, + 44, + 34, + 101, + 105, + 110, + 100, + 101, + 71, + 101, + 108, + 100, + 105, + 103, + 104, + 101, + 105, + 100, + 34, + 58, + 34, + 50, + 48, + 50, + 54, + 45, + 48, + 51, + 45, + 49, + 48, + 34, + 44, + 34, + 118, + 101, + 114, + 112, + 108, + 105, + 99, + 104, + 116, + 34, + 58, + 102, + 97, + 108, + 115, + 101, + 125 + ] + }, + "cookie": [], + "responseTime": 154, + "responseSize": 577 + }, + "id": "7e848e10-813a-4ac5-8501-0ed7cd2bcec6" + }, + { + "cursor": { + "ref": "ae76844a-d1c8-45a8-afc4-2cb779dafb01", + "length": 313, + "cycles": 1, + "position": 14, + "iteration": 0, + "httpRequestId": "43a15f24-a379-48a0-b584-a41db98ea966" + }, + "item": { + "id": "383524a4-81cc-430d-a8c5-ed3f5c6fa96f", + "name": "Publish Deelzaaktype", + "request": { + "url": { + "path": [ + "publish" + ], + "host": [ + "{{deelzaaktype_url}}" + ], + "query": [], + "variable": [] + }, + "method": "POST" + }, + "response": [], + "event": [] + }, + "request": { + "url": { + "protocol": "http", + "port": "8080", + "path": [ + "index.php", + "apps", + "procest", + "api", + "zgw", + "catalogi", + "v1", + "zaaktypen", + "7571bffe-5579-4295-9fac-87a9a6b6c5ac", + "publish" + ], + "host": [ + "localhost" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Authorization", + "value": "Bearer eyJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJwcm9jZXN0LWFkbWluIiwiY2xpZW50X2lkIjoicHJvY2VzdC1hZG1pbiIsImlhdCI6IjE3NzMxNDUxNDIiLCJ1c2VyX2lkIjoicHJvY2VzdC1hZG1pbiIsInVzZXJfcmVwcmVzZW50YXRpb24iOiIifQ.L_OGVMmL4nvF3FQiQCPHfhjnLQOTl02Fx7XqYWTMyLM", + "system": true + }, + { + "key": "User-Agent", + "value": "PostmanRuntime/7.39.1", + "system": true + }, + { + "key": "Accept", + "value": "*/*", + "system": true + }, + { + "key": "Cache-Control", + "value": "no-cache", + "system": true + }, + { + "key": "Postman-Token", + "value": "54ab836a-b52d-4f68-9c5d-11618ed37fe9", + "system": true + }, + { + "key": "Host", + "value": "localhost:8080", + "system": true + }, + { + "key": "Accept-Encoding", + "value": "gzip, deflate, br", + "system": true + }, + { + "key": "Connection", + "value": "keep-alive", + "system": true + }, + { + "key": "Cookie", + "value": "ocvp3112b4wg=6b9a84cffc89b7019f857167ca629bd6; oc_sessionPassphrase=LBNdKxRzA0iqoULIruNxDDh2BK3O%2BrCIU8aUmiUcOFvy5Xw1YfjwQNlmBW2IkGwJYtxXh9%2BwDN6vYuGNX07tXzkBtjQJUWTGdzf8AIOUIVxVx5DfyWAQZ7nmYmQv6XSE; nc_sameSiteCookielax=true; nc_sameSiteCookiestrict=true", + "system": true + }, + { + "key": "Content-Length", + "value": "0", + "system": true + } + ], + "method": "POST", + "auth": { + "type": "jwt", + "jwt": [ + { + "type": "string", + "value": "{\r\n \"iss\": \"procest-admin\",\r\n \"client_id\": \"procest-admin\",\r\n \"iat\": \"1773145142\",\r\n \"user_id\": \"procest-admin\",\r\n \"user_representation\": \"\"\r\n}", + "key": "payload" + }, + { + "type": "string", + "value": "procest-admin-secret-key-for-testing", + "key": "secret" + }, + { + "type": "string", + "value": "HS256", + "key": "algorithm" + }, + { + "type": "boolean", + "value": false, + "key": "isSecretBase64Encoded" + }, + { + "type": "string", + "value": "header", + "key": "addTokenTo" + }, + { + "type": "string", + "value": "Bearer", + "key": "headerPrefix" + }, + { + "type": "string", + "value": "token", + "key": "queryParamKey" + }, + { + "type": "string", + "value": "{}", + "key": "header" + } + ] + } + }, + "response": { + "id": "8f863b5b-c969-44de-a90a-03871684d89d", + "status": "OK", + "code": 200, + "header": [ + { + "key": "Date", + "value": "Tue, 10 Mar 2026 12:19:01 GMT" + }, + { + "key": "Server", + "value": "Apache/2.4.66 (Debian)" + }, + { + "key": "X-Content-Type-Options", + "value": "nosniff" + }, + { + "key": "X-Frame-Options", + "value": "SAMEORIGIN" + }, + { + "key": "X-Permitted-Cross-Domain-Policies", + "value": "none" + }, + { + "key": "X-Robots-Tag", + "value": "noindex, nofollow" + }, + { + "key": "Referrer-Policy", + "value": "no-referrer" + }, + { + "key": "X-Powered-By", + "value": "PHP/8.3.30" + }, + { + "key": "Content-Security-Policy", + "value": "default-src 'none';base-uri 'none';manifest-src 'self';frame-ancestors 'none'" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=6b9a84cffc89b7019f857167ca629bd6; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=6b9a84cffc89b7019f857167ca629bd6; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=6b9a84cffc89b7019f857167ca629bd6; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=6b9a84cffc89b7019f857167ca629bd6; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=6b9a84cffc89b7019f857167ca629bd6; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=4d450969b361c3bb0d2b6421bed997ff; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=4d450969b361c3bb0d2b6421bed997ff; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=4d450969b361c3bb0d2b6421bed997ff; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=4d450969b361c3bb0d2b6421bed997ff; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=4d450969b361c3bb0d2b6421bed997ff; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "X-Request-Id", + "value": "F85eiabdFwlJt1jOd838" + }, + { + "key": "Cache-Control", + "value": "no-cache, no-store, must-revalidate" + }, + { + "key": "Feature-Policy", + "value": "autoplay 'none';camera 'none';fullscreen 'none';geolocation 'none';microphone 'none';payment 'none'" + }, + { + "key": "X-User-Id", + "value": "admin" + }, + { + "key": "Content-Encoding", + "value": "gzip" + }, + { + "key": "Content-Length", + "value": "712" + }, + { + "key": "Keep-Alive", + "value": "timeout=5, max=87" + }, + { + "key": "Connection", + "value": "Keep-Alive" + }, + { + "key": "Content-Type", + "value": "application/json; charset=utf-8" + } + ], + "stream": { + "type": "Buffer", + "data": [ + 123, + 34, + 117, + 114, + 108, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 105, + 92, + 47, + 118, + 49, + 92, + 47, + 122, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 110, + 92, + 47, + 55, + 53, + 55, + 49, + 98, + 102, + 102, + 101, + 45, + 53, + 53, + 55, + 57, + 45, + 52, + 50, + 57, + 53, + 45, + 57, + 102, + 97, + 99, + 45, + 56, + 55, + 97, + 57, + 97, + 54, + 98, + 54, + 99, + 53, + 97, + 99, + 34, + 44, + 34, + 117, + 117, + 105, + 100, + 34, + 58, + 34, + 55, + 53, + 55, + 49, + 98, + 102, + 102, + 101, + 45, + 53, + 53, + 55, + 57, + 45, + 52, + 50, + 57, + 53, + 45, + 57, + 102, + 97, + 99, + 45, + 56, + 55, + 97, + 57, + 97, + 54, + 98, + 54, + 99, + 53, + 97, + 99, + 34, + 44, + 34, + 105, + 100, + 101, + 110, + 116, + 105, + 102, + 105, + 99, + 97, + 116, + 105, + 101, + 34, + 58, + 34, + 99, + 97, + 101, + 54, + 102, + 50, + 54, + 97, + 45, + 49, + 51, + 50, + 49, + 45, + 52, + 98, + 102, + 102, + 45, + 98, + 51, + 49, + 52, + 45, + 52, + 50, + 49, + 100, + 100, + 102, + 55, + 55, + 55, + 53, + 98, + 57, + 34, + 44, + 34, + 111, + 109, + 115, + 99, + 104, + 114, + 105, + 106, + 118, + 105, + 110, + 103, + 34, + 58, + 34, + 122, + 114, + 99, + 95, + 116, + 101, + 115, + 116, + 115, + 95, + 49, + 32, + 100, + 101, + 101, + 108, + 122, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 34, + 44, + 34, + 111, + 109, + 115, + 99, + 104, + 114, + 105, + 106, + 118, + 105, + 110, + 103, + 71, + 101, + 110, + 101, + 114, + 105, + 101, + 107, + 34, + 58, + 34, + 34, + 44, + 34, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 117, + 115, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 105, + 92, + 47, + 118, + 49, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 117, + 115, + 115, + 101, + 110, + 92, + 47, + 53, + 48, + 53, + 55, + 52, + 48, + 56, + 102, + 45, + 102, + 100, + 55, + 54, + 45, + 52, + 54, + 57, + 101, + 45, + 56, + 54, + 52, + 54, + 45, + 98, + 99, + 99, + 52, + 98, + 97, + 50, + 101, + 102, + 97, + 56, + 100, + 34, + 44, + 34, + 100, + 111, + 101, + 108, + 34, + 58, + 34, + 116, + 101, + 115, + 116, + 32, + 100, + 111, + 101, + 108, + 34, + 44, + 34, + 97, + 97, + 110, + 108, + 101, + 105, + 100, + 105, + 110, + 103, + 34, + 58, + 34, + 116, + 101, + 115, + 116, + 32, + 97, + 97, + 110, + 108, + 101, + 105, + 100, + 105, + 110, + 103, + 34, + 44, + 34, + 111, + 110, + 100, + 101, + 114, + 119, + 101, + 114, + 112, + 34, + 58, + 34, + 111, + 112, + 101, + 110, + 98, + 97, + 114, + 101, + 32, + 114, + 117, + 105, + 109, + 116, + 101, + 34, + 44, + 34, + 100, + 111, + 111, + 114, + 108, + 111, + 111, + 112, + 116, + 105, + 106, + 100, + 34, + 58, + 34, + 80, + 49, + 48, + 68, + 34, + 44, + 34, + 118, + 101, + 114, + 116, + 114, + 111, + 117, + 119, + 101, + 108, + 105, + 106, + 107, + 104, + 101, + 105, + 100, + 97, + 97, + 110, + 100, + 117, + 105, + 100, + 105, + 110, + 103, + 34, + 58, + 34, + 111, + 112, + 101, + 110, + 98, + 97, + 97, + 114, + 34, + 44, + 34, + 99, + 111, + 110, + 99, + 101, + 112, + 116, + 34, + 58, + 102, + 97, + 108, + 115, + 101, + 44, + 34, + 98, + 101, + 103, + 105, + 110, + 71, + 101, + 108, + 100, + 105, + 103, + 104, + 101, + 105, + 100, + 34, + 58, + 34, + 50, + 48, + 49, + 57, + 45, + 48, + 49, + 45, + 48, + 49, + 34, + 44, + 34, + 101, + 105, + 110, + 100, + 101, + 71, + 101, + 108, + 100, + 105, + 103, + 104, + 101, + 105, + 100, + 34, + 58, + 34, + 50, + 48, + 50, + 54, + 45, + 48, + 51, + 45, + 49, + 48, + 34, + 44, + 34, + 104, + 97, + 110, + 100, + 101, + 108, + 105, + 110, + 103, + 73, + 110, + 105, + 116, + 105, + 97, + 116, + 111, + 114, + 34, + 58, + 34, + 105, + 110, + 100, + 105, + 101, + 110, + 101, + 110, + 34, + 44, + 34, + 105, + 110, + 100, + 105, + 99, + 97, + 116, + 105, + 101, + 73, + 110, + 116, + 101, + 114, + 110, + 79, + 102, + 69, + 120, + 116, + 101, + 114, + 110, + 34, + 58, + 34, + 101, + 120, + 116, + 101, + 114, + 110, + 34, + 44, + 34, + 104, + 97, + 110, + 100, + 101, + 108, + 105, + 110, + 103, + 66, + 101, + 104, + 97, + 110, + 100, + 101, + 108, + 97, + 97, + 114, + 34, + 58, + 34, + 98, + 101, + 104, + 97, + 110, + 100, + 101, + 108, + 101, + 110, + 34, + 44, + 34, + 111, + 112, + 115, + 99, + 104, + 111, + 114, + 116, + 105, + 110, + 103, + 69, + 110, + 65, + 97, + 110, + 104, + 111, + 117, + 100, + 105, + 110, + 103, + 77, + 111, + 103, + 101, + 108, + 105, + 106, + 107, + 34, + 58, + 102, + 97, + 108, + 115, + 101, + 44, + 34, + 118, + 101, + 114, + 108, + 101, + 110, + 103, + 105, + 110, + 103, + 77, + 111, + 103, + 101, + 108, + 105, + 106, + 107, + 34, + 58, + 116, + 114, + 117, + 101, + 44, + 34, + 118, + 101, + 114, + 108, + 101, + 110, + 103, + 105, + 110, + 103, + 115, + 116, + 101, + 114, + 109, + 105, + 106, + 110, + 34, + 58, + 34, + 80, + 53, + 68, + 34, + 44, + 34, + 112, + 117, + 98, + 108, + 105, + 99, + 97, + 116, + 105, + 101, + 73, + 110, + 100, + 105, + 99, + 97, + 116, + 105, + 101, + 34, + 58, + 102, + 97, + 108, + 115, + 101, + 44, + 34, + 112, + 114, + 111, + 100, + 117, + 99, + 116, + 101, + 110, + 79, + 102, + 68, + 105, + 101, + 110, + 115, + 116, + 101, + 110, + 34, + 58, + 91, + 34, + 104, + 116, + 116, + 112, + 115, + 58, + 92, + 47, + 92, + 47, + 114, + 101, + 102, + 46, + 116, + 115, + 116, + 46, + 118, + 110, + 103, + 46, + 99, + 108, + 111, + 117, + 100, + 92, + 47, + 115, + 116, + 97, + 110, + 100, + 97, + 97, + 114, + 100, + 92, + 47, + 34, + 93, + 44, + 34, + 115, + 101, + 108, + 101, + 99, + 116, + 105, + 101, + 108, + 105, + 106, + 115, + 116, + 80, + 114, + 111, + 99, + 101, + 115, + 116, + 121, + 112, + 101, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 115, + 58, + 92, + 47, + 92, + 47, + 115, + 101, + 108, + 101, + 99, + 116, + 105, + 101, + 108, + 105, + 106, + 115, + 116, + 46, + 111, + 112, + 101, + 110, + 122, + 97, + 97, + 107, + 46, + 110, + 108, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 118, + 49, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 121, + 112, + 101, + 110, + 92, + 47, + 56, + 51, + 56, + 101, + 52, + 48, + 53, + 97, + 45, + 57, + 98, + 49, + 50, + 45, + 52, + 51, + 99, + 52, + 45, + 97, + 57, + 56, + 53, + 45, + 100, + 55, + 97, + 55, + 52, + 57, + 48, + 100, + 52, + 50, + 50, + 101, + 34, + 44, + 34, + 114, + 101, + 102, + 101, + 114, + 101, + 110, + 116, + 105, + 101, + 112, + 114, + 111, + 99, + 101, + 115, + 34, + 58, + 123, + 34, + 108, + 105, + 110, + 107, + 34, + 58, + 34, + 34, + 44, + 34, + 110, + 97, + 97, + 109, + 34, + 58, + 34, + 116, + 101, + 115, + 116, + 34, + 125, + 44, + 34, + 118, + 101, + 114, + 97, + 110, + 116, + 119, + 111, + 111, + 114, + 100, + 101, + 108, + 105, + 106, + 107, + 101, + 34, + 58, + 34, + 88, + 34, + 44, + 34, + 103, + 101, + 114, + 101, + 108, + 97, + 116, + 101, + 101, + 114, + 100, + 101, + 90, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 98, + 101, + 115, + 108, + 117, + 105, + 116, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 34, + 48, + 98, + 50, + 50, + 48, + 100, + 50, + 55, + 45, + 101, + 50, + 53, + 49, + 45, + 52, + 99, + 52, + 55, + 45, + 98, + 48, + 100, + 102, + 45, + 48, + 49, + 52, + 99, + 50, + 101, + 52, + 99, + 97, + 97, + 54, + 49, + 34, + 93, + 44, + 34, + 105, + 110, + 102, + 111, + 114, + 109, + 97, + 116, + 105, + 101, + 111, + 98, + 106, + 101, + 99, + 116, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 100, + 101, + 101, + 108, + 122, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 116, + 111, + 101, + 108, + 105, + 99, + 104, + 116, + 105, + 110, + 103, + 34, + 58, + 34, + 34, + 44, + 34, + 118, + 101, + 114, + 115, + 105, + 101, + 100, + 97, + 116, + 117, + 109, + 34, + 58, + 34, + 50, + 48, + 49, + 57, + 45, + 48, + 49, + 45, + 48, + 49, + 34, + 125 + ] + }, + "cookie": [], + "responseTime": 167, + "responseSize": 1319 + }, + "id": "383524a4-81cc-430d-a8c5-ed3f5c6fa96f" + }, + { + "cursor": { + "ref": "f510c114-1bb0-46b9-830e-07192f531853", + "length": 313, + "cycles": 1, + "position": 15, + "iteration": 0, + "httpRequestId": "3fd9288b-c1ce-4c0a-b7e7-cbe69e368f2d" + }, + "item": { + "id": "4b74da15-d55f-48eb-b75d-d28486f1bf51", + "name": "Publish Zaaktype", + "request": { + "url": { + "path": [ + "publish" + ], + "host": [ + "{{zaaktype_url}}" + ], + "query": [], + "variable": [] + }, + "method": "POST" + }, + "response": [], + "event": [] + }, + "request": { + "url": { + "protocol": "http", + "port": "8080", + "path": [ + "index.php", + "apps", + "procest", + "api", + "zgw", + "catalogi", + "v1", + "zaaktypen", + "619dc3e5-52f1-4294-a569-f21d16f44879", + "publish" + ], + "host": [ + "localhost" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Authorization", + "value": "Bearer eyJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJwcm9jZXN0LWFkbWluIiwiY2xpZW50X2lkIjoicHJvY2VzdC1hZG1pbiIsImlhdCI6IjE3NzMxNDUxNDIiLCJ1c2VyX2lkIjoicHJvY2VzdC1hZG1pbiIsInVzZXJfcmVwcmVzZW50YXRpb24iOiIifQ.L_OGVMmL4nvF3FQiQCPHfhjnLQOTl02Fx7XqYWTMyLM", + "system": true + }, + { + "key": "User-Agent", + "value": "PostmanRuntime/7.39.1", + "system": true + }, + { + "key": "Accept", + "value": "*/*", + "system": true + }, + { + "key": "Cache-Control", + "value": "no-cache", + "system": true + }, + { + "key": "Postman-Token", + "value": "c2519113-7fe6-41cf-a6fe-b81d05c523a3", + "system": true + }, + { + "key": "Host", + "value": "localhost:8080", + "system": true + }, + { + "key": "Accept-Encoding", + "value": "gzip, deflate, br", + "system": true + }, + { + "key": "Connection", + "value": "keep-alive", + "system": true + }, + { + "key": "Cookie", + "value": "ocvp3112b4wg=4d450969b361c3bb0d2b6421bed997ff; oc_sessionPassphrase=LBNdKxRzA0iqoULIruNxDDh2BK3O%2BrCIU8aUmiUcOFvy5Xw1YfjwQNlmBW2IkGwJYtxXh9%2BwDN6vYuGNX07tXzkBtjQJUWTGdzf8AIOUIVxVx5DfyWAQZ7nmYmQv6XSE; nc_sameSiteCookielax=true; nc_sameSiteCookiestrict=true", + "system": true + }, + { + "key": "Content-Length", + "value": "0", + "system": true + } + ], + "method": "POST", + "auth": { + "type": "jwt", + "jwt": [ + { + "type": "string", + "value": "{\r\n \"iss\": \"procest-admin\",\r\n \"client_id\": \"procest-admin\",\r\n \"iat\": \"1773145142\",\r\n \"user_id\": \"procest-admin\",\r\n \"user_representation\": \"\"\r\n}", + "key": "payload" + }, + { + "type": "string", + "value": "procest-admin-secret-key-for-testing", + "key": "secret" + }, + { + "type": "string", + "value": "HS256", + "key": "algorithm" + }, + { + "type": "boolean", + "value": false, + "key": "isSecretBase64Encoded" + }, + { + "type": "string", + "value": "header", + "key": "addTokenTo" + }, + { + "type": "string", + "value": "Bearer", + "key": "headerPrefix" + }, + { + "type": "string", + "value": "token", + "key": "queryParamKey" + }, + { + "type": "string", + "value": "{}", + "key": "header" + } + ] + } + }, + "response": { + "id": "ddc0c72d-b403-45c5-ab52-613d2ad3cb45", + "status": "OK", + "code": 200, + "header": [ + { + "key": "Date", + "value": "Tue, 10 Mar 2026 12:19:01 GMT" + }, + { + "key": "Server", + "value": "Apache/2.4.66 (Debian)" + }, + { + "key": "X-Content-Type-Options", + "value": "nosniff" + }, + { + "key": "X-Frame-Options", + "value": "SAMEORIGIN" + }, + { + "key": "X-Permitted-Cross-Domain-Policies", + "value": "none" + }, + { + "key": "X-Robots-Tag", + "value": "noindex, nofollow" + }, + { + "key": "Referrer-Policy", + "value": "no-referrer" + }, + { + "key": "X-Powered-By", + "value": "PHP/8.3.30" + }, + { + "key": "Content-Security-Policy", + "value": "default-src 'none';base-uri 'none';manifest-src 'self';frame-ancestors 'none'" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=4d450969b361c3bb0d2b6421bed997ff; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=4d450969b361c3bb0d2b6421bed997ff; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=4d450969b361c3bb0d2b6421bed997ff; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=4d450969b361c3bb0d2b6421bed997ff; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=4d450969b361c3bb0d2b6421bed997ff; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=a3643b6c7bdfb31758b7302bab2e7131; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=a3643b6c7bdfb31758b7302bab2e7131; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=a3643b6c7bdfb31758b7302bab2e7131; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=a3643b6c7bdfb31758b7302bab2e7131; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=a3643b6c7bdfb31758b7302bab2e7131; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "X-Request-Id", + "value": "pMSVpIafwdjCPPCKIWcC" + }, + { + "key": "Cache-Control", + "value": "no-cache, no-store, must-revalidate" + }, + { + "key": "Feature-Policy", + "value": "autoplay 'none';camera 'none';fullscreen 'none';geolocation 'none';microphone 'none';payment 'none'" + }, + { + "key": "X-User-Id", + "value": "admin" + }, + { + "key": "Content-Encoding", + "value": "gzip" + }, + { + "key": "Content-Length", + "value": "709" + }, + { + "key": "Keep-Alive", + "value": "timeout=5, max=86" + }, + { + "key": "Connection", + "value": "Keep-Alive" + }, + { + "key": "Content-Type", + "value": "application/json; charset=utf-8" + } + ], + "stream": { + "type": "Buffer", + "data": [ + 123, + 34, + 117, + 114, + 108, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 105, + 92, + 47, + 118, + 49, + 92, + 47, + 122, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 110, + 92, + 47, + 54, + 49, + 57, + 100, + 99, + 51, + 101, + 53, + 45, + 53, + 50, + 102, + 49, + 45, + 52, + 50, + 57, + 52, + 45, + 97, + 53, + 54, + 57, + 45, + 102, + 50, + 49, + 100, + 49, + 54, + 102, + 52, + 52, + 56, + 55, + 57, + 34, + 44, + 34, + 117, + 117, + 105, + 100, + 34, + 58, + 34, + 54, + 49, + 57, + 100, + 99, + 51, + 101, + 53, + 45, + 53, + 50, + 102, + 49, + 45, + 52, + 50, + 57, + 52, + 45, + 97, + 53, + 54, + 57, + 45, + 102, + 50, + 49, + 100, + 49, + 54, + 102, + 52, + 52, + 56, + 55, + 57, + 34, + 44, + 34, + 105, + 100, + 101, + 110, + 116, + 105, + 102, + 105, + 99, + 97, + 116, + 105, + 101, + 34, + 58, + 34, + 50, + 98, + 56, + 51, + 100, + 98, + 53, + 49, + 45, + 97, + 52, + 51, + 55, + 45, + 52, + 55, + 49, + 49, + 45, + 97, + 101, + 50, + 49, + 45, + 101, + 49, + 49, + 48, + 49, + 54, + 52, + 102, + 54, + 98, + 55, + 102, + 34, + 44, + 34, + 111, + 109, + 115, + 99, + 104, + 114, + 105, + 106, + 118, + 105, + 110, + 103, + 34, + 58, + 34, + 122, + 114, + 99, + 95, + 116, + 101, + 115, + 116, + 115, + 95, + 49, + 34, + 44, + 34, + 111, + 109, + 115, + 99, + 104, + 114, + 105, + 106, + 118, + 105, + 110, + 103, + 71, + 101, + 110, + 101, + 114, + 105, + 101, + 107, + 34, + 58, + 34, + 34, + 44, + 34, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 117, + 115, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 105, + 92, + 47, + 118, + 49, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 117, + 115, + 115, + 101, + 110, + 92, + 47, + 53, + 48, + 53, + 55, + 52, + 48, + 56, + 102, + 45, + 102, + 100, + 55, + 54, + 45, + 52, + 54, + 57, + 101, + 45, + 56, + 54, + 52, + 54, + 45, + 98, + 99, + 99, + 52, + 98, + 97, + 50, + 101, + 102, + 97, + 56, + 100, + 34, + 44, + 34, + 100, + 111, + 101, + 108, + 34, + 58, + 34, + 116, + 101, + 115, + 116, + 32, + 100, + 111, + 101, + 108, + 34, + 44, + 34, + 97, + 97, + 110, + 108, + 101, + 105, + 100, + 105, + 110, + 103, + 34, + 58, + 34, + 116, + 101, + 115, + 116, + 32, + 97, + 97, + 110, + 108, + 101, + 105, + 100, + 105, + 110, + 103, + 34, + 44, + 34, + 111, + 110, + 100, + 101, + 114, + 119, + 101, + 114, + 112, + 34, + 58, + 34, + 111, + 112, + 101, + 110, + 98, + 97, + 114, + 101, + 32, + 114, + 117, + 105, + 109, + 116, + 101, + 34, + 44, + 34, + 100, + 111, + 111, + 114, + 108, + 111, + 111, + 112, + 116, + 105, + 106, + 100, + 34, + 58, + 34, + 80, + 49, + 48, + 68, + 34, + 44, + 34, + 118, + 101, + 114, + 116, + 114, + 111, + 117, + 119, + 101, + 108, + 105, + 106, + 107, + 104, + 101, + 105, + 100, + 97, + 97, + 110, + 100, + 117, + 105, + 100, + 105, + 110, + 103, + 34, + 58, + 34, + 111, + 112, + 101, + 110, + 98, + 97, + 97, + 114, + 34, + 44, + 34, + 99, + 111, + 110, + 99, + 101, + 112, + 116, + 34, + 58, + 102, + 97, + 108, + 115, + 101, + 44, + 34, + 98, + 101, + 103, + 105, + 110, + 71, + 101, + 108, + 100, + 105, + 103, + 104, + 101, + 105, + 100, + 34, + 58, + 34, + 50, + 48, + 49, + 57, + 45, + 48, + 49, + 45, + 48, + 49, + 34, + 44, + 34, + 101, + 105, + 110, + 100, + 101, + 71, + 101, + 108, + 100, + 105, + 103, + 104, + 101, + 105, + 100, + 34, + 58, + 34, + 50, + 48, + 50, + 54, + 45, + 48, + 51, + 45, + 49, + 48, + 34, + 44, + 34, + 104, + 97, + 110, + 100, + 101, + 108, + 105, + 110, + 103, + 73, + 110, + 105, + 116, + 105, + 97, + 116, + 111, + 114, + 34, + 58, + 34, + 105, + 110, + 100, + 105, + 101, + 110, + 101, + 110, + 34, + 44, + 34, + 105, + 110, + 100, + 105, + 99, + 97, + 116, + 105, + 101, + 73, + 110, + 116, + 101, + 114, + 110, + 79, + 102, + 69, + 120, + 116, + 101, + 114, + 110, + 34, + 58, + 34, + 101, + 120, + 116, + 101, + 114, + 110, + 34, + 44, + 34, + 104, + 97, + 110, + 100, + 101, + 108, + 105, + 110, + 103, + 66, + 101, + 104, + 97, + 110, + 100, + 101, + 108, + 97, + 97, + 114, + 34, + 58, + 34, + 98, + 101, + 104, + 97, + 110, + 100, + 101, + 108, + 101, + 110, + 34, + 44, + 34, + 111, + 112, + 115, + 99, + 104, + 111, + 114, + 116, + 105, + 110, + 103, + 69, + 110, + 65, + 97, + 110, + 104, + 111, + 117, + 100, + 105, + 110, + 103, + 77, + 111, + 103, + 101, + 108, + 105, + 106, + 107, + 34, + 58, + 102, + 97, + 108, + 115, + 101, + 44, + 34, + 118, + 101, + 114, + 108, + 101, + 110, + 103, + 105, + 110, + 103, + 77, + 111, + 103, + 101, + 108, + 105, + 106, + 107, + 34, + 58, + 116, + 114, + 117, + 101, + 44, + 34, + 118, + 101, + 114, + 108, + 101, + 110, + 103, + 105, + 110, + 103, + 115, + 116, + 101, + 114, + 109, + 105, + 106, + 110, + 34, + 58, + 34, + 80, + 53, + 68, + 34, + 44, + 34, + 112, + 117, + 98, + 108, + 105, + 99, + 97, + 116, + 105, + 101, + 73, + 110, + 100, + 105, + 99, + 97, + 116, + 105, + 101, + 34, + 58, + 102, + 97, + 108, + 115, + 101, + 44, + 34, + 112, + 114, + 111, + 100, + 117, + 99, + 116, + 101, + 110, + 79, + 102, + 68, + 105, + 101, + 110, + 115, + 116, + 101, + 110, + 34, + 58, + 91, + 34, + 104, + 116, + 116, + 112, + 115, + 58, + 92, + 47, + 92, + 47, + 114, + 101, + 102, + 46, + 116, + 115, + 116, + 46, + 118, + 110, + 103, + 46, + 99, + 108, + 111, + 117, + 100, + 92, + 47, + 115, + 116, + 97, + 110, + 100, + 97, + 97, + 114, + 100, + 92, + 47, + 34, + 93, + 44, + 34, + 115, + 101, + 108, + 101, + 99, + 116, + 105, + 101, + 108, + 105, + 106, + 115, + 116, + 80, + 114, + 111, + 99, + 101, + 115, + 116, + 121, + 112, + 101, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 115, + 58, + 92, + 47, + 92, + 47, + 115, + 101, + 108, + 101, + 99, + 116, + 105, + 101, + 108, + 105, + 106, + 115, + 116, + 46, + 111, + 112, + 101, + 110, + 122, + 97, + 97, + 107, + 46, + 110, + 108, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 118, + 49, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 121, + 112, + 101, + 110, + 92, + 47, + 56, + 51, + 56, + 101, + 52, + 48, + 53, + 97, + 45, + 57, + 98, + 49, + 50, + 45, + 52, + 51, + 99, + 52, + 45, + 97, + 57, + 56, + 53, + 45, + 100, + 55, + 97, + 55, + 52, + 57, + 48, + 100, + 52, + 50, + 50, + 101, + 34, + 44, + 34, + 114, + 101, + 102, + 101, + 114, + 101, + 110, + 116, + 105, + 101, + 112, + 114, + 111, + 99, + 101, + 115, + 34, + 58, + 123, + 34, + 108, + 105, + 110, + 107, + 34, + 58, + 34, + 34, + 44, + 34, + 110, + 97, + 97, + 109, + 34, + 58, + 34, + 116, + 101, + 115, + 116, + 34, + 125, + 44, + 34, + 118, + 101, + 114, + 97, + 110, + 116, + 119, + 111, + 111, + 114, + 100, + 101, + 108, + 105, + 106, + 107, + 101, + 34, + 58, + 34, + 88, + 34, + 44, + 34, + 103, + 101, + 114, + 101, + 108, + 97, + 116, + 101, + 101, + 114, + 100, + 101, + 90, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 98, + 101, + 115, + 108, + 117, + 105, + 116, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 34, + 48, + 98, + 50, + 50, + 48, + 100, + 50, + 55, + 45, + 101, + 50, + 53, + 49, + 45, + 52, + 99, + 52, + 55, + 45, + 98, + 48, + 100, + 102, + 45, + 48, + 49, + 52, + 99, + 50, + 101, + 52, + 99, + 97, + 97, + 54, + 49, + 34, + 93, + 44, + 34, + 105, + 110, + 102, + 111, + 114, + 109, + 97, + 116, + 105, + 101, + 111, + 98, + 106, + 101, + 99, + 116, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 100, + 101, + 101, + 108, + 122, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 116, + 111, + 101, + 108, + 105, + 99, + 104, + 116, + 105, + 110, + 103, + 34, + 58, + 34, + 34, + 44, + 34, + 118, + 101, + 114, + 115, + 105, + 101, + 100, + 97, + 116, + 117, + 109, + 34, + 58, + 34, + 50, + 48, + 49, + 57, + 45, + 48, + 49, + 45, + 48, + 49, + 34, + 125 + ] + }, + "cookie": [], + "responseTime": 162, + "responseSize": 1306 + }, + "id": "4b74da15-d55f-48eb-b75d-d28486f1bf51" + }, + { + "cursor": { + "ref": "c2803859-2c54-4367-85f0-6e97ad3e278c", + "length": 313, + "cycles": 1, + "position": 16, + "iteration": 0, + "httpRequestId": "bf06c810-cf3a-4d8c-8aea-b7dcc9f56dce" + }, + "item": { + "id": "cd51a4de-928f-4596-8c8d-0414161ba4f0", + "name": "(DRC) Create EnkelvoudigInformatieObject", + "request": { + "url": { + "path": [ + "enkelvoudiginformatieobjecten" + ], + "host": [ + "{{drc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n \"bronorganisatie\": \"000000000\",\n \"creatiedatum\": \"2019-01-01\",\n \"titel\": \"testobject\",\n \"auteur\": \"testauteur\",\n \"taal\": \"eng\",\n \"inhoud\": \"{{object_inhoud}}\",\n \"informatieobjecttype\": \"{{informatieobjecttype_url}}\",\n \"indicatieGebruiksrecht\": false,\n \"status\": \"gearchiveerd\",\n \"bestandsomvang\": 6\n}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "56ba8e9a-5d6f-4fec-b593-59a9d575105c", + "type": "text/javascript", + "packages": {}, + "exec": [ + "pm.environment.set(\"informatieobject_url\", pm.response.json().url);" + ], + "_lastExecutionId": "92bdc038-0cd4-4aed-acde-d9084042f6d6" + } + }, + { + "listen": "prerequest", + "script": { + "id": "71a90346-3edc-4ae7-908d-ccd18736e59f", + "type": "text/javascript", + "packages": {}, + "exec": [ + "pm.environment.set(\"object_inhoud\", btoa(\"string\"))" + ], + "_lastExecutionId": "2ba1eb8f-e545-4c85-aa20-468d8ae25456" + } + } + ] + }, + "request": { + "url": { + "protocol": "http", + "port": "8080", + "path": [ + "index.php", + "apps", + "procest", + "api", + "zgw", + "documenten", + "v1", + "enkelvoudiginformatieobjecten" + ], + "host": [ + "localhost" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Authorization", + "value": "Bearer eyJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJwcm9jZXN0LWFkbWluIiwiY2xpZW50X2lkIjoicHJvY2VzdC1hZG1pbiIsImlhdCI6IjE3NzMxNDUxNDIiLCJ1c2VyX2lkIjoicHJvY2VzdC1hZG1pbiIsInVzZXJfcmVwcmVzZW50YXRpb24iOiIifQ.L_OGVMmL4nvF3FQiQCPHfhjnLQOTl02Fx7XqYWTMyLM", + "system": true + }, + { + "key": "User-Agent", + "value": "PostmanRuntime/7.39.1", + "system": true + }, + { + "key": "Accept", + "value": "*/*", + "system": true + }, + { + "key": "Cache-Control", + "value": "no-cache", + "system": true + }, + { + "key": "Postman-Token", + "value": "070b9e83-299a-4535-92ca-ffc76c4174a5", + "system": true + }, + { + "key": "Host", + "value": "localhost:8080", + "system": true + }, + { + "key": "Accept-Encoding", + "value": "gzip, deflate, br", + "system": true + }, + { + "key": "Connection", + "value": "keep-alive", + "system": true + }, + { + "key": "Content-Length", + "value": "423", + "system": true + }, + { + "key": "Cookie", + "value": "ocvp3112b4wg=a3643b6c7bdfb31758b7302bab2e7131; oc_sessionPassphrase=LBNdKxRzA0iqoULIruNxDDh2BK3O%2BrCIU8aUmiUcOFvy5Xw1YfjwQNlmBW2IkGwJYtxXh9%2BwDN6vYuGNX07tXzkBtjQJUWTGdzf8AIOUIVxVx5DfyWAQZ7nmYmQv6XSE; nc_sameSiteCookielax=true; nc_sameSiteCookiestrict=true", + "system": true + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n \"bronorganisatie\": \"000000000\",\n \"creatiedatum\": \"2019-01-01\",\n \"titel\": \"testobject\",\n \"auteur\": \"testauteur\",\n \"taal\": \"eng\",\n \"inhoud\": \"c3RyaW5n\",\n \"informatieobjecttype\": \"http://localhost:8080/index.php/apps/procest/api/zgw/catalogi/v1/informatieobjecttypen/6cab7420-6cda-49c9-8313-7464947a74a3\",\n \"indicatieGebruiksrecht\": false,\n \"status\": \"gearchiveerd\",\n \"bestandsomvang\": 6\n}" + }, + "auth": { + "type": "jwt", + "jwt": [ + { + "type": "string", + "value": "{\r\n \"iss\": \"procest-admin\",\r\n \"client_id\": \"procest-admin\",\r\n \"iat\": \"1773145142\",\r\n \"user_id\": \"procest-admin\",\r\n \"user_representation\": \"\"\r\n}", + "key": "payload" + }, + { + "type": "string", + "value": "procest-admin-secret-key-for-testing", + "key": "secret" + }, + { + "type": "string", + "value": "HS256", + "key": "algorithm" + }, + { + "type": "boolean", + "value": false, + "key": "isSecretBase64Encoded" + }, + { + "type": "string", + "value": "header", + "key": "addTokenTo" + }, + { + "type": "string", + "value": "Bearer", + "key": "headerPrefix" + }, + { + "type": "string", + "value": "token", + "key": "queryParamKey" + }, + { + "type": "string", + "value": "{}", + "key": "header" + } + ] + } + }, + "response": { + "id": "ad26b57b-f41f-4cf9-8e25-65f38004841e", + "status": "Created", + "code": 201, + "header": [ + { + "key": "Date", + "value": "Tue, 10 Mar 2026 12:19:02 GMT" + }, + { + "key": "Server", + "value": "Apache/2.4.66 (Debian)" + }, + { + "key": "X-Content-Type-Options", + "value": "nosniff" + }, + { + "key": "X-Frame-Options", + "value": "SAMEORIGIN" + }, + { + "key": "X-Permitted-Cross-Domain-Policies", + "value": "none" + }, + { + "key": "X-Robots-Tag", + "value": "noindex, nofollow" + }, + { + "key": "Referrer-Policy", + "value": "no-referrer" + }, + { + "key": "X-Powered-By", + "value": "PHP/8.3.30" + }, + { + "key": "Content-Security-Policy", + "value": "default-src 'none';base-uri 'none';manifest-src 'self';frame-ancestors 'none'" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=a3643b6c7bdfb31758b7302bab2e7131; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=a3643b6c7bdfb31758b7302bab2e7131; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=a3643b6c7bdfb31758b7302bab2e7131; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=a3643b6c7bdfb31758b7302bab2e7131; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=a3643b6c7bdfb31758b7302bab2e7131; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=76cdb8ced719d043f5e18647d50ebea2; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=76cdb8ced719d043f5e18647d50ebea2; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=76cdb8ced719d043f5e18647d50ebea2; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=76cdb8ced719d043f5e18647d50ebea2; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=76cdb8ced719d043f5e18647d50ebea2; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "X-Request-Id", + "value": "EoRkwAGprvj83TUAP44Q" + }, + { + "key": "Cache-Control", + "value": "no-cache, no-store, must-revalidate" + }, + { + "key": "Feature-Policy", + "value": "autoplay 'none';camera 'none';fullscreen 'none';geolocation 'none';microphone 'none';payment 'none'" + }, + { + "key": "X-User-Id", + "value": "admin" + }, + { + "key": "Content-Length", + "value": "916" + }, + { + "key": "Keep-Alive", + "value": "timeout=5, max=85" + }, + { + "key": "Connection", + "value": "Keep-Alive" + }, + { + "key": "Content-Type", + "value": "application/json; charset=utf-8" + } + ], + "stream": { + "type": "Buffer", + "data": [ + 123, + 34, + 117, + 114, + 108, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 100, + 111, + 99, + 117, + 109, + 101, + 110, + 116, + 101, + 110, + 92, + 47, + 118, + 49, + 92, + 47, + 101, + 110, + 107, + 101, + 108, + 118, + 111, + 117, + 100, + 105, + 103, + 105, + 110, + 102, + 111, + 114, + 109, + 97, + 116, + 105, + 101, + 111, + 98, + 106, + 101, + 99, + 116, + 101, + 110, + 92, + 47, + 49, + 56, + 57, + 100, + 101, + 53, + 53, + 97, + 45, + 57, + 102, + 50, + 50, + 45, + 52, + 102, + 97, + 55, + 45, + 97, + 50, + 51, + 53, + 45, + 102, + 53, + 54, + 97, + 48, + 54, + 102, + 51, + 51, + 54, + 57, + 51, + 34, + 44, + 34, + 117, + 117, + 105, + 100, + 34, + 58, + 34, + 49, + 56, + 57, + 100, + 101, + 53, + 53, + 97, + 45, + 57, + 102, + 50, + 50, + 45, + 52, + 102, + 97, + 55, + 45, + 97, + 50, + 51, + 53, + 45, + 102, + 53, + 54, + 97, + 48, + 54, + 102, + 51, + 51, + 54, + 57, + 51, + 34, + 44, + 34, + 105, + 100, + 101, + 110, + 116, + 105, + 102, + 105, + 99, + 97, + 116, + 105, + 101, + 34, + 58, + 34, + 68, + 79, + 67, + 85, + 77, + 69, + 78, + 84, + 45, + 84, + 66, + 79, + 78, + 74, + 81, + 45, + 67, + 65, + 66, + 51, + 54, + 69, + 34, + 44, + 34, + 98, + 114, + 111, + 110, + 111, + 114, + 103, + 97, + 110, + 105, + 115, + 97, + 116, + 105, + 101, + 34, + 58, + 34, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 34, + 44, + 34, + 99, + 114, + 101, + 97, + 116, + 105, + 101, + 100, + 97, + 116, + 117, + 109, + 34, + 58, + 34, + 50, + 48, + 49, + 57, + 45, + 48, + 49, + 45, + 48, + 49, + 34, + 44, + 34, + 116, + 105, + 116, + 101, + 108, + 34, + 58, + 34, + 116, + 101, + 115, + 116, + 111, + 98, + 106, + 101, + 99, + 116, + 34, + 44, + 34, + 118, + 101, + 114, + 116, + 114, + 111, + 117, + 119, + 101, + 108, + 105, + 106, + 107, + 104, + 101, + 105, + 100, + 97, + 97, + 110, + 100, + 117, + 105, + 100, + 105, + 110, + 103, + 34, + 58, + 34, + 111, + 112, + 101, + 110, + 98, + 97, + 97, + 114, + 34, + 44, + 34, + 97, + 117, + 116, + 101, + 117, + 114, + 34, + 58, + 34, + 116, + 101, + 115, + 116, + 97, + 117, + 116, + 101, + 117, + 114, + 34, + 44, + 34, + 115, + 116, + 97, + 116, + 117, + 115, + 34, + 58, + 34, + 103, + 101, + 97, + 114, + 99, + 104, + 105, + 118, + 101, + 101, + 114, + 100, + 34, + 44, + 34, + 102, + 111, + 114, + 109, + 97, + 97, + 116, + 34, + 58, + 34, + 34, + 44, + 34, + 116, + 97, + 97, + 108, + 34, + 58, + 34, + 101, + 110, + 103, + 34, + 44, + 34, + 98, + 101, + 115, + 116, + 97, + 110, + 100, + 115, + 110, + 97, + 97, + 109, + 34, + 58, + 34, + 34, + 44, + 34, + 98, + 101, + 115, + 116, + 97, + 110, + 100, + 115, + 111, + 109, + 118, + 97, + 110, + 103, + 34, + 58, + 54, + 44, + 34, + 105, + 110, + 104, + 111, + 117, + 100, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 100, + 111, + 99, + 117, + 109, + 101, + 110, + 116, + 101, + 110, + 92, + 47, + 118, + 49, + 92, + 47, + 101, + 110, + 107, + 101, + 108, + 118, + 111, + 117, + 100, + 105, + 103, + 105, + 110, + 102, + 111, + 114, + 109, + 97, + 116, + 105, + 101, + 111, + 98, + 106, + 101, + 99, + 116, + 101, + 110, + 92, + 47, + 49, + 56, + 57, + 100, + 101, + 53, + 53, + 97, + 45, + 57, + 102, + 50, + 50, + 45, + 52, + 102, + 97, + 55, + 45, + 97, + 50, + 51, + 53, + 45, + 102, + 53, + 54, + 97, + 48, + 54, + 102, + 51, + 51, + 54, + 57, + 51, + 92, + 47, + 100, + 111, + 119, + 110, + 108, + 111, + 97, + 100, + 34, + 44, + 34, + 108, + 105, + 110, + 107, + 34, + 58, + 34, + 34, + 44, + 34, + 98, + 101, + 115, + 99, + 104, + 114, + 105, + 106, + 118, + 105, + 110, + 103, + 34, + 58, + 34, + 34, + 44, + 34, + 105, + 110, + 102, + 111, + 114, + 109, + 97, + 116, + 105, + 101, + 111, + 98, + 106, + 101, + 99, + 116, + 116, + 121, + 112, + 101, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 105, + 92, + 47, + 118, + 49, + 92, + 47, + 105, + 110, + 102, + 111, + 114, + 109, + 97, + 116, + 105, + 101, + 111, + 98, + 106, + 101, + 99, + 116, + 116, + 121, + 112, + 101, + 110, + 92, + 47, + 54, + 99, + 97, + 98, + 55, + 52, + 50, + 48, + 45, + 54, + 99, + 100, + 97, + 45, + 52, + 57, + 99, + 57, + 45, + 56, + 51, + 49, + 51, + 45, + 55, + 52, + 54, + 52, + 57, + 52, + 55, + 97, + 55, + 52, + 97, + 51, + 34, + 44, + 34, + 108, + 111, + 99, + 107, + 101, + 100, + 34, + 58, + 102, + 97, + 108, + 115, + 101, + 44, + 34, + 114, + 101, + 103, + 105, + 115, + 116, + 114, + 97, + 116, + 105, + 101, + 100, + 97, + 116, + 117, + 109, + 34, + 58, + 34, + 50, + 48, + 50, + 54, + 45, + 48, + 51, + 45, + 49, + 48, + 84, + 49, + 50, + 58, + 49, + 57, + 58, + 48, + 50, + 43, + 48, + 48, + 58, + 48, + 48, + 34, + 44, + 34, + 105, + 110, + 100, + 105, + 99, + 97, + 116, + 105, + 101, + 71, + 101, + 98, + 114, + 117, + 105, + 107, + 115, + 114, + 101, + 99, + 104, + 116, + 34, + 58, + 110, + 117, + 108, + 108, + 125 + ] + }, + "cookie": [], + "responseTime": 575, + "responseSize": 916 + }, + "id": "cd51a4de-928f-4596-8c8d-0414161ba4f0" + }, + { + "cursor": { + "ref": "86ca4ebc-a3ea-4e57-b05d-9617196e349a", + "length": 313, + "cycles": 1, + "position": 17, + "iteration": 0, + "httpRequestId": "1e2a9589-92cf-4c4d-abe9-9067249628df" + }, + "item": { + "id": "3eeacb2f-eb37-402a-8089-2ac30120634c", + "name": "Temp (DRC) Create EnkelvoudigInformatieObject with extra fields", + "request": { + "url": { + "path": [ + "enkelvoudiginformatieobjecten" + ], + "host": [ + "{{drc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n\t\"bronorganisatie\": \"000000000\",\n\t\"creatiedatum\": \"2019-01-01\",\n\t\"titel\": \"testobject\",\n\t\"auteur\": \"testauteur\",\n \"formaat\": \"application/pdf\",\n \"taal\": \"nld\",\n \"bestandsnaam\": \"test 3.pdf\",\n \"status\": \"gearchiveerd\",\n\t\"inhoud\": \"{{object_inhoud}}\",\n\t\"informatieobjecttype\": \"{{informatieobjecttype_url}}\",\n\t\"bestandsomvang\": 6,\n \"indicatieGebruiksrecht\": false\n}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "f3bc4173-02c5-4e2f-bc55-1b2a711e4469", + "type": "text/javascript", + "packages": {}, + "exec": [ + "pm.environment.set(\"informatieobject_url\", pm.response.json().url);" + ], + "_lastExecutionId": "a06ada2b-5956-4ea1-9e08-d0201ab8e1ed" + } + }, + { + "listen": "prerequest", + "script": { + "id": "4aeb43c3-30e2-4a67-bab2-23f855ea9d76", + "type": "text/javascript", + "packages": {}, + "exec": [ + "pm.environment.set(\"object_inhoud\", btoa(\"string\"))" + ], + "_lastExecutionId": "dd122873-1e03-4a9c-82a9-8df6cbd200f4" + } + } + ] + }, + "request": { + "url": { + "protocol": "http", + "port": "8080", + "path": [ + "index.php", + "apps", + "procest", + "api", + "zgw", + "documenten", + "v1", + "enkelvoudiginformatieobjecten" + ], + "host": [ + "localhost" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Authorization", + "value": "Bearer eyJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJwcm9jZXN0LWFkbWluIiwiY2xpZW50X2lkIjoicHJvY2VzdC1hZG1pbiIsImlhdCI6IjE3NzMxNDUxNDMiLCJ1c2VyX2lkIjoicHJvY2VzdC1hZG1pbiIsInVzZXJfcmVwcmVzZW50YXRpb24iOiIifQ.20hEZFNjnjNj2c5k58_rhcufk1RniJGdljsNdhJCQx0", + "system": true + }, + { + "key": "User-Agent", + "value": "PostmanRuntime/7.39.1", + "system": true + }, + { + "key": "Accept", + "value": "*/*", + "system": true + }, + { + "key": "Cache-Control", + "value": "no-cache", + "system": true + }, + { + "key": "Postman-Token", + "value": "3e956ecd-f193-4381-b33f-2eb12127721d", + "system": true + }, + { + "key": "Host", + "value": "localhost:8080", + "system": true + }, + { + "key": "Accept-Encoding", + "value": "gzip, deflate, br", + "system": true + }, + { + "key": "Connection", + "value": "keep-alive", + "system": true + }, + { + "key": "Content-Length", + "value": "470", + "system": true + }, + { + "key": "Cookie", + "value": "ocvp3112b4wg=76cdb8ced719d043f5e18647d50ebea2; oc_sessionPassphrase=LBNdKxRzA0iqoULIruNxDDh2BK3O%2BrCIU8aUmiUcOFvy5Xw1YfjwQNlmBW2IkGwJYtxXh9%2BwDN6vYuGNX07tXzkBtjQJUWTGdzf8AIOUIVxVx5DfyWAQZ7nmYmQv6XSE; nc_sameSiteCookielax=true; nc_sameSiteCookiestrict=true", + "system": true + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n\t\"bronorganisatie\": \"000000000\",\n\t\"creatiedatum\": \"2019-01-01\",\n\t\"titel\": \"testobject\",\n\t\"auteur\": \"testauteur\",\n \"formaat\": \"application/pdf\",\n \"taal\": \"nld\",\n \"bestandsnaam\": \"test 3.pdf\",\n \"status\": \"gearchiveerd\",\n\t\"inhoud\": \"c3RyaW5n\",\n\t\"informatieobjecttype\": \"http://localhost:8080/index.php/apps/procest/api/zgw/catalogi/v1/informatieobjecttypen/6cab7420-6cda-49c9-8313-7464947a74a3\",\n\t\"bestandsomvang\": 6,\n \"indicatieGebruiksrecht\": false\n}" + }, + "auth": { + "type": "jwt", + "jwt": [ + { + "type": "string", + "value": "{\r\n \"iss\": \"procest-admin\",\r\n \"client_id\": \"procest-admin\",\r\n \"iat\": \"1773145143\",\r\n \"user_id\": \"procest-admin\",\r\n \"user_representation\": \"\"\r\n}", + "key": "payload" + }, + { + "type": "string", + "value": "procest-admin-secret-key-for-testing", + "key": "secret" + }, + { + "type": "string", + "value": "HS256", + "key": "algorithm" + }, + { + "type": "boolean", + "value": false, + "key": "isSecretBase64Encoded" + }, + { + "type": "string", + "value": "header", + "key": "addTokenTo" + }, + { + "type": "string", + "value": "Bearer", + "key": "headerPrefix" + }, + { + "type": "string", + "value": "token", + "key": "queryParamKey" + }, + { + "type": "string", + "value": "{}", + "key": "header" + } + ] + } + }, + "response": { + "id": "5c4491fc-faec-4e20-8ec8-580fda8bd43d", + "status": "Created", + "code": 201, + "header": [ + { + "key": "Date", + "value": "Tue, 10 Mar 2026 12:19:02 GMT" + }, + { + "key": "Server", + "value": "Apache/2.4.66 (Debian)" + }, + { + "key": "X-Content-Type-Options", + "value": "nosniff" + }, + { + "key": "X-Frame-Options", + "value": "SAMEORIGIN" + }, + { + "key": "X-Permitted-Cross-Domain-Policies", + "value": "none" + }, + { + "key": "X-Robots-Tag", + "value": "noindex, nofollow" + }, + { + "key": "Referrer-Policy", + "value": "no-referrer" + }, + { + "key": "X-Powered-By", + "value": "PHP/8.3.30" + }, + { + "key": "Content-Security-Policy", + "value": "default-src 'none';base-uri 'none';manifest-src 'self';frame-ancestors 'none'" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=76cdb8ced719d043f5e18647d50ebea2; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=76cdb8ced719d043f5e18647d50ebea2; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=76cdb8ced719d043f5e18647d50ebea2; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=76cdb8ced719d043f5e18647d50ebea2; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=76cdb8ced719d043f5e18647d50ebea2; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=7cc4c6e58652654f9fdadddaedf3f6fd; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=7cc4c6e58652654f9fdadddaedf3f6fd; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=7cc4c6e58652654f9fdadddaedf3f6fd; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=7cc4c6e58652654f9fdadddaedf3f6fd; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=7cc4c6e58652654f9fdadddaedf3f6fd; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "X-Request-Id", + "value": "ldtw4Eg89e5CqyvLcLb1" + }, + { + "key": "Cache-Control", + "value": "no-cache, no-store, must-revalidate" + }, + { + "key": "Feature-Policy", + "value": "autoplay 'none';camera 'none';fullscreen 'none';geolocation 'none';microphone 'none';payment 'none'" + }, + { + "key": "X-User-Id", + "value": "admin" + }, + { + "key": "Content-Length", + "value": "942" + }, + { + "key": "Keep-Alive", + "value": "timeout=5, max=84" + }, + { + "key": "Connection", + "value": "Keep-Alive" + }, + { + "key": "Content-Type", + "value": "application/json; charset=utf-8" + } + ], + "stream": { + "type": "Buffer", + "data": [ + 123, + 34, + 117, + 114, + 108, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 100, + 111, + 99, + 117, + 109, + 101, + 110, + 116, + 101, + 110, + 92, + 47, + 118, + 49, + 92, + 47, + 101, + 110, + 107, + 101, + 108, + 118, + 111, + 117, + 100, + 105, + 103, + 105, + 110, + 102, + 111, + 114, + 109, + 97, + 116, + 105, + 101, + 111, + 98, + 106, + 101, + 99, + 116, + 101, + 110, + 92, + 47, + 102, + 99, + 102, + 98, + 98, + 56, + 101, + 100, + 45, + 56, + 49, + 51, + 52, + 45, + 52, + 56, + 98, + 48, + 45, + 56, + 49, + 56, + 53, + 45, + 101, + 54, + 97, + 51, + 97, + 100, + 49, + 57, + 51, + 98, + 51, + 97, + 34, + 44, + 34, + 117, + 117, + 105, + 100, + 34, + 58, + 34, + 102, + 99, + 102, + 98, + 98, + 56, + 101, + 100, + 45, + 56, + 49, + 51, + 52, + 45, + 52, + 56, + 98, + 48, + 45, + 56, + 49, + 56, + 53, + 45, + 101, + 54, + 97, + 51, + 97, + 100, + 49, + 57, + 51, + 98, + 51, + 97, + 34, + 44, + 34, + 105, + 100, + 101, + 110, + 116, + 105, + 102, + 105, + 99, + 97, + 116, + 105, + 101, + 34, + 58, + 34, + 68, + 79, + 67, + 85, + 77, + 69, + 78, + 84, + 45, + 84, + 66, + 79, + 78, + 74, + 81, + 45, + 55, + 67, + 50, + 50, + 52, + 49, + 34, + 44, + 34, + 98, + 114, + 111, + 110, + 111, + 114, + 103, + 97, + 110, + 105, + 115, + 97, + 116, + 105, + 101, + 34, + 58, + 34, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 34, + 44, + 34, + 99, + 114, + 101, + 97, + 116, + 105, + 101, + 100, + 97, + 116, + 117, + 109, + 34, + 58, + 34, + 50, + 48, + 49, + 57, + 45, + 48, + 49, + 45, + 48, + 49, + 34, + 44, + 34, + 116, + 105, + 116, + 101, + 108, + 34, + 58, + 34, + 116, + 101, + 115, + 116, + 111, + 98, + 106, + 101, + 99, + 116, + 34, + 44, + 34, + 118, + 101, + 114, + 116, + 114, + 111, + 117, + 119, + 101, + 108, + 105, + 106, + 107, + 104, + 101, + 105, + 100, + 97, + 97, + 110, + 100, + 117, + 105, + 100, + 105, + 110, + 103, + 34, + 58, + 34, + 111, + 112, + 101, + 110, + 98, + 97, + 97, + 114, + 34, + 44, + 34, + 97, + 117, + 116, + 101, + 117, + 114, + 34, + 58, + 34, + 116, + 101, + 115, + 116, + 97, + 117, + 116, + 101, + 117, + 114, + 34, + 44, + 34, + 115, + 116, + 97, + 116, + 117, + 115, + 34, + 58, + 34, + 103, + 101, + 97, + 114, + 99, + 104, + 105, + 118, + 101, + 101, + 114, + 100, + 34, + 44, + 34, + 102, + 111, + 114, + 109, + 97, + 97, + 116, + 34, + 58, + 34, + 97, + 112, + 112, + 108, + 105, + 99, + 97, + 116, + 105, + 111, + 110, + 92, + 47, + 112, + 100, + 102, + 34, + 44, + 34, + 116, + 97, + 97, + 108, + 34, + 58, + 34, + 110, + 108, + 100, + 34, + 44, + 34, + 98, + 101, + 115, + 116, + 97, + 110, + 100, + 115, + 110, + 97, + 97, + 109, + 34, + 58, + 34, + 116, + 101, + 115, + 116, + 32, + 51, + 46, + 112, + 100, + 102, + 34, + 44, + 34, + 98, + 101, + 115, + 116, + 97, + 110, + 100, + 115, + 111, + 109, + 118, + 97, + 110, + 103, + 34, + 58, + 54, + 44, + 34, + 105, + 110, + 104, + 111, + 117, + 100, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 100, + 111, + 99, + 117, + 109, + 101, + 110, + 116, + 101, + 110, + 92, + 47, + 118, + 49, + 92, + 47, + 101, + 110, + 107, + 101, + 108, + 118, + 111, + 117, + 100, + 105, + 103, + 105, + 110, + 102, + 111, + 114, + 109, + 97, + 116, + 105, + 101, + 111, + 98, + 106, + 101, + 99, + 116, + 101, + 110, + 92, + 47, + 102, + 99, + 102, + 98, + 98, + 56, + 101, + 100, + 45, + 56, + 49, + 51, + 52, + 45, + 52, + 56, + 98, + 48, + 45, + 56, + 49, + 56, + 53, + 45, + 101, + 54, + 97, + 51, + 97, + 100, + 49, + 57, + 51, + 98, + 51, + 97, + 92, + 47, + 100, + 111, + 119, + 110, + 108, + 111, + 97, + 100, + 34, + 44, + 34, + 108, + 105, + 110, + 107, + 34, + 58, + 34, + 34, + 44, + 34, + 98, + 101, + 115, + 99, + 104, + 114, + 105, + 106, + 118, + 105, + 110, + 103, + 34, + 58, + 34, + 34, + 44, + 34, + 105, + 110, + 102, + 111, + 114, + 109, + 97, + 116, + 105, + 101, + 111, + 98, + 106, + 101, + 99, + 116, + 116, + 121, + 112, + 101, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 105, + 92, + 47, + 118, + 49, + 92, + 47, + 105, + 110, + 102, + 111, + 114, + 109, + 97, + 116, + 105, + 101, + 111, + 98, + 106, + 101, + 99, + 116, + 116, + 121, + 112, + 101, + 110, + 92, + 47, + 54, + 99, + 97, + 98, + 55, + 52, + 50, + 48, + 45, + 54, + 99, + 100, + 97, + 45, + 52, + 57, + 99, + 57, + 45, + 56, + 51, + 49, + 51, + 45, + 55, + 52, + 54, + 52, + 57, + 52, + 55, + 97, + 55, + 52, + 97, + 51, + 34, + 44, + 34, + 108, + 111, + 99, + 107, + 101, + 100, + 34, + 58, + 102, + 97, + 108, + 115, + 101, + 44, + 34, + 114, + 101, + 103, + 105, + 115, + 116, + 114, + 97, + 116, + 105, + 101, + 100, + 97, + 116, + 117, + 109, + 34, + 58, + 34, + 50, + 48, + 50, + 54, + 45, + 48, + 51, + 45, + 49, + 48, + 84, + 49, + 50, + 58, + 49, + 57, + 58, + 48, + 50, + 43, + 48, + 48, + 58, + 48, + 48, + 34, + 44, + 34, + 105, + 110, + 100, + 105, + 99, + 97, + 116, + 105, + 101, + 71, + 101, + 98, + 114, + 117, + 105, + 107, + 115, + 114, + 101, + 99, + 104, + 116, + 34, + 58, + 110, + 117, + 108, + 108, + 125 + ] + }, + "cookie": [], + "responseTime": 432, + "responseSize": 942 + }, + "id": "3eeacb2f-eb37-402a-8089-2ac30120634c" + }, + { + "cursor": { + "ref": "56316a2a-d174-404b-9b5a-a83a4611003c", + "length": 313, + "cycles": 1, + "position": 18, + "iteration": 0, + "httpRequestId": "cc4c14a7-e9ce-4c33-8a8e-f79d63b53ec9" + }, + "item": { + "id": "ed478db3-b865-4cd7-9c3f-3609b2fac4d3", + "name": "Add Gebruiksrechten to EnkelvoudigInformatieObject", + "request": { + "url": { + "path": [ + "gebruiksrechten" + ], + "host": [ + "{{drc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n\t\"informatieobject\": \"{{informatieobject_url}}\",\n\t\"startdatum\": \"2019-01-01T12:00:00\",\n\t\"omschrijvingVoorwaarden\": \"test\"\n}" + } + }, + "response": [], + "event": [] + }, + "request": { + "url": { + "protocol": "http", + "port": "8080", + "path": [ + "index.php", + "apps", + "procest", + "api", + "zgw", + "documenten", + "v1", + "gebruiksrechten" + ], + "host": [ + "localhost" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Authorization", + "value": "Bearer eyJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJwcm9jZXN0LWFkbWluIiwiY2xpZW50X2lkIjoicHJvY2VzdC1hZG1pbiIsImlhdCI6IjE3NzMxNDUxNDMiLCJ1c2VyX2lkIjoicHJvY2VzdC1hZG1pbiIsInVzZXJfcmVwcmVzZW50YXRpb24iOiIifQ.20hEZFNjnjNj2c5k58_rhcufk1RniJGdljsNdhJCQx0", + "system": true + }, + { + "key": "User-Agent", + "value": "PostmanRuntime/7.39.1", + "system": true + }, + { + "key": "Accept", + "value": "*/*", + "system": true + }, + { + "key": "Cache-Control", + "value": "no-cache", + "system": true + }, + { + "key": "Postman-Token", + "value": "4c85c5aa-985a-4b2c-83e6-54bd08f72970", + "system": true + }, + { + "key": "Host", + "value": "localhost:8080", + "system": true + }, + { + "key": "Accept-Encoding", + "value": "gzip, deflate, br", + "system": true + }, + { + "key": "Connection", + "value": "keep-alive", + "system": true + }, + { + "key": "Content-Length", + "value": "234", + "system": true + }, + { + "key": "Cookie", + "value": "ocvp3112b4wg=7cc4c6e58652654f9fdadddaedf3f6fd; oc_sessionPassphrase=LBNdKxRzA0iqoULIruNxDDh2BK3O%2BrCIU8aUmiUcOFvy5Xw1YfjwQNlmBW2IkGwJYtxXh9%2BwDN6vYuGNX07tXzkBtjQJUWTGdzf8AIOUIVxVx5DfyWAQZ7nmYmQv6XSE; nc_sameSiteCookielax=true; nc_sameSiteCookiestrict=true", + "system": true + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n\t\"informatieobject\": \"http://localhost:8080/index.php/apps/procest/api/zgw/documenten/v1/enkelvoudiginformatieobjecten/fcfbb8ed-8134-48b0-8185-e6a3ad193b3a\",\n\t\"startdatum\": \"2019-01-01T12:00:00\",\n\t\"omschrijvingVoorwaarden\": \"test\"\n}" + }, + "auth": { + "type": "jwt", + "jwt": [ + { + "type": "string", + "value": "{\r\n \"iss\": \"procest-admin\",\r\n \"client_id\": \"procest-admin\",\r\n \"iat\": \"1773145143\",\r\n \"user_id\": \"procest-admin\",\r\n \"user_representation\": \"\"\r\n}", + "key": "payload" + }, + { + "type": "string", + "value": "procest-admin-secret-key-for-testing", + "key": "secret" + }, + { + "type": "string", + "value": "HS256", + "key": "algorithm" + }, + { + "type": "boolean", + "value": false, + "key": "isSecretBase64Encoded" + }, + { + "type": "string", + "value": "header", + "key": "addTokenTo" + }, + { + "type": "string", + "value": "Bearer", + "key": "headerPrefix" + }, + { + "type": "string", + "value": "token", + "key": "queryParamKey" + }, + { + "type": "string", + "value": "{}", + "key": "header" + } + ] + } + }, + "response": { + "id": "f9496634-1c96-442d-90e8-b3d2d313c034", + "status": "Created", + "code": 201, + "header": [ + { + "key": "Date", + "value": "Tue, 10 Mar 2026 12:19:03 GMT" + }, + { + "key": "Server", + "value": "Apache/2.4.66 (Debian)" + }, + { + "key": "X-Content-Type-Options", + "value": "nosniff" + }, + { + "key": "X-Frame-Options", + "value": "SAMEORIGIN" + }, + { + "key": "X-Permitted-Cross-Domain-Policies", + "value": "none" + }, + { + "key": "X-Robots-Tag", + "value": "noindex, nofollow" + }, + { + "key": "Referrer-Policy", + "value": "no-referrer" + }, + { + "key": "X-Powered-By", + "value": "PHP/8.3.30" + }, + { + "key": "Content-Security-Policy", + "value": "default-src 'none';base-uri 'none';manifest-src 'self';frame-ancestors 'none'" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=7cc4c6e58652654f9fdadddaedf3f6fd; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=7cc4c6e58652654f9fdadddaedf3f6fd; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=7cc4c6e58652654f9fdadddaedf3f6fd; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=7cc4c6e58652654f9fdadddaedf3f6fd; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=7cc4c6e58652654f9fdadddaedf3f6fd; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=bf4cd099519c1413d4483bfb3ef67497; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=bf4cd099519c1413d4483bfb3ef67497; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=bf4cd099519c1413d4483bfb3ef67497; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=bf4cd099519c1413d4483bfb3ef67497; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=bf4cd099519c1413d4483bfb3ef67497; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "X-Request-Id", + "value": "PKddfzBrSxKIegcaJ3HE" + }, + { + "key": "Cache-Control", + "value": "no-cache, no-store, must-revalidate" + }, + { + "key": "Feature-Policy", + "value": "autoplay 'none';camera 'none';fullscreen 'none';geolocation 'none';microphone 'none';payment 'none'" + }, + { + "key": "X-User-Id", + "value": "admin" + }, + { + "key": "Content-Length", + "value": "435" + }, + { + "key": "Keep-Alive", + "value": "timeout=5, max=83" + }, + { + "key": "Connection", + "value": "Keep-Alive" + }, + { + "key": "Content-Type", + "value": "application/json; charset=utf-8" + } + ], + "stream": { + "type": "Buffer", + "data": [ + 123, + 34, + 117, + 114, + 108, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 100, + 111, + 99, + 117, + 109, + 101, + 110, + 116, + 101, + 110, + 92, + 47, + 118, + 49, + 92, + 47, + 103, + 101, + 98, + 114, + 117, + 105, + 107, + 115, + 114, + 101, + 99, + 104, + 116, + 101, + 110, + 92, + 47, + 100, + 51, + 99, + 54, + 53, + 49, + 57, + 98, + 45, + 48, + 48, + 101, + 54, + 45, + 52, + 101, + 50, + 52, + 45, + 57, + 57, + 57, + 55, + 45, + 97, + 97, + 98, + 99, + 53, + 57, + 99, + 100, + 51, + 56, + 57, + 52, + 34, + 44, + 34, + 117, + 117, + 105, + 100, + 34, + 58, + 34, + 100, + 51, + 99, + 54, + 53, + 49, + 57, + 98, + 45, + 48, + 48, + 101, + 54, + 45, + 52, + 101, + 50, + 52, + 45, + 57, + 57, + 57, + 55, + 45, + 97, + 97, + 98, + 99, + 53, + 57, + 99, + 100, + 51, + 56, + 57, + 52, + 34, + 44, + 34, + 105, + 110, + 102, + 111, + 114, + 109, + 97, + 116, + 105, + 101, + 111, + 98, + 106, + 101, + 99, + 116, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 100, + 111, + 99, + 117, + 109, + 101, + 110, + 116, + 101, + 110, + 92, + 47, + 118, + 49, + 92, + 47, + 101, + 110, + 107, + 101, + 108, + 118, + 111, + 117, + 100, + 105, + 103, + 105, + 110, + 102, + 111, + 114, + 109, + 97, + 116, + 105, + 101, + 111, + 98, + 106, + 101, + 99, + 116, + 101, + 110, + 92, + 47, + 102, + 99, + 102, + 98, + 98, + 56, + 101, + 100, + 45, + 56, + 49, + 51, + 52, + 45, + 52, + 56, + 98, + 48, + 45, + 56, + 49, + 56, + 53, + 45, + 101, + 54, + 97, + 51, + 97, + 100, + 49, + 57, + 51, + 98, + 51, + 97, + 34, + 44, + 34, + 115, + 116, + 97, + 114, + 116, + 100, + 97, + 116, + 117, + 109, + 34, + 58, + 34, + 50, + 48, + 49, + 57, + 45, + 48, + 49, + 45, + 48, + 49, + 32, + 49, + 50, + 58, + 48, + 48, + 58, + 48, + 48, + 34, + 44, + 34, + 101, + 105, + 110, + 100, + 100, + 97, + 116, + 117, + 109, + 34, + 58, + 34, + 34, + 44, + 34, + 111, + 109, + 115, + 99, + 104, + 114, + 105, + 106, + 118, + 105, + 110, + 103, + 86, + 111, + 111, + 114, + 119, + 97, + 97, + 114, + 100, + 101, + 110, + 34, + 58, + 34, + 116, + 101, + 115, + 116, + 34, + 125 + ] + }, + "cookie": [], + "responseTime": 206, + "responseSize": 435 + }, + "id": "ed478db3-b865-4cd7-9c3f-3609b2fac4d3" + }, + { + "cursor": { + "ref": "ad8ae46d-abb1-45c9-9a65-43b23f120a6a", + "length": 313, + "cycles": 1, + "position": 19, + "iteration": 0, + "httpRequestId": "ff1bbaf3-4c57-4fc4-8ac7-ed8c18451ab6" + }, + "item": { + "id": "b142ab3c-30d1-4999-9ed9-2de4e40789ce", + "name": "Create EnkelvoudigInformatieObject with indicatieGebruiksrecht null", + "request": { + "url": { + "path": [ + "enkelvoudiginformatieobjecten" + ], + "host": [ + "{{drc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n\t\"bronorganisatie\": \"000000000\",\n\t\"creatiedatum\": \"2019-01-01\",\n\t\"titel\": \"testobject\",\n\t\"auteur\": \"testauteur\",\n\t\"taal\": \"eng\",\n\t\"inhoud\": \"{{object_inhoud}}\",\n\t\"informatieobjecttype\": \"{{informatieobjecttype_url}}\",\n\t\"indicatieGebruiksrecht\": null,\n\t\"bestandsomvang\": 6\n}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "090447b9-0e4c-4252-a114-e56bfd103246", + "type": "text/javascript", + "packages": {}, + "exec": [ + "pm.environment.set(\"informatieobject_gebruiksrecht_null_url\", pm.response.json().url);" + ], + "_lastExecutionId": "c6999add-b8f5-4cb2-b459-739ae4085682" + } + }, + { + "listen": "prerequest", + "script": { + "id": "054a59ae-69fb-4cb2-952e-699bbd63e95c", + "type": "text/javascript", + "packages": {}, + "exec": [ + "pm.environment.set(\"object_inhoud\", btoa(\"string\"))" + ], + "_lastExecutionId": "34dcd74a-539e-40b5-8e36-142d48ef7d55" + } + } + ] + }, + "request": { + "url": { + "protocol": "http", + "port": "8080", + "path": [ + "index.php", + "apps", + "procest", + "api", + "zgw", + "documenten", + "v1", + "enkelvoudiginformatieobjecten" + ], + "host": [ + "localhost" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Authorization", + "value": "Bearer eyJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJwcm9jZXN0LWFkbWluIiwiY2xpZW50X2lkIjoicHJvY2VzdC1hZG1pbiIsImlhdCI6IjE3NzMxNDUxNDMiLCJ1c2VyX2lkIjoicHJvY2VzdC1hZG1pbiIsInVzZXJfcmVwcmVzZW50YXRpb24iOiIifQ.20hEZFNjnjNj2c5k58_rhcufk1RniJGdljsNdhJCQx0", + "system": true + }, + { + "key": "User-Agent", + "value": "PostmanRuntime/7.39.1", + "system": true + }, + { + "key": "Accept", + "value": "*/*", + "system": true + }, + { + "key": "Cache-Control", + "value": "no-cache", + "system": true + }, + { + "key": "Postman-Token", + "value": "26e18431-84c3-40b7-85be-be3f4f013cbb", + "system": true + }, + { + "key": "Host", + "value": "localhost:8080", + "system": true + }, + { + "key": "Accept-Encoding", + "value": "gzip, deflate, br", + "system": true + }, + { + "key": "Connection", + "value": "keep-alive", + "system": true + }, + { + "key": "Content-Length", + "value": "361", + "system": true + }, + { + "key": "Cookie", + "value": "ocvp3112b4wg=bf4cd099519c1413d4483bfb3ef67497; oc_sessionPassphrase=LBNdKxRzA0iqoULIruNxDDh2BK3O%2BrCIU8aUmiUcOFvy5Xw1YfjwQNlmBW2IkGwJYtxXh9%2BwDN6vYuGNX07tXzkBtjQJUWTGdzf8AIOUIVxVx5DfyWAQZ7nmYmQv6XSE; nc_sameSiteCookielax=true; nc_sameSiteCookiestrict=true", + "system": true + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n\t\"bronorganisatie\": \"000000000\",\n\t\"creatiedatum\": \"2019-01-01\",\n\t\"titel\": \"testobject\",\n\t\"auteur\": \"testauteur\",\n\t\"taal\": \"eng\",\n\t\"inhoud\": \"c3RyaW5n\",\n\t\"informatieobjecttype\": \"http://localhost:8080/index.php/apps/procest/api/zgw/catalogi/v1/informatieobjecttypen/6cab7420-6cda-49c9-8313-7464947a74a3\",\n\t\"indicatieGebruiksrecht\": null,\n\t\"bestandsomvang\": 6\n}" + }, + "auth": { + "type": "jwt", + "jwt": [ + { + "type": "string", + "value": "{\r\n \"iss\": \"procest-admin\",\r\n \"client_id\": \"procest-admin\",\r\n \"iat\": \"1773145143\",\r\n \"user_id\": \"procest-admin\",\r\n \"user_representation\": \"\"\r\n}", + "key": "payload" + }, + { + "type": "string", + "value": "procest-admin-secret-key-for-testing", + "key": "secret" + }, + { + "type": "string", + "value": "HS256", + "key": "algorithm" + }, + { + "type": "boolean", + "value": false, + "key": "isSecretBase64Encoded" + }, + { + "type": "string", + "value": "header", + "key": "addTokenTo" + }, + { + "type": "string", + "value": "Bearer", + "key": "headerPrefix" + }, + { + "type": "string", + "value": "token", + "key": "queryParamKey" + }, + { + "type": "string", + "value": "{}", + "key": "header" + } + ] + } + }, + "response": { + "id": "e7ccba30-23ad-4b8e-8968-969e26aae781", + "status": "Created", + "code": 201, + "header": [ + { + "key": "Date", + "value": "Tue, 10 Mar 2026 12:19:03 GMT" + }, + { + "key": "Server", + "value": "Apache/2.4.66 (Debian)" + }, + { + "key": "X-Content-Type-Options", + "value": "nosniff" + }, + { + "key": "X-Frame-Options", + "value": "SAMEORIGIN" + }, + { + "key": "X-Permitted-Cross-Domain-Policies", + "value": "none" + }, + { + "key": "X-Robots-Tag", + "value": "noindex, nofollow" + }, + { + "key": "Referrer-Policy", + "value": "no-referrer" + }, + { + "key": "X-Powered-By", + "value": "PHP/8.3.30" + }, + { + "key": "Content-Security-Policy", + "value": "default-src 'none';base-uri 'none';manifest-src 'self';frame-ancestors 'none'" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=bf4cd099519c1413d4483bfb3ef67497; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=bf4cd099519c1413d4483bfb3ef67497; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=bf4cd099519c1413d4483bfb3ef67497; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=bf4cd099519c1413d4483bfb3ef67497; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=bf4cd099519c1413d4483bfb3ef67497; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=2a8dd3f027112a720f7f49ec1db1f999; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=2a8dd3f027112a720f7f49ec1db1f999; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=2a8dd3f027112a720f7f49ec1db1f999; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=2a8dd3f027112a720f7f49ec1db1f999; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=2a8dd3f027112a720f7f49ec1db1f999; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "X-Request-Id", + "value": "FowEMh7mDZ3zzjllq6GQ" + }, + { + "key": "Cache-Control", + "value": "no-cache, no-store, must-revalidate" + }, + { + "key": "Feature-Policy", + "value": "autoplay 'none';camera 'none';fullscreen 'none';geolocation 'none';microphone 'none';payment 'none'" + }, + { + "key": "X-User-Id", + "value": "admin" + }, + { + "key": "Content-Length", + "value": "904" + }, + { + "key": "Keep-Alive", + "value": "timeout=5, max=82" + }, + { + "key": "Connection", + "value": "Keep-Alive" + }, + { + "key": "Content-Type", + "value": "application/json; charset=utf-8" + } + ], + "stream": { + "type": "Buffer", + "data": [ + 123, + 34, + 117, + 114, + 108, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 100, + 111, + 99, + 117, + 109, + 101, + 110, + 116, + 101, + 110, + 92, + 47, + 118, + 49, + 92, + 47, + 101, + 110, + 107, + 101, + 108, + 118, + 111, + 117, + 100, + 105, + 103, + 105, + 110, + 102, + 111, + 114, + 109, + 97, + 116, + 105, + 101, + 111, + 98, + 106, + 101, + 99, + 116, + 101, + 110, + 92, + 47, + 52, + 99, + 98, + 55, + 52, + 99, + 97, + 98, + 45, + 53, + 55, + 54, + 57, + 45, + 52, + 55, + 100, + 98, + 45, + 97, + 100, + 52, + 100, + 45, + 48, + 48, + 54, + 56, + 97, + 99, + 102, + 53, + 51, + 50, + 48, + 54, + 34, + 44, + 34, + 117, + 117, + 105, + 100, + 34, + 58, + 34, + 52, + 99, + 98, + 55, + 52, + 99, + 97, + 98, + 45, + 53, + 55, + 54, + 57, + 45, + 52, + 55, + 100, + 98, + 45, + 97, + 100, + 52, + 100, + 45, + 48, + 48, + 54, + 56, + 97, + 99, + 102, + 53, + 51, + 50, + 48, + 54, + 34, + 44, + 34, + 105, + 100, + 101, + 110, + 116, + 105, + 102, + 105, + 99, + 97, + 116, + 105, + 101, + 34, + 58, + 34, + 68, + 79, + 67, + 85, + 77, + 69, + 78, + 84, + 45, + 84, + 66, + 79, + 78, + 74, + 82, + 45, + 52, + 67, + 70, + 68, + 66, + 57, + 34, + 44, + 34, + 98, + 114, + 111, + 110, + 111, + 114, + 103, + 97, + 110, + 105, + 115, + 97, + 116, + 105, + 101, + 34, + 58, + 34, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 34, + 44, + 34, + 99, + 114, + 101, + 97, + 116, + 105, + 101, + 100, + 97, + 116, + 117, + 109, + 34, + 58, + 34, + 50, + 48, + 49, + 57, + 45, + 48, + 49, + 45, + 48, + 49, + 34, + 44, + 34, + 116, + 105, + 116, + 101, + 108, + 34, + 58, + 34, + 116, + 101, + 115, + 116, + 111, + 98, + 106, + 101, + 99, + 116, + 34, + 44, + 34, + 118, + 101, + 114, + 116, + 114, + 111, + 117, + 119, + 101, + 108, + 105, + 106, + 107, + 104, + 101, + 105, + 100, + 97, + 97, + 110, + 100, + 117, + 105, + 100, + 105, + 110, + 103, + 34, + 58, + 34, + 111, + 112, + 101, + 110, + 98, + 97, + 97, + 114, + 34, + 44, + 34, + 97, + 117, + 116, + 101, + 117, + 114, + 34, + 58, + 34, + 116, + 101, + 115, + 116, + 97, + 117, + 116, + 101, + 117, + 114, + 34, + 44, + 34, + 115, + 116, + 97, + 116, + 117, + 115, + 34, + 58, + 34, + 34, + 44, + 34, + 102, + 111, + 114, + 109, + 97, + 97, + 116, + 34, + 58, + 34, + 34, + 44, + 34, + 116, + 97, + 97, + 108, + 34, + 58, + 34, + 101, + 110, + 103, + 34, + 44, + 34, + 98, + 101, + 115, + 116, + 97, + 110, + 100, + 115, + 110, + 97, + 97, + 109, + 34, + 58, + 34, + 34, + 44, + 34, + 98, + 101, + 115, + 116, + 97, + 110, + 100, + 115, + 111, + 109, + 118, + 97, + 110, + 103, + 34, + 58, + 54, + 44, + 34, + 105, + 110, + 104, + 111, + 117, + 100, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 100, + 111, + 99, + 117, + 109, + 101, + 110, + 116, + 101, + 110, + 92, + 47, + 118, + 49, + 92, + 47, + 101, + 110, + 107, + 101, + 108, + 118, + 111, + 117, + 100, + 105, + 103, + 105, + 110, + 102, + 111, + 114, + 109, + 97, + 116, + 105, + 101, + 111, + 98, + 106, + 101, + 99, + 116, + 101, + 110, + 92, + 47, + 52, + 99, + 98, + 55, + 52, + 99, + 97, + 98, + 45, + 53, + 55, + 54, + 57, + 45, + 52, + 55, + 100, + 98, + 45, + 97, + 100, + 52, + 100, + 45, + 48, + 48, + 54, + 56, + 97, + 99, + 102, + 53, + 51, + 50, + 48, + 54, + 92, + 47, + 100, + 111, + 119, + 110, + 108, + 111, + 97, + 100, + 34, + 44, + 34, + 108, + 105, + 110, + 107, + 34, + 58, + 34, + 34, + 44, + 34, + 98, + 101, + 115, + 99, + 104, + 114, + 105, + 106, + 118, + 105, + 110, + 103, + 34, + 58, + 34, + 34, + 44, + 34, + 105, + 110, + 102, + 111, + 114, + 109, + 97, + 116, + 105, + 101, + 111, + 98, + 106, + 101, + 99, + 116, + 116, + 121, + 112, + 101, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 105, + 92, + 47, + 118, + 49, + 92, + 47, + 105, + 110, + 102, + 111, + 114, + 109, + 97, + 116, + 105, + 101, + 111, + 98, + 106, + 101, + 99, + 116, + 116, + 121, + 112, + 101, + 110, + 92, + 47, + 54, + 99, + 97, + 98, + 55, + 52, + 50, + 48, + 45, + 54, + 99, + 100, + 97, + 45, + 52, + 57, + 99, + 57, + 45, + 56, + 51, + 49, + 51, + 45, + 55, + 52, + 54, + 52, + 57, + 52, + 55, + 97, + 55, + 52, + 97, + 51, + 34, + 44, + 34, + 108, + 111, + 99, + 107, + 101, + 100, + 34, + 58, + 102, + 97, + 108, + 115, + 101, + 44, + 34, + 114, + 101, + 103, + 105, + 115, + 116, + 114, + 97, + 116, + 105, + 101, + 100, + 97, + 116, + 117, + 109, + 34, + 58, + 34, + 50, + 48, + 50, + 54, + 45, + 48, + 51, + 45, + 49, + 48, + 84, + 49, + 50, + 58, + 49, + 57, + 58, + 48, + 51, + 43, + 48, + 48, + 58, + 48, + 48, + 34, + 44, + 34, + 105, + 110, + 100, + 105, + 99, + 97, + 116, + 105, + 101, + 71, + 101, + 98, + 114, + 117, + 105, + 107, + 115, + 114, + 101, + 99, + 104, + 116, + 34, + 58, + 110, + 117, + 108, + 108, + 125 + ] + }, + "cookie": [], + "responseTime": 437, + "responseSize": 904 + }, + "id": "b142ab3c-30d1-4999-9ed9-2de4e40789ce" + }, + { + "cursor": { + "ref": "8a60049f-1ac8-46db-97f0-cfe3d36109b9", + "length": 313, + "cycles": 1, + "position": 20, + "iteration": 0, + "httpRequestId": "e8ea8535-dad9-4466-aff4-bb34aca3ca64" + }, + "item": { + "id": "93da1d78-be6b-4734-b70f-0471add1f1d5", + "name": "Temp (DRC) Create EnkelvoudigInformatieObject with gebruiksrecht null", + "request": { + "url": { + "path": [ + "enkelvoudiginformatieobjecten" + ], + "host": [ + "{{drc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n \"bronorganisatie\": \"000000000\",\n \"creatiedatum\": \"2019-01-01\",\n \"titel\": \"testobject\",\n \"auteur\": \"testauteur\",\n \"formaat\": \"application/pdf\",\n \"taal\": \"nld\",\n \"bestandsnaam\": \"test 3.pdf\",\n \"inhoud\": \"{{object_inhoud}}\",\n \"informatieobjecttype\": \"{{informatieobjecttype_url}}\",\n \"indicatieGebruiksrecht\": null,\n \"bestandsomvang\": 6\n}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "1ca35623-a7f8-4201-aa8b-61671ea89993", + "type": "text/javascript", + "packages": {}, + "exec": [ + "pm.environment.set(\"informatieobject_gebruiksrecht_null_url\", pm.response.json().url);" + ], + "_lastExecutionId": "74c887ac-372a-4607-a851-31142012e9ca" + } + }, + { + "listen": "prerequest", + "script": { + "id": "bfd7c065-b281-41c7-8a73-732e4a60e649", + "type": "text/javascript", + "packages": {}, + "exec": [ + "pm.environment.set(\"object_inhoud\", btoa(\"string\"))" + ], + "_lastExecutionId": "e9c7e029-3eec-4bba-8841-21e5f2de06f3" + } + } + ] + }, + "request": { + "url": { + "protocol": "http", + "port": "8080", + "path": [ + "index.php", + "apps", + "procest", + "api", + "zgw", + "documenten", + "v1", + "enkelvoudiginformatieobjecten" + ], + "host": [ + "localhost" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Authorization", + "value": "Bearer eyJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJwcm9jZXN0LWFkbWluIiwiY2xpZW50X2lkIjoicHJvY2VzdC1hZG1pbiIsImlhdCI6IjE3NzMxNDUxNDQiLCJ1c2VyX2lkIjoicHJvY2VzdC1hZG1pbiIsInVzZXJfcmVwcmVzZW50YXRpb24iOiIifQ.-fskB0y_IFnj1SSxxuOUDLoDvmI3wkafIlJ96sgBvZ8", + "system": true + }, + { + "key": "User-Agent", + "value": "PostmanRuntime/7.39.1", + "system": true + }, + { + "key": "Accept", + "value": "*/*", + "system": true + }, + { + "key": "Cache-Control", + "value": "no-cache", + "system": true + }, + { + "key": "Postman-Token", + "value": "5ece0401-7887-41e8-a281-9ddaf6e45d4e", + "system": true + }, + { + "key": "Host", + "value": "localhost:8080", + "system": true + }, + { + "key": "Accept-Encoding", + "value": "gzip, deflate, br", + "system": true + }, + { + "key": "Connection", + "value": "keep-alive", + "system": true + }, + { + "key": "Content-Length", + "value": "456", + "system": true + }, + { + "key": "Cookie", + "value": "ocvp3112b4wg=2a8dd3f027112a720f7f49ec1db1f999; oc_sessionPassphrase=LBNdKxRzA0iqoULIruNxDDh2BK3O%2BrCIU8aUmiUcOFvy5Xw1YfjwQNlmBW2IkGwJYtxXh9%2BwDN6vYuGNX07tXzkBtjQJUWTGdzf8AIOUIVxVx5DfyWAQZ7nmYmQv6XSE; nc_sameSiteCookielax=true; nc_sameSiteCookiestrict=true", + "system": true + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n \"bronorganisatie\": \"000000000\",\n \"creatiedatum\": \"2019-01-01\",\n \"titel\": \"testobject\",\n \"auteur\": \"testauteur\",\n \"formaat\": \"application/pdf\",\n \"taal\": \"nld\",\n \"bestandsnaam\": \"test 3.pdf\",\n \"inhoud\": \"c3RyaW5n\",\n \"informatieobjecttype\": \"http://localhost:8080/index.php/apps/procest/api/zgw/catalogi/v1/informatieobjecttypen/6cab7420-6cda-49c9-8313-7464947a74a3\",\n \"indicatieGebruiksrecht\": null,\n \"bestandsomvang\": 6\n}" + }, + "auth": { + "type": "jwt", + "jwt": [ + { + "type": "string", + "value": "{\r\n \"iss\": \"procest-admin\",\r\n \"client_id\": \"procest-admin\",\r\n \"iat\": \"1773145144\",\r\n \"user_id\": \"procest-admin\",\r\n \"user_representation\": \"\"\r\n}", + "key": "payload" + }, + { + "type": "string", + "value": "procest-admin-secret-key-for-testing", + "key": "secret" + }, + { + "type": "string", + "value": "HS256", + "key": "algorithm" + }, + { + "type": "boolean", + "value": false, + "key": "isSecretBase64Encoded" + }, + { + "type": "string", + "value": "header", + "key": "addTokenTo" + }, + { + "type": "string", + "value": "Bearer", + "key": "headerPrefix" + }, + { + "type": "string", + "value": "token", + "key": "queryParamKey" + }, + { + "type": "string", + "value": "{}", + "key": "header" + } + ] + } + }, + "response": { + "id": "c77ac3b4-7587-4ff4-aaf2-150c3a0e8220", + "status": "Created", + "code": 201, + "header": [ + { + "key": "Date", + "value": "Tue, 10 Mar 2026 12:19:03 GMT" + }, + { + "key": "Server", + "value": "Apache/2.4.66 (Debian)" + }, + { + "key": "X-Content-Type-Options", + "value": "nosniff" + }, + { + "key": "X-Frame-Options", + "value": "SAMEORIGIN" + }, + { + "key": "X-Permitted-Cross-Domain-Policies", + "value": "none" + }, + { + "key": "X-Robots-Tag", + "value": "noindex, nofollow" + }, + { + "key": "Referrer-Policy", + "value": "no-referrer" + }, + { + "key": "X-Powered-By", + "value": "PHP/8.3.30" + }, + { + "key": "Content-Security-Policy", + "value": "default-src 'none';base-uri 'none';manifest-src 'self';frame-ancestors 'none'" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=2a8dd3f027112a720f7f49ec1db1f999; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=2a8dd3f027112a720f7f49ec1db1f999; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=2a8dd3f027112a720f7f49ec1db1f999; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=2a8dd3f027112a720f7f49ec1db1f999; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=2a8dd3f027112a720f7f49ec1db1f999; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=479b25dc157123d0b35fcf334f937c3a; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=479b25dc157123d0b35fcf334f937c3a; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=479b25dc157123d0b35fcf334f937c3a; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=479b25dc157123d0b35fcf334f937c3a; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=479b25dc157123d0b35fcf334f937c3a; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "X-Request-Id", + "value": "HYVLnQrgWwjtBLxnu0dn" + }, + { + "key": "Cache-Control", + "value": "no-cache, no-store, must-revalidate" + }, + { + "key": "Feature-Policy", + "value": "autoplay 'none';camera 'none';fullscreen 'none';geolocation 'none';microphone 'none';payment 'none'" + }, + { + "key": "X-User-Id", + "value": "admin" + }, + { + "key": "Content-Length", + "value": "930" + }, + { + "key": "Keep-Alive", + "value": "timeout=5, max=81" + }, + { + "key": "Connection", + "value": "Keep-Alive" + }, + { + "key": "Content-Type", + "value": "application/json; charset=utf-8" + } + ], + "stream": { + "type": "Buffer", + "data": [ + 123, + 34, + 117, + 114, + 108, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 100, + 111, + 99, + 117, + 109, + 101, + 110, + 116, + 101, + 110, + 92, + 47, + 118, + 49, + 92, + 47, + 101, + 110, + 107, + 101, + 108, + 118, + 111, + 117, + 100, + 105, + 103, + 105, + 110, + 102, + 111, + 114, + 109, + 97, + 116, + 105, + 101, + 111, + 98, + 106, + 101, + 99, + 116, + 101, + 110, + 92, + 47, + 100, + 51, + 100, + 56, + 51, + 53, + 97, + 54, + 45, + 97, + 54, + 55, + 99, + 45, + 52, + 48, + 52, + 102, + 45, + 98, + 51, + 97, + 54, + 45, + 55, + 100, + 50, + 56, + 49, + 102, + 101, + 102, + 55, + 53, + 97, + 48, + 34, + 44, + 34, + 117, + 117, + 105, + 100, + 34, + 58, + 34, + 100, + 51, + 100, + 56, + 51, + 53, + 97, + 54, + 45, + 97, + 54, + 55, + 99, + 45, + 52, + 48, + 52, + 102, + 45, + 98, + 51, + 97, + 54, + 45, + 55, + 100, + 50, + 56, + 49, + 102, + 101, + 102, + 55, + 53, + 97, + 48, + 34, + 44, + 34, + 105, + 100, + 101, + 110, + 116, + 105, + 102, + 105, + 99, + 97, + 116, + 105, + 101, + 34, + 58, + 34, + 68, + 79, + 67, + 85, + 77, + 69, + 78, + 84, + 45, + 84, + 66, + 79, + 78, + 74, + 82, + 45, + 54, + 57, + 69, + 65, + 66, + 65, + 34, + 44, + 34, + 98, + 114, + 111, + 110, + 111, + 114, + 103, + 97, + 110, + 105, + 115, + 97, + 116, + 105, + 101, + 34, + 58, + 34, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 34, + 44, + 34, + 99, + 114, + 101, + 97, + 116, + 105, + 101, + 100, + 97, + 116, + 117, + 109, + 34, + 58, + 34, + 50, + 48, + 49, + 57, + 45, + 48, + 49, + 45, + 48, + 49, + 34, + 44, + 34, + 116, + 105, + 116, + 101, + 108, + 34, + 58, + 34, + 116, + 101, + 115, + 116, + 111, + 98, + 106, + 101, + 99, + 116, + 34, + 44, + 34, + 118, + 101, + 114, + 116, + 114, + 111, + 117, + 119, + 101, + 108, + 105, + 106, + 107, + 104, + 101, + 105, + 100, + 97, + 97, + 110, + 100, + 117, + 105, + 100, + 105, + 110, + 103, + 34, + 58, + 34, + 111, + 112, + 101, + 110, + 98, + 97, + 97, + 114, + 34, + 44, + 34, + 97, + 117, + 116, + 101, + 117, + 114, + 34, + 58, + 34, + 116, + 101, + 115, + 116, + 97, + 117, + 116, + 101, + 117, + 114, + 34, + 44, + 34, + 115, + 116, + 97, + 116, + 117, + 115, + 34, + 58, + 34, + 34, + 44, + 34, + 102, + 111, + 114, + 109, + 97, + 97, + 116, + 34, + 58, + 34, + 97, + 112, + 112, + 108, + 105, + 99, + 97, + 116, + 105, + 111, + 110, + 92, + 47, + 112, + 100, + 102, + 34, + 44, + 34, + 116, + 97, + 97, + 108, + 34, + 58, + 34, + 110, + 108, + 100, + 34, + 44, + 34, + 98, + 101, + 115, + 116, + 97, + 110, + 100, + 115, + 110, + 97, + 97, + 109, + 34, + 58, + 34, + 116, + 101, + 115, + 116, + 32, + 51, + 46, + 112, + 100, + 102, + 34, + 44, + 34, + 98, + 101, + 115, + 116, + 97, + 110, + 100, + 115, + 111, + 109, + 118, + 97, + 110, + 103, + 34, + 58, + 54, + 44, + 34, + 105, + 110, + 104, + 111, + 117, + 100, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 100, + 111, + 99, + 117, + 109, + 101, + 110, + 116, + 101, + 110, + 92, + 47, + 118, + 49, + 92, + 47, + 101, + 110, + 107, + 101, + 108, + 118, + 111, + 117, + 100, + 105, + 103, + 105, + 110, + 102, + 111, + 114, + 109, + 97, + 116, + 105, + 101, + 111, + 98, + 106, + 101, + 99, + 116, + 101, + 110, + 92, + 47, + 100, + 51, + 100, + 56, + 51, + 53, + 97, + 54, + 45, + 97, + 54, + 55, + 99, + 45, + 52, + 48, + 52, + 102, + 45, + 98, + 51, + 97, + 54, + 45, + 55, + 100, + 50, + 56, + 49, + 102, + 101, + 102, + 55, + 53, + 97, + 48, + 92, + 47, + 100, + 111, + 119, + 110, + 108, + 111, + 97, + 100, + 34, + 44, + 34, + 108, + 105, + 110, + 107, + 34, + 58, + 34, + 34, + 44, + 34, + 98, + 101, + 115, + 99, + 104, + 114, + 105, + 106, + 118, + 105, + 110, + 103, + 34, + 58, + 34, + 34, + 44, + 34, + 105, + 110, + 102, + 111, + 114, + 109, + 97, + 116, + 105, + 101, + 111, + 98, + 106, + 101, + 99, + 116, + 116, + 121, + 112, + 101, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 105, + 92, + 47, + 118, + 49, + 92, + 47, + 105, + 110, + 102, + 111, + 114, + 109, + 97, + 116, + 105, + 101, + 111, + 98, + 106, + 101, + 99, + 116, + 116, + 121, + 112, + 101, + 110, + 92, + 47, + 54, + 99, + 97, + 98, + 55, + 52, + 50, + 48, + 45, + 54, + 99, + 100, + 97, + 45, + 52, + 57, + 99, + 57, + 45, + 56, + 51, + 49, + 51, + 45, + 55, + 52, + 54, + 52, + 57, + 52, + 55, + 97, + 55, + 52, + 97, + 51, + 34, + 44, + 34, + 108, + 111, + 99, + 107, + 101, + 100, + 34, + 58, + 102, + 97, + 108, + 115, + 101, + 44, + 34, + 114, + 101, + 103, + 105, + 115, + 116, + 114, + 97, + 116, + 105, + 101, + 100, + 97, + 116, + 117, + 109, + 34, + 58, + 34, + 50, + 48, + 50, + 54, + 45, + 48, + 51, + 45, + 49, + 48, + 84, + 49, + 50, + 58, + 49, + 57, + 58, + 48, + 51, + 43, + 48, + 48, + 58, + 48, + 48, + 34, + 44, + 34, + 105, + 110, + 100, + 105, + 99, + 97, + 116, + 105, + 101, + 71, + 101, + 98, + 114, + 117, + 105, + 107, + 115, + 114, + 101, + 99, + 104, + 116, + 34, + 58, + 110, + 117, + 108, + 108, + 125 + ] + }, + "cookie": [], + "responseTime": 433, + "responseSize": 930 + }, + "id": "93da1d78-be6b-4734-b70f-0471add1f1d5" + }, + { + "cursor": { + "ref": "d859d084-338e-48fa-9940-65570bff91e8", + "length": 313, + "cycles": 1, + "position": 21, + "iteration": 0, + "httpRequestId": "fa1e3ffc-449e-4531-9139-22a47b01c036" + }, + "item": { + "id": "403cb653-8660-4ead-8255-ef61d6a5038f", + "name": "Zaak", + "request": { + "url": { + "path": [ + "zaken" + ], + "host": [ + "{{zrc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Crs", + "value": "EPSG:4326" + }, + { + "key": "Accept-Crs", + "value": "EPSG:4326" + }, + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n \"bronorganisatie\": \"000000000\",\n \"omschrijving\": \"string\",\n \"toelichting\": \"string\",\n \"registratiedatum\": \"2019-04-09\",\n \"verantwoordelijkeOrganisatie\": \"000000000\",\n \"zaaktype\": \"{{zaaktype_url}}\",\n \"startdatum\": \"2019-04-09\",\n \"einddatumGepland\": \"2019-04-20\",\n \"uiterlijkeEinddatumAfdoening\": \"2019-04-09\",\n \"publicatiedatum\": \"2019-04-09\",\n \"vertrouwelijkheidaanduiding\": \"openbaar\",\n \"betalingsindicatie\": \"geheel\",\n \"laatsteBetaalDatum\": \"2019-01-01\",\n \"zaakgeometrie\": {\n \"type\": \"Point\",\n \"coordinates\": [\n 53,\n 5\n ]\n },\n \"opschorting\": {\n \"indicatie\": true,\n \"reden\": \"string\"\n },\n \"selectielijstklasse\": \"{{selectielijstklasse_url}}\",\n \"archiefstatus\": \"nog_te_archiveren\",\n \"deelzaaktypen\" : [\"{{deelzaaktype_url}}\"]\n}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "f70b7aea-2413-4808-97f0-539914634824", + "type": "text/javascript", + "packages": {}, + "exec": [ + "if(pm.response.code == 201) {", + " var zaak = pm.response.json();", + " pm.environment.set(\"zaak_url\", zaak.url);", + " pm.environment.set(\"zaakidentificatie\", zaak.identificatie);", + "}" + ], + "_lastExecutionId": "feb5c623-028f-4bf5-ab40-20f07537868b" + } + }, + { + "listen": "prerequest", + "script": { + "id": "240c36aa-5438-4379-a668-538d45daa8bc", + "type": "text/javascript", + "packages": {}, + "exec": [ + "" + ], + "_lastExecutionId": "5d0b6929-2280-4915-91c5-a63d2621b6e8" + } + } + ] + }, + "request": { + "url": { + "protocol": "http", + "port": "8080", + "path": [ + "index.php", + "apps", + "procest", + "api", + "zgw", + "zaken", + "v1", + "zaken" + ], + "host": [ + "localhost" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Crs", + "value": "EPSG:4326" + }, + { + "key": "Accept-Crs", + "value": "EPSG:4326" + }, + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Authorization", + "value": "Bearer eyJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJwcm9jZXN0LWFkbWluIiwiY2xpZW50X2lkIjoicHJvY2VzdC1hZG1pbiIsImlhdCI6IjE3NzMxNDUxNDQiLCJ1c2VyX2lkIjoicHJvY2VzdC1hZG1pbiIsInVzZXJfcmVwcmVzZW50YXRpb24iOiIifQ.-fskB0y_IFnj1SSxxuOUDLoDvmI3wkafIlJ96sgBvZ8", + "system": true + }, + { + "key": "User-Agent", + "value": "PostmanRuntime/7.39.1", + "system": true + }, + { + "key": "Accept", + "value": "*/*", + "system": true + }, + { + "key": "Cache-Control", + "value": "no-cache", + "system": true + }, + { + "key": "Postman-Token", + "value": "8744c15d-198f-4b03-807f-2cfcde8959cf", + "system": true + }, + { + "key": "Host", + "value": "localhost:8080", + "system": true + }, + { + "key": "Accept-Encoding", + "value": "gzip, deflate, br", + "system": true + }, + { + "key": "Connection", + "value": "keep-alive", + "system": true + }, + { + "key": "Content-Length", + "value": "1096", + "system": true + }, + { + "key": "Cookie", + "value": "ocvp3112b4wg=479b25dc157123d0b35fcf334f937c3a; oc_sessionPassphrase=LBNdKxRzA0iqoULIruNxDDh2BK3O%2BrCIU8aUmiUcOFvy5Xw1YfjwQNlmBW2IkGwJYtxXh9%2BwDN6vYuGNX07tXzkBtjQJUWTGdzf8AIOUIVxVx5DfyWAQZ7nmYmQv6XSE; nc_sameSiteCookielax=true; nc_sameSiteCookiestrict=true", + "system": true + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n \"bronorganisatie\": \"000000000\",\n \"omschrijving\": \"string\",\n \"toelichting\": \"string\",\n \"registratiedatum\": \"2019-04-09\",\n \"verantwoordelijkeOrganisatie\": \"000000000\",\n \"zaaktype\": \"http://localhost:8080/index.php/apps/procest/api/zgw/catalogi/v1/zaaktypen/619dc3e5-52f1-4294-a569-f21d16f44879\",\n \"startdatum\": \"2019-04-09\",\n \"einddatumGepland\": \"2019-04-20\",\n \"uiterlijkeEinddatumAfdoening\": \"2019-04-09\",\n \"publicatiedatum\": \"2019-04-09\",\n \"vertrouwelijkheidaanduiding\": \"openbaar\",\n \"betalingsindicatie\": \"geheel\",\n \"laatsteBetaalDatum\": \"2019-01-01\",\n \"zaakgeometrie\": {\n \"type\": \"Point\",\n \"coordinates\": [\n 53,\n 5\n ]\n },\n \"opschorting\": {\n \"indicatie\": true,\n \"reden\": \"string\"\n },\n \"selectielijstklasse\": \"https://selectielijst.openzaak.nl/api/v1/resultaten/0eb8f19f-d55e-4a15-8b5f-26cdf07482c1\",\n \"archiefstatus\": \"nog_te_archiveren\",\n \"deelzaaktypen\" : [\"http://localhost:8080/index.php/apps/procest/api/zgw/catalogi/v1/zaaktypen/7571bffe-5579-4295-9fac-87a9a6b6c5ac\"]\n}" + }, + "auth": { + "type": "jwt", + "jwt": [ + { + "type": "string", + "value": "{\r\n \"iss\": \"procest-admin\",\r\n \"client_id\": \"procest-admin\",\r\n \"iat\": \"1773145144\",\r\n \"user_id\": \"procest-admin\",\r\n \"user_representation\": \"\"\r\n}", + "key": "payload" + }, + { + "type": "string", + "value": "procest-admin-secret-key-for-testing", + "key": "secret" + }, + { + "type": "string", + "value": "HS256", + "key": "algorithm" + }, + { + "type": "boolean", + "value": false, + "key": "isSecretBase64Encoded" + }, + { + "type": "string", + "value": "header", + "key": "addTokenTo" + }, + { + "type": "string", + "value": "Bearer", + "key": "headerPrefix" + }, + { + "type": "string", + "value": "token", + "key": "queryParamKey" + }, + { + "type": "string", + "value": "{}", + "key": "header" + } + ] + } + }, + "response": { + "id": "142ef31d-8ad5-4d1b-bf85-305540fc9679", + "status": "Created", + "code": 201, + "header": [ + { + "key": "Date", + "value": "Tue, 10 Mar 2026 12:19:04 GMT" + }, + { + "key": "Server", + "value": "Apache/2.4.66 (Debian)" + }, + { + "key": "X-Content-Type-Options", + "value": "nosniff" + }, + { + "key": "X-Frame-Options", + "value": "SAMEORIGIN" + }, + { + "key": "X-Permitted-Cross-Domain-Policies", + "value": "none" + }, + { + "key": "X-Robots-Tag", + "value": "noindex, nofollow" + }, + { + "key": "Referrer-Policy", + "value": "no-referrer" + }, + { + "key": "X-Powered-By", + "value": "PHP/8.3.30" + }, + { + "key": "Content-Security-Policy", + "value": "default-src 'none';base-uri 'none';manifest-src 'self';frame-ancestors 'none'" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=479b25dc157123d0b35fcf334f937c3a; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=479b25dc157123d0b35fcf334f937c3a; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=479b25dc157123d0b35fcf334f937c3a; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=479b25dc157123d0b35fcf334f937c3a; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=479b25dc157123d0b35fcf334f937c3a; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=4040ccc296973d501ba88bc9c3985e59; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=4040ccc296973d501ba88bc9c3985e59; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=4040ccc296973d501ba88bc9c3985e59; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=4040ccc296973d501ba88bc9c3985e59; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=4040ccc296973d501ba88bc9c3985e59; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "X-Request-Id", + "value": "aclXD626isItZ7kxb0aG" + }, + { + "key": "Cache-Control", + "value": "no-cache, no-store, must-revalidate" + }, + { + "key": "Feature-Policy", + "value": "autoplay 'none';camera 'none';fullscreen 'none';geolocation 'none';microphone 'none';payment 'none'" + }, + { + "key": "X-User-Id", + "value": "admin" + }, + { + "key": "Content-Length", + "value": "799" + }, + { + "key": "Keep-Alive", + "value": "timeout=5, max=80" + }, + { + "key": "Connection", + "value": "Keep-Alive" + }, + { + "key": "Content-Type", + "value": "application/json; charset=utf-8" + } + ], + "stream": { + "type": "Buffer", + "data": [ + 123, + 34, + 117, + 114, + 108, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 122, + 97, + 107, + 101, + 110, + 92, + 47, + 118, + 49, + 92, + 47, + 122, + 97, + 107, + 101, + 110, + 92, + 47, + 50, + 51, + 100, + 101, + 53, + 50, + 98, + 48, + 45, + 48, + 54, + 101, + 56, + 45, + 52, + 102, + 53, + 53, + 45, + 57, + 48, + 50, + 54, + 45, + 53, + 97, + 51, + 52, + 48, + 50, + 56, + 49, + 53, + 49, + 52, + 97, + 34, + 44, + 34, + 117, + 117, + 105, + 100, + 34, + 58, + 34, + 50, + 51, + 100, + 101, + 53, + 50, + 98, + 48, + 45, + 48, + 54, + 101, + 56, + 45, + 52, + 102, + 53, + 53, + 45, + 57, + 48, + 50, + 54, + 45, + 53, + 97, + 51, + 52, + 48, + 50, + 56, + 49, + 53, + 49, + 52, + 97, + 34, + 44, + 34, + 105, + 100, + 101, + 110, + 116, + 105, + 102, + 105, + 99, + 97, + 116, + 105, + 101, + 34, + 58, + 34, + 90, + 65, + 65, + 75, + 45, + 84, + 66, + 79, + 78, + 74, + 83, + 45, + 53, + 65, + 69, + 50, + 50, + 70, + 34, + 44, + 34, + 111, + 109, + 115, + 99, + 104, + 114, + 105, + 106, + 118, + 105, + 110, + 103, + 34, + 58, + 34, + 115, + 116, + 114, + 105, + 110, + 103, + 34, + 44, + 34, + 116, + 111, + 101, + 108, + 105, + 99, + 104, + 116, + 105, + 110, + 103, + 34, + 58, + 34, + 115, + 116, + 114, + 105, + 110, + 103, + 34, + 44, + 34, + 122, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 105, + 92, + 47, + 118, + 49, + 92, + 47, + 122, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 110, + 92, + 47, + 54, + 49, + 57, + 100, + 99, + 51, + 101, + 53, + 45, + 53, + 50, + 102, + 49, + 45, + 52, + 50, + 57, + 52, + 45, + 97, + 53, + 54, + 57, + 45, + 102, + 50, + 49, + 100, + 49, + 54, + 102, + 52, + 52, + 56, + 55, + 57, + 34, + 44, + 34, + 114, + 101, + 103, + 105, + 115, + 116, + 114, + 97, + 116, + 105, + 101, + 100, + 97, + 116, + 117, + 109, + 34, + 58, + 34, + 50, + 48, + 50, + 54, + 45, + 48, + 51, + 45, + 49, + 48, + 84, + 49, + 50, + 58, + 49, + 57, + 58, + 48, + 52, + 43, + 48, + 48, + 58, + 48, + 48, + 34, + 44, + 34, + 115, + 116, + 97, + 114, + 116, + 100, + 97, + 116, + 117, + 109, + 34, + 58, + 34, + 50, + 48, + 49, + 57, + 45, + 48, + 52, + 45, + 48, + 57, + 34, + 44, + 34, + 101, + 105, + 110, + 100, + 100, + 97, + 116, + 117, + 109, + 34, + 58, + 110, + 117, + 108, + 108, + 44, + 34, + 101, + 105, + 110, + 100, + 100, + 97, + 116, + 117, + 109, + 71, + 101, + 112, + 108, + 97, + 110, + 100, + 34, + 58, + 34, + 50, + 48, + 49, + 57, + 45, + 48, + 52, + 45, + 50, + 48, + 34, + 44, + 34, + 117, + 105, + 116, + 101, + 114, + 108, + 105, + 106, + 107, + 101, + 69, + 105, + 110, + 100, + 100, + 97, + 116, + 117, + 109, + 65, + 102, + 100, + 111, + 101, + 110, + 105, + 110, + 103, + 34, + 58, + 34, + 50, + 48, + 49, + 57, + 45, + 48, + 52, + 45, + 48, + 57, + 34, + 44, + 34, + 118, + 101, + 114, + 116, + 114, + 111, + 117, + 119, + 101, + 108, + 105, + 106, + 107, + 104, + 101, + 105, + 100, + 97, + 97, + 110, + 100, + 117, + 105, + 100, + 105, + 110, + 103, + 34, + 58, + 34, + 111, + 112, + 101, + 110, + 98, + 97, + 97, + 114, + 34, + 44, + 34, + 118, + 101, + 114, + 97, + 110, + 116, + 119, + 111, + 111, + 114, + 100, + 101, + 108, + 105, + 106, + 107, + 101, + 79, + 114, + 103, + 97, + 110, + 105, + 115, + 97, + 116, + 105, + 101, + 34, + 58, + 34, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 34, + 44, + 34, + 97, + 114, + 99, + 104, + 105, + 101, + 102, + 110, + 111, + 109, + 105, + 110, + 97, + 116, + 105, + 101, + 34, + 58, + 110, + 117, + 108, + 108, + 44, + 34, + 97, + 114, + 99, + 104, + 105, + 101, + 102, + 97, + 99, + 116, + 105, + 101, + 100, + 97, + 116, + 117, + 109, + 34, + 58, + 110, + 117, + 108, + 108, + 44, + 34, + 97, + 114, + 99, + 104, + 105, + 101, + 102, + 115, + 116, + 97, + 116, + 117, + 115, + 34, + 58, + 34, + 110, + 111, + 103, + 95, + 116, + 101, + 95, + 97, + 114, + 99, + 104, + 105, + 118, + 101, + 114, + 101, + 110, + 34, + 44, + 34, + 98, + 101, + 116, + 97, + 108, + 105, + 110, + 103, + 115, + 105, + 110, + 100, + 105, + 99, + 97, + 116, + 105, + 101, + 34, + 58, + 34, + 103, + 101, + 104, + 101, + 101, + 108, + 34, + 44, + 34, + 108, + 97, + 97, + 116, + 115, + 116, + 101, + 66, + 101, + 116, + 97, + 97, + 108, + 100, + 97, + 116, + 117, + 109, + 34, + 58, + 110, + 117, + 108, + 108, + 44, + 34, + 104, + 111, + 111, + 102, + 100, + 122, + 97, + 97, + 107, + 34, + 58, + 110, + 117, + 108, + 108, + 125 + ] + }, + "cookie": [], + "responseTime": 237, + "responseSize": 799 + }, + "id": "403cb653-8660-4ead-8255-ef61d6a5038f" + }, + { + "cursor": { + "ref": "5b61af41-4af8-46df-8b9e-3b744585ff2c", + "length": 313, + "cycles": 1, + "position": 22, + "iteration": 0, + "httpRequestId": "97a6ffac-f95b-4d1e-9ec2-d8cd231001b1" + }, + "item": { + "id": "b89c8b89-befd-4e22-8eed-ebbf2ccb4467", + "name": "(zrc-001b) Zaak bijwerken is mogelijk", + "request": { + "url": { + "host": [ + "{{zaak_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Crs", + "value": "EPSG:4326" + }, + { + "key": "Accept-Crs", + "value": "EPSG:4326" + }, + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "PUT", + "body": { + "mode": "raw", + "raw": "{\r\n \"bronorganisatie\": \"000000000\",\r\n \"omschrijving\": \"andere string\",\r\n \"toelichting\": \"string\",\r\n \"registratiedatum\": \"2019-04-09\",\r\n \"verantwoordelijkeOrganisatie\": \"000000000\",\r\n \"zaaktype\": \"{{zaaktype_url}}\",\r\n \"startdatum\": \"2019-04-09\",\r\n \"einddatumGepland\": \"2019-04-20\",\r\n \"uiterlijkeEinddatumAfdoening\": \"2019-04-09\",\r\n \"publicatiedatum\": \"2019-04-09\",\r\n \"vertrouwelijkheidaanduiding\": \"openbaar\",\r\n \"betalingsindicatie\": \"geheel\",\r\n \"laatsteBetaalDatum\": \"2019-01-01\",\r\n \"zaakgeometrie\": {\r\n \"type\": \"Point\",\r\n \"coordinates\": [\r\n 53,\r\n 5\r\n ]\r\n },\r\n \"opschorting\": {\r\n \"indicatie\": true,\r\n \"reden\": \"string\"\r\n },\r\n \"selectielijstklasse\": \"{{selectielijstklasse_url}}\",\r\n \"archiefstatus\": \"nog_te_archiveren\",\r\n \"deelzaaktypen\" : [\"{{deelzaaktype_url}}\"]\r\n}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "3b287902-4598-494b-8ea2-ff91d81393a9", + "type": "text/javascript", + "packages": {}, + "exec": [ + "pm.test(\"Zaak bijwerken met valide gegevens geeft 200\", function() {", + " pm.response.to.have.status(200);", + "});", + "", + "" + ], + "_lastExecutionId": "9cea0f45-2d46-4f80-936f-0812913e2190" + } + }, + { + "listen": "prerequest", + "script": { + "id": "d74a067a-b6da-4115-81fb-4b5be7d676e1", + "type": "text/javascript", + "packages": {}, + "exec": [ + "" + ], + "_lastExecutionId": "178f3fca-4209-4195-bb49-a690e6a484a6" + } + } + ] + }, + "request": { + "url": { + "protocol": "http", + "port": "8080", + "path": [ + "index.php", + "apps", + "procest", + "api", + "zgw", + "zaken", + "v1", + "zaken", + "23de52b0-06e8-4f55-9026-5a340281514a" + ], + "host": [ + "localhost" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Crs", + "value": "EPSG:4326" + }, + { + "key": "Accept-Crs", + "value": "EPSG:4326" + }, + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Authorization", + "value": "Bearer eyJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJwcm9jZXN0LWFkbWluIiwiY2xpZW50X2lkIjoicHJvY2VzdC1hZG1pbiIsImlhdCI6IjE3NzMxNDUxNDUiLCJ1c2VyX2lkIjoicHJvY2VzdC1hZG1pbiIsInVzZXJfcmVwcmVzZW50YXRpb24iOiIifQ.jKeiDi8xwG5R6Li_rlEOASSbIgCisC2k6N9dyL2LtEU", + "system": true + }, + { + "key": "User-Agent", + "value": "PostmanRuntime/7.39.1", + "system": true + }, + { + "key": "Accept", + "value": "*/*", + "system": true + }, + { + "key": "Cache-Control", + "value": "no-cache", + "system": true + }, + { + "key": "Postman-Token", + "value": "f7a0468f-8e3c-4f0b-9d7e-453b440ea8d6", + "system": true + }, + { + "key": "Host", + "value": "localhost:8080", + "system": true + }, + { + "key": "Accept-Encoding", + "value": "gzip, deflate, br", + "system": true + }, + { + "key": "Connection", + "value": "keep-alive", + "system": true + }, + { + "key": "Content-Length", + "value": "1131", + "system": true + }, + { + "key": "Cookie", + "value": "ocvp3112b4wg=4040ccc296973d501ba88bc9c3985e59; oc_sessionPassphrase=LBNdKxRzA0iqoULIruNxDDh2BK3O%2BrCIU8aUmiUcOFvy5Xw1YfjwQNlmBW2IkGwJYtxXh9%2BwDN6vYuGNX07tXzkBtjQJUWTGdzf8AIOUIVxVx5DfyWAQZ7nmYmQv6XSE; nc_sameSiteCookielax=true; nc_sameSiteCookiestrict=true", + "system": true + } + ], + "method": "PUT", + "body": { + "mode": "raw", + "raw": "{\r\n \"bronorganisatie\": \"000000000\",\r\n \"omschrijving\": \"andere string\",\r\n \"toelichting\": \"string\",\r\n \"registratiedatum\": \"2019-04-09\",\r\n \"verantwoordelijkeOrganisatie\": \"000000000\",\r\n \"zaaktype\": \"http://localhost:8080/index.php/apps/procest/api/zgw/catalogi/v1/zaaktypen/619dc3e5-52f1-4294-a569-f21d16f44879\",\r\n \"startdatum\": \"2019-04-09\",\r\n \"einddatumGepland\": \"2019-04-20\",\r\n \"uiterlijkeEinddatumAfdoening\": \"2019-04-09\",\r\n \"publicatiedatum\": \"2019-04-09\",\r\n \"vertrouwelijkheidaanduiding\": \"openbaar\",\r\n \"betalingsindicatie\": \"geheel\",\r\n \"laatsteBetaalDatum\": \"2019-01-01\",\r\n \"zaakgeometrie\": {\r\n \"type\": \"Point\",\r\n \"coordinates\": [\r\n 53,\r\n 5\r\n ]\r\n },\r\n \"opschorting\": {\r\n \"indicatie\": true,\r\n \"reden\": \"string\"\r\n },\r\n \"selectielijstklasse\": \"https://selectielijst.openzaak.nl/api/v1/resultaten/0eb8f19f-d55e-4a15-8b5f-26cdf07482c1\",\r\n \"archiefstatus\": \"nog_te_archiveren\",\r\n \"deelzaaktypen\" : [\"http://localhost:8080/index.php/apps/procest/api/zgw/catalogi/v1/zaaktypen/7571bffe-5579-4295-9fac-87a9a6b6c5ac\"]\r\n}" + }, + "auth": { + "type": "jwt", + "jwt": [ + { + "type": "string", + "value": "{\r\n \"iss\": \"procest-admin\",\r\n \"client_id\": \"procest-admin\",\r\n \"iat\": \"1773145145\",\r\n \"user_id\": \"procest-admin\",\r\n \"user_representation\": \"\"\r\n}", + "key": "payload" + }, + { + "type": "string", + "value": "procest-admin-secret-key-for-testing", + "key": "secret" + }, + { + "type": "string", + "value": "HS256", + "key": "algorithm" + }, + { + "type": "boolean", + "value": false, + "key": "isSecretBase64Encoded" + }, + { + "type": "string", + "value": "header", + "key": "addTokenTo" + }, + { + "type": "string", + "value": "Bearer", + "key": "headerPrefix" + }, + { + "type": "string", + "value": "token", + "key": "queryParamKey" + }, + { + "type": "string", + "value": "{}", + "key": "header" + } + ] + } + }, + "response": { + "id": "db5913af-ceb0-4766-844f-f88f541a9b37", + "status": "OK", + "code": 200, + "header": [ + { + "key": "Date", + "value": "Tue, 10 Mar 2026 12:19:04 GMT" + }, + { + "key": "Server", + "value": "Apache/2.4.66 (Debian)" + }, + { + "key": "X-Content-Type-Options", + "value": "nosniff" + }, + { + "key": "X-Frame-Options", + "value": "SAMEORIGIN" + }, + { + "key": "X-Permitted-Cross-Domain-Policies", + "value": "none" + }, + { + "key": "X-Robots-Tag", + "value": "noindex, nofollow" + }, + { + "key": "Referrer-Policy", + "value": "no-referrer" + }, + { + "key": "X-Powered-By", + "value": "PHP/8.3.30" + }, + { + "key": "Content-Security-Policy", + "value": "default-src 'none';base-uri 'none';manifest-src 'self';frame-ancestors 'none'" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=4040ccc296973d501ba88bc9c3985e59; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=4040ccc296973d501ba88bc9c3985e59; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=4040ccc296973d501ba88bc9c3985e59; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=4040ccc296973d501ba88bc9c3985e59; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=4040ccc296973d501ba88bc9c3985e59; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=bc3c38ee4e7b5732c3ba8270e14e34c9; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=bc3c38ee4e7b5732c3ba8270e14e34c9; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=bc3c38ee4e7b5732c3ba8270e14e34c9; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=bc3c38ee4e7b5732c3ba8270e14e34c9; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=bc3c38ee4e7b5732c3ba8270e14e34c9; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "X-Request-Id", + "value": "keKbTiWdezH8dKfo40yz" + }, + { + "key": "Cache-Control", + "value": "no-cache, no-store, must-revalidate" + }, + { + "key": "Feature-Policy", + "value": "autoplay 'none';camera 'none';fullscreen 'none';geolocation 'none';microphone 'none';payment 'none'" + }, + { + "key": "X-User-Id", + "value": "admin" + }, + { + "key": "Content-Encoding", + "value": "gzip" + }, + { + "key": "Content-Length", + "value": "427" + }, + { + "key": "Keep-Alive", + "value": "timeout=5, max=79" + }, + { + "key": "Connection", + "value": "Keep-Alive" + }, + { + "key": "Content-Type", + "value": "application/json; charset=utf-8" + } + ], + "stream": { + "type": "Buffer", + "data": [ + 123, + 34, + 117, + 114, + 108, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 122, + 97, + 107, + 101, + 110, + 92, + 47, + 118, + 49, + 92, + 47, + 122, + 97, + 107, + 101, + 110, + 92, + 47, + 50, + 51, + 100, + 101, + 53, + 50, + 98, + 48, + 45, + 48, + 54, + 101, + 56, + 45, + 52, + 102, + 53, + 53, + 45, + 57, + 48, + 50, + 54, + 45, + 53, + 97, + 51, + 52, + 48, + 50, + 56, + 49, + 53, + 49, + 52, + 97, + 34, + 44, + 34, + 117, + 117, + 105, + 100, + 34, + 58, + 34, + 50, + 51, + 100, + 101, + 53, + 50, + 98, + 48, + 45, + 48, + 54, + 101, + 56, + 45, + 52, + 102, + 53, + 53, + 45, + 57, + 48, + 50, + 54, + 45, + 53, + 97, + 51, + 52, + 48, + 50, + 56, + 49, + 53, + 49, + 52, + 97, + 34, + 44, + 34, + 105, + 100, + 101, + 110, + 116, + 105, + 102, + 105, + 99, + 97, + 116, + 105, + 101, + 34, + 58, + 34, + 34, + 44, + 34, + 111, + 109, + 115, + 99, + 104, + 114, + 105, + 106, + 118, + 105, + 110, + 103, + 34, + 58, + 34, + 97, + 110, + 100, + 101, + 114, + 101, + 32, + 115, + 116, + 114, + 105, + 110, + 103, + 34, + 44, + 34, + 116, + 111, + 101, + 108, + 105, + 99, + 104, + 116, + 105, + 110, + 103, + 34, + 58, + 34, + 115, + 116, + 114, + 105, + 110, + 103, + 34, + 44, + 34, + 122, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 105, + 92, + 47, + 118, + 49, + 92, + 47, + 122, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 110, + 92, + 47, + 54, + 49, + 57, + 100, + 99, + 51, + 101, + 53, + 45, + 53, + 50, + 102, + 49, + 45, + 52, + 50, + 57, + 52, + 45, + 97, + 53, + 54, + 57, + 45, + 102, + 50, + 49, + 100, + 49, + 54, + 102, + 52, + 52, + 56, + 55, + 57, + 34, + 44, + 34, + 114, + 101, + 103, + 105, + 115, + 116, + 114, + 97, + 116, + 105, + 101, + 100, + 97, + 116, + 117, + 109, + 34, + 58, + 34, + 50, + 48, + 50, + 54, + 45, + 48, + 51, + 45, + 49, + 48, + 84, + 49, + 50, + 58, + 49, + 57, + 58, + 48, + 52, + 43, + 48, + 48, + 58, + 48, + 48, + 34, + 44, + 34, + 115, + 116, + 97, + 114, + 116, + 100, + 97, + 116, + 117, + 109, + 34, + 58, + 34, + 50, + 48, + 49, + 57, + 45, + 48, + 52, + 45, + 48, + 57, + 34, + 44, + 34, + 101, + 105, + 110, + 100, + 100, + 97, + 116, + 117, + 109, + 34, + 58, + 110, + 117, + 108, + 108, + 44, + 34, + 101, + 105, + 110, + 100, + 100, + 97, + 116, + 117, + 109, + 71, + 101, + 112, + 108, + 97, + 110, + 100, + 34, + 58, + 34, + 50, + 48, + 49, + 57, + 45, + 48, + 52, + 45, + 50, + 48, + 34, + 44, + 34, + 117, + 105, + 116, + 101, + 114, + 108, + 105, + 106, + 107, + 101, + 69, + 105, + 110, + 100, + 100, + 97, + 116, + 117, + 109, + 65, + 102, + 100, + 111, + 101, + 110, + 105, + 110, + 103, + 34, + 58, + 34, + 50, + 48, + 49, + 57, + 45, + 48, + 52, + 45, + 48, + 57, + 34, + 44, + 34, + 118, + 101, + 114, + 116, + 114, + 111, + 117, + 119, + 101, + 108, + 105, + 106, + 107, + 104, + 101, + 105, + 100, + 97, + 97, + 110, + 100, + 117, + 105, + 100, + 105, + 110, + 103, + 34, + 58, + 34, + 111, + 112, + 101, + 110, + 98, + 97, + 97, + 114, + 34, + 44, + 34, + 118, + 101, + 114, + 97, + 110, + 116, + 119, + 111, + 111, + 114, + 100, + 101, + 108, + 105, + 106, + 107, + 101, + 79, + 114, + 103, + 97, + 110, + 105, + 115, + 97, + 116, + 105, + 101, + 34, + 58, + 34, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 34, + 44, + 34, + 97, + 114, + 99, + 104, + 105, + 101, + 102, + 110, + 111, + 109, + 105, + 110, + 97, + 116, + 105, + 101, + 34, + 58, + 110, + 117, + 108, + 108, + 44, + 34, + 97, + 114, + 99, + 104, + 105, + 101, + 102, + 97, + 99, + 116, + 105, + 101, + 100, + 97, + 116, + 117, + 109, + 34, + 58, + 110, + 117, + 108, + 108, + 44, + 34, + 97, + 114, + 99, + 104, + 105, + 101, + 102, + 115, + 116, + 97, + 116, + 117, + 115, + 34, + 58, + 34, + 110, + 111, + 103, + 95, + 116, + 101, + 95, + 97, + 114, + 99, + 104, + 105, + 118, + 101, + 114, + 101, + 110, + 34, + 44, + 34, + 98, + 101, + 116, + 97, + 108, + 105, + 110, + 103, + 115, + 105, + 110, + 100, + 105, + 99, + 97, + 116, + 105, + 101, + 34, + 58, + 34, + 103, + 101, + 104, + 101, + 101, + 108, + 34, + 44, + 34, + 108, + 97, + 97, + 116, + 115, + 116, + 101, + 66, + 101, + 116, + 97, + 97, + 108, + 100, + 97, + 116, + 117, + 109, + 34, + 58, + 110, + 117, + 108, + 108, + 44, + 34, + 104, + 111, + 111, + 102, + 100, + 122, + 97, + 97, + 107, + 34, + 58, + 110, + 117, + 108, + 108, + 125 + ] + }, + "cookie": [], + "responseTime": 229, + "responseSize": 788 + }, + "id": "b89c8b89-befd-4e22-8eed-ebbf2ccb4467", + "assertions": [ + { + "assertion": "Zaak bijwerken met valide gegevens geeft 200", + "skipped": false + } + ] + }, + { + "cursor": { + "ref": "fb05da95-5f61-4217-b32f-868b5c1fe8ee", + "length": 313, + "cycles": 1, + "position": 23, + "iteration": 0, + "httpRequestId": "0aad2854-3a01-487d-94c4-aa9a63b7f043" + }, + "item": { + "id": "6e2d88e1-b4c1-4bda-baf0-bb2d60ec50e0", + "name": "(zrc-001c) Zaak deels bijwerken is mogelijk", + "request": { + "url": { + "host": [ + "{{zaak_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Crs", + "value": "EPSG:4326" + }, + { + "key": "Accept-Crs", + "value": "EPSG:4326" + }, + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "PATCH", + "body": { + "mode": "raw", + "raw": "{\n\t\"toelichting\": \"{{toelichting}}\"\n}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "5683c3da-00b9-4ae5-aabd-76b46d8a1eac", + "type": "text/javascript", + "exec": [ + "pm.test(\"Zaak deels bijwerken met valide zaaktype url geeft 200\", function() {", + " pm.response.to.have.status(200);", + " pm.expect(pm.response.json().toelichting).to.be.equal(pm.environment.get(\"toelichting\"));", + "});", + "", + "pm.test(\"Zaak deels bijwerken past gegevens correct aan\", function() {", + " pm.expect(pm.response.json().toelichting).to.be.equal(pm.environment.get(\"toelichting\"));", + "});" + ], + "_lastExecutionId": "29318f75-235c-4b75-9e36-47b487a1a97c" + } + }, + { + "listen": "prerequest", + "script": { + "id": "f0c99e68-88f7-4fae-a08f-14fa0f5fed8d", + "type": "text/javascript", + "exec": [ + "pm.environment.set(\"toelichting\", \"aangepaste toelichting\")" + ], + "_lastExecutionId": "4d4382e7-8f19-4539-b3df-baf6100e3fbb" + } + } + ] + }, + "request": { + "url": { + "protocol": "http", + "port": "8080", + "path": [ + "index.php", + "apps", + "procest", + "api", + "zgw", + "zaken", + "v1", + "zaken", + "23de52b0-06e8-4f55-9026-5a340281514a" + ], + "host": [ + "localhost" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Crs", + "value": "EPSG:4326" + }, + { + "key": "Accept-Crs", + "value": "EPSG:4326" + }, + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Authorization", + "value": "Bearer eyJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJwcm9jZXN0LWFkbWluIiwiY2xpZW50X2lkIjoicHJvY2VzdC1hZG1pbiIsImlhdCI6IjE3NzMxNDUxNDUiLCJ1c2VyX2lkIjoicHJvY2VzdC1hZG1pbiIsInVzZXJfcmVwcmVzZW50YXRpb24iOiIifQ.jKeiDi8xwG5R6Li_rlEOASSbIgCisC2k6N9dyL2LtEU", + "system": true + }, + { + "key": "User-Agent", + "value": "PostmanRuntime/7.39.1", + "system": true + }, + { + "key": "Accept", + "value": "*/*", + "system": true + }, + { + "key": "Cache-Control", + "value": "no-cache", + "system": true + }, + { + "key": "Postman-Token", + "value": "434b72be-ce4c-4c17-ac12-9ae0b4e1b493", + "system": true + }, + { + "key": "Host", + "value": "localhost:8080", + "system": true + }, + { + "key": "Accept-Encoding", + "value": "gzip, deflate, br", + "system": true + }, + { + "key": "Connection", + "value": "keep-alive", + "system": true + }, + { + "key": "Content-Length", + "value": "44", + "system": true + }, + { + "key": "Cookie", + "value": "ocvp3112b4wg=bc3c38ee4e7b5732c3ba8270e14e34c9; oc_sessionPassphrase=LBNdKxRzA0iqoULIruNxDDh2BK3O%2BrCIU8aUmiUcOFvy5Xw1YfjwQNlmBW2IkGwJYtxXh9%2BwDN6vYuGNX07tXzkBtjQJUWTGdzf8AIOUIVxVx5DfyWAQZ7nmYmQv6XSE; nc_sameSiteCookielax=true; nc_sameSiteCookiestrict=true", + "system": true + } + ], + "method": "PATCH", + "body": { + "mode": "raw", + "raw": "{\n\t\"toelichting\": \"aangepaste toelichting\"\n}" + }, + "auth": { + "type": "jwt", + "jwt": [ + { + "type": "string", + "value": "{\r\n \"iss\": \"procest-admin\",\r\n \"client_id\": \"procest-admin\",\r\n \"iat\": \"1773145145\",\r\n \"user_id\": \"procest-admin\",\r\n \"user_representation\": \"\"\r\n}", + "key": "payload" + }, + { + "type": "string", + "value": "procest-admin-secret-key-for-testing", + "key": "secret" + }, + { + "type": "string", + "value": "HS256", + "key": "algorithm" + }, + { + "type": "boolean", + "value": false, + "key": "isSecretBase64Encoded" + }, + { + "type": "string", + "value": "header", + "key": "addTokenTo" + }, + { + "type": "string", + "value": "Bearer", + "key": "headerPrefix" + }, + { + "type": "string", + "value": "token", + "key": "queryParamKey" + }, + { + "type": "string", + "value": "{}", + "key": "header" + } + ] + } + }, + "response": { + "id": "3c102867-e422-4678-8e23-5797932f36cf", + "status": "OK", + "code": 200, + "header": [ + { + "key": "Date", + "value": "Tue, 10 Mar 2026 12:19:04 GMT" + }, + { + "key": "Server", + "value": "Apache/2.4.66 (Debian)" + }, + { + "key": "X-Content-Type-Options", + "value": "nosniff" + }, + { + "key": "X-Frame-Options", + "value": "SAMEORIGIN" + }, + { + "key": "X-Permitted-Cross-Domain-Policies", + "value": "none" + }, + { + "key": "X-Robots-Tag", + "value": "noindex, nofollow" + }, + { + "key": "Referrer-Policy", + "value": "no-referrer" + }, + { + "key": "X-Powered-By", + "value": "PHP/8.3.30" + }, + { + "key": "Content-Security-Policy", + "value": "default-src 'none';base-uri 'none';manifest-src 'self';frame-ancestors 'none'" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=bc3c38ee4e7b5732c3ba8270e14e34c9; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=bc3c38ee4e7b5732c3ba8270e14e34c9; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=bc3c38ee4e7b5732c3ba8270e14e34c9; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=bc3c38ee4e7b5732c3ba8270e14e34c9; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=bc3c38ee4e7b5732c3ba8270e14e34c9; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=b17b01e442abe109c6a46699ce7c3180; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=b17b01e442abe109c6a46699ce7c3180; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=b17b01e442abe109c6a46699ce7c3180; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=b17b01e442abe109c6a46699ce7c3180; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=b17b01e442abe109c6a46699ce7c3180; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "X-Request-Id", + "value": "uVCpHexZXJ2bkjvmNng9" + }, + { + "key": "Cache-Control", + "value": "no-cache, no-store, must-revalidate" + }, + { + "key": "Feature-Policy", + "value": "autoplay 'none';camera 'none';fullscreen 'none';geolocation 'none';microphone 'none';payment 'none'" + }, + { + "key": "X-User-Id", + "value": "admin" + }, + { + "key": "Content-Encoding", + "value": "gzip" + }, + { + "key": "Content-Length", + "value": "436" + }, + { + "key": "Keep-Alive", + "value": "timeout=5, max=78" + }, + { + "key": "Connection", + "value": "Keep-Alive" + }, + { + "key": "Content-Type", + "value": "application/json; charset=utf-8" + } + ], + "stream": { + "type": "Buffer", + "data": [ + 123, + 34, + 117, + 114, + 108, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 122, + 97, + 107, + 101, + 110, + 92, + 47, + 118, + 49, + 92, + 47, + 122, + 97, + 107, + 101, + 110, + 92, + 47, + 50, + 51, + 100, + 101, + 53, + 50, + 98, + 48, + 45, + 48, + 54, + 101, + 56, + 45, + 52, + 102, + 53, + 53, + 45, + 57, + 48, + 50, + 54, + 45, + 53, + 97, + 51, + 52, + 48, + 50, + 56, + 49, + 53, + 49, + 52, + 97, + 34, + 44, + 34, + 117, + 117, + 105, + 100, + 34, + 58, + 34, + 50, + 51, + 100, + 101, + 53, + 50, + 98, + 48, + 45, + 48, + 54, + 101, + 56, + 45, + 52, + 102, + 53, + 53, + 45, + 57, + 48, + 50, + 54, + 45, + 53, + 97, + 51, + 52, + 48, + 50, + 56, + 49, + 53, + 49, + 52, + 97, + 34, + 44, + 34, + 105, + 100, + 101, + 110, + 116, + 105, + 102, + 105, + 99, + 97, + 116, + 105, + 101, + 34, + 58, + 34, + 34, + 44, + 34, + 111, + 109, + 115, + 99, + 104, + 114, + 105, + 106, + 118, + 105, + 110, + 103, + 34, + 58, + 34, + 97, + 110, + 100, + 101, + 114, + 101, + 32, + 115, + 116, + 114, + 105, + 110, + 103, + 34, + 44, + 34, + 116, + 111, + 101, + 108, + 105, + 99, + 104, + 116, + 105, + 110, + 103, + 34, + 58, + 34, + 97, + 97, + 110, + 103, + 101, + 112, + 97, + 115, + 116, + 101, + 32, + 116, + 111, + 101, + 108, + 105, + 99, + 104, + 116, + 105, + 110, + 103, + 34, + 44, + 34, + 122, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 105, + 92, + 47, + 118, + 49, + 92, + 47, + 122, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 110, + 92, + 47, + 54, + 49, + 57, + 100, + 99, + 51, + 101, + 53, + 45, + 53, + 50, + 102, + 49, + 45, + 52, + 50, + 57, + 52, + 45, + 97, + 53, + 54, + 57, + 45, + 102, + 50, + 49, + 100, + 49, + 54, + 102, + 52, + 52, + 56, + 55, + 57, + 34, + 44, + 34, + 114, + 101, + 103, + 105, + 115, + 116, + 114, + 97, + 116, + 105, + 101, + 100, + 97, + 116, + 117, + 109, + 34, + 58, + 34, + 50, + 48, + 50, + 54, + 45, + 48, + 51, + 45, + 49, + 48, + 84, + 49, + 50, + 58, + 49, + 57, + 58, + 48, + 52, + 43, + 48, + 48, + 58, + 48, + 48, + 34, + 44, + 34, + 115, + 116, + 97, + 114, + 116, + 100, + 97, + 116, + 117, + 109, + 34, + 58, + 34, + 50, + 48, + 49, + 57, + 45, + 48, + 52, + 45, + 48, + 57, + 34, + 44, + 34, + 101, + 105, + 110, + 100, + 100, + 97, + 116, + 117, + 109, + 34, + 58, + 110, + 117, + 108, + 108, + 44, + 34, + 101, + 105, + 110, + 100, + 100, + 97, + 116, + 117, + 109, + 71, + 101, + 112, + 108, + 97, + 110, + 100, + 34, + 58, + 34, + 50, + 48, + 49, + 57, + 45, + 48, + 52, + 45, + 50, + 48, + 34, + 44, + 34, + 117, + 105, + 116, + 101, + 114, + 108, + 105, + 106, + 107, + 101, + 69, + 105, + 110, + 100, + 100, + 97, + 116, + 117, + 109, + 65, + 102, + 100, + 111, + 101, + 110, + 105, + 110, + 103, + 34, + 58, + 34, + 50, + 48, + 49, + 57, + 45, + 48, + 52, + 45, + 48, + 57, + 34, + 44, + 34, + 118, + 101, + 114, + 116, + 114, + 111, + 117, + 119, + 101, + 108, + 105, + 106, + 107, + 104, + 101, + 105, + 100, + 97, + 97, + 110, + 100, + 117, + 105, + 100, + 105, + 110, + 103, + 34, + 58, + 34, + 111, + 112, + 101, + 110, + 98, + 97, + 97, + 114, + 34, + 44, + 34, + 118, + 101, + 114, + 97, + 110, + 116, + 119, + 111, + 111, + 114, + 100, + 101, + 108, + 105, + 106, + 107, + 101, + 79, + 114, + 103, + 97, + 110, + 105, + 115, + 97, + 116, + 105, + 101, + 34, + 58, + 34, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 34, + 44, + 34, + 97, + 114, + 99, + 104, + 105, + 101, + 102, + 110, + 111, + 109, + 105, + 110, + 97, + 116, + 105, + 101, + 34, + 58, + 110, + 117, + 108, + 108, + 44, + 34, + 97, + 114, + 99, + 104, + 105, + 101, + 102, + 97, + 99, + 116, + 105, + 101, + 100, + 97, + 116, + 117, + 109, + 34, + 58, + 110, + 117, + 108, + 108, + 44, + 34, + 97, + 114, + 99, + 104, + 105, + 101, + 102, + 115, + 116, + 97, + 116, + 117, + 115, + 34, + 58, + 34, + 110, + 111, + 103, + 95, + 116, + 101, + 95, + 97, + 114, + 99, + 104, + 105, + 118, + 101, + 114, + 101, + 110, + 34, + 44, + 34, + 98, + 101, + 116, + 97, + 108, + 105, + 110, + 103, + 115, + 105, + 110, + 100, + 105, + 99, + 97, + 116, + 105, + 101, + 34, + 58, + 34, + 103, + 101, + 104, + 101, + 101, + 108, + 34, + 44, + 34, + 108, + 97, + 97, + 116, + 115, + 116, + 101, + 66, + 101, + 116, + 97, + 97, + 108, + 100, + 97, + 116, + 117, + 109, + 34, + 58, + 110, + 117, + 108, + 108, + 44, + 34, + 104, + 111, + 111, + 102, + 100, + 122, + 97, + 97, + 107, + 34, + 58, + 110, + 117, + 108, + 108, + 125 + ] + }, + "cookie": [], + "responseTime": 238, + "responseSize": 804 + }, + "id": "6e2d88e1-b4c1-4bda-baf0-bb2d60ec50e0", + "assertions": [ + { + "assertion": "Zaak deels bijwerken met valide zaaktype url geeft 200", + "skipped": false + }, + { + "assertion": "Zaak deels bijwerken past gegevens correct aan", + "skipped": false + } + ] + }, + { + "cursor": { + "ref": "5e2e7ae3-ad4d-4fbc-93cf-f772636fb870", + "length": 313, + "cycles": 1, + "position": 24, + "iteration": 0, + "httpRequestId": "c9e016ba-565f-4093-8547-711acc9b5bc0" + }, + "item": { + "id": "4c202958-83eb-4ff9-a1f8-640edc4cb3af", + "name": "(zrc-001d) Zaak aanmaken met ongeldige zaaktype url is onmogelijk", + "request": { + "url": { + "path": [ + "zaken" + ], + "host": [ + "{{zrc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Accept-Crs", + "value": "EPSG:4326" + }, + { + "key": "Content-Crs", + "value": "EPSG:4326" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\r\n \"bronorganisatie\": \"000000000\",\r\n \"omschrijving\": \"string\",\r\n \"toelichting\": \"string\",\r\n \"registratiedatum\": \"2019-04-09\",\r\n \"verantwoordelijkeOrganisatie\": \"000000000\",\r\n \"zaaktype\": \"{{ztc_url}}/zaaktypen/xyz\",\r\n \"startdatum\": \"2019-04-09\",\r\n \"einddatumGepland\": \"2019-04-20\",\r\n \"uiterlijkeEinddatumAfdoening\": \"2019-04-09\",\r\n \"publicatiedatum\": \"2019-04-09\",\r\n \"vertrouwelijkheidaanduiding\": \"openbaar\",\r\n \"betalingsindicatie\": \"geheel\",\r\n \"laatsteBetaalDatum\": \"2019-01-01\",\r\n \"zaakgeometrie\": {\r\n \"type\": \"Point\",\r\n \"coordinates\": [\r\n 53,\r\n 5\r\n ]\r\n },\r\n \"opschorting\": {\r\n \"indicatie\": true,\r\n \"reden\": \"string\"\r\n },\r\n \"selectielijstklasse\": \"{{selectielijstklasse_url}}\",\r\n \"archiefstatus\": \"nog_te_archiveren\",\r\n \"deelzaaktypen\" : [\"{{deelzaaktype_url}}\"]\r\n}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "ae6ba60a-eb6e-4019-9115-1105672f4eb4", + "type": "text/javascript", + "packages": {}, + "exec": [ + "pm.test(\"Zaak aanmaken met zaaktype url die niet resulteert in 200 geeft 400\", function() {", + " pm.response.to.have.status(400);", + " ", + " // Verify that the 400 is returned for the correct reason", + " var error = pm.response.json()[\"invalidParams\"][0];", + " pm.expect(error.name).to.be.equal(\"zaaktype\");", + " pm.expect(error.code).to.be.equal(\"bad-url\");", + "});", + "", + "// If the test failed and the Zaak was created, delete it", + "if(pm.response.code == 201) {", + " pm.environment.set(\"created_zaak_url\", pm.response.json().url);", + "", + "}" + ], + "_lastExecutionId": "2d0a354a-43b4-46a2-b3a5-c35a5e1b4fc9" + } + }, + { + "listen": "prerequest", + "script": { + "id": "637c5ee1-6481-441c-989f-20ba2025b134", + "type": "text/javascript", + "packages": {}, + "exec": [ + "" + ], + "_lastExecutionId": "9152b23f-75a9-4460-9d6e-a88803a4a425" + } + } + ] + }, + "request": { + "url": { + "protocol": "http", + "port": "8080", + "path": [ + "index.php", + "apps", + "procest", + "api", + "zgw", + "zaken", + "v1", + "zaken" + ], + "host": [ + "localhost" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Accept-Crs", + "value": "EPSG:4326" + }, + { + "key": "Content-Crs", + "value": "EPSG:4326" + }, + { + "key": "Authorization", + "value": "Bearer eyJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJwcm9jZXN0LWFkbWluIiwiY2xpZW50X2lkIjoicHJvY2VzdC1hZG1pbiIsImlhdCI6IjE3NzMxNDUxNDUiLCJ1c2VyX2lkIjoicHJvY2VzdC1hZG1pbiIsInVzZXJfcmVwcmVzZW50YXRpb24iOiIifQ.jKeiDi8xwG5R6Li_rlEOASSbIgCisC2k6N9dyL2LtEU", + "system": true + }, + { + "key": "User-Agent", + "value": "PostmanRuntime/7.39.1", + "system": true + }, + { + "key": "Accept", + "value": "*/*", + "system": true + }, + { + "key": "Cache-Control", + "value": "no-cache", + "system": true + }, + { + "key": "Postman-Token", + "value": "30c5e9cc-e763-4d94-9ce4-534f86f2f10f", + "system": true + }, + { + "key": "Host", + "value": "localhost:8080", + "system": true + }, + { + "key": "Accept-Encoding", + "value": "gzip, deflate, br", + "system": true + }, + { + "key": "Connection", + "value": "keep-alive", + "system": true + }, + { + "key": "Content-Length", + "value": "1091", + "system": true + }, + { + "key": "Cookie", + "value": "ocvp3112b4wg=b17b01e442abe109c6a46699ce7c3180; oc_sessionPassphrase=LBNdKxRzA0iqoULIruNxDDh2BK3O%2BrCIU8aUmiUcOFvy5Xw1YfjwQNlmBW2IkGwJYtxXh9%2BwDN6vYuGNX07tXzkBtjQJUWTGdzf8AIOUIVxVx5DfyWAQZ7nmYmQv6XSE; nc_sameSiteCookielax=true; nc_sameSiteCookiestrict=true", + "system": true + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\r\n \"bronorganisatie\": \"000000000\",\r\n \"omschrijving\": \"string\",\r\n \"toelichting\": \"string\",\r\n \"registratiedatum\": \"2019-04-09\",\r\n \"verantwoordelijkeOrganisatie\": \"000000000\",\r\n \"zaaktype\": \"http://localhost:8080/index.php/apps/procest/api/zgw/catalogi/v1/zaaktypen/xyz\",\r\n \"startdatum\": \"2019-04-09\",\r\n \"einddatumGepland\": \"2019-04-20\",\r\n \"uiterlijkeEinddatumAfdoening\": \"2019-04-09\",\r\n \"publicatiedatum\": \"2019-04-09\",\r\n \"vertrouwelijkheidaanduiding\": \"openbaar\",\r\n \"betalingsindicatie\": \"geheel\",\r\n \"laatsteBetaalDatum\": \"2019-01-01\",\r\n \"zaakgeometrie\": {\r\n \"type\": \"Point\",\r\n \"coordinates\": [\r\n 53,\r\n 5\r\n ]\r\n },\r\n \"opschorting\": {\r\n \"indicatie\": true,\r\n \"reden\": \"string\"\r\n },\r\n \"selectielijstklasse\": \"https://selectielijst.openzaak.nl/api/v1/resultaten/0eb8f19f-d55e-4a15-8b5f-26cdf07482c1\",\r\n \"archiefstatus\": \"nog_te_archiveren\",\r\n \"deelzaaktypen\" : [\"http://localhost:8080/index.php/apps/procest/api/zgw/catalogi/v1/zaaktypen/7571bffe-5579-4295-9fac-87a9a6b6c5ac\"]\r\n}" + }, + "auth": { + "type": "jwt", + "jwt": [ + { + "type": "string", + "value": "{\r\n \"iss\": \"procest-admin\",\r\n \"client_id\": \"procest-admin\",\r\n \"iat\": \"1773145145\",\r\n \"user_id\": \"procest-admin\",\r\n \"user_representation\": \"\"\r\n}", + "key": "payload" + }, + { + "type": "string", + "value": "procest-admin-secret-key-for-testing", + "key": "secret" + }, + { + "type": "string", + "value": "HS256", + "key": "algorithm" + }, + { + "type": "boolean", + "value": false, + "key": "isSecretBase64Encoded" + }, + { + "type": "string", + "value": "header", + "key": "addTokenTo" + }, + { + "type": "string", + "value": "Bearer", + "key": "headerPrefix" + }, + { + "type": "string", + "value": "token", + "key": "queryParamKey" + }, + { + "type": "string", + "value": "{}", + "key": "header" + } + ] + } + }, + "response": { + "id": "c869dbbd-bb71-4e74-86f6-09d8f8ab65ee", + "status": "Bad request", + "code": 400, + "header": [ + { + "key": "Date", + "value": "Tue, 10 Mar 2026 12:19:05 GMT" + }, + { + "key": "Server", + "value": "Apache/2.4.66 (Debian)" + }, + { + "key": "X-Content-Type-Options", + "value": "nosniff" + }, + { + "key": "X-Frame-Options", + "value": "SAMEORIGIN" + }, + { + "key": "X-Permitted-Cross-Domain-Policies", + "value": "none" + }, + { + "key": "X-Robots-Tag", + "value": "noindex, nofollow" + }, + { + "key": "Referrer-Policy", + "value": "no-referrer" + }, + { + "key": "X-Powered-By", + "value": "PHP/8.3.30" + }, + { + "key": "Content-Security-Policy", + "value": "default-src 'none';base-uri 'none';manifest-src 'self';frame-ancestors 'none'" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=b17b01e442abe109c6a46699ce7c3180; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=b17b01e442abe109c6a46699ce7c3180; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=b17b01e442abe109c6a46699ce7c3180; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=b17b01e442abe109c6a46699ce7c3180; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=b17b01e442abe109c6a46699ce7c3180; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=f3435e83e9aa7b2d78745b014d303187; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=f3435e83e9aa7b2d78745b014d303187; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=f3435e83e9aa7b2d78745b014d303187; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "X-Request-Id", + "value": "pYBkTmWOFi0ZD5aG3dnE" + }, + { + "key": "Cache-Control", + "value": "no-cache, no-store, must-revalidate" + }, + { + "key": "Feature-Policy", + "value": "autoplay 'none';camera 'none';fullscreen 'none';geolocation 'none';microphone 'none';payment 'none'" + }, + { + "key": "X-User-Id", + "value": "admin" + }, + { + "key": "Content-Length", + "value": "177" + }, + { + "key": "Connection", + "value": "close" + }, + { + "key": "Content-Type", + "value": "application/json; charset=utf-8" + } + ], + "stream": { + "type": "Buffer", + "data": [ + 123, + 34, + 100, + 101, + 116, + 97, + 105, + 108, + 34, + 58, + 34, + 68, + 101, + 32, + 122, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 32, + 85, + 82, + 76, + 32, + 105, + 115, + 32, + 111, + 110, + 103, + 101, + 108, + 100, + 105, + 103, + 46, + 34, + 44, + 34, + 105, + 110, + 118, + 97, + 108, + 105, + 100, + 80, + 97, + 114, + 97, + 109, + 115, + 34, + 58, + 91, + 123, + 34, + 110, + 97, + 109, + 101, + 34, + 58, + 34, + 122, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 34, + 44, + 34, + 99, + 111, + 100, + 101, + 34, + 58, + 34, + 98, + 97, + 100, + 45, + 117, + 114, + 108, + 34, + 44, + 34, + 114, + 101, + 97, + 115, + 111, + 110, + 34, + 58, + 34, + 68, + 101, + 32, + 122, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 32, + 85, + 82, + 76, + 32, + 105, + 115, + 32, + 111, + 110, + 103, + 101, + 108, + 100, + 105, + 103, + 32, + 111, + 102, + 32, + 119, + 105, + 106, + 115, + 116, + 32, + 110, + 105, + 101, + 116, + 32, + 110, + 97, + 97, + 114, + 32, + 101, + 101, + 110, + 32, + 122, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 32, + 114, + 101, + 115, + 111, + 117, + 114, + 99, + 101, + 46, + 34, + 125, + 93, + 125 + ] + }, + "cookie": [], + "responseTime": 103, + "responseSize": 177 + }, + "id": "4c202958-83eb-4ff9-a1f8-640edc4cb3af", + "assertions": [ + { + "assertion": "Zaak aanmaken met zaaktype url die niet resulteert in 200 geeft 400", + "skipped": false + } + ] + }, + { + "cursor": { + "ref": "825c6459-a8ee-4bc2-b0ea-6516c652797a", + "length": 313, + "cycles": 1, + "position": 25, + "iteration": 0, + "httpRequestId": "40fa4422-696a-4bbc-a982-2314bf71b167" + }, + "item": { + "id": "8af16436-3416-4962-a946-9536f0dab25d", + "name": "(zrc-001e) Zaak aanmaken met zaaktype url die niet wijst naar Zaaktype is onmogelijk", + "request": { + "url": { + "path": [ + "zaken" + ], + "host": [ + "{{zrc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Accept-Crs", + "value": "EPSG:4326" + }, + { + "key": "Content-Crs", + "value": "EPSG:4326" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\r\n \"bronorganisatie\": \"000000000\",\r\n \"omschrijving\": \"string\",\r\n \"toelichting\": \"string\",\r\n \"registratiedatum\": \"2019-04-09\",\r\n \"verantwoordelijkeOrganisatie\": \"000000000\",\r\n \"zaaktype\": \"https://www.roxit.nl\",\r\n \"startdatum\": \"2019-04-09\",\r\n \"einddatumGepland\": \"2019-04-20\",\r\n \"uiterlijkeEinddatumAfdoening\": \"2019-04-09\",\r\n \"publicatiedatum\": \"2019-04-09\",\r\n \"vertrouwelijkheidaanduiding\": \"openbaar\",\r\n \"betalingsindicatie\": \"geheel\",\r\n \"laatsteBetaalDatum\": \"2019-01-01\",\r\n \"zaakgeometrie\": {\r\n \"type\": \"Point\",\r\n \"coordinates\": [\r\n 53,\r\n 5\r\n ]\r\n },\r\n \"opschorting\": {\r\n \"indicatie\": true,\r\n \"reden\": \"string\"\r\n },\r\n \"selectielijstklasse\": \"{{selectielijstklasse_url}}\",\r\n \"archiefstatus\": \"nog_te_archiveren\",\r\n \"deelzaaktypen\" : [\"{{deelzaaktype_url}}\"]\r\n}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "a9be27d5-bb2e-4eac-9f3d-8c3d37296578", + "type": "text/javascript", + "packages": {}, + "exec": [ + "pm.test(\"Zaak aanmaken met zaaktype url die niet wijst naar Zaaktype-resource geeft 400\", function() {", + " pm.response.to.have.status(400);", + " ", + " // Verify that the 400 is returned for the correct reason", + " var error = pm.response.json()[\"invalidParams\"][0];", + " pm.expect(error.name).to.be.equal(\"zaaktype\");", + " ", + "});", + "", + "// If the test failed and the Zaak was created, delete it", + "if(pm.response.code == 201) {", + " pm.environment.set(\"created_zaak_url\", pm.response.json().url);", + "", + "}" + ], + "_lastExecutionId": "8c926c43-bff7-4740-9504-aed3e75d05c0" + } + }, + { + "listen": "prerequest", + "script": { + "id": "667e8c56-56ad-4a72-958c-c4c039d0af0f", + "type": "text/javascript", + "packages": {}, + "exec": [ + "" + ], + "_lastExecutionId": "e5867acf-a72d-4557-b3df-bc0cd7fb1c77" + } + } + ] + }, + "request": { + "url": { + "protocol": "http", + "port": "8080", + "path": [ + "index.php", + "apps", + "procest", + "api", + "zgw", + "zaken", + "v1", + "zaken" + ], + "host": [ + "localhost" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Accept-Crs", + "value": "EPSG:4326" + }, + { + "key": "Content-Crs", + "value": "EPSG:4326" + }, + { + "key": "Authorization", + "value": "Bearer eyJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJwcm9jZXN0LWFkbWluIiwiY2xpZW50X2lkIjoicHJvY2VzdC1hZG1pbiIsImlhdCI6IjE3NzMxNDUxNDUiLCJ1c2VyX2lkIjoicHJvY2VzdC1hZG1pbiIsInVzZXJfcmVwcmVzZW50YXRpb24iOiIifQ.jKeiDi8xwG5R6Li_rlEOASSbIgCisC2k6N9dyL2LtEU", + "system": true + }, + { + "key": "User-Agent", + "value": "PostmanRuntime/7.39.1", + "system": true + }, + { + "key": "Accept", + "value": "*/*", + "system": true + }, + { + "key": "Cache-Control", + "value": "no-cache", + "system": true + }, + { + "key": "Postman-Token", + "value": "ee716d76-c8ca-426d-9ee5-b6efa4c074be", + "system": true + }, + { + "key": "Host", + "value": "localhost:8080", + "system": true + }, + { + "key": "Accept-Encoding", + "value": "gzip, deflate, br", + "system": true + }, + { + "key": "Connection", + "value": "keep-alive", + "system": true + }, + { + "key": "Content-Length", + "value": "1033", + "system": true + }, + { + "key": "Cookie", + "value": "ocvp3112b4wg=f3435e83e9aa7b2d78745b014d303187; oc_sessionPassphrase=LBNdKxRzA0iqoULIruNxDDh2BK3O%2BrCIU8aUmiUcOFvy5Xw1YfjwQNlmBW2IkGwJYtxXh9%2BwDN6vYuGNX07tXzkBtjQJUWTGdzf8AIOUIVxVx5DfyWAQZ7nmYmQv6XSE; nc_sameSiteCookielax=true; nc_sameSiteCookiestrict=true", + "system": true + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\r\n \"bronorganisatie\": \"000000000\",\r\n \"omschrijving\": \"string\",\r\n \"toelichting\": \"string\",\r\n \"registratiedatum\": \"2019-04-09\",\r\n \"verantwoordelijkeOrganisatie\": \"000000000\",\r\n \"zaaktype\": \"https://www.roxit.nl\",\r\n \"startdatum\": \"2019-04-09\",\r\n \"einddatumGepland\": \"2019-04-20\",\r\n \"uiterlijkeEinddatumAfdoening\": \"2019-04-09\",\r\n \"publicatiedatum\": \"2019-04-09\",\r\n \"vertrouwelijkheidaanduiding\": \"openbaar\",\r\n \"betalingsindicatie\": \"geheel\",\r\n \"laatsteBetaalDatum\": \"2019-01-01\",\r\n \"zaakgeometrie\": {\r\n \"type\": \"Point\",\r\n \"coordinates\": [\r\n 53,\r\n 5\r\n ]\r\n },\r\n \"opschorting\": {\r\n \"indicatie\": true,\r\n \"reden\": \"string\"\r\n },\r\n \"selectielijstklasse\": \"https://selectielijst.openzaak.nl/api/v1/resultaten/0eb8f19f-d55e-4a15-8b5f-26cdf07482c1\",\r\n \"archiefstatus\": \"nog_te_archiveren\",\r\n \"deelzaaktypen\" : [\"http://localhost:8080/index.php/apps/procest/api/zgw/catalogi/v1/zaaktypen/7571bffe-5579-4295-9fac-87a9a6b6c5ac\"]\r\n}" + }, + "auth": { + "type": "jwt", + "jwt": [ + { + "type": "string", + "value": "{\r\n \"iss\": \"procest-admin\",\r\n \"client_id\": \"procest-admin\",\r\n \"iat\": \"1773145145\",\r\n \"user_id\": \"procest-admin\",\r\n \"user_representation\": \"\"\r\n}", + "key": "payload" + }, + { + "type": "string", + "value": "procest-admin-secret-key-for-testing", + "key": "secret" + }, + { + "type": "string", + "value": "HS256", + "key": "algorithm" + }, + { + "type": "boolean", + "value": false, + "key": "isSecretBase64Encoded" + }, + { + "type": "string", + "value": "header", + "key": "addTokenTo" + }, + { + "type": "string", + "value": "Bearer", + "key": "headerPrefix" + }, + { + "type": "string", + "value": "token", + "key": "queryParamKey" + }, + { + "type": "string", + "value": "{}", + "key": "header" + } + ] + } + }, + "response": { + "id": "17a00790-ff71-4271-82fe-28f013d1718f", + "status": "Bad request", + "code": 400, + "header": [ + { + "key": "Date", + "value": "Tue, 10 Mar 2026 12:19:05 GMT" + }, + { + "key": "Server", + "value": "Apache/2.4.66 (Debian)" + }, + { + "key": "X-Content-Type-Options", + "value": "nosniff" + }, + { + "key": "X-Frame-Options", + "value": "SAMEORIGIN" + }, + { + "key": "X-Permitted-Cross-Domain-Policies", + "value": "none" + }, + { + "key": "X-Robots-Tag", + "value": "noindex, nofollow" + }, + { + "key": "Referrer-Policy", + "value": "no-referrer" + }, + { + "key": "X-Powered-By", + "value": "PHP/8.3.30" + }, + { + "key": "Content-Security-Policy", + "value": "default-src 'none';base-uri 'none';manifest-src 'self';frame-ancestors 'none'" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=f3435e83e9aa7b2d78745b014d303187; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=f3435e83e9aa7b2d78745b014d303187; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=f3435e83e9aa7b2d78745b014d303187; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=f3435e83e9aa7b2d78745b014d303187; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=f3435e83e9aa7b2d78745b014d303187; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=251c2f7fcad802ef671ef91bccc23898; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=251c2f7fcad802ef671ef91bccc23898; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=251c2f7fcad802ef671ef91bccc23898; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "X-Request-Id", + "value": "HCaUGVCxDmzsedBlXbn3" + }, + { + "key": "Cache-Control", + "value": "no-cache, no-store, must-revalidate" + }, + { + "key": "Feature-Policy", + "value": "autoplay 'none';camera 'none';fullscreen 'none';geolocation 'none';microphone 'none';payment 'none'" + }, + { + "key": "X-User-Id", + "value": "admin" + }, + { + "key": "Content-Length", + "value": "177" + }, + { + "key": "Connection", + "value": "close" + }, + { + "key": "Content-Type", + "value": "application/json; charset=utf-8" + } + ], + "stream": { + "type": "Buffer", + "data": [ + 123, + 34, + 100, + 101, + 116, + 97, + 105, + 108, + 34, + 58, + 34, + 68, + 101, + 32, + 122, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 32, + 85, + 82, + 76, + 32, + 105, + 115, + 32, + 111, + 110, + 103, + 101, + 108, + 100, + 105, + 103, + 46, + 34, + 44, + 34, + 105, + 110, + 118, + 97, + 108, + 105, + 100, + 80, + 97, + 114, + 97, + 109, + 115, + 34, + 58, + 91, + 123, + 34, + 110, + 97, + 109, + 101, + 34, + 58, + 34, + 122, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 34, + 44, + 34, + 99, + 111, + 100, + 101, + 34, + 58, + 34, + 98, + 97, + 100, + 45, + 117, + 114, + 108, + 34, + 44, + 34, + 114, + 101, + 97, + 115, + 111, + 110, + 34, + 58, + 34, + 68, + 101, + 32, + 122, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 32, + 85, + 82, + 76, + 32, + 105, + 115, + 32, + 111, + 110, + 103, + 101, + 108, + 100, + 105, + 103, + 32, + 111, + 102, + 32, + 119, + 105, + 106, + 115, + 116, + 32, + 110, + 105, + 101, + 116, + 32, + 110, + 97, + 97, + 114, + 32, + 101, + 101, + 110, + 32, + 122, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 32, + 114, + 101, + 115, + 111, + 117, + 114, + 99, + 101, + 46, + 34, + 125, + 93, + 125 + ] + }, + "cookie": [], + "responseTime": 89, + "responseSize": 177 + }, + "id": "8af16436-3416-4962-a946-9536f0dab25d", + "assertions": [ + { + "assertion": "Zaak aanmaken met zaaktype url die niet wijst naar Zaaktype-resource geeft 400", + "skipped": false + } + ] + }, + { + "cursor": { + "ref": "3be3d254-4e31-4c05-8690-2bdf17591bd6", + "length": 313, + "cycles": 1, + "position": 26, + "iteration": 0, + "httpRequestId": "091c6596-eae7-4e6e-a6ce-e61e38ff8cb2" + }, + "item": { + "id": "77f1cddb-bacb-4af8-991d-a5bbe770c233", + "name": "Create Zaaktype for Zaak updates", + "request": { + "url": { + "path": [ + "zaaktypen" + ], + "host": [ + "{{ztc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n\t\"identificatie\": \"{{random_identificatie3}}\",\n \"omschrijving\": \"zrc_tests_1\",\n \"vertrouwelijkheidaanduiding\": \"openbaar\",\n \"doel\": \"test doel\",\n \"verantwoordelijke\":\"X\",\n \"aanleiding\": \"test aanleiding\",\n \"indicatieInternOfExtern\": \"extern\",\n \"handelingInitiator\": \"indienen\",\n \"onderwerp\": \"openbare ruimte\",\n \"handelingBehandelaar\": \"behandelen\",\n \"doorlooptijd\": \"P10D\",\n \"opschortingEnAanhoudingMogelijk\": false,\n \"verlengingMogelijk\": true,\n \"publicatieIndicatie\": false,\n \"productenOfDiensten\": [\n \"https://ref.tst.vng.cloud/standaard/\"\n ],\n \"selectielijstProcestype\": \"{{procestype_procestermijn_nihil_url}}\",\n \"referentieproces\": {\n \"naam\": \"test\",\n \"link\": \"\"\n },\n \"deelzaaktypen\": [\n \"{{deelzaaktype_identificatie}}\"\n ],\n \"catalogus\": \"{{catalogus_url}}\",\n \"statustypen\": [\n \n ],\n \"resultaattypen\": [\n ],\n \"eigenschappen\": [\n ],\n \"informatieobjecttypen\": [],\n \"besluittypen\": [\n \"{{besluittype_omschrijving}}\"\n ],\n \"gerelateerdeZaaktypen\": [],\n \"beginGeldigheid\": \"2019-01-01\",\n \"versiedatum\": \"2019-01-01\",\n \"concept\": true,\n \"verlengingstermijn\": \"P5D\"\n}" + } + }, + "response": [], + "event": [ + { + "listen": "prerequest", + "script": { + "id": "9f1b09f7-5d89-4148-bbe0-f85d522ef6fb", + "type": "text/javascript", + "packages": {}, + "exec": [ + "", + "var uuid = require('uuid');", + "var myUUID = uuid.v4(); ", + "pm.environment.set(\"random_identificatie3\", myUUID);", + "" + ], + "_lastExecutionId": "22bb4749-79b8-4dc0-9985-c5c15ffc9606" + } + }, + { + "listen": "test", + "script": { + "id": "d09a6ca6-0858-40de-9f06-243e6f7ea7a3", + "type": "text/javascript", + "packages": {}, + "exec": [ + "pm.environment.set(\"temp_zaaktype_url\", pm.response.json().url);" + ], + "_lastExecutionId": "5cebc24f-b61a-4fae-b48b-40ca0c567d30" + } + } + ] + }, + "request": { + "url": { + "protocol": "http", + "port": "8080", + "path": [ + "index.php", + "apps", + "procest", + "api", + "zgw", + "catalogi", + "v1", + "zaaktypen" + ], + "host": [ + "localhost" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Authorization", + "value": "Bearer eyJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJwcm9jZXN0LWFkbWluIiwiY2xpZW50X2lkIjoicHJvY2VzdC1hZG1pbiIsImlhdCI6IjE3NzMxNDUxNDUiLCJ1c2VyX2lkIjoicHJvY2VzdC1hZG1pbiIsInVzZXJfcmVwcmVzZW50YXRpb24iOiIifQ.jKeiDi8xwG5R6Li_rlEOASSbIgCisC2k6N9dyL2LtEU", + "system": true + }, + { + "key": "User-Agent", + "value": "PostmanRuntime/7.39.1", + "system": true + }, + { + "key": "Accept", + "value": "*/*", + "system": true + }, + { + "key": "Cache-Control", + "value": "no-cache", + "system": true + }, + { + "key": "Postman-Token", + "value": "9d02c997-77f8-432a-ab31-e256a792bfd7", + "system": true + }, + { + "key": "Host", + "value": "localhost:8080", + "system": true + }, + { + "key": "Accept-Encoding", + "value": "gzip, deflate, br", + "system": true + }, + { + "key": "Connection", + "value": "keep-alive", + "system": true + }, + { + "key": "Content-Length", + "value": "1380", + "system": true + }, + { + "key": "Cookie", + "value": "ocvp3112b4wg=251c2f7fcad802ef671ef91bccc23898; oc_sessionPassphrase=LBNdKxRzA0iqoULIruNxDDh2BK3O%2BrCIU8aUmiUcOFvy5Xw1YfjwQNlmBW2IkGwJYtxXh9%2BwDN6vYuGNX07tXzkBtjQJUWTGdzf8AIOUIVxVx5DfyWAQZ7nmYmQv6XSE; nc_sameSiteCookielax=true; nc_sameSiteCookiestrict=true", + "system": true + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n\t\"identificatie\": \"e6fb2fa1-8f0b-4e18-abdb-4932b35f6c97\",\n \"omschrijving\": \"zrc_tests_1\",\n \"vertrouwelijkheidaanduiding\": \"openbaar\",\n \"doel\": \"test doel\",\n \"verantwoordelijke\":\"X\",\n \"aanleiding\": \"test aanleiding\",\n \"indicatieInternOfExtern\": \"extern\",\n \"handelingInitiator\": \"indienen\",\n \"onderwerp\": \"openbare ruimte\",\n \"handelingBehandelaar\": \"behandelen\",\n \"doorlooptijd\": \"P10D\",\n \"opschortingEnAanhoudingMogelijk\": false,\n \"verlengingMogelijk\": true,\n \"publicatieIndicatie\": false,\n \"productenOfDiensten\": [\n \"https://ref.tst.vng.cloud/standaard/\"\n ],\n \"selectielijstProcestype\": \"https://selectielijst.openzaak.nl/api/v1/procestypen/838e405a-9b12-43c4-a985-d7a7490d422e\",\n \"referentieproces\": {\n \"naam\": \"test\",\n \"link\": \"\"\n },\n \"deelzaaktypen\": [\n \"cae6f26a-1321-4bff-b314-421ddf7775b9\"\n ],\n \"catalogus\": \"http://localhost:8080/index.php/apps/procest/api/zgw/catalogi/v1/catalogussen/5057408f-fd76-469e-8646-bcc4ba2efa8d\",\n \"statustypen\": [\n \n ],\n \"resultaattypen\": [\n ],\n \"eigenschappen\": [\n ],\n \"informatieobjecttypen\": [],\n \"besluittypen\": [\n \"{{besluittype_omschrijving}}\"\n ],\n \"gerelateerdeZaaktypen\": [],\n \"beginGeldigheid\": \"2019-01-01\",\n \"versiedatum\": \"2019-01-01\",\n \"concept\": true,\n \"verlengingstermijn\": \"P5D\"\n}" + }, + "auth": { + "type": "jwt", + "jwt": [ + { + "type": "string", + "value": "{\r\n \"iss\": \"procest-admin\",\r\n \"client_id\": \"procest-admin\",\r\n \"iat\": \"1773145145\",\r\n \"user_id\": \"procest-admin\",\r\n \"user_representation\": \"\"\r\n}", + "key": "payload" + }, + { + "type": "string", + "value": "procest-admin-secret-key-for-testing", + "key": "secret" + }, + { + "type": "string", + "value": "HS256", + "key": "algorithm" + }, + { + "type": "boolean", + "value": false, + "key": "isSecretBase64Encoded" + }, + { + "type": "string", + "value": "header", + "key": "addTokenTo" + }, + { + "type": "string", + "value": "Bearer", + "key": "headerPrefix" + }, + { + "type": "string", + "value": "token", + "key": "queryParamKey" + }, + { + "type": "string", + "value": "{}", + "key": "header" + } + ] + } + }, + "response": { + "id": "ffdb9e09-e572-44d3-acaf-bcdcab236625", + "status": "Created", + "code": 201, + "header": [ + { + "key": "Date", + "value": "Tue, 10 Mar 2026 12:19:05 GMT" + }, + { + "key": "Server", + "value": "Apache/2.4.66 (Debian)" + }, + { + "key": "X-Content-Type-Options", + "value": "nosniff" + }, + { + "key": "X-Frame-Options", + "value": "SAMEORIGIN" + }, + { + "key": "X-Permitted-Cross-Domain-Policies", + "value": "none" + }, + { + "key": "X-Robots-Tag", + "value": "noindex, nofollow" + }, + { + "key": "Referrer-Policy", + "value": "no-referrer" + }, + { + "key": "X-Powered-By", + "value": "PHP/8.3.30" + }, + { + "key": "Content-Security-Policy", + "value": "default-src 'none';base-uri 'none';manifest-src 'self';frame-ancestors 'none'" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=251c2f7fcad802ef671ef91bccc23898; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=251c2f7fcad802ef671ef91bccc23898; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=251c2f7fcad802ef671ef91bccc23898; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=251c2f7fcad802ef671ef91bccc23898; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=251c2f7fcad802ef671ef91bccc23898; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=2d57619f6dd971cf7bc4a846cdf43d5b; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=2d57619f6dd971cf7bc4a846cdf43d5b; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=2d57619f6dd971cf7bc4a846cdf43d5b; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=2d57619f6dd971cf7bc4a846cdf43d5b; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=2d57619f6dd971cf7bc4a846cdf43d5b; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "X-Request-Id", + "value": "Y5telul86qP6M7n4u297" + }, + { + "key": "Cache-Control", + "value": "no-cache, no-store, must-revalidate" + }, + { + "key": "Feature-Policy", + "value": "autoplay 'none';camera 'none';fullscreen 'none';geolocation 'none';microphone 'none';payment 'none'" + }, + { + "key": "X-User-Id", + "value": "admin" + }, + { + "key": "Content-Length", + "value": "1337" + }, + { + "key": "Keep-Alive", + "value": "timeout=5, max=100" + }, + { + "key": "Connection", + "value": "Keep-Alive" + }, + { + "key": "Content-Type", + "value": "application/json; charset=utf-8" + } + ], + "stream": { + "type": "Buffer", + "data": [ + 123, + 34, + 117, + 114, + 108, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 105, + 92, + 47, + 118, + 49, + 92, + 47, + 122, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 110, + 92, + 47, + 100, + 102, + 51, + 56, + 50, + 102, + 98, + 52, + 45, + 100, + 48, + 54, + 54, + 45, + 52, + 52, + 48, + 98, + 45, + 57, + 53, + 50, + 55, + 45, + 54, + 97, + 50, + 51, + 52, + 51, + 101, + 57, + 99, + 97, + 57, + 99, + 34, + 44, + 34, + 117, + 117, + 105, + 100, + 34, + 58, + 34, + 100, + 102, + 51, + 56, + 50, + 102, + 98, + 52, + 45, + 100, + 48, + 54, + 54, + 45, + 52, + 52, + 48, + 98, + 45, + 57, + 53, + 50, + 55, + 45, + 54, + 97, + 50, + 51, + 52, + 51, + 101, + 57, + 99, + 97, + 57, + 99, + 34, + 44, + 34, + 105, + 100, + 101, + 110, + 116, + 105, + 102, + 105, + 99, + 97, + 116, + 105, + 101, + 34, + 58, + 34, + 101, + 54, + 102, + 98, + 50, + 102, + 97, + 49, + 45, + 56, + 102, + 48, + 98, + 45, + 52, + 101, + 49, + 56, + 45, + 97, + 98, + 100, + 98, + 45, + 52, + 57, + 51, + 50, + 98, + 51, + 53, + 102, + 54, + 99, + 57, + 55, + 34, + 44, + 34, + 111, + 109, + 115, + 99, + 104, + 114, + 105, + 106, + 118, + 105, + 110, + 103, + 34, + 58, + 34, + 122, + 114, + 99, + 95, + 116, + 101, + 115, + 116, + 115, + 95, + 49, + 34, + 44, + 34, + 111, + 109, + 115, + 99, + 104, + 114, + 105, + 106, + 118, + 105, + 110, + 103, + 71, + 101, + 110, + 101, + 114, + 105, + 101, + 107, + 34, + 58, + 34, + 34, + 44, + 34, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 117, + 115, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 105, + 92, + 47, + 118, + 49, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 117, + 115, + 115, + 101, + 110, + 92, + 47, + 53, + 48, + 53, + 55, + 52, + 48, + 56, + 102, + 45, + 102, + 100, + 55, + 54, + 45, + 52, + 54, + 57, + 101, + 45, + 56, + 54, + 52, + 54, + 45, + 98, + 99, + 99, + 52, + 98, + 97, + 50, + 101, + 102, + 97, + 56, + 100, + 34, + 44, + 34, + 100, + 111, + 101, + 108, + 34, + 58, + 34, + 116, + 101, + 115, + 116, + 32, + 100, + 111, + 101, + 108, + 34, + 44, + 34, + 97, + 97, + 110, + 108, + 101, + 105, + 100, + 105, + 110, + 103, + 34, + 58, + 34, + 116, + 101, + 115, + 116, + 32, + 97, + 97, + 110, + 108, + 101, + 105, + 100, + 105, + 110, + 103, + 34, + 44, + 34, + 111, + 110, + 100, + 101, + 114, + 119, + 101, + 114, + 112, + 34, + 58, + 34, + 111, + 112, + 101, + 110, + 98, + 97, + 114, + 101, + 32, + 114, + 117, + 105, + 109, + 116, + 101, + 34, + 44, + 34, + 100, + 111, + 111, + 114, + 108, + 111, + 111, + 112, + 116, + 105, + 106, + 100, + 34, + 58, + 34, + 80, + 49, + 48, + 68, + 34, + 44, + 34, + 118, + 101, + 114, + 116, + 114, + 111, + 117, + 119, + 101, + 108, + 105, + 106, + 107, + 104, + 101, + 105, + 100, + 97, + 97, + 110, + 100, + 117, + 105, + 100, + 105, + 110, + 103, + 34, + 58, + 34, + 111, + 112, + 101, + 110, + 98, + 97, + 97, + 114, + 34, + 44, + 34, + 99, + 111, + 110, + 99, + 101, + 112, + 116, + 34, + 58, + 116, + 114, + 117, + 101, + 44, + 34, + 98, + 101, + 103, + 105, + 110, + 71, + 101, + 108, + 100, + 105, + 103, + 104, + 101, + 105, + 100, + 34, + 58, + 34, + 50, + 48, + 49, + 57, + 45, + 48, + 49, + 45, + 48, + 49, + 34, + 44, + 34, + 101, + 105, + 110, + 100, + 101, + 71, + 101, + 108, + 100, + 105, + 103, + 104, + 101, + 105, + 100, + 34, + 58, + 34, + 50, + 48, + 50, + 54, + 45, + 48, + 51, + 45, + 49, + 48, + 34, + 44, + 34, + 104, + 97, + 110, + 100, + 101, + 108, + 105, + 110, + 103, + 73, + 110, + 105, + 116, + 105, + 97, + 116, + 111, + 114, + 34, + 58, + 34, + 105, + 110, + 100, + 105, + 101, + 110, + 101, + 110, + 34, + 44, + 34, + 105, + 110, + 100, + 105, + 99, + 97, + 116, + 105, + 101, + 73, + 110, + 116, + 101, + 114, + 110, + 79, + 102, + 69, + 120, + 116, + 101, + 114, + 110, + 34, + 58, + 34, + 101, + 120, + 116, + 101, + 114, + 110, + 34, + 44, + 34, + 104, + 97, + 110, + 100, + 101, + 108, + 105, + 110, + 103, + 66, + 101, + 104, + 97, + 110, + 100, + 101, + 108, + 97, + 97, + 114, + 34, + 58, + 34, + 98, + 101, + 104, + 97, + 110, + 100, + 101, + 108, + 101, + 110, + 34, + 44, + 34, + 111, + 112, + 115, + 99, + 104, + 111, + 114, + 116, + 105, + 110, + 103, + 69, + 110, + 65, + 97, + 110, + 104, + 111, + 117, + 100, + 105, + 110, + 103, + 77, + 111, + 103, + 101, + 108, + 105, + 106, + 107, + 34, + 58, + 102, + 97, + 108, + 115, + 101, + 44, + 34, + 118, + 101, + 114, + 108, + 101, + 110, + 103, + 105, + 110, + 103, + 77, + 111, + 103, + 101, + 108, + 105, + 106, + 107, + 34, + 58, + 116, + 114, + 117, + 101, + 44, + 34, + 118, + 101, + 114, + 108, + 101, + 110, + 103, + 105, + 110, + 103, + 115, + 116, + 101, + 114, + 109, + 105, + 106, + 110, + 34, + 58, + 34, + 80, + 53, + 68, + 34, + 44, + 34, + 112, + 117, + 98, + 108, + 105, + 99, + 97, + 116, + 105, + 101, + 73, + 110, + 100, + 105, + 99, + 97, + 116, + 105, + 101, + 34, + 58, + 102, + 97, + 108, + 115, + 101, + 44, + 34, + 112, + 114, + 111, + 100, + 117, + 99, + 116, + 101, + 110, + 79, + 102, + 68, + 105, + 101, + 110, + 115, + 116, + 101, + 110, + 34, + 58, + 91, + 34, + 104, + 116, + 116, + 112, + 115, + 58, + 92, + 47, + 92, + 47, + 114, + 101, + 102, + 46, + 116, + 115, + 116, + 46, + 118, + 110, + 103, + 46, + 99, + 108, + 111, + 117, + 100, + 92, + 47, + 115, + 116, + 97, + 110, + 100, + 97, + 97, + 114, + 100, + 92, + 47, + 34, + 93, + 44, + 34, + 115, + 101, + 108, + 101, + 99, + 116, + 105, + 101, + 108, + 105, + 106, + 115, + 116, + 80, + 114, + 111, + 99, + 101, + 115, + 116, + 121, + 112, + 101, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 115, + 58, + 92, + 47, + 92, + 47, + 115, + 101, + 108, + 101, + 99, + 116, + 105, + 101, + 108, + 105, + 106, + 115, + 116, + 46, + 111, + 112, + 101, + 110, + 122, + 97, + 97, + 107, + 46, + 110, + 108, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 118, + 49, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 121, + 112, + 101, + 110, + 92, + 47, + 56, + 51, + 56, + 101, + 52, + 48, + 53, + 97, + 45, + 57, + 98, + 49, + 50, + 45, + 52, + 51, + 99, + 52, + 45, + 97, + 57, + 56, + 53, + 45, + 100, + 55, + 97, + 55, + 52, + 57, + 48, + 100, + 52, + 50, + 50, + 101, + 34, + 44, + 34, + 114, + 101, + 102, + 101, + 114, + 101, + 110, + 116, + 105, + 101, + 112, + 114, + 111, + 99, + 101, + 115, + 34, + 58, + 123, + 34, + 108, + 105, + 110, + 107, + 34, + 58, + 34, + 34, + 44, + 34, + 110, + 97, + 97, + 109, + 34, + 58, + 34, + 116, + 101, + 115, + 116, + 34, + 125, + 44, + 34, + 118, + 101, + 114, + 97, + 110, + 116, + 119, + 111, + 111, + 114, + 100, + 101, + 108, + 105, + 106, + 107, + 101, + 34, + 58, + 34, + 88, + 34, + 44, + 34, + 103, + 101, + 114, + 101, + 108, + 97, + 116, + 101, + 101, + 114, + 100, + 101, + 90, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 98, + 101, + 115, + 108, + 117, + 105, + 116, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 105, + 110, + 102, + 111, + 114, + 109, + 97, + 116, + 105, + 101, + 111, + 98, + 106, + 101, + 99, + 116, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 100, + 101, + 101, + 108, + 122, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 116, + 111, + 101, + 108, + 105, + 99, + 104, + 116, + 105, + 110, + 103, + 34, + 58, + 34, + 34, + 44, + 34, + 118, + 101, + 114, + 115, + 105, + 101, + 100, + 97, + 116, + 117, + 109, + 34, + 58, + 34, + 50, + 48, + 49, + 57, + 45, + 48, + 49, + 45, + 48, + 49, + 34, + 44, + 34, + 101, + 105, + 103, + 101, + 110, + 115, + 99, + 104, + 97, + 112, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 115, + 116, + 97, + 116, + 117, + 115, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 114, + 101, + 115, + 117, + 108, + 116, + 97, + 97, + 116, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 114, + 111, + 108, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 125 + ] + }, + "cookie": [], + "responseTime": 353, + "responseSize": 1337 + }, + "id": "77f1cddb-bacb-4af8-991d-a5bbe770c233" + }, + { + "cursor": { + "ref": "0b4c6d5f-4030-44ce-a16d-5ac23dcaea05", + "length": 313, + "cycles": 1, + "position": 27, + "iteration": 0, + "httpRequestId": "25bd1dda-d234-40ab-8160-7594abe3fd0e" + }, + "item": { + "id": "79063927-bc5f-46ee-8b77-f696201364af", + "name": "(zrc-001f) Zaak aanmaken met concept zaaktype is onmogelijk", + "request": { + "url": { + "path": [ + "zaken" + ], + "host": [ + "{{zrc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Accept-Crs", + "value": "EPSG:4326" + }, + { + "key": "Content-Crs", + "value": "EPSG:4326" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\r\n \"bronorganisatie\": \"000000000\",\r\n \"omschrijving\": \"string\",\r\n \"toelichting\": \"string\",\r\n \"registratiedatum\": \"2019-04-09\",\r\n \"verantwoordelijkeOrganisatie\": \"000000000\",\r\n \"zaaktype\": \"{{temp_zaaktype_url}}\",\r\n \"startdatum\": \"2019-04-09\",\r\n \"einddatumGepland\": \"2019-04-20\",\r\n \"uiterlijkeEinddatumAfdoening\": \"2019-04-09\",\r\n \"publicatiedatum\": \"2019-04-09\",\r\n \"vertrouwelijkheidaanduiding\": \"openbaar\",\r\n \"betalingsindicatie\": \"geheel\",\r\n \"laatsteBetaalDatum\": \"2019-01-01\",\r\n \"zaakgeometrie\": {\r\n \"type\": \"Point\",\r\n \"coordinates\": [\r\n 53,\r\n 5\r\n ]\r\n },\r\n \"opschorting\": {\r\n \"indicatie\": true,\r\n \"reden\": \"string\"\r\n },\r\n \"selectielijstklasse\": \"{{selectielijstklasse_url}}\",\r\n \"archiefstatus\": \"nog_te_archiveren\",\r\n \"deelzaaktypen\" : [\"{{deelzaaktype_url}}\"]\r\n}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "b2fc6238-a05f-4c3f-ac55-7b2330462513", + "type": "text/javascript", + "packages": {}, + "exec": [ + "pm.test(\"Zaak aanmaken met concept zaaktype geeft 400\", function() {", + " pm.response.to.have.status(400);", + " ", + " // Verify that the 400 is returned for the correct reason", + " var error = pm.response.json()[\"invalidParams\"][0];", + " pm.expect(error.name).to.be.equal(\"zaaktype\");", + " pm.expect(error.code).to.be.equal(\"not-published\");", + "});", + "", + "// If the test failed and the Zaak was created, delete it", + "if(pm.response.code == 201) {", + " pm.environment.set(\"created_zaak_url\", pm.response.json().url);", + "", + "}" + ], + "_lastExecutionId": "25255dd2-da44-4bd7-bb89-20142e014c42" + } + }, + { + "listen": "prerequest", + "script": { + "id": "41453169-43c7-40eb-8e6a-29b8f2d8f870", + "type": "text/javascript", + "packages": {}, + "exec": [ + "" + ], + "_lastExecutionId": "1b875604-0dce-42d2-9368-c62f2a01cc26" + } + } + ] + }, + "request": { + "url": { + "protocol": "http", + "port": "8080", + "path": [ + "index.php", + "apps", + "procest", + "api", + "zgw", + "zaken", + "v1", + "zaken" + ], + "host": [ + "localhost" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Accept-Crs", + "value": "EPSG:4326" + }, + { + "key": "Content-Crs", + "value": "EPSG:4326" + }, + { + "key": "Authorization", + "value": "Bearer eyJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJwcm9jZXN0LWFkbWluIiwiY2xpZW50X2lkIjoicHJvY2VzdC1hZG1pbiIsImlhdCI6IjE3NzMxNDUxNDYiLCJ1c2VyX2lkIjoicHJvY2VzdC1hZG1pbiIsInVzZXJfcmVwcmVzZW50YXRpb24iOiIifQ.AuK91NMtKHy6wQjnzMUvUMp-KtbNMrX9PJHgXyaeWvw", + "system": true + }, + { + "key": "User-Agent", + "value": "PostmanRuntime/7.39.1", + "system": true + }, + { + "key": "Accept", + "value": "*/*", + "system": true + }, + { + "key": "Cache-Control", + "value": "no-cache", + "system": true + }, + { + "key": "Postman-Token", + "value": "373d3cc9-b062-419d-8151-18d999932a1e", + "system": true + }, + { + "key": "Host", + "value": "localhost:8080", + "system": true + }, + { + "key": "Accept-Encoding", + "value": "gzip, deflate, br", + "system": true + }, + { + "key": "Connection", + "value": "keep-alive", + "system": true + }, + { + "key": "Content-Length", + "value": "1124", + "system": true + }, + { + "key": "Cookie", + "value": "ocvp3112b4wg=2d57619f6dd971cf7bc4a846cdf43d5b; oc_sessionPassphrase=LBNdKxRzA0iqoULIruNxDDh2BK3O%2BrCIU8aUmiUcOFvy5Xw1YfjwQNlmBW2IkGwJYtxXh9%2BwDN6vYuGNX07tXzkBtjQJUWTGdzf8AIOUIVxVx5DfyWAQZ7nmYmQv6XSE; nc_sameSiteCookielax=true; nc_sameSiteCookiestrict=true", + "system": true + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\r\n \"bronorganisatie\": \"000000000\",\r\n \"omschrijving\": \"string\",\r\n \"toelichting\": \"string\",\r\n \"registratiedatum\": \"2019-04-09\",\r\n \"verantwoordelijkeOrganisatie\": \"000000000\",\r\n \"zaaktype\": \"http://localhost:8080/index.php/apps/procest/api/zgw/catalogi/v1/zaaktypen/df382fb4-d066-440b-9527-6a2343e9ca9c\",\r\n \"startdatum\": \"2019-04-09\",\r\n \"einddatumGepland\": \"2019-04-20\",\r\n \"uiterlijkeEinddatumAfdoening\": \"2019-04-09\",\r\n \"publicatiedatum\": \"2019-04-09\",\r\n \"vertrouwelijkheidaanduiding\": \"openbaar\",\r\n \"betalingsindicatie\": \"geheel\",\r\n \"laatsteBetaalDatum\": \"2019-01-01\",\r\n \"zaakgeometrie\": {\r\n \"type\": \"Point\",\r\n \"coordinates\": [\r\n 53,\r\n 5\r\n ]\r\n },\r\n \"opschorting\": {\r\n \"indicatie\": true,\r\n \"reden\": \"string\"\r\n },\r\n \"selectielijstklasse\": \"https://selectielijst.openzaak.nl/api/v1/resultaten/0eb8f19f-d55e-4a15-8b5f-26cdf07482c1\",\r\n \"archiefstatus\": \"nog_te_archiveren\",\r\n \"deelzaaktypen\" : [\"http://localhost:8080/index.php/apps/procest/api/zgw/catalogi/v1/zaaktypen/7571bffe-5579-4295-9fac-87a9a6b6c5ac\"]\r\n}" + }, + "auth": { + "type": "jwt", + "jwt": [ + { + "type": "string", + "value": "{\r\n \"iss\": \"procest-admin\",\r\n \"client_id\": \"procest-admin\",\r\n \"iat\": \"1773145146\",\r\n \"user_id\": \"procest-admin\",\r\n \"user_representation\": \"\"\r\n}", + "key": "payload" + }, + { + "type": "string", + "value": "procest-admin-secret-key-for-testing", + "key": "secret" + }, + { + "type": "string", + "value": "HS256", + "key": "algorithm" + }, + { + "type": "boolean", + "value": false, + "key": "isSecretBase64Encoded" + }, + { + "type": "string", + "value": "header", + "key": "addTokenTo" + }, + { + "type": "string", + "value": "Bearer", + "key": "headerPrefix" + }, + { + "type": "string", + "value": "token", + "key": "queryParamKey" + }, + { + "type": "string", + "value": "{}", + "key": "header" + } + ] + } + }, + "response": { + "id": "d79a0350-5e44-40f7-8a46-d141258c4513", + "status": "Bad request", + "code": 400, + "header": [ + { + "key": "Date", + "value": "Tue, 10 Mar 2026 12:19:05 GMT" + }, + { + "key": "Server", + "value": "Apache/2.4.66 (Debian)" + }, + { + "key": "X-Content-Type-Options", + "value": "nosniff" + }, + { + "key": "X-Frame-Options", + "value": "SAMEORIGIN" + }, + { + "key": "X-Permitted-Cross-Domain-Policies", + "value": "none" + }, + { + "key": "X-Robots-Tag", + "value": "noindex, nofollow" + }, + { + "key": "Referrer-Policy", + "value": "no-referrer" + }, + { + "key": "X-Powered-By", + "value": "PHP/8.3.30" + }, + { + "key": "Content-Security-Policy", + "value": "default-src 'none';base-uri 'none';manifest-src 'self';frame-ancestors 'none'" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=2d57619f6dd971cf7bc4a846cdf43d5b; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=2d57619f6dd971cf7bc4a846cdf43d5b; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=2d57619f6dd971cf7bc4a846cdf43d5b; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=2d57619f6dd971cf7bc4a846cdf43d5b; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=2d57619f6dd971cf7bc4a846cdf43d5b; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=efeb204d2478f628a02c4f1e7ac4b1d0; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=efeb204d2478f628a02c4f1e7ac4b1d0; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=efeb204d2478f628a02c4f1e7ac4b1d0; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=efeb204d2478f628a02c4f1e7ac4b1d0; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=efeb204d2478f628a02c4f1e7ac4b1d0; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "X-Request-Id", + "value": "oXnsT2cryYx6F1vRtAVe" + }, + { + "key": "Cache-Control", + "value": "no-cache, no-store, must-revalidate" + }, + { + "key": "Feature-Policy", + "value": "autoplay 'none';camera 'none';fullscreen 'none';geolocation 'none';microphone 'none';payment 'none'" + }, + { + "key": "X-User-Id", + "value": "admin" + }, + { + "key": "Content-Length", + "value": "140" + }, + { + "key": "Connection", + "value": "close" + }, + { + "key": "Content-Type", + "value": "application/json; charset=utf-8" + } + ], + "stream": { + "type": "Buffer", + "data": [ + 123, + 34, + 100, + 101, + 116, + 97, + 105, + 108, + 34, + 58, + 34, + 90, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 32, + 105, + 115, + 32, + 110, + 111, + 103, + 32, + 105, + 110, + 32, + 99, + 111, + 110, + 99, + 101, + 112, + 116, + 46, + 34, + 44, + 34, + 105, + 110, + 118, + 97, + 108, + 105, + 100, + 80, + 97, + 114, + 97, + 109, + 115, + 34, + 58, + 91, + 123, + 34, + 110, + 97, + 109, + 101, + 34, + 58, + 34, + 122, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 34, + 44, + 34, + 99, + 111, + 100, + 101, + 34, + 58, + 34, + 110, + 111, + 116, + 45, + 112, + 117, + 98, + 108, + 105, + 115, + 104, + 101, + 100, + 34, + 44, + 34, + 114, + 101, + 97, + 115, + 111, + 110, + 34, + 58, + 34, + 90, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 32, + 105, + 115, + 32, + 110, + 111, + 103, + 32, + 105, + 110, + 32, + 99, + 111, + 110, + 99, + 101, + 112, + 116, + 46, + 34, + 125, + 93, + 125 + ] + }, + "cookie": [], + "responseTime": 120, + "responseSize": 140 + }, + "id": "79063927-bc5f-46ee-8b77-f696201364af", + "assertions": [ + { + "assertion": "Zaak aanmaken met concept zaaktype geeft 400", + "skipped": false + } + ] + }, + { + "cursor": { + "ref": "2e9d4feb-09a3-4335-aae9-1fcf3aba9e8a", + "length": 313, + "cycles": 1, + "position": 28, + "iteration": 0, + "httpRequestId": "e4bc9398-09e1-4899-be3a-7036c0b7822b" + }, + "item": { + "id": "0663f76a-3804-490d-b26f-37366529844f", + "name": "(zrc-002a) Zaak aanmaken met bestaande combinatie identificatie en bronorganisatie is onmogelijk", + "request": { + "url": { + "path": [ + "zaken" + ], + "host": [ + "{{zrc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Accept-Crs", + "value": "EPSG:4326" + }, + { + "key": "Content-Crs", + "value": "EPSG:4326" + }, + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\r\n \"bronorganisatie\": \"000000000\",\r\n \"identificatie\": \"{{zaakidentificatie}}\",\r\n \"omschrijving\": \"string\",\r\n \"toelichting\": \"string\",\r\n \"registratiedatum\": \"2019-04-09\",\r\n \"verantwoordelijkeOrganisatie\": \"000000000\",\r\n \"zaaktype\": \"{{zaaktype_url}}\",\r\n \"startdatum\": \"2019-04-09\",\r\n \"einddatumGepland\": \"2019-04-20\",\r\n \"uiterlijkeEinddatumAfdoening\": \"2019-04-09\",\r\n \"publicatiedatum\": \"2019-04-09\",\r\n \"vertrouwelijkheidaanduiding\": \"openbaar\",\r\n \"betalingsindicatie\": \"geheel\",\r\n \"laatsteBetaalDatum\": \"2019-01-01\",\r\n \"zaakgeometrie\": {\r\n \"type\": \"Point\",\r\n \"coordinates\": [\r\n 53,\r\n 5\r\n ]\r\n },\r\n \"opschorting\": {\r\n \"indicatie\": true,\r\n \"reden\": \"string\"\r\n },\r\n \"selectielijstklasse\": \"{{selectielijstklasse_url}}\",\r\n \"archiefstatus\": \"nog_te_archiveren\",\r\n \"deelzaaktypen\" : [\"{{deelzaaktype_url}}\"]\r\n}" + } + }, + "response": [], + "event": [ + { + "listen": "prerequest", + "script": { + "id": "6af56eef-1c1f-4657-9453-aa290a5995a0", + "type": "text/javascript", + "packages": {}, + "exec": [ + "" + ], + "_lastExecutionId": "6549264d-b3a8-42c8-9994-885c054ee690" + } + }, + { + "listen": "test", + "script": { + "id": "f6a2024d-30fc-4b00-ae0c-cccb429fc801", + "type": "text/javascript", + "packages": {}, + "exec": [ + "pm.test(\"Zaak aanmaken met bestaande combinatie bronorganisatie en identificatie geeft 400\", function() {", + " pm.response.to.have.status(400);", + " ", + " var error = pm.response.json()[\"invalidParams\"][0];", + " pm.expect(error.name).to.be.equal(\"identificatie\");", + " pm.expect(error.code).to.be.equal(\"identificatie-niet-uniek\");", + "});", + "", + "// If the test failed and the Zaak was created, delete it", + "if(pm.response.code == 201) {", + " pm.environment.set(\"created_zaak_url\", pm.response.json().url);", + "", + "}" + ], + "_lastExecutionId": "7e60ac12-fe28-4249-8d42-76da16e13f46" + } + } + ] + }, + "request": { + "url": { + "protocol": "http", + "port": "8080", + "path": [ + "index.php", + "apps", + "procest", + "api", + "zgw", + "zaken", + "v1", + "zaken" + ], + "host": [ + "localhost" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Accept-Crs", + "value": "EPSG:4326" + }, + { + "key": "Content-Crs", + "value": "EPSG:4326" + }, + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Authorization", + "value": "Bearer eyJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJwcm9jZXN0LWFkbWluIiwiY2xpZW50X2lkIjoicHJvY2VzdC1hZG1pbiIsImlhdCI6IjE3NzMxNDUxNDYiLCJ1c2VyX2lkIjoicHJvY2VzdC1hZG1pbiIsInVzZXJfcmVwcmVzZW50YXRpb24iOiIifQ.AuK91NMtKHy6wQjnzMUvUMp-KtbNMrX9PJHgXyaeWvw", + "system": true + }, + { + "key": "User-Agent", + "value": "PostmanRuntime/7.39.1", + "system": true + }, + { + "key": "Accept", + "value": "*/*", + "system": true + }, + { + "key": "Cache-Control", + "value": "no-cache", + "system": true + }, + { + "key": "Postman-Token", + "value": "91b50472-8635-4e1d-985c-1e96960534ed", + "system": true + }, + { + "key": "Host", + "value": "localhost:8080", + "system": true + }, + { + "key": "Accept-Encoding", + "value": "gzip, deflate, br", + "system": true + }, + { + "key": "Connection", + "value": "keep-alive", + "system": true + }, + { + "key": "Content-Length", + "value": "1168", + "system": true + }, + { + "key": "Cookie", + "value": "ocvp3112b4wg=efeb204d2478f628a02c4f1e7ac4b1d0; oc_sessionPassphrase=LBNdKxRzA0iqoULIruNxDDh2BK3O%2BrCIU8aUmiUcOFvy5Xw1YfjwQNlmBW2IkGwJYtxXh9%2BwDN6vYuGNX07tXzkBtjQJUWTGdzf8AIOUIVxVx5DfyWAQZ7nmYmQv6XSE; nc_sameSiteCookielax=true; nc_sameSiteCookiestrict=true", + "system": true + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\r\n \"bronorganisatie\": \"000000000\",\r\n \"identificatie\": \"ZAAK-TBONJS-5AE22F\",\r\n \"omschrijving\": \"string\",\r\n \"toelichting\": \"string\",\r\n \"registratiedatum\": \"2019-04-09\",\r\n \"verantwoordelijkeOrganisatie\": \"000000000\",\r\n \"zaaktype\": \"http://localhost:8080/index.php/apps/procest/api/zgw/catalogi/v1/zaaktypen/619dc3e5-52f1-4294-a569-f21d16f44879\",\r\n \"startdatum\": \"2019-04-09\",\r\n \"einddatumGepland\": \"2019-04-20\",\r\n \"uiterlijkeEinddatumAfdoening\": \"2019-04-09\",\r\n \"publicatiedatum\": \"2019-04-09\",\r\n \"vertrouwelijkheidaanduiding\": \"openbaar\",\r\n \"betalingsindicatie\": \"geheel\",\r\n \"laatsteBetaalDatum\": \"2019-01-01\",\r\n \"zaakgeometrie\": {\r\n \"type\": \"Point\",\r\n \"coordinates\": [\r\n 53,\r\n 5\r\n ]\r\n },\r\n \"opschorting\": {\r\n \"indicatie\": true,\r\n \"reden\": \"string\"\r\n },\r\n \"selectielijstklasse\": \"https://selectielijst.openzaak.nl/api/v1/resultaten/0eb8f19f-d55e-4a15-8b5f-26cdf07482c1\",\r\n \"archiefstatus\": \"nog_te_archiveren\",\r\n \"deelzaaktypen\" : [\"http://localhost:8080/index.php/apps/procest/api/zgw/catalogi/v1/zaaktypen/7571bffe-5579-4295-9fac-87a9a6b6c5ac\"]\r\n}" + }, + "auth": { + "type": "jwt", + "jwt": [ + { + "type": "string", + "value": "{\r\n \"iss\": \"procest-admin\",\r\n \"client_id\": \"procest-admin\",\r\n \"iat\": \"1773145146\",\r\n \"user_id\": \"procest-admin\",\r\n \"user_representation\": \"\"\r\n}", + "key": "payload" + }, + { + "type": "string", + "value": "procest-admin-secret-key-for-testing", + "key": "secret" + }, + { + "type": "string", + "value": "HS256", + "key": "algorithm" + }, + { + "type": "boolean", + "value": false, + "key": "isSecretBase64Encoded" + }, + { + "type": "string", + "value": "header", + "key": "addTokenTo" + }, + { + "type": "string", + "value": "Bearer", + "key": "headerPrefix" + }, + { + "type": "string", + "value": "token", + "key": "queryParamKey" + }, + { + "type": "string", + "value": "{}", + "key": "header" + } + ] + } + }, + "response": { + "id": "64443fb7-3c2b-4833-93a5-80329975a29d", + "status": "Created", + "code": 201, + "header": [ + { + "key": "Date", + "value": "Tue, 10 Mar 2026 12:19:05 GMT" + }, + { + "key": "Server", + "value": "Apache/2.4.66 (Debian)" + }, + { + "key": "X-Content-Type-Options", + "value": "nosniff" + }, + { + "key": "X-Frame-Options", + "value": "SAMEORIGIN" + }, + { + "key": "X-Permitted-Cross-Domain-Policies", + "value": "none" + }, + { + "key": "X-Robots-Tag", + "value": "noindex, nofollow" + }, + { + "key": "Referrer-Policy", + "value": "no-referrer" + }, + { + "key": "X-Powered-By", + "value": "PHP/8.3.30" + }, + { + "key": "Content-Security-Policy", + "value": "default-src 'none';base-uri 'none';manifest-src 'self';frame-ancestors 'none'" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=efeb204d2478f628a02c4f1e7ac4b1d0; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=efeb204d2478f628a02c4f1e7ac4b1d0; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=efeb204d2478f628a02c4f1e7ac4b1d0; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=efeb204d2478f628a02c4f1e7ac4b1d0; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=efeb204d2478f628a02c4f1e7ac4b1d0; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=f7f3ecb6f9246cc978eb12422bd89e97; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=f7f3ecb6f9246cc978eb12422bd89e97; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=f7f3ecb6f9246cc978eb12422bd89e97; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=f7f3ecb6f9246cc978eb12422bd89e97; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=f7f3ecb6f9246cc978eb12422bd89e97; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "X-Request-Id", + "value": "cJxOKs0ojDgdmjGNlvM1" + }, + { + "key": "Cache-Control", + "value": "no-cache, no-store, must-revalidate" + }, + { + "key": "Feature-Policy", + "value": "autoplay 'none';camera 'none';fullscreen 'none';geolocation 'none';microphone 'none';payment 'none'" + }, + { + "key": "X-User-Id", + "value": "admin" + }, + { + "key": "Content-Length", + "value": "799" + }, + { + "key": "Keep-Alive", + "value": "timeout=5, max=100" + }, + { + "key": "Connection", + "value": "Keep-Alive" + }, + { + "key": "Content-Type", + "value": "application/json; charset=utf-8" + } + ], + "stream": { + "type": "Buffer", + "data": [ + 123, + 34, + 117, + 114, + 108, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 122, + 97, + 107, + 101, + 110, + 92, + 47, + 118, + 49, + 92, + 47, + 122, + 97, + 107, + 101, + 110, + 92, + 47, + 57, + 48, + 99, + 57, + 53, + 100, + 102, + 50, + 45, + 53, + 51, + 57, + 56, + 45, + 52, + 51, + 100, + 52, + 45, + 97, + 99, + 101, + 57, + 45, + 49, + 48, + 49, + 102, + 101, + 49, + 52, + 51, + 56, + 50, + 49, + 97, + 34, + 44, + 34, + 117, + 117, + 105, + 100, + 34, + 58, + 34, + 57, + 48, + 99, + 57, + 53, + 100, + 102, + 50, + 45, + 53, + 51, + 57, + 56, + 45, + 52, + 51, + 100, + 52, + 45, + 97, + 99, + 101, + 57, + 45, + 49, + 48, + 49, + 102, + 101, + 49, + 52, + 51, + 56, + 50, + 49, + 97, + 34, + 44, + 34, + 105, + 100, + 101, + 110, + 116, + 105, + 102, + 105, + 99, + 97, + 116, + 105, + 101, + 34, + 58, + 34, + 90, + 65, + 65, + 75, + 45, + 84, + 66, + 79, + 78, + 74, + 83, + 45, + 53, + 65, + 69, + 50, + 50, + 70, + 34, + 44, + 34, + 111, + 109, + 115, + 99, + 104, + 114, + 105, + 106, + 118, + 105, + 110, + 103, + 34, + 58, + 34, + 115, + 116, + 114, + 105, + 110, + 103, + 34, + 44, + 34, + 116, + 111, + 101, + 108, + 105, + 99, + 104, + 116, + 105, + 110, + 103, + 34, + 58, + 34, + 115, + 116, + 114, + 105, + 110, + 103, + 34, + 44, + 34, + 122, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 105, + 92, + 47, + 118, + 49, + 92, + 47, + 122, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 110, + 92, + 47, + 54, + 49, + 57, + 100, + 99, + 51, + 101, + 53, + 45, + 53, + 50, + 102, + 49, + 45, + 52, + 50, + 57, + 52, + 45, + 97, + 53, + 54, + 57, + 45, + 102, + 50, + 49, + 100, + 49, + 54, + 102, + 52, + 52, + 56, + 55, + 57, + 34, + 44, + 34, + 114, + 101, + 103, + 105, + 115, + 116, + 114, + 97, + 116, + 105, + 101, + 100, + 97, + 116, + 117, + 109, + 34, + 58, + 34, + 50, + 48, + 50, + 54, + 45, + 48, + 51, + 45, + 49, + 48, + 84, + 49, + 50, + 58, + 49, + 57, + 58, + 48, + 54, + 43, + 48, + 48, + 58, + 48, + 48, + 34, + 44, + 34, + 115, + 116, + 97, + 114, + 116, + 100, + 97, + 116, + 117, + 109, + 34, + 58, + 34, + 50, + 48, + 49, + 57, + 45, + 48, + 52, + 45, + 48, + 57, + 34, + 44, + 34, + 101, + 105, + 110, + 100, + 100, + 97, + 116, + 117, + 109, + 34, + 58, + 110, + 117, + 108, + 108, + 44, + 34, + 101, + 105, + 110, + 100, + 100, + 97, + 116, + 117, + 109, + 71, + 101, + 112, + 108, + 97, + 110, + 100, + 34, + 58, + 34, + 50, + 48, + 49, + 57, + 45, + 48, + 52, + 45, + 50, + 48, + 34, + 44, + 34, + 117, + 105, + 116, + 101, + 114, + 108, + 105, + 106, + 107, + 101, + 69, + 105, + 110, + 100, + 100, + 97, + 116, + 117, + 109, + 65, + 102, + 100, + 111, + 101, + 110, + 105, + 110, + 103, + 34, + 58, + 34, + 50, + 48, + 49, + 57, + 45, + 48, + 52, + 45, + 48, + 57, + 34, + 44, + 34, + 118, + 101, + 114, + 116, + 114, + 111, + 117, + 119, + 101, + 108, + 105, + 106, + 107, + 104, + 101, + 105, + 100, + 97, + 97, + 110, + 100, + 117, + 105, + 100, + 105, + 110, + 103, + 34, + 58, + 34, + 111, + 112, + 101, + 110, + 98, + 97, + 97, + 114, + 34, + 44, + 34, + 118, + 101, + 114, + 97, + 110, + 116, + 119, + 111, + 111, + 114, + 100, + 101, + 108, + 105, + 106, + 107, + 101, + 79, + 114, + 103, + 97, + 110, + 105, + 115, + 97, + 116, + 105, + 101, + 34, + 58, + 34, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 34, + 44, + 34, + 97, + 114, + 99, + 104, + 105, + 101, + 102, + 110, + 111, + 109, + 105, + 110, + 97, + 116, + 105, + 101, + 34, + 58, + 110, + 117, + 108, + 108, + 44, + 34, + 97, + 114, + 99, + 104, + 105, + 101, + 102, + 97, + 99, + 116, + 105, + 101, + 100, + 97, + 116, + 117, + 109, + 34, + 58, + 110, + 117, + 108, + 108, + 44, + 34, + 97, + 114, + 99, + 104, + 105, + 101, + 102, + 115, + 116, + 97, + 116, + 117, + 115, + 34, + 58, + 34, + 110, + 111, + 103, + 95, + 116, + 101, + 95, + 97, + 114, + 99, + 104, + 105, + 118, + 101, + 114, + 101, + 110, + 34, + 44, + 34, + 98, + 101, + 116, + 97, + 108, + 105, + 110, + 103, + 115, + 105, + 110, + 100, + 105, + 99, + 97, + 116, + 105, + 101, + 34, + 58, + 34, + 103, + 101, + 104, + 101, + 101, + 108, + 34, + 44, + 34, + 108, + 97, + 97, + 116, + 115, + 116, + 101, + 66, + 101, + 116, + 97, + 97, + 108, + 100, + 97, + 116, + 117, + 109, + 34, + 58, + 110, + 117, + 108, + 108, + 44, + 34, + 104, + 111, + 111, + 102, + 100, + 122, + 97, + 97, + 107, + 34, + 58, + 110, + 117, + 108, + 108, + 125 + ] + }, + "cookie": [], + "responseTime": 431, + "responseSize": 799 + }, + "id": "0663f76a-3804-490d-b26f-37366529844f", + "assertions": [ + { + "assertion": "Zaak aanmaken met bestaande combinatie bronorganisatie en identificatie geeft 400", + "skipped": false, + "error": { + "name": "AssertionError", + "index": 0, + "test": "Zaak aanmaken met bestaande combinatie bronorganisatie en identificatie geeft 400", + "message": "expected response to have status code 400 but got 201", + "stack": "AssertionError: expected response to have status code 400 but got 201\n at Object.eval sandbox-script.js:1:29)" + } + } + ] + }, + { + "cursor": { + "ref": "3ab66b0f-da33-4d10-9989-96f2713cbe67", + "length": 313, + "cycles": 1, + "position": 29, + "iteration": 0, + "httpRequestId": "800a147c-8b6b-48a6-900b-97b69d40bb42" + }, + "item": { + "id": "9c2eb4d9-143f-4283-8486-adb661de0142", + "name": "Create Zaak with unique identificatie and bronorganisatie", + "request": { + "description": { + "content": "Maakt een Zaak aan die gebruikt zal worden in de tests, deze zaak wordt na de tests weer verwijderd.\n\nDe body van deze Zaak zal ook als variabele opgeslagen worden en gebruikt worden (met kleine aanpassingen iedere keer) in de requests voor de validatie tests, om te voorkomen dat telkens hetzelfde body gekopieerd moet worden.", + "type": "text/plain" + }, + "url": { + "path": [ + "zaken" + ], + "host": [ + "{{zrc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Content-Crs", + "value": "EPSG:4326" + }, + { + "key": "Accept-Crs", + "value": "EPSG:4326" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\r\n \"bronorganisatie\": \"000000000\",\r\n \"omschrijving\": \"string\",\r\n \"toelichting\": \"string\",\r\n \"registratiedatum\": \"2019-04-09\",\r\n \"verantwoordelijkeOrganisatie\": \"000000000\",\r\n \"zaaktype\": \"{{zaaktype_url}}\",\r\n \"startdatum\": \"2019-04-09\",\r\n \"einddatumGepland\": \"2019-04-20\",\r\n \"uiterlijkeEinddatumAfdoening\": \"2019-04-09\",\r\n \"publicatiedatum\": \"2019-04-09\",\r\n \"vertrouwelijkheidaanduiding\": \"openbaar\",\r\n \"betalingsindicatie\": \"geheel\",\r\n \"laatsteBetaalDatum\": \"2019-01-01\",\r\n \"zaakgeometrie\": {\r\n \"type\": \"Point\",\r\n \"coordinates\": [\r\n 53,\r\n 5\r\n ]\r\n },\r\n \"opschorting\": {\r\n \"indicatie\": true,\r\n \"reden\": \"string\"\r\n },\r\n \"selectielijstklasse\": \"{{selectielijstklasse_url}}\",\r\n \"archiefstatus\": \"nog_te_archiveren\",\r\n \"deelzaaktypen\" : [\"{{deelzaaktype_url}}\"]\r\n}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "96a96107-1b70-45e8-bbf8-36d379b16bb6", + "type": "text/javascript", + "packages": {}, + "exec": [ + "pm.environment.set(\"created_zaak_url\", pm.response.json().url);" + ], + "_lastExecutionId": "30c3f79b-57bb-4807-aeda-4dd7968da3b3" + } + }, + { + "listen": "prerequest", + "script": { + "id": "ec3aa097-42cd-498e-ad17-81e5fd28fc4d", + "type": "text/javascript", + "packages": {}, + "exec": [], + "_lastExecutionId": "f9371a23-de71-49fb-ab75-a02c6f16d6ea" + } + } + ] + }, + "request": { + "description": { + "content": "Maakt een Zaak aan die gebruikt zal worden in de tests, deze zaak wordt na de tests weer verwijderd.\n\nDe body van deze Zaak zal ook als variabele opgeslagen worden en gebruikt worden (met kleine aanpassingen iedere keer) in de requests voor de validatie tests, om te voorkomen dat telkens hetzelfde body gekopieerd moet worden.", + "type": "text/plain" + }, + "url": { + "protocol": "http", + "port": "8080", + "path": [ + "index.php", + "apps", + "procest", + "api", + "zgw", + "zaken", + "v1", + "zaken" + ], + "host": [ + "localhost" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Content-Crs", + "value": "EPSG:4326" + }, + { + "key": "Accept-Crs", + "value": "EPSG:4326" + }, + { + "key": "Authorization", + "value": "Bearer eyJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJwcm9jZXN0LWFkbWluIiwiY2xpZW50X2lkIjoicHJvY2VzdC1hZG1pbiIsImlhdCI6IjE3NzMxNDUxNDYiLCJ1c2VyX2lkIjoicHJvY2VzdC1hZG1pbiIsInVzZXJfcmVwcmVzZW50YXRpb24iOiIifQ.AuK91NMtKHy6wQjnzMUvUMp-KtbNMrX9PJHgXyaeWvw", + "system": true + }, + { + "key": "User-Agent", + "value": "PostmanRuntime/7.39.1", + "system": true + }, + { + "key": "Accept", + "value": "*/*", + "system": true + }, + { + "key": "Cache-Control", + "value": "no-cache", + "system": true + }, + { + "key": "Postman-Token", + "value": "f6d20a06-8d19-4cf3-a80c-8a143b5c88af", + "system": true + }, + { + "key": "Host", + "value": "localhost:8080", + "system": true + }, + { + "key": "Accept-Encoding", + "value": "gzip, deflate, br", + "system": true + }, + { + "key": "Connection", + "value": "keep-alive", + "system": true + }, + { + "key": "Content-Length", + "value": "1124", + "system": true + }, + { + "key": "Cookie", + "value": "ocvp3112b4wg=f7f3ecb6f9246cc978eb12422bd89e97; oc_sessionPassphrase=LBNdKxRzA0iqoULIruNxDDh2BK3O%2BrCIU8aUmiUcOFvy5Xw1YfjwQNlmBW2IkGwJYtxXh9%2BwDN6vYuGNX07tXzkBtjQJUWTGdzf8AIOUIVxVx5DfyWAQZ7nmYmQv6XSE; nc_sameSiteCookielax=true; nc_sameSiteCookiestrict=true", + "system": true + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\r\n \"bronorganisatie\": \"000000000\",\r\n \"omschrijving\": \"string\",\r\n \"toelichting\": \"string\",\r\n \"registratiedatum\": \"2019-04-09\",\r\n \"verantwoordelijkeOrganisatie\": \"000000000\",\r\n \"zaaktype\": \"http://localhost:8080/index.php/apps/procest/api/zgw/catalogi/v1/zaaktypen/619dc3e5-52f1-4294-a569-f21d16f44879\",\r\n \"startdatum\": \"2019-04-09\",\r\n \"einddatumGepland\": \"2019-04-20\",\r\n \"uiterlijkeEinddatumAfdoening\": \"2019-04-09\",\r\n \"publicatiedatum\": \"2019-04-09\",\r\n \"vertrouwelijkheidaanduiding\": \"openbaar\",\r\n \"betalingsindicatie\": \"geheel\",\r\n \"laatsteBetaalDatum\": \"2019-01-01\",\r\n \"zaakgeometrie\": {\r\n \"type\": \"Point\",\r\n \"coordinates\": [\r\n 53,\r\n 5\r\n ]\r\n },\r\n \"opschorting\": {\r\n \"indicatie\": true,\r\n \"reden\": \"string\"\r\n },\r\n \"selectielijstklasse\": \"https://selectielijst.openzaak.nl/api/v1/resultaten/0eb8f19f-d55e-4a15-8b5f-26cdf07482c1\",\r\n \"archiefstatus\": \"nog_te_archiveren\",\r\n \"deelzaaktypen\" : [\"http://localhost:8080/index.php/apps/procest/api/zgw/catalogi/v1/zaaktypen/7571bffe-5579-4295-9fac-87a9a6b6c5ac\"]\r\n}" + }, + "auth": { + "type": "jwt", + "jwt": [ + { + "type": "string", + "value": "{\r\n \"iss\": \"procest-admin\",\r\n \"client_id\": \"procest-admin\",\r\n \"iat\": \"1773145146\",\r\n \"user_id\": \"procest-admin\",\r\n \"user_representation\": \"\"\r\n}", + "key": "payload" + }, + { + "type": "string", + "value": "procest-admin-secret-key-for-testing", + "key": "secret" + }, + { + "type": "string", + "value": "HS256", + "key": "algorithm" + }, + { + "type": "boolean", + "value": false, + "key": "isSecretBase64Encoded" + }, + { + "type": "string", + "value": "header", + "key": "addTokenTo" + }, + { + "type": "string", + "value": "Bearer", + "key": "headerPrefix" + }, + { + "type": "string", + "value": "token", + "key": "queryParamKey" + }, + { + "type": "string", + "value": "{}", + "key": "header" + } + ] + } + }, + "response": { + "id": "f6ce2a17-2fca-41f2-bfe4-df2077ef3913", + "status": "Created", + "code": 201, + "header": [ + { + "key": "Date", + "value": "Tue, 10 Mar 2026 12:19:06 GMT" + }, + { + "key": "Server", + "value": "Apache/2.4.66 (Debian)" + }, + { + "key": "X-Content-Type-Options", + "value": "nosniff" + }, + { + "key": "X-Frame-Options", + "value": "SAMEORIGIN" + }, + { + "key": "X-Permitted-Cross-Domain-Policies", + "value": "none" + }, + { + "key": "X-Robots-Tag", + "value": "noindex, nofollow" + }, + { + "key": "Referrer-Policy", + "value": "no-referrer" + }, + { + "key": "X-Powered-By", + "value": "PHP/8.3.30" + }, + { + "key": "Content-Security-Policy", + "value": "default-src 'none';base-uri 'none';manifest-src 'self';frame-ancestors 'none'" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=f7f3ecb6f9246cc978eb12422bd89e97; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=f7f3ecb6f9246cc978eb12422bd89e97; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=f7f3ecb6f9246cc978eb12422bd89e97; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=f7f3ecb6f9246cc978eb12422bd89e97; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=f7f3ecb6f9246cc978eb12422bd89e97; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=fcc5799988aaad968c636f82098b9e14; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=fcc5799988aaad968c636f82098b9e14; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=fcc5799988aaad968c636f82098b9e14; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=fcc5799988aaad968c636f82098b9e14; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=fcc5799988aaad968c636f82098b9e14; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "X-Request-Id", + "value": "wc20EMMjo9iXu7r3gKto" + }, + { + "key": "Cache-Control", + "value": "no-cache, no-store, must-revalidate" + }, + { + "key": "Feature-Policy", + "value": "autoplay 'none';camera 'none';fullscreen 'none';geolocation 'none';microphone 'none';payment 'none'" + }, + { + "key": "X-User-Id", + "value": "admin" + }, + { + "key": "Content-Length", + "value": "799" + }, + { + "key": "Keep-Alive", + "value": "timeout=5, max=99" + }, + { + "key": "Connection", + "value": "Keep-Alive" + }, + { + "key": "Content-Type", + "value": "application/json; charset=utf-8" + } + ], + "stream": { + "type": "Buffer", + "data": [ + 123, + 34, + 117, + 114, + 108, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 122, + 97, + 107, + 101, + 110, + 92, + 47, + 118, + 49, + 92, + 47, + 122, + 97, + 107, + 101, + 110, + 92, + 47, + 54, + 51, + 54, + 99, + 53, + 57, + 53, + 100, + 45, + 53, + 98, + 98, + 49, + 45, + 52, + 53, + 56, + 55, + 45, + 98, + 51, + 56, + 56, + 45, + 98, + 51, + 98, + 51, + 102, + 97, + 48, + 48, + 101, + 100, + 53, + 101, + 34, + 44, + 34, + 117, + 117, + 105, + 100, + 34, + 58, + 34, + 54, + 51, + 54, + 99, + 53, + 57, + 53, + 100, + 45, + 53, + 98, + 98, + 49, + 45, + 52, + 53, + 56, + 55, + 45, + 98, + 51, + 56, + 56, + 45, + 98, + 51, + 98, + 51, + 102, + 97, + 48, + 48, + 101, + 100, + 53, + 101, + 34, + 44, + 34, + 105, + 100, + 101, + 110, + 116, + 105, + 102, + 105, + 99, + 97, + 116, + 105, + 101, + 34, + 58, + 34, + 90, + 65, + 65, + 75, + 45, + 84, + 66, + 79, + 78, + 74, + 85, + 45, + 56, + 54, + 54, + 55, + 65, + 55, + 34, + 44, + 34, + 111, + 109, + 115, + 99, + 104, + 114, + 105, + 106, + 118, + 105, + 110, + 103, + 34, + 58, + 34, + 115, + 116, + 114, + 105, + 110, + 103, + 34, + 44, + 34, + 116, + 111, + 101, + 108, + 105, + 99, + 104, + 116, + 105, + 110, + 103, + 34, + 58, + 34, + 115, + 116, + 114, + 105, + 110, + 103, + 34, + 44, + 34, + 122, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 105, + 92, + 47, + 118, + 49, + 92, + 47, + 122, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 110, + 92, + 47, + 54, + 49, + 57, + 100, + 99, + 51, + 101, + 53, + 45, + 53, + 50, + 102, + 49, + 45, + 52, + 50, + 57, + 52, + 45, + 97, + 53, + 54, + 57, + 45, + 102, + 50, + 49, + 100, + 49, + 54, + 102, + 52, + 52, + 56, + 55, + 57, + 34, + 44, + 34, + 114, + 101, + 103, + 105, + 115, + 116, + 114, + 97, + 116, + 105, + 101, + 100, + 97, + 116, + 117, + 109, + 34, + 58, + 34, + 50, + 48, + 50, + 54, + 45, + 48, + 51, + 45, + 49, + 48, + 84, + 49, + 50, + 58, + 49, + 57, + 58, + 48, + 54, + 43, + 48, + 48, + 58, + 48, + 48, + 34, + 44, + 34, + 115, + 116, + 97, + 114, + 116, + 100, + 97, + 116, + 117, + 109, + 34, + 58, + 34, + 50, + 48, + 49, + 57, + 45, + 48, + 52, + 45, + 48, + 57, + 34, + 44, + 34, + 101, + 105, + 110, + 100, + 100, + 97, + 116, + 117, + 109, + 34, + 58, + 110, + 117, + 108, + 108, + 44, + 34, + 101, + 105, + 110, + 100, + 100, + 97, + 116, + 117, + 109, + 71, + 101, + 112, + 108, + 97, + 110, + 100, + 34, + 58, + 34, + 50, + 48, + 49, + 57, + 45, + 48, + 52, + 45, + 50, + 48, + 34, + 44, + 34, + 117, + 105, + 116, + 101, + 114, + 108, + 105, + 106, + 107, + 101, + 69, + 105, + 110, + 100, + 100, + 97, + 116, + 117, + 109, + 65, + 102, + 100, + 111, + 101, + 110, + 105, + 110, + 103, + 34, + 58, + 34, + 50, + 48, + 49, + 57, + 45, + 48, + 52, + 45, + 48, + 57, + 34, + 44, + 34, + 118, + 101, + 114, + 116, + 114, + 111, + 117, + 119, + 101, + 108, + 105, + 106, + 107, + 104, + 101, + 105, + 100, + 97, + 97, + 110, + 100, + 117, + 105, + 100, + 105, + 110, + 103, + 34, + 58, + 34, + 111, + 112, + 101, + 110, + 98, + 97, + 97, + 114, + 34, + 44, + 34, + 118, + 101, + 114, + 97, + 110, + 116, + 119, + 111, + 111, + 114, + 100, + 101, + 108, + 105, + 106, + 107, + 101, + 79, + 114, + 103, + 97, + 110, + 105, + 115, + 97, + 116, + 105, + 101, + 34, + 58, + 34, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 34, + 44, + 34, + 97, + 114, + 99, + 104, + 105, + 101, + 102, + 110, + 111, + 109, + 105, + 110, + 97, + 116, + 105, + 101, + 34, + 58, + 110, + 117, + 108, + 108, + 44, + 34, + 97, + 114, + 99, + 104, + 105, + 101, + 102, + 97, + 99, + 116, + 105, + 101, + 100, + 97, + 116, + 117, + 109, + 34, + 58, + 110, + 117, + 108, + 108, + 44, + 34, + 97, + 114, + 99, + 104, + 105, + 101, + 102, + 115, + 116, + 97, + 116, + 117, + 115, + 34, + 58, + 34, + 110, + 111, + 103, + 95, + 116, + 101, + 95, + 97, + 114, + 99, + 104, + 105, + 118, + 101, + 114, + 101, + 110, + 34, + 44, + 34, + 98, + 101, + 116, + 97, + 108, + 105, + 110, + 103, + 115, + 105, + 110, + 100, + 105, + 99, + 97, + 116, + 105, + 101, + 34, + 58, + 34, + 103, + 101, + 104, + 101, + 101, + 108, + 34, + 44, + 34, + 108, + 97, + 97, + 116, + 115, + 116, + 101, + 66, + 101, + 116, + 97, + 97, + 108, + 100, + 97, + 116, + 117, + 109, + 34, + 58, + 110, + 117, + 108, + 108, + 44, + 34, + 104, + 111, + 111, + 102, + 100, + 122, + 97, + 97, + 107, + 34, + 58, + 110, + 117, + 108, + 108, + 125 + ] + }, + "cookie": [], + "responseTime": 236, + "responseSize": 799 + }, + "id": "9c2eb4d9-143f-4283-8486-adb661de0142" + }, + { + "cursor": { + "ref": "ab8c8b98-ed42-47e6-a073-e4df26448993", + "length": 313, + "cycles": 1, + "position": 30, + "iteration": 0, + "httpRequestId": "43488fda-de08-4925-95c4-956972be067e" + }, + "item": { + "id": "194bf2c6-ee8b-4510-ba72-08f7ae2da89c", + "name": "(zrc-002b) Zaak bijwerken met bestaande combinatie identificatie en bronorganisatie is onmogelijk", + "request": { + "url": { + "host": [ + "{{created_zaak_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Accept-Crs", + "value": "EPSG:4326" + }, + { + "key": "Content-Crs", + "value": "EPSG:4326" + }, + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "PUT", + "body": { + "mode": "raw", + "raw": "{\r\n \"bronorganisatie\": \"000000000\",\r\n \"identificatie\": \"{{zaakidentificatie}}\",\r\n \"omschrijving\": \"string\",\r\n \"toelichting\": \"string\",\r\n \"registratiedatum\": \"2019-04-09\",\r\n \"verantwoordelijkeOrganisatie\": \"000000000\",\r\n \"zaaktype\": \"{{zaaktype_url}}\",\r\n \"startdatum\": \"2019-04-09\",\r\n \"einddatumGepland\": \"2019-04-20\",\r\n \"uiterlijkeEinddatumAfdoening\": \"2019-04-09\",\r\n \"publicatiedatum\": \"2019-04-09\",\r\n \"vertrouwelijkheidaanduiding\": \"openbaar\",\r\n \"betalingsindicatie\": \"geheel\",\r\n \"laatsteBetaalDatum\": \"2019-01-01\",\r\n \"zaakgeometrie\": {\r\n \"type\": \"Point\",\r\n \"coordinates\": [\r\n 53,\r\n 5\r\n ]\r\n },\r\n \"opschorting\": {\r\n \"indicatie\": true,\r\n \"reden\": \"string\"\r\n },\r\n \"selectielijstklasse\": \"{{selectielijstklasse_url}}\",\r\n \"archiefstatus\": \"nog_te_archiveren\",\r\n \"deelzaaktypen\" : [\"{{deelzaaktype_url}}\"]\r\n}" + } + }, + "response": [], + "event": [ + { + "listen": "prerequest", + "script": { + "id": "241f49b0-115f-45ee-8085-8175b389021c", + "type": "text/javascript", + "packages": {}, + "exec": [ + "" + ], + "_lastExecutionId": "75d00ee1-fc7f-4245-9cb8-b1e87442b920" + } + }, + { + "listen": "test", + "script": { + "id": "011796aa-9580-4715-a6eb-12225801be15", + "type": "text/javascript", + "packages": {}, + "exec": [ + "pm.test(\"Zaak aanmaken met bestaande combinatie bronorganisatie en identificatie geeft 400\", function() {", + " pm.response.to.have.status(400);", + " ", + " var error = pm.response.json()[\"invalidParams\"][0];", + " pm.expect(error.name).to.be.equal(\"identificatie\");", + " pm.expect(error.code).to.be.equal(\"wijzigen-niet-toegelaten\");", + "});" + ], + "_lastExecutionId": "a306fe1a-eb36-468c-b0ac-dff34982737d" + } + } + ] + }, + "request": { + "url": { + "protocol": "http", + "port": "8080", + "path": [ + "index.php", + "apps", + "procest", + "api", + "zgw", + "zaken", + "v1", + "zaken", + "636c595d-5bb1-4587-b388-b3b3fa00ed5e" + ], + "host": [ + "localhost" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Accept-Crs", + "value": "EPSG:4326" + }, + { + "key": "Content-Crs", + "value": "EPSG:4326" + }, + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Authorization", + "value": "Bearer eyJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJwcm9jZXN0LWFkbWluIiwiY2xpZW50X2lkIjoicHJvY2VzdC1hZG1pbiIsImlhdCI6IjE3NzMxNDUxNDciLCJ1c2VyX2lkIjoicHJvY2VzdC1hZG1pbiIsInVzZXJfcmVwcmVzZW50YXRpb24iOiIifQ.ONKNxPlwSrv2iN2Q3pH5JAJLlePForyYH1iKJXELEr4", + "system": true + }, + { + "key": "User-Agent", + "value": "PostmanRuntime/7.39.1", + "system": true + }, + { + "key": "Accept", + "value": "*/*", + "system": true + }, + { + "key": "Cache-Control", + "value": "no-cache", + "system": true + }, + { + "key": "Postman-Token", + "value": "9f3285e1-f6c1-4ea3-a8ba-092653da72a4", + "system": true + }, + { + "key": "Host", + "value": "localhost:8080", + "system": true + }, + { + "key": "Accept-Encoding", + "value": "gzip, deflate, br", + "system": true + }, + { + "key": "Connection", + "value": "keep-alive", + "system": true + }, + { + "key": "Content-Length", + "value": "1168", + "system": true + }, + { + "key": "Cookie", + "value": "ocvp3112b4wg=fcc5799988aaad968c636f82098b9e14; oc_sessionPassphrase=LBNdKxRzA0iqoULIruNxDDh2BK3O%2BrCIU8aUmiUcOFvy5Xw1YfjwQNlmBW2IkGwJYtxXh9%2BwDN6vYuGNX07tXzkBtjQJUWTGdzf8AIOUIVxVx5DfyWAQZ7nmYmQv6XSE; nc_sameSiteCookielax=true; nc_sameSiteCookiestrict=true", + "system": true + } + ], + "method": "PUT", + "body": { + "mode": "raw", + "raw": "{\r\n \"bronorganisatie\": \"000000000\",\r\n \"identificatie\": \"ZAAK-TBONJS-5AE22F\",\r\n \"omschrijving\": \"string\",\r\n \"toelichting\": \"string\",\r\n \"registratiedatum\": \"2019-04-09\",\r\n \"verantwoordelijkeOrganisatie\": \"000000000\",\r\n \"zaaktype\": \"http://localhost:8080/index.php/apps/procest/api/zgw/catalogi/v1/zaaktypen/619dc3e5-52f1-4294-a569-f21d16f44879\",\r\n \"startdatum\": \"2019-04-09\",\r\n \"einddatumGepland\": \"2019-04-20\",\r\n \"uiterlijkeEinddatumAfdoening\": \"2019-04-09\",\r\n \"publicatiedatum\": \"2019-04-09\",\r\n \"vertrouwelijkheidaanduiding\": \"openbaar\",\r\n \"betalingsindicatie\": \"geheel\",\r\n \"laatsteBetaalDatum\": \"2019-01-01\",\r\n \"zaakgeometrie\": {\r\n \"type\": \"Point\",\r\n \"coordinates\": [\r\n 53,\r\n 5\r\n ]\r\n },\r\n \"opschorting\": {\r\n \"indicatie\": true,\r\n \"reden\": \"string\"\r\n },\r\n \"selectielijstklasse\": \"https://selectielijst.openzaak.nl/api/v1/resultaten/0eb8f19f-d55e-4a15-8b5f-26cdf07482c1\",\r\n \"archiefstatus\": \"nog_te_archiveren\",\r\n \"deelzaaktypen\" : [\"http://localhost:8080/index.php/apps/procest/api/zgw/catalogi/v1/zaaktypen/7571bffe-5579-4295-9fac-87a9a6b6c5ac\"]\r\n}" + }, + "auth": { + "type": "jwt", + "jwt": [ + { + "type": "string", + "value": "{\r\n \"iss\": \"procest-admin\",\r\n \"client_id\": \"procest-admin\",\r\n \"iat\": \"1773145147\",\r\n \"user_id\": \"procest-admin\",\r\n \"user_representation\": \"\"\r\n}", + "key": "payload" + }, + { + "type": "string", + "value": "procest-admin-secret-key-for-testing", + "key": "secret" + }, + { + "type": "string", + "value": "HS256", + "key": "algorithm" + }, + { + "type": "boolean", + "value": false, + "key": "isSecretBase64Encoded" + }, + { + "type": "string", + "value": "header", + "key": "addTokenTo" + }, + { + "type": "string", + "value": "Bearer", + "key": "headerPrefix" + }, + { + "type": "string", + "value": "token", + "key": "queryParamKey" + }, + { + "type": "string", + "value": "{}", + "key": "header" + } + ] + } + }, + "response": { + "id": "63c03eef-8a03-459e-92c8-bed3f5276de0", + "status": "Bad request", + "code": 400, + "header": [ + { + "key": "Date", + "value": "Tue, 10 Mar 2026 12:19:06 GMT" + }, + { + "key": "Server", + "value": "Apache/2.4.66 (Debian)" + }, + { + "key": "X-Content-Type-Options", + "value": "nosniff" + }, + { + "key": "X-Frame-Options", + "value": "SAMEORIGIN" + }, + { + "key": "X-Permitted-Cross-Domain-Policies", + "value": "none" + }, + { + "key": "X-Robots-Tag", + "value": "noindex, nofollow" + }, + { + "key": "Referrer-Policy", + "value": "no-referrer" + }, + { + "key": "X-Powered-By", + "value": "PHP/8.3.30" + }, + { + "key": "Content-Security-Policy", + "value": "default-src 'none';base-uri 'none';manifest-src 'self';frame-ancestors 'none'" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=fcc5799988aaad968c636f82098b9e14; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=fcc5799988aaad968c636f82098b9e14; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=fcc5799988aaad968c636f82098b9e14; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=fcc5799988aaad968c636f82098b9e14; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=fcc5799988aaad968c636f82098b9e14; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=4ee67cf7bcb7c74f57442f0b35791bf3; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=4ee67cf7bcb7c74f57442f0b35791bf3; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=4ee67cf7bcb7c74f57442f0b35791bf3; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=4ee67cf7bcb7c74f57442f0b35791bf3; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=4ee67cf7bcb7c74f57442f0b35791bf3; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "X-Request-Id", + "value": "r98LTjMrGfxuhVtCUoD1" + }, + { + "key": "Cache-Control", + "value": "no-cache, no-store, must-revalidate" + }, + { + "key": "Feature-Policy", + "value": "autoplay 'none';camera 'none';fullscreen 'none';geolocation 'none';microphone 'none';payment 'none'" + }, + { + "key": "X-User-Id", + "value": "admin" + }, + { + "key": "Content-Length", + "value": "200" + }, + { + "key": "Connection", + "value": "close" + }, + { + "key": "Content-Type", + "value": "application/json; charset=utf-8" + } + ], + "stream": { + "type": "Buffer", + "data": [ + 123, + 34, + 100, + 101, + 116, + 97, + 105, + 108, + 34, + 58, + 34, + 72, + 101, + 116, + 32, + 118, + 101, + 108, + 100, + 32, + 105, + 100, + 101, + 110, + 116, + 105, + 102, + 105, + 99, + 97, + 116, + 105, + 101, + 32, + 109, + 97, + 103, + 32, + 110, + 105, + 101, + 116, + 32, + 103, + 101, + 119, + 105, + 106, + 122, + 105, + 103, + 100, + 32, + 119, + 111, + 114, + 100, + 101, + 110, + 46, + 34, + 44, + 34, + 105, + 110, + 118, + 97, + 108, + 105, + 100, + 80, + 97, + 114, + 97, + 109, + 115, + 34, + 58, + 91, + 123, + 34, + 110, + 97, + 109, + 101, + 34, + 58, + 34, + 105, + 100, + 101, + 110, + 116, + 105, + 102, + 105, + 99, + 97, + 116, + 105, + 101, + 34, + 44, + 34, + 99, + 111, + 100, + 101, + 34, + 58, + 34, + 119, + 105, + 106, + 122, + 105, + 103, + 101, + 110, + 45, + 110, + 105, + 101, + 116, + 45, + 116, + 111, + 101, + 103, + 101, + 108, + 97, + 116, + 101, + 110, + 34, + 44, + 34, + 114, + 101, + 97, + 115, + 111, + 110, + 34, + 58, + 34, + 72, + 101, + 116, + 32, + 118, + 101, + 108, + 100, + 32, + 105, + 100, + 101, + 110, + 116, + 105, + 102, + 105, + 99, + 97, + 116, + 105, + 101, + 32, + 109, + 97, + 103, + 32, + 110, + 105, + 101, + 116, + 32, + 103, + 101, + 119, + 105, + 106, + 122, + 105, + 103, + 100, + 32, + 119, + 111, + 114, + 100, + 101, + 110, + 46, + 34, + 125, + 93, + 125 + ] + }, + "cookie": [], + "responseTime": 111, + "responseSize": 200 + }, + "id": "194bf2c6-ee8b-4510-ba72-08f7ae2da89c", + "assertions": [ + { + "assertion": "Zaak aanmaken met bestaande combinatie bronorganisatie en identificatie geeft 400", + "skipped": false + } + ] + }, + { + "cursor": { + "ref": "d95ccedd-b1e7-4832-8f88-4967837f8834", + "length": 313, + "cycles": 1, + "position": 31, + "iteration": 0, + "httpRequestId": "4bcaf061-b407-48c4-8575-ef82bd3bf45a" + }, + "item": { + "id": "5de9a8b9-e6ac-4c31-954c-8e8894bb1567", + "name": "(zrc-002c) Zaak deels bijwerken met bestaande combinatie identificatie en bronorganisatie is onmogelijk", + "request": { + "url": { + "host": [ + "{{created_zaak_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Accept-Crs", + "value": "EPSG:4326" + }, + { + "key": "Content-Crs", + "value": "EPSG:4326" + }, + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "PATCH", + "body": { + "mode": "raw", + "raw": "{\n\t\"identificatie\": \"{{zaakidentificatie}}\",\n\t\"bronorganisatie\": \"000000000\"\n}" + } + }, + "response": [], + "event": [ + { + "listen": "prerequest", + "script": { + "id": "fb9f65f1-90c4-4b1f-a01a-6c07f8ee6e2b", + "type": "text/javascript", + "packages": {}, + "exec": [ + "" + ], + "_lastExecutionId": "0ec961e6-a69b-48b8-913f-70308c3e8c44" + } + }, + { + "listen": "test", + "script": { + "id": "dd119163-c14a-457c-a7f5-82715d89b69d", + "type": "text/javascript", + "packages": {}, + "exec": [ + "pm.test(\"Zaak aanmaken met bestaande combinatie bronorganisatie en identificatie geeft 400\", function() {", + " pm.response.to.have.status(400);", + " ", + " var error = pm.response.json()[\"invalidParams\"][0];", + " pm.expect(error.name).to.be.equal(\"identificatie\");", + " pm.expect(error.code).to.be.equal(\"wijzigen-niet-toegelaten\");", + "});", + "", + "" + ], + "_lastExecutionId": "df0c7f29-3a55-4f99-ba2d-592f1c4a13e4" + } + } + ] + }, + "request": { + "url": { + "protocol": "http", + "port": "8080", + "path": [ + "index.php", + "apps", + "procest", + "api", + "zgw", + "zaken", + "v1", + "zaken", + "636c595d-5bb1-4587-b388-b3b3fa00ed5e" + ], + "host": [ + "localhost" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Accept-Crs", + "value": "EPSG:4326" + }, + { + "key": "Content-Crs", + "value": "EPSG:4326" + }, + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Authorization", + "value": "Bearer eyJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJwcm9jZXN0LWFkbWluIiwiY2xpZW50X2lkIjoicHJvY2VzdC1hZG1pbiIsImlhdCI6IjE3NzMxNDUxNDciLCJ1c2VyX2lkIjoicHJvY2VzdC1hZG1pbiIsInVzZXJfcmVwcmVzZW50YXRpb24iOiIifQ.ONKNxPlwSrv2iN2Q3pH5JAJLlePForyYH1iKJXELEr4", + "system": true + }, + { + "key": "User-Agent", + "value": "PostmanRuntime/7.39.1", + "system": true + }, + { + "key": "Accept", + "value": "*/*", + "system": true + }, + { + "key": "Cache-Control", + "value": "no-cache", + "system": true + }, + { + "key": "Postman-Token", + "value": "9f80eaec-66a4-49e2-91bf-0f7ba73cc2cf", + "system": true + }, + { + "key": "Host", + "value": "localhost:8080", + "system": true + }, + { + "key": "Accept-Encoding", + "value": "gzip, deflate, br", + "system": true + }, + { + "key": "Connection", + "value": "keep-alive", + "system": true + }, + { + "key": "Content-Length", + "value": "75", + "system": true + }, + { + "key": "Cookie", + "value": "ocvp3112b4wg=4ee67cf7bcb7c74f57442f0b35791bf3; oc_sessionPassphrase=LBNdKxRzA0iqoULIruNxDDh2BK3O%2BrCIU8aUmiUcOFvy5Xw1YfjwQNlmBW2IkGwJYtxXh9%2BwDN6vYuGNX07tXzkBtjQJUWTGdzf8AIOUIVxVx5DfyWAQZ7nmYmQv6XSE; nc_sameSiteCookielax=true; nc_sameSiteCookiestrict=true", + "system": true + } + ], + "method": "PATCH", + "body": { + "mode": "raw", + "raw": "{\n\t\"identificatie\": \"ZAAK-TBONJS-5AE22F\",\n\t\"bronorganisatie\": \"000000000\"\n}" + }, + "auth": { + "type": "jwt", + "jwt": [ + { + "type": "string", + "value": "{\r\n \"iss\": \"procest-admin\",\r\n \"client_id\": \"procest-admin\",\r\n \"iat\": \"1773145147\",\r\n \"user_id\": \"procest-admin\",\r\n \"user_representation\": \"\"\r\n}", + "key": "payload" + }, + { + "type": "string", + "value": "procest-admin-secret-key-for-testing", + "key": "secret" + }, + { + "type": "string", + "value": "HS256", + "key": "algorithm" + }, + { + "type": "boolean", + "value": false, + "key": "isSecretBase64Encoded" + }, + { + "type": "string", + "value": "header", + "key": "addTokenTo" + }, + { + "type": "string", + "value": "Bearer", + "key": "headerPrefix" + }, + { + "type": "string", + "value": "token", + "key": "queryParamKey" + }, + { + "type": "string", + "value": "{}", + "key": "header" + } + ] + } + }, + "response": { + "id": "5e2fa1ad-869c-4e34-bb54-6586a670956b", + "status": "Bad request", + "code": 400, + "header": [ + { + "key": "Date", + "value": "Tue, 10 Mar 2026 12:19:06 GMT" + }, + { + "key": "Server", + "value": "Apache/2.4.66 (Debian)" + }, + { + "key": "X-Content-Type-Options", + "value": "nosniff" + }, + { + "key": "X-Frame-Options", + "value": "SAMEORIGIN" + }, + { + "key": "X-Permitted-Cross-Domain-Policies", + "value": "none" + }, + { + "key": "X-Robots-Tag", + "value": "noindex, nofollow" + }, + { + "key": "Referrer-Policy", + "value": "no-referrer" + }, + { + "key": "X-Powered-By", + "value": "PHP/8.3.30" + }, + { + "key": "Content-Security-Policy", + "value": "default-src 'none';base-uri 'none';manifest-src 'self';frame-ancestors 'none'" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=4ee67cf7bcb7c74f57442f0b35791bf3; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=4ee67cf7bcb7c74f57442f0b35791bf3; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=4ee67cf7bcb7c74f57442f0b35791bf3; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=4ee67cf7bcb7c74f57442f0b35791bf3; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=4ee67cf7bcb7c74f57442f0b35791bf3; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=5df3434a2514919d66688f65459e7502; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=5df3434a2514919d66688f65459e7502; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=5df3434a2514919d66688f65459e7502; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=5df3434a2514919d66688f65459e7502; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=5df3434a2514919d66688f65459e7502; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "X-Request-Id", + "value": "qOEfIZjlnoLJwrCwCmOt" + }, + { + "key": "Cache-Control", + "value": "no-cache, no-store, must-revalidate" + }, + { + "key": "Feature-Policy", + "value": "autoplay 'none';camera 'none';fullscreen 'none';geolocation 'none';microphone 'none';payment 'none'" + }, + { + "key": "X-User-Id", + "value": "admin" + }, + { + "key": "Content-Length", + "value": "200" + }, + { + "key": "Connection", + "value": "close" + }, + { + "key": "Content-Type", + "value": "application/json; charset=utf-8" + } + ], + "stream": { + "type": "Buffer", + "data": [ + 123, + 34, + 100, + 101, + 116, + 97, + 105, + 108, + 34, + 58, + 34, + 72, + 101, + 116, + 32, + 118, + 101, + 108, + 100, + 32, + 105, + 100, + 101, + 110, + 116, + 105, + 102, + 105, + 99, + 97, + 116, + 105, + 101, + 32, + 109, + 97, + 103, + 32, + 110, + 105, + 101, + 116, + 32, + 103, + 101, + 119, + 105, + 106, + 122, + 105, + 103, + 100, + 32, + 119, + 111, + 114, + 100, + 101, + 110, + 46, + 34, + 44, + 34, + 105, + 110, + 118, + 97, + 108, + 105, + 100, + 80, + 97, + 114, + 97, + 109, + 115, + 34, + 58, + 91, + 123, + 34, + 110, + 97, + 109, + 101, + 34, + 58, + 34, + 105, + 100, + 101, + 110, + 116, + 105, + 102, + 105, + 99, + 97, + 116, + 105, + 101, + 34, + 44, + 34, + 99, + 111, + 100, + 101, + 34, + 58, + 34, + 119, + 105, + 106, + 122, + 105, + 103, + 101, + 110, + 45, + 110, + 105, + 101, + 116, + 45, + 116, + 111, + 101, + 103, + 101, + 108, + 97, + 116, + 101, + 110, + 34, + 44, + 34, + 114, + 101, + 97, + 115, + 111, + 110, + 34, + 58, + 34, + 72, + 101, + 116, + 32, + 118, + 101, + 108, + 100, + 32, + 105, + 100, + 101, + 110, + 116, + 105, + 102, + 105, + 99, + 97, + 116, + 105, + 101, + 32, + 109, + 97, + 103, + 32, + 110, + 105, + 101, + 116, + 32, + 103, + 101, + 119, + 105, + 106, + 122, + 105, + 103, + 100, + 32, + 119, + 111, + 114, + 100, + 101, + 110, + 46, + 34, + 125, + 93, + 125 + ] + }, + "cookie": [], + "responseTime": 125, + "responseSize": 200 + }, + "id": "5de9a8b9-e6ac-4c31-954c-8e8894bb1567", + "assertions": [ + { + "assertion": "Zaak aanmaken met bestaande combinatie bronorganisatie en identificatie geeft 400", + "skipped": false + } + ] + }, + { + "cursor": { + "ref": "4c0a29c7-c68b-4286-b8dd-e26fc7cf877b", + "length": 313, + "cycles": 1, + "position": 32, + "iteration": 0, + "httpRequestId": "cff48243-3f66-4e7d-b23a-343dc0909808" + }, + "item": { + "id": "4bd4a012-706d-4f8f-9124-d9874ac5ba8f", + "name": "Retrieve Zaken for bronorganisatie", + "request": { + "url": { + "path": [ + "zaken" + ], + "host": [ + "{{zrc_url}}" + ], + "query": [ + { + "key": "bronorganisatie", + "value": "{{zaak_bronorganisatie}}" + } + ], + "variable": [] + }, + "header": [ + { + "key": "Accept-Crs", + "value": "EPSG:4326" + } + ], + "method": "GET" + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "e3591afc-5f8f-4a76-8cbb-b22f3f713431", + "type": "text/javascript", + "exec": [ + "pm.environment.set(\"zaken_for_bronorganisatie\", pm.response.json().results);" + ], + "_lastExecutionId": "c897cc0f-ea0e-44a8-962a-3c68d938069b" + } + } + ] + }, + "request": { + "url": { + "protocol": "http", + "port": "8080", + "path": [ + "index.php", + "apps", + "procest", + "api", + "zgw", + "zaken", + "v1", + "zaken" + ], + "host": [ + "localhost" + ], + "query": [ + { + "key": "bronorganisatie", + "value": "{{zaak_bronorganisatie}}" + } + ], + "variable": [] + }, + "header": [ + { + "key": "Accept-Crs", + "value": "EPSG:4326" + }, + { + "key": "Authorization", + "value": "Bearer eyJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJwcm9jZXN0LWFkbWluIiwiY2xpZW50X2lkIjoicHJvY2VzdC1hZG1pbiIsImlhdCI6IjE3NzMxNDUxNDciLCJ1c2VyX2lkIjoicHJvY2VzdC1hZG1pbiIsInVzZXJfcmVwcmVzZW50YXRpb24iOiIifQ.ONKNxPlwSrv2iN2Q3pH5JAJLlePForyYH1iKJXELEr4", + "system": true + }, + { + "key": "User-Agent", + "value": "PostmanRuntime/7.39.1", + "system": true + }, + { + "key": "Accept", + "value": "*/*", + "system": true + }, + { + "key": "Cache-Control", + "value": "no-cache", + "system": true + }, + { + "key": "Postman-Token", + "value": "dfd2c29a-2c8c-4c5c-8270-4ad44cc4b21b", + "system": true + }, + { + "key": "Host", + "value": "localhost:8080", + "system": true + }, + { + "key": "Accept-Encoding", + "value": "gzip, deflate, br", + "system": true + }, + { + "key": "Connection", + "value": "keep-alive", + "system": true + }, + { + "key": "Cookie", + "value": "ocvp3112b4wg=5df3434a2514919d66688f65459e7502; oc_sessionPassphrase=LBNdKxRzA0iqoULIruNxDDh2BK3O%2BrCIU8aUmiUcOFvy5Xw1YfjwQNlmBW2IkGwJYtxXh9%2BwDN6vYuGNX07tXzkBtjQJUWTGdzf8AIOUIVxVx5DfyWAQZ7nmYmQv6XSE; nc_sameSiteCookielax=true; nc_sameSiteCookiestrict=true", + "system": true + } + ], + "method": "GET", + "auth": { + "type": "jwt", + "jwt": [ + { + "type": "string", + "value": "{\r\n \"iss\": \"procest-admin\",\r\n \"client_id\": \"procest-admin\",\r\n \"iat\": \"1773145147\",\r\n \"user_id\": \"procest-admin\",\r\n \"user_representation\": \"\"\r\n}", + "key": "payload" + }, + { + "type": "string", + "value": "procest-admin-secret-key-for-testing", + "key": "secret" + }, + { + "type": "string", + "value": "HS256", + "key": "algorithm" + }, + { + "type": "boolean", + "value": false, + "key": "isSecretBase64Encoded" + }, + { + "type": "string", + "value": "header", + "key": "addTokenTo" + }, + { + "type": "string", + "value": "Bearer", + "key": "headerPrefix" + }, + { + "type": "string", + "value": "token", + "key": "queryParamKey" + }, + { + "type": "string", + "value": "{}", + "key": "header" + } + ] + } + }, + "response": { + "id": "6034565c-c35a-4b7e-a125-f2821b6534a3", + "status": "OK", + "code": 200, + "header": [ + { + "key": "Date", + "value": "Tue, 10 Mar 2026 12:19:07 GMT" + }, + { + "key": "Server", + "value": "Apache/2.4.66 (Debian)" + }, + { + "key": "X-Content-Type-Options", + "value": "nosniff" + }, + { + "key": "X-Frame-Options", + "value": "SAMEORIGIN" + }, + { + "key": "X-Permitted-Cross-Domain-Policies", + "value": "none" + }, + { + "key": "X-Robots-Tag", + "value": "noindex, nofollow" + }, + { + "key": "Referrer-Policy", + "value": "no-referrer" + }, + { + "key": "X-Powered-By", + "value": "PHP/8.3.30" + }, + { + "key": "Content-Security-Policy", + "value": "default-src 'none';base-uri 'none';manifest-src 'self';frame-ancestors 'none'" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=5df3434a2514919d66688f65459e7502; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=5df3434a2514919d66688f65459e7502; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=5df3434a2514919d66688f65459e7502; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=5df3434a2514919d66688f65459e7502; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=5df3434a2514919d66688f65459e7502; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=00fd28904a482f344249bdd6e51231a4; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=00fd28904a482f344249bdd6e51231a4; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "X-Request-Id", + "value": "vDlfLLESiFuPjQckrXwb" + }, + { + "key": "Cache-Control", + "value": "no-cache, no-store, must-revalidate" + }, + { + "key": "Feature-Policy", + "value": "autoplay 'none';camera 'none';fullscreen 'none';geolocation 'none';microphone 'none';payment 'none'" + }, + { + "key": "Content-Encoding", + "value": "gzip" + }, + { + "key": "Content-Length", + "value": "63" + }, + { + "key": "Keep-Alive", + "value": "timeout=5, max=100" + }, + { + "key": "Connection", + "value": "Keep-Alive" + }, + { + "key": "Content-Type", + "value": "application/json; charset=utf-8" + } + ], + "stream": { + "type": "Buffer", + "data": [ + 123, + 34, + 99, + 111, + 117, + 110, + 116, + 34, + 58, + 48, + 44, + 34, + 110, + 101, + 120, + 116, + 34, + 58, + 110, + 117, + 108, + 108, + 44, + 34, + 112, + 114, + 101, + 118, + 105, + 111, + 117, + 115, + 34, + 58, + 110, + 117, + 108, + 108, + 44, + 34, + 114, + 101, + 115, + 117, + 108, + 116, + 115, + 34, + 58, + 91, + 93, + 125 + ] + }, + "cookie": [], + "responseTime": 98, + "responseSize": 52 + }, + "id": "4bd4a012-706d-4f8f-9124-d9874ac5ba8f" + }, + { + "cursor": { + "ref": "6548e72f-074c-4f1b-88e7-cbc25f4798b3", + "length": 313, + "cycles": 1, + "position": 33, + "iteration": 0, + "httpRequestId": "10de7b5a-a1f6-4927-954b-b6acc6554b93" + }, + "item": { + "id": "07a372b4-a5ac-4fd5-9d75-c064e851ee98", + "name": "Genereer unieke identificatie voor Zaak onder bronorganisatie", + "request": { + "url": { + "path": [ + "zaken" + ], + "host": [ + "{{zrc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Accept-Crs", + "value": "EPSG:4326" + }, + { + "key": "Content-Crs", + "value": "EPSG:4326" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\r\n \"bronorganisatie\": \"000000000\",\r\n \"omschrijving\": \"string\",\r\n \"toelichting\": \"string\",\r\n \"registratiedatum\": \"2019-04-09\",\r\n \"verantwoordelijkeOrganisatie\": \"000000000\",\r\n \"zaaktype\": \"{{zaaktype_url}}\",\r\n \"startdatum\": \"2019-04-09\",\r\n \"einddatumGepland\": \"2019-04-20\",\r\n \"uiterlijkeEinddatumAfdoening\": \"2019-04-09\",\r\n \"publicatiedatum\": \"2019-04-09\",\r\n \"vertrouwelijkheidaanduiding\": \"openbaar\",\r\n \"betalingsindicatie\": \"geheel\",\r\n \"laatsteBetaalDatum\": \"2019-01-01\",\r\n \"zaakgeometrie\": {\r\n \"type\": \"Point\",\r\n \"coordinates\": [\r\n 53,\r\n 5\r\n ]\r\n },\r\n \"opschorting\": {\r\n \"indicatie\": true,\r\n \"reden\": \"string\"\r\n },\r\n \"selectielijstklasse\": \"{{selectielijstklasse_url}}\",\r\n \"archiefstatus\": \"nog_te_archiveren\",\r\n \"deelzaaktypen\" : [\"{{deelzaaktype_url}}\"]\r\n}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "9ca0e4e7-b089-41ea-b034-9b9f5d67d98d", + "type": "text/javascript", + "packages": {}, + "exec": [ + "if (pm.response.code==201){", + "", + " pm.environment.set(\"unieke_zaak_identificatie\", pm.response.json().identificatie);", + "}" + ], + "_lastExecutionId": "f561ed94-fffc-48cd-b849-b182b45a77b1" + } + }, + { + "listen": "prerequest", + "script": { + "id": "8a354cf0-1dae-4c7f-ac6b-d81a7e1b6ea1", + "type": "text/javascript", + "packages": {}, + "exec": [ + "" + ], + "_lastExecutionId": "c562c7a7-549f-49fc-a171-baa25491d9bb" + } + } + ] + }, + "request": { + "url": { + "protocol": "http", + "port": "8080", + "path": [ + "index.php", + "apps", + "procest", + "api", + "zgw", + "zaken", + "v1", + "zaken" + ], + "host": [ + "localhost" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Accept-Crs", + "value": "EPSG:4326" + }, + { + "key": "Content-Crs", + "value": "EPSG:4326" + }, + { + "key": "Authorization", + "value": "Bearer eyJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJwcm9jZXN0LWFkbWluIiwiY2xpZW50X2lkIjoicHJvY2VzdC1hZG1pbiIsImlhdCI6IjE3NzMxNDUxNDciLCJ1c2VyX2lkIjoicHJvY2VzdC1hZG1pbiIsInVzZXJfcmVwcmVzZW50YXRpb24iOiIifQ.ONKNxPlwSrv2iN2Q3pH5JAJLlePForyYH1iKJXELEr4", + "system": true + }, + { + "key": "User-Agent", + "value": "PostmanRuntime/7.39.1", + "system": true + }, + { + "key": "Accept", + "value": "*/*", + "system": true + }, + { + "key": "Cache-Control", + "value": "no-cache", + "system": true + }, + { + "key": "Postman-Token", + "value": "01da4622-194a-4151-9238-9b362983bdc8", + "system": true + }, + { + "key": "Host", + "value": "localhost:8080", + "system": true + }, + { + "key": "Accept-Encoding", + "value": "gzip, deflate, br", + "system": true + }, + { + "key": "Connection", + "value": "keep-alive", + "system": true + }, + { + "key": "Content-Length", + "value": "1124", + "system": true + }, + { + "key": "Cookie", + "value": "ocvp3112b4wg=00fd28904a482f344249bdd6e51231a4; oc_sessionPassphrase=LBNdKxRzA0iqoULIruNxDDh2BK3O%2BrCIU8aUmiUcOFvy5Xw1YfjwQNlmBW2IkGwJYtxXh9%2BwDN6vYuGNX07tXzkBtjQJUWTGdzf8AIOUIVxVx5DfyWAQZ7nmYmQv6XSE; nc_sameSiteCookielax=true; nc_sameSiteCookiestrict=true", + "system": true + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\r\n \"bronorganisatie\": \"000000000\",\r\n \"omschrijving\": \"string\",\r\n \"toelichting\": \"string\",\r\n \"registratiedatum\": \"2019-04-09\",\r\n \"verantwoordelijkeOrganisatie\": \"000000000\",\r\n \"zaaktype\": \"http://localhost:8080/index.php/apps/procest/api/zgw/catalogi/v1/zaaktypen/619dc3e5-52f1-4294-a569-f21d16f44879\",\r\n \"startdatum\": \"2019-04-09\",\r\n \"einddatumGepland\": \"2019-04-20\",\r\n \"uiterlijkeEinddatumAfdoening\": \"2019-04-09\",\r\n \"publicatiedatum\": \"2019-04-09\",\r\n \"vertrouwelijkheidaanduiding\": \"openbaar\",\r\n \"betalingsindicatie\": \"geheel\",\r\n \"laatsteBetaalDatum\": \"2019-01-01\",\r\n \"zaakgeometrie\": {\r\n \"type\": \"Point\",\r\n \"coordinates\": [\r\n 53,\r\n 5\r\n ]\r\n },\r\n \"opschorting\": {\r\n \"indicatie\": true,\r\n \"reden\": \"string\"\r\n },\r\n \"selectielijstklasse\": \"https://selectielijst.openzaak.nl/api/v1/resultaten/0eb8f19f-d55e-4a15-8b5f-26cdf07482c1\",\r\n \"archiefstatus\": \"nog_te_archiveren\",\r\n \"deelzaaktypen\" : [\"http://localhost:8080/index.php/apps/procest/api/zgw/catalogi/v1/zaaktypen/7571bffe-5579-4295-9fac-87a9a6b6c5ac\"]\r\n}" + }, + "auth": { + "type": "jwt", + "jwt": [ + { + "type": "string", + "value": "{\r\n \"iss\": \"procest-admin\",\r\n \"client_id\": \"procest-admin\",\r\n \"iat\": \"1773145147\",\r\n \"user_id\": \"procest-admin\",\r\n \"user_representation\": \"\"\r\n}", + "key": "payload" + }, + { + "type": "string", + "value": "procest-admin-secret-key-for-testing", + "key": "secret" + }, + { + "type": "string", + "value": "HS256", + "key": "algorithm" + }, + { + "type": "boolean", + "value": false, + "key": "isSecretBase64Encoded" + }, + { + "type": "string", + "value": "header", + "key": "addTokenTo" + }, + { + "type": "string", + "value": "Bearer", + "key": "headerPrefix" + }, + { + "type": "string", + "value": "token", + "key": "queryParamKey" + }, + { + "type": "string", + "value": "{}", + "key": "header" + } + ] + } + }, + "response": { + "id": "c54e4570-73b5-4428-8566-06392b6b0c90", + "status": "Created", + "code": 201, + "header": [ + { + "key": "Date", + "value": "Tue, 10 Mar 2026 12:19:07 GMT" + }, + { + "key": "Server", + "value": "Apache/2.4.66 (Debian)" + }, + { + "key": "X-Content-Type-Options", + "value": "nosniff" + }, + { + "key": "X-Frame-Options", + "value": "SAMEORIGIN" + }, + { + "key": "X-Permitted-Cross-Domain-Policies", + "value": "none" + }, + { + "key": "X-Robots-Tag", + "value": "noindex, nofollow" + }, + { + "key": "Referrer-Policy", + "value": "no-referrer" + }, + { + "key": "X-Powered-By", + "value": "PHP/8.3.30" + }, + { + "key": "Content-Security-Policy", + "value": "default-src 'none';base-uri 'none';manifest-src 'self';frame-ancestors 'none'" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=00fd28904a482f344249bdd6e51231a4; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=00fd28904a482f344249bdd6e51231a4; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=00fd28904a482f344249bdd6e51231a4; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=00fd28904a482f344249bdd6e51231a4; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "X-Request-Id", + "value": "2QKiMiqgN0B5oVykmttq" + }, + { + "key": "Cache-Control", + "value": "no-cache, no-store, must-revalidate" + }, + { + "key": "Feature-Policy", + "value": "autoplay 'none';camera 'none';fullscreen 'none';geolocation 'none';microphone 'none';payment 'none'" + }, + { + "key": "X-User-Id", + "value": "admin" + }, + { + "key": "Content-Length", + "value": "799" + }, + { + "key": "Keep-Alive", + "value": "timeout=5, max=99" + }, + { + "key": "Connection", + "value": "Keep-Alive" + }, + { + "key": "Content-Type", + "value": "application/json; charset=utf-8" + } + ], + "stream": { + "type": "Buffer", + "data": [ + 123, + 34, + 117, + 114, + 108, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 122, + 97, + 107, + 101, + 110, + 92, + 47, + 118, + 49, + 92, + 47, + 122, + 97, + 107, + 101, + 110, + 92, + 47, + 52, + 57, + 48, + 57, + 99, + 50, + 98, + 48, + 45, + 52, + 100, + 50, + 57, + 45, + 52, + 54, + 55, + 97, + 45, + 98, + 100, + 51, + 101, + 45, + 51, + 100, + 51, + 102, + 49, + 102, + 102, + 101, + 55, + 99, + 100, + 101, + 34, + 44, + 34, + 117, + 117, + 105, + 100, + 34, + 58, + 34, + 52, + 57, + 48, + 57, + 99, + 50, + 98, + 48, + 45, + 52, + 100, + 50, + 57, + 45, + 52, + 54, + 55, + 97, + 45, + 98, + 100, + 51, + 101, + 45, + 51, + 100, + 51, + 102, + 49, + 102, + 102, + 101, + 55, + 99, + 100, + 101, + 34, + 44, + 34, + 105, + 100, + 101, + 110, + 116, + 105, + 102, + 105, + 99, + 97, + 116, + 105, + 101, + 34, + 58, + 34, + 90, + 65, + 65, + 75, + 45, + 84, + 66, + 79, + 78, + 74, + 86, + 45, + 48, + 67, + 53, + 66, + 53, + 51, + 34, + 44, + 34, + 111, + 109, + 115, + 99, + 104, + 114, + 105, + 106, + 118, + 105, + 110, + 103, + 34, + 58, + 34, + 115, + 116, + 114, + 105, + 110, + 103, + 34, + 44, + 34, + 116, + 111, + 101, + 108, + 105, + 99, + 104, + 116, + 105, + 110, + 103, + 34, + 58, + 34, + 115, + 116, + 114, + 105, + 110, + 103, + 34, + 44, + 34, + 122, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 105, + 92, + 47, + 118, + 49, + 92, + 47, + 122, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 110, + 92, + 47, + 54, + 49, + 57, + 100, + 99, + 51, + 101, + 53, + 45, + 53, + 50, + 102, + 49, + 45, + 52, + 50, + 57, + 52, + 45, + 97, + 53, + 54, + 57, + 45, + 102, + 50, + 49, + 100, + 49, + 54, + 102, + 52, + 52, + 56, + 55, + 57, + 34, + 44, + 34, + 114, + 101, + 103, + 105, + 115, + 116, + 114, + 97, + 116, + 105, + 101, + 100, + 97, + 116, + 117, + 109, + 34, + 58, + 34, + 50, + 48, + 50, + 54, + 45, + 48, + 51, + 45, + 49, + 48, + 84, + 49, + 50, + 58, + 49, + 57, + 58, + 48, + 55, + 43, + 48, + 48, + 58, + 48, + 48, + 34, + 44, + 34, + 115, + 116, + 97, + 114, + 116, + 100, + 97, + 116, + 117, + 109, + 34, + 58, + 34, + 50, + 48, + 49, + 57, + 45, + 48, + 52, + 45, + 48, + 57, + 34, + 44, + 34, + 101, + 105, + 110, + 100, + 100, + 97, + 116, + 117, + 109, + 34, + 58, + 110, + 117, + 108, + 108, + 44, + 34, + 101, + 105, + 110, + 100, + 100, + 97, + 116, + 117, + 109, + 71, + 101, + 112, + 108, + 97, + 110, + 100, + 34, + 58, + 34, + 50, + 48, + 49, + 57, + 45, + 48, + 52, + 45, + 50, + 48, + 34, + 44, + 34, + 117, + 105, + 116, + 101, + 114, + 108, + 105, + 106, + 107, + 101, + 69, + 105, + 110, + 100, + 100, + 97, + 116, + 117, + 109, + 65, + 102, + 100, + 111, + 101, + 110, + 105, + 110, + 103, + 34, + 58, + 34, + 50, + 48, + 49, + 57, + 45, + 48, + 52, + 45, + 48, + 57, + 34, + 44, + 34, + 118, + 101, + 114, + 116, + 114, + 111, + 117, + 119, + 101, + 108, + 105, + 106, + 107, + 104, + 101, + 105, + 100, + 97, + 97, + 110, + 100, + 117, + 105, + 100, + 105, + 110, + 103, + 34, + 58, + 34, + 111, + 112, + 101, + 110, + 98, + 97, + 97, + 114, + 34, + 44, + 34, + 118, + 101, + 114, + 97, + 110, + 116, + 119, + 111, + 111, + 114, + 100, + 101, + 108, + 105, + 106, + 107, + 101, + 79, + 114, + 103, + 97, + 110, + 105, + 115, + 97, + 116, + 105, + 101, + 34, + 58, + 34, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 34, + 44, + 34, + 97, + 114, + 99, + 104, + 105, + 101, + 102, + 110, + 111, + 109, + 105, + 110, + 97, + 116, + 105, + 101, + 34, + 58, + 110, + 117, + 108, + 108, + 44, + 34, + 97, + 114, + 99, + 104, + 105, + 101, + 102, + 97, + 99, + 116, + 105, + 101, + 100, + 97, + 116, + 117, + 109, + 34, + 58, + 110, + 117, + 108, + 108, + 44, + 34, + 97, + 114, + 99, + 104, + 105, + 101, + 102, + 115, + 116, + 97, + 116, + 117, + 115, + 34, + 58, + 34, + 110, + 111, + 103, + 95, + 116, + 101, + 95, + 97, + 114, + 99, + 104, + 105, + 118, + 101, + 114, + 101, + 110, + 34, + 44, + 34, + 98, + 101, + 116, + 97, + 108, + 105, + 110, + 103, + 115, + 105, + 110, + 100, + 105, + 99, + 97, + 116, + 105, + 101, + 34, + 58, + 34, + 103, + 101, + 104, + 101, + 101, + 108, + 34, + 44, + 34, + 108, + 97, + 97, + 116, + 115, + 116, + 101, + 66, + 101, + 116, + 97, + 97, + 108, + 100, + 97, + 116, + 117, + 109, + 34, + 58, + 110, + 117, + 108, + 108, + 44, + 34, + 104, + 111, + 111, + 102, + 100, + 122, + 97, + 97, + 107, + 34, + 58, + 110, + 117, + 108, + 108, + 125 + ] + }, + "cookie": [], + "responseTime": 225, + "responseSize": 799 + }, + "id": "07a372b4-a5ac-4fd5-9d75-c064e851ee98" + }, + { + "cursor": { + "ref": "b2240688-36c5-42d4-9eee-2a83e81f0df0", + "length": 313, + "cycles": 1, + "position": 34, + "iteration": 0, + "httpRequestId": "67378c2c-f046-4149-9d96-5f8d65704793" + }, + "item": { + "id": "f40999a5-8402-45e8-842a-f99f6ac2df76", + "name": "(zrc-002d) is identificatie uniek", + "request": { + "url": { + "path": [ + "zaken" + ], + "host": [ + "{{zrc_url}}" + ], + "query": [ + { + "key": "identificatie", + "value": "{{unieke_zaak_identificatie}}" + } + ], + "variable": [] + }, + "header": [ + { + "key": "Accept-Crs", + "value": "EPSG:4326" + } + ], + "method": "GET" + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "4cae067d-da8b-4ea2-9c6b-544a37ad025f", + "type": "text/javascript", + "packages": {}, + "exec": [ + "pm.test(\"zrc-002d gegenereerde identificatie is uniek\", function() {\r", + " pm.expect(pm.response.json().count).to.be.equal(1);\r", + "})" + ], + "_lastExecutionId": "4487cf0c-f5bc-4a8f-b0f1-8e795f841722" + } + } + ] + }, + "request": { + "url": { + "protocol": "http", + "port": "8080", + "path": [ + "index.php", + "apps", + "procest", + "api", + "zgw", + "zaken", + "v1", + "zaken" + ], + "host": [ + "localhost" + ], + "query": [ + { + "key": "identificatie", + "value": "ZAAK-TBONJV-0C5B53" + } + ], + "variable": [] + }, + "header": [ + { + "key": "Accept-Crs", + "value": "EPSG:4326" + }, + { + "key": "Authorization", + "value": "Bearer eyJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJwcm9jZXN0LWFkbWluIiwiY2xpZW50X2lkIjoicHJvY2VzdC1hZG1pbiIsImlhdCI6IjE3NzMxNDUxNDciLCJ1c2VyX2lkIjoicHJvY2VzdC1hZG1pbiIsInVzZXJfcmVwcmVzZW50YXRpb24iOiIifQ.ONKNxPlwSrv2iN2Q3pH5JAJLlePForyYH1iKJXELEr4", + "system": true + }, + { + "key": "User-Agent", + "value": "PostmanRuntime/7.39.1", + "system": true + }, + { + "key": "Accept", + "value": "*/*", + "system": true + }, + { + "key": "Cache-Control", + "value": "no-cache", + "system": true + }, + { + "key": "Postman-Token", + "value": "ab18d79c-459b-4ac0-8fa2-40e15063a101", + "system": true + }, + { + "key": "Host", + "value": "localhost:8080", + "system": true + }, + { + "key": "Accept-Encoding", + "value": "gzip, deflate, br", + "system": true + }, + { + "key": "Connection", + "value": "keep-alive", + "system": true + }, + { + "key": "Cookie", + "value": "ocvp3112b4wg=00fd28904a482f344249bdd6e51231a4; oc_sessionPassphrase=LBNdKxRzA0iqoULIruNxDDh2BK3O%2BrCIU8aUmiUcOFvy5Xw1YfjwQNlmBW2IkGwJYtxXh9%2BwDN6vYuGNX07tXzkBtjQJUWTGdzf8AIOUIVxVx5DfyWAQZ7nmYmQv6XSE; nc_sameSiteCookielax=true; nc_sameSiteCookiestrict=true", + "system": true + } + ], + "method": "GET", + "auth": { + "type": "jwt", + "jwt": [ + { + "type": "string", + "value": "{\r\n \"iss\": \"procest-admin\",\r\n \"client_id\": \"procest-admin\",\r\n \"iat\": \"1773145147\",\r\n \"user_id\": \"procest-admin\",\r\n \"user_representation\": \"\"\r\n}", + "key": "payload" + }, + { + "type": "string", + "value": "procest-admin-secret-key-for-testing", + "key": "secret" + }, + { + "type": "string", + "value": "HS256", + "key": "algorithm" + }, + { + "type": "boolean", + "value": false, + "key": "isSecretBase64Encoded" + }, + { + "type": "string", + "value": "header", + "key": "addTokenTo" + }, + { + "type": "string", + "value": "Bearer", + "key": "headerPrefix" + }, + { + "type": "string", + "value": "token", + "key": "queryParamKey" + }, + { + "type": "string", + "value": "{}", + "key": "header" + } + ] + } + }, + "response": { + "id": "a1729bff-5a1b-4109-ae5b-0c9f51dc37a2", + "status": "OK", + "code": 200, + "header": [ + { + "key": "Date", + "value": "Tue, 10 Mar 2026 12:19:07 GMT" + }, + { + "key": "Server", + "value": "Apache/2.4.66 (Debian)" + }, + { + "key": "X-Content-Type-Options", + "value": "nosniff" + }, + { + "key": "X-Frame-Options", + "value": "SAMEORIGIN" + }, + { + "key": "X-Permitted-Cross-Domain-Policies", + "value": "none" + }, + { + "key": "X-Robots-Tag", + "value": "noindex, nofollow" + }, + { + "key": "Referrer-Policy", + "value": "no-referrer" + }, + { + "key": "X-Powered-By", + "value": "PHP/8.3.30" + }, + { + "key": "Content-Security-Policy", + "value": "default-src 'none';base-uri 'none';manifest-src 'self';frame-ancestors 'none'" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=00fd28904a482f344249bdd6e51231a4; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=00fd28904a482f344249bdd6e51231a4; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=00fd28904a482f344249bdd6e51231a4; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=00fd28904a482f344249bdd6e51231a4; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=7911064849a24d8c0e434a801027c9eb; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=7911064849a24d8c0e434a801027c9eb; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "X-Request-Id", + "value": "reApF287ktfnn3UnpTDR" + }, + { + "key": "Cache-Control", + "value": "no-cache, no-store, must-revalidate" + }, + { + "key": "Feature-Policy", + "value": "autoplay 'none';camera 'none';fullscreen 'none';geolocation 'none';microphone 'none';payment 'none'" + }, + { + "key": "Content-Encoding", + "value": "gzip" + }, + { + "key": "Content-Length", + "value": "482" + }, + { + "key": "Keep-Alive", + "value": "timeout=5, max=98" + }, + { + "key": "Connection", + "value": "Keep-Alive" + }, + { + "key": "Content-Type", + "value": "application/json; charset=utf-8" + } + ], + "stream": { + "type": "Buffer", + "data": [ + 123, + 34, + 99, + 111, + 117, + 110, + 116, + 34, + 58, + 49, + 44, + 34, + 110, + 101, + 120, + 116, + 34, + 58, + 110, + 117, + 108, + 108, + 44, + 34, + 112, + 114, + 101, + 118, + 105, + 111, + 117, + 115, + 34, + 58, + 110, + 117, + 108, + 108, + 44, + 34, + 114, + 101, + 115, + 117, + 108, + 116, + 115, + 34, + 58, + 91, + 123, + 34, + 117, + 114, + 108, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 122, + 97, + 107, + 101, + 110, + 92, + 47, + 118, + 49, + 92, + 47, + 122, + 97, + 107, + 101, + 110, + 92, + 47, + 52, + 57, + 48, + 57, + 99, + 50, + 98, + 48, + 45, + 52, + 100, + 50, + 57, + 45, + 52, + 54, + 55, + 97, + 45, + 98, + 100, + 51, + 101, + 45, + 51, + 100, + 51, + 102, + 49, + 102, + 102, + 101, + 55, + 99, + 100, + 101, + 34, + 44, + 34, + 117, + 117, + 105, + 100, + 34, + 58, + 34, + 52, + 57, + 48, + 57, + 99, + 50, + 98, + 48, + 45, + 52, + 100, + 50, + 57, + 45, + 52, + 54, + 55, + 97, + 45, + 98, + 100, + 51, + 101, + 45, + 51, + 100, + 51, + 102, + 49, + 102, + 102, + 101, + 55, + 99, + 100, + 101, + 34, + 44, + 34, + 105, + 100, + 101, + 110, + 116, + 105, + 102, + 105, + 99, + 97, + 116, + 105, + 101, + 34, + 58, + 34, + 90, + 65, + 65, + 75, + 45, + 84, + 66, + 79, + 78, + 74, + 86, + 45, + 48, + 67, + 53, + 66, + 53, + 51, + 34, + 44, + 34, + 111, + 109, + 115, + 99, + 104, + 114, + 105, + 106, + 118, + 105, + 110, + 103, + 34, + 58, + 34, + 115, + 116, + 114, + 105, + 110, + 103, + 34, + 44, + 34, + 116, + 111, + 101, + 108, + 105, + 99, + 104, + 116, + 105, + 110, + 103, + 34, + 58, + 34, + 115, + 116, + 114, + 105, + 110, + 103, + 34, + 44, + 34, + 122, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 105, + 92, + 47, + 118, + 49, + 92, + 47, + 122, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 110, + 92, + 47, + 54, + 49, + 57, + 100, + 99, + 51, + 101, + 53, + 45, + 53, + 50, + 102, + 49, + 45, + 52, + 50, + 57, + 52, + 45, + 97, + 53, + 54, + 57, + 45, + 102, + 50, + 49, + 100, + 49, + 54, + 102, + 52, + 52, + 56, + 55, + 57, + 34, + 44, + 34, + 114, + 101, + 103, + 105, + 115, + 116, + 114, + 97, + 116, + 105, + 101, + 100, + 97, + 116, + 117, + 109, + 34, + 58, + 34, + 50, + 48, + 50, + 54, + 45, + 48, + 51, + 45, + 49, + 48, + 84, + 49, + 50, + 58, + 49, + 57, + 58, + 48, + 55, + 43, + 48, + 48, + 58, + 48, + 48, + 34, + 44, + 34, + 115, + 116, + 97, + 114, + 116, + 100, + 97, + 116, + 117, + 109, + 34, + 58, + 34, + 50, + 48, + 49, + 57, + 45, + 48, + 52, + 45, + 48, + 57, + 32, + 48, + 48, + 58, + 48, + 48, + 58, + 48, + 48, + 34, + 44, + 34, + 101, + 105, + 110, + 100, + 100, + 97, + 116, + 117, + 109, + 34, + 58, + 110, + 117, + 108, + 108, + 44, + 34, + 101, + 105, + 110, + 100, + 100, + 97, + 116, + 117, + 109, + 71, + 101, + 112, + 108, + 97, + 110, + 100, + 34, + 58, + 34, + 50, + 48, + 49, + 57, + 45, + 48, + 52, + 45, + 50, + 48, + 32, + 48, + 48, + 58, + 48, + 48, + 58, + 48, + 48, + 34, + 44, + 34, + 117, + 105, + 116, + 101, + 114, + 108, + 105, + 106, + 107, + 101, + 69, + 105, + 110, + 100, + 100, + 97, + 116, + 117, + 109, + 65, + 102, + 100, + 111, + 101, + 110, + 105, + 110, + 103, + 34, + 58, + 34, + 50, + 48, + 49, + 57, + 45, + 48, + 52, + 45, + 48, + 57, + 32, + 48, + 48, + 58, + 48, + 48, + 58, + 48, + 48, + 34, + 44, + 34, + 118, + 101, + 114, + 116, + 114, + 111, + 117, + 119, + 101, + 108, + 105, + 106, + 107, + 104, + 101, + 105, + 100, + 97, + 97, + 110, + 100, + 117, + 105, + 100, + 105, + 110, + 103, + 34, + 58, + 34, + 111, + 112, + 101, + 110, + 98, + 97, + 97, + 114, + 34, + 44, + 34, + 118, + 101, + 114, + 97, + 110, + 116, + 119, + 111, + 111, + 114, + 100, + 101, + 108, + 105, + 106, + 107, + 101, + 79, + 114, + 103, + 97, + 110, + 105, + 115, + 97, + 116, + 105, + 101, + 34, + 58, + 34, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 34, + 44, + 34, + 97, + 114, + 99, + 104, + 105, + 101, + 102, + 110, + 111, + 109, + 105, + 110, + 97, + 116, + 105, + 101, + 34, + 58, + 110, + 117, + 108, + 108, + 44, + 34, + 97, + 114, + 99, + 104, + 105, + 101, + 102, + 97, + 99, + 116, + 105, + 101, + 100, + 97, + 116, + 117, + 109, + 34, + 58, + 110, + 117, + 108, + 108, + 44, + 34, + 97, + 114, + 99, + 104, + 105, + 101, + 102, + 115, + 116, + 97, + 116, + 117, + 115, + 34, + 58, + 34, + 110, + 111, + 103, + 95, + 116, + 101, + 95, + 97, + 114, + 99, + 104, + 105, + 118, + 101, + 114, + 101, + 110, + 34, + 44, + 34, + 98, + 101, + 116, + 97, + 108, + 105, + 110, + 103, + 115, + 105, + 110, + 100, + 105, + 99, + 97, + 116, + 105, + 101, + 34, + 58, + 34, + 103, + 101, + 104, + 101, + 101, + 108, + 34, + 44, + 34, + 108, + 97, + 97, + 116, + 115, + 116, + 101, + 66, + 101, + 116, + 97, + 97, + 108, + 100, + 97, + 116, + 117, + 109, + 34, + 58, + 110, + 117, + 108, + 108, + 44, + 34, + 104, + 111, + 111, + 102, + 100, + 122, + 97, + 97, + 107, + 34, + 58, + 110, + 117, + 108, + 108, + 125, + 93, + 125 + ] + }, + "cookie": [], + "responseTime": 102, + "responseSize": 878 + }, + "id": "f40999a5-8402-45e8-842a-f99f6ac2df76", + "assertions": [ + { + "assertion": "zrc-002d gegenereerde identificatie is uniek", + "skipped": false + } + ] + }, + { + "cursor": { + "ref": "ebebba22-9d10-4b90-86f8-e2998ca37025", + "length": 313, + "cycles": 1, + "position": 35, + "iteration": 0, + "httpRequestId": "77dd4c58-1646-4ed5-ae2d-3e013e7b98e6" + }, + "item": { + "id": "a7a6038c-256d-495c-970b-cdacbde8c4a5", + "name": "Zaak Copy", + "request": { + "url": { + "path": [ + "zaken" + ], + "host": [ + "{{zrc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Crs", + "value": "EPSG:4326" + }, + { + "key": "Accept-Crs", + "value": "EPSG:4326" + }, + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n \"bronorganisatie\": \"000000000\",\n \"omschrijving\": \"string\",\n \"toelichting\": \"string\",\n \"registratiedatum\": \"2019-04-09\",\n \"verantwoordelijkeOrganisatie\": \"000000000\",\n \"zaaktype\": \"{{zaaktype_url}}\",\n \"startdatum\": \"2019-04-09\",\n \"einddatumGepland\": \"2019-04-20\",\n \"uiterlijkeEinddatumAfdoening\": \"2019-04-09\",\n \"publicatiedatum\": \"2019-04-09\",\n \"vertrouwelijkheidaanduiding\": \"openbaar\",\n \"betalingsindicatie\": \"geheel\",\n \"laatsteBetaalDatum\": \"2019-01-01\",\n \"zaakgeometrie\": {\n \"type\": \"Point\",\n \"coordinates\": [\n 53,\n 5\n ]\n },\n \"opschorting\": {\n \"indicatie\": true,\n \"reden\": \"string\"\n },\n \"selectielijstklasse\": \"{{selectielijstklasse_url}}\",\n \"archiefstatus\": \"nog_te_archiveren\",\n \"deelzaaktypen\" : [\"{{deelzaaktype_url}}\"]\n}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "adf5247f-c262-413e-a7d5-fa6443f21004", + "type": "text/javascript", + "packages": {}, + "exec": [ + "if(pm.response.code == 201) {", + " var zaak = pm.response.json();", + " pm.environment.set(\"zaak_url\", zaak.url);", + "}" + ], + "_lastExecutionId": "5ec652b5-3388-4b38-9aca-8e57c13a8785" + } + }, + { + "listen": "prerequest", + "script": { + "id": "0fd33400-5b30-44ee-be26-d582f466fcac", + "type": "text/javascript", + "packages": {}, + "exec": [ + "" + ], + "_lastExecutionId": "92e2d4cf-29dd-4e1b-9b78-a3563ade0492" + } + } + ] + }, + "request": { + "url": { + "protocol": "http", + "port": "8080", + "path": [ + "index.php", + "apps", + "procest", + "api", + "zgw", + "zaken", + "v1", + "zaken" + ], + "host": [ + "localhost" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Crs", + "value": "EPSG:4326" + }, + { + "key": "Accept-Crs", + "value": "EPSG:4326" + }, + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Authorization", + "value": "Bearer eyJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJwcm9jZXN0LWFkbWluIiwiY2xpZW50X2lkIjoicHJvY2VzdC1hZG1pbiIsImlhdCI6IjE3NzMxNDUxNDgiLCJ1c2VyX2lkIjoicHJvY2VzdC1hZG1pbiIsInVzZXJfcmVwcmVzZW50YXRpb24iOiIifQ.4iDtK3Qkxg-t5NzMN3lBKfqpGyDzm41OF-GXzwVvUZs", + "system": true + }, + { + "key": "User-Agent", + "value": "PostmanRuntime/7.39.1", + "system": true + }, + { + "key": "Accept", + "value": "*/*", + "system": true + }, + { + "key": "Cache-Control", + "value": "no-cache", + "system": true + }, + { + "key": "Postman-Token", + "value": "cd66b61c-ddcc-415d-88f9-884735876617", + "system": true + }, + { + "key": "Host", + "value": "localhost:8080", + "system": true + }, + { + "key": "Accept-Encoding", + "value": "gzip, deflate, br", + "system": true + }, + { + "key": "Connection", + "value": "keep-alive", + "system": true + }, + { + "key": "Content-Length", + "value": "1096", + "system": true + }, + { + "key": "Cookie", + "value": "ocvp3112b4wg=7911064849a24d8c0e434a801027c9eb; oc_sessionPassphrase=LBNdKxRzA0iqoULIruNxDDh2BK3O%2BrCIU8aUmiUcOFvy5Xw1YfjwQNlmBW2IkGwJYtxXh9%2BwDN6vYuGNX07tXzkBtjQJUWTGdzf8AIOUIVxVx5DfyWAQZ7nmYmQv6XSE; nc_sameSiteCookielax=true; nc_sameSiteCookiestrict=true", + "system": true + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n \"bronorganisatie\": \"000000000\",\n \"omschrijving\": \"string\",\n \"toelichting\": \"string\",\n \"registratiedatum\": \"2019-04-09\",\n \"verantwoordelijkeOrganisatie\": \"000000000\",\n \"zaaktype\": \"http://localhost:8080/index.php/apps/procest/api/zgw/catalogi/v1/zaaktypen/619dc3e5-52f1-4294-a569-f21d16f44879\",\n \"startdatum\": \"2019-04-09\",\n \"einddatumGepland\": \"2019-04-20\",\n \"uiterlijkeEinddatumAfdoening\": \"2019-04-09\",\n \"publicatiedatum\": \"2019-04-09\",\n \"vertrouwelijkheidaanduiding\": \"openbaar\",\n \"betalingsindicatie\": \"geheel\",\n \"laatsteBetaalDatum\": \"2019-01-01\",\n \"zaakgeometrie\": {\n \"type\": \"Point\",\n \"coordinates\": [\n 53,\n 5\n ]\n },\n \"opschorting\": {\n \"indicatie\": true,\n \"reden\": \"string\"\n },\n \"selectielijstklasse\": \"https://selectielijst.openzaak.nl/api/v1/resultaten/0eb8f19f-d55e-4a15-8b5f-26cdf07482c1\",\n \"archiefstatus\": \"nog_te_archiveren\",\n \"deelzaaktypen\" : [\"http://localhost:8080/index.php/apps/procest/api/zgw/catalogi/v1/zaaktypen/7571bffe-5579-4295-9fac-87a9a6b6c5ac\"]\n}" + }, + "auth": { + "type": "jwt", + "jwt": [ + { + "type": "string", + "value": "{\r\n \"iss\": \"procest-admin\",\r\n \"client_id\": \"procest-admin\",\r\n \"iat\": \"1773145148\",\r\n \"user_id\": \"procest-admin\",\r\n \"user_representation\": \"\"\r\n}", + "key": "payload" + }, + { + "type": "string", + "value": "procest-admin-secret-key-for-testing", + "key": "secret" + }, + { + "type": "string", + "value": "HS256", + "key": "algorithm" + }, + { + "type": "boolean", + "value": false, + "key": "isSecretBase64Encoded" + }, + { + "type": "string", + "value": "header", + "key": "addTokenTo" + }, + { + "type": "string", + "value": "Bearer", + "key": "headerPrefix" + }, + { + "type": "string", + "value": "token", + "key": "queryParamKey" + }, + { + "type": "string", + "value": "{}", + "key": "header" + } + ] + } + }, + "response": { + "id": "951927b2-cc80-4b1a-8cd9-cc13664c4b15", + "status": "Created", + "code": 201, + "header": [ + { + "key": "Date", + "value": "Tue, 10 Mar 2026 12:19:07 GMT" + }, + { + "key": "Server", + "value": "Apache/2.4.66 (Debian)" + }, + { + "key": "X-Content-Type-Options", + "value": "nosniff" + }, + { + "key": "X-Frame-Options", + "value": "SAMEORIGIN" + }, + { + "key": "X-Permitted-Cross-Domain-Policies", + "value": "none" + }, + { + "key": "X-Robots-Tag", + "value": "noindex, nofollow" + }, + { + "key": "Referrer-Policy", + "value": "no-referrer" + }, + { + "key": "X-Powered-By", + "value": "PHP/8.3.30" + }, + { + "key": "Content-Security-Policy", + "value": "default-src 'none';base-uri 'none';manifest-src 'self';frame-ancestors 'none'" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=7911064849a24d8c0e434a801027c9eb; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=7911064849a24d8c0e434a801027c9eb; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=7911064849a24d8c0e434a801027c9eb; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=7911064849a24d8c0e434a801027c9eb; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "X-Request-Id", + "value": "7dRAuQkZmpwQ8FLvbdFo" + }, + { + "key": "Cache-Control", + "value": "no-cache, no-store, must-revalidate" + }, + { + "key": "Feature-Policy", + "value": "autoplay 'none';camera 'none';fullscreen 'none';geolocation 'none';microphone 'none';payment 'none'" + }, + { + "key": "X-User-Id", + "value": "admin" + }, + { + "key": "Content-Length", + "value": "799" + }, + { + "key": "Keep-Alive", + "value": "timeout=5, max=97" + }, + { + "key": "Connection", + "value": "Keep-Alive" + }, + { + "key": "Content-Type", + "value": "application/json; charset=utf-8" + } + ], + "stream": { + "type": "Buffer", + "data": [ + 123, + 34, + 117, + 114, + 108, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 122, + 97, + 107, + 101, + 110, + 92, + 47, + 118, + 49, + 92, + 47, + 122, + 97, + 107, + 101, + 110, + 92, + 47, + 55, + 100, + 99, + 100, + 52, + 97, + 102, + 53, + 45, + 101, + 53, + 49, + 55, + 45, + 52, + 53, + 52, + 55, + 45, + 98, + 55, + 49, + 101, + 45, + 54, + 97, + 101, + 48, + 53, + 55, + 101, + 56, + 56, + 54, + 56, + 51, + 34, + 44, + 34, + 117, + 117, + 105, + 100, + 34, + 58, + 34, + 55, + 100, + 99, + 100, + 52, + 97, + 102, + 53, + 45, + 101, + 53, + 49, + 55, + 45, + 52, + 53, + 52, + 55, + 45, + 98, + 55, + 49, + 101, + 45, + 54, + 97, + 101, + 48, + 53, + 55, + 101, + 56, + 56, + 54, + 56, + 51, + 34, + 44, + 34, + 105, + 100, + 101, + 110, + 116, + 105, + 102, + 105, + 99, + 97, + 116, + 105, + 101, + 34, + 58, + 34, + 90, + 65, + 65, + 75, + 45, + 84, + 66, + 79, + 78, + 74, + 86, + 45, + 51, + 69, + 54, + 56, + 54, + 68, + 34, + 44, + 34, + 111, + 109, + 115, + 99, + 104, + 114, + 105, + 106, + 118, + 105, + 110, + 103, + 34, + 58, + 34, + 115, + 116, + 114, + 105, + 110, + 103, + 34, + 44, + 34, + 116, + 111, + 101, + 108, + 105, + 99, + 104, + 116, + 105, + 110, + 103, + 34, + 58, + 34, + 115, + 116, + 114, + 105, + 110, + 103, + 34, + 44, + 34, + 122, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 105, + 92, + 47, + 118, + 49, + 92, + 47, + 122, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 110, + 92, + 47, + 54, + 49, + 57, + 100, + 99, + 51, + 101, + 53, + 45, + 53, + 50, + 102, + 49, + 45, + 52, + 50, + 57, + 52, + 45, + 97, + 53, + 54, + 57, + 45, + 102, + 50, + 49, + 100, + 49, + 54, + 102, + 52, + 52, + 56, + 55, + 57, + 34, + 44, + 34, + 114, + 101, + 103, + 105, + 115, + 116, + 114, + 97, + 116, + 105, + 101, + 100, + 97, + 116, + 117, + 109, + 34, + 58, + 34, + 50, + 48, + 50, + 54, + 45, + 48, + 51, + 45, + 49, + 48, + 84, + 49, + 50, + 58, + 49, + 57, + 58, + 48, + 55, + 43, + 48, + 48, + 58, + 48, + 48, + 34, + 44, + 34, + 115, + 116, + 97, + 114, + 116, + 100, + 97, + 116, + 117, + 109, + 34, + 58, + 34, + 50, + 48, + 49, + 57, + 45, + 48, + 52, + 45, + 48, + 57, + 34, + 44, + 34, + 101, + 105, + 110, + 100, + 100, + 97, + 116, + 117, + 109, + 34, + 58, + 110, + 117, + 108, + 108, + 44, + 34, + 101, + 105, + 110, + 100, + 100, + 97, + 116, + 117, + 109, + 71, + 101, + 112, + 108, + 97, + 110, + 100, + 34, + 58, + 34, + 50, + 48, + 49, + 57, + 45, + 48, + 52, + 45, + 50, + 48, + 34, + 44, + 34, + 117, + 105, + 116, + 101, + 114, + 108, + 105, + 106, + 107, + 101, + 69, + 105, + 110, + 100, + 100, + 97, + 116, + 117, + 109, + 65, + 102, + 100, + 111, + 101, + 110, + 105, + 110, + 103, + 34, + 58, + 34, + 50, + 48, + 49, + 57, + 45, + 48, + 52, + 45, + 48, + 57, + 34, + 44, + 34, + 118, + 101, + 114, + 116, + 114, + 111, + 117, + 119, + 101, + 108, + 105, + 106, + 107, + 104, + 101, + 105, + 100, + 97, + 97, + 110, + 100, + 117, + 105, + 100, + 105, + 110, + 103, + 34, + 58, + 34, + 111, + 112, + 101, + 110, + 98, + 97, + 97, + 114, + 34, + 44, + 34, + 118, + 101, + 114, + 97, + 110, + 116, + 119, + 111, + 111, + 114, + 100, + 101, + 108, + 105, + 106, + 107, + 101, + 79, + 114, + 103, + 97, + 110, + 105, + 115, + 97, + 116, + 105, + 101, + 34, + 58, + 34, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 34, + 44, + 34, + 97, + 114, + 99, + 104, + 105, + 101, + 102, + 110, + 111, + 109, + 105, + 110, + 97, + 116, + 105, + 101, + 34, + 58, + 110, + 117, + 108, + 108, + 44, + 34, + 97, + 114, + 99, + 104, + 105, + 101, + 102, + 97, + 99, + 116, + 105, + 101, + 100, + 97, + 116, + 117, + 109, + 34, + 58, + 110, + 117, + 108, + 108, + 44, + 34, + 97, + 114, + 99, + 104, + 105, + 101, + 102, + 115, + 116, + 97, + 116, + 117, + 115, + 34, + 58, + 34, + 110, + 111, + 103, + 95, + 116, + 101, + 95, + 97, + 114, + 99, + 104, + 105, + 118, + 101, + 114, + 101, + 110, + 34, + 44, + 34, + 98, + 101, + 116, + 97, + 108, + 105, + 110, + 103, + 115, + 105, + 110, + 100, + 105, + 99, + 97, + 116, + 105, + 101, + 34, + 58, + 34, + 103, + 101, + 104, + 101, + 101, + 108, + 34, + 44, + 34, + 108, + 97, + 97, + 116, + 115, + 116, + 101, + 66, + 101, + 116, + 97, + 97, + 108, + 100, + 97, + 116, + 117, + 109, + 34, + 58, + 110, + 117, + 108, + 108, + 44, + 34, + 104, + 111, + 111, + 102, + 100, + 122, + 97, + 97, + 107, + 34, + 58, + 110, + 117, + 108, + 108, + 125 + ] + }, + "cookie": [], + "responseTime": 232, + "responseSize": 799 + }, + "id": "a7a6038c-256d-495c-970b-cdacbde8c4a5" + }, + { + "cursor": { + "ref": "aba4628f-5b9a-4199-a2e2-4d57dd10aed1", + "length": 313, + "cycles": 1, + "position": 36, + "iteration": 0, + "httpRequestId": "1ca4f95b-e159-496e-990e-eb09aada54c8" + }, + "item": { + "id": "45c64d8e-4f82-4be7-ad30-148a0c4ec814", + "name": "(zrc-003a) ZaakInformatieObject aanmaken is mogelijk", + "request": { + "url": { + "path": [ + "zaakinformatieobjecten" + ], + "host": [ + "{{zrc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n\t\"zaak\": \"{{zaak_url}}\",\n\t\"informatieobject\": \"{{informatieobject_url}}\",\n\t\"titel\": \"test\",\n\t\"beschrijving\": \"bla\"\n}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "faee82a7-4410-4cb9-9191-6b18c4c8534a", + "type": "text/javascript", + "exec": [ + "pm.test(\"ZaakInformatieObject aanmaken met valide gegevens geeft 201\", function() {", + " pm.response.to.have.status(201);", + "});", + "", + "if(pm.response.code == 201) {", + " pm.environment.set(\"zaakinformatieobject_body\", pm.request.body.raw);", + " pm.environment.set(\"created_zaakinformatieobject_url\", pm.response.json().url);", + "}" + ], + "_lastExecutionId": "a8772243-b9a5-451c-a53b-19522ebc52e9" + } + } + ] + }, + "request": { + "url": { + "protocol": "http", + "port": "8080", + "path": [ + "index.php", + "apps", + "procest", + "api", + "zgw", + "zaken", + "v1", + "zaakinformatieobjecten" + ], + "host": [ + "localhost" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Authorization", + "value": "Bearer eyJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJwcm9jZXN0LWFkbWluIiwiY2xpZW50X2lkIjoicHJvY2VzdC1hZG1pbiIsImlhdCI6IjE3NzMxNDUxNDgiLCJ1c2VyX2lkIjoicHJvY2VzdC1hZG1pbiIsInVzZXJfcmVwcmVzZW50YXRpb24iOiIifQ.4iDtK3Qkxg-t5NzMN3lBKfqpGyDzm41OF-GXzwVvUZs", + "system": true + }, + { + "key": "User-Agent", + "value": "PostmanRuntime/7.39.1", + "system": true + }, + { + "key": "Accept", + "value": "*/*", + "system": true + }, + { + "key": "Cache-Control", + "value": "no-cache", + "system": true + }, + { + "key": "Postman-Token", + "value": "cb54beda-fb6b-4db8-9cc8-62a5fb0a592c", + "system": true + }, + { + "key": "Host", + "value": "localhost:8080", + "system": true + }, + { + "key": "Accept-Encoding", + "value": "gzip, deflate, br", + "system": true + }, + { + "key": "Connection", + "value": "keep-alive", + "system": true + }, + { + "key": "Content-Length", + "value": "319", + "system": true + }, + { + "key": "Cookie", + "value": "ocvp3112b4wg=7911064849a24d8c0e434a801027c9eb; oc_sessionPassphrase=LBNdKxRzA0iqoULIruNxDDh2BK3O%2BrCIU8aUmiUcOFvy5Xw1YfjwQNlmBW2IkGwJYtxXh9%2BwDN6vYuGNX07tXzkBtjQJUWTGdzf8AIOUIVxVx5DfyWAQZ7nmYmQv6XSE; nc_sameSiteCookielax=true; nc_sameSiteCookiestrict=true", + "system": true + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n\t\"zaak\": \"http://localhost:8080/index.php/apps/procest/api/zgw/zaken/v1/zaken/7dcd4af5-e517-4547-b71e-6ae057e88683\",\n\t\"informatieobject\": \"http://localhost:8080/index.php/apps/procest/api/zgw/documenten/v1/enkelvoudiginformatieobjecten/fcfbb8ed-8134-48b0-8185-e6a3ad193b3a\",\n\t\"titel\": \"test\",\n\t\"beschrijving\": \"bla\"\n}" + }, + "auth": { + "type": "jwt", + "jwt": [ + { + "type": "string", + "value": "{\r\n \"iss\": \"procest-admin\",\r\n \"client_id\": \"procest-admin\",\r\n \"iat\": \"1773145148\",\r\n \"user_id\": \"procest-admin\",\r\n \"user_representation\": \"\"\r\n}", + "key": "payload" + }, + { + "type": "string", + "value": "procest-admin-secret-key-for-testing", + "key": "secret" + }, + { + "type": "string", + "value": "HS256", + "key": "algorithm" + }, + { + "type": "boolean", + "value": false, + "key": "isSecretBase64Encoded" + }, + { + "type": "string", + "value": "header", + "key": "addTokenTo" + }, + { + "type": "string", + "value": "Bearer", + "key": "headerPrefix" + }, + { + "type": "string", + "value": "token", + "key": "queryParamKey" + }, + { + "type": "string", + "value": "{}", + "key": "header" + } + ] + } + }, + "response": { + "id": "6aa36b92-2a86-4421-b2d6-b751a1600ae0", + "status": "Created", + "code": 201, + "header": [ + { + "key": "Date", + "value": "Tue, 10 Mar 2026 12:19:07 GMT" + }, + { + "key": "Server", + "value": "Apache/2.4.66 (Debian)" + }, + { + "key": "X-Content-Type-Options", + "value": "nosniff" + }, + { + "key": "X-Frame-Options", + "value": "SAMEORIGIN" + }, + { + "key": "X-Permitted-Cross-Domain-Policies", + "value": "none" + }, + { + "key": "X-Robots-Tag", + "value": "noindex, nofollow" + }, + { + "key": "Referrer-Policy", + "value": "no-referrer" + }, + { + "key": "X-Powered-By", + "value": "PHP/8.3.30" + }, + { + "key": "Content-Security-Policy", + "value": "default-src 'none';base-uri 'none';manifest-src 'self';frame-ancestors 'none'" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=7911064849a24d8c0e434a801027c9eb; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=7911064849a24d8c0e434a801027c9eb; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=7911064849a24d8c0e434a801027c9eb; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=7911064849a24d8c0e434a801027c9eb; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=c30f5132b958e7b68f149afd4f10ea33; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=c30f5132b958e7b68f149afd4f10ea33; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=c30f5132b958e7b68f149afd4f10ea33; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=c30f5132b958e7b68f149afd4f10ea33; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=c30f5132b958e7b68f149afd4f10ea33; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "X-Request-Id", + "value": "86X4qB6lGbNVOZk9oMLL" + }, + { + "key": "Cache-Control", + "value": "no-cache, no-store, must-revalidate" + }, + { + "key": "Feature-Policy", + "value": "autoplay 'none';camera 'none';fullscreen 'none';geolocation 'none';microphone 'none';payment 'none'" + }, + { + "key": "X-User-Id", + "value": "admin" + }, + { + "key": "Content-Length", + "value": "598" + }, + { + "key": "Keep-Alive", + "value": "timeout=5, max=96" + }, + { + "key": "Connection", + "value": "Keep-Alive" + }, + { + "key": "Content-Type", + "value": "application/json; charset=utf-8" + } + ], + "stream": { + "type": "Buffer", + "data": [ + 123, + 34, + 117, + 114, + 108, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 122, + 97, + 107, + 101, + 110, + 92, + 47, + 118, + 49, + 92, + 47, + 122, + 97, + 97, + 107, + 105, + 110, + 102, + 111, + 114, + 109, + 97, + 116, + 105, + 101, + 111, + 98, + 106, + 101, + 99, + 116, + 101, + 110, + 92, + 47, + 100, + 54, + 49, + 101, + 57, + 54, + 48, + 50, + 45, + 100, + 101, + 49, + 97, + 45, + 52, + 53, + 99, + 51, + 45, + 98, + 49, + 48, + 97, + 45, + 55, + 56, + 52, + 54, + 54, + 97, + 54, + 57, + 102, + 54, + 102, + 57, + 34, + 44, + 34, + 117, + 117, + 105, + 100, + 34, + 58, + 34, + 100, + 54, + 49, + 101, + 57, + 54, + 48, + 50, + 45, + 100, + 101, + 49, + 97, + 45, + 52, + 53, + 99, + 51, + 45, + 98, + 49, + 48, + 97, + 45, + 55, + 56, + 52, + 54, + 54, + 97, + 54, + 57, + 102, + 54, + 102, + 57, + 34, + 44, + 34, + 122, + 97, + 97, + 107, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 122, + 97, + 107, + 101, + 110, + 92, + 47, + 118, + 49, + 92, + 47, + 122, + 97, + 107, + 101, + 110, + 92, + 47, + 55, + 100, + 99, + 100, + 52, + 97, + 102, + 53, + 45, + 101, + 53, + 49, + 55, + 45, + 52, + 53, + 52, + 55, + 45, + 98, + 55, + 49, + 101, + 45, + 54, + 97, + 101, + 48, + 53, + 55, + 101, + 56, + 56, + 54, + 56, + 51, + 34, + 44, + 34, + 105, + 110, + 102, + 111, + 114, + 109, + 97, + 116, + 105, + 101, + 111, + 98, + 106, + 101, + 99, + 116, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 100, + 111, + 99, + 117, + 109, + 101, + 110, + 116, + 101, + 110, + 92, + 47, + 118, + 49, + 92, + 47, + 101, + 110, + 107, + 101, + 108, + 118, + 111, + 117, + 100, + 105, + 103, + 105, + 110, + 102, + 111, + 114, + 109, + 97, + 116, + 105, + 101, + 111, + 98, + 106, + 101, + 99, + 116, + 101, + 110, + 92, + 47, + 102, + 99, + 102, + 98, + 98, + 56, + 101, + 100, + 45, + 56, + 49, + 51, + 52, + 45, + 52, + 56, + 98, + 48, + 45, + 56, + 49, + 56, + 53, + 45, + 101, + 54, + 97, + 51, + 97, + 100, + 49, + 57, + 51, + 98, + 51, + 97, + 34, + 44, + 34, + 116, + 105, + 116, + 101, + 108, + 34, + 58, + 34, + 116, + 101, + 115, + 116, + 34, + 44, + 34, + 98, + 101, + 115, + 99, + 104, + 114, + 105, + 106, + 118, + 105, + 110, + 103, + 34, + 58, + 34, + 98, + 108, + 97, + 34, + 44, + 34, + 114, + 101, + 103, + 105, + 115, + 116, + 114, + 97, + 116, + 105, + 101, + 100, + 97, + 116, + 117, + 109, + 34, + 58, + 34, + 50, + 48, + 50, + 54, + 45, + 48, + 51, + 45, + 49, + 48, + 34, + 44, + 34, + 97, + 97, + 114, + 100, + 82, + 101, + 108, + 97, + 116, + 105, + 101, + 87, + 101, + 101, + 114, + 103, + 97, + 118, + 101, + 34, + 58, + 34, + 72, + 111, + 111, + 114, + 116, + 32, + 98, + 105, + 106, + 44, + 32, + 111, + 109, + 103, + 101, + 107, + 101, + 101, + 114, + 100, + 58, + 32, + 107, + 101, + 110, + 116, + 34, + 125 + ] + }, + "cookie": [], + "responseTime": 287, + "responseSize": 598 + }, + "id": "45c64d8e-4f82-4be7-ad30-148a0c4ec814", + "assertions": [ + { + "assertion": "ZaakInformatieObject aanmaken met valide gegevens geeft 201", + "skipped": false + } + ] + }, + { + "cursor": { + "ref": "74e12ae3-99c1-479f-acfe-f6d3790122b6", + "length": 313, + "cycles": 1, + "position": 37, + "iteration": 0, + "httpRequestId": "a1d0e2ac-33ff-423f-be77-83a334d14e82" + }, + "item": { + "id": "9731516b-68dd-43cc-aaec-d4675c75d0dc", + "name": "(zrc-003b) ZaakInformatieObject bijwerken is mogelijk", + "request": { + "url": { + "host": [ + "{{created_zaakinformatieobject_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "PUT", + "body": { + "mode": "raw", + "raw": "{{request_body}}" + } + }, + "response": [], + "event": [ + { + "listen": "prerequest", + "script": { + "id": "d0b0f58b-26c9-4262-944c-a69e98be15ea", + "type": "text/javascript", + "exec": [ + "// Retrieve the Zaak body template and modify as needed", + "var body = JSON.parse(pm.environment.get(\"zaakinformatieobject_body\"));", + "pm.environment.set(\"beschrijving\", \"aangepaste beschrijving\");", + "body.beschrijving = pm.environment.get(\"beschrijving\");", + "", + "// Store the modified Zaak body, allowing it to be used in the main request", + "pm.environment.set(\"request_body\", JSON.stringify(body));" + ], + "_lastExecutionId": "b0f2f0c4-98b4-4529-b765-965c6a650551" + } + }, + { + "listen": "test", + "script": { + "id": "3af1a027-b34e-499f-bae8-6f657511fef9", + "type": "text/javascript", + "exec": [ + "pm.test(\"ZaakInformatieObject bijwerken met valide gegevens geeft 200\", function() {", + " pm.response.to.have.status(200);", + "});", + "", + "pm.test(\"ZaakInformatieObject bijwerken past gegevens correct aan\", function() {", + " pm.expect(pm.response.json().beschrijving).to.be.equal(pm.environment.get(\"beschrijving\"));", + "});" + ], + "_lastExecutionId": "07b0f354-c818-42d6-a9ca-85ad008bdaaa" + } + } + ] + }, + "request": { + "url": { + "protocol": "http", + "port": "8080", + "path": [ + "index.php", + "apps", + "procest", + "api", + "zgw", + "zaken", + "v1", + "zaakinformatieobjecten", + "d61e9602-de1a-45c3-b10a-78466a69f6f9" + ], + "host": [ + "localhost" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Authorization", + "value": "Bearer eyJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJwcm9jZXN0LWFkbWluIiwiY2xpZW50X2lkIjoicHJvY2VzdC1hZG1pbiIsImlhdCI6IjE3NzMxNDUxNDgiLCJ1c2VyX2lkIjoicHJvY2VzdC1hZG1pbiIsInVzZXJfcmVwcmVzZW50YXRpb24iOiIifQ.4iDtK3Qkxg-t5NzMN3lBKfqpGyDzm41OF-GXzwVvUZs", + "system": true + }, + { + "key": "User-Agent", + "value": "PostmanRuntime/7.39.1", + "system": true + }, + { + "key": "Accept", + "value": "*/*", + "system": true + }, + { + "key": "Cache-Control", + "value": "no-cache", + "system": true + }, + { + "key": "Postman-Token", + "value": "381ebcce-ff02-4bde-8d1c-933a4d71f4c5", + "system": true + }, + { + "key": "Host", + "value": "localhost:8080", + "system": true + }, + { + "key": "Accept-Encoding", + "value": "gzip, deflate, br", + "system": true + }, + { + "key": "Connection", + "value": "keep-alive", + "system": true + }, + { + "key": "Content-Length", + "value": "326", + "system": true + }, + { + "key": "Cookie", + "value": "ocvp3112b4wg=c30f5132b958e7b68f149afd4f10ea33; oc_sessionPassphrase=LBNdKxRzA0iqoULIruNxDDh2BK3O%2BrCIU8aUmiUcOFvy5Xw1YfjwQNlmBW2IkGwJYtxXh9%2BwDN6vYuGNX07tXzkBtjQJUWTGdzf8AIOUIVxVx5DfyWAQZ7nmYmQv6XSE; nc_sameSiteCookielax=true; nc_sameSiteCookiestrict=true", + "system": true + } + ], + "method": "PUT", + "body": { + "mode": "raw", + "raw": "{\"zaak\":\"http://localhost:8080/index.php/apps/procest/api/zgw/zaken/v1/zaken/7dcd4af5-e517-4547-b71e-6ae057e88683\",\"informatieobject\":\"http://localhost:8080/index.php/apps/procest/api/zgw/documenten/v1/enkelvoudiginformatieobjecten/fcfbb8ed-8134-48b0-8185-e6a3ad193b3a\",\"titel\":\"test\",\"beschrijving\":\"aangepaste beschrijving\"}" + }, + "auth": { + "type": "jwt", + "jwt": [ + { + "type": "string", + "value": "{\r\n \"iss\": \"procest-admin\",\r\n \"client_id\": \"procest-admin\",\r\n \"iat\": \"1773145148\",\r\n \"user_id\": \"procest-admin\",\r\n \"user_representation\": \"\"\r\n}", + "key": "payload" + }, + { + "type": "string", + "value": "procest-admin-secret-key-for-testing", + "key": "secret" + }, + { + "type": "string", + "value": "HS256", + "key": "algorithm" + }, + { + "type": "boolean", + "value": false, + "key": "isSecretBase64Encoded" + }, + { + "type": "string", + "value": "header", + "key": "addTokenTo" + }, + { + "type": "string", + "value": "Bearer", + "key": "headerPrefix" + }, + { + "type": "string", + "value": "token", + "key": "queryParamKey" + }, + { + "type": "string", + "value": "{}", + "key": "header" + } + ] + } + }, + "response": { + "id": "e5205ce7-b1f0-4525-a29c-9d348756d94c", + "status": "OK", + "code": 200, + "header": [ + { + "key": "Date", + "value": "Tue, 10 Mar 2026 12:19:08 GMT" + }, + { + "key": "Server", + "value": "Apache/2.4.66 (Debian)" + }, + { + "key": "X-Content-Type-Options", + "value": "nosniff" + }, + { + "key": "X-Frame-Options", + "value": "SAMEORIGIN" + }, + { + "key": "X-Permitted-Cross-Domain-Policies", + "value": "none" + }, + { + "key": "X-Robots-Tag", + "value": "noindex, nofollow" + }, + { + "key": "Referrer-Policy", + "value": "no-referrer" + }, + { + "key": "X-Powered-By", + "value": "PHP/8.3.30" + }, + { + "key": "Content-Security-Policy", + "value": "default-src 'none';base-uri 'none';manifest-src 'self';frame-ancestors 'none'" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=c30f5132b958e7b68f149afd4f10ea33; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=c30f5132b958e7b68f149afd4f10ea33; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=c30f5132b958e7b68f149afd4f10ea33; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=c30f5132b958e7b68f149afd4f10ea33; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=c30f5132b958e7b68f149afd4f10ea33; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=41f62f691e7ee4f8162d20340920d908; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=41f62f691e7ee4f8162d20340920d908; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=41f62f691e7ee4f8162d20340920d908; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=41f62f691e7ee4f8162d20340920d908; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=41f62f691e7ee4f8162d20340920d908; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "X-Request-Id", + "value": "2v6O7X4z47Tw1AsFkVJ7" + }, + { + "key": "Cache-Control", + "value": "no-cache, no-store, must-revalidate" + }, + { + "key": "Feature-Policy", + "value": "autoplay 'none';camera 'none';fullscreen 'none';geolocation 'none';microphone 'none';payment 'none'" + }, + { + "key": "X-User-Id", + "value": "admin" + }, + { + "key": "Content-Encoding", + "value": "gzip" + }, + { + "key": "Content-Length", + "value": "322" + }, + { + "key": "Keep-Alive", + "value": "timeout=5, max=95" + }, + { + "key": "Connection", + "value": "Keep-Alive" + }, + { + "key": "Content-Type", + "value": "application/json; charset=utf-8" + } + ], + "stream": { + "type": "Buffer", + "data": [ + 123, + 34, + 117, + 114, + 108, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 122, + 97, + 107, + 101, + 110, + 92, + 47, + 118, + 49, + 92, + 47, + 122, + 97, + 97, + 107, + 105, + 110, + 102, + 111, + 114, + 109, + 97, + 116, + 105, + 101, + 111, + 98, + 106, + 101, + 99, + 116, + 101, + 110, + 92, + 47, + 100, + 54, + 49, + 101, + 57, + 54, + 48, + 50, + 45, + 100, + 101, + 49, + 97, + 45, + 52, + 53, + 99, + 51, + 45, + 98, + 49, + 48, + 97, + 45, + 55, + 56, + 52, + 54, + 54, + 97, + 54, + 57, + 102, + 54, + 102, + 57, + 34, + 44, + 34, + 117, + 117, + 105, + 100, + 34, + 58, + 34, + 100, + 54, + 49, + 101, + 57, + 54, + 48, + 50, + 45, + 100, + 101, + 49, + 97, + 45, + 52, + 53, + 99, + 51, + 45, + 98, + 49, + 48, + 97, + 45, + 55, + 56, + 52, + 54, + 54, + 97, + 54, + 57, + 102, + 54, + 102, + 57, + 34, + 44, + 34, + 122, + 97, + 97, + 107, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 122, + 97, + 107, + 101, + 110, + 92, + 47, + 118, + 49, + 92, + 47, + 122, + 97, + 107, + 101, + 110, + 92, + 47, + 55, + 100, + 99, + 100, + 52, + 97, + 102, + 53, + 45, + 101, + 53, + 49, + 55, + 45, + 52, + 53, + 52, + 55, + 45, + 98, + 55, + 49, + 101, + 45, + 54, + 97, + 101, + 48, + 53, + 55, + 101, + 56, + 56, + 54, + 56, + 51, + 34, + 44, + 34, + 105, + 110, + 102, + 111, + 114, + 109, + 97, + 116, + 105, + 101, + 111, + 98, + 106, + 101, + 99, + 116, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 100, + 111, + 99, + 117, + 109, + 101, + 110, + 116, + 101, + 110, + 92, + 47, + 118, + 49, + 92, + 47, + 101, + 110, + 107, + 101, + 108, + 118, + 111, + 117, + 100, + 105, + 103, + 105, + 110, + 102, + 111, + 114, + 109, + 97, + 116, + 105, + 101, + 111, + 98, + 106, + 101, + 99, + 116, + 101, + 110, + 92, + 47, + 102, + 99, + 102, + 98, + 98, + 56, + 101, + 100, + 45, + 56, + 49, + 51, + 52, + 45, + 52, + 56, + 98, + 48, + 45, + 56, + 49, + 56, + 53, + 45, + 101, + 54, + 97, + 51, + 97, + 100, + 49, + 57, + 51, + 98, + 51, + 97, + 34, + 44, + 34, + 116, + 105, + 116, + 101, + 108, + 34, + 58, + 34, + 116, + 101, + 115, + 116, + 34, + 44, + 34, + 98, + 101, + 115, + 99, + 104, + 114, + 105, + 106, + 118, + 105, + 110, + 103, + 34, + 58, + 34, + 97, + 97, + 110, + 103, + 101, + 112, + 97, + 115, + 116, + 101, + 32, + 98, + 101, + 115, + 99, + 104, + 114, + 105, + 106, + 118, + 105, + 110, + 103, + 34, + 44, + 34, + 114, + 101, + 103, + 105, + 115, + 116, + 114, + 97, + 116, + 105, + 101, + 100, + 97, + 116, + 117, + 109, + 34, + 58, + 34, + 50, + 48, + 50, + 54, + 45, + 48, + 51, + 45, + 49, + 48, + 34, + 44, + 34, + 97, + 97, + 114, + 100, + 82, + 101, + 108, + 97, + 116, + 105, + 101, + 87, + 101, + 101, + 114, + 103, + 97, + 118, + 101, + 34, + 58, + 34, + 72, + 111, + 111, + 114, + 116, + 32, + 98, + 105, + 106, + 44, + 32, + 111, + 109, + 103, + 101, + 107, + 101, + 101, + 114, + 100, + 58, + 32, + 107, + 101, + 110, + 116, + 34, + 125 + ] + }, + "cookie": [], + "responseTime": 240, + "responseSize": 618 + }, + "id": "9731516b-68dd-43cc-aaec-d4675c75d0dc", + "assertions": [ + { + "assertion": "ZaakInformatieObject bijwerken met valide gegevens geeft 200", + "skipped": false + }, + { + "assertion": "ZaakInformatieObject bijwerken past gegevens correct aan", + "skipped": false + } + ] + }, + { + "cursor": { + "ref": "a7e3c6f5-133e-4ea1-9df1-1e4b088773bb", + "length": 313, + "cycles": 1, + "position": 38, + "iteration": 0, + "httpRequestId": "7fd131eb-568c-46a9-8d9b-5886c7927033" + }, + "item": { + "id": "a3bfaf8c-b41e-4675-81d4-f775401db643", + "name": "(zrc-003c) ZaakInformatieObject deels bijwerken is mogelijk", + "request": { + "url": { + "host": [ + "{{created_zaakinformatieobject_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "PATCH", + "body": { + "mode": "raw", + "raw": "{\n\t\"titel\": \"{{titel}}\"\n}" + } + }, + "response": [], + "event": [ + { + "listen": "prerequest", + "script": { + "id": "d8c225a8-0ee6-456d-b950-e6da9abd1341", + "type": "text/javascript", + "packages": {}, + "exec": [ + "pm.environment.set(\"titel\", \"aangepaste titel\");" + ], + "_lastExecutionId": "fa7639df-0ae5-4cfb-92d1-349b9af64b99" + } + }, + { + "listen": "test", + "script": { + "id": "d283ebc5-a76a-4599-a258-9c1bf841500b", + "type": "text/javascript", + "packages": {}, + "exec": [ + "pm.test(\"ZaakInformatieObject deels bijwerken met valide gegevens geeft 200\", function() {", + " pm.response.to.have.status(200);", + "});", + "", + "pm.test(\"ZaakInformatieObject deels bijwerken past gegevens correct aan\", function() {", + " pm.expect(pm.response.json().titel).to.be.equal(pm.environment.get(\"titel\"));", + "});", + "", + "" + ], + "_lastExecutionId": "f68629bb-54eb-41e9-8573-453fc4a8cd76" + } + } + ] + }, + "request": { + "url": { + "protocol": "http", + "port": "8080", + "path": [ + "index.php", + "apps", + "procest", + "api", + "zgw", + "zaken", + "v1", + "zaakinformatieobjecten", + "d61e9602-de1a-45c3-b10a-78466a69f6f9" + ], + "host": [ + "localhost" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Authorization", + "value": "Bearer eyJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJwcm9jZXN0LWFkbWluIiwiY2xpZW50X2lkIjoicHJvY2VzdC1hZG1pbiIsImlhdCI6IjE3NzMxNDUxNDgiLCJ1c2VyX2lkIjoicHJvY2VzdC1hZG1pbiIsInVzZXJfcmVwcmVzZW50YXRpb24iOiIifQ.4iDtK3Qkxg-t5NzMN3lBKfqpGyDzm41OF-GXzwVvUZs", + "system": true + }, + { + "key": "User-Agent", + "value": "PostmanRuntime/7.39.1", + "system": true + }, + { + "key": "Accept", + "value": "*/*", + "system": true + }, + { + "key": "Cache-Control", + "value": "no-cache", + "system": true + }, + { + "key": "Postman-Token", + "value": "d563d3ce-b5be-449f-867b-f46abe349362", + "system": true + }, + { + "key": "Host", + "value": "localhost:8080", + "system": true + }, + { + "key": "Accept-Encoding", + "value": "gzip, deflate, br", + "system": true + }, + { + "key": "Connection", + "value": "keep-alive", + "system": true + }, + { + "key": "Content-Length", + "value": "32", + "system": true + }, + { + "key": "Cookie", + "value": "ocvp3112b4wg=41f62f691e7ee4f8162d20340920d908; oc_sessionPassphrase=LBNdKxRzA0iqoULIruNxDDh2BK3O%2BrCIU8aUmiUcOFvy5Xw1YfjwQNlmBW2IkGwJYtxXh9%2BwDN6vYuGNX07tXzkBtjQJUWTGdzf8AIOUIVxVx5DfyWAQZ7nmYmQv6XSE; nc_sameSiteCookielax=true; nc_sameSiteCookiestrict=true", + "system": true + } + ], + "method": "PATCH", + "body": { + "mode": "raw", + "raw": "{\n\t\"titel\": \"aangepaste titel\"\n}" + }, + "auth": { + "type": "jwt", + "jwt": [ + { + "type": "string", + "value": "{\r\n \"iss\": \"procest-admin\",\r\n \"client_id\": \"procest-admin\",\r\n \"iat\": \"1773145148\",\r\n \"user_id\": \"procest-admin\",\r\n \"user_representation\": \"\"\r\n}", + "key": "payload" + }, + { + "type": "string", + "value": "procest-admin-secret-key-for-testing", + "key": "secret" + }, + { + "type": "string", + "value": "HS256", + "key": "algorithm" + }, + { + "type": "boolean", + "value": false, + "key": "isSecretBase64Encoded" + }, + { + "type": "string", + "value": "header", + "key": "addTokenTo" + }, + { + "type": "string", + "value": "Bearer", + "key": "headerPrefix" + }, + { + "type": "string", + "value": "token", + "key": "queryParamKey" + }, + { + "type": "string", + "value": "{}", + "key": "header" + } + ] + } + }, + "response": { + "id": "b5eb8901-c863-4561-bd95-c4cd66ec071d", + "status": "OK", + "code": 200, + "header": [ + { + "key": "Date", + "value": "Tue, 10 Mar 2026 12:19:08 GMT" + }, + { + "key": "Server", + "value": "Apache/2.4.66 (Debian)" + }, + { + "key": "X-Content-Type-Options", + "value": "nosniff" + }, + { + "key": "X-Frame-Options", + "value": "SAMEORIGIN" + }, + { + "key": "X-Permitted-Cross-Domain-Policies", + "value": "none" + }, + { + "key": "X-Robots-Tag", + "value": "noindex, nofollow" + }, + { + "key": "Referrer-Policy", + "value": "no-referrer" + }, + { + "key": "X-Powered-By", + "value": "PHP/8.3.30" + }, + { + "key": "Content-Security-Policy", + "value": "default-src 'none';base-uri 'none';manifest-src 'self';frame-ancestors 'none'" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=41f62f691e7ee4f8162d20340920d908; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=41f62f691e7ee4f8162d20340920d908; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=41f62f691e7ee4f8162d20340920d908; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=41f62f691e7ee4f8162d20340920d908; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=41f62f691e7ee4f8162d20340920d908; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=defa4661c1b6375433d97faf98404fad; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=defa4661c1b6375433d97faf98404fad; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=defa4661c1b6375433d97faf98404fad; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=defa4661c1b6375433d97faf98404fad; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=defa4661c1b6375433d97faf98404fad; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "X-Request-Id", + "value": "IvK2Gwkmwvb7JZacc5A8" + }, + { + "key": "Cache-Control", + "value": "no-cache, no-store, must-revalidate" + }, + { + "key": "Feature-Policy", + "value": "autoplay 'none';camera 'none';fullscreen 'none';geolocation 'none';microphone 'none';payment 'none'" + }, + { + "key": "X-User-Id", + "value": "admin" + }, + { + "key": "Content-Encoding", + "value": "gzip" + }, + { + "key": "Content-Length", + "value": "322" + }, + { + "key": "Keep-Alive", + "value": "timeout=5, max=94" + }, + { + "key": "Connection", + "value": "Keep-Alive" + }, + { + "key": "Content-Type", + "value": "application/json; charset=utf-8" + } + ], + "stream": { + "type": "Buffer", + "data": [ + 123, + 34, + 117, + 114, + 108, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 122, + 97, + 107, + 101, + 110, + 92, + 47, + 118, + 49, + 92, + 47, + 122, + 97, + 97, + 107, + 105, + 110, + 102, + 111, + 114, + 109, + 97, + 116, + 105, + 101, + 111, + 98, + 106, + 101, + 99, + 116, + 101, + 110, + 92, + 47, + 100, + 54, + 49, + 101, + 57, + 54, + 48, + 50, + 45, + 100, + 101, + 49, + 97, + 45, + 52, + 53, + 99, + 51, + 45, + 98, + 49, + 48, + 97, + 45, + 55, + 56, + 52, + 54, + 54, + 97, + 54, + 57, + 102, + 54, + 102, + 57, + 34, + 44, + 34, + 117, + 117, + 105, + 100, + 34, + 58, + 34, + 100, + 54, + 49, + 101, + 57, + 54, + 48, + 50, + 45, + 100, + 101, + 49, + 97, + 45, + 52, + 53, + 99, + 51, + 45, + 98, + 49, + 48, + 97, + 45, + 55, + 56, + 52, + 54, + 54, + 97, + 54, + 57, + 102, + 54, + 102, + 57, + 34, + 44, + 34, + 122, + 97, + 97, + 107, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 122, + 97, + 107, + 101, + 110, + 92, + 47, + 118, + 49, + 92, + 47, + 122, + 97, + 107, + 101, + 110, + 92, + 47, + 55, + 100, + 99, + 100, + 52, + 97, + 102, + 53, + 45, + 101, + 53, + 49, + 55, + 45, + 52, + 53, + 52, + 55, + 45, + 98, + 55, + 49, + 101, + 45, + 54, + 97, + 101, + 48, + 53, + 55, + 101, + 56, + 56, + 54, + 56, + 51, + 34, + 44, + 34, + 105, + 110, + 102, + 111, + 114, + 109, + 97, + 116, + 105, + 101, + 111, + 98, + 106, + 101, + 99, + 116, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 100, + 111, + 99, + 117, + 109, + 101, + 110, + 116, + 101, + 110, + 92, + 47, + 118, + 49, + 92, + 47, + 101, + 110, + 107, + 101, + 108, + 118, + 111, + 117, + 100, + 105, + 103, + 105, + 110, + 102, + 111, + 114, + 109, + 97, + 116, + 105, + 101, + 111, + 98, + 106, + 101, + 99, + 116, + 101, + 110, + 92, + 47, + 102, + 99, + 102, + 98, + 98, + 56, + 101, + 100, + 45, + 56, + 49, + 51, + 52, + 45, + 52, + 56, + 98, + 48, + 45, + 56, + 49, + 56, + 53, + 45, + 101, + 54, + 97, + 51, + 97, + 100, + 49, + 57, + 51, + 98, + 51, + 97, + 34, + 44, + 34, + 116, + 105, + 116, + 101, + 108, + 34, + 58, + 34, + 97, + 97, + 110, + 103, + 101, + 112, + 97, + 115, + 116, + 101, + 32, + 116, + 105, + 116, + 101, + 108, + 34, + 44, + 34, + 98, + 101, + 115, + 99, + 104, + 114, + 105, + 106, + 118, + 105, + 110, + 103, + 34, + 58, + 34, + 97, + 97, + 110, + 103, + 101, + 112, + 97, + 115, + 116, + 101, + 32, + 98, + 101, + 115, + 99, + 104, + 114, + 105, + 106, + 118, + 105, + 110, + 103, + 34, + 44, + 34, + 114, + 101, + 103, + 105, + 115, + 116, + 114, + 97, + 116, + 105, + 101, + 100, + 97, + 116, + 117, + 109, + 34, + 58, + 34, + 50, + 48, + 50, + 54, + 45, + 48, + 51, + 45, + 49, + 48, + 34, + 44, + 34, + 97, + 97, + 114, + 100, + 82, + 101, + 108, + 97, + 116, + 105, + 101, + 87, + 101, + 101, + 114, + 103, + 97, + 118, + 101, + 34, + 58, + 34, + 72, + 111, + 111, + 114, + 116, + 32, + 98, + 105, + 106, + 44, + 32, + 111, + 109, + 103, + 101, + 107, + 101, + 101, + 114, + 100, + 58, + 32, + 107, + 101, + 110, + 116, + 34, + 125 + ] + }, + "cookie": [], + "responseTime": 234, + "responseSize": 630 + }, + "id": "a3bfaf8c-b41e-4675-81d4-f775401db643", + "assertions": [ + { + "assertion": "ZaakInformatieObject deels bijwerken met valide gegevens geeft 200", + "skipped": false + }, + { + "assertion": "ZaakInformatieObject deels bijwerken past gegevens correct aan", + "skipped": false + } + ] + }, + { + "cursor": { + "ref": "1216a452-a2ff-48bb-84bd-47b29ef18999", + "length": 313, + "cycles": 1, + "position": 39, + "iteration": 0, + "httpRequestId": "ac94fc91-00ff-46e6-9909-0c4585f36fcc" + }, + "item": { + "id": "a4190b4f-64ce-4b28-9b93-4d963ff76f61", + "name": "(zrc-003d) ZaakInformatieObject aanmaken met ongeldige informatieobject url is onmogelijk", + "request": { + "url": { + "path": [ + "zaakinformatieobjecten" + ], + "host": [ + "{{zrc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n\t\"zaak\": \"{{zaak_url}}\",\n\t\"informatieobject\": \"{{mock_url}}/404\",\n\t\"titel\": \"test\",\n\t\"beschrijving\": \"bla\"\n}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "2cacf68e-6138-43a2-9408-3f284ce6224a", + "type": "text/javascript", + "packages": {}, + "exec": [ + "pm.test(\"BesluitInformatieObject aanmaken met informatieobject url die niet resulteert in 200 geeft 404\", function() {", + " pm.response.to.have.status(400);", + " ", + " // Verify that error was thrown for correct reason", + " var error = pm.response.json()[\"invalidParams\"][0];", + " pm.expect(error.name).to.be.equal(\"informatieobject\");", + " pm.expect(error.code).to.be.equal(\"bad-url\");", + "});", + "", + "if(pm.response.code == 201) {", + " pm.environment.set(\"created_zaakinformatieobject_url\", pm.response.json().url);", + "", + "}" + ], + "_lastExecutionId": "c29675f4-de53-4bba-a5e4-23a85ca63b09" + } + } + ] + }, + "request": { + "url": { + "protocol": "http", + "port": "8080", + "path": [ + "index.php", + "apps", + "procest", + "api", + "zgw", + "zaken", + "v1", + "zaakinformatieobjecten" + ], + "host": [ + "localhost" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Authorization", + "value": "Bearer eyJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJwcm9jZXN0LWFkbWluIiwiY2xpZW50X2lkIjoicHJvY2VzdC1hZG1pbiIsImlhdCI6IjE3NzMxNDUxNDkiLCJ1c2VyX2lkIjoicHJvY2VzdC1hZG1pbiIsInVzZXJfcmVwcmVzZW50YXRpb24iOiIifQ.QhDSyc-MgsIOTNN6pHpTYPi0j23UJAoPk1mFRmMX44s", + "system": true + }, + { + "key": "User-Agent", + "value": "PostmanRuntime/7.39.1", + "system": true + }, + { + "key": "Accept", + "value": "*/*", + "system": true + }, + { + "key": "Cache-Control", + "value": "no-cache", + "system": true + }, + { + "key": "Postman-Token", + "value": "589ff1a6-2bb5-40bc-9d82-26f794b26833", + "system": true + }, + { + "key": "Host", + "value": "localhost:8080", + "system": true + }, + { + "key": "Accept-Encoding", + "value": "gzip, deflate, br", + "system": true + }, + { + "key": "Connection", + "value": "keep-alive", + "system": true + }, + { + "key": "Content-Length", + "value": "242", + "system": true + }, + { + "key": "Cookie", + "value": "ocvp3112b4wg=defa4661c1b6375433d97faf98404fad; oc_sessionPassphrase=LBNdKxRzA0iqoULIruNxDDh2BK3O%2BrCIU8aUmiUcOFvy5Xw1YfjwQNlmBW2IkGwJYtxXh9%2BwDN6vYuGNX07tXzkBtjQJUWTGdzf8AIOUIVxVx5DfyWAQZ7nmYmQv6XSE; nc_sameSiteCookielax=true; nc_sameSiteCookiestrict=true", + "system": true + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n\t\"zaak\": \"http://localhost:8080/index.php/apps/procest/api/zgw/zaken/v1/zaken/7dcd4af5-e517-4547-b71e-6ae057e88683\",\n\t\"informatieobject\": \"http://localhost:8080/index.php/apps/procest/api/zgw/404\",\n\t\"titel\": \"test\",\n\t\"beschrijving\": \"bla\"\n}" + }, + "auth": { + "type": "jwt", + "jwt": [ + { + "type": "string", + "value": "{\r\n \"iss\": \"procest-admin\",\r\n \"client_id\": \"procest-admin\",\r\n \"iat\": \"1773145149\",\r\n \"user_id\": \"procest-admin\",\r\n \"user_representation\": \"\"\r\n}", + "key": "payload" + }, + { + "type": "string", + "value": "procest-admin-secret-key-for-testing", + "key": "secret" + }, + { + "type": "string", + "value": "HS256", + "key": "algorithm" + }, + { + "type": "boolean", + "value": false, + "key": "isSecretBase64Encoded" + }, + { + "type": "string", + "value": "header", + "key": "addTokenTo" + }, + { + "type": "string", + "value": "Bearer", + "key": "headerPrefix" + }, + { + "type": "string", + "value": "token", + "key": "queryParamKey" + }, + { + "type": "string", + "value": "{}", + "key": "header" + } + ] + } + }, + "response": { + "id": "06b50d81-67e8-4395-93ce-92b96c09d740", + "status": "Bad request", + "code": 400, + "header": [ + { + "key": "Date", + "value": "Tue, 10 Mar 2026 12:19:08 GMT" + }, + { + "key": "Server", + "value": "Apache/2.4.66 (Debian)" + }, + { + "key": "X-Content-Type-Options", + "value": "nosniff" + }, + { + "key": "X-Frame-Options", + "value": "SAMEORIGIN" + }, + { + "key": "X-Permitted-Cross-Domain-Policies", + "value": "none" + }, + { + "key": "X-Robots-Tag", + "value": "noindex, nofollow" + }, + { + "key": "Referrer-Policy", + "value": "no-referrer" + }, + { + "key": "X-Powered-By", + "value": "PHP/8.3.30" + }, + { + "key": "Content-Security-Policy", + "value": "default-src 'none';base-uri 'none';manifest-src 'self';frame-ancestors 'none'" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=defa4661c1b6375433d97faf98404fad; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=defa4661c1b6375433d97faf98404fad; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=defa4661c1b6375433d97faf98404fad; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=defa4661c1b6375433d97faf98404fad; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=defa4661c1b6375433d97faf98404fad; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=a4c5c96fa745e404f9ac6e8686022f88; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=a4c5c96fa745e404f9ac6e8686022f88; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=a4c5c96fa745e404f9ac6e8686022f88; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=a4c5c96fa745e404f9ac6e8686022f88; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=a4c5c96fa745e404f9ac6e8686022f88; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "X-Request-Id", + "value": "zr6BlhZoljB0bnQ1hS73" + }, + { + "key": "Cache-Control", + "value": "no-cache, no-store, must-revalidate" + }, + { + "key": "Feature-Policy", + "value": "autoplay 'none';camera 'none';fullscreen 'none';geolocation 'none';microphone 'none';payment 'none'" + }, + { + "key": "X-User-Id", + "value": "admin" + }, + { + "key": "Content-Length", + "value": "138" + }, + { + "key": "Connection", + "value": "close" + }, + { + "key": "Content-Type", + "value": "application/json; charset=utf-8" + } + ], + "stream": { + "type": "Buffer", + "data": [ + 123, + 34, + 100, + 101, + 116, + 97, + 105, + 108, + 34, + 58, + 34, + 68, + 101, + 32, + 105, + 110, + 102, + 111, + 114, + 109, + 97, + 116, + 105, + 101, + 111, + 98, + 106, + 101, + 99, + 116, + 32, + 85, + 82, + 76, + 32, + 105, + 115, + 32, + 111, + 110, + 103, + 101, + 108, + 100, + 105, + 103, + 46, + 34, + 44, + 34, + 105, + 110, + 118, + 97, + 108, + 105, + 100, + 80, + 97, + 114, + 97, + 109, + 115, + 34, + 58, + 91, + 123, + 34, + 110, + 97, + 109, + 101, + 34, + 58, + 34, + 105, + 110, + 102, + 111, + 114, + 109, + 97, + 116, + 105, + 101, + 111, + 98, + 106, + 101, + 99, + 116, + 34, + 44, + 34, + 99, + 111, + 100, + 101, + 34, + 58, + 34, + 98, + 97, + 100, + 45, + 117, + 114, + 108, + 34, + 44, + 34, + 114, + 101, + 97, + 115, + 111, + 110, + 34, + 58, + 34, + 79, + 110, + 103, + 101, + 108, + 100, + 105, + 103, + 101, + 32, + 85, + 82, + 76, + 46, + 34, + 125, + 93, + 125 + ] + }, + "cookie": [], + "responseTime": 110, + "responseSize": 138 + }, + "id": "a4190b4f-64ce-4b28-9b93-4d963ff76f61", + "assertions": [ + { + "assertion": "BesluitInformatieObject aanmaken met informatieobject url die niet resulteert in 200 geeft 404", + "skipped": false + } + ] + }, + { + "cursor": { + "ref": "4d1274d8-eee0-4345-b9c4-8e9f1166dacf", + "length": 313, + "cycles": 1, + "position": 40, + "iteration": 0, + "httpRequestId": "27553151-f0ed-42dc-9360-c324d6e17eef" + }, + "item": { + "id": "70122bd4-ddd3-4de4-a322-e99011bf86e1", + "name": "Zaak", + "request": { + "url": { + "path": [ + "zaken" + ], + "host": [ + "{{zrc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Crs", + "value": "EPSG:4326" + }, + { + "key": "Accept-Crs", + "value": "EPSG:4326" + }, + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n \"bronorganisatie\": \"000000000\",\n \"omschrijving\": \"string\",\n \"toelichting\": \"string\",\n \"registratiedatum\": \"2019-04-09\",\n \"verantwoordelijkeOrganisatie\": \"000000000\",\n \"zaaktype\": \"{{zaaktype_url}}\",\n \"startdatum\": \"2019-04-09\",\n \"einddatumGepland\": \"2019-04-20\",\n \"uiterlijkeEinddatumAfdoening\": \"2019-04-09\",\n \"publicatiedatum\": \"2019-04-09\",\n \"vertrouwelijkheidaanduiding\": \"openbaar\",\n \"betalingsindicatie\": \"geheel\",\n \"laatsteBetaalDatum\": \"2019-01-01\",\n \"zaakgeometrie\": {\n \"type\": \"Point\",\n \"coordinates\": [\n 53,\n 5\n ]\n },\n \"opschorting\": {\n \"indicatie\": true,\n \"reden\": \"string\"\n },\n \"selectielijstklasse\": \"{{selectielijstklasse_url}}\",\n \"archiefstatus\": \"nog_te_archiveren\",\n \"deelzaaktypen\" : [\"{{deelzaaktype_url}}\"]\n}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "abc0d51a-724d-4441-b422-e99a301210e7", + "type": "text/javascript", + "packages": {}, + "exec": [ + "if(pm.response.code == 201) {", + " var zaak = pm.response.json();", + " pm.environment.set(\"zaak_url\", zaak.url);", + "}" + ], + "_lastExecutionId": "67d9839e-978d-4d90-a9bd-ea23058d633a" + } + }, + { + "listen": "prerequest", + "script": { + "id": "f640238e-fa2d-4bb1-82f3-0c08bcb8b579", + "type": "text/javascript", + "packages": {}, + "exec": [ + "" + ], + "_lastExecutionId": "ba6b20fa-e4ec-45a6-86cd-836164ff2b6f" + } + } + ] + }, + "request": { + "url": { + "protocol": "http", + "port": "8080", + "path": [ + "index.php", + "apps", + "procest", + "api", + "zgw", + "zaken", + "v1", + "zaken" + ], + "host": [ + "localhost" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Crs", + "value": "EPSG:4326" + }, + { + "key": "Accept-Crs", + "value": "EPSG:4326" + }, + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Authorization", + "value": "Bearer eyJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJwcm9jZXN0LWFkbWluIiwiY2xpZW50X2lkIjoicHJvY2VzdC1hZG1pbiIsImlhdCI6IjE3NzMxNDUxNDkiLCJ1c2VyX2lkIjoicHJvY2VzdC1hZG1pbiIsInVzZXJfcmVwcmVzZW50YXRpb24iOiIifQ.QhDSyc-MgsIOTNN6pHpTYPi0j23UJAoPk1mFRmMX44s", + "system": true + }, + { + "key": "User-Agent", + "value": "PostmanRuntime/7.39.1", + "system": true + }, + { + "key": "Accept", + "value": "*/*", + "system": true + }, + { + "key": "Cache-Control", + "value": "no-cache", + "system": true + }, + { + "key": "Postman-Token", + "value": "3c268c70-2a92-4b75-9c8f-f300d14d0180", + "system": true + }, + { + "key": "Host", + "value": "localhost:8080", + "system": true + }, + { + "key": "Accept-Encoding", + "value": "gzip, deflate, br", + "system": true + }, + { + "key": "Connection", + "value": "keep-alive", + "system": true + }, + { + "key": "Content-Length", + "value": "1096", + "system": true + }, + { + "key": "Cookie", + "value": "ocvp3112b4wg=a4c5c96fa745e404f9ac6e8686022f88; oc_sessionPassphrase=LBNdKxRzA0iqoULIruNxDDh2BK3O%2BrCIU8aUmiUcOFvy5Xw1YfjwQNlmBW2IkGwJYtxXh9%2BwDN6vYuGNX07tXzkBtjQJUWTGdzf8AIOUIVxVx5DfyWAQZ7nmYmQv6XSE; nc_sameSiteCookielax=true; nc_sameSiteCookiestrict=true", + "system": true + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n \"bronorganisatie\": \"000000000\",\n \"omschrijving\": \"string\",\n \"toelichting\": \"string\",\n \"registratiedatum\": \"2019-04-09\",\n \"verantwoordelijkeOrganisatie\": \"000000000\",\n \"zaaktype\": \"http://localhost:8080/index.php/apps/procest/api/zgw/catalogi/v1/zaaktypen/619dc3e5-52f1-4294-a569-f21d16f44879\",\n \"startdatum\": \"2019-04-09\",\n \"einddatumGepland\": \"2019-04-20\",\n \"uiterlijkeEinddatumAfdoening\": \"2019-04-09\",\n \"publicatiedatum\": \"2019-04-09\",\n \"vertrouwelijkheidaanduiding\": \"openbaar\",\n \"betalingsindicatie\": \"geheel\",\n \"laatsteBetaalDatum\": \"2019-01-01\",\n \"zaakgeometrie\": {\n \"type\": \"Point\",\n \"coordinates\": [\n 53,\n 5\n ]\n },\n \"opschorting\": {\n \"indicatie\": true,\n \"reden\": \"string\"\n },\n \"selectielijstklasse\": \"https://selectielijst.openzaak.nl/api/v1/resultaten/0eb8f19f-d55e-4a15-8b5f-26cdf07482c1\",\n \"archiefstatus\": \"nog_te_archiveren\",\n \"deelzaaktypen\" : [\"http://localhost:8080/index.php/apps/procest/api/zgw/catalogi/v1/zaaktypen/7571bffe-5579-4295-9fac-87a9a6b6c5ac\"]\n}" + }, + "auth": { + "type": "jwt", + "jwt": [ + { + "type": "string", + "value": "{\r\n \"iss\": \"procest-admin\",\r\n \"client_id\": \"procest-admin\",\r\n \"iat\": \"1773145149\",\r\n \"user_id\": \"procest-admin\",\r\n \"user_representation\": \"\"\r\n}", + "key": "payload" + }, + { + "type": "string", + "value": "procest-admin-secret-key-for-testing", + "key": "secret" + }, + { + "type": "string", + "value": "HS256", + "key": "algorithm" + }, + { + "type": "boolean", + "value": false, + "key": "isSecretBase64Encoded" + }, + { + "type": "string", + "value": "header", + "key": "addTokenTo" + }, + { + "type": "string", + "value": "Bearer", + "key": "headerPrefix" + }, + { + "type": "string", + "value": "token", + "key": "queryParamKey" + }, + { + "type": "string", + "value": "{}", + "key": "header" + } + ] + } + }, + "response": { + "id": "3aedd510-f214-4ea2-a8ae-978379e146b3", + "status": "Created", + "code": 201, + "header": [ + { + "key": "Date", + "value": "Tue, 10 Mar 2026 12:19:08 GMT" + }, + { + "key": "Server", + "value": "Apache/2.4.66 (Debian)" + }, + { + "key": "X-Content-Type-Options", + "value": "nosniff" + }, + { + "key": "X-Frame-Options", + "value": "SAMEORIGIN" + }, + { + "key": "X-Permitted-Cross-Domain-Policies", + "value": "none" + }, + { + "key": "X-Robots-Tag", + "value": "noindex, nofollow" + }, + { + "key": "Referrer-Policy", + "value": "no-referrer" + }, + { + "key": "X-Powered-By", + "value": "PHP/8.3.30" + }, + { + "key": "Content-Security-Policy", + "value": "default-src 'none';base-uri 'none';manifest-src 'self';frame-ancestors 'none'" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=a4c5c96fa745e404f9ac6e8686022f88; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=a4c5c96fa745e404f9ac6e8686022f88; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=a4c5c96fa745e404f9ac6e8686022f88; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=a4c5c96fa745e404f9ac6e8686022f88; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=a4c5c96fa745e404f9ac6e8686022f88; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=f2f23f46a9696b739bd1cab0349fc359; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=f2f23f46a9696b739bd1cab0349fc359; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=f2f23f46a9696b739bd1cab0349fc359; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=f2f23f46a9696b739bd1cab0349fc359; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=f2f23f46a9696b739bd1cab0349fc359; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "X-Request-Id", + "value": "kZ658C4h9MYMxG8e1O2g" + }, + { + "key": "Cache-Control", + "value": "no-cache, no-store, must-revalidate" + }, + { + "key": "Feature-Policy", + "value": "autoplay 'none';camera 'none';fullscreen 'none';geolocation 'none';microphone 'none';payment 'none'" + }, + { + "key": "X-User-Id", + "value": "admin" + }, + { + "key": "Content-Length", + "value": "799" + }, + { + "key": "Keep-Alive", + "value": "timeout=5, max=100" + }, + { + "key": "Connection", + "value": "Keep-Alive" + }, + { + "key": "Content-Type", + "value": "application/json; charset=utf-8" + } + ], + "stream": { + "type": "Buffer", + "data": [ + 123, + 34, + 117, + 114, + 108, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 122, + 97, + 107, + 101, + 110, + 92, + 47, + 118, + 49, + 92, + 47, + 122, + 97, + 107, + 101, + 110, + 92, + 47, + 102, + 98, + 54, + 100, + 55, + 50, + 53, + 52, + 45, + 52, + 55, + 101, + 100, + 45, + 52, + 99, + 102, + 49, + 45, + 97, + 53, + 56, + 53, + 45, + 99, + 54, + 48, + 57, + 54, + 55, + 53, + 52, + 54, + 53, + 49, + 50, + 34, + 44, + 34, + 117, + 117, + 105, + 100, + 34, + 58, + 34, + 102, + 98, + 54, + 100, + 55, + 50, + 53, + 52, + 45, + 52, + 55, + 101, + 100, + 45, + 52, + 99, + 102, + 49, + 45, + 97, + 53, + 56, + 53, + 45, + 99, + 54, + 48, + 57, + 54, + 55, + 53, + 52, + 54, + 53, + 49, + 50, + 34, + 44, + 34, + 105, + 100, + 101, + 110, + 116, + 105, + 102, + 105, + 99, + 97, + 116, + 105, + 101, + 34, + 58, + 34, + 90, + 65, + 65, + 75, + 45, + 84, + 66, + 79, + 78, + 74, + 87, + 45, + 55, + 70, + 66, + 51, + 49, + 70, + 34, + 44, + 34, + 111, + 109, + 115, + 99, + 104, + 114, + 105, + 106, + 118, + 105, + 110, + 103, + 34, + 58, + 34, + 115, + 116, + 114, + 105, + 110, + 103, + 34, + 44, + 34, + 116, + 111, + 101, + 108, + 105, + 99, + 104, + 116, + 105, + 110, + 103, + 34, + 58, + 34, + 115, + 116, + 114, + 105, + 110, + 103, + 34, + 44, + 34, + 122, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 105, + 92, + 47, + 118, + 49, + 92, + 47, + 122, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 110, + 92, + 47, + 54, + 49, + 57, + 100, + 99, + 51, + 101, + 53, + 45, + 53, + 50, + 102, + 49, + 45, + 52, + 50, + 57, + 52, + 45, + 97, + 53, + 54, + 57, + 45, + 102, + 50, + 49, + 100, + 49, + 54, + 102, + 52, + 52, + 56, + 55, + 57, + 34, + 44, + 34, + 114, + 101, + 103, + 105, + 115, + 116, + 114, + 97, + 116, + 105, + 101, + 100, + 97, + 116, + 117, + 109, + 34, + 58, + 34, + 50, + 48, + 50, + 54, + 45, + 48, + 51, + 45, + 49, + 48, + 84, + 49, + 50, + 58, + 49, + 57, + 58, + 48, + 56, + 43, + 48, + 48, + 58, + 48, + 48, + 34, + 44, + 34, + 115, + 116, + 97, + 114, + 116, + 100, + 97, + 116, + 117, + 109, + 34, + 58, + 34, + 50, + 48, + 49, + 57, + 45, + 48, + 52, + 45, + 48, + 57, + 34, + 44, + 34, + 101, + 105, + 110, + 100, + 100, + 97, + 116, + 117, + 109, + 34, + 58, + 110, + 117, + 108, + 108, + 44, + 34, + 101, + 105, + 110, + 100, + 100, + 97, + 116, + 117, + 109, + 71, + 101, + 112, + 108, + 97, + 110, + 100, + 34, + 58, + 34, + 50, + 48, + 49, + 57, + 45, + 48, + 52, + 45, + 50, + 48, + 34, + 44, + 34, + 117, + 105, + 116, + 101, + 114, + 108, + 105, + 106, + 107, + 101, + 69, + 105, + 110, + 100, + 100, + 97, + 116, + 117, + 109, + 65, + 102, + 100, + 111, + 101, + 110, + 105, + 110, + 103, + 34, + 58, + 34, + 50, + 48, + 49, + 57, + 45, + 48, + 52, + 45, + 48, + 57, + 34, + 44, + 34, + 118, + 101, + 114, + 116, + 114, + 111, + 117, + 119, + 101, + 108, + 105, + 106, + 107, + 104, + 101, + 105, + 100, + 97, + 97, + 110, + 100, + 117, + 105, + 100, + 105, + 110, + 103, + 34, + 58, + 34, + 111, + 112, + 101, + 110, + 98, + 97, + 97, + 114, + 34, + 44, + 34, + 118, + 101, + 114, + 97, + 110, + 116, + 119, + 111, + 111, + 114, + 100, + 101, + 108, + 105, + 106, + 107, + 101, + 79, + 114, + 103, + 97, + 110, + 105, + 115, + 97, + 116, + 105, + 101, + 34, + 58, + 34, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 34, + 44, + 34, + 97, + 114, + 99, + 104, + 105, + 101, + 102, + 110, + 111, + 109, + 105, + 110, + 97, + 116, + 105, + 101, + 34, + 58, + 110, + 117, + 108, + 108, + 44, + 34, + 97, + 114, + 99, + 104, + 105, + 101, + 102, + 97, + 99, + 116, + 105, + 101, + 100, + 97, + 116, + 117, + 109, + 34, + 58, + 110, + 117, + 108, + 108, + 44, + 34, + 97, + 114, + 99, + 104, + 105, + 101, + 102, + 115, + 116, + 97, + 116, + 117, + 115, + 34, + 58, + 34, + 110, + 111, + 103, + 95, + 116, + 101, + 95, + 97, + 114, + 99, + 104, + 105, + 118, + 101, + 114, + 101, + 110, + 34, + 44, + 34, + 98, + 101, + 116, + 97, + 108, + 105, + 110, + 103, + 115, + 105, + 110, + 100, + 105, + 99, + 97, + 116, + 105, + 101, + 34, + 58, + 34, + 103, + 101, + 104, + 101, + 101, + 108, + 34, + 44, + 34, + 108, + 97, + 97, + 116, + 115, + 116, + 101, + 66, + 101, + 116, + 97, + 97, + 108, + 100, + 97, + 116, + 117, + 109, + 34, + 58, + 110, + 117, + 108, + 108, + 44, + 34, + 104, + 111, + 111, + 102, + 100, + 122, + 97, + 97, + 107, + 34, + 58, + 110, + 117, + 108, + 108, + 125 + ] + }, + "cookie": [], + "responseTime": 236, + "responseSize": 799 + }, + "id": "70122bd4-ddd3-4de4-a322-e99011bf86e1" + }, + { + "cursor": { + "ref": "ee7327c9-a048-4eef-83d5-a8f4599dd16e", + "length": 313, + "cycles": 1, + "position": 41, + "iteration": 0, + "httpRequestId": "3e136da9-47d6-423f-9808-ed0a3cfc96e9" + }, + "item": { + "id": "f33a3b5d-eb16-48cc-af33-1462c238dc0e", + "name": "(DRC) Create EnkelvoudigInformatieObject", + "request": { + "url": { + "path": [ + "enkelvoudiginformatieobjecten" + ], + "host": [ + "{{drc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n\t\"bronorganisatie\": \"000000000\",\n\t\"creatiedatum\": \"2019-01-01\",\n\t\"titel\": \"testobject\",\n\t\"auteur\": \"testauteur\",\n \"formaat\": \"application/pdf\",\n \"taal\": \"nld\",\n \"bestandsnaam\": \"test 3.pdf\",\n\t\"inhoud\": \"{{object_inhoud}}\",\n\t\"informatieobjecttype\": \"{{informatieobjecttype_url}}\",\n \"indicatieGebruiksrecht\": false,\n \"status\": \"gearchiveerd\",\n\t\"bestandsomvang\": 6\n}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "7b5a838d-86e8-41cb-a512-46449ffcd606", + "type": "text/javascript", + "packages": {}, + "exec": [ + "pm.environment.set(\"informatieobject_url\", pm.response.json().url);" + ], + "_lastExecutionId": "b9ee7a2b-ebd1-43fc-8100-54bbd9b66ac7" + } + }, + { + "listen": "prerequest", + "script": { + "id": "003af821-7a5e-4f6f-b7c6-0514bbcc2025", + "type": "text/javascript", + "packages": {}, + "exec": [ + "" + ], + "_lastExecutionId": "b08a8e51-acd7-48c3-8a62-8067ba7581b4" + } + } + ] + }, + "request": { + "url": { + "protocol": "http", + "port": "8080", + "path": [ + "index.php", + "apps", + "procest", + "api", + "zgw", + "documenten", + "v1", + "enkelvoudiginformatieobjecten" + ], + "host": [ + "localhost" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Authorization", + "value": "Bearer eyJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJwcm9jZXN0LWFkbWluIiwiY2xpZW50X2lkIjoicHJvY2VzdC1hZG1pbiIsImlhdCI6IjE3NzMxNDUxNDkiLCJ1c2VyX2lkIjoicHJvY2VzdC1hZG1pbiIsInVzZXJfcmVwcmVzZW50YXRpb24iOiIifQ.QhDSyc-MgsIOTNN6pHpTYPi0j23UJAoPk1mFRmMX44s", + "system": true + }, + { + "key": "User-Agent", + "value": "PostmanRuntime/7.39.1", + "system": true + }, + { + "key": "Accept", + "value": "*/*", + "system": true + }, + { + "key": "Cache-Control", + "value": "no-cache", + "system": true + }, + { + "key": "Postman-Token", + "value": "1ec4c850-dbea-4df0-a0cb-050e9cb72492", + "system": true + }, + { + "key": "Host", + "value": "localhost:8080", + "system": true + }, + { + "key": "Accept-Encoding", + "value": "gzip, deflate, br", + "system": true + }, + { + "key": "Connection", + "value": "keep-alive", + "system": true + }, + { + "key": "Content-Length", + "value": "466", + "system": true + }, + { + "key": "Cookie", + "value": "ocvp3112b4wg=f2f23f46a9696b739bd1cab0349fc359; oc_sessionPassphrase=LBNdKxRzA0iqoULIruNxDDh2BK3O%2BrCIU8aUmiUcOFvy5Xw1YfjwQNlmBW2IkGwJYtxXh9%2BwDN6vYuGNX07tXzkBtjQJUWTGdzf8AIOUIVxVx5DfyWAQZ7nmYmQv6XSE; nc_sameSiteCookielax=true; nc_sameSiteCookiestrict=true", + "system": true + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n\t\"bronorganisatie\": \"000000000\",\n\t\"creatiedatum\": \"2019-01-01\",\n\t\"titel\": \"testobject\",\n\t\"auteur\": \"testauteur\",\n \"formaat\": \"application/pdf\",\n \"taal\": \"nld\",\n \"bestandsnaam\": \"test 3.pdf\",\n\t\"inhoud\": \"c3RyaW5n\",\n\t\"informatieobjecttype\": \"http://localhost:8080/index.php/apps/procest/api/zgw/catalogi/v1/informatieobjecttypen/6cab7420-6cda-49c9-8313-7464947a74a3\",\n \"indicatieGebruiksrecht\": false,\n \"status\": \"gearchiveerd\",\n\t\"bestandsomvang\": 6\n}" + }, + "auth": { + "type": "jwt", + "jwt": [ + { + "type": "string", + "value": "{\r\n \"iss\": \"procest-admin\",\r\n \"client_id\": \"procest-admin\",\r\n \"iat\": \"1773145149\",\r\n \"user_id\": \"procest-admin\",\r\n \"user_representation\": \"\"\r\n}", + "key": "payload" + }, + { + "type": "string", + "value": "procest-admin-secret-key-for-testing", + "key": "secret" + }, + { + "type": "string", + "value": "HS256", + "key": "algorithm" + }, + { + "type": "boolean", + "value": false, + "key": "isSecretBase64Encoded" + }, + { + "type": "string", + "value": "header", + "key": "addTokenTo" + }, + { + "type": "string", + "value": "Bearer", + "key": "headerPrefix" + }, + { + "type": "string", + "value": "token", + "key": "queryParamKey" + }, + { + "type": "string", + "value": "{}", + "key": "header" + } + ] + } + }, + "response": { + "id": "f4578986-b01f-40c7-b367-1cfdf28a9753", + "status": "Created", + "code": 201, + "header": [ + { + "key": "Date", + "value": "Tue, 10 Mar 2026 12:19:09 GMT" + }, + { + "key": "Server", + "value": "Apache/2.4.66 (Debian)" + }, + { + "key": "X-Content-Type-Options", + "value": "nosniff" + }, + { + "key": "X-Frame-Options", + "value": "SAMEORIGIN" + }, + { + "key": "X-Permitted-Cross-Domain-Policies", + "value": "none" + }, + { + "key": "X-Robots-Tag", + "value": "noindex, nofollow" + }, + { + "key": "Referrer-Policy", + "value": "no-referrer" + }, + { + "key": "X-Powered-By", + "value": "PHP/8.3.30" + }, + { + "key": "Content-Security-Policy", + "value": "default-src 'none';base-uri 'none';manifest-src 'self';frame-ancestors 'none'" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=f2f23f46a9696b739bd1cab0349fc359; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=f2f23f46a9696b739bd1cab0349fc359; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=f2f23f46a9696b739bd1cab0349fc359; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=f2f23f46a9696b739bd1cab0349fc359; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=f2f23f46a9696b739bd1cab0349fc359; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=6707d9de5a81f142e218fe921c832ac3; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=6707d9de5a81f142e218fe921c832ac3; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=6707d9de5a81f142e218fe921c832ac3; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=6707d9de5a81f142e218fe921c832ac3; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=6707d9de5a81f142e218fe921c832ac3; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "X-Request-Id", + "value": "bRkO5SH0BycwOn80qrgX" + }, + { + "key": "Cache-Control", + "value": "no-cache, no-store, must-revalidate" + }, + { + "key": "Feature-Policy", + "value": "autoplay 'none';camera 'none';fullscreen 'none';geolocation 'none';microphone 'none';payment 'none'" + }, + { + "key": "X-User-Id", + "value": "admin" + }, + { + "key": "Content-Length", + "value": "942" + }, + { + "key": "Keep-Alive", + "value": "timeout=5, max=99" + }, + { + "key": "Connection", + "value": "Keep-Alive" + }, + { + "key": "Content-Type", + "value": "application/json; charset=utf-8" + } + ], + "stream": { + "type": "Buffer", + "data": [ + 123, + 34, + 117, + 114, + 108, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 100, + 111, + 99, + 117, + 109, + 101, + 110, + 116, + 101, + 110, + 92, + 47, + 118, + 49, + 92, + 47, + 101, + 110, + 107, + 101, + 108, + 118, + 111, + 117, + 100, + 105, + 103, + 105, + 110, + 102, + 111, + 114, + 109, + 97, + 116, + 105, + 101, + 111, + 98, + 106, + 101, + 99, + 116, + 101, + 110, + 92, + 47, + 101, + 99, + 57, + 52, + 99, + 51, + 57, + 50, + 45, + 54, + 100, + 102, + 97, + 45, + 52, + 97, + 100, + 57, + 45, + 98, + 50, + 99, + 102, + 45, + 97, + 57, + 99, + 100, + 57, + 102, + 98, + 56, + 52, + 97, + 48, + 48, + 34, + 44, + 34, + 117, + 117, + 105, + 100, + 34, + 58, + 34, + 101, + 99, + 57, + 52, + 99, + 51, + 57, + 50, + 45, + 54, + 100, + 102, + 97, + 45, + 52, + 97, + 100, + 57, + 45, + 98, + 50, + 99, + 102, + 45, + 97, + 57, + 99, + 100, + 57, + 102, + 98, + 56, + 52, + 97, + 48, + 48, + 34, + 44, + 34, + 105, + 100, + 101, + 110, + 116, + 105, + 102, + 105, + 99, + 97, + 116, + 105, + 101, + 34, + 58, + 34, + 68, + 79, + 67, + 85, + 77, + 69, + 78, + 84, + 45, + 84, + 66, + 79, + 78, + 74, + 88, + 45, + 56, + 68, + 49, + 52, + 52, + 57, + 34, + 44, + 34, + 98, + 114, + 111, + 110, + 111, + 114, + 103, + 97, + 110, + 105, + 115, + 97, + 116, + 105, + 101, + 34, + 58, + 34, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 34, + 44, + 34, + 99, + 114, + 101, + 97, + 116, + 105, + 101, + 100, + 97, + 116, + 117, + 109, + 34, + 58, + 34, + 50, + 48, + 49, + 57, + 45, + 48, + 49, + 45, + 48, + 49, + 34, + 44, + 34, + 116, + 105, + 116, + 101, + 108, + 34, + 58, + 34, + 116, + 101, + 115, + 116, + 111, + 98, + 106, + 101, + 99, + 116, + 34, + 44, + 34, + 118, + 101, + 114, + 116, + 114, + 111, + 117, + 119, + 101, + 108, + 105, + 106, + 107, + 104, + 101, + 105, + 100, + 97, + 97, + 110, + 100, + 117, + 105, + 100, + 105, + 110, + 103, + 34, + 58, + 34, + 111, + 112, + 101, + 110, + 98, + 97, + 97, + 114, + 34, + 44, + 34, + 97, + 117, + 116, + 101, + 117, + 114, + 34, + 58, + 34, + 116, + 101, + 115, + 116, + 97, + 117, + 116, + 101, + 117, + 114, + 34, + 44, + 34, + 115, + 116, + 97, + 116, + 117, + 115, + 34, + 58, + 34, + 103, + 101, + 97, + 114, + 99, + 104, + 105, + 118, + 101, + 101, + 114, + 100, + 34, + 44, + 34, + 102, + 111, + 114, + 109, + 97, + 97, + 116, + 34, + 58, + 34, + 97, + 112, + 112, + 108, + 105, + 99, + 97, + 116, + 105, + 111, + 110, + 92, + 47, + 112, + 100, + 102, + 34, + 44, + 34, + 116, + 97, + 97, + 108, + 34, + 58, + 34, + 110, + 108, + 100, + 34, + 44, + 34, + 98, + 101, + 115, + 116, + 97, + 110, + 100, + 115, + 110, + 97, + 97, + 109, + 34, + 58, + 34, + 116, + 101, + 115, + 116, + 32, + 51, + 46, + 112, + 100, + 102, + 34, + 44, + 34, + 98, + 101, + 115, + 116, + 97, + 110, + 100, + 115, + 111, + 109, + 118, + 97, + 110, + 103, + 34, + 58, + 54, + 44, + 34, + 105, + 110, + 104, + 111, + 117, + 100, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 100, + 111, + 99, + 117, + 109, + 101, + 110, + 116, + 101, + 110, + 92, + 47, + 118, + 49, + 92, + 47, + 101, + 110, + 107, + 101, + 108, + 118, + 111, + 117, + 100, + 105, + 103, + 105, + 110, + 102, + 111, + 114, + 109, + 97, + 116, + 105, + 101, + 111, + 98, + 106, + 101, + 99, + 116, + 101, + 110, + 92, + 47, + 101, + 99, + 57, + 52, + 99, + 51, + 57, + 50, + 45, + 54, + 100, + 102, + 97, + 45, + 52, + 97, + 100, + 57, + 45, + 98, + 50, + 99, + 102, + 45, + 97, + 57, + 99, + 100, + 57, + 102, + 98, + 56, + 52, + 97, + 48, + 48, + 92, + 47, + 100, + 111, + 119, + 110, + 108, + 111, + 97, + 100, + 34, + 44, + 34, + 108, + 105, + 110, + 107, + 34, + 58, + 34, + 34, + 44, + 34, + 98, + 101, + 115, + 99, + 104, + 114, + 105, + 106, + 118, + 105, + 110, + 103, + 34, + 58, + 34, + 34, + 44, + 34, + 105, + 110, + 102, + 111, + 114, + 109, + 97, + 116, + 105, + 101, + 111, + 98, + 106, + 101, + 99, + 116, + 116, + 121, + 112, + 101, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 105, + 92, + 47, + 118, + 49, + 92, + 47, + 105, + 110, + 102, + 111, + 114, + 109, + 97, + 116, + 105, + 101, + 111, + 98, + 106, + 101, + 99, + 116, + 116, + 121, + 112, + 101, + 110, + 92, + 47, + 54, + 99, + 97, + 98, + 55, + 52, + 50, + 48, + 45, + 54, + 99, + 100, + 97, + 45, + 52, + 57, + 99, + 57, + 45, + 56, + 51, + 49, + 51, + 45, + 55, + 52, + 54, + 52, + 57, + 52, + 55, + 97, + 55, + 52, + 97, + 51, + 34, + 44, + 34, + 108, + 111, + 99, + 107, + 101, + 100, + 34, + 58, + 102, + 97, + 108, + 115, + 101, + 44, + 34, + 114, + 101, + 103, + 105, + 115, + 116, + 114, + 97, + 116, + 105, + 101, + 100, + 97, + 116, + 117, + 109, + 34, + 58, + 34, + 50, + 48, + 50, + 54, + 45, + 48, + 51, + 45, + 49, + 48, + 84, + 49, + 50, + 58, + 49, + 57, + 58, + 48, + 57, + 43, + 48, + 48, + 58, + 48, + 48, + 34, + 44, + 34, + 105, + 110, + 100, + 105, + 99, + 97, + 116, + 105, + 101, + 71, + 101, + 98, + 114, + 117, + 105, + 107, + 115, + 114, + 101, + 99, + 104, + 116, + 34, + 58, + 110, + 117, + 108, + 108, + 125 + ] + }, + "cookie": [], + "responseTime": 458, + "responseSize": 942 + }, + "id": "f33a3b5d-eb16-48cc-af33-1462c238dc0e" + }, + { + "cursor": { + "ref": "fc475e75-bc26-4d04-9be4-7277b60524aa", + "length": 313, + "cycles": 1, + "position": 42, + "iteration": 0, + "httpRequestId": "03d4e2f2-a908-4e41-a531-b172bb65828e" + }, + "item": { + "id": "ef14b36e-058a-426b-a8c0-9e45a891996a", + "name": "(zrc-004a) ZaakInformatieObject aanmaken zet aard_relatie op hoort_bij en registratiedatum op nu", + "request": { + "url": { + "path": [ + "zaakinformatieobjecten" + ], + "host": [ + "{{zrc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n\t\"informatieobject\": \"{{informatieobject_url}}\",\n\t\"zaak\": \"{{zaak_url}}\",\n\t\"registratiedatum\": \"1900-01-01\"\n}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "48ed47a3-7a37-4333-82ab-e043eabf6e83", + "type": "text/javascript", + "exec": [ + "var moment = require('moment');", + "", + "pm.test(\"ZaakInformatieObject aanmaken zet aardRelatie op legt_vast\", function() {", + " pm.expect(pm.response.json().aardRelatieWeergave).to.include(\"Hoort bij\");", + "});", + "", + "pm.test(\"ZaakInformatieObject aanmaken zet registratiedatum op moment van aanmaken\", function() {", + " pm.expect(pm.response.json().registratiedatum).to.include(moment.utc().format(\"YYYY-MM-DD\"));", + "});", + "", + "if(pm.response.code == 201) {", + " pm.environment.set(\"created_zaakinformatieobject_url\", pm.response.json().url);", + " pm.environment.set(\"zaakinformatieobject_body\", pm.request.body.raw)", + "}", + "" + ], + "_lastExecutionId": "c69d68b4-b605-4738-b574-d9e98fa35188" + } + } + ] + }, + "request": { + "url": { + "protocol": "http", + "port": "8080", + "path": [ + "index.php", + "apps", + "procest", + "api", + "zgw", + "zaken", + "v1", + "zaakinformatieobjecten" + ], + "host": [ + "localhost" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Authorization", + "value": "Bearer eyJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJwcm9jZXN0LWFkbWluIiwiY2xpZW50X2lkIjoicHJvY2VzdC1hZG1pbiIsImlhdCI6IjE3NzMxNDUxNTAiLCJ1c2VyX2lkIjoicHJvY2VzdC1hZG1pbiIsInVzZXJfcmVwcmVzZW50YXRpb24iOiIifQ.7tjKrzFK5covu_tVwtYetFuB9QeaFS9DcD0PsK2KcuM", + "system": true + }, + { + "key": "User-Agent", + "value": "PostmanRuntime/7.39.1", + "system": true + }, + { + "key": "Accept", + "value": "*/*", + "system": true + }, + { + "key": "Cache-Control", + "value": "no-cache", + "system": true + }, + { + "key": "Postman-Token", + "value": "5fca443f-ccd0-4485-9ca8-e298098dd0ec", + "system": true + }, + { + "key": "Host", + "value": "localhost:8080", + "system": true + }, + { + "key": "Accept-Encoding", + "value": "gzip, deflate, br", + "system": true + }, + { + "key": "Connection", + "value": "keep-alive", + "system": true + }, + { + "key": "Content-Length", + "value": "312", + "system": true + }, + { + "key": "Cookie", + "value": "ocvp3112b4wg=6707d9de5a81f142e218fe921c832ac3; oc_sessionPassphrase=LBNdKxRzA0iqoULIruNxDDh2BK3O%2BrCIU8aUmiUcOFvy5Xw1YfjwQNlmBW2IkGwJYtxXh9%2BwDN6vYuGNX07tXzkBtjQJUWTGdzf8AIOUIVxVx5DfyWAQZ7nmYmQv6XSE; nc_sameSiteCookielax=true; nc_sameSiteCookiestrict=true", + "system": true + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n\t\"informatieobject\": \"http://localhost:8080/index.php/apps/procest/api/zgw/documenten/v1/enkelvoudiginformatieobjecten/ec94c392-6dfa-4ad9-b2cf-a9cd9fb84a00\",\n\t\"zaak\": \"http://localhost:8080/index.php/apps/procest/api/zgw/zaken/v1/zaken/fb6d7254-47ed-4cf1-a585-c60967546512\",\n\t\"registratiedatum\": \"1900-01-01\"\n}" + }, + "auth": { + "type": "jwt", + "jwt": [ + { + "type": "string", + "value": "{\r\n \"iss\": \"procest-admin\",\r\n \"client_id\": \"procest-admin\",\r\n \"iat\": \"1773145150\",\r\n \"user_id\": \"procest-admin\",\r\n \"user_representation\": \"\"\r\n}", + "key": "payload" + }, + { + "type": "string", + "value": "procest-admin-secret-key-for-testing", + "key": "secret" + }, + { + "type": "string", + "value": "HS256", + "key": "algorithm" + }, + { + "type": "boolean", + "value": false, + "key": "isSecretBase64Encoded" + }, + { + "type": "string", + "value": "header", + "key": "addTokenTo" + }, + { + "type": "string", + "value": "Bearer", + "key": "headerPrefix" + }, + { + "type": "string", + "value": "token", + "key": "queryParamKey" + }, + { + "type": "string", + "value": "{}", + "key": "header" + } + ] + } + }, + "response": { + "id": "34f7d809-040c-42aa-8a77-42a47ce80dae", + "status": "Created", + "code": 201, + "header": [ + { + "key": "Date", + "value": "Tue, 10 Mar 2026 12:19:09 GMT" + }, + { + "key": "Server", + "value": "Apache/2.4.66 (Debian)" + }, + { + "key": "X-Content-Type-Options", + "value": "nosniff" + }, + { + "key": "X-Frame-Options", + "value": "SAMEORIGIN" + }, + { + "key": "X-Permitted-Cross-Domain-Policies", + "value": "none" + }, + { + "key": "X-Robots-Tag", + "value": "noindex, nofollow" + }, + { + "key": "Referrer-Policy", + "value": "no-referrer" + }, + { + "key": "X-Powered-By", + "value": "PHP/8.3.30" + }, + { + "key": "Content-Security-Policy", + "value": "default-src 'none';base-uri 'none';manifest-src 'self';frame-ancestors 'none'" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=6707d9de5a81f142e218fe921c832ac3; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=6707d9de5a81f142e218fe921c832ac3; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=6707d9de5a81f142e218fe921c832ac3; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=6707d9de5a81f142e218fe921c832ac3; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=6707d9de5a81f142e218fe921c832ac3; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=229d9ba96c23756cb1458c4ca6e02675; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=229d9ba96c23756cb1458c4ca6e02675; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=229d9ba96c23756cb1458c4ca6e02675; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=229d9ba96c23756cb1458c4ca6e02675; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=229d9ba96c23756cb1458c4ca6e02675; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "X-Request-Id", + "value": "If2QBMO6lM7ptrxDAjdN" + }, + { + "key": "Cache-Control", + "value": "no-cache, no-store, must-revalidate" + }, + { + "key": "Feature-Policy", + "value": "autoplay 'none';camera 'none';fullscreen 'none';geolocation 'none';microphone 'none';payment 'none'" + }, + { + "key": "X-User-Id", + "value": "admin" + }, + { + "key": "Content-Length", + "value": "591" + }, + { + "key": "Keep-Alive", + "value": "timeout=5, max=98" + }, + { + "key": "Connection", + "value": "Keep-Alive" + }, + { + "key": "Content-Type", + "value": "application/json; charset=utf-8" + } + ], + "stream": { + "type": "Buffer", + "data": [ + 123, + 34, + 117, + 114, + 108, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 122, + 97, + 107, + 101, + 110, + 92, + 47, + 118, + 49, + 92, + 47, + 122, + 97, + 97, + 107, + 105, + 110, + 102, + 111, + 114, + 109, + 97, + 116, + 105, + 101, + 111, + 98, + 106, + 101, + 99, + 116, + 101, + 110, + 92, + 47, + 51, + 54, + 100, + 53, + 100, + 56, + 101, + 57, + 45, + 57, + 56, + 50, + 48, + 45, + 52, + 56, + 100, + 57, + 45, + 56, + 50, + 55, + 49, + 45, + 55, + 100, + 97, + 102, + 49, + 98, + 49, + 99, + 57, + 52, + 55, + 55, + 34, + 44, + 34, + 117, + 117, + 105, + 100, + 34, + 58, + 34, + 51, + 54, + 100, + 53, + 100, + 56, + 101, + 57, + 45, + 57, + 56, + 50, + 48, + 45, + 52, + 56, + 100, + 57, + 45, + 56, + 50, + 55, + 49, + 45, + 55, + 100, + 97, + 102, + 49, + 98, + 49, + 99, + 57, + 52, + 55, + 55, + 34, + 44, + 34, + 122, + 97, + 97, + 107, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 122, + 97, + 107, + 101, + 110, + 92, + 47, + 118, + 49, + 92, + 47, + 122, + 97, + 107, + 101, + 110, + 92, + 47, + 102, + 98, + 54, + 100, + 55, + 50, + 53, + 52, + 45, + 52, + 55, + 101, + 100, + 45, + 52, + 99, + 102, + 49, + 45, + 97, + 53, + 56, + 53, + 45, + 99, + 54, + 48, + 57, + 54, + 55, + 53, + 52, + 54, + 53, + 49, + 50, + 34, + 44, + 34, + 105, + 110, + 102, + 111, + 114, + 109, + 97, + 116, + 105, + 101, + 111, + 98, + 106, + 101, + 99, + 116, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 100, + 111, + 99, + 117, + 109, + 101, + 110, + 116, + 101, + 110, + 92, + 47, + 118, + 49, + 92, + 47, + 101, + 110, + 107, + 101, + 108, + 118, + 111, + 117, + 100, + 105, + 103, + 105, + 110, + 102, + 111, + 114, + 109, + 97, + 116, + 105, + 101, + 111, + 98, + 106, + 101, + 99, + 116, + 101, + 110, + 92, + 47, + 101, + 99, + 57, + 52, + 99, + 51, + 57, + 50, + 45, + 54, + 100, + 102, + 97, + 45, + 52, + 97, + 100, + 57, + 45, + 98, + 50, + 99, + 102, + 45, + 97, + 57, + 99, + 100, + 57, + 102, + 98, + 56, + 52, + 97, + 48, + 48, + 34, + 44, + 34, + 116, + 105, + 116, + 101, + 108, + 34, + 58, + 34, + 34, + 44, + 34, + 98, + 101, + 115, + 99, + 104, + 114, + 105, + 106, + 118, + 105, + 110, + 103, + 34, + 58, + 34, + 34, + 44, + 34, + 114, + 101, + 103, + 105, + 115, + 116, + 114, + 97, + 116, + 105, + 101, + 100, + 97, + 116, + 117, + 109, + 34, + 58, + 34, + 50, + 48, + 50, + 54, + 45, + 48, + 51, + 45, + 49, + 48, + 34, + 44, + 34, + 97, + 97, + 114, + 100, + 82, + 101, + 108, + 97, + 116, + 105, + 101, + 87, + 101, + 101, + 114, + 103, + 97, + 118, + 101, + 34, + 58, + 34, + 72, + 111, + 111, + 114, + 116, + 32, + 98, + 105, + 106, + 44, + 32, + 111, + 109, + 103, + 101, + 107, + 101, + 101, + 114, + 100, + 58, + 32, + 107, + 101, + 110, + 116, + 34, + 125 + ] + }, + "cookie": [], + "responseTime": 257, + "responseSize": 591 + }, + "id": "ef14b36e-058a-426b-a8c0-9e45a891996a", + "assertions": [ + { + "assertion": "ZaakInformatieObject aanmaken zet aardRelatie op legt_vast", + "skipped": false + }, + { + "assertion": "ZaakInformatieObject aanmaken zet registratiedatum op moment van aanmaken", + "skipped": false + } + ] + }, + { + "cursor": { + "ref": "6bbc29fc-9dcd-45e8-a866-0ee0dc66184f", + "length": 313, + "cycles": 1, + "position": 43, + "iteration": 0, + "httpRequestId": "de29242b-9afb-4b96-bb0e-6852eab2908b" + }, + "item": { + "id": "d876a461-df71-477b-83eb-2f72b36490f8", + "name": "(zrc-004b) ZaakInformatieObject bijwerken relatie aanpassen is niet mogelijk", + "request": { + "url": { + "host": [ + "{{created_zaakinformatieobject_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "PUT", + "body": { + "mode": "raw", + "raw": "{{request_body}}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "72234765-0483-4f0a-ab7d-597c9228f572", + "type": "text/javascript", + "exec": [ + "pm.test(\"ZaakInformatieObject bijwerken relatie aanpassen is niet mogelijk\", function() {", + " pm.expect(pm.response.json().aardRelatieWeergave).to.include(\"Hoort bij\");", + "});" + ], + "_lastExecutionId": "7fa34e6a-8676-4693-b947-d1459da2124c" + } + }, + { + "listen": "prerequest", + "script": { + "id": "79049fb0-3a16-4143-948d-b56d914d2cf8", + "type": "text/javascript", + "exec": [ + "var body = JSON.parse(pm.environment.get(\"zaakinformatieobject_body\"));", + "body.aardRelatieWeergave = \"aangepast\";", + "", + "pm.environment.set(\"request_body\", JSON.stringify(body));" + ], + "_lastExecutionId": "7d0ace93-dee3-4a79-897a-7667d4f1fe9e" + } + } + ] + }, + "request": { + "url": { + "protocol": "http", + "port": "8080", + "path": [ + "index.php", + "apps", + "procest", + "api", + "zgw", + "zaken", + "v1", + "zaakinformatieobjecten", + "36d5d8e9-9820-48d9-8271-7daf1b1c9477" + ], + "host": [ + "localhost" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Authorization", + "value": "Bearer eyJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJwcm9jZXN0LWFkbWluIiwiY2xpZW50X2lkIjoicHJvY2VzdC1hZG1pbiIsImlhdCI6IjE3NzMxNDUxNTAiLCJ1c2VyX2lkIjoicHJvY2VzdC1hZG1pbiIsInVzZXJfcmVwcmVzZW50YXRpb24iOiIifQ.7tjKrzFK5covu_tVwtYetFuB9QeaFS9DcD0PsK2KcuM", + "system": true + }, + { + "key": "User-Agent", + "value": "PostmanRuntime/7.39.1", + "system": true + }, + { + "key": "Accept", + "value": "*/*", + "system": true + }, + { + "key": "Cache-Control", + "value": "no-cache", + "system": true + }, + { + "key": "Postman-Token", + "value": "b1a38c26-065d-48c3-bcd0-2af55f544fde", + "system": true + }, + { + "key": "Host", + "value": "localhost:8080", + "system": true + }, + { + "key": "Accept-Encoding", + "value": "gzip, deflate, br", + "system": true + }, + { + "key": "Connection", + "value": "keep-alive", + "system": true + }, + { + "key": "Content-Length", + "value": "336", + "system": true + }, + { + "key": "Cookie", + "value": "ocvp3112b4wg=229d9ba96c23756cb1458c4ca6e02675; oc_sessionPassphrase=LBNdKxRzA0iqoULIruNxDDh2BK3O%2BrCIU8aUmiUcOFvy5Xw1YfjwQNlmBW2IkGwJYtxXh9%2BwDN6vYuGNX07tXzkBtjQJUWTGdzf8AIOUIVxVx5DfyWAQZ7nmYmQv6XSE; nc_sameSiteCookielax=true; nc_sameSiteCookiestrict=true", + "system": true + } + ], + "method": "PUT", + "body": { + "mode": "raw", + "raw": "{\"informatieobject\":\"http://localhost:8080/index.php/apps/procest/api/zgw/documenten/v1/enkelvoudiginformatieobjecten/ec94c392-6dfa-4ad9-b2cf-a9cd9fb84a00\",\"zaak\":\"http://localhost:8080/index.php/apps/procest/api/zgw/zaken/v1/zaken/fb6d7254-47ed-4cf1-a585-c60967546512\",\"registratiedatum\":\"1900-01-01\",\"aardRelatieWeergave\":\"aangepast\"}" + }, + "auth": { + "type": "jwt", + "jwt": [ + { + "type": "string", + "value": "{\r\n \"iss\": \"procest-admin\",\r\n \"client_id\": \"procest-admin\",\r\n \"iat\": \"1773145150\",\r\n \"user_id\": \"procest-admin\",\r\n \"user_representation\": \"\"\r\n}", + "key": "payload" + }, + { + "type": "string", + "value": "procest-admin-secret-key-for-testing", + "key": "secret" + }, + { + "type": "string", + "value": "HS256", + "key": "algorithm" + }, + { + "type": "boolean", + "value": false, + "key": "isSecretBase64Encoded" + }, + { + "type": "string", + "value": "header", + "key": "addTokenTo" + }, + { + "type": "string", + "value": "Bearer", + "key": "headerPrefix" + }, + { + "type": "string", + "value": "token", + "key": "queryParamKey" + }, + { + "type": "string", + "value": "{}", + "key": "header" + } + ] + } + }, + "response": { + "id": "0367b267-f536-407f-a4c3-2beac9249c67", + "status": "OK", + "code": 200, + "header": [ + { + "key": "Date", + "value": "Tue, 10 Mar 2026 12:19:09 GMT" + }, + { + "key": "Server", + "value": "Apache/2.4.66 (Debian)" + }, + { + "key": "X-Content-Type-Options", + "value": "nosniff" + }, + { + "key": "X-Frame-Options", + "value": "SAMEORIGIN" + }, + { + "key": "X-Permitted-Cross-Domain-Policies", + "value": "none" + }, + { + "key": "X-Robots-Tag", + "value": "noindex, nofollow" + }, + { + "key": "Referrer-Policy", + "value": "no-referrer" + }, + { + "key": "X-Powered-By", + "value": "PHP/8.3.30" + }, + { + "key": "Content-Security-Policy", + "value": "default-src 'none';base-uri 'none';manifest-src 'self';frame-ancestors 'none'" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=229d9ba96c23756cb1458c4ca6e02675; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=229d9ba96c23756cb1458c4ca6e02675; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=229d9ba96c23756cb1458c4ca6e02675; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=229d9ba96c23756cb1458c4ca6e02675; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=229d9ba96c23756cb1458c4ca6e02675; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=a6c6b64ac758e47ed95eb56bf3bba833; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=a6c6b64ac758e47ed95eb56bf3bba833; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=a6c6b64ac758e47ed95eb56bf3bba833; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=a6c6b64ac758e47ed95eb56bf3bba833; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=a6c6b64ac758e47ed95eb56bf3bba833; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "X-Request-Id", + "value": "EGhgADVGs1ifX0afsNQp" + }, + { + "key": "Cache-Control", + "value": "no-cache, no-store, must-revalidate" + }, + { + "key": "Feature-Policy", + "value": "autoplay 'none';camera 'none';fullscreen 'none';geolocation 'none';microphone 'none';payment 'none'" + }, + { + "key": "X-User-Id", + "value": "admin" + }, + { + "key": "Content-Encoding", + "value": "gzip" + }, + { + "key": "Content-Length", + "value": "312" + }, + { + "key": "Keep-Alive", + "value": "timeout=5, max=97" + }, + { + "key": "Connection", + "value": "Keep-Alive" + }, + { + "key": "Content-Type", + "value": "application/json; charset=utf-8" + } + ], + "stream": { + "type": "Buffer", + "data": [ + 123, + 34, + 117, + 114, + 108, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 122, + 97, + 107, + 101, + 110, + 92, + 47, + 118, + 49, + 92, + 47, + 122, + 97, + 97, + 107, + 105, + 110, + 102, + 111, + 114, + 109, + 97, + 116, + 105, + 101, + 111, + 98, + 106, + 101, + 99, + 116, + 101, + 110, + 92, + 47, + 51, + 54, + 100, + 53, + 100, + 56, + 101, + 57, + 45, + 57, + 56, + 50, + 48, + 45, + 52, + 56, + 100, + 57, + 45, + 56, + 50, + 55, + 49, + 45, + 55, + 100, + 97, + 102, + 49, + 98, + 49, + 99, + 57, + 52, + 55, + 55, + 34, + 44, + 34, + 117, + 117, + 105, + 100, + 34, + 58, + 34, + 51, + 54, + 100, + 53, + 100, + 56, + 101, + 57, + 45, + 57, + 56, + 50, + 48, + 45, + 52, + 56, + 100, + 57, + 45, + 56, + 50, + 55, + 49, + 45, + 55, + 100, + 97, + 102, + 49, + 98, + 49, + 99, + 57, + 52, + 55, + 55, + 34, + 44, + 34, + 122, + 97, + 97, + 107, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 122, + 97, + 107, + 101, + 110, + 92, + 47, + 118, + 49, + 92, + 47, + 122, + 97, + 107, + 101, + 110, + 92, + 47, + 102, + 98, + 54, + 100, + 55, + 50, + 53, + 52, + 45, + 52, + 55, + 101, + 100, + 45, + 52, + 99, + 102, + 49, + 45, + 97, + 53, + 56, + 53, + 45, + 99, + 54, + 48, + 57, + 54, + 55, + 53, + 52, + 54, + 53, + 49, + 50, + 34, + 44, + 34, + 105, + 110, + 102, + 111, + 114, + 109, + 97, + 116, + 105, + 101, + 111, + 98, + 106, + 101, + 99, + 116, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 100, + 111, + 99, + 117, + 109, + 101, + 110, + 116, + 101, + 110, + 92, + 47, + 118, + 49, + 92, + 47, + 101, + 110, + 107, + 101, + 108, + 118, + 111, + 117, + 100, + 105, + 103, + 105, + 110, + 102, + 111, + 114, + 109, + 97, + 116, + 105, + 101, + 111, + 98, + 106, + 101, + 99, + 116, + 101, + 110, + 92, + 47, + 101, + 99, + 57, + 52, + 99, + 51, + 57, + 50, + 45, + 54, + 100, + 102, + 97, + 45, + 52, + 97, + 100, + 57, + 45, + 98, + 50, + 99, + 102, + 45, + 97, + 57, + 99, + 100, + 57, + 102, + 98, + 56, + 52, + 97, + 48, + 48, + 34, + 44, + 34, + 116, + 105, + 116, + 101, + 108, + 34, + 58, + 34, + 34, + 44, + 34, + 98, + 101, + 115, + 99, + 104, + 114, + 105, + 106, + 118, + 105, + 110, + 103, + 34, + 58, + 34, + 34, + 44, + 34, + 114, + 101, + 103, + 105, + 115, + 116, + 114, + 97, + 116, + 105, + 101, + 100, + 97, + 116, + 117, + 109, + 34, + 58, + 34, + 49, + 57, + 48, + 48, + 45, + 48, + 49, + 45, + 48, + 49, + 34, + 44, + 34, + 97, + 97, + 114, + 100, + 82, + 101, + 108, + 97, + 116, + 105, + 101, + 87, + 101, + 101, + 114, + 103, + 97, + 118, + 101, + 34, + 58, + 34, + 72, + 111, + 111, + 114, + 116, + 32, + 98, + 105, + 106, + 44, + 32, + 111, + 109, + 103, + 101, + 107, + 101, + 101, + 114, + 100, + 58, + 32, + 107, + 101, + 110, + 116, + 34, + 125 + ] + }, + "cookie": [], + "responseTime": 179, + "responseSize": 591 + }, + "id": "d876a461-df71-477b-83eb-2f72b36490f8", + "assertions": [ + { + "assertion": "ZaakInformatieObject bijwerken relatie aanpassen is niet mogelijk", + "skipped": false + } + ] + }, + { + "cursor": { + "ref": "75c0971f-d989-46ca-88f7-48baf9df4279", + "length": 313, + "cycles": 1, + "position": 44, + "iteration": 0, + "httpRequestId": "01e445de-cb1c-43bb-970b-8107e6f7b3a7" + }, + "item": { + "id": "1e1c2dcf-d31d-4299-abb4-63cfae971ab0", + "name": "(zrc-004c) ZaakInformatieObject deels bijwerken relatie aanpassen is niet mogelijk", + "request": { + "url": { + "host": [ + "{{created_zaakinformatieobject_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "PATCH", + "body": { + "mode": "raw", + "raw": "{\n\t\"aardRelatieWeergave\": \"aangepast\"\n}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "641c27c7-23bb-460a-914a-ec364683ff84", + "type": "text/javascript", + "exec": [ + "pm.test(\"ZaakInformatieObject deels bijwerken relatie aanpassen is niet mogelijk\", function() {", + " pm.expect(pm.response.json().aardRelatieWeergave).to.include(\"Hoort bij\");", + "});" + ], + "_lastExecutionId": "f5d8017f-b96b-4140-bafb-bd6aa6df3d2f" + } + }, + { + "listen": "prerequest", + "script": { + "id": "b3cbba7d-1ff0-4542-9023-f317845cbe93", + "type": "text/javascript", + "exec": [ + "" + ], + "_lastExecutionId": "6c97799e-bd25-42f7-ad9d-3bf21ad63304" + } + } + ] + }, + "request": { + "url": { + "protocol": "http", + "port": "8080", + "path": [ + "index.php", + "apps", + "procest", + "api", + "zgw", + "zaken", + "v1", + "zaakinformatieobjecten", + "36d5d8e9-9820-48d9-8271-7daf1b1c9477" + ], + "host": [ + "localhost" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Authorization", + "value": "Bearer eyJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJwcm9jZXN0LWFkbWluIiwiY2xpZW50X2lkIjoicHJvY2VzdC1hZG1pbiIsImlhdCI6IjE3NzMxNDUxNTAiLCJ1c2VyX2lkIjoicHJvY2VzdC1hZG1pbiIsInVzZXJfcmVwcmVzZW50YXRpb24iOiIifQ.7tjKrzFK5covu_tVwtYetFuB9QeaFS9DcD0PsK2KcuM", + "system": true + }, + { + "key": "User-Agent", + "value": "PostmanRuntime/7.39.1", + "system": true + }, + { + "key": "Accept", + "value": "*/*", + "system": true + }, + { + "key": "Cache-Control", + "value": "no-cache", + "system": true + }, + { + "key": "Postman-Token", + "value": "97facb6f-d674-4a07-8f12-47ed87df4926", + "system": true + }, + { + "key": "Host", + "value": "localhost:8080", + "system": true + }, + { + "key": "Accept-Encoding", + "value": "gzip, deflate, br", + "system": true + }, + { + "key": "Connection", + "value": "keep-alive", + "system": true + }, + { + "key": "Content-Length", + "value": "39", + "system": true + }, + { + "key": "Cookie", + "value": "ocvp3112b4wg=a6c6b64ac758e47ed95eb56bf3bba833; oc_sessionPassphrase=LBNdKxRzA0iqoULIruNxDDh2BK3O%2BrCIU8aUmiUcOFvy5Xw1YfjwQNlmBW2IkGwJYtxXh9%2BwDN6vYuGNX07tXzkBtjQJUWTGdzf8AIOUIVxVx5DfyWAQZ7nmYmQv6XSE; nc_sameSiteCookielax=true; nc_sameSiteCookiestrict=true", + "system": true + } + ], + "method": "PATCH", + "body": { + "mode": "raw", + "raw": "{\n\t\"aardRelatieWeergave\": \"aangepast\"\n}" + }, + "auth": { + "type": "jwt", + "jwt": [ + { + "type": "string", + "value": "{\r\n \"iss\": \"procest-admin\",\r\n \"client_id\": \"procest-admin\",\r\n \"iat\": \"1773145150\",\r\n \"user_id\": \"procest-admin\",\r\n \"user_representation\": \"\"\r\n}", + "key": "payload" + }, + { + "type": "string", + "value": "procest-admin-secret-key-for-testing", + "key": "secret" + }, + { + "type": "string", + "value": "HS256", + "key": "algorithm" + }, + { + "type": "boolean", + "value": false, + "key": "isSecretBase64Encoded" + }, + { + "type": "string", + "value": "header", + "key": "addTokenTo" + }, + { + "type": "string", + "value": "Bearer", + "key": "headerPrefix" + }, + { + "type": "string", + "value": "token", + "key": "queryParamKey" + }, + { + "type": "string", + "value": "{}", + "key": "header" + } + ] + } + }, + "response": { + "id": "1d2e2a90-d7ef-42af-8bf8-0673d8ca7e43", + "status": "OK", + "code": 200, + "header": [ + { + "key": "Date", + "value": "Tue, 10 Mar 2026 12:19:10 GMT" + }, + { + "key": "Server", + "value": "Apache/2.4.66 (Debian)" + }, + { + "key": "X-Content-Type-Options", + "value": "nosniff" + }, + { + "key": "X-Frame-Options", + "value": "SAMEORIGIN" + }, + { + "key": "X-Permitted-Cross-Domain-Policies", + "value": "none" + }, + { + "key": "X-Robots-Tag", + "value": "noindex, nofollow" + }, + { + "key": "Referrer-Policy", + "value": "no-referrer" + }, + { + "key": "X-Powered-By", + "value": "PHP/8.3.30" + }, + { + "key": "Content-Security-Policy", + "value": "default-src 'none';base-uri 'none';manifest-src 'self';frame-ancestors 'none'" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=a6c6b64ac758e47ed95eb56bf3bba833; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=a6c6b64ac758e47ed95eb56bf3bba833; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=a6c6b64ac758e47ed95eb56bf3bba833; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=a6c6b64ac758e47ed95eb56bf3bba833; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=a6c6b64ac758e47ed95eb56bf3bba833; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=cd408609e6b51e8814c2a65168c1f0e3; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=cd408609e6b51e8814c2a65168c1f0e3; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=cd408609e6b51e8814c2a65168c1f0e3; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=cd408609e6b51e8814c2a65168c1f0e3; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=cd408609e6b51e8814c2a65168c1f0e3; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "X-Request-Id", + "value": "LkX7oB4iw1DB7sqjiYJb" + }, + { + "key": "Cache-Control", + "value": "no-cache, no-store, must-revalidate" + }, + { + "key": "Feature-Policy", + "value": "autoplay 'none';camera 'none';fullscreen 'none';geolocation 'none';microphone 'none';payment 'none'" + }, + { + "key": "X-User-Id", + "value": "admin" + }, + { + "key": "Content-Encoding", + "value": "gzip" + }, + { + "key": "Content-Length", + "value": "312" + }, + { + "key": "Keep-Alive", + "value": "timeout=5, max=96" + }, + { + "key": "Connection", + "value": "Keep-Alive" + }, + { + "key": "Content-Type", + "value": "application/json; charset=utf-8" + } + ], + "stream": { + "type": "Buffer", + "data": [ + 123, + 34, + 117, + 114, + 108, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 122, + 97, + 107, + 101, + 110, + 92, + 47, + 118, + 49, + 92, + 47, + 122, + 97, + 97, + 107, + 105, + 110, + 102, + 111, + 114, + 109, + 97, + 116, + 105, + 101, + 111, + 98, + 106, + 101, + 99, + 116, + 101, + 110, + 92, + 47, + 51, + 54, + 100, + 53, + 100, + 56, + 101, + 57, + 45, + 57, + 56, + 50, + 48, + 45, + 52, + 56, + 100, + 57, + 45, + 56, + 50, + 55, + 49, + 45, + 55, + 100, + 97, + 102, + 49, + 98, + 49, + 99, + 57, + 52, + 55, + 55, + 34, + 44, + 34, + 117, + 117, + 105, + 100, + 34, + 58, + 34, + 51, + 54, + 100, + 53, + 100, + 56, + 101, + 57, + 45, + 57, + 56, + 50, + 48, + 45, + 52, + 56, + 100, + 57, + 45, + 56, + 50, + 55, + 49, + 45, + 55, + 100, + 97, + 102, + 49, + 98, + 49, + 99, + 57, + 52, + 55, + 55, + 34, + 44, + 34, + 122, + 97, + 97, + 107, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 122, + 97, + 107, + 101, + 110, + 92, + 47, + 118, + 49, + 92, + 47, + 122, + 97, + 107, + 101, + 110, + 92, + 47, + 102, + 98, + 54, + 100, + 55, + 50, + 53, + 52, + 45, + 52, + 55, + 101, + 100, + 45, + 52, + 99, + 102, + 49, + 45, + 97, + 53, + 56, + 53, + 45, + 99, + 54, + 48, + 57, + 54, + 55, + 53, + 52, + 54, + 53, + 49, + 50, + 34, + 44, + 34, + 105, + 110, + 102, + 111, + 114, + 109, + 97, + 116, + 105, + 101, + 111, + 98, + 106, + 101, + 99, + 116, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 100, + 111, + 99, + 117, + 109, + 101, + 110, + 116, + 101, + 110, + 92, + 47, + 118, + 49, + 92, + 47, + 101, + 110, + 107, + 101, + 108, + 118, + 111, + 117, + 100, + 105, + 103, + 105, + 110, + 102, + 111, + 114, + 109, + 97, + 116, + 105, + 101, + 111, + 98, + 106, + 101, + 99, + 116, + 101, + 110, + 92, + 47, + 101, + 99, + 57, + 52, + 99, + 51, + 57, + 50, + 45, + 54, + 100, + 102, + 97, + 45, + 52, + 97, + 100, + 57, + 45, + 98, + 50, + 99, + 102, + 45, + 97, + 57, + 99, + 100, + 57, + 102, + 98, + 56, + 52, + 97, + 48, + 48, + 34, + 44, + 34, + 116, + 105, + 116, + 101, + 108, + 34, + 58, + 34, + 34, + 44, + 34, + 98, + 101, + 115, + 99, + 104, + 114, + 105, + 106, + 118, + 105, + 110, + 103, + 34, + 58, + 34, + 34, + 44, + 34, + 114, + 101, + 103, + 105, + 115, + 116, + 114, + 97, + 116, + 105, + 101, + 100, + 97, + 116, + 117, + 109, + 34, + 58, + 34, + 49, + 57, + 48, + 48, + 45, + 48, + 49, + 45, + 48, + 49, + 34, + 44, + 34, + 97, + 97, + 114, + 100, + 82, + 101, + 108, + 97, + 116, + 105, + 101, + 87, + 101, + 101, + 114, + 103, + 97, + 118, + 101, + 34, + 58, + 34, + 72, + 111, + 111, + 114, + 116, + 32, + 98, + 105, + 106, + 44, + 32, + 111, + 109, + 103, + 101, + 107, + 101, + 101, + 114, + 100, + 58, + 32, + 107, + 101, + 110, + 116, + 34, + 125 + ] + }, + "cookie": [], + "responseTime": 335, + "responseSize": 591 + }, + "id": "1e1c2dcf-d31d-4299-abb4-63cfae971ab0", + "assertions": [ + { + "assertion": "ZaakInformatieObject deels bijwerken relatie aanpassen is niet mogelijk", + "skipped": false + } + ] + }, + { + "cursor": { + "ref": "9172adff-e596-43dd-97b4-68547f6baf9e", + "length": 313, + "cycles": 1, + "position": 45, + "iteration": 0, + "httpRequestId": "b37e1c39-0c2f-450f-9bbb-9cb66cc1e116" + }, + "item": { + "id": "18c2f89f-edaf-476c-ab9d-befac14e1ac5", + "name": "Create different Zaak", + "request": { + "url": { + "path": [ + "zaken" + ], + "host": [ + "{{zrc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Accept-Crs", + "value": "EPSG:4326" + }, + { + "key": "Content-Crs", + "value": "EPSG:4326" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{{zaak_body}}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "e9c971a7-2227-43d1-a145-0f6e21431ca2", + "type": "text/javascript", + "exec": [ + "if(pm.response.code == 201) {", + " pm.environment.set(\"created_zaak_url\", pm.response.json().url);", + "}" + ], + "_lastExecutionId": "2f2cffcc-f052-413b-b605-b8f6ff18dfa1" + } + } + ] + }, + "request": { + "url": { + "protocol": "http", + "port": "8080", + "path": [ + "index.php", + "apps", + "procest", + "api", + "zgw", + "zaken", + "v1", + "zaken" + ], + "host": [ + "localhost" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Accept-Crs", + "value": "EPSG:4326" + }, + { + "key": "Content-Crs", + "value": "EPSG:4326" + }, + { + "key": "Authorization", + "value": "Bearer eyJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJwcm9jZXN0LWFkbWluIiwiY2xpZW50X2lkIjoicHJvY2VzdC1hZG1pbiIsImlhdCI6IjE3NzMxNDUxNTEiLCJ1c2VyX2lkIjoicHJvY2VzdC1hZG1pbiIsInVzZXJfcmVwcmVzZW50YXRpb24iOiIifQ.mTMSeXfSVMJlH70LdQSYEHmX3CnwEXetCtGkeUT2Pj0", + "system": true + }, + { + "key": "User-Agent", + "value": "PostmanRuntime/7.39.1", + "system": true + }, + { + "key": "Accept", + "value": "*/*", + "system": true + }, + { + "key": "Cache-Control", + "value": "no-cache", + "system": true + }, + { + "key": "Postman-Token", + "value": "427f7343-4b13-4ee4-bcf2-46677a331c35", + "system": true + }, + { + "key": "Host", + "value": "localhost:8080", + "system": true + }, + { + "key": "Accept-Encoding", + "value": "gzip, deflate, br", + "system": true + }, + { + "key": "Connection", + "value": "keep-alive", + "system": true + }, + { + "key": "Content-Length", + "value": "13", + "system": true + }, + { + "key": "Cookie", + "value": "ocvp3112b4wg=cd408609e6b51e8814c2a65168c1f0e3; oc_sessionPassphrase=LBNdKxRzA0iqoULIruNxDDh2BK3O%2BrCIU8aUmiUcOFvy5Xw1YfjwQNlmBW2IkGwJYtxXh9%2BwDN6vYuGNX07tXzkBtjQJUWTGdzf8AIOUIVxVx5DfyWAQZ7nmYmQv6XSE; nc_sameSiteCookielax=true; nc_sameSiteCookiestrict=true", + "system": true + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{{zaak_body}}" + }, + "auth": { + "type": "jwt", + "jwt": [ + { + "type": "string", + "value": "{\r\n \"iss\": \"procest-admin\",\r\n \"client_id\": \"procest-admin\",\r\n \"iat\": \"1773145151\",\r\n \"user_id\": \"procest-admin\",\r\n \"user_representation\": \"\"\r\n}", + "key": "payload" + }, + { + "type": "string", + "value": "procest-admin-secret-key-for-testing", + "key": "secret" + }, + { + "type": "string", + "value": "HS256", + "key": "algorithm" + }, + { + "type": "boolean", + "value": false, + "key": "isSecretBase64Encoded" + }, + { + "type": "string", + "value": "header", + "key": "addTokenTo" + }, + { + "type": "string", + "value": "Bearer", + "key": "headerPrefix" + }, + { + "type": "string", + "value": "token", + "key": "queryParamKey" + }, + { + "type": "string", + "value": "{}", + "key": "header" + } + ] + } + }, + "response": { + "id": "2076ad4e-ff69-4180-9ad0-01009b50a04c", + "status": "Bad request", + "code": 400, + "header": [ + { + "key": "Date", + "value": "Tue, 10 Mar 2026 12:19:10 GMT" + }, + { + "key": "Server", + "value": "Apache/2.4.66 (Debian)" + }, + { + "key": "X-Content-Type-Options", + "value": "nosniff" + }, + { + "key": "X-Frame-Options", + "value": "SAMEORIGIN" + }, + { + "key": "X-Permitted-Cross-Domain-Policies", + "value": "none" + }, + { + "key": "X-Robots-Tag", + "value": "noindex, nofollow" + }, + { + "key": "Referrer-Policy", + "value": "no-referrer" + }, + { + "key": "X-Powered-By", + "value": "PHP/8.3.30" + }, + { + "key": "Content-Security-Policy", + "value": "default-src 'none';base-uri 'none';manifest-src 'self';frame-ancestors 'none'" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=cd408609e6b51e8814c2a65168c1f0e3; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=cd408609e6b51e8814c2a65168c1f0e3; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=cd408609e6b51e8814c2a65168c1f0e3; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=cd408609e6b51e8814c2a65168c1f0e3; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=cd408609e6b51e8814c2a65168c1f0e3; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=bc5084f9af1d1bf8d3ae19d13f32c2bd; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=bc5084f9af1d1bf8d3ae19d13f32c2bd; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=bc5084f9af1d1bf8d3ae19d13f32c2bd; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=bc5084f9af1d1bf8d3ae19d13f32c2bd; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=bc5084f9af1d1bf8d3ae19d13f32c2bd; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "X-Request-Id", + "value": "Spxh1QauwaQZ8ucqNm9s" + }, + { + "key": "Cache-Control", + "value": "no-cache, no-store, must-revalidate" + }, + { + "key": "Feature-Policy", + "value": "autoplay 'none';camera 'none';fullscreen 'none';geolocation 'none';microphone 'none';payment 'none'" + }, + { + "key": "X-User-Id", + "value": "admin" + }, + { + "key": "Content-Length", + "value": "122" + }, + { + "key": "Connection", + "value": "close" + }, + { + "key": "Content-Type", + "value": "application/json; charset=utf-8" + } + ], + "stream": { + "type": "Buffer", + "data": [ + 123, + 34, + 100, + 101, + 116, + 97, + 105, + 108, + 34, + 58, + 34, + 80, + 114, + 111, + 112, + 101, + 114, + 116, + 121, + 32, + 39, + 99, + 97, + 115, + 101, + 84, + 121, + 112, + 101, + 39, + 32, + 115, + 104, + 111, + 117, + 108, + 100, + 32, + 109, + 97, + 116, + 99, + 104, + 32, + 102, + 111, + 114, + 109, + 97, + 116, + 32, + 39, + 117, + 117, + 105, + 100, + 39, + 32, + 98, + 117, + 116, + 32, + 39, + 39, + 32, + 100, + 111, + 101, + 115, + 32, + 110, + 111, + 116, + 46, + 32, + 80, + 108, + 101, + 97, + 115, + 101, + 32, + 112, + 114, + 111, + 118, + 105, + 100, + 101, + 32, + 97, + 32, + 118, + 97, + 108, + 117, + 101, + 32, + 105, + 110, + 32, + 116, + 104, + 101, + 32, + 99, + 111, + 114, + 114, + 101, + 99, + 116, + 32, + 102, + 111, + 114, + 109, + 97, + 116, + 46, + 34, + 125 + ] + }, + "cookie": [], + "responseTime": 106, + "responseSize": 122 + }, + "id": "18c2f89f-edaf-476c-ab9d-befac14e1ac5" + }, + { + "cursor": { + "ref": "308813a9-6b28-4687-b432-a9318a26961e", + "length": 313, + "cycles": 1, + "position": 46, + "iteration": 0, + "httpRequestId": "1f16361a-1f5a-4905-80e3-35cb15399243" + }, + "item": { + "id": "cebd4c64-22fd-4387-8b14-d7d4a44498da", + "name": "(zrc-004d) ZaakInformatieObject bijwerken zaak aanpassen is niet toegestaan", + "request": { + "url": { + "host": [ + "{{created_zaakinformatieobject_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "PUT", + "body": { + "mode": "raw", + "raw": "{{request_body}}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "b454853e-5ddd-42e2-bc98-ae8a05e9510a", + "type": "text/javascript", + "exec": [ + "pm.test(\"ZaakInformatieObject bijwerken zaak aanpassen geeft 400\", function() {", + " pm.response.to.have.status(400);", + " ", + " var error = pm.response.json()[\"invalidParams\"][0];", + " pm.expect(error.name).to.be.equal(\"zaak\");", + " pm.expect(error.code).to.be.equal(\"wijzigen-niet-toegelaten\");", + "});" + ], + "_lastExecutionId": "0a745366-361e-4c41-b170-3ff15d36c8ac" + } + }, + { + "listen": "prerequest", + "script": { + "id": "9aa607cc-537c-4da7-b922-6916061879e6", + "type": "text/javascript", + "exec": [ + "var body = JSON.parse(pm.environment.get(\"zaakinformatieobject_body\"));", + "body.zaak = pm.environment.get(\"created_zaak_url\");", + "", + "pm.environment.set(\"request_body\", JSON.stringify(body));" + ], + "_lastExecutionId": "cdcd066e-8d7e-494b-ba02-a07ae4b624ad" + } + } + ] + }, + "request": { + "url": { + "protocol": "http", + "port": "8080", + "path": [ + "index.php", + "apps", + "procest", + "api", + "zgw", + "zaken", + "v1", + "zaakinformatieobjecten", + "36d5d8e9-9820-48d9-8271-7daf1b1c9477" + ], + "host": [ + "localhost" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Authorization", + "value": "Bearer eyJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJwcm9jZXN0LWFkbWluIiwiY2xpZW50X2lkIjoicHJvY2VzdC1hZG1pbiIsImlhdCI6IjE3NzMxNDUxNTEiLCJ1c2VyX2lkIjoicHJvY2VzdC1hZG1pbiIsInVzZXJfcmVwcmVzZW50YXRpb24iOiIifQ.mTMSeXfSVMJlH70LdQSYEHmX3CnwEXetCtGkeUT2Pj0", + "system": true + }, + { + "key": "User-Agent", + "value": "PostmanRuntime/7.39.1", + "system": true + }, + { + "key": "Accept", + "value": "*/*", + "system": true + }, + { + "key": "Cache-Control", + "value": "no-cache", + "system": true + }, + { + "key": "Postman-Token", + "value": "4b742618-4322-4755-935f-56cf11c00fc0", + "system": true + }, + { + "key": "Host", + "value": "localhost:8080", + "system": true + }, + { + "key": "Accept-Encoding", + "value": "gzip, deflate, br", + "system": true + }, + { + "key": "Connection", + "value": "keep-alive", + "system": true + }, + { + "key": "Content-Length", + "value": "302", + "system": true + }, + { + "key": "Cookie", + "value": "ocvp3112b4wg=bc5084f9af1d1bf8d3ae19d13f32c2bd; oc_sessionPassphrase=LBNdKxRzA0iqoULIruNxDDh2BK3O%2BrCIU8aUmiUcOFvy5Xw1YfjwQNlmBW2IkGwJYtxXh9%2BwDN6vYuGNX07tXzkBtjQJUWTGdzf8AIOUIVxVx5DfyWAQZ7nmYmQv6XSE; nc_sameSiteCookielax=true; nc_sameSiteCookiestrict=true", + "system": true + } + ], + "method": "PUT", + "body": { + "mode": "raw", + "raw": "{\"informatieobject\":\"http://localhost:8080/index.php/apps/procest/api/zgw/documenten/v1/enkelvoudiginformatieobjecten/ec94c392-6dfa-4ad9-b2cf-a9cd9fb84a00\",\"zaak\":\"http://localhost:8080/index.php/apps/procest/api/zgw/zaken/v1/zaken/636c595d-5bb1-4587-b388-b3b3fa00ed5e\",\"registratiedatum\":\"1900-01-01\"}" + }, + "auth": { + "type": "jwt", + "jwt": [ + { + "type": "string", + "value": "{\r\n \"iss\": \"procest-admin\",\r\n \"client_id\": \"procest-admin\",\r\n \"iat\": \"1773145151\",\r\n \"user_id\": \"procest-admin\",\r\n \"user_representation\": \"\"\r\n}", + "key": "payload" + }, + { + "type": "string", + "value": "procest-admin-secret-key-for-testing", + "key": "secret" + }, + { + "type": "string", + "value": "HS256", + "key": "algorithm" + }, + { + "type": "boolean", + "value": false, + "key": "isSecretBase64Encoded" + }, + { + "type": "string", + "value": "header", + "key": "addTokenTo" + }, + { + "type": "string", + "value": "Bearer", + "key": "headerPrefix" + }, + { + "type": "string", + "value": "token", + "key": "queryParamKey" + }, + { + "type": "string", + "value": "{}", + "key": "header" + } + ] + } + }, + "response": { + "id": "6e870adc-3f57-414f-a324-3262ba06bcba", + "status": "Bad request", + "code": 400, + "header": [ + { + "key": "Date", + "value": "Tue, 10 Mar 2026 12:19:10 GMT" + }, + { + "key": "Server", + "value": "Apache/2.4.66 (Debian)" + }, + { + "key": "X-Content-Type-Options", + "value": "nosniff" + }, + { + "key": "X-Frame-Options", + "value": "SAMEORIGIN" + }, + { + "key": "X-Permitted-Cross-Domain-Policies", + "value": "none" + }, + { + "key": "X-Robots-Tag", + "value": "noindex, nofollow" + }, + { + "key": "Referrer-Policy", + "value": "no-referrer" + }, + { + "key": "X-Powered-By", + "value": "PHP/8.3.30" + }, + { + "key": "Content-Security-Policy", + "value": "default-src 'none';base-uri 'none';manifest-src 'self';frame-ancestors 'none'" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=bc5084f9af1d1bf8d3ae19d13f32c2bd; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=bc5084f9af1d1bf8d3ae19d13f32c2bd; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=bc5084f9af1d1bf8d3ae19d13f32c2bd; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=bc5084f9af1d1bf8d3ae19d13f32c2bd; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=bc5084f9af1d1bf8d3ae19d13f32c2bd; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=e867bcd3c01683a7e8c0eaca6bbf9c3b; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=e867bcd3c01683a7e8c0eaca6bbf9c3b; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=e867bcd3c01683a7e8c0eaca6bbf9c3b; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=e867bcd3c01683a7e8c0eaca6bbf9c3b; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=e867bcd3c01683a7e8c0eaca6bbf9c3b; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "X-Request-Id", + "value": "9J3q1sVbMSLJ23q6tGnx" + }, + { + "key": "Cache-Control", + "value": "no-cache, no-store, must-revalidate" + }, + { + "key": "Feature-Policy", + "value": "autoplay 'none';camera 'none';fullscreen 'none';geolocation 'none';microphone 'none';payment 'none'" + }, + { + "key": "X-User-Id", + "value": "admin" + }, + { + "key": "Content-Length", + "value": "173" + }, + { + "key": "Connection", + "value": "close" + }, + { + "key": "Content-Type", + "value": "application/json; charset=utf-8" + } + ], + "stream": { + "type": "Buffer", + "data": [ + 123, + 34, + 100, + 101, + 116, + 97, + 105, + 108, + 34, + 58, + 34, + 72, + 101, + 116, + 32, + 118, + 101, + 108, + 100, + 32, + 122, + 97, + 97, + 107, + 32, + 109, + 97, + 103, + 32, + 110, + 105, + 101, + 116, + 32, + 103, + 101, + 119, + 105, + 106, + 122, + 105, + 103, + 100, + 32, + 119, + 111, + 114, + 100, + 101, + 110, + 46, + 34, + 44, + 34, + 105, + 110, + 118, + 97, + 108, + 105, + 100, + 80, + 97, + 114, + 97, + 109, + 115, + 34, + 58, + 91, + 123, + 34, + 110, + 97, + 109, + 101, + 34, + 58, + 34, + 122, + 97, + 97, + 107, + 34, + 44, + 34, + 99, + 111, + 100, + 101, + 34, + 58, + 34, + 119, + 105, + 106, + 122, + 105, + 103, + 101, + 110, + 45, + 110, + 105, + 101, + 116, + 45, + 116, + 111, + 101, + 103, + 101, + 108, + 97, + 116, + 101, + 110, + 34, + 44, + 34, + 114, + 101, + 97, + 115, + 111, + 110, + 34, + 58, + 34, + 72, + 101, + 116, + 32, + 118, + 101, + 108, + 100, + 32, + 122, + 97, + 97, + 107, + 32, + 109, + 97, + 103, + 32, + 110, + 105, + 101, + 116, + 32, + 103, + 101, + 119, + 105, + 106, + 122, + 105, + 103, + 100, + 32, + 119, + 111, + 114, + 100, + 101, + 110, + 46, + 34, + 125, + 93, + 125 + ] + }, + "cookie": [], + "responseTime": 135, + "responseSize": 173 + }, + "id": "cebd4c64-22fd-4387-8b14-d7d4a44498da", + "assertions": [ + { + "assertion": "ZaakInformatieObject bijwerken zaak aanpassen geeft 400", + "skipped": false + } + ] + }, + { + "cursor": { + "ref": "c0f8c803-6d72-45a0-bb51-2d990846c087", + "length": 313, + "cycles": 1, + "position": 47, + "iteration": 0, + "httpRequestId": "8c69f1e2-1bff-4b48-b7ea-bac6f52c96c6" + }, + "item": { + "id": "daef153d-1c8d-4558-8e0e-7f1f633fa7bc", + "name": "(zrc-004e) ZaakInformatieObject deels bijwerken zaak aanpassen is niet toegestaan", + "request": { + "url": { + "host": [ + "{{created_zaakinformatieobject_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "PATCH", + "body": { + "mode": "raw", + "raw": "{\n\t\"zaak\": \"{{created_zaak_url}}\"\n}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "d4d6b746-90d1-4461-b4d2-99250aedb36c", + "type": "text/javascript", + "exec": [ + "pm.test(\"ZaakInformatieObject deels bijwerken zaak aanpassen geeft 400\", function() {", + " pm.response.to.have.status(400);", + " ", + " var error = pm.response.json()[\"invalidParams\"][0];", + " pm.expect(error.name).to.be.equal(\"zaak\");", + " pm.expect(error.code).to.be.equal(\"wijzigen-niet-toegelaten\");", + "});" + ], + "_lastExecutionId": "4a2a3c44-61a0-4cbf-b841-9b63ccfe407a" + } + }, + { + "listen": "prerequest", + "script": { + "id": "baec85b4-6f4f-4f2e-942b-f9470272b3f4", + "type": "text/javascript", + "exec": [ + "var body = JSON.parse(pm.environment.get(\"zaakinformatieobject_body\"));", + "body.zaak = pm.environment.get(\"created_zaak_url\");", + "", + "pm.environment.set(\"request_body\", JSON.stringify(body));" + ], + "_lastExecutionId": "cf013d9b-6cf5-4e86-84ec-c12534d5f0c5" + } + } + ] + }, + "request": { + "url": { + "protocol": "http", + "port": "8080", + "path": [ + "index.php", + "apps", + "procest", + "api", + "zgw", + "zaken", + "v1", + "zaakinformatieobjecten", + "36d5d8e9-9820-48d9-8271-7daf1b1c9477" + ], + "host": [ + "localhost" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Authorization", + "value": "Bearer eyJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJwcm9jZXN0LWFkbWluIiwiY2xpZW50X2lkIjoicHJvY2VzdC1hZG1pbiIsImlhdCI6IjE3NzMxNDUxNTEiLCJ1c2VyX2lkIjoicHJvY2VzdC1hZG1pbiIsInVzZXJfcmVwcmVzZW50YXRpb24iOiIifQ.mTMSeXfSVMJlH70LdQSYEHmX3CnwEXetCtGkeUT2Pj0", + "system": true + }, + { + "key": "User-Agent", + "value": "PostmanRuntime/7.39.1", + "system": true + }, + { + "key": "Accept", + "value": "*/*", + "system": true + }, + { + "key": "Cache-Control", + "value": "no-cache", + "system": true + }, + { + "key": "Postman-Token", + "value": "b6a2a6b7-c3f2-45e0-a395-9048eb9248c9", + "system": true + }, + { + "key": "Host", + "value": "localhost:8080", + "system": true + }, + { + "key": "Accept-Encoding", + "value": "gzip, deflate, br", + "system": true + }, + { + "key": "Connection", + "value": "keep-alive", + "system": true + }, + { + "key": "Content-Length", + "value": "119", + "system": true + }, + { + "key": "Cookie", + "value": "ocvp3112b4wg=e867bcd3c01683a7e8c0eaca6bbf9c3b; oc_sessionPassphrase=LBNdKxRzA0iqoULIruNxDDh2BK3O%2BrCIU8aUmiUcOFvy5Xw1YfjwQNlmBW2IkGwJYtxXh9%2BwDN6vYuGNX07tXzkBtjQJUWTGdzf8AIOUIVxVx5DfyWAQZ7nmYmQv6XSE; nc_sameSiteCookielax=true; nc_sameSiteCookiestrict=true", + "system": true + } + ], + "method": "PATCH", + "body": { + "mode": "raw", + "raw": "{\n\t\"zaak\": \"http://localhost:8080/index.php/apps/procest/api/zgw/zaken/v1/zaken/636c595d-5bb1-4587-b388-b3b3fa00ed5e\"\n}" + }, + "auth": { + "type": "jwt", + "jwt": [ + { + "type": "string", + "value": "{\r\n \"iss\": \"procest-admin\",\r\n \"client_id\": \"procest-admin\",\r\n \"iat\": \"1773145151\",\r\n \"user_id\": \"procest-admin\",\r\n \"user_representation\": \"\"\r\n}", + "key": "payload" + }, + { + "type": "string", + "value": "procest-admin-secret-key-for-testing", + "key": "secret" + }, + { + "type": "string", + "value": "HS256", + "key": "algorithm" + }, + { + "type": "boolean", + "value": false, + "key": "isSecretBase64Encoded" + }, + { + "type": "string", + "value": "header", + "key": "addTokenTo" + }, + { + "type": "string", + "value": "Bearer", + "key": "headerPrefix" + }, + { + "type": "string", + "value": "token", + "key": "queryParamKey" + }, + { + "type": "string", + "value": "{}", + "key": "header" + } + ] + } + }, + "response": { + "id": "561562a9-937d-4d7a-b206-22e912469937", + "status": "Bad request", + "code": 400, + "header": [ + { + "key": "Date", + "value": "Tue, 10 Mar 2026 12:19:10 GMT" + }, + { + "key": "Server", + "value": "Apache/2.4.66 (Debian)" + }, + { + "key": "X-Content-Type-Options", + "value": "nosniff" + }, + { + "key": "X-Frame-Options", + "value": "SAMEORIGIN" + }, + { + "key": "X-Permitted-Cross-Domain-Policies", + "value": "none" + }, + { + "key": "X-Robots-Tag", + "value": "noindex, nofollow" + }, + { + "key": "Referrer-Policy", + "value": "no-referrer" + }, + { + "key": "X-Powered-By", + "value": "PHP/8.3.30" + }, + { + "key": "Content-Security-Policy", + "value": "default-src 'none';base-uri 'none';manifest-src 'self';frame-ancestors 'none'" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=e867bcd3c01683a7e8c0eaca6bbf9c3b; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=e867bcd3c01683a7e8c0eaca6bbf9c3b; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=e867bcd3c01683a7e8c0eaca6bbf9c3b; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=e867bcd3c01683a7e8c0eaca6bbf9c3b; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=e867bcd3c01683a7e8c0eaca6bbf9c3b; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=1f37246f9410d96de6947b257ba75f46; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=1f37246f9410d96de6947b257ba75f46; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=1f37246f9410d96de6947b257ba75f46; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=1f37246f9410d96de6947b257ba75f46; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=1f37246f9410d96de6947b257ba75f46; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "X-Request-Id", + "value": "9l0DoRigmcAClcmQoy1W" + }, + { + "key": "Cache-Control", + "value": "no-cache, no-store, must-revalidate" + }, + { + "key": "Feature-Policy", + "value": "autoplay 'none';camera 'none';fullscreen 'none';geolocation 'none';microphone 'none';payment 'none'" + }, + { + "key": "X-User-Id", + "value": "admin" + }, + { + "key": "Content-Length", + "value": "173" + }, + { + "key": "Connection", + "value": "close" + }, + { + "key": "Content-Type", + "value": "application/json; charset=utf-8" + } + ], + "stream": { + "type": "Buffer", + "data": [ + 123, + 34, + 100, + 101, + 116, + 97, + 105, + 108, + 34, + 58, + 34, + 72, + 101, + 116, + 32, + 118, + 101, + 108, + 100, + 32, + 122, + 97, + 97, + 107, + 32, + 109, + 97, + 103, + 32, + 110, + 105, + 101, + 116, + 32, + 103, + 101, + 119, + 105, + 106, + 122, + 105, + 103, + 100, + 32, + 119, + 111, + 114, + 100, + 101, + 110, + 46, + 34, + 44, + 34, + 105, + 110, + 118, + 97, + 108, + 105, + 100, + 80, + 97, + 114, + 97, + 109, + 115, + 34, + 58, + 91, + 123, + 34, + 110, + 97, + 109, + 101, + 34, + 58, + 34, + 122, + 97, + 97, + 107, + 34, + 44, + 34, + 99, + 111, + 100, + 101, + 34, + 58, + 34, + 119, + 105, + 106, + 122, + 105, + 103, + 101, + 110, + 45, + 110, + 105, + 101, + 116, + 45, + 116, + 111, + 101, + 103, + 101, + 108, + 97, + 116, + 101, + 110, + 34, + 44, + 34, + 114, + 101, + 97, + 115, + 111, + 110, + 34, + 58, + 34, + 72, + 101, + 116, + 32, + 118, + 101, + 108, + 100, + 32, + 122, + 97, + 97, + 107, + 32, + 109, + 97, + 103, + 32, + 110, + 105, + 101, + 116, + 32, + 103, + 101, + 119, + 105, + 106, + 122, + 105, + 103, + 100, + 32, + 119, + 111, + 114, + 100, + 101, + 110, + 46, + 34, + 125, + 93, + 125 + ] + }, + "cookie": [], + "responseTime": 128, + "responseSize": 173 + }, + "id": "daef153d-1c8d-4558-8e0e-7f1f633fa7bc", + "assertions": [ + { + "assertion": "ZaakInformatieObject deels bijwerken zaak aanpassen geeft 400", + "skipped": false + } + ] + }, + { + "cursor": { + "ref": "1c63838d-ef86-4cee-aec4-a7eb1f3c2a97", + "length": 313, + "cycles": 1, + "position": 48, + "iteration": 0, + "httpRequestId": "99075216-72e8-493b-87eb-20cb76575cb0" + }, + "item": { + "id": "fecb77a7-857a-4be0-b82f-aa2ddb74650f", + "name": "(zrc-004f) ZaakInformatieObject bijwerken informatieobject aanpassen is niet toegestaan", + "request": { + "url": { + "host": [ + "{{created_zaakinformatieobject_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "PUT", + "body": { + "mode": "raw", + "raw": "{{request_body}}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "505b1803-f614-402c-8515-3f447911ebaa", + "type": "text/javascript", + "exec": [ + "pm.test(\"ZaakInformatieObject bijwerken informatieobject aanpassen geeft 400\", function() {", + " pm.response.to.have.status(400);", + " ", + " var error = pm.response.json()[\"invalidParams\"][0];", + " pm.expect(error.name).to.be.equal(\"informatieobject\");", + " pm.expect(error.code).to.be.equal(\"wijzigen-niet-toegelaten\");", + "});" + ], + "_lastExecutionId": "76a2b31f-f89c-412e-89e1-73975b96d1ce" + } + }, + { + "listen": "prerequest", + "script": { + "id": "77789ad1-d736-491d-a4bc-a8d8d8ab8967", + "type": "text/javascript", + "exec": [ + "var body = JSON.parse(pm.environment.get(\"zaakinformatieobject_body\"));", + "body.informatieobject = pm.environment.get(\"informatieobject_gebruiksrecht_null_url\");", + "", + "pm.environment.set(\"request_body\", JSON.stringify(body));" + ], + "_lastExecutionId": "64b267ca-9689-4c65-89d1-a43875af761d" + } + } + ] + }, + "request": { + "url": { + "protocol": "http", + "port": "8080", + "path": [ + "index.php", + "apps", + "procest", + "api", + "zgw", + "zaken", + "v1", + "zaakinformatieobjecten", + "36d5d8e9-9820-48d9-8271-7daf1b1c9477" + ], + "host": [ + "localhost" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Authorization", + "value": "Bearer eyJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJwcm9jZXN0LWFkbWluIiwiY2xpZW50X2lkIjoicHJvY2VzdC1hZG1pbiIsImlhdCI6IjE3NzMxNDUxNTEiLCJ1c2VyX2lkIjoicHJvY2VzdC1hZG1pbiIsInVzZXJfcmVwcmVzZW50YXRpb24iOiIifQ.mTMSeXfSVMJlH70LdQSYEHmX3CnwEXetCtGkeUT2Pj0", + "system": true + }, + { + "key": "User-Agent", + "value": "PostmanRuntime/7.39.1", + "system": true + }, + { + "key": "Accept", + "value": "*/*", + "system": true + }, + { + "key": "Cache-Control", + "value": "no-cache", + "system": true + }, + { + "key": "Postman-Token", + "value": "ba69a3ee-ccdb-4a12-a17d-79dd581aa29c", + "system": true + }, + { + "key": "Host", + "value": "localhost:8080", + "system": true + }, + { + "key": "Accept-Encoding", + "value": "gzip, deflate, br", + "system": true + }, + { + "key": "Connection", + "value": "keep-alive", + "system": true + }, + { + "key": "Content-Length", + "value": "302", + "system": true + }, + { + "key": "Cookie", + "value": "ocvp3112b4wg=1f37246f9410d96de6947b257ba75f46; oc_sessionPassphrase=LBNdKxRzA0iqoULIruNxDDh2BK3O%2BrCIU8aUmiUcOFvy5Xw1YfjwQNlmBW2IkGwJYtxXh9%2BwDN6vYuGNX07tXzkBtjQJUWTGdzf8AIOUIVxVx5DfyWAQZ7nmYmQv6XSE; nc_sameSiteCookielax=true; nc_sameSiteCookiestrict=true", + "system": true + } + ], + "method": "PUT", + "body": { + "mode": "raw", + "raw": "{\"informatieobject\":\"http://localhost:8080/index.php/apps/procest/api/zgw/documenten/v1/enkelvoudiginformatieobjecten/d3d835a6-a67c-404f-b3a6-7d281fef75a0\",\"zaak\":\"http://localhost:8080/index.php/apps/procest/api/zgw/zaken/v1/zaken/fb6d7254-47ed-4cf1-a585-c60967546512\",\"registratiedatum\":\"1900-01-01\"}" + }, + "auth": { + "type": "jwt", + "jwt": [ + { + "type": "string", + "value": "{\r\n \"iss\": \"procest-admin\",\r\n \"client_id\": \"procest-admin\",\r\n \"iat\": \"1773145151\",\r\n \"user_id\": \"procest-admin\",\r\n \"user_representation\": \"\"\r\n}", + "key": "payload" + }, + { + "type": "string", + "value": "procest-admin-secret-key-for-testing", + "key": "secret" + }, + { + "type": "string", + "value": "HS256", + "key": "algorithm" + }, + { + "type": "boolean", + "value": false, + "key": "isSecretBase64Encoded" + }, + { + "type": "string", + "value": "header", + "key": "addTokenTo" + }, + { + "type": "string", + "value": "Bearer", + "key": "headerPrefix" + }, + { + "type": "string", + "value": "token", + "key": "queryParamKey" + }, + { + "type": "string", + "value": "{}", + "key": "header" + } + ] + } + }, + "response": { + "id": "bdef0cfd-7d72-4147-9517-6a86ebd573ec", + "status": "Bad request", + "code": 400, + "header": [ + { + "key": "Date", + "value": "Tue, 10 Mar 2026 12:19:11 GMT" + }, + { + "key": "Server", + "value": "Apache/2.4.66 (Debian)" + }, + { + "key": "X-Content-Type-Options", + "value": "nosniff" + }, + { + "key": "X-Frame-Options", + "value": "SAMEORIGIN" + }, + { + "key": "X-Permitted-Cross-Domain-Policies", + "value": "none" + }, + { + "key": "X-Robots-Tag", + "value": "noindex, nofollow" + }, + { + "key": "Referrer-Policy", + "value": "no-referrer" + }, + { + "key": "X-Powered-By", + "value": "PHP/8.3.30" + }, + { + "key": "Content-Security-Policy", + "value": "default-src 'none';base-uri 'none';manifest-src 'self';frame-ancestors 'none'" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=1f37246f9410d96de6947b257ba75f46; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=1f37246f9410d96de6947b257ba75f46; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=1f37246f9410d96de6947b257ba75f46; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=1f37246f9410d96de6947b257ba75f46; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=1f37246f9410d96de6947b257ba75f46; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=5dc3903111a5481f2dc1076785913ea2; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=5dc3903111a5481f2dc1076785913ea2; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=5dc3903111a5481f2dc1076785913ea2; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=5dc3903111a5481f2dc1076785913ea2; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=5dc3903111a5481f2dc1076785913ea2; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "X-Request-Id", + "value": "95tGtbgRYDad5qBZP8Cn" + }, + { + "key": "Cache-Control", + "value": "no-cache, no-store, must-revalidate" + }, + { + "key": "Feature-Policy", + "value": "autoplay 'none';camera 'none';fullscreen 'none';geolocation 'none';microphone 'none';payment 'none'" + }, + { + "key": "X-User-Id", + "value": "admin" + }, + { + "key": "Content-Length", + "value": "209" + }, + { + "key": "Connection", + "value": "close" + }, + { + "key": "Content-Type", + "value": "application/json; charset=utf-8" + } + ], + "stream": { + "type": "Buffer", + "data": [ + 123, + 34, + 100, + 101, + 116, + 97, + 105, + 108, + 34, + 58, + 34, + 72, + 101, + 116, + 32, + 118, + 101, + 108, + 100, + 32, + 105, + 110, + 102, + 111, + 114, + 109, + 97, + 116, + 105, + 101, + 111, + 98, + 106, + 101, + 99, + 116, + 32, + 109, + 97, + 103, + 32, + 110, + 105, + 101, + 116, + 32, + 103, + 101, + 119, + 105, + 106, + 122, + 105, + 103, + 100, + 32, + 119, + 111, + 114, + 100, + 101, + 110, + 46, + 34, + 44, + 34, + 105, + 110, + 118, + 97, + 108, + 105, + 100, + 80, + 97, + 114, + 97, + 109, + 115, + 34, + 58, + 91, + 123, + 34, + 110, + 97, + 109, + 101, + 34, + 58, + 34, + 105, + 110, + 102, + 111, + 114, + 109, + 97, + 116, + 105, + 101, + 111, + 98, + 106, + 101, + 99, + 116, + 34, + 44, + 34, + 99, + 111, + 100, + 101, + 34, + 58, + 34, + 119, + 105, + 106, + 122, + 105, + 103, + 101, + 110, + 45, + 110, + 105, + 101, + 116, + 45, + 116, + 111, + 101, + 103, + 101, + 108, + 97, + 116, + 101, + 110, + 34, + 44, + 34, + 114, + 101, + 97, + 115, + 111, + 110, + 34, + 58, + 34, + 72, + 101, + 116, + 32, + 118, + 101, + 108, + 100, + 32, + 105, + 110, + 102, + 111, + 114, + 109, + 97, + 116, + 105, + 101, + 111, + 98, + 106, + 101, + 99, + 116, + 32, + 109, + 97, + 103, + 32, + 110, + 105, + 101, + 116, + 32, + 103, + 101, + 119, + 105, + 106, + 122, + 105, + 103, + 100, + 32, + 119, + 111, + 114, + 100, + 101, + 110, + 46, + 34, + 125, + 93, + 125 + ] + }, + "cookie": [], + "responseTime": 135, + "responseSize": 209 + }, + "id": "fecb77a7-857a-4be0-b82f-aa2ddb74650f", + "assertions": [ + { + "assertion": "ZaakInformatieObject bijwerken informatieobject aanpassen geeft 400", + "skipped": false + } + ] + }, + { + "cursor": { + "ref": "3bf407b5-fe99-4a4d-8920-5684b9bed814", + "length": 313, + "cycles": 1, + "position": 49, + "iteration": 0, + "httpRequestId": "b2c57c1a-533b-4567-b1f5-502deb068cbf" + }, + "item": { + "id": "56dfbb38-1678-454b-92e1-630fecb97939", + "name": "(zrc-004g) ZaakInformatieObject deels bijwerken informatieobject aanpassen is niet toegestaan", + "request": { + "url": { + "host": [ + "{{created_zaakinformatieobject_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "PATCH", + "body": { + "mode": "raw", + "raw": "{\n\t\"informatieobject\": \"{{informatieobject_gebruiksrecht_null_url}}\"\n}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "a2ed2963-e0d6-488e-bc1f-3d7485b9f9cd", + "type": "text/javascript", + "exec": [ + "pm.test(\"ZaakInformatieObject deels bijwerken informatieobject aanpassen geeft 400\", function() {", + " pm.response.to.have.status(400);", + " ", + " var error = pm.response.json()[\"invalidParams\"][0];", + " pm.expect(error.name).to.be.equal(\"informatieobject\");", + " pm.expect(error.code).to.be.equal(\"wijzigen-niet-toegelaten\");", + "});" + ], + "_lastExecutionId": "491bd481-bd59-4b7a-9c05-0f6514497e52" + } + }, + { + "listen": "prerequest", + "script": { + "id": "3ac176e7-f442-4336-8bad-919201462c07", + "type": "text/javascript", + "exec": [ + "" + ], + "_lastExecutionId": "56b7807b-cb13-4444-a325-2131b6fac7f7" + } + } + ] + }, + "request": { + "url": { + "protocol": "http", + "port": "8080", + "path": [ + "index.php", + "apps", + "procest", + "api", + "zgw", + "zaken", + "v1", + "zaakinformatieobjecten", + "36d5d8e9-9820-48d9-8271-7daf1b1c9477" + ], + "host": [ + "localhost" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Authorization", + "value": "Bearer eyJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJwcm9jZXN0LWFkbWluIiwiY2xpZW50X2lkIjoicHJvY2VzdC1hZG1pbiIsImlhdCI6IjE3NzMxNDUxNTEiLCJ1c2VyX2lkIjoicHJvY2VzdC1hZG1pbiIsInVzZXJfcmVwcmVzZW50YXRpb24iOiIifQ.mTMSeXfSVMJlH70LdQSYEHmX3CnwEXetCtGkeUT2Pj0", + "system": true + }, + { + "key": "User-Agent", + "value": "PostmanRuntime/7.39.1", + "system": true + }, + { + "key": "Accept", + "value": "*/*", + "system": true + }, + { + "key": "Cache-Control", + "value": "no-cache", + "system": true + }, + { + "key": "Postman-Token", + "value": "0e6b2cb9-83d1-4281-911d-e6ffd9edc02a", + "system": true + }, + { + "key": "Host", + "value": "localhost:8080", + "system": true + }, + { + "key": "Accept-Encoding", + "value": "gzip, deflate, br", + "system": true + }, + { + "key": "Connection", + "value": "keep-alive", + "system": true + }, + { + "key": "Content-Length", + "value": "160", + "system": true + }, + { + "key": "Cookie", + "value": "ocvp3112b4wg=5dc3903111a5481f2dc1076785913ea2; oc_sessionPassphrase=LBNdKxRzA0iqoULIruNxDDh2BK3O%2BrCIU8aUmiUcOFvy5Xw1YfjwQNlmBW2IkGwJYtxXh9%2BwDN6vYuGNX07tXzkBtjQJUWTGdzf8AIOUIVxVx5DfyWAQZ7nmYmQv6XSE; nc_sameSiteCookielax=true; nc_sameSiteCookiestrict=true", + "system": true + } + ], + "method": "PATCH", + "body": { + "mode": "raw", + "raw": "{\n\t\"informatieobject\": \"http://localhost:8080/index.php/apps/procest/api/zgw/documenten/v1/enkelvoudiginformatieobjecten/d3d835a6-a67c-404f-b3a6-7d281fef75a0\"\n}" + }, + "auth": { + "type": "jwt", + "jwt": [ + { + "type": "string", + "value": "{\r\n \"iss\": \"procest-admin\",\r\n \"client_id\": \"procest-admin\",\r\n \"iat\": \"1773145151\",\r\n \"user_id\": \"procest-admin\",\r\n \"user_representation\": \"\"\r\n}", + "key": "payload" + }, + { + "type": "string", + "value": "procest-admin-secret-key-for-testing", + "key": "secret" + }, + { + "type": "string", + "value": "HS256", + "key": "algorithm" + }, + { + "type": "boolean", + "value": false, + "key": "isSecretBase64Encoded" + }, + { + "type": "string", + "value": "header", + "key": "addTokenTo" + }, + { + "type": "string", + "value": "Bearer", + "key": "headerPrefix" + }, + { + "type": "string", + "value": "token", + "key": "queryParamKey" + }, + { + "type": "string", + "value": "{}", + "key": "header" + } + ] + } + }, + "response": { + "id": "4f417434-8842-48d6-bcdb-c4f6db778f24", + "status": "Bad request", + "code": 400, + "header": [ + { + "key": "Date", + "value": "Tue, 10 Mar 2026 12:19:11 GMT" + }, + { + "key": "Server", + "value": "Apache/2.4.66 (Debian)" + }, + { + "key": "X-Content-Type-Options", + "value": "nosniff" + }, + { + "key": "X-Frame-Options", + "value": "SAMEORIGIN" + }, + { + "key": "X-Permitted-Cross-Domain-Policies", + "value": "none" + }, + { + "key": "X-Robots-Tag", + "value": "noindex, nofollow" + }, + { + "key": "Referrer-Policy", + "value": "no-referrer" + }, + { + "key": "X-Powered-By", + "value": "PHP/8.3.30" + }, + { + "key": "Content-Security-Policy", + "value": "default-src 'none';base-uri 'none';manifest-src 'self';frame-ancestors 'none'" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=5dc3903111a5481f2dc1076785913ea2; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=5dc3903111a5481f2dc1076785913ea2; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=5dc3903111a5481f2dc1076785913ea2; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=5dc3903111a5481f2dc1076785913ea2; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=5dc3903111a5481f2dc1076785913ea2; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=d925cb55bc95f59b225c9d70397aef3e; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=d925cb55bc95f59b225c9d70397aef3e; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=d925cb55bc95f59b225c9d70397aef3e; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=d925cb55bc95f59b225c9d70397aef3e; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=d925cb55bc95f59b225c9d70397aef3e; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "X-Request-Id", + "value": "JSVhOSfFuvkOrvS8v4bo" + }, + { + "key": "Cache-Control", + "value": "no-cache, no-store, must-revalidate" + }, + { + "key": "Feature-Policy", + "value": "autoplay 'none';camera 'none';fullscreen 'none';geolocation 'none';microphone 'none';payment 'none'" + }, + { + "key": "X-User-Id", + "value": "admin" + }, + { + "key": "Content-Length", + "value": "209" + }, + { + "key": "Connection", + "value": "close" + }, + { + "key": "Content-Type", + "value": "application/json; charset=utf-8" + } + ], + "stream": { + "type": "Buffer", + "data": [ + 123, + 34, + 100, + 101, + 116, + 97, + 105, + 108, + 34, + 58, + 34, + 72, + 101, + 116, + 32, + 118, + 101, + 108, + 100, + 32, + 105, + 110, + 102, + 111, + 114, + 109, + 97, + 116, + 105, + 101, + 111, + 98, + 106, + 101, + 99, + 116, + 32, + 109, + 97, + 103, + 32, + 110, + 105, + 101, + 116, + 32, + 103, + 101, + 119, + 105, + 106, + 122, + 105, + 103, + 100, + 32, + 119, + 111, + 114, + 100, + 101, + 110, + 46, + 34, + 44, + 34, + 105, + 110, + 118, + 97, + 108, + 105, + 100, + 80, + 97, + 114, + 97, + 109, + 115, + 34, + 58, + 91, + 123, + 34, + 110, + 97, + 109, + 101, + 34, + 58, + 34, + 105, + 110, + 102, + 111, + 114, + 109, + 97, + 116, + 105, + 101, + 111, + 98, + 106, + 101, + 99, + 116, + 34, + 44, + 34, + 99, + 111, + 100, + 101, + 34, + 58, + 34, + 119, + 105, + 106, + 122, + 105, + 103, + 101, + 110, + 45, + 110, + 105, + 101, + 116, + 45, + 116, + 111, + 101, + 103, + 101, + 108, + 97, + 116, + 101, + 110, + 34, + 44, + 34, + 114, + 101, + 97, + 115, + 111, + 110, + 34, + 58, + 34, + 72, + 101, + 116, + 32, + 118, + 101, + 108, + 100, + 32, + 105, + 110, + 102, + 111, + 114, + 109, + 97, + 116, + 105, + 101, + 111, + 98, + 106, + 101, + 99, + 116, + 32, + 109, + 97, + 103, + 32, + 110, + 105, + 101, + 116, + 32, + 103, + 101, + 119, + 105, + 106, + 122, + 105, + 103, + 100, + 32, + 119, + 111, + 114, + 100, + 101, + 110, + 46, + 34, + 125, + 93, + 125 + ] + }, + "cookie": [], + "responseTime": 115, + "responseSize": 209 + }, + "id": "56dfbb38-1678-454b-92e1-630fecb97939", + "assertions": [ + { + "assertion": "ZaakInformatieObject deels bijwerken informatieobject aanpassen geeft 400", + "skipped": false + } + ] + }, + { + "cursor": { + "ref": "60f06933-a844-4562-ad76-69c54d0231de", + "length": 313, + "cycles": 1, + "position": 50, + "iteration": 0, + "httpRequestId": "558fd441-fcf9-477b-9346-1dfb2f533c16" + }, + "item": { + "id": "80eae7bb-ca36-4528-9c14-0f2036b48684", + "name": "Delete different Zaak", + "request": { + "url": { + "host": [ + "{{created_zaak_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Accept-Crs", + "value": "EPSG:4326" + } + ], + "method": "DELETE", + "body": { + "mode": "raw", + "raw": "" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "9d8bf630-3392-47fa-bc28-e6202b14b406", + "type": "text/javascript", + "packages": {}, + "exec": [ + "" + ], + "_lastExecutionId": "61ee698a-7177-4582-a40d-ab1707d06bd2" + } + } + ] + }, + "request": { + "url": { + "protocol": "http", + "port": "8080", + "path": [ + "index.php", + "apps", + "procest", + "api", + "zgw", + "zaken", + "v1", + "zaken", + "636c595d-5bb1-4587-b388-b3b3fa00ed5e" + ], + "host": [ + "localhost" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Accept-Crs", + "value": "EPSG:4326" + }, + { + "key": "Authorization", + "value": "Bearer eyJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJwcm9jZXN0LWFkbWluIiwiY2xpZW50X2lkIjoicHJvY2VzdC1hZG1pbiIsImlhdCI6IjE3NzMxNDUxNTEiLCJ1c2VyX2lkIjoicHJvY2VzdC1hZG1pbiIsInVzZXJfcmVwcmVzZW50YXRpb24iOiIifQ.mTMSeXfSVMJlH70LdQSYEHmX3CnwEXetCtGkeUT2Pj0", + "system": true + }, + { + "key": "User-Agent", + "value": "PostmanRuntime/7.39.1", + "system": true + }, + { + "key": "Accept", + "value": "*/*", + "system": true + }, + { + "key": "Cache-Control", + "value": "no-cache", + "system": true + }, + { + "key": "Postman-Token", + "value": "d829b228-08ff-4885-931d-f77d7b46e4d6", + "system": true + }, + { + "key": "Host", + "value": "localhost:8080", + "system": true + }, + { + "key": "Accept-Encoding", + "value": "gzip, deflate, br", + "system": true + }, + { + "key": "Connection", + "value": "keep-alive", + "system": true + }, + { + "key": "Cookie", + "value": "ocvp3112b4wg=d925cb55bc95f59b225c9d70397aef3e; oc_sessionPassphrase=LBNdKxRzA0iqoULIruNxDDh2BK3O%2BrCIU8aUmiUcOFvy5Xw1YfjwQNlmBW2IkGwJYtxXh9%2BwDN6vYuGNX07tXzkBtjQJUWTGdzf8AIOUIVxVx5DfyWAQZ7nmYmQv6XSE; nc_sameSiteCookielax=true; nc_sameSiteCookiestrict=true", + "system": true + } + ], + "method": "DELETE", + "body": { + "mode": "raw", + "raw": "" + }, + "auth": { + "type": "jwt", + "jwt": [ + { + "type": "string", + "value": "{\r\n \"iss\": \"procest-admin\",\r\n \"client_id\": \"procest-admin\",\r\n \"iat\": \"1773145151\",\r\n \"user_id\": \"procest-admin\",\r\n \"user_representation\": \"\"\r\n}", + "key": "payload" + }, + { + "type": "string", + "value": "procest-admin-secret-key-for-testing", + "key": "secret" + }, + { + "type": "string", + "value": "HS256", + "key": "algorithm" + }, + { + "type": "boolean", + "value": false, + "key": "isSecretBase64Encoded" + }, + { + "type": "string", + "value": "header", + "key": "addTokenTo" + }, + { + "type": "string", + "value": "Bearer", + "key": "headerPrefix" + }, + { + "type": "string", + "value": "token", + "key": "queryParamKey" + }, + { + "type": "string", + "value": "{}", + "key": "header" + } + ] + } + }, + "response": { + "id": "5e43f9f8-ae7c-4550-84f1-086a55074428", + "status": "No Content", + "code": 204, + "header": [ + { + "key": "Date", + "value": "Tue, 10 Mar 2026 12:19:11 GMT" + }, + { + "key": "Server", + "value": "Apache/2.4.66 (Debian)" + }, + { + "key": "X-Content-Type-Options", + "value": "nosniff" + }, + { + "key": "X-Frame-Options", + "value": "SAMEORIGIN" + }, + { + "key": "X-Permitted-Cross-Domain-Policies", + "value": "none" + }, + { + "key": "X-Robots-Tag", + "value": "noindex, nofollow" + }, + { + "key": "Referrer-Policy", + "value": "no-referrer" + }, + { + "key": "X-Powered-By", + "value": "PHP/8.3.30" + }, + { + "key": "Content-Security-Policy", + "value": "default-src 'none';base-uri 'none';manifest-src 'self';frame-ancestors 'none'" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=d925cb55bc95f59b225c9d70397aef3e; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=d925cb55bc95f59b225c9d70397aef3e; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=d925cb55bc95f59b225c9d70397aef3e; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=d925cb55bc95f59b225c9d70397aef3e; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=d925cb55bc95f59b225c9d70397aef3e; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=4cd90125b8a0e0d638369f98304e62ae; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=4cd90125b8a0e0d638369f98304e62ae; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=4cd90125b8a0e0d638369f98304e62ae; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=4cd90125b8a0e0d638369f98304e62ae; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=4cd90125b8a0e0d638369f98304e62ae; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "X-Request-Id", + "value": "iCGbneIa6aZiJIkCHJ2G" + }, + { + "key": "Cache-Control", + "value": "no-cache, no-store, must-revalidate" + }, + { + "key": "Feature-Policy", + "value": "autoplay 'none';camera 'none';fullscreen 'none';geolocation 'none';microphone 'none';payment 'none'" + }, + { + "key": "X-User-Id", + "value": "admin" + }, + { + "key": "Keep-Alive", + "value": "timeout=5, max=100" + }, + { + "key": "Connection", + "value": "Keep-Alive" + } + ], + "stream": { + "type": "Buffer", + "data": [] + }, + "cookie": [], + "responseTime": 505, + "responseSize": 0 + }, + "id": "80eae7bb-ca36-4528-9c14-0f2036b48684" + }, + { + "cursor": { + "ref": "ee393efa-d5c6-4345-aa15-fdfd3126c3e2", + "length": 313, + "cycles": 1, + "position": 51, + "iteration": 0, + "httpRequestId": "a1f3ada6-1d3f-4c71-8ca5-95d4389303f5" + }, + "item": { + "id": "18456cf8-496a-41e9-bbc5-013810b4f2e4", + "name": "Zaak", + "request": { + "url": { + "path": [ + "zaken" + ], + "host": [ + "{{zrc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Crs", + "value": "EPSG:4326" + }, + { + "key": "Accept-Crs", + "value": "EPSG:4326" + }, + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n \"bronorganisatie\": \"000000000\",\n \"omschrijving\": \"string\",\n \"toelichting\": \"string\",\n \"registratiedatum\": \"2019-04-09\",\n \"verantwoordelijkeOrganisatie\": \"000000000\",\n \"zaaktype\": \"{{zaaktype_url}}\",\n \"startdatum\": \"2019-04-09\",\n \"einddatumGepland\": \"2019-04-20\",\n \"uiterlijkeEinddatumAfdoening\": \"2019-04-09\",\n \"publicatiedatum\": \"2019-04-09\",\n \"vertrouwelijkheidaanduiding\": \"openbaar\",\n \"betalingsindicatie\": \"geheel\",\n \"laatsteBetaalDatum\": \"2019-01-01\",\n \"zaakgeometrie\": {\n \"type\": \"Point\",\n \"coordinates\": [\n 53,\n 5\n ]\n },\n \"opschorting\": {\n \"indicatie\": true,\n \"reden\": \"string\"\n },\n \"selectielijstklasse\": \"{{selectielijstklasse_url}}\",\n \"archiefstatus\": \"nog_te_archiveren\",\n \"deelzaaktypen\" : [\"{{deelzaaktype_url}}\"]\n}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "207ff9c1-fd0b-4858-ad4a-84dbbf2ab1ca", + "type": "text/javascript", + "packages": {}, + "exec": [ + "if(pm.response.code == 201) {", + " var zaak = pm.response.json();", + " pm.environment.set(\"zaak_url\", zaak.url);", + "}" + ], + "_lastExecutionId": "eb171e7b-cb4c-40c9-96e2-f85b1488adee" + } + }, + { + "listen": "prerequest", + "script": { + "id": "3045b961-ca98-42a0-bc98-776e8bd00b86", + "type": "text/javascript", + "packages": {}, + "exec": [ + "" + ], + "_lastExecutionId": "7c893333-4842-414f-89b8-4ba839140ed5" + } + } + ] + }, + "request": { + "url": { + "protocol": "http", + "port": "8080", + "path": [ + "index.php", + "apps", + "procest", + "api", + "zgw", + "zaken", + "v1", + "zaken" + ], + "host": [ + "localhost" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Crs", + "value": "EPSG:4326" + }, + { + "key": "Accept-Crs", + "value": "EPSG:4326" + }, + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Authorization", + "value": "Bearer eyJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJwcm9jZXN0LWFkbWluIiwiY2xpZW50X2lkIjoicHJvY2VzdC1hZG1pbiIsImlhdCI6IjE3NzMxNDUxNTIiLCJ1c2VyX2lkIjoicHJvY2VzdC1hZG1pbiIsInVzZXJfcmVwcmVzZW50YXRpb24iOiIifQ.UlUNjpQi-OoH7OiWNX5WBN7HbqwhL3A7I-AjdWOLtfY", + "system": true + }, + { + "key": "User-Agent", + "value": "PostmanRuntime/7.39.1", + "system": true + }, + { + "key": "Accept", + "value": "*/*", + "system": true + }, + { + "key": "Cache-Control", + "value": "no-cache", + "system": true + }, + { + "key": "Postman-Token", + "value": "e9e3098a-cce9-4f2d-828f-9621c0c53ff9", + "system": true + }, + { + "key": "Host", + "value": "localhost:8080", + "system": true + }, + { + "key": "Accept-Encoding", + "value": "gzip, deflate, br", + "system": true + }, + { + "key": "Connection", + "value": "keep-alive", + "system": true + }, + { + "key": "Content-Length", + "value": "1096", + "system": true + }, + { + "key": "Cookie", + "value": "ocvp3112b4wg=4cd90125b8a0e0d638369f98304e62ae; oc_sessionPassphrase=LBNdKxRzA0iqoULIruNxDDh2BK3O%2BrCIU8aUmiUcOFvy5Xw1YfjwQNlmBW2IkGwJYtxXh9%2BwDN6vYuGNX07tXzkBtjQJUWTGdzf8AIOUIVxVx5DfyWAQZ7nmYmQv6XSE; nc_sameSiteCookielax=true; nc_sameSiteCookiestrict=true", + "system": true + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n \"bronorganisatie\": \"000000000\",\n \"omschrijving\": \"string\",\n \"toelichting\": \"string\",\n \"registratiedatum\": \"2019-04-09\",\n \"verantwoordelijkeOrganisatie\": \"000000000\",\n \"zaaktype\": \"http://localhost:8080/index.php/apps/procest/api/zgw/catalogi/v1/zaaktypen/619dc3e5-52f1-4294-a569-f21d16f44879\",\n \"startdatum\": \"2019-04-09\",\n \"einddatumGepland\": \"2019-04-20\",\n \"uiterlijkeEinddatumAfdoening\": \"2019-04-09\",\n \"publicatiedatum\": \"2019-04-09\",\n \"vertrouwelijkheidaanduiding\": \"openbaar\",\n \"betalingsindicatie\": \"geheel\",\n \"laatsteBetaalDatum\": \"2019-01-01\",\n \"zaakgeometrie\": {\n \"type\": \"Point\",\n \"coordinates\": [\n 53,\n 5\n ]\n },\n \"opschorting\": {\n \"indicatie\": true,\n \"reden\": \"string\"\n },\n \"selectielijstklasse\": \"https://selectielijst.openzaak.nl/api/v1/resultaten/0eb8f19f-d55e-4a15-8b5f-26cdf07482c1\",\n \"archiefstatus\": \"nog_te_archiveren\",\n \"deelzaaktypen\" : [\"http://localhost:8080/index.php/apps/procest/api/zgw/catalogi/v1/zaaktypen/7571bffe-5579-4295-9fac-87a9a6b6c5ac\"]\n}" + }, + "auth": { + "type": "jwt", + "jwt": [ + { + "type": "string", + "value": "{\r\n \"iss\": \"procest-admin\",\r\n \"client_id\": \"procest-admin\",\r\n \"iat\": \"1773145152\",\r\n \"user_id\": \"procest-admin\",\r\n \"user_representation\": \"\"\r\n}", + "key": "payload" + }, + { + "type": "string", + "value": "procest-admin-secret-key-for-testing", + "key": "secret" + }, + { + "type": "string", + "value": "HS256", + "key": "algorithm" + }, + { + "type": "boolean", + "value": false, + "key": "isSecretBase64Encoded" + }, + { + "type": "string", + "value": "header", + "key": "addTokenTo" + }, + { + "type": "string", + "value": "Bearer", + "key": "headerPrefix" + }, + { + "type": "string", + "value": "token", + "key": "queryParamKey" + }, + { + "type": "string", + "value": "{}", + "key": "header" + } + ] + } + }, + "response": { + "id": "2f42957f-a28e-4c80-a737-ab6d4e50c90c", + "status": "Created", + "code": 201, + "header": [ + { + "key": "Date", + "value": "Tue, 10 Mar 2026 12:19:11 GMT" + }, + { + "key": "Server", + "value": "Apache/2.4.66 (Debian)" + }, + { + "key": "X-Content-Type-Options", + "value": "nosniff" + }, + { + "key": "X-Frame-Options", + "value": "SAMEORIGIN" + }, + { + "key": "X-Permitted-Cross-Domain-Policies", + "value": "none" + }, + { + "key": "X-Robots-Tag", + "value": "noindex, nofollow" + }, + { + "key": "Referrer-Policy", + "value": "no-referrer" + }, + { + "key": "X-Powered-By", + "value": "PHP/8.3.30" + }, + { + "key": "Content-Security-Policy", + "value": "default-src 'none';base-uri 'none';manifest-src 'self';frame-ancestors 'none'" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=4cd90125b8a0e0d638369f98304e62ae; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=4cd90125b8a0e0d638369f98304e62ae; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=4cd90125b8a0e0d638369f98304e62ae; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=4cd90125b8a0e0d638369f98304e62ae; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=4cd90125b8a0e0d638369f98304e62ae; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=0044fc9736747e00069a74d5edbdbe8e; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=0044fc9736747e00069a74d5edbdbe8e; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=0044fc9736747e00069a74d5edbdbe8e; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=0044fc9736747e00069a74d5edbdbe8e; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=0044fc9736747e00069a74d5edbdbe8e; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "X-Request-Id", + "value": "u69gf57OaIjfBRgl5fku" + }, + { + "key": "Cache-Control", + "value": "no-cache, no-store, must-revalidate" + }, + { + "key": "Feature-Policy", + "value": "autoplay 'none';camera 'none';fullscreen 'none';geolocation 'none';microphone 'none';payment 'none'" + }, + { + "key": "X-User-Id", + "value": "admin" + }, + { + "key": "Content-Length", + "value": "799" + }, + { + "key": "Keep-Alive", + "value": "timeout=5, max=99" + }, + { + "key": "Connection", + "value": "Keep-Alive" + }, + { + "key": "Content-Type", + "value": "application/json; charset=utf-8" + } + ], + "stream": { + "type": "Buffer", + "data": [ + 123, + 34, + 117, + 114, + 108, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 122, + 97, + 107, + 101, + 110, + 92, + 47, + 118, + 49, + 92, + 47, + 122, + 97, + 107, + 101, + 110, + 92, + 47, + 49, + 101, + 97, + 56, + 53, + 54, + 50, + 48, + 45, + 57, + 49, + 50, + 97, + 45, + 52, + 97, + 54, + 56, + 45, + 98, + 54, + 50, + 101, + 45, + 54, + 53, + 53, + 55, + 48, + 99, + 49, + 100, + 102, + 100, + 102, + 97, + 34, + 44, + 34, + 117, + 117, + 105, + 100, + 34, + 58, + 34, + 49, + 101, + 97, + 56, + 53, + 54, + 50, + 48, + 45, + 57, + 49, + 50, + 97, + 45, + 52, + 97, + 54, + 56, + 45, + 98, + 54, + 50, + 101, + 45, + 54, + 53, + 53, + 55, + 48, + 99, + 49, + 100, + 102, + 100, + 102, + 97, + 34, + 44, + 34, + 105, + 100, + 101, + 110, + 116, + 105, + 102, + 105, + 99, + 97, + 116, + 105, + 101, + 34, + 58, + 34, + 90, + 65, + 65, + 75, + 45, + 84, + 66, + 79, + 78, + 74, + 90, + 45, + 48, + 50, + 68, + 50, + 70, + 53, + 34, + 44, + 34, + 111, + 109, + 115, + 99, + 104, + 114, + 105, + 106, + 118, + 105, + 110, + 103, + 34, + 58, + 34, + 115, + 116, + 114, + 105, + 110, + 103, + 34, + 44, + 34, + 116, + 111, + 101, + 108, + 105, + 99, + 104, + 116, + 105, + 110, + 103, + 34, + 58, + 34, + 115, + 116, + 114, + 105, + 110, + 103, + 34, + 44, + 34, + 122, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 105, + 92, + 47, + 118, + 49, + 92, + 47, + 122, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 110, + 92, + 47, + 54, + 49, + 57, + 100, + 99, + 51, + 101, + 53, + 45, + 53, + 50, + 102, + 49, + 45, + 52, + 50, + 57, + 52, + 45, + 97, + 53, + 54, + 57, + 45, + 102, + 50, + 49, + 100, + 49, + 54, + 102, + 52, + 52, + 56, + 55, + 57, + 34, + 44, + 34, + 114, + 101, + 103, + 105, + 115, + 116, + 114, + 97, + 116, + 105, + 101, + 100, + 97, + 116, + 117, + 109, + 34, + 58, + 34, + 50, + 48, + 50, + 54, + 45, + 48, + 51, + 45, + 49, + 48, + 84, + 49, + 50, + 58, + 49, + 57, + 58, + 49, + 49, + 43, + 48, + 48, + 58, + 48, + 48, + 34, + 44, + 34, + 115, + 116, + 97, + 114, + 116, + 100, + 97, + 116, + 117, + 109, + 34, + 58, + 34, + 50, + 48, + 49, + 57, + 45, + 48, + 52, + 45, + 48, + 57, + 34, + 44, + 34, + 101, + 105, + 110, + 100, + 100, + 97, + 116, + 117, + 109, + 34, + 58, + 110, + 117, + 108, + 108, + 44, + 34, + 101, + 105, + 110, + 100, + 100, + 97, + 116, + 117, + 109, + 71, + 101, + 112, + 108, + 97, + 110, + 100, + 34, + 58, + 34, + 50, + 48, + 49, + 57, + 45, + 48, + 52, + 45, + 50, + 48, + 34, + 44, + 34, + 117, + 105, + 116, + 101, + 114, + 108, + 105, + 106, + 107, + 101, + 69, + 105, + 110, + 100, + 100, + 97, + 116, + 117, + 109, + 65, + 102, + 100, + 111, + 101, + 110, + 105, + 110, + 103, + 34, + 58, + 34, + 50, + 48, + 49, + 57, + 45, + 48, + 52, + 45, + 48, + 57, + 34, + 44, + 34, + 118, + 101, + 114, + 116, + 114, + 111, + 117, + 119, + 101, + 108, + 105, + 106, + 107, + 104, + 101, + 105, + 100, + 97, + 97, + 110, + 100, + 117, + 105, + 100, + 105, + 110, + 103, + 34, + 58, + 34, + 111, + 112, + 101, + 110, + 98, + 97, + 97, + 114, + 34, + 44, + 34, + 118, + 101, + 114, + 97, + 110, + 116, + 119, + 111, + 111, + 114, + 100, + 101, + 108, + 105, + 106, + 107, + 101, + 79, + 114, + 103, + 97, + 110, + 105, + 115, + 97, + 116, + 105, + 101, + 34, + 58, + 34, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 34, + 44, + 34, + 97, + 114, + 99, + 104, + 105, + 101, + 102, + 110, + 111, + 109, + 105, + 110, + 97, + 116, + 105, + 101, + 34, + 58, + 110, + 117, + 108, + 108, + 44, + 34, + 97, + 114, + 99, + 104, + 105, + 101, + 102, + 97, + 99, + 116, + 105, + 101, + 100, + 97, + 116, + 117, + 109, + 34, + 58, + 110, + 117, + 108, + 108, + 44, + 34, + 97, + 114, + 99, + 104, + 105, + 101, + 102, + 115, + 116, + 97, + 116, + 117, + 115, + 34, + 58, + 34, + 110, + 111, + 103, + 95, + 116, + 101, + 95, + 97, + 114, + 99, + 104, + 105, + 118, + 101, + 114, + 101, + 110, + 34, + 44, + 34, + 98, + 101, + 116, + 97, + 108, + 105, + 110, + 103, + 115, + 105, + 110, + 100, + 105, + 99, + 97, + 116, + 105, + 101, + 34, + 58, + 34, + 103, + 101, + 104, + 101, + 101, + 108, + 34, + 44, + 34, + 108, + 97, + 97, + 116, + 115, + 116, + 101, + 66, + 101, + 116, + 97, + 97, + 108, + 100, + 97, + 116, + 117, + 109, + 34, + 58, + 110, + 117, + 108, + 108, + 44, + 34, + 104, + 111, + 111, + 102, + 100, + 122, + 97, + 97, + 107, + 34, + 58, + 110, + 117, + 108, + 108, + 125 + ] + }, + "cookie": [], + "responseTime": 234, + "responseSize": 799 + }, + "id": "18456cf8-496a-41e9-bbc5-013810b4f2e4" + }, + { + "cursor": { + "ref": "d18dd48a-2eb7-4f08-aac0-d5ca231b92ca", + "length": 313, + "cycles": 1, + "position": 52, + "iteration": 0, + "httpRequestId": "28ec52b2-b2be-46fa-9505-885f1c3d5387" + }, + "item": { + "id": "2afbe4ab-ec65-4fb6-9ca4-43ee3da8d3c3", + "name": "(DRC) EnkelvoudigInformatieObject", + "request": { + "url": { + "path": [ + "enkelvoudiginformatieobjecten" + ], + "host": [ + "{{drc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n\t\"bronorganisatie\": \"000000000\",\n\t\"creatiedatum\": \"2019-01-01\",\n\t\"titel\": \"testobject\",\n\t\"auteur\": \"testauteur\",\n \"formaat\": \"application/pdf\",\n \"taal\": \"nld\",\n \"bestandsnaam\": \"test 3.pdf\",\n\t\"inhoud\": \"{{object_inhoud}}\",\n\t\"informatieobjecttype\": \"{{informatieobjecttype_url}}\",\n \"indicatieGebruiksrecht\": false,\n \"status\": \"gearchiveerd\",\n\t\"bestandsomvang\": 6\n}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "82193964-68a4-44ca-a068-ca9209eab828", + "type": "text/javascript", + "packages": {}, + "exec": [ + "pm.environment.set(\"informatieobject_url\", pm.response.json().url);" + ], + "_lastExecutionId": "671ffa77-6184-439f-8c5e-8e9377be9e53" + } + }, + { + "listen": "prerequest", + "script": { + "id": "f566dd3b-a675-46c3-a7e3-a79cae6569cc", + "type": "text/javascript", + "packages": {}, + "exec": [ + "" + ], + "_lastExecutionId": "67457742-2df0-43ec-ab83-93e8dc6e96aa" + } + } + ] + }, + "request": { + "url": { + "protocol": "http", + "port": "8080", + "path": [ + "index.php", + "apps", + "procest", + "api", + "zgw", + "documenten", + "v1", + "enkelvoudiginformatieobjecten" + ], + "host": [ + "localhost" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Authorization", + "value": "Bearer eyJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJwcm9jZXN0LWFkbWluIiwiY2xpZW50X2lkIjoicHJvY2VzdC1hZG1pbiIsImlhdCI6IjE3NzMxNDUxNTIiLCJ1c2VyX2lkIjoicHJvY2VzdC1hZG1pbiIsInVzZXJfcmVwcmVzZW50YXRpb24iOiIifQ.UlUNjpQi-OoH7OiWNX5WBN7HbqwhL3A7I-AjdWOLtfY", + "system": true + }, + { + "key": "User-Agent", + "value": "PostmanRuntime/7.39.1", + "system": true + }, + { + "key": "Accept", + "value": "*/*", + "system": true + }, + { + "key": "Cache-Control", + "value": "no-cache", + "system": true + }, + { + "key": "Postman-Token", + "value": "d6746f8a-a4f3-4170-900e-8653718b63e0", + "system": true + }, + { + "key": "Host", + "value": "localhost:8080", + "system": true + }, + { + "key": "Accept-Encoding", + "value": "gzip, deflate, br", + "system": true + }, + { + "key": "Connection", + "value": "keep-alive", + "system": true + }, + { + "key": "Content-Length", + "value": "466", + "system": true + }, + { + "key": "Cookie", + "value": "ocvp3112b4wg=0044fc9736747e00069a74d5edbdbe8e; oc_sessionPassphrase=LBNdKxRzA0iqoULIruNxDDh2BK3O%2BrCIU8aUmiUcOFvy5Xw1YfjwQNlmBW2IkGwJYtxXh9%2BwDN6vYuGNX07tXzkBtjQJUWTGdzf8AIOUIVxVx5DfyWAQZ7nmYmQv6XSE; nc_sameSiteCookielax=true; nc_sameSiteCookiestrict=true", + "system": true + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n\t\"bronorganisatie\": \"000000000\",\n\t\"creatiedatum\": \"2019-01-01\",\n\t\"titel\": \"testobject\",\n\t\"auteur\": \"testauteur\",\n \"formaat\": \"application/pdf\",\n \"taal\": \"nld\",\n \"bestandsnaam\": \"test 3.pdf\",\n\t\"inhoud\": \"c3RyaW5n\",\n\t\"informatieobjecttype\": \"http://localhost:8080/index.php/apps/procest/api/zgw/catalogi/v1/informatieobjecttypen/6cab7420-6cda-49c9-8313-7464947a74a3\",\n \"indicatieGebruiksrecht\": false,\n \"status\": \"gearchiveerd\",\n\t\"bestandsomvang\": 6\n}" + }, + "auth": { + "type": "jwt", + "jwt": [ + { + "type": "string", + "value": "{\r\n \"iss\": \"procest-admin\",\r\n \"client_id\": \"procest-admin\",\r\n \"iat\": \"1773145152\",\r\n \"user_id\": \"procest-admin\",\r\n \"user_representation\": \"\"\r\n}", + "key": "payload" + }, + { + "type": "string", + "value": "procest-admin-secret-key-for-testing", + "key": "secret" + }, + { + "type": "string", + "value": "HS256", + "key": "algorithm" + }, + { + "type": "boolean", + "value": false, + "key": "isSecretBase64Encoded" + }, + { + "type": "string", + "value": "header", + "key": "addTokenTo" + }, + { + "type": "string", + "value": "Bearer", + "key": "headerPrefix" + }, + { + "type": "string", + "value": "token", + "key": "queryParamKey" + }, + { + "type": "string", + "value": "{}", + "key": "header" + } + ] + } + }, + "response": { + "id": "4980feb9-4a82-4906-881f-d2fc39f13e29", + "status": "Created", + "code": 201, + "header": [ + { + "key": "Date", + "value": "Tue, 10 Mar 2026 12:19:12 GMT" + }, + { + "key": "Server", + "value": "Apache/2.4.66 (Debian)" + }, + { + "key": "X-Content-Type-Options", + "value": "nosniff" + }, + { + "key": "X-Frame-Options", + "value": "SAMEORIGIN" + }, + { + "key": "X-Permitted-Cross-Domain-Policies", + "value": "none" + }, + { + "key": "X-Robots-Tag", + "value": "noindex, nofollow" + }, + { + "key": "Referrer-Policy", + "value": "no-referrer" + }, + { + "key": "X-Powered-By", + "value": "PHP/8.3.30" + }, + { + "key": "Content-Security-Policy", + "value": "default-src 'none';base-uri 'none';manifest-src 'self';frame-ancestors 'none'" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=0044fc9736747e00069a74d5edbdbe8e; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=0044fc9736747e00069a74d5edbdbe8e; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=0044fc9736747e00069a74d5edbdbe8e; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=0044fc9736747e00069a74d5edbdbe8e; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=0044fc9736747e00069a74d5edbdbe8e; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=d38a213ac2c787d0dd9eca2f39775dc4; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=d38a213ac2c787d0dd9eca2f39775dc4; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=d38a213ac2c787d0dd9eca2f39775dc4; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=d38a213ac2c787d0dd9eca2f39775dc4; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=d38a213ac2c787d0dd9eca2f39775dc4; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "X-Request-Id", + "value": "tMLSchUrQWrBIMK0uuaC" + }, + { + "key": "Cache-Control", + "value": "no-cache, no-store, must-revalidate" + }, + { + "key": "Feature-Policy", + "value": "autoplay 'none';camera 'none';fullscreen 'none';geolocation 'none';microphone 'none';payment 'none'" + }, + { + "key": "X-User-Id", + "value": "admin" + }, + { + "key": "Content-Length", + "value": "942" + }, + { + "key": "Keep-Alive", + "value": "timeout=5, max=98" + }, + { + "key": "Connection", + "value": "Keep-Alive" + }, + { + "key": "Content-Type", + "value": "application/json; charset=utf-8" + } + ], + "stream": { + "type": "Buffer", + "data": [ + 123, + 34, + 117, + 114, + 108, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 100, + 111, + 99, + 117, + 109, + 101, + 110, + 116, + 101, + 110, + 92, + 47, + 118, + 49, + 92, + 47, + 101, + 110, + 107, + 101, + 108, + 118, + 111, + 117, + 100, + 105, + 103, + 105, + 110, + 102, + 111, + 114, + 109, + 97, + 116, + 105, + 101, + 111, + 98, + 106, + 101, + 99, + 116, + 101, + 110, + 92, + 47, + 54, + 99, + 97, + 51, + 97, + 99, + 99, + 57, + 45, + 100, + 101, + 98, + 55, + 45, + 52, + 98, + 50, + 52, + 45, + 97, + 48, + 48, + 50, + 45, + 100, + 49, + 56, + 57, + 52, + 51, + 48, + 55, + 97, + 56, + 49, + 55, + 34, + 44, + 34, + 117, + 117, + 105, + 100, + 34, + 58, + 34, + 54, + 99, + 97, + 51, + 97, + 99, + 99, + 57, + 45, + 100, + 101, + 98, + 55, + 45, + 52, + 98, + 50, + 52, + 45, + 97, + 48, + 48, + 50, + 45, + 100, + 49, + 56, + 57, + 52, + 51, + 48, + 55, + 97, + 56, + 49, + 55, + 34, + 44, + 34, + 105, + 100, + 101, + 110, + 116, + 105, + 102, + 105, + 99, + 97, + 116, + 105, + 101, + 34, + 58, + 34, + 68, + 79, + 67, + 85, + 77, + 69, + 78, + 84, + 45, + 84, + 66, + 79, + 78, + 75, + 48, + 45, + 54, + 56, + 70, + 69, + 68, + 51, + 34, + 44, + 34, + 98, + 114, + 111, + 110, + 111, + 114, + 103, + 97, + 110, + 105, + 115, + 97, + 116, + 105, + 101, + 34, + 58, + 34, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 34, + 44, + 34, + 99, + 114, + 101, + 97, + 116, + 105, + 101, + 100, + 97, + 116, + 117, + 109, + 34, + 58, + 34, + 50, + 48, + 49, + 57, + 45, + 48, + 49, + 45, + 48, + 49, + 34, + 44, + 34, + 116, + 105, + 116, + 101, + 108, + 34, + 58, + 34, + 116, + 101, + 115, + 116, + 111, + 98, + 106, + 101, + 99, + 116, + 34, + 44, + 34, + 118, + 101, + 114, + 116, + 114, + 111, + 117, + 119, + 101, + 108, + 105, + 106, + 107, + 104, + 101, + 105, + 100, + 97, + 97, + 110, + 100, + 117, + 105, + 100, + 105, + 110, + 103, + 34, + 58, + 34, + 111, + 112, + 101, + 110, + 98, + 97, + 97, + 114, + 34, + 44, + 34, + 97, + 117, + 116, + 101, + 117, + 114, + 34, + 58, + 34, + 116, + 101, + 115, + 116, + 97, + 117, + 116, + 101, + 117, + 114, + 34, + 44, + 34, + 115, + 116, + 97, + 116, + 117, + 115, + 34, + 58, + 34, + 103, + 101, + 97, + 114, + 99, + 104, + 105, + 118, + 101, + 101, + 114, + 100, + 34, + 44, + 34, + 102, + 111, + 114, + 109, + 97, + 97, + 116, + 34, + 58, + 34, + 97, + 112, + 112, + 108, + 105, + 99, + 97, + 116, + 105, + 111, + 110, + 92, + 47, + 112, + 100, + 102, + 34, + 44, + 34, + 116, + 97, + 97, + 108, + 34, + 58, + 34, + 110, + 108, + 100, + 34, + 44, + 34, + 98, + 101, + 115, + 116, + 97, + 110, + 100, + 115, + 110, + 97, + 97, + 109, + 34, + 58, + 34, + 116, + 101, + 115, + 116, + 32, + 51, + 46, + 112, + 100, + 102, + 34, + 44, + 34, + 98, + 101, + 115, + 116, + 97, + 110, + 100, + 115, + 111, + 109, + 118, + 97, + 110, + 103, + 34, + 58, + 54, + 44, + 34, + 105, + 110, + 104, + 111, + 117, + 100, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 100, + 111, + 99, + 117, + 109, + 101, + 110, + 116, + 101, + 110, + 92, + 47, + 118, + 49, + 92, + 47, + 101, + 110, + 107, + 101, + 108, + 118, + 111, + 117, + 100, + 105, + 103, + 105, + 110, + 102, + 111, + 114, + 109, + 97, + 116, + 105, + 101, + 111, + 98, + 106, + 101, + 99, + 116, + 101, + 110, + 92, + 47, + 54, + 99, + 97, + 51, + 97, + 99, + 99, + 57, + 45, + 100, + 101, + 98, + 55, + 45, + 52, + 98, + 50, + 52, + 45, + 97, + 48, + 48, + 50, + 45, + 100, + 49, + 56, + 57, + 52, + 51, + 48, + 55, + 97, + 56, + 49, + 55, + 92, + 47, + 100, + 111, + 119, + 110, + 108, + 111, + 97, + 100, + 34, + 44, + 34, + 108, + 105, + 110, + 107, + 34, + 58, + 34, + 34, + 44, + 34, + 98, + 101, + 115, + 99, + 104, + 114, + 105, + 106, + 118, + 105, + 110, + 103, + 34, + 58, + 34, + 34, + 44, + 34, + 105, + 110, + 102, + 111, + 114, + 109, + 97, + 116, + 105, + 101, + 111, + 98, + 106, + 101, + 99, + 116, + 116, + 121, + 112, + 101, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 105, + 92, + 47, + 118, + 49, + 92, + 47, + 105, + 110, + 102, + 111, + 114, + 109, + 97, + 116, + 105, + 101, + 111, + 98, + 106, + 101, + 99, + 116, + 116, + 121, + 112, + 101, + 110, + 92, + 47, + 54, + 99, + 97, + 98, + 55, + 52, + 50, + 48, + 45, + 54, + 99, + 100, + 97, + 45, + 52, + 57, + 99, + 57, + 45, + 56, + 51, + 49, + 51, + 45, + 55, + 52, + 54, + 52, + 57, + 52, + 55, + 97, + 55, + 52, + 97, + 51, + 34, + 44, + 34, + 108, + 111, + 99, + 107, + 101, + 100, + 34, + 58, + 102, + 97, + 108, + 115, + 101, + 44, + 34, + 114, + 101, + 103, + 105, + 115, + 116, + 114, + 97, + 116, + 105, + 101, + 100, + 97, + 116, + 117, + 109, + 34, + 58, + 34, + 50, + 48, + 50, + 54, + 45, + 48, + 51, + 45, + 49, + 48, + 84, + 49, + 50, + 58, + 49, + 57, + 58, + 49, + 50, + 43, + 48, + 48, + 58, + 48, + 48, + 34, + 44, + 34, + 105, + 110, + 100, + 105, + 99, + 97, + 116, + 105, + 101, + 71, + 101, + 98, + 114, + 117, + 105, + 107, + 115, + 114, + 101, + 99, + 104, + 116, + 34, + 58, + 110, + 117, + 108, + 108, + 125 + ] + }, + "cookie": [], + "responseTime": 453, + "responseSize": 942 + }, + "id": "2afbe4ab-ec65-4fb6-9ca4-43ee3da8d3c3" + }, + { + "cursor": { + "ref": "389b9898-2a17-407b-91f3-d162495793e0", + "length": 313, + "cycles": 1, + "position": 53, + "iteration": 0, + "httpRequestId": "a6777520-e33a-4c13-81fa-3e419c0b5c3a" + }, + "item": { + "id": "3a543503-abd2-4733-ac22-80df26bcd7fd", + "name": "Create ZaakInformatieObject", + "request": { + "url": { + "path": [ + "zaakinformatieobjecten" + ], + "host": [ + "{{zrc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\r\n \"informatieobject\": \"{{informatieobject_url}}\",\r\n \"zaak\": \"{{zaak_url}}\",\r\n \"registratiedatum\": \"1900-01-01\"\r\n}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "b2a314ab-aa9d-4df9-a93c-d9647d8823da", + "type": "text/javascript", + "packages": {}, + "exec": [ + "if(pm.response.code == 201) {", + " pm.environment.set(\"created_zaakinformatieobject_url\", pm.response.json().url);", + "}" + ], + "_lastExecutionId": "6f4f23f2-dec2-4ec7-b7ae-435f1ab48ac1" + } + } + ] + }, + "request": { + "url": { + "protocol": "http", + "port": "8080", + "path": [ + "index.php", + "apps", + "procest", + "api", + "zgw", + "zaken", + "v1", + "zaakinformatieobjecten" + ], + "host": [ + "localhost" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Authorization", + "value": "Bearer eyJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJwcm9jZXN0LWFkbWluIiwiY2xpZW50X2lkIjoicHJvY2VzdC1hZG1pbiIsImlhdCI6IjE3NzMxNDUxNTMiLCJ1c2VyX2lkIjoicHJvY2VzdC1hZG1pbiIsInVzZXJfcmVwcmVzZW50YXRpb24iOiIifQ.cV5dlVP17SDqDeKBoyU4l_hA7OBJKtZLH0T0QACWLvI", + "system": true + }, + { + "key": "User-Agent", + "value": "PostmanRuntime/7.39.1", + "system": true + }, + { + "key": "Accept", + "value": "*/*", + "system": true + }, + { + "key": "Cache-Control", + "value": "no-cache", + "system": true + }, + { + "key": "Postman-Token", + "value": "bb43a2cd-f795-44f8-b2f6-0a01445be284", + "system": true + }, + { + "key": "Host", + "value": "localhost:8080", + "system": true + }, + { + "key": "Accept-Encoding", + "value": "gzip, deflate, br", + "system": true + }, + { + "key": "Connection", + "value": "keep-alive", + "system": true + }, + { + "key": "Content-Length", + "value": "325", + "system": true + }, + { + "key": "Cookie", + "value": "ocvp3112b4wg=d38a213ac2c787d0dd9eca2f39775dc4; oc_sessionPassphrase=LBNdKxRzA0iqoULIruNxDDh2BK3O%2BrCIU8aUmiUcOFvy5Xw1YfjwQNlmBW2IkGwJYtxXh9%2BwDN6vYuGNX07tXzkBtjQJUWTGdzf8AIOUIVxVx5DfyWAQZ7nmYmQv6XSE; nc_sameSiteCookielax=true; nc_sameSiteCookiestrict=true", + "system": true + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\r\n \"informatieobject\": \"http://localhost:8080/index.php/apps/procest/api/zgw/documenten/v1/enkelvoudiginformatieobjecten/6ca3acc9-deb7-4b24-a002-d1894307a817\",\r\n \"zaak\": \"http://localhost:8080/index.php/apps/procest/api/zgw/zaken/v1/zaken/1ea85620-912a-4a68-b62e-65570c1dfdfa\",\r\n \"registratiedatum\": \"1900-01-01\"\r\n}" + }, + "auth": { + "type": "jwt", + "jwt": [ + { + "type": "string", + "value": "{\r\n \"iss\": \"procest-admin\",\r\n \"client_id\": \"procest-admin\",\r\n \"iat\": \"1773145153\",\r\n \"user_id\": \"procest-admin\",\r\n \"user_representation\": \"\"\r\n}", + "key": "payload" + }, + { + "type": "string", + "value": "procest-admin-secret-key-for-testing", + "key": "secret" + }, + { + "type": "string", + "value": "HS256", + "key": "algorithm" + }, + { + "type": "boolean", + "value": false, + "key": "isSecretBase64Encoded" + }, + { + "type": "string", + "value": "header", + "key": "addTokenTo" + }, + { + "type": "string", + "value": "Bearer", + "key": "headerPrefix" + }, + { + "type": "string", + "value": "token", + "key": "queryParamKey" + }, + { + "type": "string", + "value": "{}", + "key": "header" + } + ] + } + }, + "response": { + "id": "c28efcd1-6d64-49b9-b491-621db8d12a85", + "status": "Created", + "code": 201, + "header": [ + { + "key": "Date", + "value": "Tue, 10 Mar 2026 12:19:12 GMT" + }, + { + "key": "Server", + "value": "Apache/2.4.66 (Debian)" + }, + { + "key": "X-Content-Type-Options", + "value": "nosniff" + }, + { + "key": "X-Frame-Options", + "value": "SAMEORIGIN" + }, + { + "key": "X-Permitted-Cross-Domain-Policies", + "value": "none" + }, + { + "key": "X-Robots-Tag", + "value": "noindex, nofollow" + }, + { + "key": "Referrer-Policy", + "value": "no-referrer" + }, + { + "key": "X-Powered-By", + "value": "PHP/8.3.30" + }, + { + "key": "Content-Security-Policy", + "value": "default-src 'none';base-uri 'none';manifest-src 'self';frame-ancestors 'none'" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=d38a213ac2c787d0dd9eca2f39775dc4; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=d38a213ac2c787d0dd9eca2f39775dc4; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=d38a213ac2c787d0dd9eca2f39775dc4; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=d38a213ac2c787d0dd9eca2f39775dc4; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=d38a213ac2c787d0dd9eca2f39775dc4; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=e807ad78ec9fe23c05e60326732736af; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=e807ad78ec9fe23c05e60326732736af; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=e807ad78ec9fe23c05e60326732736af; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=e807ad78ec9fe23c05e60326732736af; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=e807ad78ec9fe23c05e60326732736af; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "X-Request-Id", + "value": "rvfgBqtFoJeMY9j6F1GO" + }, + { + "key": "Cache-Control", + "value": "no-cache, no-store, must-revalidate" + }, + { + "key": "Feature-Policy", + "value": "autoplay 'none';camera 'none';fullscreen 'none';geolocation 'none';microphone 'none';payment 'none'" + }, + { + "key": "X-User-Id", + "value": "admin" + }, + { + "key": "Content-Length", + "value": "591" + }, + { + "key": "Keep-Alive", + "value": "timeout=5, max=97" + }, + { + "key": "Connection", + "value": "Keep-Alive" + }, + { + "key": "Content-Type", + "value": "application/json; charset=utf-8" + } + ], + "stream": { + "type": "Buffer", + "data": [ + 123, + 34, + 117, + 114, + 108, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 122, + 97, + 107, + 101, + 110, + 92, + 47, + 118, + 49, + 92, + 47, + 122, + 97, + 97, + 107, + 105, + 110, + 102, + 111, + 114, + 109, + 97, + 116, + 105, + 101, + 111, + 98, + 106, + 101, + 99, + 116, + 101, + 110, + 92, + 47, + 99, + 57, + 99, + 51, + 101, + 55, + 98, + 54, + 45, + 100, + 48, + 51, + 50, + 45, + 52, + 101, + 97, + 55, + 45, + 97, + 52, + 50, + 98, + 45, + 49, + 50, + 50, + 48, + 57, + 53, + 52, + 99, + 51, + 52, + 49, + 99, + 34, + 44, + 34, + 117, + 117, + 105, + 100, + 34, + 58, + 34, + 99, + 57, + 99, + 51, + 101, + 55, + 98, + 54, + 45, + 100, + 48, + 51, + 50, + 45, + 52, + 101, + 97, + 55, + 45, + 97, + 52, + 50, + 98, + 45, + 49, + 50, + 50, + 48, + 57, + 53, + 52, + 99, + 51, + 52, + 49, + 99, + 34, + 44, + 34, + 122, + 97, + 97, + 107, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 122, + 97, + 107, + 101, + 110, + 92, + 47, + 118, + 49, + 92, + 47, + 122, + 97, + 107, + 101, + 110, + 92, + 47, + 49, + 101, + 97, + 56, + 53, + 54, + 50, + 48, + 45, + 57, + 49, + 50, + 97, + 45, + 52, + 97, + 54, + 56, + 45, + 98, + 54, + 50, + 101, + 45, + 54, + 53, + 53, + 55, + 48, + 99, + 49, + 100, + 102, + 100, + 102, + 97, + 34, + 44, + 34, + 105, + 110, + 102, + 111, + 114, + 109, + 97, + 116, + 105, + 101, + 111, + 98, + 106, + 101, + 99, + 116, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 100, + 111, + 99, + 117, + 109, + 101, + 110, + 116, + 101, + 110, + 92, + 47, + 118, + 49, + 92, + 47, + 101, + 110, + 107, + 101, + 108, + 118, + 111, + 117, + 100, + 105, + 103, + 105, + 110, + 102, + 111, + 114, + 109, + 97, + 116, + 105, + 101, + 111, + 98, + 106, + 101, + 99, + 116, + 101, + 110, + 92, + 47, + 54, + 99, + 97, + 51, + 97, + 99, + 99, + 57, + 45, + 100, + 101, + 98, + 55, + 45, + 52, + 98, + 50, + 52, + 45, + 97, + 48, + 48, + 50, + 45, + 100, + 49, + 56, + 57, + 52, + 51, + 48, + 55, + 97, + 56, + 49, + 55, + 34, + 44, + 34, + 116, + 105, + 116, + 101, + 108, + 34, + 58, + 34, + 34, + 44, + 34, + 98, + 101, + 115, + 99, + 104, + 114, + 105, + 106, + 118, + 105, + 110, + 103, + 34, + 58, + 34, + 34, + 44, + 34, + 114, + 101, + 103, + 105, + 115, + 116, + 114, + 97, + 116, + 105, + 101, + 100, + 97, + 116, + 117, + 109, + 34, + 58, + 34, + 50, + 48, + 50, + 54, + 45, + 48, + 51, + 45, + 49, + 48, + 34, + 44, + 34, + 97, + 97, + 114, + 100, + 82, + 101, + 108, + 97, + 116, + 105, + 101, + 87, + 101, + 101, + 114, + 103, + 97, + 118, + 101, + 34, + 58, + 34, + 72, + 111, + 111, + 114, + 116, + 32, + 98, + 105, + 106, + 44, + 32, + 111, + 109, + 103, + 101, + 107, + 101, + 101, + 114, + 100, + 58, + 32, + 107, + 101, + 110, + 116, + 34, + 125 + ] + }, + "cookie": [], + "responseTime": 248, + "responseSize": 591 + }, + "id": "3a543503-abd2-4733-ac22-80df26bcd7fd" + }, + { + "cursor": { + "ref": "b6b38bee-1abe-4da5-8075-b564b70d642c", + "length": 313, + "cycles": 1, + "position": 54, + "iteration": 0, + "httpRequestId": "ee539160-325c-4c0e-9045-7b1fc0d4aa2b" + }, + "item": { + "id": "cdcd2576-197c-46da-8144-a92e9af30dc8", + "name": "(zrc-005a) ZaakInformatieObject aanmaken maakt ObjectInformatieObject aan met objectType zaak", + "request": { + "url": { + "path": [ + "objectinformatieobjecten" + ], + "host": [ + "{{drc_url}}" + ], + "query": [ + { + "key": "object", + "value": "{{zaak_url}}" + }, + { + "key": "informatieobject", + "value": "{{informatieobject_url}}" + } + ], + "variable": [] + }, + "method": "GET" + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "f50250fc-8a68-422f-9966-30ccc2ae6094", + "type": "text/javascript", + "exec": [ + "var jsonData = pm.response.json();", + "", + "pm.test(\"ZaakInformatieObject aanmaken maakt een ObjectInformatieObject in DRC\", function() {", + " pm.response.to.have.status(200);", + " pm.expect(jsonData.length).to.be.equal(1);", + "});", + "", + "pm.test(\"ZaakInformatieObject aanmaken maakt een ObjectInformatieObject met objectType zaak\", function() {", + " pm.expect(jsonData[0].objectType).to.be.equal(\"zaak\");", + "});", + "", + "pm.test(\"ZaakInformatieObject aanmaken maakt een ObjectInformatieObject met correcte zaak en informatieobject\", function() {", + " pm.expect(jsonData[0].object).to.be.equal(pm.environment.get(\"zaak_url\"));", + " pm.expect(jsonData[0].informatieobject).to.be.equal(pm.environment.get(\"informatieobject_url\"));", + "});" + ], + "_lastExecutionId": "bc60edb0-3a51-48c1-a089-6c96b70ec225" + } + } + ] + }, + "request": { + "url": { + "protocol": "http", + "port": "8080", + "path": [ + "index.php", + "apps", + "procest", + "api", + "zgw", + "documenten", + "v1", + "objectinformatieobjecten" + ], + "host": [ + "localhost" + ], + "query": [ + { + "key": "object", + "value": "http://localhost:8080/index.php/apps/procest/api/zgw/zaken/v1/zaken/1ea85620-912a-4a68-b62e-65570c1dfdfa" + }, + { + "key": "informatieobject", + "value": "http://localhost:8080/index.php/apps/procest/api/zgw/documenten/v1/enkelvoudiginformatieobjecten/6ca3acc9-deb7-4b24-a002-d1894307a817" + } + ], + "variable": [] + }, + "header": [ + { + "key": "Authorization", + "value": "Bearer eyJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJwcm9jZXN0LWFkbWluIiwiY2xpZW50X2lkIjoicHJvY2VzdC1hZG1pbiIsImlhdCI6IjE3NzMxNDUxNTMiLCJ1c2VyX2lkIjoicHJvY2VzdC1hZG1pbiIsInVzZXJfcmVwcmVzZW50YXRpb24iOiIifQ.cV5dlVP17SDqDeKBoyU4l_hA7OBJKtZLH0T0QACWLvI", + "system": true + }, + { + "key": "User-Agent", + "value": "PostmanRuntime/7.39.1", + "system": true + }, + { + "key": "Accept", + "value": "*/*", + "system": true + }, + { + "key": "Cache-Control", + "value": "no-cache", + "system": true + }, + { + "key": "Postman-Token", + "value": "4fea52d1-93a1-4bd9-9721-68df2fd6da98", + "system": true + }, + { + "key": "Host", + "value": "localhost:8080", + "system": true + }, + { + "key": "Accept-Encoding", + "value": "gzip, deflate, br", + "system": true + }, + { + "key": "Connection", + "value": "keep-alive", + "system": true + }, + { + "key": "Cookie", + "value": "ocvp3112b4wg=e807ad78ec9fe23c05e60326732736af; oc_sessionPassphrase=LBNdKxRzA0iqoULIruNxDDh2BK3O%2BrCIU8aUmiUcOFvy5Xw1YfjwQNlmBW2IkGwJYtxXh9%2BwDN6vYuGNX07tXzkBtjQJUWTGdzf8AIOUIVxVx5DfyWAQZ7nmYmQv6XSE; nc_sameSiteCookielax=true; nc_sameSiteCookiestrict=true", + "system": true + } + ], + "method": "GET", + "auth": { + "type": "jwt", + "jwt": [ + { + "type": "string", + "value": "{\r\n \"iss\": \"procest-admin\",\r\n \"client_id\": \"procest-admin\",\r\n \"iat\": \"1773145153\",\r\n \"user_id\": \"procest-admin\",\r\n \"user_representation\": \"\"\r\n}", + "key": "payload" + }, + { + "type": "string", + "value": "procest-admin-secret-key-for-testing", + "key": "secret" + }, + { + "type": "string", + "value": "HS256", + "key": "algorithm" + }, + { + "type": "boolean", + "value": false, + "key": "isSecretBase64Encoded" + }, + { + "type": "string", + "value": "header", + "key": "addTokenTo" + }, + { + "type": "string", + "value": "Bearer", + "key": "headerPrefix" + }, + { + "type": "string", + "value": "token", + "key": "queryParamKey" + }, + { + "type": "string", + "value": "{}", + "key": "header" + } + ] + } + }, + "response": { + "id": "676bef01-3f40-4feb-83d0-731c824f679c", + "status": "OK", + "code": 200, + "header": [ + { + "key": "Date", + "value": "Tue, 10 Mar 2026 12:19:12 GMT" + }, + { + "key": "Server", + "value": "Apache/2.4.66 (Debian)" + }, + { + "key": "X-Content-Type-Options", + "value": "nosniff" + }, + { + "key": "X-Frame-Options", + "value": "SAMEORIGIN" + }, + { + "key": "X-Permitted-Cross-Domain-Policies", + "value": "none" + }, + { + "key": "X-Robots-Tag", + "value": "noindex, nofollow" + }, + { + "key": "Referrer-Policy", + "value": "no-referrer" + }, + { + "key": "X-Powered-By", + "value": "PHP/8.3.30" + }, + { + "key": "Content-Security-Policy", + "value": "default-src 'none';base-uri 'none';manifest-src 'self';frame-ancestors 'none'" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=e807ad78ec9fe23c05e60326732736af; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=e807ad78ec9fe23c05e60326732736af; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=e807ad78ec9fe23c05e60326732736af; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=e807ad78ec9fe23c05e60326732736af; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=e807ad78ec9fe23c05e60326732736af; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=b5603a99f5c90a19cdec3e7d53acac81; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=b5603a99f5c90a19cdec3e7d53acac81; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=b5603a99f5c90a19cdec3e7d53acac81; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=b5603a99f5c90a19cdec3e7d53acac81; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=b5603a99f5c90a19cdec3e7d53acac81; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "X-Request-Id", + "value": "n148aAA71Z2zCfO0kbHD" + }, + { + "key": "Cache-Control", + "value": "no-cache, no-store, must-revalidate" + }, + { + "key": "Feature-Policy", + "value": "autoplay 'none';camera 'none';fullscreen 'none';geolocation 'none';microphone 'none';payment 'none'" + }, + { + "key": "X-User-Id", + "value": "admin" + }, + { + "key": "Content-Encoding", + "value": "gzip" + }, + { + "key": "Content-Length", + "value": "249" + }, + { + "key": "Keep-Alive", + "value": "timeout=5, max=96" + }, + { + "key": "Connection", + "value": "Keep-Alive" + }, + { + "key": "Content-Type", + "value": "application/json; charset=utf-8" + } + ], + "stream": { + "type": "Buffer", + "data": [ + 91, + 123, + 34, + 117, + 114, + 108, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 100, + 111, + 99, + 117, + 109, + 101, + 110, + 116, + 101, + 110, + 92, + 47, + 118, + 49, + 92, + 47, + 111, + 98, + 106, + 101, + 99, + 116, + 105, + 110, + 102, + 111, + 114, + 109, + 97, + 116, + 105, + 101, + 111, + 98, + 106, + 101, + 99, + 116, + 101, + 110, + 92, + 47, + 100, + 56, + 102, + 52, + 102, + 54, + 102, + 57, + 45, + 49, + 48, + 57, + 101, + 45, + 52, + 54, + 100, + 50, + 45, + 97, + 52, + 48, + 53, + 45, + 57, + 98, + 48, + 55, + 101, + 100, + 102, + 57, + 101, + 99, + 55, + 98, + 34, + 44, + 34, + 117, + 117, + 105, + 100, + 34, + 58, + 34, + 100, + 56, + 102, + 52, + 102, + 54, + 102, + 57, + 45, + 49, + 48, + 57, + 101, + 45, + 52, + 54, + 100, + 50, + 45, + 97, + 52, + 48, + 53, + 45, + 57, + 98, + 48, + 55, + 101, + 100, + 102, + 57, + 101, + 99, + 55, + 98, + 34, + 44, + 34, + 105, + 110, + 102, + 111, + 114, + 109, + 97, + 116, + 105, + 101, + 111, + 98, + 106, + 101, + 99, + 116, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 100, + 111, + 99, + 117, + 109, + 101, + 110, + 116, + 101, + 110, + 92, + 47, + 118, + 49, + 92, + 47, + 101, + 110, + 107, + 101, + 108, + 118, + 111, + 117, + 100, + 105, + 103, + 105, + 110, + 102, + 111, + 114, + 109, + 97, + 116, + 105, + 101, + 111, + 98, + 106, + 101, + 99, + 116, + 101, + 110, + 92, + 47, + 54, + 99, + 97, + 51, + 97, + 99, + 99, + 57, + 45, + 100, + 101, + 98, + 55, + 45, + 52, + 98, + 50, + 52, + 45, + 97, + 48, + 48, + 50, + 45, + 100, + 49, + 56, + 57, + 52, + 51, + 48, + 55, + 97, + 56, + 49, + 55, + 34, + 44, + 34, + 111, + 98, + 106, + 101, + 99, + 116, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 122, + 97, + 107, + 101, + 110, + 92, + 47, + 118, + 49, + 92, + 47, + 122, + 97, + 107, + 101, + 110, + 92, + 47, + 49, + 101, + 97, + 56, + 53, + 54, + 50, + 48, + 45, + 57, + 49, + 50, + 97, + 45, + 52, + 97, + 54, + 56, + 45, + 98, + 54, + 50, + 101, + 45, + 54, + 53, + 53, + 55, + 48, + 99, + 49, + 100, + 102, + 100, + 102, + 97, + 34, + 44, + 34, + 111, + 98, + 106, + 101, + 99, + 116, + 84, + 121, + 112, + 101, + 34, + 58, + 34, + 122, + 97, + 97, + 107, + 34, + 125, + 93 + ] + }, + "cookie": [], + "responseTime": 102, + "responseSize": 510 + }, + "id": "cdcd2576-197c-46da-8144-a92e9af30dc8", + "assertions": [ + { + "assertion": "ZaakInformatieObject aanmaken maakt een ObjectInformatieObject in DRC", + "skipped": false + }, + { + "assertion": "ZaakInformatieObject aanmaken maakt een ObjectInformatieObject met objectType zaak", + "skipped": false + }, + { + "assertion": "ZaakInformatieObject aanmaken maakt een ObjectInformatieObject met correcte zaak en informatieobject", + "skipped": false + } + ] + }, + { + "cursor": { + "ref": "74e1fa99-bd97-4ee8-9dc5-22e2671a580a", + "length": 313, + "cycles": 1, + "position": 55, + "iteration": 0, + "httpRequestId": "e0989b3e-058a-4ac4-82f1-1a6c6d19e7fb" + }, + "item": { + "id": "918db030-f172-43a1-992c-571d88a784cf", + "name": "Delete ZaakInformatieObject", + "request": { + "url": { + "host": [ + "{{created_zaakinformatieobject_url}}" + ], + "query": [], + "variable": [] + }, + "method": "DELETE", + "body": { + "mode": "raw", + "raw": "" + } + }, + "response": [], + "event": [] + }, + "request": { + "url": { + "protocol": "http", + "port": "8080", + "path": [ + "index.php", + "apps", + "procest", + "api", + "zgw", + "zaken", + "v1", + "zaakinformatieobjecten", + "c9c3e7b6-d032-4ea7-a42b-1220954c341c" + ], + "host": [ + "localhost" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Authorization", + "value": "Bearer eyJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJwcm9jZXN0LWFkbWluIiwiY2xpZW50X2lkIjoicHJvY2VzdC1hZG1pbiIsImlhdCI6IjE3NzMxNDUxNTMiLCJ1c2VyX2lkIjoicHJvY2VzdC1hZG1pbiIsInVzZXJfcmVwcmVzZW50YXRpb24iOiIifQ.cV5dlVP17SDqDeKBoyU4l_hA7OBJKtZLH0T0QACWLvI", + "system": true + }, + { + "key": "User-Agent", + "value": "PostmanRuntime/7.39.1", + "system": true + }, + { + "key": "Accept", + "value": "*/*", + "system": true + }, + { + "key": "Cache-Control", + "value": "no-cache", + "system": true + }, + { + "key": "Postman-Token", + "value": "2e190bb6-c5a4-4e97-8e3c-13280a96f28d", + "system": true + }, + { + "key": "Host", + "value": "localhost:8080", + "system": true + }, + { + "key": "Accept-Encoding", + "value": "gzip, deflate, br", + "system": true + }, + { + "key": "Connection", + "value": "keep-alive", + "system": true + }, + { + "key": "Cookie", + "value": "ocvp3112b4wg=b5603a99f5c90a19cdec3e7d53acac81; oc_sessionPassphrase=LBNdKxRzA0iqoULIruNxDDh2BK3O%2BrCIU8aUmiUcOFvy5Xw1YfjwQNlmBW2IkGwJYtxXh9%2BwDN6vYuGNX07tXzkBtjQJUWTGdzf8AIOUIVxVx5DfyWAQZ7nmYmQv6XSE; nc_sameSiteCookielax=true; nc_sameSiteCookiestrict=true", + "system": true + } + ], + "method": "DELETE", + "body": { + "mode": "raw", + "raw": "" + }, + "auth": { + "type": "jwt", + "jwt": [ + { + "type": "string", + "value": "{\r\n \"iss\": \"procest-admin\",\r\n \"client_id\": \"procest-admin\",\r\n \"iat\": \"1773145153\",\r\n \"user_id\": \"procest-admin\",\r\n \"user_representation\": \"\"\r\n}", + "key": "payload" + }, + { + "type": "string", + "value": "procest-admin-secret-key-for-testing", + "key": "secret" + }, + { + "type": "string", + "value": "HS256", + "key": "algorithm" + }, + { + "type": "boolean", + "value": false, + "key": "isSecretBase64Encoded" + }, + { + "type": "string", + "value": "header", + "key": "addTokenTo" + }, + { + "type": "string", + "value": "Bearer", + "key": "headerPrefix" + }, + { + "type": "string", + "value": "token", + "key": "queryParamKey" + }, + { + "type": "string", + "value": "{}", + "key": "header" + } + ] + } + }, + "response": { + "id": "43ebcae0-bc7a-404a-949b-5313eec9fbd4", + "status": "No Content", + "code": 204, + "header": [ + { + "key": "Date", + "value": "Tue, 10 Mar 2026 12:19:13 GMT" + }, + { + "key": "Server", + "value": "Apache/2.4.66 (Debian)" + }, + { + "key": "X-Content-Type-Options", + "value": "nosniff" + }, + { + "key": "X-Frame-Options", + "value": "SAMEORIGIN" + }, + { + "key": "X-Permitted-Cross-Domain-Policies", + "value": "none" + }, + { + "key": "X-Robots-Tag", + "value": "noindex, nofollow" + }, + { + "key": "Referrer-Policy", + "value": "no-referrer" + }, + { + "key": "X-Powered-By", + "value": "PHP/8.3.30" + }, + { + "key": "Content-Security-Policy", + "value": "default-src 'none';base-uri 'none';manifest-src 'self';frame-ancestors 'none'" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=b5603a99f5c90a19cdec3e7d53acac81; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=b5603a99f5c90a19cdec3e7d53acac81; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=b5603a99f5c90a19cdec3e7d53acac81; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=b5603a99f5c90a19cdec3e7d53acac81; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=b5603a99f5c90a19cdec3e7d53acac81; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=a0abbce6728c177a77a03bdf4a47b469; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=a0abbce6728c177a77a03bdf4a47b469; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=a0abbce6728c177a77a03bdf4a47b469; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=a0abbce6728c177a77a03bdf4a47b469; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=a0abbce6728c177a77a03bdf4a47b469; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "X-Request-Id", + "value": "7pHNYVLEl7M4876Cgvoy" + }, + { + "key": "Cache-Control", + "value": "no-cache, no-store, must-revalidate" + }, + { + "key": "Feature-Policy", + "value": "autoplay 'none';camera 'none';fullscreen 'none';geolocation 'none';microphone 'none';payment 'none'" + }, + { + "key": "X-User-Id", + "value": "admin" + }, + { + "key": "Keep-Alive", + "value": "timeout=5, max=95" + }, + { + "key": "Connection", + "value": "Keep-Alive" + } + ], + "stream": { + "type": "Buffer", + "data": [] + }, + "cookie": [], + "responseTime": 869, + "responseSize": 0 + }, + "id": "918db030-f172-43a1-992c-571d88a784cf" + }, + { + "cursor": { + "ref": "558bbcc2-b8e5-4051-bb96-b6c15236c65a", + "length": 313, + "cycles": 1, + "position": 56, + "iteration": 0, + "httpRequestId": "ee79e97b-a31a-4037-93a2-2aeb2dc65ea2" + }, + "item": { + "id": "8aaeb59d-5afc-43b9-9914-0f9062873b24", + "name": "(zrc-005b) ZaakInformatieObject verwijderen verwijdert ObjectInformatieObject uit DRC", + "request": { + "url": { + "path": [ + "objectinformatieobjecten" + ], + "host": [ + "{{drc_url}}" + ], + "query": [ + { + "key": "object", + "value": "{{zaak_url}}" + }, + { + "key": "informatieobject", + "value": "{{informatieobject_url}}" + } + ], + "variable": [] + }, + "method": "GET" + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "fe2b4685-13f3-43cc-a7e6-4213bc802176", + "type": "text/javascript", + "exec": [ + "pm.test(\"BesluitInformatieObject verwijderen verwijdert ObjectInformatieObject in DRC\", function() {", + " pm.response.to.have.status(200);", + " pm.expect(pm.response.json().length).to.be.equal(0);", + "});" + ], + "_lastExecutionId": "80df4db2-478b-4ba4-be0a-97d7e03d9b9f" + } + } + ] + }, + "request": { + "url": { + "protocol": "http", + "port": "8080", + "path": [ + "index.php", + "apps", + "procest", + "api", + "zgw", + "documenten", + "v1", + "objectinformatieobjecten" + ], + "host": [ + "localhost" + ], + "query": [ + { + "key": "object", + "value": "http://localhost:8080/index.php/apps/procest/api/zgw/zaken/v1/zaken/1ea85620-912a-4a68-b62e-65570c1dfdfa" + }, + { + "key": "informatieobject", + "value": "http://localhost:8080/index.php/apps/procest/api/zgw/documenten/v1/enkelvoudiginformatieobjecten/6ca3acc9-deb7-4b24-a002-d1894307a817" + } + ], + "variable": [] + }, + "header": [ + { + "key": "Authorization", + "value": "Bearer eyJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJwcm9jZXN0LWFkbWluIiwiY2xpZW50X2lkIjoicHJvY2VzdC1hZG1pbiIsImlhdCI6IjE3NzMxNDUxNTQiLCJ1c2VyX2lkIjoicHJvY2VzdC1hZG1pbiIsInVzZXJfcmVwcmVzZW50YXRpb24iOiIifQ.IcOIoOtCj7e2uHTt040vUTp-hoBHtPKa9qF18l-KY18", + "system": true + }, + { + "key": "User-Agent", + "value": "PostmanRuntime/7.39.1", + "system": true + }, + { + "key": "Accept", + "value": "*/*", + "system": true + }, + { + "key": "Cache-Control", + "value": "no-cache", + "system": true + }, + { + "key": "Postman-Token", + "value": "be9ba475-47cb-4eec-88ec-8dc4589ff0bb", + "system": true + }, + { + "key": "Host", + "value": "localhost:8080", + "system": true + }, + { + "key": "Accept-Encoding", + "value": "gzip, deflate, br", + "system": true + }, + { + "key": "Connection", + "value": "keep-alive", + "system": true + }, + { + "key": "Cookie", + "value": "ocvp3112b4wg=a0abbce6728c177a77a03bdf4a47b469; oc_sessionPassphrase=LBNdKxRzA0iqoULIruNxDDh2BK3O%2BrCIU8aUmiUcOFvy5Xw1YfjwQNlmBW2IkGwJYtxXh9%2BwDN6vYuGNX07tXzkBtjQJUWTGdzf8AIOUIVxVx5DfyWAQZ7nmYmQv6XSE; nc_sameSiteCookielax=true; nc_sameSiteCookiestrict=true", + "system": true + } + ], + "method": "GET", + "auth": { + "type": "jwt", + "jwt": [ + { + "type": "string", + "value": "{\r\n \"iss\": \"procest-admin\",\r\n \"client_id\": \"procest-admin\",\r\n \"iat\": \"1773145154\",\r\n \"user_id\": \"procest-admin\",\r\n \"user_representation\": \"\"\r\n}", + "key": "payload" + }, + { + "type": "string", + "value": "procest-admin-secret-key-for-testing", + "key": "secret" + }, + { + "type": "string", + "value": "HS256", + "key": "algorithm" + }, + { + "type": "boolean", + "value": false, + "key": "isSecretBase64Encoded" + }, + { + "type": "string", + "value": "header", + "key": "addTokenTo" + }, + { + "type": "string", + "value": "Bearer", + "key": "headerPrefix" + }, + { + "type": "string", + "value": "token", + "key": "queryParamKey" + }, + { + "type": "string", + "value": "{}", + "key": "header" + } + ] + } + }, + "response": { + "id": "82a41aec-b27c-4f05-b67d-8111fa71841e", + "status": "OK", + "code": 200, + "header": [ + { + "key": "Date", + "value": "Tue, 10 Mar 2026 12:19:13 GMT" + }, + { + "key": "Server", + "value": "Apache/2.4.66 (Debian)" + }, + { + "key": "X-Content-Type-Options", + "value": "nosniff" + }, + { + "key": "X-Frame-Options", + "value": "SAMEORIGIN" + }, + { + "key": "X-Permitted-Cross-Domain-Policies", + "value": "none" + }, + { + "key": "X-Robots-Tag", + "value": "noindex, nofollow" + }, + { + "key": "Referrer-Policy", + "value": "no-referrer" + }, + { + "key": "X-Powered-By", + "value": "PHP/8.3.30" + }, + { + "key": "Content-Security-Policy", + "value": "default-src 'none';base-uri 'none';manifest-src 'self';frame-ancestors 'none'" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=a0abbce6728c177a77a03bdf4a47b469; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=a0abbce6728c177a77a03bdf4a47b469; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=a0abbce6728c177a77a03bdf4a47b469; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=a0abbce6728c177a77a03bdf4a47b469; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=a0abbce6728c177a77a03bdf4a47b469; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=5311e0fa27f47be1792590702a60145e; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=5311e0fa27f47be1792590702a60145e; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=5311e0fa27f47be1792590702a60145e; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=5311e0fa27f47be1792590702a60145e; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=5311e0fa27f47be1792590702a60145e; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "X-Request-Id", + "value": "4kqDU3cUG6qG6EQ5z5vf" + }, + { + "key": "Cache-Control", + "value": "no-cache, no-store, must-revalidate" + }, + { + "key": "Feature-Policy", + "value": "autoplay 'none';camera 'none';fullscreen 'none';geolocation 'none';microphone 'none';payment 'none'" + }, + { + "key": "X-User-Id", + "value": "admin" + }, + { + "key": "Content-Encoding", + "value": "gzip" + }, + { + "key": "Content-Length", + "value": "22" + }, + { + "key": "Keep-Alive", + "value": "timeout=5, max=94" + }, + { + "key": "Connection", + "value": "Keep-Alive" + }, + { + "key": "Content-Type", + "value": "application/json; charset=utf-8" + } + ], + "stream": { + "type": "Buffer", + "data": [ + 91, + 93 + ] + }, + "cookie": [], + "responseTime": 99, + "responseSize": 2 + }, + "id": "8aaeb59d-5afc-43b9-9914-0f9062873b24", + "assertions": [ + { + "assertion": "BesluitInformatieObject verwijderen verwijdert ObjectInformatieObject in DRC", + "skipped": false + } + ] + }, + { + "cursor": { + "ref": "f00fe264-b90c-4c9c-a8c8-2494744093f2", + "length": 313, + "cycles": 1, + "position": 57, + "iteration": 0, + "httpRequestId": "795b0cae-3ecc-46a1-9449-4c603e20c135" + }, + "item": { + "id": "4f2b999c-7637-4d53-a9ec-c564d842a392", + "name": "set full token", + "request": { + "url": { + "path": [ + "catalogussen" + ], + "host": [ + "{{ztc_url}}" + ], + "query": [], + "variable": [] + }, + "method": "GET" + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "b17d98c8-d0bf-43d6-8d4d-8ddf1a07e6eb", + "type": "text/javascript", + "packages": {}, + "exec": [ + "pm.environment.set(\"jwt_token\", pm.environment.get(\"jwt_full\"));", + " var origId = pm.environment.get(\"_original_client_id\");", + " var origSecret = pm.environment.get(\"_original_secret\");", + " if (origId) { pm.environment.set(\"client_id\", origId); }", + " if (origSecret) { pm.environment.set(\"secret\", origSecret); }", + " pm.environment.set(\"secret\", pm.environment.get(\"secret\") || \"procest-admin-secret-key-for-testing\");" + ], + "_lastExecutionId": "88db0f06-83ad-4e78-a86b-366212f1fb53" + } + } + ] + }, + "request": { + "url": { + "protocol": "http", + "port": "8080", + "path": [ + "index.php", + "apps", + "procest", + "api", + "zgw", + "catalogi", + "v1", + "catalogussen" + ], + "host": [ + "localhost" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Authorization", + "value": "Bearer eyJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJwcm9jZXN0LWFkbWluIiwiY2xpZW50X2lkIjoicHJvY2VzdC1hZG1pbiIsImlhdCI6IjE3NzMxNDUxNTQiLCJ1c2VyX2lkIjoicHJvY2VzdC1hZG1pbiIsInVzZXJfcmVwcmVzZW50YXRpb24iOiIifQ.IcOIoOtCj7e2uHTt040vUTp-hoBHtPKa9qF18l-KY18", + "system": true + }, + { + "key": "User-Agent", + "value": "PostmanRuntime/7.39.1", + "system": true + }, + { + "key": "Accept", + "value": "*/*", + "system": true + }, + { + "key": "Cache-Control", + "value": "no-cache", + "system": true + }, + { + "key": "Postman-Token", + "value": "82dae09e-3dcb-405f-908d-10d381976d1d", + "system": true + }, + { + "key": "Host", + "value": "localhost:8080", + "system": true + }, + { + "key": "Accept-Encoding", + "value": "gzip, deflate, br", + "system": true + }, + { + "key": "Connection", + "value": "keep-alive", + "system": true + }, + { + "key": "Cookie", + "value": "ocvp3112b4wg=5311e0fa27f47be1792590702a60145e; oc_sessionPassphrase=LBNdKxRzA0iqoULIruNxDDh2BK3O%2BrCIU8aUmiUcOFvy5Xw1YfjwQNlmBW2IkGwJYtxXh9%2BwDN6vYuGNX07tXzkBtjQJUWTGdzf8AIOUIVxVx5DfyWAQZ7nmYmQv6XSE; nc_sameSiteCookielax=true; nc_sameSiteCookiestrict=true", + "system": true + } + ], + "method": "GET", + "auth": { + "type": "jwt", + "jwt": [ + { + "type": "string", + "value": "{\r\n \"iss\": \"procest-admin\",\r\n \"client_id\": \"procest-admin\",\r\n \"iat\": \"1773145154\",\r\n \"user_id\": \"procest-admin\",\r\n \"user_representation\": \"\"\r\n}", + "key": "payload" + }, + { + "type": "string", + "value": "procest-admin-secret-key-for-testing", + "key": "secret" + }, + { + "type": "string", + "value": "HS256", + "key": "algorithm" + }, + { + "type": "boolean", + "value": false, + "key": "isSecretBase64Encoded" + }, + { + "type": "string", + "value": "header", + "key": "addTokenTo" + }, + { + "type": "string", + "value": "Bearer", + "key": "headerPrefix" + }, + { + "type": "string", + "value": "token", + "key": "queryParamKey" + }, + { + "type": "string", + "value": "{}", + "key": "header" + } + ] + } + }, + "response": { + "id": "190a4791-cb0f-4545-9e31-f3c6862e6ba5", + "status": "OK", + "code": 200, + "header": [ + { + "key": "Date", + "value": "Tue, 10 Mar 2026 12:19:14 GMT" + }, + { + "key": "Server", + "value": "Apache/2.4.66 (Debian)" + }, + { + "key": "X-Content-Type-Options", + "value": "nosniff" + }, + { + "key": "X-Frame-Options", + "value": "SAMEORIGIN" + }, + { + "key": "X-Permitted-Cross-Domain-Policies", + "value": "none" + }, + { + "key": "X-Robots-Tag", + "value": "noindex, nofollow" + }, + { + "key": "Referrer-Policy", + "value": "no-referrer" + }, + { + "key": "X-Powered-By", + "value": "PHP/8.3.30" + }, + { + "key": "Content-Security-Policy", + "value": "default-src 'none';base-uri 'none';manifest-src 'self';frame-ancestors 'none'" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=5311e0fa27f47be1792590702a60145e; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=5311e0fa27f47be1792590702a60145e; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=5311e0fa27f47be1792590702a60145e; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=5311e0fa27f47be1792590702a60145e; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=5311e0fa27f47be1792590702a60145e; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=53a3bd8a4de08f3e0648d33dc7018122; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=53a3bd8a4de08f3e0648d33dc7018122; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=53a3bd8a4de08f3e0648d33dc7018122; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "X-Request-Id", + "value": "I7gcjO6WSnOsK5KzspSs" + }, + { + "key": "Cache-Control", + "value": "no-cache, no-store, must-revalidate" + }, + { + "key": "Feature-Policy", + "value": "autoplay 'none';camera 'none';fullscreen 'none';geolocation 'none';microphone 'none';payment 'none'" + }, + { + "key": "X-User-Id", + "value": "admin" + }, + { + "key": "Content-Encoding", + "value": "gzip" + }, + { + "key": "Content-Length", + "value": "919" + }, + { + "key": "Keep-Alive", + "value": "timeout=5, max=93" + }, + { + "key": "Connection", + "value": "Keep-Alive" + }, + { + "key": "Content-Type", + "value": "application/json; charset=utf-8" + } + ], + "stream": { + "type": "Buffer", + "data": [ + 123, + 34, + 99, + 111, + 117, + 110, + 116, + 34, + 58, + 50, + 49, + 50, + 44, + 34, + 110, + 101, + 120, + 116, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 105, + 92, + 47, + 118, + 49, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 117, + 115, + 115, + 101, + 110, + 63, + 112, + 97, + 103, + 101, + 61, + 50, + 34, + 44, + 34, + 112, + 114, + 101, + 118, + 105, + 111, + 117, + 115, + 34, + 58, + 110, + 117, + 108, + 108, + 44, + 34, + 114, + 101, + 115, + 117, + 108, + 116, + 115, + 34, + 58, + 91, + 123, + 34, + 117, + 114, + 108, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 105, + 92, + 47, + 118, + 49, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 117, + 115, + 115, + 101, + 110, + 92, + 47, + 100, + 51, + 100, + 101, + 101, + 56, + 101, + 98, + 45, + 56, + 100, + 50, + 56, + 45, + 52, + 50, + 50, + 101, + 45, + 98, + 48, + 97, + 102, + 45, + 97, + 57, + 57, + 57, + 101, + 100, + 57, + 55, + 50, + 50, + 51, + 102, + 34, + 44, + 34, + 117, + 117, + 105, + 100, + 34, + 58, + 34, + 100, + 51, + 100, + 101, + 101, + 56, + 101, + 98, + 45, + 56, + 100, + 50, + 56, + 45, + 52, + 50, + 50, + 101, + 45, + 98, + 48, + 97, + 102, + 45, + 97, + 57, + 57, + 57, + 101, + 100, + 57, + 55, + 50, + 50, + 51, + 102, + 34, + 44, + 34, + 100, + 111, + 109, + 101, + 105, + 110, + 34, + 58, + 34, + 65, + 65, + 66, + 34, + 44, + 34, + 114, + 115, + 105, + 110, + 34, + 58, + 34, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 34, + 44, + 34, + 99, + 111, + 110, + 116, + 97, + 99, + 116, + 112, + 101, + 114, + 115, + 111, + 111, + 110, + 66, + 101, + 104, + 101, + 101, + 114, + 78, + 97, + 97, + 109, + 34, + 58, + 34, + 84, + 101, + 115, + 116, + 32, + 80, + 101, + 114, + 115, + 111, + 111, + 110, + 34, + 44, + 34, + 99, + 111, + 110, + 116, + 97, + 99, + 116, + 112, + 101, + 114, + 115, + 111, + 111, + 110, + 66, + 101, + 104, + 101, + 101, + 114, + 84, + 101, + 108, + 101, + 102, + 111, + 111, + 110, + 110, + 117, + 109, + 109, + 101, + 114, + 34, + 58, + 34, + 34, + 44, + 34, + 99, + 111, + 110, + 116, + 97, + 99, + 116, + 112, + 101, + 114, + 115, + 111, + 111, + 110, + 66, + 101, + 104, + 101, + 101, + 114, + 69, + 109, + 97, + 105, + 108, + 97, + 100, + 114, + 101, + 115, + 34, + 58, + 34, + 34, + 44, + 34, + 122, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 98, + 101, + 115, + 108, + 117, + 105, + 116, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 105, + 110, + 102, + 111, + 114, + 109, + 97, + 116, + 105, + 101, + 111, + 98, + 106, + 101, + 99, + 116, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 125, + 44, + 123, + 34, + 117, + 114, + 108, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 105, + 92, + 47, + 118, + 49, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 117, + 115, + 115, + 101, + 110, + 92, + 47, + 57, + 51, + 51, + 52, + 102, + 49, + 49, + 48, + 45, + 98, + 97, + 48, + 98, + 45, + 52, + 50, + 49, + 55, + 45, + 56, + 57, + 48, + 51, + 45, + 98, + 97, + 55, + 49, + 52, + 48, + 55, + 102, + 48, + 97, + 50, + 50, + 34, + 44, + 34, + 117, + 117, + 105, + 100, + 34, + 58, + 34, + 57, + 51, + 51, + 52, + 102, + 49, + 49, + 48, + 45, + 98, + 97, + 48, + 98, + 45, + 52, + 50, + 49, + 55, + 45, + 56, + 57, + 48, + 51, + 45, + 98, + 97, + 55, + 49, + 52, + 48, + 55, + 102, + 48, + 97, + 50, + 50, + 34, + 44, + 34, + 100, + 111, + 109, + 101, + 105, + 110, + 34, + 58, + 34, + 90, + 71, + 87, + 84, + 34, + 44, + 34, + 114, + 115, + 105, + 110, + 34, + 58, + 34, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 34, + 44, + 34, + 99, + 111, + 110, + 116, + 97, + 99, + 116, + 112, + 101, + 114, + 115, + 111, + 111, + 110, + 66, + 101, + 104, + 101, + 101, + 114, + 78, + 97, + 97, + 109, + 34, + 58, + 34, + 84, + 101, + 115, + 116, + 32, + 80, + 101, + 114, + 115, + 111, + 111, + 110, + 34, + 44, + 34, + 99, + 111, + 110, + 116, + 97, + 99, + 116, + 112, + 101, + 114, + 115, + 111, + 111, + 110, + 66, + 101, + 104, + 101, + 101, + 114, + 84, + 101, + 108, + 101, + 102, + 111, + 111, + 110, + 110, + 117, + 109, + 109, + 101, + 114, + 34, + 58, + 34, + 34, + 44, + 34, + 99, + 111, + 110, + 116, + 97, + 99, + 116, + 112, + 101, + 114, + 115, + 111, + 111, + 110, + 66, + 101, + 104, + 101, + 101, + 114, + 69, + 109, + 97, + 105, + 108, + 97, + 100, + 114, + 101, + 115, + 34, + 58, + 34, + 34, + 44, + 34, + 122, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 98, + 101, + 115, + 108, + 117, + 105, + 116, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 105, + 110, + 102, + 111, + 114, + 109, + 97, + 116, + 105, + 101, + 111, + 98, + 106, + 101, + 99, + 116, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 125, + 44, + 123, + 34, + 117, + 114, + 108, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 105, + 92, + 47, + 118, + 49, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 117, + 115, + 115, + 101, + 110, + 92, + 47, + 99, + 57, + 101, + 56, + 97, + 99, + 56, + 56, + 45, + 52, + 55, + 53, + 55, + 45, + 52, + 101, + 101, + 49, + 45, + 97, + 56, + 102, + 48, + 45, + 57, + 55, + 51, + 98, + 51, + 101, + 97, + 100, + 57, + 52, + 55, + 100, + 34, + 44, + 34, + 117, + 117, + 105, + 100, + 34, + 58, + 34, + 99, + 57, + 101, + 56, + 97, + 99, + 56, + 56, + 45, + 52, + 55, + 53, + 55, + 45, + 52, + 101, + 101, + 49, + 45, + 97, + 56, + 102, + 48, + 45, + 57, + 55, + 51, + 98, + 51, + 101, + 97, + 100, + 57, + 52, + 55, + 100, + 34, + 44, + 34, + 100, + 111, + 109, + 101, + 105, + 110, + 34, + 58, + 34, + 65, + 65, + 66, + 34, + 44, + 34, + 114, + 115, + 105, + 110, + 34, + 58, + 34, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 34, + 44, + 34, + 99, + 111, + 110, + 116, + 97, + 99, + 116, + 112, + 101, + 114, + 115, + 111, + 111, + 110, + 66, + 101, + 104, + 101, + 101, + 114, + 78, + 97, + 97, + 109, + 34, + 58, + 34, + 84, + 101, + 115, + 116, + 32, + 80, + 101, + 114, + 115, + 111, + 111, + 110, + 34, + 44, + 34, + 99, + 111, + 110, + 116, + 97, + 99, + 116, + 112, + 101, + 114, + 115, + 111, + 111, + 110, + 66, + 101, + 104, + 101, + 101, + 114, + 84, + 101, + 108, + 101, + 102, + 111, + 111, + 110, + 110, + 117, + 109, + 109, + 101, + 114, + 34, + 58, + 34, + 34, + 44, + 34, + 99, + 111, + 110, + 116, + 97, + 99, + 116, + 112, + 101, + 114, + 115, + 111, + 111, + 110, + 66, + 101, + 104, + 101, + 101, + 114, + 69, + 109, + 97, + 105, + 108, + 97, + 100, + 114, + 101, + 115, + 34, + 58, + 34, + 34, + 44, + 34, + 122, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 98, + 101, + 115, + 108, + 117, + 105, + 116, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 105, + 110, + 102, + 111, + 114, + 109, + 97, + 116, + 105, + 101, + 111, + 98, + 106, + 101, + 99, + 116, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 125, + 44, + 123, + 34, + 117, + 114, + 108, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 105, + 92, + 47, + 118, + 49, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 117, + 115, + 115, + 101, + 110, + 92, + 47, + 100, + 54, + 100, + 51, + 52, + 57, + 52, + 50, + 45, + 50, + 49, + 51, + 53, + 45, + 52, + 50, + 97, + 51, + 45, + 97, + 57, + 55, + 102, + 45, + 51, + 52, + 102, + 55, + 57, + 99, + 54, + 55, + 54, + 99, + 57, + 55, + 34, + 44, + 34, + 117, + 117, + 105, + 100, + 34, + 58, + 34, + 100, + 54, + 100, + 51, + 52, + 57, + 52, + 50, + 45, + 50, + 49, + 51, + 53, + 45, + 52, + 50, + 97, + 51, + 45, + 97, + 57, + 55, + 102, + 45, + 51, + 52, + 102, + 55, + 57, + 99, + 54, + 55, + 54, + 99, + 57, + 55, + 34, + 44, + 34, + 100, + 111, + 109, + 101, + 105, + 110, + 34, + 58, + 34, + 65, + 65, + 66, + 34, + 44, + 34, + 114, + 115, + 105, + 110, + 34, + 58, + 34, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 34, + 44, + 34, + 99, + 111, + 110, + 116, + 97, + 99, + 116, + 112, + 101, + 114, + 115, + 111, + 111, + 110, + 66, + 101, + 104, + 101, + 101, + 114, + 78, + 97, + 97, + 109, + 34, + 58, + 34, + 84, + 101, + 115, + 116, + 32, + 80, + 101, + 114, + 115, + 111, + 111, + 110, + 34, + 44, + 34, + 99, + 111, + 110, + 116, + 97, + 99, + 116, + 112, + 101, + 114, + 115, + 111, + 111, + 110, + 66, + 101, + 104, + 101, + 101, + 114, + 84, + 101, + 108, + 101, + 102, + 111, + 111, + 110, + 110, + 117, + 109, + 109, + 101, + 114, + 34, + 58, + 34, + 34, + 44, + 34, + 99, + 111, + 110, + 116, + 97, + 99, + 116, + 112, + 101, + 114, + 115, + 111, + 111, + 110, + 66, + 101, + 104, + 101, + 101, + 114, + 69, + 109, + 97, + 105, + 108, + 97, + 100, + 114, + 101, + 115, + 34, + 58, + 34, + 34, + 44, + 34, + 122, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 98, + 101, + 115, + 108, + 117, + 105, + 116, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 105, + 110, + 102, + 111, + 114, + 109, + 97, + 116, + 105, + 101, + 111, + 98, + 106, + 101, + 99, + 116, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 125, + 44, + 123, + 34, + 117, + 114, + 108, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 105, + 92, + 47, + 118, + 49, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 117, + 115, + 115, + 101, + 110, + 92, + 47, + 55, + 99, + 99, + 99, + 101, + 55, + 97, + 57, + 45, + 101, + 52, + 98, + 57, + 45, + 52, + 56, + 101, + 51, + 45, + 56, + 97, + 53, + 51, + 45, + 99, + 97, + 102, + 56, + 48, + 102, + 54, + 97, + 55, + 98, + 99, + 55, + 34, + 44, + 34, + 117, + 117, + 105, + 100, + 34, + 58, + 34, + 55, + 99, + 99, + 99, + 101, + 55, + 97, + 57, + 45, + 101, + 52, + 98, + 57, + 45, + 52, + 56, + 101, + 51, + 45, + 56, + 97, + 53, + 51, + 45, + 99, + 97, + 102, + 56, + 48, + 102, + 54, + 97, + 55, + 98, + 99, + 55, + 34, + 44, + 34, + 100, + 111, + 109, + 101, + 105, + 110, + 34, + 58, + 34, + 65, + 65, + 66, + 34, + 44, + 34, + 114, + 115, + 105, + 110, + 34, + 58, + 34, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 34, + 44, + 34, + 99, + 111, + 110, + 116, + 97, + 99, + 116, + 112, + 101, + 114, + 115, + 111, + 111, + 110, + 66, + 101, + 104, + 101, + 101, + 114, + 78, + 97, + 97, + 109, + 34, + 58, + 34, + 84, + 101, + 115, + 116, + 32, + 80, + 101, + 114, + 115, + 111, + 111, + 110, + 34, + 44, + 34, + 99, + 111, + 110, + 116, + 97, + 99, + 116, + 112, + 101, + 114, + 115, + 111, + 111, + 110, + 66, + 101, + 104, + 101, + 101, + 114, + 84, + 101, + 108, + 101, + 102, + 111, + 111, + 110, + 110, + 117, + 109, + 109, + 101, + 114, + 34, + 58, + 34, + 34, + 44, + 34, + 99, + 111, + 110, + 116, + 97, + 99, + 116, + 112, + 101, + 114, + 115, + 111, + 111, + 110, + 66, + 101, + 104, + 101, + 101, + 114, + 69, + 109, + 97, + 105, + 108, + 97, + 100, + 114, + 101, + 115, + 34, + 58, + 34, + 34, + 44, + 34, + 122, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 98, + 101, + 115, + 108, + 117, + 105, + 116, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 105, + 110, + 102, + 111, + 114, + 109, + 97, + 116, + 105, + 101, + 111, + 98, + 106, + 101, + 99, + 116, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 125, + 44, + 123, + 34, + 117, + 114, + 108, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 105, + 92, + 47, + 118, + 49, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 117, + 115, + 115, + 101, + 110, + 92, + 47, + 57, + 55, + 98, + 54, + 99, + 50, + 102, + 57, + 45, + 101, + 53, + 51, + 51, + 45, + 52, + 100, + 101, + 57, + 45, + 98, + 100, + 51, + 51, + 45, + 51, + 57, + 98, + 51, + 97, + 49, + 57, + 99, + 53, + 56, + 97, + 50, + 34, + 44, + 34, + 117, + 117, + 105, + 100, + 34, + 58, + 34, + 57, + 55, + 98, + 54, + 99, + 50, + 102, + 57, + 45, + 101, + 53, + 51, + 51, + 45, + 52, + 100, + 101, + 57, + 45, + 98, + 100, + 51, + 51, + 45, + 51, + 57, + 98, + 51, + 97, + 49, + 57, + 99, + 53, + 56, + 97, + 50, + 34, + 44, + 34, + 100, + 111, + 109, + 101, + 105, + 110, + 34, + 58, + 34, + 65, + 65, + 66, + 34, + 44, + 34, + 114, + 115, + 105, + 110, + 34, + 58, + 34, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 34, + 44, + 34, + 99, + 111, + 110, + 116, + 97, + 99, + 116, + 112, + 101, + 114, + 115, + 111, + 111, + 110, + 66, + 101, + 104, + 101, + 101, + 114, + 78, + 97, + 97, + 109, + 34, + 58, + 34, + 84, + 101, + 115, + 116, + 32, + 80, + 101, + 114, + 115, + 111, + 111, + 110, + 34, + 44, + 34, + 99, + 111, + 110, + 116, + 97, + 99, + 116, + 112, + 101, + 114, + 115, + 111, + 111, + 110, + 66, + 101, + 104, + 101, + 101, + 114, + 84, + 101, + 108, + 101, + 102, + 111, + 111, + 110, + 110, + 117, + 109, + 109, + 101, + 114, + 34, + 58, + 34, + 34, + 44, + 34, + 99, + 111, + 110, + 116, + 97, + 99, + 116, + 112, + 101, + 114, + 115, + 111, + 111, + 110, + 66, + 101, + 104, + 101, + 101, + 114, + 69, + 109, + 97, + 105, + 108, + 97, + 100, + 114, + 101, + 115, + 34, + 58, + 34, + 34, + 44, + 34, + 122, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 98, + 101, + 115, + 108, + 117, + 105, + 116, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 105, + 110, + 102, + 111, + 114, + 109, + 97, + 116, + 105, + 101, + 111, + 98, + 106, + 101, + 99, + 116, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 125, + 44, + 123, + 34, + 117, + 114, + 108, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 105, + 92, + 47, + 118, + 49, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 117, + 115, + 115, + 101, + 110, + 92, + 47, + 52, + 55, + 53, + 55, + 101, + 57, + 98, + 54, + 45, + 51, + 102, + 57, + 101, + 45, + 52, + 51, + 50, + 102, + 45, + 97, + 100, + 56, + 49, + 45, + 99, + 48, + 53, + 48, + 51, + 50, + 102, + 54, + 53, + 100, + 57, + 53, + 34, + 44, + 34, + 117, + 117, + 105, + 100, + 34, + 58, + 34, + 52, + 55, + 53, + 55, + 101, + 57, + 98, + 54, + 45, + 51, + 102, + 57, + 101, + 45, + 52, + 51, + 50, + 102, + 45, + 97, + 100, + 56, + 49, + 45, + 99, + 48, + 53, + 48, + 51, + 50, + 102, + 54, + 53, + 100, + 57, + 53, + 34, + 44, + 34, + 100, + 111, + 109, + 101, + 105, + 110, + 34, + 58, + 34, + 65, + 65, + 66, + 34, + 44, + 34, + 114, + 115, + 105, + 110, + 34, + 58, + 34, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 34, + 44, + 34, + 99, + 111, + 110, + 116, + 97, + 99, + 116, + 112, + 101, + 114, + 115, + 111, + 111, + 110, + 66, + 101, + 104, + 101, + 101, + 114, + 78, + 97, + 97, + 109, + 34, + 58, + 34, + 84, + 101, + 115, + 116, + 32, + 80, + 101, + 114, + 115, + 111, + 111, + 110, + 34, + 44, + 34, + 99, + 111, + 110, + 116, + 97, + 99, + 116, + 112, + 101, + 114, + 115, + 111, + 111, + 110, + 66, + 101, + 104, + 101, + 101, + 114, + 84, + 101, + 108, + 101, + 102, + 111, + 111, + 110, + 110, + 117, + 109, + 109, + 101, + 114, + 34, + 58, + 34, + 34, + 44, + 34, + 99, + 111, + 110, + 116, + 97, + 99, + 116, + 112, + 101, + 114, + 115, + 111, + 111, + 110, + 66, + 101, + 104, + 101, + 101, + 114, + 69, + 109, + 97, + 105, + 108, + 97, + 100, + 114, + 101, + 115, + 34, + 58, + 34, + 34, + 44, + 34, + 122, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 98, + 101, + 115, + 108, + 117, + 105, + 116, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 105, + 110, + 102, + 111, + 114, + 109, + 97, + 116, + 105, + 101, + 111, + 98, + 106, + 101, + 99, + 116, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 125, + 44, + 123, + 34, + 117, + 114, + 108, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 105, + 92, + 47, + 118, + 49, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 117, + 115, + 115, + 101, + 110, + 92, + 47, + 52, + 57, + 51, + 54, + 97, + 54, + 102, + 98, + 45, + 55, + 97, + 56, + 54, + 45, + 52, + 48, + 57, + 98, + 45, + 57, + 52, + 55, + 51, + 45, + 51, + 99, + 52, + 99, + 56, + 57, + 53, + 98, + 56, + 101, + 56, + 57, + 34, + 44, + 34, + 117, + 117, + 105, + 100, + 34, + 58, + 34, + 52, + 57, + 51, + 54, + 97, + 54, + 102, + 98, + 45, + 55, + 97, + 56, + 54, + 45, + 52, + 48, + 57, + 98, + 45, + 57, + 52, + 55, + 51, + 45, + 51, + 99, + 52, + 99, + 56, + 57, + 53, + 98, + 56, + 101, + 56, + 57, + 34, + 44, + 34, + 100, + 111, + 109, + 101, + 105, + 110, + 34, + 58, + 34, + 90, + 71, + 87, + 84, + 34, + 44, + 34, + 114, + 115, + 105, + 110, + 34, + 58, + 34, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 34, + 44, + 34, + 99, + 111, + 110, + 116, + 97, + 99, + 116, + 112, + 101, + 114, + 115, + 111, + 111, + 110, + 66, + 101, + 104, + 101, + 101, + 114, + 78, + 97, + 97, + 109, + 34, + 58, + 34, + 84, + 101, + 115, + 116, + 32, + 80, + 101, + 114, + 115, + 111, + 111, + 110, + 34, + 44, + 34, + 99, + 111, + 110, + 116, + 97, + 99, + 116, + 112, + 101, + 114, + 115, + 111, + 111, + 110, + 66, + 101, + 104, + 101, + 101, + 114, + 84, + 101, + 108, + 101, + 102, + 111, + 111, + 110, + 110, + 117, + 109, + 109, + 101, + 114, + 34, + 58, + 34, + 34, + 44, + 34, + 99, + 111, + 110, + 116, + 97, + 99, + 116, + 112, + 101, + 114, + 115, + 111, + 111, + 110, + 66, + 101, + 104, + 101, + 101, + 114, + 69, + 109, + 97, + 105, + 108, + 97, + 100, + 114, + 101, + 115, + 34, + 58, + 34, + 34, + 44, + 34, + 122, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 98, + 101, + 115, + 108, + 117, + 105, + 116, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 105, + 110, + 102, + 111, + 114, + 109, + 97, + 116, + 105, + 101, + 111, + 98, + 106, + 101, + 99, + 116, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 125, + 44, + 123, + 34, + 117, + 114, + 108, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 105, + 92, + 47, + 118, + 49, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 117, + 115, + 115, + 101, + 110, + 92, + 47, + 55, + 53, + 101, + 51, + 100, + 98, + 57, + 56, + 45, + 99, + 98, + 57, + 101, + 45, + 52, + 99, + 48, + 57, + 45, + 57, + 48, + 49, + 48, + 45, + 99, + 48, + 53, + 52, + 102, + 53, + 97, + 52, + 98, + 98, + 57, + 99, + 34, + 44, + 34, + 117, + 117, + 105, + 100, + 34, + 58, + 34, + 55, + 53, + 101, + 51, + 100, + 98, + 57, + 56, + 45, + 99, + 98, + 57, + 101, + 45, + 52, + 99, + 48, + 57, + 45, + 57, + 48, + 49, + 48, + 45, + 99, + 48, + 53, + 52, + 102, + 53, + 97, + 52, + 98, + 98, + 57, + 99, + 34, + 44, + 34, + 100, + 111, + 109, + 101, + 105, + 110, + 34, + 58, + 34, + 65, + 65, + 66, + 34, + 44, + 34, + 114, + 115, + 105, + 110, + 34, + 58, + 34, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 34, + 44, + 34, + 99, + 111, + 110, + 116, + 97, + 99, + 116, + 112, + 101, + 114, + 115, + 111, + 111, + 110, + 66, + 101, + 104, + 101, + 101, + 114, + 78, + 97, + 97, + 109, + 34, + 58, + 34, + 84, + 101, + 115, + 116, + 32, + 80, + 101, + 114, + 115, + 111, + 111, + 110, + 34, + 44, + 34, + 99, + 111, + 110, + 116, + 97, + 99, + 116, + 112, + 101, + 114, + 115, + 111, + 111, + 110, + 66, + 101, + 104, + 101, + 101, + 114, + 84, + 101, + 108, + 101, + 102, + 111, + 111, + 110, + 110, + 117, + 109, + 109, + 101, + 114, + 34, + 58, + 34, + 34, + 44, + 34, + 99, + 111, + 110, + 116, + 97, + 99, + 116, + 112, + 101, + 114, + 115, + 111, + 111, + 110, + 66, + 101, + 104, + 101, + 101, + 114, + 69, + 109, + 97, + 105, + 108, + 97, + 100, + 114, + 101, + 115, + 34, + 58, + 34, + 34, + 44, + 34, + 122, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 98, + 101, + 115, + 108, + 117, + 105, + 116, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 105, + 110, + 102, + 111, + 114, + 109, + 97, + 116, + 105, + 101, + 111, + 98, + 106, + 101, + 99, + 116, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 125, + 44, + 123, + 34, + 117, + 114, + 108, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 105, + 92, + 47, + 118, + 49, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 117, + 115, + 115, + 101, + 110, + 92, + 47, + 98, + 100, + 49, + 51, + 98, + 57, + 52, + 56, + 45, + 52, + 100, + 97, + 98, + 45, + 52, + 56, + 55, + 98, + 45, + 57, + 97, + 48, + 56, + 45, + 51, + 100, + 52, + 53, + 100, + 54, + 97, + 54, + 49, + 54, + 99, + 100, + 34, + 44, + 34, + 117, + 117, + 105, + 100, + 34, + 58, + 34, + 98, + 100, + 49, + 51, + 98, + 57, + 52, + 56, + 45, + 52, + 100, + 97, + 98, + 45, + 52, + 56, + 55, + 98, + 45, + 57, + 97, + 48, + 56, + 45, + 51, + 100, + 52, + 53, + 100, + 54, + 97, + 54, + 49, + 54, + 99, + 100, + 34, + 44, + 34, + 100, + 111, + 109, + 101, + 105, + 110, + 34, + 58, + 34, + 90, + 71, + 87, + 84, + 34, + 44, + 34, + 114, + 115, + 105, + 110, + 34, + 58, + 34, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 34, + 44, + 34, + 99, + 111, + 110, + 116, + 97, + 99, + 116, + 112, + 101, + 114, + 115, + 111, + 111, + 110, + 66, + 101, + 104, + 101, + 101, + 114, + 78, + 97, + 97, + 109, + 34, + 58, + 34, + 84, + 101, + 115, + 116, + 32, + 80, + 101, + 114, + 115, + 111, + 111, + 110, + 34, + 44, + 34, + 99, + 111, + 110, + 116, + 97, + 99, + 116, + 112, + 101, + 114, + 115, + 111, + 111, + 110, + 66, + 101, + 104, + 101, + 101, + 114, + 84, + 101, + 108, + 101, + 102, + 111, + 111, + 110, + 110, + 117, + 109, + 109, + 101, + 114, + 34, + 58, + 34, + 34, + 44, + 34, + 99, + 111, + 110, + 116, + 97, + 99, + 116, + 112, + 101, + 114, + 115, + 111, + 111, + 110, + 66, + 101, + 104, + 101, + 101, + 114, + 69, + 109, + 97, + 105, + 108, + 97, + 100, + 114, + 101, + 115, + 34, + 58, + 34, + 34, + 44, + 34, + 122, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 98, + 101, + 115, + 108, + 117, + 105, + 116, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 105, + 110, + 102, + 111, + 114, + 109, + 97, + 116, + 105, + 101, + 111, + 98, + 106, + 101, + 99, + 116, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 125, + 44, + 123, + 34, + 117, + 114, + 108, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 105, + 92, + 47, + 118, + 49, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 117, + 115, + 115, + 101, + 110, + 92, + 47, + 56, + 53, + 101, + 100, + 100, + 100, + 98, + 101, + 45, + 49, + 57, + 98, + 55, + 45, + 52, + 101, + 56, + 54, + 45, + 98, + 101, + 54, + 57, + 45, + 53, + 98, + 101, + 99, + 55, + 99, + 102, + 54, + 56, + 53, + 55, + 97, + 34, + 44, + 34, + 117, + 117, + 105, + 100, + 34, + 58, + 34, + 56, + 53, + 101, + 100, + 100, + 100, + 98, + 101, + 45, + 49, + 57, + 98, + 55, + 45, + 52, + 101, + 56, + 54, + 45, + 98, + 101, + 54, + 57, + 45, + 53, + 98, + 101, + 99, + 55, + 99, + 102, + 54, + 56, + 53, + 55, + 97, + 34, + 44, + 34, + 100, + 111, + 109, + 101, + 105, + 110, + 34, + 58, + 34, + 65, + 65, + 66, + 34, + 44, + 34, + 114, + 115, + 105, + 110, + 34, + 58, + 34, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 34, + 44, + 34, + 99, + 111, + 110, + 116, + 97, + 99, + 116, + 112, + 101, + 114, + 115, + 111, + 111, + 110, + 66, + 101, + 104, + 101, + 101, + 114, + 78, + 97, + 97, + 109, + 34, + 58, + 34, + 84, + 101, + 115, + 116, + 32, + 80, + 101, + 114, + 115, + 111, + 111, + 110, + 34, + 44, + 34, + 99, + 111, + 110, + 116, + 97, + 99, + 116, + 112, + 101, + 114, + 115, + 111, + 111, + 110, + 66, + 101, + 104, + 101, + 101, + 114, + 84, + 101, + 108, + 101, + 102, + 111, + 111, + 110, + 110, + 117, + 109, + 109, + 101, + 114, + 34, + 58, + 34, + 34, + 44, + 34, + 99, + 111, + 110, + 116, + 97, + 99, + 116, + 112, + 101, + 114, + 115, + 111, + 111, + 110, + 66, + 101, + 104, + 101, + 101, + 114, + 69, + 109, + 97, + 105, + 108, + 97, + 100, + 114, + 101, + 115, + 34, + 58, + 34, + 34, + 44, + 34, + 122, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 98, + 101, + 115, + 108, + 117, + 105, + 116, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 105, + 110, + 102, + 111, + 114, + 109, + 97, + 116, + 105, + 101, + 111, + 98, + 106, + 101, + 99, + 116, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 125, + 44, + 123, + 34, + 117, + 114, + 108, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 105, + 92, + 47, + 118, + 49, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 117, + 115, + 115, + 101, + 110, + 92, + 47, + 51, + 55, + 97, + 48, + 99, + 52, + 53, + 99, + 45, + 55, + 98, + 101, + 57, + 45, + 52, + 49, + 102, + 50, + 45, + 98, + 102, + 57, + 55, + 45, + 57, + 48, + 51, + 52, + 49, + 97, + 56, + 50, + 49, + 51, + 50, + 55, + 34, + 44, + 34, + 117, + 117, + 105, + 100, + 34, + 58, + 34, + 51, + 55, + 97, + 48, + 99, + 52, + 53, + 99, + 45, + 55, + 98, + 101, + 57, + 45, + 52, + 49, + 102, + 50, + 45, + 98, + 102, + 57, + 55, + 45, + 57, + 48, + 51, + 52, + 49, + 97, + 56, + 50, + 49, + 51, + 50, + 55, + 34, + 44, + 34, + 100, + 111, + 109, + 101, + 105, + 110, + 34, + 58, + 34, + 90, + 71, + 87, + 84, + 34, + 44, + 34, + 114, + 115, + 105, + 110, + 34, + 58, + 34, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 34, + 44, + 34, + 99, + 111, + 110, + 116, + 97, + 99, + 116, + 112, + 101, + 114, + 115, + 111, + 111, + 110, + 66, + 101, + 104, + 101, + 101, + 114, + 78, + 97, + 97, + 109, + 34, + 58, + 34, + 84, + 101, + 115, + 116, + 32, + 80, + 101, + 114, + 115, + 111, + 111, + 110, + 34, + 44, + 34, + 99, + 111, + 110, + 116, + 97, + 99, + 116, + 112, + 101, + 114, + 115, + 111, + 111, + 110, + 66, + 101, + 104, + 101, + 101, + 114, + 84, + 101, + 108, + 101, + 102, + 111, + 111, + 110, + 110, + 117, + 109, + 109, + 101, + 114, + 34, + 58, + 34, + 34, + 44, + 34, + 99, + 111, + 110, + 116, + 97, + 99, + 116, + 112, + 101, + 114, + 115, + 111, + 111, + 110, + 66, + 101, + 104, + 101, + 101, + 114, + 69, + 109, + 97, + 105, + 108, + 97, + 100, + 114, + 101, + 115, + 34, + 58, + 34, + 34, + 44, + 34, + 122, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 98, + 101, + 115, + 108, + 117, + 105, + 116, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 105, + 110, + 102, + 111, + 114, + 109, + 97, + 116, + 105, + 101, + 111, + 98, + 106, + 101, + 99, + 116, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 125, + 44, + 123, + 34, + 117, + 114, + 108, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 105, + 92, + 47, + 118, + 49, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 117, + 115, + 115, + 101, + 110, + 92, + 47, + 55, + 98, + 57, + 100, + 48, + 100, + 53, + 57, + 45, + 51, + 50, + 97, + 101, + 45, + 52, + 98, + 53, + 98, + 45, + 57, + 101, + 50, + 52, + 45, + 53, + 101, + 55, + 52, + 102, + 99, + 49, + 101, + 55, + 56, + 102, + 56, + 34, + 44, + 34, + 117, + 117, + 105, + 100, + 34, + 58, + 34, + 55, + 98, + 57, + 100, + 48, + 100, + 53, + 57, + 45, + 51, + 50, + 97, + 101, + 45, + 52, + 98, + 53, + 98, + 45, + 57, + 101, + 50, + 52, + 45, + 53, + 101, + 55, + 52, + 102, + 99, + 49, + 101, + 55, + 56, + 102, + 56, + 34, + 44, + 34, + 100, + 111, + 109, + 101, + 105, + 110, + 34, + 58, + 34, + 65, + 65, + 66, + 34, + 44, + 34, + 114, + 115, + 105, + 110, + 34, + 58, + 34, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 34, + 44, + 34, + 99, + 111, + 110, + 116, + 97, + 99, + 116, + 112, + 101, + 114, + 115, + 111, + 111, + 110, + 66, + 101, + 104, + 101, + 101, + 114, + 78, + 97, + 97, + 109, + 34, + 58, + 34, + 84, + 101, + 115, + 116, + 32, + 80, + 101, + 114, + 115, + 111, + 111, + 110, + 34, + 44, + 34, + 99, + 111, + 110, + 116, + 97, + 99, + 116, + 112, + 101, + 114, + 115, + 111, + 111, + 110, + 66, + 101, + 104, + 101, + 101, + 114, + 84, + 101, + 108, + 101, + 102, + 111, + 111, + 110, + 110, + 117, + 109, + 109, + 101, + 114, + 34, + 58, + 34, + 34, + 44, + 34, + 99, + 111, + 110, + 116, + 97, + 99, + 116, + 112, + 101, + 114, + 115, + 111, + 111, + 110, + 66, + 101, + 104, + 101, + 101, + 114, + 69, + 109, + 97, + 105, + 108, + 97, + 100, + 114, + 101, + 115, + 34, + 58, + 34, + 34, + 44, + 34, + 122, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 98, + 101, + 115, + 108, + 117, + 105, + 116, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 105, + 110, + 102, + 111, + 114, + 109, + 97, + 116, + 105, + 101, + 111, + 98, + 106, + 101, + 99, + 116, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 125, + 44, + 123, + 34, + 117, + 114, + 108, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 105, + 92, + 47, + 118, + 49, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 117, + 115, + 115, + 101, + 110, + 92, + 47, + 48, + 101, + 53, + 49, + 55, + 99, + 97, + 53, + 45, + 56, + 57, + 49, + 98, + 45, + 52, + 53, + 97, + 57, + 45, + 98, + 56, + 50, + 101, + 45, + 101, + 57, + 56, + 48, + 57, + 54, + 57, + 101, + 57, + 57, + 50, + 100, + 34, + 44, + 34, + 117, + 117, + 105, + 100, + 34, + 58, + 34, + 48, + 101, + 53, + 49, + 55, + 99, + 97, + 53, + 45, + 56, + 57, + 49, + 98, + 45, + 52, + 53, + 97, + 57, + 45, + 98, + 56, + 50, + 101, + 45, + 101, + 57, + 56, + 48, + 57, + 54, + 57, + 101, + 57, + 57, + 50, + 100, + 34, + 44, + 34, + 100, + 111, + 109, + 101, + 105, + 110, + 34, + 58, + 34, + 90, + 71, + 87, + 84, + 34, + 44, + 34, + 114, + 115, + 105, + 110, + 34, + 58, + 34, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 34, + 44, + 34, + 99, + 111, + 110, + 116, + 97, + 99, + 116, + 112, + 101, + 114, + 115, + 111, + 111, + 110, + 66, + 101, + 104, + 101, + 101, + 114, + 78, + 97, + 97, + 109, + 34, + 58, + 34, + 84, + 101, + 115, + 116, + 32, + 80, + 101, + 114, + 115, + 111, + 111, + 110, + 34, + 44, + 34, + 99, + 111, + 110, + 116, + 97, + 99, + 116, + 112, + 101, + 114, + 115, + 111, + 111, + 110, + 66, + 101, + 104, + 101, + 101, + 114, + 84, + 101, + 108, + 101, + 102, + 111, + 111, + 110, + 110, + 117, + 109, + 109, + 101, + 114, + 34, + 58, + 34, + 34, + 44, + 34, + 99, + 111, + 110, + 116, + 97, + 99, + 116, + 112, + 101, + 114, + 115, + 111, + 111, + 110, + 66, + 101, + 104, + 101, + 101, + 114, + 69, + 109, + 97, + 105, + 108, + 97, + 100, + 114, + 101, + 115, + 34, + 58, + 34, + 34, + 44, + 34, + 122, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 98, + 101, + 115, + 108, + 117, + 105, + 116, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 105, + 110, + 102, + 111, + 114, + 109, + 97, + 116, + 105, + 101, + 111, + 98, + 106, + 101, + 99, + 116, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 125, + 44, + 123, + 34, + 117, + 114, + 108, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 105, + 92, + 47, + 118, + 49, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 117, + 115, + 115, + 101, + 110, + 92, + 47, + 99, + 99, + 97, + 50, + 100, + 57, + 102, + 100, + 45, + 50, + 56, + 56, + 102, + 45, + 52, + 56, + 48, + 57, + 45, + 56, + 48, + 53, + 54, + 45, + 101, + 54, + 101, + 51, + 98, + 51, + 53, + 98, + 48, + 98, + 102, + 100, + 34, + 44, + 34, + 117, + 117, + 105, + 100, + 34, + 58, + 34, + 99, + 99, + 97, + 50, + 100, + 57, + 102, + 100, + 45, + 50, + 56, + 56, + 102, + 45, + 52, + 56, + 48, + 57, + 45, + 56, + 48, + 53, + 54, + 45, + 101, + 54, + 101, + 51, + 98, + 51, + 53, + 98, + 48, + 98, + 102, + 100, + 34, + 44, + 34, + 100, + 111, + 109, + 101, + 105, + 110, + 34, + 58, + 34, + 65, + 65, + 66, + 34, + 44, + 34, + 114, + 115, + 105, + 110, + 34, + 58, + 34, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 34, + 44, + 34, + 99, + 111, + 110, + 116, + 97, + 99, + 116, + 112, + 101, + 114, + 115, + 111, + 111, + 110, + 66, + 101, + 104, + 101, + 101, + 114, + 78, + 97, + 97, + 109, + 34, + 58, + 34, + 84, + 101, + 115, + 116, + 32, + 80, + 101, + 114, + 115, + 111, + 111, + 110, + 34, + 44, + 34, + 99, + 111, + 110, + 116, + 97, + 99, + 116, + 112, + 101, + 114, + 115, + 111, + 111, + 110, + 66, + 101, + 104, + 101, + 101, + 114, + 84, + 101, + 108, + 101, + 102, + 111, + 111, + 110, + 110, + 117, + 109, + 109, + 101, + 114, + 34, + 58, + 34, + 34, + 44, + 34, + 99, + 111, + 110, + 116, + 97, + 99, + 116, + 112, + 101, + 114, + 115, + 111, + 111, + 110, + 66, + 101, + 104, + 101, + 101, + 114, + 69, + 109, + 97, + 105, + 108, + 97, + 100, + 114, + 101, + 115, + 34, + 58, + 34, + 34, + 44, + 34, + 122, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 98, + 101, + 115, + 108, + 117, + 105, + 116, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 105, + 110, + 102, + 111, + 114, + 109, + 97, + 116, + 105, + 101, + 111, + 98, + 106, + 101, + 99, + 116, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 125, + 44, + 123, + 34, + 117, + 114, + 108, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 105, + 92, + 47, + 118, + 49, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 117, + 115, + 115, + 101, + 110, + 92, + 47, + 50, + 48, + 48, + 101, + 54, + 55, + 98, + 55, + 45, + 99, + 50, + 98, + 48, + 45, + 52, + 100, + 53, + 50, + 45, + 56, + 53, + 57, + 54, + 45, + 99, + 48, + 57, + 98, + 48, + 57, + 49, + 49, + 48, + 98, + 48, + 98, + 34, + 44, + 34, + 117, + 117, + 105, + 100, + 34, + 58, + 34, + 50, + 48, + 48, + 101, + 54, + 55, + 98, + 55, + 45, + 99, + 50, + 98, + 48, + 45, + 52, + 100, + 53, + 50, + 45, + 56, + 53, + 57, + 54, + 45, + 99, + 48, + 57, + 98, + 48, + 57, + 49, + 49, + 48, + 98, + 48, + 98, + 34, + 44, + 34, + 100, + 111, + 109, + 101, + 105, + 110, + 34, + 58, + 34, + 90, + 71, + 87, + 84, + 34, + 44, + 34, + 114, + 115, + 105, + 110, + 34, + 58, + 34, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 34, + 44, + 34, + 99, + 111, + 110, + 116, + 97, + 99, + 116, + 112, + 101, + 114, + 115, + 111, + 111, + 110, + 66, + 101, + 104, + 101, + 101, + 114, + 78, + 97, + 97, + 109, + 34, + 58, + 34, + 84, + 101, + 115, + 116, + 32, + 80, + 101, + 114, + 115, + 111, + 111, + 110, + 34, + 44, + 34, + 99, + 111, + 110, + 116, + 97, + 99, + 116, + 112, + 101, + 114, + 115, + 111, + 111, + 110, + 66, + 101, + 104, + 101, + 101, + 114, + 84, + 101, + 108, + 101, + 102, + 111, + 111, + 110, + 110, + 117, + 109, + 109, + 101, + 114, + 34, + 58, + 34, + 34, + 44, + 34, + 99, + 111, + 110, + 116, + 97, + 99, + 116, + 112, + 101, + 114, + 115, + 111, + 111, + 110, + 66, + 101, + 104, + 101, + 101, + 114, + 69, + 109, + 97, + 105, + 108, + 97, + 100, + 114, + 101, + 115, + 34, + 58, + 34, + 34, + 44, + 34, + 122, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 98, + 101, + 115, + 108, + 117, + 105, + 116, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 105, + 110, + 102, + 111, + 114, + 109, + 97, + 116, + 105, + 101, + 111, + 98, + 106, + 101, + 99, + 116, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 125, + 44, + 123, + 34, + 117, + 114, + 108, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 105, + 92, + 47, + 118, + 49, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 117, + 115, + 115, + 101, + 110, + 92, + 47, + 97, + 54, + 50, + 51, + 48, + 53, + 52, + 102, + 45, + 100, + 48, + 57, + 98, + 45, + 52, + 101, + 54, + 102, + 45, + 98, + 99, + 54, + 56, + 45, + 98, + 101, + 55, + 97, + 51, + 57, + 56, + 99, + 99, + 51, + 53, + 50, + 34, + 44, + 34, + 117, + 117, + 105, + 100, + 34, + 58, + 34, + 97, + 54, + 50, + 51, + 48, + 53, + 52, + 102, + 45, + 100, + 48, + 57, + 98, + 45, + 52, + 101, + 54, + 102, + 45, + 98, + 99, + 54, + 56, + 45, + 98, + 101, + 55, + 97, + 51, + 57, + 56, + 99, + 99, + 51, + 53, + 50, + 34, + 44, + 34, + 100, + 111, + 109, + 101, + 105, + 110, + 34, + 58, + 34, + 65, + 65, + 66, + 34, + 44, + 34, + 114, + 115, + 105, + 110, + 34, + 58, + 34, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 34, + 44, + 34, + 99, + 111, + 110, + 116, + 97, + 99, + 116, + 112, + 101, + 114, + 115, + 111, + 111, + 110, + 66, + 101, + 104, + 101, + 101, + 114, + 78, + 97, + 97, + 109, + 34, + 58, + 34, + 84, + 101, + 115, + 116, + 32, + 80, + 101, + 114, + 115, + 111, + 111, + 110, + 34, + 44, + 34, + 99, + 111, + 110, + 116, + 97, + 99, + 116, + 112, + 101, + 114, + 115, + 111, + 111, + 110, + 66, + 101, + 104, + 101, + 101, + 114, + 84, + 101, + 108, + 101, + 102, + 111, + 111, + 110, + 110, + 117, + 109, + 109, + 101, + 114, + 34, + 58, + 34, + 34, + 44, + 34, + 99, + 111, + 110, + 116, + 97, + 99, + 116, + 112, + 101, + 114, + 115, + 111, + 111, + 110, + 66, + 101, + 104, + 101, + 101, + 114, + 69, + 109, + 97, + 105, + 108, + 97, + 100, + 114, + 101, + 115, + 34, + 58, + 34, + 34, + 44, + 34, + 122, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 98, + 101, + 115, + 108, + 117, + 105, + 116, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 105, + 110, + 102, + 111, + 114, + 109, + 97, + 116, + 105, + 101, + 111, + 98, + 106, + 101, + 99, + 116, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 125, + 44, + 123, + 34, + 117, + 114, + 108, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 105, + 92, + 47, + 118, + 49, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 117, + 115, + 115, + 101, + 110, + 92, + 47, + 50, + 56, + 54, + 98, + 101, + 57, + 51, + 51, + 45, + 50, + 97, + 51, + 52, + 45, + 52, + 54, + 52, + 53, + 45, + 98, + 48, + 49, + 48, + 45, + 57, + 57, + 98, + 56, + 56, + 53, + 50, + 101, + 57, + 48, + 50, + 48, + 34, + 44, + 34, + 117, + 117, + 105, + 100, + 34, + 58, + 34, + 50, + 56, + 54, + 98, + 101, + 57, + 51, + 51, + 45, + 50, + 97, + 51, + 52, + 45, + 52, + 54, + 52, + 53, + 45, + 98, + 48, + 49, + 48, + 45, + 57, + 57, + 98, + 56, + 56, + 53, + 50, + 101, + 57, + 48, + 50, + 48, + 34, + 44, + 34, + 100, + 111, + 109, + 101, + 105, + 110, + 34, + 58, + 34, + 90, + 71, + 87, + 84, + 34, + 44, + 34, + 114, + 115, + 105, + 110, + 34, + 58, + 34, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 34, + 44, + 34, + 99, + 111, + 110, + 116, + 97, + 99, + 116, + 112, + 101, + 114, + 115, + 111, + 111, + 110, + 66, + 101, + 104, + 101, + 101, + 114, + 78, + 97, + 97, + 109, + 34, + 58, + 34, + 84, + 101, + 115, + 116, + 32, + 80, + 101, + 114, + 115, + 111, + 111, + 110, + 34, + 44, + 34, + 99, + 111, + 110, + 116, + 97, + 99, + 116, + 112, + 101, + 114, + 115, + 111, + 111, + 110, + 66, + 101, + 104, + 101, + 101, + 114, + 84, + 101, + 108, + 101, + 102, + 111, + 111, + 110, + 110, + 117, + 109, + 109, + 101, + 114, + 34, + 58, + 34, + 34, + 44, + 34, + 99, + 111, + 110, + 116, + 97, + 99, + 116, + 112, + 101, + 114, + 115, + 111, + 111, + 110, + 66, + 101, + 104, + 101, + 101, + 114, + 69, + 109, + 97, + 105, + 108, + 97, + 100, + 114, + 101, + 115, + 34, + 58, + 34, + 34, + 44, + 34, + 122, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 98, + 101, + 115, + 108, + 117, + 105, + 116, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 105, + 110, + 102, + 111, + 114, + 109, + 97, + 116, + 105, + 101, + 111, + 98, + 106, + 101, + 99, + 116, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 125, + 44, + 123, + 34, + 117, + 114, + 108, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 105, + 92, + 47, + 118, + 49, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 117, + 115, + 115, + 101, + 110, + 92, + 47, + 100, + 56, + 102, + 102, + 53, + 50, + 53, + 53, + 45, + 97, + 100, + 102, + 97, + 45, + 52, + 52, + 51, + 102, + 45, + 98, + 49, + 102, + 57, + 45, + 57, + 99, + 98, + 57, + 55, + 100, + 53, + 98, + 51, + 99, + 100, + 99, + 34, + 44, + 34, + 117, + 117, + 105, + 100, + 34, + 58, + 34, + 100, + 56, + 102, + 102, + 53, + 50, + 53, + 53, + 45, + 97, + 100, + 102, + 97, + 45, + 52, + 52, + 51, + 102, + 45, + 98, + 49, + 102, + 57, + 45, + 57, + 99, + 98, + 57, + 55, + 100, + 53, + 98, + 51, + 99, + 100, + 99, + 34, + 44, + 34, + 100, + 111, + 109, + 101, + 105, + 110, + 34, + 58, + 34, + 65, + 65, + 66, + 34, + 44, + 34, + 114, + 115, + 105, + 110, + 34, + 58, + 34, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 34, + 44, + 34, + 99, + 111, + 110, + 116, + 97, + 99, + 116, + 112, + 101, + 114, + 115, + 111, + 111, + 110, + 66, + 101, + 104, + 101, + 101, + 114, + 78, + 97, + 97, + 109, + 34, + 58, + 34, + 84, + 101, + 115, + 116, + 32, + 80, + 101, + 114, + 115, + 111, + 111, + 110, + 34, + 44, + 34, + 99, + 111, + 110, + 116, + 97, + 99, + 116, + 112, + 101, + 114, + 115, + 111, + 111, + 110, + 66, + 101, + 104, + 101, + 101, + 114, + 84, + 101, + 108, + 101, + 102, + 111, + 111, + 110, + 110, + 117, + 109, + 109, + 101, + 114, + 34, + 58, + 34, + 34, + 44, + 34, + 99, + 111, + 110, + 116, + 97, + 99, + 116, + 112, + 101, + 114, + 115, + 111, + 111, + 110, + 66, + 101, + 104, + 101, + 101, + 114, + 69, + 109, + 97, + 105, + 108, + 97, + 100, + 114, + 101, + 115, + 34, + 58, + 34, + 34, + 44, + 34, + 122, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 98, + 101, + 115, + 108, + 117, + 105, + 116, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 105, + 110, + 102, + 111, + 114, + 109, + 97, + 116, + 105, + 101, + 111, + 98, + 106, + 101, + 99, + 116, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 125, + 44, + 123, + 34, + 117, + 114, + 108, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 105, + 92, + 47, + 118, + 49, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 117, + 115, + 115, + 101, + 110, + 92, + 47, + 49, + 100, + 54, + 49, + 51, + 51, + 51, + 48, + 45, + 48, + 97, + 54, + 102, + 45, + 52, + 51, + 56, + 50, + 45, + 97, + 99, + 48, + 48, + 45, + 53, + 50, + 98, + 50, + 53, + 57, + 99, + 52, + 102, + 56, + 99, + 97, + 34, + 44, + 34, + 117, + 117, + 105, + 100, + 34, + 58, + 34, + 49, + 100, + 54, + 49, + 51, + 51, + 51, + 48, + 45, + 48, + 97, + 54, + 102, + 45, + 52, + 51, + 56, + 50, + 45, + 97, + 99, + 48, + 48, + 45, + 53, + 50, + 98, + 50, + 53, + 57, + 99, + 52, + 102, + 56, + 99, + 97, + 34, + 44, + 34, + 100, + 111, + 109, + 101, + 105, + 110, + 34, + 58, + 34, + 90, + 71, + 87, + 84, + 34, + 44, + 34, + 114, + 115, + 105, + 110, + 34, + 58, + 34, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 34, + 44, + 34, + 99, + 111, + 110, + 116, + 97, + 99, + 116, + 112, + 101, + 114, + 115, + 111, + 111, + 110, + 66, + 101, + 104, + 101, + 101, + 114, + 78, + 97, + 97, + 109, + 34, + 58, + 34, + 84, + 101, + 115, + 116, + 32, + 80, + 101, + 114, + 115, + 111, + 111, + 110, + 34, + 44, + 34, + 99, + 111, + 110, + 116, + 97, + 99, + 116, + 112, + 101, + 114, + 115, + 111, + 111, + 110, + 66, + 101, + 104, + 101, + 101, + 114, + 84, + 101, + 108, + 101, + 102, + 111, + 111, + 110, + 110, + 117, + 109, + 109, + 101, + 114, + 34, + 58, + 34, + 34, + 44, + 34, + 99, + 111, + 110, + 116, + 97, + 99, + 116, + 112, + 101, + 114, + 115, + 111, + 111, + 110, + 66, + 101, + 104, + 101, + 101, + 114, + 69, + 109, + 97, + 105, + 108, + 97, + 100, + 114, + 101, + 115, + 34, + 58, + 34, + 34, + 44, + 34, + 122, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 98, + 101, + 115, + 108, + 117, + 105, + 116, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 105, + 110, + 102, + 111, + 114, + 109, + 97, + 116, + 105, + 101, + 111, + 98, + 106, + 101, + 99, + 116, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 125, + 93, + 125 + ] + }, + "cookie": [], + "responseTime": 233, + "responseSize": 8033 + }, + "id": "4f2b999c-7637-4d53-a9ec-c564d842a392" + }, + { + "cursor": { + "ref": "478d3823-388c-47d5-bdd1-8e4da77f6062", + "length": 313, + "cycles": 1, + "position": 58, + "iteration": 0, + "httpRequestId": "e5240434-396a-4aa0-bad2-f83e94706ec5" + }, + "item": { + "id": "bf940bfe-9729-43a9-b0a7-12d78bd305a6", + "name": "Create ZT", + "request": { + "url": { + "path": [ + "zaaktypen" + ], + "host": [ + "{{ztc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\r\n\t\"identificatie\": \"{{random_identificatie-ztc-01}}\",\r\n \"omschrijving\": \"Melding Openbare Ruimte\",\r\n \"vertrouwelijkheidaanduiding\": \"openbaar\",\r\n \"doel\": \"test doel\",\r\n \"verantwoordelijke\":\"X\",\r\n \"aanleiding\": \"test aanleiding\",\r\n \"indicatieInternOfExtern\": \"extern\",\r\n \"handelingInitiator\": \"indienen\",\r\n \"onderwerp\": \"openbare ruimte\",\r\n \"handelingBehandelaar\": \"behandelen\",\r\n \"doorlooptijd\": \"P10D\",\r\n \"opschortingEnAanhoudingMogelijk\": false,\r\n \"verlengingMogelijk\": false,\r\n \"publicatieIndicatie\": false,\r\n \"productenOfDiensten\": [\r\n \"https://ref.tst.vng.cloud/standaard/\"\r\n ],\r\n \"selectielijstProcestype\": \"{{procestype_url}}\",\r\n \"referentieproces\": {\r\n \"naam\": \"test\",\r\n \"link\": \"\"\r\n },\r\n \"catalogus\": \"{{catalogus_url}}\",\r\n \"deelzaaktypen\": [],\r\n \"statustypen\": [],\r\n \"resultaattypen\": [],\r\n \"eigenschappen\": [],\r\n \"informatieobjecttypen\": [],\r\n \"besluittypen\": [],\r\n \"gerelateerdeZaaktypen\": [],\r\n \"beginGeldigheid\": \"2005-01-01\",\r\n \"eindeGeldigheid\": \"2012-01-01\",\r\n \"versiedatum\": \"2012-01-01\",\r\n \"concept\": true\r\n}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "18a57e83-76ae-42c8-b032-2eff95811135", + "type": "text/javascript", + "packages": {}, + "exec": [ + "if(pm.response.code == 201) {", + " pm.environment.set(\"zaaktype_for_auth_url\", pm.response.json().url);", + "}", + "", + "" + ], + "_lastExecutionId": "22ae9a64-be48-4d8e-a2d4-8b09a877e624" + } + }, + { + "listen": "prerequest", + "script": { + "id": "4036ae22-4587-47c7-91be-5c2c0003c5b7", + "type": "text/javascript", + "packages": {}, + "exec": [ + "var uuid = require('uuid');", + "var myUUID = uuid.v4(); ", + "pm.environment.set(\"random_identificatie-ztc-01\", myUUID);" + ], + "_lastExecutionId": "119e45a0-2c8d-4b6b-82ab-f5a694cc2d1c" + } + } + ] + }, + "request": { + "url": { + "protocol": "http", + "port": "8080", + "path": [ + "index.php", + "apps", + "procest", + "api", + "zgw", + "catalogi", + "v1", + "zaaktypen" + ], + "host": [ + "localhost" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Authorization", + "value": "Bearer eyJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJwcm9jZXN0LWFkbWluIiwiY2xpZW50X2lkIjoicHJvY2VzdC1hZG1pbiIsImlhdCI6IjE3NzMxNDUxNTQiLCJ1c2VyX2lkIjoicHJvY2VzdC1hZG1pbiIsInVzZXJfcmVwcmVzZW50YXRpb24iOiIifQ.IcOIoOtCj7e2uHTt040vUTp-hoBHtPKa9qF18l-KY18", + "system": true + }, + { + "key": "User-Agent", + "value": "PostmanRuntime/7.39.1", + "system": true + }, + { + "key": "Accept", + "value": "*/*", + "system": true + }, + { + "key": "Cache-Control", + "value": "no-cache", + "system": true + }, + { + "key": "Postman-Token", + "value": "4a2503d9-13ed-49be-b35d-5b12bb3ee994", + "system": true + }, + { + "key": "Host", + "value": "localhost:8080", + "system": true + }, + { + "key": "Accept-Encoding", + "value": "gzip, deflate, br", + "system": true + }, + { + "key": "Connection", + "value": "keep-alive", + "system": true + }, + { + "key": "Content-Length", + "value": "1313", + "system": true + }, + { + "key": "Cookie", + "value": "ocvp3112b4wg=53a3bd8a4de08f3e0648d33dc7018122; oc_sessionPassphrase=LBNdKxRzA0iqoULIruNxDDh2BK3O%2BrCIU8aUmiUcOFvy5Xw1YfjwQNlmBW2IkGwJYtxXh9%2BwDN6vYuGNX07tXzkBtjQJUWTGdzf8AIOUIVxVx5DfyWAQZ7nmYmQv6XSE; nc_sameSiteCookielax=true; nc_sameSiteCookiestrict=true", + "system": true + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\r\n\t\"identificatie\": \"9b0de294-b6d5-419a-b36a-66f3c5bd2832\",\r\n \"omschrijving\": \"Melding Openbare Ruimte\",\r\n \"vertrouwelijkheidaanduiding\": \"openbaar\",\r\n \"doel\": \"test doel\",\r\n \"verantwoordelijke\":\"X\",\r\n \"aanleiding\": \"test aanleiding\",\r\n \"indicatieInternOfExtern\": \"extern\",\r\n \"handelingInitiator\": \"indienen\",\r\n \"onderwerp\": \"openbare ruimte\",\r\n \"handelingBehandelaar\": \"behandelen\",\r\n \"doorlooptijd\": \"P10D\",\r\n \"opschortingEnAanhoudingMogelijk\": false,\r\n \"verlengingMogelijk\": false,\r\n \"publicatieIndicatie\": false,\r\n \"productenOfDiensten\": [\r\n \"https://ref.tst.vng.cloud/standaard/\"\r\n ],\r\n \"selectielijstProcestype\": \"https://selectielijst.openzaak.nl/api/v1/procestypen/838e405a-9b12-43c4-a985-d7a7490d422e\",\r\n \"referentieproces\": {\r\n \"naam\": \"test\",\r\n \"link\": \"\"\r\n },\r\n \"catalogus\": \"http://localhost:8080/index.php/apps/procest/api/zgw/catalogi/v1/catalogussen/5057408f-fd76-469e-8646-bcc4ba2efa8d\",\r\n \"deelzaaktypen\": [],\r\n \"statustypen\": [],\r\n \"resultaattypen\": [],\r\n \"eigenschappen\": [],\r\n \"informatieobjecttypen\": [],\r\n \"besluittypen\": [],\r\n \"gerelateerdeZaaktypen\": [],\r\n \"beginGeldigheid\": \"2005-01-01\",\r\n \"eindeGeldigheid\": \"2012-01-01\",\r\n \"versiedatum\": \"2012-01-01\",\r\n \"concept\": true\r\n}" + }, + "auth": { + "type": "jwt", + "jwt": [ + { + "type": "string", + "value": "{\r\n \"iss\": \"procest-admin\",\r\n \"client_id\": \"procest-admin\",\r\n \"iat\": \"1773145154\",\r\n \"user_id\": \"procest-admin\",\r\n \"user_representation\": \"\"\r\n}", + "key": "payload" + }, + { + "type": "string", + "value": "procest-admin-secret-key-for-testing", + "key": "secret" + }, + { + "type": "string", + "value": "HS256", + "key": "algorithm" + }, + { + "type": "boolean", + "value": false, + "key": "isSecretBase64Encoded" + }, + { + "type": "string", + "value": "header", + "key": "addTokenTo" + }, + { + "type": "string", + "value": "Bearer", + "key": "headerPrefix" + }, + { + "type": "string", + "value": "token", + "key": "queryParamKey" + }, + { + "type": "string", + "value": "{}", + "key": "header" + } + ] + } + }, + "response": { + "id": "c26c9566-0f3b-4798-9c42-da6986b605e8", + "status": "Created", + "code": 201, + "header": [ + { + "key": "Date", + "value": "Tue, 10 Mar 2026 12:19:14 GMT" + }, + { + "key": "Server", + "value": "Apache/2.4.66 (Debian)" + }, + { + "key": "X-Content-Type-Options", + "value": "nosniff" + }, + { + "key": "X-Frame-Options", + "value": "SAMEORIGIN" + }, + { + "key": "X-Permitted-Cross-Domain-Policies", + "value": "none" + }, + { + "key": "X-Robots-Tag", + "value": "noindex, nofollow" + }, + { + "key": "Referrer-Policy", + "value": "no-referrer" + }, + { + "key": "X-Powered-By", + "value": "PHP/8.3.30" + }, + { + "key": "Content-Security-Policy", + "value": "default-src 'none';base-uri 'none';manifest-src 'self';frame-ancestors 'none'" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=53a3bd8a4de08f3e0648d33dc7018122; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=53a3bd8a4de08f3e0648d33dc7018122; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=53a3bd8a4de08f3e0648d33dc7018122; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=53a3bd8a4de08f3e0648d33dc7018122; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=53a3bd8a4de08f3e0648d33dc7018122; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=ee977d7ee168fb85c947cef6f829b0e9; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=ee977d7ee168fb85c947cef6f829b0e9; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=ee977d7ee168fb85c947cef6f829b0e9; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=ee977d7ee168fb85c947cef6f829b0e9; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=ee977d7ee168fb85c947cef6f829b0e9; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "X-Request-Id", + "value": "vbZ9zcFvWQuhhv3j03xl" + }, + { + "key": "Cache-Control", + "value": "no-cache, no-store, must-revalidate" + }, + { + "key": "Feature-Policy", + "value": "autoplay 'none';camera 'none';fullscreen 'none';geolocation 'none';microphone 'none';payment 'none'" + }, + { + "key": "X-User-Id", + "value": "admin" + }, + { + "key": "Content-Length", + "value": "1347" + }, + { + "key": "Keep-Alive", + "value": "timeout=5, max=92" + }, + { + "key": "Connection", + "value": "Keep-Alive" + }, + { + "key": "Content-Type", + "value": "application/json; charset=utf-8" + } + ], + "stream": { + "type": "Buffer", + "data": [ + 123, + 34, + 117, + 114, + 108, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 105, + 92, + 47, + 118, + 49, + 92, + 47, + 122, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 110, + 92, + 47, + 101, + 57, + 57, + 53, + 50, + 98, + 97, + 102, + 45, + 48, + 54, + 100, + 98, + 45, + 52, + 99, + 102, + 99, + 45, + 57, + 54, + 49, + 51, + 45, + 99, + 48, + 51, + 97, + 53, + 53, + 56, + 98, + 102, + 49, + 102, + 98, + 34, + 44, + 34, + 117, + 117, + 105, + 100, + 34, + 58, + 34, + 101, + 57, + 57, + 53, + 50, + 98, + 97, + 102, + 45, + 48, + 54, + 100, + 98, + 45, + 52, + 99, + 102, + 99, + 45, + 57, + 54, + 49, + 51, + 45, + 99, + 48, + 51, + 97, + 53, + 53, + 56, + 98, + 102, + 49, + 102, + 98, + 34, + 44, + 34, + 105, + 100, + 101, + 110, + 116, + 105, + 102, + 105, + 99, + 97, + 116, + 105, + 101, + 34, + 58, + 34, + 57, + 98, + 48, + 100, + 101, + 50, + 57, + 52, + 45, + 98, + 54, + 100, + 53, + 45, + 52, + 49, + 57, + 97, + 45, + 98, + 51, + 54, + 97, + 45, + 54, + 54, + 102, + 51, + 99, + 53, + 98, + 100, + 50, + 56, + 51, + 50, + 34, + 44, + 34, + 111, + 109, + 115, + 99, + 104, + 114, + 105, + 106, + 118, + 105, + 110, + 103, + 34, + 58, + 34, + 77, + 101, + 108, + 100, + 105, + 110, + 103, + 32, + 79, + 112, + 101, + 110, + 98, + 97, + 114, + 101, + 32, + 82, + 117, + 105, + 109, + 116, + 101, + 34, + 44, + 34, + 111, + 109, + 115, + 99, + 104, + 114, + 105, + 106, + 118, + 105, + 110, + 103, + 71, + 101, + 110, + 101, + 114, + 105, + 101, + 107, + 34, + 58, + 34, + 34, + 44, + 34, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 117, + 115, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 105, + 92, + 47, + 118, + 49, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 117, + 115, + 115, + 101, + 110, + 92, + 47, + 53, + 48, + 53, + 55, + 52, + 48, + 56, + 102, + 45, + 102, + 100, + 55, + 54, + 45, + 52, + 54, + 57, + 101, + 45, + 56, + 54, + 52, + 54, + 45, + 98, + 99, + 99, + 52, + 98, + 97, + 50, + 101, + 102, + 97, + 56, + 100, + 34, + 44, + 34, + 100, + 111, + 101, + 108, + 34, + 58, + 34, + 116, + 101, + 115, + 116, + 32, + 100, + 111, + 101, + 108, + 34, + 44, + 34, + 97, + 97, + 110, + 108, + 101, + 105, + 100, + 105, + 110, + 103, + 34, + 58, + 34, + 116, + 101, + 115, + 116, + 32, + 97, + 97, + 110, + 108, + 101, + 105, + 100, + 105, + 110, + 103, + 34, + 44, + 34, + 111, + 110, + 100, + 101, + 114, + 119, + 101, + 114, + 112, + 34, + 58, + 34, + 111, + 112, + 101, + 110, + 98, + 97, + 114, + 101, + 32, + 114, + 117, + 105, + 109, + 116, + 101, + 34, + 44, + 34, + 100, + 111, + 111, + 114, + 108, + 111, + 111, + 112, + 116, + 105, + 106, + 100, + 34, + 58, + 34, + 80, + 49, + 48, + 68, + 34, + 44, + 34, + 118, + 101, + 114, + 116, + 114, + 111, + 117, + 119, + 101, + 108, + 105, + 106, + 107, + 104, + 101, + 105, + 100, + 97, + 97, + 110, + 100, + 117, + 105, + 100, + 105, + 110, + 103, + 34, + 58, + 34, + 111, + 112, + 101, + 110, + 98, + 97, + 97, + 114, + 34, + 44, + 34, + 99, + 111, + 110, + 99, + 101, + 112, + 116, + 34, + 58, + 116, + 114, + 117, + 101, + 44, + 34, + 98, + 101, + 103, + 105, + 110, + 71, + 101, + 108, + 100, + 105, + 103, + 104, + 101, + 105, + 100, + 34, + 58, + 34, + 50, + 48, + 48, + 53, + 45, + 48, + 49, + 45, + 48, + 49, + 34, + 44, + 34, + 101, + 105, + 110, + 100, + 101, + 71, + 101, + 108, + 100, + 105, + 103, + 104, + 101, + 105, + 100, + 34, + 58, + 34, + 50, + 48, + 49, + 50, + 45, + 48, + 49, + 45, + 48, + 49, + 34, + 44, + 34, + 104, + 97, + 110, + 100, + 101, + 108, + 105, + 110, + 103, + 73, + 110, + 105, + 116, + 105, + 97, + 116, + 111, + 114, + 34, + 58, + 34, + 105, + 110, + 100, + 105, + 101, + 110, + 101, + 110, + 34, + 44, + 34, + 105, + 110, + 100, + 105, + 99, + 97, + 116, + 105, + 101, + 73, + 110, + 116, + 101, + 114, + 110, + 79, + 102, + 69, + 120, + 116, + 101, + 114, + 110, + 34, + 58, + 34, + 101, + 120, + 116, + 101, + 114, + 110, + 34, + 44, + 34, + 104, + 97, + 110, + 100, + 101, + 108, + 105, + 110, + 103, + 66, + 101, + 104, + 97, + 110, + 100, + 101, + 108, + 97, + 97, + 114, + 34, + 58, + 34, + 98, + 101, + 104, + 97, + 110, + 100, + 101, + 108, + 101, + 110, + 34, + 44, + 34, + 111, + 112, + 115, + 99, + 104, + 111, + 114, + 116, + 105, + 110, + 103, + 69, + 110, + 65, + 97, + 110, + 104, + 111, + 117, + 100, + 105, + 110, + 103, + 77, + 111, + 103, + 101, + 108, + 105, + 106, + 107, + 34, + 58, + 102, + 97, + 108, + 115, + 101, + 44, + 34, + 118, + 101, + 114, + 108, + 101, + 110, + 103, + 105, + 110, + 103, + 77, + 111, + 103, + 101, + 108, + 105, + 106, + 107, + 34, + 58, + 102, + 97, + 108, + 115, + 101, + 44, + 34, + 118, + 101, + 114, + 108, + 101, + 110, + 103, + 105, + 110, + 103, + 115, + 116, + 101, + 114, + 109, + 105, + 106, + 110, + 34, + 58, + 34, + 34, + 44, + 34, + 112, + 117, + 98, + 108, + 105, + 99, + 97, + 116, + 105, + 101, + 73, + 110, + 100, + 105, + 99, + 97, + 116, + 105, + 101, + 34, + 58, + 102, + 97, + 108, + 115, + 101, + 44, + 34, + 112, + 114, + 111, + 100, + 117, + 99, + 116, + 101, + 110, + 79, + 102, + 68, + 105, + 101, + 110, + 115, + 116, + 101, + 110, + 34, + 58, + 91, + 34, + 104, + 116, + 116, + 112, + 115, + 58, + 92, + 47, + 92, + 47, + 114, + 101, + 102, + 46, + 116, + 115, + 116, + 46, + 118, + 110, + 103, + 46, + 99, + 108, + 111, + 117, + 100, + 92, + 47, + 115, + 116, + 97, + 110, + 100, + 97, + 97, + 114, + 100, + 92, + 47, + 34, + 93, + 44, + 34, + 115, + 101, + 108, + 101, + 99, + 116, + 105, + 101, + 108, + 105, + 106, + 115, + 116, + 80, + 114, + 111, + 99, + 101, + 115, + 116, + 121, + 112, + 101, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 115, + 58, + 92, + 47, + 92, + 47, + 115, + 101, + 108, + 101, + 99, + 116, + 105, + 101, + 108, + 105, + 106, + 115, + 116, + 46, + 111, + 112, + 101, + 110, + 122, + 97, + 97, + 107, + 46, + 110, + 108, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 118, + 49, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 121, + 112, + 101, + 110, + 92, + 47, + 56, + 51, + 56, + 101, + 52, + 48, + 53, + 97, + 45, + 57, + 98, + 49, + 50, + 45, + 52, + 51, + 99, + 52, + 45, + 97, + 57, + 56, + 53, + 45, + 100, + 55, + 97, + 55, + 52, + 57, + 48, + 100, + 52, + 50, + 50, + 101, + 34, + 44, + 34, + 114, + 101, + 102, + 101, + 114, + 101, + 110, + 116, + 105, + 101, + 112, + 114, + 111, + 99, + 101, + 115, + 34, + 58, + 123, + 34, + 108, + 105, + 110, + 107, + 34, + 58, + 34, + 34, + 44, + 34, + 110, + 97, + 97, + 109, + 34, + 58, + 34, + 116, + 101, + 115, + 116, + 34, + 125, + 44, + 34, + 118, + 101, + 114, + 97, + 110, + 116, + 119, + 111, + 111, + 114, + 100, + 101, + 108, + 105, + 106, + 107, + 101, + 34, + 58, + 34, + 88, + 34, + 44, + 34, + 103, + 101, + 114, + 101, + 108, + 97, + 116, + 101, + 101, + 114, + 100, + 101, + 90, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 98, + 101, + 115, + 108, + 117, + 105, + 116, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 105, + 110, + 102, + 111, + 114, + 109, + 97, + 116, + 105, + 101, + 111, + 98, + 106, + 101, + 99, + 116, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 100, + 101, + 101, + 108, + 122, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 116, + 111, + 101, + 108, + 105, + 99, + 104, + 116, + 105, + 110, + 103, + 34, + 58, + 34, + 34, + 44, + 34, + 118, + 101, + 114, + 115, + 105, + 101, + 100, + 97, + 116, + 117, + 109, + 34, + 58, + 34, + 50, + 48, + 48, + 53, + 45, + 48, + 49, + 45, + 48, + 49, + 34, + 44, + 34, + 101, + 105, + 103, + 101, + 110, + 115, + 99, + 104, + 97, + 112, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 115, + 116, + 97, + 116, + 117, + 115, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 114, + 101, + 115, + 117, + 108, + 116, + 97, + 97, + 116, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 114, + 111, + 108, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 125 + ] + }, + "cookie": [], + "responseTime": 329, + "responseSize": 1347 + }, + "id": "bf940bfe-9729-43a9-b0a7-12d78bd305a6" + }, + { + "cursor": { + "ref": "814afda2-86e6-42b6-84f8-2eefa93498ee", + "length": 313, + "cycles": 1, + "position": 59, + "iteration": 0, + "httpRequestId": "8a5b4e4f-f969-4bb3-bc9e-50637b44b144" + }, + "item": { + "id": "0a0f25ce-aabe-4fb5-882c-956ffbae4ae8", + "name": "Publish ZT", + "request": { + "url": { + "path": [ + "publish" + ], + "host": [ + "{{zaaktype_for_auth_url}}" + ], + "query": [], + "variable": [] + }, + "method": "POST" + }, + "response": [], + "event": [] + }, + "request": { + "url": { + "protocol": "http", + "port": "8080", + "path": [ + "index.php", + "apps", + "procest", + "api", + "zgw", + "catalogi", + "v1", + "zaaktypen", + "e9952baf-06db-4cfc-9613-c03a558bf1fb", + "publish" + ], + "host": [ + "localhost" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Authorization", + "value": "Bearer eyJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJwcm9jZXN0LWFkbWluIiwiY2xpZW50X2lkIjoicHJvY2VzdC1hZG1pbiIsImlhdCI6IjE3NzMxNDUxNTUiLCJ1c2VyX2lkIjoicHJvY2VzdC1hZG1pbiIsInVzZXJfcmVwcmVzZW50YXRpb24iOiIifQ.N_FGdmN7oBQr4BkqcPejtT4wFfaqBl2FPcCchjjFDfE", + "system": true + }, + { + "key": "User-Agent", + "value": "PostmanRuntime/7.39.1", + "system": true + }, + { + "key": "Accept", + "value": "*/*", + "system": true + }, + { + "key": "Cache-Control", + "value": "no-cache", + "system": true + }, + { + "key": "Postman-Token", + "value": "7c82089b-d5cc-429b-baa7-0113dd4a3c8e", + "system": true + }, + { + "key": "Host", + "value": "localhost:8080", + "system": true + }, + { + "key": "Accept-Encoding", + "value": "gzip, deflate, br", + "system": true + }, + { + "key": "Connection", + "value": "keep-alive", + "system": true + }, + { + "key": "Cookie", + "value": "ocvp3112b4wg=ee977d7ee168fb85c947cef6f829b0e9; oc_sessionPassphrase=LBNdKxRzA0iqoULIruNxDDh2BK3O%2BrCIU8aUmiUcOFvy5Xw1YfjwQNlmBW2IkGwJYtxXh9%2BwDN6vYuGNX07tXzkBtjQJUWTGdzf8AIOUIVxVx5DfyWAQZ7nmYmQv6XSE; nc_sameSiteCookielax=true; nc_sameSiteCookiestrict=true", + "system": true + }, + { + "key": "Content-Length", + "value": "0", + "system": true + } + ], + "method": "POST", + "auth": { + "type": "jwt", + "jwt": [ + { + "type": "string", + "value": "{\r\n \"iss\": \"procest-admin\",\r\n \"client_id\": \"procest-admin\",\r\n \"iat\": \"1773145155\",\r\n \"user_id\": \"procest-admin\",\r\n \"user_representation\": \"\"\r\n}", + "key": "payload" + }, + { + "type": "string", + "value": "procest-admin-secret-key-for-testing", + "key": "secret" + }, + { + "type": "string", + "value": "HS256", + "key": "algorithm" + }, + { + "type": "boolean", + "value": false, + "key": "isSecretBase64Encoded" + }, + { + "type": "string", + "value": "header", + "key": "addTokenTo" + }, + { + "type": "string", + "value": "Bearer", + "key": "headerPrefix" + }, + { + "type": "string", + "value": "token", + "key": "queryParamKey" + }, + { + "type": "string", + "value": "{}", + "key": "header" + } + ] + } + }, + "response": { + "id": "0fc2c549-1a60-4730-ae2b-bfba0d5e39fd", + "status": "OK", + "code": 200, + "header": [ + { + "key": "Date", + "value": "Tue, 10 Mar 2026 12:19:14 GMT" + }, + { + "key": "Server", + "value": "Apache/2.4.66 (Debian)" + }, + { + "key": "X-Content-Type-Options", + "value": "nosniff" + }, + { + "key": "X-Frame-Options", + "value": "SAMEORIGIN" + }, + { + "key": "X-Permitted-Cross-Domain-Policies", + "value": "none" + }, + { + "key": "X-Robots-Tag", + "value": "noindex, nofollow" + }, + { + "key": "Referrer-Policy", + "value": "no-referrer" + }, + { + "key": "X-Powered-By", + "value": "PHP/8.3.30" + }, + { + "key": "Content-Security-Policy", + "value": "default-src 'none';base-uri 'none';manifest-src 'self';frame-ancestors 'none'" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=ee977d7ee168fb85c947cef6f829b0e9; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=ee977d7ee168fb85c947cef6f829b0e9; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=ee977d7ee168fb85c947cef6f829b0e9; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=ee977d7ee168fb85c947cef6f829b0e9; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=ee977d7ee168fb85c947cef6f829b0e9; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=fe56f788581da3e933a82d94ab3803e5; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=fe56f788581da3e933a82d94ab3803e5; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=fe56f788581da3e933a82d94ab3803e5; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=fe56f788581da3e933a82d94ab3803e5; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=fe56f788581da3e933a82d94ab3803e5; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "X-Request-Id", + "value": "WEklYQUmhQhcvdqKsfpT" + }, + { + "key": "Cache-Control", + "value": "no-cache, no-store, must-revalidate" + }, + { + "key": "Feature-Policy", + "value": "autoplay 'none';camera 'none';fullscreen 'none';geolocation 'none';microphone 'none';payment 'none'" + }, + { + "key": "X-User-Id", + "value": "admin" + }, + { + "key": "Content-Encoding", + "value": "gzip" + }, + { + "key": "Content-Length", + "value": "677" + }, + { + "key": "Keep-Alive", + "value": "timeout=5, max=91" + }, + { + "key": "Connection", + "value": "Keep-Alive" + }, + { + "key": "Content-Type", + "value": "application/json; charset=utf-8" + } + ], + "stream": { + "type": "Buffer", + "data": [ + 123, + 34, + 117, + 114, + 108, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 105, + 92, + 47, + 118, + 49, + 92, + 47, + 122, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 110, + 92, + 47, + 101, + 57, + 57, + 53, + 50, + 98, + 97, + 102, + 45, + 48, + 54, + 100, + 98, + 45, + 52, + 99, + 102, + 99, + 45, + 57, + 54, + 49, + 51, + 45, + 99, + 48, + 51, + 97, + 53, + 53, + 56, + 98, + 102, + 49, + 102, + 98, + 34, + 44, + 34, + 117, + 117, + 105, + 100, + 34, + 58, + 34, + 101, + 57, + 57, + 53, + 50, + 98, + 97, + 102, + 45, + 48, + 54, + 100, + 98, + 45, + 52, + 99, + 102, + 99, + 45, + 57, + 54, + 49, + 51, + 45, + 99, + 48, + 51, + 97, + 53, + 53, + 56, + 98, + 102, + 49, + 102, + 98, + 34, + 44, + 34, + 105, + 100, + 101, + 110, + 116, + 105, + 102, + 105, + 99, + 97, + 116, + 105, + 101, + 34, + 58, + 34, + 57, + 98, + 48, + 100, + 101, + 50, + 57, + 52, + 45, + 98, + 54, + 100, + 53, + 45, + 52, + 49, + 57, + 97, + 45, + 98, + 51, + 54, + 97, + 45, + 54, + 54, + 102, + 51, + 99, + 53, + 98, + 100, + 50, + 56, + 51, + 50, + 34, + 44, + 34, + 111, + 109, + 115, + 99, + 104, + 114, + 105, + 106, + 118, + 105, + 110, + 103, + 34, + 58, + 34, + 77, + 101, + 108, + 100, + 105, + 110, + 103, + 32, + 79, + 112, + 101, + 110, + 98, + 97, + 114, + 101, + 32, + 82, + 117, + 105, + 109, + 116, + 101, + 34, + 44, + 34, + 111, + 109, + 115, + 99, + 104, + 114, + 105, + 106, + 118, + 105, + 110, + 103, + 71, + 101, + 110, + 101, + 114, + 105, + 101, + 107, + 34, + 58, + 34, + 34, + 44, + 34, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 117, + 115, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 105, + 92, + 47, + 118, + 49, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 117, + 115, + 115, + 101, + 110, + 92, + 47, + 53, + 48, + 53, + 55, + 52, + 48, + 56, + 102, + 45, + 102, + 100, + 55, + 54, + 45, + 52, + 54, + 57, + 101, + 45, + 56, + 54, + 52, + 54, + 45, + 98, + 99, + 99, + 52, + 98, + 97, + 50, + 101, + 102, + 97, + 56, + 100, + 34, + 44, + 34, + 100, + 111, + 101, + 108, + 34, + 58, + 34, + 116, + 101, + 115, + 116, + 32, + 100, + 111, + 101, + 108, + 34, + 44, + 34, + 97, + 97, + 110, + 108, + 101, + 105, + 100, + 105, + 110, + 103, + 34, + 58, + 34, + 116, + 101, + 115, + 116, + 32, + 97, + 97, + 110, + 108, + 101, + 105, + 100, + 105, + 110, + 103, + 34, + 44, + 34, + 111, + 110, + 100, + 101, + 114, + 119, + 101, + 114, + 112, + 34, + 58, + 34, + 111, + 112, + 101, + 110, + 98, + 97, + 114, + 101, + 32, + 114, + 117, + 105, + 109, + 116, + 101, + 34, + 44, + 34, + 100, + 111, + 111, + 114, + 108, + 111, + 111, + 112, + 116, + 105, + 106, + 100, + 34, + 58, + 34, + 80, + 49, + 48, + 68, + 34, + 44, + 34, + 118, + 101, + 114, + 116, + 114, + 111, + 117, + 119, + 101, + 108, + 105, + 106, + 107, + 104, + 101, + 105, + 100, + 97, + 97, + 110, + 100, + 117, + 105, + 100, + 105, + 110, + 103, + 34, + 58, + 34, + 111, + 112, + 101, + 110, + 98, + 97, + 97, + 114, + 34, + 44, + 34, + 99, + 111, + 110, + 99, + 101, + 112, + 116, + 34, + 58, + 102, + 97, + 108, + 115, + 101, + 44, + 34, + 98, + 101, + 103, + 105, + 110, + 71, + 101, + 108, + 100, + 105, + 103, + 104, + 101, + 105, + 100, + 34, + 58, + 34, + 50, + 48, + 48, + 53, + 45, + 48, + 49, + 45, + 48, + 49, + 34, + 44, + 34, + 101, + 105, + 110, + 100, + 101, + 71, + 101, + 108, + 100, + 105, + 103, + 104, + 101, + 105, + 100, + 34, + 58, + 34, + 50, + 48, + 49, + 50, + 45, + 48, + 49, + 45, + 48, + 49, + 34, + 44, + 34, + 104, + 97, + 110, + 100, + 101, + 108, + 105, + 110, + 103, + 73, + 110, + 105, + 116, + 105, + 97, + 116, + 111, + 114, + 34, + 58, + 34, + 105, + 110, + 100, + 105, + 101, + 110, + 101, + 110, + 34, + 44, + 34, + 105, + 110, + 100, + 105, + 99, + 97, + 116, + 105, + 101, + 73, + 110, + 116, + 101, + 114, + 110, + 79, + 102, + 69, + 120, + 116, + 101, + 114, + 110, + 34, + 58, + 34, + 101, + 120, + 116, + 101, + 114, + 110, + 34, + 44, + 34, + 104, + 97, + 110, + 100, + 101, + 108, + 105, + 110, + 103, + 66, + 101, + 104, + 97, + 110, + 100, + 101, + 108, + 97, + 97, + 114, + 34, + 58, + 34, + 98, + 101, + 104, + 97, + 110, + 100, + 101, + 108, + 101, + 110, + 34, + 44, + 34, + 111, + 112, + 115, + 99, + 104, + 111, + 114, + 116, + 105, + 110, + 103, + 69, + 110, + 65, + 97, + 110, + 104, + 111, + 117, + 100, + 105, + 110, + 103, + 77, + 111, + 103, + 101, + 108, + 105, + 106, + 107, + 34, + 58, + 102, + 97, + 108, + 115, + 101, + 44, + 34, + 118, + 101, + 114, + 108, + 101, + 110, + 103, + 105, + 110, + 103, + 77, + 111, + 103, + 101, + 108, + 105, + 106, + 107, + 34, + 58, + 102, + 97, + 108, + 115, + 101, + 44, + 34, + 118, + 101, + 114, + 108, + 101, + 110, + 103, + 105, + 110, + 103, + 115, + 116, + 101, + 114, + 109, + 105, + 106, + 110, + 34, + 58, + 34, + 34, + 44, + 34, + 112, + 117, + 98, + 108, + 105, + 99, + 97, + 116, + 105, + 101, + 73, + 110, + 100, + 105, + 99, + 97, + 116, + 105, + 101, + 34, + 58, + 102, + 97, + 108, + 115, + 101, + 44, + 34, + 112, + 114, + 111, + 100, + 117, + 99, + 116, + 101, + 110, + 79, + 102, + 68, + 105, + 101, + 110, + 115, + 116, + 101, + 110, + 34, + 58, + 91, + 34, + 104, + 116, + 116, + 112, + 115, + 58, + 92, + 47, + 92, + 47, + 114, + 101, + 102, + 46, + 116, + 115, + 116, + 46, + 118, + 110, + 103, + 46, + 99, + 108, + 111, + 117, + 100, + 92, + 47, + 115, + 116, + 97, + 110, + 100, + 97, + 97, + 114, + 100, + 92, + 47, + 34, + 93, + 44, + 34, + 115, + 101, + 108, + 101, + 99, + 116, + 105, + 101, + 108, + 105, + 106, + 115, + 116, + 80, + 114, + 111, + 99, + 101, + 115, + 116, + 121, + 112, + 101, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 115, + 58, + 92, + 47, + 92, + 47, + 115, + 101, + 108, + 101, + 99, + 116, + 105, + 101, + 108, + 105, + 106, + 115, + 116, + 46, + 111, + 112, + 101, + 110, + 122, + 97, + 97, + 107, + 46, + 110, + 108, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 118, + 49, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 121, + 112, + 101, + 110, + 92, + 47, + 56, + 51, + 56, + 101, + 52, + 48, + 53, + 97, + 45, + 57, + 98, + 49, + 50, + 45, + 52, + 51, + 99, + 52, + 45, + 97, + 57, + 56, + 53, + 45, + 100, + 55, + 97, + 55, + 52, + 57, + 48, + 100, + 52, + 50, + 50, + 101, + 34, + 44, + 34, + 114, + 101, + 102, + 101, + 114, + 101, + 110, + 116, + 105, + 101, + 112, + 114, + 111, + 99, + 101, + 115, + 34, + 58, + 123, + 34, + 108, + 105, + 110, + 107, + 34, + 58, + 34, + 34, + 44, + 34, + 110, + 97, + 97, + 109, + 34, + 58, + 34, + 116, + 101, + 115, + 116, + 34, + 125, + 44, + 34, + 118, + 101, + 114, + 97, + 110, + 116, + 119, + 111, + 111, + 114, + 100, + 101, + 108, + 105, + 106, + 107, + 101, + 34, + 58, + 34, + 88, + 34, + 44, + 34, + 103, + 101, + 114, + 101, + 108, + 97, + 116, + 101, + 101, + 114, + 100, + 101, + 90, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 98, + 101, + 115, + 108, + 117, + 105, + 116, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 105, + 110, + 102, + 111, + 114, + 109, + 97, + 116, + 105, + 101, + 111, + 98, + 106, + 101, + 99, + 116, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 100, + 101, + 101, + 108, + 122, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 116, + 111, + 101, + 108, + 105, + 99, + 104, + 116, + 105, + 110, + 103, + 34, + 58, + 34, + 34, + 44, + 34, + 118, + 101, + 114, + 115, + 105, + 101, + 100, + 97, + 116, + 117, + 109, + 34, + 58, + 34, + 50, + 48, + 48, + 53, + 45, + 48, + 49, + 45, + 48, + 49, + 34, + 125 + ] + }, + "cookie": [], + "responseTime": 173, + "responseSize": 1278 + }, + "id": "0a0f25ce-aabe-4fb5-882c-956ffbae4ae8" + }, + { + "cursor": { + "ref": "a614a315-3c10-4284-97cf-2d38ed93e913", + "length": 313, + "cycles": 1, + "position": 60, + "iteration": 0, + "httpRequestId": "d8bb979e-9af1-4dfb-b65b-1d4d514e78c2" + }, + "item": { + "id": "72429566-51b9-4f21-bdff-27b58e0c3329", + "name": "Zaak openbaar", + "request": { + "url": { + "path": [ + "zaken" + ], + "host": [ + "{{zrc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Crs", + "value": "EPSG:4326" + }, + { + "key": "Accept-Crs", + "value": "EPSG:4326" + }, + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n \"bronorganisatie\": \"000000000\",\n \"omschrijving\": \"string\",\n \"toelichting\": \"string\",\n \"registratiedatum\": \"2019-04-09\",\n \"verantwoordelijkeOrganisatie\": \"000000000\",\n \"zaaktype\": \"{{zaaktype_for_auth_url}}\",\n \"startdatum\": \"2019-04-09\",\n \"einddatumGepland\": \"2019-04-20\",\n \"uiterlijkeEinddatumAfdoening\": \"2019-04-09\",\n \"publicatiedatum\": \"2019-04-09\",\n \"vertrouwelijkheidaanduiding\": \"openbaar\",\n \"betalingsindicatie\": \"geheel\",\n \"laatsteBetaalDatum\": \"2019-01-01\",\n \"zaakgeometrie\": {\n \"type\": \"Point\",\n \"coordinates\": [\n 53,\n 5\n ]\n },\n \"opschorting\": {\n \"indicatie\": true,\n \"reden\": \"string\"\n },\n \"selectielijstklasse\": \"{{selectielijstklasse_url}}\",\n \"archiefstatus\": \"nog_te_archiveren\",\n \"deelzaaktypen\" : [\"{{deelzaaktype_url}}\"]\n}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "c130145f-577c-484d-8f7b-ba3683a97fe2", + "type": "text/javascript", + "packages": {}, + "exec": [ + "if(pm.response.code == 201) {", + " var zaak = pm.response.json();", + " pm.environment.set(\"openbare_zaak_url\", pm.response.json().url);", + "}" + ], + "_lastExecutionId": "17d7d44a-99f4-42ba-b23e-0d4330394298" + } + }, + { + "listen": "prerequest", + "script": { + "id": "23efe648-b696-4dc4-aa6b-37ed710bc2f5", + "type": "text/javascript", + "packages": {}, + "exec": [ + "" + ], + "_lastExecutionId": "66d6e4b7-4e24-43f5-8240-12086ddbfb8b" + } + } + ] + }, + "request": { + "url": { + "protocol": "http", + "port": "8080", + "path": [ + "index.php", + "apps", + "procest", + "api", + "zgw", + "zaken", + "v1", + "zaken" + ], + "host": [ + "localhost" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Crs", + "value": "EPSG:4326" + }, + { + "key": "Accept-Crs", + "value": "EPSG:4326" + }, + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Authorization", + "value": "Bearer eyJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJwcm9jZXN0LWFkbWluIiwiY2xpZW50X2lkIjoicHJvY2VzdC1hZG1pbiIsImlhdCI6IjE3NzMxNDUxNTUiLCJ1c2VyX2lkIjoicHJvY2VzdC1hZG1pbiIsInVzZXJfcmVwcmVzZW50YXRpb24iOiIifQ.N_FGdmN7oBQr4BkqcPejtT4wFfaqBl2FPcCchjjFDfE", + "system": true + }, + { + "key": "User-Agent", + "value": "PostmanRuntime/7.39.1", + "system": true + }, + { + "key": "Accept", + "value": "*/*", + "system": true + }, + { + "key": "Cache-Control", + "value": "no-cache", + "system": true + }, + { + "key": "Postman-Token", + "value": "0c4491e9-3d6a-4ac6-87d1-1afe216198d9", + "system": true + }, + { + "key": "Host", + "value": "localhost:8080", + "system": true + }, + { + "key": "Accept-Encoding", + "value": "gzip, deflate, br", + "system": true + }, + { + "key": "Connection", + "value": "keep-alive", + "system": true + }, + { + "key": "Content-Length", + "value": "1096", + "system": true + }, + { + "key": "Cookie", + "value": "ocvp3112b4wg=fe56f788581da3e933a82d94ab3803e5; oc_sessionPassphrase=LBNdKxRzA0iqoULIruNxDDh2BK3O%2BrCIU8aUmiUcOFvy5Xw1YfjwQNlmBW2IkGwJYtxXh9%2BwDN6vYuGNX07tXzkBtjQJUWTGdzf8AIOUIVxVx5DfyWAQZ7nmYmQv6XSE; nc_sameSiteCookielax=true; nc_sameSiteCookiestrict=true", + "system": true + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n \"bronorganisatie\": \"000000000\",\n \"omschrijving\": \"string\",\n \"toelichting\": \"string\",\n \"registratiedatum\": \"2019-04-09\",\n \"verantwoordelijkeOrganisatie\": \"000000000\",\n \"zaaktype\": \"http://localhost:8080/index.php/apps/procest/api/zgw/catalogi/v1/zaaktypen/e9952baf-06db-4cfc-9613-c03a558bf1fb\",\n \"startdatum\": \"2019-04-09\",\n \"einddatumGepland\": \"2019-04-20\",\n \"uiterlijkeEinddatumAfdoening\": \"2019-04-09\",\n \"publicatiedatum\": \"2019-04-09\",\n \"vertrouwelijkheidaanduiding\": \"openbaar\",\n \"betalingsindicatie\": \"geheel\",\n \"laatsteBetaalDatum\": \"2019-01-01\",\n \"zaakgeometrie\": {\n \"type\": \"Point\",\n \"coordinates\": [\n 53,\n 5\n ]\n },\n \"opschorting\": {\n \"indicatie\": true,\n \"reden\": \"string\"\n },\n \"selectielijstklasse\": \"https://selectielijst.openzaak.nl/api/v1/resultaten/0eb8f19f-d55e-4a15-8b5f-26cdf07482c1\",\n \"archiefstatus\": \"nog_te_archiveren\",\n \"deelzaaktypen\" : [\"http://localhost:8080/index.php/apps/procest/api/zgw/catalogi/v1/zaaktypen/7571bffe-5579-4295-9fac-87a9a6b6c5ac\"]\n}" + }, + "auth": { + "type": "jwt", + "jwt": [ + { + "type": "string", + "value": "{\r\n \"iss\": \"procest-admin\",\r\n \"client_id\": \"procest-admin\",\r\n \"iat\": \"1773145155\",\r\n \"user_id\": \"procest-admin\",\r\n \"user_representation\": \"\"\r\n}", + "key": "payload" + }, + { + "type": "string", + "value": "procest-admin-secret-key-for-testing", + "key": "secret" + }, + { + "type": "string", + "value": "HS256", + "key": "algorithm" + }, + { + "type": "boolean", + "value": false, + "key": "isSecretBase64Encoded" + }, + { + "type": "string", + "value": "header", + "key": "addTokenTo" + }, + { + "type": "string", + "value": "Bearer", + "key": "headerPrefix" + }, + { + "type": "string", + "value": "token", + "key": "queryParamKey" + }, + { + "type": "string", + "value": "{}", + "key": "header" + } + ] + } + }, + "response": { + "id": "7c45095c-a7af-47ce-af63-ad17181b7798", + "status": "Created", + "code": 201, + "header": [ + { + "key": "Date", + "value": "Tue, 10 Mar 2026 12:19:14 GMT" + }, + { + "key": "Server", + "value": "Apache/2.4.66 (Debian)" + }, + { + "key": "X-Content-Type-Options", + "value": "nosniff" + }, + { + "key": "X-Frame-Options", + "value": "SAMEORIGIN" + }, + { + "key": "X-Permitted-Cross-Domain-Policies", + "value": "none" + }, + { + "key": "X-Robots-Tag", + "value": "noindex, nofollow" + }, + { + "key": "Referrer-Policy", + "value": "no-referrer" + }, + { + "key": "X-Powered-By", + "value": "PHP/8.3.30" + }, + { + "key": "Content-Security-Policy", + "value": "default-src 'none';base-uri 'none';manifest-src 'self';frame-ancestors 'none'" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=fe56f788581da3e933a82d94ab3803e5; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=fe56f788581da3e933a82d94ab3803e5; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=fe56f788581da3e933a82d94ab3803e5; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=fe56f788581da3e933a82d94ab3803e5; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=fe56f788581da3e933a82d94ab3803e5; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=3295d5b216a423eae93f2fd6042447ea; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=3295d5b216a423eae93f2fd6042447ea; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=3295d5b216a423eae93f2fd6042447ea; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=3295d5b216a423eae93f2fd6042447ea; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=3295d5b216a423eae93f2fd6042447ea; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "X-Request-Id", + "value": "jwkkMy5gRg2dinBZR4oC" + }, + { + "key": "Cache-Control", + "value": "no-cache, no-store, must-revalidate" + }, + { + "key": "Feature-Policy", + "value": "autoplay 'none';camera 'none';fullscreen 'none';geolocation 'none';microphone 'none';payment 'none'" + }, + { + "key": "X-User-Id", + "value": "admin" + }, + { + "key": "Content-Length", + "value": "799" + }, + { + "key": "Keep-Alive", + "value": "timeout=5, max=90" + }, + { + "key": "Connection", + "value": "Keep-Alive" + }, + { + "key": "Content-Type", + "value": "application/json; charset=utf-8" + } + ], + "stream": { + "type": "Buffer", + "data": [ + 123, + 34, + 117, + 114, + 108, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 122, + 97, + 107, + 101, + 110, + 92, + 47, + 118, + 49, + 92, + 47, + 122, + 97, + 107, + 101, + 110, + 92, + 47, + 51, + 53, + 100, + 54, + 97, + 52, + 56, + 56, + 45, + 101, + 48, + 57, + 98, + 45, + 52, + 98, + 101, + 98, + 45, + 57, + 98, + 56, + 56, + 45, + 99, + 57, + 54, + 100, + 48, + 55, + 57, + 50, + 55, + 57, + 54, + 53, + 34, + 44, + 34, + 117, + 117, + 105, + 100, + 34, + 58, + 34, + 51, + 53, + 100, + 54, + 97, + 52, + 56, + 56, + 45, + 101, + 48, + 57, + 98, + 45, + 52, + 98, + 101, + 98, + 45, + 57, + 98, + 56, + 56, + 45, + 99, + 57, + 54, + 100, + 48, + 55, + 57, + 50, + 55, + 57, + 54, + 53, + 34, + 44, + 34, + 105, + 100, + 101, + 110, + 116, + 105, + 102, + 105, + 99, + 97, + 116, + 105, + 101, + 34, + 58, + 34, + 90, + 65, + 65, + 75, + 45, + 84, + 66, + 79, + 78, + 75, + 51, + 45, + 65, + 65, + 54, + 66, + 65, + 53, + 34, + 44, + 34, + 111, + 109, + 115, + 99, + 104, + 114, + 105, + 106, + 118, + 105, + 110, + 103, + 34, + 58, + 34, + 115, + 116, + 114, + 105, + 110, + 103, + 34, + 44, + 34, + 116, + 111, + 101, + 108, + 105, + 99, + 104, + 116, + 105, + 110, + 103, + 34, + 58, + 34, + 115, + 116, + 114, + 105, + 110, + 103, + 34, + 44, + 34, + 122, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 105, + 92, + 47, + 118, + 49, + 92, + 47, + 122, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 110, + 92, + 47, + 101, + 57, + 57, + 53, + 50, + 98, + 97, + 102, + 45, + 48, + 54, + 100, + 98, + 45, + 52, + 99, + 102, + 99, + 45, + 57, + 54, + 49, + 51, + 45, + 99, + 48, + 51, + 97, + 53, + 53, + 56, + 98, + 102, + 49, + 102, + 98, + 34, + 44, + 34, + 114, + 101, + 103, + 105, + 115, + 116, + 114, + 97, + 116, + 105, + 101, + 100, + 97, + 116, + 117, + 109, + 34, + 58, + 34, + 50, + 48, + 50, + 54, + 45, + 48, + 51, + 45, + 49, + 48, + 84, + 49, + 50, + 58, + 49, + 57, + 58, + 49, + 53, + 43, + 48, + 48, + 58, + 48, + 48, + 34, + 44, + 34, + 115, + 116, + 97, + 114, + 116, + 100, + 97, + 116, + 117, + 109, + 34, + 58, + 34, + 50, + 48, + 49, + 57, + 45, + 48, + 52, + 45, + 48, + 57, + 34, + 44, + 34, + 101, + 105, + 110, + 100, + 100, + 97, + 116, + 117, + 109, + 34, + 58, + 110, + 117, + 108, + 108, + 44, + 34, + 101, + 105, + 110, + 100, + 100, + 97, + 116, + 117, + 109, + 71, + 101, + 112, + 108, + 97, + 110, + 100, + 34, + 58, + 34, + 50, + 48, + 49, + 57, + 45, + 48, + 52, + 45, + 50, + 48, + 34, + 44, + 34, + 117, + 105, + 116, + 101, + 114, + 108, + 105, + 106, + 107, + 101, + 69, + 105, + 110, + 100, + 100, + 97, + 116, + 117, + 109, + 65, + 102, + 100, + 111, + 101, + 110, + 105, + 110, + 103, + 34, + 58, + 34, + 50, + 48, + 49, + 57, + 45, + 48, + 52, + 45, + 48, + 57, + 34, + 44, + 34, + 118, + 101, + 114, + 116, + 114, + 111, + 117, + 119, + 101, + 108, + 105, + 106, + 107, + 104, + 101, + 105, + 100, + 97, + 97, + 110, + 100, + 117, + 105, + 100, + 105, + 110, + 103, + 34, + 58, + 34, + 111, + 112, + 101, + 110, + 98, + 97, + 97, + 114, + 34, + 44, + 34, + 118, + 101, + 114, + 97, + 110, + 116, + 119, + 111, + 111, + 114, + 100, + 101, + 108, + 105, + 106, + 107, + 101, + 79, + 114, + 103, + 97, + 110, + 105, + 115, + 97, + 116, + 105, + 101, + 34, + 58, + 34, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 34, + 44, + 34, + 97, + 114, + 99, + 104, + 105, + 101, + 102, + 110, + 111, + 109, + 105, + 110, + 97, + 116, + 105, + 101, + 34, + 58, + 110, + 117, + 108, + 108, + 44, + 34, + 97, + 114, + 99, + 104, + 105, + 101, + 102, + 97, + 99, + 116, + 105, + 101, + 100, + 97, + 116, + 117, + 109, + 34, + 58, + 110, + 117, + 108, + 108, + 44, + 34, + 97, + 114, + 99, + 104, + 105, + 101, + 102, + 115, + 116, + 97, + 116, + 117, + 115, + 34, + 58, + 34, + 110, + 111, + 103, + 95, + 116, + 101, + 95, + 97, + 114, + 99, + 104, + 105, + 118, + 101, + 114, + 101, + 110, + 34, + 44, + 34, + 98, + 101, + 116, + 97, + 108, + 105, + 110, + 103, + 115, + 105, + 110, + 100, + 105, + 99, + 97, + 116, + 105, + 101, + 34, + 58, + 34, + 103, + 101, + 104, + 101, + 101, + 108, + 34, + 44, + 34, + 108, + 97, + 97, + 116, + 115, + 116, + 101, + 66, + 101, + 116, + 97, + 97, + 108, + 100, + 97, + 116, + 117, + 109, + 34, + 58, + 110, + 117, + 108, + 108, + 44, + 34, + 104, + 111, + 111, + 102, + 100, + 122, + 97, + 97, + 107, + 34, + 58, + 110, + 117, + 108, + 108, + 125 + ] + }, + "cookie": [], + "responseTime": 249, + "responseSize": 799 + }, + "id": "72429566-51b9-4f21-bdff-27b58e0c3329" + }, + { + "cursor": { + "ref": "1d918da0-e128-42e0-9cb8-0db40242aaae", + "length": 313, + "cycles": 1, + "position": 61, + "iteration": 0, + "httpRequestId": "bea45fad-390e-4c69-bcf7-c468052ae84d" + }, + "item": { + "id": "b9060729-3d7b-4d80-979f-7322be84c103", + "name": "Zaak geheim", + "request": { + "url": { + "path": [ + "zaken" + ], + "host": [ + "{{zrc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Crs", + "value": "EPSG:4326" + }, + { + "key": "Accept-Crs", + "value": "EPSG:4326" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\r\n \"bronorganisatie\": \"000000000\",\r\n \"omschrijving\": \"string\",\r\n \"toelichting\": \"string\",\r\n \"registratiedatum\": \"2019-04-09\",\r\n \"verantwoordelijkeOrganisatie\": \"000000000\",\r\n \"zaaktype\": \"{{zaaktype_for_auth_url}}\",\r\n \"startdatum\": \"2019-04-09\",\r\n \"einddatumGepland\": \"2019-04-20\",\r\n \"uiterlijkeEinddatumAfdoening\": \"2019-04-09\",\r\n \"publicatiedatum\": \"2019-04-09\",\r\n \"vertrouwelijkheidaanduiding\": \"geheim\",\r\n \"betalingsindicatie\": \"geheel\",\r\n \"laatsteBetaalDatum\": \"2019-01-01\",\r\n \"zaakgeometrie\": {\r\n \"type\": \"Point\",\r\n \"coordinates\": [\r\n 53,\r\n 5\r\n ]\r\n },\r\n \"opschorting\": {\r\n \"indicatie\": true,\r\n \"reden\": \"string\"\r\n },\r\n \"selectielijstklasse\": \"{{selectielijstklasse_url}}\",\r\n \"archiefstatus\": \"nog_te_archiveren\",\r\n \"deelzaaktypen\" : [\"{{deelzaaktype_url}}\"]\r\n}", + "options": { + "raw": { + "language": "json" + } + } + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "777e04b0-8d65-4eaf-8caf-36300f8ebf59", + "type": "text/javascript", + "packages": {}, + "exec": [ + "if(pm.response.code == 201) {\r", + " var zaak = pm.response.json();\r", + " pm.environment.set(\"geheime_zaak_url\", pm.response.json().url);\r", + "}" + ], + "_lastExecutionId": "74febb73-de61-4b45-952d-cb33de857d9a" + } + } + ] + }, + "request": { + "url": { + "protocol": "http", + "port": "8080", + "path": [ + "index.php", + "apps", + "procest", + "api", + "zgw", + "zaken", + "v1", + "zaken" + ], + "host": [ + "localhost" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Crs", + "value": "EPSG:4326" + }, + { + "key": "Accept-Crs", + "value": "EPSG:4326" + }, + { + "key": "Content-Type", + "value": "application/json", + "system": true + }, + { + "key": "Authorization", + "value": "Bearer eyJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJwcm9jZXN0LWFkbWluIiwiY2xpZW50X2lkIjoicHJvY2VzdC1hZG1pbiIsImlhdCI6IjE3NzMxNDUxNTUiLCJ1c2VyX2lkIjoicHJvY2VzdC1hZG1pbiIsInVzZXJfcmVwcmVzZW50YXRpb24iOiIifQ.N_FGdmN7oBQr4BkqcPejtT4wFfaqBl2FPcCchjjFDfE", + "system": true + }, + { + "key": "User-Agent", + "value": "PostmanRuntime/7.39.1", + "system": true + }, + { + "key": "Accept", + "value": "*/*", + "system": true + }, + { + "key": "Cache-Control", + "value": "no-cache", + "system": true + }, + { + "key": "Postman-Token", + "value": "79db4f4f-8841-464d-b25e-9fd550f2cb7b", + "system": true + }, + { + "key": "Host", + "value": "localhost:8080", + "system": true + }, + { + "key": "Accept-Encoding", + "value": "gzip, deflate, br", + "system": true + }, + { + "key": "Connection", + "value": "keep-alive", + "system": true + }, + { + "key": "Content-Length", + "value": "1122", + "system": true + }, + { + "key": "Cookie", + "value": "ocvp3112b4wg=3295d5b216a423eae93f2fd6042447ea; oc_sessionPassphrase=LBNdKxRzA0iqoULIruNxDDh2BK3O%2BrCIU8aUmiUcOFvy5Xw1YfjwQNlmBW2IkGwJYtxXh9%2BwDN6vYuGNX07tXzkBtjQJUWTGdzf8AIOUIVxVx5DfyWAQZ7nmYmQv6XSE; nc_sameSiteCookielax=true; nc_sameSiteCookiestrict=true", + "system": true + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\r\n \"bronorganisatie\": \"000000000\",\r\n \"omschrijving\": \"string\",\r\n \"toelichting\": \"string\",\r\n \"registratiedatum\": \"2019-04-09\",\r\n \"verantwoordelijkeOrganisatie\": \"000000000\",\r\n \"zaaktype\": \"http://localhost:8080/index.php/apps/procest/api/zgw/catalogi/v1/zaaktypen/e9952baf-06db-4cfc-9613-c03a558bf1fb\",\r\n \"startdatum\": \"2019-04-09\",\r\n \"einddatumGepland\": \"2019-04-20\",\r\n \"uiterlijkeEinddatumAfdoening\": \"2019-04-09\",\r\n \"publicatiedatum\": \"2019-04-09\",\r\n \"vertrouwelijkheidaanduiding\": \"geheim\",\r\n \"betalingsindicatie\": \"geheel\",\r\n \"laatsteBetaalDatum\": \"2019-01-01\",\r\n \"zaakgeometrie\": {\r\n \"type\": \"Point\",\r\n \"coordinates\": [\r\n 53,\r\n 5\r\n ]\r\n },\r\n \"opschorting\": {\r\n \"indicatie\": true,\r\n \"reden\": \"string\"\r\n },\r\n \"selectielijstklasse\": \"https://selectielijst.openzaak.nl/api/v1/resultaten/0eb8f19f-d55e-4a15-8b5f-26cdf07482c1\",\r\n \"archiefstatus\": \"nog_te_archiveren\",\r\n \"deelzaaktypen\" : [\"http://localhost:8080/index.php/apps/procest/api/zgw/catalogi/v1/zaaktypen/7571bffe-5579-4295-9fac-87a9a6b6c5ac\"]\r\n}", + "options": { + "raw": { + "language": "json" + } + } + }, + "auth": { + "type": "jwt", + "jwt": [ + { + "type": "string", + "value": "{\r\n \"iss\": \"procest-admin\",\r\n \"client_id\": \"procest-admin\",\r\n \"iat\": \"1773145155\",\r\n \"user_id\": \"procest-admin\",\r\n \"user_representation\": \"\"\r\n}", + "key": "payload" + }, + { + "type": "string", + "value": "procest-admin-secret-key-for-testing", + "key": "secret" + }, + { + "type": "string", + "value": "HS256", + "key": "algorithm" + }, + { + "type": "boolean", + "value": false, + "key": "isSecretBase64Encoded" + }, + { + "type": "string", + "value": "header", + "key": "addTokenTo" + }, + { + "type": "string", + "value": "Bearer", + "key": "headerPrefix" + }, + { + "type": "string", + "value": "token", + "key": "queryParamKey" + }, + { + "type": "string", + "value": "{}", + "key": "header" + } + ] + } + }, + "response": { + "id": "22e08eb0-d906-4127-8217-e3442463fa4f", + "status": "Created", + "code": 201, + "header": [ + { + "key": "Date", + "value": "Tue, 10 Mar 2026 12:19:15 GMT" + }, + { + "key": "Server", + "value": "Apache/2.4.66 (Debian)" + }, + { + "key": "X-Content-Type-Options", + "value": "nosniff" + }, + { + "key": "X-Frame-Options", + "value": "SAMEORIGIN" + }, + { + "key": "X-Permitted-Cross-Domain-Policies", + "value": "none" + }, + { + "key": "X-Robots-Tag", + "value": "noindex, nofollow" + }, + { + "key": "Referrer-Policy", + "value": "no-referrer" + }, + { + "key": "X-Powered-By", + "value": "PHP/8.3.30" + }, + { + "key": "Content-Security-Policy", + "value": "default-src 'none';base-uri 'none';manifest-src 'self';frame-ancestors 'none'" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=3295d5b216a423eae93f2fd6042447ea; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=3295d5b216a423eae93f2fd6042447ea; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=3295d5b216a423eae93f2fd6042447ea; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=3295d5b216a423eae93f2fd6042447ea; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=3295d5b216a423eae93f2fd6042447ea; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=66ab81fd82c0ade5a63bb0da997a7149; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=66ab81fd82c0ade5a63bb0da997a7149; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=66ab81fd82c0ade5a63bb0da997a7149; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=66ab81fd82c0ade5a63bb0da997a7149; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=66ab81fd82c0ade5a63bb0da997a7149; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "X-Request-Id", + "value": "mDZaAl2inhnds49bJUWL" + }, + { + "key": "Cache-Control", + "value": "no-cache, no-store, must-revalidate" + }, + { + "key": "Feature-Policy", + "value": "autoplay 'none';camera 'none';fullscreen 'none';geolocation 'none';microphone 'none';payment 'none'" + }, + { + "key": "X-User-Id", + "value": "admin" + }, + { + "key": "Content-Length", + "value": "797" + }, + { + "key": "Keep-Alive", + "value": "timeout=5, max=89" + }, + { + "key": "Connection", + "value": "Keep-Alive" + }, + { + "key": "Content-Type", + "value": "application/json; charset=utf-8" + } + ], + "stream": { + "type": "Buffer", + "data": [ + 123, + 34, + 117, + 114, + 108, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 122, + 97, + 107, + 101, + 110, + 92, + 47, + 118, + 49, + 92, + 47, + 122, + 97, + 107, + 101, + 110, + 92, + 47, + 100, + 56, + 55, + 53, + 53, + 53, + 57, + 53, + 45, + 102, + 98, + 98, + 52, + 45, + 52, + 56, + 102, + 97, + 45, + 57, + 57, + 102, + 56, + 45, + 50, + 100, + 48, + 54, + 55, + 98, + 100, + 97, + 54, + 54, + 99, + 53, + 34, + 44, + 34, + 117, + 117, + 105, + 100, + 34, + 58, + 34, + 100, + 56, + 55, + 53, + 53, + 53, + 57, + 53, + 45, + 102, + 98, + 98, + 52, + 45, + 52, + 56, + 102, + 97, + 45, + 57, + 57, + 102, + 56, + 45, + 50, + 100, + 48, + 54, + 55, + 98, + 100, + 97, + 54, + 54, + 99, + 53, + 34, + 44, + 34, + 105, + 100, + 101, + 110, + 116, + 105, + 102, + 105, + 99, + 97, + 116, + 105, + 101, + 34, + 58, + 34, + 90, + 65, + 65, + 75, + 45, + 84, + 66, + 79, + 78, + 75, + 51, + 45, + 57, + 53, + 50, + 65, + 53, + 66, + 34, + 44, + 34, + 111, + 109, + 115, + 99, + 104, + 114, + 105, + 106, + 118, + 105, + 110, + 103, + 34, + 58, + 34, + 115, + 116, + 114, + 105, + 110, + 103, + 34, + 44, + 34, + 116, + 111, + 101, + 108, + 105, + 99, + 104, + 116, + 105, + 110, + 103, + 34, + 58, + 34, + 115, + 116, + 114, + 105, + 110, + 103, + 34, + 44, + 34, + 122, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 105, + 92, + 47, + 118, + 49, + 92, + 47, + 122, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 110, + 92, + 47, + 101, + 57, + 57, + 53, + 50, + 98, + 97, + 102, + 45, + 48, + 54, + 100, + 98, + 45, + 52, + 99, + 102, + 99, + 45, + 57, + 54, + 49, + 51, + 45, + 99, + 48, + 51, + 97, + 53, + 53, + 56, + 98, + 102, + 49, + 102, + 98, + 34, + 44, + 34, + 114, + 101, + 103, + 105, + 115, + 116, + 114, + 97, + 116, + 105, + 101, + 100, + 97, + 116, + 117, + 109, + 34, + 58, + 34, + 50, + 48, + 50, + 54, + 45, + 48, + 51, + 45, + 49, + 48, + 84, + 49, + 50, + 58, + 49, + 57, + 58, + 49, + 53, + 43, + 48, + 48, + 58, + 48, + 48, + 34, + 44, + 34, + 115, + 116, + 97, + 114, + 116, + 100, + 97, + 116, + 117, + 109, + 34, + 58, + 34, + 50, + 48, + 49, + 57, + 45, + 48, + 52, + 45, + 48, + 57, + 34, + 44, + 34, + 101, + 105, + 110, + 100, + 100, + 97, + 116, + 117, + 109, + 34, + 58, + 110, + 117, + 108, + 108, + 44, + 34, + 101, + 105, + 110, + 100, + 100, + 97, + 116, + 117, + 109, + 71, + 101, + 112, + 108, + 97, + 110, + 100, + 34, + 58, + 34, + 50, + 48, + 49, + 57, + 45, + 48, + 52, + 45, + 50, + 48, + 34, + 44, + 34, + 117, + 105, + 116, + 101, + 114, + 108, + 105, + 106, + 107, + 101, + 69, + 105, + 110, + 100, + 100, + 97, + 116, + 117, + 109, + 65, + 102, + 100, + 111, + 101, + 110, + 105, + 110, + 103, + 34, + 58, + 34, + 50, + 48, + 49, + 57, + 45, + 48, + 52, + 45, + 48, + 57, + 34, + 44, + 34, + 118, + 101, + 114, + 116, + 114, + 111, + 117, + 119, + 101, + 108, + 105, + 106, + 107, + 104, + 101, + 105, + 100, + 97, + 97, + 110, + 100, + 117, + 105, + 100, + 105, + 110, + 103, + 34, + 58, + 34, + 103, + 101, + 104, + 101, + 105, + 109, + 34, + 44, + 34, + 118, + 101, + 114, + 97, + 110, + 116, + 119, + 111, + 111, + 114, + 100, + 101, + 108, + 105, + 106, + 107, + 101, + 79, + 114, + 103, + 97, + 110, + 105, + 115, + 97, + 116, + 105, + 101, + 34, + 58, + 34, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 34, + 44, + 34, + 97, + 114, + 99, + 104, + 105, + 101, + 102, + 110, + 111, + 109, + 105, + 110, + 97, + 116, + 105, + 101, + 34, + 58, + 110, + 117, + 108, + 108, + 44, + 34, + 97, + 114, + 99, + 104, + 105, + 101, + 102, + 97, + 99, + 116, + 105, + 101, + 100, + 97, + 116, + 117, + 109, + 34, + 58, + 110, + 117, + 108, + 108, + 44, + 34, + 97, + 114, + 99, + 104, + 105, + 101, + 102, + 115, + 116, + 97, + 116, + 117, + 115, + 34, + 58, + 34, + 110, + 111, + 103, + 95, + 116, + 101, + 95, + 97, + 114, + 99, + 104, + 105, + 118, + 101, + 114, + 101, + 110, + 34, + 44, + 34, + 98, + 101, + 116, + 97, + 108, + 105, + 110, + 103, + 115, + 105, + 110, + 100, + 105, + 99, + 97, + 116, + 105, + 101, + 34, + 58, + 34, + 103, + 101, + 104, + 101, + 101, + 108, + 34, + 44, + 34, + 108, + 97, + 97, + 116, + 115, + 116, + 101, + 66, + 101, + 116, + 97, + 97, + 108, + 100, + 97, + 116, + 117, + 109, + 34, + 58, + 110, + 117, + 108, + 108, + 44, + 34, + 104, + 111, + 111, + 102, + 100, + 122, + 97, + 97, + 107, + 34, + 58, + 110, + 117, + 108, + 108, + 125 + ] + }, + "cookie": [], + "responseTime": 245, + "responseSize": 797 + }, + "id": "b9060729-3d7b-4d80-979f-7322be84c103" + }, + { + "cursor": { + "ref": "bd8c9d1c-89a3-461c-863a-5ee326d86c52", + "length": 313, + "cycles": 1, + "position": 62, + "iteration": 0, + "httpRequestId": "f9fc9481-1653-4711-b735-61fea5038f3f" + }, + "item": { + "id": "ae09b0d3-8f17-478f-a72f-61a419ee6948", + "name": "set restricted token", + "request": { + "url": { + "path": [ + "catalogussen" + ], + "host": [ + "{{ztc_url}}" + ], + "query": [], + "variable": [] + }, + "method": "GET" + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "90a8142b-ab75-47d1-8d00-a6732aa4af5b", + "type": "text/javascript", + "packages": {}, + "exec": [ + "" + ], + "_lastExecutionId": "f9cd22d0-4d11-472f-8597-777e37c7db28" + } + }, + { + "listen": "prerequest", + "script": { + "id": "c61b57d9-e431-4b75-83f6-4f16f50af4ce", + "type": "text/javascript", + "packages": {}, + "exec": [ + " pm.environment.set(\"jwt_token\", pm.environment.get(\"jwt-limited\"));\r", + " pm.environment.set(\"_original_client_id\", pm.environment.get(\"client_id\"));", + " pm.environment.set(\"_original_secret\", pm.environment.get(\"secret\"));", + " pm.environment.set(\"client_id\", pm.environment.get(\"client_id_limited\"));", + " pm.environment.set(\"secret\", pm.environment.get(\"secret_limited\"));", + " pm.environment.set(\"client_id\", pm.environment.get(\"client_id_limited\"));", + " pm.environment.set(\"secret\", pm.environment.get(\"secret_limited\"));", + " " + ], + "_lastExecutionId": "77b84a21-6cd9-4133-812b-93869cef6b89" + } + } + ] + }, + "request": { + "url": { + "protocol": "http", + "port": "8080", + "path": [ + "index.php", + "apps", + "procest", + "api", + "zgw", + "catalogi", + "v1", + "catalogussen" + ], + "host": [ + "localhost" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Authorization", + "value": "Bearer eyJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJwcm9jZXN0LWxpbWl0ZWQiLCJjbGllbnRfaWQiOiJwcm9jZXN0LWxpbWl0ZWQiLCJpYXQiOiIxNzczMTQ1MTU1IiwidXNlcl9pZCI6InByb2Nlc3QtbGltaXRlZCIsInVzZXJfcmVwcmVzZW50YXRpb24iOiIifQ.uI_fRafjubz2PvbVNVlRSMoJ591rEHpKd42jLXHNA0U", + "system": true + }, + { + "key": "User-Agent", + "value": "PostmanRuntime/7.39.1", + "system": true + }, + { + "key": "Accept", + "value": "*/*", + "system": true + }, + { + "key": "Cache-Control", + "value": "no-cache", + "system": true + }, + { + "key": "Postman-Token", + "value": "736b1a30-4496-4183-98b9-37884e6be0fd", + "system": true + }, + { + "key": "Host", + "value": "localhost:8080", + "system": true + }, + { + "key": "Accept-Encoding", + "value": "gzip, deflate, br", + "system": true + }, + { + "key": "Connection", + "value": "keep-alive", + "system": true + }, + { + "key": "Cookie", + "value": "ocvp3112b4wg=66ab81fd82c0ade5a63bb0da997a7149; oc_sessionPassphrase=LBNdKxRzA0iqoULIruNxDDh2BK3O%2BrCIU8aUmiUcOFvy5Xw1YfjwQNlmBW2IkGwJYtxXh9%2BwDN6vYuGNX07tXzkBtjQJUWTGdzf8AIOUIVxVx5DfyWAQZ7nmYmQv6XSE; nc_sameSiteCookielax=true; nc_sameSiteCookiestrict=true", + "system": true + } + ], + "method": "GET", + "auth": { + "type": "jwt", + "jwt": [ + { + "type": "string", + "value": "{\r\n \"iss\": \"procest-limited\",\r\n \"client_id\": \"procest-limited\",\r\n \"iat\": \"1773145155\",\r\n \"user_id\": \"procest-limited\",\r\n \"user_representation\": \"\"\r\n}", + "key": "payload" + }, + { + "type": "string", + "value": "procest-limited-secret-key-for-test", + "key": "secret" + }, + { + "type": "string", + "value": "HS256", + "key": "algorithm" + }, + { + "type": "boolean", + "value": false, + "key": "isSecretBase64Encoded" + }, + { + "type": "string", + "value": "header", + "key": "addTokenTo" + }, + { + "type": "string", + "value": "Bearer", + "key": "headerPrefix" + }, + { + "type": "string", + "value": "token", + "key": "queryParamKey" + }, + { + "type": "string", + "value": "{}", + "key": "header" + } + ] + } + }, + "response": { + "id": "3369315b-0077-4e24-bb3e-cf5fd664daf5", + "status": "OK", + "code": 200, + "header": [ + { + "key": "Date", + "value": "Tue, 10 Mar 2026 12:19:15 GMT" + }, + { + "key": "Server", + "value": "Apache/2.4.66 (Debian)" + }, + { + "key": "X-Content-Type-Options", + "value": "nosniff" + }, + { + "key": "X-Frame-Options", + "value": "SAMEORIGIN" + }, + { + "key": "X-Permitted-Cross-Domain-Policies", + "value": "none" + }, + { + "key": "X-Robots-Tag", + "value": "noindex, nofollow" + }, + { + "key": "Referrer-Policy", + "value": "no-referrer" + }, + { + "key": "X-Powered-By", + "value": "PHP/8.3.30" + }, + { + "key": "Content-Security-Policy", + "value": "default-src 'none';base-uri 'none';manifest-src 'self';frame-ancestors 'none'" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=66ab81fd82c0ade5a63bb0da997a7149; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=66ab81fd82c0ade5a63bb0da997a7149; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=66ab81fd82c0ade5a63bb0da997a7149; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=66ab81fd82c0ade5a63bb0da997a7149; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=66ab81fd82c0ade5a63bb0da997a7149; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=9ccf4aa2c789e198f5da0aec65ccd9ae; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=9ccf4aa2c789e198f5da0aec65ccd9ae; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=9ccf4aa2c789e198f5da0aec65ccd9ae; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "X-Request-Id", + "value": "H9RTDz6xQ3UpRrWJIRKd" + }, + { + "key": "Cache-Control", + "value": "no-cache, no-store, must-revalidate" + }, + { + "key": "Feature-Policy", + "value": "autoplay 'none';camera 'none';fullscreen 'none';geolocation 'none';microphone 'none';payment 'none'" + }, + { + "key": "Content-Encoding", + "value": "gzip" + }, + { + "key": "Content-Length", + "value": "919" + }, + { + "key": "Keep-Alive", + "value": "timeout=5, max=88" + }, + { + "key": "Connection", + "value": "Keep-Alive" + }, + { + "key": "Content-Type", + "value": "application/json; charset=utf-8" + } + ], + "stream": { + "type": "Buffer", + "data": [ + 123, + 34, + 99, + 111, + 117, + 110, + 116, + 34, + 58, + 50, + 49, + 50, + 44, + 34, + 110, + 101, + 120, + 116, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 105, + 92, + 47, + 118, + 49, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 117, + 115, + 115, + 101, + 110, + 63, + 112, + 97, + 103, + 101, + 61, + 50, + 34, + 44, + 34, + 112, + 114, + 101, + 118, + 105, + 111, + 117, + 115, + 34, + 58, + 110, + 117, + 108, + 108, + 44, + 34, + 114, + 101, + 115, + 117, + 108, + 116, + 115, + 34, + 58, + 91, + 123, + 34, + 117, + 114, + 108, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 105, + 92, + 47, + 118, + 49, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 117, + 115, + 115, + 101, + 110, + 92, + 47, + 100, + 51, + 100, + 101, + 101, + 56, + 101, + 98, + 45, + 56, + 100, + 50, + 56, + 45, + 52, + 50, + 50, + 101, + 45, + 98, + 48, + 97, + 102, + 45, + 97, + 57, + 57, + 57, + 101, + 100, + 57, + 55, + 50, + 50, + 51, + 102, + 34, + 44, + 34, + 117, + 117, + 105, + 100, + 34, + 58, + 34, + 100, + 51, + 100, + 101, + 101, + 56, + 101, + 98, + 45, + 56, + 100, + 50, + 56, + 45, + 52, + 50, + 50, + 101, + 45, + 98, + 48, + 97, + 102, + 45, + 97, + 57, + 57, + 57, + 101, + 100, + 57, + 55, + 50, + 50, + 51, + 102, + 34, + 44, + 34, + 100, + 111, + 109, + 101, + 105, + 110, + 34, + 58, + 34, + 65, + 65, + 66, + 34, + 44, + 34, + 114, + 115, + 105, + 110, + 34, + 58, + 34, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 34, + 44, + 34, + 99, + 111, + 110, + 116, + 97, + 99, + 116, + 112, + 101, + 114, + 115, + 111, + 111, + 110, + 66, + 101, + 104, + 101, + 101, + 114, + 78, + 97, + 97, + 109, + 34, + 58, + 34, + 84, + 101, + 115, + 116, + 32, + 80, + 101, + 114, + 115, + 111, + 111, + 110, + 34, + 44, + 34, + 99, + 111, + 110, + 116, + 97, + 99, + 116, + 112, + 101, + 114, + 115, + 111, + 111, + 110, + 66, + 101, + 104, + 101, + 101, + 114, + 84, + 101, + 108, + 101, + 102, + 111, + 111, + 110, + 110, + 117, + 109, + 109, + 101, + 114, + 34, + 58, + 34, + 34, + 44, + 34, + 99, + 111, + 110, + 116, + 97, + 99, + 116, + 112, + 101, + 114, + 115, + 111, + 111, + 110, + 66, + 101, + 104, + 101, + 101, + 114, + 69, + 109, + 97, + 105, + 108, + 97, + 100, + 114, + 101, + 115, + 34, + 58, + 34, + 34, + 44, + 34, + 122, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 98, + 101, + 115, + 108, + 117, + 105, + 116, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 105, + 110, + 102, + 111, + 114, + 109, + 97, + 116, + 105, + 101, + 111, + 98, + 106, + 101, + 99, + 116, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 125, + 44, + 123, + 34, + 117, + 114, + 108, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 105, + 92, + 47, + 118, + 49, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 117, + 115, + 115, + 101, + 110, + 92, + 47, + 57, + 51, + 51, + 52, + 102, + 49, + 49, + 48, + 45, + 98, + 97, + 48, + 98, + 45, + 52, + 50, + 49, + 55, + 45, + 56, + 57, + 48, + 51, + 45, + 98, + 97, + 55, + 49, + 52, + 48, + 55, + 102, + 48, + 97, + 50, + 50, + 34, + 44, + 34, + 117, + 117, + 105, + 100, + 34, + 58, + 34, + 57, + 51, + 51, + 52, + 102, + 49, + 49, + 48, + 45, + 98, + 97, + 48, + 98, + 45, + 52, + 50, + 49, + 55, + 45, + 56, + 57, + 48, + 51, + 45, + 98, + 97, + 55, + 49, + 52, + 48, + 55, + 102, + 48, + 97, + 50, + 50, + 34, + 44, + 34, + 100, + 111, + 109, + 101, + 105, + 110, + 34, + 58, + 34, + 90, + 71, + 87, + 84, + 34, + 44, + 34, + 114, + 115, + 105, + 110, + 34, + 58, + 34, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 34, + 44, + 34, + 99, + 111, + 110, + 116, + 97, + 99, + 116, + 112, + 101, + 114, + 115, + 111, + 111, + 110, + 66, + 101, + 104, + 101, + 101, + 114, + 78, + 97, + 97, + 109, + 34, + 58, + 34, + 84, + 101, + 115, + 116, + 32, + 80, + 101, + 114, + 115, + 111, + 111, + 110, + 34, + 44, + 34, + 99, + 111, + 110, + 116, + 97, + 99, + 116, + 112, + 101, + 114, + 115, + 111, + 111, + 110, + 66, + 101, + 104, + 101, + 101, + 114, + 84, + 101, + 108, + 101, + 102, + 111, + 111, + 110, + 110, + 117, + 109, + 109, + 101, + 114, + 34, + 58, + 34, + 34, + 44, + 34, + 99, + 111, + 110, + 116, + 97, + 99, + 116, + 112, + 101, + 114, + 115, + 111, + 111, + 110, + 66, + 101, + 104, + 101, + 101, + 114, + 69, + 109, + 97, + 105, + 108, + 97, + 100, + 114, + 101, + 115, + 34, + 58, + 34, + 34, + 44, + 34, + 122, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 98, + 101, + 115, + 108, + 117, + 105, + 116, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 105, + 110, + 102, + 111, + 114, + 109, + 97, + 116, + 105, + 101, + 111, + 98, + 106, + 101, + 99, + 116, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 125, + 44, + 123, + 34, + 117, + 114, + 108, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 105, + 92, + 47, + 118, + 49, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 117, + 115, + 115, + 101, + 110, + 92, + 47, + 99, + 57, + 101, + 56, + 97, + 99, + 56, + 56, + 45, + 52, + 55, + 53, + 55, + 45, + 52, + 101, + 101, + 49, + 45, + 97, + 56, + 102, + 48, + 45, + 57, + 55, + 51, + 98, + 51, + 101, + 97, + 100, + 57, + 52, + 55, + 100, + 34, + 44, + 34, + 117, + 117, + 105, + 100, + 34, + 58, + 34, + 99, + 57, + 101, + 56, + 97, + 99, + 56, + 56, + 45, + 52, + 55, + 53, + 55, + 45, + 52, + 101, + 101, + 49, + 45, + 97, + 56, + 102, + 48, + 45, + 57, + 55, + 51, + 98, + 51, + 101, + 97, + 100, + 57, + 52, + 55, + 100, + 34, + 44, + 34, + 100, + 111, + 109, + 101, + 105, + 110, + 34, + 58, + 34, + 65, + 65, + 66, + 34, + 44, + 34, + 114, + 115, + 105, + 110, + 34, + 58, + 34, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 34, + 44, + 34, + 99, + 111, + 110, + 116, + 97, + 99, + 116, + 112, + 101, + 114, + 115, + 111, + 111, + 110, + 66, + 101, + 104, + 101, + 101, + 114, + 78, + 97, + 97, + 109, + 34, + 58, + 34, + 84, + 101, + 115, + 116, + 32, + 80, + 101, + 114, + 115, + 111, + 111, + 110, + 34, + 44, + 34, + 99, + 111, + 110, + 116, + 97, + 99, + 116, + 112, + 101, + 114, + 115, + 111, + 111, + 110, + 66, + 101, + 104, + 101, + 101, + 114, + 84, + 101, + 108, + 101, + 102, + 111, + 111, + 110, + 110, + 117, + 109, + 109, + 101, + 114, + 34, + 58, + 34, + 34, + 44, + 34, + 99, + 111, + 110, + 116, + 97, + 99, + 116, + 112, + 101, + 114, + 115, + 111, + 111, + 110, + 66, + 101, + 104, + 101, + 101, + 114, + 69, + 109, + 97, + 105, + 108, + 97, + 100, + 114, + 101, + 115, + 34, + 58, + 34, + 34, + 44, + 34, + 122, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 98, + 101, + 115, + 108, + 117, + 105, + 116, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 105, + 110, + 102, + 111, + 114, + 109, + 97, + 116, + 105, + 101, + 111, + 98, + 106, + 101, + 99, + 116, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 125, + 44, + 123, + 34, + 117, + 114, + 108, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 105, + 92, + 47, + 118, + 49, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 117, + 115, + 115, + 101, + 110, + 92, + 47, + 100, + 54, + 100, + 51, + 52, + 57, + 52, + 50, + 45, + 50, + 49, + 51, + 53, + 45, + 52, + 50, + 97, + 51, + 45, + 97, + 57, + 55, + 102, + 45, + 51, + 52, + 102, + 55, + 57, + 99, + 54, + 55, + 54, + 99, + 57, + 55, + 34, + 44, + 34, + 117, + 117, + 105, + 100, + 34, + 58, + 34, + 100, + 54, + 100, + 51, + 52, + 57, + 52, + 50, + 45, + 50, + 49, + 51, + 53, + 45, + 52, + 50, + 97, + 51, + 45, + 97, + 57, + 55, + 102, + 45, + 51, + 52, + 102, + 55, + 57, + 99, + 54, + 55, + 54, + 99, + 57, + 55, + 34, + 44, + 34, + 100, + 111, + 109, + 101, + 105, + 110, + 34, + 58, + 34, + 65, + 65, + 66, + 34, + 44, + 34, + 114, + 115, + 105, + 110, + 34, + 58, + 34, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 34, + 44, + 34, + 99, + 111, + 110, + 116, + 97, + 99, + 116, + 112, + 101, + 114, + 115, + 111, + 111, + 110, + 66, + 101, + 104, + 101, + 101, + 114, + 78, + 97, + 97, + 109, + 34, + 58, + 34, + 84, + 101, + 115, + 116, + 32, + 80, + 101, + 114, + 115, + 111, + 111, + 110, + 34, + 44, + 34, + 99, + 111, + 110, + 116, + 97, + 99, + 116, + 112, + 101, + 114, + 115, + 111, + 111, + 110, + 66, + 101, + 104, + 101, + 101, + 114, + 84, + 101, + 108, + 101, + 102, + 111, + 111, + 110, + 110, + 117, + 109, + 109, + 101, + 114, + 34, + 58, + 34, + 34, + 44, + 34, + 99, + 111, + 110, + 116, + 97, + 99, + 116, + 112, + 101, + 114, + 115, + 111, + 111, + 110, + 66, + 101, + 104, + 101, + 101, + 114, + 69, + 109, + 97, + 105, + 108, + 97, + 100, + 114, + 101, + 115, + 34, + 58, + 34, + 34, + 44, + 34, + 122, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 98, + 101, + 115, + 108, + 117, + 105, + 116, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 105, + 110, + 102, + 111, + 114, + 109, + 97, + 116, + 105, + 101, + 111, + 98, + 106, + 101, + 99, + 116, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 125, + 44, + 123, + 34, + 117, + 114, + 108, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 105, + 92, + 47, + 118, + 49, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 117, + 115, + 115, + 101, + 110, + 92, + 47, + 55, + 99, + 99, + 99, + 101, + 55, + 97, + 57, + 45, + 101, + 52, + 98, + 57, + 45, + 52, + 56, + 101, + 51, + 45, + 56, + 97, + 53, + 51, + 45, + 99, + 97, + 102, + 56, + 48, + 102, + 54, + 97, + 55, + 98, + 99, + 55, + 34, + 44, + 34, + 117, + 117, + 105, + 100, + 34, + 58, + 34, + 55, + 99, + 99, + 99, + 101, + 55, + 97, + 57, + 45, + 101, + 52, + 98, + 57, + 45, + 52, + 56, + 101, + 51, + 45, + 56, + 97, + 53, + 51, + 45, + 99, + 97, + 102, + 56, + 48, + 102, + 54, + 97, + 55, + 98, + 99, + 55, + 34, + 44, + 34, + 100, + 111, + 109, + 101, + 105, + 110, + 34, + 58, + 34, + 65, + 65, + 66, + 34, + 44, + 34, + 114, + 115, + 105, + 110, + 34, + 58, + 34, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 34, + 44, + 34, + 99, + 111, + 110, + 116, + 97, + 99, + 116, + 112, + 101, + 114, + 115, + 111, + 111, + 110, + 66, + 101, + 104, + 101, + 101, + 114, + 78, + 97, + 97, + 109, + 34, + 58, + 34, + 84, + 101, + 115, + 116, + 32, + 80, + 101, + 114, + 115, + 111, + 111, + 110, + 34, + 44, + 34, + 99, + 111, + 110, + 116, + 97, + 99, + 116, + 112, + 101, + 114, + 115, + 111, + 111, + 110, + 66, + 101, + 104, + 101, + 101, + 114, + 84, + 101, + 108, + 101, + 102, + 111, + 111, + 110, + 110, + 117, + 109, + 109, + 101, + 114, + 34, + 58, + 34, + 34, + 44, + 34, + 99, + 111, + 110, + 116, + 97, + 99, + 116, + 112, + 101, + 114, + 115, + 111, + 111, + 110, + 66, + 101, + 104, + 101, + 101, + 114, + 69, + 109, + 97, + 105, + 108, + 97, + 100, + 114, + 101, + 115, + 34, + 58, + 34, + 34, + 44, + 34, + 122, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 98, + 101, + 115, + 108, + 117, + 105, + 116, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 105, + 110, + 102, + 111, + 114, + 109, + 97, + 116, + 105, + 101, + 111, + 98, + 106, + 101, + 99, + 116, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 125, + 44, + 123, + 34, + 117, + 114, + 108, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 105, + 92, + 47, + 118, + 49, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 117, + 115, + 115, + 101, + 110, + 92, + 47, + 57, + 55, + 98, + 54, + 99, + 50, + 102, + 57, + 45, + 101, + 53, + 51, + 51, + 45, + 52, + 100, + 101, + 57, + 45, + 98, + 100, + 51, + 51, + 45, + 51, + 57, + 98, + 51, + 97, + 49, + 57, + 99, + 53, + 56, + 97, + 50, + 34, + 44, + 34, + 117, + 117, + 105, + 100, + 34, + 58, + 34, + 57, + 55, + 98, + 54, + 99, + 50, + 102, + 57, + 45, + 101, + 53, + 51, + 51, + 45, + 52, + 100, + 101, + 57, + 45, + 98, + 100, + 51, + 51, + 45, + 51, + 57, + 98, + 51, + 97, + 49, + 57, + 99, + 53, + 56, + 97, + 50, + 34, + 44, + 34, + 100, + 111, + 109, + 101, + 105, + 110, + 34, + 58, + 34, + 65, + 65, + 66, + 34, + 44, + 34, + 114, + 115, + 105, + 110, + 34, + 58, + 34, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 34, + 44, + 34, + 99, + 111, + 110, + 116, + 97, + 99, + 116, + 112, + 101, + 114, + 115, + 111, + 111, + 110, + 66, + 101, + 104, + 101, + 101, + 114, + 78, + 97, + 97, + 109, + 34, + 58, + 34, + 84, + 101, + 115, + 116, + 32, + 80, + 101, + 114, + 115, + 111, + 111, + 110, + 34, + 44, + 34, + 99, + 111, + 110, + 116, + 97, + 99, + 116, + 112, + 101, + 114, + 115, + 111, + 111, + 110, + 66, + 101, + 104, + 101, + 101, + 114, + 84, + 101, + 108, + 101, + 102, + 111, + 111, + 110, + 110, + 117, + 109, + 109, + 101, + 114, + 34, + 58, + 34, + 34, + 44, + 34, + 99, + 111, + 110, + 116, + 97, + 99, + 116, + 112, + 101, + 114, + 115, + 111, + 111, + 110, + 66, + 101, + 104, + 101, + 101, + 114, + 69, + 109, + 97, + 105, + 108, + 97, + 100, + 114, + 101, + 115, + 34, + 58, + 34, + 34, + 44, + 34, + 122, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 98, + 101, + 115, + 108, + 117, + 105, + 116, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 105, + 110, + 102, + 111, + 114, + 109, + 97, + 116, + 105, + 101, + 111, + 98, + 106, + 101, + 99, + 116, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 125, + 44, + 123, + 34, + 117, + 114, + 108, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 105, + 92, + 47, + 118, + 49, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 117, + 115, + 115, + 101, + 110, + 92, + 47, + 52, + 55, + 53, + 55, + 101, + 57, + 98, + 54, + 45, + 51, + 102, + 57, + 101, + 45, + 52, + 51, + 50, + 102, + 45, + 97, + 100, + 56, + 49, + 45, + 99, + 48, + 53, + 48, + 51, + 50, + 102, + 54, + 53, + 100, + 57, + 53, + 34, + 44, + 34, + 117, + 117, + 105, + 100, + 34, + 58, + 34, + 52, + 55, + 53, + 55, + 101, + 57, + 98, + 54, + 45, + 51, + 102, + 57, + 101, + 45, + 52, + 51, + 50, + 102, + 45, + 97, + 100, + 56, + 49, + 45, + 99, + 48, + 53, + 48, + 51, + 50, + 102, + 54, + 53, + 100, + 57, + 53, + 34, + 44, + 34, + 100, + 111, + 109, + 101, + 105, + 110, + 34, + 58, + 34, + 65, + 65, + 66, + 34, + 44, + 34, + 114, + 115, + 105, + 110, + 34, + 58, + 34, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 34, + 44, + 34, + 99, + 111, + 110, + 116, + 97, + 99, + 116, + 112, + 101, + 114, + 115, + 111, + 111, + 110, + 66, + 101, + 104, + 101, + 101, + 114, + 78, + 97, + 97, + 109, + 34, + 58, + 34, + 84, + 101, + 115, + 116, + 32, + 80, + 101, + 114, + 115, + 111, + 111, + 110, + 34, + 44, + 34, + 99, + 111, + 110, + 116, + 97, + 99, + 116, + 112, + 101, + 114, + 115, + 111, + 111, + 110, + 66, + 101, + 104, + 101, + 101, + 114, + 84, + 101, + 108, + 101, + 102, + 111, + 111, + 110, + 110, + 117, + 109, + 109, + 101, + 114, + 34, + 58, + 34, + 34, + 44, + 34, + 99, + 111, + 110, + 116, + 97, + 99, + 116, + 112, + 101, + 114, + 115, + 111, + 111, + 110, + 66, + 101, + 104, + 101, + 101, + 114, + 69, + 109, + 97, + 105, + 108, + 97, + 100, + 114, + 101, + 115, + 34, + 58, + 34, + 34, + 44, + 34, + 122, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 98, + 101, + 115, + 108, + 117, + 105, + 116, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 105, + 110, + 102, + 111, + 114, + 109, + 97, + 116, + 105, + 101, + 111, + 98, + 106, + 101, + 99, + 116, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 125, + 44, + 123, + 34, + 117, + 114, + 108, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 105, + 92, + 47, + 118, + 49, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 117, + 115, + 115, + 101, + 110, + 92, + 47, + 52, + 57, + 51, + 54, + 97, + 54, + 102, + 98, + 45, + 55, + 97, + 56, + 54, + 45, + 52, + 48, + 57, + 98, + 45, + 57, + 52, + 55, + 51, + 45, + 51, + 99, + 52, + 99, + 56, + 57, + 53, + 98, + 56, + 101, + 56, + 57, + 34, + 44, + 34, + 117, + 117, + 105, + 100, + 34, + 58, + 34, + 52, + 57, + 51, + 54, + 97, + 54, + 102, + 98, + 45, + 55, + 97, + 56, + 54, + 45, + 52, + 48, + 57, + 98, + 45, + 57, + 52, + 55, + 51, + 45, + 51, + 99, + 52, + 99, + 56, + 57, + 53, + 98, + 56, + 101, + 56, + 57, + 34, + 44, + 34, + 100, + 111, + 109, + 101, + 105, + 110, + 34, + 58, + 34, + 90, + 71, + 87, + 84, + 34, + 44, + 34, + 114, + 115, + 105, + 110, + 34, + 58, + 34, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 34, + 44, + 34, + 99, + 111, + 110, + 116, + 97, + 99, + 116, + 112, + 101, + 114, + 115, + 111, + 111, + 110, + 66, + 101, + 104, + 101, + 101, + 114, + 78, + 97, + 97, + 109, + 34, + 58, + 34, + 84, + 101, + 115, + 116, + 32, + 80, + 101, + 114, + 115, + 111, + 111, + 110, + 34, + 44, + 34, + 99, + 111, + 110, + 116, + 97, + 99, + 116, + 112, + 101, + 114, + 115, + 111, + 111, + 110, + 66, + 101, + 104, + 101, + 101, + 114, + 84, + 101, + 108, + 101, + 102, + 111, + 111, + 110, + 110, + 117, + 109, + 109, + 101, + 114, + 34, + 58, + 34, + 34, + 44, + 34, + 99, + 111, + 110, + 116, + 97, + 99, + 116, + 112, + 101, + 114, + 115, + 111, + 111, + 110, + 66, + 101, + 104, + 101, + 101, + 114, + 69, + 109, + 97, + 105, + 108, + 97, + 100, + 114, + 101, + 115, + 34, + 58, + 34, + 34, + 44, + 34, + 122, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 98, + 101, + 115, + 108, + 117, + 105, + 116, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 105, + 110, + 102, + 111, + 114, + 109, + 97, + 116, + 105, + 101, + 111, + 98, + 106, + 101, + 99, + 116, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 125, + 44, + 123, + 34, + 117, + 114, + 108, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 105, + 92, + 47, + 118, + 49, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 117, + 115, + 115, + 101, + 110, + 92, + 47, + 55, + 53, + 101, + 51, + 100, + 98, + 57, + 56, + 45, + 99, + 98, + 57, + 101, + 45, + 52, + 99, + 48, + 57, + 45, + 57, + 48, + 49, + 48, + 45, + 99, + 48, + 53, + 52, + 102, + 53, + 97, + 52, + 98, + 98, + 57, + 99, + 34, + 44, + 34, + 117, + 117, + 105, + 100, + 34, + 58, + 34, + 55, + 53, + 101, + 51, + 100, + 98, + 57, + 56, + 45, + 99, + 98, + 57, + 101, + 45, + 52, + 99, + 48, + 57, + 45, + 57, + 48, + 49, + 48, + 45, + 99, + 48, + 53, + 52, + 102, + 53, + 97, + 52, + 98, + 98, + 57, + 99, + 34, + 44, + 34, + 100, + 111, + 109, + 101, + 105, + 110, + 34, + 58, + 34, + 65, + 65, + 66, + 34, + 44, + 34, + 114, + 115, + 105, + 110, + 34, + 58, + 34, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 34, + 44, + 34, + 99, + 111, + 110, + 116, + 97, + 99, + 116, + 112, + 101, + 114, + 115, + 111, + 111, + 110, + 66, + 101, + 104, + 101, + 101, + 114, + 78, + 97, + 97, + 109, + 34, + 58, + 34, + 84, + 101, + 115, + 116, + 32, + 80, + 101, + 114, + 115, + 111, + 111, + 110, + 34, + 44, + 34, + 99, + 111, + 110, + 116, + 97, + 99, + 116, + 112, + 101, + 114, + 115, + 111, + 111, + 110, + 66, + 101, + 104, + 101, + 101, + 114, + 84, + 101, + 108, + 101, + 102, + 111, + 111, + 110, + 110, + 117, + 109, + 109, + 101, + 114, + 34, + 58, + 34, + 34, + 44, + 34, + 99, + 111, + 110, + 116, + 97, + 99, + 116, + 112, + 101, + 114, + 115, + 111, + 111, + 110, + 66, + 101, + 104, + 101, + 101, + 114, + 69, + 109, + 97, + 105, + 108, + 97, + 100, + 114, + 101, + 115, + 34, + 58, + 34, + 34, + 44, + 34, + 122, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 98, + 101, + 115, + 108, + 117, + 105, + 116, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 105, + 110, + 102, + 111, + 114, + 109, + 97, + 116, + 105, + 101, + 111, + 98, + 106, + 101, + 99, + 116, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 125, + 44, + 123, + 34, + 117, + 114, + 108, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 105, + 92, + 47, + 118, + 49, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 117, + 115, + 115, + 101, + 110, + 92, + 47, + 98, + 100, + 49, + 51, + 98, + 57, + 52, + 56, + 45, + 52, + 100, + 97, + 98, + 45, + 52, + 56, + 55, + 98, + 45, + 57, + 97, + 48, + 56, + 45, + 51, + 100, + 52, + 53, + 100, + 54, + 97, + 54, + 49, + 54, + 99, + 100, + 34, + 44, + 34, + 117, + 117, + 105, + 100, + 34, + 58, + 34, + 98, + 100, + 49, + 51, + 98, + 57, + 52, + 56, + 45, + 52, + 100, + 97, + 98, + 45, + 52, + 56, + 55, + 98, + 45, + 57, + 97, + 48, + 56, + 45, + 51, + 100, + 52, + 53, + 100, + 54, + 97, + 54, + 49, + 54, + 99, + 100, + 34, + 44, + 34, + 100, + 111, + 109, + 101, + 105, + 110, + 34, + 58, + 34, + 90, + 71, + 87, + 84, + 34, + 44, + 34, + 114, + 115, + 105, + 110, + 34, + 58, + 34, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 34, + 44, + 34, + 99, + 111, + 110, + 116, + 97, + 99, + 116, + 112, + 101, + 114, + 115, + 111, + 111, + 110, + 66, + 101, + 104, + 101, + 101, + 114, + 78, + 97, + 97, + 109, + 34, + 58, + 34, + 84, + 101, + 115, + 116, + 32, + 80, + 101, + 114, + 115, + 111, + 111, + 110, + 34, + 44, + 34, + 99, + 111, + 110, + 116, + 97, + 99, + 116, + 112, + 101, + 114, + 115, + 111, + 111, + 110, + 66, + 101, + 104, + 101, + 101, + 114, + 84, + 101, + 108, + 101, + 102, + 111, + 111, + 110, + 110, + 117, + 109, + 109, + 101, + 114, + 34, + 58, + 34, + 34, + 44, + 34, + 99, + 111, + 110, + 116, + 97, + 99, + 116, + 112, + 101, + 114, + 115, + 111, + 111, + 110, + 66, + 101, + 104, + 101, + 101, + 114, + 69, + 109, + 97, + 105, + 108, + 97, + 100, + 114, + 101, + 115, + 34, + 58, + 34, + 34, + 44, + 34, + 122, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 98, + 101, + 115, + 108, + 117, + 105, + 116, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 105, + 110, + 102, + 111, + 114, + 109, + 97, + 116, + 105, + 101, + 111, + 98, + 106, + 101, + 99, + 116, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 125, + 44, + 123, + 34, + 117, + 114, + 108, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 105, + 92, + 47, + 118, + 49, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 117, + 115, + 115, + 101, + 110, + 92, + 47, + 56, + 53, + 101, + 100, + 100, + 100, + 98, + 101, + 45, + 49, + 57, + 98, + 55, + 45, + 52, + 101, + 56, + 54, + 45, + 98, + 101, + 54, + 57, + 45, + 53, + 98, + 101, + 99, + 55, + 99, + 102, + 54, + 56, + 53, + 55, + 97, + 34, + 44, + 34, + 117, + 117, + 105, + 100, + 34, + 58, + 34, + 56, + 53, + 101, + 100, + 100, + 100, + 98, + 101, + 45, + 49, + 57, + 98, + 55, + 45, + 52, + 101, + 56, + 54, + 45, + 98, + 101, + 54, + 57, + 45, + 53, + 98, + 101, + 99, + 55, + 99, + 102, + 54, + 56, + 53, + 55, + 97, + 34, + 44, + 34, + 100, + 111, + 109, + 101, + 105, + 110, + 34, + 58, + 34, + 65, + 65, + 66, + 34, + 44, + 34, + 114, + 115, + 105, + 110, + 34, + 58, + 34, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 34, + 44, + 34, + 99, + 111, + 110, + 116, + 97, + 99, + 116, + 112, + 101, + 114, + 115, + 111, + 111, + 110, + 66, + 101, + 104, + 101, + 101, + 114, + 78, + 97, + 97, + 109, + 34, + 58, + 34, + 84, + 101, + 115, + 116, + 32, + 80, + 101, + 114, + 115, + 111, + 111, + 110, + 34, + 44, + 34, + 99, + 111, + 110, + 116, + 97, + 99, + 116, + 112, + 101, + 114, + 115, + 111, + 111, + 110, + 66, + 101, + 104, + 101, + 101, + 114, + 84, + 101, + 108, + 101, + 102, + 111, + 111, + 110, + 110, + 117, + 109, + 109, + 101, + 114, + 34, + 58, + 34, + 34, + 44, + 34, + 99, + 111, + 110, + 116, + 97, + 99, + 116, + 112, + 101, + 114, + 115, + 111, + 111, + 110, + 66, + 101, + 104, + 101, + 101, + 114, + 69, + 109, + 97, + 105, + 108, + 97, + 100, + 114, + 101, + 115, + 34, + 58, + 34, + 34, + 44, + 34, + 122, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 98, + 101, + 115, + 108, + 117, + 105, + 116, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 105, + 110, + 102, + 111, + 114, + 109, + 97, + 116, + 105, + 101, + 111, + 98, + 106, + 101, + 99, + 116, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 125, + 44, + 123, + 34, + 117, + 114, + 108, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 105, + 92, + 47, + 118, + 49, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 117, + 115, + 115, + 101, + 110, + 92, + 47, + 51, + 55, + 97, + 48, + 99, + 52, + 53, + 99, + 45, + 55, + 98, + 101, + 57, + 45, + 52, + 49, + 102, + 50, + 45, + 98, + 102, + 57, + 55, + 45, + 57, + 48, + 51, + 52, + 49, + 97, + 56, + 50, + 49, + 51, + 50, + 55, + 34, + 44, + 34, + 117, + 117, + 105, + 100, + 34, + 58, + 34, + 51, + 55, + 97, + 48, + 99, + 52, + 53, + 99, + 45, + 55, + 98, + 101, + 57, + 45, + 52, + 49, + 102, + 50, + 45, + 98, + 102, + 57, + 55, + 45, + 57, + 48, + 51, + 52, + 49, + 97, + 56, + 50, + 49, + 51, + 50, + 55, + 34, + 44, + 34, + 100, + 111, + 109, + 101, + 105, + 110, + 34, + 58, + 34, + 90, + 71, + 87, + 84, + 34, + 44, + 34, + 114, + 115, + 105, + 110, + 34, + 58, + 34, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 34, + 44, + 34, + 99, + 111, + 110, + 116, + 97, + 99, + 116, + 112, + 101, + 114, + 115, + 111, + 111, + 110, + 66, + 101, + 104, + 101, + 101, + 114, + 78, + 97, + 97, + 109, + 34, + 58, + 34, + 84, + 101, + 115, + 116, + 32, + 80, + 101, + 114, + 115, + 111, + 111, + 110, + 34, + 44, + 34, + 99, + 111, + 110, + 116, + 97, + 99, + 116, + 112, + 101, + 114, + 115, + 111, + 111, + 110, + 66, + 101, + 104, + 101, + 101, + 114, + 84, + 101, + 108, + 101, + 102, + 111, + 111, + 110, + 110, + 117, + 109, + 109, + 101, + 114, + 34, + 58, + 34, + 34, + 44, + 34, + 99, + 111, + 110, + 116, + 97, + 99, + 116, + 112, + 101, + 114, + 115, + 111, + 111, + 110, + 66, + 101, + 104, + 101, + 101, + 114, + 69, + 109, + 97, + 105, + 108, + 97, + 100, + 114, + 101, + 115, + 34, + 58, + 34, + 34, + 44, + 34, + 122, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 98, + 101, + 115, + 108, + 117, + 105, + 116, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 105, + 110, + 102, + 111, + 114, + 109, + 97, + 116, + 105, + 101, + 111, + 98, + 106, + 101, + 99, + 116, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 125, + 44, + 123, + 34, + 117, + 114, + 108, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 105, + 92, + 47, + 118, + 49, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 117, + 115, + 115, + 101, + 110, + 92, + 47, + 55, + 98, + 57, + 100, + 48, + 100, + 53, + 57, + 45, + 51, + 50, + 97, + 101, + 45, + 52, + 98, + 53, + 98, + 45, + 57, + 101, + 50, + 52, + 45, + 53, + 101, + 55, + 52, + 102, + 99, + 49, + 101, + 55, + 56, + 102, + 56, + 34, + 44, + 34, + 117, + 117, + 105, + 100, + 34, + 58, + 34, + 55, + 98, + 57, + 100, + 48, + 100, + 53, + 57, + 45, + 51, + 50, + 97, + 101, + 45, + 52, + 98, + 53, + 98, + 45, + 57, + 101, + 50, + 52, + 45, + 53, + 101, + 55, + 52, + 102, + 99, + 49, + 101, + 55, + 56, + 102, + 56, + 34, + 44, + 34, + 100, + 111, + 109, + 101, + 105, + 110, + 34, + 58, + 34, + 65, + 65, + 66, + 34, + 44, + 34, + 114, + 115, + 105, + 110, + 34, + 58, + 34, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 34, + 44, + 34, + 99, + 111, + 110, + 116, + 97, + 99, + 116, + 112, + 101, + 114, + 115, + 111, + 111, + 110, + 66, + 101, + 104, + 101, + 101, + 114, + 78, + 97, + 97, + 109, + 34, + 58, + 34, + 84, + 101, + 115, + 116, + 32, + 80, + 101, + 114, + 115, + 111, + 111, + 110, + 34, + 44, + 34, + 99, + 111, + 110, + 116, + 97, + 99, + 116, + 112, + 101, + 114, + 115, + 111, + 111, + 110, + 66, + 101, + 104, + 101, + 101, + 114, + 84, + 101, + 108, + 101, + 102, + 111, + 111, + 110, + 110, + 117, + 109, + 109, + 101, + 114, + 34, + 58, + 34, + 34, + 44, + 34, + 99, + 111, + 110, + 116, + 97, + 99, + 116, + 112, + 101, + 114, + 115, + 111, + 111, + 110, + 66, + 101, + 104, + 101, + 101, + 114, + 69, + 109, + 97, + 105, + 108, + 97, + 100, + 114, + 101, + 115, + 34, + 58, + 34, + 34, + 44, + 34, + 122, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 98, + 101, + 115, + 108, + 117, + 105, + 116, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 105, + 110, + 102, + 111, + 114, + 109, + 97, + 116, + 105, + 101, + 111, + 98, + 106, + 101, + 99, + 116, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 125, + 44, + 123, + 34, + 117, + 114, + 108, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 105, + 92, + 47, + 118, + 49, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 117, + 115, + 115, + 101, + 110, + 92, + 47, + 48, + 101, + 53, + 49, + 55, + 99, + 97, + 53, + 45, + 56, + 57, + 49, + 98, + 45, + 52, + 53, + 97, + 57, + 45, + 98, + 56, + 50, + 101, + 45, + 101, + 57, + 56, + 48, + 57, + 54, + 57, + 101, + 57, + 57, + 50, + 100, + 34, + 44, + 34, + 117, + 117, + 105, + 100, + 34, + 58, + 34, + 48, + 101, + 53, + 49, + 55, + 99, + 97, + 53, + 45, + 56, + 57, + 49, + 98, + 45, + 52, + 53, + 97, + 57, + 45, + 98, + 56, + 50, + 101, + 45, + 101, + 57, + 56, + 48, + 57, + 54, + 57, + 101, + 57, + 57, + 50, + 100, + 34, + 44, + 34, + 100, + 111, + 109, + 101, + 105, + 110, + 34, + 58, + 34, + 90, + 71, + 87, + 84, + 34, + 44, + 34, + 114, + 115, + 105, + 110, + 34, + 58, + 34, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 34, + 44, + 34, + 99, + 111, + 110, + 116, + 97, + 99, + 116, + 112, + 101, + 114, + 115, + 111, + 111, + 110, + 66, + 101, + 104, + 101, + 101, + 114, + 78, + 97, + 97, + 109, + 34, + 58, + 34, + 84, + 101, + 115, + 116, + 32, + 80, + 101, + 114, + 115, + 111, + 111, + 110, + 34, + 44, + 34, + 99, + 111, + 110, + 116, + 97, + 99, + 116, + 112, + 101, + 114, + 115, + 111, + 111, + 110, + 66, + 101, + 104, + 101, + 101, + 114, + 84, + 101, + 108, + 101, + 102, + 111, + 111, + 110, + 110, + 117, + 109, + 109, + 101, + 114, + 34, + 58, + 34, + 34, + 44, + 34, + 99, + 111, + 110, + 116, + 97, + 99, + 116, + 112, + 101, + 114, + 115, + 111, + 111, + 110, + 66, + 101, + 104, + 101, + 101, + 114, + 69, + 109, + 97, + 105, + 108, + 97, + 100, + 114, + 101, + 115, + 34, + 58, + 34, + 34, + 44, + 34, + 122, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 98, + 101, + 115, + 108, + 117, + 105, + 116, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 105, + 110, + 102, + 111, + 114, + 109, + 97, + 116, + 105, + 101, + 111, + 98, + 106, + 101, + 99, + 116, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 125, + 44, + 123, + 34, + 117, + 114, + 108, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 105, + 92, + 47, + 118, + 49, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 117, + 115, + 115, + 101, + 110, + 92, + 47, + 99, + 99, + 97, + 50, + 100, + 57, + 102, + 100, + 45, + 50, + 56, + 56, + 102, + 45, + 52, + 56, + 48, + 57, + 45, + 56, + 48, + 53, + 54, + 45, + 101, + 54, + 101, + 51, + 98, + 51, + 53, + 98, + 48, + 98, + 102, + 100, + 34, + 44, + 34, + 117, + 117, + 105, + 100, + 34, + 58, + 34, + 99, + 99, + 97, + 50, + 100, + 57, + 102, + 100, + 45, + 50, + 56, + 56, + 102, + 45, + 52, + 56, + 48, + 57, + 45, + 56, + 48, + 53, + 54, + 45, + 101, + 54, + 101, + 51, + 98, + 51, + 53, + 98, + 48, + 98, + 102, + 100, + 34, + 44, + 34, + 100, + 111, + 109, + 101, + 105, + 110, + 34, + 58, + 34, + 65, + 65, + 66, + 34, + 44, + 34, + 114, + 115, + 105, + 110, + 34, + 58, + 34, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 34, + 44, + 34, + 99, + 111, + 110, + 116, + 97, + 99, + 116, + 112, + 101, + 114, + 115, + 111, + 111, + 110, + 66, + 101, + 104, + 101, + 101, + 114, + 78, + 97, + 97, + 109, + 34, + 58, + 34, + 84, + 101, + 115, + 116, + 32, + 80, + 101, + 114, + 115, + 111, + 111, + 110, + 34, + 44, + 34, + 99, + 111, + 110, + 116, + 97, + 99, + 116, + 112, + 101, + 114, + 115, + 111, + 111, + 110, + 66, + 101, + 104, + 101, + 101, + 114, + 84, + 101, + 108, + 101, + 102, + 111, + 111, + 110, + 110, + 117, + 109, + 109, + 101, + 114, + 34, + 58, + 34, + 34, + 44, + 34, + 99, + 111, + 110, + 116, + 97, + 99, + 116, + 112, + 101, + 114, + 115, + 111, + 111, + 110, + 66, + 101, + 104, + 101, + 101, + 114, + 69, + 109, + 97, + 105, + 108, + 97, + 100, + 114, + 101, + 115, + 34, + 58, + 34, + 34, + 44, + 34, + 122, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 98, + 101, + 115, + 108, + 117, + 105, + 116, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 105, + 110, + 102, + 111, + 114, + 109, + 97, + 116, + 105, + 101, + 111, + 98, + 106, + 101, + 99, + 116, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 125, + 44, + 123, + 34, + 117, + 114, + 108, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 105, + 92, + 47, + 118, + 49, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 117, + 115, + 115, + 101, + 110, + 92, + 47, + 50, + 48, + 48, + 101, + 54, + 55, + 98, + 55, + 45, + 99, + 50, + 98, + 48, + 45, + 52, + 100, + 53, + 50, + 45, + 56, + 53, + 57, + 54, + 45, + 99, + 48, + 57, + 98, + 48, + 57, + 49, + 49, + 48, + 98, + 48, + 98, + 34, + 44, + 34, + 117, + 117, + 105, + 100, + 34, + 58, + 34, + 50, + 48, + 48, + 101, + 54, + 55, + 98, + 55, + 45, + 99, + 50, + 98, + 48, + 45, + 52, + 100, + 53, + 50, + 45, + 56, + 53, + 57, + 54, + 45, + 99, + 48, + 57, + 98, + 48, + 57, + 49, + 49, + 48, + 98, + 48, + 98, + 34, + 44, + 34, + 100, + 111, + 109, + 101, + 105, + 110, + 34, + 58, + 34, + 90, + 71, + 87, + 84, + 34, + 44, + 34, + 114, + 115, + 105, + 110, + 34, + 58, + 34, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 34, + 44, + 34, + 99, + 111, + 110, + 116, + 97, + 99, + 116, + 112, + 101, + 114, + 115, + 111, + 111, + 110, + 66, + 101, + 104, + 101, + 101, + 114, + 78, + 97, + 97, + 109, + 34, + 58, + 34, + 84, + 101, + 115, + 116, + 32, + 80, + 101, + 114, + 115, + 111, + 111, + 110, + 34, + 44, + 34, + 99, + 111, + 110, + 116, + 97, + 99, + 116, + 112, + 101, + 114, + 115, + 111, + 111, + 110, + 66, + 101, + 104, + 101, + 101, + 114, + 84, + 101, + 108, + 101, + 102, + 111, + 111, + 110, + 110, + 117, + 109, + 109, + 101, + 114, + 34, + 58, + 34, + 34, + 44, + 34, + 99, + 111, + 110, + 116, + 97, + 99, + 116, + 112, + 101, + 114, + 115, + 111, + 111, + 110, + 66, + 101, + 104, + 101, + 101, + 114, + 69, + 109, + 97, + 105, + 108, + 97, + 100, + 114, + 101, + 115, + 34, + 58, + 34, + 34, + 44, + 34, + 122, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 98, + 101, + 115, + 108, + 117, + 105, + 116, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 105, + 110, + 102, + 111, + 114, + 109, + 97, + 116, + 105, + 101, + 111, + 98, + 106, + 101, + 99, + 116, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 125, + 44, + 123, + 34, + 117, + 114, + 108, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 105, + 92, + 47, + 118, + 49, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 117, + 115, + 115, + 101, + 110, + 92, + 47, + 97, + 54, + 50, + 51, + 48, + 53, + 52, + 102, + 45, + 100, + 48, + 57, + 98, + 45, + 52, + 101, + 54, + 102, + 45, + 98, + 99, + 54, + 56, + 45, + 98, + 101, + 55, + 97, + 51, + 57, + 56, + 99, + 99, + 51, + 53, + 50, + 34, + 44, + 34, + 117, + 117, + 105, + 100, + 34, + 58, + 34, + 97, + 54, + 50, + 51, + 48, + 53, + 52, + 102, + 45, + 100, + 48, + 57, + 98, + 45, + 52, + 101, + 54, + 102, + 45, + 98, + 99, + 54, + 56, + 45, + 98, + 101, + 55, + 97, + 51, + 57, + 56, + 99, + 99, + 51, + 53, + 50, + 34, + 44, + 34, + 100, + 111, + 109, + 101, + 105, + 110, + 34, + 58, + 34, + 65, + 65, + 66, + 34, + 44, + 34, + 114, + 115, + 105, + 110, + 34, + 58, + 34, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 34, + 44, + 34, + 99, + 111, + 110, + 116, + 97, + 99, + 116, + 112, + 101, + 114, + 115, + 111, + 111, + 110, + 66, + 101, + 104, + 101, + 101, + 114, + 78, + 97, + 97, + 109, + 34, + 58, + 34, + 84, + 101, + 115, + 116, + 32, + 80, + 101, + 114, + 115, + 111, + 111, + 110, + 34, + 44, + 34, + 99, + 111, + 110, + 116, + 97, + 99, + 116, + 112, + 101, + 114, + 115, + 111, + 111, + 110, + 66, + 101, + 104, + 101, + 101, + 114, + 84, + 101, + 108, + 101, + 102, + 111, + 111, + 110, + 110, + 117, + 109, + 109, + 101, + 114, + 34, + 58, + 34, + 34, + 44, + 34, + 99, + 111, + 110, + 116, + 97, + 99, + 116, + 112, + 101, + 114, + 115, + 111, + 111, + 110, + 66, + 101, + 104, + 101, + 101, + 114, + 69, + 109, + 97, + 105, + 108, + 97, + 100, + 114, + 101, + 115, + 34, + 58, + 34, + 34, + 44, + 34, + 122, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 98, + 101, + 115, + 108, + 117, + 105, + 116, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 105, + 110, + 102, + 111, + 114, + 109, + 97, + 116, + 105, + 101, + 111, + 98, + 106, + 101, + 99, + 116, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 125, + 44, + 123, + 34, + 117, + 114, + 108, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 105, + 92, + 47, + 118, + 49, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 117, + 115, + 115, + 101, + 110, + 92, + 47, + 50, + 56, + 54, + 98, + 101, + 57, + 51, + 51, + 45, + 50, + 97, + 51, + 52, + 45, + 52, + 54, + 52, + 53, + 45, + 98, + 48, + 49, + 48, + 45, + 57, + 57, + 98, + 56, + 56, + 53, + 50, + 101, + 57, + 48, + 50, + 48, + 34, + 44, + 34, + 117, + 117, + 105, + 100, + 34, + 58, + 34, + 50, + 56, + 54, + 98, + 101, + 57, + 51, + 51, + 45, + 50, + 97, + 51, + 52, + 45, + 52, + 54, + 52, + 53, + 45, + 98, + 48, + 49, + 48, + 45, + 57, + 57, + 98, + 56, + 56, + 53, + 50, + 101, + 57, + 48, + 50, + 48, + 34, + 44, + 34, + 100, + 111, + 109, + 101, + 105, + 110, + 34, + 58, + 34, + 90, + 71, + 87, + 84, + 34, + 44, + 34, + 114, + 115, + 105, + 110, + 34, + 58, + 34, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 34, + 44, + 34, + 99, + 111, + 110, + 116, + 97, + 99, + 116, + 112, + 101, + 114, + 115, + 111, + 111, + 110, + 66, + 101, + 104, + 101, + 101, + 114, + 78, + 97, + 97, + 109, + 34, + 58, + 34, + 84, + 101, + 115, + 116, + 32, + 80, + 101, + 114, + 115, + 111, + 111, + 110, + 34, + 44, + 34, + 99, + 111, + 110, + 116, + 97, + 99, + 116, + 112, + 101, + 114, + 115, + 111, + 111, + 110, + 66, + 101, + 104, + 101, + 101, + 114, + 84, + 101, + 108, + 101, + 102, + 111, + 111, + 110, + 110, + 117, + 109, + 109, + 101, + 114, + 34, + 58, + 34, + 34, + 44, + 34, + 99, + 111, + 110, + 116, + 97, + 99, + 116, + 112, + 101, + 114, + 115, + 111, + 111, + 110, + 66, + 101, + 104, + 101, + 101, + 114, + 69, + 109, + 97, + 105, + 108, + 97, + 100, + 114, + 101, + 115, + 34, + 58, + 34, + 34, + 44, + 34, + 122, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 98, + 101, + 115, + 108, + 117, + 105, + 116, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 105, + 110, + 102, + 111, + 114, + 109, + 97, + 116, + 105, + 101, + 111, + 98, + 106, + 101, + 99, + 116, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 125, + 44, + 123, + 34, + 117, + 114, + 108, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 105, + 92, + 47, + 118, + 49, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 117, + 115, + 115, + 101, + 110, + 92, + 47, + 100, + 56, + 102, + 102, + 53, + 50, + 53, + 53, + 45, + 97, + 100, + 102, + 97, + 45, + 52, + 52, + 51, + 102, + 45, + 98, + 49, + 102, + 57, + 45, + 57, + 99, + 98, + 57, + 55, + 100, + 53, + 98, + 51, + 99, + 100, + 99, + 34, + 44, + 34, + 117, + 117, + 105, + 100, + 34, + 58, + 34, + 100, + 56, + 102, + 102, + 53, + 50, + 53, + 53, + 45, + 97, + 100, + 102, + 97, + 45, + 52, + 52, + 51, + 102, + 45, + 98, + 49, + 102, + 57, + 45, + 57, + 99, + 98, + 57, + 55, + 100, + 53, + 98, + 51, + 99, + 100, + 99, + 34, + 44, + 34, + 100, + 111, + 109, + 101, + 105, + 110, + 34, + 58, + 34, + 65, + 65, + 66, + 34, + 44, + 34, + 114, + 115, + 105, + 110, + 34, + 58, + 34, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 34, + 44, + 34, + 99, + 111, + 110, + 116, + 97, + 99, + 116, + 112, + 101, + 114, + 115, + 111, + 111, + 110, + 66, + 101, + 104, + 101, + 101, + 114, + 78, + 97, + 97, + 109, + 34, + 58, + 34, + 84, + 101, + 115, + 116, + 32, + 80, + 101, + 114, + 115, + 111, + 111, + 110, + 34, + 44, + 34, + 99, + 111, + 110, + 116, + 97, + 99, + 116, + 112, + 101, + 114, + 115, + 111, + 111, + 110, + 66, + 101, + 104, + 101, + 101, + 114, + 84, + 101, + 108, + 101, + 102, + 111, + 111, + 110, + 110, + 117, + 109, + 109, + 101, + 114, + 34, + 58, + 34, + 34, + 44, + 34, + 99, + 111, + 110, + 116, + 97, + 99, + 116, + 112, + 101, + 114, + 115, + 111, + 111, + 110, + 66, + 101, + 104, + 101, + 101, + 114, + 69, + 109, + 97, + 105, + 108, + 97, + 100, + 114, + 101, + 115, + 34, + 58, + 34, + 34, + 44, + 34, + 122, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 98, + 101, + 115, + 108, + 117, + 105, + 116, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 105, + 110, + 102, + 111, + 114, + 109, + 97, + 116, + 105, + 101, + 111, + 98, + 106, + 101, + 99, + 116, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 125, + 44, + 123, + 34, + 117, + 114, + 108, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 105, + 92, + 47, + 118, + 49, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 117, + 115, + 115, + 101, + 110, + 92, + 47, + 49, + 100, + 54, + 49, + 51, + 51, + 51, + 48, + 45, + 48, + 97, + 54, + 102, + 45, + 52, + 51, + 56, + 50, + 45, + 97, + 99, + 48, + 48, + 45, + 53, + 50, + 98, + 50, + 53, + 57, + 99, + 52, + 102, + 56, + 99, + 97, + 34, + 44, + 34, + 117, + 117, + 105, + 100, + 34, + 58, + 34, + 49, + 100, + 54, + 49, + 51, + 51, + 51, + 48, + 45, + 48, + 97, + 54, + 102, + 45, + 52, + 51, + 56, + 50, + 45, + 97, + 99, + 48, + 48, + 45, + 53, + 50, + 98, + 50, + 53, + 57, + 99, + 52, + 102, + 56, + 99, + 97, + 34, + 44, + 34, + 100, + 111, + 109, + 101, + 105, + 110, + 34, + 58, + 34, + 90, + 71, + 87, + 84, + 34, + 44, + 34, + 114, + 115, + 105, + 110, + 34, + 58, + 34, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 34, + 44, + 34, + 99, + 111, + 110, + 116, + 97, + 99, + 116, + 112, + 101, + 114, + 115, + 111, + 111, + 110, + 66, + 101, + 104, + 101, + 101, + 114, + 78, + 97, + 97, + 109, + 34, + 58, + 34, + 84, + 101, + 115, + 116, + 32, + 80, + 101, + 114, + 115, + 111, + 111, + 110, + 34, + 44, + 34, + 99, + 111, + 110, + 116, + 97, + 99, + 116, + 112, + 101, + 114, + 115, + 111, + 111, + 110, + 66, + 101, + 104, + 101, + 101, + 114, + 84, + 101, + 108, + 101, + 102, + 111, + 111, + 110, + 110, + 117, + 109, + 109, + 101, + 114, + 34, + 58, + 34, + 34, + 44, + 34, + 99, + 111, + 110, + 116, + 97, + 99, + 116, + 112, + 101, + 114, + 115, + 111, + 111, + 110, + 66, + 101, + 104, + 101, + 101, + 114, + 69, + 109, + 97, + 105, + 108, + 97, + 100, + 114, + 101, + 115, + 34, + 58, + 34, + 34, + 44, + 34, + 122, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 98, + 101, + 115, + 108, + 117, + 105, + 116, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 105, + 110, + 102, + 111, + 114, + 109, + 97, + 116, + 105, + 101, + 111, + 98, + 106, + 101, + 99, + 116, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 125, + 93, + 125 + ] + }, + "cookie": [], + "responseTime": 101, + "responseSize": 8033 + }, + "id": "ae09b0d3-8f17-478f-a72f-61a419ee6948" + }, + { + "cursor": { + "ref": "5a8332e2-9931-487a-83ba-2494599776a1", + "length": 313, + "cycles": 1, + "position": 63, + "iteration": 0, + "httpRequestId": "10d82b91-73bb-490a-b763-1196c9ed29ad" + }, + "item": { + "id": "762e5a83-1b78-4f9a-a470-9c5bd0af667f", + "name": "(zrc-006a) Zaken lijst ontsluit zaken op basis van autorisaties van consumer", + "request": { + "url": { + "path": [ + "zaken" + ], + "host": [ + "{{zrc_url}}" + ], + "query": [ + { + "key": "zaaktype", + "value": "{{zaaktype_for_auth_url}}" + } + ], + "variable": [] + }, + "header": [ + { + "key": "Accept-Crs", + "value": "EPSG:4326" + } + ], + "method": "GET", + "auth": { + "type": "bearer", + "bearer": [ + { + "type": "string", + "value": "{{jwt-zrc-006}}", + "key": "token" + } + ] + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "facf13a2-eb27-45b3-ae8c-fc9ce51a42ee", + "type": "text/javascript", + "packages": {}, + "exec": [ + "pm.test(\"zrc-006a 1 van de 2 zaken wordt geretourneerd\", function () {", + "", + " pm.expect(pm.response.json().count).to.equal(1);", + "});" + ], + "_lastExecutionId": "21cc405a-893e-466a-8f28-d5c90ff8d399" + } + }, + { + "listen": "prerequest", + "script": { + "id": "abaf5622-c0bf-4039-bc00-5109b3424193", + "type": "text/javascript", + "packages": {}, + "exec": [], + "_lastExecutionId": "5e5e8c04-b3ab-4875-9ee3-8dbff4b3110c" + } + } + ] + }, + "request": { + "url": { + "protocol": "http", + "port": "8080", + "path": [ + "index.php", + "apps", + "procest", + "api", + "zgw", + "zaken", + "v1", + "zaken" + ], + "host": [ + "localhost" + ], + "query": [ + { + "key": "zaaktype", + "value": "http://localhost:8080/index.php/apps/procest/api/zgw/catalogi/v1/zaaktypen/e9952baf-06db-4cfc-9613-c03a558bf1fb" + } + ], + "variable": [] + }, + "header": [ + { + "key": "Accept-Crs", + "value": "EPSG:4326" + }, + { + "key": "Authorization", + "value": "Bearer {{jwt-zrc-006}}", + "system": true + }, + { + "key": "User-Agent", + "value": "PostmanRuntime/7.39.1", + "system": true + }, + { + "key": "Accept", + "value": "*/*", + "system": true + }, + { + "key": "Cache-Control", + "value": "no-cache", + "system": true + }, + { + "key": "Postman-Token", + "value": "3fbf5ac1-09e3-42dc-8b5a-fbd050898025", + "system": true + }, + { + "key": "Host", + "value": "localhost:8080", + "system": true + }, + { + "key": "Accept-Encoding", + "value": "gzip, deflate, br", + "system": true + }, + { + "key": "Connection", + "value": "keep-alive", + "system": true + }, + { + "key": "Cookie", + "value": "ocvp3112b4wg=9ccf4aa2c789e198f5da0aec65ccd9ae; oc_sessionPassphrase=LBNdKxRzA0iqoULIruNxDDh2BK3O%2BrCIU8aUmiUcOFvy5Xw1YfjwQNlmBW2IkGwJYtxXh9%2BwDN6vYuGNX07tXzkBtjQJUWTGdzf8AIOUIVxVx5DfyWAQZ7nmYmQv6XSE; nc_sameSiteCookielax=true; nc_sameSiteCookiestrict=true", + "system": true + } + ], + "method": "GET", + "auth": { + "type": "bearer", + "bearer": [ + { + "type": "string", + "value": "{{jwt-zrc-006}}", + "key": "token" + } + ] + } + }, + "response": { + "id": "8579845c-d8e5-4667-b3d8-1e3dd10d2851", + "status": "OK", + "code": 200, + "header": [ + { + "key": "Date", + "value": "Tue, 10 Mar 2026 12:19:15 GMT" + }, + { + "key": "Server", + "value": "Apache/2.4.66 (Debian)" + }, + { + "key": "X-Content-Type-Options", + "value": "nosniff" + }, + { + "key": "X-Frame-Options", + "value": "SAMEORIGIN" + }, + { + "key": "X-Permitted-Cross-Domain-Policies", + "value": "none" + }, + { + "key": "X-Robots-Tag", + "value": "noindex, nofollow" + }, + { + "key": "Referrer-Policy", + "value": "no-referrer" + }, + { + "key": "X-Powered-By", + "value": "PHP/8.3.30" + }, + { + "key": "Content-Security-Policy", + "value": "default-src 'none';base-uri 'none';manifest-src 'self';frame-ancestors 'none'" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=9ccf4aa2c789e198f5da0aec65ccd9ae; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "X-Request-Id", + "value": "kx2UJqJMzRVljgaMUPRx" + }, + { + "key": "Cache-Control", + "value": "no-cache, no-store, must-revalidate" + }, + { + "key": "Feature-Policy", + "value": "autoplay 'none';camera 'none';fullscreen 'none';geolocation 'none';microphone 'none';payment 'none'" + }, + { + "key": "Content-Encoding", + "value": "gzip" + }, + { + "key": "Content-Length", + "value": "538" + }, + { + "key": "Keep-Alive", + "value": "timeout=5, max=87" + }, + { + "key": "Connection", + "value": "Keep-Alive" + }, + { + "key": "Content-Type", + "value": "application/json; charset=utf-8" + } + ], + "stream": { + "type": "Buffer", + "data": [ + 123, + 34, + 99, + 111, + 117, + 110, + 116, + 34, + 58, + 50, + 44, + 34, + 110, + 101, + 120, + 116, + 34, + 58, + 110, + 117, + 108, + 108, + 44, + 34, + 112, + 114, + 101, + 118, + 105, + 111, + 117, + 115, + 34, + 58, + 110, + 117, + 108, + 108, + 44, + 34, + 114, + 101, + 115, + 117, + 108, + 116, + 115, + 34, + 58, + 91, + 123, + 34, + 117, + 114, + 108, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 122, + 97, + 107, + 101, + 110, + 92, + 47, + 118, + 49, + 92, + 47, + 122, + 97, + 107, + 101, + 110, + 92, + 47, + 51, + 53, + 100, + 54, + 97, + 52, + 56, + 56, + 45, + 101, + 48, + 57, + 98, + 45, + 52, + 98, + 101, + 98, + 45, + 57, + 98, + 56, + 56, + 45, + 99, + 57, + 54, + 100, + 48, + 55, + 57, + 50, + 55, + 57, + 54, + 53, + 34, + 44, + 34, + 117, + 117, + 105, + 100, + 34, + 58, + 34, + 51, + 53, + 100, + 54, + 97, + 52, + 56, + 56, + 45, + 101, + 48, + 57, + 98, + 45, + 52, + 98, + 101, + 98, + 45, + 57, + 98, + 56, + 56, + 45, + 99, + 57, + 54, + 100, + 48, + 55, + 57, + 50, + 55, + 57, + 54, + 53, + 34, + 44, + 34, + 105, + 100, + 101, + 110, + 116, + 105, + 102, + 105, + 99, + 97, + 116, + 105, + 101, + 34, + 58, + 34, + 90, + 65, + 65, + 75, + 45, + 84, + 66, + 79, + 78, + 75, + 51, + 45, + 65, + 65, + 54, + 66, + 65, + 53, + 34, + 44, + 34, + 111, + 109, + 115, + 99, + 104, + 114, + 105, + 106, + 118, + 105, + 110, + 103, + 34, + 58, + 34, + 115, + 116, + 114, + 105, + 110, + 103, + 34, + 44, + 34, + 116, + 111, + 101, + 108, + 105, + 99, + 104, + 116, + 105, + 110, + 103, + 34, + 58, + 34, + 115, + 116, + 114, + 105, + 110, + 103, + 34, + 44, + 34, + 122, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 105, + 92, + 47, + 118, + 49, + 92, + 47, + 122, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 110, + 92, + 47, + 101, + 57, + 57, + 53, + 50, + 98, + 97, + 102, + 45, + 48, + 54, + 100, + 98, + 45, + 52, + 99, + 102, + 99, + 45, + 57, + 54, + 49, + 51, + 45, + 99, + 48, + 51, + 97, + 53, + 53, + 56, + 98, + 102, + 49, + 102, + 98, + 34, + 44, + 34, + 114, + 101, + 103, + 105, + 115, + 116, + 114, + 97, + 116, + 105, + 101, + 100, + 97, + 116, + 117, + 109, + 34, + 58, + 34, + 50, + 48, + 50, + 54, + 45, + 48, + 51, + 45, + 49, + 48, + 84, + 49, + 50, + 58, + 49, + 57, + 58, + 49, + 53, + 43, + 48, + 48, + 58, + 48, + 48, + 34, + 44, + 34, + 115, + 116, + 97, + 114, + 116, + 100, + 97, + 116, + 117, + 109, + 34, + 58, + 34, + 50, + 48, + 49, + 57, + 45, + 48, + 52, + 45, + 48, + 57, + 32, + 48, + 48, + 58, + 48, + 48, + 58, + 48, + 48, + 34, + 44, + 34, + 101, + 105, + 110, + 100, + 100, + 97, + 116, + 117, + 109, + 34, + 58, + 110, + 117, + 108, + 108, + 44, + 34, + 101, + 105, + 110, + 100, + 100, + 97, + 116, + 117, + 109, + 71, + 101, + 112, + 108, + 97, + 110, + 100, + 34, + 58, + 34, + 50, + 48, + 49, + 57, + 45, + 48, + 52, + 45, + 50, + 48, + 32, + 48, + 48, + 58, + 48, + 48, + 58, + 48, + 48, + 34, + 44, + 34, + 117, + 105, + 116, + 101, + 114, + 108, + 105, + 106, + 107, + 101, + 69, + 105, + 110, + 100, + 100, + 97, + 116, + 117, + 109, + 65, + 102, + 100, + 111, + 101, + 110, + 105, + 110, + 103, + 34, + 58, + 34, + 50, + 48, + 49, + 57, + 45, + 48, + 52, + 45, + 48, + 57, + 32, + 48, + 48, + 58, + 48, + 48, + 58, + 48, + 48, + 34, + 44, + 34, + 118, + 101, + 114, + 116, + 114, + 111, + 117, + 119, + 101, + 108, + 105, + 106, + 107, + 104, + 101, + 105, + 100, + 97, + 97, + 110, + 100, + 117, + 105, + 100, + 105, + 110, + 103, + 34, + 58, + 34, + 111, + 112, + 101, + 110, + 98, + 97, + 97, + 114, + 34, + 44, + 34, + 118, + 101, + 114, + 97, + 110, + 116, + 119, + 111, + 111, + 114, + 100, + 101, + 108, + 105, + 106, + 107, + 101, + 79, + 114, + 103, + 97, + 110, + 105, + 115, + 97, + 116, + 105, + 101, + 34, + 58, + 34, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 34, + 44, + 34, + 97, + 114, + 99, + 104, + 105, + 101, + 102, + 110, + 111, + 109, + 105, + 110, + 97, + 116, + 105, + 101, + 34, + 58, + 110, + 117, + 108, + 108, + 44, + 34, + 97, + 114, + 99, + 104, + 105, + 101, + 102, + 97, + 99, + 116, + 105, + 101, + 100, + 97, + 116, + 117, + 109, + 34, + 58, + 110, + 117, + 108, + 108, + 44, + 34, + 97, + 114, + 99, + 104, + 105, + 101, + 102, + 115, + 116, + 97, + 116, + 117, + 115, + 34, + 58, + 34, + 110, + 111, + 103, + 95, + 116, + 101, + 95, + 97, + 114, + 99, + 104, + 105, + 118, + 101, + 114, + 101, + 110, + 34, + 44, + 34, + 98, + 101, + 116, + 97, + 108, + 105, + 110, + 103, + 115, + 105, + 110, + 100, + 105, + 99, + 97, + 116, + 105, + 101, + 34, + 58, + 34, + 103, + 101, + 104, + 101, + 101, + 108, + 34, + 44, + 34, + 108, + 97, + 97, + 116, + 115, + 116, + 101, + 66, + 101, + 116, + 97, + 97, + 108, + 100, + 97, + 116, + 117, + 109, + 34, + 58, + 110, + 117, + 108, + 108, + 44, + 34, + 104, + 111, + 111, + 102, + 100, + 122, + 97, + 97, + 107, + 34, + 58, + 110, + 117, + 108, + 108, + 125, + 44, + 123, + 34, + 117, + 114, + 108, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 122, + 97, + 107, + 101, + 110, + 92, + 47, + 118, + 49, + 92, + 47, + 122, + 97, + 107, + 101, + 110, + 92, + 47, + 100, + 56, + 55, + 53, + 53, + 53, + 57, + 53, + 45, + 102, + 98, + 98, + 52, + 45, + 52, + 56, + 102, + 97, + 45, + 57, + 57, + 102, + 56, + 45, + 50, + 100, + 48, + 54, + 55, + 98, + 100, + 97, + 54, + 54, + 99, + 53, + 34, + 44, + 34, + 117, + 117, + 105, + 100, + 34, + 58, + 34, + 100, + 56, + 55, + 53, + 53, + 53, + 57, + 53, + 45, + 102, + 98, + 98, + 52, + 45, + 52, + 56, + 102, + 97, + 45, + 57, + 57, + 102, + 56, + 45, + 50, + 100, + 48, + 54, + 55, + 98, + 100, + 97, + 54, + 54, + 99, + 53, + 34, + 44, + 34, + 105, + 100, + 101, + 110, + 116, + 105, + 102, + 105, + 99, + 97, + 116, + 105, + 101, + 34, + 58, + 34, + 90, + 65, + 65, + 75, + 45, + 84, + 66, + 79, + 78, + 75, + 51, + 45, + 57, + 53, + 50, + 65, + 53, + 66, + 34, + 44, + 34, + 111, + 109, + 115, + 99, + 104, + 114, + 105, + 106, + 118, + 105, + 110, + 103, + 34, + 58, + 34, + 115, + 116, + 114, + 105, + 110, + 103, + 34, + 44, + 34, + 116, + 111, + 101, + 108, + 105, + 99, + 104, + 116, + 105, + 110, + 103, + 34, + 58, + 34, + 115, + 116, + 114, + 105, + 110, + 103, + 34, + 44, + 34, + 122, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 105, + 92, + 47, + 118, + 49, + 92, + 47, + 122, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 110, + 92, + 47, + 101, + 57, + 57, + 53, + 50, + 98, + 97, + 102, + 45, + 48, + 54, + 100, + 98, + 45, + 52, + 99, + 102, + 99, + 45, + 57, + 54, + 49, + 51, + 45, + 99, + 48, + 51, + 97, + 53, + 53, + 56, + 98, + 102, + 49, + 102, + 98, + 34, + 44, + 34, + 114, + 101, + 103, + 105, + 115, + 116, + 114, + 97, + 116, + 105, + 101, + 100, + 97, + 116, + 117, + 109, + 34, + 58, + 34, + 50, + 48, + 50, + 54, + 45, + 48, + 51, + 45, + 49, + 48, + 84, + 49, + 50, + 58, + 49, + 57, + 58, + 49, + 53, + 43, + 48, + 48, + 58, + 48, + 48, + 34, + 44, + 34, + 115, + 116, + 97, + 114, + 116, + 100, + 97, + 116, + 117, + 109, + 34, + 58, + 34, + 50, + 48, + 49, + 57, + 45, + 48, + 52, + 45, + 48, + 57, + 32, + 48, + 48, + 58, + 48, + 48, + 58, + 48, + 48, + 34, + 44, + 34, + 101, + 105, + 110, + 100, + 100, + 97, + 116, + 117, + 109, + 34, + 58, + 110, + 117, + 108, + 108, + 44, + 34, + 101, + 105, + 110, + 100, + 100, + 97, + 116, + 117, + 109, + 71, + 101, + 112, + 108, + 97, + 110, + 100, + 34, + 58, + 34, + 50, + 48, + 49, + 57, + 45, + 48, + 52, + 45, + 50, + 48, + 32, + 48, + 48, + 58, + 48, + 48, + 58, + 48, + 48, + 34, + 44, + 34, + 117, + 105, + 116, + 101, + 114, + 108, + 105, + 106, + 107, + 101, + 69, + 105, + 110, + 100, + 100, + 97, + 116, + 117, + 109, + 65, + 102, + 100, + 111, + 101, + 110, + 105, + 110, + 103, + 34, + 58, + 34, + 50, + 48, + 49, + 57, + 45, + 48, + 52, + 45, + 48, + 57, + 32, + 48, + 48, + 58, + 48, + 48, + 58, + 48, + 48, + 34, + 44, + 34, + 118, + 101, + 114, + 116, + 114, + 111, + 117, + 119, + 101, + 108, + 105, + 106, + 107, + 104, + 101, + 105, + 100, + 97, + 97, + 110, + 100, + 117, + 105, + 100, + 105, + 110, + 103, + 34, + 58, + 34, + 103, + 101, + 104, + 101, + 105, + 109, + 34, + 44, + 34, + 118, + 101, + 114, + 97, + 110, + 116, + 119, + 111, + 111, + 114, + 100, + 101, + 108, + 105, + 106, + 107, + 101, + 79, + 114, + 103, + 97, + 110, + 105, + 115, + 97, + 116, + 105, + 101, + 34, + 58, + 34, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 34, + 44, + 34, + 97, + 114, + 99, + 104, + 105, + 101, + 102, + 110, + 111, + 109, + 105, + 110, + 97, + 116, + 105, + 101, + 34, + 58, + 110, + 117, + 108, + 108, + 44, + 34, + 97, + 114, + 99, + 104, + 105, + 101, + 102, + 97, + 99, + 116, + 105, + 101, + 100, + 97, + 116, + 117, + 109, + 34, + 58, + 110, + 117, + 108, + 108, + 44, + 34, + 97, + 114, + 99, + 104, + 105, + 101, + 102, + 115, + 116, + 97, + 116, + 117, + 115, + 34, + 58, + 34, + 110, + 111, + 103, + 95, + 116, + 101, + 95, + 97, + 114, + 99, + 104, + 105, + 118, + 101, + 114, + 101, + 110, + 34, + 44, + 34, + 98, + 101, + 116, + 97, + 108, + 105, + 110, + 103, + 115, + 105, + 110, + 100, + 105, + 99, + 97, + 116, + 105, + 101, + 34, + 58, + 34, + 103, + 101, + 104, + 101, + 101, + 108, + 34, + 44, + 34, + 108, + 97, + 97, + 116, + 115, + 116, + 101, + 66, + 101, + 116, + 97, + 97, + 108, + 100, + 97, + 116, + 117, + 109, + 34, + 58, + 110, + 117, + 108, + 108, + 44, + 34, + 104, + 111, + 111, + 102, + 100, + 122, + 97, + 97, + 107, + 34, + 58, + 110, + 117, + 108, + 108, + 125, + 93, + 125 + ] + }, + "cookie": [], + "responseTime": 119, + "responseSize": 1703 + }, + "id": "762e5a83-1b78-4f9a-a470-9c5bd0af667f", + "assertions": [ + { + "assertion": "zrc-006a 1 van de 2 zaken wordt geretourneerd", + "skipped": false, + "error": { + "name": "AssertionError", + "index": 0, + "test": "zrc-006a 1 van de 2 zaken wordt geretourneerd", + "message": "expected 2 to equal 1", + "stack": "AssertionError: expected 2 to equal 1\n at Object.eval sandbox-script.js:1:64)" + } + } + ] + }, + { + "cursor": { + "ref": "c69ac4c8-9da3-4436-916d-64f851dfa6f9", + "length": 313, + "cycles": 1, + "position": 64, + "iteration": 0, + "httpRequestId": "f1d9af7e-0b0d-4a47-9f47-d2e6047c44cc" + }, + "item": { + "id": "601fc521-b732-4d4c-805b-237b51c7dfc6", + "name": "(zrc-006b) Zaken lezen zonder verplichte scope in autorisatie niet toegestaan", + "request": { + "url": { + "host": [ + "{{geheime_zaak_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Accept-Crs", + "value": "EPSG:4326" + }, + { + "key": "Content-Crs", + "value": "EPSG:4326" + } + ], + "method": "GET", + "body": { + "mode": "raw", + "raw": "" + }, + "auth": { + "type": "bearer", + "bearer": [ + { + "type": "string", + "value": "{{jwt-zrc-006}}", + "key": "token" + } + ] + } + }, + "response": [], + "event": [ + { + "listen": "prerequest", + "script": { + "id": "0b691897-6ed7-41e2-a472-cc5f0c113393", + "type": "text/javascript", + "packages": {}, + "exec": [ + "" + ], + "_lastExecutionId": "50dcea51-9e85-4597-add4-b2743695bcf3" + } + }, + { + "listen": "test", + "script": { + "id": "083dedaa-449b-4dee-95fd-cdc642303ecf", + "type": "text/javascript", + "packages": {}, + "exec": [ + "pm.test(\"Zaken lezen zonder applicatie met zaken.lezen in autorisatie scopes geeft 403\", function() {", + " pm.response.to.have.status(403);", + " pm.expect(pm.response.json().code).to.be.equal(\"permission_denied\");", + "});" + ], + "_lastExecutionId": "a714bb14-ffb3-42c3-aab5-15349fec8204" + } + } + ], + "protocolProfileBehavior": { + "disableBodyPruning": true + } + }, + "request": { + "url": { + "protocol": "http", + "port": "8080", + "path": [ + "index.php", + "apps", + "procest", + "api", + "zgw", + "zaken", + "v1", + "zaken", + "d8755595-fbb4-48fa-99f8-2d067bda66c5" + ], + "host": [ + "localhost" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Accept-Crs", + "value": "EPSG:4326" + }, + { + "key": "Content-Crs", + "value": "EPSG:4326" + }, + { + "key": "Authorization", + "value": "Bearer {{jwt-zrc-006}}", + "system": true + }, + { + "key": "User-Agent", + "value": "PostmanRuntime/7.39.1", + "system": true + }, + { + "key": "Accept", + "value": "*/*", + "system": true + }, + { + "key": "Cache-Control", + "value": "no-cache", + "system": true + }, + { + "key": "Postman-Token", + "value": "b4c7608d-1612-4d6f-9ee9-7126dc8d7ec4", + "system": true + }, + { + "key": "Host", + "value": "localhost:8080", + "system": true + }, + { + "key": "Accept-Encoding", + "value": "gzip, deflate, br", + "system": true + }, + { + "key": "Connection", + "value": "keep-alive", + "system": true + }, + { + "key": "Cookie", + "value": "ocvp3112b4wg=9ccf4aa2c789e198f5da0aec65ccd9ae; oc_sessionPassphrase=LBNdKxRzA0iqoULIruNxDDh2BK3O%2BrCIU8aUmiUcOFvy5Xw1YfjwQNlmBW2IkGwJYtxXh9%2BwDN6vYuGNX07tXzkBtjQJUWTGdzf8AIOUIVxVx5DfyWAQZ7nmYmQv6XSE; nc_sameSiteCookielax=true; nc_sameSiteCookiestrict=true", + "system": true + } + ], + "method": "GET", + "body": { + "mode": "raw", + "raw": "" + }, + "auth": { + "type": "bearer", + "bearer": [ + { + "type": "string", + "value": "{{jwt-zrc-006}}", + "key": "token" + } + ] + } + }, + "response": { + "id": "0ae34c52-1f56-45ec-958a-3a9ca50b4007", + "status": "Forbidden", + "code": 403, + "header": [ + { + "key": "Date", + "value": "Tue, 10 Mar 2026 12:19:15 GMT" + }, + { + "key": "Server", + "value": "Apache/2.4.66 (Debian)" + }, + { + "key": "X-Content-Type-Options", + "value": "nosniff" + }, + { + "key": "X-Frame-Options", + "value": "SAMEORIGIN" + }, + { + "key": "X-Permitted-Cross-Domain-Policies", + "value": "none" + }, + { + "key": "X-Robots-Tag", + "value": "noindex, nofollow" + }, + { + "key": "Referrer-Policy", + "value": "no-referrer" + }, + { + "key": "X-Powered-By", + "value": "PHP/8.3.30" + }, + { + "key": "Content-Security-Policy", + "value": "default-src 'none';base-uri 'none';manifest-src 'self';frame-ancestors 'none'" + }, + { + "key": "X-Request-Id", + "value": "1OcRZeyaWMfFeSV9S1qt" + }, + { + "key": "Cache-Control", + "value": "no-cache, no-store, must-revalidate" + }, + { + "key": "Feature-Policy", + "value": "autoplay 'none';camera 'none';fullscreen 'none';geolocation 'none';microphone 'none';payment 'none'" + }, + { + "key": "Content-Length", + "value": "147" + }, + { + "key": "Keep-Alive", + "value": "timeout=5, max=86" + }, + { + "key": "Connection", + "value": "Keep-Alive" + }, + { + "key": "Content-Type", + "value": "application/json; charset=utf-8" + } + ], + "stream": { + "type": "Buffer", + "data": [ + 123, + 34, + 116, + 121, + 112, + 101, + 34, + 58, + 34, + 78, + 111, + 116, + 65, + 117, + 116, + 104, + 101, + 110, + 116, + 105, + 99, + 97, + 116, + 101, + 100, + 34, + 44, + 34, + 99, + 111, + 100, + 101, + 34, + 58, + 34, + 110, + 111, + 116, + 95, + 97, + 117, + 116, + 104, + 101, + 110, + 116, + 105, + 99, + 97, + 116, + 101, + 100, + 34, + 44, + 34, + 116, + 105, + 116, + 108, + 101, + 34, + 58, + 34, + 65, + 117, + 116, + 104, + 101, + 110, + 116, + 105, + 99, + 97, + 116, + 105, + 101, + 103, + 101, + 103, + 101, + 118, + 101, + 110, + 115, + 32, + 122, + 105, + 106, + 110, + 32, + 110, + 105, + 101, + 116, + 32, + 103, + 101, + 108, + 100, + 105, + 103, + 46, + 34, + 44, + 34, + 115, + 116, + 97, + 116, + 117, + 115, + 34, + 58, + 52, + 48, + 51, + 44, + 34, + 100, + 101, + 116, + 97, + 105, + 108, + 34, + 58, + 34, + 85, + 110, + 115, + 117, + 112, + 112, + 111, + 114, + 116, + 101, + 100, + 32, + 105, + 110, + 112, + 117, + 116, + 46, + 34, + 125 + ] + }, + "cookie": [], + "responseTime": 89, + "responseSize": 147 + }, + "id": "601fc521-b732-4d4c-805b-237b51c7dfc6", + "assertions": [ + { + "assertion": "Zaken lezen zonder applicatie met zaken.lezen in autorisatie scopes geeft 403", + "skipped": false, + "error": { + "name": "AssertionError", + "index": 0, + "test": "Zaken lezen zonder applicatie met zaken.lezen in autorisatie scopes geeft 403", + "message": "expected 'not_authenticated' to equal 'permission_denied'", + "stack": "AssertionError: expected 'not_authenticated' to equal 'permission_denied'\n at Object.eval sandbox-script.js:1:65)" + } + } + ] + }, + { + "cursor": { + "ref": "4a1def06-d486-43ed-bc20-b996e879b628", + "length": 313, + "cycles": 1, + "position": 65, + "iteration": 0, + "httpRequestId": "fc4fb9bb-fab4-4ca6-8e06-e57e3bca4164" + }, + "item": { + "id": "734cc560-30be-4834-9c7d-20ae6db4fdfc", + "name": "(zrc-006c) Zaak aanmaken zonder verplichte scope in autorisatie niet toegestaan", + "request": { + "url": { + "path": [ + "zaken" + ], + "host": [ + "{{zrc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Accept-Crs", + "value": "EPSG:4326" + }, + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Content-Crs", + "value": "EPSG:4326" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\r\n \"url\": \"https://zaken.spt-rx-services.nl/api/v1/zaken/cba40feb-2b38-4490-b12d-84a39e8df361\",\r\n \"uuid\": \"cba40feb-2b38-4490-b12d-84a39e8df361\",\r\n \"identificatie\": \"Z2024-00000038\",\r\n \"bronorganisatie\": \"000000000\",\r\n \"omschrijving\": \"string\",\r\n \"toelichting\": \"string\",\r\n \"zaaktype\": \"https://catalogi.spt-rx-services.nl/api/v1/zaaktypen/be24fd63-1663-46dc-8ea9-9c153642d4f9\",\r\n \"registratiedatum\": \"2019-04-09\",\r\n \"verantwoordelijkeOrganisatie\": \"000000000\",\r\n \"startdatum\": \"2019-04-09\",\r\n \"einddatum\": null,\r\n \"einddatumGepland\": \"2019-04-20\",\r\n \"uiterlijkeEinddatumAfdoening\": \"2019-04-09\",\r\n \"publicatiedatum\": \"2019-04-09\",\r\n \"communicatiekanaal\": \"\",\r\n \"productenOfDiensten\": [],\r\n \"vertrouwelijkheidaanduiding\": \"geheim\",\r\n \"betalingsindicatie\": \"geheel\",\r\n \"betalingsindicatieWeergave\": null,\r\n \"laatsteBetaaldatum\": \"2019-01-01T00:00:00Z\",\r\n \"zaakgeometrie\": {\r\n \"type\": \"Point\",\r\n \"coordinates\": [\r\n 53.0,\r\n 5.0\r\n ]\r\n },\r\n \"verlenging\": null,\r\n \"opschorting\": {\r\n \"indicatie\": true,\r\n \"reden\": \"string\"\r\n },\r\n \"selectielijstklasse\": \"https://referentielijsten.roxit.nl/api/v1/resultaten/0fe71ce3-b1e1-48eb-9070-be2756fc71b5\",\r\n \"hoofdzaak\": null,\r\n \"deelzaken\": [],\r\n \"relevanteAndereZaken\": [],\r\n \"eigenschappen\": [],\r\n \"rollen\": [],\r\n \"status\": null,\r\n \"zaakinformatieobjecten\": [],\r\n \"zaakobjecten\": [],\r\n \"resultaat\": null,\r\n \"kenmerken\": [],\r\n \"archiefnominatie\": null,\r\n \"archiefstatus\": \"nog_te_archiveren\",\r\n \"archiefactiedatum\": null,\r\n \"opdrachtgevendeOrganisatie\": null,\r\n \"processobjectaard\": null,\r\n \"startdatumBewaartermijn\": null,\r\n \"processobject\": null\r\n}" + }, + "auth": { + "type": "bearer", + "bearer": [ + { + "type": "string", + "value": "{{jwt-zrc-006}}", + "key": "token" + } + ] + } + }, + "response": [], + "event": [ + { + "listen": "prerequest", + "script": { + "id": "462bbd32-e44e-426f-a719-5fa45702bc97", + "type": "text/javascript", + "packages": {}, + "exec": [ + "" + ], + "_lastExecutionId": "8a324196-56ba-43c1-85af-5c6473176745" + } + }, + { + "listen": "test", + "script": { + "id": "15427432-3cea-4842-a68e-f5185416c88b", + "type": "text/javascript", + "packages": {}, + "exec": [ + "pm.test(\"Zaak aanmaken met applicatie zonder zaken.aanmaken in autorisatie scopes niet toegestaan\", function() {", + " pm.response.to.have.status(403);", + " pm.expect(pm.response.json().code).to.be.equal(\"permission_denied\");", + "});", + "", + "var next_requests = [];", + "", + "if(pm.response.code == 201) {", + " pm.environment.set(\"created_zaak_url\", pm.response.json().url);", + "", + "}" + ], + "_lastExecutionId": "b4ff33ce-1f17-4b3f-93a8-4e797a46a3d5" + } + } + ] + }, + "request": { + "url": { + "protocol": "http", + "port": "8080", + "path": [ + "index.php", + "apps", + "procest", + "api", + "zgw", + "zaken", + "v1", + "zaken" + ], + "host": [ + "localhost" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Accept-Crs", + "value": "EPSG:4326" + }, + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Content-Crs", + "value": "EPSG:4326" + }, + { + "key": "Authorization", + "value": "Bearer {{jwt-zrc-006}}", + "system": true + }, + { + "key": "User-Agent", + "value": "PostmanRuntime/7.39.1", + "system": true + }, + { + "key": "Accept", + "value": "*/*", + "system": true + }, + { + "key": "Cache-Control", + "value": "no-cache", + "system": true + }, + { + "key": "Postman-Token", + "value": "1e98e191-26b8-4afc-a6aa-1898e39008a7", + "system": true + }, + { + "key": "Host", + "value": "localhost:8080", + "system": true + }, + { + "key": "Accept-Encoding", + "value": "gzip, deflate, br", + "system": true + }, + { + "key": "Connection", + "value": "keep-alive", + "system": true + }, + { + "key": "Content-Length", + "value": "1772", + "system": true + }, + { + "key": "Cookie", + "value": "ocvp3112b4wg=9ccf4aa2c789e198f5da0aec65ccd9ae; oc_sessionPassphrase=LBNdKxRzA0iqoULIruNxDDh2BK3O%2BrCIU8aUmiUcOFvy5Xw1YfjwQNlmBW2IkGwJYtxXh9%2BwDN6vYuGNX07tXzkBtjQJUWTGdzf8AIOUIVxVx5DfyWAQZ7nmYmQv6XSE; nc_sameSiteCookielax=true; nc_sameSiteCookiestrict=true", + "system": true + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\r\n \"url\": \"https://zaken.spt-rx-services.nl/api/v1/zaken/cba40feb-2b38-4490-b12d-84a39e8df361\",\r\n \"uuid\": \"cba40feb-2b38-4490-b12d-84a39e8df361\",\r\n \"identificatie\": \"Z2024-00000038\",\r\n \"bronorganisatie\": \"000000000\",\r\n \"omschrijving\": \"string\",\r\n \"toelichting\": \"string\",\r\n \"zaaktype\": \"https://catalogi.spt-rx-services.nl/api/v1/zaaktypen/be24fd63-1663-46dc-8ea9-9c153642d4f9\",\r\n \"registratiedatum\": \"2019-04-09\",\r\n \"verantwoordelijkeOrganisatie\": \"000000000\",\r\n \"startdatum\": \"2019-04-09\",\r\n \"einddatum\": null,\r\n \"einddatumGepland\": \"2019-04-20\",\r\n \"uiterlijkeEinddatumAfdoening\": \"2019-04-09\",\r\n \"publicatiedatum\": \"2019-04-09\",\r\n \"communicatiekanaal\": \"\",\r\n \"productenOfDiensten\": [],\r\n \"vertrouwelijkheidaanduiding\": \"geheim\",\r\n \"betalingsindicatie\": \"geheel\",\r\n \"betalingsindicatieWeergave\": null,\r\n \"laatsteBetaaldatum\": \"2019-01-01T00:00:00Z\",\r\n \"zaakgeometrie\": {\r\n \"type\": \"Point\",\r\n \"coordinates\": [\r\n 53.0,\r\n 5.0\r\n ]\r\n },\r\n \"verlenging\": null,\r\n \"opschorting\": {\r\n \"indicatie\": true,\r\n \"reden\": \"string\"\r\n },\r\n \"selectielijstklasse\": \"https://referentielijsten.roxit.nl/api/v1/resultaten/0fe71ce3-b1e1-48eb-9070-be2756fc71b5\",\r\n \"hoofdzaak\": null,\r\n \"deelzaken\": [],\r\n \"relevanteAndereZaken\": [],\r\n \"eigenschappen\": [],\r\n \"rollen\": [],\r\n \"status\": null,\r\n \"zaakinformatieobjecten\": [],\r\n \"zaakobjecten\": [],\r\n \"resultaat\": null,\r\n \"kenmerken\": [],\r\n \"archiefnominatie\": null,\r\n \"archiefstatus\": \"nog_te_archiveren\",\r\n \"archiefactiedatum\": null,\r\n \"opdrachtgevendeOrganisatie\": null,\r\n \"processobjectaard\": null,\r\n \"startdatumBewaartermijn\": null,\r\n \"processobject\": null\r\n}" + }, + "auth": { + "type": "bearer", + "bearer": [ + { + "type": "string", + "value": "{{jwt-zrc-006}}", + "key": "token" + } + ] + } + }, + "response": { + "id": "19ca0ead-45cb-4f46-8a97-860e4f42f763", + "status": "Forbidden", + "code": 403, + "header": [ + { + "key": "Date", + "value": "Tue, 10 Mar 2026 12:19:15 GMT" + }, + { + "key": "Server", + "value": "Apache/2.4.66 (Debian)" + }, + { + "key": "X-Content-Type-Options", + "value": "nosniff" + }, + { + "key": "X-Frame-Options", + "value": "SAMEORIGIN" + }, + { + "key": "X-Permitted-Cross-Domain-Policies", + "value": "none" + }, + { + "key": "X-Robots-Tag", + "value": "noindex, nofollow" + }, + { + "key": "Referrer-Policy", + "value": "no-referrer" + }, + { + "key": "X-Powered-By", + "value": "PHP/8.3.30" + }, + { + "key": "Content-Security-Policy", + "value": "default-src 'none';base-uri 'none';manifest-src 'self';frame-ancestors 'none'" + }, + { + "key": "X-Request-Id", + "value": "ke4FEUJynuMueRZ23Xvw" + }, + { + "key": "Cache-Control", + "value": "no-cache, no-store, must-revalidate" + }, + { + "key": "Feature-Policy", + "value": "autoplay 'none';camera 'none';fullscreen 'none';geolocation 'none';microphone 'none';payment 'none'" + }, + { + "key": "Content-Length", + "value": "147" + }, + { + "key": "Keep-Alive", + "value": "timeout=5, max=85" + }, + { + "key": "Connection", + "value": "Keep-Alive" + }, + { + "key": "Content-Type", + "value": "application/json; charset=utf-8" + } + ], + "stream": { + "type": "Buffer", + "data": [ + 123, + 34, + 116, + 121, + 112, + 101, + 34, + 58, + 34, + 78, + 111, + 116, + 65, + 117, + 116, + 104, + 101, + 110, + 116, + 105, + 99, + 97, + 116, + 101, + 100, + 34, + 44, + 34, + 99, + 111, + 100, + 101, + 34, + 58, + 34, + 110, + 111, + 116, + 95, + 97, + 117, + 116, + 104, + 101, + 110, + 116, + 105, + 99, + 97, + 116, + 101, + 100, + 34, + 44, + 34, + 116, + 105, + 116, + 108, + 101, + 34, + 58, + 34, + 65, + 117, + 116, + 104, + 101, + 110, + 116, + 105, + 99, + 97, + 116, + 105, + 101, + 103, + 101, + 103, + 101, + 118, + 101, + 110, + 115, + 32, + 122, + 105, + 106, + 110, + 32, + 110, + 105, + 101, + 116, + 32, + 103, + 101, + 108, + 100, + 105, + 103, + 46, + 34, + 44, + 34, + 115, + 116, + 97, + 116, + 117, + 115, + 34, + 58, + 52, + 48, + 51, + 44, + 34, + 100, + 101, + 116, + 97, + 105, + 108, + 34, + 58, + 34, + 85, + 110, + 115, + 117, + 112, + 112, + 111, + 114, + 116, + 101, + 100, + 32, + 105, + 110, + 112, + 117, + 116, + 46, + 34, + 125 + ] + }, + "cookie": [], + "responseTime": 80, + "responseSize": 147 + }, + "id": "734cc560-30be-4834-9c7d-20ae6db4fdfc", + "assertions": [ + { + "assertion": "Zaak aanmaken met applicatie zonder zaken.aanmaken in autorisatie scopes niet toegestaan", + "skipped": false, + "error": { + "name": "AssertionError", + "index": 0, + "test": "Zaak aanmaken met applicatie zonder zaken.aanmaken in autorisatie scopes niet toegestaan", + "message": "expected 'not_authenticated' to equal 'permission_denied'", + "stack": "AssertionError: expected 'not_authenticated' to equal 'permission_denied'\n at Object.eval sandbox-script.js:1:66)" + } + } + ] + }, + { + "cursor": { + "ref": "9bacbe94-5db5-45c0-9ecb-1b5952765a45", + "length": 313, + "cycles": 1, + "position": 66, + "iteration": 0, + "httpRequestId": "0cd2fe7f-f62a-445b-9623-1c9b5f111c48" + }, + "item": { + "id": "0e70db12-d123-4d04-99cb-c6325ac685ba", + "name": "set full token", + "request": { + "url": { + "path": [ + "catalogussen" + ], + "host": [ + "{{ztc_url}}" + ], + "query": [], + "variable": [] + }, + "method": "GET" + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "de2e18b7-bdfb-440f-8e23-e36e909ea85b", + "type": "text/javascript", + "packages": {}, + "exec": [ + "" + ], + "_lastExecutionId": "a7acb14b-14e4-4cb3-b1e2-066d7755f1d7" + } + }, + { + "listen": "prerequest", + "script": { + "id": "ce9dfa44-a760-408a-8576-5c22759d91dc", + "type": "text/javascript", + "packages": {}, + "exec": [ + "pm.environment.set(\"jwt_token\", pm.environment.get(\"jwt_full\"));", + " var origId = pm.environment.get(\"_original_client_id\");", + " var origSecret = pm.environment.get(\"_original_secret\");", + " if (origId) { pm.environment.set(\"client_id\", origId); }", + " if (origSecret) { pm.environment.set(\"secret\", origSecret); }", + " pm.environment.set(\"secret\", pm.environment.get(\"secret\") || \"procest-admin-secret-key-for-testing\");" + ], + "_lastExecutionId": "d6821698-b9a1-42dd-b58a-8915b6b5c7a3" + } + } + ] + }, + "request": { + "url": { + "protocol": "http", + "port": "8080", + "path": [ + "index.php", + "apps", + "procest", + "api", + "zgw", + "catalogi", + "v1", + "catalogussen" + ], + "host": [ + "localhost" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Authorization", + "value": "Bearer eyJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJwcm9jZXN0LWFkbWluIiwiY2xpZW50X2lkIjoicHJvY2VzdC1hZG1pbiIsImlhdCI6IjE3NzMxNDUxNTYiLCJ1c2VyX2lkIjoicHJvY2VzdC1hZG1pbiIsInVzZXJfcmVwcmVzZW50YXRpb24iOiIifQ.g8ZvARsSp-x8KjDZZmoR-VdYrJW1NuBHRGlSF1fyRkE", + "system": true + }, + { + "key": "User-Agent", + "value": "PostmanRuntime/7.39.1", + "system": true + }, + { + "key": "Accept", + "value": "*/*", + "system": true + }, + { + "key": "Cache-Control", + "value": "no-cache", + "system": true + }, + { + "key": "Postman-Token", + "value": "40bc3b6c-3a08-4fb6-bc55-96466d35a84e", + "system": true + }, + { + "key": "Host", + "value": "localhost:8080", + "system": true + }, + { + "key": "Accept-Encoding", + "value": "gzip, deflate, br", + "system": true + }, + { + "key": "Connection", + "value": "keep-alive", + "system": true + }, + { + "key": "Cookie", + "value": "ocvp3112b4wg=9ccf4aa2c789e198f5da0aec65ccd9ae; oc_sessionPassphrase=LBNdKxRzA0iqoULIruNxDDh2BK3O%2BrCIU8aUmiUcOFvy5Xw1YfjwQNlmBW2IkGwJYtxXh9%2BwDN6vYuGNX07tXzkBtjQJUWTGdzf8AIOUIVxVx5DfyWAQZ7nmYmQv6XSE; nc_sameSiteCookielax=true; nc_sameSiteCookiestrict=true", + "system": true + } + ], + "method": "GET", + "auth": { + "type": "jwt", + "jwt": [ + { + "type": "string", + "value": "{\r\n \"iss\": \"procest-admin\",\r\n \"client_id\": \"procest-admin\",\r\n \"iat\": \"1773145156\",\r\n \"user_id\": \"procest-admin\",\r\n \"user_representation\": \"\"\r\n}", + "key": "payload" + }, + { + "type": "string", + "value": "procest-admin-secret-key-for-testing", + "key": "secret" + }, + { + "type": "string", + "value": "HS256", + "key": "algorithm" + }, + { + "type": "boolean", + "value": false, + "key": "isSecretBase64Encoded" + }, + { + "type": "string", + "value": "header", + "key": "addTokenTo" + }, + { + "type": "string", + "value": "Bearer", + "key": "headerPrefix" + }, + { + "type": "string", + "value": "token", + "key": "queryParamKey" + }, + { + "type": "string", + "value": "{}", + "key": "header" + } + ] + } + }, + "response": { + "id": "92289d72-0613-4634-808d-3e0f4710428d", + "status": "OK", + "code": 200, + "header": [ + { + "key": "Date", + "value": "Tue, 10 Mar 2026 12:19:16 GMT" + }, + { + "key": "Server", + "value": "Apache/2.4.66 (Debian)" + }, + { + "key": "X-Content-Type-Options", + "value": "nosniff" + }, + { + "key": "X-Frame-Options", + "value": "SAMEORIGIN" + }, + { + "key": "X-Permitted-Cross-Domain-Policies", + "value": "none" + }, + { + "key": "X-Robots-Tag", + "value": "noindex, nofollow" + }, + { + "key": "Referrer-Policy", + "value": "no-referrer" + }, + { + "key": "X-Powered-By", + "value": "PHP/8.3.30" + }, + { + "key": "Content-Security-Policy", + "value": "default-src 'none';base-uri 'none';manifest-src 'self';frame-ancestors 'none'" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=9ccf4aa2c789e198f5da0aec65ccd9ae; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "X-Request-Id", + "value": "hZUoH529GtKCeQyvGgUO" + }, + { + "key": "Cache-Control", + "value": "no-cache, no-store, must-revalidate" + }, + { + "key": "Feature-Policy", + "value": "autoplay 'none';camera 'none';fullscreen 'none';geolocation 'none';microphone 'none';payment 'none'" + }, + { + "key": "X-User-Id", + "value": "admin" + }, + { + "key": "Content-Encoding", + "value": "gzip" + }, + { + "key": "Content-Length", + "value": "919" + }, + { + "key": "Keep-Alive", + "value": "timeout=5, max=84" + }, + { + "key": "Connection", + "value": "Keep-Alive" + }, + { + "key": "Content-Type", + "value": "application/json; charset=utf-8" + } + ], + "stream": { + "type": "Buffer", + "data": [ + 123, + 34, + 99, + 111, + 117, + 110, + 116, + 34, + 58, + 50, + 49, + 50, + 44, + 34, + 110, + 101, + 120, + 116, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 105, + 92, + 47, + 118, + 49, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 117, + 115, + 115, + 101, + 110, + 63, + 112, + 97, + 103, + 101, + 61, + 50, + 34, + 44, + 34, + 112, + 114, + 101, + 118, + 105, + 111, + 117, + 115, + 34, + 58, + 110, + 117, + 108, + 108, + 44, + 34, + 114, + 101, + 115, + 117, + 108, + 116, + 115, + 34, + 58, + 91, + 123, + 34, + 117, + 114, + 108, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 105, + 92, + 47, + 118, + 49, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 117, + 115, + 115, + 101, + 110, + 92, + 47, + 100, + 51, + 100, + 101, + 101, + 56, + 101, + 98, + 45, + 56, + 100, + 50, + 56, + 45, + 52, + 50, + 50, + 101, + 45, + 98, + 48, + 97, + 102, + 45, + 97, + 57, + 57, + 57, + 101, + 100, + 57, + 55, + 50, + 50, + 51, + 102, + 34, + 44, + 34, + 117, + 117, + 105, + 100, + 34, + 58, + 34, + 100, + 51, + 100, + 101, + 101, + 56, + 101, + 98, + 45, + 56, + 100, + 50, + 56, + 45, + 52, + 50, + 50, + 101, + 45, + 98, + 48, + 97, + 102, + 45, + 97, + 57, + 57, + 57, + 101, + 100, + 57, + 55, + 50, + 50, + 51, + 102, + 34, + 44, + 34, + 100, + 111, + 109, + 101, + 105, + 110, + 34, + 58, + 34, + 65, + 65, + 66, + 34, + 44, + 34, + 114, + 115, + 105, + 110, + 34, + 58, + 34, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 34, + 44, + 34, + 99, + 111, + 110, + 116, + 97, + 99, + 116, + 112, + 101, + 114, + 115, + 111, + 111, + 110, + 66, + 101, + 104, + 101, + 101, + 114, + 78, + 97, + 97, + 109, + 34, + 58, + 34, + 84, + 101, + 115, + 116, + 32, + 80, + 101, + 114, + 115, + 111, + 111, + 110, + 34, + 44, + 34, + 99, + 111, + 110, + 116, + 97, + 99, + 116, + 112, + 101, + 114, + 115, + 111, + 111, + 110, + 66, + 101, + 104, + 101, + 101, + 114, + 84, + 101, + 108, + 101, + 102, + 111, + 111, + 110, + 110, + 117, + 109, + 109, + 101, + 114, + 34, + 58, + 34, + 34, + 44, + 34, + 99, + 111, + 110, + 116, + 97, + 99, + 116, + 112, + 101, + 114, + 115, + 111, + 111, + 110, + 66, + 101, + 104, + 101, + 101, + 114, + 69, + 109, + 97, + 105, + 108, + 97, + 100, + 114, + 101, + 115, + 34, + 58, + 34, + 34, + 44, + 34, + 122, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 98, + 101, + 115, + 108, + 117, + 105, + 116, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 105, + 110, + 102, + 111, + 114, + 109, + 97, + 116, + 105, + 101, + 111, + 98, + 106, + 101, + 99, + 116, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 125, + 44, + 123, + 34, + 117, + 114, + 108, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 105, + 92, + 47, + 118, + 49, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 117, + 115, + 115, + 101, + 110, + 92, + 47, + 57, + 51, + 51, + 52, + 102, + 49, + 49, + 48, + 45, + 98, + 97, + 48, + 98, + 45, + 52, + 50, + 49, + 55, + 45, + 56, + 57, + 48, + 51, + 45, + 98, + 97, + 55, + 49, + 52, + 48, + 55, + 102, + 48, + 97, + 50, + 50, + 34, + 44, + 34, + 117, + 117, + 105, + 100, + 34, + 58, + 34, + 57, + 51, + 51, + 52, + 102, + 49, + 49, + 48, + 45, + 98, + 97, + 48, + 98, + 45, + 52, + 50, + 49, + 55, + 45, + 56, + 57, + 48, + 51, + 45, + 98, + 97, + 55, + 49, + 52, + 48, + 55, + 102, + 48, + 97, + 50, + 50, + 34, + 44, + 34, + 100, + 111, + 109, + 101, + 105, + 110, + 34, + 58, + 34, + 90, + 71, + 87, + 84, + 34, + 44, + 34, + 114, + 115, + 105, + 110, + 34, + 58, + 34, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 34, + 44, + 34, + 99, + 111, + 110, + 116, + 97, + 99, + 116, + 112, + 101, + 114, + 115, + 111, + 111, + 110, + 66, + 101, + 104, + 101, + 101, + 114, + 78, + 97, + 97, + 109, + 34, + 58, + 34, + 84, + 101, + 115, + 116, + 32, + 80, + 101, + 114, + 115, + 111, + 111, + 110, + 34, + 44, + 34, + 99, + 111, + 110, + 116, + 97, + 99, + 116, + 112, + 101, + 114, + 115, + 111, + 111, + 110, + 66, + 101, + 104, + 101, + 101, + 114, + 84, + 101, + 108, + 101, + 102, + 111, + 111, + 110, + 110, + 117, + 109, + 109, + 101, + 114, + 34, + 58, + 34, + 34, + 44, + 34, + 99, + 111, + 110, + 116, + 97, + 99, + 116, + 112, + 101, + 114, + 115, + 111, + 111, + 110, + 66, + 101, + 104, + 101, + 101, + 114, + 69, + 109, + 97, + 105, + 108, + 97, + 100, + 114, + 101, + 115, + 34, + 58, + 34, + 34, + 44, + 34, + 122, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 98, + 101, + 115, + 108, + 117, + 105, + 116, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 105, + 110, + 102, + 111, + 114, + 109, + 97, + 116, + 105, + 101, + 111, + 98, + 106, + 101, + 99, + 116, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 125, + 44, + 123, + 34, + 117, + 114, + 108, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 105, + 92, + 47, + 118, + 49, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 117, + 115, + 115, + 101, + 110, + 92, + 47, + 99, + 57, + 101, + 56, + 97, + 99, + 56, + 56, + 45, + 52, + 55, + 53, + 55, + 45, + 52, + 101, + 101, + 49, + 45, + 97, + 56, + 102, + 48, + 45, + 57, + 55, + 51, + 98, + 51, + 101, + 97, + 100, + 57, + 52, + 55, + 100, + 34, + 44, + 34, + 117, + 117, + 105, + 100, + 34, + 58, + 34, + 99, + 57, + 101, + 56, + 97, + 99, + 56, + 56, + 45, + 52, + 55, + 53, + 55, + 45, + 52, + 101, + 101, + 49, + 45, + 97, + 56, + 102, + 48, + 45, + 57, + 55, + 51, + 98, + 51, + 101, + 97, + 100, + 57, + 52, + 55, + 100, + 34, + 44, + 34, + 100, + 111, + 109, + 101, + 105, + 110, + 34, + 58, + 34, + 65, + 65, + 66, + 34, + 44, + 34, + 114, + 115, + 105, + 110, + 34, + 58, + 34, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 34, + 44, + 34, + 99, + 111, + 110, + 116, + 97, + 99, + 116, + 112, + 101, + 114, + 115, + 111, + 111, + 110, + 66, + 101, + 104, + 101, + 101, + 114, + 78, + 97, + 97, + 109, + 34, + 58, + 34, + 84, + 101, + 115, + 116, + 32, + 80, + 101, + 114, + 115, + 111, + 111, + 110, + 34, + 44, + 34, + 99, + 111, + 110, + 116, + 97, + 99, + 116, + 112, + 101, + 114, + 115, + 111, + 111, + 110, + 66, + 101, + 104, + 101, + 101, + 114, + 84, + 101, + 108, + 101, + 102, + 111, + 111, + 110, + 110, + 117, + 109, + 109, + 101, + 114, + 34, + 58, + 34, + 34, + 44, + 34, + 99, + 111, + 110, + 116, + 97, + 99, + 116, + 112, + 101, + 114, + 115, + 111, + 111, + 110, + 66, + 101, + 104, + 101, + 101, + 114, + 69, + 109, + 97, + 105, + 108, + 97, + 100, + 114, + 101, + 115, + 34, + 58, + 34, + 34, + 44, + 34, + 122, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 98, + 101, + 115, + 108, + 117, + 105, + 116, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 105, + 110, + 102, + 111, + 114, + 109, + 97, + 116, + 105, + 101, + 111, + 98, + 106, + 101, + 99, + 116, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 125, + 44, + 123, + 34, + 117, + 114, + 108, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 105, + 92, + 47, + 118, + 49, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 117, + 115, + 115, + 101, + 110, + 92, + 47, + 100, + 54, + 100, + 51, + 52, + 57, + 52, + 50, + 45, + 50, + 49, + 51, + 53, + 45, + 52, + 50, + 97, + 51, + 45, + 97, + 57, + 55, + 102, + 45, + 51, + 52, + 102, + 55, + 57, + 99, + 54, + 55, + 54, + 99, + 57, + 55, + 34, + 44, + 34, + 117, + 117, + 105, + 100, + 34, + 58, + 34, + 100, + 54, + 100, + 51, + 52, + 57, + 52, + 50, + 45, + 50, + 49, + 51, + 53, + 45, + 52, + 50, + 97, + 51, + 45, + 97, + 57, + 55, + 102, + 45, + 51, + 52, + 102, + 55, + 57, + 99, + 54, + 55, + 54, + 99, + 57, + 55, + 34, + 44, + 34, + 100, + 111, + 109, + 101, + 105, + 110, + 34, + 58, + 34, + 65, + 65, + 66, + 34, + 44, + 34, + 114, + 115, + 105, + 110, + 34, + 58, + 34, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 34, + 44, + 34, + 99, + 111, + 110, + 116, + 97, + 99, + 116, + 112, + 101, + 114, + 115, + 111, + 111, + 110, + 66, + 101, + 104, + 101, + 101, + 114, + 78, + 97, + 97, + 109, + 34, + 58, + 34, + 84, + 101, + 115, + 116, + 32, + 80, + 101, + 114, + 115, + 111, + 111, + 110, + 34, + 44, + 34, + 99, + 111, + 110, + 116, + 97, + 99, + 116, + 112, + 101, + 114, + 115, + 111, + 111, + 110, + 66, + 101, + 104, + 101, + 101, + 114, + 84, + 101, + 108, + 101, + 102, + 111, + 111, + 110, + 110, + 117, + 109, + 109, + 101, + 114, + 34, + 58, + 34, + 34, + 44, + 34, + 99, + 111, + 110, + 116, + 97, + 99, + 116, + 112, + 101, + 114, + 115, + 111, + 111, + 110, + 66, + 101, + 104, + 101, + 101, + 114, + 69, + 109, + 97, + 105, + 108, + 97, + 100, + 114, + 101, + 115, + 34, + 58, + 34, + 34, + 44, + 34, + 122, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 98, + 101, + 115, + 108, + 117, + 105, + 116, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 105, + 110, + 102, + 111, + 114, + 109, + 97, + 116, + 105, + 101, + 111, + 98, + 106, + 101, + 99, + 116, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 125, + 44, + 123, + 34, + 117, + 114, + 108, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 105, + 92, + 47, + 118, + 49, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 117, + 115, + 115, + 101, + 110, + 92, + 47, + 55, + 99, + 99, + 99, + 101, + 55, + 97, + 57, + 45, + 101, + 52, + 98, + 57, + 45, + 52, + 56, + 101, + 51, + 45, + 56, + 97, + 53, + 51, + 45, + 99, + 97, + 102, + 56, + 48, + 102, + 54, + 97, + 55, + 98, + 99, + 55, + 34, + 44, + 34, + 117, + 117, + 105, + 100, + 34, + 58, + 34, + 55, + 99, + 99, + 99, + 101, + 55, + 97, + 57, + 45, + 101, + 52, + 98, + 57, + 45, + 52, + 56, + 101, + 51, + 45, + 56, + 97, + 53, + 51, + 45, + 99, + 97, + 102, + 56, + 48, + 102, + 54, + 97, + 55, + 98, + 99, + 55, + 34, + 44, + 34, + 100, + 111, + 109, + 101, + 105, + 110, + 34, + 58, + 34, + 65, + 65, + 66, + 34, + 44, + 34, + 114, + 115, + 105, + 110, + 34, + 58, + 34, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 34, + 44, + 34, + 99, + 111, + 110, + 116, + 97, + 99, + 116, + 112, + 101, + 114, + 115, + 111, + 111, + 110, + 66, + 101, + 104, + 101, + 101, + 114, + 78, + 97, + 97, + 109, + 34, + 58, + 34, + 84, + 101, + 115, + 116, + 32, + 80, + 101, + 114, + 115, + 111, + 111, + 110, + 34, + 44, + 34, + 99, + 111, + 110, + 116, + 97, + 99, + 116, + 112, + 101, + 114, + 115, + 111, + 111, + 110, + 66, + 101, + 104, + 101, + 101, + 114, + 84, + 101, + 108, + 101, + 102, + 111, + 111, + 110, + 110, + 117, + 109, + 109, + 101, + 114, + 34, + 58, + 34, + 34, + 44, + 34, + 99, + 111, + 110, + 116, + 97, + 99, + 116, + 112, + 101, + 114, + 115, + 111, + 111, + 110, + 66, + 101, + 104, + 101, + 101, + 114, + 69, + 109, + 97, + 105, + 108, + 97, + 100, + 114, + 101, + 115, + 34, + 58, + 34, + 34, + 44, + 34, + 122, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 98, + 101, + 115, + 108, + 117, + 105, + 116, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 105, + 110, + 102, + 111, + 114, + 109, + 97, + 116, + 105, + 101, + 111, + 98, + 106, + 101, + 99, + 116, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 125, + 44, + 123, + 34, + 117, + 114, + 108, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 105, + 92, + 47, + 118, + 49, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 117, + 115, + 115, + 101, + 110, + 92, + 47, + 57, + 55, + 98, + 54, + 99, + 50, + 102, + 57, + 45, + 101, + 53, + 51, + 51, + 45, + 52, + 100, + 101, + 57, + 45, + 98, + 100, + 51, + 51, + 45, + 51, + 57, + 98, + 51, + 97, + 49, + 57, + 99, + 53, + 56, + 97, + 50, + 34, + 44, + 34, + 117, + 117, + 105, + 100, + 34, + 58, + 34, + 57, + 55, + 98, + 54, + 99, + 50, + 102, + 57, + 45, + 101, + 53, + 51, + 51, + 45, + 52, + 100, + 101, + 57, + 45, + 98, + 100, + 51, + 51, + 45, + 51, + 57, + 98, + 51, + 97, + 49, + 57, + 99, + 53, + 56, + 97, + 50, + 34, + 44, + 34, + 100, + 111, + 109, + 101, + 105, + 110, + 34, + 58, + 34, + 65, + 65, + 66, + 34, + 44, + 34, + 114, + 115, + 105, + 110, + 34, + 58, + 34, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 34, + 44, + 34, + 99, + 111, + 110, + 116, + 97, + 99, + 116, + 112, + 101, + 114, + 115, + 111, + 111, + 110, + 66, + 101, + 104, + 101, + 101, + 114, + 78, + 97, + 97, + 109, + 34, + 58, + 34, + 84, + 101, + 115, + 116, + 32, + 80, + 101, + 114, + 115, + 111, + 111, + 110, + 34, + 44, + 34, + 99, + 111, + 110, + 116, + 97, + 99, + 116, + 112, + 101, + 114, + 115, + 111, + 111, + 110, + 66, + 101, + 104, + 101, + 101, + 114, + 84, + 101, + 108, + 101, + 102, + 111, + 111, + 110, + 110, + 117, + 109, + 109, + 101, + 114, + 34, + 58, + 34, + 34, + 44, + 34, + 99, + 111, + 110, + 116, + 97, + 99, + 116, + 112, + 101, + 114, + 115, + 111, + 111, + 110, + 66, + 101, + 104, + 101, + 101, + 114, + 69, + 109, + 97, + 105, + 108, + 97, + 100, + 114, + 101, + 115, + 34, + 58, + 34, + 34, + 44, + 34, + 122, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 98, + 101, + 115, + 108, + 117, + 105, + 116, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 105, + 110, + 102, + 111, + 114, + 109, + 97, + 116, + 105, + 101, + 111, + 98, + 106, + 101, + 99, + 116, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 125, + 44, + 123, + 34, + 117, + 114, + 108, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 105, + 92, + 47, + 118, + 49, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 117, + 115, + 115, + 101, + 110, + 92, + 47, + 52, + 55, + 53, + 55, + 101, + 57, + 98, + 54, + 45, + 51, + 102, + 57, + 101, + 45, + 52, + 51, + 50, + 102, + 45, + 97, + 100, + 56, + 49, + 45, + 99, + 48, + 53, + 48, + 51, + 50, + 102, + 54, + 53, + 100, + 57, + 53, + 34, + 44, + 34, + 117, + 117, + 105, + 100, + 34, + 58, + 34, + 52, + 55, + 53, + 55, + 101, + 57, + 98, + 54, + 45, + 51, + 102, + 57, + 101, + 45, + 52, + 51, + 50, + 102, + 45, + 97, + 100, + 56, + 49, + 45, + 99, + 48, + 53, + 48, + 51, + 50, + 102, + 54, + 53, + 100, + 57, + 53, + 34, + 44, + 34, + 100, + 111, + 109, + 101, + 105, + 110, + 34, + 58, + 34, + 65, + 65, + 66, + 34, + 44, + 34, + 114, + 115, + 105, + 110, + 34, + 58, + 34, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 34, + 44, + 34, + 99, + 111, + 110, + 116, + 97, + 99, + 116, + 112, + 101, + 114, + 115, + 111, + 111, + 110, + 66, + 101, + 104, + 101, + 101, + 114, + 78, + 97, + 97, + 109, + 34, + 58, + 34, + 84, + 101, + 115, + 116, + 32, + 80, + 101, + 114, + 115, + 111, + 111, + 110, + 34, + 44, + 34, + 99, + 111, + 110, + 116, + 97, + 99, + 116, + 112, + 101, + 114, + 115, + 111, + 111, + 110, + 66, + 101, + 104, + 101, + 101, + 114, + 84, + 101, + 108, + 101, + 102, + 111, + 111, + 110, + 110, + 117, + 109, + 109, + 101, + 114, + 34, + 58, + 34, + 34, + 44, + 34, + 99, + 111, + 110, + 116, + 97, + 99, + 116, + 112, + 101, + 114, + 115, + 111, + 111, + 110, + 66, + 101, + 104, + 101, + 101, + 114, + 69, + 109, + 97, + 105, + 108, + 97, + 100, + 114, + 101, + 115, + 34, + 58, + 34, + 34, + 44, + 34, + 122, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 98, + 101, + 115, + 108, + 117, + 105, + 116, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 105, + 110, + 102, + 111, + 114, + 109, + 97, + 116, + 105, + 101, + 111, + 98, + 106, + 101, + 99, + 116, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 125, + 44, + 123, + 34, + 117, + 114, + 108, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 105, + 92, + 47, + 118, + 49, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 117, + 115, + 115, + 101, + 110, + 92, + 47, + 52, + 57, + 51, + 54, + 97, + 54, + 102, + 98, + 45, + 55, + 97, + 56, + 54, + 45, + 52, + 48, + 57, + 98, + 45, + 57, + 52, + 55, + 51, + 45, + 51, + 99, + 52, + 99, + 56, + 57, + 53, + 98, + 56, + 101, + 56, + 57, + 34, + 44, + 34, + 117, + 117, + 105, + 100, + 34, + 58, + 34, + 52, + 57, + 51, + 54, + 97, + 54, + 102, + 98, + 45, + 55, + 97, + 56, + 54, + 45, + 52, + 48, + 57, + 98, + 45, + 57, + 52, + 55, + 51, + 45, + 51, + 99, + 52, + 99, + 56, + 57, + 53, + 98, + 56, + 101, + 56, + 57, + 34, + 44, + 34, + 100, + 111, + 109, + 101, + 105, + 110, + 34, + 58, + 34, + 90, + 71, + 87, + 84, + 34, + 44, + 34, + 114, + 115, + 105, + 110, + 34, + 58, + 34, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 34, + 44, + 34, + 99, + 111, + 110, + 116, + 97, + 99, + 116, + 112, + 101, + 114, + 115, + 111, + 111, + 110, + 66, + 101, + 104, + 101, + 101, + 114, + 78, + 97, + 97, + 109, + 34, + 58, + 34, + 84, + 101, + 115, + 116, + 32, + 80, + 101, + 114, + 115, + 111, + 111, + 110, + 34, + 44, + 34, + 99, + 111, + 110, + 116, + 97, + 99, + 116, + 112, + 101, + 114, + 115, + 111, + 111, + 110, + 66, + 101, + 104, + 101, + 101, + 114, + 84, + 101, + 108, + 101, + 102, + 111, + 111, + 110, + 110, + 117, + 109, + 109, + 101, + 114, + 34, + 58, + 34, + 34, + 44, + 34, + 99, + 111, + 110, + 116, + 97, + 99, + 116, + 112, + 101, + 114, + 115, + 111, + 111, + 110, + 66, + 101, + 104, + 101, + 101, + 114, + 69, + 109, + 97, + 105, + 108, + 97, + 100, + 114, + 101, + 115, + 34, + 58, + 34, + 34, + 44, + 34, + 122, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 98, + 101, + 115, + 108, + 117, + 105, + 116, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 105, + 110, + 102, + 111, + 114, + 109, + 97, + 116, + 105, + 101, + 111, + 98, + 106, + 101, + 99, + 116, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 125, + 44, + 123, + 34, + 117, + 114, + 108, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 105, + 92, + 47, + 118, + 49, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 117, + 115, + 115, + 101, + 110, + 92, + 47, + 55, + 53, + 101, + 51, + 100, + 98, + 57, + 56, + 45, + 99, + 98, + 57, + 101, + 45, + 52, + 99, + 48, + 57, + 45, + 57, + 48, + 49, + 48, + 45, + 99, + 48, + 53, + 52, + 102, + 53, + 97, + 52, + 98, + 98, + 57, + 99, + 34, + 44, + 34, + 117, + 117, + 105, + 100, + 34, + 58, + 34, + 55, + 53, + 101, + 51, + 100, + 98, + 57, + 56, + 45, + 99, + 98, + 57, + 101, + 45, + 52, + 99, + 48, + 57, + 45, + 57, + 48, + 49, + 48, + 45, + 99, + 48, + 53, + 52, + 102, + 53, + 97, + 52, + 98, + 98, + 57, + 99, + 34, + 44, + 34, + 100, + 111, + 109, + 101, + 105, + 110, + 34, + 58, + 34, + 65, + 65, + 66, + 34, + 44, + 34, + 114, + 115, + 105, + 110, + 34, + 58, + 34, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 34, + 44, + 34, + 99, + 111, + 110, + 116, + 97, + 99, + 116, + 112, + 101, + 114, + 115, + 111, + 111, + 110, + 66, + 101, + 104, + 101, + 101, + 114, + 78, + 97, + 97, + 109, + 34, + 58, + 34, + 84, + 101, + 115, + 116, + 32, + 80, + 101, + 114, + 115, + 111, + 111, + 110, + 34, + 44, + 34, + 99, + 111, + 110, + 116, + 97, + 99, + 116, + 112, + 101, + 114, + 115, + 111, + 111, + 110, + 66, + 101, + 104, + 101, + 101, + 114, + 84, + 101, + 108, + 101, + 102, + 111, + 111, + 110, + 110, + 117, + 109, + 109, + 101, + 114, + 34, + 58, + 34, + 34, + 44, + 34, + 99, + 111, + 110, + 116, + 97, + 99, + 116, + 112, + 101, + 114, + 115, + 111, + 111, + 110, + 66, + 101, + 104, + 101, + 101, + 114, + 69, + 109, + 97, + 105, + 108, + 97, + 100, + 114, + 101, + 115, + 34, + 58, + 34, + 34, + 44, + 34, + 122, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 98, + 101, + 115, + 108, + 117, + 105, + 116, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 105, + 110, + 102, + 111, + 114, + 109, + 97, + 116, + 105, + 101, + 111, + 98, + 106, + 101, + 99, + 116, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 125, + 44, + 123, + 34, + 117, + 114, + 108, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 105, + 92, + 47, + 118, + 49, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 117, + 115, + 115, + 101, + 110, + 92, + 47, + 98, + 100, + 49, + 51, + 98, + 57, + 52, + 56, + 45, + 52, + 100, + 97, + 98, + 45, + 52, + 56, + 55, + 98, + 45, + 57, + 97, + 48, + 56, + 45, + 51, + 100, + 52, + 53, + 100, + 54, + 97, + 54, + 49, + 54, + 99, + 100, + 34, + 44, + 34, + 117, + 117, + 105, + 100, + 34, + 58, + 34, + 98, + 100, + 49, + 51, + 98, + 57, + 52, + 56, + 45, + 52, + 100, + 97, + 98, + 45, + 52, + 56, + 55, + 98, + 45, + 57, + 97, + 48, + 56, + 45, + 51, + 100, + 52, + 53, + 100, + 54, + 97, + 54, + 49, + 54, + 99, + 100, + 34, + 44, + 34, + 100, + 111, + 109, + 101, + 105, + 110, + 34, + 58, + 34, + 90, + 71, + 87, + 84, + 34, + 44, + 34, + 114, + 115, + 105, + 110, + 34, + 58, + 34, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 34, + 44, + 34, + 99, + 111, + 110, + 116, + 97, + 99, + 116, + 112, + 101, + 114, + 115, + 111, + 111, + 110, + 66, + 101, + 104, + 101, + 101, + 114, + 78, + 97, + 97, + 109, + 34, + 58, + 34, + 84, + 101, + 115, + 116, + 32, + 80, + 101, + 114, + 115, + 111, + 111, + 110, + 34, + 44, + 34, + 99, + 111, + 110, + 116, + 97, + 99, + 116, + 112, + 101, + 114, + 115, + 111, + 111, + 110, + 66, + 101, + 104, + 101, + 101, + 114, + 84, + 101, + 108, + 101, + 102, + 111, + 111, + 110, + 110, + 117, + 109, + 109, + 101, + 114, + 34, + 58, + 34, + 34, + 44, + 34, + 99, + 111, + 110, + 116, + 97, + 99, + 116, + 112, + 101, + 114, + 115, + 111, + 111, + 110, + 66, + 101, + 104, + 101, + 101, + 114, + 69, + 109, + 97, + 105, + 108, + 97, + 100, + 114, + 101, + 115, + 34, + 58, + 34, + 34, + 44, + 34, + 122, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 98, + 101, + 115, + 108, + 117, + 105, + 116, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 105, + 110, + 102, + 111, + 114, + 109, + 97, + 116, + 105, + 101, + 111, + 98, + 106, + 101, + 99, + 116, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 125, + 44, + 123, + 34, + 117, + 114, + 108, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 105, + 92, + 47, + 118, + 49, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 117, + 115, + 115, + 101, + 110, + 92, + 47, + 56, + 53, + 101, + 100, + 100, + 100, + 98, + 101, + 45, + 49, + 57, + 98, + 55, + 45, + 52, + 101, + 56, + 54, + 45, + 98, + 101, + 54, + 57, + 45, + 53, + 98, + 101, + 99, + 55, + 99, + 102, + 54, + 56, + 53, + 55, + 97, + 34, + 44, + 34, + 117, + 117, + 105, + 100, + 34, + 58, + 34, + 56, + 53, + 101, + 100, + 100, + 100, + 98, + 101, + 45, + 49, + 57, + 98, + 55, + 45, + 52, + 101, + 56, + 54, + 45, + 98, + 101, + 54, + 57, + 45, + 53, + 98, + 101, + 99, + 55, + 99, + 102, + 54, + 56, + 53, + 55, + 97, + 34, + 44, + 34, + 100, + 111, + 109, + 101, + 105, + 110, + 34, + 58, + 34, + 65, + 65, + 66, + 34, + 44, + 34, + 114, + 115, + 105, + 110, + 34, + 58, + 34, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 34, + 44, + 34, + 99, + 111, + 110, + 116, + 97, + 99, + 116, + 112, + 101, + 114, + 115, + 111, + 111, + 110, + 66, + 101, + 104, + 101, + 101, + 114, + 78, + 97, + 97, + 109, + 34, + 58, + 34, + 84, + 101, + 115, + 116, + 32, + 80, + 101, + 114, + 115, + 111, + 111, + 110, + 34, + 44, + 34, + 99, + 111, + 110, + 116, + 97, + 99, + 116, + 112, + 101, + 114, + 115, + 111, + 111, + 110, + 66, + 101, + 104, + 101, + 101, + 114, + 84, + 101, + 108, + 101, + 102, + 111, + 111, + 110, + 110, + 117, + 109, + 109, + 101, + 114, + 34, + 58, + 34, + 34, + 44, + 34, + 99, + 111, + 110, + 116, + 97, + 99, + 116, + 112, + 101, + 114, + 115, + 111, + 111, + 110, + 66, + 101, + 104, + 101, + 101, + 114, + 69, + 109, + 97, + 105, + 108, + 97, + 100, + 114, + 101, + 115, + 34, + 58, + 34, + 34, + 44, + 34, + 122, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 98, + 101, + 115, + 108, + 117, + 105, + 116, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 105, + 110, + 102, + 111, + 114, + 109, + 97, + 116, + 105, + 101, + 111, + 98, + 106, + 101, + 99, + 116, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 125, + 44, + 123, + 34, + 117, + 114, + 108, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 105, + 92, + 47, + 118, + 49, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 117, + 115, + 115, + 101, + 110, + 92, + 47, + 51, + 55, + 97, + 48, + 99, + 52, + 53, + 99, + 45, + 55, + 98, + 101, + 57, + 45, + 52, + 49, + 102, + 50, + 45, + 98, + 102, + 57, + 55, + 45, + 57, + 48, + 51, + 52, + 49, + 97, + 56, + 50, + 49, + 51, + 50, + 55, + 34, + 44, + 34, + 117, + 117, + 105, + 100, + 34, + 58, + 34, + 51, + 55, + 97, + 48, + 99, + 52, + 53, + 99, + 45, + 55, + 98, + 101, + 57, + 45, + 52, + 49, + 102, + 50, + 45, + 98, + 102, + 57, + 55, + 45, + 57, + 48, + 51, + 52, + 49, + 97, + 56, + 50, + 49, + 51, + 50, + 55, + 34, + 44, + 34, + 100, + 111, + 109, + 101, + 105, + 110, + 34, + 58, + 34, + 90, + 71, + 87, + 84, + 34, + 44, + 34, + 114, + 115, + 105, + 110, + 34, + 58, + 34, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 34, + 44, + 34, + 99, + 111, + 110, + 116, + 97, + 99, + 116, + 112, + 101, + 114, + 115, + 111, + 111, + 110, + 66, + 101, + 104, + 101, + 101, + 114, + 78, + 97, + 97, + 109, + 34, + 58, + 34, + 84, + 101, + 115, + 116, + 32, + 80, + 101, + 114, + 115, + 111, + 111, + 110, + 34, + 44, + 34, + 99, + 111, + 110, + 116, + 97, + 99, + 116, + 112, + 101, + 114, + 115, + 111, + 111, + 110, + 66, + 101, + 104, + 101, + 101, + 114, + 84, + 101, + 108, + 101, + 102, + 111, + 111, + 110, + 110, + 117, + 109, + 109, + 101, + 114, + 34, + 58, + 34, + 34, + 44, + 34, + 99, + 111, + 110, + 116, + 97, + 99, + 116, + 112, + 101, + 114, + 115, + 111, + 111, + 110, + 66, + 101, + 104, + 101, + 101, + 114, + 69, + 109, + 97, + 105, + 108, + 97, + 100, + 114, + 101, + 115, + 34, + 58, + 34, + 34, + 44, + 34, + 122, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 98, + 101, + 115, + 108, + 117, + 105, + 116, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 105, + 110, + 102, + 111, + 114, + 109, + 97, + 116, + 105, + 101, + 111, + 98, + 106, + 101, + 99, + 116, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 125, + 44, + 123, + 34, + 117, + 114, + 108, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 105, + 92, + 47, + 118, + 49, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 117, + 115, + 115, + 101, + 110, + 92, + 47, + 55, + 98, + 57, + 100, + 48, + 100, + 53, + 57, + 45, + 51, + 50, + 97, + 101, + 45, + 52, + 98, + 53, + 98, + 45, + 57, + 101, + 50, + 52, + 45, + 53, + 101, + 55, + 52, + 102, + 99, + 49, + 101, + 55, + 56, + 102, + 56, + 34, + 44, + 34, + 117, + 117, + 105, + 100, + 34, + 58, + 34, + 55, + 98, + 57, + 100, + 48, + 100, + 53, + 57, + 45, + 51, + 50, + 97, + 101, + 45, + 52, + 98, + 53, + 98, + 45, + 57, + 101, + 50, + 52, + 45, + 53, + 101, + 55, + 52, + 102, + 99, + 49, + 101, + 55, + 56, + 102, + 56, + 34, + 44, + 34, + 100, + 111, + 109, + 101, + 105, + 110, + 34, + 58, + 34, + 65, + 65, + 66, + 34, + 44, + 34, + 114, + 115, + 105, + 110, + 34, + 58, + 34, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 34, + 44, + 34, + 99, + 111, + 110, + 116, + 97, + 99, + 116, + 112, + 101, + 114, + 115, + 111, + 111, + 110, + 66, + 101, + 104, + 101, + 101, + 114, + 78, + 97, + 97, + 109, + 34, + 58, + 34, + 84, + 101, + 115, + 116, + 32, + 80, + 101, + 114, + 115, + 111, + 111, + 110, + 34, + 44, + 34, + 99, + 111, + 110, + 116, + 97, + 99, + 116, + 112, + 101, + 114, + 115, + 111, + 111, + 110, + 66, + 101, + 104, + 101, + 101, + 114, + 84, + 101, + 108, + 101, + 102, + 111, + 111, + 110, + 110, + 117, + 109, + 109, + 101, + 114, + 34, + 58, + 34, + 34, + 44, + 34, + 99, + 111, + 110, + 116, + 97, + 99, + 116, + 112, + 101, + 114, + 115, + 111, + 111, + 110, + 66, + 101, + 104, + 101, + 101, + 114, + 69, + 109, + 97, + 105, + 108, + 97, + 100, + 114, + 101, + 115, + 34, + 58, + 34, + 34, + 44, + 34, + 122, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 98, + 101, + 115, + 108, + 117, + 105, + 116, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 105, + 110, + 102, + 111, + 114, + 109, + 97, + 116, + 105, + 101, + 111, + 98, + 106, + 101, + 99, + 116, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 125, + 44, + 123, + 34, + 117, + 114, + 108, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 105, + 92, + 47, + 118, + 49, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 117, + 115, + 115, + 101, + 110, + 92, + 47, + 48, + 101, + 53, + 49, + 55, + 99, + 97, + 53, + 45, + 56, + 57, + 49, + 98, + 45, + 52, + 53, + 97, + 57, + 45, + 98, + 56, + 50, + 101, + 45, + 101, + 57, + 56, + 48, + 57, + 54, + 57, + 101, + 57, + 57, + 50, + 100, + 34, + 44, + 34, + 117, + 117, + 105, + 100, + 34, + 58, + 34, + 48, + 101, + 53, + 49, + 55, + 99, + 97, + 53, + 45, + 56, + 57, + 49, + 98, + 45, + 52, + 53, + 97, + 57, + 45, + 98, + 56, + 50, + 101, + 45, + 101, + 57, + 56, + 48, + 57, + 54, + 57, + 101, + 57, + 57, + 50, + 100, + 34, + 44, + 34, + 100, + 111, + 109, + 101, + 105, + 110, + 34, + 58, + 34, + 90, + 71, + 87, + 84, + 34, + 44, + 34, + 114, + 115, + 105, + 110, + 34, + 58, + 34, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 34, + 44, + 34, + 99, + 111, + 110, + 116, + 97, + 99, + 116, + 112, + 101, + 114, + 115, + 111, + 111, + 110, + 66, + 101, + 104, + 101, + 101, + 114, + 78, + 97, + 97, + 109, + 34, + 58, + 34, + 84, + 101, + 115, + 116, + 32, + 80, + 101, + 114, + 115, + 111, + 111, + 110, + 34, + 44, + 34, + 99, + 111, + 110, + 116, + 97, + 99, + 116, + 112, + 101, + 114, + 115, + 111, + 111, + 110, + 66, + 101, + 104, + 101, + 101, + 114, + 84, + 101, + 108, + 101, + 102, + 111, + 111, + 110, + 110, + 117, + 109, + 109, + 101, + 114, + 34, + 58, + 34, + 34, + 44, + 34, + 99, + 111, + 110, + 116, + 97, + 99, + 116, + 112, + 101, + 114, + 115, + 111, + 111, + 110, + 66, + 101, + 104, + 101, + 101, + 114, + 69, + 109, + 97, + 105, + 108, + 97, + 100, + 114, + 101, + 115, + 34, + 58, + 34, + 34, + 44, + 34, + 122, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 98, + 101, + 115, + 108, + 117, + 105, + 116, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 105, + 110, + 102, + 111, + 114, + 109, + 97, + 116, + 105, + 101, + 111, + 98, + 106, + 101, + 99, + 116, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 125, + 44, + 123, + 34, + 117, + 114, + 108, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 105, + 92, + 47, + 118, + 49, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 117, + 115, + 115, + 101, + 110, + 92, + 47, + 99, + 99, + 97, + 50, + 100, + 57, + 102, + 100, + 45, + 50, + 56, + 56, + 102, + 45, + 52, + 56, + 48, + 57, + 45, + 56, + 48, + 53, + 54, + 45, + 101, + 54, + 101, + 51, + 98, + 51, + 53, + 98, + 48, + 98, + 102, + 100, + 34, + 44, + 34, + 117, + 117, + 105, + 100, + 34, + 58, + 34, + 99, + 99, + 97, + 50, + 100, + 57, + 102, + 100, + 45, + 50, + 56, + 56, + 102, + 45, + 52, + 56, + 48, + 57, + 45, + 56, + 48, + 53, + 54, + 45, + 101, + 54, + 101, + 51, + 98, + 51, + 53, + 98, + 48, + 98, + 102, + 100, + 34, + 44, + 34, + 100, + 111, + 109, + 101, + 105, + 110, + 34, + 58, + 34, + 65, + 65, + 66, + 34, + 44, + 34, + 114, + 115, + 105, + 110, + 34, + 58, + 34, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 34, + 44, + 34, + 99, + 111, + 110, + 116, + 97, + 99, + 116, + 112, + 101, + 114, + 115, + 111, + 111, + 110, + 66, + 101, + 104, + 101, + 101, + 114, + 78, + 97, + 97, + 109, + 34, + 58, + 34, + 84, + 101, + 115, + 116, + 32, + 80, + 101, + 114, + 115, + 111, + 111, + 110, + 34, + 44, + 34, + 99, + 111, + 110, + 116, + 97, + 99, + 116, + 112, + 101, + 114, + 115, + 111, + 111, + 110, + 66, + 101, + 104, + 101, + 101, + 114, + 84, + 101, + 108, + 101, + 102, + 111, + 111, + 110, + 110, + 117, + 109, + 109, + 101, + 114, + 34, + 58, + 34, + 34, + 44, + 34, + 99, + 111, + 110, + 116, + 97, + 99, + 116, + 112, + 101, + 114, + 115, + 111, + 111, + 110, + 66, + 101, + 104, + 101, + 101, + 114, + 69, + 109, + 97, + 105, + 108, + 97, + 100, + 114, + 101, + 115, + 34, + 58, + 34, + 34, + 44, + 34, + 122, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 98, + 101, + 115, + 108, + 117, + 105, + 116, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 105, + 110, + 102, + 111, + 114, + 109, + 97, + 116, + 105, + 101, + 111, + 98, + 106, + 101, + 99, + 116, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 125, + 44, + 123, + 34, + 117, + 114, + 108, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 105, + 92, + 47, + 118, + 49, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 117, + 115, + 115, + 101, + 110, + 92, + 47, + 50, + 48, + 48, + 101, + 54, + 55, + 98, + 55, + 45, + 99, + 50, + 98, + 48, + 45, + 52, + 100, + 53, + 50, + 45, + 56, + 53, + 57, + 54, + 45, + 99, + 48, + 57, + 98, + 48, + 57, + 49, + 49, + 48, + 98, + 48, + 98, + 34, + 44, + 34, + 117, + 117, + 105, + 100, + 34, + 58, + 34, + 50, + 48, + 48, + 101, + 54, + 55, + 98, + 55, + 45, + 99, + 50, + 98, + 48, + 45, + 52, + 100, + 53, + 50, + 45, + 56, + 53, + 57, + 54, + 45, + 99, + 48, + 57, + 98, + 48, + 57, + 49, + 49, + 48, + 98, + 48, + 98, + 34, + 44, + 34, + 100, + 111, + 109, + 101, + 105, + 110, + 34, + 58, + 34, + 90, + 71, + 87, + 84, + 34, + 44, + 34, + 114, + 115, + 105, + 110, + 34, + 58, + 34, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 34, + 44, + 34, + 99, + 111, + 110, + 116, + 97, + 99, + 116, + 112, + 101, + 114, + 115, + 111, + 111, + 110, + 66, + 101, + 104, + 101, + 101, + 114, + 78, + 97, + 97, + 109, + 34, + 58, + 34, + 84, + 101, + 115, + 116, + 32, + 80, + 101, + 114, + 115, + 111, + 111, + 110, + 34, + 44, + 34, + 99, + 111, + 110, + 116, + 97, + 99, + 116, + 112, + 101, + 114, + 115, + 111, + 111, + 110, + 66, + 101, + 104, + 101, + 101, + 114, + 84, + 101, + 108, + 101, + 102, + 111, + 111, + 110, + 110, + 117, + 109, + 109, + 101, + 114, + 34, + 58, + 34, + 34, + 44, + 34, + 99, + 111, + 110, + 116, + 97, + 99, + 116, + 112, + 101, + 114, + 115, + 111, + 111, + 110, + 66, + 101, + 104, + 101, + 101, + 114, + 69, + 109, + 97, + 105, + 108, + 97, + 100, + 114, + 101, + 115, + 34, + 58, + 34, + 34, + 44, + 34, + 122, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 98, + 101, + 115, + 108, + 117, + 105, + 116, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 105, + 110, + 102, + 111, + 114, + 109, + 97, + 116, + 105, + 101, + 111, + 98, + 106, + 101, + 99, + 116, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 125, + 44, + 123, + 34, + 117, + 114, + 108, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 105, + 92, + 47, + 118, + 49, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 117, + 115, + 115, + 101, + 110, + 92, + 47, + 97, + 54, + 50, + 51, + 48, + 53, + 52, + 102, + 45, + 100, + 48, + 57, + 98, + 45, + 52, + 101, + 54, + 102, + 45, + 98, + 99, + 54, + 56, + 45, + 98, + 101, + 55, + 97, + 51, + 57, + 56, + 99, + 99, + 51, + 53, + 50, + 34, + 44, + 34, + 117, + 117, + 105, + 100, + 34, + 58, + 34, + 97, + 54, + 50, + 51, + 48, + 53, + 52, + 102, + 45, + 100, + 48, + 57, + 98, + 45, + 52, + 101, + 54, + 102, + 45, + 98, + 99, + 54, + 56, + 45, + 98, + 101, + 55, + 97, + 51, + 57, + 56, + 99, + 99, + 51, + 53, + 50, + 34, + 44, + 34, + 100, + 111, + 109, + 101, + 105, + 110, + 34, + 58, + 34, + 65, + 65, + 66, + 34, + 44, + 34, + 114, + 115, + 105, + 110, + 34, + 58, + 34, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 34, + 44, + 34, + 99, + 111, + 110, + 116, + 97, + 99, + 116, + 112, + 101, + 114, + 115, + 111, + 111, + 110, + 66, + 101, + 104, + 101, + 101, + 114, + 78, + 97, + 97, + 109, + 34, + 58, + 34, + 84, + 101, + 115, + 116, + 32, + 80, + 101, + 114, + 115, + 111, + 111, + 110, + 34, + 44, + 34, + 99, + 111, + 110, + 116, + 97, + 99, + 116, + 112, + 101, + 114, + 115, + 111, + 111, + 110, + 66, + 101, + 104, + 101, + 101, + 114, + 84, + 101, + 108, + 101, + 102, + 111, + 111, + 110, + 110, + 117, + 109, + 109, + 101, + 114, + 34, + 58, + 34, + 34, + 44, + 34, + 99, + 111, + 110, + 116, + 97, + 99, + 116, + 112, + 101, + 114, + 115, + 111, + 111, + 110, + 66, + 101, + 104, + 101, + 101, + 114, + 69, + 109, + 97, + 105, + 108, + 97, + 100, + 114, + 101, + 115, + 34, + 58, + 34, + 34, + 44, + 34, + 122, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 98, + 101, + 115, + 108, + 117, + 105, + 116, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 105, + 110, + 102, + 111, + 114, + 109, + 97, + 116, + 105, + 101, + 111, + 98, + 106, + 101, + 99, + 116, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 125, + 44, + 123, + 34, + 117, + 114, + 108, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 105, + 92, + 47, + 118, + 49, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 117, + 115, + 115, + 101, + 110, + 92, + 47, + 50, + 56, + 54, + 98, + 101, + 57, + 51, + 51, + 45, + 50, + 97, + 51, + 52, + 45, + 52, + 54, + 52, + 53, + 45, + 98, + 48, + 49, + 48, + 45, + 57, + 57, + 98, + 56, + 56, + 53, + 50, + 101, + 57, + 48, + 50, + 48, + 34, + 44, + 34, + 117, + 117, + 105, + 100, + 34, + 58, + 34, + 50, + 56, + 54, + 98, + 101, + 57, + 51, + 51, + 45, + 50, + 97, + 51, + 52, + 45, + 52, + 54, + 52, + 53, + 45, + 98, + 48, + 49, + 48, + 45, + 57, + 57, + 98, + 56, + 56, + 53, + 50, + 101, + 57, + 48, + 50, + 48, + 34, + 44, + 34, + 100, + 111, + 109, + 101, + 105, + 110, + 34, + 58, + 34, + 90, + 71, + 87, + 84, + 34, + 44, + 34, + 114, + 115, + 105, + 110, + 34, + 58, + 34, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 34, + 44, + 34, + 99, + 111, + 110, + 116, + 97, + 99, + 116, + 112, + 101, + 114, + 115, + 111, + 111, + 110, + 66, + 101, + 104, + 101, + 101, + 114, + 78, + 97, + 97, + 109, + 34, + 58, + 34, + 84, + 101, + 115, + 116, + 32, + 80, + 101, + 114, + 115, + 111, + 111, + 110, + 34, + 44, + 34, + 99, + 111, + 110, + 116, + 97, + 99, + 116, + 112, + 101, + 114, + 115, + 111, + 111, + 110, + 66, + 101, + 104, + 101, + 101, + 114, + 84, + 101, + 108, + 101, + 102, + 111, + 111, + 110, + 110, + 117, + 109, + 109, + 101, + 114, + 34, + 58, + 34, + 34, + 44, + 34, + 99, + 111, + 110, + 116, + 97, + 99, + 116, + 112, + 101, + 114, + 115, + 111, + 111, + 110, + 66, + 101, + 104, + 101, + 101, + 114, + 69, + 109, + 97, + 105, + 108, + 97, + 100, + 114, + 101, + 115, + 34, + 58, + 34, + 34, + 44, + 34, + 122, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 98, + 101, + 115, + 108, + 117, + 105, + 116, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 105, + 110, + 102, + 111, + 114, + 109, + 97, + 116, + 105, + 101, + 111, + 98, + 106, + 101, + 99, + 116, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 125, + 44, + 123, + 34, + 117, + 114, + 108, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 105, + 92, + 47, + 118, + 49, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 117, + 115, + 115, + 101, + 110, + 92, + 47, + 100, + 56, + 102, + 102, + 53, + 50, + 53, + 53, + 45, + 97, + 100, + 102, + 97, + 45, + 52, + 52, + 51, + 102, + 45, + 98, + 49, + 102, + 57, + 45, + 57, + 99, + 98, + 57, + 55, + 100, + 53, + 98, + 51, + 99, + 100, + 99, + 34, + 44, + 34, + 117, + 117, + 105, + 100, + 34, + 58, + 34, + 100, + 56, + 102, + 102, + 53, + 50, + 53, + 53, + 45, + 97, + 100, + 102, + 97, + 45, + 52, + 52, + 51, + 102, + 45, + 98, + 49, + 102, + 57, + 45, + 57, + 99, + 98, + 57, + 55, + 100, + 53, + 98, + 51, + 99, + 100, + 99, + 34, + 44, + 34, + 100, + 111, + 109, + 101, + 105, + 110, + 34, + 58, + 34, + 65, + 65, + 66, + 34, + 44, + 34, + 114, + 115, + 105, + 110, + 34, + 58, + 34, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 34, + 44, + 34, + 99, + 111, + 110, + 116, + 97, + 99, + 116, + 112, + 101, + 114, + 115, + 111, + 111, + 110, + 66, + 101, + 104, + 101, + 101, + 114, + 78, + 97, + 97, + 109, + 34, + 58, + 34, + 84, + 101, + 115, + 116, + 32, + 80, + 101, + 114, + 115, + 111, + 111, + 110, + 34, + 44, + 34, + 99, + 111, + 110, + 116, + 97, + 99, + 116, + 112, + 101, + 114, + 115, + 111, + 111, + 110, + 66, + 101, + 104, + 101, + 101, + 114, + 84, + 101, + 108, + 101, + 102, + 111, + 111, + 110, + 110, + 117, + 109, + 109, + 101, + 114, + 34, + 58, + 34, + 34, + 44, + 34, + 99, + 111, + 110, + 116, + 97, + 99, + 116, + 112, + 101, + 114, + 115, + 111, + 111, + 110, + 66, + 101, + 104, + 101, + 101, + 114, + 69, + 109, + 97, + 105, + 108, + 97, + 100, + 114, + 101, + 115, + 34, + 58, + 34, + 34, + 44, + 34, + 122, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 98, + 101, + 115, + 108, + 117, + 105, + 116, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 105, + 110, + 102, + 111, + 114, + 109, + 97, + 116, + 105, + 101, + 111, + 98, + 106, + 101, + 99, + 116, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 125, + 44, + 123, + 34, + 117, + 114, + 108, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 105, + 92, + 47, + 118, + 49, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 117, + 115, + 115, + 101, + 110, + 92, + 47, + 49, + 100, + 54, + 49, + 51, + 51, + 51, + 48, + 45, + 48, + 97, + 54, + 102, + 45, + 52, + 51, + 56, + 50, + 45, + 97, + 99, + 48, + 48, + 45, + 53, + 50, + 98, + 50, + 53, + 57, + 99, + 52, + 102, + 56, + 99, + 97, + 34, + 44, + 34, + 117, + 117, + 105, + 100, + 34, + 58, + 34, + 49, + 100, + 54, + 49, + 51, + 51, + 51, + 48, + 45, + 48, + 97, + 54, + 102, + 45, + 52, + 51, + 56, + 50, + 45, + 97, + 99, + 48, + 48, + 45, + 53, + 50, + 98, + 50, + 53, + 57, + 99, + 52, + 102, + 56, + 99, + 97, + 34, + 44, + 34, + 100, + 111, + 109, + 101, + 105, + 110, + 34, + 58, + 34, + 90, + 71, + 87, + 84, + 34, + 44, + 34, + 114, + 115, + 105, + 110, + 34, + 58, + 34, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 34, + 44, + 34, + 99, + 111, + 110, + 116, + 97, + 99, + 116, + 112, + 101, + 114, + 115, + 111, + 111, + 110, + 66, + 101, + 104, + 101, + 101, + 114, + 78, + 97, + 97, + 109, + 34, + 58, + 34, + 84, + 101, + 115, + 116, + 32, + 80, + 101, + 114, + 115, + 111, + 111, + 110, + 34, + 44, + 34, + 99, + 111, + 110, + 116, + 97, + 99, + 116, + 112, + 101, + 114, + 115, + 111, + 111, + 110, + 66, + 101, + 104, + 101, + 101, + 114, + 84, + 101, + 108, + 101, + 102, + 111, + 111, + 110, + 110, + 117, + 109, + 109, + 101, + 114, + 34, + 58, + 34, + 34, + 44, + 34, + 99, + 111, + 110, + 116, + 97, + 99, + 116, + 112, + 101, + 114, + 115, + 111, + 111, + 110, + 66, + 101, + 104, + 101, + 101, + 114, + 69, + 109, + 97, + 105, + 108, + 97, + 100, + 114, + 101, + 115, + 34, + 58, + 34, + 34, + 44, + 34, + 122, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 98, + 101, + 115, + 108, + 117, + 105, + 116, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 105, + 110, + 102, + 111, + 114, + 109, + 97, + 116, + 105, + 101, + 111, + 98, + 106, + 101, + 99, + 116, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 125, + 93, + 125 + ] + }, + "cookie": [], + "responseTime": 106, + "responseSize": 8033 + }, + "id": "0e70db12-d123-4d04-99cb-c6325ac685ba" + }, + { + "cursor": { + "ref": "53210c25-441b-4a63-97e7-2d3cd39baa29", + "length": 313, + "cycles": 1, + "position": 67, + "iteration": 0, + "httpRequestId": "45871648-445c-4ba6-9ba4-86fc0c873d50" + }, + "item": { + "id": "c0805db0-b908-42e8-ac42-38292d5e0fa1", + "name": "zaak", + "request": { + "url": { + "path": [ + "zaken" + ], + "host": [ + "{{zrc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Accept-Crs", + "value": "EPSG:4326" + }, + { + "key": "Content-Crs", + "value": "EPSG:4326" + }, + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\r\n\r\n \"bronorganisatie\": \"000000000\",\r\n \"omschrijving\": \"string\",\r\n \"toelichting\": \"string\",\r\n \"zaaktype\": \"{{zaaktype_url}}\",\r\n \"registratiedatum\": \"2019-04-09\",\r\n \"verantwoordelijkeOrganisatie\": \"000000000\",\r\n \"startdatum\": \"2019-04-09\",\r\n \"einddatum\": null,\r\n \"einddatumGepland\": \"2019-04-20\",\r\n \"uiterlijkeEinddatumAfdoening\": \"2019-04-09\",\r\n \"publicatiedatum\": \"2019-04-09\",\r\n \"communicatiekanaal\": \"\",\r\n \"productenOfDiensten\": [],\r\n \"vertrouwelijkheidaanduiding\": \"geheim\",\r\n \"betalingsindicatie\": \"geheel\",\r\n \"betalingsindicatieWeergave\": null,\r\n \"laatsteBetaaldatum\": \"2019-01-01T00:00:00Z\",\r\n \"zaakgeometrie\": {\r\n \"type\": \"Point\",\r\n \"coordinates\": [\r\n 53.0,\r\n 5.0\r\n ]\r\n },\r\n \"verlenging\": null,\r\n \"opschorting\": {\r\n \"indicatie\": true,\r\n \"reden\": \"string\"\r\n },\r\n \"selectielijstklasse\": \"https://referentielijsten.roxit.nl/api/v1/resultaten/0fe71ce3-b1e1-48eb-9070-be2756fc71b5\",\r\n \"hoofdzaak\": null,\r\n \"deelzaken\": [],\r\n \"relevanteAndereZaken\": [],\r\n \"eigenschappen\": [],\r\n \"rollen\": [],\r\n \"status\": null,\r\n \"zaakinformatieobjecten\": [],\r\n \"zaakobjecten\": [],\r\n \"resultaat\": null,\r\n \"kenmerken\": [],\r\n \"archiefnominatie\": null,\r\n \"archiefstatus\": \"nog_te_archiveren\",\r\n \"archiefactiedatum\": null,\r\n \"opdrachtgevendeOrganisatie\": null,\r\n \"processobjectaard\": null,\r\n \"startdatumBewaartermijn\": null,\r\n \"processobject\": null\r\n}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "38243872-a733-4daa-b03f-99eff519e2ca", + "type": "text/javascript", + "packages": {}, + "exec": [ + "pm.environment.set(\"created_zaak_url\", pm.response.json().url);" + ], + "_lastExecutionId": "77be1497-5818-494d-8843-3ea9f0639dfc" + } + }, + { + "listen": "prerequest", + "script": { + "id": "135c8be0-caea-450f-a589-4344c7d23d54", + "type": "text/javascript", + "packages": {}, + "exec": [ + "" + ], + "_lastExecutionId": "073abcc9-f528-4458-90c5-e2111284fa0c" + } + } + ] + }, + "request": { + "url": { + "protocol": "http", + "port": "8080", + "path": [ + "index.php", + "apps", + "procest", + "api", + "zgw", + "zaken", + "v1", + "zaken" + ], + "host": [ + "localhost" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Accept-Crs", + "value": "EPSG:4326" + }, + { + "key": "Content-Crs", + "value": "EPSG:4326" + }, + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Authorization", + "value": "Bearer eyJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJwcm9jZXN0LWFkbWluIiwiY2xpZW50X2lkIjoicHJvY2VzdC1hZG1pbiIsImlhdCI6IjE3NzMxNDUxNTYiLCJ1c2VyX2lkIjoicHJvY2VzdC1hZG1pbiIsInVzZXJfcmVwcmVzZW50YXRpb24iOiIifQ.g8ZvARsSp-x8KjDZZmoR-VdYrJW1NuBHRGlSF1fyRkE", + "system": true + }, + { + "key": "User-Agent", + "value": "PostmanRuntime/7.39.1", + "system": true + }, + { + "key": "Accept", + "value": "*/*", + "system": true + }, + { + "key": "Cache-Control", + "value": "no-cache", + "system": true + }, + { + "key": "Postman-Token", + "value": "01853529-0366-4382-9ec8-85bd1225fdab", + "system": true + }, + { + "key": "Host", + "value": "localhost:8080", + "system": true + }, + { + "key": "Accept-Encoding", + "value": "gzip, deflate, br", + "system": true + }, + { + "key": "Connection", + "value": "keep-alive", + "system": true + }, + { + "key": "Content-Length", + "value": "1605", + "system": true + }, + { + "key": "Cookie", + "value": "ocvp3112b4wg=9ccf4aa2c789e198f5da0aec65ccd9ae; oc_sessionPassphrase=LBNdKxRzA0iqoULIruNxDDh2BK3O%2BrCIU8aUmiUcOFvy5Xw1YfjwQNlmBW2IkGwJYtxXh9%2BwDN6vYuGNX07tXzkBtjQJUWTGdzf8AIOUIVxVx5DfyWAQZ7nmYmQv6XSE; nc_sameSiteCookielax=true; nc_sameSiteCookiestrict=true", + "system": true + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\r\n\r\n \"bronorganisatie\": \"000000000\",\r\n \"omschrijving\": \"string\",\r\n \"toelichting\": \"string\",\r\n \"zaaktype\": \"http://localhost:8080/index.php/apps/procest/api/zgw/catalogi/v1/zaaktypen/619dc3e5-52f1-4294-a569-f21d16f44879\",\r\n \"registratiedatum\": \"2019-04-09\",\r\n \"verantwoordelijkeOrganisatie\": \"000000000\",\r\n \"startdatum\": \"2019-04-09\",\r\n \"einddatum\": null,\r\n \"einddatumGepland\": \"2019-04-20\",\r\n \"uiterlijkeEinddatumAfdoening\": \"2019-04-09\",\r\n \"publicatiedatum\": \"2019-04-09\",\r\n \"communicatiekanaal\": \"\",\r\n \"productenOfDiensten\": [],\r\n \"vertrouwelijkheidaanduiding\": \"geheim\",\r\n \"betalingsindicatie\": \"geheel\",\r\n \"betalingsindicatieWeergave\": null,\r\n \"laatsteBetaaldatum\": \"2019-01-01T00:00:00Z\",\r\n \"zaakgeometrie\": {\r\n \"type\": \"Point\",\r\n \"coordinates\": [\r\n 53.0,\r\n 5.0\r\n ]\r\n },\r\n \"verlenging\": null,\r\n \"opschorting\": {\r\n \"indicatie\": true,\r\n \"reden\": \"string\"\r\n },\r\n \"selectielijstklasse\": \"https://referentielijsten.roxit.nl/api/v1/resultaten/0fe71ce3-b1e1-48eb-9070-be2756fc71b5\",\r\n \"hoofdzaak\": null,\r\n \"deelzaken\": [],\r\n \"relevanteAndereZaken\": [],\r\n \"eigenschappen\": [],\r\n \"rollen\": [],\r\n \"status\": null,\r\n \"zaakinformatieobjecten\": [],\r\n \"zaakobjecten\": [],\r\n \"resultaat\": null,\r\n \"kenmerken\": [],\r\n \"archiefnominatie\": null,\r\n \"archiefstatus\": \"nog_te_archiveren\",\r\n \"archiefactiedatum\": null,\r\n \"opdrachtgevendeOrganisatie\": null,\r\n \"processobjectaard\": null,\r\n \"startdatumBewaartermijn\": null,\r\n \"processobject\": null\r\n}" + }, + "auth": { + "type": "jwt", + "jwt": [ + { + "type": "string", + "value": "{\r\n \"iss\": \"procest-admin\",\r\n \"client_id\": \"procest-admin\",\r\n \"iat\": \"1773145156\",\r\n \"user_id\": \"procest-admin\",\r\n \"user_representation\": \"\"\r\n}", + "key": "payload" + }, + { + "type": "string", + "value": "procest-admin-secret-key-for-testing", + "key": "secret" + }, + { + "type": "string", + "value": "HS256", + "key": "algorithm" + }, + { + "type": "boolean", + "value": false, + "key": "isSecretBase64Encoded" + }, + { + "type": "string", + "value": "header", + "key": "addTokenTo" + }, + { + "type": "string", + "value": "Bearer", + "key": "headerPrefix" + }, + { + "type": "string", + "value": "token", + "key": "queryParamKey" + }, + { + "type": "string", + "value": "{}", + "key": "header" + } + ] + } + }, + "response": { + "id": "de491854-24f0-4f22-88d3-c04014558120", + "status": "Created", + "code": 201, + "header": [ + { + "key": "Date", + "value": "Tue, 10 Mar 2026 12:19:16 GMT" + }, + { + "key": "Server", + "value": "Apache/2.4.66 (Debian)" + }, + { + "key": "X-Content-Type-Options", + "value": "nosniff" + }, + { + "key": "X-Frame-Options", + "value": "SAMEORIGIN" + }, + { + "key": "X-Permitted-Cross-Domain-Policies", + "value": "none" + }, + { + "key": "X-Robots-Tag", + "value": "noindex, nofollow" + }, + { + "key": "Referrer-Policy", + "value": "no-referrer" + }, + { + "key": "X-Powered-By", + "value": "PHP/8.3.30" + }, + { + "key": "Content-Security-Policy", + "value": "default-src 'none';base-uri 'none';manifest-src 'self';frame-ancestors 'none'" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=9ccf4aa2c789e198f5da0aec65ccd9ae; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=9ccf4aa2c789e198f5da0aec65ccd9ae; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=9ccf4aa2c789e198f5da0aec65ccd9ae; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=9ccf4aa2c789e198f5da0aec65ccd9ae; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=eb67e245fb1f5d835e44ee4f247db61b; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=eb67e245fb1f5d835e44ee4f247db61b; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=eb67e245fb1f5d835e44ee4f247db61b; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=eb67e245fb1f5d835e44ee4f247db61b; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=eb67e245fb1f5d835e44ee4f247db61b; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "X-Request-Id", + "value": "hDkjmqHUGRPT394xm9pM" + }, + { + "key": "Cache-Control", + "value": "no-cache, no-store, must-revalidate" + }, + { + "key": "Feature-Policy", + "value": "autoplay 'none';camera 'none';fullscreen 'none';geolocation 'none';microphone 'none';payment 'none'" + }, + { + "key": "X-User-Id", + "value": "admin" + }, + { + "key": "Content-Length", + "value": "805" + }, + { + "key": "Keep-Alive", + "value": "timeout=5, max=83" + }, + { + "key": "Connection", + "value": "Keep-Alive" + }, + { + "key": "Content-Type", + "value": "application/json; charset=utf-8" + } + ], + "stream": { + "type": "Buffer", + "data": [ + 123, + 34, + 117, + 114, + 108, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 122, + 97, + 107, + 101, + 110, + 92, + 47, + 118, + 49, + 92, + 47, + 122, + 97, + 107, + 101, + 110, + 92, + 47, + 98, + 54, + 52, + 56, + 99, + 53, + 100, + 97, + 45, + 98, + 53, + 57, + 48, + 45, + 52, + 57, + 54, + 48, + 45, + 57, + 52, + 97, + 48, + 45, + 102, + 48, + 99, + 53, + 97, + 51, + 102, + 57, + 101, + 100, + 57, + 48, + 34, + 44, + 34, + 117, + 117, + 105, + 100, + 34, + 58, + 34, + 98, + 54, + 52, + 56, + 99, + 53, + 100, + 97, + 45, + 98, + 53, + 57, + 48, + 45, + 52, + 57, + 54, + 48, + 45, + 57, + 52, + 97, + 48, + 45, + 102, + 48, + 99, + 53, + 97, + 51, + 102, + 57, + 101, + 100, + 57, + 48, + 34, + 44, + 34, + 105, + 100, + 101, + 110, + 116, + 105, + 102, + 105, + 99, + 97, + 116, + 105, + 101, + 34, + 58, + 34, + 90, + 65, + 65, + 75, + 45, + 84, + 66, + 79, + 78, + 75, + 52, + 45, + 65, + 51, + 48, + 51, + 54, + 66, + 34, + 44, + 34, + 111, + 109, + 115, + 99, + 104, + 114, + 105, + 106, + 118, + 105, + 110, + 103, + 34, + 58, + 34, + 115, + 116, + 114, + 105, + 110, + 103, + 34, + 44, + 34, + 116, + 111, + 101, + 108, + 105, + 99, + 104, + 116, + 105, + 110, + 103, + 34, + 58, + 34, + 115, + 116, + 114, + 105, + 110, + 103, + 34, + 44, + 34, + 122, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 105, + 92, + 47, + 118, + 49, + 92, + 47, + 122, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 110, + 92, + 47, + 54, + 49, + 57, + 100, + 99, + 51, + 101, + 53, + 45, + 53, + 50, + 102, + 49, + 45, + 52, + 50, + 57, + 52, + 45, + 97, + 53, + 54, + 57, + 45, + 102, + 50, + 49, + 100, + 49, + 54, + 102, + 52, + 52, + 56, + 55, + 57, + 34, + 44, + 34, + 114, + 101, + 103, + 105, + 115, + 116, + 114, + 97, + 116, + 105, + 101, + 100, + 97, + 116, + 117, + 109, + 34, + 58, + 34, + 50, + 48, + 50, + 54, + 45, + 48, + 51, + 45, + 49, + 48, + 84, + 49, + 50, + 58, + 49, + 57, + 58, + 49, + 54, + 43, + 48, + 48, + 58, + 48, + 48, + 34, + 44, + 34, + 115, + 116, + 97, + 114, + 116, + 100, + 97, + 116, + 117, + 109, + 34, + 58, + 34, + 50, + 48, + 49, + 57, + 45, + 48, + 52, + 45, + 48, + 57, + 34, + 44, + 34, + 101, + 105, + 110, + 100, + 100, + 97, + 116, + 117, + 109, + 34, + 58, + 110, + 117, + 108, + 108, + 44, + 34, + 101, + 105, + 110, + 100, + 100, + 97, + 116, + 117, + 109, + 71, + 101, + 112, + 108, + 97, + 110, + 100, + 34, + 58, + 34, + 50, + 48, + 49, + 57, + 45, + 48, + 52, + 45, + 50, + 48, + 34, + 44, + 34, + 117, + 105, + 116, + 101, + 114, + 108, + 105, + 106, + 107, + 101, + 69, + 105, + 110, + 100, + 100, + 97, + 116, + 117, + 109, + 65, + 102, + 100, + 111, + 101, + 110, + 105, + 110, + 103, + 34, + 58, + 34, + 50, + 48, + 49, + 57, + 45, + 48, + 52, + 45, + 48, + 57, + 34, + 44, + 34, + 118, + 101, + 114, + 116, + 114, + 111, + 117, + 119, + 101, + 108, + 105, + 106, + 107, + 104, + 101, + 105, + 100, + 97, + 97, + 110, + 100, + 117, + 105, + 100, + 105, + 110, + 103, + 34, + 58, + 34, + 103, + 101, + 104, + 101, + 105, + 109, + 34, + 44, + 34, + 118, + 101, + 114, + 97, + 110, + 116, + 119, + 111, + 111, + 114, + 100, + 101, + 108, + 105, + 106, + 107, + 101, + 79, + 114, + 103, + 97, + 110, + 105, + 115, + 97, + 116, + 105, + 101, + 34, + 58, + 34, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 34, + 44, + 34, + 97, + 114, + 99, + 104, + 105, + 101, + 102, + 110, + 111, + 109, + 105, + 110, + 97, + 116, + 105, + 101, + 34, + 58, + 110, + 117, + 108, + 108, + 44, + 34, + 97, + 114, + 99, + 104, + 105, + 101, + 102, + 97, + 99, + 116, + 105, + 101, + 100, + 97, + 116, + 117, + 109, + 34, + 58, + 110, + 117, + 108, + 108, + 44, + 34, + 97, + 114, + 99, + 104, + 105, + 101, + 102, + 115, + 116, + 97, + 116, + 117, + 115, + 34, + 58, + 34, + 110, + 111, + 103, + 95, + 116, + 101, + 95, + 97, + 114, + 99, + 104, + 105, + 118, + 101, + 114, + 101, + 110, + 34, + 44, + 34, + 98, + 101, + 116, + 97, + 108, + 105, + 110, + 103, + 115, + 105, + 110, + 100, + 105, + 99, + 97, + 116, + 105, + 101, + 34, + 58, + 34, + 103, + 101, + 104, + 101, + 101, + 108, + 34, + 44, + 34, + 108, + 97, + 97, + 116, + 115, + 116, + 101, + 66, + 101, + 116, + 97, + 97, + 108, + 100, + 97, + 116, + 117, + 109, + 34, + 58, + 34, + 50, + 48, + 49, + 57, + 45, + 48, + 49, + 45, + 48, + 49, + 34, + 44, + 34, + 104, + 111, + 111, + 102, + 100, + 122, + 97, + 97, + 107, + 34, + 58, + 110, + 117, + 108, + 108, + 125 + ] + }, + "cookie": [], + "responseTime": 311, + "responseSize": 805 + }, + "id": "c0805db0-b908-42e8-ac42-38292d5e0fa1" + }, + { + "cursor": { + "ref": "e38d2ad7-21c5-4160-ad38-b8a05759dac4", + "length": 313, + "cycles": 1, + "position": 68, + "iteration": 0, + "httpRequestId": "1d700ee5-a2cd-41cd-a194-2ef4c06eee72" + }, + "item": { + "id": "ed6480ef-f3ed-4ecb-af29-d467eccdbf89", + "name": "(DRC) Create EnkelvoudigInformatieObject", + "request": { + "url": { + "path": [ + "enkelvoudiginformatieobjecten" + ], + "host": [ + "{{drc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n\t\"bronorganisatie\": \"000000000\",\n\t\"creatiedatum\": \"2019-01-01\",\n\t\"titel\": \"testobject\",\n\t\"auteur\": \"testauteur\",\n \"formaat\": \"application/pdf\",\n \"taal\": \"nld\",\n \"bestandsnaam\": \"test 3.pdf\",\n\t\"inhoud\": \"c3RyaW5n\",\n\t\"informatieobjecttype\": \"{{informatieobjecttype_url}}\",\n \"indicatieGebruiksrecht\": false,\n \"status\": \"gearchiveerd\",\n\t\"bestandsomvang\": 6\n}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "730783c6-9089-4ef4-8399-d724301e51d2", + "type": "text/javascript", + "packages": {}, + "exec": [ + "pm.environment.set(\"informatieobject_url\", pm.response.json().url);" + ], + "_lastExecutionId": "cc272502-acdc-4e4b-90b3-eea4a2a8ece8" + } + }, + { + "listen": "prerequest", + "script": { + "id": "ab08a94d-6181-43d6-8dcc-df24ff00013b", + "type": "text/javascript", + "packages": {}, + "exec": [ + "" + ], + "_lastExecutionId": "50e95c7a-861b-493f-a016-bbccf0065df7" + } + } + ] + }, + "request": { + "url": { + "protocol": "http", + "port": "8080", + "path": [ + "index.php", + "apps", + "procest", + "api", + "zgw", + "documenten", + "v1", + "enkelvoudiginformatieobjecten" + ], + "host": [ + "localhost" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Authorization", + "value": "Bearer eyJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJwcm9jZXN0LWFkbWluIiwiY2xpZW50X2lkIjoicHJvY2VzdC1hZG1pbiIsImlhdCI6IjE3NzMxNDUxNTciLCJ1c2VyX2lkIjoicHJvY2VzdC1hZG1pbiIsInVzZXJfcmVwcmVzZW50YXRpb24iOiIifQ.FuPfA_Te6hXe16XR5e4pC5LmvRbooQTFOPCKMZBHNwY", + "system": true + }, + { + "key": "User-Agent", + "value": "PostmanRuntime/7.39.1", + "system": true + }, + { + "key": "Accept", + "value": "*/*", + "system": true + }, + { + "key": "Cache-Control", + "value": "no-cache", + "system": true + }, + { + "key": "Postman-Token", + "value": "70065bb4-17be-42b7-bc74-cf71cca3bcf3", + "system": true + }, + { + "key": "Host", + "value": "localhost:8080", + "system": true + }, + { + "key": "Accept-Encoding", + "value": "gzip, deflate, br", + "system": true + }, + { + "key": "Connection", + "value": "keep-alive", + "system": true + }, + { + "key": "Content-Length", + "value": "466", + "system": true + }, + { + "key": "Cookie", + "value": "ocvp3112b4wg=eb67e245fb1f5d835e44ee4f247db61b; oc_sessionPassphrase=LBNdKxRzA0iqoULIruNxDDh2BK3O%2BrCIU8aUmiUcOFvy5Xw1YfjwQNlmBW2IkGwJYtxXh9%2BwDN6vYuGNX07tXzkBtjQJUWTGdzf8AIOUIVxVx5DfyWAQZ7nmYmQv6XSE; nc_sameSiteCookielax=true; nc_sameSiteCookiestrict=true", + "system": true + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n\t\"bronorganisatie\": \"000000000\",\n\t\"creatiedatum\": \"2019-01-01\",\n\t\"titel\": \"testobject\",\n\t\"auteur\": \"testauteur\",\n \"formaat\": \"application/pdf\",\n \"taal\": \"nld\",\n \"bestandsnaam\": \"test 3.pdf\",\n\t\"inhoud\": \"c3RyaW5n\",\n\t\"informatieobjecttype\": \"http://localhost:8080/index.php/apps/procest/api/zgw/catalogi/v1/informatieobjecttypen/6cab7420-6cda-49c9-8313-7464947a74a3\",\n \"indicatieGebruiksrecht\": false,\n \"status\": \"gearchiveerd\",\n\t\"bestandsomvang\": 6\n}" + }, + "auth": { + "type": "jwt", + "jwt": [ + { + "type": "string", + "value": "{\r\n \"iss\": \"procest-admin\",\r\n \"client_id\": \"procest-admin\",\r\n \"iat\": \"1773145157\",\r\n \"user_id\": \"procest-admin\",\r\n \"user_representation\": \"\"\r\n}", + "key": "payload" + }, + { + "type": "string", + "value": "procest-admin-secret-key-for-testing", + "key": "secret" + }, + { + "type": "string", + "value": "HS256", + "key": "algorithm" + }, + { + "type": "boolean", + "value": false, + "key": "isSecretBase64Encoded" + }, + { + "type": "string", + "value": "header", + "key": "addTokenTo" + }, + { + "type": "string", + "value": "Bearer", + "key": "headerPrefix" + }, + { + "type": "string", + "value": "token", + "key": "queryParamKey" + }, + { + "type": "string", + "value": "{}", + "key": "header" + } + ] + } + }, + "response": { + "id": "d92f7934-4959-4009-b3c0-0b1da0361dcd", + "status": "Created", + "code": 201, + "header": [ + { + "key": "Date", + "value": "Tue, 10 Mar 2026 12:19:16 GMT" + }, + { + "key": "Server", + "value": "Apache/2.4.66 (Debian)" + }, + { + "key": "X-Content-Type-Options", + "value": "nosniff" + }, + { + "key": "X-Frame-Options", + "value": "SAMEORIGIN" + }, + { + "key": "X-Permitted-Cross-Domain-Policies", + "value": "none" + }, + { + "key": "X-Robots-Tag", + "value": "noindex, nofollow" + }, + { + "key": "Referrer-Policy", + "value": "no-referrer" + }, + { + "key": "X-Powered-By", + "value": "PHP/8.3.30" + }, + { + "key": "Content-Security-Policy", + "value": "default-src 'none';base-uri 'none';manifest-src 'self';frame-ancestors 'none'" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=eb67e245fb1f5d835e44ee4f247db61b; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=eb67e245fb1f5d835e44ee4f247db61b; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=eb67e245fb1f5d835e44ee4f247db61b; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=eb67e245fb1f5d835e44ee4f247db61b; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=eb67e245fb1f5d835e44ee4f247db61b; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=9dce435a09071d37ba432fea1c449428; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=9dce435a09071d37ba432fea1c449428; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=9dce435a09071d37ba432fea1c449428; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=9dce435a09071d37ba432fea1c449428; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=9dce435a09071d37ba432fea1c449428; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "X-Request-Id", + "value": "IYyhzaXJUPiyGQ7wqApr" + }, + { + "key": "Cache-Control", + "value": "no-cache, no-store, must-revalidate" + }, + { + "key": "Feature-Policy", + "value": "autoplay 'none';camera 'none';fullscreen 'none';geolocation 'none';microphone 'none';payment 'none'" + }, + { + "key": "X-User-Id", + "value": "admin" + }, + { + "key": "Content-Length", + "value": "942" + }, + { + "key": "Keep-Alive", + "value": "timeout=5, max=82" + }, + { + "key": "Connection", + "value": "Keep-Alive" + }, + { + "key": "Content-Type", + "value": "application/json; charset=utf-8" + } + ], + "stream": { + "type": "Buffer", + "data": [ + 123, + 34, + 117, + 114, + 108, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 100, + 111, + 99, + 117, + 109, + 101, + 110, + 116, + 101, + 110, + 92, + 47, + 118, + 49, + 92, + 47, + 101, + 110, + 107, + 101, + 108, + 118, + 111, + 117, + 100, + 105, + 103, + 105, + 110, + 102, + 111, + 114, + 109, + 97, + 116, + 105, + 101, + 111, + 98, + 106, + 101, + 99, + 116, + 101, + 110, + 92, + 47, + 53, + 54, + 102, + 49, + 53, + 53, + 97, + 48, + 45, + 55, + 53, + 50, + 102, + 45, + 52, + 50, + 56, + 101, + 45, + 98, + 55, + 100, + 48, + 45, + 101, + 51, + 100, + 56, + 56, + 100, + 53, + 51, + 57, + 51, + 52, + 54, + 34, + 44, + 34, + 117, + 117, + 105, + 100, + 34, + 58, + 34, + 53, + 54, + 102, + 49, + 53, + 53, + 97, + 48, + 45, + 55, + 53, + 50, + 102, + 45, + 52, + 50, + 56, + 101, + 45, + 98, + 55, + 100, + 48, + 45, + 101, + 51, + 100, + 56, + 56, + 100, + 53, + 51, + 57, + 51, + 52, + 54, + 34, + 44, + 34, + 105, + 100, + 101, + 110, + 116, + 105, + 102, + 105, + 99, + 97, + 116, + 105, + 101, + 34, + 58, + 34, + 68, + 79, + 67, + 85, + 77, + 69, + 78, + 84, + 45, + 84, + 66, + 79, + 78, + 75, + 52, + 45, + 57, + 55, + 54, + 49, + 56, + 52, + 34, + 44, + 34, + 98, + 114, + 111, + 110, + 111, + 114, + 103, + 97, + 110, + 105, + 115, + 97, + 116, + 105, + 101, + 34, + 58, + 34, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 34, + 44, + 34, + 99, + 114, + 101, + 97, + 116, + 105, + 101, + 100, + 97, + 116, + 117, + 109, + 34, + 58, + 34, + 50, + 48, + 49, + 57, + 45, + 48, + 49, + 45, + 48, + 49, + 34, + 44, + 34, + 116, + 105, + 116, + 101, + 108, + 34, + 58, + 34, + 116, + 101, + 115, + 116, + 111, + 98, + 106, + 101, + 99, + 116, + 34, + 44, + 34, + 118, + 101, + 114, + 116, + 114, + 111, + 117, + 119, + 101, + 108, + 105, + 106, + 107, + 104, + 101, + 105, + 100, + 97, + 97, + 110, + 100, + 117, + 105, + 100, + 105, + 110, + 103, + 34, + 58, + 34, + 111, + 112, + 101, + 110, + 98, + 97, + 97, + 114, + 34, + 44, + 34, + 97, + 117, + 116, + 101, + 117, + 114, + 34, + 58, + 34, + 116, + 101, + 115, + 116, + 97, + 117, + 116, + 101, + 117, + 114, + 34, + 44, + 34, + 115, + 116, + 97, + 116, + 117, + 115, + 34, + 58, + 34, + 103, + 101, + 97, + 114, + 99, + 104, + 105, + 118, + 101, + 101, + 114, + 100, + 34, + 44, + 34, + 102, + 111, + 114, + 109, + 97, + 97, + 116, + 34, + 58, + 34, + 97, + 112, + 112, + 108, + 105, + 99, + 97, + 116, + 105, + 111, + 110, + 92, + 47, + 112, + 100, + 102, + 34, + 44, + 34, + 116, + 97, + 97, + 108, + 34, + 58, + 34, + 110, + 108, + 100, + 34, + 44, + 34, + 98, + 101, + 115, + 116, + 97, + 110, + 100, + 115, + 110, + 97, + 97, + 109, + 34, + 58, + 34, + 116, + 101, + 115, + 116, + 32, + 51, + 46, + 112, + 100, + 102, + 34, + 44, + 34, + 98, + 101, + 115, + 116, + 97, + 110, + 100, + 115, + 111, + 109, + 118, + 97, + 110, + 103, + 34, + 58, + 54, + 44, + 34, + 105, + 110, + 104, + 111, + 117, + 100, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 100, + 111, + 99, + 117, + 109, + 101, + 110, + 116, + 101, + 110, + 92, + 47, + 118, + 49, + 92, + 47, + 101, + 110, + 107, + 101, + 108, + 118, + 111, + 117, + 100, + 105, + 103, + 105, + 110, + 102, + 111, + 114, + 109, + 97, + 116, + 105, + 101, + 111, + 98, + 106, + 101, + 99, + 116, + 101, + 110, + 92, + 47, + 53, + 54, + 102, + 49, + 53, + 53, + 97, + 48, + 45, + 55, + 53, + 50, + 102, + 45, + 52, + 50, + 56, + 101, + 45, + 98, + 55, + 100, + 48, + 45, + 101, + 51, + 100, + 56, + 56, + 100, + 53, + 51, + 57, + 51, + 52, + 54, + 92, + 47, + 100, + 111, + 119, + 110, + 108, + 111, + 97, + 100, + 34, + 44, + 34, + 108, + 105, + 110, + 107, + 34, + 58, + 34, + 34, + 44, + 34, + 98, + 101, + 115, + 99, + 104, + 114, + 105, + 106, + 118, + 105, + 110, + 103, + 34, + 58, + 34, + 34, + 44, + 34, + 105, + 110, + 102, + 111, + 114, + 109, + 97, + 116, + 105, + 101, + 111, + 98, + 106, + 101, + 99, + 116, + 116, + 121, + 112, + 101, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 105, + 92, + 47, + 118, + 49, + 92, + 47, + 105, + 110, + 102, + 111, + 114, + 109, + 97, + 116, + 105, + 101, + 111, + 98, + 106, + 101, + 99, + 116, + 116, + 121, + 112, + 101, + 110, + 92, + 47, + 54, + 99, + 97, + 98, + 55, + 52, + 50, + 48, + 45, + 54, + 99, + 100, + 97, + 45, + 52, + 57, + 99, + 57, + 45, + 56, + 51, + 49, + 51, + 45, + 55, + 52, + 54, + 52, + 57, + 52, + 55, + 97, + 55, + 52, + 97, + 51, + 34, + 44, + 34, + 108, + 111, + 99, + 107, + 101, + 100, + 34, + 58, + 102, + 97, + 108, + 115, + 101, + 44, + 34, + 114, + 101, + 103, + 105, + 115, + 116, + 114, + 97, + 116, + 105, + 101, + 100, + 97, + 116, + 117, + 109, + 34, + 58, + 34, + 50, + 48, + 50, + 54, + 45, + 48, + 51, + 45, + 49, + 48, + 84, + 49, + 50, + 58, + 49, + 57, + 58, + 49, + 54, + 43, + 48, + 48, + 58, + 48, + 48, + 34, + 44, + 34, + 105, + 110, + 100, + 105, + 99, + 97, + 116, + 105, + 101, + 71, + 101, + 98, + 114, + 117, + 105, + 107, + 115, + 114, + 101, + 99, + 104, + 116, + 34, + 58, + 110, + 117, + 108, + 108, + 125 + ] + }, + "cookie": [], + "responseTime": 462, + "responseSize": 942 + }, + "id": "ed6480ef-f3ed-4ecb-af29-d467eccdbf89" + }, + { + "cursor": { + "ref": "e26050c4-7e2f-44e9-91c8-f77cf6dfda8d", + "length": 313, + "cycles": 1, + "position": 69, + "iteration": 0, + "httpRequestId": "22bb6ec0-7e15-4d64-97e0-220bef5cc01d" + }, + "item": { + "id": "027f3961-e796-4498-ac61-e532ef58d61e", + "name": "Create relation between Zaak and Informatieobject with gebruiksrecht not null", + "request": { + "url": { + "path": [ + "zaakinformatieobjecten" + ], + "host": [ + "{{zrc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n \"informatieobject\": \"{{informatieobject_url}}\",\n \"zaak\": \"{{created_zaak_url}}\"\n}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "10810642-cfc5-45d1-85ab-4a240b51a23e", + "type": "text/javascript", + "exec": [ + "pm.environment.set(\"created_zaakinformatieobject_url\", pm.response.json().url);" + ], + "_lastExecutionId": "4aca2b6d-edcc-40d8-81cf-8c067777cb5f" + } + }, + { + "listen": "prerequest", + "script": { + "id": "ffce582e-a875-474f-82aa-fcc81a809086", + "type": "text/javascript", + "exec": [ + "" + ], + "_lastExecutionId": "d265c7ef-d62d-4ea9-a6ec-33a388eefef6" + } + } + ] + }, + "request": { + "url": { + "protocol": "http", + "port": "8080", + "path": [ + "index.php", + "apps", + "procest", + "api", + "zgw", + "zaken", + "v1", + "zaakinformatieobjecten" + ], + "host": [ + "localhost" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Authorization", + "value": "Bearer eyJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJwcm9jZXN0LWFkbWluIiwiY2xpZW50X2lkIjoicHJvY2VzdC1hZG1pbiIsImlhdCI6IjE3NzMxNDUxNTciLCJ1c2VyX2lkIjoicHJvY2VzdC1hZG1pbiIsInVzZXJfcmVwcmVzZW50YXRpb24iOiIifQ.FuPfA_Te6hXe16XR5e4pC5LmvRbooQTFOPCKMZBHNwY", + "system": true + }, + { + "key": "User-Agent", + "value": "PostmanRuntime/7.39.1", + "system": true + }, + { + "key": "Accept", + "value": "*/*", + "system": true + }, + { + "key": "Cache-Control", + "value": "no-cache", + "system": true + }, + { + "key": "Postman-Token", + "value": "9f9edcd6-cf3c-4e1a-b247-d6a335a80597", + "system": true + }, + { + "key": "Host", + "value": "localhost:8080", + "system": true + }, + { + "key": "Accept-Encoding", + "value": "gzip, deflate, br", + "system": true + }, + { + "key": "Connection", + "value": "keep-alive", + "system": true + }, + { + "key": "Content-Length", + "value": "283", + "system": true + }, + { + "key": "Cookie", + "value": "ocvp3112b4wg=9dce435a09071d37ba432fea1c449428; oc_sessionPassphrase=LBNdKxRzA0iqoULIruNxDDh2BK3O%2BrCIU8aUmiUcOFvy5Xw1YfjwQNlmBW2IkGwJYtxXh9%2BwDN6vYuGNX07tXzkBtjQJUWTGdzf8AIOUIVxVx5DfyWAQZ7nmYmQv6XSE; nc_sameSiteCookielax=true; nc_sameSiteCookiestrict=true", + "system": true + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n \"informatieobject\": \"http://localhost:8080/index.php/apps/procest/api/zgw/documenten/v1/enkelvoudiginformatieobjecten/56f155a0-752f-428e-b7d0-e3d88d539346\",\n \"zaak\": \"http://localhost:8080/index.php/apps/procest/api/zgw/zaken/v1/zaken/b648c5da-b590-4960-94a0-f0c5a3f9ed90\"\n}" + }, + "auth": { + "type": "jwt", + "jwt": [ + { + "type": "string", + "value": "{\r\n \"iss\": \"procest-admin\",\r\n \"client_id\": \"procest-admin\",\r\n \"iat\": \"1773145157\",\r\n \"user_id\": \"procest-admin\",\r\n \"user_representation\": \"\"\r\n}", + "key": "payload" + }, + { + "type": "string", + "value": "procest-admin-secret-key-for-testing", + "key": "secret" + }, + { + "type": "string", + "value": "HS256", + "key": "algorithm" + }, + { + "type": "boolean", + "value": false, + "key": "isSecretBase64Encoded" + }, + { + "type": "string", + "value": "header", + "key": "addTokenTo" + }, + { + "type": "string", + "value": "Bearer", + "key": "headerPrefix" + }, + { + "type": "string", + "value": "token", + "key": "queryParamKey" + }, + { + "type": "string", + "value": "{}", + "key": "header" + } + ] + } + }, + "response": { + "id": "145513f9-0e72-430d-85a6-a3339db8ed4c", + "status": "Created", + "code": 201, + "header": [ + { + "key": "Date", + "value": "Tue, 10 Mar 2026 12:19:17 GMT" + }, + { + "key": "Server", + "value": "Apache/2.4.66 (Debian)" + }, + { + "key": "X-Content-Type-Options", + "value": "nosniff" + }, + { + "key": "X-Frame-Options", + "value": "SAMEORIGIN" + }, + { + "key": "X-Permitted-Cross-Domain-Policies", + "value": "none" + }, + { + "key": "X-Robots-Tag", + "value": "noindex, nofollow" + }, + { + "key": "Referrer-Policy", + "value": "no-referrer" + }, + { + "key": "X-Powered-By", + "value": "PHP/8.3.30" + }, + { + "key": "Content-Security-Policy", + "value": "default-src 'none';base-uri 'none';manifest-src 'self';frame-ancestors 'none'" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=9dce435a09071d37ba432fea1c449428; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=9dce435a09071d37ba432fea1c449428; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=9dce435a09071d37ba432fea1c449428; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=9dce435a09071d37ba432fea1c449428; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=9dce435a09071d37ba432fea1c449428; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=a3929d15e79a64da2c10ad5becf7d599; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=a3929d15e79a64da2c10ad5becf7d599; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=a3929d15e79a64da2c10ad5becf7d599; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=a3929d15e79a64da2c10ad5becf7d599; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=a3929d15e79a64da2c10ad5becf7d599; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "X-Request-Id", + "value": "rWb4mY22GLPEsV9RkCjS" + }, + { + "key": "Cache-Control", + "value": "no-cache, no-store, must-revalidate" + }, + { + "key": "Feature-Policy", + "value": "autoplay 'none';camera 'none';fullscreen 'none';geolocation 'none';microphone 'none';payment 'none'" + }, + { + "key": "X-User-Id", + "value": "admin" + }, + { + "key": "Content-Length", + "value": "591" + }, + { + "key": "Keep-Alive", + "value": "timeout=5, max=81" + }, + { + "key": "Connection", + "value": "Keep-Alive" + }, + { + "key": "Content-Type", + "value": "application/json; charset=utf-8" + } + ], + "stream": { + "type": "Buffer", + "data": [ + 123, + 34, + 117, + 114, + 108, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 122, + 97, + 107, + 101, + 110, + 92, + 47, + 118, + 49, + 92, + 47, + 122, + 97, + 97, + 107, + 105, + 110, + 102, + 111, + 114, + 109, + 97, + 116, + 105, + 101, + 111, + 98, + 106, + 101, + 99, + 116, + 101, + 110, + 92, + 47, + 48, + 54, + 102, + 48, + 48, + 55, + 100, + 102, + 45, + 99, + 97, + 101, + 100, + 45, + 52, + 97, + 99, + 49, + 45, + 98, + 51, + 53, + 51, + 45, + 97, + 50, + 97, + 99, + 52, + 54, + 48, + 53, + 101, + 52, + 49, + 52, + 34, + 44, + 34, + 117, + 117, + 105, + 100, + 34, + 58, + 34, + 48, + 54, + 102, + 48, + 48, + 55, + 100, + 102, + 45, + 99, + 97, + 101, + 100, + 45, + 52, + 97, + 99, + 49, + 45, + 98, + 51, + 53, + 51, + 45, + 97, + 50, + 97, + 99, + 52, + 54, + 48, + 53, + 101, + 52, + 49, + 52, + 34, + 44, + 34, + 122, + 97, + 97, + 107, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 122, + 97, + 107, + 101, + 110, + 92, + 47, + 118, + 49, + 92, + 47, + 122, + 97, + 107, + 101, + 110, + 92, + 47, + 98, + 54, + 52, + 56, + 99, + 53, + 100, + 97, + 45, + 98, + 53, + 57, + 48, + 45, + 52, + 57, + 54, + 48, + 45, + 57, + 52, + 97, + 48, + 45, + 102, + 48, + 99, + 53, + 97, + 51, + 102, + 57, + 101, + 100, + 57, + 48, + 34, + 44, + 34, + 105, + 110, + 102, + 111, + 114, + 109, + 97, + 116, + 105, + 101, + 111, + 98, + 106, + 101, + 99, + 116, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 100, + 111, + 99, + 117, + 109, + 101, + 110, + 116, + 101, + 110, + 92, + 47, + 118, + 49, + 92, + 47, + 101, + 110, + 107, + 101, + 108, + 118, + 111, + 117, + 100, + 105, + 103, + 105, + 110, + 102, + 111, + 114, + 109, + 97, + 116, + 105, + 101, + 111, + 98, + 106, + 101, + 99, + 116, + 101, + 110, + 92, + 47, + 53, + 54, + 102, + 49, + 53, + 53, + 97, + 48, + 45, + 55, + 53, + 50, + 102, + 45, + 52, + 50, + 56, + 101, + 45, + 98, + 55, + 100, + 48, + 45, + 101, + 51, + 100, + 56, + 56, + 100, + 53, + 51, + 57, + 51, + 52, + 54, + 34, + 44, + 34, + 116, + 105, + 116, + 101, + 108, + 34, + 58, + 34, + 34, + 44, + 34, + 98, + 101, + 115, + 99, + 104, + 114, + 105, + 106, + 118, + 105, + 110, + 103, + 34, + 58, + 34, + 34, + 44, + 34, + 114, + 101, + 103, + 105, + 115, + 116, + 114, + 97, + 116, + 105, + 101, + 100, + 97, + 116, + 117, + 109, + 34, + 58, + 34, + 50, + 48, + 50, + 54, + 45, + 48, + 51, + 45, + 49, + 48, + 34, + 44, + 34, + 97, + 97, + 114, + 100, + 82, + 101, + 108, + 97, + 116, + 105, + 101, + 87, + 101, + 101, + 114, + 103, + 97, + 118, + 101, + 34, + 58, + 34, + 72, + 111, + 111, + 114, + 116, + 32, + 98, + 105, + 106, + 44, + 32, + 111, + 109, + 103, + 101, + 107, + 101, + 101, + 114, + 100, + 58, + 32, + 107, + 101, + 110, + 116, + 34, + 125 + ] + }, + "cookie": [], + "responseTime": 272, + "responseSize": 591 + }, + "id": "027f3961-e796-4498-ac61-e532ef58d61e" + }, + { + "cursor": { + "ref": "d9f6b16c-ebea-432d-a731-94b8f8b68b27", + "length": 313, + "cycles": 1, + "position": 70, + "iteration": 0, + "httpRequestId": "161e9bbc-9447-4ca4-b82b-f79e155b5f8a" + }, + "item": { + "id": "c8c704b1-2bc5-4c4e-bf80-c5147c3a5a3b", + "name": "Add Resultaat to Zaak", + "request": { + "url": { + "path": [ + "resultaten" + ], + "host": [ + "{{zrc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n\t\"zaak\": \"{{created_zaak_url}}\",\n\t\"resultaattype\": \"{{resultaattype_url}}\"\n}" + } + }, + "response": [], + "event": [ + { + "listen": "prerequest", + "script": { + "id": "5fd1c2ba-485a-4ea4-b06a-543e381fb452", + "type": "text/javascript", + "packages": {}, + "exec": [ + "" + ], + "_lastExecutionId": "932f6758-91df-4c3a-a1b3-142d28f07d65" + } + }, + { + "listen": "test", + "script": { + "id": "c5a66cb3-b26c-4b8c-bad4-4aa17e0490c0", + "type": "text/javascript", + "packages": {}, + "exec": [ + "pm.environment.set(\"zaak_resultaat_url\", pm.response.json().url);" + ], + "_lastExecutionId": "75bbede4-5254-4012-94b5-c31341965b59" + } + } + ] + }, + "request": { + "url": { + "protocol": "http", + "port": "8080", + "path": [ + "index.php", + "apps", + "procest", + "api", + "zgw", + "zaken", + "v1", + "resultaten" + ], + "host": [ + "localhost" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Authorization", + "value": "Bearer eyJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJwcm9jZXN0LWFkbWluIiwiY2xpZW50X2lkIjoicHJvY2VzdC1hZG1pbiIsImlhdCI6IjE3NzMxNDUxNTciLCJ1c2VyX2lkIjoicHJvY2VzdC1hZG1pbiIsInVzZXJfcmVwcmVzZW50YXRpb24iOiIifQ.FuPfA_Te6hXe16XR5e4pC5LmvRbooQTFOPCKMZBHNwY", + "system": true + }, + { + "key": "User-Agent", + "value": "PostmanRuntime/7.39.1", + "system": true + }, + { + "key": "Accept", + "value": "*/*", + "system": true + }, + { + "key": "Cache-Control", + "value": "no-cache", + "system": true + }, + { + "key": "Postman-Token", + "value": "f8b4bee8-f84c-4dfd-9180-f90539cadb9b", + "system": true + }, + { + "key": "Host", + "value": "localhost:8080", + "system": true + }, + { + "key": "Accept-Encoding", + "value": "gzip, deflate, br", + "system": true + }, + { + "key": "Connection", + "value": "keep-alive", + "system": true + }, + { + "key": "Content-Length", + "value": "257", + "system": true + }, + { + "key": "Cookie", + "value": "ocvp3112b4wg=a3929d15e79a64da2c10ad5becf7d599; oc_sessionPassphrase=LBNdKxRzA0iqoULIruNxDDh2BK3O%2BrCIU8aUmiUcOFvy5Xw1YfjwQNlmBW2IkGwJYtxXh9%2BwDN6vYuGNX07tXzkBtjQJUWTGdzf8AIOUIVxVx5DfyWAQZ7nmYmQv6XSE; nc_sameSiteCookielax=true; nc_sameSiteCookiestrict=true", + "system": true + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n\t\"zaak\": \"http://localhost:8080/index.php/apps/procest/api/zgw/zaken/v1/zaken/b648c5da-b590-4960-94a0-f0c5a3f9ed90\",\n\t\"resultaattype\": \"http://localhost:8080/index.php/apps/procest/api/zgw/catalogi/v1/resultaattypen/1fa4fb2f-1572-4fc1-848d-00a37ef6af45\"\n}" + }, + "auth": { + "type": "jwt", + "jwt": [ + { + "type": "string", + "value": "{\r\n \"iss\": \"procest-admin\",\r\n \"client_id\": \"procest-admin\",\r\n \"iat\": \"1773145157\",\r\n \"user_id\": \"procest-admin\",\r\n \"user_representation\": \"\"\r\n}", + "key": "payload" + }, + { + "type": "string", + "value": "procest-admin-secret-key-for-testing", + "key": "secret" + }, + { + "type": "string", + "value": "HS256", + "key": "algorithm" + }, + { + "type": "boolean", + "value": false, + "key": "isSecretBase64Encoded" + }, + { + "type": "string", + "value": "header", + "key": "addTokenTo" + }, + { + "type": "string", + "value": "Bearer", + "key": "headerPrefix" + }, + { + "type": "string", + "value": "token", + "key": "queryParamKey" + }, + { + "type": "string", + "value": "{}", + "key": "header" + } + ] + } + }, + "response": { + "id": "6dfc5555-5bc0-453e-99a3-22b7af7c1104", + "status": "Created", + "code": 201, + "header": [ + { + "key": "Date", + "value": "Tue, 10 Mar 2026 12:19:17 GMT" + }, + { + "key": "Server", + "value": "Apache/2.4.66 (Debian)" + }, + { + "key": "X-Content-Type-Options", + "value": "nosniff" + }, + { + "key": "X-Frame-Options", + "value": "SAMEORIGIN" + }, + { + "key": "X-Permitted-Cross-Domain-Policies", + "value": "none" + }, + { + "key": "X-Robots-Tag", + "value": "noindex, nofollow" + }, + { + "key": "Referrer-Policy", + "value": "no-referrer" + }, + { + "key": "X-Powered-By", + "value": "PHP/8.3.30" + }, + { + "key": "Content-Security-Policy", + "value": "default-src 'none';base-uri 'none';manifest-src 'self';frame-ancestors 'none'" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=a3929d15e79a64da2c10ad5becf7d599; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=a3929d15e79a64da2c10ad5becf7d599; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=a3929d15e79a64da2c10ad5becf7d599; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=a3929d15e79a64da2c10ad5becf7d599; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=a3929d15e79a64da2c10ad5becf7d599; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=f7c481521ee170d75abf139f737c34ac; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=f7c481521ee170d75abf139f737c34ac; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=f7c481521ee170d75abf139f737c34ac; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=f7c481521ee170d75abf139f737c34ac; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=f7c481521ee170d75abf139f737c34ac; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "X-Request-Id", + "value": "8BruQZNrV1Y4lRBShVUo" + }, + { + "key": "Cache-Control", + "value": "no-cache, no-store, must-revalidate" + }, + { + "key": "Feature-Policy", + "value": "autoplay 'none';camera 'none';fullscreen 'none';geolocation 'none';microphone 'none';payment 'none'" + }, + { + "key": "X-User-Id", + "value": "admin" + }, + { + "key": "Content-Length", + "value": "464" + }, + { + "key": "Keep-Alive", + "value": "timeout=5, max=80" + }, + { + "key": "Connection", + "value": "Keep-Alive" + }, + { + "key": "Content-Type", + "value": "application/json; charset=utf-8" + } + ], + "stream": { + "type": "Buffer", + "data": [ + 123, + 34, + 117, + 114, + 108, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 122, + 97, + 107, + 101, + 110, + 92, + 47, + 118, + 49, + 92, + 47, + 114, + 101, + 115, + 117, + 108, + 116, + 97, + 116, + 101, + 110, + 92, + 47, + 57, + 54, + 53, + 57, + 101, + 48, + 56, + 99, + 45, + 49, + 54, + 52, + 48, + 45, + 52, + 49, + 57, + 97, + 45, + 97, + 51, + 55, + 54, + 45, + 53, + 97, + 49, + 54, + 98, + 97, + 100, + 54, + 102, + 100, + 55, + 99, + 34, + 44, + 34, + 117, + 117, + 105, + 100, + 34, + 58, + 34, + 57, + 54, + 53, + 57, + 101, + 48, + 56, + 99, + 45, + 49, + 54, + 52, + 48, + 45, + 52, + 49, + 57, + 97, + 45, + 97, + 51, + 55, + 54, + 45, + 53, + 97, + 49, + 54, + 98, + 97, + 100, + 54, + 102, + 100, + 55, + 99, + 34, + 44, + 34, + 122, + 97, + 97, + 107, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 122, + 97, + 107, + 101, + 110, + 92, + 47, + 118, + 49, + 92, + 47, + 122, + 97, + 107, + 101, + 110, + 92, + 47, + 98, + 54, + 52, + 56, + 99, + 53, + 100, + 97, + 45, + 98, + 53, + 57, + 48, + 45, + 52, + 57, + 54, + 48, + 45, + 57, + 52, + 97, + 48, + 45, + 102, + 48, + 99, + 53, + 97, + 51, + 102, + 57, + 101, + 100, + 57, + 48, + 34, + 44, + 34, + 114, + 101, + 115, + 117, + 108, + 116, + 97, + 97, + 116, + 116, + 121, + 112, + 101, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 105, + 92, + 47, + 118, + 49, + 92, + 47, + 114, + 101, + 115, + 117, + 108, + 116, + 97, + 97, + 116, + 116, + 121, + 112, + 101, + 110, + 92, + 47, + 49, + 102, + 97, + 52, + 102, + 98, + 50, + 102, + 45, + 49, + 53, + 55, + 50, + 45, + 52, + 102, + 99, + 49, + 45, + 56, + 52, + 56, + 100, + 45, + 48, + 48, + 97, + 51, + 55, + 101, + 102, + 54, + 97, + 102, + 52, + 53, + 34, + 44, + 34, + 116, + 111, + 101, + 108, + 105, + 99, + 104, + 116, + 105, + 110, + 103, + 34, + 58, + 34, + 34, + 125 + ] + }, + "cookie": [], + "responseTime": 254, + "responseSize": 464 + }, + "id": "c8c704b1-2bc5-4c4e-bf80-c5147c3a5a3b" + }, + { + "cursor": { + "ref": "f2b02398-1154-4c53-9272-3e0c99d59c24", + "length": 313, + "cycles": 1, + "position": 71, + "iteration": 0, + "httpRequestId": "c11fc170-208f-4663-8bd0-368b7ace1586" + }, + "item": { + "id": "7c8e6633-c69e-4121-a6ae-afe856c07691", + "name": "Add Eindstatus to Zaak", + "request": { + "url": { + "path": [ + "statussen" + ], + "host": [ + "{{zrc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n\t\"zaak\": \"{{created_zaak_url}}\",\n\t\"statustype\": \"{{eindstatustype}}\",\n\t\"datumStatusGezet\": \"2018-04-20T13:37:00\"\n}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "06f94dc1-df1c-47c1-9178-7370a4910c95", + "type": "text/javascript", + "packages": {}, + "exec": [ + "pm.environment.set(\"eindstatus_datumStatusGezet\", pm.response.json().datumStatusGezet);", + "pm.environment.set(\"eindstatus_url\", pm.response.json().url);" + ], + "_lastExecutionId": "73d2bfac-343c-4a36-ab97-3de5b535edf7" + } + }, + { + "listen": "prerequest", + "script": { + "id": "62329597-5b87-4c48-9f27-7db4d49a967e", + "type": "text/javascript", + "packages": {}, + "exec": [ + "" + ], + "_lastExecutionId": "ab5a4227-3197-48bf-a640-e5d355b98cf6" + } + } + ] + }, + "request": { + "url": { + "protocol": "http", + "port": "8080", + "path": [ + "index.php", + "apps", + "procest", + "api", + "zgw", + "zaken", + "v1", + "statussen" + ], + "host": [ + "localhost" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Authorization", + "value": "Bearer eyJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJwcm9jZXN0LWFkbWluIiwiY2xpZW50X2lkIjoicHJvY2VzdC1hZG1pbiIsImlhdCI6IjE3NzMxNDUxNTgiLCJ1c2VyX2lkIjoicHJvY2VzdC1hZG1pbiIsInVzZXJfcmVwcmVzZW50YXRpb24iOiIifQ.20Mo0B7vub2Ty0-RU6egPmNUaFjatRkWNWlBUq1May0", + "system": true + }, + { + "key": "User-Agent", + "value": "PostmanRuntime/7.39.1", + "system": true + }, + { + "key": "Accept", + "value": "*/*", + "system": true + }, + { + "key": "Cache-Control", + "value": "no-cache", + "system": true + }, + { + "key": "Postman-Token", + "value": "4044a42b-b950-4441-adf9-dd994e8be414", + "system": true + }, + { + "key": "Host", + "value": "localhost:8080", + "system": true + }, + { + "key": "Accept-Encoding", + "value": "gzip, deflate, br", + "system": true + }, + { + "key": "Connection", + "value": "keep-alive", + "system": true + }, + { + "key": "Content-Length", + "value": "295", + "system": true + }, + { + "key": "Cookie", + "value": "ocvp3112b4wg=f7c481521ee170d75abf139f737c34ac; oc_sessionPassphrase=LBNdKxRzA0iqoULIruNxDDh2BK3O%2BrCIU8aUmiUcOFvy5Xw1YfjwQNlmBW2IkGwJYtxXh9%2BwDN6vYuGNX07tXzkBtjQJUWTGdzf8AIOUIVxVx5DfyWAQZ7nmYmQv6XSE; nc_sameSiteCookielax=true; nc_sameSiteCookiestrict=true", + "system": true + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n\t\"zaak\": \"http://localhost:8080/index.php/apps/procest/api/zgw/zaken/v1/zaken/b648c5da-b590-4960-94a0-f0c5a3f9ed90\",\n\t\"statustype\": \"http://localhost:8080/index.php/apps/procest/api/zgw/catalogi/v1/statustypen/b0b83347-bc74-4ef9-b984-52f1c6c9fc3d\",\n\t\"datumStatusGezet\": \"2018-04-20T13:37:00\"\n}" + }, + "auth": { + "type": "jwt", + "jwt": [ + { + "type": "string", + "value": "{\r\n \"iss\": \"procest-admin\",\r\n \"client_id\": \"procest-admin\",\r\n \"iat\": \"1773145158\",\r\n \"user_id\": \"procest-admin\",\r\n \"user_representation\": \"\"\r\n}", + "key": "payload" + }, + { + "type": "string", + "value": "procest-admin-secret-key-for-testing", + "key": "secret" + }, + { + "type": "string", + "value": "HS256", + "key": "algorithm" + }, + { + "type": "boolean", + "value": false, + "key": "isSecretBase64Encoded" + }, + { + "type": "string", + "value": "header", + "key": "addTokenTo" + }, + { + "type": "string", + "value": "Bearer", + "key": "headerPrefix" + }, + { + "type": "string", + "value": "token", + "key": "queryParamKey" + }, + { + "type": "string", + "value": "{}", + "key": "header" + } + ] + } + }, + "response": { + "id": "110d9fea-c41e-4dc9-9771-5828d3ea1004", + "status": "Created", + "code": 201, + "header": [ + { + "key": "Date", + "value": "Tue, 10 Mar 2026 12:19:17 GMT" + }, + { + "key": "Server", + "value": "Apache/2.4.66 (Debian)" + }, + { + "key": "X-Content-Type-Options", + "value": "nosniff" + }, + { + "key": "X-Frame-Options", + "value": "SAMEORIGIN" + }, + { + "key": "X-Permitted-Cross-Domain-Policies", + "value": "none" + }, + { + "key": "X-Robots-Tag", + "value": "noindex, nofollow" + }, + { + "key": "Referrer-Policy", + "value": "no-referrer" + }, + { + "key": "X-Powered-By", + "value": "PHP/8.3.30" + }, + { + "key": "Content-Security-Policy", + "value": "default-src 'none';base-uri 'none';manifest-src 'self';frame-ancestors 'none'" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=f7c481521ee170d75abf139f737c34ac; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=f7c481521ee170d75abf139f737c34ac; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=f7c481521ee170d75abf139f737c34ac; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=f7c481521ee170d75abf139f737c34ac; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=f7c481521ee170d75abf139f737c34ac; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=6a347a28f2552b8ded526833bf06ffda; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=6a347a28f2552b8ded526833bf06ffda; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=6a347a28f2552b8ded526833bf06ffda; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=6a347a28f2552b8ded526833bf06ffda; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=6a347a28f2552b8ded526833bf06ffda; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "X-Request-Id", + "value": "zdbhWAO9h61vgT6qmLhB" + }, + { + "key": "Cache-Control", + "value": "no-cache, no-store, must-revalidate" + }, + { + "key": "Feature-Policy", + "value": "autoplay 'none';camera 'none';fullscreen 'none';geolocation 'none';microphone 'none';payment 'none'" + }, + { + "key": "X-User-Id", + "value": "admin" + }, + { + "key": "Content-Length", + "value": "510" + }, + { + "key": "Keep-Alive", + "value": "timeout=5, max=79" + }, + { + "key": "Connection", + "value": "Keep-Alive" + }, + { + "key": "Content-Type", + "value": "application/json; charset=utf-8" + } + ], + "stream": { + "type": "Buffer", + "data": [ + 123, + 34, + 117, + 114, + 108, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 122, + 97, + 107, + 101, + 110, + 92, + 47, + 118, + 49, + 92, + 47, + 115, + 116, + 97, + 116, + 117, + 115, + 115, + 101, + 110, + 92, + 47, + 53, + 97, + 98, + 56, + 55, + 99, + 52, + 97, + 45, + 98, + 53, + 48, + 53, + 45, + 52, + 53, + 52, + 99, + 45, + 56, + 54, + 55, + 102, + 45, + 53, + 97, + 99, + 99, + 102, + 57, + 52, + 54, + 50, + 101, + 100, + 100, + 34, + 44, + 34, + 117, + 117, + 105, + 100, + 34, + 58, + 34, + 53, + 97, + 98, + 56, + 55, + 99, + 52, + 97, + 45, + 98, + 53, + 48, + 53, + 45, + 52, + 53, + 52, + 99, + 45, + 56, + 54, + 55, + 102, + 45, + 53, + 97, + 99, + 99, + 102, + 57, + 52, + 54, + 50, + 101, + 100, + 100, + 34, + 44, + 34, + 122, + 97, + 97, + 107, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 122, + 97, + 107, + 101, + 110, + 92, + 47, + 118, + 49, + 92, + 47, + 122, + 97, + 107, + 101, + 110, + 92, + 47, + 98, + 54, + 52, + 56, + 99, + 53, + 100, + 97, + 45, + 98, + 53, + 57, + 48, + 45, + 52, + 57, + 54, + 48, + 45, + 57, + 52, + 97, + 48, + 45, + 102, + 48, + 99, + 53, + 97, + 51, + 102, + 57, + 101, + 100, + 57, + 48, + 34, + 44, + 34, + 115, + 116, + 97, + 116, + 117, + 115, + 116, + 121, + 112, + 101, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 105, + 92, + 47, + 118, + 49, + 92, + 47, + 115, + 116, + 97, + 116, + 117, + 115, + 116, + 121, + 112, + 101, + 110, + 92, + 47, + 98, + 48, + 98, + 56, + 51, + 51, + 52, + 55, + 45, + 98, + 99, + 55, + 52, + 45, + 52, + 101, + 102, + 57, + 45, + 98, + 57, + 56, + 52, + 45, + 53, + 50, + 102, + 49, + 99, + 54, + 99, + 57, + 102, + 99, + 51, + 100, + 34, + 44, + 34, + 100, + 97, + 116, + 117, + 109, + 83, + 116, + 97, + 116, + 117, + 115, + 71, + 101, + 122, + 101, + 116, + 34, + 58, + 34, + 50, + 48, + 50, + 54, + 45, + 48, + 51, + 45, + 49, + 48, + 84, + 49, + 50, + 58, + 49, + 57, + 58, + 49, + 55, + 43, + 48, + 48, + 58, + 48, + 48, + 34, + 44, + 34, + 115, + 116, + 97, + 116, + 117, + 115, + 116, + 111, + 101, + 108, + 105, + 99, + 104, + 116, + 105, + 110, + 103, + 34, + 58, + 34, + 34, + 125 + ] + }, + "cookie": [], + "responseTime": 374, + "responseSize": 510 + }, + "id": "7c8e6633-c69e-4121-a6ae-afe856c07691" + }, + { + "cursor": { + "ref": "00f70fa3-5548-42fd-bd68-1b99a220c2af", + "length": 313, + "cycles": 1, + "position": 72, + "iteration": 0, + "httpRequestId": "50beb46b-f344-4ee2-be56-73a93f4f385d" + }, + "item": { + "id": "aa3115ac-afea-41cf-91c0-fe35acfbe5af", + "name": "Add Klantcontact to Zaak", + "request": { + "url": { + "path": [ + "klantcontacten" + ], + "host": [ + "{{zrc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n\t\"zaak\": \"{{created_zaak_url}}\",\n\t\"datumtijd\": \"2019-02-20T00:00:00\"\n}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "d22e362b-62ea-47b3-bbbe-91a7e73c4f02", + "type": "text/javascript", + "exec": [ + "pm.environment.set(\"klantcontact_url\", pm.response.json().url);" + ], + "_lastExecutionId": "fd0dd654-4ffb-4fc1-9db9-e24ba4def685" + } + }, + { + "listen": "prerequest", + "script": { + "id": "09aeec9b-a1ee-4665-8935-85154ee6c278", + "type": "text/javascript", + "exec": [ + "" + ], + "_lastExecutionId": "4969fa7b-c94f-42b9-8b69-764fa6d6de36" + } + } + ] + }, + "request": { + "url": { + "protocol": "http", + "port": "8080", + "path": [ + "index.php", + "apps", + "procest", + "api", + "zgw", + "zaken", + "v1", + "klantcontacten" + ], + "host": [ + "localhost" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Authorization", + "value": "Bearer eyJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJwcm9jZXN0LWFkbWluIiwiY2xpZW50X2lkIjoicHJvY2VzdC1hZG1pbiIsImlhdCI6IjE3NzMxNDUxNTgiLCJ1c2VyX2lkIjoicHJvY2VzdC1hZG1pbiIsInVzZXJfcmVwcmVzZW50YXRpb24iOiIifQ.20Mo0B7vub2Ty0-RU6egPmNUaFjatRkWNWlBUq1May0", + "system": true + }, + { + "key": "User-Agent", + "value": "PostmanRuntime/7.39.1", + "system": true + }, + { + "key": "Accept", + "value": "*/*", + "system": true + }, + { + "key": "Cache-Control", + "value": "no-cache", + "system": true + }, + { + "key": "Postman-Token", + "value": "b6963efd-46db-4cb7-8aee-02e45566d42e", + "system": true + }, + { + "key": "Host", + "value": "localhost:8080", + "system": true + }, + { + "key": "Accept-Encoding", + "value": "gzip, deflate, br", + "system": true + }, + { + "key": "Connection", + "value": "keep-alive", + "system": true + }, + { + "key": "Content-Length", + "value": "156", + "system": true + }, + { + "key": "Cookie", + "value": "ocvp3112b4wg=6a347a28f2552b8ded526833bf06ffda; oc_sessionPassphrase=LBNdKxRzA0iqoULIruNxDDh2BK3O%2BrCIU8aUmiUcOFvy5Xw1YfjwQNlmBW2IkGwJYtxXh9%2BwDN6vYuGNX07tXzkBtjQJUWTGdzf8AIOUIVxVx5DfyWAQZ7nmYmQv6XSE; nc_sameSiteCookielax=true; nc_sameSiteCookiestrict=true", + "system": true + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n\t\"zaak\": \"http://localhost:8080/index.php/apps/procest/api/zgw/zaken/v1/zaken/b648c5da-b590-4960-94a0-f0c5a3f9ed90\",\n\t\"datumtijd\": \"2019-02-20T00:00:00\"\n}" + }, + "auth": { + "type": "jwt", + "jwt": [ + { + "type": "string", + "value": "{\r\n \"iss\": \"procest-admin\",\r\n \"client_id\": \"procest-admin\",\r\n \"iat\": \"1773145158\",\r\n \"user_id\": \"procest-admin\",\r\n \"user_representation\": \"\"\r\n}", + "key": "payload" + }, + { + "type": "string", + "value": "procest-admin-secret-key-for-testing", + "key": "secret" + }, + { + "type": "string", + "value": "HS256", + "key": "algorithm" + }, + { + "type": "boolean", + "value": false, + "key": "isSecretBase64Encoded" + }, + { + "type": "string", + "value": "header", + "key": "addTokenTo" + }, + { + "type": "string", + "value": "Bearer", + "key": "headerPrefix" + }, + { + "type": "string", + "value": "token", + "key": "queryParamKey" + }, + { + "type": "string", + "value": "{}", + "key": "header" + } + ] + } + }, + "response": { + "id": "4f315ea1-7971-4d25-808f-8c1c3dc28382", + "status": "Created", + "code": 201, + "header": [ + { + "key": "Date", + "value": "Tue, 10 Mar 2026 12:19:18 GMT" + }, + { + "key": "Server", + "value": "Apache/2.4.66 (Debian)" + }, + { + "key": "X-Content-Type-Options", + "value": "nosniff" + }, + { + "key": "X-Frame-Options", + "value": "SAMEORIGIN" + }, + { + "key": "X-Permitted-Cross-Domain-Policies", + "value": "none" + }, + { + "key": "X-Robots-Tag", + "value": "noindex, nofollow" + }, + { + "key": "Referrer-Policy", + "value": "no-referrer" + }, + { + "key": "X-Powered-By", + "value": "PHP/8.3.30" + }, + { + "key": "Content-Security-Policy", + "value": "default-src 'none';base-uri 'none';manifest-src 'self';frame-ancestors 'none'" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=6a347a28f2552b8ded526833bf06ffda; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=6a347a28f2552b8ded526833bf06ffda; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=6a347a28f2552b8ded526833bf06ffda; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=6a347a28f2552b8ded526833bf06ffda; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=6a347a28f2552b8ded526833bf06ffda; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=ded45f82c54180bda7580189ac6aa2c1; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=ded45f82c54180bda7580189ac6aa2c1; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=ded45f82c54180bda7580189ac6aa2c1; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=ded45f82c54180bda7580189ac6aa2c1; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=ded45f82c54180bda7580189ac6aa2c1; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "X-Request-Id", + "value": "kuVrGcJC0MoWNyu4HBZe" + }, + { + "key": "Cache-Control", + "value": "no-cache, no-store, must-revalidate" + }, + { + "key": "Feature-Policy", + "value": "autoplay 'none';camera 'none';fullscreen 'none';geolocation 'none';microphone 'none';payment 'none'" + }, + { + "key": "X-User-Id", + "value": "admin" + }, + { + "key": "Content-Length", + "value": "387" + }, + { + "key": "Keep-Alive", + "value": "timeout=5, max=78" + }, + { + "key": "Connection", + "value": "Keep-Alive" + }, + { + "key": "Content-Type", + "value": "application/json; charset=utf-8" + } + ], + "stream": { + "type": "Buffer", + "data": [ + 123, + 34, + 117, + 114, + 108, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 122, + 97, + 107, + 101, + 110, + 92, + 47, + 118, + 49, + 92, + 47, + 107, + 108, + 97, + 110, + 116, + 99, + 111, + 110, + 116, + 97, + 99, + 116, + 101, + 110, + 92, + 47, + 54, + 55, + 57, + 101, + 57, + 53, + 54, + 51, + 45, + 102, + 98, + 98, + 57, + 45, + 52, + 99, + 48, + 56, + 45, + 56, + 57, + 100, + 101, + 45, + 55, + 101, + 55, + 57, + 57, + 49, + 100, + 98, + 100, + 102, + 102, + 98, + 34, + 44, + 34, + 117, + 117, + 105, + 100, + 34, + 58, + 34, + 54, + 55, + 57, + 101, + 57, + 53, + 54, + 51, + 45, + 102, + 98, + 98, + 57, + 45, + 52, + 99, + 48, + 56, + 45, + 56, + 57, + 100, + 101, + 45, + 55, + 101, + 55, + 57, + 57, + 49, + 100, + 98, + 100, + 102, + 102, + 98, + 34, + 44, + 34, + 122, + 97, + 97, + 107, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 122, + 97, + 107, + 101, + 110, + 92, + 47, + 118, + 49, + 92, + 47, + 122, + 97, + 107, + 101, + 110, + 92, + 47, + 98, + 54, + 52, + 56, + 99, + 53, + 100, + 97, + 45, + 98, + 53, + 57, + 48, + 45, + 52, + 57, + 54, + 48, + 45, + 57, + 52, + 97, + 48, + 45, + 102, + 48, + 99, + 53, + 97, + 51, + 102, + 57, + 101, + 100, + 57, + 48, + 34, + 44, + 34, + 100, + 97, + 116, + 117, + 109, + 116, + 105, + 106, + 100, + 34, + 58, + 34, + 50, + 48, + 49, + 57, + 45, + 48, + 50, + 45, + 50, + 48, + 84, + 48, + 48, + 58, + 48, + 48, + 58, + 48, + 48, + 43, + 48, + 48, + 58, + 48, + 48, + 34, + 44, + 34, + 107, + 97, + 110, + 97, + 97, + 108, + 34, + 58, + 34, + 34, + 44, + 34, + 111, + 110, + 100, + 101, + 114, + 119, + 101, + 114, + 112, + 34, + 58, + 34, + 34, + 44, + 34, + 105, + 110, + 105, + 116, + 105, + 97, + 116, + 111, + 114, + 34, + 58, + 34, + 34, + 125 + ] + }, + "cookie": [], + "responseTime": 351, + "responseSize": 387 + }, + "id": "aa3115ac-afea-41cf-91c0-fe35acfbe5af" + }, + { + "cursor": { + "ref": "0a8b3148-da6b-4b55-b25b-ffd8d197d9e2", + "length": 313, + "cycles": 1, + "position": 73, + "iteration": 0, + "httpRequestId": "427f88ca-304d-4fee-8b35-4936562f17db" + }, + "item": { + "id": "e2684c1a-3b34-4013-803a-4a04ff2e88ac", + "name": "Add Rol to Zaak", + "request": { + "url": { + "path": [ + "rollen" + ], + "host": [ + "{{zrc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n\t\"zaak\": \"{{created_zaak_url}}\",\n\t\"betrokkene\": \"http://example.com/2d0815580af94ee0a15aa677aa646e1a\",\n\t\"betrokkeneType\": \"natuurlijk_persoon\",\n\t\"rolomschrijving\": \"behandelaar\",\n\t\"roltoelichting\": \"testrol\",\n\t\"roltype\": \"{{roltype_url}}\"\n}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "c3f6cc6e-370c-4d44-8223-4035129ab83e", + "type": "text/javascript", + "exec": [ + "pm.environment.set(\"rol_url\", pm.response.json().url);" + ], + "_lastExecutionId": "55fbef81-9461-4352-9b10-5f64339f7b92" + } + }, + { + "listen": "prerequest", + "script": { + "id": "5a8a311a-e53f-4fc4-a2a6-b681e0b1cf9e", + "type": "text/javascript", + "exec": [ + "" + ], + "_lastExecutionId": "31fb93c0-d2c2-4750-9cc9-2535b26e2ce3" + } + } + ] + }, + "request": { + "url": { + "protocol": "http", + "port": "8080", + "path": [ + "index.php", + "apps", + "procest", + "api", + "zgw", + "zaken", + "v1", + "rollen" + ], + "host": [ + "localhost" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Authorization", + "value": "Bearer eyJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJwcm9jZXN0LWFkbWluIiwiY2xpZW50X2lkIjoicHJvY2VzdC1hZG1pbiIsImlhdCI6IjE3NzMxNDUxNTkiLCJ1c2VyX2lkIjoicHJvY2VzdC1hZG1pbiIsInVzZXJfcmVwcmVzZW50YXRpb24iOiIifQ.BNqyVHebI5_juGBPtYdtyR1cAT-iXCnckGItwII0bu0", + "system": true + }, + { + "key": "User-Agent", + "value": "PostmanRuntime/7.39.1", + "system": true + }, + { + "key": "Accept", + "value": "*/*", + "system": true + }, + { + "key": "Cache-Control", + "value": "no-cache", + "system": true + }, + { + "key": "Postman-Token", + "value": "590f51c5-1b61-4420-a549-161f1009f27e", + "system": true + }, + { + "key": "Host", + "value": "localhost:8080", + "system": true + }, + { + "key": "Accept-Encoding", + "value": "gzip, deflate, br", + "system": true + }, + { + "key": "Connection", + "value": "keep-alive", + "system": true + }, + { + "key": "Content-Length", + "value": "421", + "system": true + }, + { + "key": "Cookie", + "value": "ocvp3112b4wg=ded45f82c54180bda7580189ac6aa2c1; oc_sessionPassphrase=LBNdKxRzA0iqoULIruNxDDh2BK3O%2BrCIU8aUmiUcOFvy5Xw1YfjwQNlmBW2IkGwJYtxXh9%2BwDN6vYuGNX07tXzkBtjQJUWTGdzf8AIOUIVxVx5DfyWAQZ7nmYmQv6XSE; nc_sameSiteCookielax=true; nc_sameSiteCookiestrict=true", + "system": true + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n\t\"zaak\": \"http://localhost:8080/index.php/apps/procest/api/zgw/zaken/v1/zaken/b648c5da-b590-4960-94a0-f0c5a3f9ed90\",\n\t\"betrokkene\": \"http://example.com/2d0815580af94ee0a15aa677aa646e1a\",\n\t\"betrokkeneType\": \"natuurlijk_persoon\",\n\t\"rolomschrijving\": \"behandelaar\",\n\t\"roltoelichting\": \"testrol\",\n\t\"roltype\": \"http://localhost:8080/index.php/apps/procest/api/zgw/catalogi/v1/roltypen/9fcbc90a-96d3-4ab3-a4f8-d468250881c5\"\n}" + }, + "auth": { + "type": "jwt", + "jwt": [ + { + "type": "string", + "value": "{\r\n \"iss\": \"procest-admin\",\r\n \"client_id\": \"procest-admin\",\r\n \"iat\": \"1773145159\",\r\n \"user_id\": \"procest-admin\",\r\n \"user_representation\": \"\"\r\n}", + "key": "payload" + }, + { + "type": "string", + "value": "procest-admin-secret-key-for-testing", + "key": "secret" + }, + { + "type": "string", + "value": "HS256", + "key": "algorithm" + }, + { + "type": "boolean", + "value": false, + "key": "isSecretBase64Encoded" + }, + { + "type": "string", + "value": "header", + "key": "addTokenTo" + }, + { + "type": "string", + "value": "Bearer", + "key": "headerPrefix" + }, + { + "type": "string", + "value": "token", + "key": "queryParamKey" + }, + { + "type": "string", + "value": "{}", + "key": "header" + } + ] + } + }, + "response": { + "id": "82e72843-7da2-4aeb-8f23-beb6e01ccf50", + "status": "Created", + "code": 201, + "header": [ + { + "key": "Date", + "value": "Tue, 10 Mar 2026 12:19:18 GMT" + }, + { + "key": "Server", + "value": "Apache/2.4.66 (Debian)" + }, + { + "key": "X-Content-Type-Options", + "value": "nosniff" + }, + { + "key": "X-Frame-Options", + "value": "SAMEORIGIN" + }, + { + "key": "X-Permitted-Cross-Domain-Policies", + "value": "none" + }, + { + "key": "X-Robots-Tag", + "value": "noindex, nofollow" + }, + { + "key": "Referrer-Policy", + "value": "no-referrer" + }, + { + "key": "X-Powered-By", + "value": "PHP/8.3.30" + }, + { + "key": "Content-Security-Policy", + "value": "default-src 'none';base-uri 'none';manifest-src 'self';frame-ancestors 'none'" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=ded45f82c54180bda7580189ac6aa2c1; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=ded45f82c54180bda7580189ac6aa2c1; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=ded45f82c54180bda7580189ac6aa2c1; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=ded45f82c54180bda7580189ac6aa2c1; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=ded45f82c54180bda7580189ac6aa2c1; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=fa6854a2ac42a5474288ca157502784a; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=fa6854a2ac42a5474288ca157502784a; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=fa6854a2ac42a5474288ca157502784a; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=fa6854a2ac42a5474288ca157502784a; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=fa6854a2ac42a5474288ca157502784a; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "X-Request-Id", + "value": "lcnf8JNvbuD4mLpO3Voa" + }, + { + "key": "Cache-Control", + "value": "no-cache, no-store, must-revalidate" + }, + { + "key": "Feature-Policy", + "value": "autoplay 'none';camera 'none';fullscreen 'none';geolocation 'none';microphone 'none';payment 'none'" + }, + { + "key": "X-User-Id", + "value": "admin" + }, + { + "key": "Content-Length", + "value": "504" + }, + { + "key": "Keep-Alive", + "value": "timeout=5, max=77" + }, + { + "key": "Connection", + "value": "Keep-Alive" + }, + { + "key": "Content-Type", + "value": "application/json; charset=utf-8" + } + ], + "stream": { + "type": "Buffer", + "data": [ + 123, + 34, + 117, + 114, + 108, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 122, + 97, + 107, + 101, + 110, + 92, + 47, + 118, + 49, + 92, + 47, + 114, + 111, + 108, + 108, + 101, + 110, + 92, + 47, + 99, + 53, + 56, + 51, + 50, + 49, + 50, + 48, + 45, + 99, + 50, + 55, + 53, + 45, + 52, + 48, + 48, + 100, + 45, + 57, + 50, + 54, + 100, + 45, + 100, + 57, + 99, + 99, + 50, + 100, + 50, + 50, + 51, + 52, + 99, + 51, + 34, + 44, + 34, + 117, + 117, + 105, + 100, + 34, + 58, + 34, + 99, + 53, + 56, + 51, + 50, + 49, + 50, + 48, + 45, + 99, + 50, + 55, + 53, + 45, + 52, + 48, + 48, + 100, + 45, + 57, + 50, + 54, + 100, + 45, + 100, + 57, + 99, + 99, + 50, + 100, + 50, + 50, + 51, + 52, + 99, + 51, + 34, + 44, + 34, + 122, + 97, + 97, + 107, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 122, + 97, + 107, + 101, + 110, + 92, + 47, + 118, + 49, + 92, + 47, + 122, + 97, + 107, + 101, + 110, + 92, + 47, + 98, + 54, + 52, + 56, + 99, + 53, + 100, + 97, + 45, + 98, + 53, + 57, + 48, + 45, + 52, + 57, + 54, + 48, + 45, + 57, + 52, + 97, + 48, + 45, + 102, + 48, + 99, + 53, + 97, + 51, + 102, + 57, + 101, + 100, + 57, + 48, + 34, + 44, + 34, + 114, + 111, + 108, + 116, + 121, + 112, + 101, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 105, + 92, + 47, + 118, + 49, + 92, + 47, + 114, + 111, + 108, + 116, + 121, + 112, + 101, + 110, + 92, + 47, + 57, + 102, + 99, + 98, + 99, + 57, + 48, + 97, + 45, + 57, + 54, + 100, + 51, + 45, + 52, + 97, + 98, + 51, + 45, + 97, + 52, + 102, + 56, + 45, + 100, + 52, + 54, + 56, + 50, + 53, + 48, + 56, + 56, + 49, + 99, + 53, + 34, + 44, + 34, + 111, + 109, + 115, + 99, + 104, + 114, + 105, + 106, + 118, + 105, + 110, + 103, + 34, + 58, + 34, + 34, + 44, + 34, + 111, + 109, + 115, + 99, + 104, + 114, + 105, + 106, + 118, + 105, + 110, + 103, + 71, + 101, + 110, + 101, + 114, + 105, + 101, + 107, + 34, + 58, + 34, + 34, + 44, + 34, + 98, + 101, + 116, + 114, + 111, + 107, + 107, + 101, + 110, + 101, + 73, + 100, + 101, + 110, + 116, + 105, + 102, + 105, + 99, + 97, + 116, + 105, + 101, + 34, + 58, + 34, + 34, + 125 + ] + }, + "cookie": [], + "responseTime": 202, + "responseSize": 504 + }, + "id": "e2684c1a-3b34-4013-803a-4a04ff2e88ac" + }, + { + "cursor": { + "ref": "e746faa6-7e27-4dab-a861-a1e37bb22b20", + "length": 313, + "cycles": 1, + "position": 74, + "iteration": 0, + "httpRequestId": "386ecbed-2d3b-4fca-931e-ddf8c90e5225" + }, + "item": { + "id": "24d66ca5-6dca-467b-a2b8-415a0c0961b1", + "name": "Create Zaakobject", + "request": { + "url": { + "path": [ + "zaakobjecten" + ], + "host": [ + "{{zrc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n\t\"zaak\": \"{{created_zaak_url}}\",\n\t\"objectType\": \"pand\",\n\t\"objectIdentificatie\": {\n\t\t\"identificatie\": \"test\"\n\t}\n}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "e4fda35d-6747-4773-8ada-391665089583", + "type": "text/javascript", + "exec": [ + "pm.environment.set(\"zaakobject_url\", pm.response.json().url);" + ], + "_lastExecutionId": "8175f85f-da36-4dcf-8138-ded8509e31f6" + } + } + ] + }, + "request": { + "url": { + "protocol": "http", + "port": "8080", + "path": [ + "index.php", + "apps", + "procest", + "api", + "zgw", + "zaken", + "v1", + "zaakobjecten" + ], + "host": [ + "localhost" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Authorization", + "value": "Bearer eyJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJwcm9jZXN0LWFkbWluIiwiY2xpZW50X2lkIjoicHJvY2VzdC1hZG1pbiIsImlhdCI6IjE3NzMxNDUxNTkiLCJ1c2VyX2lkIjoicHJvY2VzdC1hZG1pbiIsInVzZXJfcmVwcmVzZW50YXRpb24iOiIifQ.BNqyVHebI5_juGBPtYdtyR1cAT-iXCnckGItwII0bu0", + "system": true + }, + { + "key": "User-Agent", + "value": "PostmanRuntime/7.39.1", + "system": true + }, + { + "key": "Accept", + "value": "*/*", + "system": true + }, + { + "key": "Cache-Control", + "value": "no-cache", + "system": true + }, + { + "key": "Postman-Token", + "value": "d99f7e62-6129-4517-83bb-19f9da1817bd", + "system": true + }, + { + "key": "Host", + "value": "localhost:8080", + "system": true + }, + { + "key": "Accept-Encoding", + "value": "gzip, deflate, br", + "system": true + }, + { + "key": "Connection", + "value": "keep-alive", + "system": true + }, + { + "key": "Content-Length", + "value": "198", + "system": true + }, + { + "key": "Cookie", + "value": "ocvp3112b4wg=fa6854a2ac42a5474288ca157502784a; oc_sessionPassphrase=LBNdKxRzA0iqoULIruNxDDh2BK3O%2BrCIU8aUmiUcOFvy5Xw1YfjwQNlmBW2IkGwJYtxXh9%2BwDN6vYuGNX07tXzkBtjQJUWTGdzf8AIOUIVxVx5DfyWAQZ7nmYmQv6XSE; nc_sameSiteCookielax=true; nc_sameSiteCookiestrict=true", + "system": true + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n\t\"zaak\": \"http://localhost:8080/index.php/apps/procest/api/zgw/zaken/v1/zaken/b648c5da-b590-4960-94a0-f0c5a3f9ed90\",\n\t\"objectType\": \"pand\",\n\t\"objectIdentificatie\": {\n\t\t\"identificatie\": \"test\"\n\t}\n}" + }, + "auth": { + "type": "jwt", + "jwt": [ + { + "type": "string", + "value": "{\r\n \"iss\": \"procest-admin\",\r\n \"client_id\": \"procest-admin\",\r\n \"iat\": \"1773145159\",\r\n \"user_id\": \"procest-admin\",\r\n \"user_representation\": \"\"\r\n}", + "key": "payload" + }, + { + "type": "string", + "value": "procest-admin-secret-key-for-testing", + "key": "secret" + }, + { + "type": "string", + "value": "HS256", + "key": "algorithm" + }, + { + "type": "boolean", + "value": false, + "key": "isSecretBase64Encoded" + }, + { + "type": "string", + "value": "header", + "key": "addTokenTo" + }, + { + "type": "string", + "value": "Bearer", + "key": "headerPrefix" + }, + { + "type": "string", + "value": "token", + "key": "queryParamKey" + }, + { + "type": "string", + "value": "{}", + "key": "header" + } + ] + } + }, + "response": { + "id": "f5201177-4426-4802-b57b-9afd45687a35", + "status": "Created", + "code": 201, + "header": [ + { + "key": "Date", + "value": "Tue, 10 Mar 2026 12:19:18 GMT" + }, + { + "key": "Server", + "value": "Apache/2.4.66 (Debian)" + }, + { + "key": "X-Content-Type-Options", + "value": "nosniff" + }, + { + "key": "X-Frame-Options", + "value": "SAMEORIGIN" + }, + { + "key": "X-Permitted-Cross-Domain-Policies", + "value": "none" + }, + { + "key": "X-Robots-Tag", + "value": "noindex, nofollow" + }, + { + "key": "Referrer-Policy", + "value": "no-referrer" + }, + { + "key": "X-Powered-By", + "value": "PHP/8.3.30" + }, + { + "key": "Content-Security-Policy", + "value": "default-src 'none';base-uri 'none';manifest-src 'self';frame-ancestors 'none'" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=fa6854a2ac42a5474288ca157502784a; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=fa6854a2ac42a5474288ca157502784a; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=fa6854a2ac42a5474288ca157502784a; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=fa6854a2ac42a5474288ca157502784a; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=fa6854a2ac42a5474288ca157502784a; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=515748218064140b4e50c3888e2f7cd2; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=515748218064140b4e50c3888e2f7cd2; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=515748218064140b4e50c3888e2f7cd2; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=515748218064140b4e50c3888e2f7cd2; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=515748218064140b4e50c3888e2f7cd2; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "X-Request-Id", + "value": "IY4DNjdRXKB2hXHklA0Q" + }, + { + "key": "Cache-Control", + "value": "no-cache, no-store, must-revalidate" + }, + { + "key": "Feature-Policy", + "value": "autoplay 'none';camera 'none';fullscreen 'none';geolocation 'none';microphone 'none';payment 'none'" + }, + { + "key": "X-User-Id", + "value": "admin" + }, + { + "key": "Content-Length", + "value": "387" + }, + { + "key": "Keep-Alive", + "value": "timeout=5, max=76" + }, + { + "key": "Connection", + "value": "Keep-Alive" + }, + { + "key": "Content-Type", + "value": "application/json; charset=utf-8" + } + ], + "stream": { + "type": "Buffer", + "data": [ + 123, + 34, + 117, + 114, + 108, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 122, + 97, + 107, + 101, + 110, + 92, + 47, + 118, + 49, + 92, + 47, + 122, + 97, + 97, + 107, + 111, + 98, + 106, + 101, + 99, + 116, + 101, + 110, + 92, + 47, + 98, + 54, + 48, + 102, + 55, + 53, + 101, + 102, + 45, + 48, + 53, + 52, + 53, + 45, + 52, + 50, + 54, + 48, + 45, + 56, + 52, + 53, + 48, + 45, + 101, + 100, + 98, + 56, + 55, + 99, + 99, + 101, + 54, + 50, + 98, + 102, + 34, + 44, + 34, + 117, + 117, + 105, + 100, + 34, + 58, + 34, + 98, + 54, + 48, + 102, + 55, + 53, + 101, + 102, + 45, + 48, + 53, + 52, + 53, + 45, + 52, + 50, + 54, + 48, + 45, + 56, + 52, + 53, + 48, + 45, + 101, + 100, + 98, + 56, + 55, + 99, + 99, + 101, + 54, + 50, + 98, + 102, + 34, + 44, + 34, + 122, + 97, + 97, + 107, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 122, + 97, + 107, + 101, + 110, + 92, + 47, + 118, + 49, + 92, + 47, + 122, + 97, + 107, + 101, + 110, + 92, + 47, + 98, + 54, + 52, + 56, + 99, + 53, + 100, + 97, + 45, + 98, + 53, + 57, + 48, + 45, + 52, + 57, + 54, + 48, + 45, + 57, + 52, + 97, + 48, + 45, + 102, + 48, + 99, + 53, + 97, + 51, + 102, + 57, + 101, + 100, + 57, + 48, + 34, + 44, + 34, + 111, + 98, + 106, + 101, + 99, + 116, + 34, + 58, + 34, + 34, + 44, + 34, + 111, + 98, + 106, + 101, + 99, + 116, + 84, + 121, + 112, + 101, + 34, + 58, + 34, + 112, + 97, + 110, + 100, + 34, + 44, + 34, + 111, + 98, + 106, + 101, + 99, + 116, + 73, + 100, + 101, + 110, + 116, + 105, + 102, + 105, + 99, + 97, + 116, + 105, + 101, + 34, + 58, + 110, + 117, + 108, + 108, + 44, + 34, + 114, + 101, + 108, + 97, + 116, + 105, + 101, + 111, + 109, + 115, + 99, + 104, + 114, + 105, + 106, + 118, + 105, + 110, + 103, + 34, + 58, + 34, + 34, + 125 + ] + }, + "cookie": [], + "responseTime": 184, + "responseSize": 387 + }, + "id": "24d66ca5-6dca-467b-a2b8-415a0c0961b1" + }, + { + "cursor": { + "ref": "7ec17853-7fcf-4f6b-af43-ddfe129e0f7d", + "length": 313, + "cycles": 1, + "position": 75, + "iteration": 0, + "httpRequestId": "61ddd9c9-9069-4180-9313-b3881afd6808" + }, + "item": { + "id": "f71db5d0-1b97-416d-ac45-b7f639fc88f5", + "name": "Add Zaakeigenschap to Zaak", + "request": { + "url": { + "path": [ + "zaakeigenschappen" + ], + "host": [ + "{{created_zaak_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n\t\"zaak\": \"{{created_zaak_url}}\",\n\t\"eigenschap\": \"{{zaaktype_eigenschap}}\",\n\t\"waarde\": \"test\"\n}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "404d21f0-7fe3-424e-a8b6-bf1856253ad9", + "type": "text/javascript", + "exec": [ + "pm.environment.set(\"zaakeigenschap_url\", pm.response.json().url);" + ], + "_lastExecutionId": "939764cd-7964-486e-b436-d311c1bde014" + } + }, + { + "listen": "prerequest", + "script": { + "id": "96b30948-7f74-4175-9490-20b51b9c85fc", + "type": "text/javascript", + "exec": [ + "" + ], + "_lastExecutionId": "131815be-7a9c-4523-b42d-bdb6f98b9b62" + } + } + ] + }, + "request": { + "url": { + "protocol": "http", + "port": "8080", + "path": [ + "index.php", + "apps", + "procest", + "api", + "zgw", + "zaken", + "v1", + "zaken", + "b648c5da-b590-4960-94a0-f0c5a3f9ed90", + "zaakeigenschappen" + ], + "host": [ + "localhost" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Authorization", + "value": "Bearer eyJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJwcm9jZXN0LWFkbWluIiwiY2xpZW50X2lkIjoicHJvY2VzdC1hZG1pbiIsImlhdCI6IjE3NzMxNDUxNTkiLCJ1c2VyX2lkIjoicHJvY2VzdC1hZG1pbiIsInVzZXJfcmVwcmVzZW50YXRpb24iOiIifQ.BNqyVHebI5_juGBPtYdtyR1cAT-iXCnckGItwII0bu0", + "system": true + }, + { + "key": "User-Agent", + "value": "PostmanRuntime/7.39.1", + "system": true + }, + { + "key": "Accept", + "value": "*/*", + "system": true + }, + { + "key": "Cache-Control", + "value": "no-cache", + "system": true + }, + { + "key": "Postman-Token", + "value": "1b79aadd-7a90-4ea6-b843-bd85a2b24b65", + "system": true + }, + { + "key": "Host", + "value": "localhost:8080", + "system": true + }, + { + "key": "Accept-Encoding", + "value": "gzip, deflate, br", + "system": true + }, + { + "key": "Connection", + "value": "keep-alive", + "system": true + }, + { + "key": "Content-Length", + "value": "272", + "system": true + }, + { + "key": "Cookie", + "value": "ocvp3112b4wg=515748218064140b4e50c3888e2f7cd2; oc_sessionPassphrase=LBNdKxRzA0iqoULIruNxDDh2BK3O%2BrCIU8aUmiUcOFvy5Xw1YfjwQNlmBW2IkGwJYtxXh9%2BwDN6vYuGNX07tXzkBtjQJUWTGdzf8AIOUIVxVx5DfyWAQZ7nmYmQv6XSE; nc_sameSiteCookielax=true; nc_sameSiteCookiestrict=true", + "system": true + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n\t\"zaak\": \"http://localhost:8080/index.php/apps/procest/api/zgw/zaken/v1/zaken/b648c5da-b590-4960-94a0-f0c5a3f9ed90\",\n\t\"eigenschap\": \"http://localhost:8080/index.php/apps/procest/api/zgw/catalogi/v1/eigenschappen/c1598f9b-000f-4406-80e4-2d317530a4a9\",\n\t\"waarde\": \"test\"\n}" + }, + "auth": { + "type": "jwt", + "jwt": [ + { + "type": "string", + "value": "{\r\n \"iss\": \"procest-admin\",\r\n \"client_id\": \"procest-admin\",\r\n \"iat\": \"1773145159\",\r\n \"user_id\": \"procest-admin\",\r\n \"user_representation\": \"\"\r\n}", + "key": "payload" + }, + { + "type": "string", + "value": "procest-admin-secret-key-for-testing", + "key": "secret" + }, + { + "type": "string", + "value": "HS256", + "key": "algorithm" + }, + { + "type": "boolean", + "value": false, + "key": "isSecretBase64Encoded" + }, + { + "type": "string", + "value": "header", + "key": "addTokenTo" + }, + { + "type": "string", + "value": "Bearer", + "key": "headerPrefix" + }, + { + "type": "string", + "value": "token", + "key": "queryParamKey" + }, + { + "type": "string", + "value": "{}", + "key": "header" + } + ] + } + }, + "response": { + "id": "99cbdbcc-bc09-477c-8aeb-ad8a7cfde0c4", + "status": "Created", + "code": 201, + "header": [ + { + "key": "Date", + "value": "Tue, 10 Mar 2026 12:19:19 GMT" + }, + { + "key": "Server", + "value": "Apache/2.4.66 (Debian)" + }, + { + "key": "X-Content-Type-Options", + "value": "nosniff" + }, + { + "key": "X-Frame-Options", + "value": "SAMEORIGIN" + }, + { + "key": "X-Permitted-Cross-Domain-Policies", + "value": "none" + }, + { + "key": "X-Robots-Tag", + "value": "noindex, nofollow" + }, + { + "key": "Referrer-Policy", + "value": "no-referrer" + }, + { + "key": "X-Powered-By", + "value": "PHP/8.3.30" + }, + { + "key": "Content-Security-Policy", + "value": "default-src 'none';base-uri 'none';manifest-src 'self';frame-ancestors 'none'" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=515748218064140b4e50c3888e2f7cd2; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=515748218064140b4e50c3888e2f7cd2; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=515748218064140b4e50c3888e2f7cd2; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=515748218064140b4e50c3888e2f7cd2; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=515748218064140b4e50c3888e2f7cd2; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=5aec8bff73b75efeaaf7360e4e758cb0; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=5aec8bff73b75efeaaf7360e4e758cb0; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=5aec8bff73b75efeaaf7360e4e758cb0; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=5aec8bff73b75efeaaf7360e4e758cb0; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=5aec8bff73b75efeaaf7360e4e758cb0; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "X-Request-Id", + "value": "iw3X4qRumUbkyeEpdJ2c" + }, + { + "key": "Cache-Control", + "value": "no-cache, no-store, must-revalidate" + }, + { + "key": "Feature-Policy", + "value": "autoplay 'none';camera 'none';fullscreen 'none';geolocation 'none';microphone 'none';payment 'none'" + }, + { + "key": "X-User-Id", + "value": "admin" + }, + { + "key": "Content-Length", + "value": "466" + }, + { + "key": "Keep-Alive", + "value": "timeout=5, max=75" + }, + { + "key": "Connection", + "value": "Keep-Alive" + }, + { + "key": "Content-Type", + "value": "application/json; charset=utf-8" + } + ], + "stream": { + "type": "Buffer", + "data": [ + 123, + 34, + 117, + 114, + 108, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 122, + 97, + 107, + 101, + 110, + 92, + 47, + 118, + 49, + 92, + 47, + 122, + 97, + 97, + 107, + 101, + 105, + 103, + 101, + 110, + 115, + 99, + 104, + 97, + 112, + 112, + 101, + 110, + 92, + 47, + 98, + 53, + 51, + 51, + 98, + 56, + 52, + 48, + 45, + 51, + 56, + 55, + 53, + 45, + 52, + 54, + 97, + 51, + 45, + 97, + 98, + 50, + 54, + 45, + 53, + 98, + 52, + 52, + 51, + 48, + 57, + 49, + 48, + 53, + 97, + 52, + 34, + 44, + 34, + 117, + 117, + 105, + 100, + 34, + 58, + 34, + 98, + 53, + 51, + 51, + 98, + 56, + 52, + 48, + 45, + 51, + 56, + 55, + 53, + 45, + 52, + 54, + 97, + 51, + 45, + 97, + 98, + 50, + 54, + 45, + 53, + 98, + 52, + 52, + 51, + 48, + 57, + 49, + 48, + 53, + 97, + 52, + 34, + 44, + 34, + 122, + 97, + 97, + 107, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 122, + 97, + 107, + 101, + 110, + 92, + 47, + 118, + 49, + 92, + 47, + 122, + 97, + 107, + 101, + 110, + 92, + 47, + 98, + 54, + 52, + 56, + 99, + 53, + 100, + 97, + 45, + 98, + 53, + 57, + 48, + 45, + 52, + 57, + 54, + 48, + 45, + 57, + 52, + 97, + 48, + 45, + 102, + 48, + 99, + 53, + 97, + 51, + 102, + 57, + 101, + 100, + 57, + 48, + 34, + 44, + 34, + 101, + 105, + 103, + 101, + 110, + 115, + 99, + 104, + 97, + 112, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 105, + 92, + 47, + 118, + 49, + 92, + 47, + 101, + 105, + 103, + 101, + 110, + 115, + 99, + 104, + 97, + 112, + 112, + 101, + 110, + 92, + 47, + 99, + 49, + 53, + 57, + 56, + 102, + 57, + 98, + 45, + 48, + 48, + 48, + 102, + 45, + 52, + 52, + 48, + 54, + 45, + 56, + 48, + 101, + 52, + 45, + 50, + 100, + 51, + 49, + 55, + 53, + 51, + 48, + 97, + 52, + 97, + 57, + 34, + 44, + 34, + 119, + 97, + 97, + 114, + 100, + 101, + 34, + 58, + 34, + 116, + 101, + 115, + 116, + 34, + 125 + ] + }, + "cookie": [], + "responseTime": 194, + "responseSize": 466 + }, + "id": "f71db5d0-1b97-416d-ac45-b7f639fc88f5" + }, + { + "cursor": { + "ref": "d3213279-693b-45b1-9c5b-a68be40a107e", + "length": 313, + "cycles": 1, + "position": 76, + "iteration": 0, + "httpRequestId": "b0312fe1-7341-44d5-940d-d934c0154538" + }, + "item": { + "id": "894e375d-ee49-4226-b420-be0522ec6bf5", + "name": "(zrc-007a) Zaak.einddatum volgt logisch uit eindstatus", + "request": { + "url": { + "host": [ + "{{created_zaak_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Accept-Crs", + "value": "EPSG:4326" + }, + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "GET", + "body": { + "mode": "raw", + "raw": "" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "23516296-e939-4d3a-a28b-14438a2562d7", + "type": "text/javascript", + "packages": {}, + "exec": [ + "pm.test(\"Toevoegen eindstatus aan Zaak laat Zaak.einddatum afleiden uit status.datumStatusGezet\", function(){", + " pm.response.to.have.status(200);", + " ", + "", + " pm.expect(pm.response.json().einddatum).equals('2018-04-20');", + "});" + ], + "_lastExecutionId": "226a501f-d391-4bb9-a401-9e4ed7da475b" + } + }, + { + "listen": "prerequest", + "script": { + "id": "d3691dc7-9e04-49f0-9118-0277aacb4b96", + "type": "text/javascript", + "packages": {}, + "exec": [ + "" + ], + "_lastExecutionId": "3a9b2fd3-8a11-40a0-aa53-84cc971c148e" + } + } + ], + "protocolProfileBehavior": { + "disableBodyPruning": true + } + }, + "request": { + "url": { + "protocol": "http", + "port": "8080", + "path": [ + "index.php", + "apps", + "procest", + "api", + "zgw", + "zaken", + "v1", + "zaken", + "b648c5da-b590-4960-94a0-f0c5a3f9ed90" + ], + "host": [ + "localhost" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Accept-Crs", + "value": "EPSG:4326" + }, + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Authorization", + "value": "Bearer eyJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJwcm9jZXN0LWFkbWluIiwiY2xpZW50X2lkIjoicHJvY2VzdC1hZG1pbiIsImlhdCI6IjE3NzMxNDUxNTkiLCJ1c2VyX2lkIjoicHJvY2VzdC1hZG1pbiIsInVzZXJfcmVwcmVzZW50YXRpb24iOiIifQ.BNqyVHebI5_juGBPtYdtyR1cAT-iXCnckGItwII0bu0", + "system": true + }, + { + "key": "User-Agent", + "value": "PostmanRuntime/7.39.1", + "system": true + }, + { + "key": "Accept", + "value": "*/*", + "system": true + }, + { + "key": "Cache-Control", + "value": "no-cache", + "system": true + }, + { + "key": "Postman-Token", + "value": "72286e81-ea24-49b0-9426-9aa5e2b7bf4b", + "system": true + }, + { + "key": "Host", + "value": "localhost:8080", + "system": true + }, + { + "key": "Accept-Encoding", + "value": "gzip, deflate, br", + "system": true + }, + { + "key": "Connection", + "value": "keep-alive", + "system": true + }, + { + "key": "Cookie", + "value": "ocvp3112b4wg=5aec8bff73b75efeaaf7360e4e758cb0; oc_sessionPassphrase=LBNdKxRzA0iqoULIruNxDDh2BK3O%2BrCIU8aUmiUcOFvy5Xw1YfjwQNlmBW2IkGwJYtxXh9%2BwDN6vYuGNX07tXzkBtjQJUWTGdzf8AIOUIVxVx5DfyWAQZ7nmYmQv6XSE; nc_sameSiteCookielax=true; nc_sameSiteCookiestrict=true", + "system": true + } + ], + "method": "GET", + "body": { + "mode": "raw", + "raw": "" + }, + "auth": { + "type": "jwt", + "jwt": [ + { + "type": "string", + "value": "{\r\n \"iss\": \"procest-admin\",\r\n \"client_id\": \"procest-admin\",\r\n \"iat\": \"1773145159\",\r\n \"user_id\": \"procest-admin\",\r\n \"user_representation\": \"\"\r\n}", + "key": "payload" + }, + { + "type": "string", + "value": "procest-admin-secret-key-for-testing", + "key": "secret" + }, + { + "type": "string", + "value": "HS256", + "key": "algorithm" + }, + { + "type": "boolean", + "value": false, + "key": "isSecretBase64Encoded" + }, + { + "type": "string", + "value": "header", + "key": "addTokenTo" + }, + { + "type": "string", + "value": "Bearer", + "key": "headerPrefix" + }, + { + "type": "string", + "value": "token", + "key": "queryParamKey" + }, + { + "type": "string", + "value": "{}", + "key": "header" + } + ] + } + }, + "response": { + "id": "95dd6bb2-a3f0-4784-8d97-ed710cedded7", + "status": "OK", + "code": 200, + "header": [ + { + "key": "Date", + "value": "Tue, 10 Mar 2026 12:19:19 GMT" + }, + { + "key": "Server", + "value": "Apache/2.4.66 (Debian)" + }, + { + "key": "X-Content-Type-Options", + "value": "nosniff" + }, + { + "key": "X-Frame-Options", + "value": "SAMEORIGIN" + }, + { + "key": "X-Permitted-Cross-Domain-Policies", + "value": "none" + }, + { + "key": "X-Robots-Tag", + "value": "noindex, nofollow" + }, + { + "key": "Referrer-Policy", + "value": "no-referrer" + }, + { + "key": "X-Powered-By", + "value": "PHP/8.3.30" + }, + { + "key": "Content-Security-Policy", + "value": "default-src 'none';base-uri 'none';manifest-src 'self';frame-ancestors 'none'" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=5aec8bff73b75efeaaf7360e4e758cb0; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=5aec8bff73b75efeaaf7360e4e758cb0; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=5aec8bff73b75efeaaf7360e4e758cb0; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=5aec8bff73b75efeaaf7360e4e758cb0; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=5aec8bff73b75efeaaf7360e4e758cb0; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=6751db2e9df9b6834bc19c2f098e0f62; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=6751db2e9df9b6834bc19c2f098e0f62; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=6751db2e9df9b6834bc19c2f098e0f62; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=6751db2e9df9b6834bc19c2f098e0f62; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=6751db2e9df9b6834bc19c2f098e0f62; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "X-Request-Id", + "value": "QmTj5nUEffOGOzWZ2XIH" + }, + { + "key": "Cache-Control", + "value": "no-cache, no-store, must-revalidate" + }, + { + "key": "Feature-Policy", + "value": "autoplay 'none';camera 'none';fullscreen 'none';geolocation 'none';microphone 'none';payment 'none'" + }, + { + "key": "X-User-Id", + "value": "admin" + }, + { + "key": "Content-Encoding", + "value": "gzip" + }, + { + "key": "Content-Length", + "value": "452" + }, + { + "key": "Keep-Alive", + "value": "timeout=5, max=74" + }, + { + "key": "Connection", + "value": "Keep-Alive" + }, + { + "key": "Content-Type", + "value": "application/json; charset=utf-8" + } + ], + "stream": { + "type": "Buffer", + "data": [ + 123, + 34, + 117, + 114, + 108, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 122, + 97, + 107, + 101, + 110, + 92, + 47, + 118, + 49, + 92, + 47, + 122, + 97, + 107, + 101, + 110, + 92, + 47, + 98, + 54, + 52, + 56, + 99, + 53, + 100, + 97, + 45, + 98, + 53, + 57, + 48, + 45, + 52, + 57, + 54, + 48, + 45, + 57, + 52, + 97, + 48, + 45, + 102, + 48, + 99, + 53, + 97, + 51, + 102, + 57, + 101, + 100, + 57, + 48, + 34, + 44, + 34, + 117, + 117, + 105, + 100, + 34, + 58, + 34, + 98, + 54, + 52, + 56, + 99, + 53, + 100, + 97, + 45, + 98, + 53, + 57, + 48, + 45, + 52, + 57, + 54, + 48, + 45, + 57, + 52, + 97, + 48, + 45, + 102, + 48, + 99, + 53, + 97, + 51, + 102, + 57, + 101, + 100, + 57, + 48, + 34, + 44, + 34, + 105, + 100, + 101, + 110, + 116, + 105, + 102, + 105, + 99, + 97, + 116, + 105, + 101, + 34, + 58, + 34, + 90, + 65, + 65, + 75, + 45, + 84, + 66, + 79, + 78, + 75, + 52, + 45, + 65, + 51, + 48, + 51, + 54, + 66, + 34, + 44, + 34, + 111, + 109, + 115, + 99, + 104, + 114, + 105, + 106, + 118, + 105, + 110, + 103, + 34, + 58, + 34, + 115, + 116, + 114, + 105, + 110, + 103, + 34, + 44, + 34, + 116, + 111, + 101, + 108, + 105, + 99, + 104, + 116, + 105, + 110, + 103, + 34, + 58, + 34, + 115, + 116, + 114, + 105, + 110, + 103, + 34, + 44, + 34, + 122, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 105, + 92, + 47, + 118, + 49, + 92, + 47, + 122, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 110, + 92, + 47, + 54, + 49, + 57, + 100, + 99, + 51, + 101, + 53, + 45, + 53, + 50, + 102, + 49, + 45, + 52, + 50, + 57, + 52, + 45, + 97, + 53, + 54, + 57, + 45, + 102, + 50, + 49, + 100, + 49, + 54, + 102, + 52, + 52, + 56, + 55, + 57, + 34, + 44, + 34, + 114, + 101, + 103, + 105, + 115, + 116, + 114, + 97, + 116, + 105, + 101, + 100, + 97, + 116, + 117, + 109, + 34, + 58, + 34, + 50, + 48, + 50, + 54, + 45, + 48, + 51, + 45, + 49, + 48, + 84, + 49, + 50, + 58, + 49, + 57, + 58, + 49, + 54, + 43, + 48, + 48, + 58, + 48, + 48, + 34, + 44, + 34, + 115, + 116, + 97, + 114, + 116, + 100, + 97, + 116, + 117, + 109, + 34, + 58, + 34, + 50, + 48, + 49, + 57, + 45, + 48, + 52, + 45, + 48, + 57, + 34, + 44, + 34, + 101, + 105, + 110, + 100, + 100, + 97, + 116, + 117, + 109, + 34, + 58, + 34, + 50, + 48, + 49, + 56, + 45, + 48, + 52, + 45, + 50, + 48, + 34, + 44, + 34, + 101, + 105, + 110, + 100, + 100, + 97, + 116, + 117, + 109, + 71, + 101, + 112, + 108, + 97, + 110, + 100, + 34, + 58, + 34, + 50, + 48, + 49, + 57, + 45, + 48, + 52, + 45, + 50, + 48, + 34, + 44, + 34, + 117, + 105, + 116, + 101, + 114, + 108, + 105, + 106, + 107, + 101, + 69, + 105, + 110, + 100, + 100, + 97, + 116, + 117, + 109, + 65, + 102, + 100, + 111, + 101, + 110, + 105, + 110, + 103, + 34, + 58, + 34, + 50, + 48, + 49, + 57, + 45, + 48, + 52, + 45, + 48, + 57, + 34, + 44, + 34, + 118, + 101, + 114, + 116, + 114, + 111, + 117, + 119, + 101, + 108, + 105, + 106, + 107, + 104, + 101, + 105, + 100, + 97, + 97, + 110, + 100, + 117, + 105, + 100, + 105, + 110, + 103, + 34, + 58, + 34, + 103, + 101, + 104, + 101, + 105, + 109, + 34, + 44, + 34, + 118, + 101, + 114, + 97, + 110, + 116, + 119, + 111, + 111, + 114, + 100, + 101, + 108, + 105, + 106, + 107, + 101, + 79, + 114, + 103, + 97, + 110, + 105, + 115, + 97, + 116, + 105, + 101, + 34, + 58, + 34, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 34, + 44, + 34, + 97, + 114, + 99, + 104, + 105, + 101, + 102, + 110, + 111, + 109, + 105, + 110, + 97, + 116, + 105, + 101, + 34, + 58, + 34, + 118, + 101, + 114, + 110, + 105, + 101, + 116, + 105, + 103, + 101, + 110, + 34, + 44, + 34, + 97, + 114, + 99, + 104, + 105, + 101, + 102, + 97, + 99, + 116, + 105, + 101, + 100, + 97, + 116, + 117, + 109, + 34, + 58, + 34, + 50, + 48, + 50, + 51, + 45, + 48, + 52, + 45, + 50, + 48, + 34, + 44, + 34, + 97, + 114, + 99, + 104, + 105, + 101, + 102, + 115, + 116, + 97, + 116, + 117, + 115, + 34, + 58, + 34, + 110, + 111, + 103, + 95, + 116, + 101, + 95, + 97, + 114, + 99, + 104, + 105, + 118, + 101, + 114, + 101, + 110, + 34, + 44, + 34, + 98, + 101, + 116, + 97, + 108, + 105, + 110, + 103, + 115, + 105, + 110, + 100, + 105, + 99, + 97, + 116, + 105, + 101, + 34, + 58, + 34, + 103, + 101, + 104, + 101, + 101, + 108, + 34, + 44, + 34, + 108, + 97, + 97, + 116, + 115, + 116, + 101, + 66, + 101, + 116, + 97, + 97, + 108, + 100, + 97, + 116, + 117, + 109, + 34, + 58, + 34, + 50, + 48, + 49, + 57, + 45, + 48, + 49, + 45, + 48, + 49, + 34, + 44, + 34, + 104, + 111, + 111, + 102, + 100, + 122, + 97, + 97, + 107, + 34, + 58, + 110, + 117, + 108, + 108, + 125 + ] + }, + "cookie": [], + "responseTime": 117, + "responseSize": 830 + }, + "id": "894e375d-ee49-4226-b420-be0522ec6bf5", + "assertions": [ + { + "assertion": "Toevoegen eindstatus aan Zaak laat Zaak.einddatum afleiden uit status.datumStatusGezet", + "skipped": false + } + ] + }, + { + "cursor": { + "ref": "22b2b558-a634-470d-a501-96df1c446b00", + "length": 313, + "cycles": 1, + "position": 77, + "iteration": 0, + "httpRequestId": "f7777681-8e09-48ba-91b4-4ae880ff0f70" + }, + "item": { + "id": "98e2897f-fcc9-40fb-9327-a839f5ba15e1", + "name": "(zrc-007b) Informatieobject.indicatieGebruikersrecht niet null bij afsluiten zaak", + "request": { + "url": { + "host": [ + "{{informatieobject_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Accept-Crs", + "value": "EPSG:4326" + } + ], + "method": "GET" + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "4c865327-01d4-41d1-b251-0ba1d2390640", + "type": "text/javascript", + "packages": {}, + "exec": [ + "pm.test(\"Afsluiten Zaak betekent Informatieobject.indicatieGebruiksrecht gezet voor alle gerelateerde objecten\", function(){", + " pm.response.to.have.status(200);", + " pm.expect(pm.response.json().indicatieGebruiksrecht).to.not.be.equal(null);", + "});", + "", + "" + ], + "_lastExecutionId": "33d0ac3d-fbad-4359-81bc-b37d1c9064d0" + } + }, + { + "listen": "prerequest", + "script": { + "id": "c578fdc6-8fbc-4913-bb60-e0e413b2e26b", + "type": "text/javascript", + "packages": {}, + "exec": [ + "" + ], + "_lastExecutionId": "fed51f54-ab25-48ec-a4c4-288c9d601d92" + } + } + ] + }, + "request": { + "url": { + "protocol": "http", + "port": "8080", + "path": [ + "index.php", + "apps", + "procest", + "api", + "zgw", + "documenten", + "v1", + "enkelvoudiginformatieobjecten", + "56f155a0-752f-428e-b7d0-e3d88d539346" + ], + "host": [ + "localhost" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Accept-Crs", + "value": "EPSG:4326" + }, + { + "key": "Authorization", + "value": "Bearer eyJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJwcm9jZXN0LWFkbWluIiwiY2xpZW50X2lkIjoicHJvY2VzdC1hZG1pbiIsImlhdCI6IjE3NzMxNDUxNTkiLCJ1c2VyX2lkIjoicHJvY2VzdC1hZG1pbiIsInVzZXJfcmVwcmVzZW50YXRpb24iOiIifQ.BNqyVHebI5_juGBPtYdtyR1cAT-iXCnckGItwII0bu0", + "system": true + }, + { + "key": "User-Agent", + "value": "PostmanRuntime/7.39.1", + "system": true + }, + { + "key": "Accept", + "value": "*/*", + "system": true + }, + { + "key": "Cache-Control", + "value": "no-cache", + "system": true + }, + { + "key": "Postman-Token", + "value": "114c3e93-78af-4d16-a148-026a75d43cec", + "system": true + }, + { + "key": "Host", + "value": "localhost:8080", + "system": true + }, + { + "key": "Accept-Encoding", + "value": "gzip, deflate, br", + "system": true + }, + { + "key": "Connection", + "value": "keep-alive", + "system": true + }, + { + "key": "Cookie", + "value": "ocvp3112b4wg=6751db2e9df9b6834bc19c2f098e0f62; oc_sessionPassphrase=LBNdKxRzA0iqoULIruNxDDh2BK3O%2BrCIU8aUmiUcOFvy5Xw1YfjwQNlmBW2IkGwJYtxXh9%2BwDN6vYuGNX07tXzkBtjQJUWTGdzf8AIOUIVxVx5DfyWAQZ7nmYmQv6XSE; nc_sameSiteCookielax=true; nc_sameSiteCookiestrict=true", + "system": true + } + ], + "method": "GET", + "auth": { + "type": "jwt", + "jwt": [ + { + "type": "string", + "value": "{\r\n \"iss\": \"procest-admin\",\r\n \"client_id\": \"procest-admin\",\r\n \"iat\": \"1773145159\",\r\n \"user_id\": \"procest-admin\",\r\n \"user_representation\": \"\"\r\n}", + "key": "payload" + }, + { + "type": "string", + "value": "procest-admin-secret-key-for-testing", + "key": "secret" + }, + { + "type": "string", + "value": "HS256", + "key": "algorithm" + }, + { + "type": "boolean", + "value": false, + "key": "isSecretBase64Encoded" + }, + { + "type": "string", + "value": "header", + "key": "addTokenTo" + }, + { + "type": "string", + "value": "Bearer", + "key": "headerPrefix" + }, + { + "type": "string", + "value": "token", + "key": "queryParamKey" + }, + { + "type": "string", + "value": "{}", + "key": "header" + } + ] + } + }, + "response": { + "id": "d335f31e-16b3-44df-a156-e40470904a50", + "status": "OK", + "code": 200, + "header": [ + { + "key": "Date", + "value": "Tue, 10 Mar 2026 12:19:19 GMT" + }, + { + "key": "Server", + "value": "Apache/2.4.66 (Debian)" + }, + { + "key": "X-Content-Type-Options", + "value": "nosniff" + }, + { + "key": "X-Frame-Options", + "value": "SAMEORIGIN" + }, + { + "key": "X-Permitted-Cross-Domain-Policies", + "value": "none" + }, + { + "key": "X-Robots-Tag", + "value": "noindex, nofollow" + }, + { + "key": "Referrer-Policy", + "value": "no-referrer" + }, + { + "key": "X-Powered-By", + "value": "PHP/8.3.30" + }, + { + "key": "Content-Security-Policy", + "value": "default-src 'none';base-uri 'none';manifest-src 'self';frame-ancestors 'none'" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=6751db2e9df9b6834bc19c2f098e0f62; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=6751db2e9df9b6834bc19c2f098e0f62; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=6751db2e9df9b6834bc19c2f098e0f62; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=6751db2e9df9b6834bc19c2f098e0f62; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=6751db2e9df9b6834bc19c2f098e0f62; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=8511b428892fcd3c9ba1046c9dd0471d; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=8511b428892fcd3c9ba1046c9dd0471d; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=8511b428892fcd3c9ba1046c9dd0471d; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=8511b428892fcd3c9ba1046c9dd0471d; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=8511b428892fcd3c9ba1046c9dd0471d; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "X-Request-Id", + "value": "irCBClGkfwA0ajLU69Km" + }, + { + "key": "Cache-Control", + "value": "no-cache, no-store, must-revalidate" + }, + { + "key": "Feature-Policy", + "value": "autoplay 'none';camera 'none';fullscreen 'none';geolocation 'none';microphone 'none';payment 'none'" + }, + { + "key": "X-User-Id", + "value": "admin" + }, + { + "key": "Content-Encoding", + "value": "gzip" + }, + { + "key": "Content-Length", + "value": "470" + }, + { + "key": "Keep-Alive", + "value": "timeout=5, max=73" + }, + { + "key": "Connection", + "value": "Keep-Alive" + }, + { + "key": "Content-Type", + "value": "application/json; charset=utf-8" + } + ], + "stream": { + "type": "Buffer", + "data": [ + 123, + 34, + 117, + 114, + 108, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 100, + 111, + 99, + 117, + 109, + 101, + 110, + 116, + 101, + 110, + 92, + 47, + 118, + 49, + 92, + 47, + 101, + 110, + 107, + 101, + 108, + 118, + 111, + 117, + 100, + 105, + 103, + 105, + 110, + 102, + 111, + 114, + 109, + 97, + 116, + 105, + 101, + 111, + 98, + 106, + 101, + 99, + 116, + 101, + 110, + 92, + 47, + 53, + 54, + 102, + 49, + 53, + 53, + 97, + 48, + 45, + 55, + 53, + 50, + 102, + 45, + 52, + 50, + 56, + 101, + 45, + 98, + 55, + 100, + 48, + 45, + 101, + 51, + 100, + 56, + 56, + 100, + 53, + 51, + 57, + 51, + 52, + 54, + 34, + 44, + 34, + 117, + 117, + 105, + 100, + 34, + 58, + 34, + 53, + 54, + 102, + 49, + 53, + 53, + 97, + 48, + 45, + 55, + 53, + 50, + 102, + 45, + 52, + 50, + 56, + 101, + 45, + 98, + 55, + 100, + 48, + 45, + 101, + 51, + 100, + 56, + 56, + 100, + 53, + 51, + 57, + 51, + 52, + 54, + 34, + 44, + 34, + 105, + 100, + 101, + 110, + 116, + 105, + 102, + 105, + 99, + 97, + 116, + 105, + 101, + 34, + 58, + 34, + 68, + 79, + 67, + 85, + 77, + 69, + 78, + 84, + 45, + 84, + 66, + 79, + 78, + 75, + 52, + 45, + 57, + 55, + 54, + 49, + 56, + 52, + 34, + 44, + 34, + 98, + 114, + 111, + 110, + 111, + 114, + 103, + 97, + 110, + 105, + 115, + 97, + 116, + 105, + 101, + 34, + 58, + 34, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 34, + 44, + 34, + 99, + 114, + 101, + 97, + 116, + 105, + 101, + 100, + 97, + 116, + 117, + 109, + 34, + 58, + 34, + 50, + 48, + 49, + 57, + 45, + 48, + 49, + 45, + 48, + 49, + 34, + 44, + 34, + 116, + 105, + 116, + 101, + 108, + 34, + 58, + 34, + 116, + 101, + 115, + 116, + 111, + 98, + 106, + 101, + 99, + 116, + 34, + 44, + 34, + 118, + 101, + 114, + 116, + 114, + 111, + 117, + 119, + 101, + 108, + 105, + 106, + 107, + 104, + 101, + 105, + 100, + 97, + 97, + 110, + 100, + 117, + 105, + 100, + 105, + 110, + 103, + 34, + 58, + 34, + 111, + 112, + 101, + 110, + 98, + 97, + 97, + 114, + 34, + 44, + 34, + 97, + 117, + 116, + 101, + 117, + 114, + 34, + 58, + 34, + 116, + 101, + 115, + 116, + 97, + 117, + 116, + 101, + 117, + 114, + 34, + 44, + 34, + 115, + 116, + 97, + 116, + 117, + 115, + 34, + 58, + 34, + 103, + 101, + 97, + 114, + 99, + 104, + 105, + 118, + 101, + 101, + 114, + 100, + 34, + 44, + 34, + 102, + 111, + 114, + 109, + 97, + 97, + 116, + 34, + 58, + 34, + 97, + 112, + 112, + 108, + 105, + 99, + 97, + 116, + 105, + 111, + 110, + 92, + 47, + 112, + 100, + 102, + 34, + 44, + 34, + 116, + 97, + 97, + 108, + 34, + 58, + 34, + 110, + 108, + 100, + 34, + 44, + 34, + 98, + 101, + 115, + 116, + 97, + 110, + 100, + 115, + 110, + 97, + 97, + 109, + 34, + 58, + 34, + 116, + 101, + 115, + 116, + 32, + 51, + 46, + 112, + 100, + 102, + 34, + 44, + 34, + 98, + 101, + 115, + 116, + 97, + 110, + 100, + 115, + 111, + 109, + 118, + 97, + 110, + 103, + 34, + 58, + 54, + 44, + 34, + 105, + 110, + 104, + 111, + 117, + 100, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 100, + 111, + 99, + 117, + 109, + 101, + 110, + 116, + 101, + 110, + 92, + 47, + 118, + 49, + 92, + 47, + 101, + 110, + 107, + 101, + 108, + 118, + 111, + 117, + 100, + 105, + 103, + 105, + 110, + 102, + 111, + 114, + 109, + 97, + 116, + 105, + 101, + 111, + 98, + 106, + 101, + 99, + 116, + 101, + 110, + 92, + 47, + 53, + 54, + 102, + 49, + 53, + 53, + 97, + 48, + 45, + 55, + 53, + 50, + 102, + 45, + 52, + 50, + 56, + 101, + 45, + 98, + 55, + 100, + 48, + 45, + 101, + 51, + 100, + 56, + 56, + 100, + 53, + 51, + 57, + 51, + 52, + 54, + 92, + 47, + 100, + 111, + 119, + 110, + 108, + 111, + 97, + 100, + 34, + 44, + 34, + 108, + 105, + 110, + 107, + 34, + 58, + 34, + 34, + 44, + 34, + 98, + 101, + 115, + 99, + 104, + 114, + 105, + 106, + 118, + 105, + 110, + 103, + 34, + 58, + 34, + 34, + 44, + 34, + 105, + 110, + 102, + 111, + 114, + 109, + 97, + 116, + 105, + 101, + 111, + 98, + 106, + 101, + 99, + 116, + 116, + 121, + 112, + 101, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 105, + 92, + 47, + 118, + 49, + 92, + 47, + 105, + 110, + 102, + 111, + 114, + 109, + 97, + 116, + 105, + 101, + 111, + 98, + 106, + 101, + 99, + 116, + 116, + 121, + 112, + 101, + 110, + 92, + 47, + 54, + 99, + 97, + 98, + 55, + 52, + 50, + 48, + 45, + 54, + 99, + 100, + 97, + 45, + 52, + 57, + 99, + 57, + 45, + 56, + 51, + 49, + 51, + 45, + 55, + 52, + 54, + 52, + 57, + 52, + 55, + 97, + 55, + 52, + 97, + 51, + 34, + 44, + 34, + 108, + 111, + 99, + 107, + 101, + 100, + 34, + 58, + 102, + 97, + 108, + 115, + 101, + 44, + 34, + 114, + 101, + 103, + 105, + 115, + 116, + 114, + 97, + 116, + 105, + 101, + 100, + 97, + 116, + 117, + 109, + 34, + 58, + 34, + 50, + 48, + 50, + 54, + 45, + 48, + 51, + 45, + 49, + 48, + 84, + 49, + 50, + 58, + 49, + 57, + 58, + 49, + 54, + 43, + 48, + 48, + 58, + 48, + 48, + 34, + 44, + 34, + 105, + 110, + 100, + 105, + 99, + 97, + 116, + 105, + 101, + 71, + 101, + 98, + 114, + 117, + 105, + 107, + 115, + 114, + 101, + 99, + 104, + 116, + 34, + 58, + 110, + 117, + 108, + 108, + 125 + ] + }, + "cookie": [], + "responseTime": 115, + "responseSize": 942 + }, + "id": "98e2897f-fcc9-40fb-9327-a839f5ba15e1", + "assertions": [ + { + "assertion": "Afsluiten Zaak betekent Informatieobject.indicatieGebruiksrecht gezet voor alle gerelateerde objecten", + "skipped": false, + "error": { + "name": "AssertionError", + "index": 0, + "test": "Afsluiten Zaak betekent Informatieobject.indicatieGebruiksrecht gezet voor alle gerelateerde objecten", + "message": "expected null to not equal null", + "stack": "AssertionError: expected null to not equal null\n at Object.eval sandbox-script.js:1:78)" + } + } + ] + }, + { + "cursor": { + "ref": "20f121b4-02d1-45c0-beed-04e40063f520", + "length": 313, + "cycles": 1, + "position": 78, + "iteration": 0, + "httpRequestId": "e0f8e169-103d-415b-97be-67bcd65c9b93" + }, + "item": { + "id": "09252b82-893e-4608-9045-a602e48e30ab", + "name": "set restricted token", + "request": { + "url": { + "path": [ + "catalogussen" + ], + "host": [ + "{{ztc_url}}" + ], + "query": [], + "variable": [] + }, + "method": "GET" + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "3b9c584b-f1a5-4184-9ce9-4975f64a31cb", + "type": "text/javascript", + "packages": {}, + "exec": [ + "pm.environment.set(\"jwt_token\", pm.environment.get(\"jwt-limited\"));", + " pm.environment.set(\"_original_client_id\", pm.environment.get(\"client_id\"));", + " pm.environment.set(\"_original_secret\", pm.environment.get(\"secret\"));", + " pm.environment.set(\"client_id\", pm.environment.get(\"client_id_limited\"));", + " pm.environment.set(\"secret\", pm.environment.get(\"secret_limited\"));", + " pm.environment.set(\"client_id\", pm.environment.get(\"client_id_limited\"));", + " pm.environment.set(\"secret\", pm.environment.get(\"secret_limited\"));" + ], + "_lastExecutionId": "512a7852-60c1-48ba-b558-3a90562fd479" + } + } + ] + }, + "request": { + "url": { + "protocol": "http", + "port": "8080", + "path": [ + "index.php", + "apps", + "procest", + "api", + "zgw", + "catalogi", + "v1", + "catalogussen" + ], + "host": [ + "localhost" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Authorization", + "value": "Bearer eyJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJwcm9jZXN0LWFkbWluIiwiY2xpZW50X2lkIjoicHJvY2VzdC1hZG1pbiIsImlhdCI6IjE3NzMxNDUxNjAiLCJ1c2VyX2lkIjoicHJvY2VzdC1hZG1pbiIsInVzZXJfcmVwcmVzZW50YXRpb24iOiIifQ.wgfcTAzs6TWyfpLQSefxRjxfBMxbUfkvPgB67C7-GI4", + "system": true + }, + { + "key": "User-Agent", + "value": "PostmanRuntime/7.39.1", + "system": true + }, + { + "key": "Accept", + "value": "*/*", + "system": true + }, + { + "key": "Cache-Control", + "value": "no-cache", + "system": true + }, + { + "key": "Postman-Token", + "value": "49d243d8-5727-4177-ab88-a1555471105b", + "system": true + }, + { + "key": "Host", + "value": "localhost:8080", + "system": true + }, + { + "key": "Accept-Encoding", + "value": "gzip, deflate, br", + "system": true + }, + { + "key": "Connection", + "value": "keep-alive", + "system": true + }, + { + "key": "Cookie", + "value": "ocvp3112b4wg=8511b428892fcd3c9ba1046c9dd0471d; oc_sessionPassphrase=LBNdKxRzA0iqoULIruNxDDh2BK3O%2BrCIU8aUmiUcOFvy5Xw1YfjwQNlmBW2IkGwJYtxXh9%2BwDN6vYuGNX07tXzkBtjQJUWTGdzf8AIOUIVxVx5DfyWAQZ7nmYmQv6XSE; nc_sameSiteCookielax=true; nc_sameSiteCookiestrict=true", + "system": true + } + ], + "method": "GET", + "auth": { + "type": "jwt", + "jwt": [ + { + "type": "string", + "value": "{\r\n \"iss\": \"procest-admin\",\r\n \"client_id\": \"procest-admin\",\r\n \"iat\": \"1773145160\",\r\n \"user_id\": \"procest-admin\",\r\n \"user_representation\": \"\"\r\n}", + "key": "payload" + }, + { + "type": "string", + "value": "procest-admin-secret-key-for-testing", + "key": "secret" + }, + { + "type": "string", + "value": "HS256", + "key": "algorithm" + }, + { + "type": "boolean", + "value": false, + "key": "isSecretBase64Encoded" + }, + { + "type": "string", + "value": "header", + "key": "addTokenTo" + }, + { + "type": "string", + "value": "Bearer", + "key": "headerPrefix" + }, + { + "type": "string", + "value": "token", + "key": "queryParamKey" + }, + { + "type": "string", + "value": "{}", + "key": "header" + } + ] + } + }, + "response": { + "id": "f086ca5c-8f8a-480d-815a-8abccb08fd6e", + "status": "OK", + "code": 200, + "header": [ + { + "key": "Date", + "value": "Tue, 10 Mar 2026 12:19:19 GMT" + }, + { + "key": "Server", + "value": "Apache/2.4.66 (Debian)" + }, + { + "key": "X-Content-Type-Options", + "value": "nosniff" + }, + { + "key": "X-Frame-Options", + "value": "SAMEORIGIN" + }, + { + "key": "X-Permitted-Cross-Domain-Policies", + "value": "none" + }, + { + "key": "X-Robots-Tag", + "value": "noindex, nofollow" + }, + { + "key": "Referrer-Policy", + "value": "no-referrer" + }, + { + "key": "X-Powered-By", + "value": "PHP/8.3.30" + }, + { + "key": "Content-Security-Policy", + "value": "default-src 'none';base-uri 'none';manifest-src 'self';frame-ancestors 'none'" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=8511b428892fcd3c9ba1046c9dd0471d; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=8511b428892fcd3c9ba1046c9dd0471d; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=8511b428892fcd3c9ba1046c9dd0471d; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=8511b428892fcd3c9ba1046c9dd0471d; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=8511b428892fcd3c9ba1046c9dd0471d; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=a482be756b84f8ec4ed2f596bf202061; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=a482be756b84f8ec4ed2f596bf202061; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=a482be756b84f8ec4ed2f596bf202061; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "X-Request-Id", + "value": "6T8FUyCyziMA4wCnM2tR" + }, + { + "key": "Cache-Control", + "value": "no-cache, no-store, must-revalidate" + }, + { + "key": "Feature-Policy", + "value": "autoplay 'none';camera 'none';fullscreen 'none';geolocation 'none';microphone 'none';payment 'none'" + }, + { + "key": "X-User-Id", + "value": "admin" + }, + { + "key": "Content-Encoding", + "value": "gzip" + }, + { + "key": "Content-Length", + "value": "919" + }, + { + "key": "Keep-Alive", + "value": "timeout=5, max=72" + }, + { + "key": "Connection", + "value": "Keep-Alive" + }, + { + "key": "Content-Type", + "value": "application/json; charset=utf-8" + } + ], + "stream": { + "type": "Buffer", + "data": [ + 123, + 34, + 99, + 111, + 117, + 110, + 116, + 34, + 58, + 50, + 49, + 50, + 44, + 34, + 110, + 101, + 120, + 116, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 105, + 92, + 47, + 118, + 49, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 117, + 115, + 115, + 101, + 110, + 63, + 112, + 97, + 103, + 101, + 61, + 50, + 34, + 44, + 34, + 112, + 114, + 101, + 118, + 105, + 111, + 117, + 115, + 34, + 58, + 110, + 117, + 108, + 108, + 44, + 34, + 114, + 101, + 115, + 117, + 108, + 116, + 115, + 34, + 58, + 91, + 123, + 34, + 117, + 114, + 108, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 105, + 92, + 47, + 118, + 49, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 117, + 115, + 115, + 101, + 110, + 92, + 47, + 100, + 51, + 100, + 101, + 101, + 56, + 101, + 98, + 45, + 56, + 100, + 50, + 56, + 45, + 52, + 50, + 50, + 101, + 45, + 98, + 48, + 97, + 102, + 45, + 97, + 57, + 57, + 57, + 101, + 100, + 57, + 55, + 50, + 50, + 51, + 102, + 34, + 44, + 34, + 117, + 117, + 105, + 100, + 34, + 58, + 34, + 100, + 51, + 100, + 101, + 101, + 56, + 101, + 98, + 45, + 56, + 100, + 50, + 56, + 45, + 52, + 50, + 50, + 101, + 45, + 98, + 48, + 97, + 102, + 45, + 97, + 57, + 57, + 57, + 101, + 100, + 57, + 55, + 50, + 50, + 51, + 102, + 34, + 44, + 34, + 100, + 111, + 109, + 101, + 105, + 110, + 34, + 58, + 34, + 65, + 65, + 66, + 34, + 44, + 34, + 114, + 115, + 105, + 110, + 34, + 58, + 34, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 34, + 44, + 34, + 99, + 111, + 110, + 116, + 97, + 99, + 116, + 112, + 101, + 114, + 115, + 111, + 111, + 110, + 66, + 101, + 104, + 101, + 101, + 114, + 78, + 97, + 97, + 109, + 34, + 58, + 34, + 84, + 101, + 115, + 116, + 32, + 80, + 101, + 114, + 115, + 111, + 111, + 110, + 34, + 44, + 34, + 99, + 111, + 110, + 116, + 97, + 99, + 116, + 112, + 101, + 114, + 115, + 111, + 111, + 110, + 66, + 101, + 104, + 101, + 101, + 114, + 84, + 101, + 108, + 101, + 102, + 111, + 111, + 110, + 110, + 117, + 109, + 109, + 101, + 114, + 34, + 58, + 34, + 34, + 44, + 34, + 99, + 111, + 110, + 116, + 97, + 99, + 116, + 112, + 101, + 114, + 115, + 111, + 111, + 110, + 66, + 101, + 104, + 101, + 101, + 114, + 69, + 109, + 97, + 105, + 108, + 97, + 100, + 114, + 101, + 115, + 34, + 58, + 34, + 34, + 44, + 34, + 122, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 98, + 101, + 115, + 108, + 117, + 105, + 116, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 105, + 110, + 102, + 111, + 114, + 109, + 97, + 116, + 105, + 101, + 111, + 98, + 106, + 101, + 99, + 116, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 125, + 44, + 123, + 34, + 117, + 114, + 108, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 105, + 92, + 47, + 118, + 49, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 117, + 115, + 115, + 101, + 110, + 92, + 47, + 57, + 51, + 51, + 52, + 102, + 49, + 49, + 48, + 45, + 98, + 97, + 48, + 98, + 45, + 52, + 50, + 49, + 55, + 45, + 56, + 57, + 48, + 51, + 45, + 98, + 97, + 55, + 49, + 52, + 48, + 55, + 102, + 48, + 97, + 50, + 50, + 34, + 44, + 34, + 117, + 117, + 105, + 100, + 34, + 58, + 34, + 57, + 51, + 51, + 52, + 102, + 49, + 49, + 48, + 45, + 98, + 97, + 48, + 98, + 45, + 52, + 50, + 49, + 55, + 45, + 56, + 57, + 48, + 51, + 45, + 98, + 97, + 55, + 49, + 52, + 48, + 55, + 102, + 48, + 97, + 50, + 50, + 34, + 44, + 34, + 100, + 111, + 109, + 101, + 105, + 110, + 34, + 58, + 34, + 90, + 71, + 87, + 84, + 34, + 44, + 34, + 114, + 115, + 105, + 110, + 34, + 58, + 34, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 34, + 44, + 34, + 99, + 111, + 110, + 116, + 97, + 99, + 116, + 112, + 101, + 114, + 115, + 111, + 111, + 110, + 66, + 101, + 104, + 101, + 101, + 114, + 78, + 97, + 97, + 109, + 34, + 58, + 34, + 84, + 101, + 115, + 116, + 32, + 80, + 101, + 114, + 115, + 111, + 111, + 110, + 34, + 44, + 34, + 99, + 111, + 110, + 116, + 97, + 99, + 116, + 112, + 101, + 114, + 115, + 111, + 111, + 110, + 66, + 101, + 104, + 101, + 101, + 114, + 84, + 101, + 108, + 101, + 102, + 111, + 111, + 110, + 110, + 117, + 109, + 109, + 101, + 114, + 34, + 58, + 34, + 34, + 44, + 34, + 99, + 111, + 110, + 116, + 97, + 99, + 116, + 112, + 101, + 114, + 115, + 111, + 111, + 110, + 66, + 101, + 104, + 101, + 101, + 114, + 69, + 109, + 97, + 105, + 108, + 97, + 100, + 114, + 101, + 115, + 34, + 58, + 34, + 34, + 44, + 34, + 122, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 98, + 101, + 115, + 108, + 117, + 105, + 116, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 105, + 110, + 102, + 111, + 114, + 109, + 97, + 116, + 105, + 101, + 111, + 98, + 106, + 101, + 99, + 116, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 125, + 44, + 123, + 34, + 117, + 114, + 108, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 105, + 92, + 47, + 118, + 49, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 117, + 115, + 115, + 101, + 110, + 92, + 47, + 99, + 57, + 101, + 56, + 97, + 99, + 56, + 56, + 45, + 52, + 55, + 53, + 55, + 45, + 52, + 101, + 101, + 49, + 45, + 97, + 56, + 102, + 48, + 45, + 57, + 55, + 51, + 98, + 51, + 101, + 97, + 100, + 57, + 52, + 55, + 100, + 34, + 44, + 34, + 117, + 117, + 105, + 100, + 34, + 58, + 34, + 99, + 57, + 101, + 56, + 97, + 99, + 56, + 56, + 45, + 52, + 55, + 53, + 55, + 45, + 52, + 101, + 101, + 49, + 45, + 97, + 56, + 102, + 48, + 45, + 57, + 55, + 51, + 98, + 51, + 101, + 97, + 100, + 57, + 52, + 55, + 100, + 34, + 44, + 34, + 100, + 111, + 109, + 101, + 105, + 110, + 34, + 58, + 34, + 65, + 65, + 66, + 34, + 44, + 34, + 114, + 115, + 105, + 110, + 34, + 58, + 34, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 34, + 44, + 34, + 99, + 111, + 110, + 116, + 97, + 99, + 116, + 112, + 101, + 114, + 115, + 111, + 111, + 110, + 66, + 101, + 104, + 101, + 101, + 114, + 78, + 97, + 97, + 109, + 34, + 58, + 34, + 84, + 101, + 115, + 116, + 32, + 80, + 101, + 114, + 115, + 111, + 111, + 110, + 34, + 44, + 34, + 99, + 111, + 110, + 116, + 97, + 99, + 116, + 112, + 101, + 114, + 115, + 111, + 111, + 110, + 66, + 101, + 104, + 101, + 101, + 114, + 84, + 101, + 108, + 101, + 102, + 111, + 111, + 110, + 110, + 117, + 109, + 109, + 101, + 114, + 34, + 58, + 34, + 34, + 44, + 34, + 99, + 111, + 110, + 116, + 97, + 99, + 116, + 112, + 101, + 114, + 115, + 111, + 111, + 110, + 66, + 101, + 104, + 101, + 101, + 114, + 69, + 109, + 97, + 105, + 108, + 97, + 100, + 114, + 101, + 115, + 34, + 58, + 34, + 34, + 44, + 34, + 122, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 98, + 101, + 115, + 108, + 117, + 105, + 116, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 105, + 110, + 102, + 111, + 114, + 109, + 97, + 116, + 105, + 101, + 111, + 98, + 106, + 101, + 99, + 116, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 125, + 44, + 123, + 34, + 117, + 114, + 108, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 105, + 92, + 47, + 118, + 49, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 117, + 115, + 115, + 101, + 110, + 92, + 47, + 100, + 54, + 100, + 51, + 52, + 57, + 52, + 50, + 45, + 50, + 49, + 51, + 53, + 45, + 52, + 50, + 97, + 51, + 45, + 97, + 57, + 55, + 102, + 45, + 51, + 52, + 102, + 55, + 57, + 99, + 54, + 55, + 54, + 99, + 57, + 55, + 34, + 44, + 34, + 117, + 117, + 105, + 100, + 34, + 58, + 34, + 100, + 54, + 100, + 51, + 52, + 57, + 52, + 50, + 45, + 50, + 49, + 51, + 53, + 45, + 52, + 50, + 97, + 51, + 45, + 97, + 57, + 55, + 102, + 45, + 51, + 52, + 102, + 55, + 57, + 99, + 54, + 55, + 54, + 99, + 57, + 55, + 34, + 44, + 34, + 100, + 111, + 109, + 101, + 105, + 110, + 34, + 58, + 34, + 65, + 65, + 66, + 34, + 44, + 34, + 114, + 115, + 105, + 110, + 34, + 58, + 34, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 34, + 44, + 34, + 99, + 111, + 110, + 116, + 97, + 99, + 116, + 112, + 101, + 114, + 115, + 111, + 111, + 110, + 66, + 101, + 104, + 101, + 101, + 114, + 78, + 97, + 97, + 109, + 34, + 58, + 34, + 84, + 101, + 115, + 116, + 32, + 80, + 101, + 114, + 115, + 111, + 111, + 110, + 34, + 44, + 34, + 99, + 111, + 110, + 116, + 97, + 99, + 116, + 112, + 101, + 114, + 115, + 111, + 111, + 110, + 66, + 101, + 104, + 101, + 101, + 114, + 84, + 101, + 108, + 101, + 102, + 111, + 111, + 110, + 110, + 117, + 109, + 109, + 101, + 114, + 34, + 58, + 34, + 34, + 44, + 34, + 99, + 111, + 110, + 116, + 97, + 99, + 116, + 112, + 101, + 114, + 115, + 111, + 111, + 110, + 66, + 101, + 104, + 101, + 101, + 114, + 69, + 109, + 97, + 105, + 108, + 97, + 100, + 114, + 101, + 115, + 34, + 58, + 34, + 34, + 44, + 34, + 122, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 98, + 101, + 115, + 108, + 117, + 105, + 116, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 105, + 110, + 102, + 111, + 114, + 109, + 97, + 116, + 105, + 101, + 111, + 98, + 106, + 101, + 99, + 116, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 125, + 44, + 123, + 34, + 117, + 114, + 108, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 105, + 92, + 47, + 118, + 49, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 117, + 115, + 115, + 101, + 110, + 92, + 47, + 55, + 99, + 99, + 99, + 101, + 55, + 97, + 57, + 45, + 101, + 52, + 98, + 57, + 45, + 52, + 56, + 101, + 51, + 45, + 56, + 97, + 53, + 51, + 45, + 99, + 97, + 102, + 56, + 48, + 102, + 54, + 97, + 55, + 98, + 99, + 55, + 34, + 44, + 34, + 117, + 117, + 105, + 100, + 34, + 58, + 34, + 55, + 99, + 99, + 99, + 101, + 55, + 97, + 57, + 45, + 101, + 52, + 98, + 57, + 45, + 52, + 56, + 101, + 51, + 45, + 56, + 97, + 53, + 51, + 45, + 99, + 97, + 102, + 56, + 48, + 102, + 54, + 97, + 55, + 98, + 99, + 55, + 34, + 44, + 34, + 100, + 111, + 109, + 101, + 105, + 110, + 34, + 58, + 34, + 65, + 65, + 66, + 34, + 44, + 34, + 114, + 115, + 105, + 110, + 34, + 58, + 34, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 34, + 44, + 34, + 99, + 111, + 110, + 116, + 97, + 99, + 116, + 112, + 101, + 114, + 115, + 111, + 111, + 110, + 66, + 101, + 104, + 101, + 101, + 114, + 78, + 97, + 97, + 109, + 34, + 58, + 34, + 84, + 101, + 115, + 116, + 32, + 80, + 101, + 114, + 115, + 111, + 111, + 110, + 34, + 44, + 34, + 99, + 111, + 110, + 116, + 97, + 99, + 116, + 112, + 101, + 114, + 115, + 111, + 111, + 110, + 66, + 101, + 104, + 101, + 101, + 114, + 84, + 101, + 108, + 101, + 102, + 111, + 111, + 110, + 110, + 117, + 109, + 109, + 101, + 114, + 34, + 58, + 34, + 34, + 44, + 34, + 99, + 111, + 110, + 116, + 97, + 99, + 116, + 112, + 101, + 114, + 115, + 111, + 111, + 110, + 66, + 101, + 104, + 101, + 101, + 114, + 69, + 109, + 97, + 105, + 108, + 97, + 100, + 114, + 101, + 115, + 34, + 58, + 34, + 34, + 44, + 34, + 122, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 98, + 101, + 115, + 108, + 117, + 105, + 116, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 105, + 110, + 102, + 111, + 114, + 109, + 97, + 116, + 105, + 101, + 111, + 98, + 106, + 101, + 99, + 116, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 125, + 44, + 123, + 34, + 117, + 114, + 108, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 105, + 92, + 47, + 118, + 49, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 117, + 115, + 115, + 101, + 110, + 92, + 47, + 57, + 55, + 98, + 54, + 99, + 50, + 102, + 57, + 45, + 101, + 53, + 51, + 51, + 45, + 52, + 100, + 101, + 57, + 45, + 98, + 100, + 51, + 51, + 45, + 51, + 57, + 98, + 51, + 97, + 49, + 57, + 99, + 53, + 56, + 97, + 50, + 34, + 44, + 34, + 117, + 117, + 105, + 100, + 34, + 58, + 34, + 57, + 55, + 98, + 54, + 99, + 50, + 102, + 57, + 45, + 101, + 53, + 51, + 51, + 45, + 52, + 100, + 101, + 57, + 45, + 98, + 100, + 51, + 51, + 45, + 51, + 57, + 98, + 51, + 97, + 49, + 57, + 99, + 53, + 56, + 97, + 50, + 34, + 44, + 34, + 100, + 111, + 109, + 101, + 105, + 110, + 34, + 58, + 34, + 65, + 65, + 66, + 34, + 44, + 34, + 114, + 115, + 105, + 110, + 34, + 58, + 34, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 34, + 44, + 34, + 99, + 111, + 110, + 116, + 97, + 99, + 116, + 112, + 101, + 114, + 115, + 111, + 111, + 110, + 66, + 101, + 104, + 101, + 101, + 114, + 78, + 97, + 97, + 109, + 34, + 58, + 34, + 84, + 101, + 115, + 116, + 32, + 80, + 101, + 114, + 115, + 111, + 111, + 110, + 34, + 44, + 34, + 99, + 111, + 110, + 116, + 97, + 99, + 116, + 112, + 101, + 114, + 115, + 111, + 111, + 110, + 66, + 101, + 104, + 101, + 101, + 114, + 84, + 101, + 108, + 101, + 102, + 111, + 111, + 110, + 110, + 117, + 109, + 109, + 101, + 114, + 34, + 58, + 34, + 34, + 44, + 34, + 99, + 111, + 110, + 116, + 97, + 99, + 116, + 112, + 101, + 114, + 115, + 111, + 111, + 110, + 66, + 101, + 104, + 101, + 101, + 114, + 69, + 109, + 97, + 105, + 108, + 97, + 100, + 114, + 101, + 115, + 34, + 58, + 34, + 34, + 44, + 34, + 122, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 98, + 101, + 115, + 108, + 117, + 105, + 116, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 105, + 110, + 102, + 111, + 114, + 109, + 97, + 116, + 105, + 101, + 111, + 98, + 106, + 101, + 99, + 116, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 125, + 44, + 123, + 34, + 117, + 114, + 108, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 105, + 92, + 47, + 118, + 49, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 117, + 115, + 115, + 101, + 110, + 92, + 47, + 52, + 55, + 53, + 55, + 101, + 57, + 98, + 54, + 45, + 51, + 102, + 57, + 101, + 45, + 52, + 51, + 50, + 102, + 45, + 97, + 100, + 56, + 49, + 45, + 99, + 48, + 53, + 48, + 51, + 50, + 102, + 54, + 53, + 100, + 57, + 53, + 34, + 44, + 34, + 117, + 117, + 105, + 100, + 34, + 58, + 34, + 52, + 55, + 53, + 55, + 101, + 57, + 98, + 54, + 45, + 51, + 102, + 57, + 101, + 45, + 52, + 51, + 50, + 102, + 45, + 97, + 100, + 56, + 49, + 45, + 99, + 48, + 53, + 48, + 51, + 50, + 102, + 54, + 53, + 100, + 57, + 53, + 34, + 44, + 34, + 100, + 111, + 109, + 101, + 105, + 110, + 34, + 58, + 34, + 65, + 65, + 66, + 34, + 44, + 34, + 114, + 115, + 105, + 110, + 34, + 58, + 34, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 34, + 44, + 34, + 99, + 111, + 110, + 116, + 97, + 99, + 116, + 112, + 101, + 114, + 115, + 111, + 111, + 110, + 66, + 101, + 104, + 101, + 101, + 114, + 78, + 97, + 97, + 109, + 34, + 58, + 34, + 84, + 101, + 115, + 116, + 32, + 80, + 101, + 114, + 115, + 111, + 111, + 110, + 34, + 44, + 34, + 99, + 111, + 110, + 116, + 97, + 99, + 116, + 112, + 101, + 114, + 115, + 111, + 111, + 110, + 66, + 101, + 104, + 101, + 101, + 114, + 84, + 101, + 108, + 101, + 102, + 111, + 111, + 110, + 110, + 117, + 109, + 109, + 101, + 114, + 34, + 58, + 34, + 34, + 44, + 34, + 99, + 111, + 110, + 116, + 97, + 99, + 116, + 112, + 101, + 114, + 115, + 111, + 111, + 110, + 66, + 101, + 104, + 101, + 101, + 114, + 69, + 109, + 97, + 105, + 108, + 97, + 100, + 114, + 101, + 115, + 34, + 58, + 34, + 34, + 44, + 34, + 122, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 98, + 101, + 115, + 108, + 117, + 105, + 116, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 105, + 110, + 102, + 111, + 114, + 109, + 97, + 116, + 105, + 101, + 111, + 98, + 106, + 101, + 99, + 116, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 125, + 44, + 123, + 34, + 117, + 114, + 108, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 105, + 92, + 47, + 118, + 49, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 117, + 115, + 115, + 101, + 110, + 92, + 47, + 52, + 57, + 51, + 54, + 97, + 54, + 102, + 98, + 45, + 55, + 97, + 56, + 54, + 45, + 52, + 48, + 57, + 98, + 45, + 57, + 52, + 55, + 51, + 45, + 51, + 99, + 52, + 99, + 56, + 57, + 53, + 98, + 56, + 101, + 56, + 57, + 34, + 44, + 34, + 117, + 117, + 105, + 100, + 34, + 58, + 34, + 52, + 57, + 51, + 54, + 97, + 54, + 102, + 98, + 45, + 55, + 97, + 56, + 54, + 45, + 52, + 48, + 57, + 98, + 45, + 57, + 52, + 55, + 51, + 45, + 51, + 99, + 52, + 99, + 56, + 57, + 53, + 98, + 56, + 101, + 56, + 57, + 34, + 44, + 34, + 100, + 111, + 109, + 101, + 105, + 110, + 34, + 58, + 34, + 90, + 71, + 87, + 84, + 34, + 44, + 34, + 114, + 115, + 105, + 110, + 34, + 58, + 34, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 34, + 44, + 34, + 99, + 111, + 110, + 116, + 97, + 99, + 116, + 112, + 101, + 114, + 115, + 111, + 111, + 110, + 66, + 101, + 104, + 101, + 101, + 114, + 78, + 97, + 97, + 109, + 34, + 58, + 34, + 84, + 101, + 115, + 116, + 32, + 80, + 101, + 114, + 115, + 111, + 111, + 110, + 34, + 44, + 34, + 99, + 111, + 110, + 116, + 97, + 99, + 116, + 112, + 101, + 114, + 115, + 111, + 111, + 110, + 66, + 101, + 104, + 101, + 101, + 114, + 84, + 101, + 108, + 101, + 102, + 111, + 111, + 110, + 110, + 117, + 109, + 109, + 101, + 114, + 34, + 58, + 34, + 34, + 44, + 34, + 99, + 111, + 110, + 116, + 97, + 99, + 116, + 112, + 101, + 114, + 115, + 111, + 111, + 110, + 66, + 101, + 104, + 101, + 101, + 114, + 69, + 109, + 97, + 105, + 108, + 97, + 100, + 114, + 101, + 115, + 34, + 58, + 34, + 34, + 44, + 34, + 122, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 98, + 101, + 115, + 108, + 117, + 105, + 116, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 105, + 110, + 102, + 111, + 114, + 109, + 97, + 116, + 105, + 101, + 111, + 98, + 106, + 101, + 99, + 116, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 125, + 44, + 123, + 34, + 117, + 114, + 108, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 105, + 92, + 47, + 118, + 49, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 117, + 115, + 115, + 101, + 110, + 92, + 47, + 55, + 53, + 101, + 51, + 100, + 98, + 57, + 56, + 45, + 99, + 98, + 57, + 101, + 45, + 52, + 99, + 48, + 57, + 45, + 57, + 48, + 49, + 48, + 45, + 99, + 48, + 53, + 52, + 102, + 53, + 97, + 52, + 98, + 98, + 57, + 99, + 34, + 44, + 34, + 117, + 117, + 105, + 100, + 34, + 58, + 34, + 55, + 53, + 101, + 51, + 100, + 98, + 57, + 56, + 45, + 99, + 98, + 57, + 101, + 45, + 52, + 99, + 48, + 57, + 45, + 57, + 48, + 49, + 48, + 45, + 99, + 48, + 53, + 52, + 102, + 53, + 97, + 52, + 98, + 98, + 57, + 99, + 34, + 44, + 34, + 100, + 111, + 109, + 101, + 105, + 110, + 34, + 58, + 34, + 65, + 65, + 66, + 34, + 44, + 34, + 114, + 115, + 105, + 110, + 34, + 58, + 34, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 34, + 44, + 34, + 99, + 111, + 110, + 116, + 97, + 99, + 116, + 112, + 101, + 114, + 115, + 111, + 111, + 110, + 66, + 101, + 104, + 101, + 101, + 114, + 78, + 97, + 97, + 109, + 34, + 58, + 34, + 84, + 101, + 115, + 116, + 32, + 80, + 101, + 114, + 115, + 111, + 111, + 110, + 34, + 44, + 34, + 99, + 111, + 110, + 116, + 97, + 99, + 116, + 112, + 101, + 114, + 115, + 111, + 111, + 110, + 66, + 101, + 104, + 101, + 101, + 114, + 84, + 101, + 108, + 101, + 102, + 111, + 111, + 110, + 110, + 117, + 109, + 109, + 101, + 114, + 34, + 58, + 34, + 34, + 44, + 34, + 99, + 111, + 110, + 116, + 97, + 99, + 116, + 112, + 101, + 114, + 115, + 111, + 111, + 110, + 66, + 101, + 104, + 101, + 101, + 114, + 69, + 109, + 97, + 105, + 108, + 97, + 100, + 114, + 101, + 115, + 34, + 58, + 34, + 34, + 44, + 34, + 122, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 98, + 101, + 115, + 108, + 117, + 105, + 116, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 105, + 110, + 102, + 111, + 114, + 109, + 97, + 116, + 105, + 101, + 111, + 98, + 106, + 101, + 99, + 116, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 125, + 44, + 123, + 34, + 117, + 114, + 108, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 105, + 92, + 47, + 118, + 49, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 117, + 115, + 115, + 101, + 110, + 92, + 47, + 98, + 100, + 49, + 51, + 98, + 57, + 52, + 56, + 45, + 52, + 100, + 97, + 98, + 45, + 52, + 56, + 55, + 98, + 45, + 57, + 97, + 48, + 56, + 45, + 51, + 100, + 52, + 53, + 100, + 54, + 97, + 54, + 49, + 54, + 99, + 100, + 34, + 44, + 34, + 117, + 117, + 105, + 100, + 34, + 58, + 34, + 98, + 100, + 49, + 51, + 98, + 57, + 52, + 56, + 45, + 52, + 100, + 97, + 98, + 45, + 52, + 56, + 55, + 98, + 45, + 57, + 97, + 48, + 56, + 45, + 51, + 100, + 52, + 53, + 100, + 54, + 97, + 54, + 49, + 54, + 99, + 100, + 34, + 44, + 34, + 100, + 111, + 109, + 101, + 105, + 110, + 34, + 58, + 34, + 90, + 71, + 87, + 84, + 34, + 44, + 34, + 114, + 115, + 105, + 110, + 34, + 58, + 34, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 34, + 44, + 34, + 99, + 111, + 110, + 116, + 97, + 99, + 116, + 112, + 101, + 114, + 115, + 111, + 111, + 110, + 66, + 101, + 104, + 101, + 101, + 114, + 78, + 97, + 97, + 109, + 34, + 58, + 34, + 84, + 101, + 115, + 116, + 32, + 80, + 101, + 114, + 115, + 111, + 111, + 110, + 34, + 44, + 34, + 99, + 111, + 110, + 116, + 97, + 99, + 116, + 112, + 101, + 114, + 115, + 111, + 111, + 110, + 66, + 101, + 104, + 101, + 101, + 114, + 84, + 101, + 108, + 101, + 102, + 111, + 111, + 110, + 110, + 117, + 109, + 109, + 101, + 114, + 34, + 58, + 34, + 34, + 44, + 34, + 99, + 111, + 110, + 116, + 97, + 99, + 116, + 112, + 101, + 114, + 115, + 111, + 111, + 110, + 66, + 101, + 104, + 101, + 101, + 114, + 69, + 109, + 97, + 105, + 108, + 97, + 100, + 114, + 101, + 115, + 34, + 58, + 34, + 34, + 44, + 34, + 122, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 98, + 101, + 115, + 108, + 117, + 105, + 116, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 105, + 110, + 102, + 111, + 114, + 109, + 97, + 116, + 105, + 101, + 111, + 98, + 106, + 101, + 99, + 116, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 125, + 44, + 123, + 34, + 117, + 114, + 108, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 105, + 92, + 47, + 118, + 49, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 117, + 115, + 115, + 101, + 110, + 92, + 47, + 56, + 53, + 101, + 100, + 100, + 100, + 98, + 101, + 45, + 49, + 57, + 98, + 55, + 45, + 52, + 101, + 56, + 54, + 45, + 98, + 101, + 54, + 57, + 45, + 53, + 98, + 101, + 99, + 55, + 99, + 102, + 54, + 56, + 53, + 55, + 97, + 34, + 44, + 34, + 117, + 117, + 105, + 100, + 34, + 58, + 34, + 56, + 53, + 101, + 100, + 100, + 100, + 98, + 101, + 45, + 49, + 57, + 98, + 55, + 45, + 52, + 101, + 56, + 54, + 45, + 98, + 101, + 54, + 57, + 45, + 53, + 98, + 101, + 99, + 55, + 99, + 102, + 54, + 56, + 53, + 55, + 97, + 34, + 44, + 34, + 100, + 111, + 109, + 101, + 105, + 110, + 34, + 58, + 34, + 65, + 65, + 66, + 34, + 44, + 34, + 114, + 115, + 105, + 110, + 34, + 58, + 34, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 34, + 44, + 34, + 99, + 111, + 110, + 116, + 97, + 99, + 116, + 112, + 101, + 114, + 115, + 111, + 111, + 110, + 66, + 101, + 104, + 101, + 101, + 114, + 78, + 97, + 97, + 109, + 34, + 58, + 34, + 84, + 101, + 115, + 116, + 32, + 80, + 101, + 114, + 115, + 111, + 111, + 110, + 34, + 44, + 34, + 99, + 111, + 110, + 116, + 97, + 99, + 116, + 112, + 101, + 114, + 115, + 111, + 111, + 110, + 66, + 101, + 104, + 101, + 101, + 114, + 84, + 101, + 108, + 101, + 102, + 111, + 111, + 110, + 110, + 117, + 109, + 109, + 101, + 114, + 34, + 58, + 34, + 34, + 44, + 34, + 99, + 111, + 110, + 116, + 97, + 99, + 116, + 112, + 101, + 114, + 115, + 111, + 111, + 110, + 66, + 101, + 104, + 101, + 101, + 114, + 69, + 109, + 97, + 105, + 108, + 97, + 100, + 114, + 101, + 115, + 34, + 58, + 34, + 34, + 44, + 34, + 122, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 98, + 101, + 115, + 108, + 117, + 105, + 116, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 105, + 110, + 102, + 111, + 114, + 109, + 97, + 116, + 105, + 101, + 111, + 98, + 106, + 101, + 99, + 116, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 125, + 44, + 123, + 34, + 117, + 114, + 108, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 105, + 92, + 47, + 118, + 49, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 117, + 115, + 115, + 101, + 110, + 92, + 47, + 51, + 55, + 97, + 48, + 99, + 52, + 53, + 99, + 45, + 55, + 98, + 101, + 57, + 45, + 52, + 49, + 102, + 50, + 45, + 98, + 102, + 57, + 55, + 45, + 57, + 48, + 51, + 52, + 49, + 97, + 56, + 50, + 49, + 51, + 50, + 55, + 34, + 44, + 34, + 117, + 117, + 105, + 100, + 34, + 58, + 34, + 51, + 55, + 97, + 48, + 99, + 52, + 53, + 99, + 45, + 55, + 98, + 101, + 57, + 45, + 52, + 49, + 102, + 50, + 45, + 98, + 102, + 57, + 55, + 45, + 57, + 48, + 51, + 52, + 49, + 97, + 56, + 50, + 49, + 51, + 50, + 55, + 34, + 44, + 34, + 100, + 111, + 109, + 101, + 105, + 110, + 34, + 58, + 34, + 90, + 71, + 87, + 84, + 34, + 44, + 34, + 114, + 115, + 105, + 110, + 34, + 58, + 34, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 34, + 44, + 34, + 99, + 111, + 110, + 116, + 97, + 99, + 116, + 112, + 101, + 114, + 115, + 111, + 111, + 110, + 66, + 101, + 104, + 101, + 101, + 114, + 78, + 97, + 97, + 109, + 34, + 58, + 34, + 84, + 101, + 115, + 116, + 32, + 80, + 101, + 114, + 115, + 111, + 111, + 110, + 34, + 44, + 34, + 99, + 111, + 110, + 116, + 97, + 99, + 116, + 112, + 101, + 114, + 115, + 111, + 111, + 110, + 66, + 101, + 104, + 101, + 101, + 114, + 84, + 101, + 108, + 101, + 102, + 111, + 111, + 110, + 110, + 117, + 109, + 109, + 101, + 114, + 34, + 58, + 34, + 34, + 44, + 34, + 99, + 111, + 110, + 116, + 97, + 99, + 116, + 112, + 101, + 114, + 115, + 111, + 111, + 110, + 66, + 101, + 104, + 101, + 101, + 114, + 69, + 109, + 97, + 105, + 108, + 97, + 100, + 114, + 101, + 115, + 34, + 58, + 34, + 34, + 44, + 34, + 122, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 98, + 101, + 115, + 108, + 117, + 105, + 116, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 105, + 110, + 102, + 111, + 114, + 109, + 97, + 116, + 105, + 101, + 111, + 98, + 106, + 101, + 99, + 116, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 125, + 44, + 123, + 34, + 117, + 114, + 108, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 105, + 92, + 47, + 118, + 49, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 117, + 115, + 115, + 101, + 110, + 92, + 47, + 55, + 98, + 57, + 100, + 48, + 100, + 53, + 57, + 45, + 51, + 50, + 97, + 101, + 45, + 52, + 98, + 53, + 98, + 45, + 57, + 101, + 50, + 52, + 45, + 53, + 101, + 55, + 52, + 102, + 99, + 49, + 101, + 55, + 56, + 102, + 56, + 34, + 44, + 34, + 117, + 117, + 105, + 100, + 34, + 58, + 34, + 55, + 98, + 57, + 100, + 48, + 100, + 53, + 57, + 45, + 51, + 50, + 97, + 101, + 45, + 52, + 98, + 53, + 98, + 45, + 57, + 101, + 50, + 52, + 45, + 53, + 101, + 55, + 52, + 102, + 99, + 49, + 101, + 55, + 56, + 102, + 56, + 34, + 44, + 34, + 100, + 111, + 109, + 101, + 105, + 110, + 34, + 58, + 34, + 65, + 65, + 66, + 34, + 44, + 34, + 114, + 115, + 105, + 110, + 34, + 58, + 34, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 34, + 44, + 34, + 99, + 111, + 110, + 116, + 97, + 99, + 116, + 112, + 101, + 114, + 115, + 111, + 111, + 110, + 66, + 101, + 104, + 101, + 101, + 114, + 78, + 97, + 97, + 109, + 34, + 58, + 34, + 84, + 101, + 115, + 116, + 32, + 80, + 101, + 114, + 115, + 111, + 111, + 110, + 34, + 44, + 34, + 99, + 111, + 110, + 116, + 97, + 99, + 116, + 112, + 101, + 114, + 115, + 111, + 111, + 110, + 66, + 101, + 104, + 101, + 101, + 114, + 84, + 101, + 108, + 101, + 102, + 111, + 111, + 110, + 110, + 117, + 109, + 109, + 101, + 114, + 34, + 58, + 34, + 34, + 44, + 34, + 99, + 111, + 110, + 116, + 97, + 99, + 116, + 112, + 101, + 114, + 115, + 111, + 111, + 110, + 66, + 101, + 104, + 101, + 101, + 114, + 69, + 109, + 97, + 105, + 108, + 97, + 100, + 114, + 101, + 115, + 34, + 58, + 34, + 34, + 44, + 34, + 122, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 98, + 101, + 115, + 108, + 117, + 105, + 116, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 105, + 110, + 102, + 111, + 114, + 109, + 97, + 116, + 105, + 101, + 111, + 98, + 106, + 101, + 99, + 116, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 125, + 44, + 123, + 34, + 117, + 114, + 108, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 105, + 92, + 47, + 118, + 49, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 117, + 115, + 115, + 101, + 110, + 92, + 47, + 48, + 101, + 53, + 49, + 55, + 99, + 97, + 53, + 45, + 56, + 57, + 49, + 98, + 45, + 52, + 53, + 97, + 57, + 45, + 98, + 56, + 50, + 101, + 45, + 101, + 57, + 56, + 48, + 57, + 54, + 57, + 101, + 57, + 57, + 50, + 100, + 34, + 44, + 34, + 117, + 117, + 105, + 100, + 34, + 58, + 34, + 48, + 101, + 53, + 49, + 55, + 99, + 97, + 53, + 45, + 56, + 57, + 49, + 98, + 45, + 52, + 53, + 97, + 57, + 45, + 98, + 56, + 50, + 101, + 45, + 101, + 57, + 56, + 48, + 57, + 54, + 57, + 101, + 57, + 57, + 50, + 100, + 34, + 44, + 34, + 100, + 111, + 109, + 101, + 105, + 110, + 34, + 58, + 34, + 90, + 71, + 87, + 84, + 34, + 44, + 34, + 114, + 115, + 105, + 110, + 34, + 58, + 34, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 34, + 44, + 34, + 99, + 111, + 110, + 116, + 97, + 99, + 116, + 112, + 101, + 114, + 115, + 111, + 111, + 110, + 66, + 101, + 104, + 101, + 101, + 114, + 78, + 97, + 97, + 109, + 34, + 58, + 34, + 84, + 101, + 115, + 116, + 32, + 80, + 101, + 114, + 115, + 111, + 111, + 110, + 34, + 44, + 34, + 99, + 111, + 110, + 116, + 97, + 99, + 116, + 112, + 101, + 114, + 115, + 111, + 111, + 110, + 66, + 101, + 104, + 101, + 101, + 114, + 84, + 101, + 108, + 101, + 102, + 111, + 111, + 110, + 110, + 117, + 109, + 109, + 101, + 114, + 34, + 58, + 34, + 34, + 44, + 34, + 99, + 111, + 110, + 116, + 97, + 99, + 116, + 112, + 101, + 114, + 115, + 111, + 111, + 110, + 66, + 101, + 104, + 101, + 101, + 114, + 69, + 109, + 97, + 105, + 108, + 97, + 100, + 114, + 101, + 115, + 34, + 58, + 34, + 34, + 44, + 34, + 122, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 98, + 101, + 115, + 108, + 117, + 105, + 116, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 105, + 110, + 102, + 111, + 114, + 109, + 97, + 116, + 105, + 101, + 111, + 98, + 106, + 101, + 99, + 116, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 125, + 44, + 123, + 34, + 117, + 114, + 108, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 105, + 92, + 47, + 118, + 49, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 117, + 115, + 115, + 101, + 110, + 92, + 47, + 99, + 99, + 97, + 50, + 100, + 57, + 102, + 100, + 45, + 50, + 56, + 56, + 102, + 45, + 52, + 56, + 48, + 57, + 45, + 56, + 48, + 53, + 54, + 45, + 101, + 54, + 101, + 51, + 98, + 51, + 53, + 98, + 48, + 98, + 102, + 100, + 34, + 44, + 34, + 117, + 117, + 105, + 100, + 34, + 58, + 34, + 99, + 99, + 97, + 50, + 100, + 57, + 102, + 100, + 45, + 50, + 56, + 56, + 102, + 45, + 52, + 56, + 48, + 57, + 45, + 56, + 48, + 53, + 54, + 45, + 101, + 54, + 101, + 51, + 98, + 51, + 53, + 98, + 48, + 98, + 102, + 100, + 34, + 44, + 34, + 100, + 111, + 109, + 101, + 105, + 110, + 34, + 58, + 34, + 65, + 65, + 66, + 34, + 44, + 34, + 114, + 115, + 105, + 110, + 34, + 58, + 34, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 34, + 44, + 34, + 99, + 111, + 110, + 116, + 97, + 99, + 116, + 112, + 101, + 114, + 115, + 111, + 111, + 110, + 66, + 101, + 104, + 101, + 101, + 114, + 78, + 97, + 97, + 109, + 34, + 58, + 34, + 84, + 101, + 115, + 116, + 32, + 80, + 101, + 114, + 115, + 111, + 111, + 110, + 34, + 44, + 34, + 99, + 111, + 110, + 116, + 97, + 99, + 116, + 112, + 101, + 114, + 115, + 111, + 111, + 110, + 66, + 101, + 104, + 101, + 101, + 114, + 84, + 101, + 108, + 101, + 102, + 111, + 111, + 110, + 110, + 117, + 109, + 109, + 101, + 114, + 34, + 58, + 34, + 34, + 44, + 34, + 99, + 111, + 110, + 116, + 97, + 99, + 116, + 112, + 101, + 114, + 115, + 111, + 111, + 110, + 66, + 101, + 104, + 101, + 101, + 114, + 69, + 109, + 97, + 105, + 108, + 97, + 100, + 114, + 101, + 115, + 34, + 58, + 34, + 34, + 44, + 34, + 122, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 98, + 101, + 115, + 108, + 117, + 105, + 116, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 105, + 110, + 102, + 111, + 114, + 109, + 97, + 116, + 105, + 101, + 111, + 98, + 106, + 101, + 99, + 116, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 125, + 44, + 123, + 34, + 117, + 114, + 108, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 105, + 92, + 47, + 118, + 49, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 117, + 115, + 115, + 101, + 110, + 92, + 47, + 50, + 48, + 48, + 101, + 54, + 55, + 98, + 55, + 45, + 99, + 50, + 98, + 48, + 45, + 52, + 100, + 53, + 50, + 45, + 56, + 53, + 57, + 54, + 45, + 99, + 48, + 57, + 98, + 48, + 57, + 49, + 49, + 48, + 98, + 48, + 98, + 34, + 44, + 34, + 117, + 117, + 105, + 100, + 34, + 58, + 34, + 50, + 48, + 48, + 101, + 54, + 55, + 98, + 55, + 45, + 99, + 50, + 98, + 48, + 45, + 52, + 100, + 53, + 50, + 45, + 56, + 53, + 57, + 54, + 45, + 99, + 48, + 57, + 98, + 48, + 57, + 49, + 49, + 48, + 98, + 48, + 98, + 34, + 44, + 34, + 100, + 111, + 109, + 101, + 105, + 110, + 34, + 58, + 34, + 90, + 71, + 87, + 84, + 34, + 44, + 34, + 114, + 115, + 105, + 110, + 34, + 58, + 34, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 34, + 44, + 34, + 99, + 111, + 110, + 116, + 97, + 99, + 116, + 112, + 101, + 114, + 115, + 111, + 111, + 110, + 66, + 101, + 104, + 101, + 101, + 114, + 78, + 97, + 97, + 109, + 34, + 58, + 34, + 84, + 101, + 115, + 116, + 32, + 80, + 101, + 114, + 115, + 111, + 111, + 110, + 34, + 44, + 34, + 99, + 111, + 110, + 116, + 97, + 99, + 116, + 112, + 101, + 114, + 115, + 111, + 111, + 110, + 66, + 101, + 104, + 101, + 101, + 114, + 84, + 101, + 108, + 101, + 102, + 111, + 111, + 110, + 110, + 117, + 109, + 109, + 101, + 114, + 34, + 58, + 34, + 34, + 44, + 34, + 99, + 111, + 110, + 116, + 97, + 99, + 116, + 112, + 101, + 114, + 115, + 111, + 111, + 110, + 66, + 101, + 104, + 101, + 101, + 114, + 69, + 109, + 97, + 105, + 108, + 97, + 100, + 114, + 101, + 115, + 34, + 58, + 34, + 34, + 44, + 34, + 122, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 98, + 101, + 115, + 108, + 117, + 105, + 116, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 105, + 110, + 102, + 111, + 114, + 109, + 97, + 116, + 105, + 101, + 111, + 98, + 106, + 101, + 99, + 116, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 125, + 44, + 123, + 34, + 117, + 114, + 108, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 105, + 92, + 47, + 118, + 49, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 117, + 115, + 115, + 101, + 110, + 92, + 47, + 97, + 54, + 50, + 51, + 48, + 53, + 52, + 102, + 45, + 100, + 48, + 57, + 98, + 45, + 52, + 101, + 54, + 102, + 45, + 98, + 99, + 54, + 56, + 45, + 98, + 101, + 55, + 97, + 51, + 57, + 56, + 99, + 99, + 51, + 53, + 50, + 34, + 44, + 34, + 117, + 117, + 105, + 100, + 34, + 58, + 34, + 97, + 54, + 50, + 51, + 48, + 53, + 52, + 102, + 45, + 100, + 48, + 57, + 98, + 45, + 52, + 101, + 54, + 102, + 45, + 98, + 99, + 54, + 56, + 45, + 98, + 101, + 55, + 97, + 51, + 57, + 56, + 99, + 99, + 51, + 53, + 50, + 34, + 44, + 34, + 100, + 111, + 109, + 101, + 105, + 110, + 34, + 58, + 34, + 65, + 65, + 66, + 34, + 44, + 34, + 114, + 115, + 105, + 110, + 34, + 58, + 34, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 34, + 44, + 34, + 99, + 111, + 110, + 116, + 97, + 99, + 116, + 112, + 101, + 114, + 115, + 111, + 111, + 110, + 66, + 101, + 104, + 101, + 101, + 114, + 78, + 97, + 97, + 109, + 34, + 58, + 34, + 84, + 101, + 115, + 116, + 32, + 80, + 101, + 114, + 115, + 111, + 111, + 110, + 34, + 44, + 34, + 99, + 111, + 110, + 116, + 97, + 99, + 116, + 112, + 101, + 114, + 115, + 111, + 111, + 110, + 66, + 101, + 104, + 101, + 101, + 114, + 84, + 101, + 108, + 101, + 102, + 111, + 111, + 110, + 110, + 117, + 109, + 109, + 101, + 114, + 34, + 58, + 34, + 34, + 44, + 34, + 99, + 111, + 110, + 116, + 97, + 99, + 116, + 112, + 101, + 114, + 115, + 111, + 111, + 110, + 66, + 101, + 104, + 101, + 101, + 114, + 69, + 109, + 97, + 105, + 108, + 97, + 100, + 114, + 101, + 115, + 34, + 58, + 34, + 34, + 44, + 34, + 122, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 98, + 101, + 115, + 108, + 117, + 105, + 116, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 105, + 110, + 102, + 111, + 114, + 109, + 97, + 116, + 105, + 101, + 111, + 98, + 106, + 101, + 99, + 116, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 125, + 44, + 123, + 34, + 117, + 114, + 108, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 105, + 92, + 47, + 118, + 49, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 117, + 115, + 115, + 101, + 110, + 92, + 47, + 50, + 56, + 54, + 98, + 101, + 57, + 51, + 51, + 45, + 50, + 97, + 51, + 52, + 45, + 52, + 54, + 52, + 53, + 45, + 98, + 48, + 49, + 48, + 45, + 57, + 57, + 98, + 56, + 56, + 53, + 50, + 101, + 57, + 48, + 50, + 48, + 34, + 44, + 34, + 117, + 117, + 105, + 100, + 34, + 58, + 34, + 50, + 56, + 54, + 98, + 101, + 57, + 51, + 51, + 45, + 50, + 97, + 51, + 52, + 45, + 52, + 54, + 52, + 53, + 45, + 98, + 48, + 49, + 48, + 45, + 57, + 57, + 98, + 56, + 56, + 53, + 50, + 101, + 57, + 48, + 50, + 48, + 34, + 44, + 34, + 100, + 111, + 109, + 101, + 105, + 110, + 34, + 58, + 34, + 90, + 71, + 87, + 84, + 34, + 44, + 34, + 114, + 115, + 105, + 110, + 34, + 58, + 34, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 34, + 44, + 34, + 99, + 111, + 110, + 116, + 97, + 99, + 116, + 112, + 101, + 114, + 115, + 111, + 111, + 110, + 66, + 101, + 104, + 101, + 101, + 114, + 78, + 97, + 97, + 109, + 34, + 58, + 34, + 84, + 101, + 115, + 116, + 32, + 80, + 101, + 114, + 115, + 111, + 111, + 110, + 34, + 44, + 34, + 99, + 111, + 110, + 116, + 97, + 99, + 116, + 112, + 101, + 114, + 115, + 111, + 111, + 110, + 66, + 101, + 104, + 101, + 101, + 114, + 84, + 101, + 108, + 101, + 102, + 111, + 111, + 110, + 110, + 117, + 109, + 109, + 101, + 114, + 34, + 58, + 34, + 34, + 44, + 34, + 99, + 111, + 110, + 116, + 97, + 99, + 116, + 112, + 101, + 114, + 115, + 111, + 111, + 110, + 66, + 101, + 104, + 101, + 101, + 114, + 69, + 109, + 97, + 105, + 108, + 97, + 100, + 114, + 101, + 115, + 34, + 58, + 34, + 34, + 44, + 34, + 122, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 98, + 101, + 115, + 108, + 117, + 105, + 116, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 105, + 110, + 102, + 111, + 114, + 109, + 97, + 116, + 105, + 101, + 111, + 98, + 106, + 101, + 99, + 116, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 125, + 44, + 123, + 34, + 117, + 114, + 108, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 105, + 92, + 47, + 118, + 49, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 117, + 115, + 115, + 101, + 110, + 92, + 47, + 100, + 56, + 102, + 102, + 53, + 50, + 53, + 53, + 45, + 97, + 100, + 102, + 97, + 45, + 52, + 52, + 51, + 102, + 45, + 98, + 49, + 102, + 57, + 45, + 57, + 99, + 98, + 57, + 55, + 100, + 53, + 98, + 51, + 99, + 100, + 99, + 34, + 44, + 34, + 117, + 117, + 105, + 100, + 34, + 58, + 34, + 100, + 56, + 102, + 102, + 53, + 50, + 53, + 53, + 45, + 97, + 100, + 102, + 97, + 45, + 52, + 52, + 51, + 102, + 45, + 98, + 49, + 102, + 57, + 45, + 57, + 99, + 98, + 57, + 55, + 100, + 53, + 98, + 51, + 99, + 100, + 99, + 34, + 44, + 34, + 100, + 111, + 109, + 101, + 105, + 110, + 34, + 58, + 34, + 65, + 65, + 66, + 34, + 44, + 34, + 114, + 115, + 105, + 110, + 34, + 58, + 34, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 34, + 44, + 34, + 99, + 111, + 110, + 116, + 97, + 99, + 116, + 112, + 101, + 114, + 115, + 111, + 111, + 110, + 66, + 101, + 104, + 101, + 101, + 114, + 78, + 97, + 97, + 109, + 34, + 58, + 34, + 84, + 101, + 115, + 116, + 32, + 80, + 101, + 114, + 115, + 111, + 111, + 110, + 34, + 44, + 34, + 99, + 111, + 110, + 116, + 97, + 99, + 116, + 112, + 101, + 114, + 115, + 111, + 111, + 110, + 66, + 101, + 104, + 101, + 101, + 114, + 84, + 101, + 108, + 101, + 102, + 111, + 111, + 110, + 110, + 117, + 109, + 109, + 101, + 114, + 34, + 58, + 34, + 34, + 44, + 34, + 99, + 111, + 110, + 116, + 97, + 99, + 116, + 112, + 101, + 114, + 115, + 111, + 111, + 110, + 66, + 101, + 104, + 101, + 101, + 114, + 69, + 109, + 97, + 105, + 108, + 97, + 100, + 114, + 101, + 115, + 34, + 58, + 34, + 34, + 44, + 34, + 122, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 98, + 101, + 115, + 108, + 117, + 105, + 116, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 105, + 110, + 102, + 111, + 114, + 109, + 97, + 116, + 105, + 101, + 111, + 98, + 106, + 101, + 99, + 116, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 125, + 44, + 123, + 34, + 117, + 114, + 108, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 105, + 92, + 47, + 118, + 49, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 117, + 115, + 115, + 101, + 110, + 92, + 47, + 49, + 100, + 54, + 49, + 51, + 51, + 51, + 48, + 45, + 48, + 97, + 54, + 102, + 45, + 52, + 51, + 56, + 50, + 45, + 97, + 99, + 48, + 48, + 45, + 53, + 50, + 98, + 50, + 53, + 57, + 99, + 52, + 102, + 56, + 99, + 97, + 34, + 44, + 34, + 117, + 117, + 105, + 100, + 34, + 58, + 34, + 49, + 100, + 54, + 49, + 51, + 51, + 51, + 48, + 45, + 48, + 97, + 54, + 102, + 45, + 52, + 51, + 56, + 50, + 45, + 97, + 99, + 48, + 48, + 45, + 53, + 50, + 98, + 50, + 53, + 57, + 99, + 52, + 102, + 56, + 99, + 97, + 34, + 44, + 34, + 100, + 111, + 109, + 101, + 105, + 110, + 34, + 58, + 34, + 90, + 71, + 87, + 84, + 34, + 44, + 34, + 114, + 115, + 105, + 110, + 34, + 58, + 34, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 34, + 44, + 34, + 99, + 111, + 110, + 116, + 97, + 99, + 116, + 112, + 101, + 114, + 115, + 111, + 111, + 110, + 66, + 101, + 104, + 101, + 101, + 114, + 78, + 97, + 97, + 109, + 34, + 58, + 34, + 84, + 101, + 115, + 116, + 32, + 80, + 101, + 114, + 115, + 111, + 111, + 110, + 34, + 44, + 34, + 99, + 111, + 110, + 116, + 97, + 99, + 116, + 112, + 101, + 114, + 115, + 111, + 111, + 110, + 66, + 101, + 104, + 101, + 101, + 114, + 84, + 101, + 108, + 101, + 102, + 111, + 111, + 110, + 110, + 117, + 109, + 109, + 101, + 114, + 34, + 58, + 34, + 34, + 44, + 34, + 99, + 111, + 110, + 116, + 97, + 99, + 116, + 112, + 101, + 114, + 115, + 111, + 111, + 110, + 66, + 101, + 104, + 101, + 101, + 114, + 69, + 109, + 97, + 105, + 108, + 97, + 100, + 114, + 101, + 115, + 34, + 58, + 34, + 34, + 44, + 34, + 122, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 98, + 101, + 115, + 108, + 117, + 105, + 116, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 105, + 110, + 102, + 111, + 114, + 109, + 97, + 116, + 105, + 101, + 111, + 98, + 106, + 101, + 99, + 116, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 125, + 93, + 125 + ] + }, + "cookie": [], + "responseTime": 104, + "responseSize": 8033 + }, + "id": "09252b82-893e-4608-9045-a602e48e30ab" + }, + { + "cursor": { + "ref": "83237716-1ed2-4827-86cc-b10e6561f2a6", + "length": 313, + "cycles": 1, + "position": 79, + "iteration": 0, + "httpRequestId": "0e31fb99-698f-4182-be43-8063a3baef8c" + }, + "item": { + "id": "2833abca-7d9b-4c59-b2e2-fc08b542633f", + "name": "(zrc-007c) Afgesloten zaak bijwerken is niet toegestaan zonder scope zaken.geforceerd-bijwerken", + "request": { + "url": { + "host": [ + "{{created_zaak_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Accept-Crs", + "value": "EPSG:4326" + }, + { + "key": "Content-Crs", + "value": "EPSG:4326" + } + ], + "method": "PUT", + "body": { + "mode": "raw", + "raw": "{\r\n\r\n \"bronorganisatie\": \"000000000\",\r\n \"omschrijving\": \"string\",\r\n \"toelichting\": \"string\",\r\n \"zaaktype\": \"{{zaaktype_url}}\",\r\n \"registratiedatum\": \"2019-04-09\",\r\n \"verantwoordelijkeOrganisatie\": \"000000000\",\r\n \"startdatum\": \"2019-04-09\",\r\n \"einddatum\": null,\r\n \"einddatumGepland\": \"2019-04-20\",\r\n \"uiterlijkeEinddatumAfdoening\": \"2019-04-09\",\r\n \"publicatiedatum\": \"2019-04-09\",\r\n \"communicatiekanaal\": \"\",\r\n \"productenOfDiensten\": [],\r\n \"vertrouwelijkheidaanduiding\": \"geheim\",\r\n \"betalingsindicatie\": \"geheel\",\r\n \"betalingsindicatieWeergave\": null,\r\n \"laatsteBetaaldatum\": \"2019-01-01T00:00:00Z\",\r\n \"zaakgeometrie\": {\r\n \"type\": \"Point\",\r\n \"coordinates\": [\r\n 53.0,\r\n 5.0\r\n ]\r\n },\r\n \"verlenging\": null,\r\n \"opschorting\": {\r\n \"indicatie\": true,\r\n \"reden\": \"string\"\r\n },\r\n \"selectielijstklasse\": \"https://referentielijsten.roxit.nl/api/v1/resultaten/0fe71ce3-b1e1-48eb-9070-be2756fc71b5\",\r\n \"hoofdzaak\": null,\r\n \"deelzaken\": [],\r\n \"relevanteAndereZaken\": [],\r\n \"eigenschappen\": [],\r\n \"rollen\": [],\r\n \"status\": null,\r\n \"zaakinformatieobjecten\": [],\r\n \"zaakobjecten\": [],\r\n \"resultaat\": null,\r\n \"kenmerken\": [],\r\n \"archiefnominatie\": null,\r\n \"archiefstatus\": \"nog_te_archiveren\",\r\n \"archiefactiedatum\": null,\r\n \"opdrachtgevendeOrganisatie\": null,\r\n \"processobjectaard\": null,\r\n \"startdatumBewaartermijn\": null,\r\n \"processobject\": null\r\n}" + } + }, + "response": [], + "event": [ + { + "listen": "prerequest", + "script": { + "id": "e7e48489-21d4-459f-825b-4d49e6de4a2b", + "type": "text/javascript", + "packages": {}, + "exec": [ + "" + ], + "_lastExecutionId": "57461603-9058-4e64-8025-8d7d57aabd73" + } + }, + { + "listen": "test", + "script": { + "id": "c4f3928b-c90d-48eb-9725-bab8747b4ff8", + "type": "text/javascript", + "packages": {}, + "exec": [ + "pm.test(\"Afgesloten Zaak bijwerken zonder scope zaken.geforceerd-bijwerken geeft 403\", function() {", + " pm.response.to.have.status(403);", + " pm.expect(pm.response.json().code).to.be.equal(\"permission_denied\");", + "});" + ], + "_lastExecutionId": "7f93a35a-768e-4413-8752-835d35ec11b1" + } + } + ] + }, + "request": { + "url": { + "protocol": "http", + "port": "8080", + "path": [ + "index.php", + "apps", + "procest", + "api", + "zgw", + "zaken", + "v1", + "zaken", + "b648c5da-b590-4960-94a0-f0c5a3f9ed90" + ], + "host": [ + "localhost" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Accept-Crs", + "value": "EPSG:4326" + }, + { + "key": "Content-Crs", + "value": "EPSG:4326" + }, + { + "key": "Authorization", + "value": "Bearer eyJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJwcm9jZXN0LWxpbWl0ZWQiLCJjbGllbnRfaWQiOiJwcm9jZXN0LWxpbWl0ZWQiLCJpYXQiOiIxNzczMTQ1MTYwIiwidXNlcl9pZCI6InByb2Nlc3QtbGltaXRlZCIsInVzZXJfcmVwcmVzZW50YXRpb24iOiIifQ.g5pZIEjaa32nb3o0lQsbIbe3hNdVmtNYAv8QUlTJpbU", + "system": true + }, + { + "key": "User-Agent", + "value": "PostmanRuntime/7.39.1", + "system": true + }, + { + "key": "Accept", + "value": "*/*", + "system": true + }, + { + "key": "Cache-Control", + "value": "no-cache", + "system": true + }, + { + "key": "Postman-Token", + "value": "d2704568-c04f-43e5-b9ff-5e94422a693f", + "system": true + }, + { + "key": "Host", + "value": "localhost:8080", + "system": true + }, + { + "key": "Accept-Encoding", + "value": "gzip, deflate, br", + "system": true + }, + { + "key": "Connection", + "value": "keep-alive", + "system": true + }, + { + "key": "Content-Length", + "value": "1605", + "system": true + }, + { + "key": "Cookie", + "value": "ocvp3112b4wg=a482be756b84f8ec4ed2f596bf202061; oc_sessionPassphrase=LBNdKxRzA0iqoULIruNxDDh2BK3O%2BrCIU8aUmiUcOFvy5Xw1YfjwQNlmBW2IkGwJYtxXh9%2BwDN6vYuGNX07tXzkBtjQJUWTGdzf8AIOUIVxVx5DfyWAQZ7nmYmQv6XSE; nc_sameSiteCookielax=true; nc_sameSiteCookiestrict=true", + "system": true + } + ], + "method": "PUT", + "body": { + "mode": "raw", + "raw": "{\r\n\r\n \"bronorganisatie\": \"000000000\",\r\n \"omschrijving\": \"string\",\r\n \"toelichting\": \"string\",\r\n \"zaaktype\": \"http://localhost:8080/index.php/apps/procest/api/zgw/catalogi/v1/zaaktypen/619dc3e5-52f1-4294-a569-f21d16f44879\",\r\n \"registratiedatum\": \"2019-04-09\",\r\n \"verantwoordelijkeOrganisatie\": \"000000000\",\r\n \"startdatum\": \"2019-04-09\",\r\n \"einddatum\": null,\r\n \"einddatumGepland\": \"2019-04-20\",\r\n \"uiterlijkeEinddatumAfdoening\": \"2019-04-09\",\r\n \"publicatiedatum\": \"2019-04-09\",\r\n \"communicatiekanaal\": \"\",\r\n \"productenOfDiensten\": [],\r\n \"vertrouwelijkheidaanduiding\": \"geheim\",\r\n \"betalingsindicatie\": \"geheel\",\r\n \"betalingsindicatieWeergave\": null,\r\n \"laatsteBetaaldatum\": \"2019-01-01T00:00:00Z\",\r\n \"zaakgeometrie\": {\r\n \"type\": \"Point\",\r\n \"coordinates\": [\r\n 53.0,\r\n 5.0\r\n ]\r\n },\r\n \"verlenging\": null,\r\n \"opschorting\": {\r\n \"indicatie\": true,\r\n \"reden\": \"string\"\r\n },\r\n \"selectielijstklasse\": \"https://referentielijsten.roxit.nl/api/v1/resultaten/0fe71ce3-b1e1-48eb-9070-be2756fc71b5\",\r\n \"hoofdzaak\": null,\r\n \"deelzaken\": [],\r\n \"relevanteAndereZaken\": [],\r\n \"eigenschappen\": [],\r\n \"rollen\": [],\r\n \"status\": null,\r\n \"zaakinformatieobjecten\": [],\r\n \"zaakobjecten\": [],\r\n \"resultaat\": null,\r\n \"kenmerken\": [],\r\n \"archiefnominatie\": null,\r\n \"archiefstatus\": \"nog_te_archiveren\",\r\n \"archiefactiedatum\": null,\r\n \"opdrachtgevendeOrganisatie\": null,\r\n \"processobjectaard\": null,\r\n \"startdatumBewaartermijn\": null,\r\n \"processobject\": null\r\n}" + }, + "auth": { + "type": "jwt", + "jwt": [ + { + "type": "string", + "value": "{\r\n \"iss\": \"procest-limited\",\r\n \"client_id\": \"procest-limited\",\r\n \"iat\": \"1773145160\",\r\n \"user_id\": \"procest-limited\",\r\n \"user_representation\": \"\"\r\n}", + "key": "payload" + }, + { + "type": "string", + "value": "procest-limited-secret-key-for-test", + "key": "secret" + }, + { + "type": "string", + "value": "HS256", + "key": "algorithm" + }, + { + "type": "boolean", + "value": false, + "key": "isSecretBase64Encoded" + }, + { + "type": "string", + "value": "header", + "key": "addTokenTo" + }, + { + "type": "string", + "value": "Bearer", + "key": "headerPrefix" + }, + { + "type": "string", + "value": "token", + "key": "queryParamKey" + }, + { + "type": "string", + "value": "{}", + "key": "header" + } + ] + } + }, + "response": { + "id": "fea6d011-2b75-4a5a-8f7a-a7f8763d530a", + "status": "Forbidden", + "code": 403, + "header": [ + { + "key": "Date", + "value": "Tue, 10 Mar 2026 12:19:19 GMT" + }, + { + "key": "Server", + "value": "Apache/2.4.66 (Debian)" + }, + { + "key": "X-Content-Type-Options", + "value": "nosniff" + }, + { + "key": "X-Frame-Options", + "value": "SAMEORIGIN" + }, + { + "key": "X-Permitted-Cross-Domain-Policies", + "value": "none" + }, + { + "key": "X-Robots-Tag", + "value": "noindex, nofollow" + }, + { + "key": "Referrer-Policy", + "value": "no-referrer" + }, + { + "key": "X-Powered-By", + "value": "PHP/8.3.30" + }, + { + "key": "Content-Security-Policy", + "value": "default-src 'none';base-uri 'none';manifest-src 'self';frame-ancestors 'none'" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=a482be756b84f8ec4ed2f596bf202061; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=a482be756b84f8ec4ed2f596bf202061; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=a482be756b84f8ec4ed2f596bf202061; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=a482be756b84f8ec4ed2f596bf202061; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=a482be756b84f8ec4ed2f596bf202061; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=493b2e6608f895c8cf338c08cc332261; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=493b2e6608f895c8cf338c08cc332261; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=493b2e6608f895c8cf338c08cc332261; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "X-Request-Id", + "value": "yo9JlJm71a6OgpsjM0tD" + }, + { + "key": "Cache-Control", + "value": "no-cache, no-store, must-revalidate" + }, + { + "key": "Feature-Policy", + "value": "autoplay 'none';camera 'none';fullscreen 'none';geolocation 'none';microphone 'none';payment 'none'" + }, + { + "key": "Content-Length", + "value": "232" + }, + { + "key": "Keep-Alive", + "value": "timeout=5, max=71" + }, + { + "key": "Connection", + "value": "Keep-Alive" + }, + { + "key": "Content-Type", + "value": "application/json; charset=utf-8" + } + ], + "stream": { + "type": "Buffer", + "data": [ + 123, + 34, + 100, + 101, + 116, + 97, + 105, + 108, + 34, + 58, + 34, + 90, + 97, + 97, + 107, + 32, + 105, + 115, + 32, + 97, + 102, + 103, + 101, + 115, + 108, + 111, + 116, + 101, + 110, + 46, + 32, + 87, + 105, + 106, + 122, + 105, + 103, + 105, + 110, + 103, + 101, + 110, + 32, + 122, + 105, + 106, + 110, + 32, + 110, + 105, + 101, + 116, + 32, + 116, + 111, + 101, + 103, + 101, + 115, + 116, + 97, + 97, + 110, + 32, + 122, + 111, + 110, + 100, + 101, + 114, + 32, + 115, + 99, + 111, + 112, + 101, + 32, + 122, + 97, + 107, + 101, + 110, + 46, + 103, + 101, + 102, + 111, + 114, + 99, + 101, + 101, + 114, + 100, + 45, + 98, + 105, + 106, + 119, + 101, + 114, + 107, + 101, + 110, + 46, + 34, + 44, + 34, + 99, + 111, + 100, + 101, + 34, + 58, + 34, + 112, + 101, + 114, + 109, + 105, + 115, + 115, + 105, + 111, + 110, + 95, + 100, + 101, + 110, + 105, + 101, + 100, + 34, + 44, + 34, + 105, + 110, + 118, + 97, + 108, + 105, + 100, + 80, + 97, + 114, + 97, + 109, + 115, + 34, + 58, + 91, + 123, + 34, + 110, + 97, + 109, + 101, + 34, + 58, + 34, + 110, + 111, + 110, + 70, + 105, + 101, + 108, + 100, + 69, + 114, + 114, + 111, + 114, + 115, + 34, + 44, + 34, + 99, + 111, + 100, + 101, + 34, + 58, + 34, + 122, + 97, + 97, + 107, + 45, + 99, + 108, + 111, + 115, + 101, + 100, + 34, + 44, + 34, + 114, + 101, + 97, + 115, + 111, + 110, + 34, + 58, + 34, + 68, + 101, + 32, + 122, + 97, + 97, + 107, + 32, + 105, + 115, + 32, + 97, + 102, + 103, + 101, + 115, + 108, + 111, + 116, + 101, + 110, + 46, + 34, + 125, + 93, + 125 + ] + }, + "cookie": [], + "responseTime": 119, + "responseSize": 232 + }, + "id": "2833abca-7d9b-4c59-b2e2-fc08b542633f", + "assertions": [ + { + "assertion": "Afgesloten Zaak bijwerken zonder scope zaken.geforceerd-bijwerken geeft 403", + "skipped": false + } + ] + }, + { + "cursor": { + "ref": "c49eb6ed-855e-469a-8e6f-41fd8a85971d", + "length": 313, + "cycles": 1, + "position": 80, + "iteration": 0, + "httpRequestId": "4ac6e16d-91b6-4dbf-a421-c57f385cfb12" + }, + "item": { + "id": "df799216-40bf-448e-a067-b7a129c2dcee", + "name": "(zrc-007c) Afgesloten zaak deels bijwerken is niet toegestaan zonder scope zaken.geforceerd-bijwerken", + "request": { + "url": { + "host": [ + "{{created_zaak_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Accept-Crs", + "value": "EPSG:4326" + }, + { + "key": "Content-Crs", + "value": "EPSG:4326" + } + ], + "method": "PATCH", + "body": { + "mode": "raw", + "raw": "{\n\t\"omschrijving\": \"aangepast\"\n}" + } + }, + "response": [], + "event": [ + { + "listen": "prerequest", + "script": { + "id": "198e2b21-4081-4ac8-8c81-3589f1b5e374", + "type": "text/javascript", + "packages": {}, + "exec": [ + "" + ], + "_lastExecutionId": "8aec6e50-5c9e-47a0-9d00-a9de552d0e51" + } + }, + { + "listen": "test", + "script": { + "id": "cc50f9cf-8000-4cc9-b8b1-fb9f79bcf272", + "type": "text/javascript", + "packages": {}, + "exec": [ + "pm.test(\"Afgesloten Zaak deels bijwerken zonder scope zaken.geforceerd-bijwerken geeft 403\", function() {", + " pm.response.to.have.status(403);", + " pm.expect(pm.response.json().code).to.be.equal(\"permission_denied\");", + "});", + "", + "" + ], + "_lastExecutionId": "2db52502-8f35-4163-a274-ba7cb4af901b" + } + } + ] + }, + "request": { + "url": { + "protocol": "http", + "port": "8080", + "path": [ + "index.php", + "apps", + "procest", + "api", + "zgw", + "zaken", + "v1", + "zaken", + "b648c5da-b590-4960-94a0-f0c5a3f9ed90" + ], + "host": [ + "localhost" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Accept-Crs", + "value": "EPSG:4326" + }, + { + "key": "Content-Crs", + "value": "EPSG:4326" + }, + { + "key": "Authorization", + "value": "Bearer eyJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJwcm9jZXN0LWxpbWl0ZWQiLCJjbGllbnRfaWQiOiJwcm9jZXN0LWxpbWl0ZWQiLCJpYXQiOiIxNzczMTQ1MTYwIiwidXNlcl9pZCI6InByb2Nlc3QtbGltaXRlZCIsInVzZXJfcmVwcmVzZW50YXRpb24iOiIifQ.g5pZIEjaa32nb3o0lQsbIbe3hNdVmtNYAv8QUlTJpbU", + "system": true + }, + { + "key": "User-Agent", + "value": "PostmanRuntime/7.39.1", + "system": true + }, + { + "key": "Accept", + "value": "*/*", + "system": true + }, + { + "key": "Cache-Control", + "value": "no-cache", + "system": true + }, + { + "key": "Postman-Token", + "value": "6ab196ff-bba5-458c-b9c2-3a614d5a26b8", + "system": true + }, + { + "key": "Host", + "value": "localhost:8080", + "system": true + }, + { + "key": "Accept-Encoding", + "value": "gzip, deflate, br", + "system": true + }, + { + "key": "Connection", + "value": "keep-alive", + "system": true + }, + { + "key": "Content-Length", + "value": "32", + "system": true + }, + { + "key": "Cookie", + "value": "ocvp3112b4wg=493b2e6608f895c8cf338c08cc332261; oc_sessionPassphrase=LBNdKxRzA0iqoULIruNxDDh2BK3O%2BrCIU8aUmiUcOFvy5Xw1YfjwQNlmBW2IkGwJYtxXh9%2BwDN6vYuGNX07tXzkBtjQJUWTGdzf8AIOUIVxVx5DfyWAQZ7nmYmQv6XSE; nc_sameSiteCookielax=true; nc_sameSiteCookiestrict=true", + "system": true + } + ], + "method": "PATCH", + "body": { + "mode": "raw", + "raw": "{\n\t\"omschrijving\": \"aangepast\"\n}" + }, + "auth": { + "type": "jwt", + "jwt": [ + { + "type": "string", + "value": "{\r\n \"iss\": \"procest-limited\",\r\n \"client_id\": \"procest-limited\",\r\n \"iat\": \"1773145160\",\r\n \"user_id\": \"procest-limited\",\r\n \"user_representation\": \"\"\r\n}", + "key": "payload" + }, + { + "type": "string", + "value": "procest-limited-secret-key-for-test", + "key": "secret" + }, + { + "type": "string", + "value": "HS256", + "key": "algorithm" + }, + { + "type": "boolean", + "value": false, + "key": "isSecretBase64Encoded" + }, + { + "type": "string", + "value": "header", + "key": "addTokenTo" + }, + { + "type": "string", + "value": "Bearer", + "key": "headerPrefix" + }, + { + "type": "string", + "value": "token", + "key": "queryParamKey" + }, + { + "type": "string", + "value": "{}", + "key": "header" + } + ] + } + }, + "response": { + "id": "d8355640-5fcc-4403-8b1d-9c6bf9fb0550", + "status": "Forbidden", + "code": 403, + "header": [ + { + "key": "Date", + "value": "Tue, 10 Mar 2026 12:19:19 GMT" + }, + { + "key": "Server", + "value": "Apache/2.4.66 (Debian)" + }, + { + "key": "X-Content-Type-Options", + "value": "nosniff" + }, + { + "key": "X-Frame-Options", + "value": "SAMEORIGIN" + }, + { + "key": "X-Permitted-Cross-Domain-Policies", + "value": "none" + }, + { + "key": "X-Robots-Tag", + "value": "noindex, nofollow" + }, + { + "key": "Referrer-Policy", + "value": "no-referrer" + }, + { + "key": "X-Powered-By", + "value": "PHP/8.3.30" + }, + { + "key": "Content-Security-Policy", + "value": "default-src 'none';base-uri 'none';manifest-src 'self';frame-ancestors 'none'" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=493b2e6608f895c8cf338c08cc332261; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=493b2e6608f895c8cf338c08cc332261; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "X-Request-Id", + "value": "ergoUNbiFvdlMXHVuYcU" + }, + { + "key": "Cache-Control", + "value": "no-cache, no-store, must-revalidate" + }, + { + "key": "Feature-Policy", + "value": "autoplay 'none';camera 'none';fullscreen 'none';geolocation 'none';microphone 'none';payment 'none'" + }, + { + "key": "Content-Length", + "value": "232" + }, + { + "key": "Keep-Alive", + "value": "timeout=5, max=70" + }, + { + "key": "Connection", + "value": "Keep-Alive" + }, + { + "key": "Content-Type", + "value": "application/json; charset=utf-8" + } + ], + "stream": { + "type": "Buffer", + "data": [ + 123, + 34, + 100, + 101, + 116, + 97, + 105, + 108, + 34, + 58, + 34, + 90, + 97, + 97, + 107, + 32, + 105, + 115, + 32, + 97, + 102, + 103, + 101, + 115, + 108, + 111, + 116, + 101, + 110, + 46, + 32, + 87, + 105, + 106, + 122, + 105, + 103, + 105, + 110, + 103, + 101, + 110, + 32, + 122, + 105, + 106, + 110, + 32, + 110, + 105, + 101, + 116, + 32, + 116, + 111, + 101, + 103, + 101, + 115, + 116, + 97, + 97, + 110, + 32, + 122, + 111, + 110, + 100, + 101, + 114, + 32, + 115, + 99, + 111, + 112, + 101, + 32, + 122, + 97, + 107, + 101, + 110, + 46, + 103, + 101, + 102, + 111, + 114, + 99, + 101, + 101, + 114, + 100, + 45, + 98, + 105, + 106, + 119, + 101, + 114, + 107, + 101, + 110, + 46, + 34, + 44, + 34, + 99, + 111, + 100, + 101, + 34, + 58, + 34, + 112, + 101, + 114, + 109, + 105, + 115, + 115, + 105, + 111, + 110, + 95, + 100, + 101, + 110, + 105, + 101, + 100, + 34, + 44, + 34, + 105, + 110, + 118, + 97, + 108, + 105, + 100, + 80, + 97, + 114, + 97, + 109, + 115, + 34, + 58, + 91, + 123, + 34, + 110, + 97, + 109, + 101, + 34, + 58, + 34, + 110, + 111, + 110, + 70, + 105, + 101, + 108, + 100, + 69, + 114, + 114, + 111, + 114, + 115, + 34, + 44, + 34, + 99, + 111, + 100, + 101, + 34, + 58, + 34, + 122, + 97, + 97, + 107, + 45, + 99, + 108, + 111, + 115, + 101, + 100, + 34, + 44, + 34, + 114, + 101, + 97, + 115, + 111, + 110, + 34, + 58, + 34, + 68, + 101, + 32, + 122, + 97, + 97, + 107, + 32, + 105, + 115, + 32, + 97, + 102, + 103, + 101, + 115, + 108, + 111, + 116, + 101, + 110, + 46, + 34, + 125, + 93, + 125 + ] + }, + "cookie": [], + "responseTime": 97, + "responseSize": 232 + }, + "id": "df799216-40bf-448e-a067-b7a129c2dcee", + "assertions": [ + { + "assertion": "Afgesloten Zaak deels bijwerken zonder scope zaken.geforceerd-bijwerken geeft 403", + "skipped": false + } + ] + }, + { + "cursor": { + "ref": "a47a900f-6880-45ca-b0c3-c3b9c2cf7222", + "length": 313, + "cycles": 1, + "position": 81, + "iteration": 0, + "httpRequestId": "e90c3465-cc31-412b-b966-42ef753685c6" + }, + "item": { + "id": "ed66fc2f-1ddb-44e6-a98e-ffc5d7075127", + "name": "(zrc-007d) Klantcontact bij gesloten Zaak aanmaken niet toegestaan zonder scope zaken.geforceerd-bijwerken", + "request": { + "url": { + "path": [ + "klantcontacten" + ], + "host": [ + "{{zrc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n\t\"zaak\": \"{{created_zaak_url}}\",\n\t\"datumtijd\": \"2019-02-22T00:00:00\"\n}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "c6d35df5-0006-46a4-9544-764cfee5eeaf", + "type": "text/javascript", + "packages": {}, + "exec": [ + "pm.test(\"Klantcontact aanmaken bij gesloten Zaak zonder scope zaken.geforceerd-bijwerken geeft 403\", function() {", + " pm.response.to.have.status(403);", + " pm.expect(pm.response.json().code).to.be.equal(\"permission_denied\");", + "});" + ], + "_lastExecutionId": "daea07be-91a1-4c0e-9d95-0748a3d84614" + } + }, + { + "listen": "prerequest", + "script": { + "id": "1c878e09-09af-4430-8ace-e6be117c88d2", + "type": "text/javascript", + "packages": {}, + "exec": [ + "" + ], + "_lastExecutionId": "cedb69a9-587c-4825-9d26-beb259c2616c" + } + } + ] + }, + "request": { + "url": { + "protocol": "http", + "port": "8080", + "path": [ + "index.php", + "apps", + "procest", + "api", + "zgw", + "zaken", + "v1", + "klantcontacten" + ], + "host": [ + "localhost" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Authorization", + "value": "Bearer eyJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJwcm9jZXN0LWxpbWl0ZWQiLCJjbGllbnRfaWQiOiJwcm9jZXN0LWxpbWl0ZWQiLCJpYXQiOiIxNzczMTQ1MTYwIiwidXNlcl9pZCI6InByb2Nlc3QtbGltaXRlZCIsInVzZXJfcmVwcmVzZW50YXRpb24iOiIifQ.g5pZIEjaa32nb3o0lQsbIbe3hNdVmtNYAv8QUlTJpbU", + "system": true + }, + { + "key": "User-Agent", + "value": "PostmanRuntime/7.39.1", + "system": true + }, + { + "key": "Accept", + "value": "*/*", + "system": true + }, + { + "key": "Cache-Control", + "value": "no-cache", + "system": true + }, + { + "key": "Postman-Token", + "value": "c790a77b-2427-4baf-bef2-9a35ebf65ea4", + "system": true + }, + { + "key": "Host", + "value": "localhost:8080", + "system": true + }, + { + "key": "Accept-Encoding", + "value": "gzip, deflate, br", + "system": true + }, + { + "key": "Connection", + "value": "keep-alive", + "system": true + }, + { + "key": "Content-Length", + "value": "156", + "system": true + }, + { + "key": "Cookie", + "value": "ocvp3112b4wg=493b2e6608f895c8cf338c08cc332261; oc_sessionPassphrase=LBNdKxRzA0iqoULIruNxDDh2BK3O%2BrCIU8aUmiUcOFvy5Xw1YfjwQNlmBW2IkGwJYtxXh9%2BwDN6vYuGNX07tXzkBtjQJUWTGdzf8AIOUIVxVx5DfyWAQZ7nmYmQv6XSE; nc_sameSiteCookielax=true; nc_sameSiteCookiestrict=true", + "system": true + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n\t\"zaak\": \"http://localhost:8080/index.php/apps/procest/api/zgw/zaken/v1/zaken/b648c5da-b590-4960-94a0-f0c5a3f9ed90\",\n\t\"datumtijd\": \"2019-02-22T00:00:00\"\n}" + }, + "auth": { + "type": "jwt", + "jwt": [ + { + "type": "string", + "value": "{\r\n \"iss\": \"procest-limited\",\r\n \"client_id\": \"procest-limited\",\r\n \"iat\": \"1773145160\",\r\n \"user_id\": \"procest-limited\",\r\n \"user_representation\": \"\"\r\n}", + "key": "payload" + }, + { + "type": "string", + "value": "procest-limited-secret-key-for-test", + "key": "secret" + }, + { + "type": "string", + "value": "HS256", + "key": "algorithm" + }, + { + "type": "boolean", + "value": false, + "key": "isSecretBase64Encoded" + }, + { + "type": "string", + "value": "header", + "key": "addTokenTo" + }, + { + "type": "string", + "value": "Bearer", + "key": "headerPrefix" + }, + { + "type": "string", + "value": "token", + "key": "queryParamKey" + }, + { + "type": "string", + "value": "{}", + "key": "header" + } + ] + } + }, + "response": { + "id": "0f58b967-ec9d-4d04-af5a-29a3a08b2e21", + "status": "Forbidden", + "code": 403, + "header": [ + { + "key": "Date", + "value": "Tue, 10 Mar 2026 12:19:20 GMT" + }, + { + "key": "Server", + "value": "Apache/2.4.66 (Debian)" + }, + { + "key": "X-Content-Type-Options", + "value": "nosniff" + }, + { + "key": "X-Frame-Options", + "value": "SAMEORIGIN" + }, + { + "key": "X-Permitted-Cross-Domain-Policies", + "value": "none" + }, + { + "key": "X-Robots-Tag", + "value": "noindex, nofollow" + }, + { + "key": "Referrer-Policy", + "value": "no-referrer" + }, + { + "key": "X-Powered-By", + "value": "PHP/8.3.30" + }, + { + "key": "Content-Security-Policy", + "value": "default-src 'none';base-uri 'none';manifest-src 'self';frame-ancestors 'none'" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=493b2e6608f895c8cf338c08cc332261; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "X-Request-Id", + "value": "FaFOTGY6cSm8SnvQLVsz" + }, + { + "key": "Cache-Control", + "value": "no-cache, no-store, must-revalidate" + }, + { + "key": "Feature-Policy", + "value": "autoplay 'none';camera 'none';fullscreen 'none';geolocation 'none';microphone 'none';payment 'none'" + }, + { + "key": "Content-Length", + "value": "232" + }, + { + "key": "Keep-Alive", + "value": "timeout=5, max=69" + }, + { + "key": "Connection", + "value": "Keep-Alive" + }, + { + "key": "Content-Type", + "value": "application/json; charset=utf-8" + } + ], + "stream": { + "type": "Buffer", + "data": [ + 123, + 34, + 100, + 101, + 116, + 97, + 105, + 108, + 34, + 58, + 34, + 90, + 97, + 97, + 107, + 32, + 105, + 115, + 32, + 97, + 102, + 103, + 101, + 115, + 108, + 111, + 116, + 101, + 110, + 46, + 32, + 87, + 105, + 106, + 122, + 105, + 103, + 105, + 110, + 103, + 101, + 110, + 32, + 122, + 105, + 106, + 110, + 32, + 110, + 105, + 101, + 116, + 32, + 116, + 111, + 101, + 103, + 101, + 115, + 116, + 97, + 97, + 110, + 32, + 122, + 111, + 110, + 100, + 101, + 114, + 32, + 115, + 99, + 111, + 112, + 101, + 32, + 122, + 97, + 107, + 101, + 110, + 46, + 103, + 101, + 102, + 111, + 114, + 99, + 101, + 101, + 114, + 100, + 45, + 98, + 105, + 106, + 119, + 101, + 114, + 107, + 101, + 110, + 46, + 34, + 44, + 34, + 99, + 111, + 100, + 101, + 34, + 58, + 34, + 112, + 101, + 114, + 109, + 105, + 115, + 115, + 105, + 111, + 110, + 95, + 100, + 101, + 110, + 105, + 101, + 100, + 34, + 44, + 34, + 105, + 110, + 118, + 97, + 108, + 105, + 100, + 80, + 97, + 114, + 97, + 109, + 115, + 34, + 58, + 91, + 123, + 34, + 110, + 97, + 109, + 101, + 34, + 58, + 34, + 110, + 111, + 110, + 70, + 105, + 101, + 108, + 100, + 69, + 114, + 114, + 111, + 114, + 115, + 34, + 44, + 34, + 99, + 111, + 100, + 101, + 34, + 58, + 34, + 122, + 97, + 97, + 107, + 45, + 99, + 108, + 111, + 115, + 101, + 100, + 34, + 44, + 34, + 114, + 101, + 97, + 115, + 111, + 110, + 34, + 58, + 34, + 68, + 101, + 32, + 122, + 97, + 97, + 107, + 32, + 105, + 115, + 32, + 97, + 102, + 103, + 101, + 115, + 108, + 111, + 116, + 101, + 110, + 46, + 34, + 125, + 93, + 125 + ] + }, + "cookie": [], + "responseTime": 94, + "responseSize": 232 + }, + "id": "ed66fc2f-1ddb-44e6-a98e-ffc5d7075127", + "assertions": [ + { + "assertion": "Klantcontact aanmaken bij gesloten Zaak zonder scope zaken.geforceerd-bijwerken geeft 403", + "skipped": false + } + ] + }, + { + "cursor": { + "ref": "2686dc6d-608c-4335-99d3-4c3d552267da", + "length": 313, + "cycles": 1, + "position": 82, + "iteration": 0, + "httpRequestId": "7b35f666-c012-4d7e-8f23-a0b9cb5484a5" + }, + "item": { + "id": "5b1f5f1f-d5e6-4ea2-9074-b09288d31162", + "name": "(zrc-007e) Resultaat bij gesloten Zaak aanmaken niet toegestaan zonder scope zaken.geforceerd-bijwerken", + "request": { + "url": { + "path": [ + "resultaten" + ], + "host": [ + "{{zrc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n\t\"zaak\": \"{{created_zaak_url}}\",\n\t\"resultaattype\": \"{{resultaattype_url}}\"\n}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "ce490eb7-2366-4cdd-bea5-ed94947888ab", + "type": "text/javascript", + "packages": {}, + "exec": [ + "pm.test(\"Resultaat aanmaken bij gesloten Zaak zonder scope zaken.geforceerd-bijwerken geeft 403\", function() {", + " pm.response.to.have.status(403);", + " pm.expect(pm.response.json().code).to.be.equal(\"permission_denied\");", + "});" + ], + "_lastExecutionId": "a5b1ac20-5ad6-4051-a429-269ea6d9bed3" + } + }, + { + "listen": "prerequest", + "script": { + "id": "932bb2b3-b466-47ee-8c8b-50cf843d12c4", + "type": "text/javascript", + "packages": {}, + "exec": [ + "" + ], + "_lastExecutionId": "250171a9-ce45-4ee1-bd97-2f1ec8802c1f" + } + } + ] + }, + "request": { + "url": { + "protocol": "http", + "port": "8080", + "path": [ + "index.php", + "apps", + "procest", + "api", + "zgw", + "zaken", + "v1", + "resultaten" + ], + "host": [ + "localhost" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Authorization", + "value": "Bearer eyJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJwcm9jZXN0LWxpbWl0ZWQiLCJjbGllbnRfaWQiOiJwcm9jZXN0LWxpbWl0ZWQiLCJpYXQiOiIxNzczMTQ1MTYwIiwidXNlcl9pZCI6InByb2Nlc3QtbGltaXRlZCIsInVzZXJfcmVwcmVzZW50YXRpb24iOiIifQ.g5pZIEjaa32nb3o0lQsbIbe3hNdVmtNYAv8QUlTJpbU", + "system": true + }, + { + "key": "User-Agent", + "value": "PostmanRuntime/7.39.1", + "system": true + }, + { + "key": "Accept", + "value": "*/*", + "system": true + }, + { + "key": "Cache-Control", + "value": "no-cache", + "system": true + }, + { + "key": "Postman-Token", + "value": "6cf5d17c-b319-4906-be01-c6265794b051", + "system": true + }, + { + "key": "Host", + "value": "localhost:8080", + "system": true + }, + { + "key": "Accept-Encoding", + "value": "gzip, deflate, br", + "system": true + }, + { + "key": "Connection", + "value": "keep-alive", + "system": true + }, + { + "key": "Content-Length", + "value": "257", + "system": true + }, + { + "key": "Cookie", + "value": "ocvp3112b4wg=493b2e6608f895c8cf338c08cc332261; oc_sessionPassphrase=LBNdKxRzA0iqoULIruNxDDh2BK3O%2BrCIU8aUmiUcOFvy5Xw1YfjwQNlmBW2IkGwJYtxXh9%2BwDN6vYuGNX07tXzkBtjQJUWTGdzf8AIOUIVxVx5DfyWAQZ7nmYmQv6XSE; nc_sameSiteCookielax=true; nc_sameSiteCookiestrict=true", + "system": true + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n\t\"zaak\": \"http://localhost:8080/index.php/apps/procest/api/zgw/zaken/v1/zaken/b648c5da-b590-4960-94a0-f0c5a3f9ed90\",\n\t\"resultaattype\": \"http://localhost:8080/index.php/apps/procest/api/zgw/catalogi/v1/resultaattypen/1fa4fb2f-1572-4fc1-848d-00a37ef6af45\"\n}" + }, + "auth": { + "type": "jwt", + "jwt": [ + { + "type": "string", + "value": "{\r\n \"iss\": \"procest-limited\",\r\n \"client_id\": \"procest-limited\",\r\n \"iat\": \"1773145160\",\r\n \"user_id\": \"procest-limited\",\r\n \"user_representation\": \"\"\r\n}", + "key": "payload" + }, + { + "type": "string", + "value": "procest-limited-secret-key-for-test", + "key": "secret" + }, + { + "type": "string", + "value": "HS256", + "key": "algorithm" + }, + { + "type": "boolean", + "value": false, + "key": "isSecretBase64Encoded" + }, + { + "type": "string", + "value": "header", + "key": "addTokenTo" + }, + { + "type": "string", + "value": "Bearer", + "key": "headerPrefix" + }, + { + "type": "string", + "value": "token", + "key": "queryParamKey" + }, + { + "type": "string", + "value": "{}", + "key": "header" + } + ] + } + }, + "response": { + "id": "3a63ceb2-9e28-47b2-adb2-4cf9aae751a0", + "status": "Forbidden", + "code": 403, + "header": [ + { + "key": "Date", + "value": "Tue, 10 Mar 2026 12:19:20 GMT" + }, + { + "key": "Server", + "value": "Apache/2.4.66 (Debian)" + }, + { + "key": "X-Content-Type-Options", + "value": "nosniff" + }, + { + "key": "X-Frame-Options", + "value": "SAMEORIGIN" + }, + { + "key": "X-Permitted-Cross-Domain-Policies", + "value": "none" + }, + { + "key": "X-Robots-Tag", + "value": "noindex, nofollow" + }, + { + "key": "Referrer-Policy", + "value": "no-referrer" + }, + { + "key": "X-Powered-By", + "value": "PHP/8.3.30" + }, + { + "key": "Content-Security-Policy", + "value": "default-src 'none';base-uri 'none';manifest-src 'self';frame-ancestors 'none'" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=493b2e6608f895c8cf338c08cc332261; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "X-Request-Id", + "value": "RG2WmZSYTtzDhx4JWLk0" + }, + { + "key": "Cache-Control", + "value": "no-cache, no-store, must-revalidate" + }, + { + "key": "Feature-Policy", + "value": "autoplay 'none';camera 'none';fullscreen 'none';geolocation 'none';microphone 'none';payment 'none'" + }, + { + "key": "Content-Length", + "value": "232" + }, + { + "key": "Keep-Alive", + "value": "timeout=5, max=68" + }, + { + "key": "Connection", + "value": "Keep-Alive" + }, + { + "key": "Content-Type", + "value": "application/json; charset=utf-8" + } + ], + "stream": { + "type": "Buffer", + "data": [ + 123, + 34, + 100, + 101, + 116, + 97, + 105, + 108, + 34, + 58, + 34, + 90, + 97, + 97, + 107, + 32, + 105, + 115, + 32, + 97, + 102, + 103, + 101, + 115, + 108, + 111, + 116, + 101, + 110, + 46, + 32, + 87, + 105, + 106, + 122, + 105, + 103, + 105, + 110, + 103, + 101, + 110, + 32, + 122, + 105, + 106, + 110, + 32, + 110, + 105, + 101, + 116, + 32, + 116, + 111, + 101, + 103, + 101, + 115, + 116, + 97, + 97, + 110, + 32, + 122, + 111, + 110, + 100, + 101, + 114, + 32, + 115, + 99, + 111, + 112, + 101, + 32, + 122, + 97, + 107, + 101, + 110, + 46, + 103, + 101, + 102, + 111, + 114, + 99, + 101, + 101, + 114, + 100, + 45, + 98, + 105, + 106, + 119, + 101, + 114, + 107, + 101, + 110, + 46, + 34, + 44, + 34, + 99, + 111, + 100, + 101, + 34, + 58, + 34, + 112, + 101, + 114, + 109, + 105, + 115, + 115, + 105, + 111, + 110, + 95, + 100, + 101, + 110, + 105, + 101, + 100, + 34, + 44, + 34, + 105, + 110, + 118, + 97, + 108, + 105, + 100, + 80, + 97, + 114, + 97, + 109, + 115, + 34, + 58, + 91, + 123, + 34, + 110, + 97, + 109, + 101, + 34, + 58, + 34, + 110, + 111, + 110, + 70, + 105, + 101, + 108, + 100, + 69, + 114, + 114, + 111, + 114, + 115, + 34, + 44, + 34, + 99, + 111, + 100, + 101, + 34, + 58, + 34, + 122, + 97, + 97, + 107, + 45, + 99, + 108, + 111, + 115, + 101, + 100, + 34, + 44, + 34, + 114, + 101, + 97, + 115, + 111, + 110, + 34, + 58, + 34, + 68, + 101, + 32, + 122, + 97, + 97, + 107, + 32, + 105, + 115, + 32, + 97, + 102, + 103, + 101, + 115, + 108, + 111, + 116, + 101, + 110, + 46, + 34, + 125, + 93, + 125 + ] + }, + "cookie": [], + "responseTime": 97, + "responseSize": 232 + }, + "id": "5b1f5f1f-d5e6-4ea2-9074-b09288d31162", + "assertions": [ + { + "assertion": "Resultaat aanmaken bij gesloten Zaak zonder scope zaken.geforceerd-bijwerken geeft 403", + "skipped": false + } + ] + }, + { + "cursor": { + "ref": "7e60fb9a-c34d-4481-a321-f19ac4888b08", + "length": 313, + "cycles": 1, + "position": 83, + "iteration": 0, + "httpRequestId": "b5a9b203-7c33-4212-a48a-8d6abc9ca335" + }, + "item": { + "id": "3f76b406-bf4d-49b8-afa9-25b1ee114f45", + "name": "(zrc-007e) Resultaat bij gesloten Zaak bijwerken niet toegestaan zonder scope zaken.geforceerd-bijwerken", + "request": { + "url": { + "host": [ + "{{zaak_resultaat_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "PUT", + "body": { + "mode": "raw", + "raw": "{\n\t\"zaak\": \"{{created_zaak_url}}\",\n\t\"resultaattype\": \"{{resultaattype_url}}\"\n}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "d71b10c1-1e83-4444-aa48-de00cfd42c32", + "type": "text/javascript", + "packages": {}, + "exec": [ + "pm.test(\"Resultaat bijwerken bij gesloten Zaak zonder scope zaken.geforceerd-bijwerken geeft 403\", function() {", + " pm.response.to.have.status(403);", + " pm.expect(pm.response.json().code).to.be.equal(\"permission_denied\");", + "});" + ], + "_lastExecutionId": "439af762-db93-4ca7-9e10-aee3c3c2409f" + } + }, + { + "listen": "prerequest", + "script": { + "id": "ed5ba4d7-09c0-4ef3-b2d0-73b3115109a8", + "type": "text/javascript", + "packages": {}, + "exec": [ + "" + ], + "_lastExecutionId": "081380d4-addd-44e7-bf94-9ac527d933b6" + } + } + ] + }, + "request": { + "url": { + "protocol": "http", + "port": "8080", + "path": [ + "index.php", + "apps", + "procest", + "api", + "zgw", + "zaken", + "v1", + "resultaten", + "9659e08c-1640-419a-a376-5a16bad6fd7c" + ], + "host": [ + "localhost" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Authorization", + "value": "Bearer eyJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJwcm9jZXN0LWxpbWl0ZWQiLCJjbGllbnRfaWQiOiJwcm9jZXN0LWxpbWl0ZWQiLCJpYXQiOiIxNzczMTQ1MTYwIiwidXNlcl9pZCI6InByb2Nlc3QtbGltaXRlZCIsInVzZXJfcmVwcmVzZW50YXRpb24iOiIifQ.g5pZIEjaa32nb3o0lQsbIbe3hNdVmtNYAv8QUlTJpbU", + "system": true + }, + { + "key": "User-Agent", + "value": "PostmanRuntime/7.39.1", + "system": true + }, + { + "key": "Accept", + "value": "*/*", + "system": true + }, + { + "key": "Cache-Control", + "value": "no-cache", + "system": true + }, + { + "key": "Postman-Token", + "value": "8d1823ec-fce5-4d4f-89f5-b26b9dc699eb", + "system": true + }, + { + "key": "Host", + "value": "localhost:8080", + "system": true + }, + { + "key": "Accept-Encoding", + "value": "gzip, deflate, br", + "system": true + }, + { + "key": "Connection", + "value": "keep-alive", + "system": true + }, + { + "key": "Content-Length", + "value": "257", + "system": true + }, + { + "key": "Cookie", + "value": "ocvp3112b4wg=493b2e6608f895c8cf338c08cc332261; oc_sessionPassphrase=LBNdKxRzA0iqoULIruNxDDh2BK3O%2BrCIU8aUmiUcOFvy5Xw1YfjwQNlmBW2IkGwJYtxXh9%2BwDN6vYuGNX07tXzkBtjQJUWTGdzf8AIOUIVxVx5DfyWAQZ7nmYmQv6XSE; nc_sameSiteCookielax=true; nc_sameSiteCookiestrict=true", + "system": true + } + ], + "method": "PUT", + "body": { + "mode": "raw", + "raw": "{\n\t\"zaak\": \"http://localhost:8080/index.php/apps/procest/api/zgw/zaken/v1/zaken/b648c5da-b590-4960-94a0-f0c5a3f9ed90\",\n\t\"resultaattype\": \"http://localhost:8080/index.php/apps/procest/api/zgw/catalogi/v1/resultaattypen/1fa4fb2f-1572-4fc1-848d-00a37ef6af45\"\n}" + }, + "auth": { + "type": "jwt", + "jwt": [ + { + "type": "string", + "value": "{\r\n \"iss\": \"procest-limited\",\r\n \"client_id\": \"procest-limited\",\r\n \"iat\": \"1773145160\",\r\n \"user_id\": \"procest-limited\",\r\n \"user_representation\": \"\"\r\n}", + "key": "payload" + }, + { + "type": "string", + "value": "procest-limited-secret-key-for-test", + "key": "secret" + }, + { + "type": "string", + "value": "HS256", + "key": "algorithm" + }, + { + "type": "boolean", + "value": false, + "key": "isSecretBase64Encoded" + }, + { + "type": "string", + "value": "header", + "key": "addTokenTo" + }, + { + "type": "string", + "value": "Bearer", + "key": "headerPrefix" + }, + { + "type": "string", + "value": "token", + "key": "queryParamKey" + }, + { + "type": "string", + "value": "{}", + "key": "header" + } + ] + } + }, + "response": { + "id": "56307c10-9a9b-4f44-afd8-2a71a96c22ff", + "status": "Forbidden", + "code": 403, + "header": [ + { + "key": "Date", + "value": "Tue, 10 Mar 2026 12:19:20 GMT" + }, + { + "key": "Server", + "value": "Apache/2.4.66 (Debian)" + }, + { + "key": "X-Content-Type-Options", + "value": "nosniff" + }, + { + "key": "X-Frame-Options", + "value": "SAMEORIGIN" + }, + { + "key": "X-Permitted-Cross-Domain-Policies", + "value": "none" + }, + { + "key": "X-Robots-Tag", + "value": "noindex, nofollow" + }, + { + "key": "Referrer-Policy", + "value": "no-referrer" + }, + { + "key": "X-Powered-By", + "value": "PHP/8.3.30" + }, + { + "key": "Content-Security-Policy", + "value": "default-src 'none';base-uri 'none';manifest-src 'self';frame-ancestors 'none'" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=493b2e6608f895c8cf338c08cc332261; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "X-Request-Id", + "value": "hdxkcZS5fp6fe0wRf0aj" + }, + { + "key": "Cache-Control", + "value": "no-cache, no-store, must-revalidate" + }, + { + "key": "Feature-Policy", + "value": "autoplay 'none';camera 'none';fullscreen 'none';geolocation 'none';microphone 'none';payment 'none'" + }, + { + "key": "Content-Length", + "value": "232" + }, + { + "key": "Keep-Alive", + "value": "timeout=5, max=67" + }, + { + "key": "Connection", + "value": "Keep-Alive" + }, + { + "key": "Content-Type", + "value": "application/json; charset=utf-8" + } + ], + "stream": { + "type": "Buffer", + "data": [ + 123, + 34, + 100, + 101, + 116, + 97, + 105, + 108, + 34, + 58, + 34, + 90, + 97, + 97, + 107, + 32, + 105, + 115, + 32, + 97, + 102, + 103, + 101, + 115, + 108, + 111, + 116, + 101, + 110, + 46, + 32, + 87, + 105, + 106, + 122, + 105, + 103, + 105, + 110, + 103, + 101, + 110, + 32, + 122, + 105, + 106, + 110, + 32, + 110, + 105, + 101, + 116, + 32, + 116, + 111, + 101, + 103, + 101, + 115, + 116, + 97, + 97, + 110, + 32, + 122, + 111, + 110, + 100, + 101, + 114, + 32, + 115, + 99, + 111, + 112, + 101, + 32, + 122, + 97, + 107, + 101, + 110, + 46, + 103, + 101, + 102, + 111, + 114, + 99, + 101, + 101, + 114, + 100, + 45, + 98, + 105, + 106, + 119, + 101, + 114, + 107, + 101, + 110, + 46, + 34, + 44, + 34, + 99, + 111, + 100, + 101, + 34, + 58, + 34, + 112, + 101, + 114, + 109, + 105, + 115, + 115, + 105, + 111, + 110, + 95, + 100, + 101, + 110, + 105, + 101, + 100, + 34, + 44, + 34, + 105, + 110, + 118, + 97, + 108, + 105, + 100, + 80, + 97, + 114, + 97, + 109, + 115, + 34, + 58, + 91, + 123, + 34, + 110, + 97, + 109, + 101, + 34, + 58, + 34, + 110, + 111, + 110, + 70, + 105, + 101, + 108, + 100, + 69, + 114, + 114, + 111, + 114, + 115, + 34, + 44, + 34, + 99, + 111, + 100, + 101, + 34, + 58, + 34, + 122, + 97, + 97, + 107, + 45, + 99, + 108, + 111, + 115, + 101, + 100, + 34, + 44, + 34, + 114, + 101, + 97, + 115, + 111, + 110, + 34, + 58, + 34, + 68, + 101, + 32, + 122, + 97, + 97, + 107, + 32, + 105, + 115, + 32, + 97, + 102, + 103, + 101, + 115, + 108, + 111, + 116, + 101, + 110, + 46, + 34, + 125, + 93, + 125 + ] + }, + "cookie": [], + "responseTime": 111, + "responseSize": 232 + }, + "id": "3f76b406-bf4d-49b8-afa9-25b1ee114f45", + "assertions": [ + { + "assertion": "Resultaat bijwerken bij gesloten Zaak zonder scope zaken.geforceerd-bijwerken geeft 403", + "skipped": false + } + ] + }, + { + "cursor": { + "ref": "3fbe2b9f-e913-41bc-897e-47df7867e536", + "length": 313, + "cycles": 1, + "position": 84, + "iteration": 0, + "httpRequestId": "4c34a960-f5fe-40e5-b121-266a1c6a907e" + }, + "item": { + "id": "4bd71676-2144-4846-950f-1380118563cb", + "name": "(zrc-007e) Resultaat bij gesloten Zaak deels bijwerken niet toegestaan zonder scope zaken.geforceerd-bijwerken", + "request": { + "url": { + "host": [ + "{{zaak_resultaat_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "PATCH", + "body": { + "mode": "raw", + "raw": "{\n\t\"zaak\": \"{{created_zaak_url}}\",\n\t\"resultaattype\": \"{{resultaattype_url}}\"\n}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "f0a177c1-9f84-4b58-afe1-53b5c1d4bc7f", + "type": "text/javascript", + "packages": {}, + "exec": [ + "pm.test(\"Resultaat deels bijwerken bij gesloten Zaak zonder scope zaken.geforceerd-bijwerken geeft 403\", function() {", + " pm.response.to.have.status(403);", + " pm.expect(pm.response.json().code).to.be.equal(\"permission_denied\");", + "});" + ], + "_lastExecutionId": "4c230604-baba-458f-98e3-715c37fae4ba" + } + }, + { + "listen": "prerequest", + "script": { + "id": "d5be5f05-91d9-47fe-aea6-649045bca588", + "type": "text/javascript", + "packages": {}, + "exec": [ + "" + ], + "_lastExecutionId": "21aaf3ad-3e26-4086-a792-748fd6d9341b" + } + } + ] + }, + "request": { + "url": { + "protocol": "http", + "port": "8080", + "path": [ + "index.php", + "apps", + "procest", + "api", + "zgw", + "zaken", + "v1", + "resultaten", + "9659e08c-1640-419a-a376-5a16bad6fd7c" + ], + "host": [ + "localhost" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Authorization", + "value": "Bearer eyJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJwcm9jZXN0LWxpbWl0ZWQiLCJjbGllbnRfaWQiOiJwcm9jZXN0LWxpbWl0ZWQiLCJpYXQiOiIxNzczMTQ1MTYxIiwidXNlcl9pZCI6InByb2Nlc3QtbGltaXRlZCIsInVzZXJfcmVwcmVzZW50YXRpb24iOiIifQ.xCho9S74ZYqtjInFmc_PTHEhzsboNUCbUJZUzmAv_Do", + "system": true + }, + { + "key": "User-Agent", + "value": "PostmanRuntime/7.39.1", + "system": true + }, + { + "key": "Accept", + "value": "*/*", + "system": true + }, + { + "key": "Cache-Control", + "value": "no-cache", + "system": true + }, + { + "key": "Postman-Token", + "value": "bef68c70-b6f9-45d8-b4dd-c89dd66bbaf0", + "system": true + }, + { + "key": "Host", + "value": "localhost:8080", + "system": true + }, + { + "key": "Accept-Encoding", + "value": "gzip, deflate, br", + "system": true + }, + { + "key": "Connection", + "value": "keep-alive", + "system": true + }, + { + "key": "Content-Length", + "value": "257", + "system": true + }, + { + "key": "Cookie", + "value": "ocvp3112b4wg=493b2e6608f895c8cf338c08cc332261; oc_sessionPassphrase=LBNdKxRzA0iqoULIruNxDDh2BK3O%2BrCIU8aUmiUcOFvy5Xw1YfjwQNlmBW2IkGwJYtxXh9%2BwDN6vYuGNX07tXzkBtjQJUWTGdzf8AIOUIVxVx5DfyWAQZ7nmYmQv6XSE; nc_sameSiteCookielax=true; nc_sameSiteCookiestrict=true", + "system": true + } + ], + "method": "PATCH", + "body": { + "mode": "raw", + "raw": "{\n\t\"zaak\": \"http://localhost:8080/index.php/apps/procest/api/zgw/zaken/v1/zaken/b648c5da-b590-4960-94a0-f0c5a3f9ed90\",\n\t\"resultaattype\": \"http://localhost:8080/index.php/apps/procest/api/zgw/catalogi/v1/resultaattypen/1fa4fb2f-1572-4fc1-848d-00a37ef6af45\"\n}" + }, + "auth": { + "type": "jwt", + "jwt": [ + { + "type": "string", + "value": "{\r\n \"iss\": \"procest-limited\",\r\n \"client_id\": \"procest-limited\",\r\n \"iat\": \"1773145161\",\r\n \"user_id\": \"procest-limited\",\r\n \"user_representation\": \"\"\r\n}", + "key": "payload" + }, + { + "type": "string", + "value": "procest-limited-secret-key-for-test", + "key": "secret" + }, + { + "type": "string", + "value": "HS256", + "key": "algorithm" + }, + { + "type": "boolean", + "value": false, + "key": "isSecretBase64Encoded" + }, + { + "type": "string", + "value": "header", + "key": "addTokenTo" + }, + { + "type": "string", + "value": "Bearer", + "key": "headerPrefix" + }, + { + "type": "string", + "value": "token", + "key": "queryParamKey" + }, + { + "type": "string", + "value": "{}", + "key": "header" + } + ] + } + }, + "response": { + "id": "facde1c9-4653-4246-868d-cef1079b1db6", + "status": "Forbidden", + "code": 403, + "header": [ + { + "key": "Date", + "value": "Tue, 10 Mar 2026 12:19:20 GMT" + }, + { + "key": "Server", + "value": "Apache/2.4.66 (Debian)" + }, + { + "key": "X-Content-Type-Options", + "value": "nosniff" + }, + { + "key": "X-Frame-Options", + "value": "SAMEORIGIN" + }, + { + "key": "X-Permitted-Cross-Domain-Policies", + "value": "none" + }, + { + "key": "X-Robots-Tag", + "value": "noindex, nofollow" + }, + { + "key": "Referrer-Policy", + "value": "no-referrer" + }, + { + "key": "X-Powered-By", + "value": "PHP/8.3.30" + }, + { + "key": "Content-Security-Policy", + "value": "default-src 'none';base-uri 'none';manifest-src 'self';frame-ancestors 'none'" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=493b2e6608f895c8cf338c08cc332261; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "X-Request-Id", + "value": "W55voGZykdGRz4Db8pNS" + }, + { + "key": "Cache-Control", + "value": "no-cache, no-store, must-revalidate" + }, + { + "key": "Feature-Policy", + "value": "autoplay 'none';camera 'none';fullscreen 'none';geolocation 'none';microphone 'none';payment 'none'" + }, + { + "key": "Content-Length", + "value": "232" + }, + { + "key": "Keep-Alive", + "value": "timeout=5, max=66" + }, + { + "key": "Connection", + "value": "Keep-Alive" + }, + { + "key": "Content-Type", + "value": "application/json; charset=utf-8" + } + ], + "stream": { + "type": "Buffer", + "data": [ + 123, + 34, + 100, + 101, + 116, + 97, + 105, + 108, + 34, + 58, + 34, + 90, + 97, + 97, + 107, + 32, + 105, + 115, + 32, + 97, + 102, + 103, + 101, + 115, + 108, + 111, + 116, + 101, + 110, + 46, + 32, + 87, + 105, + 106, + 122, + 105, + 103, + 105, + 110, + 103, + 101, + 110, + 32, + 122, + 105, + 106, + 110, + 32, + 110, + 105, + 101, + 116, + 32, + 116, + 111, + 101, + 103, + 101, + 115, + 116, + 97, + 97, + 110, + 32, + 122, + 111, + 110, + 100, + 101, + 114, + 32, + 115, + 99, + 111, + 112, + 101, + 32, + 122, + 97, + 107, + 101, + 110, + 46, + 103, + 101, + 102, + 111, + 114, + 99, + 101, + 101, + 114, + 100, + 45, + 98, + 105, + 106, + 119, + 101, + 114, + 107, + 101, + 110, + 46, + 34, + 44, + 34, + 99, + 111, + 100, + 101, + 34, + 58, + 34, + 112, + 101, + 114, + 109, + 105, + 115, + 115, + 105, + 111, + 110, + 95, + 100, + 101, + 110, + 105, + 101, + 100, + 34, + 44, + 34, + 105, + 110, + 118, + 97, + 108, + 105, + 100, + 80, + 97, + 114, + 97, + 109, + 115, + 34, + 58, + 91, + 123, + 34, + 110, + 97, + 109, + 101, + 34, + 58, + 34, + 110, + 111, + 110, + 70, + 105, + 101, + 108, + 100, + 69, + 114, + 114, + 111, + 114, + 115, + 34, + 44, + 34, + 99, + 111, + 100, + 101, + 34, + 58, + 34, + 122, + 97, + 97, + 107, + 45, + 99, + 108, + 111, + 115, + 101, + 100, + 34, + 44, + 34, + 114, + 101, + 97, + 115, + 111, + 110, + 34, + 58, + 34, + 68, + 101, + 32, + 122, + 97, + 97, + 107, + 32, + 105, + 115, + 32, + 97, + 102, + 103, + 101, + 115, + 108, + 111, + 116, + 101, + 110, + 46, + 34, + 125, + 93, + 125 + ] + }, + "cookie": [], + "responseTime": 101, + "responseSize": 232 + }, + "id": "4bd71676-2144-4846-950f-1380118563cb", + "assertions": [ + { + "assertion": "Resultaat deels bijwerken bij gesloten Zaak zonder scope zaken.geforceerd-bijwerken geeft 403", + "skipped": false + } + ] + }, + { + "cursor": { + "ref": "afb65ea1-0f62-45fd-97dd-5740122ddf9b", + "length": 313, + "cycles": 1, + "position": 85, + "iteration": 0, + "httpRequestId": "81778aed-c3c1-42e3-b401-1786fd4d71e2" + }, + "item": { + "id": "10b0b6fc-6ba1-4a71-b269-fc9e618810af", + "name": "(zrc-007e) Resultaat bij gesloten Zaak verwijderen niet toegestaan zonder scope zaken.geforceerd-bijwerken", + "request": { + "url": { + "host": [ + "{{zaak_resultaat_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "DELETE" + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "94318c8f-b4a7-4ad5-8b2a-407d38f3aac6", + "type": "text/javascript", + "packages": {}, + "exec": [ + "pm.test(\"Resultaat verwijderen bij gesloten Zaak zonder scope zaken.geforceerd-bijwerken geeft 403\", function() {", + " pm.response.to.have.status(403);", + " pm.expect(pm.response.json().code).to.be.equal(\"permission_denied\");", + "});" + ], + "_lastExecutionId": "a7daf9aa-ccce-41fd-8fdb-9bec3d3240d0" + } + }, + { + "listen": "prerequest", + "script": { + "id": "ff47ff7f-3321-4060-8828-e7bacf56ad35", + "type": "text/javascript", + "packages": {}, + "exec": [ + "" + ], + "_lastExecutionId": "5e3145cf-2985-4128-8a57-9402d88515c5" + } + } + ] + }, + "request": { + "url": { + "protocol": "http", + "port": "8080", + "path": [ + "index.php", + "apps", + "procest", + "api", + "zgw", + "zaken", + "v1", + "resultaten", + "9659e08c-1640-419a-a376-5a16bad6fd7c" + ], + "host": [ + "localhost" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Authorization", + "value": "Bearer eyJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJwcm9jZXN0LWxpbWl0ZWQiLCJjbGllbnRfaWQiOiJwcm9jZXN0LWxpbWl0ZWQiLCJpYXQiOiIxNzczMTQ1MTYxIiwidXNlcl9pZCI6InByb2Nlc3QtbGltaXRlZCIsInVzZXJfcmVwcmVzZW50YXRpb24iOiIifQ.xCho9S74ZYqtjInFmc_PTHEhzsboNUCbUJZUzmAv_Do", + "system": true + }, + { + "key": "User-Agent", + "value": "PostmanRuntime/7.39.1", + "system": true + }, + { + "key": "Accept", + "value": "*/*", + "system": true + }, + { + "key": "Cache-Control", + "value": "no-cache", + "system": true + }, + { + "key": "Postman-Token", + "value": "03111e95-e783-4d3a-868f-1abe3a4592e7", + "system": true + }, + { + "key": "Host", + "value": "localhost:8080", + "system": true + }, + { + "key": "Accept-Encoding", + "value": "gzip, deflate, br", + "system": true + }, + { + "key": "Connection", + "value": "keep-alive", + "system": true + }, + { + "key": "Cookie", + "value": "ocvp3112b4wg=493b2e6608f895c8cf338c08cc332261; oc_sessionPassphrase=LBNdKxRzA0iqoULIruNxDDh2BK3O%2BrCIU8aUmiUcOFvy5Xw1YfjwQNlmBW2IkGwJYtxXh9%2BwDN6vYuGNX07tXzkBtjQJUWTGdzf8AIOUIVxVx5DfyWAQZ7nmYmQv6XSE; nc_sameSiteCookielax=true; nc_sameSiteCookiestrict=true", + "system": true + } + ], + "method": "DELETE", + "auth": { + "type": "jwt", + "jwt": [ + { + "type": "string", + "value": "{\r\n \"iss\": \"procest-limited\",\r\n \"client_id\": \"procest-limited\",\r\n \"iat\": \"1773145161\",\r\n \"user_id\": \"procest-limited\",\r\n \"user_representation\": \"\"\r\n}", + "key": "payload" + }, + { + "type": "string", + "value": "procest-limited-secret-key-for-test", + "key": "secret" + }, + { + "type": "string", + "value": "HS256", + "key": "algorithm" + }, + { + "type": "boolean", + "value": false, + "key": "isSecretBase64Encoded" + }, + { + "type": "string", + "value": "header", + "key": "addTokenTo" + }, + { + "type": "string", + "value": "Bearer", + "key": "headerPrefix" + }, + { + "type": "string", + "value": "token", + "key": "queryParamKey" + }, + { + "type": "string", + "value": "{}", + "key": "header" + } + ] + } + }, + "response": { + "id": "a7acad9e-12a8-4573-948a-9c648ac793b7", + "status": "Forbidden", + "code": 403, + "header": [ + { + "key": "Date", + "value": "Tue, 10 Mar 2026 12:19:20 GMT" + }, + { + "key": "Server", + "value": "Apache/2.4.66 (Debian)" + }, + { + "key": "X-Content-Type-Options", + "value": "nosniff" + }, + { + "key": "X-Frame-Options", + "value": "SAMEORIGIN" + }, + { + "key": "X-Permitted-Cross-Domain-Policies", + "value": "none" + }, + { + "key": "X-Robots-Tag", + "value": "noindex, nofollow" + }, + { + "key": "Referrer-Policy", + "value": "no-referrer" + }, + { + "key": "X-Powered-By", + "value": "PHP/8.3.30" + }, + { + "key": "Content-Security-Policy", + "value": "default-src 'none';base-uri 'none';manifest-src 'self';frame-ancestors 'none'" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=493b2e6608f895c8cf338c08cc332261; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "X-Request-Id", + "value": "urAewWCeJS5BkakBPWOg" + }, + { + "key": "Cache-Control", + "value": "no-cache, no-store, must-revalidate" + }, + { + "key": "Feature-Policy", + "value": "autoplay 'none';camera 'none';fullscreen 'none';geolocation 'none';microphone 'none';payment 'none'" + }, + { + "key": "Content-Length", + "value": "232" + }, + { + "key": "Keep-Alive", + "value": "timeout=5, max=65" + }, + { + "key": "Connection", + "value": "Keep-Alive" + }, + { + "key": "Content-Type", + "value": "application/json; charset=utf-8" + } + ], + "stream": { + "type": "Buffer", + "data": [ + 123, + 34, + 100, + 101, + 116, + 97, + 105, + 108, + 34, + 58, + 34, + 90, + 97, + 97, + 107, + 32, + 105, + 115, + 32, + 97, + 102, + 103, + 101, + 115, + 108, + 111, + 116, + 101, + 110, + 46, + 32, + 87, + 105, + 106, + 122, + 105, + 103, + 105, + 110, + 103, + 101, + 110, + 32, + 122, + 105, + 106, + 110, + 32, + 110, + 105, + 101, + 116, + 32, + 116, + 111, + 101, + 103, + 101, + 115, + 116, + 97, + 97, + 110, + 32, + 122, + 111, + 110, + 100, + 101, + 114, + 32, + 115, + 99, + 111, + 112, + 101, + 32, + 122, + 97, + 107, + 101, + 110, + 46, + 103, + 101, + 102, + 111, + 114, + 99, + 101, + 101, + 114, + 100, + 45, + 98, + 105, + 106, + 119, + 101, + 114, + 107, + 101, + 110, + 46, + 34, + 44, + 34, + 99, + 111, + 100, + 101, + 34, + 58, + 34, + 112, + 101, + 114, + 109, + 105, + 115, + 115, + 105, + 111, + 110, + 95, + 100, + 101, + 110, + 105, + 101, + 100, + 34, + 44, + 34, + 105, + 110, + 118, + 97, + 108, + 105, + 100, + 80, + 97, + 114, + 97, + 109, + 115, + 34, + 58, + 91, + 123, + 34, + 110, + 97, + 109, + 101, + 34, + 58, + 34, + 110, + 111, + 110, + 70, + 105, + 101, + 108, + 100, + 69, + 114, + 114, + 111, + 114, + 115, + 34, + 44, + 34, + 99, + 111, + 100, + 101, + 34, + 58, + 34, + 122, + 97, + 97, + 107, + 45, + 99, + 108, + 111, + 115, + 101, + 100, + 34, + 44, + 34, + 114, + 101, + 97, + 115, + 111, + 110, + 34, + 58, + 34, + 68, + 101, + 32, + 122, + 97, + 97, + 107, + 32, + 105, + 115, + 32, + 97, + 102, + 103, + 101, + 115, + 108, + 111, + 116, + 101, + 110, + 46, + 34, + 125, + 93, + 125 + ] + }, + "cookie": [], + "responseTime": 104, + "responseSize": 232 + }, + "id": "10b0b6fc-6ba1-4a71-b269-fc9e618810af", + "assertions": [ + { + "assertion": "Resultaat verwijderen bij gesloten Zaak zonder scope zaken.geforceerd-bijwerken geeft 403", + "skipped": false + } + ] + }, + { + "cursor": { + "ref": "fb03cb9b-881e-490c-a706-3a6367ba9da7", + "length": 313, + "cycles": 1, + "position": 86, + "iteration": 0, + "httpRequestId": "801733f3-ec16-4017-a1e4-6cf612ef8524" + }, + "item": { + "id": "24e55e60-1433-4f20-a2a4-6443e34d5b64", + "name": "(zrc-007f) Rol bij gesloten Zaak aanmaken niet toegestaan zonder scope zaken.geforceerd-bijwerken", + "request": { + "url": { + "path": [ + "rollen" + ], + "host": [ + "{{zrc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n\t\"zaak\": \"{{created_zaak_url}}\",\n\t\"betrokkene\": \"http://example.com/2d0815580af94ee0a15aa677aa646e1a\",\n\t\"betrokkeneType\": \"natuurlijk_persoon\",\n\t\"rolomschrijving\": \"behandelaar\",\n\t\"roltoelichting\": \"testrol\",\n\t\"roltype\": \"{{roltype_url}}\"\n}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "9148221a-4e62-406f-94b4-7f20b8db9371", + "type": "text/javascript", + "packages": {}, + "exec": [ + "pm.test(\"Rol aanmaken bij gesloten Zaak zonder scope zaken.geforceerd-bijwerken geeft 403\", function() {", + " pm.response.to.have.status(403);", + " pm.expect(pm.response.json().code).to.be.equal(\"permission_denied\");", + "});" + ], + "_lastExecutionId": "b09cc1ca-19cd-4d24-9d5d-b3d397d5bb6d" + } + }, + { + "listen": "prerequest", + "script": { + "id": "f2a1f393-8ba0-40ab-bf19-ae2756e911e0", + "type": "text/javascript", + "packages": {}, + "exec": [ + "" + ], + "_lastExecutionId": "5e20cd93-2624-45e9-882f-f57d4c1280d5" + } + } + ] + }, + "request": { + "url": { + "protocol": "http", + "port": "8080", + "path": [ + "index.php", + "apps", + "procest", + "api", + "zgw", + "zaken", + "v1", + "rollen" + ], + "host": [ + "localhost" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Authorization", + "value": "Bearer eyJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJwcm9jZXN0LWxpbWl0ZWQiLCJjbGllbnRfaWQiOiJwcm9jZXN0LWxpbWl0ZWQiLCJpYXQiOiIxNzczMTQ1MTYxIiwidXNlcl9pZCI6InByb2Nlc3QtbGltaXRlZCIsInVzZXJfcmVwcmVzZW50YXRpb24iOiIifQ.xCho9S74ZYqtjInFmc_PTHEhzsboNUCbUJZUzmAv_Do", + "system": true + }, + { + "key": "User-Agent", + "value": "PostmanRuntime/7.39.1", + "system": true + }, + { + "key": "Accept", + "value": "*/*", + "system": true + }, + { + "key": "Cache-Control", + "value": "no-cache", + "system": true + }, + { + "key": "Postman-Token", + "value": "0e3ad093-0ddd-4472-b049-e6905c2e6560", + "system": true + }, + { + "key": "Host", + "value": "localhost:8080", + "system": true + }, + { + "key": "Accept-Encoding", + "value": "gzip, deflate, br", + "system": true + }, + { + "key": "Connection", + "value": "keep-alive", + "system": true + }, + { + "key": "Content-Length", + "value": "421", + "system": true + }, + { + "key": "Cookie", + "value": "ocvp3112b4wg=493b2e6608f895c8cf338c08cc332261; oc_sessionPassphrase=LBNdKxRzA0iqoULIruNxDDh2BK3O%2BrCIU8aUmiUcOFvy5Xw1YfjwQNlmBW2IkGwJYtxXh9%2BwDN6vYuGNX07tXzkBtjQJUWTGdzf8AIOUIVxVx5DfyWAQZ7nmYmQv6XSE; nc_sameSiteCookielax=true; nc_sameSiteCookiestrict=true", + "system": true + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n\t\"zaak\": \"http://localhost:8080/index.php/apps/procest/api/zgw/zaken/v1/zaken/b648c5da-b590-4960-94a0-f0c5a3f9ed90\",\n\t\"betrokkene\": \"http://example.com/2d0815580af94ee0a15aa677aa646e1a\",\n\t\"betrokkeneType\": \"natuurlijk_persoon\",\n\t\"rolomschrijving\": \"behandelaar\",\n\t\"roltoelichting\": \"testrol\",\n\t\"roltype\": \"http://localhost:8080/index.php/apps/procest/api/zgw/catalogi/v1/roltypen/9fcbc90a-96d3-4ab3-a4f8-d468250881c5\"\n}" + }, + "auth": { + "type": "jwt", + "jwt": [ + { + "type": "string", + "value": "{\r\n \"iss\": \"procest-limited\",\r\n \"client_id\": \"procest-limited\",\r\n \"iat\": \"1773145161\",\r\n \"user_id\": \"procest-limited\",\r\n \"user_representation\": \"\"\r\n}", + "key": "payload" + }, + { + "type": "string", + "value": "procest-limited-secret-key-for-test", + "key": "secret" + }, + { + "type": "string", + "value": "HS256", + "key": "algorithm" + }, + { + "type": "boolean", + "value": false, + "key": "isSecretBase64Encoded" + }, + { + "type": "string", + "value": "header", + "key": "addTokenTo" + }, + { + "type": "string", + "value": "Bearer", + "key": "headerPrefix" + }, + { + "type": "string", + "value": "token", + "key": "queryParamKey" + }, + { + "type": "string", + "value": "{}", + "key": "header" + } + ] + } + }, + "response": { + "id": "7afb7b50-847a-4dd1-9a2e-f96365a0e0bc", + "status": "Forbidden", + "code": 403, + "header": [ + { + "key": "Date", + "value": "Tue, 10 Mar 2026 12:19:20 GMT" + }, + { + "key": "Server", + "value": "Apache/2.4.66 (Debian)" + }, + { + "key": "X-Content-Type-Options", + "value": "nosniff" + }, + { + "key": "X-Frame-Options", + "value": "SAMEORIGIN" + }, + { + "key": "X-Permitted-Cross-Domain-Policies", + "value": "none" + }, + { + "key": "X-Robots-Tag", + "value": "noindex, nofollow" + }, + { + "key": "Referrer-Policy", + "value": "no-referrer" + }, + { + "key": "X-Powered-By", + "value": "PHP/8.3.30" + }, + { + "key": "Content-Security-Policy", + "value": "default-src 'none';base-uri 'none';manifest-src 'self';frame-ancestors 'none'" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=493b2e6608f895c8cf338c08cc332261; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "X-Request-Id", + "value": "Cp36RiUgnjKeLq6rfNKL" + }, + { + "key": "Cache-Control", + "value": "no-cache, no-store, must-revalidate" + }, + { + "key": "Feature-Policy", + "value": "autoplay 'none';camera 'none';fullscreen 'none';geolocation 'none';microphone 'none';payment 'none'" + }, + { + "key": "Content-Length", + "value": "232" + }, + { + "key": "Keep-Alive", + "value": "timeout=5, max=64" + }, + { + "key": "Connection", + "value": "Keep-Alive" + }, + { + "key": "Content-Type", + "value": "application/json; charset=utf-8" + } + ], + "stream": { + "type": "Buffer", + "data": [ + 123, + 34, + 100, + 101, + 116, + 97, + 105, + 108, + 34, + 58, + 34, + 90, + 97, + 97, + 107, + 32, + 105, + 115, + 32, + 97, + 102, + 103, + 101, + 115, + 108, + 111, + 116, + 101, + 110, + 46, + 32, + 87, + 105, + 106, + 122, + 105, + 103, + 105, + 110, + 103, + 101, + 110, + 32, + 122, + 105, + 106, + 110, + 32, + 110, + 105, + 101, + 116, + 32, + 116, + 111, + 101, + 103, + 101, + 115, + 116, + 97, + 97, + 110, + 32, + 122, + 111, + 110, + 100, + 101, + 114, + 32, + 115, + 99, + 111, + 112, + 101, + 32, + 122, + 97, + 107, + 101, + 110, + 46, + 103, + 101, + 102, + 111, + 114, + 99, + 101, + 101, + 114, + 100, + 45, + 98, + 105, + 106, + 119, + 101, + 114, + 107, + 101, + 110, + 46, + 34, + 44, + 34, + 99, + 111, + 100, + 101, + 34, + 58, + 34, + 112, + 101, + 114, + 109, + 105, + 115, + 115, + 105, + 111, + 110, + 95, + 100, + 101, + 110, + 105, + 101, + 100, + 34, + 44, + 34, + 105, + 110, + 118, + 97, + 108, + 105, + 100, + 80, + 97, + 114, + 97, + 109, + 115, + 34, + 58, + 91, + 123, + 34, + 110, + 97, + 109, + 101, + 34, + 58, + 34, + 110, + 111, + 110, + 70, + 105, + 101, + 108, + 100, + 69, + 114, + 114, + 111, + 114, + 115, + 34, + 44, + 34, + 99, + 111, + 100, + 101, + 34, + 58, + 34, + 122, + 97, + 97, + 107, + 45, + 99, + 108, + 111, + 115, + 101, + 100, + 34, + 44, + 34, + 114, + 101, + 97, + 115, + 111, + 110, + 34, + 58, + 34, + 68, + 101, + 32, + 122, + 97, + 97, + 107, + 32, + 105, + 115, + 32, + 97, + 102, + 103, + 101, + 115, + 108, + 111, + 116, + 101, + 110, + 46, + 34, + 125, + 93, + 125 + ] + }, + "cookie": [], + "responseTime": 98, + "responseSize": 232 + }, + "id": "24e55e60-1433-4f20-a2a4-6443e34d5b64", + "assertions": [ + { + "assertion": "Rol aanmaken bij gesloten Zaak zonder scope zaken.geforceerd-bijwerken geeft 403", + "skipped": false + } + ] + }, + { + "cursor": { + "ref": "1683d389-e135-438b-b3f4-d12ec15e2a42", + "length": 313, + "cycles": 1, + "position": 87, + "iteration": 0, + "httpRequestId": "dc370185-f280-4db1-836e-c81824ec4a2f" + }, + "item": { + "id": "cb6b8d00-8678-49e6-bba2-8b5aa8bc6cfa", + "name": "(zrc-007f) Rol bij gesloten Zaak verwijderen niet toegestaan zonder scope zaken.geforceerd-bijwerken", + "request": { + "url": { + "host": [ + "{{rol_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "DELETE" + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "74d0244b-d7d9-4c34-8c14-34d1c4848a44", + "type": "text/javascript", + "packages": {}, + "exec": [ + "pm.test(\"Rol verwijderen bij gesloten Zaak zonder scope zaken.geforceerd-bijwerken geeft 403\", function() {", + " pm.response.to.have.status(403);", + " pm.expect(pm.response.json().code).to.be.equal(\"permission_denied\");", + "});" + ], + "_lastExecutionId": "a1225580-037f-43dc-b82d-e4230bc3f91e" + } + }, + { + "listen": "prerequest", + "script": { + "id": "9095fc8a-d56b-49e0-8c3e-170961acdfc2", + "type": "text/javascript", + "packages": {}, + "exec": [ + "" + ], + "_lastExecutionId": "4f26a03a-acf6-464f-afd4-2e6d2ec6c7b2" + } + } + ] + }, + "request": { + "url": { + "protocol": "http", + "port": "8080", + "path": [ + "index.php", + "apps", + "procest", + "api", + "zgw", + "zaken", + "v1", + "rollen", + "c5832120-c275-400d-926d-d9cc2d2234c3" + ], + "host": [ + "localhost" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Authorization", + "value": "Bearer eyJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJwcm9jZXN0LWxpbWl0ZWQiLCJjbGllbnRfaWQiOiJwcm9jZXN0LWxpbWl0ZWQiLCJpYXQiOiIxNzczMTQ1MTYxIiwidXNlcl9pZCI6InByb2Nlc3QtbGltaXRlZCIsInVzZXJfcmVwcmVzZW50YXRpb24iOiIifQ.xCho9S74ZYqtjInFmc_PTHEhzsboNUCbUJZUzmAv_Do", + "system": true + }, + { + "key": "User-Agent", + "value": "PostmanRuntime/7.39.1", + "system": true + }, + { + "key": "Accept", + "value": "*/*", + "system": true + }, + { + "key": "Cache-Control", + "value": "no-cache", + "system": true + }, + { + "key": "Postman-Token", + "value": "db0c7660-42b1-46e2-b605-759bf96787b2", + "system": true + }, + { + "key": "Host", + "value": "localhost:8080", + "system": true + }, + { + "key": "Accept-Encoding", + "value": "gzip, deflate, br", + "system": true + }, + { + "key": "Connection", + "value": "keep-alive", + "system": true + }, + { + "key": "Cookie", + "value": "ocvp3112b4wg=493b2e6608f895c8cf338c08cc332261; oc_sessionPassphrase=LBNdKxRzA0iqoULIruNxDDh2BK3O%2BrCIU8aUmiUcOFvy5Xw1YfjwQNlmBW2IkGwJYtxXh9%2BwDN6vYuGNX07tXzkBtjQJUWTGdzf8AIOUIVxVx5DfyWAQZ7nmYmQv6XSE; nc_sameSiteCookielax=true; nc_sameSiteCookiestrict=true", + "system": true + } + ], + "method": "DELETE", + "auth": { + "type": "jwt", + "jwt": [ + { + "type": "string", + "value": "{\r\n \"iss\": \"procest-limited\",\r\n \"client_id\": \"procest-limited\",\r\n \"iat\": \"1773145161\",\r\n \"user_id\": \"procest-limited\",\r\n \"user_representation\": \"\"\r\n}", + "key": "payload" + }, + { + "type": "string", + "value": "procest-limited-secret-key-for-test", + "key": "secret" + }, + { + "type": "string", + "value": "HS256", + "key": "algorithm" + }, + { + "type": "boolean", + "value": false, + "key": "isSecretBase64Encoded" + }, + { + "type": "string", + "value": "header", + "key": "addTokenTo" + }, + { + "type": "string", + "value": "Bearer", + "key": "headerPrefix" + }, + { + "type": "string", + "value": "token", + "key": "queryParamKey" + }, + { + "type": "string", + "value": "{}", + "key": "header" + } + ] + } + }, + "response": { + "id": "aa4d5518-dfc7-4317-8d69-41fda99f06c8", + "status": "Forbidden", + "code": 403, + "header": [ + { + "key": "Date", + "value": "Tue, 10 Mar 2026 12:19:20 GMT" + }, + { + "key": "Server", + "value": "Apache/2.4.66 (Debian)" + }, + { + "key": "X-Content-Type-Options", + "value": "nosniff" + }, + { + "key": "X-Frame-Options", + "value": "SAMEORIGIN" + }, + { + "key": "X-Permitted-Cross-Domain-Policies", + "value": "none" + }, + { + "key": "X-Robots-Tag", + "value": "noindex, nofollow" + }, + { + "key": "Referrer-Policy", + "value": "no-referrer" + }, + { + "key": "X-Powered-By", + "value": "PHP/8.3.30" + }, + { + "key": "Content-Security-Policy", + "value": "default-src 'none';base-uri 'none';manifest-src 'self';frame-ancestors 'none'" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=493b2e6608f895c8cf338c08cc332261; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "X-Request-Id", + "value": "ohux0AfZB07xVV2XuuZq" + }, + { + "key": "Cache-Control", + "value": "no-cache, no-store, must-revalidate" + }, + { + "key": "Feature-Policy", + "value": "autoplay 'none';camera 'none';fullscreen 'none';geolocation 'none';microphone 'none';payment 'none'" + }, + { + "key": "Content-Length", + "value": "232" + }, + { + "key": "Keep-Alive", + "value": "timeout=5, max=63" + }, + { + "key": "Connection", + "value": "Keep-Alive" + }, + { + "key": "Content-Type", + "value": "application/json; charset=utf-8" + } + ], + "stream": { + "type": "Buffer", + "data": [ + 123, + 34, + 100, + 101, + 116, + 97, + 105, + 108, + 34, + 58, + 34, + 90, + 97, + 97, + 107, + 32, + 105, + 115, + 32, + 97, + 102, + 103, + 101, + 115, + 108, + 111, + 116, + 101, + 110, + 46, + 32, + 87, + 105, + 106, + 122, + 105, + 103, + 105, + 110, + 103, + 101, + 110, + 32, + 122, + 105, + 106, + 110, + 32, + 110, + 105, + 101, + 116, + 32, + 116, + 111, + 101, + 103, + 101, + 115, + 116, + 97, + 97, + 110, + 32, + 122, + 111, + 110, + 100, + 101, + 114, + 32, + 115, + 99, + 111, + 112, + 101, + 32, + 122, + 97, + 107, + 101, + 110, + 46, + 103, + 101, + 102, + 111, + 114, + 99, + 101, + 101, + 114, + 100, + 45, + 98, + 105, + 106, + 119, + 101, + 114, + 107, + 101, + 110, + 46, + 34, + 44, + 34, + 99, + 111, + 100, + 101, + 34, + 58, + 34, + 112, + 101, + 114, + 109, + 105, + 115, + 115, + 105, + 111, + 110, + 95, + 100, + 101, + 110, + 105, + 101, + 100, + 34, + 44, + 34, + 105, + 110, + 118, + 97, + 108, + 105, + 100, + 80, + 97, + 114, + 97, + 109, + 115, + 34, + 58, + 91, + 123, + 34, + 110, + 97, + 109, + 101, + 34, + 58, + 34, + 110, + 111, + 110, + 70, + 105, + 101, + 108, + 100, + 69, + 114, + 114, + 111, + 114, + 115, + 34, + 44, + 34, + 99, + 111, + 100, + 101, + 34, + 58, + 34, + 122, + 97, + 97, + 107, + 45, + 99, + 108, + 111, + 115, + 101, + 100, + 34, + 44, + 34, + 114, + 101, + 97, + 115, + 111, + 110, + 34, + 58, + 34, + 68, + 101, + 32, + 122, + 97, + 97, + 107, + 32, + 105, + 115, + 32, + 97, + 102, + 103, + 101, + 115, + 108, + 111, + 116, + 101, + 110, + 46, + 34, + 125, + 93, + 125 + ] + }, + "cookie": [], + "responseTime": 138, + "responseSize": 232 + }, + "id": "cb6b8d00-8678-49e6-bba2-8b5aa8bc6cfa", + "assertions": [ + { + "assertion": "Rol verwijderen bij gesloten Zaak zonder scope zaken.geforceerd-bijwerken geeft 403", + "skipped": false + } + ] + }, + { + "cursor": { + "ref": "80ab8d46-dc72-40aa-8a44-4865e19619ab", + "length": 313, + "cycles": 1, + "position": 88, + "iteration": 0, + "httpRequestId": "3e61f24e-65e3-4425-81ae-3cec49d1fc58" + }, + "item": { + "id": "cac2d49e-6529-44ee-ba7f-8c6a82cb21bf", + "name": "(zrc-007g) Status toevoegen bij gesloten Zaak is niet toegestaan zonder scope zaken.geforceerd-bijwerken", + "request": { + "url": { + "path": [ + "statussen" + ], + "host": [ + "{{zrc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n\t\"zaak\": \"{{created_zaak_url}}\",\n\t\"statustype\": \"{{eindstatustype}}\",\n\t\"datumStatusGezet\": \"2018-04-22T13:37:00\"\n}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "40d1ffcb-5b3c-497e-a255-e6344fde4282", + "type": "text/javascript", + "packages": {}, + "exec": [ + "pm.test(\"Status aanmaken bij gesloten Zaak zonder scope zaken.geforceerd-bijwerken geeft 403\", function() {", + " pm.response.to.have.status(403);", + " pm.expect(pm.response.json().code).to.be.equal(\"permission_denied\");", + "});" + ], + "_lastExecutionId": "1455dded-9f11-4f85-81a9-5cfb50264557" + } + }, + { + "listen": "prerequest", + "script": { + "id": "df5d3734-c3d5-44f9-9b8f-7c1d8e0d280b", + "type": "text/javascript", + "packages": {}, + "exec": [ + "" + ], + "_lastExecutionId": "a34ecaf5-4070-406c-a980-f862c2c1f37f" + } + } + ] + }, + "request": { + "url": { + "protocol": "http", + "port": "8080", + "path": [ + "index.php", + "apps", + "procest", + "api", + "zgw", + "zaken", + "v1", + "statussen" + ], + "host": [ + "localhost" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Authorization", + "value": "Bearer eyJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJwcm9jZXN0LWxpbWl0ZWQiLCJjbGllbnRfaWQiOiJwcm9jZXN0LWxpbWl0ZWQiLCJpYXQiOiIxNzczMTQ1MTYxIiwidXNlcl9pZCI6InByb2Nlc3QtbGltaXRlZCIsInVzZXJfcmVwcmVzZW50YXRpb24iOiIifQ.xCho9S74ZYqtjInFmc_PTHEhzsboNUCbUJZUzmAv_Do", + "system": true + }, + { + "key": "User-Agent", + "value": "PostmanRuntime/7.39.1", + "system": true + }, + { + "key": "Accept", + "value": "*/*", + "system": true + }, + { + "key": "Cache-Control", + "value": "no-cache", + "system": true + }, + { + "key": "Postman-Token", + "value": "1bbfd159-fc23-47b0-8b39-f3f095d8d72f", + "system": true + }, + { + "key": "Host", + "value": "localhost:8080", + "system": true + }, + { + "key": "Accept-Encoding", + "value": "gzip, deflate, br", + "system": true + }, + { + "key": "Connection", + "value": "keep-alive", + "system": true + }, + { + "key": "Content-Length", + "value": "295", + "system": true + }, + { + "key": "Cookie", + "value": "ocvp3112b4wg=493b2e6608f895c8cf338c08cc332261; oc_sessionPassphrase=LBNdKxRzA0iqoULIruNxDDh2BK3O%2BrCIU8aUmiUcOFvy5Xw1YfjwQNlmBW2IkGwJYtxXh9%2BwDN6vYuGNX07tXzkBtjQJUWTGdzf8AIOUIVxVx5DfyWAQZ7nmYmQv6XSE; nc_sameSiteCookielax=true; nc_sameSiteCookiestrict=true", + "system": true + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n\t\"zaak\": \"http://localhost:8080/index.php/apps/procest/api/zgw/zaken/v1/zaken/b648c5da-b590-4960-94a0-f0c5a3f9ed90\",\n\t\"statustype\": \"http://localhost:8080/index.php/apps/procest/api/zgw/catalogi/v1/statustypen/b0b83347-bc74-4ef9-b984-52f1c6c9fc3d\",\n\t\"datumStatusGezet\": \"2018-04-22T13:37:00\"\n}" + }, + "auth": { + "type": "jwt", + "jwt": [ + { + "type": "string", + "value": "{\r\n \"iss\": \"procest-limited\",\r\n \"client_id\": \"procest-limited\",\r\n \"iat\": \"1773145161\",\r\n \"user_id\": \"procest-limited\",\r\n \"user_representation\": \"\"\r\n}", + "key": "payload" + }, + { + "type": "string", + "value": "procest-limited-secret-key-for-test", + "key": "secret" + }, + { + "type": "string", + "value": "HS256", + "key": "algorithm" + }, + { + "type": "boolean", + "value": false, + "key": "isSecretBase64Encoded" + }, + { + "type": "string", + "value": "header", + "key": "addTokenTo" + }, + { + "type": "string", + "value": "Bearer", + "key": "headerPrefix" + }, + { + "type": "string", + "value": "token", + "key": "queryParamKey" + }, + { + "type": "string", + "value": "{}", + "key": "header" + } + ] + } + }, + "response": { + "id": "75ae1be0-8cd9-443e-bbbf-a0acefcf9464", + "status": "Forbidden", + "code": 403, + "header": [ + { + "key": "Date", + "value": "Tue, 10 Mar 2026 12:19:21 GMT" + }, + { + "key": "Server", + "value": "Apache/2.4.66 (Debian)" + }, + { + "key": "X-Content-Type-Options", + "value": "nosniff" + }, + { + "key": "X-Frame-Options", + "value": "SAMEORIGIN" + }, + { + "key": "X-Permitted-Cross-Domain-Policies", + "value": "none" + }, + { + "key": "X-Robots-Tag", + "value": "noindex, nofollow" + }, + { + "key": "Referrer-Policy", + "value": "no-referrer" + }, + { + "key": "X-Powered-By", + "value": "PHP/8.3.30" + }, + { + "key": "Content-Security-Policy", + "value": "default-src 'none';base-uri 'none';manifest-src 'self';frame-ancestors 'none'" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=493b2e6608f895c8cf338c08cc332261; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "X-Request-Id", + "value": "EsSJyjq0Y6jMj1CRkAK8" + }, + { + "key": "Cache-Control", + "value": "no-cache, no-store, must-revalidate" + }, + { + "key": "Feature-Policy", + "value": "autoplay 'none';camera 'none';fullscreen 'none';geolocation 'none';microphone 'none';payment 'none'" + }, + { + "key": "Content-Length", + "value": "232" + }, + { + "key": "Keep-Alive", + "value": "timeout=5, max=62" + }, + { + "key": "Connection", + "value": "Keep-Alive" + }, + { + "key": "Content-Type", + "value": "application/json; charset=utf-8" + } + ], + "stream": { + "type": "Buffer", + "data": [ + 123, + 34, + 100, + 101, + 116, + 97, + 105, + 108, + 34, + 58, + 34, + 90, + 97, + 97, + 107, + 32, + 105, + 115, + 32, + 97, + 102, + 103, + 101, + 115, + 108, + 111, + 116, + 101, + 110, + 46, + 32, + 87, + 105, + 106, + 122, + 105, + 103, + 105, + 110, + 103, + 101, + 110, + 32, + 122, + 105, + 106, + 110, + 32, + 110, + 105, + 101, + 116, + 32, + 116, + 111, + 101, + 103, + 101, + 115, + 116, + 97, + 97, + 110, + 32, + 122, + 111, + 110, + 100, + 101, + 114, + 32, + 115, + 99, + 111, + 112, + 101, + 32, + 122, + 97, + 107, + 101, + 110, + 46, + 103, + 101, + 102, + 111, + 114, + 99, + 101, + 101, + 114, + 100, + 45, + 98, + 105, + 106, + 119, + 101, + 114, + 107, + 101, + 110, + 46, + 34, + 44, + 34, + 99, + 111, + 100, + 101, + 34, + 58, + 34, + 112, + 101, + 114, + 109, + 105, + 115, + 115, + 105, + 111, + 110, + 95, + 100, + 101, + 110, + 105, + 101, + 100, + 34, + 44, + 34, + 105, + 110, + 118, + 97, + 108, + 105, + 100, + 80, + 97, + 114, + 97, + 109, + 115, + 34, + 58, + 91, + 123, + 34, + 110, + 97, + 109, + 101, + 34, + 58, + 34, + 110, + 111, + 110, + 70, + 105, + 101, + 108, + 100, + 69, + 114, + 114, + 111, + 114, + 115, + 34, + 44, + 34, + 99, + 111, + 100, + 101, + 34, + 58, + 34, + 122, + 97, + 97, + 107, + 45, + 99, + 108, + 111, + 115, + 101, + 100, + 34, + 44, + 34, + 114, + 101, + 97, + 115, + 111, + 110, + 34, + 58, + 34, + 68, + 101, + 32, + 122, + 97, + 97, + 107, + 32, + 105, + 115, + 32, + 97, + 102, + 103, + 101, + 115, + 108, + 111, + 116, + 101, + 110, + 46, + 34, + 125, + 93, + 125 + ] + }, + "cookie": [], + "responseTime": 125, + "responseSize": 232 + }, + "id": "cac2d49e-6529-44ee-ba7f-8c6a82cb21bf", + "assertions": [ + { + "assertion": "Status aanmaken bij gesloten Zaak zonder scope zaken.geforceerd-bijwerken geeft 403", + "skipped": false + } + ] + }, + { + "cursor": { + "ref": "d6309062-d8b4-46d0-a8d1-db8ece7babf0", + "length": 313, + "cycles": 1, + "position": 89, + "iteration": 0, + "httpRequestId": "fced3caf-6d56-4054-bf23-c59b7241e2a0" + }, + "item": { + "id": "760e1057-c285-48ba-85be-5314f6021452", + "name": "(zrc-007h) ZaakInformatieObject toevoegen bij gesloten Zaak is niet toegestaan zonder scope zaken.geforceerd-bijwerken", + "request": { + "url": { + "path": [ + "zaakinformatieobjecten" + ], + "host": [ + "{{zrc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n \"informatieobject\": \"{{informatieobject_gebruiksrecht_null_url}}\",\n \"zaak\": \"{{created_zaak_url}}\"\n}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "917acc3f-245a-4920-9aa5-2bdc099219da", + "type": "text/javascript", + "packages": {}, + "exec": [ + "pm.test(\"ZaakInformatieObject aanmaken bij gesloten Zaak zonder scope zaken.geforceerd-bijwerken geeft 403\", function() {", + " pm.response.to.have.status(403);", + " pm.expect(pm.response.json().code).to.be.equal(\"permission_denied\");", + "});" + ], + "_lastExecutionId": "4e3f0dde-1cdf-4b24-99a0-50172a3943a8" + } + }, + { + "listen": "prerequest", + "script": { + "id": "e9cadfca-c454-48ab-800b-198d4d01384b", + "type": "text/javascript", + "packages": {}, + "exec": [ + "" + ], + "_lastExecutionId": "42aab2cd-6dfd-4e70-9a5e-c831f934faed" + } + } + ] + }, + "request": { + "url": { + "protocol": "http", + "port": "8080", + "path": [ + "index.php", + "apps", + "procest", + "api", + "zgw", + "zaken", + "v1", + "zaakinformatieobjecten" + ], + "host": [ + "localhost" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Authorization", + "value": "Bearer eyJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJwcm9jZXN0LWxpbWl0ZWQiLCJjbGllbnRfaWQiOiJwcm9jZXN0LWxpbWl0ZWQiLCJpYXQiOiIxNzczMTQ1MTYxIiwidXNlcl9pZCI6InByb2Nlc3QtbGltaXRlZCIsInVzZXJfcmVwcmVzZW50YXRpb24iOiIifQ.xCho9S74ZYqtjInFmc_PTHEhzsboNUCbUJZUzmAv_Do", + "system": true + }, + { + "key": "User-Agent", + "value": "PostmanRuntime/7.39.1", + "system": true + }, + { + "key": "Accept", + "value": "*/*", + "system": true + }, + { + "key": "Cache-Control", + "value": "no-cache", + "system": true + }, + { + "key": "Postman-Token", + "value": "380abb9c-b47b-41d8-bad5-60fa4184f328", + "system": true + }, + { + "key": "Host", + "value": "localhost:8080", + "system": true + }, + { + "key": "Accept-Encoding", + "value": "gzip, deflate, br", + "system": true + }, + { + "key": "Connection", + "value": "keep-alive", + "system": true + }, + { + "key": "Content-Length", + "value": "283", + "system": true + }, + { + "key": "Cookie", + "value": "ocvp3112b4wg=493b2e6608f895c8cf338c08cc332261; oc_sessionPassphrase=LBNdKxRzA0iqoULIruNxDDh2BK3O%2BrCIU8aUmiUcOFvy5Xw1YfjwQNlmBW2IkGwJYtxXh9%2BwDN6vYuGNX07tXzkBtjQJUWTGdzf8AIOUIVxVx5DfyWAQZ7nmYmQv6XSE; nc_sameSiteCookielax=true; nc_sameSiteCookiestrict=true", + "system": true + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n \"informatieobject\": \"http://localhost:8080/index.php/apps/procest/api/zgw/documenten/v1/enkelvoudiginformatieobjecten/d3d835a6-a67c-404f-b3a6-7d281fef75a0\",\n \"zaak\": \"http://localhost:8080/index.php/apps/procest/api/zgw/zaken/v1/zaken/b648c5da-b590-4960-94a0-f0c5a3f9ed90\"\n}" + }, + "auth": { + "type": "jwt", + "jwt": [ + { + "type": "string", + "value": "{\r\n \"iss\": \"procest-limited\",\r\n \"client_id\": \"procest-limited\",\r\n \"iat\": \"1773145161\",\r\n \"user_id\": \"procest-limited\",\r\n \"user_representation\": \"\"\r\n}", + "key": "payload" + }, + { + "type": "string", + "value": "procest-limited-secret-key-for-test", + "key": "secret" + }, + { + "type": "string", + "value": "HS256", + "key": "algorithm" + }, + { + "type": "boolean", + "value": false, + "key": "isSecretBase64Encoded" + }, + { + "type": "string", + "value": "header", + "key": "addTokenTo" + }, + { + "type": "string", + "value": "Bearer", + "key": "headerPrefix" + }, + { + "type": "string", + "value": "token", + "key": "queryParamKey" + }, + { + "type": "string", + "value": "{}", + "key": "header" + } + ] + } + }, + "response": { + "id": "d5d1aacf-32a5-432c-8d78-51d1816ad5d5", + "status": "Forbidden", + "code": 403, + "header": [ + { + "key": "Date", + "value": "Tue, 10 Mar 2026 12:19:21 GMT" + }, + { + "key": "Server", + "value": "Apache/2.4.66 (Debian)" + }, + { + "key": "X-Content-Type-Options", + "value": "nosniff" + }, + { + "key": "X-Frame-Options", + "value": "SAMEORIGIN" + }, + { + "key": "X-Permitted-Cross-Domain-Policies", + "value": "none" + }, + { + "key": "X-Robots-Tag", + "value": "noindex, nofollow" + }, + { + "key": "Referrer-Policy", + "value": "no-referrer" + }, + { + "key": "X-Powered-By", + "value": "PHP/8.3.30" + }, + { + "key": "Content-Security-Policy", + "value": "default-src 'none';base-uri 'none';manifest-src 'self';frame-ancestors 'none'" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=493b2e6608f895c8cf338c08cc332261; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "X-Request-Id", + "value": "h5bBH71Al6qUHh1MAFyt" + }, + { + "key": "Cache-Control", + "value": "no-cache, no-store, must-revalidate" + }, + { + "key": "Feature-Policy", + "value": "autoplay 'none';camera 'none';fullscreen 'none';geolocation 'none';microphone 'none';payment 'none'" + }, + { + "key": "Content-Length", + "value": "232" + }, + { + "key": "Keep-Alive", + "value": "timeout=5, max=61" + }, + { + "key": "Connection", + "value": "Keep-Alive" + }, + { + "key": "Content-Type", + "value": "application/json; charset=utf-8" + } + ], + "stream": { + "type": "Buffer", + "data": [ + 123, + 34, + 100, + 101, + 116, + 97, + 105, + 108, + 34, + 58, + 34, + 90, + 97, + 97, + 107, + 32, + 105, + 115, + 32, + 97, + 102, + 103, + 101, + 115, + 108, + 111, + 116, + 101, + 110, + 46, + 32, + 87, + 105, + 106, + 122, + 105, + 103, + 105, + 110, + 103, + 101, + 110, + 32, + 122, + 105, + 106, + 110, + 32, + 110, + 105, + 101, + 116, + 32, + 116, + 111, + 101, + 103, + 101, + 115, + 116, + 97, + 97, + 110, + 32, + 122, + 111, + 110, + 100, + 101, + 114, + 32, + 115, + 99, + 111, + 112, + 101, + 32, + 122, + 97, + 107, + 101, + 110, + 46, + 103, + 101, + 102, + 111, + 114, + 99, + 101, + 101, + 114, + 100, + 45, + 98, + 105, + 106, + 119, + 101, + 114, + 107, + 101, + 110, + 46, + 34, + 44, + 34, + 99, + 111, + 100, + 101, + 34, + 58, + 34, + 112, + 101, + 114, + 109, + 105, + 115, + 115, + 105, + 111, + 110, + 95, + 100, + 101, + 110, + 105, + 101, + 100, + 34, + 44, + 34, + 105, + 110, + 118, + 97, + 108, + 105, + 100, + 80, + 97, + 114, + 97, + 109, + 115, + 34, + 58, + 91, + 123, + 34, + 110, + 97, + 109, + 101, + 34, + 58, + 34, + 110, + 111, + 110, + 70, + 105, + 101, + 108, + 100, + 69, + 114, + 114, + 111, + 114, + 115, + 34, + 44, + 34, + 99, + 111, + 100, + 101, + 34, + 58, + 34, + 122, + 97, + 97, + 107, + 45, + 99, + 108, + 111, + 115, + 101, + 100, + 34, + 44, + 34, + 114, + 101, + 97, + 115, + 111, + 110, + 34, + 58, + 34, + 68, + 101, + 32, + 122, + 97, + 97, + 107, + 32, + 105, + 115, + 32, + 97, + 102, + 103, + 101, + 115, + 108, + 111, + 116, + 101, + 110, + 46, + 34, + 125, + 93, + 125 + ] + }, + "cookie": [], + "responseTime": 105, + "responseSize": 232 + }, + "id": "760e1057-c285-48ba-85be-5314f6021452", + "assertions": [ + { + "assertion": "ZaakInformatieObject aanmaken bij gesloten Zaak zonder scope zaken.geforceerd-bijwerken geeft 403", + "skipped": false + } + ] + }, + { + "cursor": { + "ref": "ab95324e-db93-4e6a-8159-084409ddf538", + "length": 313, + "cycles": 1, + "position": 90, + "iteration": 0, + "httpRequestId": "d719ebb4-fca0-4489-9df8-f26e0f36767c" + }, + "item": { + "id": "69331cdf-304f-40a2-9500-5d6c17118330", + "name": "(zrc-007h) ZaakInformatieObject bijwerken bij gesloten Zaak is niet toegestaan zonder scope zaken.geforceerd-bijwerken", + "request": { + "url": { + "host": [ + "{{created_zaakinformatieobject_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "PUT", + "body": { + "mode": "raw", + "raw": "{\n \"informatieobject\": \"{{informatieobject_url}}\",\n \"zaak\": \"{{created_zaak_url}}\",\n \"titel\": \"bla\"\n}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "18638837-ec24-419a-b85f-91a5cff15d2a", + "type": "text/javascript", + "packages": {}, + "exec": [ + "pm.test(\"ZaakInformatieObject bijwerken bij gesloten Zaak zonder scope zaken.geforceerd-bijwerken geeft 403\", function() {", + " pm.response.to.have.status(403);", + " pm.expect(pm.response.json().code).to.be.equal(\"permission_denied\");", + "});" + ], + "_lastExecutionId": "49fd333b-2713-4637-aad0-87edbe19eb43" + } + }, + { + "listen": "prerequest", + "script": { + "id": "656623a9-6355-42b3-9b56-5290240125dd", + "type": "text/javascript", + "packages": {}, + "exec": [ + "" + ], + "_lastExecutionId": "4accd4d0-4922-4758-b70d-665720ee57a4" + } + } + ] + }, + "request": { + "url": { + "protocol": "http", + "port": "8080", + "path": [ + "index.php", + "apps", + "procest", + "api", + "zgw", + "zaken", + "v1", + "zaakinformatieobjecten", + "06f007df-caed-4ac1-b353-a2ac4605e414" + ], + "host": [ + "localhost" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Authorization", + "value": "Bearer eyJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJwcm9jZXN0LWxpbWl0ZWQiLCJjbGllbnRfaWQiOiJwcm9jZXN0LWxpbWl0ZWQiLCJpYXQiOiIxNzczMTQ1MTYxIiwidXNlcl9pZCI6InByb2Nlc3QtbGltaXRlZCIsInVzZXJfcmVwcmVzZW50YXRpb24iOiIifQ.xCho9S74ZYqtjInFmc_PTHEhzsboNUCbUJZUzmAv_Do", + "system": true + }, + { + "key": "User-Agent", + "value": "PostmanRuntime/7.39.1", + "system": true + }, + { + "key": "Accept", + "value": "*/*", + "system": true + }, + { + "key": "Cache-Control", + "value": "no-cache", + "system": true + }, + { + "key": "Postman-Token", + "value": "0015d46f-2e94-446d-8f32-711fae44d21a", + "system": true + }, + { + "key": "Host", + "value": "localhost:8080", + "system": true + }, + { + "key": "Accept-Encoding", + "value": "gzip, deflate, br", + "system": true + }, + { + "key": "Connection", + "value": "keep-alive", + "system": true + }, + { + "key": "Content-Length", + "value": "303", + "system": true + }, + { + "key": "Cookie", + "value": "ocvp3112b4wg=493b2e6608f895c8cf338c08cc332261; oc_sessionPassphrase=LBNdKxRzA0iqoULIruNxDDh2BK3O%2BrCIU8aUmiUcOFvy5Xw1YfjwQNlmBW2IkGwJYtxXh9%2BwDN6vYuGNX07tXzkBtjQJUWTGdzf8AIOUIVxVx5DfyWAQZ7nmYmQv6XSE; nc_sameSiteCookielax=true; nc_sameSiteCookiestrict=true", + "system": true + } + ], + "method": "PUT", + "body": { + "mode": "raw", + "raw": "{\n \"informatieobject\": \"http://localhost:8080/index.php/apps/procest/api/zgw/documenten/v1/enkelvoudiginformatieobjecten/56f155a0-752f-428e-b7d0-e3d88d539346\",\n \"zaak\": \"http://localhost:8080/index.php/apps/procest/api/zgw/zaken/v1/zaken/b648c5da-b590-4960-94a0-f0c5a3f9ed90\",\n \"titel\": \"bla\"\n}" + }, + "auth": { + "type": "jwt", + "jwt": [ + { + "type": "string", + "value": "{\r\n \"iss\": \"procest-limited\",\r\n \"client_id\": \"procest-limited\",\r\n \"iat\": \"1773145161\",\r\n \"user_id\": \"procest-limited\",\r\n \"user_representation\": \"\"\r\n}", + "key": "payload" + }, + { + "type": "string", + "value": "procest-limited-secret-key-for-test", + "key": "secret" + }, + { + "type": "string", + "value": "HS256", + "key": "algorithm" + }, + { + "type": "boolean", + "value": false, + "key": "isSecretBase64Encoded" + }, + { + "type": "string", + "value": "header", + "key": "addTokenTo" + }, + { + "type": "string", + "value": "Bearer", + "key": "headerPrefix" + }, + { + "type": "string", + "value": "token", + "key": "queryParamKey" + }, + { + "type": "string", + "value": "{}", + "key": "header" + } + ] + } + }, + "response": { + "id": "b154b32d-a33c-478f-aef8-b22eb91a8232", + "status": "Forbidden", + "code": 403, + "header": [ + { + "key": "Date", + "value": "Tue, 10 Mar 2026 12:19:21 GMT" + }, + { + "key": "Server", + "value": "Apache/2.4.66 (Debian)" + }, + { + "key": "X-Content-Type-Options", + "value": "nosniff" + }, + { + "key": "X-Frame-Options", + "value": "SAMEORIGIN" + }, + { + "key": "X-Permitted-Cross-Domain-Policies", + "value": "none" + }, + { + "key": "X-Robots-Tag", + "value": "noindex, nofollow" + }, + { + "key": "Referrer-Policy", + "value": "no-referrer" + }, + { + "key": "X-Powered-By", + "value": "PHP/8.3.30" + }, + { + "key": "Content-Security-Policy", + "value": "default-src 'none';base-uri 'none';manifest-src 'self';frame-ancestors 'none'" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=493b2e6608f895c8cf338c08cc332261; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "X-Request-Id", + "value": "51ODbnmormFNWUV2Vq5r" + }, + { + "key": "Cache-Control", + "value": "no-cache, no-store, must-revalidate" + }, + { + "key": "Feature-Policy", + "value": "autoplay 'none';camera 'none';fullscreen 'none';geolocation 'none';microphone 'none';payment 'none'" + }, + { + "key": "Content-Length", + "value": "232" + }, + { + "key": "Keep-Alive", + "value": "timeout=5, max=60" + }, + { + "key": "Connection", + "value": "Keep-Alive" + }, + { + "key": "Content-Type", + "value": "application/json; charset=utf-8" + } + ], + "stream": { + "type": "Buffer", + "data": [ + 123, + 34, + 100, + 101, + 116, + 97, + 105, + 108, + 34, + 58, + 34, + 90, + 97, + 97, + 107, + 32, + 105, + 115, + 32, + 97, + 102, + 103, + 101, + 115, + 108, + 111, + 116, + 101, + 110, + 46, + 32, + 87, + 105, + 106, + 122, + 105, + 103, + 105, + 110, + 103, + 101, + 110, + 32, + 122, + 105, + 106, + 110, + 32, + 110, + 105, + 101, + 116, + 32, + 116, + 111, + 101, + 103, + 101, + 115, + 116, + 97, + 97, + 110, + 32, + 122, + 111, + 110, + 100, + 101, + 114, + 32, + 115, + 99, + 111, + 112, + 101, + 32, + 122, + 97, + 107, + 101, + 110, + 46, + 103, + 101, + 102, + 111, + 114, + 99, + 101, + 101, + 114, + 100, + 45, + 98, + 105, + 106, + 119, + 101, + 114, + 107, + 101, + 110, + 46, + 34, + 44, + 34, + 99, + 111, + 100, + 101, + 34, + 58, + 34, + 112, + 101, + 114, + 109, + 105, + 115, + 115, + 105, + 111, + 110, + 95, + 100, + 101, + 110, + 105, + 101, + 100, + 34, + 44, + 34, + 105, + 110, + 118, + 97, + 108, + 105, + 100, + 80, + 97, + 114, + 97, + 109, + 115, + 34, + 58, + 91, + 123, + 34, + 110, + 97, + 109, + 101, + 34, + 58, + 34, + 110, + 111, + 110, + 70, + 105, + 101, + 108, + 100, + 69, + 114, + 114, + 111, + 114, + 115, + 34, + 44, + 34, + 99, + 111, + 100, + 101, + 34, + 58, + 34, + 122, + 97, + 97, + 107, + 45, + 99, + 108, + 111, + 115, + 101, + 100, + 34, + 44, + 34, + 114, + 101, + 97, + 115, + 111, + 110, + 34, + 58, + 34, + 68, + 101, + 32, + 122, + 97, + 97, + 107, + 32, + 105, + 115, + 32, + 97, + 102, + 103, + 101, + 115, + 108, + 111, + 116, + 101, + 110, + 46, + 34, + 125, + 93, + 125 + ] + }, + "cookie": [], + "responseTime": 110, + "responseSize": 232 + }, + "id": "69331cdf-304f-40a2-9500-5d6c17118330", + "assertions": [ + { + "assertion": "ZaakInformatieObject bijwerken bij gesloten Zaak zonder scope zaken.geforceerd-bijwerken geeft 403", + "skipped": false + } + ] + }, + { + "cursor": { + "ref": "f54a961c-3731-4419-b53b-1320e5aeca15", + "length": 313, + "cycles": 1, + "position": 91, + "iteration": 0, + "httpRequestId": "a85cb242-2c8a-4bc8-a6fb-8ce79bc7a071" + }, + "item": { + "id": "28b42a39-118f-47fb-988c-c553c13ad36e", + "name": "(zrc-007h) ZaakInformatieObject deels bijwerken bij gesloten Zaak is niet toegestaan zonder scope zaken.geforceerd-bijwerken", + "request": { + "url": { + "host": [ + "{{created_zaakinformatieobject_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "PATCH", + "body": { + "mode": "raw", + "raw": "{\n \"informatieobject\": \"{{informatieobject_url}}\",\n \"zaak\": \"{{created_zaak_url}}\",\n \"titel\": \"bla\"\n}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "a7f50240-b433-48fc-8855-f573aec36a7e", + "type": "text/javascript", + "packages": {}, + "exec": [ + "pm.test(\"ZaakInformatieObject deels bijwerken bij gesloten Zaak zonder scope zaken.geforceerd-bijwerken geeft 403\", function() {", + " pm.response.to.have.status(403);", + " pm.expect(pm.response.json().code).to.be.equal(\"permission_denied\");", + "});" + ], + "_lastExecutionId": "ba81d1bd-50c4-4e28-89e0-75a0836de728" + } + }, + { + "listen": "prerequest", + "script": { + "id": "a7294ec2-5558-43bc-9b6a-6b65a6f3f780", + "type": "text/javascript", + "packages": {}, + "exec": [ + "" + ], + "_lastExecutionId": "cc4dea11-729d-4129-a79b-4d57b6d6cf21" + } + } + ] + }, + "request": { + "url": { + "protocol": "http", + "port": "8080", + "path": [ + "index.php", + "apps", + "procest", + "api", + "zgw", + "zaken", + "v1", + "zaakinformatieobjecten", + "06f007df-caed-4ac1-b353-a2ac4605e414" + ], + "host": [ + "localhost" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Authorization", + "value": "Bearer eyJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJwcm9jZXN0LWxpbWl0ZWQiLCJjbGllbnRfaWQiOiJwcm9jZXN0LWxpbWl0ZWQiLCJpYXQiOiIxNzczMTQ1MTYyIiwidXNlcl9pZCI6InByb2Nlc3QtbGltaXRlZCIsInVzZXJfcmVwcmVzZW50YXRpb24iOiIifQ.Msb5tUxzHenmYQVHWOxQTpPrICX2-xyAGSYQnkIKMMc", + "system": true + }, + { + "key": "User-Agent", + "value": "PostmanRuntime/7.39.1", + "system": true + }, + { + "key": "Accept", + "value": "*/*", + "system": true + }, + { + "key": "Cache-Control", + "value": "no-cache", + "system": true + }, + { + "key": "Postman-Token", + "value": "832529f0-2e07-44a9-9b5d-9c438326dc96", + "system": true + }, + { + "key": "Host", + "value": "localhost:8080", + "system": true + }, + { + "key": "Accept-Encoding", + "value": "gzip, deflate, br", + "system": true + }, + { + "key": "Connection", + "value": "keep-alive", + "system": true + }, + { + "key": "Content-Length", + "value": "303", + "system": true + }, + { + "key": "Cookie", + "value": "ocvp3112b4wg=493b2e6608f895c8cf338c08cc332261; oc_sessionPassphrase=LBNdKxRzA0iqoULIruNxDDh2BK3O%2BrCIU8aUmiUcOFvy5Xw1YfjwQNlmBW2IkGwJYtxXh9%2BwDN6vYuGNX07tXzkBtjQJUWTGdzf8AIOUIVxVx5DfyWAQZ7nmYmQv6XSE; nc_sameSiteCookielax=true; nc_sameSiteCookiestrict=true", + "system": true + } + ], + "method": "PATCH", + "body": { + "mode": "raw", + "raw": "{\n \"informatieobject\": \"http://localhost:8080/index.php/apps/procest/api/zgw/documenten/v1/enkelvoudiginformatieobjecten/56f155a0-752f-428e-b7d0-e3d88d539346\",\n \"zaak\": \"http://localhost:8080/index.php/apps/procest/api/zgw/zaken/v1/zaken/b648c5da-b590-4960-94a0-f0c5a3f9ed90\",\n \"titel\": \"bla\"\n}" + }, + "auth": { + "type": "jwt", + "jwt": [ + { + "type": "string", + "value": "{\r\n \"iss\": \"procest-limited\",\r\n \"client_id\": \"procest-limited\",\r\n \"iat\": \"1773145162\",\r\n \"user_id\": \"procest-limited\",\r\n \"user_representation\": \"\"\r\n}", + "key": "payload" + }, + { + "type": "string", + "value": "procest-limited-secret-key-for-test", + "key": "secret" + }, + { + "type": "string", + "value": "HS256", + "key": "algorithm" + }, + { + "type": "boolean", + "value": false, + "key": "isSecretBase64Encoded" + }, + { + "type": "string", + "value": "header", + "key": "addTokenTo" + }, + { + "type": "string", + "value": "Bearer", + "key": "headerPrefix" + }, + { + "type": "string", + "value": "token", + "key": "queryParamKey" + }, + { + "type": "string", + "value": "{}", + "key": "header" + } + ] + } + }, + "response": { + "id": "4b892ece-24a6-4557-80e2-2773d144ebe1", + "status": "Forbidden", + "code": 403, + "header": [ + { + "key": "Date", + "value": "Tue, 10 Mar 2026 12:19:21 GMT" + }, + { + "key": "Server", + "value": "Apache/2.4.66 (Debian)" + }, + { + "key": "X-Content-Type-Options", + "value": "nosniff" + }, + { + "key": "X-Frame-Options", + "value": "SAMEORIGIN" + }, + { + "key": "X-Permitted-Cross-Domain-Policies", + "value": "none" + }, + { + "key": "X-Robots-Tag", + "value": "noindex, nofollow" + }, + { + "key": "Referrer-Policy", + "value": "no-referrer" + }, + { + "key": "X-Powered-By", + "value": "PHP/8.3.30" + }, + { + "key": "Content-Security-Policy", + "value": "default-src 'none';base-uri 'none';manifest-src 'self';frame-ancestors 'none'" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=493b2e6608f895c8cf338c08cc332261; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "X-Request-Id", + "value": "u5U4HIh01hc1XWU71iXO" + }, + { + "key": "Cache-Control", + "value": "no-cache, no-store, must-revalidate" + }, + { + "key": "Feature-Policy", + "value": "autoplay 'none';camera 'none';fullscreen 'none';geolocation 'none';microphone 'none';payment 'none'" + }, + { + "key": "Content-Length", + "value": "232" + }, + { + "key": "Keep-Alive", + "value": "timeout=5, max=59" + }, + { + "key": "Connection", + "value": "Keep-Alive" + }, + { + "key": "Content-Type", + "value": "application/json; charset=utf-8" + } + ], + "stream": { + "type": "Buffer", + "data": [ + 123, + 34, + 100, + 101, + 116, + 97, + 105, + 108, + 34, + 58, + 34, + 90, + 97, + 97, + 107, + 32, + 105, + 115, + 32, + 97, + 102, + 103, + 101, + 115, + 108, + 111, + 116, + 101, + 110, + 46, + 32, + 87, + 105, + 106, + 122, + 105, + 103, + 105, + 110, + 103, + 101, + 110, + 32, + 122, + 105, + 106, + 110, + 32, + 110, + 105, + 101, + 116, + 32, + 116, + 111, + 101, + 103, + 101, + 115, + 116, + 97, + 97, + 110, + 32, + 122, + 111, + 110, + 100, + 101, + 114, + 32, + 115, + 99, + 111, + 112, + 101, + 32, + 122, + 97, + 107, + 101, + 110, + 46, + 103, + 101, + 102, + 111, + 114, + 99, + 101, + 101, + 114, + 100, + 45, + 98, + 105, + 106, + 119, + 101, + 114, + 107, + 101, + 110, + 46, + 34, + 44, + 34, + 99, + 111, + 100, + 101, + 34, + 58, + 34, + 112, + 101, + 114, + 109, + 105, + 115, + 115, + 105, + 111, + 110, + 95, + 100, + 101, + 110, + 105, + 101, + 100, + 34, + 44, + 34, + 105, + 110, + 118, + 97, + 108, + 105, + 100, + 80, + 97, + 114, + 97, + 109, + 115, + 34, + 58, + 91, + 123, + 34, + 110, + 97, + 109, + 101, + 34, + 58, + 34, + 110, + 111, + 110, + 70, + 105, + 101, + 108, + 100, + 69, + 114, + 114, + 111, + 114, + 115, + 34, + 44, + 34, + 99, + 111, + 100, + 101, + 34, + 58, + 34, + 122, + 97, + 97, + 107, + 45, + 99, + 108, + 111, + 115, + 101, + 100, + 34, + 44, + 34, + 114, + 101, + 97, + 115, + 111, + 110, + 34, + 58, + 34, + 68, + 101, + 32, + 122, + 97, + 97, + 107, + 32, + 105, + 115, + 32, + 97, + 102, + 103, + 101, + 115, + 108, + 111, + 116, + 101, + 110, + 46, + 34, + 125, + 93, + 125 + ] + }, + "cookie": [], + "responseTime": 111, + "responseSize": 232 + }, + "id": "28b42a39-118f-47fb-988c-c553c13ad36e", + "assertions": [ + { + "assertion": "ZaakInformatieObject deels bijwerken bij gesloten Zaak zonder scope zaken.geforceerd-bijwerken geeft 403", + "skipped": false + } + ] + }, + { + "cursor": { + "ref": "c8ed595f-149d-4cd2-b208-7b5caa8dccd8", + "length": 313, + "cycles": 1, + "position": 92, + "iteration": 0, + "httpRequestId": "ff711270-15f6-4b19-864f-28593ea8f608" + }, + "item": { + "id": "95a2e022-3bc3-4fd2-8f54-39aeb33deb77", + "name": "(zrc-007h) ZaakInformatieObject verwijderen bij gesloten Zaak is niet toegestaan zonder scope zaken.geforceerd-bijwerken", + "request": { + "url": { + "host": [ + "{{created_zaakinformatieobject_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "DELETE" + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "2f473fe1-aa5a-4fd8-8469-3b7ecbffcb06", + "type": "text/javascript", + "packages": {}, + "exec": [ + "pm.test(\"ZaakInformatieObject verwijderen bij gesloten Zaak zonder scope zaken.geforceerd-bijwerken geeft 403\", function() {", + " pm.response.to.have.status(403);", + " pm.expect(pm.response.json().code).to.be.equal(\"permission_denied\");", + "});" + ], + "_lastExecutionId": "5fb1899c-3338-4139-be3e-25e3c4f4e9a4" + } + }, + { + "listen": "prerequest", + "script": { + "id": "ba508967-96bf-4152-852a-e5cc77902180", + "type": "text/javascript", + "packages": {}, + "exec": [ + "" + ], + "_lastExecutionId": "b2da6d2a-96ba-4a61-bb4f-c3f3af349dae" + } + } + ] + }, + "request": { + "url": { + "protocol": "http", + "port": "8080", + "path": [ + "index.php", + "apps", + "procest", + "api", + "zgw", + "zaken", + "v1", + "zaakinformatieobjecten", + "06f007df-caed-4ac1-b353-a2ac4605e414" + ], + "host": [ + "localhost" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Authorization", + "value": "Bearer eyJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJwcm9jZXN0LWxpbWl0ZWQiLCJjbGllbnRfaWQiOiJwcm9jZXN0LWxpbWl0ZWQiLCJpYXQiOiIxNzczMTQ1MTYyIiwidXNlcl9pZCI6InByb2Nlc3QtbGltaXRlZCIsInVzZXJfcmVwcmVzZW50YXRpb24iOiIifQ.Msb5tUxzHenmYQVHWOxQTpPrICX2-xyAGSYQnkIKMMc", + "system": true + }, + { + "key": "User-Agent", + "value": "PostmanRuntime/7.39.1", + "system": true + }, + { + "key": "Accept", + "value": "*/*", + "system": true + }, + { + "key": "Cache-Control", + "value": "no-cache", + "system": true + }, + { + "key": "Postman-Token", + "value": "93694341-e4d3-4da1-886d-192a47801793", + "system": true + }, + { + "key": "Host", + "value": "localhost:8080", + "system": true + }, + { + "key": "Accept-Encoding", + "value": "gzip, deflate, br", + "system": true + }, + { + "key": "Connection", + "value": "keep-alive", + "system": true + }, + { + "key": "Cookie", + "value": "ocvp3112b4wg=493b2e6608f895c8cf338c08cc332261; oc_sessionPassphrase=LBNdKxRzA0iqoULIruNxDDh2BK3O%2BrCIU8aUmiUcOFvy5Xw1YfjwQNlmBW2IkGwJYtxXh9%2BwDN6vYuGNX07tXzkBtjQJUWTGdzf8AIOUIVxVx5DfyWAQZ7nmYmQv6XSE; nc_sameSiteCookielax=true; nc_sameSiteCookiestrict=true", + "system": true + } + ], + "method": "DELETE", + "auth": { + "type": "jwt", + "jwt": [ + { + "type": "string", + "value": "{\r\n \"iss\": \"procest-limited\",\r\n \"client_id\": \"procest-limited\",\r\n \"iat\": \"1773145162\",\r\n \"user_id\": \"procest-limited\",\r\n \"user_representation\": \"\"\r\n}", + "key": "payload" + }, + { + "type": "string", + "value": "procest-limited-secret-key-for-test", + "key": "secret" + }, + { + "type": "string", + "value": "HS256", + "key": "algorithm" + }, + { + "type": "boolean", + "value": false, + "key": "isSecretBase64Encoded" + }, + { + "type": "string", + "value": "header", + "key": "addTokenTo" + }, + { + "type": "string", + "value": "Bearer", + "key": "headerPrefix" + }, + { + "type": "string", + "value": "token", + "key": "queryParamKey" + }, + { + "type": "string", + "value": "{}", + "key": "header" + } + ] + } + }, + "response": { + "id": "28b8dd1a-8e6b-4173-a9bc-256834f33ee7", + "status": "Forbidden", + "code": 403, + "header": [ + { + "key": "Date", + "value": "Tue, 10 Mar 2026 12:19:21 GMT" + }, + { + "key": "Server", + "value": "Apache/2.4.66 (Debian)" + }, + { + "key": "X-Content-Type-Options", + "value": "nosniff" + }, + { + "key": "X-Frame-Options", + "value": "SAMEORIGIN" + }, + { + "key": "X-Permitted-Cross-Domain-Policies", + "value": "none" + }, + { + "key": "X-Robots-Tag", + "value": "noindex, nofollow" + }, + { + "key": "Referrer-Policy", + "value": "no-referrer" + }, + { + "key": "X-Powered-By", + "value": "PHP/8.3.30" + }, + { + "key": "Content-Security-Policy", + "value": "default-src 'none';base-uri 'none';manifest-src 'self';frame-ancestors 'none'" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=493b2e6608f895c8cf338c08cc332261; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "X-Request-Id", + "value": "tpv5fkO02ttLygX9j0FG" + }, + { + "key": "Cache-Control", + "value": "no-cache, no-store, must-revalidate" + }, + { + "key": "Feature-Policy", + "value": "autoplay 'none';camera 'none';fullscreen 'none';geolocation 'none';microphone 'none';payment 'none'" + }, + { + "key": "Content-Length", + "value": "232" + }, + { + "key": "Keep-Alive", + "value": "timeout=5, max=58" + }, + { + "key": "Connection", + "value": "Keep-Alive" + }, + { + "key": "Content-Type", + "value": "application/json; charset=utf-8" + } + ], + "stream": { + "type": "Buffer", + "data": [ + 123, + 34, + 100, + 101, + 116, + 97, + 105, + 108, + 34, + 58, + 34, + 90, + 97, + 97, + 107, + 32, + 105, + 115, + 32, + 97, + 102, + 103, + 101, + 115, + 108, + 111, + 116, + 101, + 110, + 46, + 32, + 87, + 105, + 106, + 122, + 105, + 103, + 105, + 110, + 103, + 101, + 110, + 32, + 122, + 105, + 106, + 110, + 32, + 110, + 105, + 101, + 116, + 32, + 116, + 111, + 101, + 103, + 101, + 115, + 116, + 97, + 97, + 110, + 32, + 122, + 111, + 110, + 100, + 101, + 114, + 32, + 115, + 99, + 111, + 112, + 101, + 32, + 122, + 97, + 107, + 101, + 110, + 46, + 103, + 101, + 102, + 111, + 114, + 99, + 101, + 101, + 114, + 100, + 45, + 98, + 105, + 106, + 119, + 101, + 114, + 107, + 101, + 110, + 46, + 34, + 44, + 34, + 99, + 111, + 100, + 101, + 34, + 58, + 34, + 112, + 101, + 114, + 109, + 105, + 115, + 115, + 105, + 111, + 110, + 95, + 100, + 101, + 110, + 105, + 101, + 100, + 34, + 44, + 34, + 105, + 110, + 118, + 97, + 108, + 105, + 100, + 80, + 97, + 114, + 97, + 109, + 115, + 34, + 58, + 91, + 123, + 34, + 110, + 97, + 109, + 101, + 34, + 58, + 34, + 110, + 111, + 110, + 70, + 105, + 101, + 108, + 100, + 69, + 114, + 114, + 111, + 114, + 115, + 34, + 44, + 34, + 99, + 111, + 100, + 101, + 34, + 58, + 34, + 122, + 97, + 97, + 107, + 45, + 99, + 108, + 111, + 115, + 101, + 100, + 34, + 44, + 34, + 114, + 101, + 97, + 115, + 111, + 110, + 34, + 58, + 34, + 68, + 101, + 32, + 122, + 97, + 97, + 107, + 32, + 105, + 115, + 32, + 97, + 102, + 103, + 101, + 115, + 108, + 111, + 116, + 101, + 110, + 46, + 34, + 125, + 93, + 125 + ] + }, + "cookie": [], + "responseTime": 133, + "responseSize": 232 + }, + "id": "95a2e022-3bc3-4fd2-8f54-39aeb33deb77", + "assertions": [ + { + "assertion": "ZaakInformatieObject verwijderen bij gesloten Zaak zonder scope zaken.geforceerd-bijwerken geeft 403", + "skipped": false + } + ] + }, + { + "cursor": { + "ref": "2e72d21d-f3eb-4ba4-bba1-6b795b5d50b0", + "length": 313, + "cycles": 1, + "position": 93, + "iteration": 0, + "httpRequestId": "9de1c24c-60c3-4234-92c7-639e5bb4398c" + }, + "item": { + "id": "788534b9-736a-4345-9d0c-3b36eca8f341", + "name": "(zrc-007i) ZaakObject toevoegen bij gesloten Zaak is niet toegestaan zonder scope zaken.geforceerd-bijwerken", + "request": { + "url": { + "path": [ + "zaakobjecten" + ], + "host": [ + "{{zrc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n\t\"zaak\": \"{{created_zaak_url}}\",\n\t\"objectType\": \"pand\",\n\t\"objectIdentificatie\": {\n\t\t\"identificatie\": \"test\"\n\t}\n}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "d40493f1-0273-45db-9ac4-85aca7f3a073", + "type": "text/javascript", + "packages": {}, + "exec": [ + "pm.test(\"ZaakObject aanmaken bij gesloten Zaak zonder scope zaken.geforceerd-bijwerken geeft 403\", function() {", + " pm.response.to.have.status(403);", + " pm.expect(pm.response.json().code).to.be.equal(\"permission_denied\");", + "});" + ], + "_lastExecutionId": "a687f291-bdf3-42f5-8e83-1ce3c65afd04" + } + }, + { + "listen": "prerequest", + "script": { + "id": "9f6a05c7-98d3-4f40-9e8b-310cc05e290a", + "type": "text/javascript", + "packages": {}, + "exec": [ + "" + ], + "_lastExecutionId": "e9677e02-1e4d-415c-b64f-14453ca2ace4" + } + } + ] + }, + "request": { + "url": { + "protocol": "http", + "port": "8080", + "path": [ + "index.php", + "apps", + "procest", + "api", + "zgw", + "zaken", + "v1", + "zaakobjecten" + ], + "host": [ + "localhost" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Authorization", + "value": "Bearer eyJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJwcm9jZXN0LWxpbWl0ZWQiLCJjbGllbnRfaWQiOiJwcm9jZXN0LWxpbWl0ZWQiLCJpYXQiOiIxNzczMTQ1MTYyIiwidXNlcl9pZCI6InByb2Nlc3QtbGltaXRlZCIsInVzZXJfcmVwcmVzZW50YXRpb24iOiIifQ.Msb5tUxzHenmYQVHWOxQTpPrICX2-xyAGSYQnkIKMMc", + "system": true + }, + { + "key": "User-Agent", + "value": "PostmanRuntime/7.39.1", + "system": true + }, + { + "key": "Accept", + "value": "*/*", + "system": true + }, + { + "key": "Cache-Control", + "value": "no-cache", + "system": true + }, + { + "key": "Postman-Token", + "value": "d78f19f8-c761-4dd1-ad89-835bd66bf14a", + "system": true + }, + { + "key": "Host", + "value": "localhost:8080", + "system": true + }, + { + "key": "Accept-Encoding", + "value": "gzip, deflate, br", + "system": true + }, + { + "key": "Connection", + "value": "keep-alive", + "system": true + }, + { + "key": "Content-Length", + "value": "198", + "system": true + }, + { + "key": "Cookie", + "value": "ocvp3112b4wg=493b2e6608f895c8cf338c08cc332261; oc_sessionPassphrase=LBNdKxRzA0iqoULIruNxDDh2BK3O%2BrCIU8aUmiUcOFvy5Xw1YfjwQNlmBW2IkGwJYtxXh9%2BwDN6vYuGNX07tXzkBtjQJUWTGdzf8AIOUIVxVx5DfyWAQZ7nmYmQv6XSE; nc_sameSiteCookielax=true; nc_sameSiteCookiestrict=true", + "system": true + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n\t\"zaak\": \"http://localhost:8080/index.php/apps/procest/api/zgw/zaken/v1/zaken/b648c5da-b590-4960-94a0-f0c5a3f9ed90\",\n\t\"objectType\": \"pand\",\n\t\"objectIdentificatie\": {\n\t\t\"identificatie\": \"test\"\n\t}\n}" + }, + "auth": { + "type": "jwt", + "jwt": [ + { + "type": "string", + "value": "{\r\n \"iss\": \"procest-limited\",\r\n \"client_id\": \"procest-limited\",\r\n \"iat\": \"1773145162\",\r\n \"user_id\": \"procest-limited\",\r\n \"user_representation\": \"\"\r\n}", + "key": "payload" + }, + { + "type": "string", + "value": "procest-limited-secret-key-for-test", + "key": "secret" + }, + { + "type": "string", + "value": "HS256", + "key": "algorithm" + }, + { + "type": "boolean", + "value": false, + "key": "isSecretBase64Encoded" + }, + { + "type": "string", + "value": "header", + "key": "addTokenTo" + }, + { + "type": "string", + "value": "Bearer", + "key": "headerPrefix" + }, + { + "type": "string", + "value": "token", + "key": "queryParamKey" + }, + { + "type": "string", + "value": "{}", + "key": "header" + } + ] + } + }, + "response": { + "id": "e61dc2a0-cbb4-4c3a-88ec-07e2322d9bd5", + "status": "Forbidden", + "code": 403, + "header": [ + { + "key": "Date", + "value": "Tue, 10 Mar 2026 12:19:21 GMT" + }, + { + "key": "Server", + "value": "Apache/2.4.66 (Debian)" + }, + { + "key": "X-Content-Type-Options", + "value": "nosniff" + }, + { + "key": "X-Frame-Options", + "value": "SAMEORIGIN" + }, + { + "key": "X-Permitted-Cross-Domain-Policies", + "value": "none" + }, + { + "key": "X-Robots-Tag", + "value": "noindex, nofollow" + }, + { + "key": "Referrer-Policy", + "value": "no-referrer" + }, + { + "key": "X-Powered-By", + "value": "PHP/8.3.30" + }, + { + "key": "Content-Security-Policy", + "value": "default-src 'none';base-uri 'none';manifest-src 'self';frame-ancestors 'none'" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=493b2e6608f895c8cf338c08cc332261; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "X-Request-Id", + "value": "mtPGcJuAwOAk67DLuhUd" + }, + { + "key": "Cache-Control", + "value": "no-cache, no-store, must-revalidate" + }, + { + "key": "Feature-Policy", + "value": "autoplay 'none';camera 'none';fullscreen 'none';geolocation 'none';microphone 'none';payment 'none'" + }, + { + "key": "Content-Length", + "value": "232" + }, + { + "key": "Keep-Alive", + "value": "timeout=5, max=57" + }, + { + "key": "Connection", + "value": "Keep-Alive" + }, + { + "key": "Content-Type", + "value": "application/json; charset=utf-8" + } + ], + "stream": { + "type": "Buffer", + "data": [ + 123, + 34, + 100, + 101, + 116, + 97, + 105, + 108, + 34, + 58, + 34, + 90, + 97, + 97, + 107, + 32, + 105, + 115, + 32, + 97, + 102, + 103, + 101, + 115, + 108, + 111, + 116, + 101, + 110, + 46, + 32, + 87, + 105, + 106, + 122, + 105, + 103, + 105, + 110, + 103, + 101, + 110, + 32, + 122, + 105, + 106, + 110, + 32, + 110, + 105, + 101, + 116, + 32, + 116, + 111, + 101, + 103, + 101, + 115, + 116, + 97, + 97, + 110, + 32, + 122, + 111, + 110, + 100, + 101, + 114, + 32, + 115, + 99, + 111, + 112, + 101, + 32, + 122, + 97, + 107, + 101, + 110, + 46, + 103, + 101, + 102, + 111, + 114, + 99, + 101, + 101, + 114, + 100, + 45, + 98, + 105, + 106, + 119, + 101, + 114, + 107, + 101, + 110, + 46, + 34, + 44, + 34, + 99, + 111, + 100, + 101, + 34, + 58, + 34, + 112, + 101, + 114, + 109, + 105, + 115, + 115, + 105, + 111, + 110, + 95, + 100, + 101, + 110, + 105, + 101, + 100, + 34, + 44, + 34, + 105, + 110, + 118, + 97, + 108, + 105, + 100, + 80, + 97, + 114, + 97, + 109, + 115, + 34, + 58, + 91, + 123, + 34, + 110, + 97, + 109, + 101, + 34, + 58, + 34, + 110, + 111, + 110, + 70, + 105, + 101, + 108, + 100, + 69, + 114, + 114, + 111, + 114, + 115, + 34, + 44, + 34, + 99, + 111, + 100, + 101, + 34, + 58, + 34, + 122, + 97, + 97, + 107, + 45, + 99, + 108, + 111, + 115, + 101, + 100, + 34, + 44, + 34, + 114, + 101, + 97, + 115, + 111, + 110, + 34, + 58, + 34, + 68, + 101, + 32, + 122, + 97, + 97, + 107, + 32, + 105, + 115, + 32, + 97, + 102, + 103, + 101, + 115, + 108, + 111, + 116, + 101, + 110, + 46, + 34, + 125, + 93, + 125 + ] + }, + "cookie": [], + "responseTime": 245, + "responseSize": 232 + }, + "id": "788534b9-736a-4345-9d0c-3b36eca8f341", + "assertions": [ + { + "assertion": "ZaakObject aanmaken bij gesloten Zaak zonder scope zaken.geforceerd-bijwerken geeft 403", + "skipped": false + } + ] + }, + { + "cursor": { + "ref": "e88156e9-77aa-40f7-a7b9-f49d19e61f5b", + "length": 313, + "cycles": 1, + "position": 94, + "iteration": 0, + "httpRequestId": "66378c78-1d66-43f9-8222-44ef40f95d5f" + }, + "item": { + "id": "d2f56f4e-c6a4-4a98-a0e4-8c0546e2aa9b", + "name": "(zrc-007k) ZaakEigenschap toevoegen bij gesloten Zaak is niet toegestaan zonder scope zaken.geforceerd-bijwerken", + "request": { + "url": { + "path": [ + "zaakeigenschappen" + ], + "host": [ + "{{created_zaak_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n\t\"zaak\": \"{{created_zaak_url}}\",\n\t\"eigenschap\": \"{{zaaktype_eigenschap}}\",\n\t\"waarde\": \"test\"\n}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "e23c2bd5-db14-4345-bb91-3d08cdae1dbf", + "type": "text/javascript", + "packages": {}, + "exec": [ + "pm.test(\"Zaakeigenschap aanmaken bij gesloten Zaak zonder scope zaken.geforceerd-bijwerken geeft 403\", function() {", + " pm.response.to.have.status(403);", + " pm.expect(pm.response.json().code).to.be.equal(\"permission_denied\");", + "});" + ], + "_lastExecutionId": "7e6c8385-d3b9-4bd9-8d9c-1b9d20f15181" + } + }, + { + "listen": "prerequest", + "script": { + "id": "617c55a5-0a9e-43b7-9524-d7e4557bf541", + "type": "text/javascript", + "packages": {}, + "exec": [ + "" + ], + "_lastExecutionId": "a7a6cda4-339a-4bc3-a999-fb5d92f87dd1" + } + } + ] + }, + "request": { + "url": { + "protocol": "http", + "port": "8080", + "path": [ + "index.php", + "apps", + "procest", + "api", + "zgw", + "zaken", + "v1", + "zaken", + "b648c5da-b590-4960-94a0-f0c5a3f9ed90", + "zaakeigenschappen" + ], + "host": [ + "localhost" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Authorization", + "value": "Bearer eyJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJwcm9jZXN0LWxpbWl0ZWQiLCJjbGllbnRfaWQiOiJwcm9jZXN0LWxpbWl0ZWQiLCJpYXQiOiIxNzczMTQ1MTYyIiwidXNlcl9pZCI6InByb2Nlc3QtbGltaXRlZCIsInVzZXJfcmVwcmVzZW50YXRpb24iOiIifQ.Msb5tUxzHenmYQVHWOxQTpPrICX2-xyAGSYQnkIKMMc", + "system": true + }, + { + "key": "User-Agent", + "value": "PostmanRuntime/7.39.1", + "system": true + }, + { + "key": "Accept", + "value": "*/*", + "system": true + }, + { + "key": "Cache-Control", + "value": "no-cache", + "system": true + }, + { + "key": "Postman-Token", + "value": "f33ed6f3-69f4-4407-be74-c979f22ae602", + "system": true + }, + { + "key": "Host", + "value": "localhost:8080", + "system": true + }, + { + "key": "Accept-Encoding", + "value": "gzip, deflate, br", + "system": true + }, + { + "key": "Connection", + "value": "keep-alive", + "system": true + }, + { + "key": "Content-Length", + "value": "272", + "system": true + }, + { + "key": "Cookie", + "value": "ocvp3112b4wg=493b2e6608f895c8cf338c08cc332261; oc_sessionPassphrase=LBNdKxRzA0iqoULIruNxDDh2BK3O%2BrCIU8aUmiUcOFvy5Xw1YfjwQNlmBW2IkGwJYtxXh9%2BwDN6vYuGNX07tXzkBtjQJUWTGdzf8AIOUIVxVx5DfyWAQZ7nmYmQv6XSE; nc_sameSiteCookielax=true; nc_sameSiteCookiestrict=true", + "system": true + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n\t\"zaak\": \"http://localhost:8080/index.php/apps/procest/api/zgw/zaken/v1/zaken/b648c5da-b590-4960-94a0-f0c5a3f9ed90\",\n\t\"eigenschap\": \"http://localhost:8080/index.php/apps/procest/api/zgw/catalogi/v1/eigenschappen/c1598f9b-000f-4406-80e4-2d317530a4a9\",\n\t\"waarde\": \"test\"\n}" + }, + "auth": { + "type": "jwt", + "jwt": [ + { + "type": "string", + "value": "{\r\n \"iss\": \"procest-limited\",\r\n \"client_id\": \"procest-limited\",\r\n \"iat\": \"1773145162\",\r\n \"user_id\": \"procest-limited\",\r\n \"user_representation\": \"\"\r\n}", + "key": "payload" + }, + { + "type": "string", + "value": "procest-limited-secret-key-for-test", + "key": "secret" + }, + { + "type": "string", + "value": "HS256", + "key": "algorithm" + }, + { + "type": "boolean", + "value": false, + "key": "isSecretBase64Encoded" + }, + { + "type": "string", + "value": "header", + "key": "addTokenTo" + }, + { + "type": "string", + "value": "Bearer", + "key": "headerPrefix" + }, + { + "type": "string", + "value": "token", + "key": "queryParamKey" + }, + { + "type": "string", + "value": "{}", + "key": "header" + } + ] + } + }, + "response": { + "id": "9703172f-0069-47d3-9e01-8a94df75f42d", + "status": "Forbidden", + "code": 403, + "header": [ + { + "key": "Date", + "value": "Tue, 10 Mar 2026 12:19:22 GMT" + }, + { + "key": "Server", + "value": "Apache/2.4.66 (Debian)" + }, + { + "key": "X-Content-Type-Options", + "value": "nosniff" + }, + { + "key": "X-Frame-Options", + "value": "SAMEORIGIN" + }, + { + "key": "X-Permitted-Cross-Domain-Policies", + "value": "none" + }, + { + "key": "X-Robots-Tag", + "value": "noindex, nofollow" + }, + { + "key": "Referrer-Policy", + "value": "no-referrer" + }, + { + "key": "X-Powered-By", + "value": "PHP/8.3.30" + }, + { + "key": "Content-Security-Policy", + "value": "default-src 'none';base-uri 'none';manifest-src 'self';frame-ancestors 'none'" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=493b2e6608f895c8cf338c08cc332261; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "X-Request-Id", + "value": "hXytnJgGwwq0RRSFWeW9" + }, + { + "key": "Cache-Control", + "value": "no-cache, no-store, must-revalidate" + }, + { + "key": "Feature-Policy", + "value": "autoplay 'none';camera 'none';fullscreen 'none';geolocation 'none';microphone 'none';payment 'none'" + }, + { + "key": "Content-Length", + "value": "232" + }, + { + "key": "Keep-Alive", + "value": "timeout=5, max=56" + }, + { + "key": "Connection", + "value": "Keep-Alive" + }, + { + "key": "Content-Type", + "value": "application/json; charset=utf-8" + } + ], + "stream": { + "type": "Buffer", + "data": [ + 123, + 34, + 100, + 101, + 116, + 97, + 105, + 108, + 34, + 58, + 34, + 90, + 97, + 97, + 107, + 32, + 105, + 115, + 32, + 97, + 102, + 103, + 101, + 115, + 108, + 111, + 116, + 101, + 110, + 46, + 32, + 87, + 105, + 106, + 122, + 105, + 103, + 105, + 110, + 103, + 101, + 110, + 32, + 122, + 105, + 106, + 110, + 32, + 110, + 105, + 101, + 116, + 32, + 116, + 111, + 101, + 103, + 101, + 115, + 116, + 97, + 97, + 110, + 32, + 122, + 111, + 110, + 100, + 101, + 114, + 32, + 115, + 99, + 111, + 112, + 101, + 32, + 122, + 97, + 107, + 101, + 110, + 46, + 103, + 101, + 102, + 111, + 114, + 99, + 101, + 101, + 114, + 100, + 45, + 98, + 105, + 106, + 119, + 101, + 114, + 107, + 101, + 110, + 46, + 34, + 44, + 34, + 99, + 111, + 100, + 101, + 34, + 58, + 34, + 112, + 101, + 114, + 109, + 105, + 115, + 115, + 105, + 111, + 110, + 95, + 100, + 101, + 110, + 105, + 101, + 100, + 34, + 44, + 34, + 105, + 110, + 118, + 97, + 108, + 105, + 100, + 80, + 97, + 114, + 97, + 109, + 115, + 34, + 58, + 91, + 123, + 34, + 110, + 97, + 109, + 101, + 34, + 58, + 34, + 110, + 111, + 110, + 70, + 105, + 101, + 108, + 100, + 69, + 114, + 114, + 111, + 114, + 115, + 34, + 44, + 34, + 99, + 111, + 100, + 101, + 34, + 58, + 34, + 122, + 97, + 97, + 107, + 45, + 99, + 108, + 111, + 115, + 101, + 100, + 34, + 44, + 34, + 114, + 101, + 97, + 115, + 111, + 110, + 34, + 58, + 34, + 68, + 101, + 32, + 122, + 97, + 97, + 107, + 32, + 105, + 115, + 32, + 97, + 102, + 103, + 101, + 115, + 108, + 111, + 116, + 101, + 110, + 46, + 34, + 125, + 93, + 125 + ] + }, + "cookie": [], + "responseTime": 98, + "responseSize": 232 + }, + "id": "d2f56f4e-c6a4-4a98-a0e4-8c0546e2aa9b", + "assertions": [ + { + "assertion": "Zaakeigenschap aanmaken bij gesloten Zaak zonder scope zaken.geforceerd-bijwerken geeft 403", + "skipped": false + } + ] + }, + { + "cursor": { + "ref": "144af6a3-2275-496c-972f-1e87bca73546", + "length": 313, + "cycles": 1, + "position": 95, + "iteration": 0, + "httpRequestId": "36f7396f-b60d-4c17-b2cc-25ffc3d4bda6" + }, + "item": { + "id": "99f52437-aba8-4552-b761-25b16cfb95d5", + "name": "set full token Copy", + "request": { + "url": { + "path": [ + "catalogussen" + ], + "host": [ + "{{ztc_url}}" + ], + "query": [], + "variable": [] + }, + "method": "GET" + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "79d89f68-0c8f-40a4-bab6-0a905e84289a", + "type": "text/javascript", + "packages": {}, + "exec": [ + "" + ], + "_lastExecutionId": "602fc6a2-da7b-4273-87fd-5a7d75c997c0" + } + }, + { + "listen": "prerequest", + "script": { + "id": "03295b54-11bb-4245-bdb1-5a33c1079682", + "type": "text/javascript", + "packages": {}, + "exec": [ + "pm.environment.set(\"jwt_token\", pm.environment.get(\"jwt_full\"));", + " var origId = pm.environment.get(\"_original_client_id\");", + " var origSecret = pm.environment.get(\"_original_secret\");", + " if (origId) { pm.environment.set(\"client_id\", origId); }", + " if (origSecret) { pm.environment.set(\"secret\", origSecret); }", + " pm.environment.set(\"secret\", pm.environment.get(\"secret\") || \"procest-admin-secret-key-for-testing\");" + ], + "_lastExecutionId": "92ba0532-9aba-45f6-959c-b2e859750135" + } + } + ] + }, + "request": { + "url": { + "protocol": "http", + "port": "8080", + "path": [ + "index.php", + "apps", + "procest", + "api", + "zgw", + "catalogi", + "v1", + "catalogussen" + ], + "host": [ + "localhost" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Authorization", + "value": "Bearer eyJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJwcm9jZXN0LWFkbWluIiwiY2xpZW50X2lkIjoicHJvY2VzdC1hZG1pbiIsImlhdCI6IjE3NzMxNDUxNjIiLCJ1c2VyX2lkIjoicHJvY2VzdC1hZG1pbiIsInVzZXJfcmVwcmVzZW50YXRpb24iOiIifQ.lNP_Gcmr4sMg38L8THaVOX7XHK8-1hIzygaUBQGUjKM", + "system": true + }, + { + "key": "User-Agent", + "value": "PostmanRuntime/7.39.1", + "system": true + }, + { + "key": "Accept", + "value": "*/*", + "system": true + }, + { + "key": "Cache-Control", + "value": "no-cache", + "system": true + }, + { + "key": "Postman-Token", + "value": "cdb8eee1-4bfa-408d-a447-92bc78ec4eae", + "system": true + }, + { + "key": "Host", + "value": "localhost:8080", + "system": true + }, + { + "key": "Accept-Encoding", + "value": "gzip, deflate, br", + "system": true + }, + { + "key": "Connection", + "value": "keep-alive", + "system": true + }, + { + "key": "Cookie", + "value": "ocvp3112b4wg=493b2e6608f895c8cf338c08cc332261; oc_sessionPassphrase=LBNdKxRzA0iqoULIruNxDDh2BK3O%2BrCIU8aUmiUcOFvy5Xw1YfjwQNlmBW2IkGwJYtxXh9%2BwDN6vYuGNX07tXzkBtjQJUWTGdzf8AIOUIVxVx5DfyWAQZ7nmYmQv6XSE; nc_sameSiteCookielax=true; nc_sameSiteCookiestrict=true", + "system": true + } + ], + "method": "GET", + "auth": { + "type": "jwt", + "jwt": [ + { + "type": "string", + "value": "{\r\n \"iss\": \"procest-admin\",\r\n \"client_id\": \"procest-admin\",\r\n \"iat\": \"1773145162\",\r\n \"user_id\": \"procest-admin\",\r\n \"user_representation\": \"\"\r\n}", + "key": "payload" + }, + { + "type": "string", + "value": "procest-admin-secret-key-for-testing", + "key": "secret" + }, + { + "type": "string", + "value": "HS256", + "key": "algorithm" + }, + { + "type": "boolean", + "value": false, + "key": "isSecretBase64Encoded" + }, + { + "type": "string", + "value": "header", + "key": "addTokenTo" + }, + { + "type": "string", + "value": "Bearer", + "key": "headerPrefix" + }, + { + "type": "string", + "value": "token", + "key": "queryParamKey" + }, + { + "type": "string", + "value": "{}", + "key": "header" + } + ] + } + }, + "response": { + "id": "d2d8063d-7387-40e6-b21b-5cfdad20cca2", + "status": "OK", + "code": 200, + "header": [ + { + "key": "Date", + "value": "Tue, 10 Mar 2026 12:19:22 GMT" + }, + { + "key": "Server", + "value": "Apache/2.4.66 (Debian)" + }, + { + "key": "X-Content-Type-Options", + "value": "nosniff" + }, + { + "key": "X-Frame-Options", + "value": "SAMEORIGIN" + }, + { + "key": "X-Permitted-Cross-Domain-Policies", + "value": "none" + }, + { + "key": "X-Robots-Tag", + "value": "noindex, nofollow" + }, + { + "key": "Referrer-Policy", + "value": "no-referrer" + }, + { + "key": "X-Powered-By", + "value": "PHP/8.3.30" + }, + { + "key": "Content-Security-Policy", + "value": "default-src 'none';base-uri 'none';manifest-src 'self';frame-ancestors 'none'" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=493b2e6608f895c8cf338c08cc332261; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "X-Request-Id", + "value": "po0prClcRpSY7rZJ7sgO" + }, + { + "key": "Cache-Control", + "value": "no-cache, no-store, must-revalidate" + }, + { + "key": "Feature-Policy", + "value": "autoplay 'none';camera 'none';fullscreen 'none';geolocation 'none';microphone 'none';payment 'none'" + }, + { + "key": "X-User-Id", + "value": "admin" + }, + { + "key": "Content-Encoding", + "value": "gzip" + }, + { + "key": "Content-Length", + "value": "919" + }, + { + "key": "Keep-Alive", + "value": "timeout=5, max=55" + }, + { + "key": "Connection", + "value": "Keep-Alive" + }, + { + "key": "Content-Type", + "value": "application/json; charset=utf-8" + } + ], + "stream": { + "type": "Buffer", + "data": [ + 123, + 34, + 99, + 111, + 117, + 110, + 116, + 34, + 58, + 50, + 49, + 50, + 44, + 34, + 110, + 101, + 120, + 116, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 105, + 92, + 47, + 118, + 49, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 117, + 115, + 115, + 101, + 110, + 63, + 112, + 97, + 103, + 101, + 61, + 50, + 34, + 44, + 34, + 112, + 114, + 101, + 118, + 105, + 111, + 117, + 115, + 34, + 58, + 110, + 117, + 108, + 108, + 44, + 34, + 114, + 101, + 115, + 117, + 108, + 116, + 115, + 34, + 58, + 91, + 123, + 34, + 117, + 114, + 108, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 105, + 92, + 47, + 118, + 49, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 117, + 115, + 115, + 101, + 110, + 92, + 47, + 100, + 51, + 100, + 101, + 101, + 56, + 101, + 98, + 45, + 56, + 100, + 50, + 56, + 45, + 52, + 50, + 50, + 101, + 45, + 98, + 48, + 97, + 102, + 45, + 97, + 57, + 57, + 57, + 101, + 100, + 57, + 55, + 50, + 50, + 51, + 102, + 34, + 44, + 34, + 117, + 117, + 105, + 100, + 34, + 58, + 34, + 100, + 51, + 100, + 101, + 101, + 56, + 101, + 98, + 45, + 56, + 100, + 50, + 56, + 45, + 52, + 50, + 50, + 101, + 45, + 98, + 48, + 97, + 102, + 45, + 97, + 57, + 57, + 57, + 101, + 100, + 57, + 55, + 50, + 50, + 51, + 102, + 34, + 44, + 34, + 100, + 111, + 109, + 101, + 105, + 110, + 34, + 58, + 34, + 65, + 65, + 66, + 34, + 44, + 34, + 114, + 115, + 105, + 110, + 34, + 58, + 34, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 34, + 44, + 34, + 99, + 111, + 110, + 116, + 97, + 99, + 116, + 112, + 101, + 114, + 115, + 111, + 111, + 110, + 66, + 101, + 104, + 101, + 101, + 114, + 78, + 97, + 97, + 109, + 34, + 58, + 34, + 84, + 101, + 115, + 116, + 32, + 80, + 101, + 114, + 115, + 111, + 111, + 110, + 34, + 44, + 34, + 99, + 111, + 110, + 116, + 97, + 99, + 116, + 112, + 101, + 114, + 115, + 111, + 111, + 110, + 66, + 101, + 104, + 101, + 101, + 114, + 84, + 101, + 108, + 101, + 102, + 111, + 111, + 110, + 110, + 117, + 109, + 109, + 101, + 114, + 34, + 58, + 34, + 34, + 44, + 34, + 99, + 111, + 110, + 116, + 97, + 99, + 116, + 112, + 101, + 114, + 115, + 111, + 111, + 110, + 66, + 101, + 104, + 101, + 101, + 114, + 69, + 109, + 97, + 105, + 108, + 97, + 100, + 114, + 101, + 115, + 34, + 58, + 34, + 34, + 44, + 34, + 122, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 98, + 101, + 115, + 108, + 117, + 105, + 116, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 105, + 110, + 102, + 111, + 114, + 109, + 97, + 116, + 105, + 101, + 111, + 98, + 106, + 101, + 99, + 116, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 125, + 44, + 123, + 34, + 117, + 114, + 108, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 105, + 92, + 47, + 118, + 49, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 117, + 115, + 115, + 101, + 110, + 92, + 47, + 57, + 51, + 51, + 52, + 102, + 49, + 49, + 48, + 45, + 98, + 97, + 48, + 98, + 45, + 52, + 50, + 49, + 55, + 45, + 56, + 57, + 48, + 51, + 45, + 98, + 97, + 55, + 49, + 52, + 48, + 55, + 102, + 48, + 97, + 50, + 50, + 34, + 44, + 34, + 117, + 117, + 105, + 100, + 34, + 58, + 34, + 57, + 51, + 51, + 52, + 102, + 49, + 49, + 48, + 45, + 98, + 97, + 48, + 98, + 45, + 52, + 50, + 49, + 55, + 45, + 56, + 57, + 48, + 51, + 45, + 98, + 97, + 55, + 49, + 52, + 48, + 55, + 102, + 48, + 97, + 50, + 50, + 34, + 44, + 34, + 100, + 111, + 109, + 101, + 105, + 110, + 34, + 58, + 34, + 90, + 71, + 87, + 84, + 34, + 44, + 34, + 114, + 115, + 105, + 110, + 34, + 58, + 34, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 34, + 44, + 34, + 99, + 111, + 110, + 116, + 97, + 99, + 116, + 112, + 101, + 114, + 115, + 111, + 111, + 110, + 66, + 101, + 104, + 101, + 101, + 114, + 78, + 97, + 97, + 109, + 34, + 58, + 34, + 84, + 101, + 115, + 116, + 32, + 80, + 101, + 114, + 115, + 111, + 111, + 110, + 34, + 44, + 34, + 99, + 111, + 110, + 116, + 97, + 99, + 116, + 112, + 101, + 114, + 115, + 111, + 111, + 110, + 66, + 101, + 104, + 101, + 101, + 114, + 84, + 101, + 108, + 101, + 102, + 111, + 111, + 110, + 110, + 117, + 109, + 109, + 101, + 114, + 34, + 58, + 34, + 34, + 44, + 34, + 99, + 111, + 110, + 116, + 97, + 99, + 116, + 112, + 101, + 114, + 115, + 111, + 111, + 110, + 66, + 101, + 104, + 101, + 101, + 114, + 69, + 109, + 97, + 105, + 108, + 97, + 100, + 114, + 101, + 115, + 34, + 58, + 34, + 34, + 44, + 34, + 122, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 98, + 101, + 115, + 108, + 117, + 105, + 116, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 105, + 110, + 102, + 111, + 114, + 109, + 97, + 116, + 105, + 101, + 111, + 98, + 106, + 101, + 99, + 116, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 125, + 44, + 123, + 34, + 117, + 114, + 108, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 105, + 92, + 47, + 118, + 49, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 117, + 115, + 115, + 101, + 110, + 92, + 47, + 99, + 57, + 101, + 56, + 97, + 99, + 56, + 56, + 45, + 52, + 55, + 53, + 55, + 45, + 52, + 101, + 101, + 49, + 45, + 97, + 56, + 102, + 48, + 45, + 57, + 55, + 51, + 98, + 51, + 101, + 97, + 100, + 57, + 52, + 55, + 100, + 34, + 44, + 34, + 117, + 117, + 105, + 100, + 34, + 58, + 34, + 99, + 57, + 101, + 56, + 97, + 99, + 56, + 56, + 45, + 52, + 55, + 53, + 55, + 45, + 52, + 101, + 101, + 49, + 45, + 97, + 56, + 102, + 48, + 45, + 57, + 55, + 51, + 98, + 51, + 101, + 97, + 100, + 57, + 52, + 55, + 100, + 34, + 44, + 34, + 100, + 111, + 109, + 101, + 105, + 110, + 34, + 58, + 34, + 65, + 65, + 66, + 34, + 44, + 34, + 114, + 115, + 105, + 110, + 34, + 58, + 34, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 34, + 44, + 34, + 99, + 111, + 110, + 116, + 97, + 99, + 116, + 112, + 101, + 114, + 115, + 111, + 111, + 110, + 66, + 101, + 104, + 101, + 101, + 114, + 78, + 97, + 97, + 109, + 34, + 58, + 34, + 84, + 101, + 115, + 116, + 32, + 80, + 101, + 114, + 115, + 111, + 111, + 110, + 34, + 44, + 34, + 99, + 111, + 110, + 116, + 97, + 99, + 116, + 112, + 101, + 114, + 115, + 111, + 111, + 110, + 66, + 101, + 104, + 101, + 101, + 114, + 84, + 101, + 108, + 101, + 102, + 111, + 111, + 110, + 110, + 117, + 109, + 109, + 101, + 114, + 34, + 58, + 34, + 34, + 44, + 34, + 99, + 111, + 110, + 116, + 97, + 99, + 116, + 112, + 101, + 114, + 115, + 111, + 111, + 110, + 66, + 101, + 104, + 101, + 101, + 114, + 69, + 109, + 97, + 105, + 108, + 97, + 100, + 114, + 101, + 115, + 34, + 58, + 34, + 34, + 44, + 34, + 122, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 98, + 101, + 115, + 108, + 117, + 105, + 116, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 105, + 110, + 102, + 111, + 114, + 109, + 97, + 116, + 105, + 101, + 111, + 98, + 106, + 101, + 99, + 116, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 125, + 44, + 123, + 34, + 117, + 114, + 108, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 105, + 92, + 47, + 118, + 49, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 117, + 115, + 115, + 101, + 110, + 92, + 47, + 100, + 54, + 100, + 51, + 52, + 57, + 52, + 50, + 45, + 50, + 49, + 51, + 53, + 45, + 52, + 50, + 97, + 51, + 45, + 97, + 57, + 55, + 102, + 45, + 51, + 52, + 102, + 55, + 57, + 99, + 54, + 55, + 54, + 99, + 57, + 55, + 34, + 44, + 34, + 117, + 117, + 105, + 100, + 34, + 58, + 34, + 100, + 54, + 100, + 51, + 52, + 57, + 52, + 50, + 45, + 50, + 49, + 51, + 53, + 45, + 52, + 50, + 97, + 51, + 45, + 97, + 57, + 55, + 102, + 45, + 51, + 52, + 102, + 55, + 57, + 99, + 54, + 55, + 54, + 99, + 57, + 55, + 34, + 44, + 34, + 100, + 111, + 109, + 101, + 105, + 110, + 34, + 58, + 34, + 65, + 65, + 66, + 34, + 44, + 34, + 114, + 115, + 105, + 110, + 34, + 58, + 34, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 34, + 44, + 34, + 99, + 111, + 110, + 116, + 97, + 99, + 116, + 112, + 101, + 114, + 115, + 111, + 111, + 110, + 66, + 101, + 104, + 101, + 101, + 114, + 78, + 97, + 97, + 109, + 34, + 58, + 34, + 84, + 101, + 115, + 116, + 32, + 80, + 101, + 114, + 115, + 111, + 111, + 110, + 34, + 44, + 34, + 99, + 111, + 110, + 116, + 97, + 99, + 116, + 112, + 101, + 114, + 115, + 111, + 111, + 110, + 66, + 101, + 104, + 101, + 101, + 114, + 84, + 101, + 108, + 101, + 102, + 111, + 111, + 110, + 110, + 117, + 109, + 109, + 101, + 114, + 34, + 58, + 34, + 34, + 44, + 34, + 99, + 111, + 110, + 116, + 97, + 99, + 116, + 112, + 101, + 114, + 115, + 111, + 111, + 110, + 66, + 101, + 104, + 101, + 101, + 114, + 69, + 109, + 97, + 105, + 108, + 97, + 100, + 114, + 101, + 115, + 34, + 58, + 34, + 34, + 44, + 34, + 122, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 98, + 101, + 115, + 108, + 117, + 105, + 116, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 105, + 110, + 102, + 111, + 114, + 109, + 97, + 116, + 105, + 101, + 111, + 98, + 106, + 101, + 99, + 116, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 125, + 44, + 123, + 34, + 117, + 114, + 108, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 105, + 92, + 47, + 118, + 49, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 117, + 115, + 115, + 101, + 110, + 92, + 47, + 55, + 99, + 99, + 99, + 101, + 55, + 97, + 57, + 45, + 101, + 52, + 98, + 57, + 45, + 52, + 56, + 101, + 51, + 45, + 56, + 97, + 53, + 51, + 45, + 99, + 97, + 102, + 56, + 48, + 102, + 54, + 97, + 55, + 98, + 99, + 55, + 34, + 44, + 34, + 117, + 117, + 105, + 100, + 34, + 58, + 34, + 55, + 99, + 99, + 99, + 101, + 55, + 97, + 57, + 45, + 101, + 52, + 98, + 57, + 45, + 52, + 56, + 101, + 51, + 45, + 56, + 97, + 53, + 51, + 45, + 99, + 97, + 102, + 56, + 48, + 102, + 54, + 97, + 55, + 98, + 99, + 55, + 34, + 44, + 34, + 100, + 111, + 109, + 101, + 105, + 110, + 34, + 58, + 34, + 65, + 65, + 66, + 34, + 44, + 34, + 114, + 115, + 105, + 110, + 34, + 58, + 34, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 34, + 44, + 34, + 99, + 111, + 110, + 116, + 97, + 99, + 116, + 112, + 101, + 114, + 115, + 111, + 111, + 110, + 66, + 101, + 104, + 101, + 101, + 114, + 78, + 97, + 97, + 109, + 34, + 58, + 34, + 84, + 101, + 115, + 116, + 32, + 80, + 101, + 114, + 115, + 111, + 111, + 110, + 34, + 44, + 34, + 99, + 111, + 110, + 116, + 97, + 99, + 116, + 112, + 101, + 114, + 115, + 111, + 111, + 110, + 66, + 101, + 104, + 101, + 101, + 114, + 84, + 101, + 108, + 101, + 102, + 111, + 111, + 110, + 110, + 117, + 109, + 109, + 101, + 114, + 34, + 58, + 34, + 34, + 44, + 34, + 99, + 111, + 110, + 116, + 97, + 99, + 116, + 112, + 101, + 114, + 115, + 111, + 111, + 110, + 66, + 101, + 104, + 101, + 101, + 114, + 69, + 109, + 97, + 105, + 108, + 97, + 100, + 114, + 101, + 115, + 34, + 58, + 34, + 34, + 44, + 34, + 122, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 98, + 101, + 115, + 108, + 117, + 105, + 116, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 105, + 110, + 102, + 111, + 114, + 109, + 97, + 116, + 105, + 101, + 111, + 98, + 106, + 101, + 99, + 116, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 125, + 44, + 123, + 34, + 117, + 114, + 108, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 105, + 92, + 47, + 118, + 49, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 117, + 115, + 115, + 101, + 110, + 92, + 47, + 57, + 55, + 98, + 54, + 99, + 50, + 102, + 57, + 45, + 101, + 53, + 51, + 51, + 45, + 52, + 100, + 101, + 57, + 45, + 98, + 100, + 51, + 51, + 45, + 51, + 57, + 98, + 51, + 97, + 49, + 57, + 99, + 53, + 56, + 97, + 50, + 34, + 44, + 34, + 117, + 117, + 105, + 100, + 34, + 58, + 34, + 57, + 55, + 98, + 54, + 99, + 50, + 102, + 57, + 45, + 101, + 53, + 51, + 51, + 45, + 52, + 100, + 101, + 57, + 45, + 98, + 100, + 51, + 51, + 45, + 51, + 57, + 98, + 51, + 97, + 49, + 57, + 99, + 53, + 56, + 97, + 50, + 34, + 44, + 34, + 100, + 111, + 109, + 101, + 105, + 110, + 34, + 58, + 34, + 65, + 65, + 66, + 34, + 44, + 34, + 114, + 115, + 105, + 110, + 34, + 58, + 34, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 34, + 44, + 34, + 99, + 111, + 110, + 116, + 97, + 99, + 116, + 112, + 101, + 114, + 115, + 111, + 111, + 110, + 66, + 101, + 104, + 101, + 101, + 114, + 78, + 97, + 97, + 109, + 34, + 58, + 34, + 84, + 101, + 115, + 116, + 32, + 80, + 101, + 114, + 115, + 111, + 111, + 110, + 34, + 44, + 34, + 99, + 111, + 110, + 116, + 97, + 99, + 116, + 112, + 101, + 114, + 115, + 111, + 111, + 110, + 66, + 101, + 104, + 101, + 101, + 114, + 84, + 101, + 108, + 101, + 102, + 111, + 111, + 110, + 110, + 117, + 109, + 109, + 101, + 114, + 34, + 58, + 34, + 34, + 44, + 34, + 99, + 111, + 110, + 116, + 97, + 99, + 116, + 112, + 101, + 114, + 115, + 111, + 111, + 110, + 66, + 101, + 104, + 101, + 101, + 114, + 69, + 109, + 97, + 105, + 108, + 97, + 100, + 114, + 101, + 115, + 34, + 58, + 34, + 34, + 44, + 34, + 122, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 98, + 101, + 115, + 108, + 117, + 105, + 116, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 105, + 110, + 102, + 111, + 114, + 109, + 97, + 116, + 105, + 101, + 111, + 98, + 106, + 101, + 99, + 116, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 125, + 44, + 123, + 34, + 117, + 114, + 108, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 105, + 92, + 47, + 118, + 49, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 117, + 115, + 115, + 101, + 110, + 92, + 47, + 52, + 55, + 53, + 55, + 101, + 57, + 98, + 54, + 45, + 51, + 102, + 57, + 101, + 45, + 52, + 51, + 50, + 102, + 45, + 97, + 100, + 56, + 49, + 45, + 99, + 48, + 53, + 48, + 51, + 50, + 102, + 54, + 53, + 100, + 57, + 53, + 34, + 44, + 34, + 117, + 117, + 105, + 100, + 34, + 58, + 34, + 52, + 55, + 53, + 55, + 101, + 57, + 98, + 54, + 45, + 51, + 102, + 57, + 101, + 45, + 52, + 51, + 50, + 102, + 45, + 97, + 100, + 56, + 49, + 45, + 99, + 48, + 53, + 48, + 51, + 50, + 102, + 54, + 53, + 100, + 57, + 53, + 34, + 44, + 34, + 100, + 111, + 109, + 101, + 105, + 110, + 34, + 58, + 34, + 65, + 65, + 66, + 34, + 44, + 34, + 114, + 115, + 105, + 110, + 34, + 58, + 34, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 34, + 44, + 34, + 99, + 111, + 110, + 116, + 97, + 99, + 116, + 112, + 101, + 114, + 115, + 111, + 111, + 110, + 66, + 101, + 104, + 101, + 101, + 114, + 78, + 97, + 97, + 109, + 34, + 58, + 34, + 84, + 101, + 115, + 116, + 32, + 80, + 101, + 114, + 115, + 111, + 111, + 110, + 34, + 44, + 34, + 99, + 111, + 110, + 116, + 97, + 99, + 116, + 112, + 101, + 114, + 115, + 111, + 111, + 110, + 66, + 101, + 104, + 101, + 101, + 114, + 84, + 101, + 108, + 101, + 102, + 111, + 111, + 110, + 110, + 117, + 109, + 109, + 101, + 114, + 34, + 58, + 34, + 34, + 44, + 34, + 99, + 111, + 110, + 116, + 97, + 99, + 116, + 112, + 101, + 114, + 115, + 111, + 111, + 110, + 66, + 101, + 104, + 101, + 101, + 114, + 69, + 109, + 97, + 105, + 108, + 97, + 100, + 114, + 101, + 115, + 34, + 58, + 34, + 34, + 44, + 34, + 122, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 98, + 101, + 115, + 108, + 117, + 105, + 116, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 105, + 110, + 102, + 111, + 114, + 109, + 97, + 116, + 105, + 101, + 111, + 98, + 106, + 101, + 99, + 116, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 125, + 44, + 123, + 34, + 117, + 114, + 108, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 105, + 92, + 47, + 118, + 49, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 117, + 115, + 115, + 101, + 110, + 92, + 47, + 52, + 57, + 51, + 54, + 97, + 54, + 102, + 98, + 45, + 55, + 97, + 56, + 54, + 45, + 52, + 48, + 57, + 98, + 45, + 57, + 52, + 55, + 51, + 45, + 51, + 99, + 52, + 99, + 56, + 57, + 53, + 98, + 56, + 101, + 56, + 57, + 34, + 44, + 34, + 117, + 117, + 105, + 100, + 34, + 58, + 34, + 52, + 57, + 51, + 54, + 97, + 54, + 102, + 98, + 45, + 55, + 97, + 56, + 54, + 45, + 52, + 48, + 57, + 98, + 45, + 57, + 52, + 55, + 51, + 45, + 51, + 99, + 52, + 99, + 56, + 57, + 53, + 98, + 56, + 101, + 56, + 57, + 34, + 44, + 34, + 100, + 111, + 109, + 101, + 105, + 110, + 34, + 58, + 34, + 90, + 71, + 87, + 84, + 34, + 44, + 34, + 114, + 115, + 105, + 110, + 34, + 58, + 34, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 34, + 44, + 34, + 99, + 111, + 110, + 116, + 97, + 99, + 116, + 112, + 101, + 114, + 115, + 111, + 111, + 110, + 66, + 101, + 104, + 101, + 101, + 114, + 78, + 97, + 97, + 109, + 34, + 58, + 34, + 84, + 101, + 115, + 116, + 32, + 80, + 101, + 114, + 115, + 111, + 111, + 110, + 34, + 44, + 34, + 99, + 111, + 110, + 116, + 97, + 99, + 116, + 112, + 101, + 114, + 115, + 111, + 111, + 110, + 66, + 101, + 104, + 101, + 101, + 114, + 84, + 101, + 108, + 101, + 102, + 111, + 111, + 110, + 110, + 117, + 109, + 109, + 101, + 114, + 34, + 58, + 34, + 34, + 44, + 34, + 99, + 111, + 110, + 116, + 97, + 99, + 116, + 112, + 101, + 114, + 115, + 111, + 111, + 110, + 66, + 101, + 104, + 101, + 101, + 114, + 69, + 109, + 97, + 105, + 108, + 97, + 100, + 114, + 101, + 115, + 34, + 58, + 34, + 34, + 44, + 34, + 122, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 98, + 101, + 115, + 108, + 117, + 105, + 116, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 105, + 110, + 102, + 111, + 114, + 109, + 97, + 116, + 105, + 101, + 111, + 98, + 106, + 101, + 99, + 116, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 125, + 44, + 123, + 34, + 117, + 114, + 108, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 105, + 92, + 47, + 118, + 49, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 117, + 115, + 115, + 101, + 110, + 92, + 47, + 55, + 53, + 101, + 51, + 100, + 98, + 57, + 56, + 45, + 99, + 98, + 57, + 101, + 45, + 52, + 99, + 48, + 57, + 45, + 57, + 48, + 49, + 48, + 45, + 99, + 48, + 53, + 52, + 102, + 53, + 97, + 52, + 98, + 98, + 57, + 99, + 34, + 44, + 34, + 117, + 117, + 105, + 100, + 34, + 58, + 34, + 55, + 53, + 101, + 51, + 100, + 98, + 57, + 56, + 45, + 99, + 98, + 57, + 101, + 45, + 52, + 99, + 48, + 57, + 45, + 57, + 48, + 49, + 48, + 45, + 99, + 48, + 53, + 52, + 102, + 53, + 97, + 52, + 98, + 98, + 57, + 99, + 34, + 44, + 34, + 100, + 111, + 109, + 101, + 105, + 110, + 34, + 58, + 34, + 65, + 65, + 66, + 34, + 44, + 34, + 114, + 115, + 105, + 110, + 34, + 58, + 34, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 34, + 44, + 34, + 99, + 111, + 110, + 116, + 97, + 99, + 116, + 112, + 101, + 114, + 115, + 111, + 111, + 110, + 66, + 101, + 104, + 101, + 101, + 114, + 78, + 97, + 97, + 109, + 34, + 58, + 34, + 84, + 101, + 115, + 116, + 32, + 80, + 101, + 114, + 115, + 111, + 111, + 110, + 34, + 44, + 34, + 99, + 111, + 110, + 116, + 97, + 99, + 116, + 112, + 101, + 114, + 115, + 111, + 111, + 110, + 66, + 101, + 104, + 101, + 101, + 114, + 84, + 101, + 108, + 101, + 102, + 111, + 111, + 110, + 110, + 117, + 109, + 109, + 101, + 114, + 34, + 58, + 34, + 34, + 44, + 34, + 99, + 111, + 110, + 116, + 97, + 99, + 116, + 112, + 101, + 114, + 115, + 111, + 111, + 110, + 66, + 101, + 104, + 101, + 101, + 114, + 69, + 109, + 97, + 105, + 108, + 97, + 100, + 114, + 101, + 115, + 34, + 58, + 34, + 34, + 44, + 34, + 122, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 98, + 101, + 115, + 108, + 117, + 105, + 116, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 105, + 110, + 102, + 111, + 114, + 109, + 97, + 116, + 105, + 101, + 111, + 98, + 106, + 101, + 99, + 116, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 125, + 44, + 123, + 34, + 117, + 114, + 108, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 105, + 92, + 47, + 118, + 49, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 117, + 115, + 115, + 101, + 110, + 92, + 47, + 98, + 100, + 49, + 51, + 98, + 57, + 52, + 56, + 45, + 52, + 100, + 97, + 98, + 45, + 52, + 56, + 55, + 98, + 45, + 57, + 97, + 48, + 56, + 45, + 51, + 100, + 52, + 53, + 100, + 54, + 97, + 54, + 49, + 54, + 99, + 100, + 34, + 44, + 34, + 117, + 117, + 105, + 100, + 34, + 58, + 34, + 98, + 100, + 49, + 51, + 98, + 57, + 52, + 56, + 45, + 52, + 100, + 97, + 98, + 45, + 52, + 56, + 55, + 98, + 45, + 57, + 97, + 48, + 56, + 45, + 51, + 100, + 52, + 53, + 100, + 54, + 97, + 54, + 49, + 54, + 99, + 100, + 34, + 44, + 34, + 100, + 111, + 109, + 101, + 105, + 110, + 34, + 58, + 34, + 90, + 71, + 87, + 84, + 34, + 44, + 34, + 114, + 115, + 105, + 110, + 34, + 58, + 34, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 34, + 44, + 34, + 99, + 111, + 110, + 116, + 97, + 99, + 116, + 112, + 101, + 114, + 115, + 111, + 111, + 110, + 66, + 101, + 104, + 101, + 101, + 114, + 78, + 97, + 97, + 109, + 34, + 58, + 34, + 84, + 101, + 115, + 116, + 32, + 80, + 101, + 114, + 115, + 111, + 111, + 110, + 34, + 44, + 34, + 99, + 111, + 110, + 116, + 97, + 99, + 116, + 112, + 101, + 114, + 115, + 111, + 111, + 110, + 66, + 101, + 104, + 101, + 101, + 114, + 84, + 101, + 108, + 101, + 102, + 111, + 111, + 110, + 110, + 117, + 109, + 109, + 101, + 114, + 34, + 58, + 34, + 34, + 44, + 34, + 99, + 111, + 110, + 116, + 97, + 99, + 116, + 112, + 101, + 114, + 115, + 111, + 111, + 110, + 66, + 101, + 104, + 101, + 101, + 114, + 69, + 109, + 97, + 105, + 108, + 97, + 100, + 114, + 101, + 115, + 34, + 58, + 34, + 34, + 44, + 34, + 122, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 98, + 101, + 115, + 108, + 117, + 105, + 116, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 105, + 110, + 102, + 111, + 114, + 109, + 97, + 116, + 105, + 101, + 111, + 98, + 106, + 101, + 99, + 116, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 125, + 44, + 123, + 34, + 117, + 114, + 108, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 105, + 92, + 47, + 118, + 49, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 117, + 115, + 115, + 101, + 110, + 92, + 47, + 56, + 53, + 101, + 100, + 100, + 100, + 98, + 101, + 45, + 49, + 57, + 98, + 55, + 45, + 52, + 101, + 56, + 54, + 45, + 98, + 101, + 54, + 57, + 45, + 53, + 98, + 101, + 99, + 55, + 99, + 102, + 54, + 56, + 53, + 55, + 97, + 34, + 44, + 34, + 117, + 117, + 105, + 100, + 34, + 58, + 34, + 56, + 53, + 101, + 100, + 100, + 100, + 98, + 101, + 45, + 49, + 57, + 98, + 55, + 45, + 52, + 101, + 56, + 54, + 45, + 98, + 101, + 54, + 57, + 45, + 53, + 98, + 101, + 99, + 55, + 99, + 102, + 54, + 56, + 53, + 55, + 97, + 34, + 44, + 34, + 100, + 111, + 109, + 101, + 105, + 110, + 34, + 58, + 34, + 65, + 65, + 66, + 34, + 44, + 34, + 114, + 115, + 105, + 110, + 34, + 58, + 34, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 34, + 44, + 34, + 99, + 111, + 110, + 116, + 97, + 99, + 116, + 112, + 101, + 114, + 115, + 111, + 111, + 110, + 66, + 101, + 104, + 101, + 101, + 114, + 78, + 97, + 97, + 109, + 34, + 58, + 34, + 84, + 101, + 115, + 116, + 32, + 80, + 101, + 114, + 115, + 111, + 111, + 110, + 34, + 44, + 34, + 99, + 111, + 110, + 116, + 97, + 99, + 116, + 112, + 101, + 114, + 115, + 111, + 111, + 110, + 66, + 101, + 104, + 101, + 101, + 114, + 84, + 101, + 108, + 101, + 102, + 111, + 111, + 110, + 110, + 117, + 109, + 109, + 101, + 114, + 34, + 58, + 34, + 34, + 44, + 34, + 99, + 111, + 110, + 116, + 97, + 99, + 116, + 112, + 101, + 114, + 115, + 111, + 111, + 110, + 66, + 101, + 104, + 101, + 101, + 114, + 69, + 109, + 97, + 105, + 108, + 97, + 100, + 114, + 101, + 115, + 34, + 58, + 34, + 34, + 44, + 34, + 122, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 98, + 101, + 115, + 108, + 117, + 105, + 116, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 105, + 110, + 102, + 111, + 114, + 109, + 97, + 116, + 105, + 101, + 111, + 98, + 106, + 101, + 99, + 116, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 125, + 44, + 123, + 34, + 117, + 114, + 108, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 105, + 92, + 47, + 118, + 49, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 117, + 115, + 115, + 101, + 110, + 92, + 47, + 51, + 55, + 97, + 48, + 99, + 52, + 53, + 99, + 45, + 55, + 98, + 101, + 57, + 45, + 52, + 49, + 102, + 50, + 45, + 98, + 102, + 57, + 55, + 45, + 57, + 48, + 51, + 52, + 49, + 97, + 56, + 50, + 49, + 51, + 50, + 55, + 34, + 44, + 34, + 117, + 117, + 105, + 100, + 34, + 58, + 34, + 51, + 55, + 97, + 48, + 99, + 52, + 53, + 99, + 45, + 55, + 98, + 101, + 57, + 45, + 52, + 49, + 102, + 50, + 45, + 98, + 102, + 57, + 55, + 45, + 57, + 48, + 51, + 52, + 49, + 97, + 56, + 50, + 49, + 51, + 50, + 55, + 34, + 44, + 34, + 100, + 111, + 109, + 101, + 105, + 110, + 34, + 58, + 34, + 90, + 71, + 87, + 84, + 34, + 44, + 34, + 114, + 115, + 105, + 110, + 34, + 58, + 34, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 34, + 44, + 34, + 99, + 111, + 110, + 116, + 97, + 99, + 116, + 112, + 101, + 114, + 115, + 111, + 111, + 110, + 66, + 101, + 104, + 101, + 101, + 114, + 78, + 97, + 97, + 109, + 34, + 58, + 34, + 84, + 101, + 115, + 116, + 32, + 80, + 101, + 114, + 115, + 111, + 111, + 110, + 34, + 44, + 34, + 99, + 111, + 110, + 116, + 97, + 99, + 116, + 112, + 101, + 114, + 115, + 111, + 111, + 110, + 66, + 101, + 104, + 101, + 101, + 114, + 84, + 101, + 108, + 101, + 102, + 111, + 111, + 110, + 110, + 117, + 109, + 109, + 101, + 114, + 34, + 58, + 34, + 34, + 44, + 34, + 99, + 111, + 110, + 116, + 97, + 99, + 116, + 112, + 101, + 114, + 115, + 111, + 111, + 110, + 66, + 101, + 104, + 101, + 101, + 114, + 69, + 109, + 97, + 105, + 108, + 97, + 100, + 114, + 101, + 115, + 34, + 58, + 34, + 34, + 44, + 34, + 122, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 98, + 101, + 115, + 108, + 117, + 105, + 116, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 105, + 110, + 102, + 111, + 114, + 109, + 97, + 116, + 105, + 101, + 111, + 98, + 106, + 101, + 99, + 116, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 125, + 44, + 123, + 34, + 117, + 114, + 108, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 105, + 92, + 47, + 118, + 49, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 117, + 115, + 115, + 101, + 110, + 92, + 47, + 55, + 98, + 57, + 100, + 48, + 100, + 53, + 57, + 45, + 51, + 50, + 97, + 101, + 45, + 52, + 98, + 53, + 98, + 45, + 57, + 101, + 50, + 52, + 45, + 53, + 101, + 55, + 52, + 102, + 99, + 49, + 101, + 55, + 56, + 102, + 56, + 34, + 44, + 34, + 117, + 117, + 105, + 100, + 34, + 58, + 34, + 55, + 98, + 57, + 100, + 48, + 100, + 53, + 57, + 45, + 51, + 50, + 97, + 101, + 45, + 52, + 98, + 53, + 98, + 45, + 57, + 101, + 50, + 52, + 45, + 53, + 101, + 55, + 52, + 102, + 99, + 49, + 101, + 55, + 56, + 102, + 56, + 34, + 44, + 34, + 100, + 111, + 109, + 101, + 105, + 110, + 34, + 58, + 34, + 65, + 65, + 66, + 34, + 44, + 34, + 114, + 115, + 105, + 110, + 34, + 58, + 34, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 34, + 44, + 34, + 99, + 111, + 110, + 116, + 97, + 99, + 116, + 112, + 101, + 114, + 115, + 111, + 111, + 110, + 66, + 101, + 104, + 101, + 101, + 114, + 78, + 97, + 97, + 109, + 34, + 58, + 34, + 84, + 101, + 115, + 116, + 32, + 80, + 101, + 114, + 115, + 111, + 111, + 110, + 34, + 44, + 34, + 99, + 111, + 110, + 116, + 97, + 99, + 116, + 112, + 101, + 114, + 115, + 111, + 111, + 110, + 66, + 101, + 104, + 101, + 101, + 114, + 84, + 101, + 108, + 101, + 102, + 111, + 111, + 110, + 110, + 117, + 109, + 109, + 101, + 114, + 34, + 58, + 34, + 34, + 44, + 34, + 99, + 111, + 110, + 116, + 97, + 99, + 116, + 112, + 101, + 114, + 115, + 111, + 111, + 110, + 66, + 101, + 104, + 101, + 101, + 114, + 69, + 109, + 97, + 105, + 108, + 97, + 100, + 114, + 101, + 115, + 34, + 58, + 34, + 34, + 44, + 34, + 122, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 98, + 101, + 115, + 108, + 117, + 105, + 116, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 105, + 110, + 102, + 111, + 114, + 109, + 97, + 116, + 105, + 101, + 111, + 98, + 106, + 101, + 99, + 116, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 125, + 44, + 123, + 34, + 117, + 114, + 108, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 105, + 92, + 47, + 118, + 49, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 117, + 115, + 115, + 101, + 110, + 92, + 47, + 48, + 101, + 53, + 49, + 55, + 99, + 97, + 53, + 45, + 56, + 57, + 49, + 98, + 45, + 52, + 53, + 97, + 57, + 45, + 98, + 56, + 50, + 101, + 45, + 101, + 57, + 56, + 48, + 57, + 54, + 57, + 101, + 57, + 57, + 50, + 100, + 34, + 44, + 34, + 117, + 117, + 105, + 100, + 34, + 58, + 34, + 48, + 101, + 53, + 49, + 55, + 99, + 97, + 53, + 45, + 56, + 57, + 49, + 98, + 45, + 52, + 53, + 97, + 57, + 45, + 98, + 56, + 50, + 101, + 45, + 101, + 57, + 56, + 48, + 57, + 54, + 57, + 101, + 57, + 57, + 50, + 100, + 34, + 44, + 34, + 100, + 111, + 109, + 101, + 105, + 110, + 34, + 58, + 34, + 90, + 71, + 87, + 84, + 34, + 44, + 34, + 114, + 115, + 105, + 110, + 34, + 58, + 34, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 34, + 44, + 34, + 99, + 111, + 110, + 116, + 97, + 99, + 116, + 112, + 101, + 114, + 115, + 111, + 111, + 110, + 66, + 101, + 104, + 101, + 101, + 114, + 78, + 97, + 97, + 109, + 34, + 58, + 34, + 84, + 101, + 115, + 116, + 32, + 80, + 101, + 114, + 115, + 111, + 111, + 110, + 34, + 44, + 34, + 99, + 111, + 110, + 116, + 97, + 99, + 116, + 112, + 101, + 114, + 115, + 111, + 111, + 110, + 66, + 101, + 104, + 101, + 101, + 114, + 84, + 101, + 108, + 101, + 102, + 111, + 111, + 110, + 110, + 117, + 109, + 109, + 101, + 114, + 34, + 58, + 34, + 34, + 44, + 34, + 99, + 111, + 110, + 116, + 97, + 99, + 116, + 112, + 101, + 114, + 115, + 111, + 111, + 110, + 66, + 101, + 104, + 101, + 101, + 114, + 69, + 109, + 97, + 105, + 108, + 97, + 100, + 114, + 101, + 115, + 34, + 58, + 34, + 34, + 44, + 34, + 122, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 98, + 101, + 115, + 108, + 117, + 105, + 116, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 105, + 110, + 102, + 111, + 114, + 109, + 97, + 116, + 105, + 101, + 111, + 98, + 106, + 101, + 99, + 116, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 125, + 44, + 123, + 34, + 117, + 114, + 108, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 105, + 92, + 47, + 118, + 49, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 117, + 115, + 115, + 101, + 110, + 92, + 47, + 99, + 99, + 97, + 50, + 100, + 57, + 102, + 100, + 45, + 50, + 56, + 56, + 102, + 45, + 52, + 56, + 48, + 57, + 45, + 56, + 48, + 53, + 54, + 45, + 101, + 54, + 101, + 51, + 98, + 51, + 53, + 98, + 48, + 98, + 102, + 100, + 34, + 44, + 34, + 117, + 117, + 105, + 100, + 34, + 58, + 34, + 99, + 99, + 97, + 50, + 100, + 57, + 102, + 100, + 45, + 50, + 56, + 56, + 102, + 45, + 52, + 56, + 48, + 57, + 45, + 56, + 48, + 53, + 54, + 45, + 101, + 54, + 101, + 51, + 98, + 51, + 53, + 98, + 48, + 98, + 102, + 100, + 34, + 44, + 34, + 100, + 111, + 109, + 101, + 105, + 110, + 34, + 58, + 34, + 65, + 65, + 66, + 34, + 44, + 34, + 114, + 115, + 105, + 110, + 34, + 58, + 34, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 34, + 44, + 34, + 99, + 111, + 110, + 116, + 97, + 99, + 116, + 112, + 101, + 114, + 115, + 111, + 111, + 110, + 66, + 101, + 104, + 101, + 101, + 114, + 78, + 97, + 97, + 109, + 34, + 58, + 34, + 84, + 101, + 115, + 116, + 32, + 80, + 101, + 114, + 115, + 111, + 111, + 110, + 34, + 44, + 34, + 99, + 111, + 110, + 116, + 97, + 99, + 116, + 112, + 101, + 114, + 115, + 111, + 111, + 110, + 66, + 101, + 104, + 101, + 101, + 114, + 84, + 101, + 108, + 101, + 102, + 111, + 111, + 110, + 110, + 117, + 109, + 109, + 101, + 114, + 34, + 58, + 34, + 34, + 44, + 34, + 99, + 111, + 110, + 116, + 97, + 99, + 116, + 112, + 101, + 114, + 115, + 111, + 111, + 110, + 66, + 101, + 104, + 101, + 101, + 114, + 69, + 109, + 97, + 105, + 108, + 97, + 100, + 114, + 101, + 115, + 34, + 58, + 34, + 34, + 44, + 34, + 122, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 98, + 101, + 115, + 108, + 117, + 105, + 116, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 105, + 110, + 102, + 111, + 114, + 109, + 97, + 116, + 105, + 101, + 111, + 98, + 106, + 101, + 99, + 116, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 125, + 44, + 123, + 34, + 117, + 114, + 108, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 105, + 92, + 47, + 118, + 49, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 117, + 115, + 115, + 101, + 110, + 92, + 47, + 50, + 48, + 48, + 101, + 54, + 55, + 98, + 55, + 45, + 99, + 50, + 98, + 48, + 45, + 52, + 100, + 53, + 50, + 45, + 56, + 53, + 57, + 54, + 45, + 99, + 48, + 57, + 98, + 48, + 57, + 49, + 49, + 48, + 98, + 48, + 98, + 34, + 44, + 34, + 117, + 117, + 105, + 100, + 34, + 58, + 34, + 50, + 48, + 48, + 101, + 54, + 55, + 98, + 55, + 45, + 99, + 50, + 98, + 48, + 45, + 52, + 100, + 53, + 50, + 45, + 56, + 53, + 57, + 54, + 45, + 99, + 48, + 57, + 98, + 48, + 57, + 49, + 49, + 48, + 98, + 48, + 98, + 34, + 44, + 34, + 100, + 111, + 109, + 101, + 105, + 110, + 34, + 58, + 34, + 90, + 71, + 87, + 84, + 34, + 44, + 34, + 114, + 115, + 105, + 110, + 34, + 58, + 34, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 34, + 44, + 34, + 99, + 111, + 110, + 116, + 97, + 99, + 116, + 112, + 101, + 114, + 115, + 111, + 111, + 110, + 66, + 101, + 104, + 101, + 101, + 114, + 78, + 97, + 97, + 109, + 34, + 58, + 34, + 84, + 101, + 115, + 116, + 32, + 80, + 101, + 114, + 115, + 111, + 111, + 110, + 34, + 44, + 34, + 99, + 111, + 110, + 116, + 97, + 99, + 116, + 112, + 101, + 114, + 115, + 111, + 111, + 110, + 66, + 101, + 104, + 101, + 101, + 114, + 84, + 101, + 108, + 101, + 102, + 111, + 111, + 110, + 110, + 117, + 109, + 109, + 101, + 114, + 34, + 58, + 34, + 34, + 44, + 34, + 99, + 111, + 110, + 116, + 97, + 99, + 116, + 112, + 101, + 114, + 115, + 111, + 111, + 110, + 66, + 101, + 104, + 101, + 101, + 114, + 69, + 109, + 97, + 105, + 108, + 97, + 100, + 114, + 101, + 115, + 34, + 58, + 34, + 34, + 44, + 34, + 122, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 98, + 101, + 115, + 108, + 117, + 105, + 116, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 105, + 110, + 102, + 111, + 114, + 109, + 97, + 116, + 105, + 101, + 111, + 98, + 106, + 101, + 99, + 116, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 125, + 44, + 123, + 34, + 117, + 114, + 108, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 105, + 92, + 47, + 118, + 49, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 117, + 115, + 115, + 101, + 110, + 92, + 47, + 97, + 54, + 50, + 51, + 48, + 53, + 52, + 102, + 45, + 100, + 48, + 57, + 98, + 45, + 52, + 101, + 54, + 102, + 45, + 98, + 99, + 54, + 56, + 45, + 98, + 101, + 55, + 97, + 51, + 57, + 56, + 99, + 99, + 51, + 53, + 50, + 34, + 44, + 34, + 117, + 117, + 105, + 100, + 34, + 58, + 34, + 97, + 54, + 50, + 51, + 48, + 53, + 52, + 102, + 45, + 100, + 48, + 57, + 98, + 45, + 52, + 101, + 54, + 102, + 45, + 98, + 99, + 54, + 56, + 45, + 98, + 101, + 55, + 97, + 51, + 57, + 56, + 99, + 99, + 51, + 53, + 50, + 34, + 44, + 34, + 100, + 111, + 109, + 101, + 105, + 110, + 34, + 58, + 34, + 65, + 65, + 66, + 34, + 44, + 34, + 114, + 115, + 105, + 110, + 34, + 58, + 34, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 34, + 44, + 34, + 99, + 111, + 110, + 116, + 97, + 99, + 116, + 112, + 101, + 114, + 115, + 111, + 111, + 110, + 66, + 101, + 104, + 101, + 101, + 114, + 78, + 97, + 97, + 109, + 34, + 58, + 34, + 84, + 101, + 115, + 116, + 32, + 80, + 101, + 114, + 115, + 111, + 111, + 110, + 34, + 44, + 34, + 99, + 111, + 110, + 116, + 97, + 99, + 116, + 112, + 101, + 114, + 115, + 111, + 111, + 110, + 66, + 101, + 104, + 101, + 101, + 114, + 84, + 101, + 108, + 101, + 102, + 111, + 111, + 110, + 110, + 117, + 109, + 109, + 101, + 114, + 34, + 58, + 34, + 34, + 44, + 34, + 99, + 111, + 110, + 116, + 97, + 99, + 116, + 112, + 101, + 114, + 115, + 111, + 111, + 110, + 66, + 101, + 104, + 101, + 101, + 114, + 69, + 109, + 97, + 105, + 108, + 97, + 100, + 114, + 101, + 115, + 34, + 58, + 34, + 34, + 44, + 34, + 122, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 98, + 101, + 115, + 108, + 117, + 105, + 116, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 105, + 110, + 102, + 111, + 114, + 109, + 97, + 116, + 105, + 101, + 111, + 98, + 106, + 101, + 99, + 116, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 125, + 44, + 123, + 34, + 117, + 114, + 108, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 105, + 92, + 47, + 118, + 49, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 117, + 115, + 115, + 101, + 110, + 92, + 47, + 50, + 56, + 54, + 98, + 101, + 57, + 51, + 51, + 45, + 50, + 97, + 51, + 52, + 45, + 52, + 54, + 52, + 53, + 45, + 98, + 48, + 49, + 48, + 45, + 57, + 57, + 98, + 56, + 56, + 53, + 50, + 101, + 57, + 48, + 50, + 48, + 34, + 44, + 34, + 117, + 117, + 105, + 100, + 34, + 58, + 34, + 50, + 56, + 54, + 98, + 101, + 57, + 51, + 51, + 45, + 50, + 97, + 51, + 52, + 45, + 52, + 54, + 52, + 53, + 45, + 98, + 48, + 49, + 48, + 45, + 57, + 57, + 98, + 56, + 56, + 53, + 50, + 101, + 57, + 48, + 50, + 48, + 34, + 44, + 34, + 100, + 111, + 109, + 101, + 105, + 110, + 34, + 58, + 34, + 90, + 71, + 87, + 84, + 34, + 44, + 34, + 114, + 115, + 105, + 110, + 34, + 58, + 34, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 34, + 44, + 34, + 99, + 111, + 110, + 116, + 97, + 99, + 116, + 112, + 101, + 114, + 115, + 111, + 111, + 110, + 66, + 101, + 104, + 101, + 101, + 114, + 78, + 97, + 97, + 109, + 34, + 58, + 34, + 84, + 101, + 115, + 116, + 32, + 80, + 101, + 114, + 115, + 111, + 111, + 110, + 34, + 44, + 34, + 99, + 111, + 110, + 116, + 97, + 99, + 116, + 112, + 101, + 114, + 115, + 111, + 111, + 110, + 66, + 101, + 104, + 101, + 101, + 114, + 84, + 101, + 108, + 101, + 102, + 111, + 111, + 110, + 110, + 117, + 109, + 109, + 101, + 114, + 34, + 58, + 34, + 34, + 44, + 34, + 99, + 111, + 110, + 116, + 97, + 99, + 116, + 112, + 101, + 114, + 115, + 111, + 111, + 110, + 66, + 101, + 104, + 101, + 101, + 114, + 69, + 109, + 97, + 105, + 108, + 97, + 100, + 114, + 101, + 115, + 34, + 58, + 34, + 34, + 44, + 34, + 122, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 98, + 101, + 115, + 108, + 117, + 105, + 116, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 105, + 110, + 102, + 111, + 114, + 109, + 97, + 116, + 105, + 101, + 111, + 98, + 106, + 101, + 99, + 116, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 125, + 44, + 123, + 34, + 117, + 114, + 108, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 105, + 92, + 47, + 118, + 49, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 117, + 115, + 115, + 101, + 110, + 92, + 47, + 100, + 56, + 102, + 102, + 53, + 50, + 53, + 53, + 45, + 97, + 100, + 102, + 97, + 45, + 52, + 52, + 51, + 102, + 45, + 98, + 49, + 102, + 57, + 45, + 57, + 99, + 98, + 57, + 55, + 100, + 53, + 98, + 51, + 99, + 100, + 99, + 34, + 44, + 34, + 117, + 117, + 105, + 100, + 34, + 58, + 34, + 100, + 56, + 102, + 102, + 53, + 50, + 53, + 53, + 45, + 97, + 100, + 102, + 97, + 45, + 52, + 52, + 51, + 102, + 45, + 98, + 49, + 102, + 57, + 45, + 57, + 99, + 98, + 57, + 55, + 100, + 53, + 98, + 51, + 99, + 100, + 99, + 34, + 44, + 34, + 100, + 111, + 109, + 101, + 105, + 110, + 34, + 58, + 34, + 65, + 65, + 66, + 34, + 44, + 34, + 114, + 115, + 105, + 110, + 34, + 58, + 34, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 34, + 44, + 34, + 99, + 111, + 110, + 116, + 97, + 99, + 116, + 112, + 101, + 114, + 115, + 111, + 111, + 110, + 66, + 101, + 104, + 101, + 101, + 114, + 78, + 97, + 97, + 109, + 34, + 58, + 34, + 84, + 101, + 115, + 116, + 32, + 80, + 101, + 114, + 115, + 111, + 111, + 110, + 34, + 44, + 34, + 99, + 111, + 110, + 116, + 97, + 99, + 116, + 112, + 101, + 114, + 115, + 111, + 111, + 110, + 66, + 101, + 104, + 101, + 101, + 114, + 84, + 101, + 108, + 101, + 102, + 111, + 111, + 110, + 110, + 117, + 109, + 109, + 101, + 114, + 34, + 58, + 34, + 34, + 44, + 34, + 99, + 111, + 110, + 116, + 97, + 99, + 116, + 112, + 101, + 114, + 115, + 111, + 111, + 110, + 66, + 101, + 104, + 101, + 101, + 114, + 69, + 109, + 97, + 105, + 108, + 97, + 100, + 114, + 101, + 115, + 34, + 58, + 34, + 34, + 44, + 34, + 122, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 98, + 101, + 115, + 108, + 117, + 105, + 116, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 105, + 110, + 102, + 111, + 114, + 109, + 97, + 116, + 105, + 101, + 111, + 98, + 106, + 101, + 99, + 116, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 125, + 44, + 123, + 34, + 117, + 114, + 108, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 105, + 92, + 47, + 118, + 49, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 117, + 115, + 115, + 101, + 110, + 92, + 47, + 49, + 100, + 54, + 49, + 51, + 51, + 51, + 48, + 45, + 48, + 97, + 54, + 102, + 45, + 52, + 51, + 56, + 50, + 45, + 97, + 99, + 48, + 48, + 45, + 53, + 50, + 98, + 50, + 53, + 57, + 99, + 52, + 102, + 56, + 99, + 97, + 34, + 44, + 34, + 117, + 117, + 105, + 100, + 34, + 58, + 34, + 49, + 100, + 54, + 49, + 51, + 51, + 51, + 48, + 45, + 48, + 97, + 54, + 102, + 45, + 52, + 51, + 56, + 50, + 45, + 97, + 99, + 48, + 48, + 45, + 53, + 50, + 98, + 50, + 53, + 57, + 99, + 52, + 102, + 56, + 99, + 97, + 34, + 44, + 34, + 100, + 111, + 109, + 101, + 105, + 110, + 34, + 58, + 34, + 90, + 71, + 87, + 84, + 34, + 44, + 34, + 114, + 115, + 105, + 110, + 34, + 58, + 34, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 34, + 44, + 34, + 99, + 111, + 110, + 116, + 97, + 99, + 116, + 112, + 101, + 114, + 115, + 111, + 111, + 110, + 66, + 101, + 104, + 101, + 101, + 114, + 78, + 97, + 97, + 109, + 34, + 58, + 34, + 84, + 101, + 115, + 116, + 32, + 80, + 101, + 114, + 115, + 111, + 111, + 110, + 34, + 44, + 34, + 99, + 111, + 110, + 116, + 97, + 99, + 116, + 112, + 101, + 114, + 115, + 111, + 111, + 110, + 66, + 101, + 104, + 101, + 101, + 114, + 84, + 101, + 108, + 101, + 102, + 111, + 111, + 110, + 110, + 117, + 109, + 109, + 101, + 114, + 34, + 58, + 34, + 34, + 44, + 34, + 99, + 111, + 110, + 116, + 97, + 99, + 116, + 112, + 101, + 114, + 115, + 111, + 111, + 110, + 66, + 101, + 104, + 101, + 101, + 114, + 69, + 109, + 97, + 105, + 108, + 97, + 100, + 114, + 101, + 115, + 34, + 58, + 34, + 34, + 44, + 34, + 122, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 98, + 101, + 115, + 108, + 117, + 105, + 116, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 105, + 110, + 102, + 111, + 114, + 109, + 97, + 116, + 105, + 101, + 111, + 98, + 106, + 101, + 99, + 116, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 125, + 93, + 125 + ] + }, + "cookie": [], + "responseTime": 109, + "responseSize": 8033 + }, + "id": "99f52437-aba8-4552-b761-25b16cfb95d5" + }, + { + "cursor": { + "ref": "41f02d07-b2b6-429d-b8e9-9627af4cbb14", + "length": 313, + "cycles": 1, + "position": 96, + "iteration": 0, + "httpRequestId": "7c8bf6ed-22ea-460d-9560-b9c8a9fac8f4" + }, + "item": { + "id": "368b2a01-1aef-40d9-8871-de5da2277646", + "name": "(zrc-007i) Afgesloten zaak bijwerken is toegestaan met scope zaken.geforceerd-bijwerken", + "request": { + "url": { + "host": [ + "{{created_zaak_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Accept-Crs", + "value": "EPSG:4326" + }, + { + "key": "Content-Crs", + "value": "EPSG:4326" + } + ], + "method": "PUT", + "body": { + "mode": "raw", + "raw": "{\r\n \"url\": \"https://zaken.spt-rx-services.nl/api/v1/zaken/cba40feb-2b38-4490-b12d-84a39e8df361\",\r\n \"uuid\": \"cba40feb-2b38-4490-b12d-84a39e8df361\",\r\n \"bronorganisatie\": \"000000000\",\r\n \"omschrijving\": \"string 2\",\r\n \"toelichting\": \"string\",\r\n \"zaaktype\": \"{{zaaktype_url}}\",\r\n \"registratiedatum\": \"2019-04-09\",\r\n \"verantwoordelijkeOrganisatie\": \"000000000\",\r\n \"startdatum\": \"2019-04-09\",\r\n \"einddatum\": null,\r\n \"einddatumGepland\": \"2019-04-20\",\r\n \"uiterlijkeEinddatumAfdoening\": \"2019-04-09\",\r\n \"publicatiedatum\": \"2019-04-09\",\r\n \"communicatiekanaal\": \"\",\r\n \"productenOfDiensten\": [],\r\n \"vertrouwelijkheidaanduiding\": \"geheim\",\r\n \"betalingsindicatie\": \"geheel\",\r\n \"betalingsindicatieWeergave\": null,\r\n \"laatsteBetaaldatum\": \"2019-01-01T00:00:00Z\",\r\n \"zaakgeometrie\": {\r\n \"type\": \"Point\",\r\n \"coordinates\": [\r\n 53.0,\r\n 5.0\r\n ]\r\n },\r\n \"verlenging\": null,\r\n \"opschorting\": {\r\n \"indicatie\": true,\r\n \"reden\": \"string\"\r\n },\r\n \"selectielijstklasse\": \"https://referentielijsten.roxit.nl/api/v1/resultaten/0fe71ce3-b1e1-48eb-9070-be2756fc71b5\",\r\n \"hoofdzaak\": null,\r\n \"deelzaken\": [],\r\n \"relevanteAndereZaken\": [],\r\n \"eigenschappen\": [],\r\n \"rollen\": [],\r\n \"status\": null,\r\n \"zaakinformatieobjecten\": [],\r\n \"zaakobjecten\": [],\r\n \"resultaat\": null,\r\n \"kenmerken\": [],\r\n \"archiefnominatie\": null,\r\n \"archiefstatus\": \"nog_te_archiveren\",\r\n \"archiefactiedatum\": null,\r\n \"opdrachtgevendeOrganisatie\": null,\r\n \"processobjectaard\": null,\r\n \"startdatumBewaartermijn\": null,\r\n \"processobject\": null\r\n}" + } + }, + "response": [], + "event": [ + { + "listen": "prerequest", + "script": { + "id": "5904beb0-e34e-4264-868c-64ebd0e5f6ee", + "type": "text/javascript", + "packages": {}, + "exec": [ + "" + ], + "_lastExecutionId": "bdeccfe8-ed43-49d9-a6df-c9d7fa1b64d7" + } + }, + { + "listen": "test", + "script": { + "id": "103ed717-a9ae-46c0-b9d3-d315457c87db", + "type": "text/javascript", + "packages": {}, + "exec": [ + "pm.test(\"Afgesloten Zaak bijwerken met scope zaken.geforceerd-bijwerken geeft 200\", function() {", + " pm.response.to.have.status(200);", + " pm.expect(pm.response.json().omschrijving).to.be.equal(\"string 2\");", + "});" + ], + "_lastExecutionId": "ca4b1b0a-7c0c-408c-86ec-a951c957e68b" + } + } + ] + }, + "request": { + "url": { + "protocol": "http", + "port": "8080", + "path": [ + "index.php", + "apps", + "procest", + "api", + "zgw", + "zaken", + "v1", + "zaken", + "b648c5da-b590-4960-94a0-f0c5a3f9ed90" + ], + "host": [ + "localhost" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Accept-Crs", + "value": "EPSG:4326" + }, + { + "key": "Content-Crs", + "value": "EPSG:4326" + }, + { + "key": "Authorization", + "value": "Bearer eyJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJwcm9jZXN0LWFkbWluIiwiY2xpZW50X2lkIjoicHJvY2VzdC1hZG1pbiIsImlhdCI6IjE3NzMxNDUxNjMiLCJ1c2VyX2lkIjoicHJvY2VzdC1hZG1pbiIsInVzZXJfcmVwcmVzZW50YXRpb24iOiIifQ.MpOR0b3u5l2bW0KHbeG-pPi1TT-a3h94EPg8sHZSvA4", + "system": true + }, + { + "key": "User-Agent", + "value": "PostmanRuntime/7.39.1", + "system": true + }, + { + "key": "Accept", + "value": "*/*", + "system": true + }, + { + "key": "Cache-Control", + "value": "no-cache", + "system": true + }, + { + "key": "Postman-Token", + "value": "c03c86ea-6360-4c9c-95ab-982d10362eeb", + "system": true + }, + { + "key": "Host", + "value": "localhost:8080", + "system": true + }, + { + "key": "Accept-Encoding", + "value": "gzip, deflate, br", + "system": true + }, + { + "key": "Connection", + "value": "keep-alive", + "system": true + }, + { + "key": "Content-Length", + "value": "1756", + "system": true + }, + { + "key": "Cookie", + "value": "ocvp3112b4wg=493b2e6608f895c8cf338c08cc332261; oc_sessionPassphrase=LBNdKxRzA0iqoULIruNxDDh2BK3O%2BrCIU8aUmiUcOFvy5Xw1YfjwQNlmBW2IkGwJYtxXh9%2BwDN6vYuGNX07tXzkBtjQJUWTGdzf8AIOUIVxVx5DfyWAQZ7nmYmQv6XSE; nc_sameSiteCookielax=true; nc_sameSiteCookiestrict=true", + "system": true + } + ], + "method": "PUT", + "body": { + "mode": "raw", + "raw": "{\r\n \"url\": \"https://zaken.spt-rx-services.nl/api/v1/zaken/cba40feb-2b38-4490-b12d-84a39e8df361\",\r\n \"uuid\": \"cba40feb-2b38-4490-b12d-84a39e8df361\",\r\n \"bronorganisatie\": \"000000000\",\r\n \"omschrijving\": \"string 2\",\r\n \"toelichting\": \"string\",\r\n \"zaaktype\": \"http://localhost:8080/index.php/apps/procest/api/zgw/catalogi/v1/zaaktypen/619dc3e5-52f1-4294-a569-f21d16f44879\",\r\n \"registratiedatum\": \"2019-04-09\",\r\n \"verantwoordelijkeOrganisatie\": \"000000000\",\r\n \"startdatum\": \"2019-04-09\",\r\n \"einddatum\": null,\r\n \"einddatumGepland\": \"2019-04-20\",\r\n \"uiterlijkeEinddatumAfdoening\": \"2019-04-09\",\r\n \"publicatiedatum\": \"2019-04-09\",\r\n \"communicatiekanaal\": \"\",\r\n \"productenOfDiensten\": [],\r\n \"vertrouwelijkheidaanduiding\": \"geheim\",\r\n \"betalingsindicatie\": \"geheel\",\r\n \"betalingsindicatieWeergave\": null,\r\n \"laatsteBetaaldatum\": \"2019-01-01T00:00:00Z\",\r\n \"zaakgeometrie\": {\r\n \"type\": \"Point\",\r\n \"coordinates\": [\r\n 53.0,\r\n 5.0\r\n ]\r\n },\r\n \"verlenging\": null,\r\n \"opschorting\": {\r\n \"indicatie\": true,\r\n \"reden\": \"string\"\r\n },\r\n \"selectielijstklasse\": \"https://referentielijsten.roxit.nl/api/v1/resultaten/0fe71ce3-b1e1-48eb-9070-be2756fc71b5\",\r\n \"hoofdzaak\": null,\r\n \"deelzaken\": [],\r\n \"relevanteAndereZaken\": [],\r\n \"eigenschappen\": [],\r\n \"rollen\": [],\r\n \"status\": null,\r\n \"zaakinformatieobjecten\": [],\r\n \"zaakobjecten\": [],\r\n \"resultaat\": null,\r\n \"kenmerken\": [],\r\n \"archiefnominatie\": null,\r\n \"archiefstatus\": \"nog_te_archiveren\",\r\n \"archiefactiedatum\": null,\r\n \"opdrachtgevendeOrganisatie\": null,\r\n \"processobjectaard\": null,\r\n \"startdatumBewaartermijn\": null,\r\n \"processobject\": null\r\n}" + }, + "auth": { + "type": "jwt", + "jwt": [ + { + "type": "string", + "value": "{\r\n \"iss\": \"procest-admin\",\r\n \"client_id\": \"procest-admin\",\r\n \"iat\": \"1773145163\",\r\n \"user_id\": \"procest-admin\",\r\n \"user_representation\": \"\"\r\n}", + "key": "payload" + }, + { + "type": "string", + "value": "procest-admin-secret-key-for-testing", + "key": "secret" + }, + { + "type": "string", + "value": "HS256", + "key": "algorithm" + }, + { + "type": "boolean", + "value": false, + "key": "isSecretBase64Encoded" + }, + { + "type": "string", + "value": "header", + "key": "addTokenTo" + }, + { + "type": "string", + "value": "Bearer", + "key": "headerPrefix" + }, + { + "type": "string", + "value": "token", + "key": "queryParamKey" + }, + { + "type": "string", + "value": "{}", + "key": "header" + } + ] + } + }, + "response": { + "id": "d1ce4720-b08a-4f6c-992e-c10059188ff3", + "status": "Bad request", + "code": 400, + "header": [ + { + "key": "Date", + "value": "Tue, 10 Mar 2026 12:19:22 GMT" + }, + { + "key": "Server", + "value": "Apache/2.4.66 (Debian)" + }, + { + "key": "X-Content-Type-Options", + "value": "nosniff" + }, + { + "key": "X-Frame-Options", + "value": "SAMEORIGIN" + }, + { + "key": "X-Permitted-Cross-Domain-Policies", + "value": "none" + }, + { + "key": "X-Robots-Tag", + "value": "noindex, nofollow" + }, + { + "key": "Referrer-Policy", + "value": "no-referrer" + }, + { + "key": "X-Powered-By", + "value": "PHP/8.3.30" + }, + { + "key": "Content-Security-Policy", + "value": "default-src 'none';base-uri 'none';manifest-src 'self';frame-ancestors 'none'" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=493b2e6608f895c8cf338c08cc332261; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=493b2e6608f895c8cf338c08cc332261; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=493b2e6608f895c8cf338c08cc332261; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=493b2e6608f895c8cf338c08cc332261; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=9ceb5328f2f5d94f2958ad51b341607b; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=9ceb5328f2f5d94f2958ad51b341607b; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=9ceb5328f2f5d94f2958ad51b341607b; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "X-Request-Id", + "value": "BCQOWjelvFyABpQKDkAO" + }, + { + "key": "Cache-Control", + "value": "no-cache, no-store, must-revalidate" + }, + { + "key": "Feature-Policy", + "value": "autoplay 'none';camera 'none';fullscreen 'none';geolocation 'none';microphone 'none';payment 'none'" + }, + { + "key": "X-User-Id", + "value": "admin" + }, + { + "key": "Content-Length", + "value": "44" + }, + { + "key": "Connection", + "value": "close" + }, + { + "key": "Content-Type", + "value": "application/json; charset=utf-8" + } + ], + "stream": { + "type": "Buffer", + "data": [ + 123, + 34, + 100, + 101, + 116, + 97, + 105, + 108, + 34, + 58, + 34, + 79, + 98, + 106, + 101, + 99, + 116, + 32, + 110, + 111, + 116, + 32, + 102, + 111, + 117, + 110, + 100, + 32, + 105, + 110, + 32, + 109, + 97, + 103, + 105, + 99, + 32, + 116, + 97, + 98, + 108, + 101, + 34, + 125 + ] + }, + "cookie": [], + "responseTime": 102, + "responseSize": 44 + }, + "id": "368b2a01-1aef-40d9-8871-de5da2277646", + "assertions": [ + { + "assertion": "Afgesloten Zaak bijwerken met scope zaken.geforceerd-bijwerken geeft 200", + "skipped": false, + "error": { + "name": "AssertionError", + "index": 0, + "test": "Afgesloten Zaak bijwerken met scope zaken.geforceerd-bijwerken geeft 200", + "message": "expected response to have status code 200 but got 400", + "stack": "AssertionError: expected response to have status code 200 but got 400\n at Object.eval sandbox-script.js:1:97)" + } + } + ] + }, + { + "cursor": { + "ref": "f282edee-9f1c-45e3-9fcf-356b3780f961", + "length": 313, + "cycles": 1, + "position": 97, + "iteration": 0, + "httpRequestId": "50130370-3184-46eb-bfa5-9c67470eaa17" + }, + "item": { + "id": "06b7cc33-bac4-48c2-b3c3-612615b10a60", + "name": "(zrc-007i) Afgesloten zaak deels bijwerken is toegestaan met scope zaken.geforceerd-bijwerken", + "request": { + "url": { + "host": [ + "{{created_zaak_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Accept-Crs", + "value": "EPSG:4326" + }, + { + "key": "Content-Crs", + "value": "EPSG:4326" + } + ], + "method": "PATCH", + "body": { + "mode": "raw", + "raw": "{\n\t\"omschrijving\": \"aangepast\"\n}" + } + }, + "response": [], + "event": [ + { + "listen": "prerequest", + "script": { + "id": "b20a3dc6-1d90-4e6a-8fa3-35b132eb2b64", + "type": "text/javascript", + "packages": {}, + "exec": [ + "" + ], + "_lastExecutionId": "1497e0fb-08d4-4e6a-b549-14039f0058e9" + } + }, + { + "listen": "test", + "script": { + "id": "a1967b7a-91ab-4905-918d-49a64e28753c", + "type": "text/javascript", + "packages": {}, + "exec": [ + "pm.test(\"Afgesloten Zaak deels bijwerken zonder scope zaken.geforceerd-bijwerken geeft 200\", function() {", + " pm.response.to.have.status(200);", + " pm.expect(pm.response.json().omschrijving).to.be.equal(\"aangepast\");", + "});", + "", + "" + ], + "_lastExecutionId": "1145c413-b1ee-4eb1-ab3b-6980c577d96e" + } + } + ] + }, + "request": { + "url": { + "protocol": "http", + "port": "8080", + "path": [ + "index.php", + "apps", + "procest", + "api", + "zgw", + "zaken", + "v1", + "zaken", + "b648c5da-b590-4960-94a0-f0c5a3f9ed90" + ], + "host": [ + "localhost" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Accept-Crs", + "value": "EPSG:4326" + }, + { + "key": "Content-Crs", + "value": "EPSG:4326" + }, + { + "key": "Authorization", + "value": "Bearer eyJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJwcm9jZXN0LWFkbWluIiwiY2xpZW50X2lkIjoicHJvY2VzdC1hZG1pbiIsImlhdCI6IjE3NzMxNDUxNjMiLCJ1c2VyX2lkIjoicHJvY2VzdC1hZG1pbiIsInVzZXJfcmVwcmVzZW50YXRpb24iOiIifQ.MpOR0b3u5l2bW0KHbeG-pPi1TT-a3h94EPg8sHZSvA4", + "system": true + }, + { + "key": "User-Agent", + "value": "PostmanRuntime/7.39.1", + "system": true + }, + { + "key": "Accept", + "value": "*/*", + "system": true + }, + { + "key": "Cache-Control", + "value": "no-cache", + "system": true + }, + { + "key": "Postman-Token", + "value": "06f053a9-f92c-451f-b3ec-5e75dcf107af", + "system": true + }, + { + "key": "Host", + "value": "localhost:8080", + "system": true + }, + { + "key": "Accept-Encoding", + "value": "gzip, deflate, br", + "system": true + }, + { + "key": "Connection", + "value": "keep-alive", + "system": true + }, + { + "key": "Content-Length", + "value": "32", + "system": true + }, + { + "key": "Cookie", + "value": "ocvp3112b4wg=9ceb5328f2f5d94f2958ad51b341607b; oc_sessionPassphrase=LBNdKxRzA0iqoULIruNxDDh2BK3O%2BrCIU8aUmiUcOFvy5Xw1YfjwQNlmBW2IkGwJYtxXh9%2BwDN6vYuGNX07tXzkBtjQJUWTGdzf8AIOUIVxVx5DfyWAQZ7nmYmQv6XSE; nc_sameSiteCookielax=true; nc_sameSiteCookiestrict=true", + "system": true + } + ], + "method": "PATCH", + "body": { + "mode": "raw", + "raw": "{\n\t\"omschrijving\": \"aangepast\"\n}" + }, + "auth": { + "type": "jwt", + "jwt": [ + { + "type": "string", + "value": "{\r\n \"iss\": \"procest-admin\",\r\n \"client_id\": \"procest-admin\",\r\n \"iat\": \"1773145163\",\r\n \"user_id\": \"procest-admin\",\r\n \"user_representation\": \"\"\r\n}", + "key": "payload" + }, + { + "type": "string", + "value": "procest-admin-secret-key-for-testing", + "key": "secret" + }, + { + "type": "string", + "value": "HS256", + "key": "algorithm" + }, + { + "type": "boolean", + "value": false, + "key": "isSecretBase64Encoded" + }, + { + "type": "string", + "value": "header", + "key": "addTokenTo" + }, + { + "type": "string", + "value": "Bearer", + "key": "headerPrefix" + }, + { + "type": "string", + "value": "token", + "key": "queryParamKey" + }, + { + "type": "string", + "value": "{}", + "key": "header" + } + ] + } + }, + "response": { + "id": "ae768f18-7c38-47d0-81b3-c5623c26e446", + "status": "OK", + "code": 200, + "header": [ + { + "key": "Date", + "value": "Tue, 10 Mar 2026 12:19:22 GMT" + }, + { + "key": "Server", + "value": "Apache/2.4.66 (Debian)" + }, + { + "key": "X-Content-Type-Options", + "value": "nosniff" + }, + { + "key": "X-Frame-Options", + "value": "SAMEORIGIN" + }, + { + "key": "X-Permitted-Cross-Domain-Policies", + "value": "none" + }, + { + "key": "X-Robots-Tag", + "value": "noindex, nofollow" + }, + { + "key": "Referrer-Policy", + "value": "no-referrer" + }, + { + "key": "X-Powered-By", + "value": "PHP/8.3.30" + }, + { + "key": "Content-Security-Policy", + "value": "default-src 'none';base-uri 'none';manifest-src 'self';frame-ancestors 'none'" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=9ceb5328f2f5d94f2958ad51b341607b; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=9ceb5328f2f5d94f2958ad51b341607b; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=9ceb5328f2f5d94f2958ad51b341607b; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=9ceb5328f2f5d94f2958ad51b341607b; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=9ceb5328f2f5d94f2958ad51b341607b; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=6c65d90423147992111d6e0a71e68dad; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=6c65d90423147992111d6e0a71e68dad; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=6c65d90423147992111d6e0a71e68dad; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=6c65d90423147992111d6e0a71e68dad; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=6c65d90423147992111d6e0a71e68dad; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "X-Request-Id", + "value": "flx7OLNp6BkTN3sxZbFS" + }, + { + "key": "Cache-Control", + "value": "no-cache, no-store, must-revalidate" + }, + { + "key": "Feature-Policy", + "value": "autoplay 'none';camera 'none';fullscreen 'none';geolocation 'none';microphone 'none';payment 'none'" + }, + { + "key": "X-User-Id", + "value": "admin" + }, + { + "key": "Content-Encoding", + "value": "gzip" + }, + { + "key": "Content-Length", + "value": "459" + }, + { + "key": "Keep-Alive", + "value": "timeout=5, max=100" + }, + { + "key": "Connection", + "value": "Keep-Alive" + }, + { + "key": "Content-Type", + "value": "application/json; charset=utf-8" + } + ], + "stream": { + "type": "Buffer", + "data": [ + 123, + 34, + 117, + 114, + 108, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 122, + 97, + 107, + 101, + 110, + 92, + 47, + 118, + 49, + 92, + 47, + 122, + 97, + 107, + 101, + 110, + 92, + 47, + 98, + 54, + 52, + 56, + 99, + 53, + 100, + 97, + 45, + 98, + 53, + 57, + 48, + 45, + 52, + 57, + 54, + 48, + 45, + 57, + 52, + 97, + 48, + 45, + 102, + 48, + 99, + 53, + 97, + 51, + 102, + 57, + 101, + 100, + 57, + 48, + 34, + 44, + 34, + 117, + 117, + 105, + 100, + 34, + 58, + 34, + 98, + 54, + 52, + 56, + 99, + 53, + 100, + 97, + 45, + 98, + 53, + 57, + 48, + 45, + 52, + 57, + 54, + 48, + 45, + 57, + 52, + 97, + 48, + 45, + 102, + 48, + 99, + 53, + 97, + 51, + 102, + 57, + 101, + 100, + 57, + 48, + 34, + 44, + 34, + 105, + 100, + 101, + 110, + 116, + 105, + 102, + 105, + 99, + 97, + 116, + 105, + 101, + 34, + 58, + 34, + 90, + 65, + 65, + 75, + 45, + 84, + 66, + 79, + 78, + 75, + 52, + 45, + 65, + 51, + 48, + 51, + 54, + 66, + 34, + 44, + 34, + 111, + 109, + 115, + 99, + 104, + 114, + 105, + 106, + 118, + 105, + 110, + 103, + 34, + 58, + 34, + 97, + 97, + 110, + 103, + 101, + 112, + 97, + 115, + 116, + 34, + 44, + 34, + 116, + 111, + 101, + 108, + 105, + 99, + 104, + 116, + 105, + 110, + 103, + 34, + 58, + 34, + 115, + 116, + 114, + 105, + 110, + 103, + 34, + 44, + 34, + 122, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 105, + 92, + 47, + 118, + 49, + 92, + 47, + 122, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 110, + 92, + 47, + 54, + 49, + 57, + 100, + 99, + 51, + 101, + 53, + 45, + 53, + 50, + 102, + 49, + 45, + 52, + 50, + 57, + 52, + 45, + 97, + 53, + 54, + 57, + 45, + 102, + 50, + 49, + 100, + 49, + 54, + 102, + 52, + 52, + 56, + 55, + 57, + 34, + 44, + 34, + 114, + 101, + 103, + 105, + 115, + 116, + 114, + 97, + 116, + 105, + 101, + 100, + 97, + 116, + 117, + 109, + 34, + 58, + 34, + 50, + 48, + 50, + 54, + 45, + 48, + 51, + 45, + 49, + 48, + 84, + 49, + 50, + 58, + 49, + 57, + 58, + 49, + 54, + 43, + 48, + 48, + 58, + 48, + 48, + 34, + 44, + 34, + 115, + 116, + 97, + 114, + 116, + 100, + 97, + 116, + 117, + 109, + 34, + 58, + 34, + 50, + 48, + 49, + 57, + 45, + 48, + 52, + 45, + 48, + 57, + 34, + 44, + 34, + 101, + 105, + 110, + 100, + 100, + 97, + 116, + 117, + 109, + 34, + 58, + 34, + 50, + 48, + 49, + 56, + 45, + 48, + 52, + 45, + 50, + 48, + 34, + 44, + 34, + 101, + 105, + 110, + 100, + 100, + 97, + 116, + 117, + 109, + 71, + 101, + 112, + 108, + 97, + 110, + 100, + 34, + 58, + 34, + 50, + 48, + 49, + 57, + 45, + 48, + 52, + 45, + 50, + 48, + 34, + 44, + 34, + 117, + 105, + 116, + 101, + 114, + 108, + 105, + 106, + 107, + 101, + 69, + 105, + 110, + 100, + 100, + 97, + 116, + 117, + 109, + 65, + 102, + 100, + 111, + 101, + 110, + 105, + 110, + 103, + 34, + 58, + 34, + 50, + 48, + 49, + 57, + 45, + 48, + 52, + 45, + 48, + 57, + 34, + 44, + 34, + 118, + 101, + 114, + 116, + 114, + 111, + 117, + 119, + 101, + 108, + 105, + 106, + 107, + 104, + 101, + 105, + 100, + 97, + 97, + 110, + 100, + 117, + 105, + 100, + 105, + 110, + 103, + 34, + 58, + 34, + 103, + 101, + 104, + 101, + 105, + 109, + 34, + 44, + 34, + 118, + 101, + 114, + 97, + 110, + 116, + 119, + 111, + 111, + 114, + 100, + 101, + 108, + 105, + 106, + 107, + 101, + 79, + 114, + 103, + 97, + 110, + 105, + 115, + 97, + 116, + 105, + 101, + 34, + 58, + 34, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 34, + 44, + 34, + 97, + 114, + 99, + 104, + 105, + 101, + 102, + 110, + 111, + 109, + 105, + 110, + 97, + 116, + 105, + 101, + 34, + 58, + 34, + 118, + 101, + 114, + 110, + 105, + 101, + 116, + 105, + 103, + 101, + 110, + 34, + 44, + 34, + 97, + 114, + 99, + 104, + 105, + 101, + 102, + 97, + 99, + 116, + 105, + 101, + 100, + 97, + 116, + 117, + 109, + 34, + 58, + 34, + 50, + 48, + 50, + 51, + 45, + 48, + 52, + 45, + 50, + 48, + 34, + 44, + 34, + 97, + 114, + 99, + 104, + 105, + 101, + 102, + 115, + 116, + 97, + 116, + 117, + 115, + 34, + 58, + 34, + 110, + 111, + 103, + 95, + 116, + 101, + 95, + 97, + 114, + 99, + 104, + 105, + 118, + 101, + 114, + 101, + 110, + 34, + 44, + 34, + 98, + 101, + 116, + 97, + 108, + 105, + 110, + 103, + 115, + 105, + 110, + 100, + 105, + 99, + 97, + 116, + 105, + 101, + 34, + 58, + 34, + 103, + 101, + 104, + 101, + 101, + 108, + 34, + 44, + 34, + 108, + 97, + 97, + 116, + 115, + 116, + 101, + 66, + 101, + 116, + 97, + 97, + 108, + 100, + 97, + 116, + 117, + 109, + 34, + 58, + 34, + 50, + 48, + 49, + 57, + 45, + 48, + 49, + 45, + 48, + 49, + 34, + 44, + 34, + 104, + 111, + 111, + 102, + 100, + 122, + 97, + 97, + 107, + 34, + 58, + 110, + 117, + 108, + 108, + 125 + ] + }, + "cookie": [], + "responseTime": 282, + "responseSize": 833 + }, + "id": "06b7cc33-bac4-48c2-b3c3-612615b10a60", + "assertions": [ + { + "assertion": "Afgesloten Zaak deels bijwerken zonder scope zaken.geforceerd-bijwerken geeft 200", + "skipped": false + } + ] + }, + { + "cursor": { + "ref": "260bbe40-4b58-449d-aa71-3bde199976c8", + "length": 313, + "cycles": 1, + "position": 98, + "iteration": 0, + "httpRequestId": "2c55c0e6-f1d4-45eb-a47c-a657864fcaf5" + }, + "item": { + "id": "d17629da-db16-4b39-ae62-81c3e40aaf52", + "name": "(zrc-007j) Klantcontact bij gesloten Zaak aanmaken toegestaan met scope zaken.geforceerd-bijwerken", + "request": { + "url": { + "path": [ + "klantcontacten" + ], + "host": [ + "{{zrc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n\t\"zaak\": \"{{created_zaak_url}}\",\n\t\"datumtijd\": \"2019-02-22T00:00:00\"\n}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "b3396ace-a231-48e6-a3c3-91dbcf00a5b0", + "type": "text/javascript", + "exec": [ + "pm.test(\"Klantcontact aanmaken bij gesloten Zaak met scope zaken.geforceerd-bijwerken geeft 201\", function() {", + " pm.response.to.have.status(201);", + "});" + ], + "_lastExecutionId": "42e3445b-bdb5-4dce-8460-15cdcbdd26f7" + } + }, + { + "listen": "prerequest", + "script": { + "id": "eccdbd08-2229-42ad-8814-87be88820965", + "type": "text/javascript", + "exec": [ + "" + ], + "_lastExecutionId": "eb8ed4c4-77b6-4952-8214-5154330f97d9" + } + } + ] + }, + "request": { + "url": { + "protocol": "http", + "port": "8080", + "path": [ + "index.php", + "apps", + "procest", + "api", + "zgw", + "zaken", + "v1", + "klantcontacten" + ], + "host": [ + "localhost" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Authorization", + "value": "Bearer eyJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJwcm9jZXN0LWFkbWluIiwiY2xpZW50X2lkIjoicHJvY2VzdC1hZG1pbiIsImlhdCI6IjE3NzMxNDUxNjMiLCJ1c2VyX2lkIjoicHJvY2VzdC1hZG1pbiIsInVzZXJfcmVwcmVzZW50YXRpb24iOiIifQ.MpOR0b3u5l2bW0KHbeG-pPi1TT-a3h94EPg8sHZSvA4", + "system": true + }, + { + "key": "User-Agent", + "value": "PostmanRuntime/7.39.1", + "system": true + }, + { + "key": "Accept", + "value": "*/*", + "system": true + }, + { + "key": "Cache-Control", + "value": "no-cache", + "system": true + }, + { + "key": "Postman-Token", + "value": "8d0b4f93-fa21-4aa3-a670-1683e82ac5a9", + "system": true + }, + { + "key": "Host", + "value": "localhost:8080", + "system": true + }, + { + "key": "Accept-Encoding", + "value": "gzip, deflate, br", + "system": true + }, + { + "key": "Connection", + "value": "keep-alive", + "system": true + }, + { + "key": "Content-Length", + "value": "156", + "system": true + }, + { + "key": "Cookie", + "value": "ocvp3112b4wg=6c65d90423147992111d6e0a71e68dad; oc_sessionPassphrase=LBNdKxRzA0iqoULIruNxDDh2BK3O%2BrCIU8aUmiUcOFvy5Xw1YfjwQNlmBW2IkGwJYtxXh9%2BwDN6vYuGNX07tXzkBtjQJUWTGdzf8AIOUIVxVx5DfyWAQZ7nmYmQv6XSE; nc_sameSiteCookielax=true; nc_sameSiteCookiestrict=true", + "system": true + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n\t\"zaak\": \"http://localhost:8080/index.php/apps/procest/api/zgw/zaken/v1/zaken/b648c5da-b590-4960-94a0-f0c5a3f9ed90\",\n\t\"datumtijd\": \"2019-02-22T00:00:00\"\n}" + }, + "auth": { + "type": "jwt", + "jwt": [ + { + "type": "string", + "value": "{\r\n \"iss\": \"procest-admin\",\r\n \"client_id\": \"procest-admin\",\r\n \"iat\": \"1773145163\",\r\n \"user_id\": \"procest-admin\",\r\n \"user_representation\": \"\"\r\n}", + "key": "payload" + }, + { + "type": "string", + "value": "procest-admin-secret-key-for-testing", + "key": "secret" + }, + { + "type": "string", + "value": "HS256", + "key": "algorithm" + }, + { + "type": "boolean", + "value": false, + "key": "isSecretBase64Encoded" + }, + { + "type": "string", + "value": "header", + "key": "addTokenTo" + }, + { + "type": "string", + "value": "Bearer", + "key": "headerPrefix" + }, + { + "type": "string", + "value": "token", + "key": "queryParamKey" + }, + { + "type": "string", + "value": "{}", + "key": "header" + } + ] + } + }, + "response": { + "id": "7cea4caa-ac96-447f-b505-be44ab058300", + "status": "Created", + "code": 201, + "header": [ + { + "key": "Date", + "value": "Tue, 10 Mar 2026 12:19:23 GMT" + }, + { + "key": "Server", + "value": "Apache/2.4.66 (Debian)" + }, + { + "key": "X-Content-Type-Options", + "value": "nosniff" + }, + { + "key": "X-Frame-Options", + "value": "SAMEORIGIN" + }, + { + "key": "X-Permitted-Cross-Domain-Policies", + "value": "none" + }, + { + "key": "X-Robots-Tag", + "value": "noindex, nofollow" + }, + { + "key": "Referrer-Policy", + "value": "no-referrer" + }, + { + "key": "X-Powered-By", + "value": "PHP/8.3.30" + }, + { + "key": "Content-Security-Policy", + "value": "default-src 'none';base-uri 'none';manifest-src 'self';frame-ancestors 'none'" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=6c65d90423147992111d6e0a71e68dad; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=6c65d90423147992111d6e0a71e68dad; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=6c65d90423147992111d6e0a71e68dad; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=6c65d90423147992111d6e0a71e68dad; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=6c65d90423147992111d6e0a71e68dad; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=3f73f31ed4ced8d9069f000986a8b88b; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=3f73f31ed4ced8d9069f000986a8b88b; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=3f73f31ed4ced8d9069f000986a8b88b; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=3f73f31ed4ced8d9069f000986a8b88b; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=3f73f31ed4ced8d9069f000986a8b88b; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "X-Request-Id", + "value": "EoRIcGD4Roql7jgqRprO" + }, + { + "key": "Cache-Control", + "value": "no-cache, no-store, must-revalidate" + }, + { + "key": "Feature-Policy", + "value": "autoplay 'none';camera 'none';fullscreen 'none';geolocation 'none';microphone 'none';payment 'none'" + }, + { + "key": "X-User-Id", + "value": "admin" + }, + { + "key": "Content-Length", + "value": "387" + }, + { + "key": "Keep-Alive", + "value": "timeout=5, max=99" + }, + { + "key": "Connection", + "value": "Keep-Alive" + }, + { + "key": "Content-Type", + "value": "application/json; charset=utf-8" + } + ], + "stream": { + "type": "Buffer", + "data": [ + 123, + 34, + 117, + 114, + 108, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 122, + 97, + 107, + 101, + 110, + 92, + 47, + 118, + 49, + 92, + 47, + 107, + 108, + 97, + 110, + 116, + 99, + 111, + 110, + 116, + 97, + 99, + 116, + 101, + 110, + 92, + 47, + 53, + 54, + 102, + 54, + 54, + 100, + 97, + 97, + 45, + 50, + 56, + 99, + 97, + 45, + 52, + 50, + 99, + 55, + 45, + 56, + 99, + 50, + 54, + 45, + 49, + 50, + 98, + 51, + 101, + 50, + 52, + 52, + 53, + 53, + 101, + 102, + 34, + 44, + 34, + 117, + 117, + 105, + 100, + 34, + 58, + 34, + 53, + 54, + 102, + 54, + 54, + 100, + 97, + 97, + 45, + 50, + 56, + 99, + 97, + 45, + 52, + 50, + 99, + 55, + 45, + 56, + 99, + 50, + 54, + 45, + 49, + 50, + 98, + 51, + 101, + 50, + 52, + 52, + 53, + 53, + 101, + 102, + 34, + 44, + 34, + 122, + 97, + 97, + 107, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 122, + 97, + 107, + 101, + 110, + 92, + 47, + 118, + 49, + 92, + 47, + 122, + 97, + 107, + 101, + 110, + 92, + 47, + 98, + 54, + 52, + 56, + 99, + 53, + 100, + 97, + 45, + 98, + 53, + 57, + 48, + 45, + 52, + 57, + 54, + 48, + 45, + 57, + 52, + 97, + 48, + 45, + 102, + 48, + 99, + 53, + 97, + 51, + 102, + 57, + 101, + 100, + 57, + 48, + 34, + 44, + 34, + 100, + 97, + 116, + 117, + 109, + 116, + 105, + 106, + 100, + 34, + 58, + 34, + 50, + 48, + 49, + 57, + 45, + 48, + 50, + 45, + 50, + 50, + 84, + 48, + 48, + 58, + 48, + 48, + 58, + 48, + 48, + 43, + 48, + 48, + 58, + 48, + 48, + 34, + 44, + 34, + 107, + 97, + 110, + 97, + 97, + 108, + 34, + 58, + 34, + 34, + 44, + 34, + 111, + 110, + 100, + 101, + 114, + 119, + 101, + 114, + 112, + 34, + 58, + 34, + 34, + 44, + 34, + 105, + 110, + 105, + 116, + 105, + 97, + 116, + 111, + 114, + 34, + 58, + 34, + 34, + 125 + ] + }, + "cookie": [], + "responseTime": 176, + "responseSize": 387 + }, + "id": "d17629da-db16-4b39-ae62-81c3e40aaf52", + "assertions": [ + { + "assertion": "Klantcontact aanmaken bij gesloten Zaak met scope zaken.geforceerd-bijwerken geeft 201", + "skipped": false + } + ] + }, + { + "cursor": { + "ref": "3a95dacb-5d53-4a93-ad42-10cc021f8b74", + "length": 313, + "cycles": 1, + "position": 99, + "iteration": 0, + "httpRequestId": "a19db4fc-52c0-465e-959b-ea2b001fcc96" + }, + "item": { + "id": "9a4d310f-f95b-4262-8644-f893bfc85d90", + "name": "(zrc-007k) Resultaat bij gesloten Zaak verwijderen toegestaan met scope zaken.geforceerd-bijwerken", + "request": { + "url": { + "host": [ + "{{zaak_resultaat_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "DELETE" + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "b4b29bd0-d25d-4d4c-9a9a-f5937d658eb7", + "type": "text/javascript", + "exec": [ + "pm.test(\"Resultaat verwijderen bij gesloten Zaak zonder scope zaken.geforceerd-bijwerken geeft 204\", function() {", + " pm.response.to.have.status(204);", + "});" + ], + "_lastExecutionId": "90a9345e-553d-4036-9280-aa30e94dfd24" + } + }, + { + "listen": "prerequest", + "script": { + "id": "d037159a-6b4c-4cc7-b311-e572c0f1f7f2", + "type": "text/javascript", + "exec": [ + "" + ], + "_lastExecutionId": "79d58d8c-f5e5-4a73-9956-538e63e2c882" + } + } + ] + }, + "request": { + "url": { + "protocol": "http", + "port": "8080", + "path": [ + "index.php", + "apps", + "procest", + "api", + "zgw", + "zaken", + "v1", + "resultaten", + "9659e08c-1640-419a-a376-5a16bad6fd7c" + ], + "host": [ + "localhost" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Authorization", + "value": "Bearer eyJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJwcm9jZXN0LWFkbWluIiwiY2xpZW50X2lkIjoicHJvY2VzdC1hZG1pbiIsImlhdCI6IjE3NzMxNDUxNjMiLCJ1c2VyX2lkIjoicHJvY2VzdC1hZG1pbiIsInVzZXJfcmVwcmVzZW50YXRpb24iOiIifQ.MpOR0b3u5l2bW0KHbeG-pPi1TT-a3h94EPg8sHZSvA4", + "system": true + }, + { + "key": "User-Agent", + "value": "PostmanRuntime/7.39.1", + "system": true + }, + { + "key": "Accept", + "value": "*/*", + "system": true + }, + { + "key": "Cache-Control", + "value": "no-cache", + "system": true + }, + { + "key": "Postman-Token", + "value": "439ffdbc-2702-4359-94ec-be7a3d77cca4", + "system": true + }, + { + "key": "Host", + "value": "localhost:8080", + "system": true + }, + { + "key": "Accept-Encoding", + "value": "gzip, deflate, br", + "system": true + }, + { + "key": "Connection", + "value": "keep-alive", + "system": true + }, + { + "key": "Cookie", + "value": "ocvp3112b4wg=3f73f31ed4ced8d9069f000986a8b88b; oc_sessionPassphrase=LBNdKxRzA0iqoULIruNxDDh2BK3O%2BrCIU8aUmiUcOFvy5Xw1YfjwQNlmBW2IkGwJYtxXh9%2BwDN6vYuGNX07tXzkBtjQJUWTGdzf8AIOUIVxVx5DfyWAQZ7nmYmQv6XSE; nc_sameSiteCookielax=true; nc_sameSiteCookiestrict=true", + "system": true + } + ], + "method": "DELETE", + "auth": { + "type": "jwt", + "jwt": [ + { + "type": "string", + "value": "{\r\n \"iss\": \"procest-admin\",\r\n \"client_id\": \"procest-admin\",\r\n \"iat\": \"1773145163\",\r\n \"user_id\": \"procest-admin\",\r\n \"user_representation\": \"\"\r\n}", + "key": "payload" + }, + { + "type": "string", + "value": "procest-admin-secret-key-for-testing", + "key": "secret" + }, + { + "type": "string", + "value": "HS256", + "key": "algorithm" + }, + { + "type": "boolean", + "value": false, + "key": "isSecretBase64Encoded" + }, + { + "type": "string", + "value": "header", + "key": "addTokenTo" + }, + { + "type": "string", + "value": "Bearer", + "key": "headerPrefix" + }, + { + "type": "string", + "value": "token", + "key": "queryParamKey" + }, + { + "type": "string", + "value": "{}", + "key": "header" + } + ] + } + }, + "response": { + "id": "eacacfd7-16dd-4677-be8b-6a6f68cdb340", + "status": "No Content", + "code": 204, + "header": [ + { + "key": "Date", + "value": "Tue, 10 Mar 2026 12:19:23 GMT" + }, + { + "key": "Server", + "value": "Apache/2.4.66 (Debian)" + }, + { + "key": "X-Content-Type-Options", + "value": "nosniff" + }, + { + "key": "X-Frame-Options", + "value": "SAMEORIGIN" + }, + { + "key": "X-Permitted-Cross-Domain-Policies", + "value": "none" + }, + { + "key": "X-Robots-Tag", + "value": "noindex, nofollow" + }, + { + "key": "Referrer-Policy", + "value": "no-referrer" + }, + { + "key": "X-Powered-By", + "value": "PHP/8.3.30" + }, + { + "key": "Content-Security-Policy", + "value": "default-src 'none';base-uri 'none';manifest-src 'self';frame-ancestors 'none'" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=3f73f31ed4ced8d9069f000986a8b88b; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=3f73f31ed4ced8d9069f000986a8b88b; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=3f73f31ed4ced8d9069f000986a8b88b; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=3f73f31ed4ced8d9069f000986a8b88b; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=3f73f31ed4ced8d9069f000986a8b88b; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=d7813275d7031a4c76c410b7676e63ce; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=d7813275d7031a4c76c410b7676e63ce; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=d7813275d7031a4c76c410b7676e63ce; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=d7813275d7031a4c76c410b7676e63ce; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=d7813275d7031a4c76c410b7676e63ce; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "X-Request-Id", + "value": "PavNFdCcLGTVX1C4UzOz" + }, + { + "key": "Cache-Control", + "value": "no-cache, no-store, must-revalidate" + }, + { + "key": "Feature-Policy", + "value": "autoplay 'none';camera 'none';fullscreen 'none';geolocation 'none';microphone 'none';payment 'none'" + }, + { + "key": "X-User-Id", + "value": "admin" + }, + { + "key": "Keep-Alive", + "value": "timeout=5, max=98" + }, + { + "key": "Connection", + "value": "Keep-Alive" + } + ], + "stream": { + "type": "Buffer", + "data": [] + }, + "cookie": [], + "responseTime": 477, + "responseSize": 0 + }, + "id": "9a4d310f-f95b-4262-8644-f893bfc85d90", + "assertions": [ + { + "assertion": "Resultaat verwijderen bij gesloten Zaak zonder scope zaken.geforceerd-bijwerken geeft 204", + "skipped": false + } + ] + }, + { + "cursor": { + "ref": "eab3f1db-9c8c-4c45-b988-2988cd275890", + "length": 313, + "cycles": 1, + "position": 100, + "iteration": 0, + "httpRequestId": "1912ba51-f3ef-4989-8bbb-bffd2da7984c" + }, + "item": { + "id": "1d011d3e-2bb3-42ae-b404-48d679cfa858", + "name": "(zrc-007k) Resultaat bij gesloten Zaak aanmaken toegestaan met scope zaken.geforceerd-bijwerken", + "request": { + "url": { + "path": [ + "resultaten" + ], + "host": [ + "{{zrc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n\t\"zaak\": \"{{created_zaak_url}}\",\n\t\"resultaattype\": \"{{resultaattype_url}}\"\n}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "a81ccd67-698e-4755-a567-b21b72496d1b", + "type": "text/javascript", + "exec": [ + "pm.test(\"Resultaat aanmaken bij gesloten Zaak met scope zaken.geforceerd-bijwerken geeft 201\", function() {", + " pm.response.to.have.status(201);", + "});", + "", + "pm.environment.set(\"zaak_resultaat_url\", pm.response.json().url);" + ], + "_lastExecutionId": "aa7b5b73-bd9e-431e-a17f-621cb36a9a94" + } + }, + { + "listen": "prerequest", + "script": { + "id": "585a86be-0e8d-45a5-8d5c-692a9b310924", + "type": "text/javascript", + "exec": [ + "" + ], + "_lastExecutionId": "258c5b83-4f8f-4e98-86c0-f31d67e1df53" + } + } + ] + }, + "request": { + "url": { + "protocol": "http", + "port": "8080", + "path": [ + "index.php", + "apps", + "procest", + "api", + "zgw", + "zaken", + "v1", + "resultaten" + ], + "host": [ + "localhost" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Authorization", + "value": "Bearer eyJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJwcm9jZXN0LWFkbWluIiwiY2xpZW50X2lkIjoicHJvY2VzdC1hZG1pbiIsImlhdCI6IjE3NzMxNDUxNjQiLCJ1c2VyX2lkIjoicHJvY2VzdC1hZG1pbiIsInVzZXJfcmVwcmVzZW50YXRpb24iOiIifQ.4SzlOv8NeBxWVCX850DeQrWk0-evL6oNL9cuhy7ZG0A", + "system": true + }, + { + "key": "User-Agent", + "value": "PostmanRuntime/7.39.1", + "system": true + }, + { + "key": "Accept", + "value": "*/*", + "system": true + }, + { + "key": "Cache-Control", + "value": "no-cache", + "system": true + }, + { + "key": "Postman-Token", + "value": "69229180-4f2c-4d85-a992-18c822788f72", + "system": true + }, + { + "key": "Host", + "value": "localhost:8080", + "system": true + }, + { + "key": "Accept-Encoding", + "value": "gzip, deflate, br", + "system": true + }, + { + "key": "Connection", + "value": "keep-alive", + "system": true + }, + { + "key": "Content-Length", + "value": "257", + "system": true + }, + { + "key": "Cookie", + "value": "ocvp3112b4wg=d7813275d7031a4c76c410b7676e63ce; oc_sessionPassphrase=LBNdKxRzA0iqoULIruNxDDh2BK3O%2BrCIU8aUmiUcOFvy5Xw1YfjwQNlmBW2IkGwJYtxXh9%2BwDN6vYuGNX07tXzkBtjQJUWTGdzf8AIOUIVxVx5DfyWAQZ7nmYmQv6XSE; nc_sameSiteCookielax=true; nc_sameSiteCookiestrict=true", + "system": true + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n\t\"zaak\": \"http://localhost:8080/index.php/apps/procest/api/zgw/zaken/v1/zaken/b648c5da-b590-4960-94a0-f0c5a3f9ed90\",\n\t\"resultaattype\": \"http://localhost:8080/index.php/apps/procest/api/zgw/catalogi/v1/resultaattypen/1fa4fb2f-1572-4fc1-848d-00a37ef6af45\"\n}" + }, + "auth": { + "type": "jwt", + "jwt": [ + { + "type": "string", + "value": "{\r\n \"iss\": \"procest-admin\",\r\n \"client_id\": \"procest-admin\",\r\n \"iat\": \"1773145164\",\r\n \"user_id\": \"procest-admin\",\r\n \"user_representation\": \"\"\r\n}", + "key": "payload" + }, + { + "type": "string", + "value": "procest-admin-secret-key-for-testing", + "key": "secret" + }, + { + "type": "string", + "value": "HS256", + "key": "algorithm" + }, + { + "type": "boolean", + "value": false, + "key": "isSecretBase64Encoded" + }, + { + "type": "string", + "value": "header", + "key": "addTokenTo" + }, + { + "type": "string", + "value": "Bearer", + "key": "headerPrefix" + }, + { + "type": "string", + "value": "token", + "key": "queryParamKey" + }, + { + "type": "string", + "value": "{}", + "key": "header" + } + ] + } + }, + "response": { + "id": "4291d405-2652-47b3-b6a6-4e8b6f43f141", + "status": "Created", + "code": 201, + "header": [ + { + "key": "Date", + "value": "Tue, 10 Mar 2026 12:19:23 GMT" + }, + { + "key": "Server", + "value": "Apache/2.4.66 (Debian)" + }, + { + "key": "X-Content-Type-Options", + "value": "nosniff" + }, + { + "key": "X-Frame-Options", + "value": "SAMEORIGIN" + }, + { + "key": "X-Permitted-Cross-Domain-Policies", + "value": "none" + }, + { + "key": "X-Robots-Tag", + "value": "noindex, nofollow" + }, + { + "key": "Referrer-Policy", + "value": "no-referrer" + }, + { + "key": "X-Powered-By", + "value": "PHP/8.3.30" + }, + { + "key": "Content-Security-Policy", + "value": "default-src 'none';base-uri 'none';manifest-src 'self';frame-ancestors 'none'" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=d7813275d7031a4c76c410b7676e63ce; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=d7813275d7031a4c76c410b7676e63ce; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=d7813275d7031a4c76c410b7676e63ce; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=d7813275d7031a4c76c410b7676e63ce; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=d7813275d7031a4c76c410b7676e63ce; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=908d584bb3896593b197867e598fa3ed; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=908d584bb3896593b197867e598fa3ed; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=908d584bb3896593b197867e598fa3ed; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=908d584bb3896593b197867e598fa3ed; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=908d584bb3896593b197867e598fa3ed; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "X-Request-Id", + "value": "lZU8Xih0itFMmLjrSZGw" + }, + { + "key": "Cache-Control", + "value": "no-cache, no-store, must-revalidate" + }, + { + "key": "Feature-Policy", + "value": "autoplay 'none';camera 'none';fullscreen 'none';geolocation 'none';microphone 'none';payment 'none'" + }, + { + "key": "X-User-Id", + "value": "admin" + }, + { + "key": "Content-Length", + "value": "464" + }, + { + "key": "Keep-Alive", + "value": "timeout=5, max=97" + }, + { + "key": "Connection", + "value": "Keep-Alive" + }, + { + "key": "Content-Type", + "value": "application/json; charset=utf-8" + } + ], + "stream": { + "type": "Buffer", + "data": [ + 123, + 34, + 117, + 114, + 108, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 122, + 97, + 107, + 101, + 110, + 92, + 47, + 118, + 49, + 92, + 47, + 114, + 101, + 115, + 117, + 108, + 116, + 97, + 116, + 101, + 110, + 92, + 47, + 102, + 100, + 54, + 54, + 51, + 55, + 55, + 54, + 45, + 100, + 102, + 57, + 99, + 45, + 52, + 100, + 54, + 98, + 45, + 98, + 57, + 56, + 99, + 45, + 52, + 54, + 98, + 53, + 98, + 100, + 57, + 55, + 55, + 55, + 100, + 99, + 34, + 44, + 34, + 117, + 117, + 105, + 100, + 34, + 58, + 34, + 102, + 100, + 54, + 54, + 51, + 55, + 55, + 54, + 45, + 100, + 102, + 57, + 99, + 45, + 52, + 100, + 54, + 98, + 45, + 98, + 57, + 56, + 99, + 45, + 52, + 54, + 98, + 53, + 98, + 100, + 57, + 55, + 55, + 55, + 100, + 99, + 34, + 44, + 34, + 122, + 97, + 97, + 107, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 122, + 97, + 107, + 101, + 110, + 92, + 47, + 118, + 49, + 92, + 47, + 122, + 97, + 107, + 101, + 110, + 92, + 47, + 98, + 54, + 52, + 56, + 99, + 53, + 100, + 97, + 45, + 98, + 53, + 57, + 48, + 45, + 52, + 57, + 54, + 48, + 45, + 57, + 52, + 97, + 48, + 45, + 102, + 48, + 99, + 53, + 97, + 51, + 102, + 57, + 101, + 100, + 57, + 48, + 34, + 44, + 34, + 114, + 101, + 115, + 117, + 108, + 116, + 97, + 97, + 116, + 116, + 121, + 112, + 101, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 105, + 92, + 47, + 118, + 49, + 92, + 47, + 114, + 101, + 115, + 117, + 108, + 116, + 97, + 97, + 116, + 116, + 121, + 112, + 101, + 110, + 92, + 47, + 49, + 102, + 97, + 52, + 102, + 98, + 50, + 102, + 45, + 49, + 53, + 55, + 50, + 45, + 52, + 102, + 99, + 49, + 45, + 56, + 52, + 56, + 100, + 45, + 48, + 48, + 97, + 51, + 55, + 101, + 102, + 54, + 97, + 102, + 52, + 53, + 34, + 44, + 34, + 116, + 111, + 101, + 108, + 105, + 99, + 104, + 116, + 105, + 110, + 103, + 34, + 58, + 34, + 34, + 125 + ] + }, + "cookie": [], + "responseTime": 247, + "responseSize": 464 + }, + "id": "1d011d3e-2bb3-42ae-b404-48d679cfa858", + "assertions": [ + { + "assertion": "Resultaat aanmaken bij gesloten Zaak met scope zaken.geforceerd-bijwerken geeft 201", + "skipped": false + } + ] + }, + { + "cursor": { + "ref": "4d85e26b-718e-495e-a3a3-08e3db0b57a9", + "length": 313, + "cycles": 1, + "position": 101, + "iteration": 0, + "httpRequestId": "986a320f-a408-4a35-bd88-979fe3aac717" + }, + "item": { + "id": "be899dca-832f-44b3-88f1-8030fde875d8", + "name": "(zrc-007k) Resultaat bij gesloten Zaak bijwerken toegestaan met scope zaken.geforceerd-bijwerken", + "request": { + "url": { + "host": [ + "{{zaak_resultaat_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "PUT", + "body": { + "mode": "raw", + "raw": "{\n\t\"zaak\": \"{{created_zaak_url}}\",\n\t\"resultaattype\": \"{{resultaattype_url}}\",\n\t\"toelichting\": \"some stuff\"\n}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "2c3fd1c8-73fe-4be8-a0e1-b6d5ad82dfc5", + "type": "text/javascript", + "exec": [ + "pm.test(\"Resultaat bijwerken bij gesloten Zaak met scope zaken.geforceerd-bijwerken geeft 200\", function() {", + " pm.response.to.have.status(200);", + " pm.expect(pm.response.json().toelichting).to.be.equal(\"some stuff\");", + "});" + ], + "_lastExecutionId": "eef33a31-1661-4360-8b01-dd5d5397a320" + } + }, + { + "listen": "prerequest", + "script": { + "id": "59220991-d9ca-422d-9e42-96f5ded1cce9", + "type": "text/javascript", + "exec": [ + "" + ], + "_lastExecutionId": "a66d08dd-3923-479b-954e-23b76b5e9b7f" + } + } + ] + }, + "request": { + "url": { + "protocol": "http", + "port": "8080", + "path": [ + "index.php", + "apps", + "procest", + "api", + "zgw", + "zaken", + "v1", + "resultaten", + "fd663776-df9c-4d6b-b98c-46b5bd9777dc" + ], + "host": [ + "localhost" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Authorization", + "value": "Bearer eyJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJwcm9jZXN0LWFkbWluIiwiY2xpZW50X2lkIjoicHJvY2VzdC1hZG1pbiIsImlhdCI6IjE3NzMxNDUxNjQiLCJ1c2VyX2lkIjoicHJvY2VzdC1hZG1pbiIsInVzZXJfcmVwcmVzZW50YXRpb24iOiIifQ.4SzlOv8NeBxWVCX850DeQrWk0-evL6oNL9cuhy7ZG0A", + "system": true + }, + { + "key": "User-Agent", + "value": "PostmanRuntime/7.39.1", + "system": true + }, + { + "key": "Accept", + "value": "*/*", + "system": true + }, + { + "key": "Cache-Control", + "value": "no-cache", + "system": true + }, + { + "key": "Postman-Token", + "value": "ebc47fad-d70b-4b28-8e2a-6ce1f9feb8b5", + "system": true + }, + { + "key": "Host", + "value": "localhost:8080", + "system": true + }, + { + "key": "Accept-Encoding", + "value": "gzip, deflate, br", + "system": true + }, + { + "key": "Connection", + "value": "keep-alive", + "system": true + }, + { + "key": "Content-Length", + "value": "287", + "system": true + }, + { + "key": "Cookie", + "value": "ocvp3112b4wg=908d584bb3896593b197867e598fa3ed; oc_sessionPassphrase=LBNdKxRzA0iqoULIruNxDDh2BK3O%2BrCIU8aUmiUcOFvy5Xw1YfjwQNlmBW2IkGwJYtxXh9%2BwDN6vYuGNX07tXzkBtjQJUWTGdzf8AIOUIVxVx5DfyWAQZ7nmYmQv6XSE; nc_sameSiteCookielax=true; nc_sameSiteCookiestrict=true", + "system": true + } + ], + "method": "PUT", + "body": { + "mode": "raw", + "raw": "{\n\t\"zaak\": \"http://localhost:8080/index.php/apps/procest/api/zgw/zaken/v1/zaken/b648c5da-b590-4960-94a0-f0c5a3f9ed90\",\n\t\"resultaattype\": \"http://localhost:8080/index.php/apps/procest/api/zgw/catalogi/v1/resultaattypen/1fa4fb2f-1572-4fc1-848d-00a37ef6af45\",\n\t\"toelichting\": \"some stuff\"\n}" + }, + "auth": { + "type": "jwt", + "jwt": [ + { + "type": "string", + "value": "{\r\n \"iss\": \"procest-admin\",\r\n \"client_id\": \"procest-admin\",\r\n \"iat\": \"1773145164\",\r\n \"user_id\": \"procest-admin\",\r\n \"user_representation\": \"\"\r\n}", + "key": "payload" + }, + { + "type": "string", + "value": "procest-admin-secret-key-for-testing", + "key": "secret" + }, + { + "type": "string", + "value": "HS256", + "key": "algorithm" + }, + { + "type": "boolean", + "value": false, + "key": "isSecretBase64Encoded" + }, + { + "type": "string", + "value": "header", + "key": "addTokenTo" + }, + { + "type": "string", + "value": "Bearer", + "key": "headerPrefix" + }, + { + "type": "string", + "value": "token", + "key": "queryParamKey" + }, + { + "type": "string", + "value": "{}", + "key": "header" + } + ] + } + }, + "response": { + "id": "ce3bdfd0-3025-41d9-a1ed-14229bea1bfb", + "status": "OK", + "code": 200, + "header": [ + { + "key": "Date", + "value": "Tue, 10 Mar 2026 12:19:24 GMT" + }, + { + "key": "Server", + "value": "Apache/2.4.66 (Debian)" + }, + { + "key": "X-Content-Type-Options", + "value": "nosniff" + }, + { + "key": "X-Frame-Options", + "value": "SAMEORIGIN" + }, + { + "key": "X-Permitted-Cross-Domain-Policies", + "value": "none" + }, + { + "key": "X-Robots-Tag", + "value": "noindex, nofollow" + }, + { + "key": "Referrer-Policy", + "value": "no-referrer" + }, + { + "key": "X-Powered-By", + "value": "PHP/8.3.30" + }, + { + "key": "Content-Security-Policy", + "value": "default-src 'none';base-uri 'none';manifest-src 'self';frame-ancestors 'none'" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=908d584bb3896593b197867e598fa3ed; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=908d584bb3896593b197867e598fa3ed; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=908d584bb3896593b197867e598fa3ed; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=908d584bb3896593b197867e598fa3ed; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=908d584bb3896593b197867e598fa3ed; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=8656bb31a352c87c6f11eb3499f8701b; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=8656bb31a352c87c6f11eb3499f8701b; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=8656bb31a352c87c6f11eb3499f8701b; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=8656bb31a352c87c6f11eb3499f8701b; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=8656bb31a352c87c6f11eb3499f8701b; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "X-Request-Id", + "value": "iCVjjC9KarThLsPvG8g3" + }, + { + "key": "Cache-Control", + "value": "no-cache, no-store, must-revalidate" + }, + { + "key": "Feature-Policy", + "value": "autoplay 'none';camera 'none';fullscreen 'none';geolocation 'none';microphone 'none';payment 'none'" + }, + { + "key": "X-User-Id", + "value": "admin" + }, + { + "key": "Content-Encoding", + "value": "gzip" + }, + { + "key": "Content-Length", + "value": "244" + }, + { + "key": "Keep-Alive", + "value": "timeout=5, max=96" + }, + { + "key": "Connection", + "value": "Keep-Alive" + }, + { + "key": "Content-Type", + "value": "application/json; charset=utf-8" + } + ], + "stream": { + "type": "Buffer", + "data": [ + 123, + 34, + 117, + 114, + 108, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 122, + 97, + 107, + 101, + 110, + 92, + 47, + 118, + 49, + 92, + 47, + 114, + 101, + 115, + 117, + 108, + 116, + 97, + 116, + 101, + 110, + 92, + 47, + 102, + 100, + 54, + 54, + 51, + 55, + 55, + 54, + 45, + 100, + 102, + 57, + 99, + 45, + 52, + 100, + 54, + 98, + 45, + 98, + 57, + 56, + 99, + 45, + 52, + 54, + 98, + 53, + 98, + 100, + 57, + 55, + 55, + 55, + 100, + 99, + 34, + 44, + 34, + 117, + 117, + 105, + 100, + 34, + 58, + 34, + 102, + 100, + 54, + 54, + 51, + 55, + 55, + 54, + 45, + 100, + 102, + 57, + 99, + 45, + 52, + 100, + 54, + 98, + 45, + 98, + 57, + 56, + 99, + 45, + 52, + 54, + 98, + 53, + 98, + 100, + 57, + 55, + 55, + 55, + 100, + 99, + 34, + 44, + 34, + 122, + 97, + 97, + 107, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 122, + 97, + 107, + 101, + 110, + 92, + 47, + 118, + 49, + 92, + 47, + 122, + 97, + 107, + 101, + 110, + 92, + 47, + 98, + 54, + 52, + 56, + 99, + 53, + 100, + 97, + 45, + 98, + 53, + 57, + 48, + 45, + 52, + 57, + 54, + 48, + 45, + 57, + 52, + 97, + 48, + 45, + 102, + 48, + 99, + 53, + 97, + 51, + 102, + 57, + 101, + 100, + 57, + 48, + 34, + 44, + 34, + 114, + 101, + 115, + 117, + 108, + 116, + 97, + 97, + 116, + 116, + 121, + 112, + 101, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 105, + 92, + 47, + 118, + 49, + 92, + 47, + 114, + 101, + 115, + 117, + 108, + 116, + 97, + 97, + 116, + 116, + 121, + 112, + 101, + 110, + 92, + 47, + 49, + 102, + 97, + 52, + 102, + 98, + 50, + 102, + 45, + 49, + 53, + 55, + 50, + 45, + 52, + 102, + 99, + 49, + 45, + 56, + 52, + 56, + 100, + 45, + 48, + 48, + 97, + 51, + 55, + 101, + 102, + 54, + 97, + 102, + 52, + 53, + 34, + 44, + 34, + 116, + 111, + 101, + 108, + 105, + 99, + 104, + 116, + 105, + 110, + 103, + 34, + 58, + 34, + 115, + 111, + 109, + 101, + 32, + 115, + 116, + 117, + 102, + 102, + 34, + 125 + ] + }, + "cookie": [], + "responseTime": 239, + "responseSize": 474 + }, + "id": "be899dca-832f-44b3-88f1-8030fde875d8", + "assertions": [ + { + "assertion": "Resultaat bijwerken bij gesloten Zaak met scope zaken.geforceerd-bijwerken geeft 200", + "skipped": false + } + ] + }, + { + "cursor": { + "ref": "a89ee31e-b064-4d0a-a628-93f4cb556947", + "length": 313, + "cycles": 1, + "position": 102, + "iteration": 0, + "httpRequestId": "f9774c56-6b1c-4567-837c-f09d9cdc5bc9" + }, + "item": { + "id": "23630480-f094-4295-a41a-c7b2b68e75bf", + "name": "(zrc-007k) Resultaat bij gesloten Zaak deels bijwerken toegestaan met scope zaken.geforceerd-bijwerken", + "request": { + "url": { + "host": [ + "{{zaak_resultaat_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "PATCH", + "body": { + "mode": "raw", + "raw": "{\n\t\"zaak\": \"{{created_zaak_url}}\",\n\t\"resultaattype\": \"{{resultaattype_url}}\",\n\t\"toelichting\": \"some more stuff\"\n}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "95bd7d03-3891-4915-b856-6f1d8db0e8d7", + "type": "text/javascript", + "exec": [ + "pm.test(\"Resultaat deels bijwerken bij gesloten Zaak met scope zaken.geforceerd-bijwerken geeft 200\", function() {", + " pm.response.to.have.status(200);", + " pm.expect(pm.response.json().toelichting).to.be.equal(\"some more stuff\");", + "});" + ], + "_lastExecutionId": "ba8f2b42-6879-4ec1-aede-a9b72f1258dd" + } + }, + { + "listen": "prerequest", + "script": { + "id": "adcacd22-170a-4ae4-9ffc-a2683ada14cf", + "type": "text/javascript", + "exec": [ + "" + ], + "_lastExecutionId": "20c4dc7b-896a-4e57-869d-0b871fdf533e" + } + } + ] + }, + "request": { + "url": { + "protocol": "http", + "port": "8080", + "path": [ + "index.php", + "apps", + "procest", + "api", + "zgw", + "zaken", + "v1", + "resultaten", + "fd663776-df9c-4d6b-b98c-46b5bd9777dc" + ], + "host": [ + "localhost" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Authorization", + "value": "Bearer eyJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJwcm9jZXN0LWFkbWluIiwiY2xpZW50X2lkIjoicHJvY2VzdC1hZG1pbiIsImlhdCI6IjE3NzMxNDUxNjQiLCJ1c2VyX2lkIjoicHJvY2VzdC1hZG1pbiIsInVzZXJfcmVwcmVzZW50YXRpb24iOiIifQ.4SzlOv8NeBxWVCX850DeQrWk0-evL6oNL9cuhy7ZG0A", + "system": true + }, + { + "key": "User-Agent", + "value": "PostmanRuntime/7.39.1", + "system": true + }, + { + "key": "Accept", + "value": "*/*", + "system": true + }, + { + "key": "Cache-Control", + "value": "no-cache", + "system": true + }, + { + "key": "Postman-Token", + "value": "648e6fca-4a53-4e2f-995c-b3718f0cdded", + "system": true + }, + { + "key": "Host", + "value": "localhost:8080", + "system": true + }, + { + "key": "Accept-Encoding", + "value": "gzip, deflate, br", + "system": true + }, + { + "key": "Connection", + "value": "keep-alive", + "system": true + }, + { + "key": "Content-Length", + "value": "292", + "system": true + }, + { + "key": "Cookie", + "value": "ocvp3112b4wg=8656bb31a352c87c6f11eb3499f8701b; oc_sessionPassphrase=LBNdKxRzA0iqoULIruNxDDh2BK3O%2BrCIU8aUmiUcOFvy5Xw1YfjwQNlmBW2IkGwJYtxXh9%2BwDN6vYuGNX07tXzkBtjQJUWTGdzf8AIOUIVxVx5DfyWAQZ7nmYmQv6XSE; nc_sameSiteCookielax=true; nc_sameSiteCookiestrict=true", + "system": true + } + ], + "method": "PATCH", + "body": { + "mode": "raw", + "raw": "{\n\t\"zaak\": \"http://localhost:8080/index.php/apps/procest/api/zgw/zaken/v1/zaken/b648c5da-b590-4960-94a0-f0c5a3f9ed90\",\n\t\"resultaattype\": \"http://localhost:8080/index.php/apps/procest/api/zgw/catalogi/v1/resultaattypen/1fa4fb2f-1572-4fc1-848d-00a37ef6af45\",\n\t\"toelichting\": \"some more stuff\"\n}" + }, + "auth": { + "type": "jwt", + "jwt": [ + { + "type": "string", + "value": "{\r\n \"iss\": \"procest-admin\",\r\n \"client_id\": \"procest-admin\",\r\n \"iat\": \"1773145164\",\r\n \"user_id\": \"procest-admin\",\r\n \"user_representation\": \"\"\r\n}", + "key": "payload" + }, + { + "type": "string", + "value": "procest-admin-secret-key-for-testing", + "key": "secret" + }, + { + "type": "string", + "value": "HS256", + "key": "algorithm" + }, + { + "type": "boolean", + "value": false, + "key": "isSecretBase64Encoded" + }, + { + "type": "string", + "value": "header", + "key": "addTokenTo" + }, + { + "type": "string", + "value": "Bearer", + "key": "headerPrefix" + }, + { + "type": "string", + "value": "token", + "key": "queryParamKey" + }, + { + "type": "string", + "value": "{}", + "key": "header" + } + ] + } + }, + "response": { + "id": "21be86fa-52ed-4070-ba5b-e90ee0175f95", + "status": "OK", + "code": 200, + "header": [ + { + "key": "Date", + "value": "Tue, 10 Mar 2026 12:19:24 GMT" + }, + { + "key": "Server", + "value": "Apache/2.4.66 (Debian)" + }, + { + "key": "X-Content-Type-Options", + "value": "nosniff" + }, + { + "key": "X-Frame-Options", + "value": "SAMEORIGIN" + }, + { + "key": "X-Permitted-Cross-Domain-Policies", + "value": "none" + }, + { + "key": "X-Robots-Tag", + "value": "noindex, nofollow" + }, + { + "key": "Referrer-Policy", + "value": "no-referrer" + }, + { + "key": "X-Powered-By", + "value": "PHP/8.3.30" + }, + { + "key": "Content-Security-Policy", + "value": "default-src 'none';base-uri 'none';manifest-src 'self';frame-ancestors 'none'" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=8656bb31a352c87c6f11eb3499f8701b; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=8656bb31a352c87c6f11eb3499f8701b; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=8656bb31a352c87c6f11eb3499f8701b; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=8656bb31a352c87c6f11eb3499f8701b; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=8656bb31a352c87c6f11eb3499f8701b; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=7aa1b087d40636e40716e819e60e89d5; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=7aa1b087d40636e40716e819e60e89d5; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=7aa1b087d40636e40716e819e60e89d5; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=7aa1b087d40636e40716e819e60e89d5; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=7aa1b087d40636e40716e819e60e89d5; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "X-Request-Id", + "value": "d5iS2FkmT5agQtTx1mZd" + }, + { + "key": "Cache-Control", + "value": "no-cache, no-store, must-revalidate" + }, + { + "key": "Feature-Policy", + "value": "autoplay 'none';camera 'none';fullscreen 'none';geolocation 'none';microphone 'none';payment 'none'" + }, + { + "key": "X-User-Id", + "value": "admin" + }, + { + "key": "Content-Encoding", + "value": "gzip" + }, + { + "key": "Content-Length", + "value": "249" + }, + { + "key": "Keep-Alive", + "value": "timeout=5, max=95" + }, + { + "key": "Connection", + "value": "Keep-Alive" + }, + { + "key": "Content-Type", + "value": "application/json; charset=utf-8" + } + ], + "stream": { + "type": "Buffer", + "data": [ + 123, + 34, + 117, + 114, + 108, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 122, + 97, + 107, + 101, + 110, + 92, + 47, + 118, + 49, + 92, + 47, + 114, + 101, + 115, + 117, + 108, + 116, + 97, + 116, + 101, + 110, + 92, + 47, + 102, + 100, + 54, + 54, + 51, + 55, + 55, + 54, + 45, + 100, + 102, + 57, + 99, + 45, + 52, + 100, + 54, + 98, + 45, + 98, + 57, + 56, + 99, + 45, + 52, + 54, + 98, + 53, + 98, + 100, + 57, + 55, + 55, + 55, + 100, + 99, + 34, + 44, + 34, + 117, + 117, + 105, + 100, + 34, + 58, + 34, + 102, + 100, + 54, + 54, + 51, + 55, + 55, + 54, + 45, + 100, + 102, + 57, + 99, + 45, + 52, + 100, + 54, + 98, + 45, + 98, + 57, + 56, + 99, + 45, + 52, + 54, + 98, + 53, + 98, + 100, + 57, + 55, + 55, + 55, + 100, + 99, + 34, + 44, + 34, + 122, + 97, + 97, + 107, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 122, + 97, + 107, + 101, + 110, + 92, + 47, + 118, + 49, + 92, + 47, + 122, + 97, + 107, + 101, + 110, + 92, + 47, + 98, + 54, + 52, + 56, + 99, + 53, + 100, + 97, + 45, + 98, + 53, + 57, + 48, + 45, + 52, + 57, + 54, + 48, + 45, + 57, + 52, + 97, + 48, + 45, + 102, + 48, + 99, + 53, + 97, + 51, + 102, + 57, + 101, + 100, + 57, + 48, + 34, + 44, + 34, + 114, + 101, + 115, + 117, + 108, + 116, + 97, + 97, + 116, + 116, + 121, + 112, + 101, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 105, + 92, + 47, + 118, + 49, + 92, + 47, + 114, + 101, + 115, + 117, + 108, + 116, + 97, + 97, + 116, + 116, + 121, + 112, + 101, + 110, + 92, + 47, + 49, + 102, + 97, + 52, + 102, + 98, + 50, + 102, + 45, + 49, + 53, + 55, + 50, + 45, + 52, + 102, + 99, + 49, + 45, + 56, + 52, + 56, + 100, + 45, + 48, + 48, + 97, + 51, + 55, + 101, + 102, + 54, + 97, + 102, + 52, + 53, + 34, + 44, + 34, + 116, + 111, + 101, + 108, + 105, + 99, + 104, + 116, + 105, + 110, + 103, + 34, + 58, + 34, + 115, + 111, + 109, + 101, + 32, + 109, + 111, + 114, + 101, + 32, + 115, + 116, + 117, + 102, + 102, + 34, + 125 + ] + }, + "cookie": [], + "responseTime": 265, + "responseSize": 479 + }, + "id": "23630480-f094-4295-a41a-c7b2b68e75bf", + "assertions": [ + { + "assertion": "Resultaat deels bijwerken bij gesloten Zaak met scope zaken.geforceerd-bijwerken geeft 200", + "skipped": false + } + ] + }, + { + "cursor": { + "ref": "1053ac4f-96be-4843-afc4-d60dcdbf8749", + "length": 313, + "cycles": 1, + "position": 103, + "iteration": 0, + "httpRequestId": "b786938a-d5f3-41e1-ba61-509e59c3b395" + }, + "item": { + "id": "bd980c0d-16d9-48ed-a30b-628443172fd1", + "name": "(zrc-007l) Rol bij gesloten Zaak aanmaken toegestaan toegestaan scope zaken.geforceerd-bijwerken", + "request": { + "url": { + "path": [ + "rollen" + ], + "host": [ + "{{zrc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n\t\"zaak\": \"{{created_zaak_url}}\",\n\t\"betrokkene\": \"http://example.com/2d0815580af94ee0a15aa677aa646e1a\",\n\t\"betrokkeneType\": \"natuurlijk_persoon\",\n\t\"rolomschrijving\": \"behandelaar\",\n\t\"roltoelichting\": \"same\",\n\t\"roltype\": \"{{roltype_url}}\"\n}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "555c960e-9284-46c4-949b-a11d74c1fd3b", + "type": "text/javascript", + "exec": [ + "pm.test(\"Rol aanmaken bij gesloten Zaak zonder scope zaken.geforceerd-bijwerken geeft 201\", function() {", + " pm.response.to.have.status(201);", + "});" + ], + "_lastExecutionId": "1b0374b1-c89b-4ffa-a147-1373db9d67f5" + } + }, + { + "listen": "prerequest", + "script": { + "id": "849d6112-f38c-4dc3-9147-9cdd7a666068", + "type": "text/javascript", + "exec": [ + "" + ], + "_lastExecutionId": "3ddd62b1-d44f-4211-b9e3-1f828b76b682" + } + } + ] + }, + "request": { + "url": { + "protocol": "http", + "port": "8080", + "path": [ + "index.php", + "apps", + "procest", + "api", + "zgw", + "zaken", + "v1", + "rollen" + ], + "host": [ + "localhost" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Authorization", + "value": "Bearer eyJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJwcm9jZXN0LWFkbWluIiwiY2xpZW50X2lkIjoicHJvY2VzdC1hZG1pbiIsImlhdCI6IjE3NzMxNDUxNjUiLCJ1c2VyX2lkIjoicHJvY2VzdC1hZG1pbiIsInVzZXJfcmVwcmVzZW50YXRpb24iOiIifQ.w-oIn7NP5_1JM5udiOfXZ60_AR0x8BdD7SF-2lhDHdo", + "system": true + }, + { + "key": "User-Agent", + "value": "PostmanRuntime/7.39.1", + "system": true + }, + { + "key": "Accept", + "value": "*/*", + "system": true + }, + { + "key": "Cache-Control", + "value": "no-cache", + "system": true + }, + { + "key": "Postman-Token", + "value": "e3bf78a4-b98d-452d-82da-93411166d1ee", + "system": true + }, + { + "key": "Host", + "value": "localhost:8080", + "system": true + }, + { + "key": "Accept-Encoding", + "value": "gzip, deflate, br", + "system": true + }, + { + "key": "Connection", + "value": "keep-alive", + "system": true + }, + { + "key": "Content-Length", + "value": "418", + "system": true + }, + { + "key": "Cookie", + "value": "ocvp3112b4wg=7aa1b087d40636e40716e819e60e89d5; oc_sessionPassphrase=LBNdKxRzA0iqoULIruNxDDh2BK3O%2BrCIU8aUmiUcOFvy5Xw1YfjwQNlmBW2IkGwJYtxXh9%2BwDN6vYuGNX07tXzkBtjQJUWTGdzf8AIOUIVxVx5DfyWAQZ7nmYmQv6XSE; nc_sameSiteCookielax=true; nc_sameSiteCookiestrict=true", + "system": true + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n\t\"zaak\": \"http://localhost:8080/index.php/apps/procest/api/zgw/zaken/v1/zaken/b648c5da-b590-4960-94a0-f0c5a3f9ed90\",\n\t\"betrokkene\": \"http://example.com/2d0815580af94ee0a15aa677aa646e1a\",\n\t\"betrokkeneType\": \"natuurlijk_persoon\",\n\t\"rolomschrijving\": \"behandelaar\",\n\t\"roltoelichting\": \"same\",\n\t\"roltype\": \"http://localhost:8080/index.php/apps/procest/api/zgw/catalogi/v1/roltypen/9fcbc90a-96d3-4ab3-a4f8-d468250881c5\"\n}" + }, + "auth": { + "type": "jwt", + "jwt": [ + { + "type": "string", + "value": "{\r\n \"iss\": \"procest-admin\",\r\n \"client_id\": \"procest-admin\",\r\n \"iat\": \"1773145165\",\r\n \"user_id\": \"procest-admin\",\r\n \"user_representation\": \"\"\r\n}", + "key": "payload" + }, + { + "type": "string", + "value": "procest-admin-secret-key-for-testing", + "key": "secret" + }, + { + "type": "string", + "value": "HS256", + "key": "algorithm" + }, + { + "type": "boolean", + "value": false, + "key": "isSecretBase64Encoded" + }, + { + "type": "string", + "value": "header", + "key": "addTokenTo" + }, + { + "type": "string", + "value": "Bearer", + "key": "headerPrefix" + }, + { + "type": "string", + "value": "token", + "key": "queryParamKey" + }, + { + "type": "string", + "value": "{}", + "key": "header" + } + ] + } + }, + "response": { + "id": "96c8631a-fdae-474b-96a5-42ae183f3526", + "status": "Created", + "code": 201, + "header": [ + { + "key": "Date", + "value": "Tue, 10 Mar 2026 12:19:24 GMT" + }, + { + "key": "Server", + "value": "Apache/2.4.66 (Debian)" + }, + { + "key": "X-Content-Type-Options", + "value": "nosniff" + }, + { + "key": "X-Frame-Options", + "value": "SAMEORIGIN" + }, + { + "key": "X-Permitted-Cross-Domain-Policies", + "value": "none" + }, + { + "key": "X-Robots-Tag", + "value": "noindex, nofollow" + }, + { + "key": "Referrer-Policy", + "value": "no-referrer" + }, + { + "key": "X-Powered-By", + "value": "PHP/8.3.30" + }, + { + "key": "Content-Security-Policy", + "value": "default-src 'none';base-uri 'none';manifest-src 'self';frame-ancestors 'none'" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=7aa1b087d40636e40716e819e60e89d5; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=7aa1b087d40636e40716e819e60e89d5; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=7aa1b087d40636e40716e819e60e89d5; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=7aa1b087d40636e40716e819e60e89d5; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=7aa1b087d40636e40716e819e60e89d5; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=3fafb253922bd7d516e7d734b4d66550; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=3fafb253922bd7d516e7d734b4d66550; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=3fafb253922bd7d516e7d734b4d66550; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=3fafb253922bd7d516e7d734b4d66550; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=3fafb253922bd7d516e7d734b4d66550; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "X-Request-Id", + "value": "03kMkJx3kKE1AGZcw7G7" + }, + { + "key": "Cache-Control", + "value": "no-cache, no-store, must-revalidate" + }, + { + "key": "Feature-Policy", + "value": "autoplay 'none';camera 'none';fullscreen 'none';geolocation 'none';microphone 'none';payment 'none'" + }, + { + "key": "X-User-Id", + "value": "admin" + }, + { + "key": "Content-Length", + "value": "504" + }, + { + "key": "Keep-Alive", + "value": "timeout=5, max=94" + }, + { + "key": "Connection", + "value": "Keep-Alive" + }, + { + "key": "Content-Type", + "value": "application/json; charset=utf-8" + } + ], + "stream": { + "type": "Buffer", + "data": [ + 123, + 34, + 117, + 114, + 108, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 122, + 97, + 107, + 101, + 110, + 92, + 47, + 118, + 49, + 92, + 47, + 114, + 111, + 108, + 108, + 101, + 110, + 92, + 47, + 99, + 54, + 98, + 51, + 101, + 56, + 55, + 49, + 45, + 52, + 48, + 54, + 55, + 45, + 52, + 99, + 55, + 56, + 45, + 56, + 51, + 52, + 102, + 45, + 51, + 54, + 98, + 48, + 48, + 102, + 98, + 99, + 49, + 100, + 50, + 56, + 34, + 44, + 34, + 117, + 117, + 105, + 100, + 34, + 58, + 34, + 99, + 54, + 98, + 51, + 101, + 56, + 55, + 49, + 45, + 52, + 48, + 54, + 55, + 45, + 52, + 99, + 55, + 56, + 45, + 56, + 51, + 52, + 102, + 45, + 51, + 54, + 98, + 48, + 48, + 102, + 98, + 99, + 49, + 100, + 50, + 56, + 34, + 44, + 34, + 122, + 97, + 97, + 107, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 122, + 97, + 107, + 101, + 110, + 92, + 47, + 118, + 49, + 92, + 47, + 122, + 97, + 107, + 101, + 110, + 92, + 47, + 98, + 54, + 52, + 56, + 99, + 53, + 100, + 97, + 45, + 98, + 53, + 57, + 48, + 45, + 52, + 57, + 54, + 48, + 45, + 57, + 52, + 97, + 48, + 45, + 102, + 48, + 99, + 53, + 97, + 51, + 102, + 57, + 101, + 100, + 57, + 48, + 34, + 44, + 34, + 114, + 111, + 108, + 116, + 121, + 112, + 101, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 105, + 92, + 47, + 118, + 49, + 92, + 47, + 114, + 111, + 108, + 116, + 121, + 112, + 101, + 110, + 92, + 47, + 57, + 102, + 99, + 98, + 99, + 57, + 48, + 97, + 45, + 57, + 54, + 100, + 51, + 45, + 52, + 97, + 98, + 51, + 45, + 97, + 52, + 102, + 56, + 45, + 100, + 52, + 54, + 56, + 50, + 53, + 48, + 56, + 56, + 49, + 99, + 53, + 34, + 44, + 34, + 111, + 109, + 115, + 99, + 104, + 114, + 105, + 106, + 118, + 105, + 110, + 103, + 34, + 58, + 34, + 34, + 44, + 34, + 111, + 109, + 115, + 99, + 104, + 114, + 105, + 106, + 118, + 105, + 110, + 103, + 71, + 101, + 110, + 101, + 114, + 105, + 101, + 107, + 34, + 58, + 34, + 34, + 44, + 34, + 98, + 101, + 116, + 114, + 111, + 107, + 107, + 101, + 110, + 101, + 73, + 100, + 101, + 110, + 116, + 105, + 102, + 105, + 99, + 97, + 116, + 105, + 101, + 34, + 58, + 34, + 34, + 125 + ] + }, + "cookie": [], + "responseTime": 185, + "responseSize": 504 + }, + "id": "bd980c0d-16d9-48ed-a30b-628443172fd1", + "assertions": [ + { + "assertion": "Rol aanmaken bij gesloten Zaak zonder scope zaken.geforceerd-bijwerken geeft 201", + "skipped": false + } + ] + }, + { + "cursor": { + "ref": "6637af62-9ee3-4f8f-85a5-36f33b372779", + "length": 313, + "cycles": 1, + "position": 104, + "iteration": 0, + "httpRequestId": "da817dd9-d5d6-4fa9-9d20-6ce5ae3f85f0" + }, + "item": { + "id": "2addca21-7f0c-4b41-9ba7-a1a3e6e5bf44", + "name": "(zrc-007l) Rol bij gesloten Zaak verwijderen niet toegestaan zonder scope zaken.geforceerd-bijwerken Copy", + "request": { + "url": { + "host": [ + "{{rol_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "DELETE" + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "a2fb1008-c8e5-4672-bb57-5a498e51fa50", + "type": "text/javascript", + "exec": [ + "pm.test(\"Rol verwijderen bij gesloten Zaak met scope zaken.geforceerd-bijwerken geeft 204\", function() {", + " pm.response.to.have.status(204);", + "});" + ], + "_lastExecutionId": "6a67a3b0-b339-43c0-8752-18aa4d012dac" + } + }, + { + "listen": "prerequest", + "script": { + "id": "fa73ba88-1793-4973-9d03-890ea199dae4", + "type": "text/javascript", + "exec": [ + "" + ], + "_lastExecutionId": "55b19845-45ef-4605-9c5e-d7c88653449e" + } + } + ] + }, + "request": { + "url": { + "protocol": "http", + "port": "8080", + "path": [ + "index.php", + "apps", + "procest", + "api", + "zgw", + "zaken", + "v1", + "rollen", + "c5832120-c275-400d-926d-d9cc2d2234c3" + ], + "host": [ + "localhost" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Authorization", + "value": "Bearer eyJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJwcm9jZXN0LWFkbWluIiwiY2xpZW50X2lkIjoicHJvY2VzdC1hZG1pbiIsImlhdCI6IjE3NzMxNDUxNjUiLCJ1c2VyX2lkIjoicHJvY2VzdC1hZG1pbiIsInVzZXJfcmVwcmVzZW50YXRpb24iOiIifQ.w-oIn7NP5_1JM5udiOfXZ60_AR0x8BdD7SF-2lhDHdo", + "system": true + }, + { + "key": "User-Agent", + "value": "PostmanRuntime/7.39.1", + "system": true + }, + { + "key": "Accept", + "value": "*/*", + "system": true + }, + { + "key": "Cache-Control", + "value": "no-cache", + "system": true + }, + { + "key": "Postman-Token", + "value": "9df24ded-34b0-4c73-b86b-a87938320d5b", + "system": true + }, + { + "key": "Host", + "value": "localhost:8080", + "system": true + }, + { + "key": "Accept-Encoding", + "value": "gzip, deflate, br", + "system": true + }, + { + "key": "Connection", + "value": "keep-alive", + "system": true + }, + { + "key": "Cookie", + "value": "ocvp3112b4wg=3fafb253922bd7d516e7d734b4d66550; oc_sessionPassphrase=LBNdKxRzA0iqoULIruNxDDh2BK3O%2BrCIU8aUmiUcOFvy5Xw1YfjwQNlmBW2IkGwJYtxXh9%2BwDN6vYuGNX07tXzkBtjQJUWTGdzf8AIOUIVxVx5DfyWAQZ7nmYmQv6XSE; nc_sameSiteCookielax=true; nc_sameSiteCookiestrict=true", + "system": true + } + ], + "method": "DELETE", + "auth": { + "type": "jwt", + "jwt": [ + { + "type": "string", + "value": "{\r\n \"iss\": \"procest-admin\",\r\n \"client_id\": \"procest-admin\",\r\n \"iat\": \"1773145165\",\r\n \"user_id\": \"procest-admin\",\r\n \"user_representation\": \"\"\r\n}", + "key": "payload" + }, + { + "type": "string", + "value": "procest-admin-secret-key-for-testing", + "key": "secret" + }, + { + "type": "string", + "value": "HS256", + "key": "algorithm" + }, + { + "type": "boolean", + "value": false, + "key": "isSecretBase64Encoded" + }, + { + "type": "string", + "value": "header", + "key": "addTokenTo" + }, + { + "type": "string", + "value": "Bearer", + "key": "headerPrefix" + }, + { + "type": "string", + "value": "token", + "key": "queryParamKey" + }, + { + "type": "string", + "value": "{}", + "key": "header" + } + ] + } + }, + "response": { + "id": "6f98cf6a-80a7-4900-a609-16f48dc008d9", + "status": "No Content", + "code": 204, + "header": [ + { + "key": "Date", + "value": "Tue, 10 Mar 2026 12:19:24 GMT" + }, + { + "key": "Server", + "value": "Apache/2.4.66 (Debian)" + }, + { + "key": "X-Content-Type-Options", + "value": "nosniff" + }, + { + "key": "X-Frame-Options", + "value": "SAMEORIGIN" + }, + { + "key": "X-Permitted-Cross-Domain-Policies", + "value": "none" + }, + { + "key": "X-Robots-Tag", + "value": "noindex, nofollow" + }, + { + "key": "Referrer-Policy", + "value": "no-referrer" + }, + { + "key": "X-Powered-By", + "value": "PHP/8.3.30" + }, + { + "key": "Content-Security-Policy", + "value": "default-src 'none';base-uri 'none';manifest-src 'self';frame-ancestors 'none'" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=3fafb253922bd7d516e7d734b4d66550; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=3fafb253922bd7d516e7d734b4d66550; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=3fafb253922bd7d516e7d734b4d66550; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=3fafb253922bd7d516e7d734b4d66550; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=3fafb253922bd7d516e7d734b4d66550; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=d22c82572b6d8aa62661f7b16b5cd900; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=d22c82572b6d8aa62661f7b16b5cd900; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=d22c82572b6d8aa62661f7b16b5cd900; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=d22c82572b6d8aa62661f7b16b5cd900; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=d22c82572b6d8aa62661f7b16b5cd900; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "X-Request-Id", + "value": "5XPByvUrXjbW8gc73c3W" + }, + { + "key": "Cache-Control", + "value": "no-cache, no-store, must-revalidate" + }, + { + "key": "Feature-Policy", + "value": "autoplay 'none';camera 'none';fullscreen 'none';geolocation 'none';microphone 'none';payment 'none'" + }, + { + "key": "X-User-Id", + "value": "admin" + }, + { + "key": "Keep-Alive", + "value": "timeout=5, max=93" + }, + { + "key": "Connection", + "value": "Keep-Alive" + } + ], + "stream": { + "type": "Buffer", + "data": [] + }, + "cookie": [], + "responseTime": 479, + "responseSize": 0 + }, + "id": "2addca21-7f0c-4b41-9ba7-a1a3e6e5bf44", + "assertions": [ + { + "assertion": "Rol verwijderen bij gesloten Zaak met scope zaken.geforceerd-bijwerken geeft 204", + "skipped": false + } + ] + }, + { + "cursor": { + "ref": "d45006d7-8655-4176-af61-93c9abf4769c", + "length": 313, + "cycles": 1, + "position": 105, + "iteration": 0, + "httpRequestId": "037ba4de-0918-4892-ae76-70f01561f108" + }, + "item": { + "id": "72e9008a-6c99-453c-b570-26158bc6daba", + "name": "(zrc-007m) Status toevoegen bij gesloten Zaak is toegestaan met scope zaken.geforceerd-bijwerken", + "request": { + "url": { + "path": [ + "statussen" + ], + "host": [ + "{{zrc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n\t\"zaak\": \"{{created_zaak_url}}\",\n\t\"statustype\": \"{{eindstatustype}}\",\n\t\"datumStatusGezet\": \"2018-04-22T13:37:00\"\n}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "c21e74e8-d5e0-4b40-8c21-e1264c196b5b", + "type": "text/javascript", + "exec": [ + "pm.test(\"Status aanmaken bij gesloten Zaak met scope zaken.geforceerd-bijwerken geeft 201\", function() {", + " pm.response.to.have.status(201);", + "});" + ], + "_lastExecutionId": "cea6c852-7b53-4dca-a11a-8f515097b36a" + } + }, + { + "listen": "prerequest", + "script": { + "id": "8f71bce8-cb06-4bc1-8956-3dfac00b1d22", + "type": "text/javascript", + "exec": [ + "" + ], + "_lastExecutionId": "d020d0ab-6076-4090-b98d-ecd3ef9f8cdb" + } + } + ] + }, + "request": { + "url": { + "protocol": "http", + "port": "8080", + "path": [ + "index.php", + "apps", + "procest", + "api", + "zgw", + "zaken", + "v1", + "statussen" + ], + "host": [ + "localhost" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Authorization", + "value": "Bearer eyJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJwcm9jZXN0LWFkbWluIiwiY2xpZW50X2lkIjoicHJvY2VzdC1hZG1pbiIsImlhdCI6IjE3NzMxNDUxNjUiLCJ1c2VyX2lkIjoicHJvY2VzdC1hZG1pbiIsInVzZXJfcmVwcmVzZW50YXRpb24iOiIifQ.w-oIn7NP5_1JM5udiOfXZ60_AR0x8BdD7SF-2lhDHdo", + "system": true + }, + { + "key": "User-Agent", + "value": "PostmanRuntime/7.39.1", + "system": true + }, + { + "key": "Accept", + "value": "*/*", + "system": true + }, + { + "key": "Cache-Control", + "value": "no-cache", + "system": true + }, + { + "key": "Postman-Token", + "value": "58912819-922e-4066-8194-f367ce095bd7", + "system": true + }, + { + "key": "Host", + "value": "localhost:8080", + "system": true + }, + { + "key": "Accept-Encoding", + "value": "gzip, deflate, br", + "system": true + }, + { + "key": "Connection", + "value": "keep-alive", + "system": true + }, + { + "key": "Content-Length", + "value": "295", + "system": true + }, + { + "key": "Cookie", + "value": "ocvp3112b4wg=d22c82572b6d8aa62661f7b16b5cd900; oc_sessionPassphrase=LBNdKxRzA0iqoULIruNxDDh2BK3O%2BrCIU8aUmiUcOFvy5Xw1YfjwQNlmBW2IkGwJYtxXh9%2BwDN6vYuGNX07tXzkBtjQJUWTGdzf8AIOUIVxVx5DfyWAQZ7nmYmQv6XSE; nc_sameSiteCookielax=true; nc_sameSiteCookiestrict=true", + "system": true + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n\t\"zaak\": \"http://localhost:8080/index.php/apps/procest/api/zgw/zaken/v1/zaken/b648c5da-b590-4960-94a0-f0c5a3f9ed90\",\n\t\"statustype\": \"http://localhost:8080/index.php/apps/procest/api/zgw/catalogi/v1/statustypen/b0b83347-bc74-4ef9-b984-52f1c6c9fc3d\",\n\t\"datumStatusGezet\": \"2018-04-22T13:37:00\"\n}" + }, + "auth": { + "type": "jwt", + "jwt": [ + { + "type": "string", + "value": "{\r\n \"iss\": \"procest-admin\",\r\n \"client_id\": \"procest-admin\",\r\n \"iat\": \"1773145165\",\r\n \"user_id\": \"procest-admin\",\r\n \"user_representation\": \"\"\r\n}", + "key": "payload" + }, + { + "type": "string", + "value": "procest-admin-secret-key-for-testing", + "key": "secret" + }, + { + "type": "string", + "value": "HS256", + "key": "algorithm" + }, + { + "type": "boolean", + "value": false, + "key": "isSecretBase64Encoded" + }, + { + "type": "string", + "value": "header", + "key": "addTokenTo" + }, + { + "type": "string", + "value": "Bearer", + "key": "headerPrefix" + }, + { + "type": "string", + "value": "token", + "key": "queryParamKey" + }, + { + "type": "string", + "value": "{}", + "key": "header" + } + ] + } + }, + "response": { + "id": "d37b95fe-bde2-4cb9-98a0-8ed6f3299e4a", + "status": "Created", + "code": 201, + "header": [ + { + "key": "Date", + "value": "Tue, 10 Mar 2026 12:19:25 GMT" + }, + { + "key": "Server", + "value": "Apache/2.4.66 (Debian)" + }, + { + "key": "X-Content-Type-Options", + "value": "nosniff" + }, + { + "key": "X-Frame-Options", + "value": "SAMEORIGIN" + }, + { + "key": "X-Permitted-Cross-Domain-Policies", + "value": "none" + }, + { + "key": "X-Robots-Tag", + "value": "noindex, nofollow" + }, + { + "key": "Referrer-Policy", + "value": "no-referrer" + }, + { + "key": "X-Powered-By", + "value": "PHP/8.3.30" + }, + { + "key": "Content-Security-Policy", + "value": "default-src 'none';base-uri 'none';manifest-src 'self';frame-ancestors 'none'" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=d22c82572b6d8aa62661f7b16b5cd900; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=d22c82572b6d8aa62661f7b16b5cd900; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=d22c82572b6d8aa62661f7b16b5cd900; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=d22c82572b6d8aa62661f7b16b5cd900; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=d22c82572b6d8aa62661f7b16b5cd900; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=baeb176c0c73277440b2d300a333dc3b; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=baeb176c0c73277440b2d300a333dc3b; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=baeb176c0c73277440b2d300a333dc3b; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=baeb176c0c73277440b2d300a333dc3b; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=baeb176c0c73277440b2d300a333dc3b; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "X-Request-Id", + "value": "cfxgE0xHUAnaZy5CYYFf" + }, + { + "key": "Cache-Control", + "value": "no-cache, no-store, must-revalidate" + }, + { + "key": "Feature-Policy", + "value": "autoplay 'none';camera 'none';fullscreen 'none';geolocation 'none';microphone 'none';payment 'none'" + }, + { + "key": "X-User-Id", + "value": "admin" + }, + { + "key": "Content-Length", + "value": "510" + }, + { + "key": "Keep-Alive", + "value": "timeout=5, max=92" + }, + { + "key": "Connection", + "value": "Keep-Alive" + }, + { + "key": "Content-Type", + "value": "application/json; charset=utf-8" + } + ], + "stream": { + "type": "Buffer", + "data": [ + 123, + 34, + 117, + 114, + 108, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 122, + 97, + 107, + 101, + 110, + 92, + 47, + 118, + 49, + 92, + 47, + 115, + 116, + 97, + 116, + 117, + 115, + 115, + 101, + 110, + 92, + 47, + 102, + 99, + 98, + 48, + 51, + 98, + 52, + 55, + 45, + 53, + 57, + 100, + 55, + 45, + 52, + 50, + 51, + 52, + 45, + 56, + 53, + 48, + 50, + 45, + 102, + 100, + 50, + 54, + 98, + 99, + 56, + 56, + 56, + 56, + 54, + 98, + 34, + 44, + 34, + 117, + 117, + 105, + 100, + 34, + 58, + 34, + 102, + 99, + 98, + 48, + 51, + 98, + 52, + 55, + 45, + 53, + 57, + 100, + 55, + 45, + 52, + 50, + 51, + 52, + 45, + 56, + 53, + 48, + 50, + 45, + 102, + 100, + 50, + 54, + 98, + 99, + 56, + 56, + 56, + 56, + 54, + 98, + 34, + 44, + 34, + 122, + 97, + 97, + 107, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 122, + 97, + 107, + 101, + 110, + 92, + 47, + 118, + 49, + 92, + 47, + 122, + 97, + 107, + 101, + 110, + 92, + 47, + 98, + 54, + 52, + 56, + 99, + 53, + 100, + 97, + 45, + 98, + 53, + 57, + 48, + 45, + 52, + 57, + 54, + 48, + 45, + 57, + 52, + 97, + 48, + 45, + 102, + 48, + 99, + 53, + 97, + 51, + 102, + 57, + 101, + 100, + 57, + 48, + 34, + 44, + 34, + 115, + 116, + 97, + 116, + 117, + 115, + 116, + 121, + 112, + 101, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 105, + 92, + 47, + 118, + 49, + 92, + 47, + 115, + 116, + 97, + 116, + 117, + 115, + 116, + 121, + 112, + 101, + 110, + 92, + 47, + 98, + 48, + 98, + 56, + 51, + 51, + 52, + 55, + 45, + 98, + 99, + 55, + 52, + 45, + 52, + 101, + 102, + 57, + 45, + 98, + 57, + 56, + 52, + 45, + 53, + 50, + 102, + 49, + 99, + 54, + 99, + 57, + 102, + 99, + 51, + 100, + 34, + 44, + 34, + 100, + 97, + 116, + 117, + 109, + 83, + 116, + 97, + 116, + 117, + 115, + 71, + 101, + 122, + 101, + 116, + 34, + 58, + 34, + 50, + 48, + 50, + 54, + 45, + 48, + 51, + 45, + 49, + 48, + 84, + 49, + 50, + 58, + 49, + 57, + 58, + 50, + 53, + 43, + 48, + 48, + 58, + 48, + 48, + 34, + 44, + 34, + 115, + 116, + 97, + 116, + 117, + 115, + 116, + 111, + 101, + 108, + 105, + 99, + 104, + 116, + 105, + 110, + 103, + 34, + 58, + 34, + 34, + 125 + ] + }, + "cookie": [], + "responseTime": 336, + "responseSize": 510 + }, + "id": "72e9008a-6c99-453c-b570-26158bc6daba", + "assertions": [ + { + "assertion": "Status aanmaken bij gesloten Zaak met scope zaken.geforceerd-bijwerken geeft 201", + "skipped": false + } + ] + }, + { + "cursor": { + "ref": "25b5e2fe-1ed2-4da8-96b4-8635974090b1", + "length": 313, + "cycles": 1, + "position": 106, + "iteration": 0, + "httpRequestId": "95583454-4a1d-4a24-bf03-51f20cd885c7" + }, + "item": { + "id": "a82b8a3e-1164-479a-a9b1-bf7dc60c0a11", + "name": "(zrc-007n) ZaakInformatieObject verwijderen bij gesloten Zaak is toegestaan met scope zaken.geforceerd-bijwerken", + "request": { + "url": { + "host": [ + "{{created_zaakinformatieobject_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "DELETE" + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "805b75f2-6c8d-4ff7-a267-e36dc5b0621b", + "type": "text/javascript", + "exec": [ + "pm.test(\"ZaakInformatieObject verwijderen bij gesloten Zaak met scope zaken.geforceerd-bijwerken geeft 204\", function() {", + " pm.response.to.have.status(204);", + "});" + ], + "_lastExecutionId": "685e2f7d-748c-46b3-a8aa-24d4000e37aa" + } + }, + { + "listen": "prerequest", + "script": { + "id": "6d12f877-ffcc-4a2f-afe4-58f74164e54f", + "type": "text/javascript", + "exec": [ + "" + ], + "_lastExecutionId": "b5769c04-bdff-4849-8dab-d92b13a84ca1" + } + } + ] + }, + "request": { + "url": { + "protocol": "http", + "port": "8080", + "path": [ + "index.php", + "apps", + "procest", + "api", + "zgw", + "zaken", + "v1", + "zaakinformatieobjecten", + "06f007df-caed-4ac1-b353-a2ac4605e414" + ], + "host": [ + "localhost" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Authorization", + "value": "Bearer eyJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJwcm9jZXN0LWFkbWluIiwiY2xpZW50X2lkIjoicHJvY2VzdC1hZG1pbiIsImlhdCI6IjE3NzMxNDUxNjYiLCJ1c2VyX2lkIjoicHJvY2VzdC1hZG1pbiIsInVzZXJfcmVwcmVzZW50YXRpb24iOiIifQ.topKmvN3hHnmm2lv92IWCZrofW6-0PKM1o0BAojgLXs", + "system": true + }, + { + "key": "User-Agent", + "value": "PostmanRuntime/7.39.1", + "system": true + }, + { + "key": "Accept", + "value": "*/*", + "system": true + }, + { + "key": "Cache-Control", + "value": "no-cache", + "system": true + }, + { + "key": "Postman-Token", + "value": "b634dd8d-ddf4-4a1d-ac6f-68d460fd5bf5", + "system": true + }, + { + "key": "Host", + "value": "localhost:8080", + "system": true + }, + { + "key": "Accept-Encoding", + "value": "gzip, deflate, br", + "system": true + }, + { + "key": "Connection", + "value": "keep-alive", + "system": true + }, + { + "key": "Cookie", + "value": "ocvp3112b4wg=baeb176c0c73277440b2d300a333dc3b; oc_sessionPassphrase=LBNdKxRzA0iqoULIruNxDDh2BK3O%2BrCIU8aUmiUcOFvy5Xw1YfjwQNlmBW2IkGwJYtxXh9%2BwDN6vYuGNX07tXzkBtjQJUWTGdzf8AIOUIVxVx5DfyWAQZ7nmYmQv6XSE; nc_sameSiteCookielax=true; nc_sameSiteCookiestrict=true", + "system": true + } + ], + "method": "DELETE", + "auth": { + "type": "jwt", + "jwt": [ + { + "type": "string", + "value": "{\r\n \"iss\": \"procest-admin\",\r\n \"client_id\": \"procest-admin\",\r\n \"iat\": \"1773145166\",\r\n \"user_id\": \"procest-admin\",\r\n \"user_representation\": \"\"\r\n}", + "key": "payload" + }, + { + "type": "string", + "value": "procest-admin-secret-key-for-testing", + "key": "secret" + }, + { + "type": "string", + "value": "HS256", + "key": "algorithm" + }, + { + "type": "boolean", + "value": false, + "key": "isSecretBase64Encoded" + }, + { + "type": "string", + "value": "header", + "key": "addTokenTo" + }, + { + "type": "string", + "value": "Bearer", + "key": "headerPrefix" + }, + { + "type": "string", + "value": "token", + "key": "queryParamKey" + }, + { + "type": "string", + "value": "{}", + "key": "header" + } + ] + } + }, + "response": { + "id": "f9302366-7f50-465d-9b4d-d55475a9f555", + "status": "No Content", + "code": 204, + "header": [ + { + "key": "Date", + "value": "Tue, 10 Mar 2026 12:19:25 GMT" + }, + { + "key": "Server", + "value": "Apache/2.4.66 (Debian)" + }, + { + "key": "X-Content-Type-Options", + "value": "nosniff" + }, + { + "key": "X-Frame-Options", + "value": "SAMEORIGIN" + }, + { + "key": "X-Permitted-Cross-Domain-Policies", + "value": "none" + }, + { + "key": "X-Robots-Tag", + "value": "noindex, nofollow" + }, + { + "key": "Referrer-Policy", + "value": "no-referrer" + }, + { + "key": "X-Powered-By", + "value": "PHP/8.3.30" + }, + { + "key": "Content-Security-Policy", + "value": "default-src 'none';base-uri 'none';manifest-src 'self';frame-ancestors 'none'" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=baeb176c0c73277440b2d300a333dc3b; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=baeb176c0c73277440b2d300a333dc3b; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=baeb176c0c73277440b2d300a333dc3b; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=baeb176c0c73277440b2d300a333dc3b; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=baeb176c0c73277440b2d300a333dc3b; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=5239a926ed7f6e8360cbb5e96da32904; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=5239a926ed7f6e8360cbb5e96da32904; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=5239a926ed7f6e8360cbb5e96da32904; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=5239a926ed7f6e8360cbb5e96da32904; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=5239a926ed7f6e8360cbb5e96da32904; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "X-Request-Id", + "value": "465EZcR9kBKzXoIMDsYk" + }, + { + "key": "Cache-Control", + "value": "no-cache, no-store, must-revalidate" + }, + { + "key": "Feature-Policy", + "value": "autoplay 'none';camera 'none';fullscreen 'none';geolocation 'none';microphone 'none';payment 'none'" + }, + { + "key": "X-User-Id", + "value": "admin" + }, + { + "key": "Keep-Alive", + "value": "timeout=5, max=91" + }, + { + "key": "Connection", + "value": "Keep-Alive" + } + ], + "stream": { + "type": "Buffer", + "data": [] + }, + "cookie": [], + "responseTime": 1000, + "responseSize": 0 + }, + "id": "a82b8a3e-1164-479a-a9b1-bf7dc60c0a11", + "assertions": [ + { + "assertion": "ZaakInformatieObject verwijderen bij gesloten Zaak met scope zaken.geforceerd-bijwerken geeft 204", + "skipped": false + } + ] + }, + { + "cursor": { + "ref": "0899d808-c48f-45db-b6d0-64ca58bd33a8", + "length": 313, + "cycles": 1, + "position": 107, + "iteration": 0, + "httpRequestId": "22e45766-ee80-4cd4-9ce9-8f5db9f964d3" + }, + "item": { + "id": "215ff014-7201-4c94-8870-06716fb41767", + "name": "(zrc-007n) ZaakInformatieObject toevoegen bij gesloten Zaak is toegestaan met scope zaken.geforceerd-bijwerken", + "request": { + "url": { + "path": [ + "zaakinformatieobjecten" + ], + "host": [ + "{{zrc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n \"informatieobject\": \"{{informatieobject_url}}\",\n \"zaak\": \"{{created_zaak_url}}\"\n}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "361004da-b08f-442c-a57e-9f0f9c55fb74", + "type": "text/javascript", + "exec": [ + "pm.test(\"ZaakInformatieObject aanmaken bij gesloten Zaak met scope zaken.geforceerd-bijwerken geeft 201\", function() {", + " pm.response.to.have.status(201);", + "});", + "", + "pm.environment.set(\"created_zaakinformatieobject_url\", pm.response.json().url);" + ], + "_lastExecutionId": "3daaceb9-61a1-4697-8451-065dbc5d83eb" + } + }, + { + "listen": "prerequest", + "script": { + "id": "8def31b7-7f04-4939-a830-35af7b4d0754", + "type": "text/javascript", + "exec": [ + "" + ], + "_lastExecutionId": "082dfa15-0c66-4d06-b5ac-f62daf71a10d" + } + } + ] + }, + "request": { + "url": { + "protocol": "http", + "port": "8080", + "path": [ + "index.php", + "apps", + "procest", + "api", + "zgw", + "zaken", + "v1", + "zaakinformatieobjecten" + ], + "host": [ + "localhost" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Authorization", + "value": "Bearer eyJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJwcm9jZXN0LWFkbWluIiwiY2xpZW50X2lkIjoicHJvY2VzdC1hZG1pbiIsImlhdCI6IjE3NzMxNDUxNjciLCJ1c2VyX2lkIjoicHJvY2VzdC1hZG1pbiIsInVzZXJfcmVwcmVzZW50YXRpb24iOiIifQ.oo5u9fDUqNJRv0zkz5YsWZGbMfX-GKRxizZPhYBM7bk", + "system": true + }, + { + "key": "User-Agent", + "value": "PostmanRuntime/7.39.1", + "system": true + }, + { + "key": "Accept", + "value": "*/*", + "system": true + }, + { + "key": "Cache-Control", + "value": "no-cache", + "system": true + }, + { + "key": "Postman-Token", + "value": "e7c1694c-c152-4324-b6e5-ee5cedb7edf8", + "system": true + }, + { + "key": "Host", + "value": "localhost:8080", + "system": true + }, + { + "key": "Accept-Encoding", + "value": "gzip, deflate, br", + "system": true + }, + { + "key": "Connection", + "value": "keep-alive", + "system": true + }, + { + "key": "Content-Length", + "value": "283", + "system": true + }, + { + "key": "Cookie", + "value": "ocvp3112b4wg=5239a926ed7f6e8360cbb5e96da32904; oc_sessionPassphrase=LBNdKxRzA0iqoULIruNxDDh2BK3O%2BrCIU8aUmiUcOFvy5Xw1YfjwQNlmBW2IkGwJYtxXh9%2BwDN6vYuGNX07tXzkBtjQJUWTGdzf8AIOUIVxVx5DfyWAQZ7nmYmQv6XSE; nc_sameSiteCookielax=true; nc_sameSiteCookiestrict=true", + "system": true + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n \"informatieobject\": \"http://localhost:8080/index.php/apps/procest/api/zgw/documenten/v1/enkelvoudiginformatieobjecten/56f155a0-752f-428e-b7d0-e3d88d539346\",\n \"zaak\": \"http://localhost:8080/index.php/apps/procest/api/zgw/zaken/v1/zaken/b648c5da-b590-4960-94a0-f0c5a3f9ed90\"\n}" + }, + "auth": { + "type": "jwt", + "jwt": [ + { + "type": "string", + "value": "{\r\n \"iss\": \"procest-admin\",\r\n \"client_id\": \"procest-admin\",\r\n \"iat\": \"1773145167\",\r\n \"user_id\": \"procest-admin\",\r\n \"user_representation\": \"\"\r\n}", + "key": "payload" + }, + { + "type": "string", + "value": "procest-admin-secret-key-for-testing", + "key": "secret" + }, + { + "type": "string", + "value": "HS256", + "key": "algorithm" + }, + { + "type": "boolean", + "value": false, + "key": "isSecretBase64Encoded" + }, + { + "type": "string", + "value": "header", + "key": "addTokenTo" + }, + { + "type": "string", + "value": "Bearer", + "key": "headerPrefix" + }, + { + "type": "string", + "value": "token", + "key": "queryParamKey" + }, + { + "type": "string", + "value": "{}", + "key": "header" + } + ] + } + }, + "response": { + "id": "9ece5a18-6339-4236-bc5e-4145d4186533", + "status": "Created", + "code": 201, + "header": [ + { + "key": "Date", + "value": "Tue, 10 Mar 2026 12:19:26 GMT" + }, + { + "key": "Server", + "value": "Apache/2.4.66 (Debian)" + }, + { + "key": "X-Content-Type-Options", + "value": "nosniff" + }, + { + "key": "X-Frame-Options", + "value": "SAMEORIGIN" + }, + { + "key": "X-Permitted-Cross-Domain-Policies", + "value": "none" + }, + { + "key": "X-Robots-Tag", + "value": "noindex, nofollow" + }, + { + "key": "Referrer-Policy", + "value": "no-referrer" + }, + { + "key": "X-Powered-By", + "value": "PHP/8.3.30" + }, + { + "key": "Content-Security-Policy", + "value": "default-src 'none';base-uri 'none';manifest-src 'self';frame-ancestors 'none'" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=5239a926ed7f6e8360cbb5e96da32904; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=5239a926ed7f6e8360cbb5e96da32904; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=5239a926ed7f6e8360cbb5e96da32904; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=5239a926ed7f6e8360cbb5e96da32904; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=5239a926ed7f6e8360cbb5e96da32904; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=a3d715e34ea1546f9a33f078a45ed720; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=a3d715e34ea1546f9a33f078a45ed720; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=a3d715e34ea1546f9a33f078a45ed720; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=a3d715e34ea1546f9a33f078a45ed720; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=a3d715e34ea1546f9a33f078a45ed720; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "X-Request-Id", + "value": "dbmTYzQjHB8Rsc3C4rGf" + }, + { + "key": "Cache-Control", + "value": "no-cache, no-store, must-revalidate" + }, + { + "key": "Feature-Policy", + "value": "autoplay 'none';camera 'none';fullscreen 'none';geolocation 'none';microphone 'none';payment 'none'" + }, + { + "key": "X-User-Id", + "value": "admin" + }, + { + "key": "Content-Length", + "value": "591" + }, + { + "key": "Keep-Alive", + "value": "timeout=5, max=90" + }, + { + "key": "Connection", + "value": "Keep-Alive" + }, + { + "key": "Content-Type", + "value": "application/json; charset=utf-8" + } + ], + "stream": { + "type": "Buffer", + "data": [ + 123, + 34, + 117, + 114, + 108, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 122, + 97, + 107, + 101, + 110, + 92, + 47, + 118, + 49, + 92, + 47, + 122, + 97, + 97, + 107, + 105, + 110, + 102, + 111, + 114, + 109, + 97, + 116, + 105, + 101, + 111, + 98, + 106, + 101, + 99, + 116, + 101, + 110, + 92, + 47, + 55, + 102, + 52, + 57, + 102, + 51, + 50, + 48, + 45, + 99, + 55, + 102, + 102, + 45, + 52, + 54, + 54, + 50, + 45, + 98, + 54, + 51, + 100, + 45, + 53, + 53, + 98, + 50, + 48, + 49, + 102, + 55, + 49, + 98, + 57, + 53, + 34, + 44, + 34, + 117, + 117, + 105, + 100, + 34, + 58, + 34, + 55, + 102, + 52, + 57, + 102, + 51, + 50, + 48, + 45, + 99, + 55, + 102, + 102, + 45, + 52, + 54, + 54, + 50, + 45, + 98, + 54, + 51, + 100, + 45, + 53, + 53, + 98, + 50, + 48, + 49, + 102, + 55, + 49, + 98, + 57, + 53, + 34, + 44, + 34, + 122, + 97, + 97, + 107, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 122, + 97, + 107, + 101, + 110, + 92, + 47, + 118, + 49, + 92, + 47, + 122, + 97, + 107, + 101, + 110, + 92, + 47, + 98, + 54, + 52, + 56, + 99, + 53, + 100, + 97, + 45, + 98, + 53, + 57, + 48, + 45, + 52, + 57, + 54, + 48, + 45, + 57, + 52, + 97, + 48, + 45, + 102, + 48, + 99, + 53, + 97, + 51, + 102, + 57, + 101, + 100, + 57, + 48, + 34, + 44, + 34, + 105, + 110, + 102, + 111, + 114, + 109, + 97, + 116, + 105, + 101, + 111, + 98, + 106, + 101, + 99, + 116, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 100, + 111, + 99, + 117, + 109, + 101, + 110, + 116, + 101, + 110, + 92, + 47, + 118, + 49, + 92, + 47, + 101, + 110, + 107, + 101, + 108, + 118, + 111, + 117, + 100, + 105, + 103, + 105, + 110, + 102, + 111, + 114, + 109, + 97, + 116, + 105, + 101, + 111, + 98, + 106, + 101, + 99, + 116, + 101, + 110, + 92, + 47, + 53, + 54, + 102, + 49, + 53, + 53, + 97, + 48, + 45, + 55, + 53, + 50, + 102, + 45, + 52, + 50, + 56, + 101, + 45, + 98, + 55, + 100, + 48, + 45, + 101, + 51, + 100, + 56, + 56, + 100, + 53, + 51, + 57, + 51, + 52, + 54, + 34, + 44, + 34, + 116, + 105, + 116, + 101, + 108, + 34, + 58, + 34, + 34, + 44, + 34, + 98, + 101, + 115, + 99, + 104, + 114, + 105, + 106, + 118, + 105, + 110, + 103, + 34, + 58, + 34, + 34, + 44, + 34, + 114, + 101, + 103, + 105, + 115, + 116, + 114, + 97, + 116, + 105, + 101, + 100, + 97, + 116, + 117, + 109, + 34, + 58, + 34, + 50, + 48, + 50, + 54, + 45, + 48, + 51, + 45, + 49, + 48, + 34, + 44, + 34, + 97, + 97, + 114, + 100, + 82, + 101, + 108, + 97, + 116, + 105, + 101, + 87, + 101, + 101, + 114, + 103, + 97, + 118, + 101, + 34, + 58, + 34, + 72, + 111, + 111, + 114, + 116, + 32, + 98, + 105, + 106, + 44, + 32, + 111, + 109, + 103, + 101, + 107, + 101, + 101, + 114, + 100, + 58, + 32, + 107, + 101, + 110, + 116, + 34, + 125 + ] + }, + "cookie": [], + "responseTime": 371, + "responseSize": 591 + }, + "id": "215ff014-7201-4c94-8870-06716fb41767", + "assertions": [ + { + "assertion": "ZaakInformatieObject aanmaken bij gesloten Zaak met scope zaken.geforceerd-bijwerken geeft 201", + "skipped": false + } + ] + }, + { + "cursor": { + "ref": "ed9acc95-a60c-4cfb-ae79-f92e74abd59e", + "length": 313, + "cycles": 1, + "position": 108, + "iteration": 0, + "httpRequestId": "57472798-5954-4f06-ab41-81c8c0e460ce" + }, + "item": { + "id": "3f4bb806-e356-4e47-b0b7-5de805cbc2c1", + "name": "(zrc-007n) ZaakInformatieObject bijwerken bij gesloten Zaak is toegestaan scope zaken.geforceerd-bijwerken", + "request": { + "url": { + "host": [ + "{{created_zaakinformatieobject_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "PUT", + "body": { + "mode": "raw", + "raw": "{\n \"informatieobject\": \"{{informatieobject_url}}\",\n \"zaak\": \"{{created_zaak_url}}\",\n \"titel\": \"aangepast\"\n}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "6e714101-981f-48da-9244-e3d6d4ed5da3", + "type": "text/javascript", + "exec": [ + "pm.test(\"ZaakInformatieObject bijwerken bij gesloten Zaak met scope zaken.geforceerd-bijwerken geeft 200\", function() {", + " pm.response.to.have.status(200);", + " pm.expect(pm.response.json().titel).to.be.equal(\"aangepast\");", + "});" + ], + "_lastExecutionId": "775fa45c-8dfe-4d32-a315-712c1813ddac" + } + }, + { + "listen": "prerequest", + "script": { + "id": "ab5a76b0-849e-4d51-ba53-954fea7503d0", + "type": "text/javascript", + "exec": [ + "" + ], + "_lastExecutionId": "4b238e01-369a-475f-a38c-4cc71fe47326" + } + } + ] + }, + "request": { + "url": { + "protocol": "http", + "port": "8080", + "path": [ + "index.php", + "apps", + "procest", + "api", + "zgw", + "zaken", + "v1", + "zaakinformatieobjecten", + "7f49f320-c7ff-4662-b63d-55b201f71b95" + ], + "host": [ + "localhost" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Authorization", + "value": "Bearer eyJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJwcm9jZXN0LWFkbWluIiwiY2xpZW50X2lkIjoicHJvY2VzdC1hZG1pbiIsImlhdCI6IjE3NzMxNDUxNjciLCJ1c2VyX2lkIjoicHJvY2VzdC1hZG1pbiIsInVzZXJfcmVwcmVzZW50YXRpb24iOiIifQ.oo5u9fDUqNJRv0zkz5YsWZGbMfX-GKRxizZPhYBM7bk", + "system": true + }, + { + "key": "User-Agent", + "value": "PostmanRuntime/7.39.1", + "system": true + }, + { + "key": "Accept", + "value": "*/*", + "system": true + }, + { + "key": "Cache-Control", + "value": "no-cache", + "system": true + }, + { + "key": "Postman-Token", + "value": "ecd66ee3-c309-423a-a11c-a333ccc92327", + "system": true + }, + { + "key": "Host", + "value": "localhost:8080", + "system": true + }, + { + "key": "Accept-Encoding", + "value": "gzip, deflate, br", + "system": true + }, + { + "key": "Connection", + "value": "keep-alive", + "system": true + }, + { + "key": "Content-Length", + "value": "309", + "system": true + }, + { + "key": "Cookie", + "value": "ocvp3112b4wg=a3d715e34ea1546f9a33f078a45ed720; oc_sessionPassphrase=LBNdKxRzA0iqoULIruNxDDh2BK3O%2BrCIU8aUmiUcOFvy5Xw1YfjwQNlmBW2IkGwJYtxXh9%2BwDN6vYuGNX07tXzkBtjQJUWTGdzf8AIOUIVxVx5DfyWAQZ7nmYmQv6XSE; nc_sameSiteCookielax=true; nc_sameSiteCookiestrict=true", + "system": true + } + ], + "method": "PUT", + "body": { + "mode": "raw", + "raw": "{\n \"informatieobject\": \"http://localhost:8080/index.php/apps/procest/api/zgw/documenten/v1/enkelvoudiginformatieobjecten/56f155a0-752f-428e-b7d0-e3d88d539346\",\n \"zaak\": \"http://localhost:8080/index.php/apps/procest/api/zgw/zaken/v1/zaken/b648c5da-b590-4960-94a0-f0c5a3f9ed90\",\n \"titel\": \"aangepast\"\n}" + }, + "auth": { + "type": "jwt", + "jwt": [ + { + "type": "string", + "value": "{\r\n \"iss\": \"procest-admin\",\r\n \"client_id\": \"procest-admin\",\r\n \"iat\": \"1773145167\",\r\n \"user_id\": \"procest-admin\",\r\n \"user_representation\": \"\"\r\n}", + "key": "payload" + }, + { + "type": "string", + "value": "procest-admin-secret-key-for-testing", + "key": "secret" + }, + { + "type": "string", + "value": "HS256", + "key": "algorithm" + }, + { + "type": "boolean", + "value": false, + "key": "isSecretBase64Encoded" + }, + { + "type": "string", + "value": "header", + "key": "addTokenTo" + }, + { + "type": "string", + "value": "Bearer", + "key": "headerPrefix" + }, + { + "type": "string", + "value": "token", + "key": "queryParamKey" + }, + { + "type": "string", + "value": "{}", + "key": "header" + } + ] + } + }, + "response": { + "id": "36eb1883-581e-49dd-aa1e-b961f6cc17e7", + "status": "OK", + "code": 200, + "header": [ + { + "key": "Date", + "value": "Tue, 10 Mar 2026 12:19:27 GMT" + }, + { + "key": "Server", + "value": "Apache/2.4.66 (Debian)" + }, + { + "key": "X-Content-Type-Options", + "value": "nosniff" + }, + { + "key": "X-Frame-Options", + "value": "SAMEORIGIN" + }, + { + "key": "X-Permitted-Cross-Domain-Policies", + "value": "none" + }, + { + "key": "X-Robots-Tag", + "value": "noindex, nofollow" + }, + { + "key": "Referrer-Policy", + "value": "no-referrer" + }, + { + "key": "X-Powered-By", + "value": "PHP/8.3.30" + }, + { + "key": "Content-Security-Policy", + "value": "default-src 'none';base-uri 'none';manifest-src 'self';frame-ancestors 'none'" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=a3d715e34ea1546f9a33f078a45ed720; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=a3d715e34ea1546f9a33f078a45ed720; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=a3d715e34ea1546f9a33f078a45ed720; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=a3d715e34ea1546f9a33f078a45ed720; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=a3d715e34ea1546f9a33f078a45ed720; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=5d7f2fc11d9bbf812384c77e13a95832; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=5d7f2fc11d9bbf812384c77e13a95832; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=5d7f2fc11d9bbf812384c77e13a95832; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=5d7f2fc11d9bbf812384c77e13a95832; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=5d7f2fc11d9bbf812384c77e13a95832; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "X-Request-Id", + "value": "cX0DBje2FhdCTLEutx3R" + }, + { + "key": "Cache-Control", + "value": "no-cache, no-store, must-revalidate" + }, + { + "key": "Feature-Policy", + "value": "autoplay 'none';camera 'none';fullscreen 'none';geolocation 'none';microphone 'none';payment 'none'" + }, + { + "key": "X-User-Id", + "value": "admin" + }, + { + "key": "Content-Encoding", + "value": "gzip" + }, + { + "key": "Content-Length", + "value": "319" + }, + { + "key": "Keep-Alive", + "value": "timeout=5, max=89" + }, + { + "key": "Connection", + "value": "Keep-Alive" + }, + { + "key": "Content-Type", + "value": "application/json; charset=utf-8" + } + ], + "stream": { + "type": "Buffer", + "data": [ + 123, + 34, + 117, + 114, + 108, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 122, + 97, + 107, + 101, + 110, + 92, + 47, + 118, + 49, + 92, + 47, + 122, + 97, + 97, + 107, + 105, + 110, + 102, + 111, + 114, + 109, + 97, + 116, + 105, + 101, + 111, + 98, + 106, + 101, + 99, + 116, + 101, + 110, + 92, + 47, + 55, + 102, + 52, + 57, + 102, + 51, + 50, + 48, + 45, + 99, + 55, + 102, + 102, + 45, + 52, + 54, + 54, + 50, + 45, + 98, + 54, + 51, + 100, + 45, + 53, + 53, + 98, + 50, + 48, + 49, + 102, + 55, + 49, + 98, + 57, + 53, + 34, + 44, + 34, + 117, + 117, + 105, + 100, + 34, + 58, + 34, + 55, + 102, + 52, + 57, + 102, + 51, + 50, + 48, + 45, + 99, + 55, + 102, + 102, + 45, + 52, + 54, + 54, + 50, + 45, + 98, + 54, + 51, + 100, + 45, + 53, + 53, + 98, + 50, + 48, + 49, + 102, + 55, + 49, + 98, + 57, + 53, + 34, + 44, + 34, + 122, + 97, + 97, + 107, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 122, + 97, + 107, + 101, + 110, + 92, + 47, + 118, + 49, + 92, + 47, + 122, + 97, + 107, + 101, + 110, + 92, + 47, + 98, + 54, + 52, + 56, + 99, + 53, + 100, + 97, + 45, + 98, + 53, + 57, + 48, + 45, + 52, + 57, + 54, + 48, + 45, + 57, + 52, + 97, + 48, + 45, + 102, + 48, + 99, + 53, + 97, + 51, + 102, + 57, + 101, + 100, + 57, + 48, + 34, + 44, + 34, + 105, + 110, + 102, + 111, + 114, + 109, + 97, + 116, + 105, + 101, + 111, + 98, + 106, + 101, + 99, + 116, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 100, + 111, + 99, + 117, + 109, + 101, + 110, + 116, + 101, + 110, + 92, + 47, + 118, + 49, + 92, + 47, + 101, + 110, + 107, + 101, + 108, + 118, + 111, + 117, + 100, + 105, + 103, + 105, + 110, + 102, + 111, + 114, + 109, + 97, + 116, + 105, + 101, + 111, + 98, + 106, + 101, + 99, + 116, + 101, + 110, + 92, + 47, + 53, + 54, + 102, + 49, + 53, + 53, + 97, + 48, + 45, + 55, + 53, + 50, + 102, + 45, + 52, + 50, + 56, + 101, + 45, + 98, + 55, + 100, + 48, + 45, + 101, + 51, + 100, + 56, + 56, + 100, + 53, + 51, + 57, + 51, + 52, + 54, + 34, + 44, + 34, + 116, + 105, + 116, + 101, + 108, + 34, + 58, + 34, + 97, + 97, + 110, + 103, + 101, + 112, + 97, + 115, + 116, + 34, + 44, + 34, + 98, + 101, + 115, + 99, + 104, + 114, + 105, + 106, + 118, + 105, + 110, + 103, + 34, + 58, + 34, + 34, + 44, + 34, + 114, + 101, + 103, + 105, + 115, + 116, + 114, + 97, + 116, + 105, + 101, + 100, + 97, + 116, + 117, + 109, + 34, + 58, + 34, + 50, + 48, + 50, + 54, + 45, + 48, + 51, + 45, + 49, + 48, + 34, + 44, + 34, + 97, + 97, + 114, + 100, + 82, + 101, + 108, + 97, + 116, + 105, + 101, + 87, + 101, + 101, + 114, + 103, + 97, + 118, + 101, + 34, + 58, + 34, + 72, + 111, + 111, + 114, + 116, + 32, + 98, + 105, + 106, + 44, + 32, + 111, + 109, + 103, + 101, + 107, + 101, + 101, + 114, + 100, + 58, + 32, + 107, + 101, + 110, + 116, + 34, + 125 + ] + }, + "cookie": [], + "responseTime": 180, + "responseSize": 600 + }, + "id": "3f4bb806-e356-4e47-b0b7-5de805cbc2c1", + "assertions": [ + { + "assertion": "ZaakInformatieObject bijwerken bij gesloten Zaak met scope zaken.geforceerd-bijwerken geeft 200", + "skipped": false + } + ] + }, + { + "cursor": { + "ref": "067967c1-870a-424b-9c41-e8ec73a52b23", + "length": 313, + "cycles": 1, + "position": 109, + "iteration": 0, + "httpRequestId": "6585224a-6ed3-4f02-901d-de25a035c001" + }, + "item": { + "id": "8129ef2a-d571-4c67-8ec7-41eadfb921be", + "name": "(zrc-007n) ZaakInformatieObject deels bijwerken bij gesloten Zaak is toegestaan met scope zaken.geforceerd-bijwerken", + "request": { + "url": { + "host": [ + "{{created_zaakinformatieobject_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "PATCH", + "body": { + "mode": "raw", + "raw": "{\n \"informatieobject\": \"{{informatieobject_url}}\",\n \"zaak\": \"{{created_zaak_url}}\",\n \"titel\": \"en nog een keer\"\n}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "5a79a7a5-517d-4c16-8e33-2b3208640f3d", + "type": "text/javascript", + "exec": [ + "pm.test(\"ZaakInformatieObject deels bijwerken bij gesloten Zaak met scope zaken.geforceerd-bijwerken geeft 200\", function() {", + " pm.response.to.have.status(200);", + " pm.expect(pm.response.json().titel).to.be.equal(\"en nog een keer\");", + "});" + ], + "_lastExecutionId": "a9269921-ba3d-4cad-b711-a45be7f048e2" + } + }, + { + "listen": "prerequest", + "script": { + "id": "d5029c96-9ce1-4aa1-85b0-bf9c469ed3ef", + "type": "text/javascript", + "exec": [ + "" + ], + "_lastExecutionId": "031f3846-0914-498d-bf62-3a1fd6ea281f" + } + } + ] + }, + "request": { + "url": { + "protocol": "http", + "port": "8080", + "path": [ + "index.php", + "apps", + "procest", + "api", + "zgw", + "zaken", + "v1", + "zaakinformatieobjecten", + "7f49f320-c7ff-4662-b63d-55b201f71b95" + ], + "host": [ + "localhost" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Authorization", + "value": "Bearer eyJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJwcm9jZXN0LWFkbWluIiwiY2xpZW50X2lkIjoicHJvY2VzdC1hZG1pbiIsImlhdCI6IjE3NzMxNDUxNjciLCJ1c2VyX2lkIjoicHJvY2VzdC1hZG1pbiIsInVzZXJfcmVwcmVzZW50YXRpb24iOiIifQ.oo5u9fDUqNJRv0zkz5YsWZGbMfX-GKRxizZPhYBM7bk", + "system": true + }, + { + "key": "User-Agent", + "value": "PostmanRuntime/7.39.1", + "system": true + }, + { + "key": "Accept", + "value": "*/*", + "system": true + }, + { + "key": "Cache-Control", + "value": "no-cache", + "system": true + }, + { + "key": "Postman-Token", + "value": "10c470fa-9318-4ae7-a096-318a8ff9d5a0", + "system": true + }, + { + "key": "Host", + "value": "localhost:8080", + "system": true + }, + { + "key": "Accept-Encoding", + "value": "gzip, deflate, br", + "system": true + }, + { + "key": "Connection", + "value": "keep-alive", + "system": true + }, + { + "key": "Content-Length", + "value": "315", + "system": true + }, + { + "key": "Cookie", + "value": "ocvp3112b4wg=5d7f2fc11d9bbf812384c77e13a95832; oc_sessionPassphrase=LBNdKxRzA0iqoULIruNxDDh2BK3O%2BrCIU8aUmiUcOFvy5Xw1YfjwQNlmBW2IkGwJYtxXh9%2BwDN6vYuGNX07tXzkBtjQJUWTGdzf8AIOUIVxVx5DfyWAQZ7nmYmQv6XSE; nc_sameSiteCookielax=true; nc_sameSiteCookiestrict=true", + "system": true + } + ], + "method": "PATCH", + "body": { + "mode": "raw", + "raw": "{\n \"informatieobject\": \"http://localhost:8080/index.php/apps/procest/api/zgw/documenten/v1/enkelvoudiginformatieobjecten/56f155a0-752f-428e-b7d0-e3d88d539346\",\n \"zaak\": \"http://localhost:8080/index.php/apps/procest/api/zgw/zaken/v1/zaken/b648c5da-b590-4960-94a0-f0c5a3f9ed90\",\n \"titel\": \"en nog een keer\"\n}" + }, + "auth": { + "type": "jwt", + "jwt": [ + { + "type": "string", + "value": "{\r\n \"iss\": \"procest-admin\",\r\n \"client_id\": \"procest-admin\",\r\n \"iat\": \"1773145167\",\r\n \"user_id\": \"procest-admin\",\r\n \"user_representation\": \"\"\r\n}", + "key": "payload" + }, + { + "type": "string", + "value": "procest-admin-secret-key-for-testing", + "key": "secret" + }, + { + "type": "string", + "value": "HS256", + "key": "algorithm" + }, + { + "type": "boolean", + "value": false, + "key": "isSecretBase64Encoded" + }, + { + "type": "string", + "value": "header", + "key": "addTokenTo" + }, + { + "type": "string", + "value": "Bearer", + "key": "headerPrefix" + }, + { + "type": "string", + "value": "token", + "key": "queryParamKey" + }, + { + "type": "string", + "value": "{}", + "key": "header" + } + ] + } + }, + "response": { + "id": "272159de-64dd-4d28-99cf-2c16e517f110", + "status": "OK", + "code": 200, + "header": [ + { + "key": "Date", + "value": "Tue, 10 Mar 2026 12:19:27 GMT" + }, + { + "key": "Server", + "value": "Apache/2.4.66 (Debian)" + }, + { + "key": "X-Content-Type-Options", + "value": "nosniff" + }, + { + "key": "X-Frame-Options", + "value": "SAMEORIGIN" + }, + { + "key": "X-Permitted-Cross-Domain-Policies", + "value": "none" + }, + { + "key": "X-Robots-Tag", + "value": "noindex, nofollow" + }, + { + "key": "Referrer-Policy", + "value": "no-referrer" + }, + { + "key": "X-Powered-By", + "value": "PHP/8.3.30" + }, + { + "key": "Content-Security-Policy", + "value": "default-src 'none';base-uri 'none';manifest-src 'self';frame-ancestors 'none'" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=5d7f2fc11d9bbf812384c77e13a95832; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=5d7f2fc11d9bbf812384c77e13a95832; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=5d7f2fc11d9bbf812384c77e13a95832; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=5d7f2fc11d9bbf812384c77e13a95832; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=5d7f2fc11d9bbf812384c77e13a95832; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=4a5ea1ff8aa0e9242479b92792477153; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=4a5ea1ff8aa0e9242479b92792477153; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=4a5ea1ff8aa0e9242479b92792477153; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=4a5ea1ff8aa0e9242479b92792477153; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=4a5ea1ff8aa0e9242479b92792477153; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "X-Request-Id", + "value": "v8jiyrWiwsJWi2RuwLKv" + }, + { + "key": "Cache-Control", + "value": "no-cache, no-store, must-revalidate" + }, + { + "key": "Feature-Policy", + "value": "autoplay 'none';camera 'none';fullscreen 'none';geolocation 'none';microphone 'none';payment 'none'" + }, + { + "key": "X-User-Id", + "value": "admin" + }, + { + "key": "Content-Encoding", + "value": "gzip" + }, + { + "key": "Content-Length", + "value": "321" + }, + { + "key": "Keep-Alive", + "value": "timeout=5, max=88" + }, + { + "key": "Connection", + "value": "Keep-Alive" + }, + { + "key": "Content-Type", + "value": "application/json; charset=utf-8" + } + ], + "stream": { + "type": "Buffer", + "data": [ + 123, + 34, + 117, + 114, + 108, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 122, + 97, + 107, + 101, + 110, + 92, + 47, + 118, + 49, + 92, + 47, + 122, + 97, + 97, + 107, + 105, + 110, + 102, + 111, + 114, + 109, + 97, + 116, + 105, + 101, + 111, + 98, + 106, + 101, + 99, + 116, + 101, + 110, + 92, + 47, + 55, + 102, + 52, + 57, + 102, + 51, + 50, + 48, + 45, + 99, + 55, + 102, + 102, + 45, + 52, + 54, + 54, + 50, + 45, + 98, + 54, + 51, + 100, + 45, + 53, + 53, + 98, + 50, + 48, + 49, + 102, + 55, + 49, + 98, + 57, + 53, + 34, + 44, + 34, + 117, + 117, + 105, + 100, + 34, + 58, + 34, + 55, + 102, + 52, + 57, + 102, + 51, + 50, + 48, + 45, + 99, + 55, + 102, + 102, + 45, + 52, + 54, + 54, + 50, + 45, + 98, + 54, + 51, + 100, + 45, + 53, + 53, + 98, + 50, + 48, + 49, + 102, + 55, + 49, + 98, + 57, + 53, + 34, + 44, + 34, + 122, + 97, + 97, + 107, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 122, + 97, + 107, + 101, + 110, + 92, + 47, + 118, + 49, + 92, + 47, + 122, + 97, + 107, + 101, + 110, + 92, + 47, + 98, + 54, + 52, + 56, + 99, + 53, + 100, + 97, + 45, + 98, + 53, + 57, + 48, + 45, + 52, + 57, + 54, + 48, + 45, + 57, + 52, + 97, + 48, + 45, + 102, + 48, + 99, + 53, + 97, + 51, + 102, + 57, + 101, + 100, + 57, + 48, + 34, + 44, + 34, + 105, + 110, + 102, + 111, + 114, + 109, + 97, + 116, + 105, + 101, + 111, + 98, + 106, + 101, + 99, + 116, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 100, + 111, + 99, + 117, + 109, + 101, + 110, + 116, + 101, + 110, + 92, + 47, + 118, + 49, + 92, + 47, + 101, + 110, + 107, + 101, + 108, + 118, + 111, + 117, + 100, + 105, + 103, + 105, + 110, + 102, + 111, + 114, + 109, + 97, + 116, + 105, + 101, + 111, + 98, + 106, + 101, + 99, + 116, + 101, + 110, + 92, + 47, + 53, + 54, + 102, + 49, + 53, + 53, + 97, + 48, + 45, + 55, + 53, + 50, + 102, + 45, + 52, + 50, + 56, + 101, + 45, + 98, + 55, + 100, + 48, + 45, + 101, + 51, + 100, + 56, + 56, + 100, + 53, + 51, + 57, + 51, + 52, + 54, + 34, + 44, + 34, + 116, + 105, + 116, + 101, + 108, + 34, + 58, + 34, + 101, + 110, + 32, + 110, + 111, + 103, + 32, + 101, + 101, + 110, + 32, + 107, + 101, + 101, + 114, + 34, + 44, + 34, + 98, + 101, + 115, + 99, + 104, + 114, + 105, + 106, + 118, + 105, + 110, + 103, + 34, + 58, + 34, + 34, + 44, + 34, + 114, + 101, + 103, + 105, + 115, + 116, + 114, + 97, + 116, + 105, + 101, + 100, + 97, + 116, + 117, + 109, + 34, + 58, + 34, + 50, + 48, + 50, + 54, + 45, + 48, + 51, + 45, + 49, + 48, + 34, + 44, + 34, + 97, + 97, + 114, + 100, + 82, + 101, + 108, + 97, + 116, + 105, + 101, + 87, + 101, + 101, + 114, + 103, + 97, + 118, + 101, + 34, + 58, + 34, + 72, + 111, + 111, + 114, + 116, + 32, + 98, + 105, + 106, + 44, + 32, + 111, + 109, + 103, + 101, + 107, + 101, + 101, + 114, + 100, + 58, + 32, + 107, + 101, + 110, + 116, + 34, + 125 + ] + }, + "cookie": [], + "responseTime": 181, + "responseSize": 606 + }, + "id": "8129ef2a-d571-4c67-8ec7-41eadfb921be", + "assertions": [ + { + "assertion": "ZaakInformatieObject deels bijwerken bij gesloten Zaak met scope zaken.geforceerd-bijwerken geeft 200", + "skipped": false + } + ] + }, + { + "cursor": { + "ref": "84a5cb00-9056-497e-a611-92f4c55e5dc3", + "length": 313, + "cycles": 1, + "position": 110, + "iteration": 0, + "httpRequestId": "5372aba6-1932-4895-ab42-4ead9b7858a4" + }, + "item": { + "id": "f65bf9ad-0761-4636-ac28-695932e8950c", + "name": "(zrc-007o) ZaakObject toevoegen bij gesloten Zaak is toegestaan met scope zaken.geforceerd-bijwerken", + "request": { + "url": { + "path": [ + "zaakobjecten" + ], + "host": [ + "{{zrc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n\t\"zaak\": \"{{created_zaak_url}}\",\n\t\"objectType\": \"pand\",\n\t\"objectIdentificatie\": {\n\t\t\"identificatie\": \"test\"\n\t}\n}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "2b439fd3-4713-450b-9619-5da89f498dab", + "type": "text/javascript", + "exec": [ + "pm.test(\"ZaakObject aanmaken bij gesloten Zaak met scope zaken.geforceerd-bijwerken geeft 201\", function() {", + " pm.response.to.have.status(201);", + "});" + ], + "_lastExecutionId": "b205e114-4621-477e-b8ca-fe745aa9b836" + } + }, + { + "listen": "prerequest", + "script": { + "id": "f02d39fa-b344-4043-b8ea-96642f2bd124", + "type": "text/javascript", + "exec": [ + "" + ], + "_lastExecutionId": "7df46f16-cfcf-4a4e-8bfc-2e7f79353c76" + } + } + ] + }, + "request": { + "url": { + "protocol": "http", + "port": "8080", + "path": [ + "index.php", + "apps", + "procest", + "api", + "zgw", + "zaken", + "v1", + "zaakobjecten" + ], + "host": [ + "localhost" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Authorization", + "value": "Bearer eyJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJwcm9jZXN0LWFkbWluIiwiY2xpZW50X2lkIjoicHJvY2VzdC1hZG1pbiIsImlhdCI6IjE3NzMxNDUxNjgiLCJ1c2VyX2lkIjoicHJvY2VzdC1hZG1pbiIsInVzZXJfcmVwcmVzZW50YXRpb24iOiIifQ.8hVPm-7xNdPynW5K1t-tDHwANHm0EOm-WqUwb50g1Lo", + "system": true + }, + { + "key": "User-Agent", + "value": "PostmanRuntime/7.39.1", + "system": true + }, + { + "key": "Accept", + "value": "*/*", + "system": true + }, + { + "key": "Cache-Control", + "value": "no-cache", + "system": true + }, + { + "key": "Postman-Token", + "value": "4df0a604-51d5-4f4e-99e9-175e9f442f64", + "system": true + }, + { + "key": "Host", + "value": "localhost:8080", + "system": true + }, + { + "key": "Accept-Encoding", + "value": "gzip, deflate, br", + "system": true + }, + { + "key": "Connection", + "value": "keep-alive", + "system": true + }, + { + "key": "Content-Length", + "value": "198", + "system": true + }, + { + "key": "Cookie", + "value": "ocvp3112b4wg=4a5ea1ff8aa0e9242479b92792477153; oc_sessionPassphrase=LBNdKxRzA0iqoULIruNxDDh2BK3O%2BrCIU8aUmiUcOFvy5Xw1YfjwQNlmBW2IkGwJYtxXh9%2BwDN6vYuGNX07tXzkBtjQJUWTGdzf8AIOUIVxVx5DfyWAQZ7nmYmQv6XSE; nc_sameSiteCookielax=true; nc_sameSiteCookiestrict=true", + "system": true + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n\t\"zaak\": \"http://localhost:8080/index.php/apps/procest/api/zgw/zaken/v1/zaken/b648c5da-b590-4960-94a0-f0c5a3f9ed90\",\n\t\"objectType\": \"pand\",\n\t\"objectIdentificatie\": {\n\t\t\"identificatie\": \"test\"\n\t}\n}" + }, + "auth": { + "type": "jwt", + "jwt": [ + { + "type": "string", + "value": "{\r\n \"iss\": \"procest-admin\",\r\n \"client_id\": \"procest-admin\",\r\n \"iat\": \"1773145168\",\r\n \"user_id\": \"procest-admin\",\r\n \"user_representation\": \"\"\r\n}", + "key": "payload" + }, + { + "type": "string", + "value": "procest-admin-secret-key-for-testing", + "key": "secret" + }, + { + "type": "string", + "value": "HS256", + "key": "algorithm" + }, + { + "type": "boolean", + "value": false, + "key": "isSecretBase64Encoded" + }, + { + "type": "string", + "value": "header", + "key": "addTokenTo" + }, + { + "type": "string", + "value": "Bearer", + "key": "headerPrefix" + }, + { + "type": "string", + "value": "token", + "key": "queryParamKey" + }, + { + "type": "string", + "value": "{}", + "key": "header" + } + ] + } + }, + "response": { + "id": "40d0a443-5451-474b-9021-21363b25329e", + "status": "Created", + "code": 201, + "header": [ + { + "key": "Date", + "value": "Tue, 10 Mar 2026 12:19:27 GMT" + }, + { + "key": "Server", + "value": "Apache/2.4.66 (Debian)" + }, + { + "key": "X-Content-Type-Options", + "value": "nosniff" + }, + { + "key": "X-Frame-Options", + "value": "SAMEORIGIN" + }, + { + "key": "X-Permitted-Cross-Domain-Policies", + "value": "none" + }, + { + "key": "X-Robots-Tag", + "value": "noindex, nofollow" + }, + { + "key": "Referrer-Policy", + "value": "no-referrer" + }, + { + "key": "X-Powered-By", + "value": "PHP/8.3.30" + }, + { + "key": "Content-Security-Policy", + "value": "default-src 'none';base-uri 'none';manifest-src 'self';frame-ancestors 'none'" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=4a5ea1ff8aa0e9242479b92792477153; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=4a5ea1ff8aa0e9242479b92792477153; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=4a5ea1ff8aa0e9242479b92792477153; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=4a5ea1ff8aa0e9242479b92792477153; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=4a5ea1ff8aa0e9242479b92792477153; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=5633bcac5e0662ec193cf25ef4ca1cee; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=5633bcac5e0662ec193cf25ef4ca1cee; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=5633bcac5e0662ec193cf25ef4ca1cee; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=5633bcac5e0662ec193cf25ef4ca1cee; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=5633bcac5e0662ec193cf25ef4ca1cee; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "X-Request-Id", + "value": "RkccNNQhbx2FJKRnb4Qx" + }, + { + "key": "Cache-Control", + "value": "no-cache, no-store, must-revalidate" + }, + { + "key": "Feature-Policy", + "value": "autoplay 'none';camera 'none';fullscreen 'none';geolocation 'none';microphone 'none';payment 'none'" + }, + { + "key": "X-User-Id", + "value": "admin" + }, + { + "key": "Content-Length", + "value": "387" + }, + { + "key": "Keep-Alive", + "value": "timeout=5, max=87" + }, + { + "key": "Connection", + "value": "Keep-Alive" + }, + { + "key": "Content-Type", + "value": "application/json; charset=utf-8" + } + ], + "stream": { + "type": "Buffer", + "data": [ + 123, + 34, + 117, + 114, + 108, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 122, + 97, + 107, + 101, + 110, + 92, + 47, + 118, + 49, + 92, + 47, + 122, + 97, + 97, + 107, + 111, + 98, + 106, + 101, + 99, + 116, + 101, + 110, + 92, + 47, + 56, + 101, + 52, + 99, + 52, + 49, + 52, + 98, + 45, + 53, + 102, + 57, + 48, + 45, + 52, + 55, + 99, + 57, + 45, + 56, + 57, + 50, + 48, + 45, + 98, + 54, + 97, + 51, + 101, + 101, + 55, + 50, + 54, + 101, + 98, + 102, + 34, + 44, + 34, + 117, + 117, + 105, + 100, + 34, + 58, + 34, + 56, + 101, + 52, + 99, + 52, + 49, + 52, + 98, + 45, + 53, + 102, + 57, + 48, + 45, + 52, + 55, + 99, + 57, + 45, + 56, + 57, + 50, + 48, + 45, + 98, + 54, + 97, + 51, + 101, + 101, + 55, + 50, + 54, + 101, + 98, + 102, + 34, + 44, + 34, + 122, + 97, + 97, + 107, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 122, + 97, + 107, + 101, + 110, + 92, + 47, + 118, + 49, + 92, + 47, + 122, + 97, + 107, + 101, + 110, + 92, + 47, + 98, + 54, + 52, + 56, + 99, + 53, + 100, + 97, + 45, + 98, + 53, + 57, + 48, + 45, + 52, + 57, + 54, + 48, + 45, + 57, + 52, + 97, + 48, + 45, + 102, + 48, + 99, + 53, + 97, + 51, + 102, + 57, + 101, + 100, + 57, + 48, + 34, + 44, + 34, + 111, + 98, + 106, + 101, + 99, + 116, + 34, + 58, + 34, + 34, + 44, + 34, + 111, + 98, + 106, + 101, + 99, + 116, + 84, + 121, + 112, + 101, + 34, + 58, + 34, + 112, + 97, + 110, + 100, + 34, + 44, + 34, + 111, + 98, + 106, + 101, + 99, + 116, + 73, + 100, + 101, + 110, + 116, + 105, + 102, + 105, + 99, + 97, + 116, + 105, + 101, + 34, + 58, + 110, + 117, + 108, + 108, + 44, + 34, + 114, + 101, + 108, + 97, + 116, + 105, + 101, + 111, + 109, + 115, + 99, + 104, + 114, + 105, + 106, + 118, + 105, + 110, + 103, + 34, + 58, + 34, + 34, + 125 + ] + }, + "cookie": [], + "responseTime": 172, + "responseSize": 387 + }, + "id": "f65bf9ad-0761-4636-ac28-695932e8950c", + "assertions": [ + { + "assertion": "ZaakObject aanmaken bij gesloten Zaak met scope zaken.geforceerd-bijwerken geeft 201", + "skipped": false + } + ] + }, + { + "cursor": { + "ref": "4966f22b-5bb6-45f4-af19-505343fd745f", + "length": 313, + "cycles": 1, + "position": 111, + "iteration": 0, + "httpRequestId": "1d542676-f351-440d-95f6-f26f8bcbece9" + }, + "item": { + "id": "2cff76d3-6fa8-4ffc-9856-7f7c7d216b04", + "name": "(zrc-007p) ZaakEigenschap toevoegen bij gesloten Zaak is toegestaan met scope zaken.geforceerd-bijwerken", + "request": { + "url": { + "path": [ + "zaakeigenschappen" + ], + "host": [ + "{{created_zaak_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n\t\"zaak\": \"{{created_zaak_url}}\",\n\t\"eigenschap\": \"{{zaaktype_eigenschap}}\",\n\t\"waarde\": \"test\"\n}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "300535c3-065e-4a2c-aa89-02bdd1f954f3", + "type": "text/javascript", + "packages": {}, + "exec": [ + "pm.test(\"Zaakeigenschap aanmaken bij gesloten Zaak met scope zaken.geforceerd-bijwerken geeft 201\", function() {", + " pm.response.to.have.status(201);", + "});", + "", + "" + ], + "_lastExecutionId": "b69bf103-0afc-4dd9-ad05-8c24aea95e10" + } + }, + { + "listen": "prerequest", + "script": { + "id": "629db568-370a-48e8-b6f0-84f5a70d9e25", + "type": "text/javascript", + "packages": {}, + "exec": [ + "" + ], + "_lastExecutionId": "17c72de0-209c-4ecf-ba92-9b121e823349" + } + } + ] + }, + "request": { + "url": { + "protocol": "http", + "port": "8080", + "path": [ + "index.php", + "apps", + "procest", + "api", + "zgw", + "zaken", + "v1", + "zaken", + "b648c5da-b590-4960-94a0-f0c5a3f9ed90", + "zaakeigenschappen" + ], + "host": [ + "localhost" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Authorization", + "value": "Bearer eyJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJwcm9jZXN0LWFkbWluIiwiY2xpZW50X2lkIjoicHJvY2VzdC1hZG1pbiIsImlhdCI6IjE3NzMxNDUxNjgiLCJ1c2VyX2lkIjoicHJvY2VzdC1hZG1pbiIsInVzZXJfcmVwcmVzZW50YXRpb24iOiIifQ.8hVPm-7xNdPynW5K1t-tDHwANHm0EOm-WqUwb50g1Lo", + "system": true + }, + { + "key": "User-Agent", + "value": "PostmanRuntime/7.39.1", + "system": true + }, + { + "key": "Accept", + "value": "*/*", + "system": true + }, + { + "key": "Cache-Control", + "value": "no-cache", + "system": true + }, + { + "key": "Postman-Token", + "value": "a290e276-69ef-4968-858b-feca6137f301", + "system": true + }, + { + "key": "Host", + "value": "localhost:8080", + "system": true + }, + { + "key": "Accept-Encoding", + "value": "gzip, deflate, br", + "system": true + }, + { + "key": "Connection", + "value": "keep-alive", + "system": true + }, + { + "key": "Content-Length", + "value": "272", + "system": true + }, + { + "key": "Cookie", + "value": "ocvp3112b4wg=5633bcac5e0662ec193cf25ef4ca1cee; oc_sessionPassphrase=LBNdKxRzA0iqoULIruNxDDh2BK3O%2BrCIU8aUmiUcOFvy5Xw1YfjwQNlmBW2IkGwJYtxXh9%2BwDN6vYuGNX07tXzkBtjQJUWTGdzf8AIOUIVxVx5DfyWAQZ7nmYmQv6XSE; nc_sameSiteCookielax=true; nc_sameSiteCookiestrict=true", + "system": true + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n\t\"zaak\": \"http://localhost:8080/index.php/apps/procest/api/zgw/zaken/v1/zaken/b648c5da-b590-4960-94a0-f0c5a3f9ed90\",\n\t\"eigenschap\": \"http://localhost:8080/index.php/apps/procest/api/zgw/catalogi/v1/eigenschappen/c1598f9b-000f-4406-80e4-2d317530a4a9\",\n\t\"waarde\": \"test\"\n}" + }, + "auth": { + "type": "jwt", + "jwt": [ + { + "type": "string", + "value": "{\r\n \"iss\": \"procest-admin\",\r\n \"client_id\": \"procest-admin\",\r\n \"iat\": \"1773145168\",\r\n \"user_id\": \"procest-admin\",\r\n \"user_representation\": \"\"\r\n}", + "key": "payload" + }, + { + "type": "string", + "value": "procest-admin-secret-key-for-testing", + "key": "secret" + }, + { + "type": "string", + "value": "HS256", + "key": "algorithm" + }, + { + "type": "boolean", + "value": false, + "key": "isSecretBase64Encoded" + }, + { + "type": "string", + "value": "header", + "key": "addTokenTo" + }, + { + "type": "string", + "value": "Bearer", + "key": "headerPrefix" + }, + { + "type": "string", + "value": "token", + "key": "queryParamKey" + }, + { + "type": "string", + "value": "{}", + "key": "header" + } + ] + } + }, + "response": { + "id": "59acbb67-2be1-4d53-9699-54ef6a819ee3", + "status": "Created", + "code": 201, + "header": [ + { + "key": "Date", + "value": "Tue, 10 Mar 2026 12:19:27 GMT" + }, + { + "key": "Server", + "value": "Apache/2.4.66 (Debian)" + }, + { + "key": "X-Content-Type-Options", + "value": "nosniff" + }, + { + "key": "X-Frame-Options", + "value": "SAMEORIGIN" + }, + { + "key": "X-Permitted-Cross-Domain-Policies", + "value": "none" + }, + { + "key": "X-Robots-Tag", + "value": "noindex, nofollow" + }, + { + "key": "Referrer-Policy", + "value": "no-referrer" + }, + { + "key": "X-Powered-By", + "value": "PHP/8.3.30" + }, + { + "key": "Content-Security-Policy", + "value": "default-src 'none';base-uri 'none';manifest-src 'self';frame-ancestors 'none'" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=5633bcac5e0662ec193cf25ef4ca1cee; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=5633bcac5e0662ec193cf25ef4ca1cee; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=5633bcac5e0662ec193cf25ef4ca1cee; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=5633bcac5e0662ec193cf25ef4ca1cee; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=5633bcac5e0662ec193cf25ef4ca1cee; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=7b743c5de3da01ab8557d75acea4be56; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=7b743c5de3da01ab8557d75acea4be56; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=7b743c5de3da01ab8557d75acea4be56; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=7b743c5de3da01ab8557d75acea4be56; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=7b743c5de3da01ab8557d75acea4be56; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "X-Request-Id", + "value": "w8Q6uVaYzqFUlfL78qHo" + }, + { + "key": "Cache-Control", + "value": "no-cache, no-store, must-revalidate" + }, + { + "key": "Feature-Policy", + "value": "autoplay 'none';camera 'none';fullscreen 'none';geolocation 'none';microphone 'none';payment 'none'" + }, + { + "key": "X-User-Id", + "value": "admin" + }, + { + "key": "Content-Length", + "value": "466" + }, + { + "key": "Keep-Alive", + "value": "timeout=5, max=86" + }, + { + "key": "Connection", + "value": "Keep-Alive" + }, + { + "key": "Content-Type", + "value": "application/json; charset=utf-8" + } + ], + "stream": { + "type": "Buffer", + "data": [ + 123, + 34, + 117, + 114, + 108, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 122, + 97, + 107, + 101, + 110, + 92, + 47, + 118, + 49, + 92, + 47, + 122, + 97, + 97, + 107, + 101, + 105, + 103, + 101, + 110, + 115, + 99, + 104, + 97, + 112, + 112, + 101, + 110, + 92, + 47, + 52, + 102, + 57, + 102, + 97, + 99, + 98, + 102, + 45, + 53, + 99, + 50, + 101, + 45, + 52, + 48, + 49, + 97, + 45, + 97, + 56, + 57, + 50, + 45, + 55, + 52, + 48, + 101, + 48, + 56, + 53, + 55, + 97, + 57, + 100, + 49, + 34, + 44, + 34, + 117, + 117, + 105, + 100, + 34, + 58, + 34, + 52, + 102, + 57, + 102, + 97, + 99, + 98, + 102, + 45, + 53, + 99, + 50, + 101, + 45, + 52, + 48, + 49, + 97, + 45, + 97, + 56, + 57, + 50, + 45, + 55, + 52, + 48, + 101, + 48, + 56, + 53, + 55, + 97, + 57, + 100, + 49, + 34, + 44, + 34, + 122, + 97, + 97, + 107, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 122, + 97, + 107, + 101, + 110, + 92, + 47, + 118, + 49, + 92, + 47, + 122, + 97, + 107, + 101, + 110, + 92, + 47, + 98, + 54, + 52, + 56, + 99, + 53, + 100, + 97, + 45, + 98, + 53, + 57, + 48, + 45, + 52, + 57, + 54, + 48, + 45, + 57, + 52, + 97, + 48, + 45, + 102, + 48, + 99, + 53, + 97, + 51, + 102, + 57, + 101, + 100, + 57, + 48, + 34, + 44, + 34, + 101, + 105, + 103, + 101, + 110, + 115, + 99, + 104, + 97, + 112, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 105, + 92, + 47, + 118, + 49, + 92, + 47, + 101, + 105, + 103, + 101, + 110, + 115, + 99, + 104, + 97, + 112, + 112, + 101, + 110, + 92, + 47, + 99, + 49, + 53, + 57, + 56, + 102, + 57, + 98, + 45, + 48, + 48, + 48, + 102, + 45, + 52, + 52, + 48, + 54, + 45, + 56, + 48, + 101, + 52, + 45, + 50, + 100, + 51, + 49, + 55, + 53, + 51, + 48, + 97, + 52, + 97, + 57, + 34, + 44, + 34, + 119, + 97, + 97, + 114, + 100, + 101, + 34, + 58, + 34, + 116, + 101, + 115, + 116, + 34, + 125 + ] + }, + "cookie": [], + "responseTime": 184, + "responseSize": 466 + }, + "id": "2cff76d3-6fa8-4ffc-9856-7f7c7d216b04", + "assertions": [ + { + "assertion": "Zaakeigenschap aanmaken bij gesloten Zaak met scope zaken.geforceerd-bijwerken geeft 201", + "skipped": false + } + ] + }, + { + "cursor": { + "ref": "0ae30325-e39d-4b55-876b-213fc0a2e52a", + "length": 313, + "cycles": 1, + "position": 112, + "iteration": 0, + "httpRequestId": "6315fee2-9e8f-40c3-b4de-9a2968212d15" + }, + "item": { + "id": "a893a5ec-c924-4b15-9463-280cfc5ec79e", + "name": "Create relation between Zaak and Informatieobject with gebruiksrecht null", + "request": { + "url": { + "path": [ + "zaakinformatieobjecten" + ], + "host": [ + "{{zrc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n \"informatieobject\": \"{{informatieobject_gebruiksrecht_null_url}}\",\n \"zaak\": \"{{created_zaak_url}}\"\n}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "6f979ae5-069b-4e3c-97a4-d8bb1027ec0f", + "type": "text/javascript", + "exec": [ + "pm.environment.set(\"created_zaakinformatieobject_url\", pm.response.json().url)" + ], + "_lastExecutionId": "d8eb75ed-8553-4db1-96e7-30835d35a47f" + } + }, + { + "listen": "prerequest", + "script": { + "id": "54ac8d93-589d-4d24-a71b-cb00d3c532ab", + "type": "text/javascript", + "exec": [ + "" + ], + "_lastExecutionId": "9924c7c2-a4fd-499e-8ec9-904368e64659" + } + } + ] + }, + "request": { + "url": { + "protocol": "http", + "port": "8080", + "path": [ + "index.php", + "apps", + "procest", + "api", + "zgw", + "zaken", + "v1", + "zaakinformatieobjecten" + ], + "host": [ + "localhost" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Authorization", + "value": "Bearer eyJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJwcm9jZXN0LWFkbWluIiwiY2xpZW50X2lkIjoicHJvY2VzdC1hZG1pbiIsImlhdCI6IjE3NzMxNDUxNjgiLCJ1c2VyX2lkIjoicHJvY2VzdC1hZG1pbiIsInVzZXJfcmVwcmVzZW50YXRpb24iOiIifQ.8hVPm-7xNdPynW5K1t-tDHwANHm0EOm-WqUwb50g1Lo", + "system": true + }, + { + "key": "User-Agent", + "value": "PostmanRuntime/7.39.1", + "system": true + }, + { + "key": "Accept", + "value": "*/*", + "system": true + }, + { + "key": "Cache-Control", + "value": "no-cache", + "system": true + }, + { + "key": "Postman-Token", + "value": "806c6cc5-7d83-4111-8512-cabefd6228c5", + "system": true + }, + { + "key": "Host", + "value": "localhost:8080", + "system": true + }, + { + "key": "Accept-Encoding", + "value": "gzip, deflate, br", + "system": true + }, + { + "key": "Connection", + "value": "keep-alive", + "system": true + }, + { + "key": "Content-Length", + "value": "283", + "system": true + }, + { + "key": "Cookie", + "value": "ocvp3112b4wg=7b743c5de3da01ab8557d75acea4be56; oc_sessionPassphrase=LBNdKxRzA0iqoULIruNxDDh2BK3O%2BrCIU8aUmiUcOFvy5Xw1YfjwQNlmBW2IkGwJYtxXh9%2BwDN6vYuGNX07tXzkBtjQJUWTGdzf8AIOUIVxVx5DfyWAQZ7nmYmQv6XSE; nc_sameSiteCookielax=true; nc_sameSiteCookiestrict=true", + "system": true + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n \"informatieobject\": \"http://localhost:8080/index.php/apps/procest/api/zgw/documenten/v1/enkelvoudiginformatieobjecten/d3d835a6-a67c-404f-b3a6-7d281fef75a0\",\n \"zaak\": \"http://localhost:8080/index.php/apps/procest/api/zgw/zaken/v1/zaken/b648c5da-b590-4960-94a0-f0c5a3f9ed90\"\n}" + }, + "auth": { + "type": "jwt", + "jwt": [ + { + "type": "string", + "value": "{\r\n \"iss\": \"procest-admin\",\r\n \"client_id\": \"procest-admin\",\r\n \"iat\": \"1773145168\",\r\n \"user_id\": \"procest-admin\",\r\n \"user_representation\": \"\"\r\n}", + "key": "payload" + }, + { + "type": "string", + "value": "procest-admin-secret-key-for-testing", + "key": "secret" + }, + { + "type": "string", + "value": "HS256", + "key": "algorithm" + }, + { + "type": "boolean", + "value": false, + "key": "isSecretBase64Encoded" + }, + { + "type": "string", + "value": "header", + "key": "addTokenTo" + }, + { + "type": "string", + "value": "Bearer", + "key": "headerPrefix" + }, + { + "type": "string", + "value": "token", + "key": "queryParamKey" + }, + { + "type": "string", + "value": "{}", + "key": "header" + } + ] + } + }, + "response": { + "id": "505584d9-d366-4741-9350-bcbe3affd88f", + "status": "Created", + "code": 201, + "header": [ + { + "key": "Date", + "value": "Tue, 10 Mar 2026 12:19:28 GMT" + }, + { + "key": "Server", + "value": "Apache/2.4.66 (Debian)" + }, + { + "key": "X-Content-Type-Options", + "value": "nosniff" + }, + { + "key": "X-Frame-Options", + "value": "SAMEORIGIN" + }, + { + "key": "X-Permitted-Cross-Domain-Policies", + "value": "none" + }, + { + "key": "X-Robots-Tag", + "value": "noindex, nofollow" + }, + { + "key": "Referrer-Policy", + "value": "no-referrer" + }, + { + "key": "X-Powered-By", + "value": "PHP/8.3.30" + }, + { + "key": "Content-Security-Policy", + "value": "default-src 'none';base-uri 'none';manifest-src 'self';frame-ancestors 'none'" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=7b743c5de3da01ab8557d75acea4be56; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=7b743c5de3da01ab8557d75acea4be56; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=7b743c5de3da01ab8557d75acea4be56; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=7b743c5de3da01ab8557d75acea4be56; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=7b743c5de3da01ab8557d75acea4be56; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=11f26417a1655c5d5de9412d5fd1214d; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=11f26417a1655c5d5de9412d5fd1214d; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=11f26417a1655c5d5de9412d5fd1214d; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=11f26417a1655c5d5de9412d5fd1214d; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=11f26417a1655c5d5de9412d5fd1214d; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "X-Request-Id", + "value": "R22z5LYgJjcFtMpd1T9V" + }, + { + "key": "Cache-Control", + "value": "no-cache, no-store, must-revalidate" + }, + { + "key": "Feature-Policy", + "value": "autoplay 'none';camera 'none';fullscreen 'none';geolocation 'none';microphone 'none';payment 'none'" + }, + { + "key": "X-User-Id", + "value": "admin" + }, + { + "key": "Content-Length", + "value": "591" + }, + { + "key": "Keep-Alive", + "value": "timeout=5, max=85" + }, + { + "key": "Connection", + "value": "Keep-Alive" + }, + { + "key": "Content-Type", + "value": "application/json; charset=utf-8" + } + ], + "stream": { + "type": "Buffer", + "data": [ + 123, + 34, + 117, + 114, + 108, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 122, + 97, + 107, + 101, + 110, + 92, + 47, + 118, + 49, + 92, + 47, + 122, + 97, + 97, + 107, + 105, + 110, + 102, + 111, + 114, + 109, + 97, + 116, + 105, + 101, + 111, + 98, + 106, + 101, + 99, + 116, + 101, + 110, + 92, + 47, + 102, + 100, + 97, + 55, + 56, + 102, + 48, + 51, + 45, + 50, + 97, + 100, + 55, + 45, + 52, + 53, + 99, + 97, + 45, + 97, + 49, + 51, + 49, + 45, + 97, + 54, + 50, + 57, + 49, + 51, + 48, + 51, + 49, + 100, + 100, + 98, + 34, + 44, + 34, + 117, + 117, + 105, + 100, + 34, + 58, + 34, + 102, + 100, + 97, + 55, + 56, + 102, + 48, + 51, + 45, + 50, + 97, + 100, + 55, + 45, + 52, + 53, + 99, + 97, + 45, + 97, + 49, + 51, + 49, + 45, + 97, + 54, + 50, + 57, + 49, + 51, + 48, + 51, + 49, + 100, + 100, + 98, + 34, + 44, + 34, + 122, + 97, + 97, + 107, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 122, + 97, + 107, + 101, + 110, + 92, + 47, + 118, + 49, + 92, + 47, + 122, + 97, + 107, + 101, + 110, + 92, + 47, + 98, + 54, + 52, + 56, + 99, + 53, + 100, + 97, + 45, + 98, + 53, + 57, + 48, + 45, + 52, + 57, + 54, + 48, + 45, + 57, + 52, + 97, + 48, + 45, + 102, + 48, + 99, + 53, + 97, + 51, + 102, + 57, + 101, + 100, + 57, + 48, + 34, + 44, + 34, + 105, + 110, + 102, + 111, + 114, + 109, + 97, + 116, + 105, + 101, + 111, + 98, + 106, + 101, + 99, + 116, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 100, + 111, + 99, + 117, + 109, + 101, + 110, + 116, + 101, + 110, + 92, + 47, + 118, + 49, + 92, + 47, + 101, + 110, + 107, + 101, + 108, + 118, + 111, + 117, + 100, + 105, + 103, + 105, + 110, + 102, + 111, + 114, + 109, + 97, + 116, + 105, + 101, + 111, + 98, + 106, + 101, + 99, + 116, + 101, + 110, + 92, + 47, + 100, + 51, + 100, + 56, + 51, + 53, + 97, + 54, + 45, + 97, + 54, + 55, + 99, + 45, + 52, + 48, + 52, + 102, + 45, + 98, + 51, + 97, + 54, + 45, + 55, + 100, + 50, + 56, + 49, + 102, + 101, + 102, + 55, + 53, + 97, + 48, + 34, + 44, + 34, + 116, + 105, + 116, + 101, + 108, + 34, + 58, + 34, + 34, + 44, + 34, + 98, + 101, + 115, + 99, + 104, + 114, + 105, + 106, + 118, + 105, + 110, + 103, + 34, + 58, + 34, + 34, + 44, + 34, + 114, + 101, + 103, + 105, + 115, + 116, + 114, + 97, + 116, + 105, + 101, + 100, + 97, + 116, + 117, + 109, + 34, + 58, + 34, + 50, + 48, + 50, + 54, + 45, + 48, + 51, + 45, + 49, + 48, + 34, + 44, + 34, + 97, + 97, + 114, + 100, + 82, + 101, + 108, + 97, + 116, + 105, + 101, + 87, + 101, + 101, + 114, + 103, + 97, + 118, + 101, + 34, + 58, + 34, + 72, + 111, + 111, + 114, + 116, + 32, + 98, + 105, + 106, + 44, + 32, + 111, + 109, + 103, + 101, + 107, + 101, + 101, + 114, + 100, + 58, + 32, + 107, + 101, + 110, + 116, + 34, + 125 + ] + }, + "cookie": [], + "responseTime": 301, + "responseSize": 591 + }, + "id": "a893a5ec-c924-4b15-9463-280cfc5ec79e" + }, + { + "cursor": { + "ref": "40e09d38-ef79-49ca-ae92-e00d86b5a18c", + "length": 313, + "cycles": 1, + "position": 113, + "iteration": 0, + "httpRequestId": "7195ceef-d686-42a1-8224-48bfc8beba1c" + }, + "item": { + "id": "f928ad11-3b56-432c-b783-5d80faf62f9e", + "name": "(zrc-007q) Eindstatus toevoegen aan Zaak met Informatieobject.indicatieGebruiksrecht null", + "request": { + "url": { + "path": [ + "statussen" + ], + "host": [ + "{{zrc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Accept-Crs", + "value": "EPSG:4326" + }, + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n\t\"zaak\": \"{{created_zaak_url}}\",\n\t\"statustype\": \"{{eindstatustype}}\",\n\t\"datumStatusGezet\": \"2018-04-22T13:37:01\"\n}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "74b1a2c2-ca75-4daa-8e32-c87fd8b4c8a5", + "type": "text/javascript", + "packages": {}, + "exec": [ + "pm.test(\"Eindstatus toevoegen aan Zaak met gerelateerd Informatieobject met indicatieGebruiksrecht null geeft 400\", function() {", + " pm.response.to.have.status(400);", + " ", + " var error = pm.response.json()['invalidParams'][0];", + " pm.expect(error.name).to.be.equal(\"nonFieldErrors\");", + " pm.expect(error.code).to.be.equal(\"indicatiegebruiksrecht-unset\");", + "});", + "", + "" + ], + "_lastExecutionId": "33db753c-0569-4ea7-847b-519782cf13ba" + } + }, + { + "listen": "prerequest", + "script": { + "id": "9998cd7a-e758-4518-aef4-15658b91b56c", + "type": "text/javascript", + "packages": {}, + "exec": [ + "" + ], + "_lastExecutionId": "5b2e6cec-1e96-4b8c-a632-d84ca8645dc1" + } + } + ] + }, + "request": { + "url": { + "protocol": "http", + "port": "8080", + "path": [ + "index.php", + "apps", + "procest", + "api", + "zgw", + "zaken", + "v1", + "statussen" + ], + "host": [ + "localhost" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Accept-Crs", + "value": "EPSG:4326" + }, + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Authorization", + "value": "Bearer eyJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJwcm9jZXN0LWFkbWluIiwiY2xpZW50X2lkIjoicHJvY2VzdC1hZG1pbiIsImlhdCI6IjE3NzMxNDUxNjkiLCJ1c2VyX2lkIjoicHJvY2VzdC1hZG1pbiIsInVzZXJfcmVwcmVzZW50YXRpb24iOiIifQ.EGTEBFrL1ksChcwq4QSZhwQ8KaM3mR0nqEZ_2KnWO9s", + "system": true + }, + { + "key": "User-Agent", + "value": "PostmanRuntime/7.39.1", + "system": true + }, + { + "key": "Accept", + "value": "*/*", + "system": true + }, + { + "key": "Cache-Control", + "value": "no-cache", + "system": true + }, + { + "key": "Postman-Token", + "value": "ef7104ed-ced4-40c0-a2b9-e0038297858f", + "system": true + }, + { + "key": "Host", + "value": "localhost:8080", + "system": true + }, + { + "key": "Accept-Encoding", + "value": "gzip, deflate, br", + "system": true + }, + { + "key": "Connection", + "value": "keep-alive", + "system": true + }, + { + "key": "Content-Length", + "value": "295", + "system": true + }, + { + "key": "Cookie", + "value": "ocvp3112b4wg=11f26417a1655c5d5de9412d5fd1214d; oc_sessionPassphrase=LBNdKxRzA0iqoULIruNxDDh2BK3O%2BrCIU8aUmiUcOFvy5Xw1YfjwQNlmBW2IkGwJYtxXh9%2BwDN6vYuGNX07tXzkBtjQJUWTGdzf8AIOUIVxVx5DfyWAQZ7nmYmQv6XSE; nc_sameSiteCookielax=true; nc_sameSiteCookiestrict=true", + "system": true + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n\t\"zaak\": \"http://localhost:8080/index.php/apps/procest/api/zgw/zaken/v1/zaken/b648c5da-b590-4960-94a0-f0c5a3f9ed90\",\n\t\"statustype\": \"http://localhost:8080/index.php/apps/procest/api/zgw/catalogi/v1/statustypen/b0b83347-bc74-4ef9-b984-52f1c6c9fc3d\",\n\t\"datumStatusGezet\": \"2018-04-22T13:37:01\"\n}" + }, + "auth": { + "type": "jwt", + "jwt": [ + { + "type": "string", + "value": "{\r\n \"iss\": \"procest-admin\",\r\n \"client_id\": \"procest-admin\",\r\n \"iat\": \"1773145169\",\r\n \"user_id\": \"procest-admin\",\r\n \"user_representation\": \"\"\r\n}", + "key": "payload" + }, + { + "type": "string", + "value": "procest-admin-secret-key-for-testing", + "key": "secret" + }, + { + "type": "string", + "value": "HS256", + "key": "algorithm" + }, + { + "type": "boolean", + "value": false, + "key": "isSecretBase64Encoded" + }, + { + "type": "string", + "value": "header", + "key": "addTokenTo" + }, + { + "type": "string", + "value": "Bearer", + "key": "headerPrefix" + }, + { + "type": "string", + "value": "token", + "key": "queryParamKey" + }, + { + "type": "string", + "value": "{}", + "key": "header" + } + ] + } + }, + "response": { + "id": "506d8bc9-96bb-40b7-89a9-44cace2f5f3b", + "status": "Bad request", + "code": 400, + "header": [ + { + "key": "Date", + "value": "Tue, 10 Mar 2026 12:19:28 GMT" + }, + { + "key": "Server", + "value": "Apache/2.4.66 (Debian)" + }, + { + "key": "X-Content-Type-Options", + "value": "nosniff" + }, + { + "key": "X-Frame-Options", + "value": "SAMEORIGIN" + }, + { + "key": "X-Permitted-Cross-Domain-Policies", + "value": "none" + }, + { + "key": "X-Robots-Tag", + "value": "noindex, nofollow" + }, + { + "key": "Referrer-Policy", + "value": "no-referrer" + }, + { + "key": "X-Powered-By", + "value": "PHP/8.3.30" + }, + { + "key": "Content-Security-Policy", + "value": "default-src 'none';base-uri 'none';manifest-src 'self';frame-ancestors 'none'" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=11f26417a1655c5d5de9412d5fd1214d; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=11f26417a1655c5d5de9412d5fd1214d; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=11f26417a1655c5d5de9412d5fd1214d; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=11f26417a1655c5d5de9412d5fd1214d; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=11f26417a1655c5d5de9412d5fd1214d; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=99d6529e1cbc31d1e6c748fb04160ae4; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=99d6529e1cbc31d1e6c748fb04160ae4; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=99d6529e1cbc31d1e6c748fb04160ae4; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=99d6529e1cbc31d1e6c748fb04160ae4; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=99d6529e1cbc31d1e6c748fb04160ae4; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "X-Request-Id", + "value": "AVCa6awCrbJP9vqWWWfb" + }, + { + "key": "Cache-Control", + "value": "no-cache, no-store, must-revalidate" + }, + { + "key": "Feature-Policy", + "value": "autoplay 'none';camera 'none';fullscreen 'none';geolocation 'none';microphone 'none';payment 'none'" + }, + { + "key": "X-User-Id", + "value": "admin" + }, + { + "key": "Content-Length", + "value": "341" + }, + { + "key": "Connection", + "value": "close" + }, + { + "key": "Content-Type", + "value": "application/json; charset=utf-8" + } + ], + "stream": { + "type": "Buffer", + "data": [ + 123, + 34, + 100, + 101, + 116, + 97, + 105, + 108, + 34, + 58, + 34, + 90, + 97, + 97, + 107, + 32, + 107, + 97, + 110, + 32, + 110, + 105, + 101, + 116, + 32, + 97, + 102, + 103, + 101, + 115, + 108, + 111, + 116, + 101, + 110, + 32, + 119, + 111, + 114, + 100, + 101, + 110, + 58, + 32, + 110, + 105, + 101, + 116, + 32, + 97, + 108, + 108, + 101, + 32, + 105, + 110, + 102, + 111, + 114, + 109, + 97, + 116, + 105, + 101, + 111, + 98, + 106, + 101, + 99, + 116, + 101, + 110, + 32, + 104, + 101, + 98, + 98, + 101, + 110, + 32, + 105, + 110, + 100, + 105, + 99, + 97, + 116, + 105, + 101, + 71, + 101, + 98, + 114, + 117, + 105, + 107, + 115, + 114, + 101, + 99, + 104, + 116, + 32, + 103, + 101, + 122, + 101, + 116, + 46, + 34, + 44, + 34, + 99, + 111, + 100, + 101, + 34, + 58, + 34, + 105, + 110, + 100, + 105, + 99, + 97, + 116, + 105, + 101, + 103, + 101, + 98, + 114, + 117, + 105, + 107, + 115, + 114, + 101, + 99, + 104, + 116, + 45, + 117, + 110, + 115, + 101, + 116, + 34, + 44, + 34, + 105, + 110, + 118, + 97, + 108, + 105, + 100, + 80, + 97, + 114, + 97, + 109, + 115, + 34, + 58, + 91, + 123, + 34, + 110, + 97, + 109, + 101, + 34, + 58, + 34, + 110, + 111, + 110, + 70, + 105, + 101, + 108, + 100, + 69, + 114, + 114, + 111, + 114, + 115, + 34, + 44, + 34, + 99, + 111, + 100, + 101, + 34, + 58, + 34, + 105, + 110, + 100, + 105, + 99, + 97, + 116, + 105, + 101, + 103, + 101, + 98, + 114, + 117, + 105, + 107, + 115, + 114, + 101, + 99, + 104, + 116, + 45, + 117, + 110, + 115, + 101, + 116, + 34, + 44, + 34, + 114, + 101, + 97, + 115, + 111, + 110, + 34, + 58, + 34, + 90, + 97, + 97, + 107, + 32, + 107, + 97, + 110, + 32, + 110, + 105, + 101, + 116, + 32, + 97, + 102, + 103, + 101, + 115, + 108, + 111, + 116, + 101, + 110, + 32, + 119, + 111, + 114, + 100, + 101, + 110, + 58, + 32, + 110, + 105, + 101, + 116, + 32, + 97, + 108, + 108, + 101, + 32, + 105, + 110, + 102, + 111, + 114, + 109, + 97, + 116, + 105, + 101, + 111, + 98, + 106, + 101, + 99, + 116, + 101, + 110, + 32, + 104, + 101, + 98, + 98, + 101, + 110, + 32, + 105, + 110, + 100, + 105, + 99, + 97, + 116, + 105, + 101, + 71, + 101, + 98, + 114, + 117, + 105, + 107, + 115, + 114, + 101, + 99, + 104, + 116, + 32, + 103, + 101, + 122, + 101, + 116, + 46, + 34, + 125, + 93, + 125 + ] + }, + "cookie": [], + "responseTime": 182, + "responseSize": 341 + }, + "id": "f928ad11-3b56-432c-b783-5d80faf62f9e", + "assertions": [ + { + "assertion": "Eindstatus toevoegen aan Zaak met gerelateerd Informatieobject met indicatieGebruiksrecht null geeft 400", + "skipped": false + } + ] + }, + { + "cursor": { + "ref": "1126810e-807e-4c55-ad5a-c52bb737f2bb", + "length": 313, + "cycles": 1, + "position": 114, + "iteration": 0, + "httpRequestId": "98ffa7a3-e02c-4643-a6c0-8dacbc4a48e9" + }, + "item": { + "id": "dbc24314-59e6-40d0-b696-516fbbcaaf95", + "name": "Add non-Eindstatus to Zaak", + "request": { + "url": { + "path": [ + "statussen" + ], + "host": [ + "{{zrc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n\t\"zaak\": \"{{created_zaak_url}}\",\n\t\"statustype\": \"{{non_eindstatustype}}\",\n\t\"datumStatusGezet\": \"2018-04-22T13:39:00\"\n}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "c45f7300-b5b4-4288-85bc-dadf1fab7c76", + "type": "text/javascript", + "exec": [ + "" + ], + "_lastExecutionId": "beac80a8-bdab-422d-9e40-0988c9c11fb6" + } + }, + { + "listen": "prerequest", + "script": { + "id": "cea116b5-1908-4dc4-9067-b4bc8c3125b0", + "type": "text/javascript", + "exec": [ + "" + ], + "_lastExecutionId": "0617b2bf-6729-42b2-ad6d-574bf2ce679d" + } + } + ] + }, + "request": { + "url": { + "protocol": "http", + "port": "8080", + "path": [ + "index.php", + "apps", + "procest", + "api", + "zgw", + "zaken", + "v1", + "statussen" + ], + "host": [ + "localhost" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Authorization", + "value": "Bearer eyJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJwcm9jZXN0LWFkbWluIiwiY2xpZW50X2lkIjoicHJvY2VzdC1hZG1pbiIsImlhdCI6IjE3NzMxNDUxNjkiLCJ1c2VyX2lkIjoicHJvY2VzdC1hZG1pbiIsInVzZXJfcmVwcmVzZW50YXRpb24iOiIifQ.EGTEBFrL1ksChcwq4QSZhwQ8KaM3mR0nqEZ_2KnWO9s", + "system": true + }, + { + "key": "User-Agent", + "value": "PostmanRuntime/7.39.1", + "system": true + }, + { + "key": "Accept", + "value": "*/*", + "system": true + }, + { + "key": "Cache-Control", + "value": "no-cache", + "system": true + }, + { + "key": "Postman-Token", + "value": "bbef0e6b-6ff8-4f15-a32d-a3a327d5ea65", + "system": true + }, + { + "key": "Host", + "value": "localhost:8080", + "system": true + }, + { + "key": "Accept-Encoding", + "value": "gzip, deflate, br", + "system": true + }, + { + "key": "Connection", + "value": "keep-alive", + "system": true + }, + { + "key": "Content-Length", + "value": "295", + "system": true + }, + { + "key": "Cookie", + "value": "ocvp3112b4wg=99d6529e1cbc31d1e6c748fb04160ae4; oc_sessionPassphrase=LBNdKxRzA0iqoULIruNxDDh2BK3O%2BrCIU8aUmiUcOFvy5Xw1YfjwQNlmBW2IkGwJYtxXh9%2BwDN6vYuGNX07tXzkBtjQJUWTGdzf8AIOUIVxVx5DfyWAQZ7nmYmQv6XSE; nc_sameSiteCookielax=true; nc_sameSiteCookiestrict=true", + "system": true + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n\t\"zaak\": \"http://localhost:8080/index.php/apps/procest/api/zgw/zaken/v1/zaken/b648c5da-b590-4960-94a0-f0c5a3f9ed90\",\n\t\"statustype\": \"http://localhost:8080/index.php/apps/procest/api/zgw/catalogi/v1/statustypen/e04d4b89-b992-48b7-a862-e1bee6b27546\",\n\t\"datumStatusGezet\": \"2018-04-22T13:39:00\"\n}" + }, + "auth": { + "type": "jwt", + "jwt": [ + { + "type": "string", + "value": "{\r\n \"iss\": \"procest-admin\",\r\n \"client_id\": \"procest-admin\",\r\n \"iat\": \"1773145169\",\r\n \"user_id\": \"procest-admin\",\r\n \"user_representation\": \"\"\r\n}", + "key": "payload" + }, + { + "type": "string", + "value": "procest-admin-secret-key-for-testing", + "key": "secret" + }, + { + "type": "string", + "value": "HS256", + "key": "algorithm" + }, + { + "type": "boolean", + "value": false, + "key": "isSecretBase64Encoded" + }, + { + "type": "string", + "value": "header", + "key": "addTokenTo" + }, + { + "type": "string", + "value": "Bearer", + "key": "headerPrefix" + }, + { + "type": "string", + "value": "token", + "key": "queryParamKey" + }, + { + "type": "string", + "value": "{}", + "key": "header" + } + ] + } + }, + "response": { + "id": "1eee6cba-0f3e-4aaf-b0be-9266ba15b6c9", + "status": "Created", + "code": 201, + "header": [ + { + "key": "Date", + "value": "Tue, 10 Mar 2026 12:19:28 GMT" + }, + { + "key": "Server", + "value": "Apache/2.4.66 (Debian)" + }, + { + "key": "X-Content-Type-Options", + "value": "nosniff" + }, + { + "key": "X-Frame-Options", + "value": "SAMEORIGIN" + }, + { + "key": "X-Permitted-Cross-Domain-Policies", + "value": "none" + }, + { + "key": "X-Robots-Tag", + "value": "noindex, nofollow" + }, + { + "key": "Referrer-Policy", + "value": "no-referrer" + }, + { + "key": "X-Powered-By", + "value": "PHP/8.3.30" + }, + { + "key": "Content-Security-Policy", + "value": "default-src 'none';base-uri 'none';manifest-src 'self';frame-ancestors 'none'" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=99d6529e1cbc31d1e6c748fb04160ae4; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=99d6529e1cbc31d1e6c748fb04160ae4; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=99d6529e1cbc31d1e6c748fb04160ae4; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=99d6529e1cbc31d1e6c748fb04160ae4; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=99d6529e1cbc31d1e6c748fb04160ae4; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=856fc0a5b11b1d4dc3c28fc9122717ff; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=856fc0a5b11b1d4dc3c28fc9122717ff; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=856fc0a5b11b1d4dc3c28fc9122717ff; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=856fc0a5b11b1d4dc3c28fc9122717ff; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=856fc0a5b11b1d4dc3c28fc9122717ff; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "X-Request-Id", + "value": "rXMs9BoznfuerHDW2O5N" + }, + { + "key": "Cache-Control", + "value": "no-cache, no-store, must-revalidate" + }, + { + "key": "Feature-Policy", + "value": "autoplay 'none';camera 'none';fullscreen 'none';geolocation 'none';microphone 'none';payment 'none'" + }, + { + "key": "X-User-Id", + "value": "admin" + }, + { + "key": "Content-Length", + "value": "510" + }, + { + "key": "Keep-Alive", + "value": "timeout=5, max=100" + }, + { + "key": "Connection", + "value": "Keep-Alive" + }, + { + "key": "Content-Type", + "value": "application/json; charset=utf-8" + } + ], + "stream": { + "type": "Buffer", + "data": [ + 123, + 34, + 117, + 114, + 108, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 122, + 97, + 107, + 101, + 110, + 92, + 47, + 118, + 49, + 92, + 47, + 115, + 116, + 97, + 116, + 117, + 115, + 115, + 101, + 110, + 92, + 47, + 97, + 99, + 48, + 53, + 97, + 97, + 97, + 52, + 45, + 100, + 97, + 48, + 97, + 45, + 52, + 53, + 53, + 102, + 45, + 97, + 51, + 56, + 48, + 45, + 53, + 54, + 57, + 48, + 49, + 98, + 101, + 55, + 54, + 53, + 52, + 98, + 34, + 44, + 34, + 117, + 117, + 105, + 100, + 34, + 58, + 34, + 97, + 99, + 48, + 53, + 97, + 97, + 97, + 52, + 45, + 100, + 97, + 48, + 97, + 45, + 52, + 53, + 53, + 102, + 45, + 97, + 51, + 56, + 48, + 45, + 53, + 54, + 57, + 48, + 49, + 98, + 101, + 55, + 54, + 53, + 52, + 98, + 34, + 44, + 34, + 122, + 97, + 97, + 107, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 122, + 97, + 107, + 101, + 110, + 92, + 47, + 118, + 49, + 92, + 47, + 122, + 97, + 107, + 101, + 110, + 92, + 47, + 98, + 54, + 52, + 56, + 99, + 53, + 100, + 97, + 45, + 98, + 53, + 57, + 48, + 45, + 52, + 57, + 54, + 48, + 45, + 57, + 52, + 97, + 48, + 45, + 102, + 48, + 99, + 53, + 97, + 51, + 102, + 57, + 101, + 100, + 57, + 48, + 34, + 44, + 34, + 115, + 116, + 97, + 116, + 117, + 115, + 116, + 121, + 112, + 101, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 105, + 92, + 47, + 118, + 49, + 92, + 47, + 115, + 116, + 97, + 116, + 117, + 115, + 116, + 121, + 112, + 101, + 110, + 92, + 47, + 101, + 48, + 52, + 100, + 52, + 98, + 56, + 57, + 45, + 98, + 57, + 57, + 50, + 45, + 52, + 56, + 98, + 55, + 45, + 97, + 56, + 54, + 50, + 45, + 101, + 49, + 98, + 101, + 101, + 54, + 98, + 50, + 55, + 53, + 52, + 54, + 34, + 44, + 34, + 100, + 97, + 116, + 117, + 109, + 83, + 116, + 97, + 116, + 117, + 115, + 71, + 101, + 122, + 101, + 116, + 34, + 58, + 34, + 50, + 48, + 50, + 54, + 45, + 48, + 51, + 45, + 49, + 48, + 84, + 49, + 50, + 58, + 49, + 57, + 58, + 50, + 56, + 43, + 48, + 48, + 58, + 48, + 48, + 34, + 44, + 34, + 115, + 116, + 97, + 116, + 117, + 115, + 116, + 111, + 101, + 108, + 105, + 99, + 104, + 116, + 105, + 110, + 103, + 34, + 58, + 34, + 34, + 125 + ] + }, + "cookie": [], + "responseTime": 277, + "responseSize": 510 + }, + "id": "dbc24314-59e6-40d0-b696-516fbbcaaf95" + }, + { + "cursor": { + "ref": "9d3b704e-5131-4023-accc-5d1ddf086e34", + "length": 313, + "cycles": 1, + "position": 115, + "iteration": 0, + "httpRequestId": "f2dcc6bd-ca57-4e06-9bc1-7257e9dd8a7a" + }, + "item": { + "id": "1442dcda-2e3d-467a-a9d3-644c1330747b", + "name": "(zrc-007r) Zaak.einddatum leeg als geen eindstatus gezet", + "request": { + "url": { + "host": [ + "{{created_zaak_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Accept-Crs", + "value": "EPSG:4326" + }, + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "GET" + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "9e19ffbe-655e-4e30-8752-8f89338cb86c", + "type": "text/javascript", + "packages": {}, + "exec": [ + "pm.test(\"Toevoegen status die geen eindstatus is aan Zaak betekent Zaak.einddatum leeg\", function(){", + " pm.response.to.have.status(200);", + " ", + " var einddatum = pm.response.json().einddatum;", + " pm.expect(einddatum).to.be.equal(null);", + "});", + "", + "" + ], + "_lastExecutionId": "10995ccc-2aef-44a8-8dfb-30fdf07ac921" + } + }, + { + "listen": "prerequest", + "script": { + "id": "5928bd2d-f9f3-4af0-87f7-0b2a8c9af307", + "type": "text/javascript", + "packages": {}, + "exec": [ + "" + ], + "_lastExecutionId": "3905c79f-865f-43f7-9544-ab21a9ece26e" + } + } + ] + }, + "request": { + "url": { + "protocol": "http", + "port": "8080", + "path": [ + "index.php", + "apps", + "procest", + "api", + "zgw", + "zaken", + "v1", + "zaken", + "b648c5da-b590-4960-94a0-f0c5a3f9ed90" + ], + "host": [ + "localhost" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Accept-Crs", + "value": "EPSG:4326" + }, + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Authorization", + "value": "Bearer eyJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJwcm9jZXN0LWFkbWluIiwiY2xpZW50X2lkIjoicHJvY2VzdC1hZG1pbiIsImlhdCI6IjE3NzMxNDUxNjkiLCJ1c2VyX2lkIjoicHJvY2VzdC1hZG1pbiIsInVzZXJfcmVwcmVzZW50YXRpb24iOiIifQ.EGTEBFrL1ksChcwq4QSZhwQ8KaM3mR0nqEZ_2KnWO9s", + "system": true + }, + { + "key": "User-Agent", + "value": "PostmanRuntime/7.39.1", + "system": true + }, + { + "key": "Accept", + "value": "*/*", + "system": true + }, + { + "key": "Cache-Control", + "value": "no-cache", + "system": true + }, + { + "key": "Postman-Token", + "value": "d8dfb762-b05b-43b6-b27b-9bbc224665c5", + "system": true + }, + { + "key": "Host", + "value": "localhost:8080", + "system": true + }, + { + "key": "Accept-Encoding", + "value": "gzip, deflate, br", + "system": true + }, + { + "key": "Connection", + "value": "keep-alive", + "system": true + }, + { + "key": "Cookie", + "value": "ocvp3112b4wg=856fc0a5b11b1d4dc3c28fc9122717ff; oc_sessionPassphrase=LBNdKxRzA0iqoULIruNxDDh2BK3O%2BrCIU8aUmiUcOFvy5Xw1YfjwQNlmBW2IkGwJYtxXh9%2BwDN6vYuGNX07tXzkBtjQJUWTGdzf8AIOUIVxVx5DfyWAQZ7nmYmQv6XSE; nc_sameSiteCookielax=true; nc_sameSiteCookiestrict=true", + "system": true + } + ], + "method": "GET", + "auth": { + "type": "jwt", + "jwt": [ + { + "type": "string", + "value": "{\r\n \"iss\": \"procest-admin\",\r\n \"client_id\": \"procest-admin\",\r\n \"iat\": \"1773145169\",\r\n \"user_id\": \"procest-admin\",\r\n \"user_representation\": \"\"\r\n}", + "key": "payload" + }, + { + "type": "string", + "value": "procest-admin-secret-key-for-testing", + "key": "secret" + }, + { + "type": "string", + "value": "HS256", + "key": "algorithm" + }, + { + "type": "boolean", + "value": false, + "key": "isSecretBase64Encoded" + }, + { + "type": "string", + "value": "header", + "key": "addTokenTo" + }, + { + "type": "string", + "value": "Bearer", + "key": "headerPrefix" + }, + { + "type": "string", + "value": "token", + "key": "queryParamKey" + }, + { + "type": "string", + "value": "{}", + "key": "header" + } + ] + } + }, + "response": { + "id": "28f91b17-e5e2-4845-b779-9f8622d278a2", + "status": "OK", + "code": 200, + "header": [ + { + "key": "Date", + "value": "Tue, 10 Mar 2026 12:19:29 GMT" + }, + { + "key": "Server", + "value": "Apache/2.4.66 (Debian)" + }, + { + "key": "X-Content-Type-Options", + "value": "nosniff" + }, + { + "key": "X-Frame-Options", + "value": "SAMEORIGIN" + }, + { + "key": "X-Permitted-Cross-Domain-Policies", + "value": "none" + }, + { + "key": "X-Robots-Tag", + "value": "noindex, nofollow" + }, + { + "key": "Referrer-Policy", + "value": "no-referrer" + }, + { + "key": "X-Powered-By", + "value": "PHP/8.3.30" + }, + { + "key": "Content-Security-Policy", + "value": "default-src 'none';base-uri 'none';manifest-src 'self';frame-ancestors 'none'" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=856fc0a5b11b1d4dc3c28fc9122717ff; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=856fc0a5b11b1d4dc3c28fc9122717ff; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=856fc0a5b11b1d4dc3c28fc9122717ff; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=856fc0a5b11b1d4dc3c28fc9122717ff; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=856fc0a5b11b1d4dc3c28fc9122717ff; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=2b199a207f73e1207a113e418629cad7; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=2b199a207f73e1207a113e418629cad7; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=2b199a207f73e1207a113e418629cad7; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=2b199a207f73e1207a113e418629cad7; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=2b199a207f73e1207a113e418629cad7; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "X-Request-Id", + "value": "21oZIqghOqmFS2ypvOJ7" + }, + { + "key": "Cache-Control", + "value": "no-cache, no-store, must-revalidate" + }, + { + "key": "Feature-Policy", + "value": "autoplay 'none';camera 'none';fullscreen 'none';geolocation 'none';microphone 'none';payment 'none'" + }, + { + "key": "X-User-Id", + "value": "admin" + }, + { + "key": "Content-Encoding", + "value": "gzip" + }, + { + "key": "Content-Length", + "value": "450" + }, + { + "key": "Keep-Alive", + "value": "timeout=5, max=99" + }, + { + "key": "Connection", + "value": "Keep-Alive" + }, + { + "key": "Content-Type", + "value": "application/json; charset=utf-8" + } + ], + "stream": { + "type": "Buffer", + "data": [ + 123, + 34, + 117, + 114, + 108, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 122, + 97, + 107, + 101, + 110, + 92, + 47, + 118, + 49, + 92, + 47, + 122, + 97, + 107, + 101, + 110, + 92, + 47, + 98, + 54, + 52, + 56, + 99, + 53, + 100, + 97, + 45, + 98, + 53, + 57, + 48, + 45, + 52, + 57, + 54, + 48, + 45, + 57, + 52, + 97, + 48, + 45, + 102, + 48, + 99, + 53, + 97, + 51, + 102, + 57, + 101, + 100, + 57, + 48, + 34, + 44, + 34, + 117, + 117, + 105, + 100, + 34, + 58, + 34, + 98, + 54, + 52, + 56, + 99, + 53, + 100, + 97, + 45, + 98, + 53, + 57, + 48, + 45, + 52, + 57, + 54, + 48, + 45, + 57, + 52, + 97, + 48, + 45, + 102, + 48, + 99, + 53, + 97, + 51, + 102, + 57, + 101, + 100, + 57, + 48, + 34, + 44, + 34, + 105, + 100, + 101, + 110, + 116, + 105, + 102, + 105, + 99, + 97, + 116, + 105, + 101, + 34, + 58, + 34, + 90, + 65, + 65, + 75, + 45, + 84, + 66, + 79, + 78, + 75, + 52, + 45, + 65, + 51, + 48, + 51, + 54, + 66, + 34, + 44, + 34, + 111, + 109, + 115, + 99, + 104, + 114, + 105, + 106, + 118, + 105, + 110, + 103, + 34, + 58, + 34, + 97, + 97, + 110, + 103, + 101, + 112, + 97, + 115, + 116, + 34, + 44, + 34, + 116, + 111, + 101, + 108, + 105, + 99, + 104, + 116, + 105, + 110, + 103, + 34, + 58, + 34, + 115, + 116, + 114, + 105, + 110, + 103, + 34, + 44, + 34, + 122, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 105, + 92, + 47, + 118, + 49, + 92, + 47, + 122, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 110, + 92, + 47, + 54, + 49, + 57, + 100, + 99, + 51, + 101, + 53, + 45, + 53, + 50, + 102, + 49, + 45, + 52, + 50, + 57, + 52, + 45, + 97, + 53, + 54, + 57, + 45, + 102, + 50, + 49, + 100, + 49, + 54, + 102, + 52, + 52, + 56, + 55, + 57, + 34, + 44, + 34, + 114, + 101, + 103, + 105, + 115, + 116, + 114, + 97, + 116, + 105, + 101, + 100, + 97, + 116, + 117, + 109, + 34, + 58, + 34, + 50, + 48, + 50, + 54, + 45, + 48, + 51, + 45, + 49, + 48, + 84, + 49, + 50, + 58, + 49, + 57, + 58, + 49, + 54, + 43, + 48, + 48, + 58, + 48, + 48, + 34, + 44, + 34, + 115, + 116, + 97, + 114, + 116, + 100, + 97, + 116, + 117, + 109, + 34, + 58, + 34, + 50, + 48, + 49, + 57, + 45, + 48, + 52, + 45, + 48, + 57, + 34, + 44, + 34, + 101, + 105, + 110, + 100, + 100, + 97, + 116, + 117, + 109, + 34, + 58, + 110, + 117, + 108, + 108, + 44, + 34, + 101, + 105, + 110, + 100, + 100, + 97, + 116, + 117, + 109, + 71, + 101, + 112, + 108, + 97, + 110, + 100, + 34, + 58, + 34, + 50, + 48, + 49, + 57, + 45, + 48, + 52, + 45, + 50, + 48, + 34, + 44, + 34, + 117, + 105, + 116, + 101, + 114, + 108, + 105, + 106, + 107, + 101, + 69, + 105, + 110, + 100, + 100, + 97, + 116, + 117, + 109, + 65, + 102, + 100, + 111, + 101, + 110, + 105, + 110, + 103, + 34, + 58, + 34, + 50, + 48, + 49, + 57, + 45, + 48, + 52, + 45, + 48, + 57, + 34, + 44, + 34, + 118, + 101, + 114, + 116, + 114, + 111, + 117, + 119, + 101, + 108, + 105, + 106, + 107, + 104, + 101, + 105, + 100, + 97, + 97, + 110, + 100, + 117, + 105, + 100, + 105, + 110, + 103, + 34, + 58, + 34, + 103, + 101, + 104, + 101, + 105, + 109, + 34, + 44, + 34, + 118, + 101, + 114, + 97, + 110, + 116, + 119, + 111, + 111, + 114, + 100, + 101, + 108, + 105, + 106, + 107, + 101, + 79, + 114, + 103, + 97, + 110, + 105, + 115, + 97, + 116, + 105, + 101, + 34, + 58, + 34, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 34, + 44, + 34, + 97, + 114, + 99, + 104, + 105, + 101, + 102, + 110, + 111, + 109, + 105, + 110, + 97, + 116, + 105, + 101, + 34, + 58, + 110, + 117, + 108, + 108, + 44, + 34, + 97, + 114, + 99, + 104, + 105, + 101, + 102, + 97, + 99, + 116, + 105, + 101, + 100, + 97, + 116, + 117, + 109, + 34, + 58, + 110, + 117, + 108, + 108, + 44, + 34, + 97, + 114, + 99, + 104, + 105, + 101, + 102, + 115, + 116, + 97, + 116, + 117, + 115, + 34, + 58, + 34, + 110, + 111, + 103, + 95, + 116, + 101, + 95, + 97, + 114, + 99, + 104, + 105, + 118, + 101, + 114, + 101, + 110, + 34, + 44, + 34, + 98, + 101, + 116, + 97, + 108, + 105, + 110, + 103, + 115, + 105, + 110, + 100, + 105, + 99, + 97, + 116, + 105, + 101, + 34, + 58, + 34, + 103, + 101, + 104, + 101, + 101, + 108, + 34, + 44, + 34, + 108, + 97, + 97, + 116, + 115, + 116, + 101, + 66, + 101, + 116, + 97, + 97, + 108, + 100, + 97, + 116, + 117, + 109, + 34, + 58, + 34, + 50, + 48, + 49, + 57, + 45, + 48, + 49, + 45, + 48, + 49, + 34, + 44, + 34, + 104, + 111, + 111, + 102, + 100, + 122, + 97, + 97, + 107, + 34, + 58, + 110, + 117, + 108, + 108, + 125 + ] + }, + "cookie": [], + "responseTime": 130, + "responseSize": 808 + }, + "id": "1442dcda-2e3d-467a-a9d3-644c1330747b", + "assertions": [ + { + "assertion": "Toevoegen status die geen eindstatus is aan Zaak betekent Zaak.einddatum leeg", + "skipped": false + } + ] + }, + { + "cursor": { + "ref": "ba966240-07e2-455e-b719-77ded314ee82", + "length": 313, + "cycles": 1, + "position": 116, + "iteration": 0, + "httpRequestId": "68304cec-8edb-407c-86a6-21428baab0bd" + }, + "item": { + "id": "49fb6582-797f-416a-9b5e-a1fb156e54c6", + "name": "set full token", + "request": { + "url": { + "path": [ + "catalogussen" + ], + "host": [ + "{{ztc_url}}" + ], + "query": [], + "variable": [] + }, + "method": "GET" + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "84d1c8e5-8038-42e6-9721-b20ac62c18ec", + "type": "text/javascript", + "packages": {}, + "exec": [ + "" + ], + "_lastExecutionId": "1cbce57a-a0dd-4ad9-bbaf-0ca6be14b1ba" + } + }, + { + "listen": "prerequest", + "script": { + "id": "99eb8014-6b6e-400a-9e44-24149ad660b8", + "type": "text/javascript", + "packages": {}, + "exec": [ + "pm.environment.set(\"jwt_token\", pm.environment.get(\"jwt_full\"));", + " var origId = pm.environment.get(\"_original_client_id\");", + " var origSecret = pm.environment.get(\"_original_secret\");", + " if (origId) { pm.environment.set(\"client_id\", origId); }", + " if (origSecret) { pm.environment.set(\"secret\", origSecret); }", + " pm.environment.set(\"secret\", pm.environment.get(\"secret\") || \"procest-admin-secret-key-for-testing\");" + ], + "_lastExecutionId": "aef194d6-cbdf-4854-8896-974a135773d5" + } + } + ] + }, + "request": { + "url": { + "protocol": "http", + "port": "8080", + "path": [ + "index.php", + "apps", + "procest", + "api", + "zgw", + "catalogi", + "v1", + "catalogussen" + ], + "host": [ + "localhost" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Authorization", + "value": "Bearer eyJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJwcm9jZXN0LWFkbWluIiwiY2xpZW50X2lkIjoicHJvY2VzdC1hZG1pbiIsImlhdCI6IjE3NzMxNDUxNjkiLCJ1c2VyX2lkIjoicHJvY2VzdC1hZG1pbiIsInVzZXJfcmVwcmVzZW50YXRpb24iOiIifQ.EGTEBFrL1ksChcwq4QSZhwQ8KaM3mR0nqEZ_2KnWO9s", + "system": true + }, + { + "key": "User-Agent", + "value": "PostmanRuntime/7.39.1", + "system": true + }, + { + "key": "Accept", + "value": "*/*", + "system": true + }, + { + "key": "Cache-Control", + "value": "no-cache", + "system": true + }, + { + "key": "Postman-Token", + "value": "88048654-0ff8-4d11-84c8-dbc210f7d760", + "system": true + }, + { + "key": "Host", + "value": "localhost:8080", + "system": true + }, + { + "key": "Accept-Encoding", + "value": "gzip, deflate, br", + "system": true + }, + { + "key": "Connection", + "value": "keep-alive", + "system": true + }, + { + "key": "Cookie", + "value": "ocvp3112b4wg=2b199a207f73e1207a113e418629cad7; oc_sessionPassphrase=LBNdKxRzA0iqoULIruNxDDh2BK3O%2BrCIU8aUmiUcOFvy5Xw1YfjwQNlmBW2IkGwJYtxXh9%2BwDN6vYuGNX07tXzkBtjQJUWTGdzf8AIOUIVxVx5DfyWAQZ7nmYmQv6XSE; nc_sameSiteCookielax=true; nc_sameSiteCookiestrict=true", + "system": true + } + ], + "method": "GET", + "auth": { + "type": "jwt", + "jwt": [ + { + "type": "string", + "value": "{\r\n \"iss\": \"procest-admin\",\r\n \"client_id\": \"procest-admin\",\r\n \"iat\": \"1773145169\",\r\n \"user_id\": \"procest-admin\",\r\n \"user_representation\": \"\"\r\n}", + "key": "payload" + }, + { + "type": "string", + "value": "procest-admin-secret-key-for-testing", + "key": "secret" + }, + { + "type": "string", + "value": "HS256", + "key": "algorithm" + }, + { + "type": "boolean", + "value": false, + "key": "isSecretBase64Encoded" + }, + { + "type": "string", + "value": "header", + "key": "addTokenTo" + }, + { + "type": "string", + "value": "Bearer", + "key": "headerPrefix" + }, + { + "type": "string", + "value": "token", + "key": "queryParamKey" + }, + { + "type": "string", + "value": "{}", + "key": "header" + } + ] + } + }, + "response": { + "id": "9cbc8945-0dde-4efb-84a9-199fd7ac5021", + "status": "OK", + "code": 200, + "header": [ + { + "key": "Date", + "value": "Tue, 10 Mar 2026 12:19:29 GMT" + }, + { + "key": "Server", + "value": "Apache/2.4.66 (Debian)" + }, + { + "key": "X-Content-Type-Options", + "value": "nosniff" + }, + { + "key": "X-Frame-Options", + "value": "SAMEORIGIN" + }, + { + "key": "X-Permitted-Cross-Domain-Policies", + "value": "none" + }, + { + "key": "X-Robots-Tag", + "value": "noindex, nofollow" + }, + { + "key": "Referrer-Policy", + "value": "no-referrer" + }, + { + "key": "X-Powered-By", + "value": "PHP/8.3.30" + }, + { + "key": "Content-Security-Policy", + "value": "default-src 'none';base-uri 'none';manifest-src 'self';frame-ancestors 'none'" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=2b199a207f73e1207a113e418629cad7; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=2b199a207f73e1207a113e418629cad7; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=2b199a207f73e1207a113e418629cad7; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=2b199a207f73e1207a113e418629cad7; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=2b199a207f73e1207a113e418629cad7; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=a526b93103feda20cdc886828c71d83d; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=a526b93103feda20cdc886828c71d83d; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=a526b93103feda20cdc886828c71d83d; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "X-Request-Id", + "value": "sVnvDq4JM2HZ6IkBMjl0" + }, + { + "key": "Cache-Control", + "value": "no-cache, no-store, must-revalidate" + }, + { + "key": "Feature-Policy", + "value": "autoplay 'none';camera 'none';fullscreen 'none';geolocation 'none';microphone 'none';payment 'none'" + }, + { + "key": "X-User-Id", + "value": "admin" + }, + { + "key": "Content-Encoding", + "value": "gzip" + }, + { + "key": "Content-Length", + "value": "919" + }, + { + "key": "Keep-Alive", + "value": "timeout=5, max=98" + }, + { + "key": "Connection", + "value": "Keep-Alive" + }, + { + "key": "Content-Type", + "value": "application/json; charset=utf-8" + } + ], + "stream": { + "type": "Buffer", + "data": [ + 123, + 34, + 99, + 111, + 117, + 110, + 116, + 34, + 58, + 50, + 49, + 50, + 44, + 34, + 110, + 101, + 120, + 116, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 105, + 92, + 47, + 118, + 49, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 117, + 115, + 115, + 101, + 110, + 63, + 112, + 97, + 103, + 101, + 61, + 50, + 34, + 44, + 34, + 112, + 114, + 101, + 118, + 105, + 111, + 117, + 115, + 34, + 58, + 110, + 117, + 108, + 108, + 44, + 34, + 114, + 101, + 115, + 117, + 108, + 116, + 115, + 34, + 58, + 91, + 123, + 34, + 117, + 114, + 108, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 105, + 92, + 47, + 118, + 49, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 117, + 115, + 115, + 101, + 110, + 92, + 47, + 100, + 51, + 100, + 101, + 101, + 56, + 101, + 98, + 45, + 56, + 100, + 50, + 56, + 45, + 52, + 50, + 50, + 101, + 45, + 98, + 48, + 97, + 102, + 45, + 97, + 57, + 57, + 57, + 101, + 100, + 57, + 55, + 50, + 50, + 51, + 102, + 34, + 44, + 34, + 117, + 117, + 105, + 100, + 34, + 58, + 34, + 100, + 51, + 100, + 101, + 101, + 56, + 101, + 98, + 45, + 56, + 100, + 50, + 56, + 45, + 52, + 50, + 50, + 101, + 45, + 98, + 48, + 97, + 102, + 45, + 97, + 57, + 57, + 57, + 101, + 100, + 57, + 55, + 50, + 50, + 51, + 102, + 34, + 44, + 34, + 100, + 111, + 109, + 101, + 105, + 110, + 34, + 58, + 34, + 65, + 65, + 66, + 34, + 44, + 34, + 114, + 115, + 105, + 110, + 34, + 58, + 34, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 34, + 44, + 34, + 99, + 111, + 110, + 116, + 97, + 99, + 116, + 112, + 101, + 114, + 115, + 111, + 111, + 110, + 66, + 101, + 104, + 101, + 101, + 114, + 78, + 97, + 97, + 109, + 34, + 58, + 34, + 84, + 101, + 115, + 116, + 32, + 80, + 101, + 114, + 115, + 111, + 111, + 110, + 34, + 44, + 34, + 99, + 111, + 110, + 116, + 97, + 99, + 116, + 112, + 101, + 114, + 115, + 111, + 111, + 110, + 66, + 101, + 104, + 101, + 101, + 114, + 84, + 101, + 108, + 101, + 102, + 111, + 111, + 110, + 110, + 117, + 109, + 109, + 101, + 114, + 34, + 58, + 34, + 34, + 44, + 34, + 99, + 111, + 110, + 116, + 97, + 99, + 116, + 112, + 101, + 114, + 115, + 111, + 111, + 110, + 66, + 101, + 104, + 101, + 101, + 114, + 69, + 109, + 97, + 105, + 108, + 97, + 100, + 114, + 101, + 115, + 34, + 58, + 34, + 34, + 44, + 34, + 122, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 98, + 101, + 115, + 108, + 117, + 105, + 116, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 105, + 110, + 102, + 111, + 114, + 109, + 97, + 116, + 105, + 101, + 111, + 98, + 106, + 101, + 99, + 116, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 125, + 44, + 123, + 34, + 117, + 114, + 108, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 105, + 92, + 47, + 118, + 49, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 117, + 115, + 115, + 101, + 110, + 92, + 47, + 57, + 51, + 51, + 52, + 102, + 49, + 49, + 48, + 45, + 98, + 97, + 48, + 98, + 45, + 52, + 50, + 49, + 55, + 45, + 56, + 57, + 48, + 51, + 45, + 98, + 97, + 55, + 49, + 52, + 48, + 55, + 102, + 48, + 97, + 50, + 50, + 34, + 44, + 34, + 117, + 117, + 105, + 100, + 34, + 58, + 34, + 57, + 51, + 51, + 52, + 102, + 49, + 49, + 48, + 45, + 98, + 97, + 48, + 98, + 45, + 52, + 50, + 49, + 55, + 45, + 56, + 57, + 48, + 51, + 45, + 98, + 97, + 55, + 49, + 52, + 48, + 55, + 102, + 48, + 97, + 50, + 50, + 34, + 44, + 34, + 100, + 111, + 109, + 101, + 105, + 110, + 34, + 58, + 34, + 90, + 71, + 87, + 84, + 34, + 44, + 34, + 114, + 115, + 105, + 110, + 34, + 58, + 34, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 34, + 44, + 34, + 99, + 111, + 110, + 116, + 97, + 99, + 116, + 112, + 101, + 114, + 115, + 111, + 111, + 110, + 66, + 101, + 104, + 101, + 101, + 114, + 78, + 97, + 97, + 109, + 34, + 58, + 34, + 84, + 101, + 115, + 116, + 32, + 80, + 101, + 114, + 115, + 111, + 111, + 110, + 34, + 44, + 34, + 99, + 111, + 110, + 116, + 97, + 99, + 116, + 112, + 101, + 114, + 115, + 111, + 111, + 110, + 66, + 101, + 104, + 101, + 101, + 114, + 84, + 101, + 108, + 101, + 102, + 111, + 111, + 110, + 110, + 117, + 109, + 109, + 101, + 114, + 34, + 58, + 34, + 34, + 44, + 34, + 99, + 111, + 110, + 116, + 97, + 99, + 116, + 112, + 101, + 114, + 115, + 111, + 111, + 110, + 66, + 101, + 104, + 101, + 101, + 114, + 69, + 109, + 97, + 105, + 108, + 97, + 100, + 114, + 101, + 115, + 34, + 58, + 34, + 34, + 44, + 34, + 122, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 98, + 101, + 115, + 108, + 117, + 105, + 116, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 105, + 110, + 102, + 111, + 114, + 109, + 97, + 116, + 105, + 101, + 111, + 98, + 106, + 101, + 99, + 116, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 125, + 44, + 123, + 34, + 117, + 114, + 108, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 105, + 92, + 47, + 118, + 49, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 117, + 115, + 115, + 101, + 110, + 92, + 47, + 99, + 57, + 101, + 56, + 97, + 99, + 56, + 56, + 45, + 52, + 55, + 53, + 55, + 45, + 52, + 101, + 101, + 49, + 45, + 97, + 56, + 102, + 48, + 45, + 57, + 55, + 51, + 98, + 51, + 101, + 97, + 100, + 57, + 52, + 55, + 100, + 34, + 44, + 34, + 117, + 117, + 105, + 100, + 34, + 58, + 34, + 99, + 57, + 101, + 56, + 97, + 99, + 56, + 56, + 45, + 52, + 55, + 53, + 55, + 45, + 52, + 101, + 101, + 49, + 45, + 97, + 56, + 102, + 48, + 45, + 57, + 55, + 51, + 98, + 51, + 101, + 97, + 100, + 57, + 52, + 55, + 100, + 34, + 44, + 34, + 100, + 111, + 109, + 101, + 105, + 110, + 34, + 58, + 34, + 65, + 65, + 66, + 34, + 44, + 34, + 114, + 115, + 105, + 110, + 34, + 58, + 34, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 34, + 44, + 34, + 99, + 111, + 110, + 116, + 97, + 99, + 116, + 112, + 101, + 114, + 115, + 111, + 111, + 110, + 66, + 101, + 104, + 101, + 101, + 114, + 78, + 97, + 97, + 109, + 34, + 58, + 34, + 84, + 101, + 115, + 116, + 32, + 80, + 101, + 114, + 115, + 111, + 111, + 110, + 34, + 44, + 34, + 99, + 111, + 110, + 116, + 97, + 99, + 116, + 112, + 101, + 114, + 115, + 111, + 111, + 110, + 66, + 101, + 104, + 101, + 101, + 114, + 84, + 101, + 108, + 101, + 102, + 111, + 111, + 110, + 110, + 117, + 109, + 109, + 101, + 114, + 34, + 58, + 34, + 34, + 44, + 34, + 99, + 111, + 110, + 116, + 97, + 99, + 116, + 112, + 101, + 114, + 115, + 111, + 111, + 110, + 66, + 101, + 104, + 101, + 101, + 114, + 69, + 109, + 97, + 105, + 108, + 97, + 100, + 114, + 101, + 115, + 34, + 58, + 34, + 34, + 44, + 34, + 122, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 98, + 101, + 115, + 108, + 117, + 105, + 116, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 105, + 110, + 102, + 111, + 114, + 109, + 97, + 116, + 105, + 101, + 111, + 98, + 106, + 101, + 99, + 116, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 125, + 44, + 123, + 34, + 117, + 114, + 108, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 105, + 92, + 47, + 118, + 49, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 117, + 115, + 115, + 101, + 110, + 92, + 47, + 100, + 54, + 100, + 51, + 52, + 57, + 52, + 50, + 45, + 50, + 49, + 51, + 53, + 45, + 52, + 50, + 97, + 51, + 45, + 97, + 57, + 55, + 102, + 45, + 51, + 52, + 102, + 55, + 57, + 99, + 54, + 55, + 54, + 99, + 57, + 55, + 34, + 44, + 34, + 117, + 117, + 105, + 100, + 34, + 58, + 34, + 100, + 54, + 100, + 51, + 52, + 57, + 52, + 50, + 45, + 50, + 49, + 51, + 53, + 45, + 52, + 50, + 97, + 51, + 45, + 97, + 57, + 55, + 102, + 45, + 51, + 52, + 102, + 55, + 57, + 99, + 54, + 55, + 54, + 99, + 57, + 55, + 34, + 44, + 34, + 100, + 111, + 109, + 101, + 105, + 110, + 34, + 58, + 34, + 65, + 65, + 66, + 34, + 44, + 34, + 114, + 115, + 105, + 110, + 34, + 58, + 34, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 34, + 44, + 34, + 99, + 111, + 110, + 116, + 97, + 99, + 116, + 112, + 101, + 114, + 115, + 111, + 111, + 110, + 66, + 101, + 104, + 101, + 101, + 114, + 78, + 97, + 97, + 109, + 34, + 58, + 34, + 84, + 101, + 115, + 116, + 32, + 80, + 101, + 114, + 115, + 111, + 111, + 110, + 34, + 44, + 34, + 99, + 111, + 110, + 116, + 97, + 99, + 116, + 112, + 101, + 114, + 115, + 111, + 111, + 110, + 66, + 101, + 104, + 101, + 101, + 114, + 84, + 101, + 108, + 101, + 102, + 111, + 111, + 110, + 110, + 117, + 109, + 109, + 101, + 114, + 34, + 58, + 34, + 34, + 44, + 34, + 99, + 111, + 110, + 116, + 97, + 99, + 116, + 112, + 101, + 114, + 115, + 111, + 111, + 110, + 66, + 101, + 104, + 101, + 101, + 114, + 69, + 109, + 97, + 105, + 108, + 97, + 100, + 114, + 101, + 115, + 34, + 58, + 34, + 34, + 44, + 34, + 122, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 98, + 101, + 115, + 108, + 117, + 105, + 116, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 105, + 110, + 102, + 111, + 114, + 109, + 97, + 116, + 105, + 101, + 111, + 98, + 106, + 101, + 99, + 116, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 125, + 44, + 123, + 34, + 117, + 114, + 108, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 105, + 92, + 47, + 118, + 49, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 117, + 115, + 115, + 101, + 110, + 92, + 47, + 55, + 99, + 99, + 99, + 101, + 55, + 97, + 57, + 45, + 101, + 52, + 98, + 57, + 45, + 52, + 56, + 101, + 51, + 45, + 56, + 97, + 53, + 51, + 45, + 99, + 97, + 102, + 56, + 48, + 102, + 54, + 97, + 55, + 98, + 99, + 55, + 34, + 44, + 34, + 117, + 117, + 105, + 100, + 34, + 58, + 34, + 55, + 99, + 99, + 99, + 101, + 55, + 97, + 57, + 45, + 101, + 52, + 98, + 57, + 45, + 52, + 56, + 101, + 51, + 45, + 56, + 97, + 53, + 51, + 45, + 99, + 97, + 102, + 56, + 48, + 102, + 54, + 97, + 55, + 98, + 99, + 55, + 34, + 44, + 34, + 100, + 111, + 109, + 101, + 105, + 110, + 34, + 58, + 34, + 65, + 65, + 66, + 34, + 44, + 34, + 114, + 115, + 105, + 110, + 34, + 58, + 34, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 34, + 44, + 34, + 99, + 111, + 110, + 116, + 97, + 99, + 116, + 112, + 101, + 114, + 115, + 111, + 111, + 110, + 66, + 101, + 104, + 101, + 101, + 114, + 78, + 97, + 97, + 109, + 34, + 58, + 34, + 84, + 101, + 115, + 116, + 32, + 80, + 101, + 114, + 115, + 111, + 111, + 110, + 34, + 44, + 34, + 99, + 111, + 110, + 116, + 97, + 99, + 116, + 112, + 101, + 114, + 115, + 111, + 111, + 110, + 66, + 101, + 104, + 101, + 101, + 114, + 84, + 101, + 108, + 101, + 102, + 111, + 111, + 110, + 110, + 117, + 109, + 109, + 101, + 114, + 34, + 58, + 34, + 34, + 44, + 34, + 99, + 111, + 110, + 116, + 97, + 99, + 116, + 112, + 101, + 114, + 115, + 111, + 111, + 110, + 66, + 101, + 104, + 101, + 101, + 114, + 69, + 109, + 97, + 105, + 108, + 97, + 100, + 114, + 101, + 115, + 34, + 58, + 34, + 34, + 44, + 34, + 122, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 98, + 101, + 115, + 108, + 117, + 105, + 116, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 105, + 110, + 102, + 111, + 114, + 109, + 97, + 116, + 105, + 101, + 111, + 98, + 106, + 101, + 99, + 116, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 125, + 44, + 123, + 34, + 117, + 114, + 108, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 105, + 92, + 47, + 118, + 49, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 117, + 115, + 115, + 101, + 110, + 92, + 47, + 57, + 55, + 98, + 54, + 99, + 50, + 102, + 57, + 45, + 101, + 53, + 51, + 51, + 45, + 52, + 100, + 101, + 57, + 45, + 98, + 100, + 51, + 51, + 45, + 51, + 57, + 98, + 51, + 97, + 49, + 57, + 99, + 53, + 56, + 97, + 50, + 34, + 44, + 34, + 117, + 117, + 105, + 100, + 34, + 58, + 34, + 57, + 55, + 98, + 54, + 99, + 50, + 102, + 57, + 45, + 101, + 53, + 51, + 51, + 45, + 52, + 100, + 101, + 57, + 45, + 98, + 100, + 51, + 51, + 45, + 51, + 57, + 98, + 51, + 97, + 49, + 57, + 99, + 53, + 56, + 97, + 50, + 34, + 44, + 34, + 100, + 111, + 109, + 101, + 105, + 110, + 34, + 58, + 34, + 65, + 65, + 66, + 34, + 44, + 34, + 114, + 115, + 105, + 110, + 34, + 58, + 34, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 34, + 44, + 34, + 99, + 111, + 110, + 116, + 97, + 99, + 116, + 112, + 101, + 114, + 115, + 111, + 111, + 110, + 66, + 101, + 104, + 101, + 101, + 114, + 78, + 97, + 97, + 109, + 34, + 58, + 34, + 84, + 101, + 115, + 116, + 32, + 80, + 101, + 114, + 115, + 111, + 111, + 110, + 34, + 44, + 34, + 99, + 111, + 110, + 116, + 97, + 99, + 116, + 112, + 101, + 114, + 115, + 111, + 111, + 110, + 66, + 101, + 104, + 101, + 101, + 114, + 84, + 101, + 108, + 101, + 102, + 111, + 111, + 110, + 110, + 117, + 109, + 109, + 101, + 114, + 34, + 58, + 34, + 34, + 44, + 34, + 99, + 111, + 110, + 116, + 97, + 99, + 116, + 112, + 101, + 114, + 115, + 111, + 111, + 110, + 66, + 101, + 104, + 101, + 101, + 114, + 69, + 109, + 97, + 105, + 108, + 97, + 100, + 114, + 101, + 115, + 34, + 58, + 34, + 34, + 44, + 34, + 122, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 98, + 101, + 115, + 108, + 117, + 105, + 116, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 105, + 110, + 102, + 111, + 114, + 109, + 97, + 116, + 105, + 101, + 111, + 98, + 106, + 101, + 99, + 116, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 125, + 44, + 123, + 34, + 117, + 114, + 108, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 105, + 92, + 47, + 118, + 49, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 117, + 115, + 115, + 101, + 110, + 92, + 47, + 52, + 55, + 53, + 55, + 101, + 57, + 98, + 54, + 45, + 51, + 102, + 57, + 101, + 45, + 52, + 51, + 50, + 102, + 45, + 97, + 100, + 56, + 49, + 45, + 99, + 48, + 53, + 48, + 51, + 50, + 102, + 54, + 53, + 100, + 57, + 53, + 34, + 44, + 34, + 117, + 117, + 105, + 100, + 34, + 58, + 34, + 52, + 55, + 53, + 55, + 101, + 57, + 98, + 54, + 45, + 51, + 102, + 57, + 101, + 45, + 52, + 51, + 50, + 102, + 45, + 97, + 100, + 56, + 49, + 45, + 99, + 48, + 53, + 48, + 51, + 50, + 102, + 54, + 53, + 100, + 57, + 53, + 34, + 44, + 34, + 100, + 111, + 109, + 101, + 105, + 110, + 34, + 58, + 34, + 65, + 65, + 66, + 34, + 44, + 34, + 114, + 115, + 105, + 110, + 34, + 58, + 34, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 34, + 44, + 34, + 99, + 111, + 110, + 116, + 97, + 99, + 116, + 112, + 101, + 114, + 115, + 111, + 111, + 110, + 66, + 101, + 104, + 101, + 101, + 114, + 78, + 97, + 97, + 109, + 34, + 58, + 34, + 84, + 101, + 115, + 116, + 32, + 80, + 101, + 114, + 115, + 111, + 111, + 110, + 34, + 44, + 34, + 99, + 111, + 110, + 116, + 97, + 99, + 116, + 112, + 101, + 114, + 115, + 111, + 111, + 110, + 66, + 101, + 104, + 101, + 101, + 114, + 84, + 101, + 108, + 101, + 102, + 111, + 111, + 110, + 110, + 117, + 109, + 109, + 101, + 114, + 34, + 58, + 34, + 34, + 44, + 34, + 99, + 111, + 110, + 116, + 97, + 99, + 116, + 112, + 101, + 114, + 115, + 111, + 111, + 110, + 66, + 101, + 104, + 101, + 101, + 114, + 69, + 109, + 97, + 105, + 108, + 97, + 100, + 114, + 101, + 115, + 34, + 58, + 34, + 34, + 44, + 34, + 122, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 98, + 101, + 115, + 108, + 117, + 105, + 116, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 105, + 110, + 102, + 111, + 114, + 109, + 97, + 116, + 105, + 101, + 111, + 98, + 106, + 101, + 99, + 116, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 125, + 44, + 123, + 34, + 117, + 114, + 108, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 105, + 92, + 47, + 118, + 49, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 117, + 115, + 115, + 101, + 110, + 92, + 47, + 52, + 57, + 51, + 54, + 97, + 54, + 102, + 98, + 45, + 55, + 97, + 56, + 54, + 45, + 52, + 48, + 57, + 98, + 45, + 57, + 52, + 55, + 51, + 45, + 51, + 99, + 52, + 99, + 56, + 57, + 53, + 98, + 56, + 101, + 56, + 57, + 34, + 44, + 34, + 117, + 117, + 105, + 100, + 34, + 58, + 34, + 52, + 57, + 51, + 54, + 97, + 54, + 102, + 98, + 45, + 55, + 97, + 56, + 54, + 45, + 52, + 48, + 57, + 98, + 45, + 57, + 52, + 55, + 51, + 45, + 51, + 99, + 52, + 99, + 56, + 57, + 53, + 98, + 56, + 101, + 56, + 57, + 34, + 44, + 34, + 100, + 111, + 109, + 101, + 105, + 110, + 34, + 58, + 34, + 90, + 71, + 87, + 84, + 34, + 44, + 34, + 114, + 115, + 105, + 110, + 34, + 58, + 34, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 34, + 44, + 34, + 99, + 111, + 110, + 116, + 97, + 99, + 116, + 112, + 101, + 114, + 115, + 111, + 111, + 110, + 66, + 101, + 104, + 101, + 101, + 114, + 78, + 97, + 97, + 109, + 34, + 58, + 34, + 84, + 101, + 115, + 116, + 32, + 80, + 101, + 114, + 115, + 111, + 111, + 110, + 34, + 44, + 34, + 99, + 111, + 110, + 116, + 97, + 99, + 116, + 112, + 101, + 114, + 115, + 111, + 111, + 110, + 66, + 101, + 104, + 101, + 101, + 114, + 84, + 101, + 108, + 101, + 102, + 111, + 111, + 110, + 110, + 117, + 109, + 109, + 101, + 114, + 34, + 58, + 34, + 34, + 44, + 34, + 99, + 111, + 110, + 116, + 97, + 99, + 116, + 112, + 101, + 114, + 115, + 111, + 111, + 110, + 66, + 101, + 104, + 101, + 101, + 114, + 69, + 109, + 97, + 105, + 108, + 97, + 100, + 114, + 101, + 115, + 34, + 58, + 34, + 34, + 44, + 34, + 122, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 98, + 101, + 115, + 108, + 117, + 105, + 116, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 105, + 110, + 102, + 111, + 114, + 109, + 97, + 116, + 105, + 101, + 111, + 98, + 106, + 101, + 99, + 116, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 125, + 44, + 123, + 34, + 117, + 114, + 108, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 105, + 92, + 47, + 118, + 49, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 117, + 115, + 115, + 101, + 110, + 92, + 47, + 55, + 53, + 101, + 51, + 100, + 98, + 57, + 56, + 45, + 99, + 98, + 57, + 101, + 45, + 52, + 99, + 48, + 57, + 45, + 57, + 48, + 49, + 48, + 45, + 99, + 48, + 53, + 52, + 102, + 53, + 97, + 52, + 98, + 98, + 57, + 99, + 34, + 44, + 34, + 117, + 117, + 105, + 100, + 34, + 58, + 34, + 55, + 53, + 101, + 51, + 100, + 98, + 57, + 56, + 45, + 99, + 98, + 57, + 101, + 45, + 52, + 99, + 48, + 57, + 45, + 57, + 48, + 49, + 48, + 45, + 99, + 48, + 53, + 52, + 102, + 53, + 97, + 52, + 98, + 98, + 57, + 99, + 34, + 44, + 34, + 100, + 111, + 109, + 101, + 105, + 110, + 34, + 58, + 34, + 65, + 65, + 66, + 34, + 44, + 34, + 114, + 115, + 105, + 110, + 34, + 58, + 34, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 34, + 44, + 34, + 99, + 111, + 110, + 116, + 97, + 99, + 116, + 112, + 101, + 114, + 115, + 111, + 111, + 110, + 66, + 101, + 104, + 101, + 101, + 114, + 78, + 97, + 97, + 109, + 34, + 58, + 34, + 84, + 101, + 115, + 116, + 32, + 80, + 101, + 114, + 115, + 111, + 111, + 110, + 34, + 44, + 34, + 99, + 111, + 110, + 116, + 97, + 99, + 116, + 112, + 101, + 114, + 115, + 111, + 111, + 110, + 66, + 101, + 104, + 101, + 101, + 114, + 84, + 101, + 108, + 101, + 102, + 111, + 111, + 110, + 110, + 117, + 109, + 109, + 101, + 114, + 34, + 58, + 34, + 34, + 44, + 34, + 99, + 111, + 110, + 116, + 97, + 99, + 116, + 112, + 101, + 114, + 115, + 111, + 111, + 110, + 66, + 101, + 104, + 101, + 101, + 114, + 69, + 109, + 97, + 105, + 108, + 97, + 100, + 114, + 101, + 115, + 34, + 58, + 34, + 34, + 44, + 34, + 122, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 98, + 101, + 115, + 108, + 117, + 105, + 116, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 105, + 110, + 102, + 111, + 114, + 109, + 97, + 116, + 105, + 101, + 111, + 98, + 106, + 101, + 99, + 116, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 125, + 44, + 123, + 34, + 117, + 114, + 108, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 105, + 92, + 47, + 118, + 49, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 117, + 115, + 115, + 101, + 110, + 92, + 47, + 98, + 100, + 49, + 51, + 98, + 57, + 52, + 56, + 45, + 52, + 100, + 97, + 98, + 45, + 52, + 56, + 55, + 98, + 45, + 57, + 97, + 48, + 56, + 45, + 51, + 100, + 52, + 53, + 100, + 54, + 97, + 54, + 49, + 54, + 99, + 100, + 34, + 44, + 34, + 117, + 117, + 105, + 100, + 34, + 58, + 34, + 98, + 100, + 49, + 51, + 98, + 57, + 52, + 56, + 45, + 52, + 100, + 97, + 98, + 45, + 52, + 56, + 55, + 98, + 45, + 57, + 97, + 48, + 56, + 45, + 51, + 100, + 52, + 53, + 100, + 54, + 97, + 54, + 49, + 54, + 99, + 100, + 34, + 44, + 34, + 100, + 111, + 109, + 101, + 105, + 110, + 34, + 58, + 34, + 90, + 71, + 87, + 84, + 34, + 44, + 34, + 114, + 115, + 105, + 110, + 34, + 58, + 34, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 34, + 44, + 34, + 99, + 111, + 110, + 116, + 97, + 99, + 116, + 112, + 101, + 114, + 115, + 111, + 111, + 110, + 66, + 101, + 104, + 101, + 101, + 114, + 78, + 97, + 97, + 109, + 34, + 58, + 34, + 84, + 101, + 115, + 116, + 32, + 80, + 101, + 114, + 115, + 111, + 111, + 110, + 34, + 44, + 34, + 99, + 111, + 110, + 116, + 97, + 99, + 116, + 112, + 101, + 114, + 115, + 111, + 111, + 110, + 66, + 101, + 104, + 101, + 101, + 114, + 84, + 101, + 108, + 101, + 102, + 111, + 111, + 110, + 110, + 117, + 109, + 109, + 101, + 114, + 34, + 58, + 34, + 34, + 44, + 34, + 99, + 111, + 110, + 116, + 97, + 99, + 116, + 112, + 101, + 114, + 115, + 111, + 111, + 110, + 66, + 101, + 104, + 101, + 101, + 114, + 69, + 109, + 97, + 105, + 108, + 97, + 100, + 114, + 101, + 115, + 34, + 58, + 34, + 34, + 44, + 34, + 122, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 98, + 101, + 115, + 108, + 117, + 105, + 116, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 105, + 110, + 102, + 111, + 114, + 109, + 97, + 116, + 105, + 101, + 111, + 98, + 106, + 101, + 99, + 116, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 125, + 44, + 123, + 34, + 117, + 114, + 108, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 105, + 92, + 47, + 118, + 49, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 117, + 115, + 115, + 101, + 110, + 92, + 47, + 56, + 53, + 101, + 100, + 100, + 100, + 98, + 101, + 45, + 49, + 57, + 98, + 55, + 45, + 52, + 101, + 56, + 54, + 45, + 98, + 101, + 54, + 57, + 45, + 53, + 98, + 101, + 99, + 55, + 99, + 102, + 54, + 56, + 53, + 55, + 97, + 34, + 44, + 34, + 117, + 117, + 105, + 100, + 34, + 58, + 34, + 56, + 53, + 101, + 100, + 100, + 100, + 98, + 101, + 45, + 49, + 57, + 98, + 55, + 45, + 52, + 101, + 56, + 54, + 45, + 98, + 101, + 54, + 57, + 45, + 53, + 98, + 101, + 99, + 55, + 99, + 102, + 54, + 56, + 53, + 55, + 97, + 34, + 44, + 34, + 100, + 111, + 109, + 101, + 105, + 110, + 34, + 58, + 34, + 65, + 65, + 66, + 34, + 44, + 34, + 114, + 115, + 105, + 110, + 34, + 58, + 34, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 34, + 44, + 34, + 99, + 111, + 110, + 116, + 97, + 99, + 116, + 112, + 101, + 114, + 115, + 111, + 111, + 110, + 66, + 101, + 104, + 101, + 101, + 114, + 78, + 97, + 97, + 109, + 34, + 58, + 34, + 84, + 101, + 115, + 116, + 32, + 80, + 101, + 114, + 115, + 111, + 111, + 110, + 34, + 44, + 34, + 99, + 111, + 110, + 116, + 97, + 99, + 116, + 112, + 101, + 114, + 115, + 111, + 111, + 110, + 66, + 101, + 104, + 101, + 101, + 114, + 84, + 101, + 108, + 101, + 102, + 111, + 111, + 110, + 110, + 117, + 109, + 109, + 101, + 114, + 34, + 58, + 34, + 34, + 44, + 34, + 99, + 111, + 110, + 116, + 97, + 99, + 116, + 112, + 101, + 114, + 115, + 111, + 111, + 110, + 66, + 101, + 104, + 101, + 101, + 114, + 69, + 109, + 97, + 105, + 108, + 97, + 100, + 114, + 101, + 115, + 34, + 58, + 34, + 34, + 44, + 34, + 122, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 98, + 101, + 115, + 108, + 117, + 105, + 116, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 105, + 110, + 102, + 111, + 114, + 109, + 97, + 116, + 105, + 101, + 111, + 98, + 106, + 101, + 99, + 116, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 125, + 44, + 123, + 34, + 117, + 114, + 108, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 105, + 92, + 47, + 118, + 49, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 117, + 115, + 115, + 101, + 110, + 92, + 47, + 51, + 55, + 97, + 48, + 99, + 52, + 53, + 99, + 45, + 55, + 98, + 101, + 57, + 45, + 52, + 49, + 102, + 50, + 45, + 98, + 102, + 57, + 55, + 45, + 57, + 48, + 51, + 52, + 49, + 97, + 56, + 50, + 49, + 51, + 50, + 55, + 34, + 44, + 34, + 117, + 117, + 105, + 100, + 34, + 58, + 34, + 51, + 55, + 97, + 48, + 99, + 52, + 53, + 99, + 45, + 55, + 98, + 101, + 57, + 45, + 52, + 49, + 102, + 50, + 45, + 98, + 102, + 57, + 55, + 45, + 57, + 48, + 51, + 52, + 49, + 97, + 56, + 50, + 49, + 51, + 50, + 55, + 34, + 44, + 34, + 100, + 111, + 109, + 101, + 105, + 110, + 34, + 58, + 34, + 90, + 71, + 87, + 84, + 34, + 44, + 34, + 114, + 115, + 105, + 110, + 34, + 58, + 34, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 34, + 44, + 34, + 99, + 111, + 110, + 116, + 97, + 99, + 116, + 112, + 101, + 114, + 115, + 111, + 111, + 110, + 66, + 101, + 104, + 101, + 101, + 114, + 78, + 97, + 97, + 109, + 34, + 58, + 34, + 84, + 101, + 115, + 116, + 32, + 80, + 101, + 114, + 115, + 111, + 111, + 110, + 34, + 44, + 34, + 99, + 111, + 110, + 116, + 97, + 99, + 116, + 112, + 101, + 114, + 115, + 111, + 111, + 110, + 66, + 101, + 104, + 101, + 101, + 114, + 84, + 101, + 108, + 101, + 102, + 111, + 111, + 110, + 110, + 117, + 109, + 109, + 101, + 114, + 34, + 58, + 34, + 34, + 44, + 34, + 99, + 111, + 110, + 116, + 97, + 99, + 116, + 112, + 101, + 114, + 115, + 111, + 111, + 110, + 66, + 101, + 104, + 101, + 101, + 114, + 69, + 109, + 97, + 105, + 108, + 97, + 100, + 114, + 101, + 115, + 34, + 58, + 34, + 34, + 44, + 34, + 122, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 98, + 101, + 115, + 108, + 117, + 105, + 116, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 105, + 110, + 102, + 111, + 114, + 109, + 97, + 116, + 105, + 101, + 111, + 98, + 106, + 101, + 99, + 116, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 125, + 44, + 123, + 34, + 117, + 114, + 108, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 105, + 92, + 47, + 118, + 49, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 117, + 115, + 115, + 101, + 110, + 92, + 47, + 55, + 98, + 57, + 100, + 48, + 100, + 53, + 57, + 45, + 51, + 50, + 97, + 101, + 45, + 52, + 98, + 53, + 98, + 45, + 57, + 101, + 50, + 52, + 45, + 53, + 101, + 55, + 52, + 102, + 99, + 49, + 101, + 55, + 56, + 102, + 56, + 34, + 44, + 34, + 117, + 117, + 105, + 100, + 34, + 58, + 34, + 55, + 98, + 57, + 100, + 48, + 100, + 53, + 57, + 45, + 51, + 50, + 97, + 101, + 45, + 52, + 98, + 53, + 98, + 45, + 57, + 101, + 50, + 52, + 45, + 53, + 101, + 55, + 52, + 102, + 99, + 49, + 101, + 55, + 56, + 102, + 56, + 34, + 44, + 34, + 100, + 111, + 109, + 101, + 105, + 110, + 34, + 58, + 34, + 65, + 65, + 66, + 34, + 44, + 34, + 114, + 115, + 105, + 110, + 34, + 58, + 34, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 34, + 44, + 34, + 99, + 111, + 110, + 116, + 97, + 99, + 116, + 112, + 101, + 114, + 115, + 111, + 111, + 110, + 66, + 101, + 104, + 101, + 101, + 114, + 78, + 97, + 97, + 109, + 34, + 58, + 34, + 84, + 101, + 115, + 116, + 32, + 80, + 101, + 114, + 115, + 111, + 111, + 110, + 34, + 44, + 34, + 99, + 111, + 110, + 116, + 97, + 99, + 116, + 112, + 101, + 114, + 115, + 111, + 111, + 110, + 66, + 101, + 104, + 101, + 101, + 114, + 84, + 101, + 108, + 101, + 102, + 111, + 111, + 110, + 110, + 117, + 109, + 109, + 101, + 114, + 34, + 58, + 34, + 34, + 44, + 34, + 99, + 111, + 110, + 116, + 97, + 99, + 116, + 112, + 101, + 114, + 115, + 111, + 111, + 110, + 66, + 101, + 104, + 101, + 101, + 114, + 69, + 109, + 97, + 105, + 108, + 97, + 100, + 114, + 101, + 115, + 34, + 58, + 34, + 34, + 44, + 34, + 122, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 98, + 101, + 115, + 108, + 117, + 105, + 116, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 105, + 110, + 102, + 111, + 114, + 109, + 97, + 116, + 105, + 101, + 111, + 98, + 106, + 101, + 99, + 116, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 125, + 44, + 123, + 34, + 117, + 114, + 108, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 105, + 92, + 47, + 118, + 49, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 117, + 115, + 115, + 101, + 110, + 92, + 47, + 48, + 101, + 53, + 49, + 55, + 99, + 97, + 53, + 45, + 56, + 57, + 49, + 98, + 45, + 52, + 53, + 97, + 57, + 45, + 98, + 56, + 50, + 101, + 45, + 101, + 57, + 56, + 48, + 57, + 54, + 57, + 101, + 57, + 57, + 50, + 100, + 34, + 44, + 34, + 117, + 117, + 105, + 100, + 34, + 58, + 34, + 48, + 101, + 53, + 49, + 55, + 99, + 97, + 53, + 45, + 56, + 57, + 49, + 98, + 45, + 52, + 53, + 97, + 57, + 45, + 98, + 56, + 50, + 101, + 45, + 101, + 57, + 56, + 48, + 57, + 54, + 57, + 101, + 57, + 57, + 50, + 100, + 34, + 44, + 34, + 100, + 111, + 109, + 101, + 105, + 110, + 34, + 58, + 34, + 90, + 71, + 87, + 84, + 34, + 44, + 34, + 114, + 115, + 105, + 110, + 34, + 58, + 34, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 34, + 44, + 34, + 99, + 111, + 110, + 116, + 97, + 99, + 116, + 112, + 101, + 114, + 115, + 111, + 111, + 110, + 66, + 101, + 104, + 101, + 101, + 114, + 78, + 97, + 97, + 109, + 34, + 58, + 34, + 84, + 101, + 115, + 116, + 32, + 80, + 101, + 114, + 115, + 111, + 111, + 110, + 34, + 44, + 34, + 99, + 111, + 110, + 116, + 97, + 99, + 116, + 112, + 101, + 114, + 115, + 111, + 111, + 110, + 66, + 101, + 104, + 101, + 101, + 114, + 84, + 101, + 108, + 101, + 102, + 111, + 111, + 110, + 110, + 117, + 109, + 109, + 101, + 114, + 34, + 58, + 34, + 34, + 44, + 34, + 99, + 111, + 110, + 116, + 97, + 99, + 116, + 112, + 101, + 114, + 115, + 111, + 111, + 110, + 66, + 101, + 104, + 101, + 101, + 114, + 69, + 109, + 97, + 105, + 108, + 97, + 100, + 114, + 101, + 115, + 34, + 58, + 34, + 34, + 44, + 34, + 122, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 98, + 101, + 115, + 108, + 117, + 105, + 116, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 105, + 110, + 102, + 111, + 114, + 109, + 97, + 116, + 105, + 101, + 111, + 98, + 106, + 101, + 99, + 116, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 125, + 44, + 123, + 34, + 117, + 114, + 108, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 105, + 92, + 47, + 118, + 49, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 117, + 115, + 115, + 101, + 110, + 92, + 47, + 99, + 99, + 97, + 50, + 100, + 57, + 102, + 100, + 45, + 50, + 56, + 56, + 102, + 45, + 52, + 56, + 48, + 57, + 45, + 56, + 48, + 53, + 54, + 45, + 101, + 54, + 101, + 51, + 98, + 51, + 53, + 98, + 48, + 98, + 102, + 100, + 34, + 44, + 34, + 117, + 117, + 105, + 100, + 34, + 58, + 34, + 99, + 99, + 97, + 50, + 100, + 57, + 102, + 100, + 45, + 50, + 56, + 56, + 102, + 45, + 52, + 56, + 48, + 57, + 45, + 56, + 48, + 53, + 54, + 45, + 101, + 54, + 101, + 51, + 98, + 51, + 53, + 98, + 48, + 98, + 102, + 100, + 34, + 44, + 34, + 100, + 111, + 109, + 101, + 105, + 110, + 34, + 58, + 34, + 65, + 65, + 66, + 34, + 44, + 34, + 114, + 115, + 105, + 110, + 34, + 58, + 34, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 34, + 44, + 34, + 99, + 111, + 110, + 116, + 97, + 99, + 116, + 112, + 101, + 114, + 115, + 111, + 111, + 110, + 66, + 101, + 104, + 101, + 101, + 114, + 78, + 97, + 97, + 109, + 34, + 58, + 34, + 84, + 101, + 115, + 116, + 32, + 80, + 101, + 114, + 115, + 111, + 111, + 110, + 34, + 44, + 34, + 99, + 111, + 110, + 116, + 97, + 99, + 116, + 112, + 101, + 114, + 115, + 111, + 111, + 110, + 66, + 101, + 104, + 101, + 101, + 114, + 84, + 101, + 108, + 101, + 102, + 111, + 111, + 110, + 110, + 117, + 109, + 109, + 101, + 114, + 34, + 58, + 34, + 34, + 44, + 34, + 99, + 111, + 110, + 116, + 97, + 99, + 116, + 112, + 101, + 114, + 115, + 111, + 111, + 110, + 66, + 101, + 104, + 101, + 101, + 114, + 69, + 109, + 97, + 105, + 108, + 97, + 100, + 114, + 101, + 115, + 34, + 58, + 34, + 34, + 44, + 34, + 122, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 98, + 101, + 115, + 108, + 117, + 105, + 116, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 105, + 110, + 102, + 111, + 114, + 109, + 97, + 116, + 105, + 101, + 111, + 98, + 106, + 101, + 99, + 116, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 125, + 44, + 123, + 34, + 117, + 114, + 108, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 105, + 92, + 47, + 118, + 49, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 117, + 115, + 115, + 101, + 110, + 92, + 47, + 50, + 48, + 48, + 101, + 54, + 55, + 98, + 55, + 45, + 99, + 50, + 98, + 48, + 45, + 52, + 100, + 53, + 50, + 45, + 56, + 53, + 57, + 54, + 45, + 99, + 48, + 57, + 98, + 48, + 57, + 49, + 49, + 48, + 98, + 48, + 98, + 34, + 44, + 34, + 117, + 117, + 105, + 100, + 34, + 58, + 34, + 50, + 48, + 48, + 101, + 54, + 55, + 98, + 55, + 45, + 99, + 50, + 98, + 48, + 45, + 52, + 100, + 53, + 50, + 45, + 56, + 53, + 57, + 54, + 45, + 99, + 48, + 57, + 98, + 48, + 57, + 49, + 49, + 48, + 98, + 48, + 98, + 34, + 44, + 34, + 100, + 111, + 109, + 101, + 105, + 110, + 34, + 58, + 34, + 90, + 71, + 87, + 84, + 34, + 44, + 34, + 114, + 115, + 105, + 110, + 34, + 58, + 34, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 34, + 44, + 34, + 99, + 111, + 110, + 116, + 97, + 99, + 116, + 112, + 101, + 114, + 115, + 111, + 111, + 110, + 66, + 101, + 104, + 101, + 101, + 114, + 78, + 97, + 97, + 109, + 34, + 58, + 34, + 84, + 101, + 115, + 116, + 32, + 80, + 101, + 114, + 115, + 111, + 111, + 110, + 34, + 44, + 34, + 99, + 111, + 110, + 116, + 97, + 99, + 116, + 112, + 101, + 114, + 115, + 111, + 111, + 110, + 66, + 101, + 104, + 101, + 101, + 114, + 84, + 101, + 108, + 101, + 102, + 111, + 111, + 110, + 110, + 117, + 109, + 109, + 101, + 114, + 34, + 58, + 34, + 34, + 44, + 34, + 99, + 111, + 110, + 116, + 97, + 99, + 116, + 112, + 101, + 114, + 115, + 111, + 111, + 110, + 66, + 101, + 104, + 101, + 101, + 114, + 69, + 109, + 97, + 105, + 108, + 97, + 100, + 114, + 101, + 115, + 34, + 58, + 34, + 34, + 44, + 34, + 122, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 98, + 101, + 115, + 108, + 117, + 105, + 116, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 105, + 110, + 102, + 111, + 114, + 109, + 97, + 116, + 105, + 101, + 111, + 98, + 106, + 101, + 99, + 116, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 125, + 44, + 123, + 34, + 117, + 114, + 108, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 105, + 92, + 47, + 118, + 49, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 117, + 115, + 115, + 101, + 110, + 92, + 47, + 97, + 54, + 50, + 51, + 48, + 53, + 52, + 102, + 45, + 100, + 48, + 57, + 98, + 45, + 52, + 101, + 54, + 102, + 45, + 98, + 99, + 54, + 56, + 45, + 98, + 101, + 55, + 97, + 51, + 57, + 56, + 99, + 99, + 51, + 53, + 50, + 34, + 44, + 34, + 117, + 117, + 105, + 100, + 34, + 58, + 34, + 97, + 54, + 50, + 51, + 48, + 53, + 52, + 102, + 45, + 100, + 48, + 57, + 98, + 45, + 52, + 101, + 54, + 102, + 45, + 98, + 99, + 54, + 56, + 45, + 98, + 101, + 55, + 97, + 51, + 57, + 56, + 99, + 99, + 51, + 53, + 50, + 34, + 44, + 34, + 100, + 111, + 109, + 101, + 105, + 110, + 34, + 58, + 34, + 65, + 65, + 66, + 34, + 44, + 34, + 114, + 115, + 105, + 110, + 34, + 58, + 34, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 34, + 44, + 34, + 99, + 111, + 110, + 116, + 97, + 99, + 116, + 112, + 101, + 114, + 115, + 111, + 111, + 110, + 66, + 101, + 104, + 101, + 101, + 114, + 78, + 97, + 97, + 109, + 34, + 58, + 34, + 84, + 101, + 115, + 116, + 32, + 80, + 101, + 114, + 115, + 111, + 111, + 110, + 34, + 44, + 34, + 99, + 111, + 110, + 116, + 97, + 99, + 116, + 112, + 101, + 114, + 115, + 111, + 111, + 110, + 66, + 101, + 104, + 101, + 101, + 114, + 84, + 101, + 108, + 101, + 102, + 111, + 111, + 110, + 110, + 117, + 109, + 109, + 101, + 114, + 34, + 58, + 34, + 34, + 44, + 34, + 99, + 111, + 110, + 116, + 97, + 99, + 116, + 112, + 101, + 114, + 115, + 111, + 111, + 110, + 66, + 101, + 104, + 101, + 101, + 114, + 69, + 109, + 97, + 105, + 108, + 97, + 100, + 114, + 101, + 115, + 34, + 58, + 34, + 34, + 44, + 34, + 122, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 98, + 101, + 115, + 108, + 117, + 105, + 116, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 105, + 110, + 102, + 111, + 114, + 109, + 97, + 116, + 105, + 101, + 111, + 98, + 106, + 101, + 99, + 116, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 125, + 44, + 123, + 34, + 117, + 114, + 108, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 105, + 92, + 47, + 118, + 49, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 117, + 115, + 115, + 101, + 110, + 92, + 47, + 50, + 56, + 54, + 98, + 101, + 57, + 51, + 51, + 45, + 50, + 97, + 51, + 52, + 45, + 52, + 54, + 52, + 53, + 45, + 98, + 48, + 49, + 48, + 45, + 57, + 57, + 98, + 56, + 56, + 53, + 50, + 101, + 57, + 48, + 50, + 48, + 34, + 44, + 34, + 117, + 117, + 105, + 100, + 34, + 58, + 34, + 50, + 56, + 54, + 98, + 101, + 57, + 51, + 51, + 45, + 50, + 97, + 51, + 52, + 45, + 52, + 54, + 52, + 53, + 45, + 98, + 48, + 49, + 48, + 45, + 57, + 57, + 98, + 56, + 56, + 53, + 50, + 101, + 57, + 48, + 50, + 48, + 34, + 44, + 34, + 100, + 111, + 109, + 101, + 105, + 110, + 34, + 58, + 34, + 90, + 71, + 87, + 84, + 34, + 44, + 34, + 114, + 115, + 105, + 110, + 34, + 58, + 34, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 34, + 44, + 34, + 99, + 111, + 110, + 116, + 97, + 99, + 116, + 112, + 101, + 114, + 115, + 111, + 111, + 110, + 66, + 101, + 104, + 101, + 101, + 114, + 78, + 97, + 97, + 109, + 34, + 58, + 34, + 84, + 101, + 115, + 116, + 32, + 80, + 101, + 114, + 115, + 111, + 111, + 110, + 34, + 44, + 34, + 99, + 111, + 110, + 116, + 97, + 99, + 116, + 112, + 101, + 114, + 115, + 111, + 111, + 110, + 66, + 101, + 104, + 101, + 101, + 114, + 84, + 101, + 108, + 101, + 102, + 111, + 111, + 110, + 110, + 117, + 109, + 109, + 101, + 114, + 34, + 58, + 34, + 34, + 44, + 34, + 99, + 111, + 110, + 116, + 97, + 99, + 116, + 112, + 101, + 114, + 115, + 111, + 111, + 110, + 66, + 101, + 104, + 101, + 101, + 114, + 69, + 109, + 97, + 105, + 108, + 97, + 100, + 114, + 101, + 115, + 34, + 58, + 34, + 34, + 44, + 34, + 122, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 98, + 101, + 115, + 108, + 117, + 105, + 116, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 105, + 110, + 102, + 111, + 114, + 109, + 97, + 116, + 105, + 101, + 111, + 98, + 106, + 101, + 99, + 116, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 125, + 44, + 123, + 34, + 117, + 114, + 108, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 105, + 92, + 47, + 118, + 49, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 117, + 115, + 115, + 101, + 110, + 92, + 47, + 100, + 56, + 102, + 102, + 53, + 50, + 53, + 53, + 45, + 97, + 100, + 102, + 97, + 45, + 52, + 52, + 51, + 102, + 45, + 98, + 49, + 102, + 57, + 45, + 57, + 99, + 98, + 57, + 55, + 100, + 53, + 98, + 51, + 99, + 100, + 99, + 34, + 44, + 34, + 117, + 117, + 105, + 100, + 34, + 58, + 34, + 100, + 56, + 102, + 102, + 53, + 50, + 53, + 53, + 45, + 97, + 100, + 102, + 97, + 45, + 52, + 52, + 51, + 102, + 45, + 98, + 49, + 102, + 57, + 45, + 57, + 99, + 98, + 57, + 55, + 100, + 53, + 98, + 51, + 99, + 100, + 99, + 34, + 44, + 34, + 100, + 111, + 109, + 101, + 105, + 110, + 34, + 58, + 34, + 65, + 65, + 66, + 34, + 44, + 34, + 114, + 115, + 105, + 110, + 34, + 58, + 34, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 34, + 44, + 34, + 99, + 111, + 110, + 116, + 97, + 99, + 116, + 112, + 101, + 114, + 115, + 111, + 111, + 110, + 66, + 101, + 104, + 101, + 101, + 114, + 78, + 97, + 97, + 109, + 34, + 58, + 34, + 84, + 101, + 115, + 116, + 32, + 80, + 101, + 114, + 115, + 111, + 111, + 110, + 34, + 44, + 34, + 99, + 111, + 110, + 116, + 97, + 99, + 116, + 112, + 101, + 114, + 115, + 111, + 111, + 110, + 66, + 101, + 104, + 101, + 101, + 114, + 84, + 101, + 108, + 101, + 102, + 111, + 111, + 110, + 110, + 117, + 109, + 109, + 101, + 114, + 34, + 58, + 34, + 34, + 44, + 34, + 99, + 111, + 110, + 116, + 97, + 99, + 116, + 112, + 101, + 114, + 115, + 111, + 111, + 110, + 66, + 101, + 104, + 101, + 101, + 114, + 69, + 109, + 97, + 105, + 108, + 97, + 100, + 114, + 101, + 115, + 34, + 58, + 34, + 34, + 44, + 34, + 122, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 98, + 101, + 115, + 108, + 117, + 105, + 116, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 105, + 110, + 102, + 111, + 114, + 109, + 97, + 116, + 105, + 101, + 111, + 98, + 106, + 101, + 99, + 116, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 125, + 44, + 123, + 34, + 117, + 114, + 108, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 105, + 92, + 47, + 118, + 49, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 117, + 115, + 115, + 101, + 110, + 92, + 47, + 49, + 100, + 54, + 49, + 51, + 51, + 51, + 48, + 45, + 48, + 97, + 54, + 102, + 45, + 52, + 51, + 56, + 50, + 45, + 97, + 99, + 48, + 48, + 45, + 53, + 50, + 98, + 50, + 53, + 57, + 99, + 52, + 102, + 56, + 99, + 97, + 34, + 44, + 34, + 117, + 117, + 105, + 100, + 34, + 58, + 34, + 49, + 100, + 54, + 49, + 51, + 51, + 51, + 48, + 45, + 48, + 97, + 54, + 102, + 45, + 52, + 51, + 56, + 50, + 45, + 97, + 99, + 48, + 48, + 45, + 53, + 50, + 98, + 50, + 53, + 57, + 99, + 52, + 102, + 56, + 99, + 97, + 34, + 44, + 34, + 100, + 111, + 109, + 101, + 105, + 110, + 34, + 58, + 34, + 90, + 71, + 87, + 84, + 34, + 44, + 34, + 114, + 115, + 105, + 110, + 34, + 58, + 34, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 34, + 44, + 34, + 99, + 111, + 110, + 116, + 97, + 99, + 116, + 112, + 101, + 114, + 115, + 111, + 111, + 110, + 66, + 101, + 104, + 101, + 101, + 114, + 78, + 97, + 97, + 109, + 34, + 58, + 34, + 84, + 101, + 115, + 116, + 32, + 80, + 101, + 114, + 115, + 111, + 111, + 110, + 34, + 44, + 34, + 99, + 111, + 110, + 116, + 97, + 99, + 116, + 112, + 101, + 114, + 115, + 111, + 111, + 110, + 66, + 101, + 104, + 101, + 101, + 114, + 84, + 101, + 108, + 101, + 102, + 111, + 111, + 110, + 110, + 117, + 109, + 109, + 101, + 114, + 34, + 58, + 34, + 34, + 44, + 34, + 99, + 111, + 110, + 116, + 97, + 99, + 116, + 112, + 101, + 114, + 115, + 111, + 111, + 110, + 66, + 101, + 104, + 101, + 101, + 114, + 69, + 109, + 97, + 105, + 108, + 97, + 100, + 114, + 101, + 115, + 34, + 58, + 34, + 34, + 44, + 34, + 122, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 98, + 101, + 115, + 108, + 117, + 105, + 116, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 105, + 110, + 102, + 111, + 114, + 109, + 97, + 116, + 105, + 101, + 111, + 98, + 106, + 101, + 99, + 116, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 125, + 93, + 125 + ] + }, + "cookie": [], + "responseTime": 104, + "responseSize": 8033 + }, + "id": "49fb6582-797f-416a-9b5e-a1fb156e54c6" + }, + { + "cursor": { + "ref": "910bcc5f-aef1-4262-8342-345521f028c7", + "length": 313, + "cycles": 1, + "position": 117, + "iteration": 0, + "httpRequestId": "4ed84dc6-0b44-4f0a-bc4d-ad679b9a60a4" + }, + "item": { + "id": "66fb3429-7977-44ac-b41a-104bde2b6911", + "name": "Create Zaak to close and reopen", + "request": { + "url": { + "path": [ + "zaken" + ], + "host": [ + "{{zrc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Accept-Crs", + "value": "EPSG:4326" + }, + { + "key": "Content-Crs", + "value": "EPSG:4326" + }, + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\r\n \"url\": \"https://zaken.spt-rx-services.nl/api/v1/zaken/cba40feb-2b38-4490-b12d-84a39e8df361\",\r\n \"uuid\": \"cba40feb-2b38-4490-b12d-84a39e8df361\",\r\n \"bronorganisatie\": \"000000000\",\r\n \"omschrijving\": \"string\",\r\n \"toelichting\": \"string\",\r\n \"zaaktype\": \"{{zaaktype_url}}\",\r\n \"registratiedatum\": \"2019-04-09\",\r\n \"verantwoordelijkeOrganisatie\": \"000000000\",\r\n \"startdatum\": \"2019-04-09\",\r\n \"einddatum\": null,\r\n \"einddatumGepland\": \"2019-04-20\",\r\n \"uiterlijkeEinddatumAfdoening\": \"2019-04-09\",\r\n \"publicatiedatum\": \"2019-04-09\",\r\n \"communicatiekanaal\": \"\",\r\n \"productenOfDiensten\": [],\r\n \"vertrouwelijkheidaanduiding\": \"geheim\",\r\n \"betalingsindicatie\": \"geheel\",\r\n \"betalingsindicatieWeergave\": null,\r\n \"laatsteBetaaldatum\": \"2019-01-01T00:00:00Z\",\r\n \"zaakgeometrie\": {\r\n \"type\": \"Point\",\r\n \"coordinates\": [\r\n 53.0,\r\n 5.0\r\n ]\r\n },\r\n \"verlenging\": null,\r\n \"opschorting\": {\r\n \"indicatie\": true,\r\n \"reden\": \"string\"\r\n },\r\n \"selectielijstklasse\": \"https://referentielijsten.roxit.nl/api/v1/resultaten/0fe71ce3-b1e1-48eb-9070-be2756fc71b5\",\r\n \"hoofdzaak\": null,\r\n \"deelzaken\": [],\r\n \"relevanteAndereZaken\": [],\r\n \"eigenschappen\": [],\r\n \"rollen\": [],\r\n \"status\": null,\r\n \"zaakinformatieobjecten\": [],\r\n \"zaakobjecten\": [],\r\n \"resultaat\": null,\r\n \"kenmerken\": [],\r\n \"archiefnominatie\": null,\r\n \"archiefstatus\": \"nog_te_archiveren\",\r\n \"archiefactiedatum\": null,\r\n \"opdrachtgevendeOrganisatie\": null,\r\n \"processobjectaard\": null,\r\n \"startdatumBewaartermijn\": null,\r\n \"processobject\": null\r\n}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "59fca861-e5bb-4f63-ba6f-56fc8c8fc2a4", + "type": "text/javascript", + "packages": {}, + "exec": [ + "pm.environment.set(\"created_zaak_url\", pm.response.json().url);" + ], + "_lastExecutionId": "9a2368e2-0316-438b-ada6-d8ac2b6eefd5" + } + }, + { + "listen": "prerequest", + "script": { + "id": "4d72a9e9-9820-4a0f-87e1-608a20b3c573", + "type": "text/javascript", + "packages": {}, + "exec": [], + "_lastExecutionId": "374e9018-7fe1-4e9c-89f3-b17a2a6e8a56" + } + } + ] + }, + "request": { + "url": { + "protocol": "http", + "port": "8080", + "path": [ + "index.php", + "apps", + "procest", + "api", + "zgw", + "zaken", + "v1", + "zaken" + ], + "host": [ + "localhost" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Accept-Crs", + "value": "EPSG:4326" + }, + { + "key": "Content-Crs", + "value": "EPSG:4326" + }, + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Authorization", + "value": "Bearer eyJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJwcm9jZXN0LWFkbWluIiwiY2xpZW50X2lkIjoicHJvY2VzdC1hZG1pbiIsImlhdCI6IjE3NzMxNDUxNjkiLCJ1c2VyX2lkIjoicHJvY2VzdC1hZG1pbiIsInVzZXJfcmVwcmVzZW50YXRpb24iOiIifQ.EGTEBFrL1ksChcwq4QSZhwQ8KaM3mR0nqEZ_2KnWO9s", + "system": true + }, + { + "key": "User-Agent", + "value": "PostmanRuntime/7.39.1", + "system": true + }, + { + "key": "Accept", + "value": "*/*", + "system": true + }, + { + "key": "Cache-Control", + "value": "no-cache", + "system": true + }, + { + "key": "Postman-Token", + "value": "47efa3be-3c25-4b63-9b71-7857dbf47e76", + "system": true + }, + { + "key": "Host", + "value": "localhost:8080", + "system": true + }, + { + "key": "Accept-Encoding", + "value": "gzip, deflate, br", + "system": true + }, + { + "key": "Connection", + "value": "keep-alive", + "system": true + }, + { + "key": "Content-Length", + "value": "1754", + "system": true + }, + { + "key": "Cookie", + "value": "ocvp3112b4wg=a526b93103feda20cdc886828c71d83d; oc_sessionPassphrase=LBNdKxRzA0iqoULIruNxDDh2BK3O%2BrCIU8aUmiUcOFvy5Xw1YfjwQNlmBW2IkGwJYtxXh9%2BwDN6vYuGNX07tXzkBtjQJUWTGdzf8AIOUIVxVx5DfyWAQZ7nmYmQv6XSE; nc_sameSiteCookielax=true; nc_sameSiteCookiestrict=true", + "system": true + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\r\n \"url\": \"https://zaken.spt-rx-services.nl/api/v1/zaken/cba40feb-2b38-4490-b12d-84a39e8df361\",\r\n \"uuid\": \"cba40feb-2b38-4490-b12d-84a39e8df361\",\r\n \"bronorganisatie\": \"000000000\",\r\n \"omschrijving\": \"string\",\r\n \"toelichting\": \"string\",\r\n \"zaaktype\": \"http://localhost:8080/index.php/apps/procest/api/zgw/catalogi/v1/zaaktypen/619dc3e5-52f1-4294-a569-f21d16f44879\",\r\n \"registratiedatum\": \"2019-04-09\",\r\n \"verantwoordelijkeOrganisatie\": \"000000000\",\r\n \"startdatum\": \"2019-04-09\",\r\n \"einddatum\": null,\r\n \"einddatumGepland\": \"2019-04-20\",\r\n \"uiterlijkeEinddatumAfdoening\": \"2019-04-09\",\r\n \"publicatiedatum\": \"2019-04-09\",\r\n \"communicatiekanaal\": \"\",\r\n \"productenOfDiensten\": [],\r\n \"vertrouwelijkheidaanduiding\": \"geheim\",\r\n \"betalingsindicatie\": \"geheel\",\r\n \"betalingsindicatieWeergave\": null,\r\n \"laatsteBetaaldatum\": \"2019-01-01T00:00:00Z\",\r\n \"zaakgeometrie\": {\r\n \"type\": \"Point\",\r\n \"coordinates\": [\r\n 53.0,\r\n 5.0\r\n ]\r\n },\r\n \"verlenging\": null,\r\n \"opschorting\": {\r\n \"indicatie\": true,\r\n \"reden\": \"string\"\r\n },\r\n \"selectielijstklasse\": \"https://referentielijsten.roxit.nl/api/v1/resultaten/0fe71ce3-b1e1-48eb-9070-be2756fc71b5\",\r\n \"hoofdzaak\": null,\r\n \"deelzaken\": [],\r\n \"relevanteAndereZaken\": [],\r\n \"eigenschappen\": [],\r\n \"rollen\": [],\r\n \"status\": null,\r\n \"zaakinformatieobjecten\": [],\r\n \"zaakobjecten\": [],\r\n \"resultaat\": null,\r\n \"kenmerken\": [],\r\n \"archiefnominatie\": null,\r\n \"archiefstatus\": \"nog_te_archiveren\",\r\n \"archiefactiedatum\": null,\r\n \"opdrachtgevendeOrganisatie\": null,\r\n \"processobjectaard\": null,\r\n \"startdatumBewaartermijn\": null,\r\n \"processobject\": null\r\n}" + }, + "auth": { + "type": "jwt", + "jwt": [ + { + "type": "string", + "value": "{\r\n \"iss\": \"procest-admin\",\r\n \"client_id\": \"procest-admin\",\r\n \"iat\": \"1773145169\",\r\n \"user_id\": \"procest-admin\",\r\n \"user_representation\": \"\"\r\n}", + "key": "payload" + }, + { + "type": "string", + "value": "procest-admin-secret-key-for-testing", + "key": "secret" + }, + { + "type": "string", + "value": "HS256", + "key": "algorithm" + }, + { + "type": "boolean", + "value": false, + "key": "isSecretBase64Encoded" + }, + { + "type": "string", + "value": "header", + "key": "addTokenTo" + }, + { + "type": "string", + "value": "Bearer", + "key": "headerPrefix" + }, + { + "type": "string", + "value": "token", + "key": "queryParamKey" + }, + { + "type": "string", + "value": "{}", + "key": "header" + } + ] + } + }, + "response": { + "id": "163c5d01-eabf-4b18-b5ab-ea671d4fa53c", + "status": "Created", + "code": 201, + "header": [ + { + "key": "Date", + "value": "Tue, 10 Mar 2026 12:19:29 GMT" + }, + { + "key": "Server", + "value": "Apache/2.4.66 (Debian)" + }, + { + "key": "X-Content-Type-Options", + "value": "nosniff" + }, + { + "key": "X-Frame-Options", + "value": "SAMEORIGIN" + }, + { + "key": "X-Permitted-Cross-Domain-Policies", + "value": "none" + }, + { + "key": "X-Robots-Tag", + "value": "noindex, nofollow" + }, + { + "key": "Referrer-Policy", + "value": "no-referrer" + }, + { + "key": "X-Powered-By", + "value": "PHP/8.3.30" + }, + { + "key": "Content-Security-Policy", + "value": "default-src 'none';base-uri 'none';manifest-src 'self';frame-ancestors 'none'" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=a526b93103feda20cdc886828c71d83d; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=a526b93103feda20cdc886828c71d83d; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=a526b93103feda20cdc886828c71d83d; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=a526b93103feda20cdc886828c71d83d; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=a526b93103feda20cdc886828c71d83d; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=e718a5c83711dfb85bd54cde8d26b29f; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=e718a5c83711dfb85bd54cde8d26b29f; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=e718a5c83711dfb85bd54cde8d26b29f; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=e718a5c83711dfb85bd54cde8d26b29f; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=e718a5c83711dfb85bd54cde8d26b29f; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "X-Request-Id", + "value": "EGvB0Ox3DktpquanoxvI" + }, + { + "key": "Cache-Control", + "value": "no-cache, no-store, must-revalidate" + }, + { + "key": "Feature-Policy", + "value": "autoplay 'none';camera 'none';fullscreen 'none';geolocation 'none';microphone 'none';payment 'none'" + }, + { + "key": "X-User-Id", + "value": "admin" + }, + { + "key": "Content-Length", + "value": "805" + }, + { + "key": "Keep-Alive", + "value": "timeout=5, max=97" + }, + { + "key": "Connection", + "value": "Keep-Alive" + }, + { + "key": "Content-Type", + "value": "application/json; charset=utf-8" + } + ], + "stream": { + "type": "Buffer", + "data": [ + 123, + 34, + 117, + 114, + 108, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 122, + 97, + 107, + 101, + 110, + 92, + 47, + 118, + 49, + 92, + 47, + 122, + 97, + 107, + 101, + 110, + 92, + 47, + 97, + 49, + 57, + 97, + 53, + 56, + 102, + 100, + 45, + 50, + 48, + 54, + 53, + 45, + 52, + 55, + 97, + 56, + 45, + 97, + 55, + 54, + 50, + 45, + 49, + 98, + 48, + 50, + 52, + 52, + 49, + 56, + 101, + 55, + 52, + 101, + 34, + 44, + 34, + 117, + 117, + 105, + 100, + 34, + 58, + 34, + 97, + 49, + 57, + 97, + 53, + 56, + 102, + 100, + 45, + 50, + 48, + 54, + 53, + 45, + 52, + 55, + 97, + 56, + 45, + 97, + 55, + 54, + 50, + 45, + 49, + 98, + 48, + 50, + 52, + 52, + 49, + 56, + 101, + 55, + 52, + 101, + 34, + 44, + 34, + 105, + 100, + 101, + 110, + 116, + 105, + 102, + 105, + 99, + 97, + 116, + 105, + 101, + 34, + 58, + 34, + 90, + 65, + 65, + 75, + 45, + 84, + 66, + 79, + 78, + 75, + 72, + 45, + 66, + 53, + 50, + 52, + 66, + 54, + 34, + 44, + 34, + 111, + 109, + 115, + 99, + 104, + 114, + 105, + 106, + 118, + 105, + 110, + 103, + 34, + 58, + 34, + 115, + 116, + 114, + 105, + 110, + 103, + 34, + 44, + 34, + 116, + 111, + 101, + 108, + 105, + 99, + 104, + 116, + 105, + 110, + 103, + 34, + 58, + 34, + 115, + 116, + 114, + 105, + 110, + 103, + 34, + 44, + 34, + 122, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 105, + 92, + 47, + 118, + 49, + 92, + 47, + 122, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 110, + 92, + 47, + 54, + 49, + 57, + 100, + 99, + 51, + 101, + 53, + 45, + 53, + 50, + 102, + 49, + 45, + 52, + 50, + 57, + 52, + 45, + 97, + 53, + 54, + 57, + 45, + 102, + 50, + 49, + 100, + 49, + 54, + 102, + 52, + 52, + 56, + 55, + 57, + 34, + 44, + 34, + 114, + 101, + 103, + 105, + 115, + 116, + 114, + 97, + 116, + 105, + 101, + 100, + 97, + 116, + 117, + 109, + 34, + 58, + 34, + 50, + 48, + 50, + 54, + 45, + 48, + 51, + 45, + 49, + 48, + 84, + 49, + 50, + 58, + 49, + 57, + 58, + 50, + 57, + 43, + 48, + 48, + 58, + 48, + 48, + 34, + 44, + 34, + 115, + 116, + 97, + 114, + 116, + 100, + 97, + 116, + 117, + 109, + 34, + 58, + 34, + 50, + 48, + 49, + 57, + 45, + 48, + 52, + 45, + 48, + 57, + 34, + 44, + 34, + 101, + 105, + 110, + 100, + 100, + 97, + 116, + 117, + 109, + 34, + 58, + 110, + 117, + 108, + 108, + 44, + 34, + 101, + 105, + 110, + 100, + 100, + 97, + 116, + 117, + 109, + 71, + 101, + 112, + 108, + 97, + 110, + 100, + 34, + 58, + 34, + 50, + 48, + 49, + 57, + 45, + 48, + 52, + 45, + 50, + 48, + 34, + 44, + 34, + 117, + 105, + 116, + 101, + 114, + 108, + 105, + 106, + 107, + 101, + 69, + 105, + 110, + 100, + 100, + 97, + 116, + 117, + 109, + 65, + 102, + 100, + 111, + 101, + 110, + 105, + 110, + 103, + 34, + 58, + 34, + 50, + 48, + 49, + 57, + 45, + 48, + 52, + 45, + 48, + 57, + 34, + 44, + 34, + 118, + 101, + 114, + 116, + 114, + 111, + 117, + 119, + 101, + 108, + 105, + 106, + 107, + 104, + 101, + 105, + 100, + 97, + 97, + 110, + 100, + 117, + 105, + 100, + 105, + 110, + 103, + 34, + 58, + 34, + 103, + 101, + 104, + 101, + 105, + 109, + 34, + 44, + 34, + 118, + 101, + 114, + 97, + 110, + 116, + 119, + 111, + 111, + 114, + 100, + 101, + 108, + 105, + 106, + 107, + 101, + 79, + 114, + 103, + 97, + 110, + 105, + 115, + 97, + 116, + 105, + 101, + 34, + 58, + 34, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 34, + 44, + 34, + 97, + 114, + 99, + 104, + 105, + 101, + 102, + 110, + 111, + 109, + 105, + 110, + 97, + 116, + 105, + 101, + 34, + 58, + 110, + 117, + 108, + 108, + 44, + 34, + 97, + 114, + 99, + 104, + 105, + 101, + 102, + 97, + 99, + 116, + 105, + 101, + 100, + 97, + 116, + 117, + 109, + 34, + 58, + 110, + 117, + 108, + 108, + 44, + 34, + 97, + 114, + 99, + 104, + 105, + 101, + 102, + 115, + 116, + 97, + 116, + 117, + 115, + 34, + 58, + 34, + 110, + 111, + 103, + 95, + 116, + 101, + 95, + 97, + 114, + 99, + 104, + 105, + 118, + 101, + 114, + 101, + 110, + 34, + 44, + 34, + 98, + 101, + 116, + 97, + 108, + 105, + 110, + 103, + 115, + 105, + 110, + 100, + 105, + 99, + 97, + 116, + 105, + 101, + 34, + 58, + 34, + 103, + 101, + 104, + 101, + 101, + 108, + 34, + 44, + 34, + 108, + 97, + 97, + 116, + 115, + 116, + 101, + 66, + 101, + 116, + 97, + 97, + 108, + 100, + 97, + 116, + 117, + 109, + 34, + 58, + 34, + 50, + 48, + 49, + 57, + 45, + 48, + 49, + 45, + 48, + 49, + 34, + 44, + 34, + 104, + 111, + 111, + 102, + 100, + 122, + 97, + 97, + 107, + 34, + 58, + 110, + 117, + 108, + 108, + 125 + ] + }, + "cookie": [], + "responseTime": 247, + "responseSize": 805 + }, + "id": "66fb3429-7977-44ac-b41a-104bde2b6911" + }, + { + "cursor": { + "ref": "b7dfa5c7-95be-4053-81be-bceb15477c71", + "length": 313, + "cycles": 1, + "position": 118, + "iteration": 0, + "httpRequestId": "29f3d38e-6727-42b0-b721-3c51448a5131" + }, + "item": { + "id": "9ec96a9e-1f62-4bd0-b0c6-0c15a2503a4b", + "name": "Add Resultaat to Zaak", + "request": { + "url": { + "path": [ + "resultaten" + ], + "host": [ + "{{zrc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n\t\"zaak\": \"{{created_zaak_url}}\",\n\t\"resultaattype\": \"{{resultaattype_url}}\"\n}" + } + }, + "response": [], + "event": [ + { + "listen": "prerequest", + "script": { + "id": "c630bc2c-edb4-422a-8363-7b4b116118f9", + "type": "text/javascript", + "exec": [ + "pm.environment.set(\"resultaattype\", pm.environment.get(\"zaaktype_resultaattypen\")[0]);" + ], + "_lastExecutionId": "5947db8c-4bd1-428d-b93d-98cbb4366b6b" + } + }, + { + "listen": "test", + "script": { + "id": "43e5010a-2231-443c-a32e-67dfbb19be83", + "type": "text/javascript", + "exec": [ + "pm.environment.set(\"zaak_resultaat_url\", pm.response.json().url);" + ], + "_lastExecutionId": "ea50f4c4-56b9-40e7-b1c1-62862b591534" + } + } + ] + }, + "request": { + "url": { + "protocol": "http", + "port": "8080", + "path": [ + "index.php", + "apps", + "procest", + "api", + "zgw", + "zaken", + "v1", + "resultaten" + ], + "host": [ + "localhost" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Authorization", + "value": "Bearer eyJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJwcm9jZXN0LWFkbWluIiwiY2xpZW50X2lkIjoicHJvY2VzdC1hZG1pbiIsImlhdCI6IjE3NzMxNDUxNzAiLCJ1c2VyX2lkIjoicHJvY2VzdC1hZG1pbiIsInVzZXJfcmVwcmVzZW50YXRpb24iOiIifQ.2nvTatX--6zYYfhMr0xOZgHxbY4tGakUz2buZ4b2YSQ", + "system": true + }, + { + "key": "User-Agent", + "value": "PostmanRuntime/7.39.1", + "system": true + }, + { + "key": "Accept", + "value": "*/*", + "system": true + }, + { + "key": "Cache-Control", + "value": "no-cache", + "system": true + }, + { + "key": "Postman-Token", + "value": "370fcd2b-9ff8-4468-a017-c2f64f3bc8be", + "system": true + }, + { + "key": "Host", + "value": "localhost:8080", + "system": true + }, + { + "key": "Accept-Encoding", + "value": "gzip, deflate, br", + "system": true + }, + { + "key": "Connection", + "value": "keep-alive", + "system": true + }, + { + "key": "Content-Length", + "value": "257", + "system": true + }, + { + "key": "Cookie", + "value": "ocvp3112b4wg=e718a5c83711dfb85bd54cde8d26b29f; oc_sessionPassphrase=LBNdKxRzA0iqoULIruNxDDh2BK3O%2BrCIU8aUmiUcOFvy5Xw1YfjwQNlmBW2IkGwJYtxXh9%2BwDN6vYuGNX07tXzkBtjQJUWTGdzf8AIOUIVxVx5DfyWAQZ7nmYmQv6XSE; nc_sameSiteCookielax=true; nc_sameSiteCookiestrict=true", + "system": true + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n\t\"zaak\": \"http://localhost:8080/index.php/apps/procest/api/zgw/zaken/v1/zaken/a19a58fd-2065-47a8-a762-1b024418e74e\",\n\t\"resultaattype\": \"http://localhost:8080/index.php/apps/procest/api/zgw/catalogi/v1/resultaattypen/1fa4fb2f-1572-4fc1-848d-00a37ef6af45\"\n}" + }, + "auth": { + "type": "jwt", + "jwt": [ + { + "type": "string", + "value": "{\r\n \"iss\": \"procest-admin\",\r\n \"client_id\": \"procest-admin\",\r\n \"iat\": \"1773145170\",\r\n \"user_id\": \"procest-admin\",\r\n \"user_representation\": \"\"\r\n}", + "key": "payload" + }, + { + "type": "string", + "value": "procest-admin-secret-key-for-testing", + "key": "secret" + }, + { + "type": "string", + "value": "HS256", + "key": "algorithm" + }, + { + "type": "boolean", + "value": false, + "key": "isSecretBase64Encoded" + }, + { + "type": "string", + "value": "header", + "key": "addTokenTo" + }, + { + "type": "string", + "value": "Bearer", + "key": "headerPrefix" + }, + { + "type": "string", + "value": "token", + "key": "queryParamKey" + }, + { + "type": "string", + "value": "{}", + "key": "header" + } + ] + } + }, + "response": { + "id": "a5f1466c-7819-4280-8872-176dc8b420c4", + "status": "Created", + "code": 201, + "header": [ + { + "key": "Date", + "value": "Tue, 10 Mar 2026 12:19:29 GMT" + }, + { + "key": "Server", + "value": "Apache/2.4.66 (Debian)" + }, + { + "key": "X-Content-Type-Options", + "value": "nosniff" + }, + { + "key": "X-Frame-Options", + "value": "SAMEORIGIN" + }, + { + "key": "X-Permitted-Cross-Domain-Policies", + "value": "none" + }, + { + "key": "X-Robots-Tag", + "value": "noindex, nofollow" + }, + { + "key": "Referrer-Policy", + "value": "no-referrer" + }, + { + "key": "X-Powered-By", + "value": "PHP/8.3.30" + }, + { + "key": "Content-Security-Policy", + "value": "default-src 'none';base-uri 'none';manifest-src 'self';frame-ancestors 'none'" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=e718a5c83711dfb85bd54cde8d26b29f; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=e718a5c83711dfb85bd54cde8d26b29f; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=e718a5c83711dfb85bd54cde8d26b29f; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=e718a5c83711dfb85bd54cde8d26b29f; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=e718a5c83711dfb85bd54cde8d26b29f; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=71c0fa35dd2f9867e45f70c676172de0; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=71c0fa35dd2f9867e45f70c676172de0; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=71c0fa35dd2f9867e45f70c676172de0; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=71c0fa35dd2f9867e45f70c676172de0; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=71c0fa35dd2f9867e45f70c676172de0; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "X-Request-Id", + "value": "2ZHHyEhNxhN1exMqleMM" + }, + { + "key": "Cache-Control", + "value": "no-cache, no-store, must-revalidate" + }, + { + "key": "Feature-Policy", + "value": "autoplay 'none';camera 'none';fullscreen 'none';geolocation 'none';microphone 'none';payment 'none'" + }, + { + "key": "X-User-Id", + "value": "admin" + }, + { + "key": "Content-Length", + "value": "464" + }, + { + "key": "Keep-Alive", + "value": "timeout=5, max=96" + }, + { + "key": "Connection", + "value": "Keep-Alive" + }, + { + "key": "Content-Type", + "value": "application/json; charset=utf-8" + } + ], + "stream": { + "type": "Buffer", + "data": [ + 123, + 34, + 117, + 114, + 108, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 122, + 97, + 107, + 101, + 110, + 92, + 47, + 118, + 49, + 92, + 47, + 114, + 101, + 115, + 117, + 108, + 116, + 97, + 116, + 101, + 110, + 92, + 47, + 51, + 100, + 48, + 100, + 98, + 53, + 98, + 52, + 45, + 55, + 55, + 99, + 57, + 45, + 52, + 56, + 56, + 99, + 45, + 98, + 102, + 50, + 51, + 45, + 55, + 99, + 99, + 57, + 99, + 55, + 97, + 55, + 100, + 50, + 102, + 98, + 34, + 44, + 34, + 117, + 117, + 105, + 100, + 34, + 58, + 34, + 51, + 100, + 48, + 100, + 98, + 53, + 98, + 52, + 45, + 55, + 55, + 99, + 57, + 45, + 52, + 56, + 56, + 99, + 45, + 98, + 102, + 50, + 51, + 45, + 55, + 99, + 99, + 57, + 99, + 55, + 97, + 55, + 100, + 50, + 102, + 98, + 34, + 44, + 34, + 122, + 97, + 97, + 107, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 122, + 97, + 107, + 101, + 110, + 92, + 47, + 118, + 49, + 92, + 47, + 122, + 97, + 107, + 101, + 110, + 92, + 47, + 97, + 49, + 57, + 97, + 53, + 56, + 102, + 100, + 45, + 50, + 48, + 54, + 53, + 45, + 52, + 55, + 97, + 56, + 45, + 97, + 55, + 54, + 50, + 45, + 49, + 98, + 48, + 50, + 52, + 52, + 49, + 56, + 101, + 55, + 52, + 101, + 34, + 44, + 34, + 114, + 101, + 115, + 117, + 108, + 116, + 97, + 97, + 116, + 116, + 121, + 112, + 101, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 105, + 92, + 47, + 118, + 49, + 92, + 47, + 114, + 101, + 115, + 117, + 108, + 116, + 97, + 97, + 116, + 116, + 121, + 112, + 101, + 110, + 92, + 47, + 49, + 102, + 97, + 52, + 102, + 98, + 50, + 102, + 45, + 49, + 53, + 55, + 50, + 45, + 52, + 102, + 99, + 49, + 45, + 56, + 52, + 56, + 100, + 45, + 48, + 48, + 97, + 51, + 55, + 101, + 102, + 54, + 97, + 102, + 52, + 53, + 34, + 44, + 34, + 116, + 111, + 101, + 108, + 105, + 99, + 104, + 116, + 105, + 110, + 103, + 34, + 58, + 34, + 34, + 125 + ] + }, + "cookie": [], + "responseTime": 264, + "responseSize": 464 + }, + "id": "9ec96a9e-1f62-4bd0-b0c6-0c15a2503a4b" + }, + { + "cursor": { + "ref": "965c6cc4-90d3-4eb2-bb90-11c4cdfaeda4", + "length": 313, + "cycles": 1, + "position": 119, + "iteration": 0, + "httpRequestId": "33236e98-abd0-4d2d-a1dd-eaf0b3294de5" + }, + "item": { + "id": "c8c15242-3181-4f07-9ce6-69e2b94d51cb", + "name": "Add Eindstatus to Zaak", + "request": { + "url": { + "path": [ + "statussen" + ], + "host": [ + "{{zrc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n\t\"zaak\": \"{{created_zaak_url}}\",\n\t\"statustype\": \"{{eindstatustype}}\",\n\t\"datumStatusGezet\": \"2018-04-20T13:37:00\"\n}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "7f4c2382-bbd5-44e5-a38c-53a6d14f739b", + "type": "text/javascript", + "exec": [ + "" + ], + "_lastExecutionId": "bfd90ef0-3f5e-41a0-9f4c-1922e186b29f" + } + }, + { + "listen": "prerequest", + "script": { + "id": "a01d171a-ab03-42a7-bea3-f9ec830e8b4a", + "type": "text/javascript", + "exec": [ + "" + ], + "_lastExecutionId": "5461a5b1-2213-4740-9ba1-439054029930" + } + } + ] + }, + "request": { + "url": { + "protocol": "http", + "port": "8080", + "path": [ + "index.php", + "apps", + "procest", + "api", + "zgw", + "zaken", + "v1", + "statussen" + ], + "host": [ + "localhost" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Authorization", + "value": "Bearer eyJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJwcm9jZXN0LWFkbWluIiwiY2xpZW50X2lkIjoicHJvY2VzdC1hZG1pbiIsImlhdCI6IjE3NzMxNDUxNzAiLCJ1c2VyX2lkIjoicHJvY2VzdC1hZG1pbiIsInVzZXJfcmVwcmVzZW50YXRpb24iOiIifQ.2nvTatX--6zYYfhMr0xOZgHxbY4tGakUz2buZ4b2YSQ", + "system": true + }, + { + "key": "User-Agent", + "value": "PostmanRuntime/7.39.1", + "system": true + }, + { + "key": "Accept", + "value": "*/*", + "system": true + }, + { + "key": "Cache-Control", + "value": "no-cache", + "system": true + }, + { + "key": "Postman-Token", + "value": "01f91156-c82d-4edc-ab65-114e7e46353c", + "system": true + }, + { + "key": "Host", + "value": "localhost:8080", + "system": true + }, + { + "key": "Accept-Encoding", + "value": "gzip, deflate, br", + "system": true + }, + { + "key": "Connection", + "value": "keep-alive", + "system": true + }, + { + "key": "Content-Length", + "value": "295", + "system": true + }, + { + "key": "Cookie", + "value": "ocvp3112b4wg=71c0fa35dd2f9867e45f70c676172de0; oc_sessionPassphrase=LBNdKxRzA0iqoULIruNxDDh2BK3O%2BrCIU8aUmiUcOFvy5Xw1YfjwQNlmBW2IkGwJYtxXh9%2BwDN6vYuGNX07tXzkBtjQJUWTGdzf8AIOUIVxVx5DfyWAQZ7nmYmQv6XSE; nc_sameSiteCookielax=true; nc_sameSiteCookiestrict=true", + "system": true + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n\t\"zaak\": \"http://localhost:8080/index.php/apps/procest/api/zgw/zaken/v1/zaken/a19a58fd-2065-47a8-a762-1b024418e74e\",\n\t\"statustype\": \"http://localhost:8080/index.php/apps/procest/api/zgw/catalogi/v1/statustypen/b0b83347-bc74-4ef9-b984-52f1c6c9fc3d\",\n\t\"datumStatusGezet\": \"2018-04-20T13:37:00\"\n}" + }, + "auth": { + "type": "jwt", + "jwt": [ + { + "type": "string", + "value": "{\r\n \"iss\": \"procest-admin\",\r\n \"client_id\": \"procest-admin\",\r\n \"iat\": \"1773145170\",\r\n \"user_id\": \"procest-admin\",\r\n \"user_representation\": \"\"\r\n}", + "key": "payload" + }, + { + "type": "string", + "value": "procest-admin-secret-key-for-testing", + "key": "secret" + }, + { + "type": "string", + "value": "HS256", + "key": "algorithm" + }, + { + "type": "boolean", + "value": false, + "key": "isSecretBase64Encoded" + }, + { + "type": "string", + "value": "header", + "key": "addTokenTo" + }, + { + "type": "string", + "value": "Bearer", + "key": "headerPrefix" + }, + { + "type": "string", + "value": "token", + "key": "queryParamKey" + }, + { + "type": "string", + "value": "{}", + "key": "header" + } + ] + } + }, + "response": { + "id": "a661507b-6077-40ad-b6c1-f9720c3d2ce3", + "status": "Created", + "code": 201, + "header": [ + { + "key": "Date", + "value": "Tue, 10 Mar 2026 12:19:29 GMT" + }, + { + "key": "Server", + "value": "Apache/2.4.66 (Debian)" + }, + { + "key": "X-Content-Type-Options", + "value": "nosniff" + }, + { + "key": "X-Frame-Options", + "value": "SAMEORIGIN" + }, + { + "key": "X-Permitted-Cross-Domain-Policies", + "value": "none" + }, + { + "key": "X-Robots-Tag", + "value": "noindex, nofollow" + }, + { + "key": "Referrer-Policy", + "value": "no-referrer" + }, + { + "key": "X-Powered-By", + "value": "PHP/8.3.30" + }, + { + "key": "Content-Security-Policy", + "value": "default-src 'none';base-uri 'none';manifest-src 'self';frame-ancestors 'none'" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=71c0fa35dd2f9867e45f70c676172de0; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=71c0fa35dd2f9867e45f70c676172de0; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=71c0fa35dd2f9867e45f70c676172de0; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=71c0fa35dd2f9867e45f70c676172de0; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=71c0fa35dd2f9867e45f70c676172de0; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=1165757029d97523a1881663083b858c; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=1165757029d97523a1881663083b858c; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=1165757029d97523a1881663083b858c; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=1165757029d97523a1881663083b858c; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=1165757029d97523a1881663083b858c; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "X-Request-Id", + "value": "YlJ0kNTLPcsPoHU2UXvp" + }, + { + "key": "Cache-Control", + "value": "no-cache, no-store, must-revalidate" + }, + { + "key": "Feature-Policy", + "value": "autoplay 'none';camera 'none';fullscreen 'none';geolocation 'none';microphone 'none';payment 'none'" + }, + { + "key": "X-User-Id", + "value": "admin" + }, + { + "key": "Content-Length", + "value": "510" + }, + { + "key": "Keep-Alive", + "value": "timeout=5, max=95" + }, + { + "key": "Connection", + "value": "Keep-Alive" + }, + { + "key": "Content-Type", + "value": "application/json; charset=utf-8" + } + ], + "stream": { + "type": "Buffer", + "data": [ + 123, + 34, + 117, + 114, + 108, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 122, + 97, + 107, + 101, + 110, + 92, + 47, + 118, + 49, + 92, + 47, + 115, + 116, + 97, + 116, + 117, + 115, + 115, + 101, + 110, + 92, + 47, + 57, + 50, + 50, + 102, + 55, + 57, + 52, + 51, + 45, + 102, + 57, + 99, + 55, + 45, + 52, + 56, + 98, + 99, + 45, + 97, + 56, + 102, + 100, + 45, + 97, + 50, + 52, + 52, + 50, + 99, + 99, + 57, + 99, + 57, + 49, + 100, + 34, + 44, + 34, + 117, + 117, + 105, + 100, + 34, + 58, + 34, + 57, + 50, + 50, + 102, + 55, + 57, + 52, + 51, + 45, + 102, + 57, + 99, + 55, + 45, + 52, + 56, + 98, + 99, + 45, + 97, + 56, + 102, + 100, + 45, + 97, + 50, + 52, + 52, + 50, + 99, + 99, + 57, + 99, + 57, + 49, + 100, + 34, + 44, + 34, + 122, + 97, + 97, + 107, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 122, + 97, + 107, + 101, + 110, + 92, + 47, + 118, + 49, + 92, + 47, + 122, + 97, + 107, + 101, + 110, + 92, + 47, + 97, + 49, + 57, + 97, + 53, + 56, + 102, + 100, + 45, + 50, + 48, + 54, + 53, + 45, + 52, + 55, + 97, + 56, + 45, + 97, + 55, + 54, + 50, + 45, + 49, + 98, + 48, + 50, + 52, + 52, + 49, + 56, + 101, + 55, + 52, + 101, + 34, + 44, + 34, + 115, + 116, + 97, + 116, + 117, + 115, + 116, + 121, + 112, + 101, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 105, + 92, + 47, + 118, + 49, + 92, + 47, + 115, + 116, + 97, + 116, + 117, + 115, + 116, + 121, + 112, + 101, + 110, + 92, + 47, + 98, + 48, + 98, + 56, + 51, + 51, + 52, + 55, + 45, + 98, + 99, + 55, + 52, + 45, + 52, + 101, + 102, + 57, + 45, + 98, + 57, + 56, + 52, + 45, + 53, + 50, + 102, + 49, + 99, + 54, + 99, + 57, + 102, + 99, + 51, + 100, + 34, + 44, + 34, + 100, + 97, + 116, + 117, + 109, + 83, + 116, + 97, + 116, + 117, + 115, + 71, + 101, + 122, + 101, + 116, + 34, + 58, + 34, + 50, + 48, + 50, + 54, + 45, + 48, + 51, + 45, + 49, + 48, + 84, + 49, + 50, + 58, + 49, + 57, + 58, + 51, + 48, + 43, + 48, + 48, + 58, + 48, + 48, + 34, + 44, + 34, + 115, + 116, + 97, + 116, + 117, + 115, + 116, + 111, + 101, + 108, + 105, + 99, + 104, + 116, + 105, + 110, + 103, + 34, + 58, + 34, + 34, + 125 + ] + }, + "cookie": [], + "responseTime": 299, + "responseSize": 510 + }, + "id": "c8c15242-3181-4f07-9ce6-69e2b94d51cb" + }, + { + "cursor": { + "ref": "2f96585e-96f3-4e30-8124-507979c097b5", + "length": 313, + "cycles": 1, + "position": 120, + "iteration": 0, + "httpRequestId": "f3f03c8b-cae5-4ad6-9f8c-da2237b130eb" + }, + "item": { + "id": "3dbf74b7-86a8-4e10-bc44-bfd838032df2", + "name": "(zrc-008a) Zaak heropenen is mogelijk", + "request": { + "url": { + "path": [ + "statussen" + ], + "host": [ + "{{zrc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n\t\"zaak\": \"{{created_zaak_url}}\",\n\t\"statustype\": \"{{non_eindstatustype}}\",\n\t\"datumStatusGezet\": \"2018-04-21T13:37:00\"\n}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "db66f8fb-381b-4f97-8d52-883c5aba0aaa", + "type": "text/javascript", + "exec": [ + "pm.test(\"Non-eindstatus aan gesloten Zaak toevoegen geeft 201\", function() {", + " pm.response.to.have.status(201);", + " ", + " pm.expect(pm.response.json().statustype).to.be.equal(pm.environment.get(\"non_eindstatustype\"));", + "});" + ], + "_lastExecutionId": "206872b6-9d4a-49c5-9408-84a39e71be83" + } + } + ] + }, + "request": { + "url": { + "protocol": "http", + "port": "8080", + "path": [ + "index.php", + "apps", + "procest", + "api", + "zgw", + "zaken", + "v1", + "statussen" + ], + "host": [ + "localhost" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Authorization", + "value": "Bearer eyJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJwcm9jZXN0LWFkbWluIiwiY2xpZW50X2lkIjoicHJvY2VzdC1hZG1pbiIsImlhdCI6IjE3NzMxNDUxNzAiLCJ1c2VyX2lkIjoicHJvY2VzdC1hZG1pbiIsInVzZXJfcmVwcmVzZW50YXRpb24iOiIifQ.2nvTatX--6zYYfhMr0xOZgHxbY4tGakUz2buZ4b2YSQ", + "system": true + }, + { + "key": "User-Agent", + "value": "PostmanRuntime/7.39.1", + "system": true + }, + { + "key": "Accept", + "value": "*/*", + "system": true + }, + { + "key": "Cache-Control", + "value": "no-cache", + "system": true + }, + { + "key": "Postman-Token", + "value": "c7633d08-8b8f-479c-9bb3-dc52dbae611e", + "system": true + }, + { + "key": "Host", + "value": "localhost:8080", + "system": true + }, + { + "key": "Accept-Encoding", + "value": "gzip, deflate, br", + "system": true + }, + { + "key": "Connection", + "value": "keep-alive", + "system": true + }, + { + "key": "Content-Length", + "value": "295", + "system": true + }, + { + "key": "Cookie", + "value": "ocvp3112b4wg=1165757029d97523a1881663083b858c; oc_sessionPassphrase=LBNdKxRzA0iqoULIruNxDDh2BK3O%2BrCIU8aUmiUcOFvy5Xw1YfjwQNlmBW2IkGwJYtxXh9%2BwDN6vYuGNX07tXzkBtjQJUWTGdzf8AIOUIVxVx5DfyWAQZ7nmYmQv6XSE; nc_sameSiteCookielax=true; nc_sameSiteCookiestrict=true", + "system": true + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n\t\"zaak\": \"http://localhost:8080/index.php/apps/procest/api/zgw/zaken/v1/zaken/a19a58fd-2065-47a8-a762-1b024418e74e\",\n\t\"statustype\": \"http://localhost:8080/index.php/apps/procest/api/zgw/catalogi/v1/statustypen/e04d4b89-b992-48b7-a862-e1bee6b27546\",\n\t\"datumStatusGezet\": \"2018-04-21T13:37:00\"\n}" + }, + "auth": { + "type": "jwt", + "jwt": [ + { + "type": "string", + "value": "{\r\n \"iss\": \"procest-admin\",\r\n \"client_id\": \"procest-admin\",\r\n \"iat\": \"1773145170\",\r\n \"user_id\": \"procest-admin\",\r\n \"user_representation\": \"\"\r\n}", + "key": "payload" + }, + { + "type": "string", + "value": "procest-admin-secret-key-for-testing", + "key": "secret" + }, + { + "type": "string", + "value": "HS256", + "key": "algorithm" + }, + { + "type": "boolean", + "value": false, + "key": "isSecretBase64Encoded" + }, + { + "type": "string", + "value": "header", + "key": "addTokenTo" + }, + { + "type": "string", + "value": "Bearer", + "key": "headerPrefix" + }, + { + "type": "string", + "value": "token", + "key": "queryParamKey" + }, + { + "type": "string", + "value": "{}", + "key": "header" + } + ] + } + }, + "response": { + "id": "49b7577a-7288-4734-a7a7-c64810ceb223", + "status": "Created", + "code": 201, + "header": [ + { + "key": "Date", + "value": "Tue, 10 Mar 2026 12:19:30 GMT" + }, + { + "key": "Server", + "value": "Apache/2.4.66 (Debian)" + }, + { + "key": "X-Content-Type-Options", + "value": "nosniff" + }, + { + "key": "X-Frame-Options", + "value": "SAMEORIGIN" + }, + { + "key": "X-Permitted-Cross-Domain-Policies", + "value": "none" + }, + { + "key": "X-Robots-Tag", + "value": "noindex, nofollow" + }, + { + "key": "Referrer-Policy", + "value": "no-referrer" + }, + { + "key": "X-Powered-By", + "value": "PHP/8.3.30" + }, + { + "key": "Content-Security-Policy", + "value": "default-src 'none';base-uri 'none';manifest-src 'self';frame-ancestors 'none'" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=1165757029d97523a1881663083b858c; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=1165757029d97523a1881663083b858c; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=1165757029d97523a1881663083b858c; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=1165757029d97523a1881663083b858c; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=1165757029d97523a1881663083b858c; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=1962d6292fa33d5e080a1962f44dd78d; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=1962d6292fa33d5e080a1962f44dd78d; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=1962d6292fa33d5e080a1962f44dd78d; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=1962d6292fa33d5e080a1962f44dd78d; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=1962d6292fa33d5e080a1962f44dd78d; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "X-Request-Id", + "value": "jw6C3JhTVfOnZ8fHnhZy" + }, + { + "key": "Cache-Control", + "value": "no-cache, no-store, must-revalidate" + }, + { + "key": "Feature-Policy", + "value": "autoplay 'none';camera 'none';fullscreen 'none';geolocation 'none';microphone 'none';payment 'none'" + }, + { + "key": "X-User-Id", + "value": "admin" + }, + { + "key": "Content-Length", + "value": "510" + }, + { + "key": "Keep-Alive", + "value": "timeout=5, max=94" + }, + { + "key": "Connection", + "value": "Keep-Alive" + }, + { + "key": "Content-Type", + "value": "application/json; charset=utf-8" + } + ], + "stream": { + "type": "Buffer", + "data": [ + 123, + 34, + 117, + 114, + 108, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 122, + 97, + 107, + 101, + 110, + 92, + 47, + 118, + 49, + 92, + 47, + 115, + 116, + 97, + 116, + 117, + 115, + 115, + 101, + 110, + 92, + 47, + 97, + 54, + 98, + 48, + 56, + 52, + 52, + 100, + 45, + 57, + 56, + 102, + 52, + 45, + 52, + 48, + 102, + 48, + 45, + 97, + 100, + 51, + 100, + 45, + 49, + 54, + 98, + 102, + 50, + 99, + 97, + 48, + 49, + 49, + 99, + 49, + 34, + 44, + 34, + 117, + 117, + 105, + 100, + 34, + 58, + 34, + 97, + 54, + 98, + 48, + 56, + 52, + 52, + 100, + 45, + 57, + 56, + 102, + 52, + 45, + 52, + 48, + 102, + 48, + 45, + 97, + 100, + 51, + 100, + 45, + 49, + 54, + 98, + 102, + 50, + 99, + 97, + 48, + 49, + 49, + 99, + 49, + 34, + 44, + 34, + 122, + 97, + 97, + 107, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 122, + 97, + 107, + 101, + 110, + 92, + 47, + 118, + 49, + 92, + 47, + 122, + 97, + 107, + 101, + 110, + 92, + 47, + 97, + 49, + 57, + 97, + 53, + 56, + 102, + 100, + 45, + 50, + 48, + 54, + 53, + 45, + 52, + 55, + 97, + 56, + 45, + 97, + 55, + 54, + 50, + 45, + 49, + 98, + 48, + 50, + 52, + 52, + 49, + 56, + 101, + 55, + 52, + 101, + 34, + 44, + 34, + 115, + 116, + 97, + 116, + 117, + 115, + 116, + 121, + 112, + 101, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 105, + 92, + 47, + 118, + 49, + 92, + 47, + 115, + 116, + 97, + 116, + 117, + 115, + 116, + 121, + 112, + 101, + 110, + 92, + 47, + 101, + 48, + 52, + 100, + 52, + 98, + 56, + 57, + 45, + 98, + 57, + 57, + 50, + 45, + 52, + 56, + 98, + 55, + 45, + 97, + 56, + 54, + 50, + 45, + 101, + 49, + 98, + 101, + 101, + 54, + 98, + 50, + 55, + 53, + 52, + 54, + 34, + 44, + 34, + 100, + 97, + 116, + 117, + 109, + 83, + 116, + 97, + 116, + 117, + 115, + 71, + 101, + 122, + 101, + 116, + 34, + 58, + 34, + 50, + 48, + 50, + 54, + 45, + 48, + 51, + 45, + 49, + 48, + 84, + 49, + 50, + 58, + 49, + 57, + 58, + 51, + 48, + 43, + 48, + 48, + 58, + 48, + 48, + 34, + 44, + 34, + 115, + 116, + 97, + 116, + 117, + 115, + 116, + 111, + 101, + 108, + 105, + 99, + 104, + 116, + 105, + 110, + 103, + 34, + 58, + 34, + 34, + 125 + ] + }, + "cookie": [], + "responseTime": 269, + "responseSize": 510 + }, + "id": "3dbf74b7-86a8-4e10-bc44-bfd838032df2", + "assertions": [ + { + "assertion": "Non-eindstatus aan gesloten Zaak toevoegen geeft 201", + "skipped": false + } + ] + }, + { + "cursor": { + "ref": "14d1e18f-0ccc-4ad0-a733-aef69303d24b", + "length": 313, + "cycles": 1, + "position": 121, + "iteration": 0, + "httpRequestId": "a04e2abc-b618-4d79-90ef-a02b2d641873" + }, + "item": { + "id": "2f947848-df6b-4742-9603-cf1db8e6dab1", + "name": "(zrc-008b) Zaak heropenen zet einddatum, archiefactiedatum en archiefnominatie op null", + "request": { + "url": { + "host": [ + "{{created_zaak_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Accept-Crs", + "value": "EPSG:4326" + } + ], + "method": "GET" + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "da11d6fc-c363-4b68-b87e-9070a4641b6b", + "type": "text/javascript", + "exec": [ + "pm.test(\"Zaak heropenen zet einddatum, archiefactiedatum en archiefnominatie op null\", function() {", + " var response = pm.response.json();", + " ", + " pm.expect(response.einddatum).to.be.equal(null);", + " pm.expect(response.archiefactiedatum).to.be.equal(null);", + " pm.expect(response.archiefnominatie).to.be.equal(null); ", + "});" + ], + "_lastExecutionId": "cf71eea5-e0ca-47aa-b236-8a6093b5a90a" + } + } + ] + }, + "request": { + "url": { + "protocol": "http", + "port": "8080", + "path": [ + "index.php", + "apps", + "procest", + "api", + "zgw", + "zaken", + "v1", + "zaken", + "a19a58fd-2065-47a8-a762-1b024418e74e" + ], + "host": [ + "localhost" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Accept-Crs", + "value": "EPSG:4326" + }, + { + "key": "Authorization", + "value": "Bearer eyJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJwcm9jZXN0LWFkbWluIiwiY2xpZW50X2lkIjoicHJvY2VzdC1hZG1pbiIsImlhdCI6IjE3NzMxNDUxNzEiLCJ1c2VyX2lkIjoicHJvY2VzdC1hZG1pbiIsInVzZXJfcmVwcmVzZW50YXRpb24iOiIifQ.ZIE6ul7mgi5-9GuajLekEvKFf3RSHDoecdVn6CgBu3Y", + "system": true + }, + { + "key": "User-Agent", + "value": "PostmanRuntime/7.39.1", + "system": true + }, + { + "key": "Accept", + "value": "*/*", + "system": true + }, + { + "key": "Cache-Control", + "value": "no-cache", + "system": true + }, + { + "key": "Postman-Token", + "value": "9b3cba66-1a60-4888-8d20-f5e57d48b0cf", + "system": true + }, + { + "key": "Host", + "value": "localhost:8080", + "system": true + }, + { + "key": "Accept-Encoding", + "value": "gzip, deflate, br", + "system": true + }, + { + "key": "Connection", + "value": "keep-alive", + "system": true + }, + { + "key": "Cookie", + "value": "ocvp3112b4wg=1962d6292fa33d5e080a1962f44dd78d; oc_sessionPassphrase=LBNdKxRzA0iqoULIruNxDDh2BK3O%2BrCIU8aUmiUcOFvy5Xw1YfjwQNlmBW2IkGwJYtxXh9%2BwDN6vYuGNX07tXzkBtjQJUWTGdzf8AIOUIVxVx5DfyWAQZ7nmYmQv6XSE; nc_sameSiteCookielax=true; nc_sameSiteCookiestrict=true", + "system": true + } + ], + "method": "GET", + "auth": { + "type": "jwt", + "jwt": [ + { + "type": "string", + "value": "{\r\n \"iss\": \"procest-admin\",\r\n \"client_id\": \"procest-admin\",\r\n \"iat\": \"1773145171\",\r\n \"user_id\": \"procest-admin\",\r\n \"user_representation\": \"\"\r\n}", + "key": "payload" + }, + { + "type": "string", + "value": "procest-admin-secret-key-for-testing", + "key": "secret" + }, + { + "type": "string", + "value": "HS256", + "key": "algorithm" + }, + { + "type": "boolean", + "value": false, + "key": "isSecretBase64Encoded" + }, + { + "type": "string", + "value": "header", + "key": "addTokenTo" + }, + { + "type": "string", + "value": "Bearer", + "key": "headerPrefix" + }, + { + "type": "string", + "value": "token", + "key": "queryParamKey" + }, + { + "type": "string", + "value": "{}", + "key": "header" + } + ] + } + }, + "response": { + "id": "1f5f9987-2506-4e48-a8c7-29add4f05389", + "status": "OK", + "code": 200, + "header": [ + { + "key": "Date", + "value": "Tue, 10 Mar 2026 12:19:30 GMT" + }, + { + "key": "Server", + "value": "Apache/2.4.66 (Debian)" + }, + { + "key": "X-Content-Type-Options", + "value": "nosniff" + }, + { + "key": "X-Frame-Options", + "value": "SAMEORIGIN" + }, + { + "key": "X-Permitted-Cross-Domain-Policies", + "value": "none" + }, + { + "key": "X-Robots-Tag", + "value": "noindex, nofollow" + }, + { + "key": "Referrer-Policy", + "value": "no-referrer" + }, + { + "key": "X-Powered-By", + "value": "PHP/8.3.30" + }, + { + "key": "Content-Security-Policy", + "value": "default-src 'none';base-uri 'none';manifest-src 'self';frame-ancestors 'none'" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=1962d6292fa33d5e080a1962f44dd78d; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=1962d6292fa33d5e080a1962f44dd78d; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=1962d6292fa33d5e080a1962f44dd78d; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=1962d6292fa33d5e080a1962f44dd78d; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=1962d6292fa33d5e080a1962f44dd78d; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=582ebef6fef2666ca4c91b5cda02b03d; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=582ebef6fef2666ca4c91b5cda02b03d; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=582ebef6fef2666ca4c91b5cda02b03d; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=582ebef6fef2666ca4c91b5cda02b03d; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=582ebef6fef2666ca4c91b5cda02b03d; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "X-Request-Id", + "value": "7TGvgaRcpYwehJCrF8zU" + }, + { + "key": "Cache-Control", + "value": "no-cache, no-store, must-revalidate" + }, + { + "key": "Feature-Policy", + "value": "autoplay 'none';camera 'none';fullscreen 'none';geolocation 'none';microphone 'none';payment 'none'" + }, + { + "key": "X-User-Id", + "value": "admin" + }, + { + "key": "Content-Encoding", + "value": "gzip" + }, + { + "key": "Content-Length", + "value": "444" + }, + { + "key": "Keep-Alive", + "value": "timeout=5, max=93" + }, + { + "key": "Connection", + "value": "Keep-Alive" + }, + { + "key": "Content-Type", + "value": "application/json; charset=utf-8" + } + ], + "stream": { + "type": "Buffer", + "data": [ + 123, + 34, + 117, + 114, + 108, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 122, + 97, + 107, + 101, + 110, + 92, + 47, + 118, + 49, + 92, + 47, + 122, + 97, + 107, + 101, + 110, + 92, + 47, + 97, + 49, + 57, + 97, + 53, + 56, + 102, + 100, + 45, + 50, + 48, + 54, + 53, + 45, + 52, + 55, + 97, + 56, + 45, + 97, + 55, + 54, + 50, + 45, + 49, + 98, + 48, + 50, + 52, + 52, + 49, + 56, + 101, + 55, + 52, + 101, + 34, + 44, + 34, + 117, + 117, + 105, + 100, + 34, + 58, + 34, + 97, + 49, + 57, + 97, + 53, + 56, + 102, + 100, + 45, + 50, + 48, + 54, + 53, + 45, + 52, + 55, + 97, + 56, + 45, + 97, + 55, + 54, + 50, + 45, + 49, + 98, + 48, + 50, + 52, + 52, + 49, + 56, + 101, + 55, + 52, + 101, + 34, + 44, + 34, + 105, + 100, + 101, + 110, + 116, + 105, + 102, + 105, + 99, + 97, + 116, + 105, + 101, + 34, + 58, + 34, + 90, + 65, + 65, + 75, + 45, + 84, + 66, + 79, + 78, + 75, + 72, + 45, + 66, + 53, + 50, + 52, + 66, + 54, + 34, + 44, + 34, + 111, + 109, + 115, + 99, + 104, + 114, + 105, + 106, + 118, + 105, + 110, + 103, + 34, + 58, + 34, + 115, + 116, + 114, + 105, + 110, + 103, + 34, + 44, + 34, + 116, + 111, + 101, + 108, + 105, + 99, + 104, + 116, + 105, + 110, + 103, + 34, + 58, + 34, + 115, + 116, + 114, + 105, + 110, + 103, + 34, + 44, + 34, + 122, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 105, + 92, + 47, + 118, + 49, + 92, + 47, + 122, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 110, + 92, + 47, + 54, + 49, + 57, + 100, + 99, + 51, + 101, + 53, + 45, + 53, + 50, + 102, + 49, + 45, + 52, + 50, + 57, + 52, + 45, + 97, + 53, + 54, + 57, + 45, + 102, + 50, + 49, + 100, + 49, + 54, + 102, + 52, + 52, + 56, + 55, + 57, + 34, + 44, + 34, + 114, + 101, + 103, + 105, + 115, + 116, + 114, + 97, + 116, + 105, + 101, + 100, + 97, + 116, + 117, + 109, + 34, + 58, + 34, + 50, + 48, + 50, + 54, + 45, + 48, + 51, + 45, + 49, + 48, + 84, + 49, + 50, + 58, + 49, + 57, + 58, + 50, + 57, + 43, + 48, + 48, + 58, + 48, + 48, + 34, + 44, + 34, + 115, + 116, + 97, + 114, + 116, + 100, + 97, + 116, + 117, + 109, + 34, + 58, + 34, + 50, + 48, + 49, + 57, + 45, + 48, + 52, + 45, + 48, + 57, + 34, + 44, + 34, + 101, + 105, + 110, + 100, + 100, + 97, + 116, + 117, + 109, + 34, + 58, + 110, + 117, + 108, + 108, + 44, + 34, + 101, + 105, + 110, + 100, + 100, + 97, + 116, + 117, + 109, + 71, + 101, + 112, + 108, + 97, + 110, + 100, + 34, + 58, + 34, + 50, + 48, + 49, + 57, + 45, + 48, + 52, + 45, + 50, + 48, + 34, + 44, + 34, + 117, + 105, + 116, + 101, + 114, + 108, + 105, + 106, + 107, + 101, + 69, + 105, + 110, + 100, + 100, + 97, + 116, + 117, + 109, + 65, + 102, + 100, + 111, + 101, + 110, + 105, + 110, + 103, + 34, + 58, + 34, + 50, + 48, + 49, + 57, + 45, + 48, + 52, + 45, + 48, + 57, + 34, + 44, + 34, + 118, + 101, + 114, + 116, + 114, + 111, + 117, + 119, + 101, + 108, + 105, + 106, + 107, + 104, + 101, + 105, + 100, + 97, + 97, + 110, + 100, + 117, + 105, + 100, + 105, + 110, + 103, + 34, + 58, + 34, + 103, + 101, + 104, + 101, + 105, + 109, + 34, + 44, + 34, + 118, + 101, + 114, + 97, + 110, + 116, + 119, + 111, + 111, + 114, + 100, + 101, + 108, + 105, + 106, + 107, + 101, + 79, + 114, + 103, + 97, + 110, + 105, + 115, + 97, + 116, + 105, + 101, + 34, + 58, + 34, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 34, + 44, + 34, + 97, + 114, + 99, + 104, + 105, + 101, + 102, + 110, + 111, + 109, + 105, + 110, + 97, + 116, + 105, + 101, + 34, + 58, + 110, + 117, + 108, + 108, + 44, + 34, + 97, + 114, + 99, + 104, + 105, + 101, + 102, + 97, + 99, + 116, + 105, + 101, + 100, + 97, + 116, + 117, + 109, + 34, + 58, + 110, + 117, + 108, + 108, + 44, + 34, + 97, + 114, + 99, + 104, + 105, + 101, + 102, + 115, + 116, + 97, + 116, + 117, + 115, + 34, + 58, + 34, + 110, + 111, + 103, + 95, + 116, + 101, + 95, + 97, + 114, + 99, + 104, + 105, + 118, + 101, + 114, + 101, + 110, + 34, + 44, + 34, + 98, + 101, + 116, + 97, + 108, + 105, + 110, + 103, + 115, + 105, + 110, + 100, + 105, + 99, + 97, + 116, + 105, + 101, + 34, + 58, + 34, + 103, + 101, + 104, + 101, + 101, + 108, + 34, + 44, + 34, + 108, + 97, + 97, + 116, + 115, + 116, + 101, + 66, + 101, + 116, + 97, + 97, + 108, + 100, + 97, + 116, + 117, + 109, + 34, + 58, + 34, + 50, + 48, + 49, + 57, + 45, + 48, + 49, + 45, + 48, + 49, + 34, + 44, + 34, + 104, + 111, + 111, + 102, + 100, + 122, + 97, + 97, + 107, + 34, + 58, + 110, + 117, + 108, + 108, + 125 + ] + }, + "cookie": [], + "responseTime": 114, + "responseSize": 805 + }, + "id": "2f947848-df6b-4742-9603-cf1db8e6dab1", + "assertions": [ + { + "assertion": "Zaak heropenen zet einddatum, archiefactiedatum en archiefnominatie op null", + "skipped": false + } + ] + }, + { + "cursor": { + "ref": "c3342732-e21b-4c44-9549-e80a6852a571", + "length": 313, + "cycles": 1, + "position": 122, + "iteration": 0, + "httpRequestId": "66af6f41-6ac0-4194-9b2d-c4f82a76775d" + }, + "item": { + "id": "adf15bfc-2b21-4b62-8cab-09ad75e09c40", + "name": "Add Eindstatus to Zaak again", + "request": { + "url": { + "path": [ + "statussen" + ], + "host": [ + "{{zrc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n\t\"zaak\": \"{{created_zaak_url}}\",\n\t\"statustype\": \"{{eindstatustype}}\",\n\t\"datumStatusGezet\": \"2018-04-22T13:37:00\"\n}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "7a309cf7-3e25-4640-a318-bdcf2dc6ed00", + "type": "text/javascript", + "exec": [ + "" + ], + "_lastExecutionId": "bc636142-6253-4c19-9238-00cbcf9edf02" + } + }, + { + "listen": "prerequest", + "script": { + "id": "ca40f462-66c0-47dc-b265-c838ea0b0119", + "type": "text/javascript", + "exec": [ + "" + ], + "_lastExecutionId": "160f9129-e210-43e2-87ea-c4dbead8da5d" + } + } + ] + }, + "request": { + "url": { + "protocol": "http", + "port": "8080", + "path": [ + "index.php", + "apps", + "procest", + "api", + "zgw", + "zaken", + "v1", + "statussen" + ], + "host": [ + "localhost" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Authorization", + "value": "Bearer eyJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJwcm9jZXN0LWFkbWluIiwiY2xpZW50X2lkIjoicHJvY2VzdC1hZG1pbiIsImlhdCI6IjE3NzMxNDUxNzEiLCJ1c2VyX2lkIjoicHJvY2VzdC1hZG1pbiIsInVzZXJfcmVwcmVzZW50YXRpb24iOiIifQ.ZIE6ul7mgi5-9GuajLekEvKFf3RSHDoecdVn6CgBu3Y", + "system": true + }, + { + "key": "User-Agent", + "value": "PostmanRuntime/7.39.1", + "system": true + }, + { + "key": "Accept", + "value": "*/*", + "system": true + }, + { + "key": "Cache-Control", + "value": "no-cache", + "system": true + }, + { + "key": "Postman-Token", + "value": "7e95f411-b2d5-416c-959c-17da246a1455", + "system": true + }, + { + "key": "Host", + "value": "localhost:8080", + "system": true + }, + { + "key": "Accept-Encoding", + "value": "gzip, deflate, br", + "system": true + }, + { + "key": "Connection", + "value": "keep-alive", + "system": true + }, + { + "key": "Content-Length", + "value": "295", + "system": true + }, + { + "key": "Cookie", + "value": "ocvp3112b4wg=582ebef6fef2666ca4c91b5cda02b03d; oc_sessionPassphrase=LBNdKxRzA0iqoULIruNxDDh2BK3O%2BrCIU8aUmiUcOFvy5Xw1YfjwQNlmBW2IkGwJYtxXh9%2BwDN6vYuGNX07tXzkBtjQJUWTGdzf8AIOUIVxVx5DfyWAQZ7nmYmQv6XSE; nc_sameSiteCookielax=true; nc_sameSiteCookiestrict=true", + "system": true + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n\t\"zaak\": \"http://localhost:8080/index.php/apps/procest/api/zgw/zaken/v1/zaken/a19a58fd-2065-47a8-a762-1b024418e74e\",\n\t\"statustype\": \"http://localhost:8080/index.php/apps/procest/api/zgw/catalogi/v1/statustypen/b0b83347-bc74-4ef9-b984-52f1c6c9fc3d\",\n\t\"datumStatusGezet\": \"2018-04-22T13:37:00\"\n}" + }, + "auth": { + "type": "jwt", + "jwt": [ + { + "type": "string", + "value": "{\r\n \"iss\": \"procest-admin\",\r\n \"client_id\": \"procest-admin\",\r\n \"iat\": \"1773145171\",\r\n \"user_id\": \"procest-admin\",\r\n \"user_representation\": \"\"\r\n}", + "key": "payload" + }, + { + "type": "string", + "value": "procest-admin-secret-key-for-testing", + "key": "secret" + }, + { + "type": "string", + "value": "HS256", + "key": "algorithm" + }, + { + "type": "boolean", + "value": false, + "key": "isSecretBase64Encoded" + }, + { + "type": "string", + "value": "header", + "key": "addTokenTo" + }, + { + "type": "string", + "value": "Bearer", + "key": "headerPrefix" + }, + { + "type": "string", + "value": "token", + "key": "queryParamKey" + }, + { + "type": "string", + "value": "{}", + "key": "header" + } + ] + } + }, + "response": { + "id": "7fb6abed-36d6-4531-9f89-b2f80133663b", + "status": "Created", + "code": 201, + "header": [ + { + "key": "Date", + "value": "Tue, 10 Mar 2026 12:19:30 GMT" + }, + { + "key": "Server", + "value": "Apache/2.4.66 (Debian)" + }, + { + "key": "X-Content-Type-Options", + "value": "nosniff" + }, + { + "key": "X-Frame-Options", + "value": "SAMEORIGIN" + }, + { + "key": "X-Permitted-Cross-Domain-Policies", + "value": "none" + }, + { + "key": "X-Robots-Tag", + "value": "noindex, nofollow" + }, + { + "key": "Referrer-Policy", + "value": "no-referrer" + }, + { + "key": "X-Powered-By", + "value": "PHP/8.3.30" + }, + { + "key": "Content-Security-Policy", + "value": "default-src 'none';base-uri 'none';manifest-src 'self';frame-ancestors 'none'" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=582ebef6fef2666ca4c91b5cda02b03d; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=582ebef6fef2666ca4c91b5cda02b03d; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=582ebef6fef2666ca4c91b5cda02b03d; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=582ebef6fef2666ca4c91b5cda02b03d; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=582ebef6fef2666ca4c91b5cda02b03d; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=6057f53d6c4a7723d527c1fa52625781; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=6057f53d6c4a7723d527c1fa52625781; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=6057f53d6c4a7723d527c1fa52625781; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=6057f53d6c4a7723d527c1fa52625781; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=6057f53d6c4a7723d527c1fa52625781; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "X-Request-Id", + "value": "NpYAJzJdFLck72A0dYL7" + }, + { + "key": "Cache-Control", + "value": "no-cache, no-store, must-revalidate" + }, + { + "key": "Feature-Policy", + "value": "autoplay 'none';camera 'none';fullscreen 'none';geolocation 'none';microphone 'none';payment 'none'" + }, + { + "key": "X-User-Id", + "value": "admin" + }, + { + "key": "Content-Length", + "value": "510" + }, + { + "key": "Keep-Alive", + "value": "timeout=5, max=92" + }, + { + "key": "Connection", + "value": "Keep-Alive" + }, + { + "key": "Content-Type", + "value": "application/json; charset=utf-8" + } + ], + "stream": { + "type": "Buffer", + "data": [ + 123, + 34, + 117, + 114, + 108, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 122, + 97, + 107, + 101, + 110, + 92, + 47, + 118, + 49, + 92, + 47, + 115, + 116, + 97, + 116, + 117, + 115, + 115, + 101, + 110, + 92, + 47, + 56, + 101, + 55, + 99, + 99, + 99, + 99, + 57, + 45, + 97, + 54, + 100, + 53, + 45, + 52, + 100, + 55, + 54, + 45, + 97, + 100, + 51, + 55, + 45, + 97, + 50, + 52, + 99, + 57, + 97, + 54, + 98, + 99, + 53, + 98, + 57, + 34, + 44, + 34, + 117, + 117, + 105, + 100, + 34, + 58, + 34, + 56, + 101, + 55, + 99, + 99, + 99, + 99, + 57, + 45, + 97, + 54, + 100, + 53, + 45, + 52, + 100, + 55, + 54, + 45, + 97, + 100, + 51, + 55, + 45, + 97, + 50, + 52, + 99, + 57, + 97, + 54, + 98, + 99, + 53, + 98, + 57, + 34, + 44, + 34, + 122, + 97, + 97, + 107, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 122, + 97, + 107, + 101, + 110, + 92, + 47, + 118, + 49, + 92, + 47, + 122, + 97, + 107, + 101, + 110, + 92, + 47, + 97, + 49, + 57, + 97, + 53, + 56, + 102, + 100, + 45, + 50, + 48, + 54, + 53, + 45, + 52, + 55, + 97, + 56, + 45, + 97, + 55, + 54, + 50, + 45, + 49, + 98, + 48, + 50, + 52, + 52, + 49, + 56, + 101, + 55, + 52, + 101, + 34, + 44, + 34, + 115, + 116, + 97, + 116, + 117, + 115, + 116, + 121, + 112, + 101, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 105, + 92, + 47, + 118, + 49, + 92, + 47, + 115, + 116, + 97, + 116, + 117, + 115, + 116, + 121, + 112, + 101, + 110, + 92, + 47, + 98, + 48, + 98, + 56, + 51, + 51, + 52, + 55, + 45, + 98, + 99, + 55, + 52, + 45, + 52, + 101, + 102, + 57, + 45, + 98, + 57, + 56, + 52, + 45, + 53, + 50, + 102, + 49, + 99, + 54, + 99, + 57, + 102, + 99, + 51, + 100, + 34, + 44, + 34, + 100, + 97, + 116, + 117, + 109, + 83, + 116, + 97, + 116, + 117, + 115, + 71, + 101, + 122, + 101, + 116, + 34, + 58, + 34, + 50, + 48, + 50, + 54, + 45, + 48, + 51, + 45, + 49, + 48, + 84, + 49, + 50, + 58, + 49, + 57, + 58, + 51, + 48, + 43, + 48, + 48, + 58, + 48, + 48, + 34, + 44, + 34, + 115, + 116, + 97, + 116, + 117, + 115, + 116, + 111, + 101, + 108, + 105, + 99, + 104, + 116, + 105, + 110, + 103, + 34, + 58, + 34, + 34, + 125 + ] + }, + "cookie": [], + "responseTime": 299, + "responseSize": 510 + }, + "id": "adf15bfc-2b21-4b62-8cab-09ad75e09c40" + }, + { + "cursor": { + "ref": "9f932154-35be-45a1-83c1-67a7de315d2d", + "length": 313, + "cycles": 1, + "position": 123, + "iteration": 0, + "httpRequestId": "128b67ec-725f-4900-9890-2091be4080c6" + }, + "item": { + "id": "7d5ab29f-3b09-47ca-a3b1-231533512ca9", + "name": "set restricted token Copy", + "request": { + "url": { + "path": [ + "catalogussen" + ], + "host": [ + "{{ztc_url}}" + ], + "query": [], + "variable": [] + }, + "method": "GET" + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "77a24419-fa94-4342-893d-79a98f382de3", + "type": "text/javascript", + "packages": {}, + "exec": [ + "pm.environment.set(\"jwt_token\", pm.environment.get(\"jwt-limited\"));", + " pm.environment.set(\"_original_client_id\", pm.environment.get(\"client_id\"));", + " pm.environment.set(\"_original_secret\", pm.environment.get(\"secret\"));", + " pm.environment.set(\"client_id\", pm.environment.get(\"client_id_limited\"));", + " pm.environment.set(\"secret\", pm.environment.get(\"secret_limited\"));", + " pm.environment.set(\"client_id\", pm.environment.get(\"client_id_limited\"));", + " pm.environment.set(\"secret\", pm.environment.get(\"secret_limited\"));" + ], + "_lastExecutionId": "f1c1749d-6de2-4a61-b7ca-2e56633f92c9" + } + } + ] + }, + "request": { + "url": { + "protocol": "http", + "port": "8080", + "path": [ + "index.php", + "apps", + "procest", + "api", + "zgw", + "catalogi", + "v1", + "catalogussen" + ], + "host": [ + "localhost" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Authorization", + "value": "Bearer eyJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJwcm9jZXN0LWFkbWluIiwiY2xpZW50X2lkIjoicHJvY2VzdC1hZG1pbiIsImlhdCI6IjE3NzMxNDUxNzEiLCJ1c2VyX2lkIjoicHJvY2VzdC1hZG1pbiIsInVzZXJfcmVwcmVzZW50YXRpb24iOiIifQ.ZIE6ul7mgi5-9GuajLekEvKFf3RSHDoecdVn6CgBu3Y", + "system": true + }, + { + "key": "User-Agent", + "value": "PostmanRuntime/7.39.1", + "system": true + }, + { + "key": "Accept", + "value": "*/*", + "system": true + }, + { + "key": "Cache-Control", + "value": "no-cache", + "system": true + }, + { + "key": "Postman-Token", + "value": "cf99a104-709f-4c14-b675-66ccc09f49ea", + "system": true + }, + { + "key": "Host", + "value": "localhost:8080", + "system": true + }, + { + "key": "Accept-Encoding", + "value": "gzip, deflate, br", + "system": true + }, + { + "key": "Connection", + "value": "keep-alive", + "system": true + }, + { + "key": "Cookie", + "value": "ocvp3112b4wg=6057f53d6c4a7723d527c1fa52625781; oc_sessionPassphrase=LBNdKxRzA0iqoULIruNxDDh2BK3O%2BrCIU8aUmiUcOFvy5Xw1YfjwQNlmBW2IkGwJYtxXh9%2BwDN6vYuGNX07tXzkBtjQJUWTGdzf8AIOUIVxVx5DfyWAQZ7nmYmQv6XSE; nc_sameSiteCookielax=true; nc_sameSiteCookiestrict=true", + "system": true + } + ], + "method": "GET", + "auth": { + "type": "jwt", + "jwt": [ + { + "type": "string", + "value": "{\r\n \"iss\": \"procest-admin\",\r\n \"client_id\": \"procest-admin\",\r\n \"iat\": \"1773145171\",\r\n \"user_id\": \"procest-admin\",\r\n \"user_representation\": \"\"\r\n}", + "key": "payload" + }, + { + "type": "string", + "value": "procest-admin-secret-key-for-testing", + "key": "secret" + }, + { + "type": "string", + "value": "HS256", + "key": "algorithm" + }, + { + "type": "boolean", + "value": false, + "key": "isSecretBase64Encoded" + }, + { + "type": "string", + "value": "header", + "key": "addTokenTo" + }, + { + "type": "string", + "value": "Bearer", + "key": "headerPrefix" + }, + { + "type": "string", + "value": "token", + "key": "queryParamKey" + }, + { + "type": "string", + "value": "{}", + "key": "header" + } + ] + } + }, + "response": { + "id": "f91bf3d7-b1cb-4062-be0c-84968548a446", + "status": "OK", + "code": 200, + "header": [ + { + "key": "Date", + "value": "Tue, 10 Mar 2026 12:19:31 GMT" + }, + { + "key": "Server", + "value": "Apache/2.4.66 (Debian)" + }, + { + "key": "X-Content-Type-Options", + "value": "nosniff" + }, + { + "key": "X-Frame-Options", + "value": "SAMEORIGIN" + }, + { + "key": "X-Permitted-Cross-Domain-Policies", + "value": "none" + }, + { + "key": "X-Robots-Tag", + "value": "noindex, nofollow" + }, + { + "key": "Referrer-Policy", + "value": "no-referrer" + }, + { + "key": "X-Powered-By", + "value": "PHP/8.3.30" + }, + { + "key": "Content-Security-Policy", + "value": "default-src 'none';base-uri 'none';manifest-src 'self';frame-ancestors 'none'" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=6057f53d6c4a7723d527c1fa52625781; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=6057f53d6c4a7723d527c1fa52625781; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=6057f53d6c4a7723d527c1fa52625781; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=6057f53d6c4a7723d527c1fa52625781; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=6057f53d6c4a7723d527c1fa52625781; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=3560d0b720be2a994210669232ea8624; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=3560d0b720be2a994210669232ea8624; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=3560d0b720be2a994210669232ea8624; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "X-Request-Id", + "value": "IFEv4Lda95FCAbzkNBkr" + }, + { + "key": "Cache-Control", + "value": "no-cache, no-store, must-revalidate" + }, + { + "key": "Feature-Policy", + "value": "autoplay 'none';camera 'none';fullscreen 'none';geolocation 'none';microphone 'none';payment 'none'" + }, + { + "key": "X-User-Id", + "value": "admin" + }, + { + "key": "Content-Encoding", + "value": "gzip" + }, + { + "key": "Content-Length", + "value": "919" + }, + { + "key": "Keep-Alive", + "value": "timeout=5, max=91" + }, + { + "key": "Connection", + "value": "Keep-Alive" + }, + { + "key": "Content-Type", + "value": "application/json; charset=utf-8" + } + ], + "stream": { + "type": "Buffer", + "data": [ + 123, + 34, + 99, + 111, + 117, + 110, + 116, + 34, + 58, + 50, + 49, + 50, + 44, + 34, + 110, + 101, + 120, + 116, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 105, + 92, + 47, + 118, + 49, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 117, + 115, + 115, + 101, + 110, + 63, + 112, + 97, + 103, + 101, + 61, + 50, + 34, + 44, + 34, + 112, + 114, + 101, + 118, + 105, + 111, + 117, + 115, + 34, + 58, + 110, + 117, + 108, + 108, + 44, + 34, + 114, + 101, + 115, + 117, + 108, + 116, + 115, + 34, + 58, + 91, + 123, + 34, + 117, + 114, + 108, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 105, + 92, + 47, + 118, + 49, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 117, + 115, + 115, + 101, + 110, + 92, + 47, + 100, + 51, + 100, + 101, + 101, + 56, + 101, + 98, + 45, + 56, + 100, + 50, + 56, + 45, + 52, + 50, + 50, + 101, + 45, + 98, + 48, + 97, + 102, + 45, + 97, + 57, + 57, + 57, + 101, + 100, + 57, + 55, + 50, + 50, + 51, + 102, + 34, + 44, + 34, + 117, + 117, + 105, + 100, + 34, + 58, + 34, + 100, + 51, + 100, + 101, + 101, + 56, + 101, + 98, + 45, + 56, + 100, + 50, + 56, + 45, + 52, + 50, + 50, + 101, + 45, + 98, + 48, + 97, + 102, + 45, + 97, + 57, + 57, + 57, + 101, + 100, + 57, + 55, + 50, + 50, + 51, + 102, + 34, + 44, + 34, + 100, + 111, + 109, + 101, + 105, + 110, + 34, + 58, + 34, + 65, + 65, + 66, + 34, + 44, + 34, + 114, + 115, + 105, + 110, + 34, + 58, + 34, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 34, + 44, + 34, + 99, + 111, + 110, + 116, + 97, + 99, + 116, + 112, + 101, + 114, + 115, + 111, + 111, + 110, + 66, + 101, + 104, + 101, + 101, + 114, + 78, + 97, + 97, + 109, + 34, + 58, + 34, + 84, + 101, + 115, + 116, + 32, + 80, + 101, + 114, + 115, + 111, + 111, + 110, + 34, + 44, + 34, + 99, + 111, + 110, + 116, + 97, + 99, + 116, + 112, + 101, + 114, + 115, + 111, + 111, + 110, + 66, + 101, + 104, + 101, + 101, + 114, + 84, + 101, + 108, + 101, + 102, + 111, + 111, + 110, + 110, + 117, + 109, + 109, + 101, + 114, + 34, + 58, + 34, + 34, + 44, + 34, + 99, + 111, + 110, + 116, + 97, + 99, + 116, + 112, + 101, + 114, + 115, + 111, + 111, + 110, + 66, + 101, + 104, + 101, + 101, + 114, + 69, + 109, + 97, + 105, + 108, + 97, + 100, + 114, + 101, + 115, + 34, + 58, + 34, + 34, + 44, + 34, + 122, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 98, + 101, + 115, + 108, + 117, + 105, + 116, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 105, + 110, + 102, + 111, + 114, + 109, + 97, + 116, + 105, + 101, + 111, + 98, + 106, + 101, + 99, + 116, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 125, + 44, + 123, + 34, + 117, + 114, + 108, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 105, + 92, + 47, + 118, + 49, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 117, + 115, + 115, + 101, + 110, + 92, + 47, + 57, + 51, + 51, + 52, + 102, + 49, + 49, + 48, + 45, + 98, + 97, + 48, + 98, + 45, + 52, + 50, + 49, + 55, + 45, + 56, + 57, + 48, + 51, + 45, + 98, + 97, + 55, + 49, + 52, + 48, + 55, + 102, + 48, + 97, + 50, + 50, + 34, + 44, + 34, + 117, + 117, + 105, + 100, + 34, + 58, + 34, + 57, + 51, + 51, + 52, + 102, + 49, + 49, + 48, + 45, + 98, + 97, + 48, + 98, + 45, + 52, + 50, + 49, + 55, + 45, + 56, + 57, + 48, + 51, + 45, + 98, + 97, + 55, + 49, + 52, + 48, + 55, + 102, + 48, + 97, + 50, + 50, + 34, + 44, + 34, + 100, + 111, + 109, + 101, + 105, + 110, + 34, + 58, + 34, + 90, + 71, + 87, + 84, + 34, + 44, + 34, + 114, + 115, + 105, + 110, + 34, + 58, + 34, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 34, + 44, + 34, + 99, + 111, + 110, + 116, + 97, + 99, + 116, + 112, + 101, + 114, + 115, + 111, + 111, + 110, + 66, + 101, + 104, + 101, + 101, + 114, + 78, + 97, + 97, + 109, + 34, + 58, + 34, + 84, + 101, + 115, + 116, + 32, + 80, + 101, + 114, + 115, + 111, + 111, + 110, + 34, + 44, + 34, + 99, + 111, + 110, + 116, + 97, + 99, + 116, + 112, + 101, + 114, + 115, + 111, + 111, + 110, + 66, + 101, + 104, + 101, + 101, + 114, + 84, + 101, + 108, + 101, + 102, + 111, + 111, + 110, + 110, + 117, + 109, + 109, + 101, + 114, + 34, + 58, + 34, + 34, + 44, + 34, + 99, + 111, + 110, + 116, + 97, + 99, + 116, + 112, + 101, + 114, + 115, + 111, + 111, + 110, + 66, + 101, + 104, + 101, + 101, + 114, + 69, + 109, + 97, + 105, + 108, + 97, + 100, + 114, + 101, + 115, + 34, + 58, + 34, + 34, + 44, + 34, + 122, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 98, + 101, + 115, + 108, + 117, + 105, + 116, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 105, + 110, + 102, + 111, + 114, + 109, + 97, + 116, + 105, + 101, + 111, + 98, + 106, + 101, + 99, + 116, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 125, + 44, + 123, + 34, + 117, + 114, + 108, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 105, + 92, + 47, + 118, + 49, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 117, + 115, + 115, + 101, + 110, + 92, + 47, + 99, + 57, + 101, + 56, + 97, + 99, + 56, + 56, + 45, + 52, + 55, + 53, + 55, + 45, + 52, + 101, + 101, + 49, + 45, + 97, + 56, + 102, + 48, + 45, + 57, + 55, + 51, + 98, + 51, + 101, + 97, + 100, + 57, + 52, + 55, + 100, + 34, + 44, + 34, + 117, + 117, + 105, + 100, + 34, + 58, + 34, + 99, + 57, + 101, + 56, + 97, + 99, + 56, + 56, + 45, + 52, + 55, + 53, + 55, + 45, + 52, + 101, + 101, + 49, + 45, + 97, + 56, + 102, + 48, + 45, + 57, + 55, + 51, + 98, + 51, + 101, + 97, + 100, + 57, + 52, + 55, + 100, + 34, + 44, + 34, + 100, + 111, + 109, + 101, + 105, + 110, + 34, + 58, + 34, + 65, + 65, + 66, + 34, + 44, + 34, + 114, + 115, + 105, + 110, + 34, + 58, + 34, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 34, + 44, + 34, + 99, + 111, + 110, + 116, + 97, + 99, + 116, + 112, + 101, + 114, + 115, + 111, + 111, + 110, + 66, + 101, + 104, + 101, + 101, + 114, + 78, + 97, + 97, + 109, + 34, + 58, + 34, + 84, + 101, + 115, + 116, + 32, + 80, + 101, + 114, + 115, + 111, + 111, + 110, + 34, + 44, + 34, + 99, + 111, + 110, + 116, + 97, + 99, + 116, + 112, + 101, + 114, + 115, + 111, + 111, + 110, + 66, + 101, + 104, + 101, + 101, + 114, + 84, + 101, + 108, + 101, + 102, + 111, + 111, + 110, + 110, + 117, + 109, + 109, + 101, + 114, + 34, + 58, + 34, + 34, + 44, + 34, + 99, + 111, + 110, + 116, + 97, + 99, + 116, + 112, + 101, + 114, + 115, + 111, + 111, + 110, + 66, + 101, + 104, + 101, + 101, + 114, + 69, + 109, + 97, + 105, + 108, + 97, + 100, + 114, + 101, + 115, + 34, + 58, + 34, + 34, + 44, + 34, + 122, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 98, + 101, + 115, + 108, + 117, + 105, + 116, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 105, + 110, + 102, + 111, + 114, + 109, + 97, + 116, + 105, + 101, + 111, + 98, + 106, + 101, + 99, + 116, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 125, + 44, + 123, + 34, + 117, + 114, + 108, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 105, + 92, + 47, + 118, + 49, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 117, + 115, + 115, + 101, + 110, + 92, + 47, + 100, + 54, + 100, + 51, + 52, + 57, + 52, + 50, + 45, + 50, + 49, + 51, + 53, + 45, + 52, + 50, + 97, + 51, + 45, + 97, + 57, + 55, + 102, + 45, + 51, + 52, + 102, + 55, + 57, + 99, + 54, + 55, + 54, + 99, + 57, + 55, + 34, + 44, + 34, + 117, + 117, + 105, + 100, + 34, + 58, + 34, + 100, + 54, + 100, + 51, + 52, + 57, + 52, + 50, + 45, + 50, + 49, + 51, + 53, + 45, + 52, + 50, + 97, + 51, + 45, + 97, + 57, + 55, + 102, + 45, + 51, + 52, + 102, + 55, + 57, + 99, + 54, + 55, + 54, + 99, + 57, + 55, + 34, + 44, + 34, + 100, + 111, + 109, + 101, + 105, + 110, + 34, + 58, + 34, + 65, + 65, + 66, + 34, + 44, + 34, + 114, + 115, + 105, + 110, + 34, + 58, + 34, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 34, + 44, + 34, + 99, + 111, + 110, + 116, + 97, + 99, + 116, + 112, + 101, + 114, + 115, + 111, + 111, + 110, + 66, + 101, + 104, + 101, + 101, + 114, + 78, + 97, + 97, + 109, + 34, + 58, + 34, + 84, + 101, + 115, + 116, + 32, + 80, + 101, + 114, + 115, + 111, + 111, + 110, + 34, + 44, + 34, + 99, + 111, + 110, + 116, + 97, + 99, + 116, + 112, + 101, + 114, + 115, + 111, + 111, + 110, + 66, + 101, + 104, + 101, + 101, + 114, + 84, + 101, + 108, + 101, + 102, + 111, + 111, + 110, + 110, + 117, + 109, + 109, + 101, + 114, + 34, + 58, + 34, + 34, + 44, + 34, + 99, + 111, + 110, + 116, + 97, + 99, + 116, + 112, + 101, + 114, + 115, + 111, + 111, + 110, + 66, + 101, + 104, + 101, + 101, + 114, + 69, + 109, + 97, + 105, + 108, + 97, + 100, + 114, + 101, + 115, + 34, + 58, + 34, + 34, + 44, + 34, + 122, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 98, + 101, + 115, + 108, + 117, + 105, + 116, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 105, + 110, + 102, + 111, + 114, + 109, + 97, + 116, + 105, + 101, + 111, + 98, + 106, + 101, + 99, + 116, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 125, + 44, + 123, + 34, + 117, + 114, + 108, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 105, + 92, + 47, + 118, + 49, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 117, + 115, + 115, + 101, + 110, + 92, + 47, + 55, + 99, + 99, + 99, + 101, + 55, + 97, + 57, + 45, + 101, + 52, + 98, + 57, + 45, + 52, + 56, + 101, + 51, + 45, + 56, + 97, + 53, + 51, + 45, + 99, + 97, + 102, + 56, + 48, + 102, + 54, + 97, + 55, + 98, + 99, + 55, + 34, + 44, + 34, + 117, + 117, + 105, + 100, + 34, + 58, + 34, + 55, + 99, + 99, + 99, + 101, + 55, + 97, + 57, + 45, + 101, + 52, + 98, + 57, + 45, + 52, + 56, + 101, + 51, + 45, + 56, + 97, + 53, + 51, + 45, + 99, + 97, + 102, + 56, + 48, + 102, + 54, + 97, + 55, + 98, + 99, + 55, + 34, + 44, + 34, + 100, + 111, + 109, + 101, + 105, + 110, + 34, + 58, + 34, + 65, + 65, + 66, + 34, + 44, + 34, + 114, + 115, + 105, + 110, + 34, + 58, + 34, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 34, + 44, + 34, + 99, + 111, + 110, + 116, + 97, + 99, + 116, + 112, + 101, + 114, + 115, + 111, + 111, + 110, + 66, + 101, + 104, + 101, + 101, + 114, + 78, + 97, + 97, + 109, + 34, + 58, + 34, + 84, + 101, + 115, + 116, + 32, + 80, + 101, + 114, + 115, + 111, + 111, + 110, + 34, + 44, + 34, + 99, + 111, + 110, + 116, + 97, + 99, + 116, + 112, + 101, + 114, + 115, + 111, + 111, + 110, + 66, + 101, + 104, + 101, + 101, + 114, + 84, + 101, + 108, + 101, + 102, + 111, + 111, + 110, + 110, + 117, + 109, + 109, + 101, + 114, + 34, + 58, + 34, + 34, + 44, + 34, + 99, + 111, + 110, + 116, + 97, + 99, + 116, + 112, + 101, + 114, + 115, + 111, + 111, + 110, + 66, + 101, + 104, + 101, + 101, + 114, + 69, + 109, + 97, + 105, + 108, + 97, + 100, + 114, + 101, + 115, + 34, + 58, + 34, + 34, + 44, + 34, + 122, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 98, + 101, + 115, + 108, + 117, + 105, + 116, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 105, + 110, + 102, + 111, + 114, + 109, + 97, + 116, + 105, + 101, + 111, + 98, + 106, + 101, + 99, + 116, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 125, + 44, + 123, + 34, + 117, + 114, + 108, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 105, + 92, + 47, + 118, + 49, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 117, + 115, + 115, + 101, + 110, + 92, + 47, + 57, + 55, + 98, + 54, + 99, + 50, + 102, + 57, + 45, + 101, + 53, + 51, + 51, + 45, + 52, + 100, + 101, + 57, + 45, + 98, + 100, + 51, + 51, + 45, + 51, + 57, + 98, + 51, + 97, + 49, + 57, + 99, + 53, + 56, + 97, + 50, + 34, + 44, + 34, + 117, + 117, + 105, + 100, + 34, + 58, + 34, + 57, + 55, + 98, + 54, + 99, + 50, + 102, + 57, + 45, + 101, + 53, + 51, + 51, + 45, + 52, + 100, + 101, + 57, + 45, + 98, + 100, + 51, + 51, + 45, + 51, + 57, + 98, + 51, + 97, + 49, + 57, + 99, + 53, + 56, + 97, + 50, + 34, + 44, + 34, + 100, + 111, + 109, + 101, + 105, + 110, + 34, + 58, + 34, + 65, + 65, + 66, + 34, + 44, + 34, + 114, + 115, + 105, + 110, + 34, + 58, + 34, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 34, + 44, + 34, + 99, + 111, + 110, + 116, + 97, + 99, + 116, + 112, + 101, + 114, + 115, + 111, + 111, + 110, + 66, + 101, + 104, + 101, + 101, + 114, + 78, + 97, + 97, + 109, + 34, + 58, + 34, + 84, + 101, + 115, + 116, + 32, + 80, + 101, + 114, + 115, + 111, + 111, + 110, + 34, + 44, + 34, + 99, + 111, + 110, + 116, + 97, + 99, + 116, + 112, + 101, + 114, + 115, + 111, + 111, + 110, + 66, + 101, + 104, + 101, + 101, + 114, + 84, + 101, + 108, + 101, + 102, + 111, + 111, + 110, + 110, + 117, + 109, + 109, + 101, + 114, + 34, + 58, + 34, + 34, + 44, + 34, + 99, + 111, + 110, + 116, + 97, + 99, + 116, + 112, + 101, + 114, + 115, + 111, + 111, + 110, + 66, + 101, + 104, + 101, + 101, + 114, + 69, + 109, + 97, + 105, + 108, + 97, + 100, + 114, + 101, + 115, + 34, + 58, + 34, + 34, + 44, + 34, + 122, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 98, + 101, + 115, + 108, + 117, + 105, + 116, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 105, + 110, + 102, + 111, + 114, + 109, + 97, + 116, + 105, + 101, + 111, + 98, + 106, + 101, + 99, + 116, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 125, + 44, + 123, + 34, + 117, + 114, + 108, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 105, + 92, + 47, + 118, + 49, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 117, + 115, + 115, + 101, + 110, + 92, + 47, + 52, + 55, + 53, + 55, + 101, + 57, + 98, + 54, + 45, + 51, + 102, + 57, + 101, + 45, + 52, + 51, + 50, + 102, + 45, + 97, + 100, + 56, + 49, + 45, + 99, + 48, + 53, + 48, + 51, + 50, + 102, + 54, + 53, + 100, + 57, + 53, + 34, + 44, + 34, + 117, + 117, + 105, + 100, + 34, + 58, + 34, + 52, + 55, + 53, + 55, + 101, + 57, + 98, + 54, + 45, + 51, + 102, + 57, + 101, + 45, + 52, + 51, + 50, + 102, + 45, + 97, + 100, + 56, + 49, + 45, + 99, + 48, + 53, + 48, + 51, + 50, + 102, + 54, + 53, + 100, + 57, + 53, + 34, + 44, + 34, + 100, + 111, + 109, + 101, + 105, + 110, + 34, + 58, + 34, + 65, + 65, + 66, + 34, + 44, + 34, + 114, + 115, + 105, + 110, + 34, + 58, + 34, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 34, + 44, + 34, + 99, + 111, + 110, + 116, + 97, + 99, + 116, + 112, + 101, + 114, + 115, + 111, + 111, + 110, + 66, + 101, + 104, + 101, + 101, + 114, + 78, + 97, + 97, + 109, + 34, + 58, + 34, + 84, + 101, + 115, + 116, + 32, + 80, + 101, + 114, + 115, + 111, + 111, + 110, + 34, + 44, + 34, + 99, + 111, + 110, + 116, + 97, + 99, + 116, + 112, + 101, + 114, + 115, + 111, + 111, + 110, + 66, + 101, + 104, + 101, + 101, + 114, + 84, + 101, + 108, + 101, + 102, + 111, + 111, + 110, + 110, + 117, + 109, + 109, + 101, + 114, + 34, + 58, + 34, + 34, + 44, + 34, + 99, + 111, + 110, + 116, + 97, + 99, + 116, + 112, + 101, + 114, + 115, + 111, + 111, + 110, + 66, + 101, + 104, + 101, + 101, + 114, + 69, + 109, + 97, + 105, + 108, + 97, + 100, + 114, + 101, + 115, + 34, + 58, + 34, + 34, + 44, + 34, + 122, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 98, + 101, + 115, + 108, + 117, + 105, + 116, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 105, + 110, + 102, + 111, + 114, + 109, + 97, + 116, + 105, + 101, + 111, + 98, + 106, + 101, + 99, + 116, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 125, + 44, + 123, + 34, + 117, + 114, + 108, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 105, + 92, + 47, + 118, + 49, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 117, + 115, + 115, + 101, + 110, + 92, + 47, + 52, + 57, + 51, + 54, + 97, + 54, + 102, + 98, + 45, + 55, + 97, + 56, + 54, + 45, + 52, + 48, + 57, + 98, + 45, + 57, + 52, + 55, + 51, + 45, + 51, + 99, + 52, + 99, + 56, + 57, + 53, + 98, + 56, + 101, + 56, + 57, + 34, + 44, + 34, + 117, + 117, + 105, + 100, + 34, + 58, + 34, + 52, + 57, + 51, + 54, + 97, + 54, + 102, + 98, + 45, + 55, + 97, + 56, + 54, + 45, + 52, + 48, + 57, + 98, + 45, + 57, + 52, + 55, + 51, + 45, + 51, + 99, + 52, + 99, + 56, + 57, + 53, + 98, + 56, + 101, + 56, + 57, + 34, + 44, + 34, + 100, + 111, + 109, + 101, + 105, + 110, + 34, + 58, + 34, + 90, + 71, + 87, + 84, + 34, + 44, + 34, + 114, + 115, + 105, + 110, + 34, + 58, + 34, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 34, + 44, + 34, + 99, + 111, + 110, + 116, + 97, + 99, + 116, + 112, + 101, + 114, + 115, + 111, + 111, + 110, + 66, + 101, + 104, + 101, + 101, + 114, + 78, + 97, + 97, + 109, + 34, + 58, + 34, + 84, + 101, + 115, + 116, + 32, + 80, + 101, + 114, + 115, + 111, + 111, + 110, + 34, + 44, + 34, + 99, + 111, + 110, + 116, + 97, + 99, + 116, + 112, + 101, + 114, + 115, + 111, + 111, + 110, + 66, + 101, + 104, + 101, + 101, + 114, + 84, + 101, + 108, + 101, + 102, + 111, + 111, + 110, + 110, + 117, + 109, + 109, + 101, + 114, + 34, + 58, + 34, + 34, + 44, + 34, + 99, + 111, + 110, + 116, + 97, + 99, + 116, + 112, + 101, + 114, + 115, + 111, + 111, + 110, + 66, + 101, + 104, + 101, + 101, + 114, + 69, + 109, + 97, + 105, + 108, + 97, + 100, + 114, + 101, + 115, + 34, + 58, + 34, + 34, + 44, + 34, + 122, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 98, + 101, + 115, + 108, + 117, + 105, + 116, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 105, + 110, + 102, + 111, + 114, + 109, + 97, + 116, + 105, + 101, + 111, + 98, + 106, + 101, + 99, + 116, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 125, + 44, + 123, + 34, + 117, + 114, + 108, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 105, + 92, + 47, + 118, + 49, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 117, + 115, + 115, + 101, + 110, + 92, + 47, + 55, + 53, + 101, + 51, + 100, + 98, + 57, + 56, + 45, + 99, + 98, + 57, + 101, + 45, + 52, + 99, + 48, + 57, + 45, + 57, + 48, + 49, + 48, + 45, + 99, + 48, + 53, + 52, + 102, + 53, + 97, + 52, + 98, + 98, + 57, + 99, + 34, + 44, + 34, + 117, + 117, + 105, + 100, + 34, + 58, + 34, + 55, + 53, + 101, + 51, + 100, + 98, + 57, + 56, + 45, + 99, + 98, + 57, + 101, + 45, + 52, + 99, + 48, + 57, + 45, + 57, + 48, + 49, + 48, + 45, + 99, + 48, + 53, + 52, + 102, + 53, + 97, + 52, + 98, + 98, + 57, + 99, + 34, + 44, + 34, + 100, + 111, + 109, + 101, + 105, + 110, + 34, + 58, + 34, + 65, + 65, + 66, + 34, + 44, + 34, + 114, + 115, + 105, + 110, + 34, + 58, + 34, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 34, + 44, + 34, + 99, + 111, + 110, + 116, + 97, + 99, + 116, + 112, + 101, + 114, + 115, + 111, + 111, + 110, + 66, + 101, + 104, + 101, + 101, + 114, + 78, + 97, + 97, + 109, + 34, + 58, + 34, + 84, + 101, + 115, + 116, + 32, + 80, + 101, + 114, + 115, + 111, + 111, + 110, + 34, + 44, + 34, + 99, + 111, + 110, + 116, + 97, + 99, + 116, + 112, + 101, + 114, + 115, + 111, + 111, + 110, + 66, + 101, + 104, + 101, + 101, + 114, + 84, + 101, + 108, + 101, + 102, + 111, + 111, + 110, + 110, + 117, + 109, + 109, + 101, + 114, + 34, + 58, + 34, + 34, + 44, + 34, + 99, + 111, + 110, + 116, + 97, + 99, + 116, + 112, + 101, + 114, + 115, + 111, + 111, + 110, + 66, + 101, + 104, + 101, + 101, + 114, + 69, + 109, + 97, + 105, + 108, + 97, + 100, + 114, + 101, + 115, + 34, + 58, + 34, + 34, + 44, + 34, + 122, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 98, + 101, + 115, + 108, + 117, + 105, + 116, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 105, + 110, + 102, + 111, + 114, + 109, + 97, + 116, + 105, + 101, + 111, + 98, + 106, + 101, + 99, + 116, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 125, + 44, + 123, + 34, + 117, + 114, + 108, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 105, + 92, + 47, + 118, + 49, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 117, + 115, + 115, + 101, + 110, + 92, + 47, + 98, + 100, + 49, + 51, + 98, + 57, + 52, + 56, + 45, + 52, + 100, + 97, + 98, + 45, + 52, + 56, + 55, + 98, + 45, + 57, + 97, + 48, + 56, + 45, + 51, + 100, + 52, + 53, + 100, + 54, + 97, + 54, + 49, + 54, + 99, + 100, + 34, + 44, + 34, + 117, + 117, + 105, + 100, + 34, + 58, + 34, + 98, + 100, + 49, + 51, + 98, + 57, + 52, + 56, + 45, + 52, + 100, + 97, + 98, + 45, + 52, + 56, + 55, + 98, + 45, + 57, + 97, + 48, + 56, + 45, + 51, + 100, + 52, + 53, + 100, + 54, + 97, + 54, + 49, + 54, + 99, + 100, + 34, + 44, + 34, + 100, + 111, + 109, + 101, + 105, + 110, + 34, + 58, + 34, + 90, + 71, + 87, + 84, + 34, + 44, + 34, + 114, + 115, + 105, + 110, + 34, + 58, + 34, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 34, + 44, + 34, + 99, + 111, + 110, + 116, + 97, + 99, + 116, + 112, + 101, + 114, + 115, + 111, + 111, + 110, + 66, + 101, + 104, + 101, + 101, + 114, + 78, + 97, + 97, + 109, + 34, + 58, + 34, + 84, + 101, + 115, + 116, + 32, + 80, + 101, + 114, + 115, + 111, + 111, + 110, + 34, + 44, + 34, + 99, + 111, + 110, + 116, + 97, + 99, + 116, + 112, + 101, + 114, + 115, + 111, + 111, + 110, + 66, + 101, + 104, + 101, + 101, + 114, + 84, + 101, + 108, + 101, + 102, + 111, + 111, + 110, + 110, + 117, + 109, + 109, + 101, + 114, + 34, + 58, + 34, + 34, + 44, + 34, + 99, + 111, + 110, + 116, + 97, + 99, + 116, + 112, + 101, + 114, + 115, + 111, + 111, + 110, + 66, + 101, + 104, + 101, + 101, + 114, + 69, + 109, + 97, + 105, + 108, + 97, + 100, + 114, + 101, + 115, + 34, + 58, + 34, + 34, + 44, + 34, + 122, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 98, + 101, + 115, + 108, + 117, + 105, + 116, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 105, + 110, + 102, + 111, + 114, + 109, + 97, + 116, + 105, + 101, + 111, + 98, + 106, + 101, + 99, + 116, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 125, + 44, + 123, + 34, + 117, + 114, + 108, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 105, + 92, + 47, + 118, + 49, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 117, + 115, + 115, + 101, + 110, + 92, + 47, + 56, + 53, + 101, + 100, + 100, + 100, + 98, + 101, + 45, + 49, + 57, + 98, + 55, + 45, + 52, + 101, + 56, + 54, + 45, + 98, + 101, + 54, + 57, + 45, + 53, + 98, + 101, + 99, + 55, + 99, + 102, + 54, + 56, + 53, + 55, + 97, + 34, + 44, + 34, + 117, + 117, + 105, + 100, + 34, + 58, + 34, + 56, + 53, + 101, + 100, + 100, + 100, + 98, + 101, + 45, + 49, + 57, + 98, + 55, + 45, + 52, + 101, + 56, + 54, + 45, + 98, + 101, + 54, + 57, + 45, + 53, + 98, + 101, + 99, + 55, + 99, + 102, + 54, + 56, + 53, + 55, + 97, + 34, + 44, + 34, + 100, + 111, + 109, + 101, + 105, + 110, + 34, + 58, + 34, + 65, + 65, + 66, + 34, + 44, + 34, + 114, + 115, + 105, + 110, + 34, + 58, + 34, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 34, + 44, + 34, + 99, + 111, + 110, + 116, + 97, + 99, + 116, + 112, + 101, + 114, + 115, + 111, + 111, + 110, + 66, + 101, + 104, + 101, + 101, + 114, + 78, + 97, + 97, + 109, + 34, + 58, + 34, + 84, + 101, + 115, + 116, + 32, + 80, + 101, + 114, + 115, + 111, + 111, + 110, + 34, + 44, + 34, + 99, + 111, + 110, + 116, + 97, + 99, + 116, + 112, + 101, + 114, + 115, + 111, + 111, + 110, + 66, + 101, + 104, + 101, + 101, + 114, + 84, + 101, + 108, + 101, + 102, + 111, + 111, + 110, + 110, + 117, + 109, + 109, + 101, + 114, + 34, + 58, + 34, + 34, + 44, + 34, + 99, + 111, + 110, + 116, + 97, + 99, + 116, + 112, + 101, + 114, + 115, + 111, + 111, + 110, + 66, + 101, + 104, + 101, + 101, + 114, + 69, + 109, + 97, + 105, + 108, + 97, + 100, + 114, + 101, + 115, + 34, + 58, + 34, + 34, + 44, + 34, + 122, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 98, + 101, + 115, + 108, + 117, + 105, + 116, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 105, + 110, + 102, + 111, + 114, + 109, + 97, + 116, + 105, + 101, + 111, + 98, + 106, + 101, + 99, + 116, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 125, + 44, + 123, + 34, + 117, + 114, + 108, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 105, + 92, + 47, + 118, + 49, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 117, + 115, + 115, + 101, + 110, + 92, + 47, + 51, + 55, + 97, + 48, + 99, + 52, + 53, + 99, + 45, + 55, + 98, + 101, + 57, + 45, + 52, + 49, + 102, + 50, + 45, + 98, + 102, + 57, + 55, + 45, + 57, + 48, + 51, + 52, + 49, + 97, + 56, + 50, + 49, + 51, + 50, + 55, + 34, + 44, + 34, + 117, + 117, + 105, + 100, + 34, + 58, + 34, + 51, + 55, + 97, + 48, + 99, + 52, + 53, + 99, + 45, + 55, + 98, + 101, + 57, + 45, + 52, + 49, + 102, + 50, + 45, + 98, + 102, + 57, + 55, + 45, + 57, + 48, + 51, + 52, + 49, + 97, + 56, + 50, + 49, + 51, + 50, + 55, + 34, + 44, + 34, + 100, + 111, + 109, + 101, + 105, + 110, + 34, + 58, + 34, + 90, + 71, + 87, + 84, + 34, + 44, + 34, + 114, + 115, + 105, + 110, + 34, + 58, + 34, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 34, + 44, + 34, + 99, + 111, + 110, + 116, + 97, + 99, + 116, + 112, + 101, + 114, + 115, + 111, + 111, + 110, + 66, + 101, + 104, + 101, + 101, + 114, + 78, + 97, + 97, + 109, + 34, + 58, + 34, + 84, + 101, + 115, + 116, + 32, + 80, + 101, + 114, + 115, + 111, + 111, + 110, + 34, + 44, + 34, + 99, + 111, + 110, + 116, + 97, + 99, + 116, + 112, + 101, + 114, + 115, + 111, + 111, + 110, + 66, + 101, + 104, + 101, + 101, + 114, + 84, + 101, + 108, + 101, + 102, + 111, + 111, + 110, + 110, + 117, + 109, + 109, + 101, + 114, + 34, + 58, + 34, + 34, + 44, + 34, + 99, + 111, + 110, + 116, + 97, + 99, + 116, + 112, + 101, + 114, + 115, + 111, + 111, + 110, + 66, + 101, + 104, + 101, + 101, + 114, + 69, + 109, + 97, + 105, + 108, + 97, + 100, + 114, + 101, + 115, + 34, + 58, + 34, + 34, + 44, + 34, + 122, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 98, + 101, + 115, + 108, + 117, + 105, + 116, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 105, + 110, + 102, + 111, + 114, + 109, + 97, + 116, + 105, + 101, + 111, + 98, + 106, + 101, + 99, + 116, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 125, + 44, + 123, + 34, + 117, + 114, + 108, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 105, + 92, + 47, + 118, + 49, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 117, + 115, + 115, + 101, + 110, + 92, + 47, + 55, + 98, + 57, + 100, + 48, + 100, + 53, + 57, + 45, + 51, + 50, + 97, + 101, + 45, + 52, + 98, + 53, + 98, + 45, + 57, + 101, + 50, + 52, + 45, + 53, + 101, + 55, + 52, + 102, + 99, + 49, + 101, + 55, + 56, + 102, + 56, + 34, + 44, + 34, + 117, + 117, + 105, + 100, + 34, + 58, + 34, + 55, + 98, + 57, + 100, + 48, + 100, + 53, + 57, + 45, + 51, + 50, + 97, + 101, + 45, + 52, + 98, + 53, + 98, + 45, + 57, + 101, + 50, + 52, + 45, + 53, + 101, + 55, + 52, + 102, + 99, + 49, + 101, + 55, + 56, + 102, + 56, + 34, + 44, + 34, + 100, + 111, + 109, + 101, + 105, + 110, + 34, + 58, + 34, + 65, + 65, + 66, + 34, + 44, + 34, + 114, + 115, + 105, + 110, + 34, + 58, + 34, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 34, + 44, + 34, + 99, + 111, + 110, + 116, + 97, + 99, + 116, + 112, + 101, + 114, + 115, + 111, + 111, + 110, + 66, + 101, + 104, + 101, + 101, + 114, + 78, + 97, + 97, + 109, + 34, + 58, + 34, + 84, + 101, + 115, + 116, + 32, + 80, + 101, + 114, + 115, + 111, + 111, + 110, + 34, + 44, + 34, + 99, + 111, + 110, + 116, + 97, + 99, + 116, + 112, + 101, + 114, + 115, + 111, + 111, + 110, + 66, + 101, + 104, + 101, + 101, + 114, + 84, + 101, + 108, + 101, + 102, + 111, + 111, + 110, + 110, + 117, + 109, + 109, + 101, + 114, + 34, + 58, + 34, + 34, + 44, + 34, + 99, + 111, + 110, + 116, + 97, + 99, + 116, + 112, + 101, + 114, + 115, + 111, + 111, + 110, + 66, + 101, + 104, + 101, + 101, + 114, + 69, + 109, + 97, + 105, + 108, + 97, + 100, + 114, + 101, + 115, + 34, + 58, + 34, + 34, + 44, + 34, + 122, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 98, + 101, + 115, + 108, + 117, + 105, + 116, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 105, + 110, + 102, + 111, + 114, + 109, + 97, + 116, + 105, + 101, + 111, + 98, + 106, + 101, + 99, + 116, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 125, + 44, + 123, + 34, + 117, + 114, + 108, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 105, + 92, + 47, + 118, + 49, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 117, + 115, + 115, + 101, + 110, + 92, + 47, + 48, + 101, + 53, + 49, + 55, + 99, + 97, + 53, + 45, + 56, + 57, + 49, + 98, + 45, + 52, + 53, + 97, + 57, + 45, + 98, + 56, + 50, + 101, + 45, + 101, + 57, + 56, + 48, + 57, + 54, + 57, + 101, + 57, + 57, + 50, + 100, + 34, + 44, + 34, + 117, + 117, + 105, + 100, + 34, + 58, + 34, + 48, + 101, + 53, + 49, + 55, + 99, + 97, + 53, + 45, + 56, + 57, + 49, + 98, + 45, + 52, + 53, + 97, + 57, + 45, + 98, + 56, + 50, + 101, + 45, + 101, + 57, + 56, + 48, + 57, + 54, + 57, + 101, + 57, + 57, + 50, + 100, + 34, + 44, + 34, + 100, + 111, + 109, + 101, + 105, + 110, + 34, + 58, + 34, + 90, + 71, + 87, + 84, + 34, + 44, + 34, + 114, + 115, + 105, + 110, + 34, + 58, + 34, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 34, + 44, + 34, + 99, + 111, + 110, + 116, + 97, + 99, + 116, + 112, + 101, + 114, + 115, + 111, + 111, + 110, + 66, + 101, + 104, + 101, + 101, + 114, + 78, + 97, + 97, + 109, + 34, + 58, + 34, + 84, + 101, + 115, + 116, + 32, + 80, + 101, + 114, + 115, + 111, + 111, + 110, + 34, + 44, + 34, + 99, + 111, + 110, + 116, + 97, + 99, + 116, + 112, + 101, + 114, + 115, + 111, + 111, + 110, + 66, + 101, + 104, + 101, + 101, + 114, + 84, + 101, + 108, + 101, + 102, + 111, + 111, + 110, + 110, + 117, + 109, + 109, + 101, + 114, + 34, + 58, + 34, + 34, + 44, + 34, + 99, + 111, + 110, + 116, + 97, + 99, + 116, + 112, + 101, + 114, + 115, + 111, + 111, + 110, + 66, + 101, + 104, + 101, + 101, + 114, + 69, + 109, + 97, + 105, + 108, + 97, + 100, + 114, + 101, + 115, + 34, + 58, + 34, + 34, + 44, + 34, + 122, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 98, + 101, + 115, + 108, + 117, + 105, + 116, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 105, + 110, + 102, + 111, + 114, + 109, + 97, + 116, + 105, + 101, + 111, + 98, + 106, + 101, + 99, + 116, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 125, + 44, + 123, + 34, + 117, + 114, + 108, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 105, + 92, + 47, + 118, + 49, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 117, + 115, + 115, + 101, + 110, + 92, + 47, + 99, + 99, + 97, + 50, + 100, + 57, + 102, + 100, + 45, + 50, + 56, + 56, + 102, + 45, + 52, + 56, + 48, + 57, + 45, + 56, + 48, + 53, + 54, + 45, + 101, + 54, + 101, + 51, + 98, + 51, + 53, + 98, + 48, + 98, + 102, + 100, + 34, + 44, + 34, + 117, + 117, + 105, + 100, + 34, + 58, + 34, + 99, + 99, + 97, + 50, + 100, + 57, + 102, + 100, + 45, + 50, + 56, + 56, + 102, + 45, + 52, + 56, + 48, + 57, + 45, + 56, + 48, + 53, + 54, + 45, + 101, + 54, + 101, + 51, + 98, + 51, + 53, + 98, + 48, + 98, + 102, + 100, + 34, + 44, + 34, + 100, + 111, + 109, + 101, + 105, + 110, + 34, + 58, + 34, + 65, + 65, + 66, + 34, + 44, + 34, + 114, + 115, + 105, + 110, + 34, + 58, + 34, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 34, + 44, + 34, + 99, + 111, + 110, + 116, + 97, + 99, + 116, + 112, + 101, + 114, + 115, + 111, + 111, + 110, + 66, + 101, + 104, + 101, + 101, + 114, + 78, + 97, + 97, + 109, + 34, + 58, + 34, + 84, + 101, + 115, + 116, + 32, + 80, + 101, + 114, + 115, + 111, + 111, + 110, + 34, + 44, + 34, + 99, + 111, + 110, + 116, + 97, + 99, + 116, + 112, + 101, + 114, + 115, + 111, + 111, + 110, + 66, + 101, + 104, + 101, + 101, + 114, + 84, + 101, + 108, + 101, + 102, + 111, + 111, + 110, + 110, + 117, + 109, + 109, + 101, + 114, + 34, + 58, + 34, + 34, + 44, + 34, + 99, + 111, + 110, + 116, + 97, + 99, + 116, + 112, + 101, + 114, + 115, + 111, + 111, + 110, + 66, + 101, + 104, + 101, + 101, + 114, + 69, + 109, + 97, + 105, + 108, + 97, + 100, + 114, + 101, + 115, + 34, + 58, + 34, + 34, + 44, + 34, + 122, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 98, + 101, + 115, + 108, + 117, + 105, + 116, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 105, + 110, + 102, + 111, + 114, + 109, + 97, + 116, + 105, + 101, + 111, + 98, + 106, + 101, + 99, + 116, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 125, + 44, + 123, + 34, + 117, + 114, + 108, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 105, + 92, + 47, + 118, + 49, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 117, + 115, + 115, + 101, + 110, + 92, + 47, + 50, + 48, + 48, + 101, + 54, + 55, + 98, + 55, + 45, + 99, + 50, + 98, + 48, + 45, + 52, + 100, + 53, + 50, + 45, + 56, + 53, + 57, + 54, + 45, + 99, + 48, + 57, + 98, + 48, + 57, + 49, + 49, + 48, + 98, + 48, + 98, + 34, + 44, + 34, + 117, + 117, + 105, + 100, + 34, + 58, + 34, + 50, + 48, + 48, + 101, + 54, + 55, + 98, + 55, + 45, + 99, + 50, + 98, + 48, + 45, + 52, + 100, + 53, + 50, + 45, + 56, + 53, + 57, + 54, + 45, + 99, + 48, + 57, + 98, + 48, + 57, + 49, + 49, + 48, + 98, + 48, + 98, + 34, + 44, + 34, + 100, + 111, + 109, + 101, + 105, + 110, + 34, + 58, + 34, + 90, + 71, + 87, + 84, + 34, + 44, + 34, + 114, + 115, + 105, + 110, + 34, + 58, + 34, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 34, + 44, + 34, + 99, + 111, + 110, + 116, + 97, + 99, + 116, + 112, + 101, + 114, + 115, + 111, + 111, + 110, + 66, + 101, + 104, + 101, + 101, + 114, + 78, + 97, + 97, + 109, + 34, + 58, + 34, + 84, + 101, + 115, + 116, + 32, + 80, + 101, + 114, + 115, + 111, + 111, + 110, + 34, + 44, + 34, + 99, + 111, + 110, + 116, + 97, + 99, + 116, + 112, + 101, + 114, + 115, + 111, + 111, + 110, + 66, + 101, + 104, + 101, + 101, + 114, + 84, + 101, + 108, + 101, + 102, + 111, + 111, + 110, + 110, + 117, + 109, + 109, + 101, + 114, + 34, + 58, + 34, + 34, + 44, + 34, + 99, + 111, + 110, + 116, + 97, + 99, + 116, + 112, + 101, + 114, + 115, + 111, + 111, + 110, + 66, + 101, + 104, + 101, + 101, + 114, + 69, + 109, + 97, + 105, + 108, + 97, + 100, + 114, + 101, + 115, + 34, + 58, + 34, + 34, + 44, + 34, + 122, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 98, + 101, + 115, + 108, + 117, + 105, + 116, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 105, + 110, + 102, + 111, + 114, + 109, + 97, + 116, + 105, + 101, + 111, + 98, + 106, + 101, + 99, + 116, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 125, + 44, + 123, + 34, + 117, + 114, + 108, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 105, + 92, + 47, + 118, + 49, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 117, + 115, + 115, + 101, + 110, + 92, + 47, + 97, + 54, + 50, + 51, + 48, + 53, + 52, + 102, + 45, + 100, + 48, + 57, + 98, + 45, + 52, + 101, + 54, + 102, + 45, + 98, + 99, + 54, + 56, + 45, + 98, + 101, + 55, + 97, + 51, + 57, + 56, + 99, + 99, + 51, + 53, + 50, + 34, + 44, + 34, + 117, + 117, + 105, + 100, + 34, + 58, + 34, + 97, + 54, + 50, + 51, + 48, + 53, + 52, + 102, + 45, + 100, + 48, + 57, + 98, + 45, + 52, + 101, + 54, + 102, + 45, + 98, + 99, + 54, + 56, + 45, + 98, + 101, + 55, + 97, + 51, + 57, + 56, + 99, + 99, + 51, + 53, + 50, + 34, + 44, + 34, + 100, + 111, + 109, + 101, + 105, + 110, + 34, + 58, + 34, + 65, + 65, + 66, + 34, + 44, + 34, + 114, + 115, + 105, + 110, + 34, + 58, + 34, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 34, + 44, + 34, + 99, + 111, + 110, + 116, + 97, + 99, + 116, + 112, + 101, + 114, + 115, + 111, + 111, + 110, + 66, + 101, + 104, + 101, + 101, + 114, + 78, + 97, + 97, + 109, + 34, + 58, + 34, + 84, + 101, + 115, + 116, + 32, + 80, + 101, + 114, + 115, + 111, + 111, + 110, + 34, + 44, + 34, + 99, + 111, + 110, + 116, + 97, + 99, + 116, + 112, + 101, + 114, + 115, + 111, + 111, + 110, + 66, + 101, + 104, + 101, + 101, + 114, + 84, + 101, + 108, + 101, + 102, + 111, + 111, + 110, + 110, + 117, + 109, + 109, + 101, + 114, + 34, + 58, + 34, + 34, + 44, + 34, + 99, + 111, + 110, + 116, + 97, + 99, + 116, + 112, + 101, + 114, + 115, + 111, + 111, + 110, + 66, + 101, + 104, + 101, + 101, + 114, + 69, + 109, + 97, + 105, + 108, + 97, + 100, + 114, + 101, + 115, + 34, + 58, + 34, + 34, + 44, + 34, + 122, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 98, + 101, + 115, + 108, + 117, + 105, + 116, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 105, + 110, + 102, + 111, + 114, + 109, + 97, + 116, + 105, + 101, + 111, + 98, + 106, + 101, + 99, + 116, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 125, + 44, + 123, + 34, + 117, + 114, + 108, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 105, + 92, + 47, + 118, + 49, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 117, + 115, + 115, + 101, + 110, + 92, + 47, + 50, + 56, + 54, + 98, + 101, + 57, + 51, + 51, + 45, + 50, + 97, + 51, + 52, + 45, + 52, + 54, + 52, + 53, + 45, + 98, + 48, + 49, + 48, + 45, + 57, + 57, + 98, + 56, + 56, + 53, + 50, + 101, + 57, + 48, + 50, + 48, + 34, + 44, + 34, + 117, + 117, + 105, + 100, + 34, + 58, + 34, + 50, + 56, + 54, + 98, + 101, + 57, + 51, + 51, + 45, + 50, + 97, + 51, + 52, + 45, + 52, + 54, + 52, + 53, + 45, + 98, + 48, + 49, + 48, + 45, + 57, + 57, + 98, + 56, + 56, + 53, + 50, + 101, + 57, + 48, + 50, + 48, + 34, + 44, + 34, + 100, + 111, + 109, + 101, + 105, + 110, + 34, + 58, + 34, + 90, + 71, + 87, + 84, + 34, + 44, + 34, + 114, + 115, + 105, + 110, + 34, + 58, + 34, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 34, + 44, + 34, + 99, + 111, + 110, + 116, + 97, + 99, + 116, + 112, + 101, + 114, + 115, + 111, + 111, + 110, + 66, + 101, + 104, + 101, + 101, + 114, + 78, + 97, + 97, + 109, + 34, + 58, + 34, + 84, + 101, + 115, + 116, + 32, + 80, + 101, + 114, + 115, + 111, + 111, + 110, + 34, + 44, + 34, + 99, + 111, + 110, + 116, + 97, + 99, + 116, + 112, + 101, + 114, + 115, + 111, + 111, + 110, + 66, + 101, + 104, + 101, + 101, + 114, + 84, + 101, + 108, + 101, + 102, + 111, + 111, + 110, + 110, + 117, + 109, + 109, + 101, + 114, + 34, + 58, + 34, + 34, + 44, + 34, + 99, + 111, + 110, + 116, + 97, + 99, + 116, + 112, + 101, + 114, + 115, + 111, + 111, + 110, + 66, + 101, + 104, + 101, + 101, + 114, + 69, + 109, + 97, + 105, + 108, + 97, + 100, + 114, + 101, + 115, + 34, + 58, + 34, + 34, + 44, + 34, + 122, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 98, + 101, + 115, + 108, + 117, + 105, + 116, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 105, + 110, + 102, + 111, + 114, + 109, + 97, + 116, + 105, + 101, + 111, + 98, + 106, + 101, + 99, + 116, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 125, + 44, + 123, + 34, + 117, + 114, + 108, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 105, + 92, + 47, + 118, + 49, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 117, + 115, + 115, + 101, + 110, + 92, + 47, + 100, + 56, + 102, + 102, + 53, + 50, + 53, + 53, + 45, + 97, + 100, + 102, + 97, + 45, + 52, + 52, + 51, + 102, + 45, + 98, + 49, + 102, + 57, + 45, + 57, + 99, + 98, + 57, + 55, + 100, + 53, + 98, + 51, + 99, + 100, + 99, + 34, + 44, + 34, + 117, + 117, + 105, + 100, + 34, + 58, + 34, + 100, + 56, + 102, + 102, + 53, + 50, + 53, + 53, + 45, + 97, + 100, + 102, + 97, + 45, + 52, + 52, + 51, + 102, + 45, + 98, + 49, + 102, + 57, + 45, + 57, + 99, + 98, + 57, + 55, + 100, + 53, + 98, + 51, + 99, + 100, + 99, + 34, + 44, + 34, + 100, + 111, + 109, + 101, + 105, + 110, + 34, + 58, + 34, + 65, + 65, + 66, + 34, + 44, + 34, + 114, + 115, + 105, + 110, + 34, + 58, + 34, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 34, + 44, + 34, + 99, + 111, + 110, + 116, + 97, + 99, + 116, + 112, + 101, + 114, + 115, + 111, + 111, + 110, + 66, + 101, + 104, + 101, + 101, + 114, + 78, + 97, + 97, + 109, + 34, + 58, + 34, + 84, + 101, + 115, + 116, + 32, + 80, + 101, + 114, + 115, + 111, + 111, + 110, + 34, + 44, + 34, + 99, + 111, + 110, + 116, + 97, + 99, + 116, + 112, + 101, + 114, + 115, + 111, + 111, + 110, + 66, + 101, + 104, + 101, + 101, + 114, + 84, + 101, + 108, + 101, + 102, + 111, + 111, + 110, + 110, + 117, + 109, + 109, + 101, + 114, + 34, + 58, + 34, + 34, + 44, + 34, + 99, + 111, + 110, + 116, + 97, + 99, + 116, + 112, + 101, + 114, + 115, + 111, + 111, + 110, + 66, + 101, + 104, + 101, + 101, + 114, + 69, + 109, + 97, + 105, + 108, + 97, + 100, + 114, + 101, + 115, + 34, + 58, + 34, + 34, + 44, + 34, + 122, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 98, + 101, + 115, + 108, + 117, + 105, + 116, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 105, + 110, + 102, + 111, + 114, + 109, + 97, + 116, + 105, + 101, + 111, + 98, + 106, + 101, + 99, + 116, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 125, + 44, + 123, + 34, + 117, + 114, + 108, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 105, + 92, + 47, + 118, + 49, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 117, + 115, + 115, + 101, + 110, + 92, + 47, + 49, + 100, + 54, + 49, + 51, + 51, + 51, + 48, + 45, + 48, + 97, + 54, + 102, + 45, + 52, + 51, + 56, + 50, + 45, + 97, + 99, + 48, + 48, + 45, + 53, + 50, + 98, + 50, + 53, + 57, + 99, + 52, + 102, + 56, + 99, + 97, + 34, + 44, + 34, + 117, + 117, + 105, + 100, + 34, + 58, + 34, + 49, + 100, + 54, + 49, + 51, + 51, + 51, + 48, + 45, + 48, + 97, + 54, + 102, + 45, + 52, + 51, + 56, + 50, + 45, + 97, + 99, + 48, + 48, + 45, + 53, + 50, + 98, + 50, + 53, + 57, + 99, + 52, + 102, + 56, + 99, + 97, + 34, + 44, + 34, + 100, + 111, + 109, + 101, + 105, + 110, + 34, + 58, + 34, + 90, + 71, + 87, + 84, + 34, + 44, + 34, + 114, + 115, + 105, + 110, + 34, + 58, + 34, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 34, + 44, + 34, + 99, + 111, + 110, + 116, + 97, + 99, + 116, + 112, + 101, + 114, + 115, + 111, + 111, + 110, + 66, + 101, + 104, + 101, + 101, + 114, + 78, + 97, + 97, + 109, + 34, + 58, + 34, + 84, + 101, + 115, + 116, + 32, + 80, + 101, + 114, + 115, + 111, + 111, + 110, + 34, + 44, + 34, + 99, + 111, + 110, + 116, + 97, + 99, + 116, + 112, + 101, + 114, + 115, + 111, + 111, + 110, + 66, + 101, + 104, + 101, + 101, + 114, + 84, + 101, + 108, + 101, + 102, + 111, + 111, + 110, + 110, + 117, + 109, + 109, + 101, + 114, + 34, + 58, + 34, + 34, + 44, + 34, + 99, + 111, + 110, + 116, + 97, + 99, + 116, + 112, + 101, + 114, + 115, + 111, + 111, + 110, + 66, + 101, + 104, + 101, + 101, + 114, + 69, + 109, + 97, + 105, + 108, + 97, + 100, + 114, + 101, + 115, + 34, + 58, + 34, + 34, + 44, + 34, + 122, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 98, + 101, + 115, + 108, + 117, + 105, + 116, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 105, + 110, + 102, + 111, + 114, + 109, + 97, + 116, + 105, + 101, + 111, + 98, + 106, + 101, + 99, + 116, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 125, + 93, + 125 + ] + }, + "cookie": [], + "responseTime": 243, + "responseSize": 8033 + }, + "id": "7d5ab29f-3b09-47ca-a3b1-231533512ca9" + }, + { + "cursor": { + "ref": "246befe8-8103-4992-81a4-c0bf1d7d29b2", + "length": 313, + "cycles": 1, + "position": 124, + "iteration": 0, + "httpRequestId": "3a742493-6ea2-4e23-8c67-fb2a67f72eba" + }, + "item": { + "id": "3be2c55b-9e03-4e7e-a9b3-3f8b765e38f9", + "name": "(zrc-008c) Zaak heropenen zonder scope zaken.heropenen in Applicatie is onmogelijk", + "request": { + "url": { + "path": [ + "statussen" + ], + "host": [ + "{{zrc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n\t\"zaak\": \"{{created_zaak_url}}\",\n\t\"statustype\": \"{{non_eindstatustype}}\",\n\t\"datumStatusGezet\": \"2018-04-21T17:37:00\"\n}" + }, + "auth": { + "type": "bearer", + "bearer": [ + { + "type": "string", + "value": "{{jwt-zrc-006}}", + "key": "token" + } + ] + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "3bfcf579-a302-4751-9f53-a1d88403426f", + "type": "text/javascript", + "packages": {}, + "exec": [ + "pm.test(\"Zaak heropenen zonder scope zaken.heropenen in Applicatie geeft 403\", function() {", + " pm.response.to.have.status(403);", + " pm.expect(pm.response.json().code).to.be.equal(\"permission_denied\");", + "});" + ], + "_lastExecutionId": "bb13a9d3-b73f-4986-a9bf-ecfd380b8d7e" + } + } + ] + }, + "request": { + "url": { + "protocol": "http", + "port": "8080", + "path": [ + "index.php", + "apps", + "procest", + "api", + "zgw", + "zaken", + "v1", + "statussen" + ], + "host": [ + "localhost" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Authorization", + "value": "Bearer {{jwt-zrc-006}}", + "system": true + }, + { + "key": "User-Agent", + "value": "PostmanRuntime/7.39.1", + "system": true + }, + { + "key": "Accept", + "value": "*/*", + "system": true + }, + { + "key": "Cache-Control", + "value": "no-cache", + "system": true + }, + { + "key": "Postman-Token", + "value": "847130c0-9328-4a0b-8e0d-c97a3e0273b9", + "system": true + }, + { + "key": "Host", + "value": "localhost:8080", + "system": true + }, + { + "key": "Accept-Encoding", + "value": "gzip, deflate, br", + "system": true + }, + { + "key": "Connection", + "value": "keep-alive", + "system": true + }, + { + "key": "Content-Length", + "value": "295", + "system": true + }, + { + "key": "Cookie", + "value": "ocvp3112b4wg=3560d0b720be2a994210669232ea8624; oc_sessionPassphrase=LBNdKxRzA0iqoULIruNxDDh2BK3O%2BrCIU8aUmiUcOFvy5Xw1YfjwQNlmBW2IkGwJYtxXh9%2BwDN6vYuGNX07tXzkBtjQJUWTGdzf8AIOUIVxVx5DfyWAQZ7nmYmQv6XSE; nc_sameSiteCookielax=true; nc_sameSiteCookiestrict=true", + "system": true + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n\t\"zaak\": \"http://localhost:8080/index.php/apps/procest/api/zgw/zaken/v1/zaken/a19a58fd-2065-47a8-a762-1b024418e74e\",\n\t\"statustype\": \"http://localhost:8080/index.php/apps/procest/api/zgw/catalogi/v1/statustypen/e04d4b89-b992-48b7-a862-e1bee6b27546\",\n\t\"datumStatusGezet\": \"2018-04-21T17:37:00\"\n}" + }, + "auth": { + "type": "bearer", + "bearer": [ + { + "type": "string", + "value": "{{jwt-zrc-006}}", + "key": "token" + } + ] + } + }, + "response": { + "id": "d72eee29-369b-4227-87fc-80592a8d33d6", + "status": "Forbidden", + "code": 403, + "header": [ + { + "key": "Date", + "value": "Tue, 10 Mar 2026 12:19:31 GMT" + }, + { + "key": "Server", + "value": "Apache/2.4.66 (Debian)" + }, + { + "key": "X-Content-Type-Options", + "value": "nosniff" + }, + { + "key": "X-Frame-Options", + "value": "SAMEORIGIN" + }, + { + "key": "X-Permitted-Cross-Domain-Policies", + "value": "none" + }, + { + "key": "X-Robots-Tag", + "value": "noindex, nofollow" + }, + { + "key": "Referrer-Policy", + "value": "no-referrer" + }, + { + "key": "X-Powered-By", + "value": "PHP/8.3.30" + }, + { + "key": "Content-Security-Policy", + "value": "default-src 'none';base-uri 'none';manifest-src 'self';frame-ancestors 'none'" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=3560d0b720be2a994210669232ea8624; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=3560d0b720be2a994210669232ea8624; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=3560d0b720be2a994210669232ea8624; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=3560d0b720be2a994210669232ea8624; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=3560d0b720be2a994210669232ea8624; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=cb28da338398a5f3e0e307b5ad9ce1bb; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=cb28da338398a5f3e0e307b5ad9ce1bb; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "X-Request-Id", + "value": "gYhfeIjLUPSbRAqn6y7s" + }, + { + "key": "Cache-Control", + "value": "no-cache, no-store, must-revalidate" + }, + { + "key": "Feature-Policy", + "value": "autoplay 'none';camera 'none';fullscreen 'none';geolocation 'none';microphone 'none';payment 'none'" + }, + { + "key": "Content-Length", + "value": "147" + }, + { + "key": "Keep-Alive", + "value": "timeout=5, max=90" + }, + { + "key": "Connection", + "value": "Keep-Alive" + }, + { + "key": "Content-Type", + "value": "application/json; charset=utf-8" + } + ], + "stream": { + "type": "Buffer", + "data": [ + 123, + 34, + 116, + 121, + 112, + 101, + 34, + 58, + 34, + 78, + 111, + 116, + 65, + 117, + 116, + 104, + 101, + 110, + 116, + 105, + 99, + 97, + 116, + 101, + 100, + 34, + 44, + 34, + 99, + 111, + 100, + 101, + 34, + 58, + 34, + 110, + 111, + 116, + 95, + 97, + 117, + 116, + 104, + 101, + 110, + 116, + 105, + 99, + 97, + 116, + 101, + 100, + 34, + 44, + 34, + 116, + 105, + 116, + 108, + 101, + 34, + 58, + 34, + 65, + 117, + 116, + 104, + 101, + 110, + 116, + 105, + 99, + 97, + 116, + 105, + 101, + 103, + 101, + 103, + 101, + 118, + 101, + 110, + 115, + 32, + 122, + 105, + 106, + 110, + 32, + 110, + 105, + 101, + 116, + 32, + 103, + 101, + 108, + 100, + 105, + 103, + 46, + 34, + 44, + 34, + 115, + 116, + 97, + 116, + 117, + 115, + 34, + 58, + 52, + 48, + 51, + 44, + 34, + 100, + 101, + 116, + 97, + 105, + 108, + 34, + 58, + 34, + 85, + 110, + 115, + 117, + 112, + 112, + 111, + 114, + 116, + 101, + 100, + 32, + 105, + 110, + 112, + 117, + 116, + 46, + 34, + 125 + ] + }, + "cookie": [], + "responseTime": 78, + "responseSize": 147 + }, + "id": "3be2c55b-9e03-4e7e-a9b3-3f8b765e38f9", + "assertions": [ + { + "assertion": "Zaak heropenen zonder scope zaken.heropenen in Applicatie geeft 403", + "skipped": false, + "error": { + "name": "AssertionError", + "index": 0, + "test": "Zaak heropenen zonder scope zaken.heropenen in Applicatie geeft 403", + "message": "expected 'not_authenticated' to equal 'permission_denied'", + "stack": "AssertionError: expected 'not_authenticated' to equal 'permission_denied'\n at Object.eval sandbox-script.js:1:125)" + } + } + ] + }, + { + "cursor": { + "ref": "7faf843e-325a-4370-a8cb-d5623537e087", + "length": 313, + "cycles": 1, + "position": 125, + "iteration": 0, + "httpRequestId": "25ab6524-1394-47ec-ac75-01c946432906" + }, + "item": { + "id": "6903ff24-e2a9-4e54-b6c6-24f039da3ee4", + "name": "set full token Copy", + "request": { + "url": { + "path": [ + "catalogussen" + ], + "host": [ + "{{ztc_url}}" + ], + "query": [], + "variable": [] + }, + "method": "GET" + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "c6a42b8a-2892-490a-af9f-c98367026568", + "type": "text/javascript", + "packages": {}, + "exec": [ + "" + ], + "_lastExecutionId": "3297f2e3-2bae-426a-911d-40054d5f0d0d" + } + }, + { + "listen": "prerequest", + "script": { + "id": "702ae012-3bd4-4ce3-a7c1-f1f301bcb0ce", + "type": "text/javascript", + "packages": {}, + "exec": [ + "pm.environment.set(\"jwt_token\", pm.environment.get(\"jwt_full\"));", + " var origId = pm.environment.get(\"_original_client_id\");", + " var origSecret = pm.environment.get(\"_original_secret\");", + " if (origId) { pm.environment.set(\"client_id\", origId); }", + " if (origSecret) { pm.environment.set(\"secret\", origSecret); }", + " pm.environment.set(\"secret\", pm.environment.get(\"secret\") || \"procest-admin-secret-key-for-testing\");" + ], + "_lastExecutionId": "ac5177f3-5574-43bf-ab3e-38086652cdbc" + } + } + ] + }, + "request": { + "url": { + "protocol": "http", + "port": "8080", + "path": [ + "index.php", + "apps", + "procest", + "api", + "zgw", + "catalogi", + "v1", + "catalogussen" + ], + "host": [ + "localhost" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Authorization", + "value": "Bearer eyJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJwcm9jZXN0LWFkbWluIiwiY2xpZW50X2lkIjoicHJvY2VzdC1hZG1pbiIsImlhdCI6IjE3NzMxNDUxNzIiLCJ1c2VyX2lkIjoicHJvY2VzdC1hZG1pbiIsInVzZXJfcmVwcmVzZW50YXRpb24iOiIifQ.75kB1cQw-Sf4Ubn4LY100nh6S3yVFnqipW4TYSidahY", + "system": true + }, + { + "key": "User-Agent", + "value": "PostmanRuntime/7.39.1", + "system": true + }, + { + "key": "Accept", + "value": "*/*", + "system": true + }, + { + "key": "Cache-Control", + "value": "no-cache", + "system": true + }, + { + "key": "Postman-Token", + "value": "c3a87c42-0e2d-404e-ba17-a3c45dfff108", + "system": true + }, + { + "key": "Host", + "value": "localhost:8080", + "system": true + }, + { + "key": "Accept-Encoding", + "value": "gzip, deflate, br", + "system": true + }, + { + "key": "Connection", + "value": "keep-alive", + "system": true + }, + { + "key": "Cookie", + "value": "ocvp3112b4wg=cb28da338398a5f3e0e307b5ad9ce1bb; oc_sessionPassphrase=LBNdKxRzA0iqoULIruNxDDh2BK3O%2BrCIU8aUmiUcOFvy5Xw1YfjwQNlmBW2IkGwJYtxXh9%2BwDN6vYuGNX07tXzkBtjQJUWTGdzf8AIOUIVxVx5DfyWAQZ7nmYmQv6XSE; nc_sameSiteCookielax=true; nc_sameSiteCookiestrict=true", + "system": true + } + ], + "method": "GET", + "auth": { + "type": "jwt", + "jwt": [ + { + "type": "string", + "value": "{\r\n \"iss\": \"procest-admin\",\r\n \"client_id\": \"procest-admin\",\r\n \"iat\": \"1773145172\",\r\n \"user_id\": \"procest-admin\",\r\n \"user_representation\": \"\"\r\n}", + "key": "payload" + }, + { + "type": "string", + "value": "procest-admin-secret-key-for-testing", + "key": "secret" + }, + { + "type": "string", + "value": "HS256", + "key": "algorithm" + }, + { + "type": "boolean", + "value": false, + "key": "isSecretBase64Encoded" + }, + { + "type": "string", + "value": "header", + "key": "addTokenTo" + }, + { + "type": "string", + "value": "Bearer", + "key": "headerPrefix" + }, + { + "type": "string", + "value": "token", + "key": "queryParamKey" + }, + { + "type": "string", + "value": "{}", + "key": "header" + } + ] + } + }, + "response": { + "id": "a7630484-875a-4fa9-8da6-6cedd7aae5f6", + "status": "OK", + "code": 200, + "header": [ + { + "key": "Date", + "value": "Tue, 10 Mar 2026 12:19:31 GMT" + }, + { + "key": "Server", + "value": "Apache/2.4.66 (Debian)" + }, + { + "key": "X-Content-Type-Options", + "value": "nosniff" + }, + { + "key": "X-Frame-Options", + "value": "SAMEORIGIN" + }, + { + "key": "X-Permitted-Cross-Domain-Policies", + "value": "none" + }, + { + "key": "X-Robots-Tag", + "value": "noindex, nofollow" + }, + { + "key": "Referrer-Policy", + "value": "no-referrer" + }, + { + "key": "X-Powered-By", + "value": "PHP/8.3.30" + }, + { + "key": "Content-Security-Policy", + "value": "default-src 'none';base-uri 'none';manifest-src 'self';frame-ancestors 'none'" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=cb28da338398a5f3e0e307b5ad9ce1bb; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=cb28da338398a5f3e0e307b5ad9ce1bb; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "X-Request-Id", + "value": "sj4gX4450h6BROiB821E" + }, + { + "key": "Cache-Control", + "value": "no-cache, no-store, must-revalidate" + }, + { + "key": "Feature-Policy", + "value": "autoplay 'none';camera 'none';fullscreen 'none';geolocation 'none';microphone 'none';payment 'none'" + }, + { + "key": "X-User-Id", + "value": "admin" + }, + { + "key": "Content-Encoding", + "value": "gzip" + }, + { + "key": "Content-Length", + "value": "919" + }, + { + "key": "Keep-Alive", + "value": "timeout=5, max=89" + }, + { + "key": "Connection", + "value": "Keep-Alive" + }, + { + "key": "Content-Type", + "value": "application/json; charset=utf-8" + } + ], + "stream": { + "type": "Buffer", + "data": [ + 123, + 34, + 99, + 111, + 117, + 110, + 116, + 34, + 58, + 50, + 49, + 50, + 44, + 34, + 110, + 101, + 120, + 116, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 105, + 92, + 47, + 118, + 49, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 117, + 115, + 115, + 101, + 110, + 63, + 112, + 97, + 103, + 101, + 61, + 50, + 34, + 44, + 34, + 112, + 114, + 101, + 118, + 105, + 111, + 117, + 115, + 34, + 58, + 110, + 117, + 108, + 108, + 44, + 34, + 114, + 101, + 115, + 117, + 108, + 116, + 115, + 34, + 58, + 91, + 123, + 34, + 117, + 114, + 108, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 105, + 92, + 47, + 118, + 49, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 117, + 115, + 115, + 101, + 110, + 92, + 47, + 100, + 51, + 100, + 101, + 101, + 56, + 101, + 98, + 45, + 56, + 100, + 50, + 56, + 45, + 52, + 50, + 50, + 101, + 45, + 98, + 48, + 97, + 102, + 45, + 97, + 57, + 57, + 57, + 101, + 100, + 57, + 55, + 50, + 50, + 51, + 102, + 34, + 44, + 34, + 117, + 117, + 105, + 100, + 34, + 58, + 34, + 100, + 51, + 100, + 101, + 101, + 56, + 101, + 98, + 45, + 56, + 100, + 50, + 56, + 45, + 52, + 50, + 50, + 101, + 45, + 98, + 48, + 97, + 102, + 45, + 97, + 57, + 57, + 57, + 101, + 100, + 57, + 55, + 50, + 50, + 51, + 102, + 34, + 44, + 34, + 100, + 111, + 109, + 101, + 105, + 110, + 34, + 58, + 34, + 65, + 65, + 66, + 34, + 44, + 34, + 114, + 115, + 105, + 110, + 34, + 58, + 34, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 34, + 44, + 34, + 99, + 111, + 110, + 116, + 97, + 99, + 116, + 112, + 101, + 114, + 115, + 111, + 111, + 110, + 66, + 101, + 104, + 101, + 101, + 114, + 78, + 97, + 97, + 109, + 34, + 58, + 34, + 84, + 101, + 115, + 116, + 32, + 80, + 101, + 114, + 115, + 111, + 111, + 110, + 34, + 44, + 34, + 99, + 111, + 110, + 116, + 97, + 99, + 116, + 112, + 101, + 114, + 115, + 111, + 111, + 110, + 66, + 101, + 104, + 101, + 101, + 114, + 84, + 101, + 108, + 101, + 102, + 111, + 111, + 110, + 110, + 117, + 109, + 109, + 101, + 114, + 34, + 58, + 34, + 34, + 44, + 34, + 99, + 111, + 110, + 116, + 97, + 99, + 116, + 112, + 101, + 114, + 115, + 111, + 111, + 110, + 66, + 101, + 104, + 101, + 101, + 114, + 69, + 109, + 97, + 105, + 108, + 97, + 100, + 114, + 101, + 115, + 34, + 58, + 34, + 34, + 44, + 34, + 122, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 98, + 101, + 115, + 108, + 117, + 105, + 116, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 105, + 110, + 102, + 111, + 114, + 109, + 97, + 116, + 105, + 101, + 111, + 98, + 106, + 101, + 99, + 116, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 125, + 44, + 123, + 34, + 117, + 114, + 108, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 105, + 92, + 47, + 118, + 49, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 117, + 115, + 115, + 101, + 110, + 92, + 47, + 57, + 51, + 51, + 52, + 102, + 49, + 49, + 48, + 45, + 98, + 97, + 48, + 98, + 45, + 52, + 50, + 49, + 55, + 45, + 56, + 57, + 48, + 51, + 45, + 98, + 97, + 55, + 49, + 52, + 48, + 55, + 102, + 48, + 97, + 50, + 50, + 34, + 44, + 34, + 117, + 117, + 105, + 100, + 34, + 58, + 34, + 57, + 51, + 51, + 52, + 102, + 49, + 49, + 48, + 45, + 98, + 97, + 48, + 98, + 45, + 52, + 50, + 49, + 55, + 45, + 56, + 57, + 48, + 51, + 45, + 98, + 97, + 55, + 49, + 52, + 48, + 55, + 102, + 48, + 97, + 50, + 50, + 34, + 44, + 34, + 100, + 111, + 109, + 101, + 105, + 110, + 34, + 58, + 34, + 90, + 71, + 87, + 84, + 34, + 44, + 34, + 114, + 115, + 105, + 110, + 34, + 58, + 34, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 34, + 44, + 34, + 99, + 111, + 110, + 116, + 97, + 99, + 116, + 112, + 101, + 114, + 115, + 111, + 111, + 110, + 66, + 101, + 104, + 101, + 101, + 114, + 78, + 97, + 97, + 109, + 34, + 58, + 34, + 84, + 101, + 115, + 116, + 32, + 80, + 101, + 114, + 115, + 111, + 111, + 110, + 34, + 44, + 34, + 99, + 111, + 110, + 116, + 97, + 99, + 116, + 112, + 101, + 114, + 115, + 111, + 111, + 110, + 66, + 101, + 104, + 101, + 101, + 114, + 84, + 101, + 108, + 101, + 102, + 111, + 111, + 110, + 110, + 117, + 109, + 109, + 101, + 114, + 34, + 58, + 34, + 34, + 44, + 34, + 99, + 111, + 110, + 116, + 97, + 99, + 116, + 112, + 101, + 114, + 115, + 111, + 111, + 110, + 66, + 101, + 104, + 101, + 101, + 114, + 69, + 109, + 97, + 105, + 108, + 97, + 100, + 114, + 101, + 115, + 34, + 58, + 34, + 34, + 44, + 34, + 122, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 98, + 101, + 115, + 108, + 117, + 105, + 116, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 105, + 110, + 102, + 111, + 114, + 109, + 97, + 116, + 105, + 101, + 111, + 98, + 106, + 101, + 99, + 116, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 125, + 44, + 123, + 34, + 117, + 114, + 108, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 105, + 92, + 47, + 118, + 49, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 117, + 115, + 115, + 101, + 110, + 92, + 47, + 99, + 57, + 101, + 56, + 97, + 99, + 56, + 56, + 45, + 52, + 55, + 53, + 55, + 45, + 52, + 101, + 101, + 49, + 45, + 97, + 56, + 102, + 48, + 45, + 57, + 55, + 51, + 98, + 51, + 101, + 97, + 100, + 57, + 52, + 55, + 100, + 34, + 44, + 34, + 117, + 117, + 105, + 100, + 34, + 58, + 34, + 99, + 57, + 101, + 56, + 97, + 99, + 56, + 56, + 45, + 52, + 55, + 53, + 55, + 45, + 52, + 101, + 101, + 49, + 45, + 97, + 56, + 102, + 48, + 45, + 57, + 55, + 51, + 98, + 51, + 101, + 97, + 100, + 57, + 52, + 55, + 100, + 34, + 44, + 34, + 100, + 111, + 109, + 101, + 105, + 110, + 34, + 58, + 34, + 65, + 65, + 66, + 34, + 44, + 34, + 114, + 115, + 105, + 110, + 34, + 58, + 34, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 34, + 44, + 34, + 99, + 111, + 110, + 116, + 97, + 99, + 116, + 112, + 101, + 114, + 115, + 111, + 111, + 110, + 66, + 101, + 104, + 101, + 101, + 114, + 78, + 97, + 97, + 109, + 34, + 58, + 34, + 84, + 101, + 115, + 116, + 32, + 80, + 101, + 114, + 115, + 111, + 111, + 110, + 34, + 44, + 34, + 99, + 111, + 110, + 116, + 97, + 99, + 116, + 112, + 101, + 114, + 115, + 111, + 111, + 110, + 66, + 101, + 104, + 101, + 101, + 114, + 84, + 101, + 108, + 101, + 102, + 111, + 111, + 110, + 110, + 117, + 109, + 109, + 101, + 114, + 34, + 58, + 34, + 34, + 44, + 34, + 99, + 111, + 110, + 116, + 97, + 99, + 116, + 112, + 101, + 114, + 115, + 111, + 111, + 110, + 66, + 101, + 104, + 101, + 101, + 114, + 69, + 109, + 97, + 105, + 108, + 97, + 100, + 114, + 101, + 115, + 34, + 58, + 34, + 34, + 44, + 34, + 122, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 98, + 101, + 115, + 108, + 117, + 105, + 116, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 105, + 110, + 102, + 111, + 114, + 109, + 97, + 116, + 105, + 101, + 111, + 98, + 106, + 101, + 99, + 116, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 125, + 44, + 123, + 34, + 117, + 114, + 108, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 105, + 92, + 47, + 118, + 49, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 117, + 115, + 115, + 101, + 110, + 92, + 47, + 100, + 54, + 100, + 51, + 52, + 57, + 52, + 50, + 45, + 50, + 49, + 51, + 53, + 45, + 52, + 50, + 97, + 51, + 45, + 97, + 57, + 55, + 102, + 45, + 51, + 52, + 102, + 55, + 57, + 99, + 54, + 55, + 54, + 99, + 57, + 55, + 34, + 44, + 34, + 117, + 117, + 105, + 100, + 34, + 58, + 34, + 100, + 54, + 100, + 51, + 52, + 57, + 52, + 50, + 45, + 50, + 49, + 51, + 53, + 45, + 52, + 50, + 97, + 51, + 45, + 97, + 57, + 55, + 102, + 45, + 51, + 52, + 102, + 55, + 57, + 99, + 54, + 55, + 54, + 99, + 57, + 55, + 34, + 44, + 34, + 100, + 111, + 109, + 101, + 105, + 110, + 34, + 58, + 34, + 65, + 65, + 66, + 34, + 44, + 34, + 114, + 115, + 105, + 110, + 34, + 58, + 34, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 34, + 44, + 34, + 99, + 111, + 110, + 116, + 97, + 99, + 116, + 112, + 101, + 114, + 115, + 111, + 111, + 110, + 66, + 101, + 104, + 101, + 101, + 114, + 78, + 97, + 97, + 109, + 34, + 58, + 34, + 84, + 101, + 115, + 116, + 32, + 80, + 101, + 114, + 115, + 111, + 111, + 110, + 34, + 44, + 34, + 99, + 111, + 110, + 116, + 97, + 99, + 116, + 112, + 101, + 114, + 115, + 111, + 111, + 110, + 66, + 101, + 104, + 101, + 101, + 114, + 84, + 101, + 108, + 101, + 102, + 111, + 111, + 110, + 110, + 117, + 109, + 109, + 101, + 114, + 34, + 58, + 34, + 34, + 44, + 34, + 99, + 111, + 110, + 116, + 97, + 99, + 116, + 112, + 101, + 114, + 115, + 111, + 111, + 110, + 66, + 101, + 104, + 101, + 101, + 114, + 69, + 109, + 97, + 105, + 108, + 97, + 100, + 114, + 101, + 115, + 34, + 58, + 34, + 34, + 44, + 34, + 122, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 98, + 101, + 115, + 108, + 117, + 105, + 116, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 105, + 110, + 102, + 111, + 114, + 109, + 97, + 116, + 105, + 101, + 111, + 98, + 106, + 101, + 99, + 116, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 125, + 44, + 123, + 34, + 117, + 114, + 108, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 105, + 92, + 47, + 118, + 49, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 117, + 115, + 115, + 101, + 110, + 92, + 47, + 55, + 99, + 99, + 99, + 101, + 55, + 97, + 57, + 45, + 101, + 52, + 98, + 57, + 45, + 52, + 56, + 101, + 51, + 45, + 56, + 97, + 53, + 51, + 45, + 99, + 97, + 102, + 56, + 48, + 102, + 54, + 97, + 55, + 98, + 99, + 55, + 34, + 44, + 34, + 117, + 117, + 105, + 100, + 34, + 58, + 34, + 55, + 99, + 99, + 99, + 101, + 55, + 97, + 57, + 45, + 101, + 52, + 98, + 57, + 45, + 52, + 56, + 101, + 51, + 45, + 56, + 97, + 53, + 51, + 45, + 99, + 97, + 102, + 56, + 48, + 102, + 54, + 97, + 55, + 98, + 99, + 55, + 34, + 44, + 34, + 100, + 111, + 109, + 101, + 105, + 110, + 34, + 58, + 34, + 65, + 65, + 66, + 34, + 44, + 34, + 114, + 115, + 105, + 110, + 34, + 58, + 34, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 34, + 44, + 34, + 99, + 111, + 110, + 116, + 97, + 99, + 116, + 112, + 101, + 114, + 115, + 111, + 111, + 110, + 66, + 101, + 104, + 101, + 101, + 114, + 78, + 97, + 97, + 109, + 34, + 58, + 34, + 84, + 101, + 115, + 116, + 32, + 80, + 101, + 114, + 115, + 111, + 111, + 110, + 34, + 44, + 34, + 99, + 111, + 110, + 116, + 97, + 99, + 116, + 112, + 101, + 114, + 115, + 111, + 111, + 110, + 66, + 101, + 104, + 101, + 101, + 114, + 84, + 101, + 108, + 101, + 102, + 111, + 111, + 110, + 110, + 117, + 109, + 109, + 101, + 114, + 34, + 58, + 34, + 34, + 44, + 34, + 99, + 111, + 110, + 116, + 97, + 99, + 116, + 112, + 101, + 114, + 115, + 111, + 111, + 110, + 66, + 101, + 104, + 101, + 101, + 114, + 69, + 109, + 97, + 105, + 108, + 97, + 100, + 114, + 101, + 115, + 34, + 58, + 34, + 34, + 44, + 34, + 122, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 98, + 101, + 115, + 108, + 117, + 105, + 116, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 105, + 110, + 102, + 111, + 114, + 109, + 97, + 116, + 105, + 101, + 111, + 98, + 106, + 101, + 99, + 116, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 125, + 44, + 123, + 34, + 117, + 114, + 108, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 105, + 92, + 47, + 118, + 49, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 117, + 115, + 115, + 101, + 110, + 92, + 47, + 57, + 55, + 98, + 54, + 99, + 50, + 102, + 57, + 45, + 101, + 53, + 51, + 51, + 45, + 52, + 100, + 101, + 57, + 45, + 98, + 100, + 51, + 51, + 45, + 51, + 57, + 98, + 51, + 97, + 49, + 57, + 99, + 53, + 56, + 97, + 50, + 34, + 44, + 34, + 117, + 117, + 105, + 100, + 34, + 58, + 34, + 57, + 55, + 98, + 54, + 99, + 50, + 102, + 57, + 45, + 101, + 53, + 51, + 51, + 45, + 52, + 100, + 101, + 57, + 45, + 98, + 100, + 51, + 51, + 45, + 51, + 57, + 98, + 51, + 97, + 49, + 57, + 99, + 53, + 56, + 97, + 50, + 34, + 44, + 34, + 100, + 111, + 109, + 101, + 105, + 110, + 34, + 58, + 34, + 65, + 65, + 66, + 34, + 44, + 34, + 114, + 115, + 105, + 110, + 34, + 58, + 34, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 34, + 44, + 34, + 99, + 111, + 110, + 116, + 97, + 99, + 116, + 112, + 101, + 114, + 115, + 111, + 111, + 110, + 66, + 101, + 104, + 101, + 101, + 114, + 78, + 97, + 97, + 109, + 34, + 58, + 34, + 84, + 101, + 115, + 116, + 32, + 80, + 101, + 114, + 115, + 111, + 111, + 110, + 34, + 44, + 34, + 99, + 111, + 110, + 116, + 97, + 99, + 116, + 112, + 101, + 114, + 115, + 111, + 111, + 110, + 66, + 101, + 104, + 101, + 101, + 114, + 84, + 101, + 108, + 101, + 102, + 111, + 111, + 110, + 110, + 117, + 109, + 109, + 101, + 114, + 34, + 58, + 34, + 34, + 44, + 34, + 99, + 111, + 110, + 116, + 97, + 99, + 116, + 112, + 101, + 114, + 115, + 111, + 111, + 110, + 66, + 101, + 104, + 101, + 101, + 114, + 69, + 109, + 97, + 105, + 108, + 97, + 100, + 114, + 101, + 115, + 34, + 58, + 34, + 34, + 44, + 34, + 122, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 98, + 101, + 115, + 108, + 117, + 105, + 116, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 105, + 110, + 102, + 111, + 114, + 109, + 97, + 116, + 105, + 101, + 111, + 98, + 106, + 101, + 99, + 116, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 125, + 44, + 123, + 34, + 117, + 114, + 108, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 105, + 92, + 47, + 118, + 49, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 117, + 115, + 115, + 101, + 110, + 92, + 47, + 52, + 55, + 53, + 55, + 101, + 57, + 98, + 54, + 45, + 51, + 102, + 57, + 101, + 45, + 52, + 51, + 50, + 102, + 45, + 97, + 100, + 56, + 49, + 45, + 99, + 48, + 53, + 48, + 51, + 50, + 102, + 54, + 53, + 100, + 57, + 53, + 34, + 44, + 34, + 117, + 117, + 105, + 100, + 34, + 58, + 34, + 52, + 55, + 53, + 55, + 101, + 57, + 98, + 54, + 45, + 51, + 102, + 57, + 101, + 45, + 52, + 51, + 50, + 102, + 45, + 97, + 100, + 56, + 49, + 45, + 99, + 48, + 53, + 48, + 51, + 50, + 102, + 54, + 53, + 100, + 57, + 53, + 34, + 44, + 34, + 100, + 111, + 109, + 101, + 105, + 110, + 34, + 58, + 34, + 65, + 65, + 66, + 34, + 44, + 34, + 114, + 115, + 105, + 110, + 34, + 58, + 34, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 34, + 44, + 34, + 99, + 111, + 110, + 116, + 97, + 99, + 116, + 112, + 101, + 114, + 115, + 111, + 111, + 110, + 66, + 101, + 104, + 101, + 101, + 114, + 78, + 97, + 97, + 109, + 34, + 58, + 34, + 84, + 101, + 115, + 116, + 32, + 80, + 101, + 114, + 115, + 111, + 111, + 110, + 34, + 44, + 34, + 99, + 111, + 110, + 116, + 97, + 99, + 116, + 112, + 101, + 114, + 115, + 111, + 111, + 110, + 66, + 101, + 104, + 101, + 101, + 114, + 84, + 101, + 108, + 101, + 102, + 111, + 111, + 110, + 110, + 117, + 109, + 109, + 101, + 114, + 34, + 58, + 34, + 34, + 44, + 34, + 99, + 111, + 110, + 116, + 97, + 99, + 116, + 112, + 101, + 114, + 115, + 111, + 111, + 110, + 66, + 101, + 104, + 101, + 101, + 114, + 69, + 109, + 97, + 105, + 108, + 97, + 100, + 114, + 101, + 115, + 34, + 58, + 34, + 34, + 44, + 34, + 122, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 98, + 101, + 115, + 108, + 117, + 105, + 116, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 105, + 110, + 102, + 111, + 114, + 109, + 97, + 116, + 105, + 101, + 111, + 98, + 106, + 101, + 99, + 116, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 125, + 44, + 123, + 34, + 117, + 114, + 108, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 105, + 92, + 47, + 118, + 49, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 117, + 115, + 115, + 101, + 110, + 92, + 47, + 52, + 57, + 51, + 54, + 97, + 54, + 102, + 98, + 45, + 55, + 97, + 56, + 54, + 45, + 52, + 48, + 57, + 98, + 45, + 57, + 52, + 55, + 51, + 45, + 51, + 99, + 52, + 99, + 56, + 57, + 53, + 98, + 56, + 101, + 56, + 57, + 34, + 44, + 34, + 117, + 117, + 105, + 100, + 34, + 58, + 34, + 52, + 57, + 51, + 54, + 97, + 54, + 102, + 98, + 45, + 55, + 97, + 56, + 54, + 45, + 52, + 48, + 57, + 98, + 45, + 57, + 52, + 55, + 51, + 45, + 51, + 99, + 52, + 99, + 56, + 57, + 53, + 98, + 56, + 101, + 56, + 57, + 34, + 44, + 34, + 100, + 111, + 109, + 101, + 105, + 110, + 34, + 58, + 34, + 90, + 71, + 87, + 84, + 34, + 44, + 34, + 114, + 115, + 105, + 110, + 34, + 58, + 34, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 34, + 44, + 34, + 99, + 111, + 110, + 116, + 97, + 99, + 116, + 112, + 101, + 114, + 115, + 111, + 111, + 110, + 66, + 101, + 104, + 101, + 101, + 114, + 78, + 97, + 97, + 109, + 34, + 58, + 34, + 84, + 101, + 115, + 116, + 32, + 80, + 101, + 114, + 115, + 111, + 111, + 110, + 34, + 44, + 34, + 99, + 111, + 110, + 116, + 97, + 99, + 116, + 112, + 101, + 114, + 115, + 111, + 111, + 110, + 66, + 101, + 104, + 101, + 101, + 114, + 84, + 101, + 108, + 101, + 102, + 111, + 111, + 110, + 110, + 117, + 109, + 109, + 101, + 114, + 34, + 58, + 34, + 34, + 44, + 34, + 99, + 111, + 110, + 116, + 97, + 99, + 116, + 112, + 101, + 114, + 115, + 111, + 111, + 110, + 66, + 101, + 104, + 101, + 101, + 114, + 69, + 109, + 97, + 105, + 108, + 97, + 100, + 114, + 101, + 115, + 34, + 58, + 34, + 34, + 44, + 34, + 122, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 98, + 101, + 115, + 108, + 117, + 105, + 116, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 105, + 110, + 102, + 111, + 114, + 109, + 97, + 116, + 105, + 101, + 111, + 98, + 106, + 101, + 99, + 116, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 125, + 44, + 123, + 34, + 117, + 114, + 108, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 105, + 92, + 47, + 118, + 49, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 117, + 115, + 115, + 101, + 110, + 92, + 47, + 55, + 53, + 101, + 51, + 100, + 98, + 57, + 56, + 45, + 99, + 98, + 57, + 101, + 45, + 52, + 99, + 48, + 57, + 45, + 57, + 48, + 49, + 48, + 45, + 99, + 48, + 53, + 52, + 102, + 53, + 97, + 52, + 98, + 98, + 57, + 99, + 34, + 44, + 34, + 117, + 117, + 105, + 100, + 34, + 58, + 34, + 55, + 53, + 101, + 51, + 100, + 98, + 57, + 56, + 45, + 99, + 98, + 57, + 101, + 45, + 52, + 99, + 48, + 57, + 45, + 57, + 48, + 49, + 48, + 45, + 99, + 48, + 53, + 52, + 102, + 53, + 97, + 52, + 98, + 98, + 57, + 99, + 34, + 44, + 34, + 100, + 111, + 109, + 101, + 105, + 110, + 34, + 58, + 34, + 65, + 65, + 66, + 34, + 44, + 34, + 114, + 115, + 105, + 110, + 34, + 58, + 34, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 34, + 44, + 34, + 99, + 111, + 110, + 116, + 97, + 99, + 116, + 112, + 101, + 114, + 115, + 111, + 111, + 110, + 66, + 101, + 104, + 101, + 101, + 114, + 78, + 97, + 97, + 109, + 34, + 58, + 34, + 84, + 101, + 115, + 116, + 32, + 80, + 101, + 114, + 115, + 111, + 111, + 110, + 34, + 44, + 34, + 99, + 111, + 110, + 116, + 97, + 99, + 116, + 112, + 101, + 114, + 115, + 111, + 111, + 110, + 66, + 101, + 104, + 101, + 101, + 114, + 84, + 101, + 108, + 101, + 102, + 111, + 111, + 110, + 110, + 117, + 109, + 109, + 101, + 114, + 34, + 58, + 34, + 34, + 44, + 34, + 99, + 111, + 110, + 116, + 97, + 99, + 116, + 112, + 101, + 114, + 115, + 111, + 111, + 110, + 66, + 101, + 104, + 101, + 101, + 114, + 69, + 109, + 97, + 105, + 108, + 97, + 100, + 114, + 101, + 115, + 34, + 58, + 34, + 34, + 44, + 34, + 122, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 98, + 101, + 115, + 108, + 117, + 105, + 116, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 105, + 110, + 102, + 111, + 114, + 109, + 97, + 116, + 105, + 101, + 111, + 98, + 106, + 101, + 99, + 116, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 125, + 44, + 123, + 34, + 117, + 114, + 108, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 105, + 92, + 47, + 118, + 49, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 117, + 115, + 115, + 101, + 110, + 92, + 47, + 98, + 100, + 49, + 51, + 98, + 57, + 52, + 56, + 45, + 52, + 100, + 97, + 98, + 45, + 52, + 56, + 55, + 98, + 45, + 57, + 97, + 48, + 56, + 45, + 51, + 100, + 52, + 53, + 100, + 54, + 97, + 54, + 49, + 54, + 99, + 100, + 34, + 44, + 34, + 117, + 117, + 105, + 100, + 34, + 58, + 34, + 98, + 100, + 49, + 51, + 98, + 57, + 52, + 56, + 45, + 52, + 100, + 97, + 98, + 45, + 52, + 56, + 55, + 98, + 45, + 57, + 97, + 48, + 56, + 45, + 51, + 100, + 52, + 53, + 100, + 54, + 97, + 54, + 49, + 54, + 99, + 100, + 34, + 44, + 34, + 100, + 111, + 109, + 101, + 105, + 110, + 34, + 58, + 34, + 90, + 71, + 87, + 84, + 34, + 44, + 34, + 114, + 115, + 105, + 110, + 34, + 58, + 34, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 34, + 44, + 34, + 99, + 111, + 110, + 116, + 97, + 99, + 116, + 112, + 101, + 114, + 115, + 111, + 111, + 110, + 66, + 101, + 104, + 101, + 101, + 114, + 78, + 97, + 97, + 109, + 34, + 58, + 34, + 84, + 101, + 115, + 116, + 32, + 80, + 101, + 114, + 115, + 111, + 111, + 110, + 34, + 44, + 34, + 99, + 111, + 110, + 116, + 97, + 99, + 116, + 112, + 101, + 114, + 115, + 111, + 111, + 110, + 66, + 101, + 104, + 101, + 101, + 114, + 84, + 101, + 108, + 101, + 102, + 111, + 111, + 110, + 110, + 117, + 109, + 109, + 101, + 114, + 34, + 58, + 34, + 34, + 44, + 34, + 99, + 111, + 110, + 116, + 97, + 99, + 116, + 112, + 101, + 114, + 115, + 111, + 111, + 110, + 66, + 101, + 104, + 101, + 101, + 114, + 69, + 109, + 97, + 105, + 108, + 97, + 100, + 114, + 101, + 115, + 34, + 58, + 34, + 34, + 44, + 34, + 122, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 98, + 101, + 115, + 108, + 117, + 105, + 116, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 105, + 110, + 102, + 111, + 114, + 109, + 97, + 116, + 105, + 101, + 111, + 98, + 106, + 101, + 99, + 116, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 125, + 44, + 123, + 34, + 117, + 114, + 108, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 105, + 92, + 47, + 118, + 49, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 117, + 115, + 115, + 101, + 110, + 92, + 47, + 56, + 53, + 101, + 100, + 100, + 100, + 98, + 101, + 45, + 49, + 57, + 98, + 55, + 45, + 52, + 101, + 56, + 54, + 45, + 98, + 101, + 54, + 57, + 45, + 53, + 98, + 101, + 99, + 55, + 99, + 102, + 54, + 56, + 53, + 55, + 97, + 34, + 44, + 34, + 117, + 117, + 105, + 100, + 34, + 58, + 34, + 56, + 53, + 101, + 100, + 100, + 100, + 98, + 101, + 45, + 49, + 57, + 98, + 55, + 45, + 52, + 101, + 56, + 54, + 45, + 98, + 101, + 54, + 57, + 45, + 53, + 98, + 101, + 99, + 55, + 99, + 102, + 54, + 56, + 53, + 55, + 97, + 34, + 44, + 34, + 100, + 111, + 109, + 101, + 105, + 110, + 34, + 58, + 34, + 65, + 65, + 66, + 34, + 44, + 34, + 114, + 115, + 105, + 110, + 34, + 58, + 34, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 34, + 44, + 34, + 99, + 111, + 110, + 116, + 97, + 99, + 116, + 112, + 101, + 114, + 115, + 111, + 111, + 110, + 66, + 101, + 104, + 101, + 101, + 114, + 78, + 97, + 97, + 109, + 34, + 58, + 34, + 84, + 101, + 115, + 116, + 32, + 80, + 101, + 114, + 115, + 111, + 111, + 110, + 34, + 44, + 34, + 99, + 111, + 110, + 116, + 97, + 99, + 116, + 112, + 101, + 114, + 115, + 111, + 111, + 110, + 66, + 101, + 104, + 101, + 101, + 114, + 84, + 101, + 108, + 101, + 102, + 111, + 111, + 110, + 110, + 117, + 109, + 109, + 101, + 114, + 34, + 58, + 34, + 34, + 44, + 34, + 99, + 111, + 110, + 116, + 97, + 99, + 116, + 112, + 101, + 114, + 115, + 111, + 111, + 110, + 66, + 101, + 104, + 101, + 101, + 114, + 69, + 109, + 97, + 105, + 108, + 97, + 100, + 114, + 101, + 115, + 34, + 58, + 34, + 34, + 44, + 34, + 122, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 98, + 101, + 115, + 108, + 117, + 105, + 116, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 105, + 110, + 102, + 111, + 114, + 109, + 97, + 116, + 105, + 101, + 111, + 98, + 106, + 101, + 99, + 116, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 125, + 44, + 123, + 34, + 117, + 114, + 108, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 105, + 92, + 47, + 118, + 49, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 117, + 115, + 115, + 101, + 110, + 92, + 47, + 51, + 55, + 97, + 48, + 99, + 52, + 53, + 99, + 45, + 55, + 98, + 101, + 57, + 45, + 52, + 49, + 102, + 50, + 45, + 98, + 102, + 57, + 55, + 45, + 57, + 48, + 51, + 52, + 49, + 97, + 56, + 50, + 49, + 51, + 50, + 55, + 34, + 44, + 34, + 117, + 117, + 105, + 100, + 34, + 58, + 34, + 51, + 55, + 97, + 48, + 99, + 52, + 53, + 99, + 45, + 55, + 98, + 101, + 57, + 45, + 52, + 49, + 102, + 50, + 45, + 98, + 102, + 57, + 55, + 45, + 57, + 48, + 51, + 52, + 49, + 97, + 56, + 50, + 49, + 51, + 50, + 55, + 34, + 44, + 34, + 100, + 111, + 109, + 101, + 105, + 110, + 34, + 58, + 34, + 90, + 71, + 87, + 84, + 34, + 44, + 34, + 114, + 115, + 105, + 110, + 34, + 58, + 34, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 34, + 44, + 34, + 99, + 111, + 110, + 116, + 97, + 99, + 116, + 112, + 101, + 114, + 115, + 111, + 111, + 110, + 66, + 101, + 104, + 101, + 101, + 114, + 78, + 97, + 97, + 109, + 34, + 58, + 34, + 84, + 101, + 115, + 116, + 32, + 80, + 101, + 114, + 115, + 111, + 111, + 110, + 34, + 44, + 34, + 99, + 111, + 110, + 116, + 97, + 99, + 116, + 112, + 101, + 114, + 115, + 111, + 111, + 110, + 66, + 101, + 104, + 101, + 101, + 114, + 84, + 101, + 108, + 101, + 102, + 111, + 111, + 110, + 110, + 117, + 109, + 109, + 101, + 114, + 34, + 58, + 34, + 34, + 44, + 34, + 99, + 111, + 110, + 116, + 97, + 99, + 116, + 112, + 101, + 114, + 115, + 111, + 111, + 110, + 66, + 101, + 104, + 101, + 101, + 114, + 69, + 109, + 97, + 105, + 108, + 97, + 100, + 114, + 101, + 115, + 34, + 58, + 34, + 34, + 44, + 34, + 122, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 98, + 101, + 115, + 108, + 117, + 105, + 116, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 105, + 110, + 102, + 111, + 114, + 109, + 97, + 116, + 105, + 101, + 111, + 98, + 106, + 101, + 99, + 116, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 125, + 44, + 123, + 34, + 117, + 114, + 108, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 105, + 92, + 47, + 118, + 49, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 117, + 115, + 115, + 101, + 110, + 92, + 47, + 55, + 98, + 57, + 100, + 48, + 100, + 53, + 57, + 45, + 51, + 50, + 97, + 101, + 45, + 52, + 98, + 53, + 98, + 45, + 57, + 101, + 50, + 52, + 45, + 53, + 101, + 55, + 52, + 102, + 99, + 49, + 101, + 55, + 56, + 102, + 56, + 34, + 44, + 34, + 117, + 117, + 105, + 100, + 34, + 58, + 34, + 55, + 98, + 57, + 100, + 48, + 100, + 53, + 57, + 45, + 51, + 50, + 97, + 101, + 45, + 52, + 98, + 53, + 98, + 45, + 57, + 101, + 50, + 52, + 45, + 53, + 101, + 55, + 52, + 102, + 99, + 49, + 101, + 55, + 56, + 102, + 56, + 34, + 44, + 34, + 100, + 111, + 109, + 101, + 105, + 110, + 34, + 58, + 34, + 65, + 65, + 66, + 34, + 44, + 34, + 114, + 115, + 105, + 110, + 34, + 58, + 34, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 34, + 44, + 34, + 99, + 111, + 110, + 116, + 97, + 99, + 116, + 112, + 101, + 114, + 115, + 111, + 111, + 110, + 66, + 101, + 104, + 101, + 101, + 114, + 78, + 97, + 97, + 109, + 34, + 58, + 34, + 84, + 101, + 115, + 116, + 32, + 80, + 101, + 114, + 115, + 111, + 111, + 110, + 34, + 44, + 34, + 99, + 111, + 110, + 116, + 97, + 99, + 116, + 112, + 101, + 114, + 115, + 111, + 111, + 110, + 66, + 101, + 104, + 101, + 101, + 114, + 84, + 101, + 108, + 101, + 102, + 111, + 111, + 110, + 110, + 117, + 109, + 109, + 101, + 114, + 34, + 58, + 34, + 34, + 44, + 34, + 99, + 111, + 110, + 116, + 97, + 99, + 116, + 112, + 101, + 114, + 115, + 111, + 111, + 110, + 66, + 101, + 104, + 101, + 101, + 114, + 69, + 109, + 97, + 105, + 108, + 97, + 100, + 114, + 101, + 115, + 34, + 58, + 34, + 34, + 44, + 34, + 122, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 98, + 101, + 115, + 108, + 117, + 105, + 116, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 105, + 110, + 102, + 111, + 114, + 109, + 97, + 116, + 105, + 101, + 111, + 98, + 106, + 101, + 99, + 116, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 125, + 44, + 123, + 34, + 117, + 114, + 108, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 105, + 92, + 47, + 118, + 49, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 117, + 115, + 115, + 101, + 110, + 92, + 47, + 48, + 101, + 53, + 49, + 55, + 99, + 97, + 53, + 45, + 56, + 57, + 49, + 98, + 45, + 52, + 53, + 97, + 57, + 45, + 98, + 56, + 50, + 101, + 45, + 101, + 57, + 56, + 48, + 57, + 54, + 57, + 101, + 57, + 57, + 50, + 100, + 34, + 44, + 34, + 117, + 117, + 105, + 100, + 34, + 58, + 34, + 48, + 101, + 53, + 49, + 55, + 99, + 97, + 53, + 45, + 56, + 57, + 49, + 98, + 45, + 52, + 53, + 97, + 57, + 45, + 98, + 56, + 50, + 101, + 45, + 101, + 57, + 56, + 48, + 57, + 54, + 57, + 101, + 57, + 57, + 50, + 100, + 34, + 44, + 34, + 100, + 111, + 109, + 101, + 105, + 110, + 34, + 58, + 34, + 90, + 71, + 87, + 84, + 34, + 44, + 34, + 114, + 115, + 105, + 110, + 34, + 58, + 34, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 34, + 44, + 34, + 99, + 111, + 110, + 116, + 97, + 99, + 116, + 112, + 101, + 114, + 115, + 111, + 111, + 110, + 66, + 101, + 104, + 101, + 101, + 114, + 78, + 97, + 97, + 109, + 34, + 58, + 34, + 84, + 101, + 115, + 116, + 32, + 80, + 101, + 114, + 115, + 111, + 111, + 110, + 34, + 44, + 34, + 99, + 111, + 110, + 116, + 97, + 99, + 116, + 112, + 101, + 114, + 115, + 111, + 111, + 110, + 66, + 101, + 104, + 101, + 101, + 114, + 84, + 101, + 108, + 101, + 102, + 111, + 111, + 110, + 110, + 117, + 109, + 109, + 101, + 114, + 34, + 58, + 34, + 34, + 44, + 34, + 99, + 111, + 110, + 116, + 97, + 99, + 116, + 112, + 101, + 114, + 115, + 111, + 111, + 110, + 66, + 101, + 104, + 101, + 101, + 114, + 69, + 109, + 97, + 105, + 108, + 97, + 100, + 114, + 101, + 115, + 34, + 58, + 34, + 34, + 44, + 34, + 122, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 98, + 101, + 115, + 108, + 117, + 105, + 116, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 105, + 110, + 102, + 111, + 114, + 109, + 97, + 116, + 105, + 101, + 111, + 98, + 106, + 101, + 99, + 116, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 125, + 44, + 123, + 34, + 117, + 114, + 108, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 105, + 92, + 47, + 118, + 49, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 117, + 115, + 115, + 101, + 110, + 92, + 47, + 99, + 99, + 97, + 50, + 100, + 57, + 102, + 100, + 45, + 50, + 56, + 56, + 102, + 45, + 52, + 56, + 48, + 57, + 45, + 56, + 48, + 53, + 54, + 45, + 101, + 54, + 101, + 51, + 98, + 51, + 53, + 98, + 48, + 98, + 102, + 100, + 34, + 44, + 34, + 117, + 117, + 105, + 100, + 34, + 58, + 34, + 99, + 99, + 97, + 50, + 100, + 57, + 102, + 100, + 45, + 50, + 56, + 56, + 102, + 45, + 52, + 56, + 48, + 57, + 45, + 56, + 48, + 53, + 54, + 45, + 101, + 54, + 101, + 51, + 98, + 51, + 53, + 98, + 48, + 98, + 102, + 100, + 34, + 44, + 34, + 100, + 111, + 109, + 101, + 105, + 110, + 34, + 58, + 34, + 65, + 65, + 66, + 34, + 44, + 34, + 114, + 115, + 105, + 110, + 34, + 58, + 34, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 34, + 44, + 34, + 99, + 111, + 110, + 116, + 97, + 99, + 116, + 112, + 101, + 114, + 115, + 111, + 111, + 110, + 66, + 101, + 104, + 101, + 101, + 114, + 78, + 97, + 97, + 109, + 34, + 58, + 34, + 84, + 101, + 115, + 116, + 32, + 80, + 101, + 114, + 115, + 111, + 111, + 110, + 34, + 44, + 34, + 99, + 111, + 110, + 116, + 97, + 99, + 116, + 112, + 101, + 114, + 115, + 111, + 111, + 110, + 66, + 101, + 104, + 101, + 101, + 114, + 84, + 101, + 108, + 101, + 102, + 111, + 111, + 110, + 110, + 117, + 109, + 109, + 101, + 114, + 34, + 58, + 34, + 34, + 44, + 34, + 99, + 111, + 110, + 116, + 97, + 99, + 116, + 112, + 101, + 114, + 115, + 111, + 111, + 110, + 66, + 101, + 104, + 101, + 101, + 114, + 69, + 109, + 97, + 105, + 108, + 97, + 100, + 114, + 101, + 115, + 34, + 58, + 34, + 34, + 44, + 34, + 122, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 98, + 101, + 115, + 108, + 117, + 105, + 116, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 105, + 110, + 102, + 111, + 114, + 109, + 97, + 116, + 105, + 101, + 111, + 98, + 106, + 101, + 99, + 116, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 125, + 44, + 123, + 34, + 117, + 114, + 108, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 105, + 92, + 47, + 118, + 49, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 117, + 115, + 115, + 101, + 110, + 92, + 47, + 50, + 48, + 48, + 101, + 54, + 55, + 98, + 55, + 45, + 99, + 50, + 98, + 48, + 45, + 52, + 100, + 53, + 50, + 45, + 56, + 53, + 57, + 54, + 45, + 99, + 48, + 57, + 98, + 48, + 57, + 49, + 49, + 48, + 98, + 48, + 98, + 34, + 44, + 34, + 117, + 117, + 105, + 100, + 34, + 58, + 34, + 50, + 48, + 48, + 101, + 54, + 55, + 98, + 55, + 45, + 99, + 50, + 98, + 48, + 45, + 52, + 100, + 53, + 50, + 45, + 56, + 53, + 57, + 54, + 45, + 99, + 48, + 57, + 98, + 48, + 57, + 49, + 49, + 48, + 98, + 48, + 98, + 34, + 44, + 34, + 100, + 111, + 109, + 101, + 105, + 110, + 34, + 58, + 34, + 90, + 71, + 87, + 84, + 34, + 44, + 34, + 114, + 115, + 105, + 110, + 34, + 58, + 34, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 34, + 44, + 34, + 99, + 111, + 110, + 116, + 97, + 99, + 116, + 112, + 101, + 114, + 115, + 111, + 111, + 110, + 66, + 101, + 104, + 101, + 101, + 114, + 78, + 97, + 97, + 109, + 34, + 58, + 34, + 84, + 101, + 115, + 116, + 32, + 80, + 101, + 114, + 115, + 111, + 111, + 110, + 34, + 44, + 34, + 99, + 111, + 110, + 116, + 97, + 99, + 116, + 112, + 101, + 114, + 115, + 111, + 111, + 110, + 66, + 101, + 104, + 101, + 101, + 114, + 84, + 101, + 108, + 101, + 102, + 111, + 111, + 110, + 110, + 117, + 109, + 109, + 101, + 114, + 34, + 58, + 34, + 34, + 44, + 34, + 99, + 111, + 110, + 116, + 97, + 99, + 116, + 112, + 101, + 114, + 115, + 111, + 111, + 110, + 66, + 101, + 104, + 101, + 101, + 114, + 69, + 109, + 97, + 105, + 108, + 97, + 100, + 114, + 101, + 115, + 34, + 58, + 34, + 34, + 44, + 34, + 122, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 98, + 101, + 115, + 108, + 117, + 105, + 116, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 105, + 110, + 102, + 111, + 114, + 109, + 97, + 116, + 105, + 101, + 111, + 98, + 106, + 101, + 99, + 116, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 125, + 44, + 123, + 34, + 117, + 114, + 108, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 105, + 92, + 47, + 118, + 49, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 117, + 115, + 115, + 101, + 110, + 92, + 47, + 97, + 54, + 50, + 51, + 48, + 53, + 52, + 102, + 45, + 100, + 48, + 57, + 98, + 45, + 52, + 101, + 54, + 102, + 45, + 98, + 99, + 54, + 56, + 45, + 98, + 101, + 55, + 97, + 51, + 57, + 56, + 99, + 99, + 51, + 53, + 50, + 34, + 44, + 34, + 117, + 117, + 105, + 100, + 34, + 58, + 34, + 97, + 54, + 50, + 51, + 48, + 53, + 52, + 102, + 45, + 100, + 48, + 57, + 98, + 45, + 52, + 101, + 54, + 102, + 45, + 98, + 99, + 54, + 56, + 45, + 98, + 101, + 55, + 97, + 51, + 57, + 56, + 99, + 99, + 51, + 53, + 50, + 34, + 44, + 34, + 100, + 111, + 109, + 101, + 105, + 110, + 34, + 58, + 34, + 65, + 65, + 66, + 34, + 44, + 34, + 114, + 115, + 105, + 110, + 34, + 58, + 34, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 34, + 44, + 34, + 99, + 111, + 110, + 116, + 97, + 99, + 116, + 112, + 101, + 114, + 115, + 111, + 111, + 110, + 66, + 101, + 104, + 101, + 101, + 114, + 78, + 97, + 97, + 109, + 34, + 58, + 34, + 84, + 101, + 115, + 116, + 32, + 80, + 101, + 114, + 115, + 111, + 111, + 110, + 34, + 44, + 34, + 99, + 111, + 110, + 116, + 97, + 99, + 116, + 112, + 101, + 114, + 115, + 111, + 111, + 110, + 66, + 101, + 104, + 101, + 101, + 114, + 84, + 101, + 108, + 101, + 102, + 111, + 111, + 110, + 110, + 117, + 109, + 109, + 101, + 114, + 34, + 58, + 34, + 34, + 44, + 34, + 99, + 111, + 110, + 116, + 97, + 99, + 116, + 112, + 101, + 114, + 115, + 111, + 111, + 110, + 66, + 101, + 104, + 101, + 101, + 114, + 69, + 109, + 97, + 105, + 108, + 97, + 100, + 114, + 101, + 115, + 34, + 58, + 34, + 34, + 44, + 34, + 122, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 98, + 101, + 115, + 108, + 117, + 105, + 116, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 105, + 110, + 102, + 111, + 114, + 109, + 97, + 116, + 105, + 101, + 111, + 98, + 106, + 101, + 99, + 116, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 125, + 44, + 123, + 34, + 117, + 114, + 108, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 105, + 92, + 47, + 118, + 49, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 117, + 115, + 115, + 101, + 110, + 92, + 47, + 50, + 56, + 54, + 98, + 101, + 57, + 51, + 51, + 45, + 50, + 97, + 51, + 52, + 45, + 52, + 54, + 52, + 53, + 45, + 98, + 48, + 49, + 48, + 45, + 57, + 57, + 98, + 56, + 56, + 53, + 50, + 101, + 57, + 48, + 50, + 48, + 34, + 44, + 34, + 117, + 117, + 105, + 100, + 34, + 58, + 34, + 50, + 56, + 54, + 98, + 101, + 57, + 51, + 51, + 45, + 50, + 97, + 51, + 52, + 45, + 52, + 54, + 52, + 53, + 45, + 98, + 48, + 49, + 48, + 45, + 57, + 57, + 98, + 56, + 56, + 53, + 50, + 101, + 57, + 48, + 50, + 48, + 34, + 44, + 34, + 100, + 111, + 109, + 101, + 105, + 110, + 34, + 58, + 34, + 90, + 71, + 87, + 84, + 34, + 44, + 34, + 114, + 115, + 105, + 110, + 34, + 58, + 34, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 34, + 44, + 34, + 99, + 111, + 110, + 116, + 97, + 99, + 116, + 112, + 101, + 114, + 115, + 111, + 111, + 110, + 66, + 101, + 104, + 101, + 101, + 114, + 78, + 97, + 97, + 109, + 34, + 58, + 34, + 84, + 101, + 115, + 116, + 32, + 80, + 101, + 114, + 115, + 111, + 111, + 110, + 34, + 44, + 34, + 99, + 111, + 110, + 116, + 97, + 99, + 116, + 112, + 101, + 114, + 115, + 111, + 111, + 110, + 66, + 101, + 104, + 101, + 101, + 114, + 84, + 101, + 108, + 101, + 102, + 111, + 111, + 110, + 110, + 117, + 109, + 109, + 101, + 114, + 34, + 58, + 34, + 34, + 44, + 34, + 99, + 111, + 110, + 116, + 97, + 99, + 116, + 112, + 101, + 114, + 115, + 111, + 111, + 110, + 66, + 101, + 104, + 101, + 101, + 114, + 69, + 109, + 97, + 105, + 108, + 97, + 100, + 114, + 101, + 115, + 34, + 58, + 34, + 34, + 44, + 34, + 122, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 98, + 101, + 115, + 108, + 117, + 105, + 116, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 105, + 110, + 102, + 111, + 114, + 109, + 97, + 116, + 105, + 101, + 111, + 98, + 106, + 101, + 99, + 116, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 125, + 44, + 123, + 34, + 117, + 114, + 108, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 105, + 92, + 47, + 118, + 49, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 117, + 115, + 115, + 101, + 110, + 92, + 47, + 100, + 56, + 102, + 102, + 53, + 50, + 53, + 53, + 45, + 97, + 100, + 102, + 97, + 45, + 52, + 52, + 51, + 102, + 45, + 98, + 49, + 102, + 57, + 45, + 57, + 99, + 98, + 57, + 55, + 100, + 53, + 98, + 51, + 99, + 100, + 99, + 34, + 44, + 34, + 117, + 117, + 105, + 100, + 34, + 58, + 34, + 100, + 56, + 102, + 102, + 53, + 50, + 53, + 53, + 45, + 97, + 100, + 102, + 97, + 45, + 52, + 52, + 51, + 102, + 45, + 98, + 49, + 102, + 57, + 45, + 57, + 99, + 98, + 57, + 55, + 100, + 53, + 98, + 51, + 99, + 100, + 99, + 34, + 44, + 34, + 100, + 111, + 109, + 101, + 105, + 110, + 34, + 58, + 34, + 65, + 65, + 66, + 34, + 44, + 34, + 114, + 115, + 105, + 110, + 34, + 58, + 34, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 34, + 44, + 34, + 99, + 111, + 110, + 116, + 97, + 99, + 116, + 112, + 101, + 114, + 115, + 111, + 111, + 110, + 66, + 101, + 104, + 101, + 101, + 114, + 78, + 97, + 97, + 109, + 34, + 58, + 34, + 84, + 101, + 115, + 116, + 32, + 80, + 101, + 114, + 115, + 111, + 111, + 110, + 34, + 44, + 34, + 99, + 111, + 110, + 116, + 97, + 99, + 116, + 112, + 101, + 114, + 115, + 111, + 111, + 110, + 66, + 101, + 104, + 101, + 101, + 114, + 84, + 101, + 108, + 101, + 102, + 111, + 111, + 110, + 110, + 117, + 109, + 109, + 101, + 114, + 34, + 58, + 34, + 34, + 44, + 34, + 99, + 111, + 110, + 116, + 97, + 99, + 116, + 112, + 101, + 114, + 115, + 111, + 111, + 110, + 66, + 101, + 104, + 101, + 101, + 114, + 69, + 109, + 97, + 105, + 108, + 97, + 100, + 114, + 101, + 115, + 34, + 58, + 34, + 34, + 44, + 34, + 122, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 98, + 101, + 115, + 108, + 117, + 105, + 116, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 105, + 110, + 102, + 111, + 114, + 109, + 97, + 116, + 105, + 101, + 111, + 98, + 106, + 101, + 99, + 116, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 125, + 44, + 123, + 34, + 117, + 114, + 108, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 105, + 92, + 47, + 118, + 49, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 117, + 115, + 115, + 101, + 110, + 92, + 47, + 49, + 100, + 54, + 49, + 51, + 51, + 51, + 48, + 45, + 48, + 97, + 54, + 102, + 45, + 52, + 51, + 56, + 50, + 45, + 97, + 99, + 48, + 48, + 45, + 53, + 50, + 98, + 50, + 53, + 57, + 99, + 52, + 102, + 56, + 99, + 97, + 34, + 44, + 34, + 117, + 117, + 105, + 100, + 34, + 58, + 34, + 49, + 100, + 54, + 49, + 51, + 51, + 51, + 48, + 45, + 48, + 97, + 54, + 102, + 45, + 52, + 51, + 56, + 50, + 45, + 97, + 99, + 48, + 48, + 45, + 53, + 50, + 98, + 50, + 53, + 57, + 99, + 52, + 102, + 56, + 99, + 97, + 34, + 44, + 34, + 100, + 111, + 109, + 101, + 105, + 110, + 34, + 58, + 34, + 90, + 71, + 87, + 84, + 34, + 44, + 34, + 114, + 115, + 105, + 110, + 34, + 58, + 34, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 34, + 44, + 34, + 99, + 111, + 110, + 116, + 97, + 99, + 116, + 112, + 101, + 114, + 115, + 111, + 111, + 110, + 66, + 101, + 104, + 101, + 101, + 114, + 78, + 97, + 97, + 109, + 34, + 58, + 34, + 84, + 101, + 115, + 116, + 32, + 80, + 101, + 114, + 115, + 111, + 111, + 110, + 34, + 44, + 34, + 99, + 111, + 110, + 116, + 97, + 99, + 116, + 112, + 101, + 114, + 115, + 111, + 111, + 110, + 66, + 101, + 104, + 101, + 101, + 114, + 84, + 101, + 108, + 101, + 102, + 111, + 111, + 110, + 110, + 117, + 109, + 109, + 101, + 114, + 34, + 58, + 34, + 34, + 44, + 34, + 99, + 111, + 110, + 116, + 97, + 99, + 116, + 112, + 101, + 114, + 115, + 111, + 111, + 110, + 66, + 101, + 104, + 101, + 101, + 114, + 69, + 109, + 97, + 105, + 108, + 97, + 100, + 114, + 101, + 115, + 34, + 58, + 34, + 34, + 44, + 34, + 122, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 98, + 101, + 115, + 108, + 117, + 105, + 116, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 105, + 110, + 102, + 111, + 114, + 109, + 97, + 116, + 105, + 101, + 111, + 98, + 106, + 101, + 99, + 116, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 125, + 93, + 125 + ] + }, + "cookie": [], + "responseTime": 92, + "responseSize": 8033 + }, + "id": "6903ff24-e2a9-4e54-b6c6-24f039da3ee4" + }, + { + "cursor": { + "ref": "a9a2dfb4-c7ed-4751-872c-6421007ae04c", + "length": 313, + "cycles": 1, + "position": 126, + "iteration": 0, + "httpRequestId": "5697c574-a6e0-4438-9d9c-891389e3b46a" + }, + "item": { + "id": "da3c8928-3aa3-4255-96c6-0e0757b75298", + "name": "(zrc-009a) Valideer expliciet gedefinieerde vertrouwelijkheidaanduiding", + "request": { + "url": { + "path": [ + "zaken" + ], + "host": [ + "{{zrc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Content-Crs", + "value": "EPSG:4326" + }, + { + "key": "Accept-Crs", + "value": "EPSG:4326" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\r\n\r\n \"bronorganisatie\": \"000000000\",\r\n \"omschrijving\": \"string\",\r\n \"toelichting\": \"string\",\r\n \"zaaktype\": \"{{zaaktype_url}}\",\r\n \"registratiedatum\": \"2019-04-09\",\r\n \"verantwoordelijkeOrganisatie\": \"000000000\",\r\n \"startdatum\": \"2019-04-09\",\r\n \"einddatum\": null,\r\n \"einddatumGepland\": \"2019-04-20\",\r\n \"uiterlijkeEinddatumAfdoening\": \"2019-04-09\",\r\n \"publicatiedatum\": \"2019-04-09\",\r\n \"communicatiekanaal\": \"\",\r\n \"productenOfDiensten\": [],\r\n \"vertrouwelijkheidaanduiding\": \"{{expliciete_vertrouwelijkheid}}\",\r\n \"betalingsindicatie\": \"geheel\",\r\n \"betalingsindicatieWeergave\": null,\r\n \"laatsteBetaaldatum\": \"2019-01-01T00:00:00Z\",\r\n \"zaakgeometrie\": {\r\n \"type\": \"Point\",\r\n \"coordinates\": [\r\n 53.0,\r\n 5.0\r\n ]\r\n },\r\n \"verlenging\": null,\r\n \"opschorting\": {\r\n \"indicatie\": true,\r\n \"reden\": \"string\"\r\n },\r\n \"selectielijstklasse\": \"https://referentielijsten.roxit.nl/api/v1/resultaten/0fe71ce3-b1e1-48eb-9070-be2756fc71b5\",\r\n \"hoofdzaak\": null,\r\n \"deelzaken\": [],\r\n \"relevanteAndereZaken\": [],\r\n \"eigenschappen\": [],\r\n \"rollen\": [],\r\n \"status\": null,\r\n \"zaakinformatieobjecten\": [],\r\n \"zaakobjecten\": [],\r\n \"resultaat\": null,\r\n \"kenmerken\": [],\r\n \"archiefnominatie\": null,\r\n \"archiefstatus\": \"nog_te_archiveren\",\r\n \"archiefactiedatum\": null,\r\n \"opdrachtgevendeOrganisatie\": null,\r\n \"processobjectaard\": null,\r\n \"startdatumBewaartermijn\": null,\r\n \"processobject\": null\r\n}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "2c6029f8-ab46-4b9c-b7f9-8e5268a4a481", + "type": "text/javascript", + "packages": {}, + "exec": [ + "pm.test(\"Expliciete vertrouwelijkheidaanduiding bij aanmaken Zaak moet toegekend worden aan Zaak\", function() {", + " var jsonData = pm.response.json();", + " pm.expect(jsonData.vertrouwelijkheidaanduiding).to.be.equal(pm.environment.get(\"expliciete_vertrouwelijkheid\"));", + " ", + " pm.environment.set(\"created_zaak_url\", jsonData.url);", + "});" + ], + "_lastExecutionId": "3152a8b1-ce8c-4f58-ab5e-17e16edde01f" + } + }, + { + "listen": "prerequest", + "script": { + "id": "1adbe3f6-c13e-4098-a1e7-f2f81a60379c", + "type": "text/javascript", + "packages": {}, + "exec": [ + "pm.environment.set(\"expliciete_vertrouwelijkheid\", \"openbaar\");" + ], + "_lastExecutionId": "eecc49bd-8fb1-48af-898a-bc4ebf9167bf" + } + } + ] + }, + "request": { + "url": { + "protocol": "http", + "port": "8080", + "path": [ + "index.php", + "apps", + "procest", + "api", + "zgw", + "zaken", + "v1", + "zaken" + ], + "host": [ + "localhost" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Content-Crs", + "value": "EPSG:4326" + }, + { + "key": "Accept-Crs", + "value": "EPSG:4326" + }, + { + "key": "Authorization", + "value": "Bearer eyJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJwcm9jZXN0LWFkbWluIiwiY2xpZW50X2lkIjoicHJvY2VzdC1hZG1pbiIsImlhdCI6IjE3NzMxNDUxNzIiLCJ1c2VyX2lkIjoicHJvY2VzdC1hZG1pbiIsInVzZXJfcmVwcmVzZW50YXRpb24iOiIifQ.75kB1cQw-Sf4Ubn4LY100nh6S3yVFnqipW4TYSidahY", + "system": true + }, + { + "key": "User-Agent", + "value": "PostmanRuntime/7.39.1", + "system": true + }, + { + "key": "Accept", + "value": "*/*", + "system": true + }, + { + "key": "Cache-Control", + "value": "no-cache", + "system": true + }, + { + "key": "Postman-Token", + "value": "06d0f3ba-1ece-401d-9c7e-993ad0ab33c2", + "system": true + }, + { + "key": "Host", + "value": "localhost:8080", + "system": true + }, + { + "key": "Accept-Encoding", + "value": "gzip, deflate, br", + "system": true + }, + { + "key": "Connection", + "value": "keep-alive", + "system": true + }, + { + "key": "Content-Length", + "value": "1607", + "system": true + }, + { + "key": "Cookie", + "value": "ocvp3112b4wg=cb28da338398a5f3e0e307b5ad9ce1bb; oc_sessionPassphrase=LBNdKxRzA0iqoULIruNxDDh2BK3O%2BrCIU8aUmiUcOFvy5Xw1YfjwQNlmBW2IkGwJYtxXh9%2BwDN6vYuGNX07tXzkBtjQJUWTGdzf8AIOUIVxVx5DfyWAQZ7nmYmQv6XSE; nc_sameSiteCookielax=true; nc_sameSiteCookiestrict=true", + "system": true + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\r\n\r\n \"bronorganisatie\": \"000000000\",\r\n \"omschrijving\": \"string\",\r\n \"toelichting\": \"string\",\r\n \"zaaktype\": \"http://localhost:8080/index.php/apps/procest/api/zgw/catalogi/v1/zaaktypen/619dc3e5-52f1-4294-a569-f21d16f44879\",\r\n \"registratiedatum\": \"2019-04-09\",\r\n \"verantwoordelijkeOrganisatie\": \"000000000\",\r\n \"startdatum\": \"2019-04-09\",\r\n \"einddatum\": null,\r\n \"einddatumGepland\": \"2019-04-20\",\r\n \"uiterlijkeEinddatumAfdoening\": \"2019-04-09\",\r\n \"publicatiedatum\": \"2019-04-09\",\r\n \"communicatiekanaal\": \"\",\r\n \"productenOfDiensten\": [],\r\n \"vertrouwelijkheidaanduiding\": \"openbaar\",\r\n \"betalingsindicatie\": \"geheel\",\r\n \"betalingsindicatieWeergave\": null,\r\n \"laatsteBetaaldatum\": \"2019-01-01T00:00:00Z\",\r\n \"zaakgeometrie\": {\r\n \"type\": \"Point\",\r\n \"coordinates\": [\r\n 53.0,\r\n 5.0\r\n ]\r\n },\r\n \"verlenging\": null,\r\n \"opschorting\": {\r\n \"indicatie\": true,\r\n \"reden\": \"string\"\r\n },\r\n \"selectielijstklasse\": \"https://referentielijsten.roxit.nl/api/v1/resultaten/0fe71ce3-b1e1-48eb-9070-be2756fc71b5\",\r\n \"hoofdzaak\": null,\r\n \"deelzaken\": [],\r\n \"relevanteAndereZaken\": [],\r\n \"eigenschappen\": [],\r\n \"rollen\": [],\r\n \"status\": null,\r\n \"zaakinformatieobjecten\": [],\r\n \"zaakobjecten\": [],\r\n \"resultaat\": null,\r\n \"kenmerken\": [],\r\n \"archiefnominatie\": null,\r\n \"archiefstatus\": \"nog_te_archiveren\",\r\n \"archiefactiedatum\": null,\r\n \"opdrachtgevendeOrganisatie\": null,\r\n \"processobjectaard\": null,\r\n \"startdatumBewaartermijn\": null,\r\n \"processobject\": null\r\n}" + }, + "auth": { + "type": "jwt", + "jwt": [ + { + "type": "string", + "value": "{\r\n \"iss\": \"procest-admin\",\r\n \"client_id\": \"procest-admin\",\r\n \"iat\": \"1773145172\",\r\n \"user_id\": \"procest-admin\",\r\n \"user_representation\": \"\"\r\n}", + "key": "payload" + }, + { + "type": "string", + "value": "procest-admin-secret-key-for-testing", + "key": "secret" + }, + { + "type": "string", + "value": "HS256", + "key": "algorithm" + }, + { + "type": "boolean", + "value": false, + "key": "isSecretBase64Encoded" + }, + { + "type": "string", + "value": "header", + "key": "addTokenTo" + }, + { + "type": "string", + "value": "Bearer", + "key": "headerPrefix" + }, + { + "type": "string", + "value": "token", + "key": "queryParamKey" + }, + { + "type": "string", + "value": "{}", + "key": "header" + } + ] + } + }, + "response": { + "id": "2f017865-1e76-47de-89ff-f67100a9914e", + "status": "Created", + "code": 201, + "header": [ + { + "key": "Date", + "value": "Tue, 10 Mar 2026 12:19:31 GMT" + }, + { + "key": "Server", + "value": "Apache/2.4.66 (Debian)" + }, + { + "key": "X-Content-Type-Options", + "value": "nosniff" + }, + { + "key": "X-Frame-Options", + "value": "SAMEORIGIN" + }, + { + "key": "X-Permitted-Cross-Domain-Policies", + "value": "none" + }, + { + "key": "X-Robots-Tag", + "value": "noindex, nofollow" + }, + { + "key": "Referrer-Policy", + "value": "no-referrer" + }, + { + "key": "X-Powered-By", + "value": "PHP/8.3.30" + }, + { + "key": "Content-Security-Policy", + "value": "default-src 'none';base-uri 'none';manifest-src 'self';frame-ancestors 'none'" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=cb28da338398a5f3e0e307b5ad9ce1bb; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=cb28da338398a5f3e0e307b5ad9ce1bb; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=cb28da338398a5f3e0e307b5ad9ce1bb; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=cb28da338398a5f3e0e307b5ad9ce1bb; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=1b055e0b2b952cd8e165b1c3102b7d40; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=1b055e0b2b952cd8e165b1c3102b7d40; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=1b055e0b2b952cd8e165b1c3102b7d40; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=1b055e0b2b952cd8e165b1c3102b7d40; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=1b055e0b2b952cd8e165b1c3102b7d40; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "X-Request-Id", + "value": "hPmOQuVwsiump7yOvqGl" + }, + { + "key": "Cache-Control", + "value": "no-cache, no-store, must-revalidate" + }, + { + "key": "Feature-Policy", + "value": "autoplay 'none';camera 'none';fullscreen 'none';geolocation 'none';microphone 'none';payment 'none'" + }, + { + "key": "X-User-Id", + "value": "admin" + }, + { + "key": "Content-Length", + "value": "807" + }, + { + "key": "Keep-Alive", + "value": "timeout=5, max=88" + }, + { + "key": "Connection", + "value": "Keep-Alive" + }, + { + "key": "Content-Type", + "value": "application/json; charset=utf-8" + } + ], + "stream": { + "type": "Buffer", + "data": [ + 123, + 34, + 117, + 114, + 108, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 122, + 97, + 107, + 101, + 110, + 92, + 47, + 118, + 49, + 92, + 47, + 122, + 97, + 107, + 101, + 110, + 92, + 47, + 102, + 101, + 53, + 57, + 57, + 101, + 97, + 102, + 45, + 49, + 55, + 54, + 101, + 45, + 52, + 49, + 97, + 97, + 45, + 97, + 101, + 49, + 57, + 45, + 50, + 97, + 53, + 97, + 50, + 98, + 48, + 98, + 50, + 52, + 49, + 99, + 34, + 44, + 34, + 117, + 117, + 105, + 100, + 34, + 58, + 34, + 102, + 101, + 53, + 57, + 57, + 101, + 97, + 102, + 45, + 49, + 55, + 54, + 101, + 45, + 52, + 49, + 97, + 97, + 45, + 97, + 101, + 49, + 57, + 45, + 50, + 97, + 53, + 97, + 50, + 98, + 48, + 98, + 50, + 52, + 49, + 99, + 34, + 44, + 34, + 105, + 100, + 101, + 110, + 116, + 105, + 102, + 105, + 99, + 97, + 116, + 105, + 101, + 34, + 58, + 34, + 90, + 65, + 65, + 75, + 45, + 84, + 66, + 79, + 78, + 75, + 74, + 45, + 53, + 67, + 55, + 67, + 48, + 70, + 34, + 44, + 34, + 111, + 109, + 115, + 99, + 104, + 114, + 105, + 106, + 118, + 105, + 110, + 103, + 34, + 58, + 34, + 115, + 116, + 114, + 105, + 110, + 103, + 34, + 44, + 34, + 116, + 111, + 101, + 108, + 105, + 99, + 104, + 116, + 105, + 110, + 103, + 34, + 58, + 34, + 115, + 116, + 114, + 105, + 110, + 103, + 34, + 44, + 34, + 122, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 105, + 92, + 47, + 118, + 49, + 92, + 47, + 122, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 110, + 92, + 47, + 54, + 49, + 57, + 100, + 99, + 51, + 101, + 53, + 45, + 53, + 50, + 102, + 49, + 45, + 52, + 50, + 57, + 52, + 45, + 97, + 53, + 54, + 57, + 45, + 102, + 50, + 49, + 100, + 49, + 54, + 102, + 52, + 52, + 56, + 55, + 57, + 34, + 44, + 34, + 114, + 101, + 103, + 105, + 115, + 116, + 114, + 97, + 116, + 105, + 101, + 100, + 97, + 116, + 117, + 109, + 34, + 58, + 34, + 50, + 48, + 50, + 54, + 45, + 48, + 51, + 45, + 49, + 48, + 84, + 49, + 50, + 58, + 49, + 57, + 58, + 51, + 49, + 43, + 48, + 48, + 58, + 48, + 48, + 34, + 44, + 34, + 115, + 116, + 97, + 114, + 116, + 100, + 97, + 116, + 117, + 109, + 34, + 58, + 34, + 50, + 48, + 49, + 57, + 45, + 48, + 52, + 45, + 48, + 57, + 34, + 44, + 34, + 101, + 105, + 110, + 100, + 100, + 97, + 116, + 117, + 109, + 34, + 58, + 110, + 117, + 108, + 108, + 44, + 34, + 101, + 105, + 110, + 100, + 100, + 97, + 116, + 117, + 109, + 71, + 101, + 112, + 108, + 97, + 110, + 100, + 34, + 58, + 34, + 50, + 48, + 49, + 57, + 45, + 48, + 52, + 45, + 50, + 48, + 34, + 44, + 34, + 117, + 105, + 116, + 101, + 114, + 108, + 105, + 106, + 107, + 101, + 69, + 105, + 110, + 100, + 100, + 97, + 116, + 117, + 109, + 65, + 102, + 100, + 111, + 101, + 110, + 105, + 110, + 103, + 34, + 58, + 34, + 50, + 48, + 49, + 57, + 45, + 48, + 52, + 45, + 48, + 57, + 34, + 44, + 34, + 118, + 101, + 114, + 116, + 114, + 111, + 117, + 119, + 101, + 108, + 105, + 106, + 107, + 104, + 101, + 105, + 100, + 97, + 97, + 110, + 100, + 117, + 105, + 100, + 105, + 110, + 103, + 34, + 58, + 34, + 111, + 112, + 101, + 110, + 98, + 97, + 97, + 114, + 34, + 44, + 34, + 118, + 101, + 114, + 97, + 110, + 116, + 119, + 111, + 111, + 114, + 100, + 101, + 108, + 105, + 106, + 107, + 101, + 79, + 114, + 103, + 97, + 110, + 105, + 115, + 97, + 116, + 105, + 101, + 34, + 58, + 34, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 34, + 44, + 34, + 97, + 114, + 99, + 104, + 105, + 101, + 102, + 110, + 111, + 109, + 105, + 110, + 97, + 116, + 105, + 101, + 34, + 58, + 110, + 117, + 108, + 108, + 44, + 34, + 97, + 114, + 99, + 104, + 105, + 101, + 102, + 97, + 99, + 116, + 105, + 101, + 100, + 97, + 116, + 117, + 109, + 34, + 58, + 110, + 117, + 108, + 108, + 44, + 34, + 97, + 114, + 99, + 104, + 105, + 101, + 102, + 115, + 116, + 97, + 116, + 117, + 115, + 34, + 58, + 34, + 110, + 111, + 103, + 95, + 116, + 101, + 95, + 97, + 114, + 99, + 104, + 105, + 118, + 101, + 114, + 101, + 110, + 34, + 44, + 34, + 98, + 101, + 116, + 97, + 108, + 105, + 110, + 103, + 115, + 105, + 110, + 100, + 105, + 99, + 97, + 116, + 105, + 101, + 34, + 58, + 34, + 103, + 101, + 104, + 101, + 101, + 108, + 34, + 44, + 34, + 108, + 97, + 97, + 116, + 115, + 116, + 101, + 66, + 101, + 116, + 97, + 97, + 108, + 100, + 97, + 116, + 117, + 109, + 34, + 58, + 34, + 50, + 48, + 49, + 57, + 45, + 48, + 49, + 45, + 48, + 49, + 34, + 44, + 34, + 104, + 111, + 111, + 102, + 100, + 122, + 97, + 97, + 107, + 34, + 58, + 110, + 117, + 108, + 108, + 125 + ] + }, + "cookie": [], + "responseTime": 240, + "responseSize": 807 + }, + "id": "da3c8928-3aa3-4255-96c6-0e0757b75298", + "assertions": [ + { + "assertion": "Expliciete vertrouwelijkheidaanduiding bij aanmaken Zaak moet toegekend worden aan Zaak", + "skipped": false + } + ] + }, + { + "cursor": { + "ref": "3d5702c0-8793-43f0-9ced-2776d688645b", + "length": 313, + "cycles": 1, + "position": 127, + "iteration": 0, + "httpRequestId": "84d2cb90-d175-4fe7-aac5-588f32da4987" + }, + "item": { + "id": "ace7ec28-2606-4f39-bebf-868ea5e47a31", + "name": "(zrc-009b) Valideer expliciet gedefinieerde vertrouwelijkheidaanduiding (PUT)", + "request": { + "url": { + "host": [ + "{{created_zaak_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Content-Crs", + "value": "EPSG:4326" + }, + { + "key": "Accept-Crs", + "value": "EPSG:4326" + } + ], + "method": "PUT", + "body": { + "mode": "raw", + "raw": "{\r\n\r\n \"bronorganisatie\": \"000000000\",\r\n \"omschrijving\": \"string\",\r\n \"toelichting\": \"string\",\r\n \"zaaktype\": \"{{zaaktype_url}}\",\r\n \"registratiedatum\": \"2019-04-09\",\r\n \"verantwoordelijkeOrganisatie\": \"000000000\",\r\n \"startdatum\": \"2019-04-09\",\r\n \"einddatum\": null,\r\n \"einddatumGepland\": \"2019-04-20\",\r\n \"uiterlijkeEinddatumAfdoening\": \"2019-04-09\",\r\n \"publicatiedatum\": \"2019-04-09\",\r\n \"communicatiekanaal\": \"\",\r\n \"productenOfDiensten\": [],\r\n \"vertrouwelijkheidaanduiding\": \"{{expliciete_vertrouwelijkheid}}\",\r\n \"betalingsindicatie\": \"geheel\",\r\n \"betalingsindicatieWeergave\": null,\r\n \"laatsteBetaaldatum\": \"2019-01-01T00:00:00Z\",\r\n \"zaakgeometrie\": {\r\n \"type\": \"Point\",\r\n \"coordinates\": [\r\n 53.0,\r\n 5.0\r\n ]\r\n },\r\n \"verlenging\": null,\r\n \"opschorting\": {\r\n \"indicatie\": true,\r\n \"reden\": \"string\"\r\n },\r\n \"selectielijstklasse\": \"https://referentielijsten.roxit.nl/api/v1/resultaten/0fe71ce3-b1e1-48eb-9070-be2756fc71b5\",\r\n \"hoofdzaak\": null,\r\n \"deelzaken\": [],\r\n \"relevanteAndereZaken\": [],\r\n \"eigenschappen\": [],\r\n \"rollen\": [],\r\n \"status\": null,\r\n \"zaakinformatieobjecten\": [],\r\n \"zaakobjecten\": [],\r\n \"resultaat\": null,\r\n \"kenmerken\": [],\r\n \"archiefnominatie\": null,\r\n \"archiefstatus\": \"nog_te_archiveren\",\r\n \"archiefactiedatum\": null,\r\n \"opdrachtgevendeOrganisatie\": null,\r\n \"processobjectaard\": null,\r\n \"startdatumBewaartermijn\": null,\r\n \"processobject\": null\r\n}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "50984f6d-087a-4cba-8123-a328a2af0da3", + "type": "text/javascript", + "packages": {}, + "exec": [ + "pm.test(\"Expliciete vertrouwelijkheidaanduiding bij bijwerken Zaak moet toegekend worden aan Zaak\", function() {", + " pm.expect(pm.response.json().vertrouwelijkheidaanduiding).to.be.equal(pm.environment.get(\"expliciete_vertrouwelijkheid\"));", + "});" + ], + "_lastExecutionId": "9ac0272a-56fa-45ea-acf5-7dd824fc0217" + } + }, + { + "listen": "prerequest", + "script": { + "id": "2089927e-73e6-4cb3-8bc8-e11d8efb0553", + "type": "text/javascript", + "packages": {}, + "exec": [ + "" + ], + "_lastExecutionId": "48f0fb19-97e2-4be0-9481-5dcd61475f0c" + } + } + ] + }, + "request": { + "url": { + "protocol": "http", + "port": "8080", + "path": [ + "index.php", + "apps", + "procest", + "api", + "zgw", + "zaken", + "v1", + "zaken", + "fe599eaf-176e-41aa-ae19-2a5a2b0b241c" + ], + "host": [ + "localhost" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Content-Crs", + "value": "EPSG:4326" + }, + { + "key": "Accept-Crs", + "value": "EPSG:4326" + }, + { + "key": "Authorization", + "value": "Bearer eyJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJwcm9jZXN0LWFkbWluIiwiY2xpZW50X2lkIjoicHJvY2VzdC1hZG1pbiIsImlhdCI6IjE3NzMxNDUxNzIiLCJ1c2VyX2lkIjoicHJvY2VzdC1hZG1pbiIsInVzZXJfcmVwcmVzZW50YXRpb24iOiIifQ.75kB1cQw-Sf4Ubn4LY100nh6S3yVFnqipW4TYSidahY", + "system": true + }, + { + "key": "User-Agent", + "value": "PostmanRuntime/7.39.1", + "system": true + }, + { + "key": "Accept", + "value": "*/*", + "system": true + }, + { + "key": "Cache-Control", + "value": "no-cache", + "system": true + }, + { + "key": "Postman-Token", + "value": "6a6eeff1-6810-4327-bd2b-87456f213818", + "system": true + }, + { + "key": "Host", + "value": "localhost:8080", + "system": true + }, + { + "key": "Accept-Encoding", + "value": "gzip, deflate, br", + "system": true + }, + { + "key": "Connection", + "value": "keep-alive", + "system": true + }, + { + "key": "Content-Length", + "value": "1607", + "system": true + }, + { + "key": "Cookie", + "value": "ocvp3112b4wg=1b055e0b2b952cd8e165b1c3102b7d40; oc_sessionPassphrase=LBNdKxRzA0iqoULIruNxDDh2BK3O%2BrCIU8aUmiUcOFvy5Xw1YfjwQNlmBW2IkGwJYtxXh9%2BwDN6vYuGNX07tXzkBtjQJUWTGdzf8AIOUIVxVx5DfyWAQZ7nmYmQv6XSE; nc_sameSiteCookielax=true; nc_sameSiteCookiestrict=true", + "system": true + } + ], + "method": "PUT", + "body": { + "mode": "raw", + "raw": "{\r\n\r\n \"bronorganisatie\": \"000000000\",\r\n \"omschrijving\": \"string\",\r\n \"toelichting\": \"string\",\r\n \"zaaktype\": \"http://localhost:8080/index.php/apps/procest/api/zgw/catalogi/v1/zaaktypen/619dc3e5-52f1-4294-a569-f21d16f44879\",\r\n \"registratiedatum\": \"2019-04-09\",\r\n \"verantwoordelijkeOrganisatie\": \"000000000\",\r\n \"startdatum\": \"2019-04-09\",\r\n \"einddatum\": null,\r\n \"einddatumGepland\": \"2019-04-20\",\r\n \"uiterlijkeEinddatumAfdoening\": \"2019-04-09\",\r\n \"publicatiedatum\": \"2019-04-09\",\r\n \"communicatiekanaal\": \"\",\r\n \"productenOfDiensten\": [],\r\n \"vertrouwelijkheidaanduiding\": \"openbaar\",\r\n \"betalingsindicatie\": \"geheel\",\r\n \"betalingsindicatieWeergave\": null,\r\n \"laatsteBetaaldatum\": \"2019-01-01T00:00:00Z\",\r\n \"zaakgeometrie\": {\r\n \"type\": \"Point\",\r\n \"coordinates\": [\r\n 53.0,\r\n 5.0\r\n ]\r\n },\r\n \"verlenging\": null,\r\n \"opschorting\": {\r\n \"indicatie\": true,\r\n \"reden\": \"string\"\r\n },\r\n \"selectielijstklasse\": \"https://referentielijsten.roxit.nl/api/v1/resultaten/0fe71ce3-b1e1-48eb-9070-be2756fc71b5\",\r\n \"hoofdzaak\": null,\r\n \"deelzaken\": [],\r\n \"relevanteAndereZaken\": [],\r\n \"eigenschappen\": [],\r\n \"rollen\": [],\r\n \"status\": null,\r\n \"zaakinformatieobjecten\": [],\r\n \"zaakobjecten\": [],\r\n \"resultaat\": null,\r\n \"kenmerken\": [],\r\n \"archiefnominatie\": null,\r\n \"archiefstatus\": \"nog_te_archiveren\",\r\n \"archiefactiedatum\": null,\r\n \"opdrachtgevendeOrganisatie\": null,\r\n \"processobjectaard\": null,\r\n \"startdatumBewaartermijn\": null,\r\n \"processobject\": null\r\n}" + }, + "auth": { + "type": "jwt", + "jwt": [ + { + "type": "string", + "value": "{\r\n \"iss\": \"procest-admin\",\r\n \"client_id\": \"procest-admin\",\r\n \"iat\": \"1773145172\",\r\n \"user_id\": \"procest-admin\",\r\n \"user_representation\": \"\"\r\n}", + "key": "payload" + }, + { + "type": "string", + "value": "procest-admin-secret-key-for-testing", + "key": "secret" + }, + { + "type": "string", + "value": "HS256", + "key": "algorithm" + }, + { + "type": "boolean", + "value": false, + "key": "isSecretBase64Encoded" + }, + { + "type": "string", + "value": "header", + "key": "addTokenTo" + }, + { + "type": "string", + "value": "Bearer", + "key": "headerPrefix" + }, + { + "type": "string", + "value": "token", + "key": "queryParamKey" + }, + { + "type": "string", + "value": "{}", + "key": "header" + } + ] + } + }, + "response": { + "id": "5ac5319b-0051-4a61-a1fd-8853bd12db12", + "status": "OK", + "code": 200, + "header": [ + { + "key": "Date", + "value": "Tue, 10 Mar 2026 12:19:31 GMT" + }, + { + "key": "Server", + "value": "Apache/2.4.66 (Debian)" + }, + { + "key": "X-Content-Type-Options", + "value": "nosniff" + }, + { + "key": "X-Frame-Options", + "value": "SAMEORIGIN" + }, + { + "key": "X-Permitted-Cross-Domain-Policies", + "value": "none" + }, + { + "key": "X-Robots-Tag", + "value": "noindex, nofollow" + }, + { + "key": "Referrer-Policy", + "value": "no-referrer" + }, + { + "key": "X-Powered-By", + "value": "PHP/8.3.30" + }, + { + "key": "Content-Security-Policy", + "value": "default-src 'none';base-uri 'none';manifest-src 'self';frame-ancestors 'none'" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=1b055e0b2b952cd8e165b1c3102b7d40; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=1b055e0b2b952cd8e165b1c3102b7d40; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=1b055e0b2b952cd8e165b1c3102b7d40; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=1b055e0b2b952cd8e165b1c3102b7d40; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=1b055e0b2b952cd8e165b1c3102b7d40; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=123a4fb4b0e6e81928c41b0a9c44a775; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=123a4fb4b0e6e81928c41b0a9c44a775; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=123a4fb4b0e6e81928c41b0a9c44a775; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=123a4fb4b0e6e81928c41b0a9c44a775; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=123a4fb4b0e6e81928c41b0a9c44a775; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "X-Request-Id", + "value": "n6pIcswX6lW3TDWC0vRj" + }, + { + "key": "Cache-Control", + "value": "no-cache, no-store, must-revalidate" + }, + { + "key": "Feature-Policy", + "value": "autoplay 'none';camera 'none';fullscreen 'none';geolocation 'none';microphone 'none';payment 'none'" + }, + { + "key": "X-User-Id", + "value": "admin" + }, + { + "key": "Content-Encoding", + "value": "gzip" + }, + { + "key": "Content-Length", + "value": "425" + }, + { + "key": "Keep-Alive", + "value": "timeout=5, max=87" + }, + { + "key": "Connection", + "value": "Keep-Alive" + }, + { + "key": "Content-Type", + "value": "application/json; charset=utf-8" + } + ], + "stream": { + "type": "Buffer", + "data": [ + 123, + 34, + 117, + 114, + 108, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 122, + 97, + 107, + 101, + 110, + 92, + 47, + 118, + 49, + 92, + 47, + 122, + 97, + 107, + 101, + 110, + 92, + 47, + 102, + 101, + 53, + 57, + 57, + 101, + 97, + 102, + 45, + 49, + 55, + 54, + 101, + 45, + 52, + 49, + 97, + 97, + 45, + 97, + 101, + 49, + 57, + 45, + 50, + 97, + 53, + 97, + 50, + 98, + 48, + 98, + 50, + 52, + 49, + 99, + 34, + 44, + 34, + 117, + 117, + 105, + 100, + 34, + 58, + 34, + 102, + 101, + 53, + 57, + 57, + 101, + 97, + 102, + 45, + 49, + 55, + 54, + 101, + 45, + 52, + 49, + 97, + 97, + 45, + 97, + 101, + 49, + 57, + 45, + 50, + 97, + 53, + 97, + 50, + 98, + 48, + 98, + 50, + 52, + 49, + 99, + 34, + 44, + 34, + 105, + 100, + 101, + 110, + 116, + 105, + 102, + 105, + 99, + 97, + 116, + 105, + 101, + 34, + 58, + 34, + 34, + 44, + 34, + 111, + 109, + 115, + 99, + 104, + 114, + 105, + 106, + 118, + 105, + 110, + 103, + 34, + 58, + 34, + 115, + 116, + 114, + 105, + 110, + 103, + 34, + 44, + 34, + 116, + 111, + 101, + 108, + 105, + 99, + 104, + 116, + 105, + 110, + 103, + 34, + 58, + 34, + 115, + 116, + 114, + 105, + 110, + 103, + 34, + 44, + 34, + 122, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 105, + 92, + 47, + 118, + 49, + 92, + 47, + 122, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 110, + 92, + 47, + 54, + 49, + 57, + 100, + 99, + 51, + 101, + 53, + 45, + 53, + 50, + 102, + 49, + 45, + 52, + 50, + 57, + 52, + 45, + 97, + 53, + 54, + 57, + 45, + 102, + 50, + 49, + 100, + 49, + 54, + 102, + 52, + 52, + 56, + 55, + 57, + 34, + 44, + 34, + 114, + 101, + 103, + 105, + 115, + 116, + 114, + 97, + 116, + 105, + 101, + 100, + 97, + 116, + 117, + 109, + 34, + 58, + 34, + 50, + 48, + 50, + 54, + 45, + 48, + 51, + 45, + 49, + 48, + 84, + 49, + 50, + 58, + 49, + 57, + 58, + 51, + 49, + 43, + 48, + 48, + 58, + 48, + 48, + 34, + 44, + 34, + 115, + 116, + 97, + 114, + 116, + 100, + 97, + 116, + 117, + 109, + 34, + 58, + 34, + 50, + 48, + 49, + 57, + 45, + 48, + 52, + 45, + 48, + 57, + 34, + 44, + 34, + 101, + 105, + 110, + 100, + 100, + 97, + 116, + 117, + 109, + 34, + 58, + 110, + 117, + 108, + 108, + 44, + 34, + 101, + 105, + 110, + 100, + 100, + 97, + 116, + 117, + 109, + 71, + 101, + 112, + 108, + 97, + 110, + 100, + 34, + 58, + 34, + 50, + 48, + 49, + 57, + 45, + 48, + 52, + 45, + 50, + 48, + 34, + 44, + 34, + 117, + 105, + 116, + 101, + 114, + 108, + 105, + 106, + 107, + 101, + 69, + 105, + 110, + 100, + 100, + 97, + 116, + 117, + 109, + 65, + 102, + 100, + 111, + 101, + 110, + 105, + 110, + 103, + 34, + 58, + 34, + 50, + 48, + 49, + 57, + 45, + 48, + 52, + 45, + 48, + 57, + 34, + 44, + 34, + 118, + 101, + 114, + 116, + 114, + 111, + 117, + 119, + 101, + 108, + 105, + 106, + 107, + 104, + 101, + 105, + 100, + 97, + 97, + 110, + 100, + 117, + 105, + 100, + 105, + 110, + 103, + 34, + 58, + 34, + 111, + 112, + 101, + 110, + 98, + 97, + 97, + 114, + 34, + 44, + 34, + 118, + 101, + 114, + 97, + 110, + 116, + 119, + 111, + 111, + 114, + 100, + 101, + 108, + 105, + 106, + 107, + 101, + 79, + 114, + 103, + 97, + 110, + 105, + 115, + 97, + 116, + 105, + 101, + 34, + 58, + 34, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 34, + 44, + 34, + 97, + 114, + 99, + 104, + 105, + 101, + 102, + 110, + 111, + 109, + 105, + 110, + 97, + 116, + 105, + 101, + 34, + 58, + 110, + 117, + 108, + 108, + 44, + 34, + 97, + 114, + 99, + 104, + 105, + 101, + 102, + 97, + 99, + 116, + 105, + 101, + 100, + 97, + 116, + 117, + 109, + 34, + 58, + 110, + 117, + 108, + 108, + 44, + 34, + 97, + 114, + 99, + 104, + 105, + 101, + 102, + 115, + 116, + 97, + 116, + 117, + 115, + 34, + 58, + 34, + 110, + 111, + 103, + 95, + 116, + 101, + 95, + 97, + 114, + 99, + 104, + 105, + 118, + 101, + 114, + 101, + 110, + 34, + 44, + 34, + 98, + 101, + 116, + 97, + 108, + 105, + 110, + 103, + 115, + 105, + 110, + 100, + 105, + 99, + 97, + 116, + 105, + 101, + 34, + 58, + 34, + 103, + 101, + 104, + 101, + 101, + 108, + 34, + 44, + 34, + 108, + 97, + 97, + 116, + 115, + 116, + 101, + 66, + 101, + 116, + 97, + 97, + 108, + 100, + 97, + 116, + 117, + 109, + 34, + 58, + 34, + 50, + 48, + 49, + 57, + 45, + 48, + 49, + 45, + 48, + 49, + 34, + 44, + 34, + 104, + 111, + 111, + 102, + 100, + 122, + 97, + 97, + 107, + 34, + 58, + 110, + 117, + 108, + 108, + 125 + ] + }, + "cookie": [], + "responseTime": 173, + "responseSize": 789 + }, + "id": "ace7ec28-2606-4f39-bebf-868ea5e47a31", + "assertions": [ + { + "assertion": "Expliciete vertrouwelijkheidaanduiding bij bijwerken Zaak moet toegekend worden aan Zaak", + "skipped": false + } + ] + }, + { + "cursor": { + "ref": "ecf05cdc-5796-4b4d-bacd-e5d60132be34", + "length": 313, + "cycles": 1, + "position": 128, + "iteration": 0, + "httpRequestId": "fa44d636-3fc9-466e-b694-f1813a9b014e" + }, + "item": { + "id": "4c9e6a6e-f7ca-4077-b461-f84cde466908", + "name": "(zrc-009c) Valideer expliciet gedefinieerde vertrouwelijkheidaanduiding (PATCH)", + "request": { + "url": { + "host": [ + "{{created_zaak_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Content-Crs", + "value": "EPSG:4326" + }, + { + "key": "Accept-Crs", + "value": "EPSG:4326" + } + ], + "method": "PATCH", + "body": { + "mode": "raw", + "raw": "{\n\t\"vertrouwelijkheidaanduiding\": \"{{expliciete_vertrouwelijkheid}}\"\n}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "a144929e-6a0a-4b00-8e84-294d0c101824", + "type": "text/javascript", + "packages": {}, + "exec": [ + "pm.test(\"Expliciete vertrouwelijkheidaanduiding bij deels bijwerken Zaak moet toegekend worden aan Zaak\", function() {", + " pm.expect(pm.response.json().vertrouwelijkheidaanduiding).to.be.equal(pm.environment.get(\"expliciete_vertrouwelijkheid\"));", + "});", + "", + "", + "", + "" + ], + "_lastExecutionId": "52103c8a-e54c-4807-9cbe-b64b3b0420f9" + } + }, + { + "listen": "prerequest", + "script": { + "id": "69855d84-e120-45c3-b2df-660f4c6a3d1a", + "type": "text/javascript", + "packages": {}, + "exec": [ + "pm.environment.set(\"expliciete_vertrouwelijkheid\", \"vertrouwelijk\");" + ], + "_lastExecutionId": "e340efc7-befd-49ef-ba99-060af5efc449" + } + } + ] + }, + "request": { + "url": { + "protocol": "http", + "port": "8080", + "path": [ + "index.php", + "apps", + "procest", + "api", + "zgw", + "zaken", + "v1", + "zaken", + "fe599eaf-176e-41aa-ae19-2a5a2b0b241c" + ], + "host": [ + "localhost" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Content-Crs", + "value": "EPSG:4326" + }, + { + "key": "Accept-Crs", + "value": "EPSG:4326" + }, + { + "key": "Authorization", + "value": "Bearer eyJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJwcm9jZXN0LWFkbWluIiwiY2xpZW50X2lkIjoicHJvY2VzdC1hZG1pbiIsImlhdCI6IjE3NzMxNDUxNzIiLCJ1c2VyX2lkIjoicHJvY2VzdC1hZG1pbiIsInVzZXJfcmVwcmVzZW50YXRpb24iOiIifQ.75kB1cQw-Sf4Ubn4LY100nh6S3yVFnqipW4TYSidahY", + "system": true + }, + { + "key": "User-Agent", + "value": "PostmanRuntime/7.39.1", + "system": true + }, + { + "key": "Accept", + "value": "*/*", + "system": true + }, + { + "key": "Cache-Control", + "value": "no-cache", + "system": true + }, + { + "key": "Postman-Token", + "value": "8695d508-14fa-4944-9544-51f49dbd2241", + "system": true + }, + { + "key": "Host", + "value": "localhost:8080", + "system": true + }, + { + "key": "Accept-Encoding", + "value": "gzip, deflate, br", + "system": true + }, + { + "key": "Connection", + "value": "keep-alive", + "system": true + }, + { + "key": "Content-Length", + "value": "51", + "system": true + }, + { + "key": "Cookie", + "value": "ocvp3112b4wg=123a4fb4b0e6e81928c41b0a9c44a775; oc_sessionPassphrase=LBNdKxRzA0iqoULIruNxDDh2BK3O%2BrCIU8aUmiUcOFvy5Xw1YfjwQNlmBW2IkGwJYtxXh9%2BwDN6vYuGNX07tXzkBtjQJUWTGdzf8AIOUIVxVx5DfyWAQZ7nmYmQv6XSE; nc_sameSiteCookielax=true; nc_sameSiteCookiestrict=true", + "system": true + } + ], + "method": "PATCH", + "body": { + "mode": "raw", + "raw": "{\n\t\"vertrouwelijkheidaanduiding\": \"vertrouwelijk\"\n}" + }, + "auth": { + "type": "jwt", + "jwt": [ + { + "type": "string", + "value": "{\r\n \"iss\": \"procest-admin\",\r\n \"client_id\": \"procest-admin\",\r\n \"iat\": \"1773145172\",\r\n \"user_id\": \"procest-admin\",\r\n \"user_representation\": \"\"\r\n}", + "key": "payload" + }, + { + "type": "string", + "value": "procest-admin-secret-key-for-testing", + "key": "secret" + }, + { + "type": "string", + "value": "HS256", + "key": "algorithm" + }, + { + "type": "boolean", + "value": false, + "key": "isSecretBase64Encoded" + }, + { + "type": "string", + "value": "header", + "key": "addTokenTo" + }, + { + "type": "string", + "value": "Bearer", + "key": "headerPrefix" + }, + { + "type": "string", + "value": "token", + "key": "queryParamKey" + }, + { + "type": "string", + "value": "{}", + "key": "header" + } + ] + } + }, + "response": { + "id": "0c323c00-8941-4996-bddb-74224df7ca63", + "status": "OK", + "code": 200, + "header": [ + { + "key": "Date", + "value": "Tue, 10 Mar 2026 12:19:32 GMT" + }, + { + "key": "Server", + "value": "Apache/2.4.66 (Debian)" + }, + { + "key": "X-Content-Type-Options", + "value": "nosniff" + }, + { + "key": "X-Frame-Options", + "value": "SAMEORIGIN" + }, + { + "key": "X-Permitted-Cross-Domain-Policies", + "value": "none" + }, + { + "key": "X-Robots-Tag", + "value": "noindex, nofollow" + }, + { + "key": "Referrer-Policy", + "value": "no-referrer" + }, + { + "key": "X-Powered-By", + "value": "PHP/8.3.30" + }, + { + "key": "Content-Security-Policy", + "value": "default-src 'none';base-uri 'none';manifest-src 'self';frame-ancestors 'none'" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=123a4fb4b0e6e81928c41b0a9c44a775; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=123a4fb4b0e6e81928c41b0a9c44a775; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=123a4fb4b0e6e81928c41b0a9c44a775; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=123a4fb4b0e6e81928c41b0a9c44a775; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=123a4fb4b0e6e81928c41b0a9c44a775; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=5da7701ea6a17bbf712fc9844ef9f9a7; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=5da7701ea6a17bbf712fc9844ef9f9a7; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=5da7701ea6a17bbf712fc9844ef9f9a7; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=5da7701ea6a17bbf712fc9844ef9f9a7; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=5da7701ea6a17bbf712fc9844ef9f9a7; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "X-Request-Id", + "value": "EM5aksswJLwsh6Sf9Sv9" + }, + { + "key": "Cache-Control", + "value": "no-cache, no-store, must-revalidate" + }, + { + "key": "Feature-Policy", + "value": "autoplay 'none';camera 'none';fullscreen 'none';geolocation 'none';microphone 'none';payment 'none'" + }, + { + "key": "X-User-Id", + "value": "admin" + }, + { + "key": "Content-Encoding", + "value": "gzip" + }, + { + "key": "Content-Length", + "value": "422" + }, + { + "key": "Keep-Alive", + "value": "timeout=5, max=86" + }, + { + "key": "Connection", + "value": "Keep-Alive" + }, + { + "key": "Content-Type", + "value": "application/json; charset=utf-8" + } + ], + "stream": { + "type": "Buffer", + "data": [ + 123, + 34, + 117, + 114, + 108, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 122, + 97, + 107, + 101, + 110, + 92, + 47, + 118, + 49, + 92, + 47, + 122, + 97, + 107, + 101, + 110, + 92, + 47, + 102, + 101, + 53, + 57, + 57, + 101, + 97, + 102, + 45, + 49, + 55, + 54, + 101, + 45, + 52, + 49, + 97, + 97, + 45, + 97, + 101, + 49, + 57, + 45, + 50, + 97, + 53, + 97, + 50, + 98, + 48, + 98, + 50, + 52, + 49, + 99, + 34, + 44, + 34, + 117, + 117, + 105, + 100, + 34, + 58, + 34, + 102, + 101, + 53, + 57, + 57, + 101, + 97, + 102, + 45, + 49, + 55, + 54, + 101, + 45, + 52, + 49, + 97, + 97, + 45, + 97, + 101, + 49, + 57, + 45, + 50, + 97, + 53, + 97, + 50, + 98, + 48, + 98, + 50, + 52, + 49, + 99, + 34, + 44, + 34, + 105, + 100, + 101, + 110, + 116, + 105, + 102, + 105, + 99, + 97, + 116, + 105, + 101, + 34, + 58, + 34, + 34, + 44, + 34, + 111, + 109, + 115, + 99, + 104, + 114, + 105, + 106, + 118, + 105, + 110, + 103, + 34, + 58, + 34, + 115, + 116, + 114, + 105, + 110, + 103, + 34, + 44, + 34, + 116, + 111, + 101, + 108, + 105, + 99, + 104, + 116, + 105, + 110, + 103, + 34, + 58, + 34, + 115, + 116, + 114, + 105, + 110, + 103, + 34, + 44, + 34, + 122, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 105, + 92, + 47, + 118, + 49, + 92, + 47, + 122, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 110, + 92, + 47, + 54, + 49, + 57, + 100, + 99, + 51, + 101, + 53, + 45, + 53, + 50, + 102, + 49, + 45, + 52, + 50, + 57, + 52, + 45, + 97, + 53, + 54, + 57, + 45, + 102, + 50, + 49, + 100, + 49, + 54, + 102, + 52, + 52, + 56, + 55, + 57, + 34, + 44, + 34, + 114, + 101, + 103, + 105, + 115, + 116, + 114, + 97, + 116, + 105, + 101, + 100, + 97, + 116, + 117, + 109, + 34, + 58, + 34, + 50, + 48, + 50, + 54, + 45, + 48, + 51, + 45, + 49, + 48, + 84, + 49, + 50, + 58, + 49, + 57, + 58, + 51, + 49, + 43, + 48, + 48, + 58, + 48, + 48, + 34, + 44, + 34, + 115, + 116, + 97, + 114, + 116, + 100, + 97, + 116, + 117, + 109, + 34, + 58, + 34, + 50, + 48, + 49, + 57, + 45, + 48, + 52, + 45, + 48, + 57, + 34, + 44, + 34, + 101, + 105, + 110, + 100, + 100, + 97, + 116, + 117, + 109, + 34, + 58, + 110, + 117, + 108, + 108, + 44, + 34, + 101, + 105, + 110, + 100, + 100, + 97, + 116, + 117, + 109, + 71, + 101, + 112, + 108, + 97, + 110, + 100, + 34, + 58, + 34, + 50, + 48, + 49, + 57, + 45, + 48, + 52, + 45, + 50, + 48, + 34, + 44, + 34, + 117, + 105, + 116, + 101, + 114, + 108, + 105, + 106, + 107, + 101, + 69, + 105, + 110, + 100, + 100, + 97, + 116, + 117, + 109, + 65, + 102, + 100, + 111, + 101, + 110, + 105, + 110, + 103, + 34, + 58, + 34, + 50, + 48, + 49, + 57, + 45, + 48, + 52, + 45, + 48, + 57, + 34, + 44, + 34, + 118, + 101, + 114, + 116, + 114, + 111, + 117, + 119, + 101, + 108, + 105, + 106, + 107, + 104, + 101, + 105, + 100, + 97, + 97, + 110, + 100, + 117, + 105, + 100, + 105, + 110, + 103, + 34, + 58, + 34, + 118, + 101, + 114, + 116, + 114, + 111, + 117, + 119, + 101, + 108, + 105, + 106, + 107, + 34, + 44, + 34, + 118, + 101, + 114, + 97, + 110, + 116, + 119, + 111, + 111, + 114, + 100, + 101, + 108, + 105, + 106, + 107, + 101, + 79, + 114, + 103, + 97, + 110, + 105, + 115, + 97, + 116, + 105, + 101, + 34, + 58, + 34, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 34, + 44, + 34, + 97, + 114, + 99, + 104, + 105, + 101, + 102, + 110, + 111, + 109, + 105, + 110, + 97, + 116, + 105, + 101, + 34, + 58, + 110, + 117, + 108, + 108, + 44, + 34, + 97, + 114, + 99, + 104, + 105, + 101, + 102, + 97, + 99, + 116, + 105, + 101, + 100, + 97, + 116, + 117, + 109, + 34, + 58, + 110, + 117, + 108, + 108, + 44, + 34, + 97, + 114, + 99, + 104, + 105, + 101, + 102, + 115, + 116, + 97, + 116, + 117, + 115, + 34, + 58, + 34, + 110, + 111, + 103, + 95, + 116, + 101, + 95, + 97, + 114, + 99, + 104, + 105, + 118, + 101, + 114, + 101, + 110, + 34, + 44, + 34, + 98, + 101, + 116, + 97, + 108, + 105, + 110, + 103, + 115, + 105, + 110, + 100, + 105, + 99, + 97, + 116, + 105, + 101, + 34, + 58, + 34, + 103, + 101, + 104, + 101, + 101, + 108, + 34, + 44, + 34, + 108, + 97, + 97, + 116, + 115, + 116, + 101, + 66, + 101, + 116, + 97, + 97, + 108, + 100, + 97, + 116, + 117, + 109, + 34, + 58, + 34, + 50, + 48, + 49, + 57, + 45, + 48, + 49, + 45, + 48, + 49, + 34, + 44, + 34, + 104, + 111, + 111, + 102, + 100, + 122, + 97, + 97, + 107, + 34, + 58, + 110, + 117, + 108, + 108, + 125 + ] + }, + "cookie": [], + "responseTime": 198, + "responseSize": 794 + }, + "id": "4c9e6a6e-f7ca-4077-b461-f84cde466908", + "assertions": [ + { + "assertion": "Expliciete vertrouwelijkheidaanduiding bij deels bijwerken Zaak moet toegekend worden aan Zaak", + "skipped": false + } + ] + }, + { + "cursor": { + "ref": "c29c65c2-40b6-4b5f-b858-e350f2002d2c", + "length": 313, + "cycles": 1, + "position": 129, + "iteration": 0, + "httpRequestId": "b6fe9351-2353-430f-ba54-59bb48c0a6d0" + }, + "item": { + "id": "62b4368f-0377-4abb-8064-13b3e5d5d9e6", + "name": "(zrc-009d) Valideer vertrouwelijkheidaanduiding afgeleid uit Zaaktype", + "request": { + "url": { + "path": [ + "zaken" + ], + "host": [ + "{{zrc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Content-Crs", + "value": "EPSG:4326" + }, + { + "key": "Accept-Crs", + "value": "EPSG:4326" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\r\n\r\n \"bronorganisatie\": \"000000000\",\r\n \"omschrijving\": \"string\",\r\n \"toelichting\": \"string\",\r\n \"zaaktype\": \"{{zaaktype_url}}\",\r\n \"registratiedatum\": \"2019-04-09\",\r\n \"verantwoordelijkeOrganisatie\": \"000000000\",\r\n \"startdatum\": \"2019-04-09\",\r\n \"einddatum\": null,\r\n \"einddatumGepland\": \"2019-04-20\",\r\n \"uiterlijkeEinddatumAfdoening\": \"2019-04-09\",\r\n \"publicatiedatum\": \"2019-04-09\",\r\n \"communicatiekanaal\": \"\",\r\n \"productenOfDiensten\": [],\r\n \"vertrouwelijkheidaanduiding\": null,\r\n \"betalingsindicatie\": \"geheel\",\r\n \"betalingsindicatieWeergave\": null,\r\n \"laatsteBetaaldatum\": \"2019-01-01T00:00:00Z\",\r\n \"zaakgeometrie\": {\r\n \"type\": \"Point\",\r\n \"coordinates\": [\r\n 53.0,\r\n 5.0\r\n ]\r\n },\r\n \"verlenging\": null,\r\n \"opschorting\": {\r\n \"indicatie\": true,\r\n \"reden\": \"string\"\r\n },\r\n \"selectielijstklasse\": \"https://referentielijsten.roxit.nl/api/v1/resultaten/0fe71ce3-b1e1-48eb-9070-be2756fc71b5\",\r\n \"hoofdzaak\": null,\r\n \"deelzaken\": [],\r\n \"relevanteAndereZaken\": [],\r\n \"eigenschappen\": [],\r\n \"rollen\": [],\r\n \"status\": null,\r\n \"zaakinformatieobjecten\": [],\r\n \"zaakobjecten\": [],\r\n \"resultaat\": null,\r\n \"kenmerken\": [],\r\n \"archiefnominatie\": null,\r\n \"archiefstatus\": \"nog_te_archiveren\",\r\n \"archiefactiedatum\": null,\r\n \"opdrachtgevendeOrganisatie\": null,\r\n \"processobjectaard\": null,\r\n \"startdatumBewaartermijn\": null,\r\n \"processobject\": null\r\n}" + } + }, + "response": [], + "event": [ + { + "listen": "prerequest", + "script": { + "id": "68f765eb-bfbf-455f-93c6-4f8a4a048210", + "type": "text/javascript", + "packages": {}, + "exec": [ + "" + ], + "_lastExecutionId": "e29764c6-318c-41e1-8f0b-4349f9c71c7b" + } + }, + { + "listen": "test", + "script": { + "id": "05b18697-172a-4ca0-91a1-6c24f2d1c137", + "type": "text/javascript", + "packages": {}, + "exec": [ + "pm.test(\"Vertrouwelijkheidaanduiding bij aanmaken Zaak afgeleid uit Zaaktype indien niet meegegeven\", function() {", + " pm.expect(pm.response.json().vertrouwelijkheidaanduiding).to.be.equal(pm.environment.get(\"zaaktype_vertrouwelijkheid\"));", + "});", + "", + "" + ], + "_lastExecutionId": "1de9cbc6-462f-46d6-839d-8304d313378a" + } + } + ] + }, + "request": { + "url": { + "protocol": "http", + "port": "8080", + "path": [ + "index.php", + "apps", + "procest", + "api", + "zgw", + "zaken", + "v1", + "zaken" + ], + "host": [ + "localhost" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Content-Crs", + "value": "EPSG:4326" + }, + { + "key": "Accept-Crs", + "value": "EPSG:4326" + }, + { + "key": "Authorization", + "value": "Bearer eyJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJwcm9jZXN0LWFkbWluIiwiY2xpZW50X2lkIjoicHJvY2VzdC1hZG1pbiIsImlhdCI6IjE3NzMxNDUxNzIiLCJ1c2VyX2lkIjoicHJvY2VzdC1hZG1pbiIsInVzZXJfcmVwcmVzZW50YXRpb24iOiIifQ.75kB1cQw-Sf4Ubn4LY100nh6S3yVFnqipW4TYSidahY", + "system": true + }, + { + "key": "User-Agent", + "value": "PostmanRuntime/7.39.1", + "system": true + }, + { + "key": "Accept", + "value": "*/*", + "system": true + }, + { + "key": "Cache-Control", + "value": "no-cache", + "system": true + }, + { + "key": "Postman-Token", + "value": "a1c26cc2-926a-4662-8035-a7584d8521ae", + "system": true + }, + { + "key": "Host", + "value": "localhost:8080", + "system": true + }, + { + "key": "Accept-Encoding", + "value": "gzip, deflate, br", + "system": true + }, + { + "key": "Connection", + "value": "keep-alive", + "system": true + }, + { + "key": "Content-Length", + "value": "1601", + "system": true + }, + { + "key": "Cookie", + "value": "ocvp3112b4wg=5da7701ea6a17bbf712fc9844ef9f9a7; oc_sessionPassphrase=LBNdKxRzA0iqoULIruNxDDh2BK3O%2BrCIU8aUmiUcOFvy5Xw1YfjwQNlmBW2IkGwJYtxXh9%2BwDN6vYuGNX07tXzkBtjQJUWTGdzf8AIOUIVxVx5DfyWAQZ7nmYmQv6XSE; nc_sameSiteCookielax=true; nc_sameSiteCookiestrict=true", + "system": true + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\r\n\r\n \"bronorganisatie\": \"000000000\",\r\n \"omschrijving\": \"string\",\r\n \"toelichting\": \"string\",\r\n \"zaaktype\": \"http://localhost:8080/index.php/apps/procest/api/zgw/catalogi/v1/zaaktypen/619dc3e5-52f1-4294-a569-f21d16f44879\",\r\n \"registratiedatum\": \"2019-04-09\",\r\n \"verantwoordelijkeOrganisatie\": \"000000000\",\r\n \"startdatum\": \"2019-04-09\",\r\n \"einddatum\": null,\r\n \"einddatumGepland\": \"2019-04-20\",\r\n \"uiterlijkeEinddatumAfdoening\": \"2019-04-09\",\r\n \"publicatiedatum\": \"2019-04-09\",\r\n \"communicatiekanaal\": \"\",\r\n \"productenOfDiensten\": [],\r\n \"vertrouwelijkheidaanduiding\": null,\r\n \"betalingsindicatie\": \"geheel\",\r\n \"betalingsindicatieWeergave\": null,\r\n \"laatsteBetaaldatum\": \"2019-01-01T00:00:00Z\",\r\n \"zaakgeometrie\": {\r\n \"type\": \"Point\",\r\n \"coordinates\": [\r\n 53.0,\r\n 5.0\r\n ]\r\n },\r\n \"verlenging\": null,\r\n \"opschorting\": {\r\n \"indicatie\": true,\r\n \"reden\": \"string\"\r\n },\r\n \"selectielijstklasse\": \"https://referentielijsten.roxit.nl/api/v1/resultaten/0fe71ce3-b1e1-48eb-9070-be2756fc71b5\",\r\n \"hoofdzaak\": null,\r\n \"deelzaken\": [],\r\n \"relevanteAndereZaken\": [],\r\n \"eigenschappen\": [],\r\n \"rollen\": [],\r\n \"status\": null,\r\n \"zaakinformatieobjecten\": [],\r\n \"zaakobjecten\": [],\r\n \"resultaat\": null,\r\n \"kenmerken\": [],\r\n \"archiefnominatie\": null,\r\n \"archiefstatus\": \"nog_te_archiveren\",\r\n \"archiefactiedatum\": null,\r\n \"opdrachtgevendeOrganisatie\": null,\r\n \"processobjectaard\": null,\r\n \"startdatumBewaartermijn\": null,\r\n \"processobject\": null\r\n}" + }, + "auth": { + "type": "jwt", + "jwt": [ + { + "type": "string", + "value": "{\r\n \"iss\": \"procest-admin\",\r\n \"client_id\": \"procest-admin\",\r\n \"iat\": \"1773145172\",\r\n \"user_id\": \"procest-admin\",\r\n \"user_representation\": \"\"\r\n}", + "key": "payload" + }, + { + "type": "string", + "value": "procest-admin-secret-key-for-testing", + "key": "secret" + }, + { + "type": "string", + "value": "HS256", + "key": "algorithm" + }, + { + "type": "boolean", + "value": false, + "key": "isSecretBase64Encoded" + }, + { + "type": "string", + "value": "header", + "key": "addTokenTo" + }, + { + "type": "string", + "value": "Bearer", + "key": "headerPrefix" + }, + { + "type": "string", + "value": "token", + "key": "queryParamKey" + }, + { + "type": "string", + "value": "{}", + "key": "header" + } + ] + } + }, + "response": { + "id": "56bb1977-c1bd-466f-b519-6ebf95182cb9", + "status": "Created", + "code": 201, + "header": [ + { + "key": "Date", + "value": "Tue, 10 Mar 2026 12:19:32 GMT" + }, + { + "key": "Server", + "value": "Apache/2.4.66 (Debian)" + }, + { + "key": "X-Content-Type-Options", + "value": "nosniff" + }, + { + "key": "X-Frame-Options", + "value": "SAMEORIGIN" + }, + { + "key": "X-Permitted-Cross-Domain-Policies", + "value": "none" + }, + { + "key": "X-Robots-Tag", + "value": "noindex, nofollow" + }, + { + "key": "Referrer-Policy", + "value": "no-referrer" + }, + { + "key": "X-Powered-By", + "value": "PHP/8.3.30" + }, + { + "key": "Content-Security-Policy", + "value": "default-src 'none';base-uri 'none';manifest-src 'self';frame-ancestors 'none'" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=5da7701ea6a17bbf712fc9844ef9f9a7; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=5da7701ea6a17bbf712fc9844ef9f9a7; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=5da7701ea6a17bbf712fc9844ef9f9a7; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=5da7701ea6a17bbf712fc9844ef9f9a7; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=5da7701ea6a17bbf712fc9844ef9f9a7; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=5ea7c515de4013652f42e26ea577ca39; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=5ea7c515de4013652f42e26ea577ca39; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=5ea7c515de4013652f42e26ea577ca39; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=5ea7c515de4013652f42e26ea577ca39; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=5ea7c515de4013652f42e26ea577ca39; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "X-Request-Id", + "value": "DHakmsF4wRwOixEHGfdi" + }, + { + "key": "Cache-Control", + "value": "no-cache, no-store, must-revalidate" + }, + { + "key": "Feature-Policy", + "value": "autoplay 'none';camera 'none';fullscreen 'none';geolocation 'none';microphone 'none';payment 'none'" + }, + { + "key": "X-User-Id", + "value": "admin" + }, + { + "key": "Content-Length", + "value": "807" + }, + { + "key": "Keep-Alive", + "value": "timeout=5, max=85" + }, + { + "key": "Connection", + "value": "Keep-Alive" + }, + { + "key": "Content-Type", + "value": "application/json; charset=utf-8" + } + ], + "stream": { + "type": "Buffer", + "data": [ + 123, + 34, + 117, + 114, + 108, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 122, + 97, + 107, + 101, + 110, + 92, + 47, + 118, + 49, + 92, + 47, + 122, + 97, + 107, + 101, + 110, + 92, + 47, + 57, + 55, + 49, + 54, + 57, + 99, + 101, + 55, + 45, + 97, + 51, + 99, + 54, + 45, + 52, + 102, + 98, + 102, + 45, + 97, + 102, + 57, + 53, + 45, + 56, + 57, + 100, + 102, + 52, + 52, + 97, + 52, + 52, + 55, + 50, + 55, + 34, + 44, + 34, + 117, + 117, + 105, + 100, + 34, + 58, + 34, + 57, + 55, + 49, + 54, + 57, + 99, + 101, + 55, + 45, + 97, + 51, + 99, + 54, + 45, + 52, + 102, + 98, + 102, + 45, + 97, + 102, + 57, + 53, + 45, + 56, + 57, + 100, + 102, + 52, + 52, + 97, + 52, + 52, + 55, + 50, + 55, + 34, + 44, + 34, + 105, + 100, + 101, + 110, + 116, + 105, + 102, + 105, + 99, + 97, + 116, + 105, + 101, + 34, + 58, + 34, + 90, + 65, + 65, + 75, + 45, + 84, + 66, + 79, + 78, + 75, + 75, + 45, + 68, + 50, + 53, + 53, + 68, + 68, + 34, + 44, + 34, + 111, + 109, + 115, + 99, + 104, + 114, + 105, + 106, + 118, + 105, + 110, + 103, + 34, + 58, + 34, + 115, + 116, + 114, + 105, + 110, + 103, + 34, + 44, + 34, + 116, + 111, + 101, + 108, + 105, + 99, + 104, + 116, + 105, + 110, + 103, + 34, + 58, + 34, + 115, + 116, + 114, + 105, + 110, + 103, + 34, + 44, + 34, + 122, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 105, + 92, + 47, + 118, + 49, + 92, + 47, + 122, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 110, + 92, + 47, + 54, + 49, + 57, + 100, + 99, + 51, + 101, + 53, + 45, + 53, + 50, + 102, + 49, + 45, + 52, + 50, + 57, + 52, + 45, + 97, + 53, + 54, + 57, + 45, + 102, + 50, + 49, + 100, + 49, + 54, + 102, + 52, + 52, + 56, + 55, + 57, + 34, + 44, + 34, + 114, + 101, + 103, + 105, + 115, + 116, + 114, + 97, + 116, + 105, + 101, + 100, + 97, + 116, + 117, + 109, + 34, + 58, + 34, + 50, + 48, + 50, + 54, + 45, + 48, + 51, + 45, + 49, + 48, + 84, + 49, + 50, + 58, + 49, + 57, + 58, + 51, + 50, + 43, + 48, + 48, + 58, + 48, + 48, + 34, + 44, + 34, + 115, + 116, + 97, + 114, + 116, + 100, + 97, + 116, + 117, + 109, + 34, + 58, + 34, + 50, + 48, + 49, + 57, + 45, + 48, + 52, + 45, + 48, + 57, + 34, + 44, + 34, + 101, + 105, + 110, + 100, + 100, + 97, + 116, + 117, + 109, + 34, + 58, + 110, + 117, + 108, + 108, + 44, + 34, + 101, + 105, + 110, + 100, + 100, + 97, + 116, + 117, + 109, + 71, + 101, + 112, + 108, + 97, + 110, + 100, + 34, + 58, + 34, + 50, + 48, + 49, + 57, + 45, + 48, + 52, + 45, + 50, + 48, + 34, + 44, + 34, + 117, + 105, + 116, + 101, + 114, + 108, + 105, + 106, + 107, + 101, + 69, + 105, + 110, + 100, + 100, + 97, + 116, + 117, + 109, + 65, + 102, + 100, + 111, + 101, + 110, + 105, + 110, + 103, + 34, + 58, + 34, + 50, + 48, + 49, + 57, + 45, + 48, + 52, + 45, + 48, + 57, + 34, + 44, + 34, + 118, + 101, + 114, + 116, + 114, + 111, + 117, + 119, + 101, + 108, + 105, + 106, + 107, + 104, + 101, + 105, + 100, + 97, + 97, + 110, + 100, + 117, + 105, + 100, + 105, + 110, + 103, + 34, + 58, + 34, + 111, + 112, + 101, + 110, + 98, + 97, + 97, + 114, + 34, + 44, + 34, + 118, + 101, + 114, + 97, + 110, + 116, + 119, + 111, + 111, + 114, + 100, + 101, + 108, + 105, + 106, + 107, + 101, + 79, + 114, + 103, + 97, + 110, + 105, + 115, + 97, + 116, + 105, + 101, + 34, + 58, + 34, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 34, + 44, + 34, + 97, + 114, + 99, + 104, + 105, + 101, + 102, + 110, + 111, + 109, + 105, + 110, + 97, + 116, + 105, + 101, + 34, + 58, + 110, + 117, + 108, + 108, + 44, + 34, + 97, + 114, + 99, + 104, + 105, + 101, + 102, + 97, + 99, + 116, + 105, + 101, + 100, + 97, + 116, + 117, + 109, + 34, + 58, + 110, + 117, + 108, + 108, + 44, + 34, + 97, + 114, + 99, + 104, + 105, + 101, + 102, + 115, + 116, + 97, + 116, + 117, + 115, + 34, + 58, + 34, + 110, + 111, + 103, + 95, + 116, + 101, + 95, + 97, + 114, + 99, + 104, + 105, + 118, + 101, + 114, + 101, + 110, + 34, + 44, + 34, + 98, + 101, + 116, + 97, + 108, + 105, + 110, + 103, + 115, + 105, + 110, + 100, + 105, + 99, + 97, + 116, + 105, + 101, + 34, + 58, + 34, + 103, + 101, + 104, + 101, + 101, + 108, + 34, + 44, + 34, + 108, + 97, + 97, + 116, + 115, + 116, + 101, + 66, + 101, + 116, + 97, + 97, + 108, + 100, + 97, + 116, + 117, + 109, + 34, + 58, + 34, + 50, + 48, + 49, + 57, + 45, + 48, + 49, + 45, + 48, + 49, + 34, + 44, + 34, + 104, + 111, + 111, + 102, + 100, + 122, + 97, + 97, + 107, + 34, + 58, + 110, + 117, + 108, + 108, + 125 + ] + }, + "cookie": [], + "responseTime": 249, + "responseSize": 807 + }, + "id": "62b4368f-0377-4abb-8064-13b3e5d5d9e6", + "assertions": [ + { + "assertion": "Vertrouwelijkheidaanduiding bij aanmaken Zaak afgeleid uit Zaaktype indien niet meegegeven", + "skipped": false + } + ] + }, + { + "cursor": { + "ref": "adef3156-a005-48fa-907c-356cd4d038be", + "length": 313, + "cycles": 1, + "position": 130, + "iteration": 0, + "httpRequestId": "a654cb39-b41f-490c-b551-b7a5ed7171c9" + }, + "item": { + "id": "4ee8b7d4-c335-4f56-9405-2c7de1b9a658", + "name": "(zrc-010a) Valideren communicatiekanaal url bij aanmaken Zaak", + "request": { + "url": { + "path": [ + "zaken" + ], + "host": [ + "{{zrc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Accept-Crs", + "value": "EPSG:4326" + }, + { + "key": "Content-Crs", + "value": "EPSG:4326" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\r\n \"url\": \"https://zaken.spt-rx-services.nl/api/v1/zaken/cba40feb-2b38-4490-b12d-84a39e8df361\",\r\n \"uuid\": \"cba40feb-2b38-4490-b12d-84a39e8df361\",\r\n \"bronorganisatie\": \"000000000\",\r\n \"omschrijving\": \"string\",\r\n \"toelichting\": \"string\",\r\n \"zaaktype\": \"{{zaaktype_url}}\",\r\n \"registratiedatum\": \"2019-04-09\",\r\n \"verantwoordelijkeOrganisatie\": \"000000000\",\r\n \"startdatum\": \"2019-04-09\",\r\n \"einddatum\": null,\r\n \"einddatumGepland\": \"2019-04-20\",\r\n \"uiterlijkeEinddatumAfdoening\": \"2019-04-09\",\r\n \"publicatiedatum\": \"2019-04-09\",\r\n \"communicatiekanaal\": \"https://referentielijsten.roxit.nl/api/v1/communicatiekanalen/2b757868-45c2-42ca-b637-b63ddc87beb4xxx\",\r\n \"productenOfDiensten\": [],\r\n \"vertrouwelijkheidaanduiding\": \"geheim\",\r\n \"betalingsindicatie\": \"geheel\",\r\n \"betalingsindicatieWeergave\": null,\r\n \"laatsteBetaaldatum\": \"2019-01-01T00:00:00Z\",\r\n \"zaakgeometrie\": {\r\n \"type\": \"Point\",\r\n \"coordinates\": [\r\n 53.0,\r\n 5.0\r\n ]\r\n },\r\n \"verlenging\": null,\r\n \"opschorting\": {\r\n \"indicatie\": true,\r\n \"reden\": \"string\"\r\n },\r\n \"selectielijstklasse\": \"https://referentielijsten.roxit.nl/api/v1/resultaten/0fe71ce3-b1e1-48eb-9070-be2756fc71b5\",\r\n \"hoofdzaak\": null,\r\n \"deelzaken\": [],\r\n \"relevanteAndereZaken\": [],\r\n \"eigenschappen\": [],\r\n \"rollen\": [],\r\n \"status\": null,\r\n \"zaakinformatieobjecten\": [],\r\n \"zaakobjecten\": [],\r\n \"resultaat\": null,\r\n \"kenmerken\": [],\r\n \"archiefnominatie\": null,\r\n \"archiefstatus\": \"nog_te_archiveren\",\r\n \"archiefactiedatum\": null,\r\n \"opdrachtgevendeOrganisatie\": null,\r\n \"processobjectaard\": null,\r\n \"startdatumBewaartermijn\": null,\r\n \"processobject\": null\r\n}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "e04ae5fe-d9db-464d-9019-d2278d911255", + "type": "text/javascript", + "packages": {}, + "exec": [ + "pm.test(\"Zaak aanmaken met ongeldige communicatiekanaal url geeft 400\", function() {", + " pm.response.to.have.status(400);", + " ", + " // Verify that the 400 is returned for the correct reason", + " var error = pm.response.json()[\"invalidParams\"][0];", + " pm.expect(error.name).to.be.equal(\"communicatiekanaal\");", + " pm.expect(error.code).to.be.equal(\"bad-url\");", + "});", + "", + "// If the test failed and the Zaak was created, delete it", + "if(pm.response.code == 201) {", + " pm.environment.set(\"created_zaak_url\", pm.response.json().url);", + "", + "}" + ], + "_lastExecutionId": "24b2ad37-1960-47a1-9800-49a21b8f20e4" + } + }, + { + "listen": "prerequest", + "script": { + "id": "dc4c5af0-b881-4eba-9d3e-b076e3a1c3c7", + "type": "text/javascript", + "packages": {}, + "exec": [ + "" + ], + "_lastExecutionId": "bb62b746-ccb4-4790-94bf-113a48ff0040" + } + } + ] + }, + "request": { + "url": { + "protocol": "http", + "port": "8080", + "path": [ + "index.php", + "apps", + "procest", + "api", + "zgw", + "zaken", + "v1", + "zaken" + ], + "host": [ + "localhost" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Accept-Crs", + "value": "EPSG:4326" + }, + { + "key": "Content-Crs", + "value": "EPSG:4326" + }, + { + "key": "Authorization", + "value": "Bearer eyJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJwcm9jZXN0LWFkbWluIiwiY2xpZW50X2lkIjoicHJvY2VzdC1hZG1pbiIsImlhdCI6IjE3NzMxNDUxNzMiLCJ1c2VyX2lkIjoicHJvY2VzdC1hZG1pbiIsInVzZXJfcmVwcmVzZW50YXRpb24iOiIifQ.IVedO3ZdiSAWKhyvvHple2uEII-I-KJHcVCmvVzYFlc", + "system": true + }, + { + "key": "User-Agent", + "value": "PostmanRuntime/7.39.1", + "system": true + }, + { + "key": "Accept", + "value": "*/*", + "system": true + }, + { + "key": "Cache-Control", + "value": "no-cache", + "system": true + }, + { + "key": "Postman-Token", + "value": "4fe25a62-71cd-45e1-b93b-4b7a5535942e", + "system": true + }, + { + "key": "Host", + "value": "localhost:8080", + "system": true + }, + { + "key": "Accept-Encoding", + "value": "gzip, deflate, br", + "system": true + }, + { + "key": "Connection", + "value": "keep-alive", + "system": true + }, + { + "key": "Content-Length", + "value": "1855", + "system": true + }, + { + "key": "Cookie", + "value": "ocvp3112b4wg=5ea7c515de4013652f42e26ea577ca39; oc_sessionPassphrase=LBNdKxRzA0iqoULIruNxDDh2BK3O%2BrCIU8aUmiUcOFvy5Xw1YfjwQNlmBW2IkGwJYtxXh9%2BwDN6vYuGNX07tXzkBtjQJUWTGdzf8AIOUIVxVx5DfyWAQZ7nmYmQv6XSE; nc_sameSiteCookielax=true; nc_sameSiteCookiestrict=true", + "system": true + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\r\n \"url\": \"https://zaken.spt-rx-services.nl/api/v1/zaken/cba40feb-2b38-4490-b12d-84a39e8df361\",\r\n \"uuid\": \"cba40feb-2b38-4490-b12d-84a39e8df361\",\r\n \"bronorganisatie\": \"000000000\",\r\n \"omschrijving\": \"string\",\r\n \"toelichting\": \"string\",\r\n \"zaaktype\": \"http://localhost:8080/index.php/apps/procest/api/zgw/catalogi/v1/zaaktypen/619dc3e5-52f1-4294-a569-f21d16f44879\",\r\n \"registratiedatum\": \"2019-04-09\",\r\n \"verantwoordelijkeOrganisatie\": \"000000000\",\r\n \"startdatum\": \"2019-04-09\",\r\n \"einddatum\": null,\r\n \"einddatumGepland\": \"2019-04-20\",\r\n \"uiterlijkeEinddatumAfdoening\": \"2019-04-09\",\r\n \"publicatiedatum\": \"2019-04-09\",\r\n \"communicatiekanaal\": \"https://referentielijsten.roxit.nl/api/v1/communicatiekanalen/2b757868-45c2-42ca-b637-b63ddc87beb4xxx\",\r\n \"productenOfDiensten\": [],\r\n \"vertrouwelijkheidaanduiding\": \"geheim\",\r\n \"betalingsindicatie\": \"geheel\",\r\n \"betalingsindicatieWeergave\": null,\r\n \"laatsteBetaaldatum\": \"2019-01-01T00:00:00Z\",\r\n \"zaakgeometrie\": {\r\n \"type\": \"Point\",\r\n \"coordinates\": [\r\n 53.0,\r\n 5.0\r\n ]\r\n },\r\n \"verlenging\": null,\r\n \"opschorting\": {\r\n \"indicatie\": true,\r\n \"reden\": \"string\"\r\n },\r\n \"selectielijstklasse\": \"https://referentielijsten.roxit.nl/api/v1/resultaten/0fe71ce3-b1e1-48eb-9070-be2756fc71b5\",\r\n \"hoofdzaak\": null,\r\n \"deelzaken\": [],\r\n \"relevanteAndereZaken\": [],\r\n \"eigenschappen\": [],\r\n \"rollen\": [],\r\n \"status\": null,\r\n \"zaakinformatieobjecten\": [],\r\n \"zaakobjecten\": [],\r\n \"resultaat\": null,\r\n \"kenmerken\": [],\r\n \"archiefnominatie\": null,\r\n \"archiefstatus\": \"nog_te_archiveren\",\r\n \"archiefactiedatum\": null,\r\n \"opdrachtgevendeOrganisatie\": null,\r\n \"processobjectaard\": null,\r\n \"startdatumBewaartermijn\": null,\r\n \"processobject\": null\r\n}" + }, + "auth": { + "type": "jwt", + "jwt": [ + { + "type": "string", + "value": "{\r\n \"iss\": \"procest-admin\",\r\n \"client_id\": \"procest-admin\",\r\n \"iat\": \"1773145173\",\r\n \"user_id\": \"procest-admin\",\r\n \"user_representation\": \"\"\r\n}", + "key": "payload" + }, + { + "type": "string", + "value": "procest-admin-secret-key-for-testing", + "key": "secret" + }, + { + "type": "string", + "value": "HS256", + "key": "algorithm" + }, + { + "type": "boolean", + "value": false, + "key": "isSecretBase64Encoded" + }, + { + "type": "string", + "value": "header", + "key": "addTokenTo" + }, + { + "type": "string", + "value": "Bearer", + "key": "headerPrefix" + }, + { + "type": "string", + "value": "token", + "key": "queryParamKey" + }, + { + "type": "string", + "value": "{}", + "key": "header" + } + ] + } + }, + "response": { + "id": "d72b54f8-46ba-469c-800f-fc31fccb471a", + "status": "Bad request", + "code": 400, + "header": [ + { + "key": "Date", + "value": "Tue, 10 Mar 2026 12:19:32 GMT" + }, + { + "key": "Server", + "value": "Apache/2.4.66 (Debian)" + }, + { + "key": "X-Content-Type-Options", + "value": "nosniff" + }, + { + "key": "X-Frame-Options", + "value": "SAMEORIGIN" + }, + { + "key": "X-Permitted-Cross-Domain-Policies", + "value": "none" + }, + { + "key": "X-Robots-Tag", + "value": "noindex, nofollow" + }, + { + "key": "Referrer-Policy", + "value": "no-referrer" + }, + { + "key": "X-Powered-By", + "value": "PHP/8.3.30" + }, + { + "key": "Content-Security-Policy", + "value": "default-src 'none';base-uri 'none';manifest-src 'self';frame-ancestors 'none'" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=5ea7c515de4013652f42e26ea577ca39; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=5ea7c515de4013652f42e26ea577ca39; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=5ea7c515de4013652f42e26ea577ca39; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=5ea7c515de4013652f42e26ea577ca39; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=5ea7c515de4013652f42e26ea577ca39; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=2d8e48480863201caf51e3a38b5c595a; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=2d8e48480863201caf51e3a38b5c595a; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=2d8e48480863201caf51e3a38b5c595a; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=2d8e48480863201caf51e3a38b5c595a; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=2d8e48480863201caf51e3a38b5c595a; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "X-Request-Id", + "value": "MboXYDsxS2KriFHS8GfB" + }, + { + "key": "Cache-Control", + "value": "no-cache, no-store, must-revalidate" + }, + { + "key": "Feature-Policy", + "value": "autoplay 'none';camera 'none';fullscreen 'none';geolocation 'none';microphone 'none';payment 'none'" + }, + { + "key": "X-User-Id", + "value": "admin" + }, + { + "key": "Content-Length", + "value": "166" + }, + { + "key": "Connection", + "value": "close" + }, + { + "key": "Content-Type", + "value": "application/json; charset=utf-8" + } + ], + "stream": { + "type": "Buffer", + "data": [ + 123, + 34, + 100, + 101, + 116, + 97, + 105, + 108, + 34, + 58, + 34, + 68, + 101, + 32, + 99, + 111, + 109, + 109, + 117, + 110, + 105, + 99, + 97, + 116, + 105, + 101, + 107, + 97, + 110, + 97, + 97, + 108, + 32, + 85, + 82, + 76, + 32, + 105, + 115, + 32, + 111, + 110, + 103, + 101, + 108, + 100, + 105, + 103, + 46, + 34, + 44, + 34, + 105, + 110, + 118, + 97, + 108, + 105, + 100, + 80, + 97, + 114, + 97, + 109, + 115, + 34, + 58, + 91, + 123, + 34, + 110, + 97, + 109, + 101, + 34, + 58, + 34, + 99, + 111, + 109, + 109, + 117, + 110, + 105, + 99, + 97, + 116, + 105, + 101, + 107, + 97, + 110, + 97, + 97, + 108, + 34, + 44, + 34, + 99, + 111, + 100, + 101, + 34, + 58, + 34, + 98, + 97, + 100, + 45, + 117, + 114, + 108, + 34, + 44, + 34, + 114, + 101, + 97, + 115, + 111, + 110, + 34, + 58, + 34, + 68, + 101, + 32, + 99, + 111, + 109, + 109, + 117, + 110, + 105, + 99, + 97, + 116, + 105, + 101, + 107, + 97, + 110, + 97, + 97, + 108, + 32, + 85, + 82, + 76, + 32, + 105, + 115, + 32, + 111, + 110, + 103, + 101, + 108, + 100, + 105, + 103, + 46, + 34, + 125, + 93, + 125 + ] + }, + "cookie": [], + "responseTime": 110, + "responseSize": 166 + }, + "id": "4ee8b7d4-c335-4f56-9405-2c7de1b9a658", + "assertions": [ + { + "assertion": "Zaak aanmaken met ongeldige communicatiekanaal url geeft 400", + "skipped": false + } + ] + }, + { + "cursor": { + "ref": "20c6393d-b58d-4967-a177-57a2f3aa26da", + "length": 313, + "cycles": 1, + "position": 131, + "iteration": 0, + "httpRequestId": "715dc2a3-2d4a-4a1e-b076-02851f541287" + }, + "item": { + "id": "e0a80c95-0d27-4478-8cef-26bae99cec9e", + "name": "(zrc-010b) Valideren communicatiekanaal url bij bijwerken Zaak", + "request": { + "url": { + "host": [ + "{{zaak_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Accept-Crs", + "value": "EPSG:4326" + }, + { + "key": "Content-Crs", + "value": "EPSG:4326" + } + ], + "method": "PUT", + "body": { + "mode": "raw", + "raw": "{\r\n \"url\": \"https://zaken.spt-rx-services.nl/api/v1/zaken/cba40feb-2b38-4490-b12d-84a39e8df361\",\r\n \"uuid\": \"cba40feb-2b38-4490-b12d-84a39e8df361\",\r\n \"bronorganisatie\": \"000000000\",\r\n \"omschrijving\": \"string\",\r\n \"toelichting\": \"string\",\r\n \"zaaktype\": \"{{zaaktype_url}}\",\r\n \"registratiedatum\": \"2019-04-09\",\r\n \"verantwoordelijkeOrganisatie\": \"000000000\",\r\n \"startdatum\": \"2019-04-09\",\r\n \"einddatum\": null,\r\n \"einddatumGepland\": \"2019-04-20\",\r\n \"uiterlijkeEinddatumAfdoening\": \"2019-04-09\",\r\n \"publicatiedatum\": \"2019-04-09\",\r\n \"communicatiekanaal\": \"https://referentielijsten.roxit.nl/api/v1/communicatiekanalen/2b757868-45c2-42ca-b637-b63ddc87beb4xxx\",\r\n \"productenOfDiensten\": [],\r\n \"vertrouwelijkheidaanduiding\": \"geheim\",\r\n \"betalingsindicatie\": \"geheel\",\r\n \"betalingsindicatieWeergave\": null,\r\n \"laatsteBetaaldatum\": \"2019-01-01T00:00:00Z\",\r\n \"zaakgeometrie\": {\r\n \"type\": \"Point\",\r\n \"coordinates\": [\r\n 53.0,\r\n 5.0\r\n ]\r\n },\r\n \"verlenging\": null,\r\n \"opschorting\": {\r\n \"indicatie\": true,\r\n \"reden\": \"string\"\r\n },\r\n \"selectielijstklasse\": \"https://referentielijsten.roxit.nl/api/v1/resultaten/0fe71ce3-b1e1-48eb-9070-be2756fc71b5xxx\",\r\n \"hoofdzaak\": null,\r\n \"deelzaken\": [],\r\n \"relevanteAndereZaken\": [],\r\n \"eigenschappen\": [],\r\n \"rollen\": [],\r\n \"status\": null,\r\n \"zaakinformatieobjecten\": [],\r\n \"zaakobjecten\": [],\r\n \"resultaat\": null,\r\n \"kenmerken\": [],\r\n \"archiefnominatie\": null,\r\n \"archiefstatus\": \"nog_te_archiveren\",\r\n \"archiefactiedatum\": null,\r\n \"opdrachtgevendeOrganisatie\": null,\r\n \"processobjectaard\": null,\r\n \"startdatumBewaartermijn\": null,\r\n \"processobject\": null\r\n}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "4f30a0fb-9afa-4aed-8916-0497d562fa1d", + "type": "text/javascript", + "packages": {}, + "exec": [ + "pm.test(\"Zaak bijwerken met ongeldige communicatiekanaal url geeft 400\", function() {", + " pm.response.to.have.status(400);", + " ", + " // Verify that the 400 is returned for the correct reason", + " var error = pm.response.json()[\"invalidParams\"][0];", + " pm.expect(error.name).to.be.equal(\"communicatiekanaal\");", + " pm.expect(error.code).to.be.equal(\"bad-url\");", + "});" + ], + "_lastExecutionId": "d20c24aa-4b65-4cb0-b2ae-67fb7b2ba61b" + } + }, + { + "listen": "prerequest", + "script": { + "id": "0cdd857e-bed0-471d-b9ba-7171dc61422c", + "type": "text/javascript", + "packages": {}, + "exec": [ + "" + ], + "_lastExecutionId": "9429b6ab-de4e-40b9-a513-33afacbb0f75" + } + } + ] + }, + "request": { + "url": { + "protocol": "http", + "port": "8080", + "path": [ + "index.php", + "apps", + "procest", + "api", + "zgw", + "zaken", + "v1", + "zaken", + "1ea85620-912a-4a68-b62e-65570c1dfdfa" + ], + "host": [ + "localhost" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Accept-Crs", + "value": "EPSG:4326" + }, + { + "key": "Content-Crs", + "value": "EPSG:4326" + }, + { + "key": "Authorization", + "value": "Bearer eyJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJwcm9jZXN0LWFkbWluIiwiY2xpZW50X2lkIjoicHJvY2VzdC1hZG1pbiIsImlhdCI6IjE3NzMxNDUxNzMiLCJ1c2VyX2lkIjoicHJvY2VzdC1hZG1pbiIsInVzZXJfcmVwcmVzZW50YXRpb24iOiIifQ.IVedO3ZdiSAWKhyvvHple2uEII-I-KJHcVCmvVzYFlc", + "system": true + }, + { + "key": "User-Agent", + "value": "PostmanRuntime/7.39.1", + "system": true + }, + { + "key": "Accept", + "value": "*/*", + "system": true + }, + { + "key": "Cache-Control", + "value": "no-cache", + "system": true + }, + { + "key": "Postman-Token", + "value": "666c2566-c45d-413b-92ba-7febc9cefbf7", + "system": true + }, + { + "key": "Host", + "value": "localhost:8080", + "system": true + }, + { + "key": "Accept-Encoding", + "value": "gzip, deflate, br", + "system": true + }, + { + "key": "Connection", + "value": "keep-alive", + "system": true + }, + { + "key": "Content-Length", + "value": "1858", + "system": true + }, + { + "key": "Cookie", + "value": "ocvp3112b4wg=2d8e48480863201caf51e3a38b5c595a; oc_sessionPassphrase=LBNdKxRzA0iqoULIruNxDDh2BK3O%2BrCIU8aUmiUcOFvy5Xw1YfjwQNlmBW2IkGwJYtxXh9%2BwDN6vYuGNX07tXzkBtjQJUWTGdzf8AIOUIVxVx5DfyWAQZ7nmYmQv6XSE; nc_sameSiteCookielax=true; nc_sameSiteCookiestrict=true", + "system": true + } + ], + "method": "PUT", + "body": { + "mode": "raw", + "raw": "{\r\n \"url\": \"https://zaken.spt-rx-services.nl/api/v1/zaken/cba40feb-2b38-4490-b12d-84a39e8df361\",\r\n \"uuid\": \"cba40feb-2b38-4490-b12d-84a39e8df361\",\r\n \"bronorganisatie\": \"000000000\",\r\n \"omschrijving\": \"string\",\r\n \"toelichting\": \"string\",\r\n \"zaaktype\": \"http://localhost:8080/index.php/apps/procest/api/zgw/catalogi/v1/zaaktypen/619dc3e5-52f1-4294-a569-f21d16f44879\",\r\n \"registratiedatum\": \"2019-04-09\",\r\n \"verantwoordelijkeOrganisatie\": \"000000000\",\r\n \"startdatum\": \"2019-04-09\",\r\n \"einddatum\": null,\r\n \"einddatumGepland\": \"2019-04-20\",\r\n \"uiterlijkeEinddatumAfdoening\": \"2019-04-09\",\r\n \"publicatiedatum\": \"2019-04-09\",\r\n \"communicatiekanaal\": \"https://referentielijsten.roxit.nl/api/v1/communicatiekanalen/2b757868-45c2-42ca-b637-b63ddc87beb4xxx\",\r\n \"productenOfDiensten\": [],\r\n \"vertrouwelijkheidaanduiding\": \"geheim\",\r\n \"betalingsindicatie\": \"geheel\",\r\n \"betalingsindicatieWeergave\": null,\r\n \"laatsteBetaaldatum\": \"2019-01-01T00:00:00Z\",\r\n \"zaakgeometrie\": {\r\n \"type\": \"Point\",\r\n \"coordinates\": [\r\n 53.0,\r\n 5.0\r\n ]\r\n },\r\n \"verlenging\": null,\r\n \"opschorting\": {\r\n \"indicatie\": true,\r\n \"reden\": \"string\"\r\n },\r\n \"selectielijstklasse\": \"https://referentielijsten.roxit.nl/api/v1/resultaten/0fe71ce3-b1e1-48eb-9070-be2756fc71b5xxx\",\r\n \"hoofdzaak\": null,\r\n \"deelzaken\": [],\r\n \"relevanteAndereZaken\": [],\r\n \"eigenschappen\": [],\r\n \"rollen\": [],\r\n \"status\": null,\r\n \"zaakinformatieobjecten\": [],\r\n \"zaakobjecten\": [],\r\n \"resultaat\": null,\r\n \"kenmerken\": [],\r\n \"archiefnominatie\": null,\r\n \"archiefstatus\": \"nog_te_archiveren\",\r\n \"archiefactiedatum\": null,\r\n \"opdrachtgevendeOrganisatie\": null,\r\n \"processobjectaard\": null,\r\n \"startdatumBewaartermijn\": null,\r\n \"processobject\": null\r\n}" + }, + "auth": { + "type": "jwt", + "jwt": [ + { + "type": "string", + "value": "{\r\n \"iss\": \"procest-admin\",\r\n \"client_id\": \"procest-admin\",\r\n \"iat\": \"1773145173\",\r\n \"user_id\": \"procest-admin\",\r\n \"user_representation\": \"\"\r\n}", + "key": "payload" + }, + { + "type": "string", + "value": "procest-admin-secret-key-for-testing", + "key": "secret" + }, + { + "type": "string", + "value": "HS256", + "key": "algorithm" + }, + { + "type": "boolean", + "value": false, + "key": "isSecretBase64Encoded" + }, + { + "type": "string", + "value": "header", + "key": "addTokenTo" + }, + { + "type": "string", + "value": "Bearer", + "key": "headerPrefix" + }, + { + "type": "string", + "value": "token", + "key": "queryParamKey" + }, + { + "type": "string", + "value": "{}", + "key": "header" + } + ] + } + }, + "response": { + "id": "0f397547-cc60-4bdf-bf98-e701b6abf8d4", + "status": "Bad request", + "code": 400, + "header": [ + { + "key": "Date", + "value": "Tue, 10 Mar 2026 12:19:32 GMT" + }, + { + "key": "Server", + "value": "Apache/2.4.66 (Debian)" + }, + { + "key": "X-Content-Type-Options", + "value": "nosniff" + }, + { + "key": "X-Frame-Options", + "value": "SAMEORIGIN" + }, + { + "key": "X-Permitted-Cross-Domain-Policies", + "value": "none" + }, + { + "key": "X-Robots-Tag", + "value": "noindex, nofollow" + }, + { + "key": "Referrer-Policy", + "value": "no-referrer" + }, + { + "key": "X-Powered-By", + "value": "PHP/8.3.30" + }, + { + "key": "Content-Security-Policy", + "value": "default-src 'none';base-uri 'none';manifest-src 'self';frame-ancestors 'none'" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=2d8e48480863201caf51e3a38b5c595a; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=2d8e48480863201caf51e3a38b5c595a; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=2d8e48480863201caf51e3a38b5c595a; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=2d8e48480863201caf51e3a38b5c595a; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=2d8e48480863201caf51e3a38b5c595a; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=b04dbe4cc6f88944880b08d4d7bb5781; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=b04dbe4cc6f88944880b08d4d7bb5781; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=b04dbe4cc6f88944880b08d4d7bb5781; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "X-Request-Id", + "value": "ACsWMauJ5ZbJX0XUPeYM" + }, + { + "key": "Cache-Control", + "value": "no-cache, no-store, must-revalidate" + }, + { + "key": "Feature-Policy", + "value": "autoplay 'none';camera 'none';fullscreen 'none';geolocation 'none';microphone 'none';payment 'none'" + }, + { + "key": "X-User-Id", + "value": "admin" + }, + { + "key": "Content-Length", + "value": "166" + }, + { + "key": "Connection", + "value": "close" + }, + { + "key": "Content-Type", + "value": "application/json; charset=utf-8" + } + ], + "stream": { + "type": "Buffer", + "data": [ + 123, + 34, + 100, + 101, + 116, + 97, + 105, + 108, + 34, + 58, + 34, + 68, + 101, + 32, + 99, + 111, + 109, + 109, + 117, + 110, + 105, + 99, + 97, + 116, + 105, + 101, + 107, + 97, + 110, + 97, + 97, + 108, + 32, + 85, + 82, + 76, + 32, + 105, + 115, + 32, + 111, + 110, + 103, + 101, + 108, + 100, + 105, + 103, + 46, + 34, + 44, + 34, + 105, + 110, + 118, + 97, + 108, + 105, + 100, + 80, + 97, + 114, + 97, + 109, + 115, + 34, + 58, + 91, + 123, + 34, + 110, + 97, + 109, + 101, + 34, + 58, + 34, + 99, + 111, + 109, + 109, + 117, + 110, + 105, + 99, + 97, + 116, + 105, + 101, + 107, + 97, + 110, + 97, + 97, + 108, + 34, + 44, + 34, + 99, + 111, + 100, + 101, + 34, + 58, + 34, + 98, + 97, + 100, + 45, + 117, + 114, + 108, + 34, + 44, + 34, + 114, + 101, + 97, + 115, + 111, + 110, + 34, + 58, + 34, + 68, + 101, + 32, + 99, + 111, + 109, + 109, + 117, + 110, + 105, + 99, + 97, + 116, + 105, + 101, + 107, + 97, + 110, + 97, + 97, + 108, + 32, + 85, + 82, + 76, + 32, + 105, + 115, + 32, + 111, + 110, + 103, + 101, + 108, + 100, + 105, + 103, + 46, + 34, + 125, + 93, + 125 + ] + }, + "cookie": [], + "responseTime": 84, + "responseSize": 166 + }, + "id": "e0a80c95-0d27-4478-8cef-26bae99cec9e", + "assertions": [ + { + "assertion": "Zaak bijwerken met ongeldige communicatiekanaal url geeft 400", + "skipped": false + } + ] + }, + { + "cursor": { + "ref": "4afc8ac5-3e71-4a96-9965-03382995a209", + "length": 313, + "cycles": 1, + "position": 132, + "iteration": 0, + "httpRequestId": "55795509-4de3-4fca-a70e-53008535c8c3" + }, + "item": { + "id": "9373e246-24f2-4b65-9ced-9a474f89031a", + "name": "(zrc-010c) Valideren communicatiekanaal url bij deels bijwerken Zaak", + "request": { + "url": { + "host": [ + "{{zaak_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Accept-Crs", + "value": "EPSG:4326" + }, + { + "key": "Content-Crs", + "value": "EPSG:4326" + } + ], + "method": "PATCH", + "body": { + "mode": "raw", + "raw": "{\n\t\"communicatiekanaal\": \"https://referentielijsten.roxit.nl/api/v1/communicatiekanalen/2b757868-45c2-42ca-b637-b63ddc87beb4zzz\"\n}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "2fd2c97d-29da-4774-8706-28216e7771b3", + "type": "text/javascript", + "packages": {}, + "exec": [ + "pm.test(\"Zaak deels bijwerken met ongeldige communicatiekanaal url geeft 400\", function() {", + " pm.response.to.have.status(400);", + " ", + " // Verify that the 400 is returned for the correct reason", + " var error = pm.response.json()[\"invalidParams\"][0];", + " pm.expect(error.name).to.be.equal(\"communicatiekanaal\");", + " pm.expect(error.code).to.be.equal(\"bad-url\");", + "});" + ], + "_lastExecutionId": "a7106389-b20c-4592-a67e-fbe46a76b01c" + } + }, + { + "listen": "prerequest", + "script": { + "id": "f64ba265-480f-454a-a0d2-5da841bc5fe7", + "type": "text/javascript", + "packages": {}, + "exec": [ + "" + ], + "_lastExecutionId": "cf481714-c2be-4244-ae6d-a93bf6571337" + } + } + ] + }, + "request": { + "url": { + "protocol": "http", + "port": "8080", + "path": [ + "index.php", + "apps", + "procest", + "api", + "zgw", + "zaken", + "v1", + "zaken", + "1ea85620-912a-4a68-b62e-65570c1dfdfa" + ], + "host": [ + "localhost" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Accept-Crs", + "value": "EPSG:4326" + }, + { + "key": "Content-Crs", + "value": "EPSG:4326" + }, + { + "key": "Authorization", + "value": "Bearer eyJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJwcm9jZXN0LWFkbWluIiwiY2xpZW50X2lkIjoicHJvY2VzdC1hZG1pbiIsImlhdCI6IjE3NzMxNDUxNzMiLCJ1c2VyX2lkIjoicHJvY2VzdC1hZG1pbiIsInVzZXJfcmVwcmVzZW50YXRpb24iOiIifQ.IVedO3ZdiSAWKhyvvHple2uEII-I-KJHcVCmvVzYFlc", + "system": true + }, + { + "key": "User-Agent", + "value": "PostmanRuntime/7.39.1", + "system": true + }, + { + "key": "Accept", + "value": "*/*", + "system": true + }, + { + "key": "Cache-Control", + "value": "no-cache", + "system": true + }, + { + "key": "Postman-Token", + "value": "04214135-5ee4-4458-8a23-965bdbb04667", + "system": true + }, + { + "key": "Host", + "value": "localhost:8080", + "system": true + }, + { + "key": "Accept-Encoding", + "value": "gzip, deflate, br", + "system": true + }, + { + "key": "Connection", + "value": "keep-alive", + "system": true + }, + { + "key": "Content-Length", + "value": "130", + "system": true + }, + { + "key": "Cookie", + "value": "ocvp3112b4wg=b04dbe4cc6f88944880b08d4d7bb5781; oc_sessionPassphrase=LBNdKxRzA0iqoULIruNxDDh2BK3O%2BrCIU8aUmiUcOFvy5Xw1YfjwQNlmBW2IkGwJYtxXh9%2BwDN6vYuGNX07tXzkBtjQJUWTGdzf8AIOUIVxVx5DfyWAQZ7nmYmQv6XSE; nc_sameSiteCookielax=true; nc_sameSiteCookiestrict=true", + "system": true + } + ], + "method": "PATCH", + "body": { + "mode": "raw", + "raw": "{\n\t\"communicatiekanaal\": \"https://referentielijsten.roxit.nl/api/v1/communicatiekanalen/2b757868-45c2-42ca-b637-b63ddc87beb4zzz\"\n}" + }, + "auth": { + "type": "jwt", + "jwt": [ + { + "type": "string", + "value": "{\r\n \"iss\": \"procest-admin\",\r\n \"client_id\": \"procest-admin\",\r\n \"iat\": \"1773145173\",\r\n \"user_id\": \"procest-admin\",\r\n \"user_representation\": \"\"\r\n}", + "key": "payload" + }, + { + "type": "string", + "value": "procest-admin-secret-key-for-testing", + "key": "secret" + }, + { + "type": "string", + "value": "HS256", + "key": "algorithm" + }, + { + "type": "boolean", + "value": false, + "key": "isSecretBase64Encoded" + }, + { + "type": "string", + "value": "header", + "key": "addTokenTo" + }, + { + "type": "string", + "value": "Bearer", + "key": "headerPrefix" + }, + { + "type": "string", + "value": "token", + "key": "queryParamKey" + }, + { + "type": "string", + "value": "{}", + "key": "header" + } + ] + } + }, + "response": { + "id": "6f24ea66-f39e-4501-9355-b2b9e1dce411", + "status": "Bad request", + "code": 400, + "header": [ + { + "key": "Date", + "value": "Tue, 10 Mar 2026 12:19:33 GMT" + }, + { + "key": "Server", + "value": "Apache/2.4.66 (Debian)" + }, + { + "key": "X-Content-Type-Options", + "value": "nosniff" + }, + { + "key": "X-Frame-Options", + "value": "SAMEORIGIN" + }, + { + "key": "X-Permitted-Cross-Domain-Policies", + "value": "none" + }, + { + "key": "X-Robots-Tag", + "value": "noindex, nofollow" + }, + { + "key": "Referrer-Policy", + "value": "no-referrer" + }, + { + "key": "X-Powered-By", + "value": "PHP/8.3.30" + }, + { + "key": "Content-Security-Policy", + "value": "default-src 'none';base-uri 'none';manifest-src 'self';frame-ancestors 'none'" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=b04dbe4cc6f88944880b08d4d7bb5781; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=b04dbe4cc6f88944880b08d4d7bb5781; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=b04dbe4cc6f88944880b08d4d7bb5781; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=b04dbe4cc6f88944880b08d4d7bb5781; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=b04dbe4cc6f88944880b08d4d7bb5781; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=0df93626d8d4be6e1b60569434218b34; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=0df93626d8d4be6e1b60569434218b34; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=0df93626d8d4be6e1b60569434218b34; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "X-Request-Id", + "value": "WvPBZj1bvky3CGZi9kA5" + }, + { + "key": "Cache-Control", + "value": "no-cache, no-store, must-revalidate" + }, + { + "key": "Feature-Policy", + "value": "autoplay 'none';camera 'none';fullscreen 'none';geolocation 'none';microphone 'none';payment 'none'" + }, + { + "key": "X-User-Id", + "value": "admin" + }, + { + "key": "Content-Length", + "value": "166" + }, + { + "key": "Connection", + "value": "close" + }, + { + "key": "Content-Type", + "value": "application/json; charset=utf-8" + } + ], + "stream": { + "type": "Buffer", + "data": [ + 123, + 34, + 100, + 101, + 116, + 97, + 105, + 108, + 34, + 58, + 34, + 68, + 101, + 32, + 99, + 111, + 109, + 109, + 117, + 110, + 105, + 99, + 97, + 116, + 105, + 101, + 107, + 97, + 110, + 97, + 97, + 108, + 32, + 85, + 82, + 76, + 32, + 105, + 115, + 32, + 111, + 110, + 103, + 101, + 108, + 100, + 105, + 103, + 46, + 34, + 44, + 34, + 105, + 110, + 118, + 97, + 108, + 105, + 100, + 80, + 97, + 114, + 97, + 109, + 115, + 34, + 58, + 91, + 123, + 34, + 110, + 97, + 109, + 101, + 34, + 58, + 34, + 99, + 111, + 109, + 109, + 117, + 110, + 105, + 99, + 97, + 116, + 105, + 101, + 107, + 97, + 110, + 97, + 97, + 108, + 34, + 44, + 34, + 99, + 111, + 100, + 101, + 34, + 58, + 34, + 98, + 97, + 100, + 45, + 117, + 114, + 108, + 34, + 44, + 34, + 114, + 101, + 97, + 115, + 111, + 110, + 34, + 58, + 34, + 68, + 101, + 32, + 99, + 111, + 109, + 109, + 117, + 110, + 105, + 99, + 97, + 116, + 105, + 101, + 107, + 97, + 110, + 97, + 97, + 108, + 32, + 85, + 82, + 76, + 32, + 105, + 115, + 32, + 111, + 110, + 103, + 101, + 108, + 100, + 105, + 103, + 46, + 34, + 125, + 93, + 125 + ] + }, + "cookie": [], + "responseTime": 87, + "responseSize": 166 + }, + "id": "9373e246-24f2-4b65-9ced-9a474f89031a", + "assertions": [ + { + "assertion": "Zaak deels bijwerken met ongeldige communicatiekanaal url geeft 400", + "skipped": false + } + ] + }, + { + "cursor": { + "ref": "067c8fa4-cb6f-4a8f-9480-148bae8c443d", + "length": 313, + "cycles": 1, + "position": 133, + "iteration": 0, + "httpRequestId": "531b975a-b7e9-445e-b8f9-9c93dc63c6bf" + }, + "item": { + "id": "5583f4ee-a557-46fa-91d7-cba15240a443", + "name": "(zrc-010d) Valideren communicatiekanaal-resource bij aanmaken Zaak", + "request": { + "url": { + "path": [ + "zaken" + ], + "host": [ + "{{zrc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Content-Crs", + "value": "EPSG:4326" + }, + { + "key": "Accept-Crs", + "value": "EPSG:4326" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\r\n \"url\": \"https://zaken.spt-rx-services.nl/api/v1/zaken/cba40feb-2b38-4490-b12d-84a39e8df361\",\r\n \"uuid\": \"cba40feb-2b38-4490-b12d-84a39e8df361\",\r\n \"bronorganisatie\": \"000000000\",\r\n \"omschrijving\": \"string\",\r\n \"toelichting\": \"string\",\r\n \"zaaktype\": \"{{zaaktype_url}}\",\r\n \"registratiedatum\": \"2019-04-09\",\r\n \"verantwoordelijkeOrganisatie\": \"000000000\",\r\n \"startdatum\": \"2019-04-09\",\r\n \"einddatum\": null,\r\n \"einddatumGepland\": \"2019-04-20\",\r\n \"uiterlijkeEinddatumAfdoening\": \"2019-04-09\",\r\n \"publicatiedatum\": \"2019-04-09\",\r\n \"communicatiekanaal\": \"https://referentielijsten.roxit.nl/api/v1/communicatiekanalen\",\r\n \"productenOfDiensten\": [],\r\n \"vertrouwelijkheidaanduiding\": \"geheim\",\r\n \"betalingsindicatie\": \"geheel\",\r\n \"betalingsindicatieWeergave\": null,\r\n \"laatsteBetaaldatum\": \"2019-01-01T00:00:00Z\",\r\n \"zaakgeometrie\": {\r\n \"type\": \"Point\",\r\n \"coordinates\": [\r\n 53.0,\r\n 5.0\r\n ]\r\n },\r\n \"verlenging\": null,\r\n \"opschorting\": {\r\n \"indicatie\": true,\r\n \"reden\": \"string\"\r\n },\r\n \"selectielijstklasse\": \"https://referentielijsten.roxit.nl/api/v1/resultaten/0fe71ce3-b1e1-48eb-9070-be2756fc71b5\",\r\n \"hoofdzaak\": null,\r\n \"deelzaken\": [],\r\n \"relevanteAndereZaken\": [],\r\n \"eigenschappen\": [],\r\n \"rollen\": [],\r\n \"status\": null,\r\n \"zaakinformatieobjecten\": [],\r\n \"zaakobjecten\": [],\r\n \"resultaat\": null,\r\n \"kenmerken\": [],\r\n \"archiefnominatie\": null,\r\n \"archiefstatus\": \"nog_te_archiveren\",\r\n \"archiefactiedatum\": null,\r\n \"opdrachtgevendeOrganisatie\": null,\r\n \"processobjectaard\": null,\r\n \"startdatumBewaartermijn\": null,\r\n \"processobject\": null\r\n}" + } + }, + "response": [], + "event": [ + { + "listen": "prerequest", + "script": { + "id": "7128bd00-066c-407d-ab17-2edea9ac1d7d", + "type": "text/javascript", + "packages": {}, + "exec": [ + "" + ], + "_lastExecutionId": "e27b3534-350d-4dc4-a66b-4ced780df2a5" + } + }, + { + "listen": "test", + "script": { + "id": "541186bf-d21d-4eac-90dc-4bfa0c590bdc", + "type": "text/javascript", + "packages": {}, + "exec": [ + "pm.test(\"Zaak aanmaken met communicatiekanaal url die niet wijst naar Communicatiekanaal-resource geeft 400\", function() {", + " pm.response.to.have.status(400);", + " ", + " // Verify that the 400 is returned for the correct reason", + " var error = pm.response.json()[\"invalidParams\"][0];", + " pm.expect(error.name).to.be.equal(\"communicatiekanaal\");", + " pm.expect(error.code).to.be.equal(\"invalid-resource\");", + "});", + "", + "// If the test failed and the Zaak was created, delete it", + "if(pm.response.code == 201) {", + " pm.environment.set(\"created_zaak_url\", pm.response.json().url);", + "", + "}" + ], + "_lastExecutionId": "df980f9d-29a8-4b6a-a83b-d739c1fac31c" + } + } + ] + }, + "request": { + "url": { + "protocol": "http", + "port": "8080", + "path": [ + "index.php", + "apps", + "procest", + "api", + "zgw", + "zaken", + "v1", + "zaken" + ], + "host": [ + "localhost" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Content-Crs", + "value": "EPSG:4326" + }, + { + "key": "Accept-Crs", + "value": "EPSG:4326" + }, + { + "key": "Authorization", + "value": "Bearer eyJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJwcm9jZXN0LWFkbWluIiwiY2xpZW50X2lkIjoicHJvY2VzdC1hZG1pbiIsImlhdCI6IjE3NzMxNDUxNzMiLCJ1c2VyX2lkIjoicHJvY2VzdC1hZG1pbiIsInVzZXJfcmVwcmVzZW50YXRpb24iOiIifQ.IVedO3ZdiSAWKhyvvHple2uEII-I-KJHcVCmvVzYFlc", + "system": true + }, + { + "key": "User-Agent", + "value": "PostmanRuntime/7.39.1", + "system": true + }, + { + "key": "Accept", + "value": "*/*", + "system": true + }, + { + "key": "Cache-Control", + "value": "no-cache", + "system": true + }, + { + "key": "Postman-Token", + "value": "de128210-5a6a-458d-a88b-c38625dc2651", + "system": true + }, + { + "key": "Host", + "value": "localhost:8080", + "system": true + }, + { + "key": "Accept-Encoding", + "value": "gzip, deflate, br", + "system": true + }, + { + "key": "Connection", + "value": "keep-alive", + "system": true + }, + { + "key": "Content-Length", + "value": "1815", + "system": true + }, + { + "key": "Cookie", + "value": "ocvp3112b4wg=0df93626d8d4be6e1b60569434218b34; oc_sessionPassphrase=LBNdKxRzA0iqoULIruNxDDh2BK3O%2BrCIU8aUmiUcOFvy5Xw1YfjwQNlmBW2IkGwJYtxXh9%2BwDN6vYuGNX07tXzkBtjQJUWTGdzf8AIOUIVxVx5DfyWAQZ7nmYmQv6XSE; nc_sameSiteCookielax=true; nc_sameSiteCookiestrict=true", + "system": true + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\r\n \"url\": \"https://zaken.spt-rx-services.nl/api/v1/zaken/cba40feb-2b38-4490-b12d-84a39e8df361\",\r\n \"uuid\": \"cba40feb-2b38-4490-b12d-84a39e8df361\",\r\n \"bronorganisatie\": \"000000000\",\r\n \"omschrijving\": \"string\",\r\n \"toelichting\": \"string\",\r\n \"zaaktype\": \"http://localhost:8080/index.php/apps/procest/api/zgw/catalogi/v1/zaaktypen/619dc3e5-52f1-4294-a569-f21d16f44879\",\r\n \"registratiedatum\": \"2019-04-09\",\r\n \"verantwoordelijkeOrganisatie\": \"000000000\",\r\n \"startdatum\": \"2019-04-09\",\r\n \"einddatum\": null,\r\n \"einddatumGepland\": \"2019-04-20\",\r\n \"uiterlijkeEinddatumAfdoening\": \"2019-04-09\",\r\n \"publicatiedatum\": \"2019-04-09\",\r\n \"communicatiekanaal\": \"https://referentielijsten.roxit.nl/api/v1/communicatiekanalen\",\r\n \"productenOfDiensten\": [],\r\n \"vertrouwelijkheidaanduiding\": \"geheim\",\r\n \"betalingsindicatie\": \"geheel\",\r\n \"betalingsindicatieWeergave\": null,\r\n \"laatsteBetaaldatum\": \"2019-01-01T00:00:00Z\",\r\n \"zaakgeometrie\": {\r\n \"type\": \"Point\",\r\n \"coordinates\": [\r\n 53.0,\r\n 5.0\r\n ]\r\n },\r\n \"verlenging\": null,\r\n \"opschorting\": {\r\n \"indicatie\": true,\r\n \"reden\": \"string\"\r\n },\r\n \"selectielijstklasse\": \"https://referentielijsten.roxit.nl/api/v1/resultaten/0fe71ce3-b1e1-48eb-9070-be2756fc71b5\",\r\n \"hoofdzaak\": null,\r\n \"deelzaken\": [],\r\n \"relevanteAndereZaken\": [],\r\n \"eigenschappen\": [],\r\n \"rollen\": [],\r\n \"status\": null,\r\n \"zaakinformatieobjecten\": [],\r\n \"zaakobjecten\": [],\r\n \"resultaat\": null,\r\n \"kenmerken\": [],\r\n \"archiefnominatie\": null,\r\n \"archiefstatus\": \"nog_te_archiveren\",\r\n \"archiefactiedatum\": null,\r\n \"opdrachtgevendeOrganisatie\": null,\r\n \"processobjectaard\": null,\r\n \"startdatumBewaartermijn\": null,\r\n \"processobject\": null\r\n}" + }, + "auth": { + "type": "jwt", + "jwt": [ + { + "type": "string", + "value": "{\r\n \"iss\": \"procest-admin\",\r\n \"client_id\": \"procest-admin\",\r\n \"iat\": \"1773145173\",\r\n \"user_id\": \"procest-admin\",\r\n \"user_representation\": \"\"\r\n}", + "key": "payload" + }, + { + "type": "string", + "value": "procest-admin-secret-key-for-testing", + "key": "secret" + }, + { + "type": "string", + "value": "HS256", + "key": "algorithm" + }, + { + "type": "boolean", + "value": false, + "key": "isSecretBase64Encoded" + }, + { + "type": "string", + "value": "header", + "key": "addTokenTo" + }, + { + "type": "string", + "value": "Bearer", + "key": "headerPrefix" + }, + { + "type": "string", + "value": "token", + "key": "queryParamKey" + }, + { + "type": "string", + "value": "{}", + "key": "header" + } + ] + } + }, + "response": { + "id": "e40590d8-fc18-480d-b910-dc76c5cbfdb6", + "status": "Bad request", + "code": 400, + "header": [ + { + "key": "Date", + "value": "Tue, 10 Mar 2026 12:19:33 GMT" + }, + { + "key": "Server", + "value": "Apache/2.4.66 (Debian)" + }, + { + "key": "X-Content-Type-Options", + "value": "nosniff" + }, + { + "key": "X-Frame-Options", + "value": "SAMEORIGIN" + }, + { + "key": "X-Permitted-Cross-Domain-Policies", + "value": "none" + }, + { + "key": "X-Robots-Tag", + "value": "noindex, nofollow" + }, + { + "key": "Referrer-Policy", + "value": "no-referrer" + }, + { + "key": "X-Powered-By", + "value": "PHP/8.3.30" + }, + { + "key": "Content-Security-Policy", + "value": "default-src 'none';base-uri 'none';manifest-src 'self';frame-ancestors 'none'" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=0df93626d8d4be6e1b60569434218b34; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=0df93626d8d4be6e1b60569434218b34; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=0df93626d8d4be6e1b60569434218b34; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=0df93626d8d4be6e1b60569434218b34; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=0df93626d8d4be6e1b60569434218b34; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=18b0117a0b0efe12c3ba03e2be414693; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=18b0117a0b0efe12c3ba03e2be414693; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=18b0117a0b0efe12c3ba03e2be414693; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=18b0117a0b0efe12c3ba03e2be414693; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=18b0117a0b0efe12c3ba03e2be414693; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "X-Request-Id", + "value": "O72LNaBi65wJgE0ebJ0K" + }, + { + "key": "Cache-Control", + "value": "no-cache, no-store, must-revalidate" + }, + { + "key": "Feature-Policy", + "value": "autoplay 'none';camera 'none';fullscreen 'none';geolocation 'none';microphone 'none';payment 'none'" + }, + { + "key": "X-User-Id", + "value": "admin" + }, + { + "key": "Content-Length", + "value": "175" + }, + { + "key": "Connection", + "value": "close" + }, + { + "key": "Content-Type", + "value": "application/json; charset=utf-8" + } + ], + "stream": { + "type": "Buffer", + "data": [ + 123, + 34, + 100, + 101, + 116, + 97, + 105, + 108, + 34, + 58, + 34, + 68, + 101, + 32, + 99, + 111, + 109, + 109, + 117, + 110, + 105, + 99, + 97, + 116, + 105, + 101, + 107, + 97, + 110, + 97, + 97, + 108, + 32, + 85, + 82, + 76, + 32, + 105, + 115, + 32, + 111, + 110, + 103, + 101, + 108, + 100, + 105, + 103, + 46, + 34, + 44, + 34, + 105, + 110, + 118, + 97, + 108, + 105, + 100, + 80, + 97, + 114, + 97, + 109, + 115, + 34, + 58, + 91, + 123, + 34, + 110, + 97, + 109, + 101, + 34, + 58, + 34, + 99, + 111, + 109, + 109, + 117, + 110, + 105, + 99, + 97, + 116, + 105, + 101, + 107, + 97, + 110, + 97, + 97, + 108, + 34, + 44, + 34, + 99, + 111, + 100, + 101, + 34, + 58, + 34, + 105, + 110, + 118, + 97, + 108, + 105, + 100, + 45, + 114, + 101, + 115, + 111, + 117, + 114, + 99, + 101, + 34, + 44, + 34, + 114, + 101, + 97, + 115, + 111, + 110, + 34, + 58, + 34, + 68, + 101, + 32, + 99, + 111, + 109, + 109, + 117, + 110, + 105, + 99, + 97, + 116, + 105, + 101, + 107, + 97, + 110, + 97, + 97, + 108, + 32, + 85, + 82, + 76, + 32, + 105, + 115, + 32, + 111, + 110, + 103, + 101, + 108, + 100, + 105, + 103, + 46, + 34, + 125, + 93, + 125 + ] + }, + "cookie": [], + "responseTime": 123, + "responseSize": 175 + }, + "id": "5583f4ee-a557-46fa-91d7-cba15240a443", + "assertions": [ + { + "assertion": "Zaak aanmaken met communicatiekanaal url die niet wijst naar Communicatiekanaal-resource geeft 400", + "skipped": false + } + ] + }, + { + "cursor": { + "ref": "83b5128f-bfa4-4a58-9ee5-2e4702036ee5", + "length": 313, + "cycles": 1, + "position": 134, + "iteration": 0, + "httpRequestId": "5e53423a-26a8-4edb-be49-2b29a1bb5977" + }, + "item": { + "id": "160f0794-08d5-4761-9c09-473b86d76f0c", + "name": "(zrc-010e) Valideren communicatiekanaal-resource bij bijwerken Zaak", + "request": { + "url": { + "host": [ + "{{zaak_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Accept-Crs", + "value": "EPSG:4326" + }, + { + "key": "Content-Crs", + "value": "EPSG:4326" + } + ], + "method": "PUT", + "body": { + "mode": "raw", + "raw": "{\r\n \"url\": \"https://zaken.spt-rx-services.nl/api/v1/zaken/cba40feb-2b38-4490-b12d-84a39e8df361\",\r\n \"uuid\": \"cba40feb-2b38-4490-b12d-84a39e8df361\",\r\n \"bronorganisatie\": \"000000000\",\r\n \"omschrijving\": \"string\",\r\n \"toelichting\": \"string\",\r\n \"zaaktype\": \"{{zaaktype_url}}\",\r\n \"registratiedatum\": \"2019-04-09\",\r\n \"verantwoordelijkeOrganisatie\": \"000000000\",\r\n \"startdatum\": \"2019-04-09\",\r\n \"einddatum\": null,\r\n \"einddatumGepland\": \"2019-04-20\",\r\n \"uiterlijkeEinddatumAfdoening\": \"2019-04-09\",\r\n \"publicatiedatum\": \"2019-04-09\",\r\n \"communicatiekanaal\": \"https://referentielijsten.roxit.nl/api/v1/communicatiekanalen\",\r\n \"productenOfDiensten\": [],\r\n \"vertrouwelijkheidaanduiding\": \"geheim\",\r\n \"betalingsindicatie\": \"geheel\",\r\n \"betalingsindicatieWeergave\": null,\r\n \"laatsteBetaaldatum\": \"2019-01-01T00:00:00Z\",\r\n \"zaakgeometrie\": {\r\n \"type\": \"Point\",\r\n \"coordinates\": [\r\n 53.0,\r\n 5.0\r\n ]\r\n },\r\n \"verlenging\": null,\r\n \"opschorting\": {\r\n \"indicatie\": true,\r\n \"reden\": \"string\"\r\n },\r\n \"selectielijstklasse\": \"https://referentielijsten.roxit.nl/api/v1/resultaten/0fe71ce3-b1e1-48eb-9070-be2756fc71b5\",\r\n \"hoofdzaak\": null,\r\n \"deelzaken\": [],\r\n \"relevanteAndereZaken\": [],\r\n \"eigenschappen\": [],\r\n \"rollen\": [],\r\n \"status\": null,\r\n \"zaakinformatieobjecten\": [],\r\n \"zaakobjecten\": [],\r\n \"resultaat\": null,\r\n \"kenmerken\": [],\r\n \"archiefnominatie\": null,\r\n \"archiefstatus\": \"nog_te_archiveren\",\r\n \"archiefactiedatum\": null,\r\n \"opdrachtgevendeOrganisatie\": null,\r\n \"processobjectaard\": null,\r\n \"startdatumBewaartermijn\": null,\r\n \"processobject\": null\r\n}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "8cd74f16-0d4d-47e9-9f6d-0fe8b08d3953", + "type": "text/javascript", + "packages": {}, + "exec": [ + "pm.test(\"Zaak bijwerken met communicatiekanaal url die niet wijst naar Communicatiekanaal-resource geeft 400\", function() {", + " pm.response.to.have.status(400);", + " ", + " // Verify that the 400 is returned for the correct reason", + " var error = pm.response.json()[\"invalidParams\"][0];", + " pm.expect(error.name).to.be.equal(\"communicatiekanaal\");", + " pm.expect(error.code).to.be.equal(\"invalid-resource\");", + "});" + ], + "_lastExecutionId": "816eb9a3-1b34-4844-8c93-cff02d101955" + } + }, + { + "listen": "prerequest", + "script": { + "id": "9716debf-2c7b-4c3e-a430-bd4e191ce89a", + "type": "text/javascript", + "packages": {}, + "exec": [ + "" + ], + "_lastExecutionId": "08c17793-5099-491a-b5d2-106486c9f5c7" + } + } + ] + }, + "request": { + "url": { + "protocol": "http", + "port": "8080", + "path": [ + "index.php", + "apps", + "procest", + "api", + "zgw", + "zaken", + "v1", + "zaken", + "1ea85620-912a-4a68-b62e-65570c1dfdfa" + ], + "host": [ + "localhost" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Accept-Crs", + "value": "EPSG:4326" + }, + { + "key": "Content-Crs", + "value": "EPSG:4326" + }, + { + "key": "Authorization", + "value": "Bearer eyJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJwcm9jZXN0LWFkbWluIiwiY2xpZW50X2lkIjoicHJvY2VzdC1hZG1pbiIsImlhdCI6IjE3NzMxNDUxNzMiLCJ1c2VyX2lkIjoicHJvY2VzdC1hZG1pbiIsInVzZXJfcmVwcmVzZW50YXRpb24iOiIifQ.IVedO3ZdiSAWKhyvvHple2uEII-I-KJHcVCmvVzYFlc", + "system": true + }, + { + "key": "User-Agent", + "value": "PostmanRuntime/7.39.1", + "system": true + }, + { + "key": "Accept", + "value": "*/*", + "system": true + }, + { + "key": "Cache-Control", + "value": "no-cache", + "system": true + }, + { + "key": "Postman-Token", + "value": "e9a995e7-7d89-41de-b6a7-a8f1be0a948c", + "system": true + }, + { + "key": "Host", + "value": "localhost:8080", + "system": true + }, + { + "key": "Accept-Encoding", + "value": "gzip, deflate, br", + "system": true + }, + { + "key": "Connection", + "value": "keep-alive", + "system": true + }, + { + "key": "Content-Length", + "value": "1815", + "system": true + }, + { + "key": "Cookie", + "value": "ocvp3112b4wg=18b0117a0b0efe12c3ba03e2be414693; oc_sessionPassphrase=LBNdKxRzA0iqoULIruNxDDh2BK3O%2BrCIU8aUmiUcOFvy5Xw1YfjwQNlmBW2IkGwJYtxXh9%2BwDN6vYuGNX07tXzkBtjQJUWTGdzf8AIOUIVxVx5DfyWAQZ7nmYmQv6XSE; nc_sameSiteCookielax=true; nc_sameSiteCookiestrict=true", + "system": true + } + ], + "method": "PUT", + "body": { + "mode": "raw", + "raw": "{\r\n \"url\": \"https://zaken.spt-rx-services.nl/api/v1/zaken/cba40feb-2b38-4490-b12d-84a39e8df361\",\r\n \"uuid\": \"cba40feb-2b38-4490-b12d-84a39e8df361\",\r\n \"bronorganisatie\": \"000000000\",\r\n \"omschrijving\": \"string\",\r\n \"toelichting\": \"string\",\r\n \"zaaktype\": \"http://localhost:8080/index.php/apps/procest/api/zgw/catalogi/v1/zaaktypen/619dc3e5-52f1-4294-a569-f21d16f44879\",\r\n \"registratiedatum\": \"2019-04-09\",\r\n \"verantwoordelijkeOrganisatie\": \"000000000\",\r\n \"startdatum\": \"2019-04-09\",\r\n \"einddatum\": null,\r\n \"einddatumGepland\": \"2019-04-20\",\r\n \"uiterlijkeEinddatumAfdoening\": \"2019-04-09\",\r\n \"publicatiedatum\": \"2019-04-09\",\r\n \"communicatiekanaal\": \"https://referentielijsten.roxit.nl/api/v1/communicatiekanalen\",\r\n \"productenOfDiensten\": [],\r\n \"vertrouwelijkheidaanduiding\": \"geheim\",\r\n \"betalingsindicatie\": \"geheel\",\r\n \"betalingsindicatieWeergave\": null,\r\n \"laatsteBetaaldatum\": \"2019-01-01T00:00:00Z\",\r\n \"zaakgeometrie\": {\r\n \"type\": \"Point\",\r\n \"coordinates\": [\r\n 53.0,\r\n 5.0\r\n ]\r\n },\r\n \"verlenging\": null,\r\n \"opschorting\": {\r\n \"indicatie\": true,\r\n \"reden\": \"string\"\r\n },\r\n \"selectielijstklasse\": \"https://referentielijsten.roxit.nl/api/v1/resultaten/0fe71ce3-b1e1-48eb-9070-be2756fc71b5\",\r\n \"hoofdzaak\": null,\r\n \"deelzaken\": [],\r\n \"relevanteAndereZaken\": [],\r\n \"eigenschappen\": [],\r\n \"rollen\": [],\r\n \"status\": null,\r\n \"zaakinformatieobjecten\": [],\r\n \"zaakobjecten\": [],\r\n \"resultaat\": null,\r\n \"kenmerken\": [],\r\n \"archiefnominatie\": null,\r\n \"archiefstatus\": \"nog_te_archiveren\",\r\n \"archiefactiedatum\": null,\r\n \"opdrachtgevendeOrganisatie\": null,\r\n \"processobjectaard\": null,\r\n \"startdatumBewaartermijn\": null,\r\n \"processobject\": null\r\n}" + }, + "auth": { + "type": "jwt", + "jwt": [ + { + "type": "string", + "value": "{\r\n \"iss\": \"procest-admin\",\r\n \"client_id\": \"procest-admin\",\r\n \"iat\": \"1773145173\",\r\n \"user_id\": \"procest-admin\",\r\n \"user_representation\": \"\"\r\n}", + "key": "payload" + }, + { + "type": "string", + "value": "procest-admin-secret-key-for-testing", + "key": "secret" + }, + { + "type": "string", + "value": "HS256", + "key": "algorithm" + }, + { + "type": "boolean", + "value": false, + "key": "isSecretBase64Encoded" + }, + { + "type": "string", + "value": "header", + "key": "addTokenTo" + }, + { + "type": "string", + "value": "Bearer", + "key": "headerPrefix" + }, + { + "type": "string", + "value": "token", + "key": "queryParamKey" + }, + { + "type": "string", + "value": "{}", + "key": "header" + } + ] + } + }, + "response": { + "id": "dbba4cab-7106-4745-b16e-b2f26cdd4527", + "status": "Bad request", + "code": 400, + "header": [ + { + "key": "Date", + "value": "Tue, 10 Mar 2026 12:19:33 GMT" + }, + { + "key": "Server", + "value": "Apache/2.4.66 (Debian)" + }, + { + "key": "X-Content-Type-Options", + "value": "nosniff" + }, + { + "key": "X-Frame-Options", + "value": "SAMEORIGIN" + }, + { + "key": "X-Permitted-Cross-Domain-Policies", + "value": "none" + }, + { + "key": "X-Robots-Tag", + "value": "noindex, nofollow" + }, + { + "key": "Referrer-Policy", + "value": "no-referrer" + }, + { + "key": "X-Powered-By", + "value": "PHP/8.3.30" + }, + { + "key": "Content-Security-Policy", + "value": "default-src 'none';base-uri 'none';manifest-src 'self';frame-ancestors 'none'" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=18b0117a0b0efe12c3ba03e2be414693; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=18b0117a0b0efe12c3ba03e2be414693; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=18b0117a0b0efe12c3ba03e2be414693; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=18b0117a0b0efe12c3ba03e2be414693; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=18b0117a0b0efe12c3ba03e2be414693; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=7db4e4a75789afeb25cafd92a5651195; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=7db4e4a75789afeb25cafd92a5651195; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=7db4e4a75789afeb25cafd92a5651195; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "X-Request-Id", + "value": "NMma2Uw36CyqrKSPDWSt" + }, + { + "key": "Cache-Control", + "value": "no-cache, no-store, must-revalidate" + }, + { + "key": "Feature-Policy", + "value": "autoplay 'none';camera 'none';fullscreen 'none';geolocation 'none';microphone 'none';payment 'none'" + }, + { + "key": "X-User-Id", + "value": "admin" + }, + { + "key": "Content-Length", + "value": "175" + }, + { + "key": "Connection", + "value": "close" + }, + { + "key": "Content-Type", + "value": "application/json; charset=utf-8" + } + ], + "stream": { + "type": "Buffer", + "data": [ + 123, + 34, + 100, + 101, + 116, + 97, + 105, + 108, + 34, + 58, + 34, + 68, + 101, + 32, + 99, + 111, + 109, + 109, + 117, + 110, + 105, + 99, + 97, + 116, + 105, + 101, + 107, + 97, + 110, + 97, + 97, + 108, + 32, + 85, + 82, + 76, + 32, + 105, + 115, + 32, + 111, + 110, + 103, + 101, + 108, + 100, + 105, + 103, + 46, + 34, + 44, + 34, + 105, + 110, + 118, + 97, + 108, + 105, + 100, + 80, + 97, + 114, + 97, + 109, + 115, + 34, + 58, + 91, + 123, + 34, + 110, + 97, + 109, + 101, + 34, + 58, + 34, + 99, + 111, + 109, + 109, + 117, + 110, + 105, + 99, + 97, + 116, + 105, + 101, + 107, + 97, + 110, + 97, + 97, + 108, + 34, + 44, + 34, + 99, + 111, + 100, + 101, + 34, + 58, + 34, + 105, + 110, + 118, + 97, + 108, + 105, + 100, + 45, + 114, + 101, + 115, + 111, + 117, + 114, + 99, + 101, + 34, + 44, + 34, + 114, + 101, + 97, + 115, + 111, + 110, + 34, + 58, + 34, + 68, + 101, + 32, + 99, + 111, + 109, + 109, + 117, + 110, + 105, + 99, + 97, + 116, + 105, + 101, + 107, + 97, + 110, + 97, + 97, + 108, + 32, + 85, + 82, + 76, + 32, + 105, + 115, + 32, + 111, + 110, + 103, + 101, + 108, + 100, + 105, + 103, + 46, + 34, + 125, + 93, + 125 + ] + }, + "cookie": [], + "responseTime": 84, + "responseSize": 175 + }, + "id": "160f0794-08d5-4761-9c09-473b86d76f0c", + "assertions": [ + { + "assertion": "Zaak bijwerken met communicatiekanaal url die niet wijst naar Communicatiekanaal-resource geeft 400", + "skipped": false + } + ] + }, + { + "cursor": { + "ref": "e7d23fa1-d8ce-41c5-8033-17bd12305ea2", + "length": 313, + "cycles": 1, + "position": 135, + "iteration": 0, + "httpRequestId": "60ad29d1-0def-42dd-b5ce-9b5b799e29c6" + }, + "item": { + "id": "353996ba-68fd-4acf-82d0-a5e518c4315d", + "name": "(zrc-010f) Valideren communicatiekanaal-resource bij deels bijwerken Zaak", + "request": { + "url": { + "host": [ + "{{zaak_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Accept-Crs", + "value": "EPSG:4326" + }, + { + "key": "Content-Crs", + "value": "EPSG:4326" + } + ], + "method": "PATCH", + "body": { + "mode": "raw", + "raw": "{\n\t\"communicatiekanaal\": \"https://referentielijsten.roxit.nl/api/v1/communicatiekanalen\"\n}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "1f9c4e3d-08c2-43e0-a9bc-9afa020e2623", + "type": "text/javascript", + "packages": {}, + "exec": [ + "pm.test(\"Zaak deels bijwerken met communicatiekanaal url die niet wijst naar Communicatiekanaal-resource geeft 400\", function() {", + " pm.response.to.have.status(400);", + " ", + " // Verify that the 400 is returned for the correct reason", + " var error = pm.response.json()[\"invalidParams\"][0];", + " pm.expect(error.name).to.be.equal(\"communicatiekanaal\");", + " pm.expect(error.code).to.be.equal(\"invalid-resource\");", + "});" + ], + "_lastExecutionId": "311a7dd3-cadb-4ee5-9d67-472e0418a0e2" + } + }, + { + "listen": "prerequest", + "script": { + "id": "11554ce4-7d0b-4811-b699-4d58f7b72a66", + "type": "text/javascript", + "packages": {}, + "exec": [ + "" + ], + "_lastExecutionId": "a9ce47a5-f323-4133-8b45-ff22ee0f9886" + } + } + ] + }, + "request": { + "url": { + "protocol": "http", + "port": "8080", + "path": [ + "index.php", + "apps", + "procest", + "api", + "zgw", + "zaken", + "v1", + "zaken", + "1ea85620-912a-4a68-b62e-65570c1dfdfa" + ], + "host": [ + "localhost" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Accept-Crs", + "value": "EPSG:4326" + }, + { + "key": "Content-Crs", + "value": "EPSG:4326" + }, + { + "key": "Authorization", + "value": "Bearer eyJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJwcm9jZXN0LWFkbWluIiwiY2xpZW50X2lkIjoicHJvY2VzdC1hZG1pbiIsImlhdCI6IjE3NzMxNDUxNzMiLCJ1c2VyX2lkIjoicHJvY2VzdC1hZG1pbiIsInVzZXJfcmVwcmVzZW50YXRpb24iOiIifQ.IVedO3ZdiSAWKhyvvHple2uEII-I-KJHcVCmvVzYFlc", + "system": true + }, + { + "key": "User-Agent", + "value": "PostmanRuntime/7.39.1", + "system": true + }, + { + "key": "Accept", + "value": "*/*", + "system": true + }, + { + "key": "Cache-Control", + "value": "no-cache", + "system": true + }, + { + "key": "Postman-Token", + "value": "fa09ea1a-82bc-4c3f-9c13-df6fcd4d9335", + "system": true + }, + { + "key": "Host", + "value": "localhost:8080", + "system": true + }, + { + "key": "Accept-Encoding", + "value": "gzip, deflate, br", + "system": true + }, + { + "key": "Connection", + "value": "keep-alive", + "system": true + }, + { + "key": "Content-Length", + "value": "90", + "system": true + }, + { + "key": "Cookie", + "value": "ocvp3112b4wg=7db4e4a75789afeb25cafd92a5651195; oc_sessionPassphrase=LBNdKxRzA0iqoULIruNxDDh2BK3O%2BrCIU8aUmiUcOFvy5Xw1YfjwQNlmBW2IkGwJYtxXh9%2BwDN6vYuGNX07tXzkBtjQJUWTGdzf8AIOUIVxVx5DfyWAQZ7nmYmQv6XSE; nc_sameSiteCookielax=true; nc_sameSiteCookiestrict=true", + "system": true + } + ], + "method": "PATCH", + "body": { + "mode": "raw", + "raw": "{\n\t\"communicatiekanaal\": \"https://referentielijsten.roxit.nl/api/v1/communicatiekanalen\"\n}" + }, + "auth": { + "type": "jwt", + "jwt": [ + { + "type": "string", + "value": "{\r\n \"iss\": \"procest-admin\",\r\n \"client_id\": \"procest-admin\",\r\n \"iat\": \"1773145173\",\r\n \"user_id\": \"procest-admin\",\r\n \"user_representation\": \"\"\r\n}", + "key": "payload" + }, + { + "type": "string", + "value": "procest-admin-secret-key-for-testing", + "key": "secret" + }, + { + "type": "string", + "value": "HS256", + "key": "algorithm" + }, + { + "type": "boolean", + "value": false, + "key": "isSecretBase64Encoded" + }, + { + "type": "string", + "value": "header", + "key": "addTokenTo" + }, + { + "type": "string", + "value": "Bearer", + "key": "headerPrefix" + }, + { + "type": "string", + "value": "token", + "key": "queryParamKey" + }, + { + "type": "string", + "value": "{}", + "key": "header" + } + ] + } + }, + "response": { + "id": "0c9994fa-ad6f-4eb0-abe0-379c8777db6b", + "status": "Bad request", + "code": 400, + "header": [ + { + "key": "Date", + "value": "Tue, 10 Mar 2026 12:19:33 GMT" + }, + { + "key": "Server", + "value": "Apache/2.4.66 (Debian)" + }, + { + "key": "X-Content-Type-Options", + "value": "nosniff" + }, + { + "key": "X-Frame-Options", + "value": "SAMEORIGIN" + }, + { + "key": "X-Permitted-Cross-Domain-Policies", + "value": "none" + }, + { + "key": "X-Robots-Tag", + "value": "noindex, nofollow" + }, + { + "key": "Referrer-Policy", + "value": "no-referrer" + }, + { + "key": "X-Powered-By", + "value": "PHP/8.3.30" + }, + { + "key": "Content-Security-Policy", + "value": "default-src 'none';base-uri 'none';manifest-src 'self';frame-ancestors 'none'" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=7db4e4a75789afeb25cafd92a5651195; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=7db4e4a75789afeb25cafd92a5651195; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=7db4e4a75789afeb25cafd92a5651195; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=7db4e4a75789afeb25cafd92a5651195; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=7db4e4a75789afeb25cafd92a5651195; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=d7f53f45d32fa76b0773231ba4b35da1; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=d7f53f45d32fa76b0773231ba4b35da1; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=d7f53f45d32fa76b0773231ba4b35da1; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "X-Request-Id", + "value": "p1EYPH6qltzruqLtwYWK" + }, + { + "key": "Cache-Control", + "value": "no-cache, no-store, must-revalidate" + }, + { + "key": "Feature-Policy", + "value": "autoplay 'none';camera 'none';fullscreen 'none';geolocation 'none';microphone 'none';payment 'none'" + }, + { + "key": "X-User-Id", + "value": "admin" + }, + { + "key": "Content-Length", + "value": "175" + }, + { + "key": "Connection", + "value": "close" + }, + { + "key": "Content-Type", + "value": "application/json; charset=utf-8" + } + ], + "stream": { + "type": "Buffer", + "data": [ + 123, + 34, + 100, + 101, + 116, + 97, + 105, + 108, + 34, + 58, + 34, + 68, + 101, + 32, + 99, + 111, + 109, + 109, + 117, + 110, + 105, + 99, + 97, + 116, + 105, + 101, + 107, + 97, + 110, + 97, + 97, + 108, + 32, + 85, + 82, + 76, + 32, + 105, + 115, + 32, + 111, + 110, + 103, + 101, + 108, + 100, + 105, + 103, + 46, + 34, + 44, + 34, + 105, + 110, + 118, + 97, + 108, + 105, + 100, + 80, + 97, + 114, + 97, + 109, + 115, + 34, + 58, + 91, + 123, + 34, + 110, + 97, + 109, + 101, + 34, + 58, + 34, + 99, + 111, + 109, + 109, + 117, + 110, + 105, + 99, + 97, + 116, + 105, + 101, + 107, + 97, + 110, + 97, + 97, + 108, + 34, + 44, + 34, + 99, + 111, + 100, + 101, + 34, + 58, + 34, + 105, + 110, + 118, + 97, + 108, + 105, + 100, + 45, + 114, + 101, + 115, + 111, + 117, + 114, + 99, + 101, + 34, + 44, + 34, + 114, + 101, + 97, + 115, + 111, + 110, + 34, + 58, + 34, + 68, + 101, + 32, + 99, + 111, + 109, + 109, + 117, + 110, + 105, + 99, + 97, + 116, + 105, + 101, + 107, + 97, + 110, + 97, + 97, + 108, + 32, + 85, + 82, + 76, + 32, + 105, + 115, + 32, + 111, + 110, + 103, + 101, + 108, + 100, + 105, + 103, + 46, + 34, + 125, + 93, + 125 + ] + }, + "cookie": [], + "responseTime": 84, + "responseSize": 175 + }, + "id": "353996ba-68fd-4acf-82d0-a5e518c4315d", + "assertions": [ + { + "assertion": "Zaak deels bijwerken met communicatiekanaal url die niet wijst naar Communicatiekanaal-resource geeft 400", + "skipped": false + } + ] + }, + { + "cursor": { + "ref": "bcbb9689-6482-4840-bfb4-5d9e4ef05626", + "length": 313, + "cycles": 1, + "position": 136, + "iteration": 0, + "httpRequestId": "0d2289c0-61b1-476b-8b28-5b0869dbcade" + }, + "item": { + "id": "393fc806-b3ec-40dd-a147-7dc6806e6a40", + "name": "(zrc-010g) Zaak aanmaken met valide communicatiekanaal is mogelijk", + "request": { + "url": { + "path": [ + "zaken" + ], + "host": [ + "{{zrc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Content-Crs", + "value": "EPSG:4326" + }, + { + "key": "Accept-Crs", + "value": "EPSG:4326" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\r\n \"url\": \"https://zaken.spt-rx-services.nl/api/v1/zaken/cba40feb-2b38-4490-b12d-84a39e8df361\",\r\n \"uuid\": \"cba40feb-2b38-4490-b12d-84a39e8df361\",\r\n \"bronorganisatie\": \"000000000\",\r\n \"omschrijving\": \"string\",\r\n \"toelichting\": \"string\",\r\n \"zaaktype\": \"{{zaaktype_url}}\",\r\n \"registratiedatum\": \"2019-04-09\",\r\n \"verantwoordelijkeOrganisatie\": \"000000000\",\r\n \"startdatum\": \"2019-04-09\",\r\n \"einddatum\": null,\r\n \"einddatumGepland\": \"2019-04-20\",\r\n \"uiterlijkeEinddatumAfdoening\": \"2019-04-09\",\r\n \"publicatiedatum\": \"2019-04-09\",\r\n \"communicatiekanaal\": \"https://referentielijsten.roxit.nl/api/v1/communicatiekanalen/2b757868-45c2-42ca-b637-b63ddc87beb4\",\r\n \"productenOfDiensten\": [],\r\n \"vertrouwelijkheidaanduiding\": \"geheim\",\r\n \"betalingsindicatie\": \"geheel\",\r\n \"betalingsindicatieWeergave\": null,\r\n \"laatsteBetaaldatum\": \"2019-01-01T00:00:00Z\",\r\n \"zaakgeometrie\": {\r\n \"type\": \"Point\",\r\n \"coordinates\": [\r\n 53.0,\r\n 5.0\r\n ]\r\n },\r\n \"verlenging\": null,\r\n \"opschorting\": {\r\n \"indicatie\": true,\r\n \"reden\": \"string\"\r\n },\r\n \"selectielijstklasse\": \"https://referentielijsten.roxit.nl/api/v1/resultaten/0fe71ce3-b1e1-48eb-9070-be2756fc71b5\",\r\n \"hoofdzaak\": null,\r\n \"deelzaken\": [],\r\n \"relevanteAndereZaken\": [],\r\n \"eigenschappen\": [],\r\n \"rollen\": [],\r\n \"status\": null,\r\n \"zaakinformatieobjecten\": [],\r\n \"zaakobjecten\": [],\r\n \"resultaat\": null,\r\n \"kenmerken\": [],\r\n \"archiefnominatie\": null,\r\n \"archiefstatus\": \"nog_te_archiveren\",\r\n \"archiefactiedatum\": null,\r\n \"opdrachtgevendeOrganisatie\": null,\r\n \"processobjectaard\": null,\r\n \"startdatumBewaartermijn\": null,\r\n \"processobject\": null\r\n}" + } + }, + "response": [], + "event": [ + { + "listen": "prerequest", + "script": { + "id": "f5f7e97a-f830-4973-aa85-a887ff19136c", + "type": "text/javascript", + "packages": {}, + "exec": [ + "" + ], + "_lastExecutionId": "e7ddf2d8-4394-442a-b2c7-62d60604ae0f" + } + }, + { + "listen": "test", + "script": { + "id": "86c5f237-1790-481d-9461-4e5eacfea8a6", + "type": "text/javascript", + "packages": {}, + "exec": [ + "if (pm.response.code==201 ){", + " pm.environment.set(\"created_zaak_url\", pm.response.json().url);", + "}", + "pm.test(\"Zaak aanmaken met valide communicatiekanaal geeft 201\", function() {", + " pm.response.to.have.status(201);", + " ", + "});" + ], + "_lastExecutionId": "6b7fdf09-0ae9-42e4-9c6e-81a713b2a3d5" + } + } + ] + }, + "request": { + "url": { + "protocol": "http", + "port": "8080", + "path": [ + "index.php", + "apps", + "procest", + "api", + "zgw", + "zaken", + "v1", + "zaken" + ], + "host": [ + "localhost" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Content-Crs", + "value": "EPSG:4326" + }, + { + "key": "Accept-Crs", + "value": "EPSG:4326" + }, + { + "key": "Authorization", + "value": "Bearer eyJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJwcm9jZXN0LWFkbWluIiwiY2xpZW50X2lkIjoicHJvY2VzdC1hZG1pbiIsImlhdCI6IjE3NzMxNDUxNzQiLCJ1c2VyX2lkIjoicHJvY2VzdC1hZG1pbiIsInVzZXJfcmVwcmVzZW50YXRpb24iOiIifQ.iS96mWo35CFsdnrOoc6CVNN2LUBV1UsukbUjiCtRlOk", + "system": true + }, + { + "key": "User-Agent", + "value": "PostmanRuntime/7.39.1", + "system": true + }, + { + "key": "Accept", + "value": "*/*", + "system": true + }, + { + "key": "Cache-Control", + "value": "no-cache", + "system": true + }, + { + "key": "Postman-Token", + "value": "f817b2e8-c61d-47c4-9b17-a962f87f6669", + "system": true + }, + { + "key": "Host", + "value": "localhost:8080", + "system": true + }, + { + "key": "Accept-Encoding", + "value": "gzip, deflate, br", + "system": true + }, + { + "key": "Connection", + "value": "keep-alive", + "system": true + }, + { + "key": "Content-Length", + "value": "1852", + "system": true + }, + { + "key": "Cookie", + "value": "ocvp3112b4wg=d7f53f45d32fa76b0773231ba4b35da1; oc_sessionPassphrase=LBNdKxRzA0iqoULIruNxDDh2BK3O%2BrCIU8aUmiUcOFvy5Xw1YfjwQNlmBW2IkGwJYtxXh9%2BwDN6vYuGNX07tXzkBtjQJUWTGdzf8AIOUIVxVx5DfyWAQZ7nmYmQv6XSE; nc_sameSiteCookielax=true; nc_sameSiteCookiestrict=true", + "system": true + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\r\n \"url\": \"https://zaken.spt-rx-services.nl/api/v1/zaken/cba40feb-2b38-4490-b12d-84a39e8df361\",\r\n \"uuid\": \"cba40feb-2b38-4490-b12d-84a39e8df361\",\r\n \"bronorganisatie\": \"000000000\",\r\n \"omschrijving\": \"string\",\r\n \"toelichting\": \"string\",\r\n \"zaaktype\": \"http://localhost:8080/index.php/apps/procest/api/zgw/catalogi/v1/zaaktypen/619dc3e5-52f1-4294-a569-f21d16f44879\",\r\n \"registratiedatum\": \"2019-04-09\",\r\n \"verantwoordelijkeOrganisatie\": \"000000000\",\r\n \"startdatum\": \"2019-04-09\",\r\n \"einddatum\": null,\r\n \"einddatumGepland\": \"2019-04-20\",\r\n \"uiterlijkeEinddatumAfdoening\": \"2019-04-09\",\r\n \"publicatiedatum\": \"2019-04-09\",\r\n \"communicatiekanaal\": \"https://referentielijsten.roxit.nl/api/v1/communicatiekanalen/2b757868-45c2-42ca-b637-b63ddc87beb4\",\r\n \"productenOfDiensten\": [],\r\n \"vertrouwelijkheidaanduiding\": \"geheim\",\r\n \"betalingsindicatie\": \"geheel\",\r\n \"betalingsindicatieWeergave\": null,\r\n \"laatsteBetaaldatum\": \"2019-01-01T00:00:00Z\",\r\n \"zaakgeometrie\": {\r\n \"type\": \"Point\",\r\n \"coordinates\": [\r\n 53.0,\r\n 5.0\r\n ]\r\n },\r\n \"verlenging\": null,\r\n \"opschorting\": {\r\n \"indicatie\": true,\r\n \"reden\": \"string\"\r\n },\r\n \"selectielijstklasse\": \"https://referentielijsten.roxit.nl/api/v1/resultaten/0fe71ce3-b1e1-48eb-9070-be2756fc71b5\",\r\n \"hoofdzaak\": null,\r\n \"deelzaken\": [],\r\n \"relevanteAndereZaken\": [],\r\n \"eigenschappen\": [],\r\n \"rollen\": [],\r\n \"status\": null,\r\n \"zaakinformatieobjecten\": [],\r\n \"zaakobjecten\": [],\r\n \"resultaat\": null,\r\n \"kenmerken\": [],\r\n \"archiefnominatie\": null,\r\n \"archiefstatus\": \"nog_te_archiveren\",\r\n \"archiefactiedatum\": null,\r\n \"opdrachtgevendeOrganisatie\": null,\r\n \"processobjectaard\": null,\r\n \"startdatumBewaartermijn\": null,\r\n \"processobject\": null\r\n}" + }, + "auth": { + "type": "jwt", + "jwt": [ + { + "type": "string", + "value": "{\r\n \"iss\": \"procest-admin\",\r\n \"client_id\": \"procest-admin\",\r\n \"iat\": \"1773145174\",\r\n \"user_id\": \"procest-admin\",\r\n \"user_representation\": \"\"\r\n}", + "key": "payload" + }, + { + "type": "string", + "value": "procest-admin-secret-key-for-testing", + "key": "secret" + }, + { + "type": "string", + "value": "HS256", + "key": "algorithm" + }, + { + "type": "boolean", + "value": false, + "key": "isSecretBase64Encoded" + }, + { + "type": "string", + "value": "header", + "key": "addTokenTo" + }, + { + "type": "string", + "value": "Bearer", + "key": "headerPrefix" + }, + { + "type": "string", + "value": "token", + "key": "queryParamKey" + }, + { + "type": "string", + "value": "{}", + "key": "header" + } + ] + } + }, + "response": { + "id": "c50cfef1-0ba6-43a3-ba5c-348569ca57be", + "status": "Created", + "code": 201, + "header": [ + { + "key": "Date", + "value": "Tue, 10 Mar 2026 12:19:33 GMT" + }, + { + "key": "Server", + "value": "Apache/2.4.66 (Debian)" + }, + { + "key": "X-Content-Type-Options", + "value": "nosniff" + }, + { + "key": "X-Frame-Options", + "value": "SAMEORIGIN" + }, + { + "key": "X-Permitted-Cross-Domain-Policies", + "value": "none" + }, + { + "key": "X-Robots-Tag", + "value": "noindex, nofollow" + }, + { + "key": "Referrer-Policy", + "value": "no-referrer" + }, + { + "key": "X-Powered-By", + "value": "PHP/8.3.30" + }, + { + "key": "Content-Security-Policy", + "value": "default-src 'none';base-uri 'none';manifest-src 'self';frame-ancestors 'none'" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=d7f53f45d32fa76b0773231ba4b35da1; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=d7f53f45d32fa76b0773231ba4b35da1; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=d7f53f45d32fa76b0773231ba4b35da1; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=d7f53f45d32fa76b0773231ba4b35da1; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=d7f53f45d32fa76b0773231ba4b35da1; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=ef5c7f56acfb11ce6f45ff55484d8af9; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=ef5c7f56acfb11ce6f45ff55484d8af9; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=ef5c7f56acfb11ce6f45ff55484d8af9; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=ef5c7f56acfb11ce6f45ff55484d8af9; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=ef5c7f56acfb11ce6f45ff55484d8af9; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "X-Request-Id", + "value": "WrcxnbhtNRJBbMOeFsD2" + }, + { + "key": "Cache-Control", + "value": "no-cache, no-store, must-revalidate" + }, + { + "key": "Feature-Policy", + "value": "autoplay 'none';camera 'none';fullscreen 'none';geolocation 'none';microphone 'none';payment 'none'" + }, + { + "key": "X-User-Id", + "value": "admin" + }, + { + "key": "Content-Length", + "value": "805" + }, + { + "key": "Keep-Alive", + "value": "timeout=5, max=100" + }, + { + "key": "Connection", + "value": "Keep-Alive" + }, + { + "key": "Content-Type", + "value": "application/json; charset=utf-8" + } + ], + "stream": { + "type": "Buffer", + "data": [ + 123, + 34, + 117, + 114, + 108, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 122, + 97, + 107, + 101, + 110, + 92, + 47, + 118, + 49, + 92, + 47, + 122, + 97, + 107, + 101, + 110, + 92, + 47, + 100, + 57, + 53, + 50, + 54, + 97, + 101, + 52, + 45, + 53, + 98, + 49, + 53, + 45, + 52, + 102, + 52, + 50, + 45, + 98, + 49, + 101, + 56, + 45, + 53, + 102, + 49, + 52, + 51, + 53, + 52, + 102, + 100, + 100, + 55, + 99, + 34, + 44, + 34, + 117, + 117, + 105, + 100, + 34, + 58, + 34, + 100, + 57, + 53, + 50, + 54, + 97, + 101, + 52, + 45, + 53, + 98, + 49, + 53, + 45, + 52, + 102, + 52, + 50, + 45, + 98, + 49, + 101, + 56, + 45, + 53, + 102, + 49, + 52, + 51, + 53, + 52, + 102, + 100, + 100, + 55, + 99, + 34, + 44, + 34, + 105, + 100, + 101, + 110, + 116, + 105, + 102, + 105, + 99, + 97, + 116, + 105, + 101, + 34, + 58, + 34, + 90, + 65, + 65, + 75, + 45, + 84, + 66, + 79, + 78, + 75, + 76, + 45, + 68, + 65, + 56, + 65, + 55, + 67, + 34, + 44, + 34, + 111, + 109, + 115, + 99, + 104, + 114, + 105, + 106, + 118, + 105, + 110, + 103, + 34, + 58, + 34, + 115, + 116, + 114, + 105, + 110, + 103, + 34, + 44, + 34, + 116, + 111, + 101, + 108, + 105, + 99, + 104, + 116, + 105, + 110, + 103, + 34, + 58, + 34, + 115, + 116, + 114, + 105, + 110, + 103, + 34, + 44, + 34, + 122, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 105, + 92, + 47, + 118, + 49, + 92, + 47, + 122, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 110, + 92, + 47, + 54, + 49, + 57, + 100, + 99, + 51, + 101, + 53, + 45, + 53, + 50, + 102, + 49, + 45, + 52, + 50, + 57, + 52, + 45, + 97, + 53, + 54, + 57, + 45, + 102, + 50, + 49, + 100, + 49, + 54, + 102, + 52, + 52, + 56, + 55, + 57, + 34, + 44, + 34, + 114, + 101, + 103, + 105, + 115, + 116, + 114, + 97, + 116, + 105, + 101, + 100, + 97, + 116, + 117, + 109, + 34, + 58, + 34, + 50, + 48, + 50, + 54, + 45, + 48, + 51, + 45, + 49, + 48, + 84, + 49, + 50, + 58, + 49, + 57, + 58, + 51, + 51, + 43, + 48, + 48, + 58, + 48, + 48, + 34, + 44, + 34, + 115, + 116, + 97, + 114, + 116, + 100, + 97, + 116, + 117, + 109, + 34, + 58, + 34, + 50, + 48, + 49, + 57, + 45, + 48, + 52, + 45, + 48, + 57, + 34, + 44, + 34, + 101, + 105, + 110, + 100, + 100, + 97, + 116, + 117, + 109, + 34, + 58, + 110, + 117, + 108, + 108, + 44, + 34, + 101, + 105, + 110, + 100, + 100, + 97, + 116, + 117, + 109, + 71, + 101, + 112, + 108, + 97, + 110, + 100, + 34, + 58, + 34, + 50, + 48, + 49, + 57, + 45, + 48, + 52, + 45, + 50, + 48, + 34, + 44, + 34, + 117, + 105, + 116, + 101, + 114, + 108, + 105, + 106, + 107, + 101, + 69, + 105, + 110, + 100, + 100, + 97, + 116, + 117, + 109, + 65, + 102, + 100, + 111, + 101, + 110, + 105, + 110, + 103, + 34, + 58, + 34, + 50, + 48, + 49, + 57, + 45, + 48, + 52, + 45, + 48, + 57, + 34, + 44, + 34, + 118, + 101, + 114, + 116, + 114, + 111, + 117, + 119, + 101, + 108, + 105, + 106, + 107, + 104, + 101, + 105, + 100, + 97, + 97, + 110, + 100, + 117, + 105, + 100, + 105, + 110, + 103, + 34, + 58, + 34, + 103, + 101, + 104, + 101, + 105, + 109, + 34, + 44, + 34, + 118, + 101, + 114, + 97, + 110, + 116, + 119, + 111, + 111, + 114, + 100, + 101, + 108, + 105, + 106, + 107, + 101, + 79, + 114, + 103, + 97, + 110, + 105, + 115, + 97, + 116, + 105, + 101, + 34, + 58, + 34, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 34, + 44, + 34, + 97, + 114, + 99, + 104, + 105, + 101, + 102, + 110, + 111, + 109, + 105, + 110, + 97, + 116, + 105, + 101, + 34, + 58, + 110, + 117, + 108, + 108, + 44, + 34, + 97, + 114, + 99, + 104, + 105, + 101, + 102, + 97, + 99, + 116, + 105, + 101, + 100, + 97, + 116, + 117, + 109, + 34, + 58, + 110, + 117, + 108, + 108, + 44, + 34, + 97, + 114, + 99, + 104, + 105, + 101, + 102, + 115, + 116, + 97, + 116, + 117, + 115, + 34, + 58, + 34, + 110, + 111, + 103, + 95, + 116, + 101, + 95, + 97, + 114, + 99, + 104, + 105, + 118, + 101, + 114, + 101, + 110, + 34, + 44, + 34, + 98, + 101, + 116, + 97, + 108, + 105, + 110, + 103, + 115, + 105, + 110, + 100, + 105, + 99, + 97, + 116, + 105, + 101, + 34, + 58, + 34, + 103, + 101, + 104, + 101, + 101, + 108, + 34, + 44, + 34, + 108, + 97, + 97, + 116, + 115, + 116, + 101, + 66, + 101, + 116, + 97, + 97, + 108, + 100, + 97, + 116, + 117, + 109, + 34, + 58, + 34, + 50, + 48, + 49, + 57, + 45, + 48, + 49, + 45, + 48, + 49, + 34, + 44, + 34, + 104, + 111, + 111, + 102, + 100, + 122, + 97, + 97, + 107, + 34, + 58, + 110, + 117, + 108, + 108, + 125 + ] + }, + "cookie": [], + "responseTime": 230, + "responseSize": 805 + }, + "id": "393fc806-b3ec-40dd-a147-7dc6806e6a40", + "assertions": [ + { + "assertion": "Zaak aanmaken met valide communicatiekanaal geeft 201", + "skipped": false + } + ] + }, + { + "cursor": { + "ref": "16d2279a-dde3-4ae0-99d0-f3fca137b5ae", + "length": 313, + "cycles": 1, + "position": 137, + "iteration": 0, + "httpRequestId": "0ebb28ed-b921-4bd3-9c92-383306987ca0" + }, + "item": { + "id": "110537d0-c922-41c4-9f48-a8bc0490d651", + "name": "(zrc-010h) Zaak bijwerken met valide communicatiekanaal is mogelijk", + "request": { + "url": { + "host": [ + "{{created_zaak_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Content-Crs", + "value": "EPSG:4326" + }, + { + "key": "Accept-Crs", + "value": "EPSG:4326" + } + ], + "method": "PUT", + "body": { + "mode": "raw", + "raw": "{\r\n\r\n \"bronorganisatie\": \"000000000\",\r\n \"omschrijving\": \"string 2\",\r\n \"toelichting\": \"string\",\r\n \"zaaktype\": \"{{zaaktype_url}}\",\r\n \"registratiedatum\": \"2019-04-09\",\r\n \"verantwoordelijkeOrganisatie\": \"000000000\",\r\n \"startdatum\": \"2019-04-09\",\r\n \"einddatum\": null,\r\n \"einddatumGepland\": \"2019-04-20\",\r\n \"uiterlijkeEinddatumAfdoening\": \"2019-04-09\",\r\n \"publicatiedatum\": \"2019-04-09\",\r\n \"communicatiekanaal\": \"https://referentielijsten.roxit.nl/api/v1/communicatiekanalen/2b757868-45c2-42ca-b637-b63ddc87beb4\",\r\n \"productenOfDiensten\": [],\r\n \"vertrouwelijkheidaanduiding\": \"geheim\",\r\n \"betalingsindicatie\": \"geheel\",\r\n \"betalingsindicatieWeergave\": null,\r\n \"laatsteBetaaldatum\": \"2019-01-01T00:00:00Z\",\r\n \"zaakgeometrie\": {\r\n \"type\": \"Point\",\r\n \"coordinates\": [\r\n 53.0,\r\n 5.0\r\n ]\r\n },\r\n \"verlenging\": null,\r\n \"opschorting\": {\r\n \"indicatie\": true,\r\n \"reden\": \"string\"\r\n },\r\n \"selectielijstklasse\": \"https://referentielijsten.roxit.nl/api/v1/resultaten/0fe71ce3-b1e1-48eb-9070-be2756fc71b5\",\r\n \"hoofdzaak\": null,\r\n \"deelzaken\": [],\r\n \"relevanteAndereZaken\": [],\r\n \"eigenschappen\": [],\r\n \"rollen\": [],\r\n \"status\": null,\r\n \"zaakinformatieobjecten\": [],\r\n \"zaakobjecten\": [],\r\n \"resultaat\": null,\r\n \"kenmerken\": [],\r\n \"archiefnominatie\": null,\r\n \"archiefstatus\": \"nog_te_archiveren\",\r\n \"archiefactiedatum\": null,\r\n \"opdrachtgevendeOrganisatie\": null,\r\n \"processobjectaard\": null,\r\n \"startdatumBewaartermijn\": null,\r\n \"processobject\": null\r\n}" + } + }, + "response": [], + "event": [ + { + "listen": "prerequest", + "script": { + "id": "1a81485e-e7b7-46f9-be4b-3ab10688ace2", + "type": "text/javascript", + "packages": {}, + "exec": [ + "" + ], + "_lastExecutionId": "b60e76d1-e15a-4e7b-a477-d3675a8e2e27" + } + }, + { + "listen": "test", + "script": { + "id": "436ee60d-9324-4c09-98af-1b8ea178c1b7", + "type": "text/javascript", + "packages": {}, + "exec": [ + "pm.test(\"Zaak bijwerken met valide communicatiekanaal geeft 200\", function() {", + " pm.response.to.have.status(200);", + "});" + ], + "_lastExecutionId": "60532a7c-1035-46ee-8584-27f568020ae6" + } + } + ] + }, + "request": { + "url": { + "protocol": "http", + "port": "8080", + "path": [ + "index.php", + "apps", + "procest", + "api", + "zgw", + "zaken", + "v1", + "zaken", + "d9526ae4-5b15-4f42-b1e8-5f14354fdd7c" + ], + "host": [ + "localhost" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Content-Crs", + "value": "EPSG:4326" + }, + { + "key": "Accept-Crs", + "value": "EPSG:4326" + }, + { + "key": "Authorization", + "value": "Bearer eyJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJwcm9jZXN0LWFkbWluIiwiY2xpZW50X2lkIjoicHJvY2VzdC1hZG1pbiIsImlhdCI6IjE3NzMxNDUxNzQiLCJ1c2VyX2lkIjoicHJvY2VzdC1hZG1pbiIsInVzZXJfcmVwcmVzZW50YXRpb24iOiIifQ.iS96mWo35CFsdnrOoc6CVNN2LUBV1UsukbUjiCtRlOk", + "system": true + }, + { + "key": "User-Agent", + "value": "PostmanRuntime/7.39.1", + "system": true + }, + { + "key": "Accept", + "value": "*/*", + "system": true + }, + { + "key": "Cache-Control", + "value": "no-cache", + "system": true + }, + { + "key": "Postman-Token", + "value": "111d21cd-9c98-4ca6-8e08-39f2257ab87b", + "system": true + }, + { + "key": "Host", + "value": "localhost:8080", + "system": true + }, + { + "key": "Accept-Encoding", + "value": "gzip, deflate, br", + "system": true + }, + { + "key": "Connection", + "value": "keep-alive", + "system": true + }, + { + "key": "Content-Length", + "value": "1705", + "system": true + }, + { + "key": "Cookie", + "value": "ocvp3112b4wg=ef5c7f56acfb11ce6f45ff55484d8af9; oc_sessionPassphrase=LBNdKxRzA0iqoULIruNxDDh2BK3O%2BrCIU8aUmiUcOFvy5Xw1YfjwQNlmBW2IkGwJYtxXh9%2BwDN6vYuGNX07tXzkBtjQJUWTGdzf8AIOUIVxVx5DfyWAQZ7nmYmQv6XSE; nc_sameSiteCookielax=true; nc_sameSiteCookiestrict=true", + "system": true + } + ], + "method": "PUT", + "body": { + "mode": "raw", + "raw": "{\r\n\r\n \"bronorganisatie\": \"000000000\",\r\n \"omschrijving\": \"string 2\",\r\n \"toelichting\": \"string\",\r\n \"zaaktype\": \"http://localhost:8080/index.php/apps/procest/api/zgw/catalogi/v1/zaaktypen/619dc3e5-52f1-4294-a569-f21d16f44879\",\r\n \"registratiedatum\": \"2019-04-09\",\r\n \"verantwoordelijkeOrganisatie\": \"000000000\",\r\n \"startdatum\": \"2019-04-09\",\r\n \"einddatum\": null,\r\n \"einddatumGepland\": \"2019-04-20\",\r\n \"uiterlijkeEinddatumAfdoening\": \"2019-04-09\",\r\n \"publicatiedatum\": \"2019-04-09\",\r\n \"communicatiekanaal\": \"https://referentielijsten.roxit.nl/api/v1/communicatiekanalen/2b757868-45c2-42ca-b637-b63ddc87beb4\",\r\n \"productenOfDiensten\": [],\r\n \"vertrouwelijkheidaanduiding\": \"geheim\",\r\n \"betalingsindicatie\": \"geheel\",\r\n \"betalingsindicatieWeergave\": null,\r\n \"laatsteBetaaldatum\": \"2019-01-01T00:00:00Z\",\r\n \"zaakgeometrie\": {\r\n \"type\": \"Point\",\r\n \"coordinates\": [\r\n 53.0,\r\n 5.0\r\n ]\r\n },\r\n \"verlenging\": null,\r\n \"opschorting\": {\r\n \"indicatie\": true,\r\n \"reden\": \"string\"\r\n },\r\n \"selectielijstklasse\": \"https://referentielijsten.roxit.nl/api/v1/resultaten/0fe71ce3-b1e1-48eb-9070-be2756fc71b5\",\r\n \"hoofdzaak\": null,\r\n \"deelzaken\": [],\r\n \"relevanteAndereZaken\": [],\r\n \"eigenschappen\": [],\r\n \"rollen\": [],\r\n \"status\": null,\r\n \"zaakinformatieobjecten\": [],\r\n \"zaakobjecten\": [],\r\n \"resultaat\": null,\r\n \"kenmerken\": [],\r\n \"archiefnominatie\": null,\r\n \"archiefstatus\": \"nog_te_archiveren\",\r\n \"archiefactiedatum\": null,\r\n \"opdrachtgevendeOrganisatie\": null,\r\n \"processobjectaard\": null,\r\n \"startdatumBewaartermijn\": null,\r\n \"processobject\": null\r\n}" + }, + "auth": { + "type": "jwt", + "jwt": [ + { + "type": "string", + "value": "{\r\n \"iss\": \"procest-admin\",\r\n \"client_id\": \"procest-admin\",\r\n \"iat\": \"1773145174\",\r\n \"user_id\": \"procest-admin\",\r\n \"user_representation\": \"\"\r\n}", + "key": "payload" + }, + { + "type": "string", + "value": "procest-admin-secret-key-for-testing", + "key": "secret" + }, + { + "type": "string", + "value": "HS256", + "key": "algorithm" + }, + { + "type": "boolean", + "value": false, + "key": "isSecretBase64Encoded" + }, + { + "type": "string", + "value": "header", + "key": "addTokenTo" + }, + { + "type": "string", + "value": "Bearer", + "key": "headerPrefix" + }, + { + "type": "string", + "value": "token", + "key": "queryParamKey" + }, + { + "type": "string", + "value": "{}", + "key": "header" + } + ] + } + }, + "response": { + "id": "bbe6b202-851f-4c82-af63-e70c63c5bbf7", + "status": "OK", + "code": 200, + "header": [ + { + "key": "Date", + "value": "Tue, 10 Mar 2026 12:19:33 GMT" + }, + { + "key": "Server", + "value": "Apache/2.4.66 (Debian)" + }, + { + "key": "X-Content-Type-Options", + "value": "nosniff" + }, + { + "key": "X-Frame-Options", + "value": "SAMEORIGIN" + }, + { + "key": "X-Permitted-Cross-Domain-Policies", + "value": "none" + }, + { + "key": "X-Robots-Tag", + "value": "noindex, nofollow" + }, + { + "key": "Referrer-Policy", + "value": "no-referrer" + }, + { + "key": "X-Powered-By", + "value": "PHP/8.3.30" + }, + { + "key": "Content-Security-Policy", + "value": "default-src 'none';base-uri 'none';manifest-src 'self';frame-ancestors 'none'" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=ef5c7f56acfb11ce6f45ff55484d8af9; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=ef5c7f56acfb11ce6f45ff55484d8af9; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=ef5c7f56acfb11ce6f45ff55484d8af9; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=ef5c7f56acfb11ce6f45ff55484d8af9; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=ef5c7f56acfb11ce6f45ff55484d8af9; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=c178d18244554afb85865c6747f13459; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=c178d18244554afb85865c6747f13459; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=c178d18244554afb85865c6747f13459; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=c178d18244554afb85865c6747f13459; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=c178d18244554afb85865c6747f13459; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "X-Request-Id", + "value": "C8MiynbD1vXL7OIJGVk5" + }, + { + "key": "Cache-Control", + "value": "no-cache, no-store, must-revalidate" + }, + { + "key": "Feature-Policy", + "value": "autoplay 'none';camera 'none';fullscreen 'none';geolocation 'none';microphone 'none';payment 'none'" + }, + { + "key": "X-User-Id", + "value": "admin" + }, + { + "key": "Content-Encoding", + "value": "gzip" + }, + { + "key": "Content-Length", + "value": "428" + }, + { + "key": "Keep-Alive", + "value": "timeout=5, max=99" + }, + { + "key": "Connection", + "value": "Keep-Alive" + }, + { + "key": "Content-Type", + "value": "application/json; charset=utf-8" + } + ], + "stream": { + "type": "Buffer", + "data": [ + 123, + 34, + 117, + 114, + 108, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 122, + 97, + 107, + 101, + 110, + 92, + 47, + 118, + 49, + 92, + 47, + 122, + 97, + 107, + 101, + 110, + 92, + 47, + 100, + 57, + 53, + 50, + 54, + 97, + 101, + 52, + 45, + 53, + 98, + 49, + 53, + 45, + 52, + 102, + 52, + 50, + 45, + 98, + 49, + 101, + 56, + 45, + 53, + 102, + 49, + 52, + 51, + 53, + 52, + 102, + 100, + 100, + 55, + 99, + 34, + 44, + 34, + 117, + 117, + 105, + 100, + 34, + 58, + 34, + 100, + 57, + 53, + 50, + 54, + 97, + 101, + 52, + 45, + 53, + 98, + 49, + 53, + 45, + 52, + 102, + 52, + 50, + 45, + 98, + 49, + 101, + 56, + 45, + 53, + 102, + 49, + 52, + 51, + 53, + 52, + 102, + 100, + 100, + 55, + 99, + 34, + 44, + 34, + 105, + 100, + 101, + 110, + 116, + 105, + 102, + 105, + 99, + 97, + 116, + 105, + 101, + 34, + 58, + 34, + 34, + 44, + 34, + 111, + 109, + 115, + 99, + 104, + 114, + 105, + 106, + 118, + 105, + 110, + 103, + 34, + 58, + 34, + 115, + 116, + 114, + 105, + 110, + 103, + 32, + 50, + 34, + 44, + 34, + 116, + 111, + 101, + 108, + 105, + 99, + 104, + 116, + 105, + 110, + 103, + 34, + 58, + 34, + 115, + 116, + 114, + 105, + 110, + 103, + 34, + 44, + 34, + 122, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 105, + 92, + 47, + 118, + 49, + 92, + 47, + 122, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 110, + 92, + 47, + 54, + 49, + 57, + 100, + 99, + 51, + 101, + 53, + 45, + 53, + 50, + 102, + 49, + 45, + 52, + 50, + 57, + 52, + 45, + 97, + 53, + 54, + 57, + 45, + 102, + 50, + 49, + 100, + 49, + 54, + 102, + 52, + 52, + 56, + 55, + 57, + 34, + 44, + 34, + 114, + 101, + 103, + 105, + 115, + 116, + 114, + 97, + 116, + 105, + 101, + 100, + 97, + 116, + 117, + 109, + 34, + 58, + 34, + 50, + 48, + 50, + 54, + 45, + 48, + 51, + 45, + 49, + 48, + 84, + 49, + 50, + 58, + 49, + 57, + 58, + 51, + 51, + 43, + 48, + 48, + 58, + 48, + 48, + 34, + 44, + 34, + 115, + 116, + 97, + 114, + 116, + 100, + 97, + 116, + 117, + 109, + 34, + 58, + 34, + 50, + 48, + 49, + 57, + 45, + 48, + 52, + 45, + 48, + 57, + 34, + 44, + 34, + 101, + 105, + 110, + 100, + 100, + 97, + 116, + 117, + 109, + 34, + 58, + 110, + 117, + 108, + 108, + 44, + 34, + 101, + 105, + 110, + 100, + 100, + 97, + 116, + 117, + 109, + 71, + 101, + 112, + 108, + 97, + 110, + 100, + 34, + 58, + 34, + 50, + 48, + 49, + 57, + 45, + 48, + 52, + 45, + 50, + 48, + 34, + 44, + 34, + 117, + 105, + 116, + 101, + 114, + 108, + 105, + 106, + 107, + 101, + 69, + 105, + 110, + 100, + 100, + 97, + 116, + 117, + 109, + 65, + 102, + 100, + 111, + 101, + 110, + 105, + 110, + 103, + 34, + 58, + 34, + 50, + 48, + 49, + 57, + 45, + 48, + 52, + 45, + 48, + 57, + 34, + 44, + 34, + 118, + 101, + 114, + 116, + 114, + 111, + 117, + 119, + 101, + 108, + 105, + 106, + 107, + 104, + 101, + 105, + 100, + 97, + 97, + 110, + 100, + 117, + 105, + 100, + 105, + 110, + 103, + 34, + 58, + 34, + 103, + 101, + 104, + 101, + 105, + 109, + 34, + 44, + 34, + 118, + 101, + 114, + 97, + 110, + 116, + 119, + 111, + 111, + 114, + 100, + 101, + 108, + 105, + 106, + 107, + 101, + 79, + 114, + 103, + 97, + 110, + 105, + 115, + 97, + 116, + 105, + 101, + 34, + 58, + 34, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 34, + 44, + 34, + 97, + 114, + 99, + 104, + 105, + 101, + 102, + 110, + 111, + 109, + 105, + 110, + 97, + 116, + 105, + 101, + 34, + 58, + 110, + 117, + 108, + 108, + 44, + 34, + 97, + 114, + 99, + 104, + 105, + 101, + 102, + 97, + 99, + 116, + 105, + 101, + 100, + 97, + 116, + 117, + 109, + 34, + 58, + 110, + 117, + 108, + 108, + 44, + 34, + 97, + 114, + 99, + 104, + 105, + 101, + 102, + 115, + 116, + 97, + 116, + 117, + 115, + 34, + 58, + 34, + 110, + 111, + 103, + 95, + 116, + 101, + 95, + 97, + 114, + 99, + 104, + 105, + 118, + 101, + 114, + 101, + 110, + 34, + 44, + 34, + 98, + 101, + 116, + 97, + 108, + 105, + 110, + 103, + 115, + 105, + 110, + 100, + 105, + 99, + 97, + 116, + 105, + 101, + 34, + 58, + 34, + 103, + 101, + 104, + 101, + 101, + 108, + 34, + 44, + 34, + 108, + 97, + 97, + 116, + 115, + 116, + 101, + 66, + 101, + 116, + 97, + 97, + 108, + 100, + 97, + 116, + 117, + 109, + 34, + 58, + 34, + 50, + 48, + 49, + 57, + 45, + 48, + 49, + 45, + 48, + 49, + 34, + 44, + 34, + 104, + 111, + 111, + 102, + 100, + 122, + 97, + 97, + 107, + 34, + 58, + 110, + 117, + 108, + 108, + 125 + ] + }, + "cookie": [], + "responseTime": 233, + "responseSize": 789 + }, + "id": "110537d0-c922-41c4-9f48-a8bc0490d651", + "assertions": [ + { + "assertion": "Zaak bijwerken met valide communicatiekanaal geeft 200", + "skipped": false + } + ] + }, + { + "cursor": { + "ref": "5f987c54-aed8-4188-9143-05c0290c258e", + "length": 313, + "cycles": 1, + "position": 138, + "iteration": 0, + "httpRequestId": "8d5178cd-1166-4936-9797-ba32ab200fb0" + }, + "item": { + "id": "1eabb971-bb40-4d92-bdb3-8ed934f634cf", + "name": "(zrc-010i) Zaak deels bijwerken met valide communicatiekanaal is mogelijk", + "request": { + "url": { + "host": [ + "{{created_zaak_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Content-Crs", + "value": "EPSG:4326" + }, + { + "key": "Accept-Crs", + "value": "EPSG:4326" + } + ], + "method": "PATCH", + "body": { + "mode": "raw", + "raw": "{\n\t\"communicatiekanaal\": \"https://referentielijsten.roxit.nl/api/v1/communicatiekanalen/2b757868-45c2-42ca-b637-b63ddc87beb4\"\n}" + } + }, + "response": [], + "event": [ + { + "listen": "prerequest", + "script": { + "id": "03afa422-7579-42e1-a263-35d8f52db0c7", + "type": "text/javascript", + "packages": {}, + "exec": [ + "" + ], + "_lastExecutionId": "5a79c73a-5e96-454f-90b1-9a9c0e3e83fa" + } + }, + { + "listen": "test", + "script": { + "id": "21326a38-b71a-4170-8342-1a0f3b2c3d58", + "type": "text/javascript", + "packages": {}, + "exec": [ + "pm.test(\"Zaak deels bijwerken met valide communicatiekanaal geeft 200\", function() {", + " pm.response.to.have.status(200);", + "});", + "", + "if(pm.environment.get(\"created_zaak_url\")) {", + " ", + "}" + ], + "_lastExecutionId": "dc76fd11-e171-4914-9e6c-d3b7c0e4c01e" + } + } + ] + }, + "request": { + "url": { + "protocol": "http", + "port": "8080", + "path": [ + "index.php", + "apps", + "procest", + "api", + "zgw", + "zaken", + "v1", + "zaken", + "d9526ae4-5b15-4f42-b1e8-5f14354fdd7c" + ], + "host": [ + "localhost" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Content-Crs", + "value": "EPSG:4326" + }, + { + "key": "Accept-Crs", + "value": "EPSG:4326" + }, + { + "key": "Authorization", + "value": "Bearer eyJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJwcm9jZXN0LWFkbWluIiwiY2xpZW50X2lkIjoicHJvY2VzdC1hZG1pbiIsImlhdCI6IjE3NzMxNDUxNzQiLCJ1c2VyX2lkIjoicHJvY2VzdC1hZG1pbiIsInVzZXJfcmVwcmVzZW50YXRpb24iOiIifQ.iS96mWo35CFsdnrOoc6CVNN2LUBV1UsukbUjiCtRlOk", + "system": true + }, + { + "key": "User-Agent", + "value": "PostmanRuntime/7.39.1", + "system": true + }, + { + "key": "Accept", + "value": "*/*", + "system": true + }, + { + "key": "Cache-Control", + "value": "no-cache", + "system": true + }, + { + "key": "Postman-Token", + "value": "8b685c00-9f8b-4503-ae42-bad4354c5dd9", + "system": true + }, + { + "key": "Host", + "value": "localhost:8080", + "system": true + }, + { + "key": "Accept-Encoding", + "value": "gzip, deflate, br", + "system": true + }, + { + "key": "Connection", + "value": "keep-alive", + "system": true + }, + { + "key": "Content-Length", + "value": "127", + "system": true + }, + { + "key": "Cookie", + "value": "ocvp3112b4wg=c178d18244554afb85865c6747f13459; oc_sessionPassphrase=LBNdKxRzA0iqoULIruNxDDh2BK3O%2BrCIU8aUmiUcOFvy5Xw1YfjwQNlmBW2IkGwJYtxXh9%2BwDN6vYuGNX07tXzkBtjQJUWTGdzf8AIOUIVxVx5DfyWAQZ7nmYmQv6XSE; nc_sameSiteCookielax=true; nc_sameSiteCookiestrict=true", + "system": true + } + ], + "method": "PATCH", + "body": { + "mode": "raw", + "raw": "{\n\t\"communicatiekanaal\": \"https://referentielijsten.roxit.nl/api/v1/communicatiekanalen/2b757868-45c2-42ca-b637-b63ddc87beb4\"\n}" + }, + "auth": { + "type": "jwt", + "jwt": [ + { + "type": "string", + "value": "{\r\n \"iss\": \"procest-admin\",\r\n \"client_id\": \"procest-admin\",\r\n \"iat\": \"1773145174\",\r\n \"user_id\": \"procest-admin\",\r\n \"user_representation\": \"\"\r\n}", + "key": "payload" + }, + { + "type": "string", + "value": "procest-admin-secret-key-for-testing", + "key": "secret" + }, + { + "type": "string", + "value": "HS256", + "key": "algorithm" + }, + { + "type": "boolean", + "value": false, + "key": "isSecretBase64Encoded" + }, + { + "type": "string", + "value": "header", + "key": "addTokenTo" + }, + { + "type": "string", + "value": "Bearer", + "key": "headerPrefix" + }, + { + "type": "string", + "value": "token", + "key": "queryParamKey" + }, + { + "type": "string", + "value": "{}", + "key": "header" + } + ] + } + }, + "response": { + "id": "8903aafd-60bd-4391-af2a-6daa17d2e938", + "status": "OK", + "code": 200, + "header": [ + { + "key": "Date", + "value": "Tue, 10 Mar 2026 12:19:34 GMT" + }, + { + "key": "Server", + "value": "Apache/2.4.66 (Debian)" + }, + { + "key": "X-Content-Type-Options", + "value": "nosniff" + }, + { + "key": "X-Frame-Options", + "value": "SAMEORIGIN" + }, + { + "key": "X-Permitted-Cross-Domain-Policies", + "value": "none" + }, + { + "key": "X-Robots-Tag", + "value": "noindex, nofollow" + }, + { + "key": "Referrer-Policy", + "value": "no-referrer" + }, + { + "key": "X-Powered-By", + "value": "PHP/8.3.30" + }, + { + "key": "Content-Security-Policy", + "value": "default-src 'none';base-uri 'none';manifest-src 'self';frame-ancestors 'none'" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=c178d18244554afb85865c6747f13459; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=c178d18244554afb85865c6747f13459; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=c178d18244554afb85865c6747f13459; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=c178d18244554afb85865c6747f13459; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=c178d18244554afb85865c6747f13459; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=e925d4eea55c629d564b8f0ff2cba72b; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=e925d4eea55c629d564b8f0ff2cba72b; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=e925d4eea55c629d564b8f0ff2cba72b; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=e925d4eea55c629d564b8f0ff2cba72b; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=e925d4eea55c629d564b8f0ff2cba72b; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "X-Request-Id", + "value": "STWcQ4iAcWBGyRnjlFxI" + }, + { + "key": "Cache-Control", + "value": "no-cache, no-store, must-revalidate" + }, + { + "key": "Feature-Policy", + "value": "autoplay 'none';camera 'none';fullscreen 'none';geolocation 'none';microphone 'none';payment 'none'" + }, + { + "key": "X-User-Id", + "value": "admin" + }, + { + "key": "Content-Encoding", + "value": "gzip" + }, + { + "key": "Content-Length", + "value": "428" + }, + { + "key": "Keep-Alive", + "value": "timeout=5, max=98" + }, + { + "key": "Connection", + "value": "Keep-Alive" + }, + { + "key": "Content-Type", + "value": "application/json; charset=utf-8" + } + ], + "stream": { + "type": "Buffer", + "data": [ + 123, + 34, + 117, + 114, + 108, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 122, + 97, + 107, + 101, + 110, + 92, + 47, + 118, + 49, + 92, + 47, + 122, + 97, + 107, + 101, + 110, + 92, + 47, + 100, + 57, + 53, + 50, + 54, + 97, + 101, + 52, + 45, + 53, + 98, + 49, + 53, + 45, + 52, + 102, + 52, + 50, + 45, + 98, + 49, + 101, + 56, + 45, + 53, + 102, + 49, + 52, + 51, + 53, + 52, + 102, + 100, + 100, + 55, + 99, + 34, + 44, + 34, + 117, + 117, + 105, + 100, + 34, + 58, + 34, + 100, + 57, + 53, + 50, + 54, + 97, + 101, + 52, + 45, + 53, + 98, + 49, + 53, + 45, + 52, + 102, + 52, + 50, + 45, + 98, + 49, + 101, + 56, + 45, + 53, + 102, + 49, + 52, + 51, + 53, + 52, + 102, + 100, + 100, + 55, + 99, + 34, + 44, + 34, + 105, + 100, + 101, + 110, + 116, + 105, + 102, + 105, + 99, + 97, + 116, + 105, + 101, + 34, + 58, + 34, + 34, + 44, + 34, + 111, + 109, + 115, + 99, + 104, + 114, + 105, + 106, + 118, + 105, + 110, + 103, + 34, + 58, + 34, + 115, + 116, + 114, + 105, + 110, + 103, + 32, + 50, + 34, + 44, + 34, + 116, + 111, + 101, + 108, + 105, + 99, + 104, + 116, + 105, + 110, + 103, + 34, + 58, + 34, + 115, + 116, + 114, + 105, + 110, + 103, + 34, + 44, + 34, + 122, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 105, + 92, + 47, + 118, + 49, + 92, + 47, + 122, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 110, + 92, + 47, + 54, + 49, + 57, + 100, + 99, + 51, + 101, + 53, + 45, + 53, + 50, + 102, + 49, + 45, + 52, + 50, + 57, + 52, + 45, + 97, + 53, + 54, + 57, + 45, + 102, + 50, + 49, + 100, + 49, + 54, + 102, + 52, + 52, + 56, + 55, + 57, + 34, + 44, + 34, + 114, + 101, + 103, + 105, + 115, + 116, + 114, + 97, + 116, + 105, + 101, + 100, + 97, + 116, + 117, + 109, + 34, + 58, + 34, + 50, + 48, + 50, + 54, + 45, + 48, + 51, + 45, + 49, + 48, + 84, + 49, + 50, + 58, + 49, + 57, + 58, + 51, + 51, + 43, + 48, + 48, + 58, + 48, + 48, + 34, + 44, + 34, + 115, + 116, + 97, + 114, + 116, + 100, + 97, + 116, + 117, + 109, + 34, + 58, + 34, + 50, + 48, + 49, + 57, + 45, + 48, + 52, + 45, + 48, + 57, + 34, + 44, + 34, + 101, + 105, + 110, + 100, + 100, + 97, + 116, + 117, + 109, + 34, + 58, + 110, + 117, + 108, + 108, + 44, + 34, + 101, + 105, + 110, + 100, + 100, + 97, + 116, + 117, + 109, + 71, + 101, + 112, + 108, + 97, + 110, + 100, + 34, + 58, + 34, + 50, + 48, + 49, + 57, + 45, + 48, + 52, + 45, + 50, + 48, + 34, + 44, + 34, + 117, + 105, + 116, + 101, + 114, + 108, + 105, + 106, + 107, + 101, + 69, + 105, + 110, + 100, + 100, + 97, + 116, + 117, + 109, + 65, + 102, + 100, + 111, + 101, + 110, + 105, + 110, + 103, + 34, + 58, + 34, + 50, + 48, + 49, + 57, + 45, + 48, + 52, + 45, + 48, + 57, + 34, + 44, + 34, + 118, + 101, + 114, + 116, + 114, + 111, + 117, + 119, + 101, + 108, + 105, + 106, + 107, + 104, + 101, + 105, + 100, + 97, + 97, + 110, + 100, + 117, + 105, + 100, + 105, + 110, + 103, + 34, + 58, + 34, + 103, + 101, + 104, + 101, + 105, + 109, + 34, + 44, + 34, + 118, + 101, + 114, + 97, + 110, + 116, + 119, + 111, + 111, + 114, + 100, + 101, + 108, + 105, + 106, + 107, + 101, + 79, + 114, + 103, + 97, + 110, + 105, + 115, + 97, + 116, + 105, + 101, + 34, + 58, + 34, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 34, + 44, + 34, + 97, + 114, + 99, + 104, + 105, + 101, + 102, + 110, + 111, + 109, + 105, + 110, + 97, + 116, + 105, + 101, + 34, + 58, + 110, + 117, + 108, + 108, + 44, + 34, + 97, + 114, + 99, + 104, + 105, + 101, + 102, + 97, + 99, + 116, + 105, + 101, + 100, + 97, + 116, + 117, + 109, + 34, + 58, + 110, + 117, + 108, + 108, + 44, + 34, + 97, + 114, + 99, + 104, + 105, + 101, + 102, + 115, + 116, + 97, + 116, + 117, + 115, + 34, + 58, + 34, + 110, + 111, + 103, + 95, + 116, + 101, + 95, + 97, + 114, + 99, + 104, + 105, + 118, + 101, + 114, + 101, + 110, + 34, + 44, + 34, + 98, + 101, + 116, + 97, + 108, + 105, + 110, + 103, + 115, + 105, + 110, + 100, + 105, + 99, + 97, + 116, + 105, + 101, + 34, + 58, + 34, + 103, + 101, + 104, + 101, + 101, + 108, + 34, + 44, + 34, + 108, + 97, + 97, + 116, + 115, + 116, + 101, + 66, + 101, + 116, + 97, + 97, + 108, + 100, + 97, + 116, + 117, + 109, + 34, + 58, + 34, + 50, + 48, + 49, + 57, + 45, + 48, + 49, + 45, + 48, + 49, + 34, + 44, + 34, + 104, + 111, + 111, + 102, + 100, + 122, + 97, + 97, + 107, + 34, + 58, + 110, + 117, + 108, + 108, + 125 + ] + }, + "cookie": [], + "responseTime": 202, + "responseSize": 789 + }, + "id": "1eabb971-bb40-4d92-bdb3-8ed934f634cf", + "assertions": [ + { + "assertion": "Zaak deels bijwerken met valide communicatiekanaal geeft 200", + "skipped": false + } + ] + }, + { + "cursor": { + "ref": "9fd529b9-3360-456f-98a8-58a37543dd9f", + "length": 313, + "cycles": 1, + "position": 139, + "iteration": 0, + "httpRequestId": "4947e830-a8e4-45fe-b11c-3c38be63fffc" + }, + "item": { + "id": "a30ff8a3-f0e4-4965-8c70-f00123907d0b", + "name": "(zrc-011a) Zaak aanmaken met ongeldige url in relevanteAndereZaken is onmogelijk", + "request": { + "url": { + "path": [ + "zaken" + ], + "host": [ + "{{zrc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Content-Crs", + "value": "EPSG:4326" + }, + { + "key": "Accept-Crs", + "value": "EPSG:4326" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\r\n \"bronorganisatie\": \"000000000\",\r\n \"omschrijving\": \"string\",\r\n \"toelichting\": \"string\",\r\n \"zaaktype\": \"{{zaaktype_url}}\",\r\n \"registratiedatum\": \"2019-04-09\",\r\n \"verantwoordelijkeOrganisatie\": \"000000000\",\r\n \"startdatum\": \"2019-04-09\",\r\n \"einddatum\": null,\r\n \"einddatumGepland\": \"2019-04-20\",\r\n \"uiterlijkeEinddatumAfdoening\": \"2019-04-09\",\r\n \"publicatiedatum\": \"2019-04-09\",\r\n \"communicatiekanaal\": \"\",\r\n \"productenOfDiensten\": [],\r\n \"vertrouwelijkheidaanduiding\": \"geheim\",\r\n \"betalingsindicatie\": \"geheel\",\r\n \"betalingsindicatieWeergave\": null,\r\n \"laatsteBetaaldatum\": \"2019-01-01T00:00:00Z\",\r\n \"zaakgeometrie\": {\r\n \"type\": \"Point\",\r\n \"coordinates\": [\r\n 53.0,\r\n 5.0\r\n ]\r\n },\r\n \"verlenging\": null,\r\n \"opschorting\": {\r\n \"indicatie\": true,\r\n \"reden\": \"string\"\r\n },\r\n \"selectielijstklasse\": \"https://referentielijsten.roxit.nl/api/v1/resultaten/0fe71ce3-b1e1-48eb-9070-be2756fc71b5\",\r\n \"hoofdzaak\": null,\r\n \"deelzaken\": [],\r\n \"relevanteAndereZaken\": [\r\n {\r\n \"url\": \"https://zaken-api.test.vng.cloud/api/v1/zaken/x12\",\r\n \"aardRelatie\": \"vervolg\"\r\n }\r\n ],\r\n \"eigenschappen\": [],\r\n \"rollen\": [],\r\n \"status\": null,\r\n \"zaakinformatieobjecten\": [],\r\n \"zaakobjecten\": [],\r\n \"resultaat\": null,\r\n \"kenmerken\": [],\r\n \"archiefnominatie\": null,\r\n \"archiefstatus\": \"nog_te_archiveren\",\r\n \"archiefactiedatum\": null,\r\n \"opdrachtgevendeOrganisatie\": null,\r\n \"processobjectaard\": null,\r\n \"startdatumBewaartermijn\": null,\r\n \"processobject\": null\r\n}" + } + }, + "response": [], + "event": [ + { + "listen": "prerequest", + "script": { + "id": "8447db5e-d35f-4b42-bd58-c823805ac1a2", + "type": "text/javascript", + "packages": {}, + "exec": [ + "" + ], + "_lastExecutionId": "9dcb7f60-3995-44f7-8af3-768f6e31d22e" + } + }, + { + "listen": "test", + "script": { + "id": "1fce06d8-58af-49db-8a2a-247238c85136", + "type": "text/javascript", + "packages": {}, + "exec": [ + "pm.test(\"Zaak aanmaken met ongeldige url in relevanteAndereZaken geeft 400\", function() {", + " pm.response.to.have.status(400);", + " ", + " // Verify that the 400 is returned for the correct reason", + " var error = pm.response.json()[\"invalidParams\"][0];", + " pm.expect(error.name).to.be.equal(\"relevanteAndereZaken.0.url\");", + " pm.expect(error.code).to.be.equal(\"bad-url\");", + "});", + "", + "if(pm.response.code == 201) {", + " pm.environment.set(\"created_zaak_url\", pm.response.json().url);", + "", + "}" + ], + "_lastExecutionId": "491f1a07-83a3-4000-921c-fb844b123338" + } + } + ] + }, + "request": { + "url": { + "protocol": "http", + "port": "8080", + "path": [ + "index.php", + "apps", + "procest", + "api", + "zgw", + "zaken", + "v1", + "zaken" + ], + "host": [ + "localhost" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Content-Crs", + "value": "EPSG:4326" + }, + { + "key": "Accept-Crs", + "value": "EPSG:4326" + }, + { + "key": "Authorization", + "value": "Bearer eyJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJwcm9jZXN0LWFkbWluIiwiY2xpZW50X2lkIjoicHJvY2VzdC1hZG1pbiIsImlhdCI6IjE3NzMxNDUxNzQiLCJ1c2VyX2lkIjoicHJvY2VzdC1hZG1pbiIsInVzZXJfcmVwcmVzZW50YXRpb24iOiIifQ.iS96mWo35CFsdnrOoc6CVNN2LUBV1UsukbUjiCtRlOk", + "system": true + }, + { + "key": "User-Agent", + "value": "PostmanRuntime/7.39.1", + "system": true + }, + { + "key": "Accept", + "value": "*/*", + "system": true + }, + { + "key": "Cache-Control", + "value": "no-cache", + "system": true + }, + { + "key": "Postman-Token", + "value": "a73e5a79-2dd6-47c5-97ac-9d9810373700", + "system": true + }, + { + "key": "Host", + "value": "localhost:8080", + "system": true + }, + { + "key": "Accept-Encoding", + "value": "gzip, deflate, br", + "system": true + }, + { + "key": "Connection", + "value": "keep-alive", + "system": true + }, + { + "key": "Content-Length", + "value": "1740", + "system": true + }, + { + "key": "Cookie", + "value": "ocvp3112b4wg=e925d4eea55c629d564b8f0ff2cba72b; oc_sessionPassphrase=LBNdKxRzA0iqoULIruNxDDh2BK3O%2BrCIU8aUmiUcOFvy5Xw1YfjwQNlmBW2IkGwJYtxXh9%2BwDN6vYuGNX07tXzkBtjQJUWTGdzf8AIOUIVxVx5DfyWAQZ7nmYmQv6XSE; nc_sameSiteCookielax=true; nc_sameSiteCookiestrict=true", + "system": true + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\r\n \"bronorganisatie\": \"000000000\",\r\n \"omschrijving\": \"string\",\r\n \"toelichting\": \"string\",\r\n \"zaaktype\": \"http://localhost:8080/index.php/apps/procest/api/zgw/catalogi/v1/zaaktypen/619dc3e5-52f1-4294-a569-f21d16f44879\",\r\n \"registratiedatum\": \"2019-04-09\",\r\n \"verantwoordelijkeOrganisatie\": \"000000000\",\r\n \"startdatum\": \"2019-04-09\",\r\n \"einddatum\": null,\r\n \"einddatumGepland\": \"2019-04-20\",\r\n \"uiterlijkeEinddatumAfdoening\": \"2019-04-09\",\r\n \"publicatiedatum\": \"2019-04-09\",\r\n \"communicatiekanaal\": \"\",\r\n \"productenOfDiensten\": [],\r\n \"vertrouwelijkheidaanduiding\": \"geheim\",\r\n \"betalingsindicatie\": \"geheel\",\r\n \"betalingsindicatieWeergave\": null,\r\n \"laatsteBetaaldatum\": \"2019-01-01T00:00:00Z\",\r\n \"zaakgeometrie\": {\r\n \"type\": \"Point\",\r\n \"coordinates\": [\r\n 53.0,\r\n 5.0\r\n ]\r\n },\r\n \"verlenging\": null,\r\n \"opschorting\": {\r\n \"indicatie\": true,\r\n \"reden\": \"string\"\r\n },\r\n \"selectielijstklasse\": \"https://referentielijsten.roxit.nl/api/v1/resultaten/0fe71ce3-b1e1-48eb-9070-be2756fc71b5\",\r\n \"hoofdzaak\": null,\r\n \"deelzaken\": [],\r\n \"relevanteAndereZaken\": [\r\n {\r\n \"url\": \"https://zaken-api.test.vng.cloud/api/v1/zaken/x12\",\r\n \"aardRelatie\": \"vervolg\"\r\n }\r\n ],\r\n \"eigenschappen\": [],\r\n \"rollen\": [],\r\n \"status\": null,\r\n \"zaakinformatieobjecten\": [],\r\n \"zaakobjecten\": [],\r\n \"resultaat\": null,\r\n \"kenmerken\": [],\r\n \"archiefnominatie\": null,\r\n \"archiefstatus\": \"nog_te_archiveren\",\r\n \"archiefactiedatum\": null,\r\n \"opdrachtgevendeOrganisatie\": null,\r\n \"processobjectaard\": null,\r\n \"startdatumBewaartermijn\": null,\r\n \"processobject\": null\r\n}" + }, + "auth": { + "type": "jwt", + "jwt": [ + { + "type": "string", + "value": "{\r\n \"iss\": \"procest-admin\",\r\n \"client_id\": \"procest-admin\",\r\n \"iat\": \"1773145174\",\r\n \"user_id\": \"procest-admin\",\r\n \"user_representation\": \"\"\r\n}", + "key": "payload" + }, + { + "type": "string", + "value": "procest-admin-secret-key-for-testing", + "key": "secret" + }, + { + "type": "string", + "value": "HS256", + "key": "algorithm" + }, + { + "type": "boolean", + "value": false, + "key": "isSecretBase64Encoded" + }, + { + "type": "string", + "value": "header", + "key": "addTokenTo" + }, + { + "type": "string", + "value": "Bearer", + "key": "headerPrefix" + }, + { + "type": "string", + "value": "token", + "key": "queryParamKey" + }, + { + "type": "string", + "value": "{}", + "key": "header" + } + ] + } + }, + "response": { + "id": "04bdd966-1db3-41fa-bc0e-78ca66296324", + "status": "Bad request", + "code": 400, + "header": [ + { + "key": "Date", + "value": "Tue, 10 Mar 2026 12:19:34 GMT" + }, + { + "key": "Server", + "value": "Apache/2.4.66 (Debian)" + }, + { + "key": "X-Content-Type-Options", + "value": "nosniff" + }, + { + "key": "X-Frame-Options", + "value": "SAMEORIGIN" + }, + { + "key": "X-Permitted-Cross-Domain-Policies", + "value": "none" + }, + { + "key": "X-Robots-Tag", + "value": "noindex, nofollow" + }, + { + "key": "Referrer-Policy", + "value": "no-referrer" + }, + { + "key": "X-Powered-By", + "value": "PHP/8.3.30" + }, + { + "key": "Content-Security-Policy", + "value": "default-src 'none';base-uri 'none';manifest-src 'self';frame-ancestors 'none'" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=e925d4eea55c629d564b8f0ff2cba72b; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=e925d4eea55c629d564b8f0ff2cba72b; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=e925d4eea55c629d564b8f0ff2cba72b; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=e925d4eea55c629d564b8f0ff2cba72b; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=e925d4eea55c629d564b8f0ff2cba72b; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=607318b8572273a874c47a69d0643188; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=607318b8572273a874c47a69d0643188; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=607318b8572273a874c47a69d0643188; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=607318b8572273a874c47a69d0643188; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=607318b8572273a874c47a69d0643188; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "X-Request-Id", + "value": "fXokTqAV8QUmkzeT13dH" + }, + { + "key": "Cache-Control", + "value": "no-cache, no-store, must-revalidate" + }, + { + "key": "Feature-Policy", + "value": "autoplay 'none';camera 'none';fullscreen 'none';geolocation 'none';microphone 'none';payment 'none'" + }, + { + "key": "X-User-Id", + "value": "admin" + }, + { + "key": "Content-Length", + "value": "162" + }, + { + "key": "Connection", + "value": "close" + }, + { + "key": "Content-Type", + "value": "application/json; charset=utf-8" + } + ], + "stream": { + "type": "Buffer", + "data": [ + 123, + 34, + 100, + 101, + 116, + 97, + 105, + 108, + 34, + 58, + 34, + 114, + 101, + 108, + 101, + 118, + 97, + 110, + 116, + 101, + 65, + 110, + 100, + 101, + 114, + 101, + 90, + 97, + 107, + 101, + 110, + 32, + 98, + 101, + 118, + 97, + 116, + 32, + 101, + 101, + 110, + 32, + 111, + 110, + 103, + 101, + 108, + 100, + 105, + 103, + 101, + 32, + 85, + 82, + 76, + 46, + 34, + 44, + 34, + 105, + 110, + 118, + 97, + 108, + 105, + 100, + 80, + 97, + 114, + 97, + 109, + 115, + 34, + 58, + 91, + 123, + 34, + 110, + 97, + 109, + 101, + 34, + 58, + 34, + 114, + 101, + 108, + 101, + 118, + 97, + 110, + 116, + 101, + 65, + 110, + 100, + 101, + 114, + 101, + 90, + 97, + 107, + 101, + 110, + 46, + 48, + 46, + 117, + 114, + 108, + 34, + 44, + 34, + 99, + 111, + 100, + 101, + 34, + 58, + 34, + 98, + 97, + 100, + 45, + 117, + 114, + 108, + 34, + 44, + 34, + 114, + 101, + 97, + 115, + 111, + 110, + 34, + 58, + 34, + 68, + 101, + 32, + 85, + 82, + 76, + 32, + 105, + 115, + 32, + 111, + 110, + 103, + 101, + 108, + 100, + 105, + 103, + 46, + 34, + 125, + 93, + 125 + ] + }, + "cookie": [], + "responseTime": 109, + "responseSize": 162 + }, + "id": "a30ff8a3-f0e4-4965-8c70-f00123907d0b", + "assertions": [ + { + "assertion": "Zaak aanmaken met ongeldige url in relevanteAndereZaken geeft 400", + "skipped": false + } + ] + }, + { + "cursor": { + "ref": "b23e6c62-758b-42f8-a4a2-caa115eaaf0b", + "length": 313, + "cycles": 1, + "position": 140, + "iteration": 0, + "httpRequestId": "0708ae07-eeee-41e0-b2bc-d9e7de8b5038" + }, + "item": { + "id": "3252aff3-9857-4eb5-a51f-f6f26b04e77c", + "name": "(zrc-011b) Zaak bijwerken met ongeldige url in relevanteAndereZaken is onmogelijk", + "request": { + "url": { + "host": [ + "{{zaak_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Content-Crs", + "value": "EPSG:4326" + }, + { + "key": "Accept-Crs", + "value": "EPSG:4326" + } + ], + "method": "PUT", + "body": { + "mode": "raw", + "raw": "{\r\n \"bronorganisatie\": \"000000000\",\r\n \"omschrijving\": \"string\",\r\n \"toelichting\": \"string\",\r\n \"zaaktype\": \"{{zaaktype_url}}\",\r\n \"registratiedatum\": \"2019-04-09\",\r\n \"verantwoordelijkeOrganisatie\": \"000000000\",\r\n \"startdatum\": \"2019-04-09\",\r\n \"einddatum\": null,\r\n \"einddatumGepland\": \"2019-04-20\",\r\n \"uiterlijkeEinddatumAfdoening\": \"2019-04-09\",\r\n \"publicatiedatum\": \"2019-04-09\",\r\n \"communicatiekanaal\": \"\",\r\n \"productenOfDiensten\": [],\r\n \"vertrouwelijkheidaanduiding\": \"geheim\",\r\n \"betalingsindicatie\": \"geheel\",\r\n \"betalingsindicatieWeergave\": null,\r\n \"laatsteBetaaldatum\": \"2019-01-01T00:00:00Z\",\r\n \"zaakgeometrie\": {\r\n \"type\": \"Point\",\r\n \"coordinates\": [\r\n 53.0,\r\n 5.0\r\n ]\r\n },\r\n \"verlenging\": null,\r\n \"opschorting\": {\r\n \"indicatie\": true,\r\n \"reden\": \"string\"\r\n },\r\n \"selectielijstklasse\": \"https://referentielijsten.roxit.nl/api/v1/resultaten/0fe71ce3-b1e1-48eb-9070-be2756fc71b5\",\r\n \"hoofdzaak\": null,\r\n \"deelzaken\": [],\r\n \"relevanteAndereZaken\": [\r\n {\r\n \"url\": \"https://zaken-api.test.vng.cloud/api/v1/zaken/x12\",\r\n \"aardRelatie\": \"vervolg\"\r\n }\r\n ],\r\n \"eigenschappen\": [],\r\n \"rollen\": [],\r\n \"status\": null,\r\n \"zaakinformatieobjecten\": [],\r\n \"zaakobjecten\": [],\r\n \"resultaat\": null,\r\n \"kenmerken\": [],\r\n \"archiefnominatie\": null,\r\n \"archiefstatus\": \"nog_te_archiveren\",\r\n \"archiefactiedatum\": null,\r\n \"opdrachtgevendeOrganisatie\": null,\r\n \"processobjectaard\": null,\r\n \"startdatumBewaartermijn\": null,\r\n \"processobject\": null\r\n}" + } + }, + "response": [], + "event": [ + { + "listen": "prerequest", + "script": { + "id": "292a5287-b300-4a34-94a2-3f3e8ebb71a5", + "type": "text/javascript", + "packages": {}, + "exec": [ + "" + ], + "_lastExecutionId": "197dc82c-ceee-466d-b342-8feb69952e24" + } + }, + { + "listen": "test", + "script": { + "id": "daff69c2-13a2-4174-9759-0e55fca25485", + "type": "text/javascript", + "packages": {}, + "exec": [ + "pm.test(\"Zaak bijwerken met ongeldige url in relevanteAndereZaken geeft 400\", function() {", + " pm.response.to.have.status(400);", + " ", + " // Verify that the 400 is returned for the correct reason", + " var error = pm.response.json()[\"invalidParams\"][0];", + " pm.expect(error.name).to.be.equal(\"relevanteAndereZaken.0.url\");", + " pm.expect(error.code).to.be.equal(\"bad-url\");", + "});" + ], + "_lastExecutionId": "166a7b56-bf27-4eaa-9abd-9349dbdae72c" + } + } + ] + }, + "request": { + "url": { + "protocol": "http", + "port": "8080", + "path": [ + "index.php", + "apps", + "procest", + "api", + "zgw", + "zaken", + "v1", + "zaken", + "1ea85620-912a-4a68-b62e-65570c1dfdfa" + ], + "host": [ + "localhost" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Content-Crs", + "value": "EPSG:4326" + }, + { + "key": "Accept-Crs", + "value": "EPSG:4326" + }, + { + "key": "Authorization", + "value": "Bearer eyJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJwcm9jZXN0LWFkbWluIiwiY2xpZW50X2lkIjoicHJvY2VzdC1hZG1pbiIsImlhdCI6IjE3NzMxNDUxNzUiLCJ1c2VyX2lkIjoicHJvY2VzdC1hZG1pbiIsInVzZXJfcmVwcmVzZW50YXRpb24iOiIifQ.f7ugI3I7RHCNobET3oAKCwPM1g2tdx0QKGDbE_A-TMg", + "system": true + }, + { + "key": "User-Agent", + "value": "PostmanRuntime/7.39.1", + "system": true + }, + { + "key": "Accept", + "value": "*/*", + "system": true + }, + { + "key": "Cache-Control", + "value": "no-cache", + "system": true + }, + { + "key": "Postman-Token", + "value": "c27128c8-e98e-4a8b-9afb-30496f9b9bae", + "system": true + }, + { + "key": "Host", + "value": "localhost:8080", + "system": true + }, + { + "key": "Accept-Encoding", + "value": "gzip, deflate, br", + "system": true + }, + { + "key": "Connection", + "value": "keep-alive", + "system": true + }, + { + "key": "Content-Length", + "value": "1740", + "system": true + }, + { + "key": "Cookie", + "value": "ocvp3112b4wg=607318b8572273a874c47a69d0643188; oc_sessionPassphrase=LBNdKxRzA0iqoULIruNxDDh2BK3O%2BrCIU8aUmiUcOFvy5Xw1YfjwQNlmBW2IkGwJYtxXh9%2BwDN6vYuGNX07tXzkBtjQJUWTGdzf8AIOUIVxVx5DfyWAQZ7nmYmQv6XSE; nc_sameSiteCookielax=true; nc_sameSiteCookiestrict=true", + "system": true + } + ], + "method": "PUT", + "body": { + "mode": "raw", + "raw": "{\r\n \"bronorganisatie\": \"000000000\",\r\n \"omschrijving\": \"string\",\r\n \"toelichting\": \"string\",\r\n \"zaaktype\": \"http://localhost:8080/index.php/apps/procest/api/zgw/catalogi/v1/zaaktypen/619dc3e5-52f1-4294-a569-f21d16f44879\",\r\n \"registratiedatum\": \"2019-04-09\",\r\n \"verantwoordelijkeOrganisatie\": \"000000000\",\r\n \"startdatum\": \"2019-04-09\",\r\n \"einddatum\": null,\r\n \"einddatumGepland\": \"2019-04-20\",\r\n \"uiterlijkeEinddatumAfdoening\": \"2019-04-09\",\r\n \"publicatiedatum\": \"2019-04-09\",\r\n \"communicatiekanaal\": \"\",\r\n \"productenOfDiensten\": [],\r\n \"vertrouwelijkheidaanduiding\": \"geheim\",\r\n \"betalingsindicatie\": \"geheel\",\r\n \"betalingsindicatieWeergave\": null,\r\n \"laatsteBetaaldatum\": \"2019-01-01T00:00:00Z\",\r\n \"zaakgeometrie\": {\r\n \"type\": \"Point\",\r\n \"coordinates\": [\r\n 53.0,\r\n 5.0\r\n ]\r\n },\r\n \"verlenging\": null,\r\n \"opschorting\": {\r\n \"indicatie\": true,\r\n \"reden\": \"string\"\r\n },\r\n \"selectielijstklasse\": \"https://referentielijsten.roxit.nl/api/v1/resultaten/0fe71ce3-b1e1-48eb-9070-be2756fc71b5\",\r\n \"hoofdzaak\": null,\r\n \"deelzaken\": [],\r\n \"relevanteAndereZaken\": [\r\n {\r\n \"url\": \"https://zaken-api.test.vng.cloud/api/v1/zaken/x12\",\r\n \"aardRelatie\": \"vervolg\"\r\n }\r\n ],\r\n \"eigenschappen\": [],\r\n \"rollen\": [],\r\n \"status\": null,\r\n \"zaakinformatieobjecten\": [],\r\n \"zaakobjecten\": [],\r\n \"resultaat\": null,\r\n \"kenmerken\": [],\r\n \"archiefnominatie\": null,\r\n \"archiefstatus\": \"nog_te_archiveren\",\r\n \"archiefactiedatum\": null,\r\n \"opdrachtgevendeOrganisatie\": null,\r\n \"processobjectaard\": null,\r\n \"startdatumBewaartermijn\": null,\r\n \"processobject\": null\r\n}" + }, + "auth": { + "type": "jwt", + "jwt": [ + { + "type": "string", + "value": "{\r\n \"iss\": \"procest-admin\",\r\n \"client_id\": \"procest-admin\",\r\n \"iat\": \"1773145175\",\r\n \"user_id\": \"procest-admin\",\r\n \"user_representation\": \"\"\r\n}", + "key": "payload" + }, + { + "type": "string", + "value": "procest-admin-secret-key-for-testing", + "key": "secret" + }, + { + "type": "string", + "value": "HS256", + "key": "algorithm" + }, + { + "type": "boolean", + "value": false, + "key": "isSecretBase64Encoded" + }, + { + "type": "string", + "value": "header", + "key": "addTokenTo" + }, + { + "type": "string", + "value": "Bearer", + "key": "headerPrefix" + }, + { + "type": "string", + "value": "token", + "key": "queryParamKey" + }, + { + "type": "string", + "value": "{}", + "key": "header" + } + ] + } + }, + "response": { + "id": "56c5c34e-c83a-4ec9-8d21-d9d5dcc2a67f", + "status": "Bad request", + "code": 400, + "header": [ + { + "key": "Date", + "value": "Tue, 10 Mar 2026 12:19:34 GMT" + }, + { + "key": "Server", + "value": "Apache/2.4.66 (Debian)" + }, + { + "key": "X-Content-Type-Options", + "value": "nosniff" + }, + { + "key": "X-Frame-Options", + "value": "SAMEORIGIN" + }, + { + "key": "X-Permitted-Cross-Domain-Policies", + "value": "none" + }, + { + "key": "X-Robots-Tag", + "value": "noindex, nofollow" + }, + { + "key": "Referrer-Policy", + "value": "no-referrer" + }, + { + "key": "X-Powered-By", + "value": "PHP/8.3.30" + }, + { + "key": "Content-Security-Policy", + "value": "default-src 'none';base-uri 'none';manifest-src 'self';frame-ancestors 'none'" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=607318b8572273a874c47a69d0643188; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=607318b8572273a874c47a69d0643188; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=607318b8572273a874c47a69d0643188; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=607318b8572273a874c47a69d0643188; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=607318b8572273a874c47a69d0643188; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=5d2f6b22423eb95cda537529e2f6649f; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=5d2f6b22423eb95cda537529e2f6649f; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=5d2f6b22423eb95cda537529e2f6649f; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=5d2f6b22423eb95cda537529e2f6649f; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=5d2f6b22423eb95cda537529e2f6649f; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "X-Request-Id", + "value": "FNf8GG7IV0ozH7wO5m07" + }, + { + "key": "Cache-Control", + "value": "no-cache, no-store, must-revalidate" + }, + { + "key": "Feature-Policy", + "value": "autoplay 'none';camera 'none';fullscreen 'none';geolocation 'none';microphone 'none';payment 'none'" + }, + { + "key": "X-User-Id", + "value": "admin" + }, + { + "key": "Content-Length", + "value": "162" + }, + { + "key": "Connection", + "value": "close" + }, + { + "key": "Content-Type", + "value": "application/json; charset=utf-8" + } + ], + "stream": { + "type": "Buffer", + "data": [ + 123, + 34, + 100, + 101, + 116, + 97, + 105, + 108, + 34, + 58, + 34, + 114, + 101, + 108, + 101, + 118, + 97, + 110, + 116, + 101, + 65, + 110, + 100, + 101, + 114, + 101, + 90, + 97, + 107, + 101, + 110, + 32, + 98, + 101, + 118, + 97, + 116, + 32, + 101, + 101, + 110, + 32, + 111, + 110, + 103, + 101, + 108, + 100, + 105, + 103, + 101, + 32, + 85, + 82, + 76, + 46, + 34, + 44, + 34, + 105, + 110, + 118, + 97, + 108, + 105, + 100, + 80, + 97, + 114, + 97, + 109, + 115, + 34, + 58, + 91, + 123, + 34, + 110, + 97, + 109, + 101, + 34, + 58, + 34, + 114, + 101, + 108, + 101, + 118, + 97, + 110, + 116, + 101, + 65, + 110, + 100, + 101, + 114, + 101, + 90, + 97, + 107, + 101, + 110, + 46, + 48, + 46, + 117, + 114, + 108, + 34, + 44, + 34, + 99, + 111, + 100, + 101, + 34, + 58, + 34, + 98, + 97, + 100, + 45, + 117, + 114, + 108, + 34, + 44, + 34, + 114, + 101, + 97, + 115, + 111, + 110, + 34, + 58, + 34, + 68, + 101, + 32, + 85, + 82, + 76, + 32, + 105, + 115, + 32, + 111, + 110, + 103, + 101, + 108, + 100, + 105, + 103, + 46, + 34, + 125, + 93, + 125 + ] + }, + "cookie": [], + "responseTime": 113, + "responseSize": 162 + }, + "id": "3252aff3-9857-4eb5-a51f-f6f26b04e77c", + "assertions": [ + { + "assertion": "Zaak bijwerken met ongeldige url in relevanteAndereZaken geeft 400", + "skipped": false + } + ] + }, + { + "cursor": { + "ref": "0310823d-79f6-46db-8bb5-37cc925e8812", + "length": 313, + "cycles": 1, + "position": 141, + "iteration": 0, + "httpRequestId": "7b20f158-1c5b-4bd9-a578-8c0c6e65e413" + }, + "item": { + "id": "05770c30-2677-4792-95c2-cf7a6d3ac65c", + "name": "(zrc-011c) Zaak deels bijwerken met ongeldige url in relevanteAndereZaken is onmogelijk", + "request": { + "url": { + "host": [ + "{{zaak_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Content-Crs", + "value": "EPSG:4326" + }, + { + "key": "Accept-Crs", + "value": "EPSG:4326" + } + ], + "method": "PATCH", + "body": { + "mode": "raw", + "raw": "{\n\t\"relevanteAndereZaken\": [{\n\t \"url\": \"{{mock_url}}/404\",\n\t \"aardRelatie\": \"vervolg\"\n\t}]\n}" + } + }, + "response": [], + "event": [ + { + "listen": "prerequest", + "script": { + "id": "62be160c-e3db-4991-905a-704f5aaeca57", + "type": "text/javascript", + "exec": [ + "" + ], + "_lastExecutionId": "8e9f05be-24ed-4059-9347-72b0910bc1cf" + } + }, + { + "listen": "test", + "script": { + "id": "4e265906-84aa-4942-a0ce-4ca1b00f5c66", + "type": "text/javascript", + "exec": [ + "pm.test(\"Zaak deels bijwerken met ongeldige url in relevanteAndereZaken geeft 400\", function() {", + " pm.response.to.have.status(400);", + " ", + " // Verify that the 400 is returned for the correct reason", + " var error = pm.response.json()[\"invalidParams\"][0];", + " pm.expect(error.name).to.be.equal(\"relevanteAndereZaken.0.url\");", + " pm.expect(error.code).to.be.equal(\"bad-url\");", + "});" + ], + "_lastExecutionId": "9b6a608e-1554-4cbe-aebb-bb135d3d3025" + } + } + ] + }, + "request": { + "url": { + "protocol": "http", + "port": "8080", + "path": [ + "index.php", + "apps", + "procest", + "api", + "zgw", + "zaken", + "v1", + "zaken", + "1ea85620-912a-4a68-b62e-65570c1dfdfa" + ], + "host": [ + "localhost" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Content-Crs", + "value": "EPSG:4326" + }, + { + "key": "Accept-Crs", + "value": "EPSG:4326" + }, + { + "key": "Authorization", + "value": "Bearer eyJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJwcm9jZXN0LWFkbWluIiwiY2xpZW50X2lkIjoicHJvY2VzdC1hZG1pbiIsImlhdCI6IjE3NzMxNDUxNzUiLCJ1c2VyX2lkIjoicHJvY2VzdC1hZG1pbiIsInVzZXJfcmVwcmVzZW50YXRpb24iOiIifQ.f7ugI3I7RHCNobET3oAKCwPM1g2tdx0QKGDbE_A-TMg", + "system": true + }, + { + "key": "User-Agent", + "value": "PostmanRuntime/7.39.1", + "system": true + }, + { + "key": "Accept", + "value": "*/*", + "system": true + }, + { + "key": "Cache-Control", + "value": "no-cache", + "system": true + }, + { + "key": "Postman-Token", + "value": "7ce6d44c-c64c-43d9-9e51-b7389cbb212d", + "system": true + }, + { + "key": "Host", + "value": "localhost:8080", + "system": true + }, + { + "key": "Accept-Encoding", + "value": "gzip, deflate, br", + "system": true + }, + { + "key": "Connection", + "value": "keep-alive", + "system": true + }, + { + "key": "Content-Length", + "value": "137", + "system": true + }, + { + "key": "Cookie", + "value": "ocvp3112b4wg=5d2f6b22423eb95cda537529e2f6649f; oc_sessionPassphrase=LBNdKxRzA0iqoULIruNxDDh2BK3O%2BrCIU8aUmiUcOFvy5Xw1YfjwQNlmBW2IkGwJYtxXh9%2BwDN6vYuGNX07tXzkBtjQJUWTGdzf8AIOUIVxVx5DfyWAQZ7nmYmQv6XSE; nc_sameSiteCookielax=true; nc_sameSiteCookiestrict=true", + "system": true + } + ], + "method": "PATCH", + "body": { + "mode": "raw", + "raw": "{\n\t\"relevanteAndereZaken\": [{\n\t \"url\": \"http://localhost:8080/index.php/apps/procest/api/zgw/404\",\n\t \"aardRelatie\": \"vervolg\"\n\t}]\n}" + }, + "auth": { + "type": "jwt", + "jwt": [ + { + "type": "string", + "value": "{\r\n \"iss\": \"procest-admin\",\r\n \"client_id\": \"procest-admin\",\r\n \"iat\": \"1773145175\",\r\n \"user_id\": \"procest-admin\",\r\n \"user_representation\": \"\"\r\n}", + "key": "payload" + }, + { + "type": "string", + "value": "procest-admin-secret-key-for-testing", + "key": "secret" + }, + { + "type": "string", + "value": "HS256", + "key": "algorithm" + }, + { + "type": "boolean", + "value": false, + "key": "isSecretBase64Encoded" + }, + { + "type": "string", + "value": "header", + "key": "addTokenTo" + }, + { + "type": "string", + "value": "Bearer", + "key": "headerPrefix" + }, + { + "type": "string", + "value": "token", + "key": "queryParamKey" + }, + { + "type": "string", + "value": "{}", + "key": "header" + } + ] + } + }, + "response": { + "id": "25bfa128-10e3-4fbb-8931-f60bf26945f6", + "status": "Bad request", + "code": 400, + "header": [ + { + "key": "Date", + "value": "Tue, 10 Mar 2026 12:19:34 GMT" + }, + { + "key": "Server", + "value": "Apache/2.4.66 (Debian)" + }, + { + "key": "X-Content-Type-Options", + "value": "nosniff" + }, + { + "key": "X-Frame-Options", + "value": "SAMEORIGIN" + }, + { + "key": "X-Permitted-Cross-Domain-Policies", + "value": "none" + }, + { + "key": "X-Robots-Tag", + "value": "noindex, nofollow" + }, + { + "key": "Referrer-Policy", + "value": "no-referrer" + }, + { + "key": "X-Powered-By", + "value": "PHP/8.3.30" + }, + { + "key": "Content-Security-Policy", + "value": "default-src 'none';base-uri 'none';manifest-src 'self';frame-ancestors 'none'" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=5d2f6b22423eb95cda537529e2f6649f; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=5d2f6b22423eb95cda537529e2f6649f; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=5d2f6b22423eb95cda537529e2f6649f; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=5d2f6b22423eb95cda537529e2f6649f; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=5d2f6b22423eb95cda537529e2f6649f; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=d149180d2c50a96f406bafa8ec79b8b7; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=d149180d2c50a96f406bafa8ec79b8b7; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=d149180d2c50a96f406bafa8ec79b8b7; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=d149180d2c50a96f406bafa8ec79b8b7; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=d149180d2c50a96f406bafa8ec79b8b7; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "X-Request-Id", + "value": "t9LhRV77UE7Ud2Z4CQSY" + }, + { + "key": "Cache-Control", + "value": "no-cache, no-store, must-revalidate" + }, + { + "key": "Feature-Policy", + "value": "autoplay 'none';camera 'none';fullscreen 'none';geolocation 'none';microphone 'none';payment 'none'" + }, + { + "key": "X-User-Id", + "value": "admin" + }, + { + "key": "Content-Length", + "value": "162" + }, + { + "key": "Connection", + "value": "close" + }, + { + "key": "Content-Type", + "value": "application/json; charset=utf-8" + } + ], + "stream": { + "type": "Buffer", + "data": [ + 123, + 34, + 100, + 101, + 116, + 97, + 105, + 108, + 34, + 58, + 34, + 114, + 101, + 108, + 101, + 118, + 97, + 110, + 116, + 101, + 65, + 110, + 100, + 101, + 114, + 101, + 90, + 97, + 107, + 101, + 110, + 32, + 98, + 101, + 118, + 97, + 116, + 32, + 101, + 101, + 110, + 32, + 111, + 110, + 103, + 101, + 108, + 100, + 105, + 103, + 101, + 32, + 85, + 82, + 76, + 46, + 34, + 44, + 34, + 105, + 110, + 118, + 97, + 108, + 105, + 100, + 80, + 97, + 114, + 97, + 109, + 115, + 34, + 58, + 91, + 123, + 34, + 110, + 97, + 109, + 101, + 34, + 58, + 34, + 114, + 101, + 108, + 101, + 118, + 97, + 110, + 116, + 101, + 65, + 110, + 100, + 101, + 114, + 101, + 90, + 97, + 107, + 101, + 110, + 46, + 48, + 46, + 117, + 114, + 108, + 34, + 44, + 34, + 99, + 111, + 100, + 101, + 34, + 58, + 34, + 98, + 97, + 100, + 45, + 117, + 114, + 108, + 34, + 44, + 34, + 114, + 101, + 97, + 115, + 111, + 110, + 34, + 58, + 34, + 68, + 101, + 32, + 85, + 82, + 76, + 32, + 105, + 115, + 32, + 111, + 110, + 103, + 101, + 108, + 100, + 105, + 103, + 46, + 34, + 125, + 93, + 125 + ] + }, + "cookie": [], + "responseTime": 124, + "responseSize": 162 + }, + "id": "05770c30-2677-4792-95c2-cf7a6d3ac65c", + "assertions": [ + { + "assertion": "Zaak deels bijwerken met ongeldige url in relevanteAndereZaken geeft 400", + "skipped": false + } + ] + }, + { + "cursor": { + "ref": "16dfb268-d65d-409c-94ca-6cdab40c0ec3", + "length": 313, + "cycles": 1, + "position": 142, + "iteration": 0, + "httpRequestId": "78f02fba-cc1c-447d-b821-31e11ccd39eb" + }, + "item": { + "id": "7e21f549-1cd4-4708-ab97-0f96553da436", + "name": "(zrc-011d) Zaak aanmaken met relevanteAndereZaken is mogelijk", + "request": { + "url": { + "path": [ + "zaken" + ], + "host": [ + "{{zrc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Content-Crs", + "value": "EPSG:4326" + }, + { + "key": "Accept-Crs", + "value": "EPSG:4326" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\r\n \"bronorganisatie\": \"000000000\",\r\n \"omschrijving\": \"string\",\r\n \"toelichting\": \"string\",\r\n \"zaaktype\": \"{{zaaktype_url}}\",\r\n \"registratiedatum\": \"2019-04-09\",\r\n \"verantwoordelijkeOrganisatie\": \"000000000\",\r\n \"startdatum\": \"2019-04-09\",\r\n \"einddatum\": null,\r\n \"einddatumGepland\": \"2019-04-20\",\r\n \"uiterlijkeEinddatumAfdoening\": \"2019-04-09\",\r\n \"publicatiedatum\": \"2019-04-09\",\r\n \"communicatiekanaal\": \"\",\r\n \"productenOfDiensten\": [],\r\n \"vertrouwelijkheidaanduiding\": \"geheim\",\r\n \"betalingsindicatie\": \"geheel\",\r\n \"betalingsindicatieWeergave\": null,\r\n \"laatsteBetaaldatum\": \"2019-01-01T00:00:00Z\",\r\n \"zaakgeometrie\": {\r\n \"type\": \"Point\",\r\n \"coordinates\": [\r\n 53.0,\r\n 5.0\r\n ]\r\n },\r\n \"verlenging\": null,\r\n \"opschorting\": {\r\n \"indicatie\": true,\r\n \"reden\": \"string\"\r\n },\r\n \"selectielijstklasse\": \"https://referentielijsten.roxit.nl/api/v1/resultaten/0fe71ce3-b1e1-48eb-9070-be2756fc71b5\",\r\n \"hoofdzaak\": null,\r\n \"deelzaken\": [],\r\n \"relevanteAndereZaken\": [\r\n {\r\n \"url\": \"{{zaak_url}}\",\r\n \"aardRelatie\": \"vervolg\"\r\n }\r\n ],\r\n \"eigenschappen\": [],\r\n \"rollen\": [],\r\n \"status\": null,\r\n \"zaakinformatieobjecten\": [],\r\n \"zaakobjecten\": [],\r\n \"resultaat\": null,\r\n \"kenmerken\": [],\r\n \"archiefnominatie\": null,\r\n \"archiefstatus\": \"nog_te_archiveren\",\r\n \"archiefactiedatum\": null,\r\n \"opdrachtgevendeOrganisatie\": null,\r\n \"processobjectaard\": null,\r\n \"startdatumBewaartermijn\": null,\r\n \"processobject\": null\r\n}" + } + }, + "response": [], + "event": [ + { + "listen": "prerequest", + "script": { + "id": "6bd1b72e-e7ac-4f3f-bf41-c115fcdc67cf", + "type": "text/javascript", + "packages": {}, + "exec": [ + "" + ], + "_lastExecutionId": "f650008f-b0ec-4c15-8164-f607ebd3c94f" + } + }, + { + "listen": "test", + "script": { + "id": "e7c876d7-d77d-4372-89fb-a9a00d69ffbd", + "type": "text/javascript", + "packages": {}, + "exec": [ + "pm.test(\"Zaak aanmaken met geldige relevanteAndereZaken geeft 201\", function() {", + " pm.response.to.have.status(201);", + " pm.environment.set(\"created_zaak_url\", pm.response.json().url);", + "});", + "", + "" + ], + "_lastExecutionId": "43d44319-8a99-43f0-a10b-fceb8b4f7c98" + } + } + ] + }, + "request": { + "url": { + "protocol": "http", + "port": "8080", + "path": [ + "index.php", + "apps", + "procest", + "api", + "zgw", + "zaken", + "v1", + "zaken" + ], + "host": [ + "localhost" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Content-Crs", + "value": "EPSG:4326" + }, + { + "key": "Accept-Crs", + "value": "EPSG:4326" + }, + { + "key": "Authorization", + "value": "Bearer eyJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJwcm9jZXN0LWFkbWluIiwiY2xpZW50X2lkIjoicHJvY2VzdC1hZG1pbiIsImlhdCI6IjE3NzMxNDUxNzUiLCJ1c2VyX2lkIjoicHJvY2VzdC1hZG1pbiIsInVzZXJfcmVwcmVzZW50YXRpb24iOiIifQ.f7ugI3I7RHCNobET3oAKCwPM1g2tdx0QKGDbE_A-TMg", + "system": true + }, + { + "key": "User-Agent", + "value": "PostmanRuntime/7.39.1", + "system": true + }, + { + "key": "Accept", + "value": "*/*", + "system": true + }, + { + "key": "Cache-Control", + "value": "no-cache", + "system": true + }, + { + "key": "Postman-Token", + "value": "0ae97f04-f78e-4475-ba96-860d0d11f3d7", + "system": true + }, + { + "key": "Host", + "value": "localhost:8080", + "system": true + }, + { + "key": "Accept-Encoding", + "value": "gzip, deflate, br", + "system": true + }, + { + "key": "Connection", + "value": "keep-alive", + "system": true + }, + { + "key": "Content-Length", + "value": "1795", + "system": true + }, + { + "key": "Cookie", + "value": "ocvp3112b4wg=d149180d2c50a96f406bafa8ec79b8b7; oc_sessionPassphrase=LBNdKxRzA0iqoULIruNxDDh2BK3O%2BrCIU8aUmiUcOFvy5Xw1YfjwQNlmBW2IkGwJYtxXh9%2BwDN6vYuGNX07tXzkBtjQJUWTGdzf8AIOUIVxVx5DfyWAQZ7nmYmQv6XSE; nc_sameSiteCookielax=true; nc_sameSiteCookiestrict=true", + "system": true + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\r\n \"bronorganisatie\": \"000000000\",\r\n \"omschrijving\": \"string\",\r\n \"toelichting\": \"string\",\r\n \"zaaktype\": \"http://localhost:8080/index.php/apps/procest/api/zgw/catalogi/v1/zaaktypen/619dc3e5-52f1-4294-a569-f21d16f44879\",\r\n \"registratiedatum\": \"2019-04-09\",\r\n \"verantwoordelijkeOrganisatie\": \"000000000\",\r\n \"startdatum\": \"2019-04-09\",\r\n \"einddatum\": null,\r\n \"einddatumGepland\": \"2019-04-20\",\r\n \"uiterlijkeEinddatumAfdoening\": \"2019-04-09\",\r\n \"publicatiedatum\": \"2019-04-09\",\r\n \"communicatiekanaal\": \"\",\r\n \"productenOfDiensten\": [],\r\n \"vertrouwelijkheidaanduiding\": \"geheim\",\r\n \"betalingsindicatie\": \"geheel\",\r\n \"betalingsindicatieWeergave\": null,\r\n \"laatsteBetaaldatum\": \"2019-01-01T00:00:00Z\",\r\n \"zaakgeometrie\": {\r\n \"type\": \"Point\",\r\n \"coordinates\": [\r\n 53.0,\r\n 5.0\r\n ]\r\n },\r\n \"verlenging\": null,\r\n \"opschorting\": {\r\n \"indicatie\": true,\r\n \"reden\": \"string\"\r\n },\r\n \"selectielijstklasse\": \"https://referentielijsten.roxit.nl/api/v1/resultaten/0fe71ce3-b1e1-48eb-9070-be2756fc71b5\",\r\n \"hoofdzaak\": null,\r\n \"deelzaken\": [],\r\n \"relevanteAndereZaken\": [\r\n {\r\n \"url\": \"http://localhost:8080/index.php/apps/procest/api/zgw/zaken/v1/zaken/1ea85620-912a-4a68-b62e-65570c1dfdfa\",\r\n \"aardRelatie\": \"vervolg\"\r\n }\r\n ],\r\n \"eigenschappen\": [],\r\n \"rollen\": [],\r\n \"status\": null,\r\n \"zaakinformatieobjecten\": [],\r\n \"zaakobjecten\": [],\r\n \"resultaat\": null,\r\n \"kenmerken\": [],\r\n \"archiefnominatie\": null,\r\n \"archiefstatus\": \"nog_te_archiveren\",\r\n \"archiefactiedatum\": null,\r\n \"opdrachtgevendeOrganisatie\": null,\r\n \"processobjectaard\": null,\r\n \"startdatumBewaartermijn\": null,\r\n \"processobject\": null\r\n}" + }, + "auth": { + "type": "jwt", + "jwt": [ + { + "type": "string", + "value": "{\r\n \"iss\": \"procest-admin\",\r\n \"client_id\": \"procest-admin\",\r\n \"iat\": \"1773145175\",\r\n \"user_id\": \"procest-admin\",\r\n \"user_representation\": \"\"\r\n}", + "key": "payload" + }, + { + "type": "string", + "value": "procest-admin-secret-key-for-testing", + "key": "secret" + }, + { + "type": "string", + "value": "HS256", + "key": "algorithm" + }, + { + "type": "boolean", + "value": false, + "key": "isSecretBase64Encoded" + }, + { + "type": "string", + "value": "header", + "key": "addTokenTo" + }, + { + "type": "string", + "value": "Bearer", + "key": "headerPrefix" + }, + { + "type": "string", + "value": "token", + "key": "queryParamKey" + }, + { + "type": "string", + "value": "{}", + "key": "header" + } + ] + } + }, + "response": { + "id": "bf4ca516-b991-4acb-ac68-f219c86d4475", + "status": "Created", + "code": 201, + "header": [ + { + "key": "Date", + "value": "Tue, 10 Mar 2026 12:19:34 GMT" + }, + { + "key": "Server", + "value": "Apache/2.4.66 (Debian)" + }, + { + "key": "X-Content-Type-Options", + "value": "nosniff" + }, + { + "key": "X-Frame-Options", + "value": "SAMEORIGIN" + }, + { + "key": "X-Permitted-Cross-Domain-Policies", + "value": "none" + }, + { + "key": "X-Robots-Tag", + "value": "noindex, nofollow" + }, + { + "key": "Referrer-Policy", + "value": "no-referrer" + }, + { + "key": "X-Powered-By", + "value": "PHP/8.3.30" + }, + { + "key": "Content-Security-Policy", + "value": "default-src 'none';base-uri 'none';manifest-src 'self';frame-ancestors 'none'" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=d149180d2c50a96f406bafa8ec79b8b7; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=d149180d2c50a96f406bafa8ec79b8b7; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=d149180d2c50a96f406bafa8ec79b8b7; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=d149180d2c50a96f406bafa8ec79b8b7; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=d149180d2c50a96f406bafa8ec79b8b7; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=f2cdf0b9d87a755732e128c4aec4ca4d; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=f2cdf0b9d87a755732e128c4aec4ca4d; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=f2cdf0b9d87a755732e128c4aec4ca4d; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=f2cdf0b9d87a755732e128c4aec4ca4d; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=f2cdf0b9d87a755732e128c4aec4ca4d; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "X-Request-Id", + "value": "X1wr2hOraF1BdBUj5v2D" + }, + { + "key": "Cache-Control", + "value": "no-cache, no-store, must-revalidate" + }, + { + "key": "Feature-Policy", + "value": "autoplay 'none';camera 'none';fullscreen 'none';geolocation 'none';microphone 'none';payment 'none'" + }, + { + "key": "X-User-Id", + "value": "admin" + }, + { + "key": "Content-Length", + "value": "805" + }, + { + "key": "Keep-Alive", + "value": "timeout=5, max=100" + }, + { + "key": "Connection", + "value": "Keep-Alive" + }, + { + "key": "Content-Type", + "value": "application/json; charset=utf-8" + } + ], + "stream": { + "type": "Buffer", + "data": [ + 123, + 34, + 117, + 114, + 108, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 122, + 97, + 107, + 101, + 110, + 92, + 47, + 118, + 49, + 92, + 47, + 122, + 97, + 107, + 101, + 110, + 92, + 47, + 55, + 52, + 55, + 56, + 54, + 57, + 48, + 101, + 45, + 97, + 55, + 48, + 97, + 45, + 52, + 97, + 48, + 100, + 45, + 56, + 51, + 48, + 57, + 45, + 102, + 101, + 50, + 53, + 102, + 55, + 55, + 52, + 98, + 97, + 55, + 102, + 34, + 44, + 34, + 117, + 117, + 105, + 100, + 34, + 58, + 34, + 55, + 52, + 55, + 56, + 54, + 57, + 48, + 101, + 45, + 97, + 55, + 48, + 97, + 45, + 52, + 97, + 48, + 100, + 45, + 56, + 51, + 48, + 57, + 45, + 102, + 101, + 50, + 53, + 102, + 55, + 55, + 52, + 98, + 97, + 55, + 102, + 34, + 44, + 34, + 105, + 100, + 101, + 110, + 116, + 105, + 102, + 105, + 99, + 97, + 116, + 105, + 101, + 34, + 58, + 34, + 90, + 65, + 65, + 75, + 45, + 84, + 66, + 79, + 78, + 75, + 77, + 45, + 53, + 55, + 69, + 66, + 48, + 67, + 34, + 44, + 34, + 111, + 109, + 115, + 99, + 104, + 114, + 105, + 106, + 118, + 105, + 110, + 103, + 34, + 58, + 34, + 115, + 116, + 114, + 105, + 110, + 103, + 34, + 44, + 34, + 116, + 111, + 101, + 108, + 105, + 99, + 104, + 116, + 105, + 110, + 103, + 34, + 58, + 34, + 115, + 116, + 114, + 105, + 110, + 103, + 34, + 44, + 34, + 122, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 105, + 92, + 47, + 118, + 49, + 92, + 47, + 122, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 110, + 92, + 47, + 54, + 49, + 57, + 100, + 99, + 51, + 101, + 53, + 45, + 53, + 50, + 102, + 49, + 45, + 52, + 50, + 57, + 52, + 45, + 97, + 53, + 54, + 57, + 45, + 102, + 50, + 49, + 100, + 49, + 54, + 102, + 52, + 52, + 56, + 55, + 57, + 34, + 44, + 34, + 114, + 101, + 103, + 105, + 115, + 116, + 114, + 97, + 116, + 105, + 101, + 100, + 97, + 116, + 117, + 109, + 34, + 58, + 34, + 50, + 48, + 50, + 54, + 45, + 48, + 51, + 45, + 49, + 48, + 84, + 49, + 50, + 58, + 49, + 57, + 58, + 51, + 52, + 43, + 48, + 48, + 58, + 48, + 48, + 34, + 44, + 34, + 115, + 116, + 97, + 114, + 116, + 100, + 97, + 116, + 117, + 109, + 34, + 58, + 34, + 50, + 48, + 49, + 57, + 45, + 48, + 52, + 45, + 48, + 57, + 34, + 44, + 34, + 101, + 105, + 110, + 100, + 100, + 97, + 116, + 117, + 109, + 34, + 58, + 110, + 117, + 108, + 108, + 44, + 34, + 101, + 105, + 110, + 100, + 100, + 97, + 116, + 117, + 109, + 71, + 101, + 112, + 108, + 97, + 110, + 100, + 34, + 58, + 34, + 50, + 48, + 49, + 57, + 45, + 48, + 52, + 45, + 50, + 48, + 34, + 44, + 34, + 117, + 105, + 116, + 101, + 114, + 108, + 105, + 106, + 107, + 101, + 69, + 105, + 110, + 100, + 100, + 97, + 116, + 117, + 109, + 65, + 102, + 100, + 111, + 101, + 110, + 105, + 110, + 103, + 34, + 58, + 34, + 50, + 48, + 49, + 57, + 45, + 48, + 52, + 45, + 48, + 57, + 34, + 44, + 34, + 118, + 101, + 114, + 116, + 114, + 111, + 117, + 119, + 101, + 108, + 105, + 106, + 107, + 104, + 101, + 105, + 100, + 97, + 97, + 110, + 100, + 117, + 105, + 100, + 105, + 110, + 103, + 34, + 58, + 34, + 103, + 101, + 104, + 101, + 105, + 109, + 34, + 44, + 34, + 118, + 101, + 114, + 97, + 110, + 116, + 119, + 111, + 111, + 114, + 100, + 101, + 108, + 105, + 106, + 107, + 101, + 79, + 114, + 103, + 97, + 110, + 105, + 115, + 97, + 116, + 105, + 101, + 34, + 58, + 34, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 34, + 44, + 34, + 97, + 114, + 99, + 104, + 105, + 101, + 102, + 110, + 111, + 109, + 105, + 110, + 97, + 116, + 105, + 101, + 34, + 58, + 110, + 117, + 108, + 108, + 44, + 34, + 97, + 114, + 99, + 104, + 105, + 101, + 102, + 97, + 99, + 116, + 105, + 101, + 100, + 97, + 116, + 117, + 109, + 34, + 58, + 110, + 117, + 108, + 108, + 44, + 34, + 97, + 114, + 99, + 104, + 105, + 101, + 102, + 115, + 116, + 97, + 116, + 117, + 115, + 34, + 58, + 34, + 110, + 111, + 103, + 95, + 116, + 101, + 95, + 97, + 114, + 99, + 104, + 105, + 118, + 101, + 114, + 101, + 110, + 34, + 44, + 34, + 98, + 101, + 116, + 97, + 108, + 105, + 110, + 103, + 115, + 105, + 110, + 100, + 105, + 99, + 97, + 116, + 105, + 101, + 34, + 58, + 34, + 103, + 101, + 104, + 101, + 101, + 108, + 34, + 44, + 34, + 108, + 97, + 97, + 116, + 115, + 116, + 101, + 66, + 101, + 116, + 97, + 97, + 108, + 100, + 97, + 116, + 117, + 109, + 34, + 58, + 34, + 50, + 48, + 49, + 57, + 45, + 48, + 49, + 45, + 48, + 49, + 34, + 44, + 34, + 104, + 111, + 111, + 102, + 100, + 122, + 97, + 97, + 107, + 34, + 58, + 110, + 117, + 108, + 108, + 125 + ] + }, + "cookie": [], + "responseTime": 228, + "responseSize": 805 + }, + "id": "7e21f549-1cd4-4708-ab97-0f96553da436", + "assertions": [ + { + "assertion": "Zaak aanmaken met geldige relevanteAndereZaken geeft 201", + "skipped": false + } + ] + }, + { + "cursor": { + "ref": "5be04d12-b774-4588-a91b-cf401ac01352", + "length": 313, + "cycles": 1, + "position": 143, + "iteration": 0, + "httpRequestId": "29425743-cbcb-422a-afda-2e111769df61" + }, + "item": { + "id": "5d95880d-90ca-4d6b-a060-f17bd3916fe4", + "name": "(zrc-011e) Zaak bijwerken met relevanteAndereZaken is mogelijk", + "request": { + "url": { + "host": [ + "{{zaak_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Accept-Crs", + "value": "EPSG:4326" + }, + { + "key": "Content-Crs", + "value": "EPSG:4326" + } + ], + "method": "PUT", + "body": { + "mode": "raw", + "raw": "{\r\n \"bronorganisatie\": \"000000000\",\r\n \"omschrijving\": \"string\",\r\n \"toelichting\": \"string\",\r\n \"zaaktype\": \"{{zaaktype_url}}\",\r\n \"registratiedatum\": \"2019-04-09\",\r\n \"verantwoordelijkeOrganisatie\": \"000000000\",\r\n \"startdatum\": \"2019-04-09\",\r\n \"einddatum\": null,\r\n \"einddatumGepland\": \"2019-04-20\",\r\n \"uiterlijkeEinddatumAfdoening\": \"2019-04-09\",\r\n \"publicatiedatum\": \"2019-04-09\",\r\n \"communicatiekanaal\": \"\",\r\n \"productenOfDiensten\": [],\r\n \"vertrouwelijkheidaanduiding\": \"geheim\",\r\n \"betalingsindicatie\": \"geheel\",\r\n \"betalingsindicatieWeergave\": null,\r\n \"laatsteBetaaldatum\": \"2019-01-01T00:00:00Z\",\r\n \"zaakgeometrie\": {\r\n \"type\": \"Point\",\r\n \"coordinates\": [\r\n 53.0,\r\n 5.0\r\n ]\r\n },\r\n \"verlenging\": null,\r\n \"opschorting\": {\r\n \"indicatie\": true,\r\n \"reden\": \"string\"\r\n },\r\n \"selectielijstklasse\": \"https://referentielijsten.roxit.nl/api/v1/resultaten/0fe71ce3-b1e1-48eb-9070-be2756fc71b5\",\r\n \"hoofdzaak\": null,\r\n \"deelzaken\": [],\r\n \"relevanteAndereZaken\": [\r\n {\r\n \"url\": \"{{zaak_url}}\",\r\n \"aardRelatie\": \"vervolg\"\r\n }\r\n ],\r\n \"eigenschappen\": [],\r\n \"rollen\": [],\r\n \"status\": null,\r\n \"zaakinformatieobjecten\": [],\r\n \"zaakobjecten\": [],\r\n \"resultaat\": null,\r\n \"kenmerken\": [],\r\n \"archiefnominatie\": null,\r\n \"archiefstatus\": \"nog_te_archiveren\",\r\n \"archiefactiedatum\": null,\r\n \"opdrachtgevendeOrganisatie\": null,\r\n \"processobjectaard\": null,\r\n \"startdatumBewaartermijn\": null,\r\n \"processobject\": null\r\n}" + } + }, + "response": [], + "event": [ + { + "listen": "prerequest", + "script": { + "id": "1b550cd1-abbf-4552-a965-5d96bb9faa3c", + "type": "text/javascript", + "packages": {}, + "exec": [ + "" + ], + "_lastExecutionId": "4793b06e-f5d2-4cbe-8d11-0fb1a19dab8d" + } + }, + { + "listen": "test", + "script": { + "id": "5a299221-21d3-4d93-acf3-bb11fa55691a", + "type": "text/javascript", + "packages": {}, + "exec": [ + "pm.test(\"Zaak bijwerken met geldige relevanteAndereZaken geeft 200\", function() {", + " pm.response.to.have.status(200);", + "});" + ], + "_lastExecutionId": "985e8774-2dd7-4348-be8d-d68d28c01e78" + } + } + ] + }, + "request": { + "url": { + "protocol": "http", + "port": "8080", + "path": [ + "index.php", + "apps", + "procest", + "api", + "zgw", + "zaken", + "v1", + "zaken", + "1ea85620-912a-4a68-b62e-65570c1dfdfa" + ], + "host": [ + "localhost" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Accept-Crs", + "value": "EPSG:4326" + }, + { + "key": "Content-Crs", + "value": "EPSG:4326" + }, + { + "key": "Authorization", + "value": "Bearer eyJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJwcm9jZXN0LWFkbWluIiwiY2xpZW50X2lkIjoicHJvY2VzdC1hZG1pbiIsImlhdCI6IjE3NzMxNDUxNzUiLCJ1c2VyX2lkIjoicHJvY2VzdC1hZG1pbiIsInVzZXJfcmVwcmVzZW50YXRpb24iOiIifQ.f7ugI3I7RHCNobET3oAKCwPM1g2tdx0QKGDbE_A-TMg", + "system": true + }, + { + "key": "User-Agent", + "value": "PostmanRuntime/7.39.1", + "system": true + }, + { + "key": "Accept", + "value": "*/*", + "system": true + }, + { + "key": "Cache-Control", + "value": "no-cache", + "system": true + }, + { + "key": "Postman-Token", + "value": "7f6f95ec-c592-4f71-b0c0-cb21d2b800c8", + "system": true + }, + { + "key": "Host", + "value": "localhost:8080", + "system": true + }, + { + "key": "Accept-Encoding", + "value": "gzip, deflate, br", + "system": true + }, + { + "key": "Connection", + "value": "keep-alive", + "system": true + }, + { + "key": "Content-Length", + "value": "1795", + "system": true + }, + { + "key": "Cookie", + "value": "ocvp3112b4wg=f2cdf0b9d87a755732e128c4aec4ca4d; oc_sessionPassphrase=LBNdKxRzA0iqoULIruNxDDh2BK3O%2BrCIU8aUmiUcOFvy5Xw1YfjwQNlmBW2IkGwJYtxXh9%2BwDN6vYuGNX07tXzkBtjQJUWTGdzf8AIOUIVxVx5DfyWAQZ7nmYmQv6XSE; nc_sameSiteCookielax=true; nc_sameSiteCookiestrict=true", + "system": true + } + ], + "method": "PUT", + "body": { + "mode": "raw", + "raw": "{\r\n \"bronorganisatie\": \"000000000\",\r\n \"omschrijving\": \"string\",\r\n \"toelichting\": \"string\",\r\n \"zaaktype\": \"http://localhost:8080/index.php/apps/procest/api/zgw/catalogi/v1/zaaktypen/619dc3e5-52f1-4294-a569-f21d16f44879\",\r\n \"registratiedatum\": \"2019-04-09\",\r\n \"verantwoordelijkeOrganisatie\": \"000000000\",\r\n \"startdatum\": \"2019-04-09\",\r\n \"einddatum\": null,\r\n \"einddatumGepland\": \"2019-04-20\",\r\n \"uiterlijkeEinddatumAfdoening\": \"2019-04-09\",\r\n \"publicatiedatum\": \"2019-04-09\",\r\n \"communicatiekanaal\": \"\",\r\n \"productenOfDiensten\": [],\r\n \"vertrouwelijkheidaanduiding\": \"geheim\",\r\n \"betalingsindicatie\": \"geheel\",\r\n \"betalingsindicatieWeergave\": null,\r\n \"laatsteBetaaldatum\": \"2019-01-01T00:00:00Z\",\r\n \"zaakgeometrie\": {\r\n \"type\": \"Point\",\r\n \"coordinates\": [\r\n 53.0,\r\n 5.0\r\n ]\r\n },\r\n \"verlenging\": null,\r\n \"opschorting\": {\r\n \"indicatie\": true,\r\n \"reden\": \"string\"\r\n },\r\n \"selectielijstklasse\": \"https://referentielijsten.roxit.nl/api/v1/resultaten/0fe71ce3-b1e1-48eb-9070-be2756fc71b5\",\r\n \"hoofdzaak\": null,\r\n \"deelzaken\": [],\r\n \"relevanteAndereZaken\": [\r\n {\r\n \"url\": \"http://localhost:8080/index.php/apps/procest/api/zgw/zaken/v1/zaken/1ea85620-912a-4a68-b62e-65570c1dfdfa\",\r\n \"aardRelatie\": \"vervolg\"\r\n }\r\n ],\r\n \"eigenschappen\": [],\r\n \"rollen\": [],\r\n \"status\": null,\r\n \"zaakinformatieobjecten\": [],\r\n \"zaakobjecten\": [],\r\n \"resultaat\": null,\r\n \"kenmerken\": [],\r\n \"archiefnominatie\": null,\r\n \"archiefstatus\": \"nog_te_archiveren\",\r\n \"archiefactiedatum\": null,\r\n \"opdrachtgevendeOrganisatie\": null,\r\n \"processobjectaard\": null,\r\n \"startdatumBewaartermijn\": null,\r\n \"processobject\": null\r\n}" + }, + "auth": { + "type": "jwt", + "jwt": [ + { + "type": "string", + "value": "{\r\n \"iss\": \"procest-admin\",\r\n \"client_id\": \"procest-admin\",\r\n \"iat\": \"1773145175\",\r\n \"user_id\": \"procest-admin\",\r\n \"user_representation\": \"\"\r\n}", + "key": "payload" + }, + { + "type": "string", + "value": "procest-admin-secret-key-for-testing", + "key": "secret" + }, + { + "type": "string", + "value": "HS256", + "key": "algorithm" + }, + { + "type": "boolean", + "value": false, + "key": "isSecretBase64Encoded" + }, + { + "type": "string", + "value": "header", + "key": "addTokenTo" + }, + { + "type": "string", + "value": "Bearer", + "key": "headerPrefix" + }, + { + "type": "string", + "value": "token", + "key": "queryParamKey" + }, + { + "type": "string", + "value": "{}", + "key": "header" + } + ] + } + }, + "response": { + "id": "4d130de0-8f9e-4519-ab45-248e6003004f", + "status": "OK", + "code": 200, + "header": [ + { + "key": "Date", + "value": "Tue, 10 Mar 2026 12:19:35 GMT" + }, + { + "key": "Server", + "value": "Apache/2.4.66 (Debian)" + }, + { + "key": "X-Content-Type-Options", + "value": "nosniff" + }, + { + "key": "X-Frame-Options", + "value": "SAMEORIGIN" + }, + { + "key": "X-Permitted-Cross-Domain-Policies", + "value": "none" + }, + { + "key": "X-Robots-Tag", + "value": "noindex, nofollow" + }, + { + "key": "Referrer-Policy", + "value": "no-referrer" + }, + { + "key": "X-Powered-By", + "value": "PHP/8.3.30" + }, + { + "key": "Content-Security-Policy", + "value": "default-src 'none';base-uri 'none';manifest-src 'self';frame-ancestors 'none'" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=f2cdf0b9d87a755732e128c4aec4ca4d; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=f2cdf0b9d87a755732e128c4aec4ca4d; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=f2cdf0b9d87a755732e128c4aec4ca4d; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=f2cdf0b9d87a755732e128c4aec4ca4d; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=f2cdf0b9d87a755732e128c4aec4ca4d; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=eab38951be79f7844f997013ba5b3094; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=eab38951be79f7844f997013ba5b3094; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=eab38951be79f7844f997013ba5b3094; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=eab38951be79f7844f997013ba5b3094; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=eab38951be79f7844f997013ba5b3094; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "X-Request-Id", + "value": "lS9p3fnAz8ndSiuux1x2" + }, + { + "key": "Cache-Control", + "value": "no-cache, no-store, must-revalidate" + }, + { + "key": "Feature-Policy", + "value": "autoplay 'none';camera 'none';fullscreen 'none';geolocation 'none';microphone 'none';payment 'none'" + }, + { + "key": "X-User-Id", + "value": "admin" + }, + { + "key": "Content-Encoding", + "value": "gzip" + }, + { + "key": "Content-Length", + "value": "423" + }, + { + "key": "Keep-Alive", + "value": "timeout=5, max=99" + }, + { + "key": "Connection", + "value": "Keep-Alive" + }, + { + "key": "Content-Type", + "value": "application/json; charset=utf-8" + } + ], + "stream": { + "type": "Buffer", + "data": [ + 123, + 34, + 117, + 114, + 108, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 122, + 97, + 107, + 101, + 110, + 92, + 47, + 118, + 49, + 92, + 47, + 122, + 97, + 107, + 101, + 110, + 92, + 47, + 49, + 101, + 97, + 56, + 53, + 54, + 50, + 48, + 45, + 57, + 49, + 50, + 97, + 45, + 52, + 97, + 54, + 56, + 45, + 98, + 54, + 50, + 101, + 45, + 54, + 53, + 53, + 55, + 48, + 99, + 49, + 100, + 102, + 100, + 102, + 97, + 34, + 44, + 34, + 117, + 117, + 105, + 100, + 34, + 58, + 34, + 49, + 101, + 97, + 56, + 53, + 54, + 50, + 48, + 45, + 57, + 49, + 50, + 97, + 45, + 52, + 97, + 54, + 56, + 45, + 98, + 54, + 50, + 101, + 45, + 54, + 53, + 53, + 55, + 48, + 99, + 49, + 100, + 102, + 100, + 102, + 97, + 34, + 44, + 34, + 105, + 100, + 101, + 110, + 116, + 105, + 102, + 105, + 99, + 97, + 116, + 105, + 101, + 34, + 58, + 34, + 34, + 44, + 34, + 111, + 109, + 115, + 99, + 104, + 114, + 105, + 106, + 118, + 105, + 110, + 103, + 34, + 58, + 34, + 115, + 116, + 114, + 105, + 110, + 103, + 34, + 44, + 34, + 116, + 111, + 101, + 108, + 105, + 99, + 104, + 116, + 105, + 110, + 103, + 34, + 58, + 34, + 115, + 116, + 114, + 105, + 110, + 103, + 34, + 44, + 34, + 122, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 105, + 92, + 47, + 118, + 49, + 92, + 47, + 122, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 110, + 92, + 47, + 54, + 49, + 57, + 100, + 99, + 51, + 101, + 53, + 45, + 53, + 50, + 102, + 49, + 45, + 52, + 50, + 57, + 52, + 45, + 97, + 53, + 54, + 57, + 45, + 102, + 50, + 49, + 100, + 49, + 54, + 102, + 52, + 52, + 56, + 55, + 57, + 34, + 44, + 34, + 114, + 101, + 103, + 105, + 115, + 116, + 114, + 97, + 116, + 105, + 101, + 100, + 97, + 116, + 117, + 109, + 34, + 58, + 34, + 50, + 48, + 50, + 54, + 45, + 48, + 51, + 45, + 49, + 48, + 84, + 49, + 50, + 58, + 49, + 57, + 58, + 49, + 49, + 43, + 48, + 48, + 58, + 48, + 48, + 34, + 44, + 34, + 115, + 116, + 97, + 114, + 116, + 100, + 97, + 116, + 117, + 109, + 34, + 58, + 34, + 50, + 48, + 49, + 57, + 45, + 48, + 52, + 45, + 48, + 57, + 34, + 44, + 34, + 101, + 105, + 110, + 100, + 100, + 97, + 116, + 117, + 109, + 34, + 58, + 110, + 117, + 108, + 108, + 44, + 34, + 101, + 105, + 110, + 100, + 100, + 97, + 116, + 117, + 109, + 71, + 101, + 112, + 108, + 97, + 110, + 100, + 34, + 58, + 34, + 50, + 48, + 49, + 57, + 45, + 48, + 52, + 45, + 50, + 48, + 34, + 44, + 34, + 117, + 105, + 116, + 101, + 114, + 108, + 105, + 106, + 107, + 101, + 69, + 105, + 110, + 100, + 100, + 97, + 116, + 117, + 109, + 65, + 102, + 100, + 111, + 101, + 110, + 105, + 110, + 103, + 34, + 58, + 34, + 50, + 48, + 49, + 57, + 45, + 48, + 52, + 45, + 48, + 57, + 34, + 44, + 34, + 118, + 101, + 114, + 116, + 114, + 111, + 117, + 119, + 101, + 108, + 105, + 106, + 107, + 104, + 101, + 105, + 100, + 97, + 97, + 110, + 100, + 117, + 105, + 100, + 105, + 110, + 103, + 34, + 58, + 34, + 103, + 101, + 104, + 101, + 105, + 109, + 34, + 44, + 34, + 118, + 101, + 114, + 97, + 110, + 116, + 119, + 111, + 111, + 114, + 100, + 101, + 108, + 105, + 106, + 107, + 101, + 79, + 114, + 103, + 97, + 110, + 105, + 115, + 97, + 116, + 105, + 101, + 34, + 58, + 34, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 34, + 44, + 34, + 97, + 114, + 99, + 104, + 105, + 101, + 102, + 110, + 111, + 109, + 105, + 110, + 97, + 116, + 105, + 101, + 34, + 58, + 110, + 117, + 108, + 108, + 44, + 34, + 97, + 114, + 99, + 104, + 105, + 101, + 102, + 97, + 99, + 116, + 105, + 101, + 100, + 97, + 116, + 117, + 109, + 34, + 58, + 110, + 117, + 108, + 108, + 44, + 34, + 97, + 114, + 99, + 104, + 105, + 101, + 102, + 115, + 116, + 97, + 116, + 117, + 115, + 34, + 58, + 34, + 110, + 111, + 103, + 95, + 116, + 101, + 95, + 97, + 114, + 99, + 104, + 105, + 118, + 101, + 114, + 101, + 110, + 34, + 44, + 34, + 98, + 101, + 116, + 97, + 108, + 105, + 110, + 103, + 115, + 105, + 110, + 100, + 105, + 99, + 97, + 116, + 105, + 101, + 34, + 58, + 34, + 103, + 101, + 104, + 101, + 101, + 108, + 34, + 44, + 34, + 108, + 97, + 97, + 116, + 115, + 116, + 101, + 66, + 101, + 116, + 97, + 97, + 108, + 100, + 97, + 116, + 117, + 109, + 34, + 58, + 34, + 50, + 48, + 49, + 57, + 45, + 48, + 49, + 45, + 48, + 49, + 34, + 44, + 34, + 104, + 111, + 111, + 102, + 100, + 122, + 97, + 97, + 107, + 34, + 58, + 110, + 117, + 108, + 108, + 125 + ] + }, + "cookie": [], + "responseTime": 307, + "responseSize": 787 + }, + "id": "5d95880d-90ca-4d6b-a060-f17bd3916fe4", + "assertions": [ + { + "assertion": "Zaak bijwerken met geldige relevanteAndereZaken geeft 200", + "skipped": false + } + ] + }, + { + "cursor": { + "ref": "4f136764-2c5a-4b1a-9348-26f9c424fdb9", + "length": 313, + "cycles": 1, + "position": 144, + "iteration": 0, + "httpRequestId": "4caa6841-e834-414d-a770-abce3f0a5e9d" + }, + "item": { + "id": "78050592-2720-43cf-822f-22afe780fb6c", + "name": "(zrc-011f) Zaak deels bijwerken met relevanteAndereZaken is mogelijk", + "request": { + "url": { + "host": [ + "{{zaak_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Accept-Crs", + "value": "EPSG:4326" + }, + { + "key": "Content-Crs", + "value": "EPSG:4326" + } + ], + "method": "PATCH", + "body": { + "mode": "raw", + "raw": "{\n\t\"relevanteAndereZaken\": [{\n\t \"url\": \"{{zaak_url}}\",\n\t \"aardRelatie\": \"vervolg\"\n\t}]\n}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "b80f8a48-aab6-463d-9640-d6ddd686cd53", + "type": "text/javascript", + "packages": {}, + "exec": [ + "pm.test(\"Zaak deels bijwerken met geldige relevanteAndereZaken geeft 200\", function() {", + " pm.response.to.have.status(200);", + "});", + "", + "" + ], + "_lastExecutionId": "abea5340-9438-4ca2-9ae0-190b946fe1a0" + } + } + ] + }, + "request": { + "url": { + "protocol": "http", + "port": "8080", + "path": [ + "index.php", + "apps", + "procest", + "api", + "zgw", + "zaken", + "v1", + "zaken", + "1ea85620-912a-4a68-b62e-65570c1dfdfa" + ], + "host": [ + "localhost" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Accept-Crs", + "value": "EPSG:4326" + }, + { + "key": "Content-Crs", + "value": "EPSG:4326" + }, + { + "key": "Authorization", + "value": "Bearer eyJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJwcm9jZXN0LWFkbWluIiwiY2xpZW50X2lkIjoicHJvY2VzdC1hZG1pbiIsImlhdCI6IjE3NzMxNDUxNzUiLCJ1c2VyX2lkIjoicHJvY2VzdC1hZG1pbiIsInVzZXJfcmVwcmVzZW50YXRpb24iOiIifQ.f7ugI3I7RHCNobET3oAKCwPM1g2tdx0QKGDbE_A-TMg", + "system": true + }, + { + "key": "User-Agent", + "value": "PostmanRuntime/7.39.1", + "system": true + }, + { + "key": "Accept", + "value": "*/*", + "system": true + }, + { + "key": "Cache-Control", + "value": "no-cache", + "system": true + }, + { + "key": "Postman-Token", + "value": "8162993e-2289-420d-860e-9b24c194b0d1", + "system": true + }, + { + "key": "Host", + "value": "localhost:8080", + "system": true + }, + { + "key": "Accept-Encoding", + "value": "gzip, deflate, br", + "system": true + }, + { + "key": "Connection", + "value": "keep-alive", + "system": true + }, + { + "key": "Content-Length", + "value": "185", + "system": true + }, + { + "key": "Cookie", + "value": "ocvp3112b4wg=eab38951be79f7844f997013ba5b3094; oc_sessionPassphrase=LBNdKxRzA0iqoULIruNxDDh2BK3O%2BrCIU8aUmiUcOFvy5Xw1YfjwQNlmBW2IkGwJYtxXh9%2BwDN6vYuGNX07tXzkBtjQJUWTGdzf8AIOUIVxVx5DfyWAQZ7nmYmQv6XSE; nc_sameSiteCookielax=true; nc_sameSiteCookiestrict=true", + "system": true + } + ], + "method": "PATCH", + "body": { + "mode": "raw", + "raw": "{\n\t\"relevanteAndereZaken\": [{\n\t \"url\": \"http://localhost:8080/index.php/apps/procest/api/zgw/zaken/v1/zaken/1ea85620-912a-4a68-b62e-65570c1dfdfa\",\n\t \"aardRelatie\": \"vervolg\"\n\t}]\n}" + }, + "auth": { + "type": "jwt", + "jwt": [ + { + "type": "string", + "value": "{\r\n \"iss\": \"procest-admin\",\r\n \"client_id\": \"procest-admin\",\r\n \"iat\": \"1773145175\",\r\n \"user_id\": \"procest-admin\",\r\n \"user_representation\": \"\"\r\n}", + "key": "payload" + }, + { + "type": "string", + "value": "procest-admin-secret-key-for-testing", + "key": "secret" + }, + { + "type": "string", + "value": "HS256", + "key": "algorithm" + }, + { + "type": "boolean", + "value": false, + "key": "isSecretBase64Encoded" + }, + { + "type": "string", + "value": "header", + "key": "addTokenTo" + }, + { + "type": "string", + "value": "Bearer", + "key": "headerPrefix" + }, + { + "type": "string", + "value": "token", + "key": "queryParamKey" + }, + { + "type": "string", + "value": "{}", + "key": "header" + } + ] + } + }, + "response": { + "id": "6ee14f26-95c7-42ac-b703-2b361ce32f76", + "status": "OK", + "code": 200, + "header": [ + { + "key": "Date", + "value": "Tue, 10 Mar 2026 12:19:35 GMT" + }, + { + "key": "Server", + "value": "Apache/2.4.66 (Debian)" + }, + { + "key": "X-Content-Type-Options", + "value": "nosniff" + }, + { + "key": "X-Frame-Options", + "value": "SAMEORIGIN" + }, + { + "key": "X-Permitted-Cross-Domain-Policies", + "value": "none" + }, + { + "key": "X-Robots-Tag", + "value": "noindex, nofollow" + }, + { + "key": "Referrer-Policy", + "value": "no-referrer" + }, + { + "key": "X-Powered-By", + "value": "PHP/8.3.30" + }, + { + "key": "Content-Security-Policy", + "value": "default-src 'none';base-uri 'none';manifest-src 'self';frame-ancestors 'none'" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=eab38951be79f7844f997013ba5b3094; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=eab38951be79f7844f997013ba5b3094; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=eab38951be79f7844f997013ba5b3094; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=eab38951be79f7844f997013ba5b3094; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=eab38951be79f7844f997013ba5b3094; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=362bf98abeb238e63be6bfc7c56e0661; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=362bf98abeb238e63be6bfc7c56e0661; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=362bf98abeb238e63be6bfc7c56e0661; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=362bf98abeb238e63be6bfc7c56e0661; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=362bf98abeb238e63be6bfc7c56e0661; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "X-Request-Id", + "value": "ktbCOtq16ICyFnRnP5x8" + }, + { + "key": "Cache-Control", + "value": "no-cache, no-store, must-revalidate" + }, + { + "key": "Feature-Policy", + "value": "autoplay 'none';camera 'none';fullscreen 'none';geolocation 'none';microphone 'none';payment 'none'" + }, + { + "key": "X-User-Id", + "value": "admin" + }, + { + "key": "Content-Encoding", + "value": "gzip" + }, + { + "key": "Content-Length", + "value": "423" + }, + { + "key": "Keep-Alive", + "value": "timeout=5, max=98" + }, + { + "key": "Connection", + "value": "Keep-Alive" + }, + { + "key": "Content-Type", + "value": "application/json; charset=utf-8" + } + ], + "stream": { + "type": "Buffer", + "data": [ + 123, + 34, + 117, + 114, + 108, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 122, + 97, + 107, + 101, + 110, + 92, + 47, + 118, + 49, + 92, + 47, + 122, + 97, + 107, + 101, + 110, + 92, + 47, + 49, + 101, + 97, + 56, + 53, + 54, + 50, + 48, + 45, + 57, + 49, + 50, + 97, + 45, + 52, + 97, + 54, + 56, + 45, + 98, + 54, + 50, + 101, + 45, + 54, + 53, + 53, + 55, + 48, + 99, + 49, + 100, + 102, + 100, + 102, + 97, + 34, + 44, + 34, + 117, + 117, + 105, + 100, + 34, + 58, + 34, + 49, + 101, + 97, + 56, + 53, + 54, + 50, + 48, + 45, + 57, + 49, + 50, + 97, + 45, + 52, + 97, + 54, + 56, + 45, + 98, + 54, + 50, + 101, + 45, + 54, + 53, + 53, + 55, + 48, + 99, + 49, + 100, + 102, + 100, + 102, + 97, + 34, + 44, + 34, + 105, + 100, + 101, + 110, + 116, + 105, + 102, + 105, + 99, + 97, + 116, + 105, + 101, + 34, + 58, + 34, + 34, + 44, + 34, + 111, + 109, + 115, + 99, + 104, + 114, + 105, + 106, + 118, + 105, + 110, + 103, + 34, + 58, + 34, + 115, + 116, + 114, + 105, + 110, + 103, + 34, + 44, + 34, + 116, + 111, + 101, + 108, + 105, + 99, + 104, + 116, + 105, + 110, + 103, + 34, + 58, + 34, + 115, + 116, + 114, + 105, + 110, + 103, + 34, + 44, + 34, + 122, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 105, + 92, + 47, + 118, + 49, + 92, + 47, + 122, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 110, + 92, + 47, + 54, + 49, + 57, + 100, + 99, + 51, + 101, + 53, + 45, + 53, + 50, + 102, + 49, + 45, + 52, + 50, + 57, + 52, + 45, + 97, + 53, + 54, + 57, + 45, + 102, + 50, + 49, + 100, + 49, + 54, + 102, + 52, + 52, + 56, + 55, + 57, + 34, + 44, + 34, + 114, + 101, + 103, + 105, + 115, + 116, + 114, + 97, + 116, + 105, + 101, + 100, + 97, + 116, + 117, + 109, + 34, + 58, + 34, + 50, + 48, + 50, + 54, + 45, + 48, + 51, + 45, + 49, + 48, + 84, + 49, + 50, + 58, + 49, + 57, + 58, + 49, + 49, + 43, + 48, + 48, + 58, + 48, + 48, + 34, + 44, + 34, + 115, + 116, + 97, + 114, + 116, + 100, + 97, + 116, + 117, + 109, + 34, + 58, + 34, + 50, + 48, + 49, + 57, + 45, + 48, + 52, + 45, + 48, + 57, + 34, + 44, + 34, + 101, + 105, + 110, + 100, + 100, + 97, + 116, + 117, + 109, + 34, + 58, + 110, + 117, + 108, + 108, + 44, + 34, + 101, + 105, + 110, + 100, + 100, + 97, + 116, + 117, + 109, + 71, + 101, + 112, + 108, + 97, + 110, + 100, + 34, + 58, + 34, + 50, + 48, + 49, + 57, + 45, + 48, + 52, + 45, + 50, + 48, + 34, + 44, + 34, + 117, + 105, + 116, + 101, + 114, + 108, + 105, + 106, + 107, + 101, + 69, + 105, + 110, + 100, + 100, + 97, + 116, + 117, + 109, + 65, + 102, + 100, + 111, + 101, + 110, + 105, + 110, + 103, + 34, + 58, + 34, + 50, + 48, + 49, + 57, + 45, + 48, + 52, + 45, + 48, + 57, + 34, + 44, + 34, + 118, + 101, + 114, + 116, + 114, + 111, + 117, + 119, + 101, + 108, + 105, + 106, + 107, + 104, + 101, + 105, + 100, + 97, + 97, + 110, + 100, + 117, + 105, + 100, + 105, + 110, + 103, + 34, + 58, + 34, + 103, + 101, + 104, + 101, + 105, + 109, + 34, + 44, + 34, + 118, + 101, + 114, + 97, + 110, + 116, + 119, + 111, + 111, + 114, + 100, + 101, + 108, + 105, + 106, + 107, + 101, + 79, + 114, + 103, + 97, + 110, + 105, + 115, + 97, + 116, + 105, + 101, + 34, + 58, + 34, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 34, + 44, + 34, + 97, + 114, + 99, + 104, + 105, + 101, + 102, + 110, + 111, + 109, + 105, + 110, + 97, + 116, + 105, + 101, + 34, + 58, + 110, + 117, + 108, + 108, + 44, + 34, + 97, + 114, + 99, + 104, + 105, + 101, + 102, + 97, + 99, + 116, + 105, + 101, + 100, + 97, + 116, + 117, + 109, + 34, + 58, + 110, + 117, + 108, + 108, + 44, + 34, + 97, + 114, + 99, + 104, + 105, + 101, + 102, + 115, + 116, + 97, + 116, + 117, + 115, + 34, + 58, + 34, + 110, + 111, + 103, + 95, + 116, + 101, + 95, + 97, + 114, + 99, + 104, + 105, + 118, + 101, + 114, + 101, + 110, + 34, + 44, + 34, + 98, + 101, + 116, + 97, + 108, + 105, + 110, + 103, + 115, + 105, + 110, + 100, + 105, + 99, + 97, + 116, + 105, + 101, + 34, + 58, + 34, + 103, + 101, + 104, + 101, + 101, + 108, + 34, + 44, + 34, + 108, + 97, + 97, + 116, + 115, + 116, + 101, + 66, + 101, + 116, + 97, + 97, + 108, + 100, + 97, + 116, + 117, + 109, + 34, + 58, + 34, + 50, + 48, + 49, + 57, + 45, + 48, + 49, + 45, + 48, + 49, + 34, + 44, + 34, + 104, + 111, + 111, + 102, + 100, + 122, + 97, + 97, + 107, + 34, + 58, + 110, + 117, + 108, + 108, + 125 + ] + }, + "cookie": [], + "responseTime": 200, + "responseSize": 787 + }, + "id": "78050592-2720-43cf-822f-22afe780fb6c", + "assertions": [ + { + "assertion": "Zaak deels bijwerken met geldige relevanteAndereZaken geeft 200", + "skipped": false + } + ] + }, + { + "cursor": { + "ref": "6d268a49-67b6-4f14-9690-9ea8ef311ff5", + "length": 313, + "cycles": 1, + "position": 145, + "iteration": 0, + "httpRequestId": "0021c912-e691-4230-9cfe-2e4f07e6a063" + }, + "item": { + "id": "de523991-72f9-4f68-8b17-09c4e5b6944b", + "name": "(zrc-012a) Zaak aanmaken met opschorting zonder indicatie en reden is onmogelijk", + "request": { + "url": { + "path": [ + "zaken" + ], + "host": [ + "{{zrc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Crs", + "value": "EPSG:4326" + }, + { + "key": "Accept-Crs", + "value": "EPSG:4326" + }, + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\r\n \"bronorganisatie\": \"000000000\",\r\n \"omschrijving\": \"string\",\r\n \"toelichting\": \"string\",\r\n \"zaaktype\": \"{{zaaktype_url}}\",\r\n \"registratiedatum\": \"2019-04-09\",\r\n \"verantwoordelijkeOrganisatie\": \"000000000\",\r\n \"startdatum\": \"2019-04-09\",\r\n \"einddatum\": null,\r\n \"einddatumGepland\": \"2019-04-20\",\r\n \"uiterlijkeEinddatumAfdoening\": \"2019-04-09\",\r\n \"publicatiedatum\": \"2019-04-09\",\r\n \"communicatiekanaal\": \"\",\r\n \"productenOfDiensten\": [],\r\n \"vertrouwelijkheidaanduiding\": \"{{expliciete_vertrouwelijkheid}}\",\r\n \"betalingsindicatie\": \"geheel\",\r\n \"betalingsindicatieWeergave\": null,\r\n \"laatsteBetaaldatum\": \"2019-01-01T00:00:00Z\",\r\n \"zaakgeometrie\": {\r\n \"type\": \"Point\",\r\n \"coordinates\": [\r\n 53.0,\r\n 5.0\r\n ]\r\n },\r\n \"verlenging\": null,\r\n \"opschorting\": {\r\n \"wrong_field\": \"test\"\r\n },\r\n \"selectielijstklasse\": \"https://referentielijsten.roxit.nl/api/v1/resultaten/0fe71ce3-b1e1-48eb-9070-be2756fc71b5\",\r\n \"hoofdzaak\": null,\r\n \"deelzaken\": [],\r\n \"relevanteAndereZaken\": [],\r\n \"eigenschappen\": [],\r\n \"rollen\": [],\r\n \"status\": null,\r\n \"zaakinformatieobjecten\": [],\r\n \"zaakobjecten\": [],\r\n \"resultaat\": null,\r\n \"kenmerken\": [],\r\n \"archiefnominatie\": null,\r\n \"archiefstatus\": \"nog_te_archiveren\",\r\n \"archiefactiedatum\": null,\r\n \"opdrachtgevendeOrganisatie\": null,\r\n \"processobjectaard\": null,\r\n \"startdatumBewaartermijn\": null,\r\n \"processobject\": null\r\n}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "1b4b494f-0d4b-423d-ba70-3b31956ceab8", + "type": "text/javascript", + "packages": {}, + "exec": [ + "pm.test(\"Zaak aanmaken met opschorting zonder indicatie en reden geeft 400\", function() {", + " pm.response.to.have.status(400);", + " ", + " // Verify that the 400 is returned for the correct reason", + " var errors = pm.response.json()[\"invalidParams\"];", + " pm.expect(errors[0].name).to.be.equal(\"opschorting.indicatie\");", + " pm.expect(errors[0].code).to.be.equal(\"required\");", + " ", + " pm.expect(errors[1].name).to.be.equal(\"opschorting.reden\");", + " pm.expect(errors[1].code).to.be.equal(\"required\");", + "});", + "", + "if(pm.response.code == 201) {", + " pm.environment.set(\"created_zaak_url\", pm.response.json().url);", + "", + "}" + ], + "_lastExecutionId": "e4e9cdbb-3d32-43de-8428-33e2130f6249" + } + }, + { + "listen": "prerequest", + "script": { + "id": "6615397a-b321-4624-85d6-3ee6863e4487", + "type": "text/javascript", + "packages": {}, + "exec": [ + "" + ], + "_lastExecutionId": "8826f5eb-5375-4869-9b21-49d81055cf1a" + } + } + ] + }, + "request": { + "url": { + "protocol": "http", + "port": "8080", + "path": [ + "index.php", + "apps", + "procest", + "api", + "zgw", + "zaken", + "v1", + "zaken" + ], + "host": [ + "localhost" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Crs", + "value": "EPSG:4326" + }, + { + "key": "Accept-Crs", + "value": "EPSG:4326" + }, + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Authorization", + "value": "Bearer eyJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJwcm9jZXN0LWFkbWluIiwiY2xpZW50X2lkIjoicHJvY2VzdC1hZG1pbiIsImlhdCI6IjE3NzMxNDUxNzYiLCJ1c2VyX2lkIjoicHJvY2VzdC1hZG1pbiIsInVzZXJfcmVwcmVzZW50YXRpb24iOiIifQ.nBleuA7IlT6hvId2c3xh_nCmnR1rTSpPiduxXJmb8jE", + "system": true + }, + { + "key": "User-Agent", + "value": "PostmanRuntime/7.39.1", + "system": true + }, + { + "key": "Accept", + "value": "*/*", + "system": true + }, + { + "key": "Cache-Control", + "value": "no-cache", + "system": true + }, + { + "key": "Postman-Token", + "value": "4820620b-bbc3-4ec2-b758-69139913057f", + "system": true + }, + { + "key": "Host", + "value": "localhost:8080", + "system": true + }, + { + "key": "Accept-Encoding", + "value": "gzip, deflate, br", + "system": true + }, + { + "key": "Connection", + "value": "keep-alive", + "system": true + }, + { + "key": "Content-Length", + "value": "1586", + "system": true + }, + { + "key": "Cookie", + "value": "ocvp3112b4wg=362bf98abeb238e63be6bfc7c56e0661; oc_sessionPassphrase=LBNdKxRzA0iqoULIruNxDDh2BK3O%2BrCIU8aUmiUcOFvy5Xw1YfjwQNlmBW2IkGwJYtxXh9%2BwDN6vYuGNX07tXzkBtjQJUWTGdzf8AIOUIVxVx5DfyWAQZ7nmYmQv6XSE; nc_sameSiteCookielax=true; nc_sameSiteCookiestrict=true", + "system": true + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\r\n \"bronorganisatie\": \"000000000\",\r\n \"omschrijving\": \"string\",\r\n \"toelichting\": \"string\",\r\n \"zaaktype\": \"http://localhost:8080/index.php/apps/procest/api/zgw/catalogi/v1/zaaktypen/619dc3e5-52f1-4294-a569-f21d16f44879\",\r\n \"registratiedatum\": \"2019-04-09\",\r\n \"verantwoordelijkeOrganisatie\": \"000000000\",\r\n \"startdatum\": \"2019-04-09\",\r\n \"einddatum\": null,\r\n \"einddatumGepland\": \"2019-04-20\",\r\n \"uiterlijkeEinddatumAfdoening\": \"2019-04-09\",\r\n \"publicatiedatum\": \"2019-04-09\",\r\n \"communicatiekanaal\": \"\",\r\n \"productenOfDiensten\": [],\r\n \"vertrouwelijkheidaanduiding\": \"vertrouwelijk\",\r\n \"betalingsindicatie\": \"geheel\",\r\n \"betalingsindicatieWeergave\": null,\r\n \"laatsteBetaaldatum\": \"2019-01-01T00:00:00Z\",\r\n \"zaakgeometrie\": {\r\n \"type\": \"Point\",\r\n \"coordinates\": [\r\n 53.0,\r\n 5.0\r\n ]\r\n },\r\n \"verlenging\": null,\r\n \"opschorting\": {\r\n \"wrong_field\": \"test\"\r\n },\r\n \"selectielijstklasse\": \"https://referentielijsten.roxit.nl/api/v1/resultaten/0fe71ce3-b1e1-48eb-9070-be2756fc71b5\",\r\n \"hoofdzaak\": null,\r\n \"deelzaken\": [],\r\n \"relevanteAndereZaken\": [],\r\n \"eigenschappen\": [],\r\n \"rollen\": [],\r\n \"status\": null,\r\n \"zaakinformatieobjecten\": [],\r\n \"zaakobjecten\": [],\r\n \"resultaat\": null,\r\n \"kenmerken\": [],\r\n \"archiefnominatie\": null,\r\n \"archiefstatus\": \"nog_te_archiveren\",\r\n \"archiefactiedatum\": null,\r\n \"opdrachtgevendeOrganisatie\": null,\r\n \"processobjectaard\": null,\r\n \"startdatumBewaartermijn\": null,\r\n \"processobject\": null\r\n}" + }, + "auth": { + "type": "jwt", + "jwt": [ + { + "type": "string", + "value": "{\r\n \"iss\": \"procest-admin\",\r\n \"client_id\": \"procest-admin\",\r\n \"iat\": \"1773145176\",\r\n \"user_id\": \"procest-admin\",\r\n \"user_representation\": \"\"\r\n}", + "key": "payload" + }, + { + "type": "string", + "value": "procest-admin-secret-key-for-testing", + "key": "secret" + }, + { + "type": "string", + "value": "HS256", + "key": "algorithm" + }, + { + "type": "boolean", + "value": false, + "key": "isSecretBase64Encoded" + }, + { + "type": "string", + "value": "header", + "key": "addTokenTo" + }, + { + "type": "string", + "value": "Bearer", + "key": "headerPrefix" + }, + { + "type": "string", + "value": "token", + "key": "queryParamKey" + }, + { + "type": "string", + "value": "{}", + "key": "header" + } + ] + } + }, + "response": { + "id": "7bb2e9fa-e135-4ba4-97b8-7c378219d959", + "status": "Bad request", + "code": 400, + "header": [ + { + "key": "Date", + "value": "Tue, 10 Mar 2026 12:19:35 GMT" + }, + { + "key": "Server", + "value": "Apache/2.4.66 (Debian)" + }, + { + "key": "X-Content-Type-Options", + "value": "nosniff" + }, + { + "key": "X-Frame-Options", + "value": "SAMEORIGIN" + }, + { + "key": "X-Permitted-Cross-Domain-Policies", + "value": "none" + }, + { + "key": "X-Robots-Tag", + "value": "noindex, nofollow" + }, + { + "key": "Referrer-Policy", + "value": "no-referrer" + }, + { + "key": "X-Powered-By", + "value": "PHP/8.3.30" + }, + { + "key": "Content-Security-Policy", + "value": "default-src 'none';base-uri 'none';manifest-src 'self';frame-ancestors 'none'" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=362bf98abeb238e63be6bfc7c56e0661; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=362bf98abeb238e63be6bfc7c56e0661; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=362bf98abeb238e63be6bfc7c56e0661; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=362bf98abeb238e63be6bfc7c56e0661; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=362bf98abeb238e63be6bfc7c56e0661; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=90deb170656287484c4f55e391b3a4bb; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=90deb170656287484c4f55e391b3a4bb; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=90deb170656287484c4f55e391b3a4bb; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=90deb170656287484c4f55e391b3a4bb; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=90deb170656287484c4f55e391b3a4bb; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "X-Request-Id", + "value": "xzam955xDrXZOj4Ts3PH" + }, + { + "key": "Cache-Control", + "value": "no-cache, no-store, must-revalidate" + }, + { + "key": "Feature-Policy", + "value": "autoplay 'none';camera 'none';fullscreen 'none';geolocation 'none';microphone 'none';payment 'none'" + }, + { + "key": "X-User-Id", + "value": "admin" + }, + { + "key": "Content-Length", + "value": "262" + }, + { + "key": "Connection", + "value": "close" + }, + { + "key": "Content-Type", + "value": "application/json; charset=utf-8" + } + ], + "stream": { + "type": "Buffer", + "data": [ + 123, + 34, + 100, + 101, + 116, + 97, + 105, + 108, + 34, + 58, + 34, + 79, + 112, + 115, + 99, + 104, + 111, + 114, + 116, + 105, + 110, + 103, + 32, + 118, + 101, + 114, + 101, + 105, + 115, + 116, + 32, + 105, + 110, + 100, + 105, + 99, + 97, + 116, + 105, + 101, + 32, + 101, + 110, + 32, + 114, + 101, + 100, + 101, + 110, + 46, + 34, + 44, + 34, + 105, + 110, + 118, + 97, + 108, + 105, + 100, + 80, + 97, + 114, + 97, + 109, + 115, + 34, + 58, + 91, + 123, + 34, + 110, + 97, + 109, + 101, + 34, + 58, + 34, + 111, + 112, + 115, + 99, + 104, + 111, + 114, + 116, + 105, + 110, + 103, + 46, + 105, + 110, + 100, + 105, + 99, + 97, + 116, + 105, + 101, + 34, + 44, + 34, + 99, + 111, + 100, + 101, + 34, + 58, + 34, + 114, + 101, + 113, + 117, + 105, + 114, + 101, + 100, + 34, + 44, + 34, + 114, + 101, + 97, + 115, + 111, + 110, + 34, + 58, + 34, + 73, + 110, + 100, + 105, + 99, + 97, + 116, + 105, + 101, + 32, + 105, + 115, + 32, + 118, + 101, + 114, + 101, + 105, + 115, + 116, + 32, + 98, + 105, + 106, + 32, + 111, + 112, + 115, + 99, + 104, + 111, + 114, + 116, + 105, + 110, + 103, + 46, + 34, + 125, + 44, + 123, + 34, + 110, + 97, + 109, + 101, + 34, + 58, + 34, + 111, + 112, + 115, + 99, + 104, + 111, + 114, + 116, + 105, + 110, + 103, + 46, + 114, + 101, + 100, + 101, + 110, + 34, + 44, + 34, + 99, + 111, + 100, + 101, + 34, + 58, + 34, + 114, + 101, + 113, + 117, + 105, + 114, + 101, + 100, + 34, + 44, + 34, + 114, + 101, + 97, + 115, + 111, + 110, + 34, + 58, + 34, + 82, + 101, + 100, + 101, + 110, + 32, + 105, + 115, + 32, + 118, + 101, + 114, + 101, + 105, + 115, + 116, + 32, + 98, + 105, + 106, + 32, + 111, + 112, + 115, + 99, + 104, + 111, + 114, + 116, + 105, + 110, + 103, + 46, + 34, + 125, + 93, + 125 + ] + }, + "cookie": [], + "responseTime": 128, + "responseSize": 262 + }, + "id": "de523991-72f9-4f68-8b17-09c4e5b6944b", + "assertions": [ + { + "assertion": "Zaak aanmaken met opschorting zonder indicatie en reden geeft 400", + "skipped": false + } + ] + }, + { + "cursor": { + "ref": "2f6fdf2a-6d36-40ef-b69a-6709a2ed390c", + "length": 313, + "cycles": 1, + "position": 146, + "iteration": 0, + "httpRequestId": "62e76c94-be15-43ca-b6b4-0c63d4829af3" + }, + "item": { + "id": "691af2f0-cae0-40de-8541-149344ec0af7", + "name": "(zrc-012b) Zaak bijwerken met opschorting zonder indicatie en reden is onmogelijk", + "request": { + "url": { + "host": [ + "{{zaak_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Crs", + "value": "EPSG:4326" + }, + { + "key": "Accept-Crs", + "value": "EPSG:4326" + }, + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "PUT", + "body": { + "mode": "raw", + "raw": "{\r\n \"bronorganisatie\": \"000000000\",\r\n \"omschrijving\": \"string\",\r\n \"toelichting\": \"string\",\r\n \"zaaktype\": \"{{zaaktype_url}}\",\r\n \"registratiedatum\": \"2019-04-09\",\r\n \"verantwoordelijkeOrganisatie\": \"000000000\",\r\n \"startdatum\": \"2019-04-09\",\r\n \"einddatum\": null,\r\n \"einddatumGepland\": \"2019-04-20\",\r\n \"uiterlijkeEinddatumAfdoening\": \"2019-04-09\",\r\n \"publicatiedatum\": \"2019-04-09\",\r\n \"communicatiekanaal\": \"\",\r\n \"productenOfDiensten\": [],\r\n \"vertrouwelijkheidaanduiding\": \"{{expliciete_vertrouwelijkheid}}\",\r\n \"betalingsindicatie\": \"geheel\",\r\n \"betalingsindicatieWeergave\": null,\r\n \"laatsteBetaaldatum\": \"2019-01-01T00:00:00Z\",\r\n \"zaakgeometrie\": {\r\n \"type\": \"Point\",\r\n \"coordinates\": [\r\n 53.0,\r\n 5.0\r\n ]\r\n },\r\n \"verlenging\": null,\r\n \"opschorting\": {\r\n \"wrong_field\": \"test\"\r\n },\r\n \"selectielijstklasse\": \"https://referentielijsten.roxit.nl/api/v1/resultaten/0fe71ce3-b1e1-48eb-9070-be2756fc71b5\",\r\n \"hoofdzaak\": null,\r\n \"deelzaken\": [],\r\n \"relevanteAndereZaken\": [],\r\n \"eigenschappen\": [],\r\n \"rollen\": [],\r\n \"status\": null,\r\n \"zaakinformatieobjecten\": [],\r\n \"zaakobjecten\": [],\r\n \"resultaat\": null,\r\n \"kenmerken\": [],\r\n \"archiefnominatie\": null,\r\n \"archiefstatus\": \"nog_te_archiveren\",\r\n \"archiefactiedatum\": null,\r\n \"opdrachtgevendeOrganisatie\": null,\r\n \"processobjectaard\": null,\r\n \"startdatumBewaartermijn\": null,\r\n \"processobject\": null\r\n}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "fa90be55-c0f3-48fa-a547-5bc3778cbdf0", + "type": "text/javascript", + "packages": {}, + "exec": [ + "pm.test(\"Zaak bijwerken met opschorting zonder indicatie en reden geeft 400\", function() {", + " pm.response.to.have.status(400);", + " ", + " // Verify that the 400 is returned for the correct reason", + " var errors = pm.response.json()[\"invalidParams\"];", + " pm.expect(errors[0].name).to.be.equal(\"opschorting.indicatie\");", + " pm.expect(errors[0].code).to.be.equal(\"required\");", + " ", + " pm.expect(errors[1].name).to.be.equal(\"opschorting.reden\");", + " pm.expect(errors[1].code).to.be.equal(\"required\");", + "});" + ], + "_lastExecutionId": "39c8896e-254c-40c7-a559-6ac76f80c079" + } + }, + { + "listen": "prerequest", + "script": { + "id": "511f4ab5-aa7e-47d5-a867-a328452c9b51", + "type": "text/javascript", + "packages": {}, + "exec": [ + "" + ], + "_lastExecutionId": "8933ab76-9fde-48d9-97e7-50dd945bcdc4" + } + } + ] + }, + "request": { + "url": { + "protocol": "http", + "port": "8080", + "path": [ + "index.php", + "apps", + "procest", + "api", + "zgw", + "zaken", + "v1", + "zaken", + "1ea85620-912a-4a68-b62e-65570c1dfdfa" + ], + "host": [ + "localhost" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Crs", + "value": "EPSG:4326" + }, + { + "key": "Accept-Crs", + "value": "EPSG:4326" + }, + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Authorization", + "value": "Bearer eyJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJwcm9jZXN0LWFkbWluIiwiY2xpZW50X2lkIjoicHJvY2VzdC1hZG1pbiIsImlhdCI6IjE3NzMxNDUxNzYiLCJ1c2VyX2lkIjoicHJvY2VzdC1hZG1pbiIsInVzZXJfcmVwcmVzZW50YXRpb24iOiIifQ.nBleuA7IlT6hvId2c3xh_nCmnR1rTSpPiduxXJmb8jE", + "system": true + }, + { + "key": "User-Agent", + "value": "PostmanRuntime/7.39.1", + "system": true + }, + { + "key": "Accept", + "value": "*/*", + "system": true + }, + { + "key": "Cache-Control", + "value": "no-cache", + "system": true + }, + { + "key": "Postman-Token", + "value": "40482729-c096-4572-9617-d8bad1ca3213", + "system": true + }, + { + "key": "Host", + "value": "localhost:8080", + "system": true + }, + { + "key": "Accept-Encoding", + "value": "gzip, deflate, br", + "system": true + }, + { + "key": "Connection", + "value": "keep-alive", + "system": true + }, + { + "key": "Content-Length", + "value": "1586", + "system": true + }, + { + "key": "Cookie", + "value": "ocvp3112b4wg=90deb170656287484c4f55e391b3a4bb; oc_sessionPassphrase=LBNdKxRzA0iqoULIruNxDDh2BK3O%2BrCIU8aUmiUcOFvy5Xw1YfjwQNlmBW2IkGwJYtxXh9%2BwDN6vYuGNX07tXzkBtjQJUWTGdzf8AIOUIVxVx5DfyWAQZ7nmYmQv6XSE; nc_sameSiteCookielax=true; nc_sameSiteCookiestrict=true", + "system": true + } + ], + "method": "PUT", + "body": { + "mode": "raw", + "raw": "{\r\n \"bronorganisatie\": \"000000000\",\r\n \"omschrijving\": \"string\",\r\n \"toelichting\": \"string\",\r\n \"zaaktype\": \"http://localhost:8080/index.php/apps/procest/api/zgw/catalogi/v1/zaaktypen/619dc3e5-52f1-4294-a569-f21d16f44879\",\r\n \"registratiedatum\": \"2019-04-09\",\r\n \"verantwoordelijkeOrganisatie\": \"000000000\",\r\n \"startdatum\": \"2019-04-09\",\r\n \"einddatum\": null,\r\n \"einddatumGepland\": \"2019-04-20\",\r\n \"uiterlijkeEinddatumAfdoening\": \"2019-04-09\",\r\n \"publicatiedatum\": \"2019-04-09\",\r\n \"communicatiekanaal\": \"\",\r\n \"productenOfDiensten\": [],\r\n \"vertrouwelijkheidaanduiding\": \"vertrouwelijk\",\r\n \"betalingsindicatie\": \"geheel\",\r\n \"betalingsindicatieWeergave\": null,\r\n \"laatsteBetaaldatum\": \"2019-01-01T00:00:00Z\",\r\n \"zaakgeometrie\": {\r\n \"type\": \"Point\",\r\n \"coordinates\": [\r\n 53.0,\r\n 5.0\r\n ]\r\n },\r\n \"verlenging\": null,\r\n \"opschorting\": {\r\n \"wrong_field\": \"test\"\r\n },\r\n \"selectielijstklasse\": \"https://referentielijsten.roxit.nl/api/v1/resultaten/0fe71ce3-b1e1-48eb-9070-be2756fc71b5\",\r\n \"hoofdzaak\": null,\r\n \"deelzaken\": [],\r\n \"relevanteAndereZaken\": [],\r\n \"eigenschappen\": [],\r\n \"rollen\": [],\r\n \"status\": null,\r\n \"zaakinformatieobjecten\": [],\r\n \"zaakobjecten\": [],\r\n \"resultaat\": null,\r\n \"kenmerken\": [],\r\n \"archiefnominatie\": null,\r\n \"archiefstatus\": \"nog_te_archiveren\",\r\n \"archiefactiedatum\": null,\r\n \"opdrachtgevendeOrganisatie\": null,\r\n \"processobjectaard\": null,\r\n \"startdatumBewaartermijn\": null,\r\n \"processobject\": null\r\n}" + }, + "auth": { + "type": "jwt", + "jwt": [ + { + "type": "string", + "value": "{\r\n \"iss\": \"procest-admin\",\r\n \"client_id\": \"procest-admin\",\r\n \"iat\": \"1773145176\",\r\n \"user_id\": \"procest-admin\",\r\n \"user_representation\": \"\"\r\n}", + "key": "payload" + }, + { + "type": "string", + "value": "procest-admin-secret-key-for-testing", + "key": "secret" + }, + { + "type": "string", + "value": "HS256", + "key": "algorithm" + }, + { + "type": "boolean", + "value": false, + "key": "isSecretBase64Encoded" + }, + { + "type": "string", + "value": "header", + "key": "addTokenTo" + }, + { + "type": "string", + "value": "Bearer", + "key": "headerPrefix" + }, + { + "type": "string", + "value": "token", + "key": "queryParamKey" + }, + { + "type": "string", + "value": "{}", + "key": "header" + } + ] + } + }, + "response": { + "id": "fecbd7d2-3842-4338-850e-63ce53aaf2bf", + "status": "Bad request", + "code": 400, + "header": [ + { + "key": "Date", + "value": "Tue, 10 Mar 2026 12:19:35 GMT" + }, + { + "key": "Server", + "value": "Apache/2.4.66 (Debian)" + }, + { + "key": "X-Content-Type-Options", + "value": "nosniff" + }, + { + "key": "X-Frame-Options", + "value": "SAMEORIGIN" + }, + { + "key": "X-Permitted-Cross-Domain-Policies", + "value": "none" + }, + { + "key": "X-Robots-Tag", + "value": "noindex, nofollow" + }, + { + "key": "Referrer-Policy", + "value": "no-referrer" + }, + { + "key": "X-Powered-By", + "value": "PHP/8.3.30" + }, + { + "key": "Content-Security-Policy", + "value": "default-src 'none';base-uri 'none';manifest-src 'self';frame-ancestors 'none'" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=90deb170656287484c4f55e391b3a4bb; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=90deb170656287484c4f55e391b3a4bb; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=90deb170656287484c4f55e391b3a4bb; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=90deb170656287484c4f55e391b3a4bb; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=90deb170656287484c4f55e391b3a4bb; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=933e55072c01eee65b4ef3c72c13082d; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=933e55072c01eee65b4ef3c72c13082d; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=933e55072c01eee65b4ef3c72c13082d; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=933e55072c01eee65b4ef3c72c13082d; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=933e55072c01eee65b4ef3c72c13082d; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "X-Request-Id", + "value": "5hEWCDLEihDhwN1UTYPh" + }, + { + "key": "Cache-Control", + "value": "no-cache, no-store, must-revalidate" + }, + { + "key": "Feature-Policy", + "value": "autoplay 'none';camera 'none';fullscreen 'none';geolocation 'none';microphone 'none';payment 'none'" + }, + { + "key": "X-User-Id", + "value": "admin" + }, + { + "key": "Content-Length", + "value": "262" + }, + { + "key": "Connection", + "value": "close" + }, + { + "key": "Content-Type", + "value": "application/json; charset=utf-8" + } + ], + "stream": { + "type": "Buffer", + "data": [ + 123, + 34, + 100, + 101, + 116, + 97, + 105, + 108, + 34, + 58, + 34, + 79, + 112, + 115, + 99, + 104, + 111, + 114, + 116, + 105, + 110, + 103, + 32, + 118, + 101, + 114, + 101, + 105, + 115, + 116, + 32, + 105, + 110, + 100, + 105, + 99, + 97, + 116, + 105, + 101, + 32, + 101, + 110, + 32, + 114, + 101, + 100, + 101, + 110, + 46, + 34, + 44, + 34, + 105, + 110, + 118, + 97, + 108, + 105, + 100, + 80, + 97, + 114, + 97, + 109, + 115, + 34, + 58, + 91, + 123, + 34, + 110, + 97, + 109, + 101, + 34, + 58, + 34, + 111, + 112, + 115, + 99, + 104, + 111, + 114, + 116, + 105, + 110, + 103, + 46, + 105, + 110, + 100, + 105, + 99, + 97, + 116, + 105, + 101, + 34, + 44, + 34, + 99, + 111, + 100, + 101, + 34, + 58, + 34, + 114, + 101, + 113, + 117, + 105, + 114, + 101, + 100, + 34, + 44, + 34, + 114, + 101, + 97, + 115, + 111, + 110, + 34, + 58, + 34, + 73, + 110, + 100, + 105, + 99, + 97, + 116, + 105, + 101, + 32, + 105, + 115, + 32, + 118, + 101, + 114, + 101, + 105, + 115, + 116, + 32, + 98, + 105, + 106, + 32, + 111, + 112, + 115, + 99, + 104, + 111, + 114, + 116, + 105, + 110, + 103, + 46, + 34, + 125, + 44, + 123, + 34, + 110, + 97, + 109, + 101, + 34, + 58, + 34, + 111, + 112, + 115, + 99, + 104, + 111, + 114, + 116, + 105, + 110, + 103, + 46, + 114, + 101, + 100, + 101, + 110, + 34, + 44, + 34, + 99, + 111, + 100, + 101, + 34, + 58, + 34, + 114, + 101, + 113, + 117, + 105, + 114, + 101, + 100, + 34, + 44, + 34, + 114, + 101, + 97, + 115, + 111, + 110, + 34, + 58, + 34, + 82, + 101, + 100, + 101, + 110, + 32, + 105, + 115, + 32, + 118, + 101, + 114, + 101, + 105, + 115, + 116, + 32, + 98, + 105, + 106, + 32, + 111, + 112, + 115, + 99, + 104, + 111, + 114, + 116, + 105, + 110, + 103, + 46, + 34, + 125, + 93, + 125 + ] + }, + "cookie": [], + "responseTime": 161, + "responseSize": 262 + }, + "id": "691af2f0-cae0-40de-8541-149344ec0af7", + "assertions": [ + { + "assertion": "Zaak bijwerken met opschorting zonder indicatie en reden geeft 400", + "skipped": false + } + ] + }, + { + "cursor": { + "ref": "326d5ba5-fcb8-4f4b-87d8-aa5f1307545e", + "length": 313, + "cycles": 1, + "position": 147, + "iteration": 0, + "httpRequestId": "4e42ca14-5f1c-42c6-a19b-6aeae59a6cdb" + }, + "item": { + "id": "80629c8e-f146-4649-bb4c-e939c5312bea", + "name": "(zrc-012c) Zaak deels bijwerken met opschorting zonder indicatie en reden is onmogelijk", + "request": { + "url": { + "host": [ + "{{zaak_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Crs", + "value": "EPSG:4326" + }, + { + "key": "Accept-Crs", + "value": "EPSG:4326" + }, + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "PATCH", + "body": { + "mode": "raw", + "raw": "{\n\t\"opschorting\": {\n\t\t\"wrong_field\": \"test\"\n\t}\n}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "782ebec3-44dc-4490-bf2f-919dde226d56", + "type": "text/javascript", + "exec": [ + "pm.test(\"Zaak deels bijwerken met opschorting zonder indicatie en reden geeft 400\", function() {", + " pm.response.to.have.status(400);", + " ", + " // Verify that the 400 is returned for the correct reason", + " var errors = pm.response.json()[\"invalidParams\"];", + " pm.expect(errors[0].name).to.be.equal(\"opschorting.indicatie\");", + " pm.expect(errors[0].code).to.be.equal(\"required\");", + " ", + " pm.expect(errors[1].name).to.be.equal(\"opschorting.reden\");", + " pm.expect(errors[1].code).to.be.equal(\"required\");", + "});" + ], + "_lastExecutionId": "8e908b06-1e9f-48f2-ab11-9298623ff07b" + } + }, + { + "listen": "prerequest", + "script": { + "id": "d76628bc-5f36-4fb3-8f00-b3bab804e072", + "type": "text/javascript", + "exec": [ + "" + ], + "_lastExecutionId": "b83e33f9-f280-4f54-99de-f0b3ec12bf6e" + } + } + ] + }, + "request": { + "url": { + "protocol": "http", + "port": "8080", + "path": [ + "index.php", + "apps", + "procest", + "api", + "zgw", + "zaken", + "v1", + "zaken", + "1ea85620-912a-4a68-b62e-65570c1dfdfa" + ], + "host": [ + "localhost" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Crs", + "value": "EPSG:4326" + }, + { + "key": "Accept-Crs", + "value": "EPSG:4326" + }, + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Authorization", + "value": "Bearer eyJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJwcm9jZXN0LWFkbWluIiwiY2xpZW50X2lkIjoicHJvY2VzdC1hZG1pbiIsImlhdCI6IjE3NzMxNDUxNzYiLCJ1c2VyX2lkIjoicHJvY2VzdC1hZG1pbiIsInVzZXJfcmVwcmVzZW50YXRpb24iOiIifQ.nBleuA7IlT6hvId2c3xh_nCmnR1rTSpPiduxXJmb8jE", + "system": true + }, + { + "key": "User-Agent", + "value": "PostmanRuntime/7.39.1", + "system": true + }, + { + "key": "Accept", + "value": "*/*", + "system": true + }, + { + "key": "Cache-Control", + "value": "no-cache", + "system": true + }, + { + "key": "Postman-Token", + "value": "0d8d26db-ffa5-423a-85e2-bbaa65a76da7", + "system": true + }, + { + "key": "Host", + "value": "localhost:8080", + "system": true + }, + { + "key": "Accept-Encoding", + "value": "gzip, deflate, br", + "system": true + }, + { + "key": "Connection", + "value": "keep-alive", + "system": true + }, + { + "key": "Content-Length", + "value": "48", + "system": true + }, + { + "key": "Cookie", + "value": "ocvp3112b4wg=933e55072c01eee65b4ef3c72c13082d; oc_sessionPassphrase=LBNdKxRzA0iqoULIruNxDDh2BK3O%2BrCIU8aUmiUcOFvy5Xw1YfjwQNlmBW2IkGwJYtxXh9%2BwDN6vYuGNX07tXzkBtjQJUWTGdzf8AIOUIVxVx5DfyWAQZ7nmYmQv6XSE; nc_sameSiteCookielax=true; nc_sameSiteCookiestrict=true", + "system": true + } + ], + "method": "PATCH", + "body": { + "mode": "raw", + "raw": "{\n\t\"opschorting\": {\n\t\t\"wrong_field\": \"test\"\n\t}\n}" + }, + "auth": { + "type": "jwt", + "jwt": [ + { + "type": "string", + "value": "{\r\n \"iss\": \"procest-admin\",\r\n \"client_id\": \"procest-admin\",\r\n \"iat\": \"1773145176\",\r\n \"user_id\": \"procest-admin\",\r\n \"user_representation\": \"\"\r\n}", + "key": "payload" + }, + { + "type": "string", + "value": "procest-admin-secret-key-for-testing", + "key": "secret" + }, + { + "type": "string", + "value": "HS256", + "key": "algorithm" + }, + { + "type": "boolean", + "value": false, + "key": "isSecretBase64Encoded" + }, + { + "type": "string", + "value": "header", + "key": "addTokenTo" + }, + { + "type": "string", + "value": "Bearer", + "key": "headerPrefix" + }, + { + "type": "string", + "value": "token", + "key": "queryParamKey" + }, + { + "type": "string", + "value": "{}", + "key": "header" + } + ] + } + }, + "response": { + "id": "c64e5aac-01d0-4c30-99ca-dbf023776f26", + "status": "Bad request", + "code": 400, + "header": [ + { + "key": "Date", + "value": "Tue, 10 Mar 2026 12:19:36 GMT" + }, + { + "key": "Server", + "value": "Apache/2.4.66 (Debian)" + }, + { + "key": "X-Content-Type-Options", + "value": "nosniff" + }, + { + "key": "X-Frame-Options", + "value": "SAMEORIGIN" + }, + { + "key": "X-Permitted-Cross-Domain-Policies", + "value": "none" + }, + { + "key": "X-Robots-Tag", + "value": "noindex, nofollow" + }, + { + "key": "Referrer-Policy", + "value": "no-referrer" + }, + { + "key": "X-Powered-By", + "value": "PHP/8.3.30" + }, + { + "key": "Content-Security-Policy", + "value": "default-src 'none';base-uri 'none';manifest-src 'self';frame-ancestors 'none'" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=933e55072c01eee65b4ef3c72c13082d; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=933e55072c01eee65b4ef3c72c13082d; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=933e55072c01eee65b4ef3c72c13082d; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=933e55072c01eee65b4ef3c72c13082d; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=933e55072c01eee65b4ef3c72c13082d; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=91f4d2cc62e302e5069ff6e781b976dd; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=91f4d2cc62e302e5069ff6e781b976dd; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=91f4d2cc62e302e5069ff6e781b976dd; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=91f4d2cc62e302e5069ff6e781b976dd; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=91f4d2cc62e302e5069ff6e781b976dd; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "X-Request-Id", + "value": "s6FRqN3C5fm6orLN0xgm" + }, + { + "key": "Cache-Control", + "value": "no-cache, no-store, must-revalidate" + }, + { + "key": "Feature-Policy", + "value": "autoplay 'none';camera 'none';fullscreen 'none';geolocation 'none';microphone 'none';payment 'none'" + }, + { + "key": "X-User-Id", + "value": "admin" + }, + { + "key": "Content-Length", + "value": "262" + }, + { + "key": "Connection", + "value": "close" + }, + { + "key": "Content-Type", + "value": "application/json; charset=utf-8" + } + ], + "stream": { + "type": "Buffer", + "data": [ + 123, + 34, + 100, + 101, + 116, + 97, + 105, + 108, + 34, + 58, + 34, + 79, + 112, + 115, + 99, + 104, + 111, + 114, + 116, + 105, + 110, + 103, + 32, + 118, + 101, + 114, + 101, + 105, + 115, + 116, + 32, + 105, + 110, + 100, + 105, + 99, + 97, + 116, + 105, + 101, + 32, + 101, + 110, + 32, + 114, + 101, + 100, + 101, + 110, + 46, + 34, + 44, + 34, + 105, + 110, + 118, + 97, + 108, + 105, + 100, + 80, + 97, + 114, + 97, + 109, + 115, + 34, + 58, + 91, + 123, + 34, + 110, + 97, + 109, + 101, + 34, + 58, + 34, + 111, + 112, + 115, + 99, + 104, + 111, + 114, + 116, + 105, + 110, + 103, + 46, + 105, + 110, + 100, + 105, + 99, + 97, + 116, + 105, + 101, + 34, + 44, + 34, + 99, + 111, + 100, + 101, + 34, + 58, + 34, + 114, + 101, + 113, + 117, + 105, + 114, + 101, + 100, + 34, + 44, + 34, + 114, + 101, + 97, + 115, + 111, + 110, + 34, + 58, + 34, + 73, + 110, + 100, + 105, + 99, + 97, + 116, + 105, + 101, + 32, + 105, + 115, + 32, + 118, + 101, + 114, + 101, + 105, + 115, + 116, + 32, + 98, + 105, + 106, + 32, + 111, + 112, + 115, + 99, + 104, + 111, + 114, + 116, + 105, + 110, + 103, + 46, + 34, + 125, + 44, + 123, + 34, + 110, + 97, + 109, + 101, + 34, + 58, + 34, + 111, + 112, + 115, + 99, + 104, + 111, + 114, + 116, + 105, + 110, + 103, + 46, + 114, + 101, + 100, + 101, + 110, + 34, + 44, + 34, + 99, + 111, + 100, + 101, + 34, + 58, + 34, + 114, + 101, + 113, + 117, + 105, + 114, + 101, + 100, + 34, + 44, + 34, + 114, + 101, + 97, + 115, + 111, + 110, + 34, + 58, + 34, + 82, + 101, + 100, + 101, + 110, + 32, + 105, + 115, + 32, + 118, + 101, + 114, + 101, + 105, + 115, + 116, + 32, + 98, + 105, + 106, + 32, + 111, + 112, + 115, + 99, + 104, + 111, + 114, + 116, + 105, + 110, + 103, + 46, + 34, + 125, + 93, + 125 + ] + }, + "cookie": [], + "responseTime": 190, + "responseSize": 262 + }, + "id": "80629c8e-f146-4649-bb4c-e939c5312bea", + "assertions": [ + { + "assertion": "Zaak deels bijwerken met opschorting zonder indicatie en reden geeft 400", + "skipped": false + } + ] + }, + { + "cursor": { + "ref": "e35eb912-036f-433c-a14e-230c750e1ab7", + "length": 313, + "cycles": 1, + "position": 148, + "iteration": 0, + "httpRequestId": "b733d6f2-d34b-461d-af4b-08942ee2b7c4" + }, + "item": { + "id": "a75b1e02-3079-4ecf-aac8-39066e600d63", + "name": "(zrc-012d) Zaak aanmaken met verlenging zonder reden en duur is onmogelijk", + "request": { + "url": { + "path": [ + "zaken" + ], + "host": [ + "{{zrc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Crs", + "value": "EPSG:4326" + }, + { + "key": "Accept-Crs", + "value": "EPSG:4326" + }, + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\r\n \"bronorganisatie\": \"000000000\",\r\n \"omschrijving\": \"string\",\r\n \"toelichting\": \"string\",\r\n \"zaaktype\": \"{{zaaktype_url}}\",\r\n \"registratiedatum\": \"2019-04-09\",\r\n \"verantwoordelijkeOrganisatie\": \"000000000\",\r\n \"startdatum\": \"2019-04-09\",\r\n \"einddatum\": null,\r\n \"einddatumGepland\": \"2019-04-20\",\r\n \"uiterlijkeEinddatumAfdoening\": \"2019-04-09\",\r\n \"publicatiedatum\": \"2019-04-09\",\r\n \"communicatiekanaal\": \"\",\r\n \"productenOfDiensten\": [],\r\n \"vertrouwelijkheidaanduiding\": \"geheim\",\r\n \"betalingsindicatie\": \"geheel\",\r\n \"betalingsindicatieWeergave\": null,\r\n \"laatsteBetaaldatum\": \"2019-01-01T00:00:00Z\",\r\n \"zaakgeometrie\": {\r\n \"type\": \"Point\",\r\n \"coordinates\": [\r\n 53.0,\r\n 5.0\r\n ]\r\n },\r\n \"verlenging\": {\r\n \"wrong_field\": \"test\"\r\n },\r\n \"opschorting\": {\r\n \"indicatie\": true,\r\n \"reden\": \"string\"\r\n },\r\n \"selectielijstklasse\": \"https://referentielijsten.roxit.nl/api/v1/resultaten/0fe71ce3-b1e1-48eb-9070-be2756fc71b5\",\r\n \"hoofdzaak\": null,\r\n \"deelzaken\": [],\r\n \"relevanteAndereZaken\": [],\r\n \"eigenschappen\": [],\r\n \"rollen\": [],\r\n \"status\": null,\r\n \"zaakinformatieobjecten\": [],\r\n \"zaakobjecten\": [],\r\n \"resultaat\": null,\r\n \"kenmerken\": [],\r\n \"archiefnominatie\": null,\r\n \"archiefstatus\": \"nog_te_archiveren\",\r\n \"archiefactiedatum\": null,\r\n \"opdrachtgevendeOrganisatie\": null,\r\n \"processobjectaard\": null,\r\n \"startdatumBewaartermijn\": null,\r\n \"processobject\": null\r\n}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "54083652-eb28-45de-a5bc-c20f4c57755f", + "type": "text/javascript", + "packages": {}, + "exec": [ + "pm.test(\"Zaak aanmaken met verlenging zonder reden en duur geeft 400\", function() {", + " pm.response.to.have.status(400);", + " ", + " // Verify that the 400 is returned for the correct reason", + " var errors = pm.response.json()[\"invalidParams\"];", + " pm.expect(errors[0].name).to.be.equal(\"verlenging.reden\");", + " pm.expect(errors[0].code).to.be.equal(\"required\");", + " ", + " pm.expect(errors[1].name).to.be.equal(\"verlenging.duur\");", + " pm.expect(errors[1].code).to.be.equal(\"required\");", + "});", + "", + "if(pm.response.code == 201) {", + " pm.environment.set(\"created_zaak_url\", pm.response.json().url);", + "", + "}" + ], + "_lastExecutionId": "4bcd4ee5-7b25-445f-87e3-747a0cfc6728" + } + }, + { + "listen": "prerequest", + "script": { + "id": "34760017-0eaf-499b-bed9-e32856b660ed", + "type": "text/javascript", + "packages": {}, + "exec": [ + "" + ], + "_lastExecutionId": "e8a97eca-35ec-4e94-895a-4bfe978c4a2a" + } + } + ] + }, + "request": { + "url": { + "protocol": "http", + "port": "8080", + "path": [ + "index.php", + "apps", + "procest", + "api", + "zgw", + "zaken", + "v1", + "zaken" + ], + "host": [ + "localhost" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Crs", + "value": "EPSG:4326" + }, + { + "key": "Accept-Crs", + "value": "EPSG:4326" + }, + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Authorization", + "value": "Bearer eyJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJwcm9jZXN0LWFkbWluIiwiY2xpZW50X2lkIjoicHJvY2VzdC1hZG1pbiIsImlhdCI6IjE3NzMxNDUxNzYiLCJ1c2VyX2lkIjoicHJvY2VzdC1hZG1pbiIsInVzZXJfcmVwcmVzZW50YXRpb24iOiIifQ.nBleuA7IlT6hvId2c3xh_nCmnR1rTSpPiduxXJmb8jE", + "system": true + }, + { + "key": "User-Agent", + "value": "PostmanRuntime/7.39.1", + "system": true + }, + { + "key": "Accept", + "value": "*/*", + "system": true + }, + { + "key": "Cache-Control", + "value": "no-cache", + "system": true + }, + { + "key": "Postman-Token", + "value": "bb2b5352-0a3f-4622-934d-2c8d9f045d26", + "system": true + }, + { + "key": "Host", + "value": "localhost:8080", + "system": true + }, + { + "key": "Accept-Encoding", + "value": "gzip, deflate, br", + "system": true + }, + { + "key": "Connection", + "value": "keep-alive", + "system": true + }, + { + "key": "Content-Length", + "value": "1638", + "system": true + }, + { + "key": "Cookie", + "value": "ocvp3112b4wg=91f4d2cc62e302e5069ff6e781b976dd; oc_sessionPassphrase=LBNdKxRzA0iqoULIruNxDDh2BK3O%2BrCIU8aUmiUcOFvy5Xw1YfjwQNlmBW2IkGwJYtxXh9%2BwDN6vYuGNX07tXzkBtjQJUWTGdzf8AIOUIVxVx5DfyWAQZ7nmYmQv6XSE; nc_sameSiteCookielax=true; nc_sameSiteCookiestrict=true", + "system": true + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\r\n \"bronorganisatie\": \"000000000\",\r\n \"omschrijving\": \"string\",\r\n \"toelichting\": \"string\",\r\n \"zaaktype\": \"http://localhost:8080/index.php/apps/procest/api/zgw/catalogi/v1/zaaktypen/619dc3e5-52f1-4294-a569-f21d16f44879\",\r\n \"registratiedatum\": \"2019-04-09\",\r\n \"verantwoordelijkeOrganisatie\": \"000000000\",\r\n \"startdatum\": \"2019-04-09\",\r\n \"einddatum\": null,\r\n \"einddatumGepland\": \"2019-04-20\",\r\n \"uiterlijkeEinddatumAfdoening\": \"2019-04-09\",\r\n \"publicatiedatum\": \"2019-04-09\",\r\n \"communicatiekanaal\": \"\",\r\n \"productenOfDiensten\": [],\r\n \"vertrouwelijkheidaanduiding\": \"geheim\",\r\n \"betalingsindicatie\": \"geheel\",\r\n \"betalingsindicatieWeergave\": null,\r\n \"laatsteBetaaldatum\": \"2019-01-01T00:00:00Z\",\r\n \"zaakgeometrie\": {\r\n \"type\": \"Point\",\r\n \"coordinates\": [\r\n 53.0,\r\n 5.0\r\n ]\r\n },\r\n \"verlenging\": {\r\n \"wrong_field\": \"test\"\r\n },\r\n \"opschorting\": {\r\n \"indicatie\": true,\r\n \"reden\": \"string\"\r\n },\r\n \"selectielijstklasse\": \"https://referentielijsten.roxit.nl/api/v1/resultaten/0fe71ce3-b1e1-48eb-9070-be2756fc71b5\",\r\n \"hoofdzaak\": null,\r\n \"deelzaken\": [],\r\n \"relevanteAndereZaken\": [],\r\n \"eigenschappen\": [],\r\n \"rollen\": [],\r\n \"status\": null,\r\n \"zaakinformatieobjecten\": [],\r\n \"zaakobjecten\": [],\r\n \"resultaat\": null,\r\n \"kenmerken\": [],\r\n \"archiefnominatie\": null,\r\n \"archiefstatus\": \"nog_te_archiveren\",\r\n \"archiefactiedatum\": null,\r\n \"opdrachtgevendeOrganisatie\": null,\r\n \"processobjectaard\": null,\r\n \"startdatumBewaartermijn\": null,\r\n \"processobject\": null\r\n}" + }, + "auth": { + "type": "jwt", + "jwt": [ + { + "type": "string", + "value": "{\r\n \"iss\": \"procest-admin\",\r\n \"client_id\": \"procest-admin\",\r\n \"iat\": \"1773145176\",\r\n \"user_id\": \"procest-admin\",\r\n \"user_representation\": \"\"\r\n}", + "key": "payload" + }, + { + "type": "string", + "value": "procest-admin-secret-key-for-testing", + "key": "secret" + }, + { + "type": "string", + "value": "HS256", + "key": "algorithm" + }, + { + "type": "boolean", + "value": false, + "key": "isSecretBase64Encoded" + }, + { + "type": "string", + "value": "header", + "key": "addTokenTo" + }, + { + "type": "string", + "value": "Bearer", + "key": "headerPrefix" + }, + { + "type": "string", + "value": "token", + "key": "queryParamKey" + }, + { + "type": "string", + "value": "{}", + "key": "header" + } + ] + } + }, + "response": { + "id": "6c1f6735-c4fd-43e2-9978-4d9bed178d73", + "status": "Bad request", + "code": 400, + "header": [ + { + "key": "Date", + "value": "Tue, 10 Mar 2026 12:19:36 GMT" + }, + { + "key": "Server", + "value": "Apache/2.4.66 (Debian)" + }, + { + "key": "X-Content-Type-Options", + "value": "nosniff" + }, + { + "key": "X-Frame-Options", + "value": "SAMEORIGIN" + }, + { + "key": "X-Permitted-Cross-Domain-Policies", + "value": "none" + }, + { + "key": "X-Robots-Tag", + "value": "noindex, nofollow" + }, + { + "key": "Referrer-Policy", + "value": "no-referrer" + }, + { + "key": "X-Powered-By", + "value": "PHP/8.3.30" + }, + { + "key": "Content-Security-Policy", + "value": "default-src 'none';base-uri 'none';manifest-src 'self';frame-ancestors 'none'" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=91f4d2cc62e302e5069ff6e781b976dd; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=91f4d2cc62e302e5069ff6e781b976dd; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=91f4d2cc62e302e5069ff6e781b976dd; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=91f4d2cc62e302e5069ff6e781b976dd; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=91f4d2cc62e302e5069ff6e781b976dd; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=2db96866f23b68d40d9f511f982277a7; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=2db96866f23b68d40d9f511f982277a7; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=2db96866f23b68d40d9f511f982277a7; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=2db96866f23b68d40d9f511f982277a7; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=2db96866f23b68d40d9f511f982277a7; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "X-Request-Id", + "value": "djOhpQbRzhDwpJVHCYqF" + }, + { + "key": "Cache-Control", + "value": "no-cache, no-store, must-revalidate" + }, + { + "key": "Feature-Policy", + "value": "autoplay 'none';camera 'none';fullscreen 'none';geolocation 'none';microphone 'none';payment 'none'" + }, + { + "key": "X-User-Id", + "value": "admin" + }, + { + "key": "Content-Length", + "value": "242" + }, + { + "key": "Connection", + "value": "close" + }, + { + "key": "Content-Type", + "value": "application/json; charset=utf-8" + } + ], + "stream": { + "type": "Buffer", + "data": [ + 123, + 34, + 100, + 101, + 116, + 97, + 105, + 108, + 34, + 58, + 34, + 86, + 101, + 114, + 108, + 101, + 110, + 103, + 105, + 110, + 103, + 32, + 118, + 101, + 114, + 101, + 105, + 115, + 116, + 32, + 114, + 101, + 100, + 101, + 110, + 32, + 101, + 110, + 32, + 100, + 117, + 117, + 114, + 46, + 34, + 44, + 34, + 105, + 110, + 118, + 97, + 108, + 105, + 100, + 80, + 97, + 114, + 97, + 109, + 115, + 34, + 58, + 91, + 123, + 34, + 110, + 97, + 109, + 101, + 34, + 58, + 34, + 118, + 101, + 114, + 108, + 101, + 110, + 103, + 105, + 110, + 103, + 46, + 114, + 101, + 100, + 101, + 110, + 34, + 44, + 34, + 99, + 111, + 100, + 101, + 34, + 58, + 34, + 114, + 101, + 113, + 117, + 105, + 114, + 101, + 100, + 34, + 44, + 34, + 114, + 101, + 97, + 115, + 111, + 110, + 34, + 58, + 34, + 82, + 101, + 100, + 101, + 110, + 32, + 105, + 115, + 32, + 118, + 101, + 114, + 101, + 105, + 115, + 116, + 32, + 98, + 105, + 106, + 32, + 118, + 101, + 114, + 108, + 101, + 110, + 103, + 105, + 110, + 103, + 46, + 34, + 125, + 44, + 123, + 34, + 110, + 97, + 109, + 101, + 34, + 58, + 34, + 118, + 101, + 114, + 108, + 101, + 110, + 103, + 105, + 110, + 103, + 46, + 100, + 117, + 117, + 114, + 34, + 44, + 34, + 99, + 111, + 100, + 101, + 34, + 58, + 34, + 114, + 101, + 113, + 117, + 105, + 114, + 101, + 100, + 34, + 44, + 34, + 114, + 101, + 97, + 115, + 111, + 110, + 34, + 58, + 34, + 68, + 117, + 117, + 114, + 32, + 105, + 115, + 32, + 118, + 101, + 114, + 101, + 105, + 115, + 116, + 32, + 98, + 105, + 106, + 32, + 118, + 101, + 114, + 108, + 101, + 110, + 103, + 105, + 110, + 103, + 46, + 34, + 125, + 93, + 125 + ] + }, + "cookie": [], + "responseTime": 142, + "responseSize": 242 + }, + "id": "a75b1e02-3079-4ecf-aac8-39066e600d63", + "assertions": [ + { + "assertion": "Zaak aanmaken met verlenging zonder reden en duur geeft 400", + "skipped": false + } + ] + }, + { + "cursor": { + "ref": "fd76060b-f04b-44e3-b314-b2487d0c7d86", + "length": 313, + "cycles": 1, + "position": 149, + "iteration": 0, + "httpRequestId": "0d59ca92-ef11-4090-b0ce-45a17731e7bc" + }, + "item": { + "id": "a1e11d2d-9aae-43d1-bbbe-d79aedf74fe5", + "name": "(zrc-012e) Zaak bijwerken met verlenging zonder reden en duur is onmogelijk", + "request": { + "url": { + "host": [ + "{{zaak_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Crs", + "value": "EPSG:4326" + }, + { + "key": "Accept-Crs", + "value": "EPSG:4326" + }, + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "PUT", + "body": { + "mode": "raw", + "raw": "{\r\n \"bronorganisatie\": \"000000000\",\r\n \"omschrijving\": \"string\",\r\n \"toelichting\": \"string\",\r\n \"zaaktype\": \"{{zaaktype_url}}\",\r\n \"registratiedatum\": \"2019-04-09\",\r\n \"verantwoordelijkeOrganisatie\": \"000000000\",\r\n \"startdatum\": \"2019-04-09\",\r\n \"einddatum\": null,\r\n \"einddatumGepland\": \"2019-04-20\",\r\n \"uiterlijkeEinddatumAfdoening\": \"2019-04-09\",\r\n \"publicatiedatum\": \"2019-04-09\",\r\n \"communicatiekanaal\": \"\",\r\n \"productenOfDiensten\": [],\r\n \"vertrouwelijkheidaanduiding\": \"geheim\",\r\n \"betalingsindicatie\": \"geheel\",\r\n \"betalingsindicatieWeergave\": null,\r\n \"laatsteBetaaldatum\": \"2019-01-01T00:00:00Z\",\r\n \"zaakgeometrie\": {\r\n \"type\": \"Point\",\r\n \"coordinates\": [\r\n 53.0,\r\n 5.0\r\n ]\r\n },\r\n \"verlenging\": {\r\n \"wrong_field\": \"test\"\r\n },\r\n \"opschorting\": {\r\n \"indicatie\": true,\r\n \"reden\": \"string\"\r\n },\r\n \"selectielijstklasse\": \"https://referentielijsten.roxit.nl/api/v1/resultaten/0fe71ce3-b1e1-48eb-9070-be2756fc71b5\",\r\n \"hoofdzaak\": null,\r\n \"deelzaken\": [],\r\n \"relevanteAndereZaken\": [],\r\n \"eigenschappen\": [],\r\n \"rollen\": [],\r\n \"status\": null,\r\n \"zaakinformatieobjecten\": [],\r\n \"zaakobjecten\": [],\r\n \"resultaat\": null,\r\n \"kenmerken\": [],\r\n \"archiefnominatie\": null,\r\n \"archiefstatus\": \"nog_te_archiveren\",\r\n \"archiefactiedatum\": null,\r\n \"opdrachtgevendeOrganisatie\": null,\r\n \"processobjectaard\": null,\r\n \"startdatumBewaartermijn\": null,\r\n \"processobject\": null\r\n}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "27bee983-2ff2-4dfe-b776-2e7f9b3a9051", + "type": "text/javascript", + "packages": {}, + "exec": [ + "pm.test(\"Zaak bijwerken met verlenging zonder reden en duur geeft 400\", function() {", + " pm.response.to.have.status(400);", + " ", + " // Verify that the 400 is returned for the correct reason", + " var errors = pm.response.json()[\"invalidParams\"];", + " pm.expect(errors[0].name).to.be.equal(\"verlenging.reden\");", + " pm.expect(errors[0].code).to.be.equal(\"required\");", + " ", + " pm.expect(errors[1].name).to.be.equal(\"verlenging.duur\");", + " pm.expect(errors[1].code).to.be.equal(\"required\");", + "});" + ], + "_lastExecutionId": "c24bbd81-5ee5-4d5f-bb1a-464bf67ae4d4" + } + }, + { + "listen": "prerequest", + "script": { + "id": "ed3d9bd7-ef4c-4485-9244-859881512910", + "type": "text/javascript", + "packages": {}, + "exec": [ + "" + ], + "_lastExecutionId": "a83d22a3-7f62-43b4-9f63-8a34e6414340" + } + } + ] + }, + "request": { + "url": { + "protocol": "http", + "port": "8080", + "path": [ + "index.php", + "apps", + "procest", + "api", + "zgw", + "zaken", + "v1", + "zaken", + "1ea85620-912a-4a68-b62e-65570c1dfdfa" + ], + "host": [ + "localhost" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Crs", + "value": "EPSG:4326" + }, + { + "key": "Accept-Crs", + "value": "EPSG:4326" + }, + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Authorization", + "value": "Bearer eyJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJwcm9jZXN0LWFkbWluIiwiY2xpZW50X2lkIjoicHJvY2VzdC1hZG1pbiIsImlhdCI6IjE3NzMxNDUxNzciLCJ1c2VyX2lkIjoicHJvY2VzdC1hZG1pbiIsInVzZXJfcmVwcmVzZW50YXRpb24iOiIifQ.nwRHXQRY_gviO5wJhCdLKyIfCQ4bUewgQpLuYsk_3xg", + "system": true + }, + { + "key": "User-Agent", + "value": "PostmanRuntime/7.39.1", + "system": true + }, + { + "key": "Accept", + "value": "*/*", + "system": true + }, + { + "key": "Cache-Control", + "value": "no-cache", + "system": true + }, + { + "key": "Postman-Token", + "value": "dd59819d-0c82-497c-97f1-88a6cf461b2f", + "system": true + }, + { + "key": "Host", + "value": "localhost:8080", + "system": true + }, + { + "key": "Accept-Encoding", + "value": "gzip, deflate, br", + "system": true + }, + { + "key": "Connection", + "value": "keep-alive", + "system": true + }, + { + "key": "Content-Length", + "value": "1638", + "system": true + }, + { + "key": "Cookie", + "value": "ocvp3112b4wg=2db96866f23b68d40d9f511f982277a7; oc_sessionPassphrase=LBNdKxRzA0iqoULIruNxDDh2BK3O%2BrCIU8aUmiUcOFvy5Xw1YfjwQNlmBW2IkGwJYtxXh9%2BwDN6vYuGNX07tXzkBtjQJUWTGdzf8AIOUIVxVx5DfyWAQZ7nmYmQv6XSE; nc_sameSiteCookielax=true; nc_sameSiteCookiestrict=true", + "system": true + } + ], + "method": "PUT", + "body": { + "mode": "raw", + "raw": "{\r\n \"bronorganisatie\": \"000000000\",\r\n \"omschrijving\": \"string\",\r\n \"toelichting\": \"string\",\r\n \"zaaktype\": \"http://localhost:8080/index.php/apps/procest/api/zgw/catalogi/v1/zaaktypen/619dc3e5-52f1-4294-a569-f21d16f44879\",\r\n \"registratiedatum\": \"2019-04-09\",\r\n \"verantwoordelijkeOrganisatie\": \"000000000\",\r\n \"startdatum\": \"2019-04-09\",\r\n \"einddatum\": null,\r\n \"einddatumGepland\": \"2019-04-20\",\r\n \"uiterlijkeEinddatumAfdoening\": \"2019-04-09\",\r\n \"publicatiedatum\": \"2019-04-09\",\r\n \"communicatiekanaal\": \"\",\r\n \"productenOfDiensten\": [],\r\n \"vertrouwelijkheidaanduiding\": \"geheim\",\r\n \"betalingsindicatie\": \"geheel\",\r\n \"betalingsindicatieWeergave\": null,\r\n \"laatsteBetaaldatum\": \"2019-01-01T00:00:00Z\",\r\n \"zaakgeometrie\": {\r\n \"type\": \"Point\",\r\n \"coordinates\": [\r\n 53.0,\r\n 5.0\r\n ]\r\n },\r\n \"verlenging\": {\r\n \"wrong_field\": \"test\"\r\n },\r\n \"opschorting\": {\r\n \"indicatie\": true,\r\n \"reden\": \"string\"\r\n },\r\n \"selectielijstklasse\": \"https://referentielijsten.roxit.nl/api/v1/resultaten/0fe71ce3-b1e1-48eb-9070-be2756fc71b5\",\r\n \"hoofdzaak\": null,\r\n \"deelzaken\": [],\r\n \"relevanteAndereZaken\": [],\r\n \"eigenschappen\": [],\r\n \"rollen\": [],\r\n \"status\": null,\r\n \"zaakinformatieobjecten\": [],\r\n \"zaakobjecten\": [],\r\n \"resultaat\": null,\r\n \"kenmerken\": [],\r\n \"archiefnominatie\": null,\r\n \"archiefstatus\": \"nog_te_archiveren\",\r\n \"archiefactiedatum\": null,\r\n \"opdrachtgevendeOrganisatie\": null,\r\n \"processobjectaard\": null,\r\n \"startdatumBewaartermijn\": null,\r\n \"processobject\": null\r\n}" + }, + "auth": { + "type": "jwt", + "jwt": [ + { + "type": "string", + "value": "{\r\n \"iss\": \"procest-admin\",\r\n \"client_id\": \"procest-admin\",\r\n \"iat\": \"1773145177\",\r\n \"user_id\": \"procest-admin\",\r\n \"user_representation\": \"\"\r\n}", + "key": "payload" + }, + { + "type": "string", + "value": "procest-admin-secret-key-for-testing", + "key": "secret" + }, + { + "type": "string", + "value": "HS256", + "key": "algorithm" + }, + { + "type": "boolean", + "value": false, + "key": "isSecretBase64Encoded" + }, + { + "type": "string", + "value": "header", + "key": "addTokenTo" + }, + { + "type": "string", + "value": "Bearer", + "key": "headerPrefix" + }, + { + "type": "string", + "value": "token", + "key": "queryParamKey" + }, + { + "type": "string", + "value": "{}", + "key": "header" + } + ] + } + }, + "response": { + "id": "7513b3fa-2964-4e80-92b5-6899798b0e40", + "status": "Bad request", + "code": 400, + "header": [ + { + "key": "Date", + "value": "Tue, 10 Mar 2026 12:19:36 GMT" + }, + { + "key": "Server", + "value": "Apache/2.4.66 (Debian)" + }, + { + "key": "X-Content-Type-Options", + "value": "nosniff" + }, + { + "key": "X-Frame-Options", + "value": "SAMEORIGIN" + }, + { + "key": "X-Permitted-Cross-Domain-Policies", + "value": "none" + }, + { + "key": "X-Robots-Tag", + "value": "noindex, nofollow" + }, + { + "key": "Referrer-Policy", + "value": "no-referrer" + }, + { + "key": "X-Powered-By", + "value": "PHP/8.3.30" + }, + { + "key": "Content-Security-Policy", + "value": "default-src 'none';base-uri 'none';manifest-src 'self';frame-ancestors 'none'" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=2db96866f23b68d40d9f511f982277a7; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=2db96866f23b68d40d9f511f982277a7; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=2db96866f23b68d40d9f511f982277a7; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=2db96866f23b68d40d9f511f982277a7; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=2db96866f23b68d40d9f511f982277a7; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=42a0029a67cbeeb91b5bb22ee5640dca; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=42a0029a67cbeeb91b5bb22ee5640dca; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=42a0029a67cbeeb91b5bb22ee5640dca; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=42a0029a67cbeeb91b5bb22ee5640dca; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=42a0029a67cbeeb91b5bb22ee5640dca; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "X-Request-Id", + "value": "zP45a5ZlhhIRmYioctsB" + }, + { + "key": "Cache-Control", + "value": "no-cache, no-store, must-revalidate" + }, + { + "key": "Feature-Policy", + "value": "autoplay 'none';camera 'none';fullscreen 'none';geolocation 'none';microphone 'none';payment 'none'" + }, + { + "key": "X-User-Id", + "value": "admin" + }, + { + "key": "Content-Length", + "value": "242" + }, + { + "key": "Connection", + "value": "close" + }, + { + "key": "Content-Type", + "value": "application/json; charset=utf-8" + } + ], + "stream": { + "type": "Buffer", + "data": [ + 123, + 34, + 100, + 101, + 116, + 97, + 105, + 108, + 34, + 58, + 34, + 86, + 101, + 114, + 108, + 101, + 110, + 103, + 105, + 110, + 103, + 32, + 118, + 101, + 114, + 101, + 105, + 115, + 116, + 32, + 114, + 101, + 100, + 101, + 110, + 32, + 101, + 110, + 32, + 100, + 117, + 117, + 114, + 46, + 34, + 44, + 34, + 105, + 110, + 118, + 97, + 108, + 105, + 100, + 80, + 97, + 114, + 97, + 109, + 115, + 34, + 58, + 91, + 123, + 34, + 110, + 97, + 109, + 101, + 34, + 58, + 34, + 118, + 101, + 114, + 108, + 101, + 110, + 103, + 105, + 110, + 103, + 46, + 114, + 101, + 100, + 101, + 110, + 34, + 44, + 34, + 99, + 111, + 100, + 101, + 34, + 58, + 34, + 114, + 101, + 113, + 117, + 105, + 114, + 101, + 100, + 34, + 44, + 34, + 114, + 101, + 97, + 115, + 111, + 110, + 34, + 58, + 34, + 82, + 101, + 100, + 101, + 110, + 32, + 105, + 115, + 32, + 118, + 101, + 114, + 101, + 105, + 115, + 116, + 32, + 98, + 105, + 106, + 32, + 118, + 101, + 114, + 108, + 101, + 110, + 103, + 105, + 110, + 103, + 46, + 34, + 125, + 44, + 123, + 34, + 110, + 97, + 109, + 101, + 34, + 58, + 34, + 118, + 101, + 114, + 108, + 101, + 110, + 103, + 105, + 110, + 103, + 46, + 100, + 117, + 117, + 114, + 34, + 44, + 34, + 99, + 111, + 100, + 101, + 34, + 58, + 34, + 114, + 101, + 113, + 117, + 105, + 114, + 101, + 100, + 34, + 44, + 34, + 114, + 101, + 97, + 115, + 111, + 110, + 34, + 58, + 34, + 68, + 117, + 117, + 114, + 32, + 105, + 115, + 32, + 118, + 101, + 114, + 101, + 105, + 115, + 116, + 32, + 98, + 105, + 106, + 32, + 118, + 101, + 114, + 108, + 101, + 110, + 103, + 105, + 110, + 103, + 46, + 34, + 125, + 93, + 125 + ] + }, + "cookie": [], + "responseTime": 129, + "responseSize": 242 + }, + "id": "a1e11d2d-9aae-43d1-bbbe-d79aedf74fe5", + "assertions": [ + { + "assertion": "Zaak bijwerken met verlenging zonder reden en duur geeft 400", + "skipped": false + } + ] + }, + { + "cursor": { + "ref": "cb67c1e3-8cbc-46b7-8db4-45ae3a8af8f1", + "length": 313, + "cycles": 1, + "position": 150, + "iteration": 0, + "httpRequestId": "e1931ba2-0be6-4696-bd6e-303c42b52c60" + }, + "item": { + "id": "6254c615-59d9-4eb8-8042-c4b4f2805189", + "name": "(zrc-012f) Zaak deels bijwerken met verlenging zonder reden en duur is onmogelijk", + "request": { + "url": { + "host": [ + "{{zaak_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Crs", + "value": "EPSG:4326" + }, + { + "key": "Accept-Crs", + "value": "EPSG:4326" + }, + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "PATCH", + "body": { + "mode": "raw", + "raw": "{\n\t\"verlenging\": {\n\t\t\"wrong_field\": \"test\"\n\t}\n}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "98c13e67-0826-4647-a63b-9697c43e36de", + "type": "text/javascript", + "exec": [ + "pm.test(\"Zaak deels bijwerken met verlenging zonder reden en duur geeft 400\", function() {", + " pm.response.to.have.status(400);", + " ", + " // Verify that the 400 is returned for the correct reason", + " var errors = pm.response.json()[\"invalidParams\"];", + " pm.expect(errors[0].name).to.be.equal(\"verlenging.reden\");", + " pm.expect(errors[0].code).to.be.equal(\"required\");", + " ", + " pm.expect(errors[1].name).to.be.equal(\"verlenging.duur\");", + " pm.expect(errors[1].code).to.be.equal(\"required\");", + "});" + ], + "_lastExecutionId": "3f9cccba-e036-421c-9109-9992bd9bf371" + } + }, + { + "listen": "prerequest", + "script": { + "id": "72800436-1e24-4850-a12c-0942e0630d3e", + "type": "text/javascript", + "exec": [ + "" + ], + "_lastExecutionId": "9e31ba4c-60e2-4a3b-842b-b18b3f917b9a" + } + } + ] + }, + "request": { + "url": { + "protocol": "http", + "port": "8080", + "path": [ + "index.php", + "apps", + "procest", + "api", + "zgw", + "zaken", + "v1", + "zaken", + "1ea85620-912a-4a68-b62e-65570c1dfdfa" + ], + "host": [ + "localhost" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Crs", + "value": "EPSG:4326" + }, + { + "key": "Accept-Crs", + "value": "EPSG:4326" + }, + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Authorization", + "value": "Bearer eyJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJwcm9jZXN0LWFkbWluIiwiY2xpZW50X2lkIjoicHJvY2VzdC1hZG1pbiIsImlhdCI6IjE3NzMxNDUxNzciLCJ1c2VyX2lkIjoicHJvY2VzdC1hZG1pbiIsInVzZXJfcmVwcmVzZW50YXRpb24iOiIifQ.nwRHXQRY_gviO5wJhCdLKyIfCQ4bUewgQpLuYsk_3xg", + "system": true + }, + { + "key": "User-Agent", + "value": "PostmanRuntime/7.39.1", + "system": true + }, + { + "key": "Accept", + "value": "*/*", + "system": true + }, + { + "key": "Cache-Control", + "value": "no-cache", + "system": true + }, + { + "key": "Postman-Token", + "value": "a239e8b3-3921-4361-9d7c-0f87a6f0fc0c", + "system": true + }, + { + "key": "Host", + "value": "localhost:8080", + "system": true + }, + { + "key": "Accept-Encoding", + "value": "gzip, deflate, br", + "system": true + }, + { + "key": "Connection", + "value": "keep-alive", + "system": true + }, + { + "key": "Content-Length", + "value": "47", + "system": true + }, + { + "key": "Cookie", + "value": "ocvp3112b4wg=42a0029a67cbeeb91b5bb22ee5640dca; oc_sessionPassphrase=LBNdKxRzA0iqoULIruNxDDh2BK3O%2BrCIU8aUmiUcOFvy5Xw1YfjwQNlmBW2IkGwJYtxXh9%2BwDN6vYuGNX07tXzkBtjQJUWTGdzf8AIOUIVxVx5DfyWAQZ7nmYmQv6XSE; nc_sameSiteCookielax=true; nc_sameSiteCookiestrict=true", + "system": true + } + ], + "method": "PATCH", + "body": { + "mode": "raw", + "raw": "{\n\t\"verlenging\": {\n\t\t\"wrong_field\": \"test\"\n\t}\n}" + }, + "auth": { + "type": "jwt", + "jwt": [ + { + "type": "string", + "value": "{\r\n \"iss\": \"procest-admin\",\r\n \"client_id\": \"procest-admin\",\r\n \"iat\": \"1773145177\",\r\n \"user_id\": \"procest-admin\",\r\n \"user_representation\": \"\"\r\n}", + "key": "payload" + }, + { + "type": "string", + "value": "procest-admin-secret-key-for-testing", + "key": "secret" + }, + { + "type": "string", + "value": "HS256", + "key": "algorithm" + }, + { + "type": "boolean", + "value": false, + "key": "isSecretBase64Encoded" + }, + { + "type": "string", + "value": "header", + "key": "addTokenTo" + }, + { + "type": "string", + "value": "Bearer", + "key": "headerPrefix" + }, + { + "type": "string", + "value": "token", + "key": "queryParamKey" + }, + { + "type": "string", + "value": "{}", + "key": "header" + } + ] + } + }, + "response": { + "id": "885570dd-6769-4664-9851-d65317b2b404", + "status": "Bad request", + "code": 400, + "header": [ + { + "key": "Date", + "value": "Tue, 10 Mar 2026 12:19:36 GMT" + }, + { + "key": "Server", + "value": "Apache/2.4.66 (Debian)" + }, + { + "key": "X-Content-Type-Options", + "value": "nosniff" + }, + { + "key": "X-Frame-Options", + "value": "SAMEORIGIN" + }, + { + "key": "X-Permitted-Cross-Domain-Policies", + "value": "none" + }, + { + "key": "X-Robots-Tag", + "value": "noindex, nofollow" + }, + { + "key": "Referrer-Policy", + "value": "no-referrer" + }, + { + "key": "X-Powered-By", + "value": "PHP/8.3.30" + }, + { + "key": "Content-Security-Policy", + "value": "default-src 'none';base-uri 'none';manifest-src 'self';frame-ancestors 'none'" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=42a0029a67cbeeb91b5bb22ee5640dca; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=42a0029a67cbeeb91b5bb22ee5640dca; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=42a0029a67cbeeb91b5bb22ee5640dca; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=42a0029a67cbeeb91b5bb22ee5640dca; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=42a0029a67cbeeb91b5bb22ee5640dca; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=4f54deddfb275ec0bedbcfaa4040f689; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=4f54deddfb275ec0bedbcfaa4040f689; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=4f54deddfb275ec0bedbcfaa4040f689; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=4f54deddfb275ec0bedbcfaa4040f689; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=4f54deddfb275ec0bedbcfaa4040f689; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "X-Request-Id", + "value": "FWPdk5onGwWrNswVWDb4" + }, + { + "key": "Cache-Control", + "value": "no-cache, no-store, must-revalidate" + }, + { + "key": "Feature-Policy", + "value": "autoplay 'none';camera 'none';fullscreen 'none';geolocation 'none';microphone 'none';payment 'none'" + }, + { + "key": "X-User-Id", + "value": "admin" + }, + { + "key": "Content-Length", + "value": "242" + }, + { + "key": "Connection", + "value": "close" + }, + { + "key": "Content-Type", + "value": "application/json; charset=utf-8" + } + ], + "stream": { + "type": "Buffer", + "data": [ + 123, + 34, + 100, + 101, + 116, + 97, + 105, + 108, + 34, + 58, + 34, + 86, + 101, + 114, + 108, + 101, + 110, + 103, + 105, + 110, + 103, + 32, + 118, + 101, + 114, + 101, + 105, + 115, + 116, + 32, + 114, + 101, + 100, + 101, + 110, + 32, + 101, + 110, + 32, + 100, + 117, + 117, + 114, + 46, + 34, + 44, + 34, + 105, + 110, + 118, + 97, + 108, + 105, + 100, + 80, + 97, + 114, + 97, + 109, + 115, + 34, + 58, + 91, + 123, + 34, + 110, + 97, + 109, + 101, + 34, + 58, + 34, + 118, + 101, + 114, + 108, + 101, + 110, + 103, + 105, + 110, + 103, + 46, + 114, + 101, + 100, + 101, + 110, + 34, + 44, + 34, + 99, + 111, + 100, + 101, + 34, + 58, + 34, + 114, + 101, + 113, + 117, + 105, + 114, + 101, + 100, + 34, + 44, + 34, + 114, + 101, + 97, + 115, + 111, + 110, + 34, + 58, + 34, + 82, + 101, + 100, + 101, + 110, + 32, + 105, + 115, + 32, + 118, + 101, + 114, + 101, + 105, + 115, + 116, + 32, + 98, + 105, + 106, + 32, + 118, + 101, + 114, + 108, + 101, + 110, + 103, + 105, + 110, + 103, + 46, + 34, + 125, + 44, + 123, + 34, + 110, + 97, + 109, + 101, + 34, + 58, + 34, + 118, + 101, + 114, + 108, + 101, + 110, + 103, + 105, + 110, + 103, + 46, + 100, + 117, + 117, + 114, + 34, + 44, + 34, + 99, + 111, + 100, + 101, + 34, + 58, + 34, + 114, + 101, + 113, + 117, + 105, + 114, + 101, + 100, + 34, + 44, + 34, + 114, + 101, + 97, + 115, + 111, + 110, + 34, + 58, + 34, + 68, + 117, + 117, + 114, + 32, + 105, + 115, + 32, + 118, + 101, + 114, + 101, + 105, + 115, + 116, + 32, + 98, + 105, + 106, + 32, + 118, + 101, + 114, + 108, + 101, + 110, + 103, + 105, + 110, + 103, + 46, + 34, + 125, + 93, + 125 + ] + }, + "cookie": [], + "responseTime": 133, + "responseSize": 242 + }, + "id": "6254c615-59d9-4eb8-8042-c4b4f2805189", + "assertions": [ + { + "assertion": "Zaak deels bijwerken met verlenging zonder reden en duur geeft 400", + "skipped": false + } + ] + }, + { + "cursor": { + "ref": "ef2a436f-0d77-4986-81cc-5c51fd465249", + "length": 313, + "cycles": 1, + "position": 151, + "iteration": 0, + "httpRequestId": "2dfc935b-8a52-4480-8bb7-4083834b67cb" + }, + "item": { + "id": "c1412446-482b-4d76-8755-c5440a8f0520", + "name": "(zrc-012g) Zaak aanmaken met opschorting null is mogelijk", + "request": { + "url": { + "path": [ + "zaken" + ], + "host": [ + "{{zrc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Accept-Crs", + "value": "EPSG:4326" + }, + { + "key": "Content-Crs", + "value": "EPSG:4326" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\r\n \"bronorganisatie\": \"000000000\",\r\n \"omschrijving\": \"string\",\r\n \"toelichting\": \"string\",\r\n \"zaaktype\": \"{{zaaktype_url}}\",\r\n \"registratiedatum\": \"2019-04-09\",\r\n \"verantwoordelijkeOrganisatie\": \"000000000\",\r\n \"startdatum\": \"2019-04-09\",\r\n \"einddatum\": null,\r\n \"einddatumGepland\": \"2019-04-20\",\r\n \"uiterlijkeEinddatumAfdoening\": \"2019-04-09\",\r\n \"publicatiedatum\": \"2019-04-09\",\r\n \"communicatiekanaal\": \"\",\r\n \"productenOfDiensten\": [],\r\n \"vertrouwelijkheidaanduiding\": \"geheim\",\r\n \"betalingsindicatie\": \"geheel\",\r\n \"betalingsindicatieWeergave\": null,\r\n \"laatsteBetaaldatum\": \"2019-01-01T00:00:00Z\",\r\n \"zaakgeometrie\": {\r\n \"type\": \"Point\",\r\n \"coordinates\": [\r\n 53.0,\r\n 5.0\r\n ]\r\n },\r\n \"verlenging\": null,\r\n \"opschorting\": null,\r\n \"selectielijstklasse\": \"https://referentielijsten.roxit.nl/api/v1/resultaten/0fe71ce3-b1e1-48eb-9070-be2756fc71b5\",\r\n \"hoofdzaak\": null,\r\n \"deelzaken\": [],\r\n \"relevanteAndereZaken\": [],\r\n \"eigenschappen\": [],\r\n \"rollen\": [],\r\n \"status\": null,\r\n \"zaakinformatieobjecten\": [],\r\n \"zaakobjecten\": [],\r\n \"resultaat\": null,\r\n \"kenmerken\": [],\r\n \"archiefnominatie\": null,\r\n \"archiefstatus\": \"nog_te_archiveren\",\r\n \"archiefactiedatum\": null,\r\n \"opdrachtgevendeOrganisatie\": null,\r\n \"processobjectaard\": null,\r\n \"startdatumBewaartermijn\": null,\r\n \"processobject\": null\r\n}" + } + }, + "response": [], + "event": [ + { + "listen": "prerequest", + "script": { + "id": "c9f31575-21c5-4b42-b680-9760aa8badaf", + "type": "text/javascript", + "packages": {}, + "exec": [ + "" + ], + "_lastExecutionId": "9129efd4-19da-447d-b823-b8fca759c4ae" + } + }, + { + "listen": "test", + "script": { + "id": "05877b21-1630-4bc6-a1a9-230e33b6f6aa", + "type": "text/javascript", + "packages": {}, + "exec": [ + "pm.test(\"Zaak aanmaken met opschorting null geeft 201\", function() {", + " pm.response.to.have.status(201);", + " pm.environment.set(\"created_zaak_url\", pm.response.json().url);", + "});" + ], + "_lastExecutionId": "eae500f7-6230-4969-afd2-dd69958a3b7f" + } + } + ] + }, + "request": { + "url": { + "protocol": "http", + "port": "8080", + "path": [ + "index.php", + "apps", + "procest", + "api", + "zgw", + "zaken", + "v1", + "zaken" + ], + "host": [ + "localhost" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Accept-Crs", + "value": "EPSG:4326" + }, + { + "key": "Content-Crs", + "value": "EPSG:4326" + }, + { + "key": "Authorization", + "value": "Bearer eyJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJwcm9jZXN0LWFkbWluIiwiY2xpZW50X2lkIjoicHJvY2VzdC1hZG1pbiIsImlhdCI6IjE3NzMxNDUxNzciLCJ1c2VyX2lkIjoicHJvY2VzdC1hZG1pbiIsInVzZXJfcmVwcmVzZW50YXRpb24iOiIifQ.nwRHXQRY_gviO5wJhCdLKyIfCQ4bUewgQpLuYsk_3xg", + "system": true + }, + { + "key": "User-Agent", + "value": "PostmanRuntime/7.39.1", + "system": true + }, + { + "key": "Accept", + "value": "*/*", + "system": true + }, + { + "key": "Cache-Control", + "value": "no-cache", + "system": true + }, + { + "key": "Postman-Token", + "value": "a32a4e35-8632-488b-8a3a-92bb7674804d", + "system": true + }, + { + "key": "Host", + "value": "localhost:8080", + "system": true + }, + { + "key": "Accept-Encoding", + "value": "gzip, deflate, br", + "system": true + }, + { + "key": "Connection", + "value": "keep-alive", + "system": true + }, + { + "key": "Content-Length", + "value": "1544", + "system": true + }, + { + "key": "Cookie", + "value": "ocvp3112b4wg=4f54deddfb275ec0bedbcfaa4040f689; oc_sessionPassphrase=LBNdKxRzA0iqoULIruNxDDh2BK3O%2BrCIU8aUmiUcOFvy5Xw1YfjwQNlmBW2IkGwJYtxXh9%2BwDN6vYuGNX07tXzkBtjQJUWTGdzf8AIOUIVxVx5DfyWAQZ7nmYmQv6XSE; nc_sameSiteCookielax=true; nc_sameSiteCookiestrict=true", + "system": true + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\r\n \"bronorganisatie\": \"000000000\",\r\n \"omschrijving\": \"string\",\r\n \"toelichting\": \"string\",\r\n \"zaaktype\": \"http://localhost:8080/index.php/apps/procest/api/zgw/catalogi/v1/zaaktypen/619dc3e5-52f1-4294-a569-f21d16f44879\",\r\n \"registratiedatum\": \"2019-04-09\",\r\n \"verantwoordelijkeOrganisatie\": \"000000000\",\r\n \"startdatum\": \"2019-04-09\",\r\n \"einddatum\": null,\r\n \"einddatumGepland\": \"2019-04-20\",\r\n \"uiterlijkeEinddatumAfdoening\": \"2019-04-09\",\r\n \"publicatiedatum\": \"2019-04-09\",\r\n \"communicatiekanaal\": \"\",\r\n \"productenOfDiensten\": [],\r\n \"vertrouwelijkheidaanduiding\": \"geheim\",\r\n \"betalingsindicatie\": \"geheel\",\r\n \"betalingsindicatieWeergave\": null,\r\n \"laatsteBetaaldatum\": \"2019-01-01T00:00:00Z\",\r\n \"zaakgeometrie\": {\r\n \"type\": \"Point\",\r\n \"coordinates\": [\r\n 53.0,\r\n 5.0\r\n ]\r\n },\r\n \"verlenging\": null,\r\n \"opschorting\": null,\r\n \"selectielijstklasse\": \"https://referentielijsten.roxit.nl/api/v1/resultaten/0fe71ce3-b1e1-48eb-9070-be2756fc71b5\",\r\n \"hoofdzaak\": null,\r\n \"deelzaken\": [],\r\n \"relevanteAndereZaken\": [],\r\n \"eigenschappen\": [],\r\n \"rollen\": [],\r\n \"status\": null,\r\n \"zaakinformatieobjecten\": [],\r\n \"zaakobjecten\": [],\r\n \"resultaat\": null,\r\n \"kenmerken\": [],\r\n \"archiefnominatie\": null,\r\n \"archiefstatus\": \"nog_te_archiveren\",\r\n \"archiefactiedatum\": null,\r\n \"opdrachtgevendeOrganisatie\": null,\r\n \"processobjectaard\": null,\r\n \"startdatumBewaartermijn\": null,\r\n \"processobject\": null\r\n}" + }, + "auth": { + "type": "jwt", + "jwt": [ + { + "type": "string", + "value": "{\r\n \"iss\": \"procest-admin\",\r\n \"client_id\": \"procest-admin\",\r\n \"iat\": \"1773145177\",\r\n \"user_id\": \"procest-admin\",\r\n \"user_representation\": \"\"\r\n}", + "key": "payload" + }, + { + "type": "string", + "value": "procest-admin-secret-key-for-testing", + "key": "secret" + }, + { + "type": "string", + "value": "HS256", + "key": "algorithm" + }, + { + "type": "boolean", + "value": false, + "key": "isSecretBase64Encoded" + }, + { + "type": "string", + "value": "header", + "key": "addTokenTo" + }, + { + "type": "string", + "value": "Bearer", + "key": "headerPrefix" + }, + { + "type": "string", + "value": "token", + "key": "queryParamKey" + }, + { + "type": "string", + "value": "{}", + "key": "header" + } + ] + } + }, + "response": { + "id": "c5677784-70a9-4ce7-a2d1-05715bbd0379", + "status": "Created", + "code": 201, + "header": [ + { + "key": "Date", + "value": "Tue, 10 Mar 2026 12:19:36 GMT" + }, + { + "key": "Server", + "value": "Apache/2.4.66 (Debian)" + }, + { + "key": "X-Content-Type-Options", + "value": "nosniff" + }, + { + "key": "X-Frame-Options", + "value": "SAMEORIGIN" + }, + { + "key": "X-Permitted-Cross-Domain-Policies", + "value": "none" + }, + { + "key": "X-Robots-Tag", + "value": "noindex, nofollow" + }, + { + "key": "Referrer-Policy", + "value": "no-referrer" + }, + { + "key": "X-Powered-By", + "value": "PHP/8.3.30" + }, + { + "key": "Content-Security-Policy", + "value": "default-src 'none';base-uri 'none';manifest-src 'self';frame-ancestors 'none'" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=4f54deddfb275ec0bedbcfaa4040f689; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=4f54deddfb275ec0bedbcfaa4040f689; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=4f54deddfb275ec0bedbcfaa4040f689; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=4f54deddfb275ec0bedbcfaa4040f689; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=4f54deddfb275ec0bedbcfaa4040f689; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=199bad48b5ae054666dbb631ed4b5593; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=199bad48b5ae054666dbb631ed4b5593; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=199bad48b5ae054666dbb631ed4b5593; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=199bad48b5ae054666dbb631ed4b5593; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=199bad48b5ae054666dbb631ed4b5593; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "X-Request-Id", + "value": "ivqXYaQusbTjBN6knDD8" + }, + { + "key": "Cache-Control", + "value": "no-cache, no-store, must-revalidate" + }, + { + "key": "Feature-Policy", + "value": "autoplay 'none';camera 'none';fullscreen 'none';geolocation 'none';microphone 'none';payment 'none'" + }, + { + "key": "X-User-Id", + "value": "admin" + }, + { + "key": "Content-Length", + "value": "805" + }, + { + "key": "Keep-Alive", + "value": "timeout=5, max=100" + }, + { + "key": "Connection", + "value": "Keep-Alive" + }, + { + "key": "Content-Type", + "value": "application/json; charset=utf-8" + } + ], + "stream": { + "type": "Buffer", + "data": [ + 123, + 34, + 117, + 114, + 108, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 122, + 97, + 107, + 101, + 110, + 92, + 47, + 118, + 49, + 92, + 47, + 122, + 97, + 107, + 101, + 110, + 92, + 47, + 57, + 52, + 98, + 100, + 54, + 98, + 49, + 56, + 45, + 54, + 98, + 54, + 54, + 45, + 52, + 48, + 54, + 55, + 45, + 97, + 99, + 50, + 51, + 45, + 48, + 57, + 57, + 54, + 55, + 57, + 48, + 57, + 98, + 55, + 99, + 52, + 34, + 44, + 34, + 117, + 117, + 105, + 100, + 34, + 58, + 34, + 57, + 52, + 98, + 100, + 54, + 98, + 49, + 56, + 45, + 54, + 98, + 54, + 54, + 45, + 52, + 48, + 54, + 55, + 45, + 97, + 99, + 50, + 51, + 45, + 48, + 57, + 57, + 54, + 55, + 57, + 48, + 57, + 98, + 55, + 99, + 52, + 34, + 44, + 34, + 105, + 100, + 101, + 110, + 116, + 105, + 102, + 105, + 99, + 97, + 116, + 105, + 101, + 34, + 58, + 34, + 90, + 65, + 65, + 75, + 45, + 84, + 66, + 79, + 78, + 75, + 80, + 45, + 67, + 70, + 49, + 57, + 49, + 53, + 34, + 44, + 34, + 111, + 109, + 115, + 99, + 104, + 114, + 105, + 106, + 118, + 105, + 110, + 103, + 34, + 58, + 34, + 115, + 116, + 114, + 105, + 110, + 103, + 34, + 44, + 34, + 116, + 111, + 101, + 108, + 105, + 99, + 104, + 116, + 105, + 110, + 103, + 34, + 58, + 34, + 115, + 116, + 114, + 105, + 110, + 103, + 34, + 44, + 34, + 122, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 105, + 92, + 47, + 118, + 49, + 92, + 47, + 122, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 110, + 92, + 47, + 54, + 49, + 57, + 100, + 99, + 51, + 101, + 53, + 45, + 53, + 50, + 102, + 49, + 45, + 52, + 50, + 57, + 52, + 45, + 97, + 53, + 54, + 57, + 45, + 102, + 50, + 49, + 100, + 49, + 54, + 102, + 52, + 52, + 56, + 55, + 57, + 34, + 44, + 34, + 114, + 101, + 103, + 105, + 115, + 116, + 114, + 97, + 116, + 105, + 101, + 100, + 97, + 116, + 117, + 109, + 34, + 58, + 34, + 50, + 48, + 50, + 54, + 45, + 48, + 51, + 45, + 49, + 48, + 84, + 49, + 50, + 58, + 49, + 57, + 58, + 51, + 55, + 43, + 48, + 48, + 58, + 48, + 48, + 34, + 44, + 34, + 115, + 116, + 97, + 114, + 116, + 100, + 97, + 116, + 117, + 109, + 34, + 58, + 34, + 50, + 48, + 49, + 57, + 45, + 48, + 52, + 45, + 48, + 57, + 34, + 44, + 34, + 101, + 105, + 110, + 100, + 100, + 97, + 116, + 117, + 109, + 34, + 58, + 110, + 117, + 108, + 108, + 44, + 34, + 101, + 105, + 110, + 100, + 100, + 97, + 116, + 117, + 109, + 71, + 101, + 112, + 108, + 97, + 110, + 100, + 34, + 58, + 34, + 50, + 48, + 49, + 57, + 45, + 48, + 52, + 45, + 50, + 48, + 34, + 44, + 34, + 117, + 105, + 116, + 101, + 114, + 108, + 105, + 106, + 107, + 101, + 69, + 105, + 110, + 100, + 100, + 97, + 116, + 117, + 109, + 65, + 102, + 100, + 111, + 101, + 110, + 105, + 110, + 103, + 34, + 58, + 34, + 50, + 48, + 49, + 57, + 45, + 48, + 52, + 45, + 48, + 57, + 34, + 44, + 34, + 118, + 101, + 114, + 116, + 114, + 111, + 117, + 119, + 101, + 108, + 105, + 106, + 107, + 104, + 101, + 105, + 100, + 97, + 97, + 110, + 100, + 117, + 105, + 100, + 105, + 110, + 103, + 34, + 58, + 34, + 103, + 101, + 104, + 101, + 105, + 109, + 34, + 44, + 34, + 118, + 101, + 114, + 97, + 110, + 116, + 119, + 111, + 111, + 114, + 100, + 101, + 108, + 105, + 106, + 107, + 101, + 79, + 114, + 103, + 97, + 110, + 105, + 115, + 97, + 116, + 105, + 101, + 34, + 58, + 34, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 34, + 44, + 34, + 97, + 114, + 99, + 104, + 105, + 101, + 102, + 110, + 111, + 109, + 105, + 110, + 97, + 116, + 105, + 101, + 34, + 58, + 110, + 117, + 108, + 108, + 44, + 34, + 97, + 114, + 99, + 104, + 105, + 101, + 102, + 97, + 99, + 116, + 105, + 101, + 100, + 97, + 116, + 117, + 109, + 34, + 58, + 110, + 117, + 108, + 108, + 44, + 34, + 97, + 114, + 99, + 104, + 105, + 101, + 102, + 115, + 116, + 97, + 116, + 117, + 115, + 34, + 58, + 34, + 110, + 111, + 103, + 95, + 116, + 101, + 95, + 97, + 114, + 99, + 104, + 105, + 118, + 101, + 114, + 101, + 110, + 34, + 44, + 34, + 98, + 101, + 116, + 97, + 108, + 105, + 110, + 103, + 115, + 105, + 110, + 100, + 105, + 99, + 97, + 116, + 105, + 101, + 34, + 58, + 34, + 103, + 101, + 104, + 101, + 101, + 108, + 34, + 44, + 34, + 108, + 97, + 97, + 116, + 115, + 116, + 101, + 66, + 101, + 116, + 97, + 97, + 108, + 100, + 97, + 116, + 117, + 109, + 34, + 58, + 34, + 50, + 48, + 49, + 57, + 45, + 48, + 49, + 45, + 48, + 49, + 34, + 44, + 34, + 104, + 111, + 111, + 102, + 100, + 122, + 97, + 97, + 107, + 34, + 58, + 110, + 117, + 108, + 108, + 125 + ] + }, + "cookie": [], + "responseTime": 247, + "responseSize": 805 + }, + "id": "c1412446-482b-4d76-8755-c5440a8f0520", + "assertions": [ + { + "assertion": "Zaak aanmaken met opschorting null geeft 201", + "skipped": false + } + ] + }, + { + "cursor": { + "ref": "d778b6e6-b8a5-4417-8d35-f4f841544018", + "length": 313, + "cycles": 1, + "position": 152, + "iteration": 0, + "httpRequestId": "e7e10b80-742e-4ff7-8378-db5adfc59dc8" + }, + "item": { + "id": "fad4a12c-9e5c-4a12-b1f5-6bfa0b250596", + "name": "(zrc-012h) Zaak bijwerken met opschorting null is mogelijk", + "request": { + "url": { + "host": [ + "{{created_zaak_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Accept-Crs", + "value": "EPSG:4326" + }, + { + "key": "Content-Crs", + "value": "EPSG:4326" + } + ], + "method": "PUT", + "body": { + "mode": "raw", + "raw": "{\r\n \"bronorganisatie\": \"000000000\",\r\n \"omschrijving\": \"string\",\r\n \"toelichting\": \"string\",\r\n \"zaaktype\": \"{{zaaktype_url}}\",\r\n \"registratiedatum\": \"2019-04-09\",\r\n \"verantwoordelijkeOrganisatie\": \"000000000\",\r\n \"startdatum\": \"2019-04-09\",\r\n \"einddatum\": null,\r\n \"einddatumGepland\": \"2019-04-20\",\r\n \"uiterlijkeEinddatumAfdoening\": \"2019-04-09\",\r\n \"publicatiedatum\": \"2019-04-09\",\r\n \"communicatiekanaal\": \"\",\r\n \"productenOfDiensten\": [],\r\n \"vertrouwelijkheidaanduiding\": \"geheim\",\r\n \"betalingsindicatie\": \"geheel\",\r\n \"betalingsindicatieWeergave\": null,\r\n \"laatsteBetaaldatum\": \"2019-01-01T00:00:00Z\",\r\n \"zaakgeometrie\": {\r\n \"type\": \"Point\",\r\n \"coordinates\": [\r\n 53.0,\r\n 5.0\r\n ]\r\n },\r\n \"verlenging\": null,\r\n \"opschorting\": null,\r\n \"selectielijstklasse\": \"https://referentielijsten.roxit.nl/api/v1/resultaten/0fe71ce3-b1e1-48eb-9070-be2756fc71b5\",\r\n \"hoofdzaak\": null,\r\n \"deelzaken\": [],\r\n \"relevanteAndereZaken\": [],\r\n \"eigenschappen\": [],\r\n \"rollen\": [],\r\n \"status\": null,\r\n \"zaakinformatieobjecten\": [],\r\n \"zaakobjecten\": [],\r\n \"resultaat\": null,\r\n \"kenmerken\": [],\r\n \"archiefnominatie\": null,\r\n \"archiefstatus\": \"nog_te_archiveren\",\r\n \"archiefactiedatum\": null,\r\n \"opdrachtgevendeOrganisatie\": null,\r\n \"processobjectaard\": null,\r\n \"startdatumBewaartermijn\": null,\r\n \"processobject\": null\r\n}" + } + }, + "response": [], + "event": [ + { + "listen": "prerequest", + "script": { + "id": "720977d1-5f2b-4258-94a8-bf16be007183", + "type": "text/javascript", + "packages": {}, + "exec": [ + "" + ], + "_lastExecutionId": "9f9f1c99-0785-4871-aac2-05627dd7361e" + } + }, + { + "listen": "test", + "script": { + "id": "6b105ce6-9a69-4322-b53e-bfde731d0920", + "type": "text/javascript", + "packages": {}, + "exec": [ + "pm.test(\"Zaak bijwerken met opschorting null geeft 200\", function() {", + " pm.response.to.have.status(200);", + "});" + ], + "_lastExecutionId": "63b919fe-0b6e-4def-9378-f53674f8c4c8" + } + } + ] + }, + "request": { + "url": { + "protocol": "http", + "port": "8080", + "path": [ + "index.php", + "apps", + "procest", + "api", + "zgw", + "zaken", + "v1", + "zaken", + "94bd6b18-6b66-4067-ac23-09967909b7c4" + ], + "host": [ + "localhost" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Accept-Crs", + "value": "EPSG:4326" + }, + { + "key": "Content-Crs", + "value": "EPSG:4326" + }, + { + "key": "Authorization", + "value": "Bearer eyJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJwcm9jZXN0LWFkbWluIiwiY2xpZW50X2lkIjoicHJvY2VzdC1hZG1pbiIsImlhdCI6IjE3NzMxNDUxNzciLCJ1c2VyX2lkIjoicHJvY2VzdC1hZG1pbiIsInVzZXJfcmVwcmVzZW50YXRpb24iOiIifQ.nwRHXQRY_gviO5wJhCdLKyIfCQ4bUewgQpLuYsk_3xg", + "system": true + }, + { + "key": "User-Agent", + "value": "PostmanRuntime/7.39.1", + "system": true + }, + { + "key": "Accept", + "value": "*/*", + "system": true + }, + { + "key": "Cache-Control", + "value": "no-cache", + "system": true + }, + { + "key": "Postman-Token", + "value": "37828fac-899f-481b-8ef9-5fe5db9900d8", + "system": true + }, + { + "key": "Host", + "value": "localhost:8080", + "system": true + }, + { + "key": "Accept-Encoding", + "value": "gzip, deflate, br", + "system": true + }, + { + "key": "Connection", + "value": "keep-alive", + "system": true + }, + { + "key": "Content-Length", + "value": "1544", + "system": true + }, + { + "key": "Cookie", + "value": "ocvp3112b4wg=199bad48b5ae054666dbb631ed4b5593; oc_sessionPassphrase=LBNdKxRzA0iqoULIruNxDDh2BK3O%2BrCIU8aUmiUcOFvy5Xw1YfjwQNlmBW2IkGwJYtxXh9%2BwDN6vYuGNX07tXzkBtjQJUWTGdzf8AIOUIVxVx5DfyWAQZ7nmYmQv6XSE; nc_sameSiteCookielax=true; nc_sameSiteCookiestrict=true", + "system": true + } + ], + "method": "PUT", + "body": { + "mode": "raw", + "raw": "{\r\n \"bronorganisatie\": \"000000000\",\r\n \"omschrijving\": \"string\",\r\n \"toelichting\": \"string\",\r\n \"zaaktype\": \"http://localhost:8080/index.php/apps/procest/api/zgw/catalogi/v1/zaaktypen/619dc3e5-52f1-4294-a569-f21d16f44879\",\r\n \"registratiedatum\": \"2019-04-09\",\r\n \"verantwoordelijkeOrganisatie\": \"000000000\",\r\n \"startdatum\": \"2019-04-09\",\r\n \"einddatum\": null,\r\n \"einddatumGepland\": \"2019-04-20\",\r\n \"uiterlijkeEinddatumAfdoening\": \"2019-04-09\",\r\n \"publicatiedatum\": \"2019-04-09\",\r\n \"communicatiekanaal\": \"\",\r\n \"productenOfDiensten\": [],\r\n \"vertrouwelijkheidaanduiding\": \"geheim\",\r\n \"betalingsindicatie\": \"geheel\",\r\n \"betalingsindicatieWeergave\": null,\r\n \"laatsteBetaaldatum\": \"2019-01-01T00:00:00Z\",\r\n \"zaakgeometrie\": {\r\n \"type\": \"Point\",\r\n \"coordinates\": [\r\n 53.0,\r\n 5.0\r\n ]\r\n },\r\n \"verlenging\": null,\r\n \"opschorting\": null,\r\n \"selectielijstklasse\": \"https://referentielijsten.roxit.nl/api/v1/resultaten/0fe71ce3-b1e1-48eb-9070-be2756fc71b5\",\r\n \"hoofdzaak\": null,\r\n \"deelzaken\": [],\r\n \"relevanteAndereZaken\": [],\r\n \"eigenschappen\": [],\r\n \"rollen\": [],\r\n \"status\": null,\r\n \"zaakinformatieobjecten\": [],\r\n \"zaakobjecten\": [],\r\n \"resultaat\": null,\r\n \"kenmerken\": [],\r\n \"archiefnominatie\": null,\r\n \"archiefstatus\": \"nog_te_archiveren\",\r\n \"archiefactiedatum\": null,\r\n \"opdrachtgevendeOrganisatie\": null,\r\n \"processobjectaard\": null,\r\n \"startdatumBewaartermijn\": null,\r\n \"processobject\": null\r\n}" + }, + "auth": { + "type": "jwt", + "jwt": [ + { + "type": "string", + "value": "{\r\n \"iss\": \"procest-admin\",\r\n \"client_id\": \"procest-admin\",\r\n \"iat\": \"1773145177\",\r\n \"user_id\": \"procest-admin\",\r\n \"user_representation\": \"\"\r\n}", + "key": "payload" + }, + { + "type": "string", + "value": "procest-admin-secret-key-for-testing", + "key": "secret" + }, + { + "type": "string", + "value": "HS256", + "key": "algorithm" + }, + { + "type": "boolean", + "value": false, + "key": "isSecretBase64Encoded" + }, + { + "type": "string", + "value": "header", + "key": "addTokenTo" + }, + { + "type": "string", + "value": "Bearer", + "key": "headerPrefix" + }, + { + "type": "string", + "value": "token", + "key": "queryParamKey" + }, + { + "type": "string", + "value": "{}", + "key": "header" + } + ] + } + }, + "response": { + "id": "f2c335d3-658f-4364-a7af-557d18c13c74", + "status": "OK", + "code": 200, + "header": [ + { + "key": "Date", + "value": "Tue, 10 Mar 2026 12:19:37 GMT" + }, + { + "key": "Server", + "value": "Apache/2.4.66 (Debian)" + }, + { + "key": "X-Content-Type-Options", + "value": "nosniff" + }, + { + "key": "X-Frame-Options", + "value": "SAMEORIGIN" + }, + { + "key": "X-Permitted-Cross-Domain-Policies", + "value": "none" + }, + { + "key": "X-Robots-Tag", + "value": "noindex, nofollow" + }, + { + "key": "Referrer-Policy", + "value": "no-referrer" + }, + { + "key": "X-Powered-By", + "value": "PHP/8.3.30" + }, + { + "key": "Content-Security-Policy", + "value": "default-src 'none';base-uri 'none';manifest-src 'self';frame-ancestors 'none'" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=199bad48b5ae054666dbb631ed4b5593; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=199bad48b5ae054666dbb631ed4b5593; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=199bad48b5ae054666dbb631ed4b5593; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=199bad48b5ae054666dbb631ed4b5593; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=199bad48b5ae054666dbb631ed4b5593; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=131ef138df9c611a3036e85a5ee103da; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=131ef138df9c611a3036e85a5ee103da; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=131ef138df9c611a3036e85a5ee103da; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=131ef138df9c611a3036e85a5ee103da; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=131ef138df9c611a3036e85a5ee103da; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "X-Request-Id", + "value": "qJHC9RiA000E73urBVWg" + }, + { + "key": "Cache-Control", + "value": "no-cache, no-store, must-revalidate" + }, + { + "key": "Feature-Policy", + "value": "autoplay 'none';camera 'none';fullscreen 'none';geolocation 'none';microphone 'none';payment 'none'" + }, + { + "key": "X-User-Id", + "value": "admin" + }, + { + "key": "Content-Encoding", + "value": "gzip" + }, + { + "key": "Content-Length", + "value": "426" + }, + { + "key": "Keep-Alive", + "value": "timeout=5, max=99" + }, + { + "key": "Connection", + "value": "Keep-Alive" + }, + { + "key": "Content-Type", + "value": "application/json; charset=utf-8" + } + ], + "stream": { + "type": "Buffer", + "data": [ + 123, + 34, + 117, + 114, + 108, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 122, + 97, + 107, + 101, + 110, + 92, + 47, + 118, + 49, + 92, + 47, + 122, + 97, + 107, + 101, + 110, + 92, + 47, + 57, + 52, + 98, + 100, + 54, + 98, + 49, + 56, + 45, + 54, + 98, + 54, + 54, + 45, + 52, + 48, + 54, + 55, + 45, + 97, + 99, + 50, + 51, + 45, + 48, + 57, + 57, + 54, + 55, + 57, + 48, + 57, + 98, + 55, + 99, + 52, + 34, + 44, + 34, + 117, + 117, + 105, + 100, + 34, + 58, + 34, + 57, + 52, + 98, + 100, + 54, + 98, + 49, + 56, + 45, + 54, + 98, + 54, + 54, + 45, + 52, + 48, + 54, + 55, + 45, + 97, + 99, + 50, + 51, + 45, + 48, + 57, + 57, + 54, + 55, + 57, + 48, + 57, + 98, + 55, + 99, + 52, + 34, + 44, + 34, + 105, + 100, + 101, + 110, + 116, + 105, + 102, + 105, + 99, + 97, + 116, + 105, + 101, + 34, + 58, + 34, + 34, + 44, + 34, + 111, + 109, + 115, + 99, + 104, + 114, + 105, + 106, + 118, + 105, + 110, + 103, + 34, + 58, + 34, + 115, + 116, + 114, + 105, + 110, + 103, + 34, + 44, + 34, + 116, + 111, + 101, + 108, + 105, + 99, + 104, + 116, + 105, + 110, + 103, + 34, + 58, + 34, + 115, + 116, + 114, + 105, + 110, + 103, + 34, + 44, + 34, + 122, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 105, + 92, + 47, + 118, + 49, + 92, + 47, + 122, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 110, + 92, + 47, + 54, + 49, + 57, + 100, + 99, + 51, + 101, + 53, + 45, + 53, + 50, + 102, + 49, + 45, + 52, + 50, + 57, + 52, + 45, + 97, + 53, + 54, + 57, + 45, + 102, + 50, + 49, + 100, + 49, + 54, + 102, + 52, + 52, + 56, + 55, + 57, + 34, + 44, + 34, + 114, + 101, + 103, + 105, + 115, + 116, + 114, + 97, + 116, + 105, + 101, + 100, + 97, + 116, + 117, + 109, + 34, + 58, + 34, + 50, + 48, + 50, + 54, + 45, + 48, + 51, + 45, + 49, + 48, + 84, + 49, + 50, + 58, + 49, + 57, + 58, + 51, + 55, + 43, + 48, + 48, + 58, + 48, + 48, + 34, + 44, + 34, + 115, + 116, + 97, + 114, + 116, + 100, + 97, + 116, + 117, + 109, + 34, + 58, + 34, + 50, + 48, + 49, + 57, + 45, + 48, + 52, + 45, + 48, + 57, + 34, + 44, + 34, + 101, + 105, + 110, + 100, + 100, + 97, + 116, + 117, + 109, + 34, + 58, + 110, + 117, + 108, + 108, + 44, + 34, + 101, + 105, + 110, + 100, + 100, + 97, + 116, + 117, + 109, + 71, + 101, + 112, + 108, + 97, + 110, + 100, + 34, + 58, + 34, + 50, + 48, + 49, + 57, + 45, + 48, + 52, + 45, + 50, + 48, + 34, + 44, + 34, + 117, + 105, + 116, + 101, + 114, + 108, + 105, + 106, + 107, + 101, + 69, + 105, + 110, + 100, + 100, + 97, + 116, + 117, + 109, + 65, + 102, + 100, + 111, + 101, + 110, + 105, + 110, + 103, + 34, + 58, + 34, + 50, + 48, + 49, + 57, + 45, + 48, + 52, + 45, + 48, + 57, + 34, + 44, + 34, + 118, + 101, + 114, + 116, + 114, + 111, + 117, + 119, + 101, + 108, + 105, + 106, + 107, + 104, + 101, + 105, + 100, + 97, + 97, + 110, + 100, + 117, + 105, + 100, + 105, + 110, + 103, + 34, + 58, + 34, + 103, + 101, + 104, + 101, + 105, + 109, + 34, + 44, + 34, + 118, + 101, + 114, + 97, + 110, + 116, + 119, + 111, + 111, + 114, + 100, + 101, + 108, + 105, + 106, + 107, + 101, + 79, + 114, + 103, + 97, + 110, + 105, + 115, + 97, + 116, + 105, + 101, + 34, + 58, + 34, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 34, + 44, + 34, + 97, + 114, + 99, + 104, + 105, + 101, + 102, + 110, + 111, + 109, + 105, + 110, + 97, + 116, + 105, + 101, + 34, + 58, + 110, + 117, + 108, + 108, + 44, + 34, + 97, + 114, + 99, + 104, + 105, + 101, + 102, + 97, + 99, + 116, + 105, + 101, + 100, + 97, + 116, + 117, + 109, + 34, + 58, + 110, + 117, + 108, + 108, + 44, + 34, + 97, + 114, + 99, + 104, + 105, + 101, + 102, + 115, + 116, + 97, + 116, + 117, + 115, + 34, + 58, + 34, + 110, + 111, + 103, + 95, + 116, + 101, + 95, + 97, + 114, + 99, + 104, + 105, + 118, + 101, + 114, + 101, + 110, + 34, + 44, + 34, + 98, + 101, + 116, + 97, + 108, + 105, + 110, + 103, + 115, + 105, + 110, + 100, + 105, + 99, + 97, + 116, + 105, + 101, + 34, + 58, + 34, + 103, + 101, + 104, + 101, + 101, + 108, + 34, + 44, + 34, + 108, + 97, + 97, + 116, + 115, + 116, + 101, + 66, + 101, + 116, + 97, + 97, + 108, + 100, + 97, + 116, + 117, + 109, + 34, + 58, + 34, + 50, + 48, + 49, + 57, + 45, + 48, + 49, + 45, + 48, + 49, + 34, + 44, + 34, + 104, + 111, + 111, + 102, + 100, + 122, + 97, + 97, + 107, + 34, + 58, + 110, + 117, + 108, + 108, + 125 + ] + }, + "cookie": [], + "responseTime": 211, + "responseSize": 787 + }, + "id": "fad4a12c-9e5c-4a12-b1f5-6bfa0b250596", + "assertions": [ + { + "assertion": "Zaak bijwerken met opschorting null geeft 200", + "skipped": false + } + ] + }, + { + "cursor": { + "ref": "5873a061-bd54-4da5-937e-0b5827eb1dcc", + "length": 313, + "cycles": 1, + "position": 153, + "iteration": 0, + "httpRequestId": "6a4c4231-2f0a-428b-89a2-3cde531665a1" + }, + "item": { + "id": "e3a9e6a0-177e-4798-8748-6e72357706f6", + "name": "(zrc-012i) Zaak deels bijwerken met opschorting null is mogelijk", + "request": { + "url": { + "host": [ + "{{created_zaak_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Accept-Crs", + "value": "EPSG:4326" + }, + { + "key": "Content-Crs", + "value": "EPSG:4326" + } + ], + "method": "PATCH", + "body": { + "mode": "raw", + "raw": "{\n\t\"opschorting\": null\n}" + } + }, + "response": [], + "event": [ + { + "listen": "prerequest", + "script": { + "id": "93f701e9-093a-41da-bfa8-af66bce43002", + "type": "text/javascript", + "packages": {}, + "exec": [ + "" + ], + "_lastExecutionId": "cae94360-1bbd-48d2-9da9-f9a6e3556dbe" + } + }, + { + "listen": "test", + "script": { + "id": "f651a149-8edd-4e28-8354-60314368b18f", + "type": "text/javascript", + "packages": {}, + "exec": [ + "pm.test(\"Zaak deels bijwerken met opschorting null geeft 200\", function() {", + " pm.response.to.have.status(200);", + "});", + "", + "" + ], + "_lastExecutionId": "9e8166c1-317e-42cd-9e52-8ccacc8fc903" + } + } + ] + }, + "request": { + "url": { + "protocol": "http", + "port": "8080", + "path": [ + "index.php", + "apps", + "procest", + "api", + "zgw", + "zaken", + "v1", + "zaken", + "94bd6b18-6b66-4067-ac23-09967909b7c4" + ], + "host": [ + "localhost" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Accept-Crs", + "value": "EPSG:4326" + }, + { + "key": "Content-Crs", + "value": "EPSG:4326" + }, + { + "key": "Authorization", + "value": "Bearer eyJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJwcm9jZXN0LWFkbWluIiwiY2xpZW50X2lkIjoicHJvY2VzdC1hZG1pbiIsImlhdCI6IjE3NzMxNDUxNzgiLCJ1c2VyX2lkIjoicHJvY2VzdC1hZG1pbiIsInVzZXJfcmVwcmVzZW50YXRpb24iOiIifQ.6S-kwKJoWT6RtgCvJgIgwFESk3kmIIRVzrRl3f3tjMg", + "system": true + }, + { + "key": "User-Agent", + "value": "PostmanRuntime/7.39.1", + "system": true + }, + { + "key": "Accept", + "value": "*/*", + "system": true + }, + { + "key": "Cache-Control", + "value": "no-cache", + "system": true + }, + { + "key": "Postman-Token", + "value": "f6569deb-166a-415b-86ac-061d029b2426", + "system": true + }, + { + "key": "Host", + "value": "localhost:8080", + "system": true + }, + { + "key": "Accept-Encoding", + "value": "gzip, deflate, br", + "system": true + }, + { + "key": "Connection", + "value": "keep-alive", + "system": true + }, + { + "key": "Content-Length", + "value": "24", + "system": true + }, + { + "key": "Cookie", + "value": "ocvp3112b4wg=131ef138df9c611a3036e85a5ee103da; oc_sessionPassphrase=LBNdKxRzA0iqoULIruNxDDh2BK3O%2BrCIU8aUmiUcOFvy5Xw1YfjwQNlmBW2IkGwJYtxXh9%2BwDN6vYuGNX07tXzkBtjQJUWTGdzf8AIOUIVxVx5DfyWAQZ7nmYmQv6XSE; nc_sameSiteCookielax=true; nc_sameSiteCookiestrict=true", + "system": true + } + ], + "method": "PATCH", + "body": { + "mode": "raw", + "raw": "{\n\t\"opschorting\": null\n}" + }, + "auth": { + "type": "jwt", + "jwt": [ + { + "type": "string", + "value": "{\r\n \"iss\": \"procest-admin\",\r\n \"client_id\": \"procest-admin\",\r\n \"iat\": \"1773145178\",\r\n \"user_id\": \"procest-admin\",\r\n \"user_representation\": \"\"\r\n}", + "key": "payload" + }, + { + "type": "string", + "value": "procest-admin-secret-key-for-testing", + "key": "secret" + }, + { + "type": "string", + "value": "HS256", + "key": "algorithm" + }, + { + "type": "boolean", + "value": false, + "key": "isSecretBase64Encoded" + }, + { + "type": "string", + "value": "header", + "key": "addTokenTo" + }, + { + "type": "string", + "value": "Bearer", + "key": "headerPrefix" + }, + { + "type": "string", + "value": "token", + "key": "queryParamKey" + }, + { + "type": "string", + "value": "{}", + "key": "header" + } + ] + } + }, + "response": { + "id": "ef9e0aad-8989-41f3-9cf0-0ac26ab39ae5", + "status": "OK", + "code": 200, + "header": [ + { + "key": "Date", + "value": "Tue, 10 Mar 2026 12:19:37 GMT" + }, + { + "key": "Server", + "value": "Apache/2.4.66 (Debian)" + }, + { + "key": "X-Content-Type-Options", + "value": "nosniff" + }, + { + "key": "X-Frame-Options", + "value": "SAMEORIGIN" + }, + { + "key": "X-Permitted-Cross-Domain-Policies", + "value": "none" + }, + { + "key": "X-Robots-Tag", + "value": "noindex, nofollow" + }, + { + "key": "Referrer-Policy", + "value": "no-referrer" + }, + { + "key": "X-Powered-By", + "value": "PHP/8.3.30" + }, + { + "key": "Content-Security-Policy", + "value": "default-src 'none';base-uri 'none';manifest-src 'self';frame-ancestors 'none'" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=131ef138df9c611a3036e85a5ee103da; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=131ef138df9c611a3036e85a5ee103da; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=131ef138df9c611a3036e85a5ee103da; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=131ef138df9c611a3036e85a5ee103da; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=131ef138df9c611a3036e85a5ee103da; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=a6081c9c33fa82c0fcbc6d412f3f9e34; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=a6081c9c33fa82c0fcbc6d412f3f9e34; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=a6081c9c33fa82c0fcbc6d412f3f9e34; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=a6081c9c33fa82c0fcbc6d412f3f9e34; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=a6081c9c33fa82c0fcbc6d412f3f9e34; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "X-Request-Id", + "value": "o8RIiUIFA0ockAb6wImL" + }, + { + "key": "Cache-Control", + "value": "no-cache, no-store, must-revalidate" + }, + { + "key": "Feature-Policy", + "value": "autoplay 'none';camera 'none';fullscreen 'none';geolocation 'none';microphone 'none';payment 'none'" + }, + { + "key": "X-User-Id", + "value": "admin" + }, + { + "key": "Content-Encoding", + "value": "gzip" + }, + { + "key": "Content-Length", + "value": "426" + }, + { + "key": "Keep-Alive", + "value": "timeout=5, max=98" + }, + { + "key": "Connection", + "value": "Keep-Alive" + }, + { + "key": "Content-Type", + "value": "application/json; charset=utf-8" + } + ], + "stream": { + "type": "Buffer", + "data": [ + 123, + 34, + 117, + 114, + 108, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 122, + 97, + 107, + 101, + 110, + 92, + 47, + 118, + 49, + 92, + 47, + 122, + 97, + 107, + 101, + 110, + 92, + 47, + 57, + 52, + 98, + 100, + 54, + 98, + 49, + 56, + 45, + 54, + 98, + 54, + 54, + 45, + 52, + 48, + 54, + 55, + 45, + 97, + 99, + 50, + 51, + 45, + 48, + 57, + 57, + 54, + 55, + 57, + 48, + 57, + 98, + 55, + 99, + 52, + 34, + 44, + 34, + 117, + 117, + 105, + 100, + 34, + 58, + 34, + 57, + 52, + 98, + 100, + 54, + 98, + 49, + 56, + 45, + 54, + 98, + 54, + 54, + 45, + 52, + 48, + 54, + 55, + 45, + 97, + 99, + 50, + 51, + 45, + 48, + 57, + 57, + 54, + 55, + 57, + 48, + 57, + 98, + 55, + 99, + 52, + 34, + 44, + 34, + 105, + 100, + 101, + 110, + 116, + 105, + 102, + 105, + 99, + 97, + 116, + 105, + 101, + 34, + 58, + 34, + 34, + 44, + 34, + 111, + 109, + 115, + 99, + 104, + 114, + 105, + 106, + 118, + 105, + 110, + 103, + 34, + 58, + 34, + 115, + 116, + 114, + 105, + 110, + 103, + 34, + 44, + 34, + 116, + 111, + 101, + 108, + 105, + 99, + 104, + 116, + 105, + 110, + 103, + 34, + 58, + 34, + 115, + 116, + 114, + 105, + 110, + 103, + 34, + 44, + 34, + 122, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 105, + 92, + 47, + 118, + 49, + 92, + 47, + 122, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 110, + 92, + 47, + 54, + 49, + 57, + 100, + 99, + 51, + 101, + 53, + 45, + 53, + 50, + 102, + 49, + 45, + 52, + 50, + 57, + 52, + 45, + 97, + 53, + 54, + 57, + 45, + 102, + 50, + 49, + 100, + 49, + 54, + 102, + 52, + 52, + 56, + 55, + 57, + 34, + 44, + 34, + 114, + 101, + 103, + 105, + 115, + 116, + 114, + 97, + 116, + 105, + 101, + 100, + 97, + 116, + 117, + 109, + 34, + 58, + 34, + 50, + 48, + 50, + 54, + 45, + 48, + 51, + 45, + 49, + 48, + 84, + 49, + 50, + 58, + 49, + 57, + 58, + 51, + 55, + 43, + 48, + 48, + 58, + 48, + 48, + 34, + 44, + 34, + 115, + 116, + 97, + 114, + 116, + 100, + 97, + 116, + 117, + 109, + 34, + 58, + 34, + 50, + 48, + 49, + 57, + 45, + 48, + 52, + 45, + 48, + 57, + 34, + 44, + 34, + 101, + 105, + 110, + 100, + 100, + 97, + 116, + 117, + 109, + 34, + 58, + 110, + 117, + 108, + 108, + 44, + 34, + 101, + 105, + 110, + 100, + 100, + 97, + 116, + 117, + 109, + 71, + 101, + 112, + 108, + 97, + 110, + 100, + 34, + 58, + 34, + 50, + 48, + 49, + 57, + 45, + 48, + 52, + 45, + 50, + 48, + 34, + 44, + 34, + 117, + 105, + 116, + 101, + 114, + 108, + 105, + 106, + 107, + 101, + 69, + 105, + 110, + 100, + 100, + 97, + 116, + 117, + 109, + 65, + 102, + 100, + 111, + 101, + 110, + 105, + 110, + 103, + 34, + 58, + 34, + 50, + 48, + 49, + 57, + 45, + 48, + 52, + 45, + 48, + 57, + 34, + 44, + 34, + 118, + 101, + 114, + 116, + 114, + 111, + 117, + 119, + 101, + 108, + 105, + 106, + 107, + 104, + 101, + 105, + 100, + 97, + 97, + 110, + 100, + 117, + 105, + 100, + 105, + 110, + 103, + 34, + 58, + 34, + 103, + 101, + 104, + 101, + 105, + 109, + 34, + 44, + 34, + 118, + 101, + 114, + 97, + 110, + 116, + 119, + 111, + 111, + 114, + 100, + 101, + 108, + 105, + 106, + 107, + 101, + 79, + 114, + 103, + 97, + 110, + 105, + 115, + 97, + 116, + 105, + 101, + 34, + 58, + 34, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 34, + 44, + 34, + 97, + 114, + 99, + 104, + 105, + 101, + 102, + 110, + 111, + 109, + 105, + 110, + 97, + 116, + 105, + 101, + 34, + 58, + 110, + 117, + 108, + 108, + 44, + 34, + 97, + 114, + 99, + 104, + 105, + 101, + 102, + 97, + 99, + 116, + 105, + 101, + 100, + 97, + 116, + 117, + 109, + 34, + 58, + 110, + 117, + 108, + 108, + 44, + 34, + 97, + 114, + 99, + 104, + 105, + 101, + 102, + 115, + 116, + 97, + 116, + 117, + 115, + 34, + 58, + 34, + 110, + 111, + 103, + 95, + 116, + 101, + 95, + 97, + 114, + 99, + 104, + 105, + 118, + 101, + 114, + 101, + 110, + 34, + 44, + 34, + 98, + 101, + 116, + 97, + 108, + 105, + 110, + 103, + 115, + 105, + 110, + 100, + 105, + 99, + 97, + 116, + 105, + 101, + 34, + 58, + 34, + 103, + 101, + 104, + 101, + 101, + 108, + 34, + 44, + 34, + 108, + 97, + 97, + 116, + 115, + 116, + 101, + 66, + 101, + 116, + 97, + 97, + 108, + 100, + 97, + 116, + 117, + 109, + 34, + 58, + 34, + 50, + 48, + 49, + 57, + 45, + 48, + 49, + 45, + 48, + 49, + 34, + 44, + 34, + 104, + 111, + 111, + 102, + 100, + 122, + 97, + 97, + 107, + 34, + 58, + 110, + 117, + 108, + 108, + 125 + ] + }, + "cookie": [], + "responseTime": 205, + "responseSize": 787 + }, + "id": "e3a9e6a0-177e-4798-8748-6e72357706f6", + "assertions": [ + { + "assertion": "Zaak deels bijwerken met opschorting null geeft 200", + "skipped": false + } + ] + }, + { + "cursor": { + "ref": "99610f0b-0176-43e3-83b4-91a8c20b4e3c", + "length": 313, + "cycles": 1, + "position": 154, + "iteration": 0, + "httpRequestId": "213b2454-8c6c-4614-9c9c-f279698640d5" + }, + "item": { + "id": "3af77471-ef24-4a07-b981-6e4c808bc1db", + "name": "(zrc-012j) Zaak aanmaken met verlenging null is mogelijk", + "request": { + "url": { + "path": [ + "zaken" + ], + "host": [ + "{{zrc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Accept-Crs", + "value": "EPSG:4326" + }, + { + "key": "Content-Crs", + "value": "EPSG:4326" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\r\n \"bronorganisatie\": \"000000000\",\r\n \"omschrijving\": \"string\",\r\n \"toelichting\": \"string\",\r\n \"zaaktype\": \"{{zaaktype_url}}\",\r\n \"registratiedatum\": \"2019-04-09\",\r\n \"verantwoordelijkeOrganisatie\": \"000000000\",\r\n \"startdatum\": \"2019-04-09\",\r\n \"einddatum\": null,\r\n \"einddatumGepland\": \"2019-04-20\",\r\n \"uiterlijkeEinddatumAfdoening\": \"2019-04-09\",\r\n \"publicatiedatum\": \"2019-04-09\",\r\n \"communicatiekanaal\": \"\",\r\n \"productenOfDiensten\": [],\r\n \"vertrouwelijkheidaanduiding\": \"geheim\",\r\n \"betalingsindicatie\": \"geheel\",\r\n \"betalingsindicatieWeergave\": null,\r\n \"laatsteBetaaldatum\": \"2019-01-01T00:00:00Z\",\r\n \"zaakgeometrie\": {\r\n \"type\": \"Point\",\r\n \"coordinates\": [\r\n 53.0,\r\n 5.0\r\n ]\r\n },\r\n \"verlenging\": null,\r\n \"opschorting\": null,\r\n \"selectielijstklasse\": \"https://referentielijsten.roxit.nl/api/v1/resultaten/0fe71ce3-b1e1-48eb-9070-be2756fc71b5\",\r\n \"hoofdzaak\": null,\r\n \"deelzaken\": [],\r\n \"relevanteAndereZaken\": [],\r\n \"eigenschappen\": [],\r\n \"rollen\": [],\r\n \"status\": null,\r\n \"zaakinformatieobjecten\": [],\r\n \"zaakobjecten\": [],\r\n \"resultaat\": null,\r\n \"kenmerken\": [],\r\n \"archiefnominatie\": null,\r\n \"archiefstatus\": \"nog_te_archiveren\",\r\n \"archiefactiedatum\": null,\r\n \"opdrachtgevendeOrganisatie\": null,\r\n \"processobjectaard\": null,\r\n \"startdatumBewaartermijn\": null,\r\n \"processobject\": null\r\n}" + } + }, + "response": [], + "event": [ + { + "listen": "prerequest", + "script": { + "id": "67b38245-4586-484e-86af-339e3d03226d", + "type": "text/javascript", + "packages": {}, + "exec": [ + "" + ], + "_lastExecutionId": "c6dd752b-06b6-466f-956f-6b5ced389049" + } + }, + { + "listen": "test", + "script": { + "id": "93322303-6cb9-497c-b2b0-2596736d8b61", + "type": "text/javascript", + "packages": {}, + "exec": [ + "pm.test(\"Zaak aanmaken met verlenging null geeft 201\", function() {", + " pm.response.to.have.status(201);", + " pm.environment.set(\"created_zaak_url\", pm.response.json().url);", + "});" + ], + "_lastExecutionId": "f44741ef-d457-4ca0-9693-a268fe208fbb" + } + } + ] + }, + "request": { + "url": { + "protocol": "http", + "port": "8080", + "path": [ + "index.php", + "apps", + "procest", + "api", + "zgw", + "zaken", + "v1", + "zaken" + ], + "host": [ + "localhost" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Accept-Crs", + "value": "EPSG:4326" + }, + { + "key": "Content-Crs", + "value": "EPSG:4326" + }, + { + "key": "Authorization", + "value": "Bearer eyJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJwcm9jZXN0LWFkbWluIiwiY2xpZW50X2lkIjoicHJvY2VzdC1hZG1pbiIsImlhdCI6IjE3NzMxNDUxNzgiLCJ1c2VyX2lkIjoicHJvY2VzdC1hZG1pbiIsInVzZXJfcmVwcmVzZW50YXRpb24iOiIifQ.6S-kwKJoWT6RtgCvJgIgwFESk3kmIIRVzrRl3f3tjMg", + "system": true + }, + { + "key": "User-Agent", + "value": "PostmanRuntime/7.39.1", + "system": true + }, + { + "key": "Accept", + "value": "*/*", + "system": true + }, + { + "key": "Cache-Control", + "value": "no-cache", + "system": true + }, + { + "key": "Postman-Token", + "value": "ed748252-f127-4178-8ba5-75d77cfb3302", + "system": true + }, + { + "key": "Host", + "value": "localhost:8080", + "system": true + }, + { + "key": "Accept-Encoding", + "value": "gzip, deflate, br", + "system": true + }, + { + "key": "Connection", + "value": "keep-alive", + "system": true + }, + { + "key": "Content-Length", + "value": "1544", + "system": true + }, + { + "key": "Cookie", + "value": "ocvp3112b4wg=a6081c9c33fa82c0fcbc6d412f3f9e34; oc_sessionPassphrase=LBNdKxRzA0iqoULIruNxDDh2BK3O%2BrCIU8aUmiUcOFvy5Xw1YfjwQNlmBW2IkGwJYtxXh9%2BwDN6vYuGNX07tXzkBtjQJUWTGdzf8AIOUIVxVx5DfyWAQZ7nmYmQv6XSE; nc_sameSiteCookielax=true; nc_sameSiteCookiestrict=true", + "system": true + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\r\n \"bronorganisatie\": \"000000000\",\r\n \"omschrijving\": \"string\",\r\n \"toelichting\": \"string\",\r\n \"zaaktype\": \"http://localhost:8080/index.php/apps/procest/api/zgw/catalogi/v1/zaaktypen/619dc3e5-52f1-4294-a569-f21d16f44879\",\r\n \"registratiedatum\": \"2019-04-09\",\r\n \"verantwoordelijkeOrganisatie\": \"000000000\",\r\n \"startdatum\": \"2019-04-09\",\r\n \"einddatum\": null,\r\n \"einddatumGepland\": \"2019-04-20\",\r\n \"uiterlijkeEinddatumAfdoening\": \"2019-04-09\",\r\n \"publicatiedatum\": \"2019-04-09\",\r\n \"communicatiekanaal\": \"\",\r\n \"productenOfDiensten\": [],\r\n \"vertrouwelijkheidaanduiding\": \"geheim\",\r\n \"betalingsindicatie\": \"geheel\",\r\n \"betalingsindicatieWeergave\": null,\r\n \"laatsteBetaaldatum\": \"2019-01-01T00:00:00Z\",\r\n \"zaakgeometrie\": {\r\n \"type\": \"Point\",\r\n \"coordinates\": [\r\n 53.0,\r\n 5.0\r\n ]\r\n },\r\n \"verlenging\": null,\r\n \"opschorting\": null,\r\n \"selectielijstklasse\": \"https://referentielijsten.roxit.nl/api/v1/resultaten/0fe71ce3-b1e1-48eb-9070-be2756fc71b5\",\r\n \"hoofdzaak\": null,\r\n \"deelzaken\": [],\r\n \"relevanteAndereZaken\": [],\r\n \"eigenschappen\": [],\r\n \"rollen\": [],\r\n \"status\": null,\r\n \"zaakinformatieobjecten\": [],\r\n \"zaakobjecten\": [],\r\n \"resultaat\": null,\r\n \"kenmerken\": [],\r\n \"archiefnominatie\": null,\r\n \"archiefstatus\": \"nog_te_archiveren\",\r\n \"archiefactiedatum\": null,\r\n \"opdrachtgevendeOrganisatie\": null,\r\n \"processobjectaard\": null,\r\n \"startdatumBewaartermijn\": null,\r\n \"processobject\": null\r\n}" + }, + "auth": { + "type": "jwt", + "jwt": [ + { + "type": "string", + "value": "{\r\n \"iss\": \"procest-admin\",\r\n \"client_id\": \"procest-admin\",\r\n \"iat\": \"1773145178\",\r\n \"user_id\": \"procest-admin\",\r\n \"user_representation\": \"\"\r\n}", + "key": "payload" + }, + { + "type": "string", + "value": "procest-admin-secret-key-for-testing", + "key": "secret" + }, + { + "type": "string", + "value": "HS256", + "key": "algorithm" + }, + { + "type": "boolean", + "value": false, + "key": "isSecretBase64Encoded" + }, + { + "type": "string", + "value": "header", + "key": "addTokenTo" + }, + { + "type": "string", + "value": "Bearer", + "key": "headerPrefix" + }, + { + "type": "string", + "value": "token", + "key": "queryParamKey" + }, + { + "type": "string", + "value": "{}", + "key": "header" + } + ] + } + }, + "response": { + "id": "a0015778-f0b5-46cf-bc67-8b36b4ad248b", + "status": "Created", + "code": 201, + "header": [ + { + "key": "Date", + "value": "Tue, 10 Mar 2026 12:19:37 GMT" + }, + { + "key": "Server", + "value": "Apache/2.4.66 (Debian)" + }, + { + "key": "X-Content-Type-Options", + "value": "nosniff" + }, + { + "key": "X-Frame-Options", + "value": "SAMEORIGIN" + }, + { + "key": "X-Permitted-Cross-Domain-Policies", + "value": "none" + }, + { + "key": "X-Robots-Tag", + "value": "noindex, nofollow" + }, + { + "key": "Referrer-Policy", + "value": "no-referrer" + }, + { + "key": "X-Powered-By", + "value": "PHP/8.3.30" + }, + { + "key": "Content-Security-Policy", + "value": "default-src 'none';base-uri 'none';manifest-src 'self';frame-ancestors 'none'" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=a6081c9c33fa82c0fcbc6d412f3f9e34; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=a6081c9c33fa82c0fcbc6d412f3f9e34; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=a6081c9c33fa82c0fcbc6d412f3f9e34; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=a6081c9c33fa82c0fcbc6d412f3f9e34; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=a6081c9c33fa82c0fcbc6d412f3f9e34; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=0444022a931579d292637c726e202cf5; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=0444022a931579d292637c726e202cf5; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=0444022a931579d292637c726e202cf5; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=0444022a931579d292637c726e202cf5; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=0444022a931579d292637c726e202cf5; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "X-Request-Id", + "value": "Wvkh3j3ahovqUngEmW9D" + }, + { + "key": "Cache-Control", + "value": "no-cache, no-store, must-revalidate" + }, + { + "key": "Feature-Policy", + "value": "autoplay 'none';camera 'none';fullscreen 'none';geolocation 'none';microphone 'none';payment 'none'" + }, + { + "key": "X-User-Id", + "value": "admin" + }, + { + "key": "Content-Length", + "value": "805" + }, + { + "key": "Keep-Alive", + "value": "timeout=5, max=97" + }, + { + "key": "Connection", + "value": "Keep-Alive" + }, + { + "key": "Content-Type", + "value": "application/json; charset=utf-8" + } + ], + "stream": { + "type": "Buffer", + "data": [ + 123, + 34, + 117, + 114, + 108, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 122, + 97, + 107, + 101, + 110, + 92, + 47, + 118, + 49, + 92, + 47, + 122, + 97, + 107, + 101, + 110, + 92, + 47, + 101, + 101, + 99, + 55, + 56, + 100, + 56, + 55, + 45, + 51, + 99, + 52, + 98, + 45, + 52, + 102, + 102, + 102, + 45, + 56, + 48, + 49, + 48, + 45, + 56, + 98, + 101, + 100, + 57, + 50, + 48, + 48, + 99, + 52, + 100, + 55, + 34, + 44, + 34, + 117, + 117, + 105, + 100, + 34, + 58, + 34, + 101, + 101, + 99, + 55, + 56, + 100, + 56, + 55, + 45, + 51, + 99, + 52, + 98, + 45, + 52, + 102, + 102, + 102, + 45, + 56, + 48, + 49, + 48, + 45, + 56, + 98, + 101, + 100, + 57, + 50, + 48, + 48, + 99, + 52, + 100, + 55, + 34, + 44, + 34, + 105, + 100, + 101, + 110, + 116, + 105, + 102, + 105, + 99, + 97, + 116, + 105, + 101, + 34, + 58, + 34, + 90, + 65, + 65, + 75, + 45, + 84, + 66, + 79, + 78, + 75, + 80, + 45, + 69, + 68, + 70, + 48, + 68, + 51, + 34, + 44, + 34, + 111, + 109, + 115, + 99, + 104, + 114, + 105, + 106, + 118, + 105, + 110, + 103, + 34, + 58, + 34, + 115, + 116, + 114, + 105, + 110, + 103, + 34, + 44, + 34, + 116, + 111, + 101, + 108, + 105, + 99, + 104, + 116, + 105, + 110, + 103, + 34, + 58, + 34, + 115, + 116, + 114, + 105, + 110, + 103, + 34, + 44, + 34, + 122, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 105, + 92, + 47, + 118, + 49, + 92, + 47, + 122, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 110, + 92, + 47, + 54, + 49, + 57, + 100, + 99, + 51, + 101, + 53, + 45, + 53, + 50, + 102, + 49, + 45, + 52, + 50, + 57, + 52, + 45, + 97, + 53, + 54, + 57, + 45, + 102, + 50, + 49, + 100, + 49, + 54, + 102, + 52, + 52, + 56, + 55, + 57, + 34, + 44, + 34, + 114, + 101, + 103, + 105, + 115, + 116, + 114, + 97, + 116, + 105, + 101, + 100, + 97, + 116, + 117, + 109, + 34, + 58, + 34, + 50, + 48, + 50, + 54, + 45, + 48, + 51, + 45, + 49, + 48, + 84, + 49, + 50, + 58, + 49, + 57, + 58, + 51, + 55, + 43, + 48, + 48, + 58, + 48, + 48, + 34, + 44, + 34, + 115, + 116, + 97, + 114, + 116, + 100, + 97, + 116, + 117, + 109, + 34, + 58, + 34, + 50, + 48, + 49, + 57, + 45, + 48, + 52, + 45, + 48, + 57, + 34, + 44, + 34, + 101, + 105, + 110, + 100, + 100, + 97, + 116, + 117, + 109, + 34, + 58, + 110, + 117, + 108, + 108, + 44, + 34, + 101, + 105, + 110, + 100, + 100, + 97, + 116, + 117, + 109, + 71, + 101, + 112, + 108, + 97, + 110, + 100, + 34, + 58, + 34, + 50, + 48, + 49, + 57, + 45, + 48, + 52, + 45, + 50, + 48, + 34, + 44, + 34, + 117, + 105, + 116, + 101, + 114, + 108, + 105, + 106, + 107, + 101, + 69, + 105, + 110, + 100, + 100, + 97, + 116, + 117, + 109, + 65, + 102, + 100, + 111, + 101, + 110, + 105, + 110, + 103, + 34, + 58, + 34, + 50, + 48, + 49, + 57, + 45, + 48, + 52, + 45, + 48, + 57, + 34, + 44, + 34, + 118, + 101, + 114, + 116, + 114, + 111, + 117, + 119, + 101, + 108, + 105, + 106, + 107, + 104, + 101, + 105, + 100, + 97, + 97, + 110, + 100, + 117, + 105, + 100, + 105, + 110, + 103, + 34, + 58, + 34, + 103, + 101, + 104, + 101, + 105, + 109, + 34, + 44, + 34, + 118, + 101, + 114, + 97, + 110, + 116, + 119, + 111, + 111, + 114, + 100, + 101, + 108, + 105, + 106, + 107, + 101, + 79, + 114, + 103, + 97, + 110, + 105, + 115, + 97, + 116, + 105, + 101, + 34, + 58, + 34, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 34, + 44, + 34, + 97, + 114, + 99, + 104, + 105, + 101, + 102, + 110, + 111, + 109, + 105, + 110, + 97, + 116, + 105, + 101, + 34, + 58, + 110, + 117, + 108, + 108, + 44, + 34, + 97, + 114, + 99, + 104, + 105, + 101, + 102, + 97, + 99, + 116, + 105, + 101, + 100, + 97, + 116, + 117, + 109, + 34, + 58, + 110, + 117, + 108, + 108, + 44, + 34, + 97, + 114, + 99, + 104, + 105, + 101, + 102, + 115, + 116, + 97, + 116, + 117, + 115, + 34, + 58, + 34, + 110, + 111, + 103, + 95, + 116, + 101, + 95, + 97, + 114, + 99, + 104, + 105, + 118, + 101, + 114, + 101, + 110, + 34, + 44, + 34, + 98, + 101, + 116, + 97, + 108, + 105, + 110, + 103, + 115, + 105, + 110, + 100, + 105, + 99, + 97, + 116, + 105, + 101, + 34, + 58, + 34, + 103, + 101, + 104, + 101, + 101, + 108, + 34, + 44, + 34, + 108, + 97, + 97, + 116, + 115, + 116, + 101, + 66, + 101, + 116, + 97, + 97, + 108, + 100, + 97, + 116, + 117, + 109, + 34, + 58, + 34, + 50, + 48, + 49, + 57, + 45, + 48, + 49, + 45, + 48, + 49, + 34, + 44, + 34, + 104, + 111, + 111, + 102, + 100, + 122, + 97, + 97, + 107, + 34, + 58, + 110, + 117, + 108, + 108, + 125 + ] + }, + "cookie": [], + "responseTime": 263, + "responseSize": 805 + }, + "id": "3af77471-ef24-4a07-b981-6e4c808bc1db", + "assertions": [ + { + "assertion": "Zaak aanmaken met verlenging null geeft 201", + "skipped": false + } + ] + }, + { + "cursor": { + "ref": "eee747c0-f71f-4b7c-81d9-840382fe563d", + "length": 313, + "cycles": 1, + "position": 155, + "iteration": 0, + "httpRequestId": "46a8c53f-bedf-4858-afd5-df64d7d2d68a" + }, + "item": { + "id": "38b78d20-a047-417e-8179-6b8cc3f6faa3", + "name": "(zrc-012k) Zaak bijwerken met verlenging null is mogelijk", + "request": { + "url": { + "host": [ + "{{created_zaak_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Accept-Crs", + "value": "EPSG:4326" + }, + { + "key": "Content-Crs", + "value": "EPSG:4326" + } + ], + "method": "PUT", + "body": { + "mode": "raw", + "raw": "{\r\n \"bronorganisatie\": \"000000000\",\r\n \"omschrijving\": \"string\",\r\n \"toelichting\": \"string\",\r\n \"zaaktype\": \"{{zaaktype_url}}\",\r\n \"registratiedatum\": \"2019-04-09\",\r\n \"verantwoordelijkeOrganisatie\": \"000000000\",\r\n \"startdatum\": \"2019-04-09\",\r\n \"einddatum\": null,\r\n \"einddatumGepland\": \"2019-04-20\",\r\n \"uiterlijkeEinddatumAfdoening\": \"2019-04-09\",\r\n \"publicatiedatum\": \"2019-04-09\",\r\n \"communicatiekanaal\": \"\",\r\n \"productenOfDiensten\": [],\r\n \"vertrouwelijkheidaanduiding\": \"geheim\",\r\n \"betalingsindicatie\": \"geheel\",\r\n \"betalingsindicatieWeergave\": null,\r\n \"laatsteBetaaldatum\": \"2019-01-01T00:00:00Z\",\r\n \"zaakgeometrie\": {\r\n \"type\": \"Point\",\r\n \"coordinates\": [\r\n 53.0,\r\n 5.0\r\n ]\r\n },\r\n \"verlenging\": null,\r\n \"opschorting\": null,\r\n \"selectielijstklasse\": \"https://referentielijsten.roxit.nl/api/v1/resultaten/0fe71ce3-b1e1-48eb-9070-be2756fc71b5\",\r\n \"hoofdzaak\": null,\r\n \"deelzaken\": [],\r\n \"relevanteAndereZaken\": [],\r\n \"eigenschappen\": [],\r\n \"rollen\": [],\r\n \"status\": null,\r\n \"zaakinformatieobjecten\": [],\r\n \"zaakobjecten\": [],\r\n \"resultaat\": null,\r\n \"kenmerken\": [],\r\n \"archiefnominatie\": null,\r\n \"archiefstatus\": \"nog_te_archiveren\",\r\n \"archiefactiedatum\": null,\r\n \"opdrachtgevendeOrganisatie\": null,\r\n \"processobjectaard\": null,\r\n \"startdatumBewaartermijn\": null,\r\n \"processobject\": null\r\n}" + } + }, + "response": [], + "event": [ + { + "listen": "prerequest", + "script": { + "id": "8bc7f08b-b326-4cf1-9b0c-d3fa41341977", + "type": "text/javascript", + "packages": {}, + "exec": [ + "" + ], + "_lastExecutionId": "f4fcfddd-b8b9-4ebf-9ba1-c7914255b325" + } + }, + { + "listen": "test", + "script": { + "id": "8f83e817-ded2-49b3-b9a5-74b31299209d", + "type": "text/javascript", + "packages": {}, + "exec": [ + "pm.test(\"Zaak bijwerken met verlenging null geeft 200\", function() {", + " pm.response.to.have.status(200);", + "});" + ], + "_lastExecutionId": "3266c134-a4b3-495b-b39a-f8d4a09acb85" + } + } + ] + }, + "request": { + "url": { + "protocol": "http", + "port": "8080", + "path": [ + "index.php", + "apps", + "procest", + "api", + "zgw", + "zaken", + "v1", + "zaken", + "eec78d87-3c4b-4fff-8010-8bed9200c4d7" + ], + "host": [ + "localhost" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Accept-Crs", + "value": "EPSG:4326" + }, + { + "key": "Content-Crs", + "value": "EPSG:4326" + }, + { + "key": "Authorization", + "value": "Bearer eyJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJwcm9jZXN0LWFkbWluIiwiY2xpZW50X2lkIjoicHJvY2VzdC1hZG1pbiIsImlhdCI6IjE3NzMxNDUxNzgiLCJ1c2VyX2lkIjoicHJvY2VzdC1hZG1pbiIsInVzZXJfcmVwcmVzZW50YXRpb24iOiIifQ.6S-kwKJoWT6RtgCvJgIgwFESk3kmIIRVzrRl3f3tjMg", + "system": true + }, + { + "key": "User-Agent", + "value": "PostmanRuntime/7.39.1", + "system": true + }, + { + "key": "Accept", + "value": "*/*", + "system": true + }, + { + "key": "Cache-Control", + "value": "no-cache", + "system": true + }, + { + "key": "Postman-Token", + "value": "c58f4bbf-6401-43a9-917e-febdb7c2f7cb", + "system": true + }, + { + "key": "Host", + "value": "localhost:8080", + "system": true + }, + { + "key": "Accept-Encoding", + "value": "gzip, deflate, br", + "system": true + }, + { + "key": "Connection", + "value": "keep-alive", + "system": true + }, + { + "key": "Content-Length", + "value": "1544", + "system": true + }, + { + "key": "Cookie", + "value": "ocvp3112b4wg=0444022a931579d292637c726e202cf5; oc_sessionPassphrase=LBNdKxRzA0iqoULIruNxDDh2BK3O%2BrCIU8aUmiUcOFvy5Xw1YfjwQNlmBW2IkGwJYtxXh9%2BwDN6vYuGNX07tXzkBtjQJUWTGdzf8AIOUIVxVx5DfyWAQZ7nmYmQv6XSE; nc_sameSiteCookielax=true; nc_sameSiteCookiestrict=true", + "system": true + } + ], + "method": "PUT", + "body": { + "mode": "raw", + "raw": "{\r\n \"bronorganisatie\": \"000000000\",\r\n \"omschrijving\": \"string\",\r\n \"toelichting\": \"string\",\r\n \"zaaktype\": \"http://localhost:8080/index.php/apps/procest/api/zgw/catalogi/v1/zaaktypen/619dc3e5-52f1-4294-a569-f21d16f44879\",\r\n \"registratiedatum\": \"2019-04-09\",\r\n \"verantwoordelijkeOrganisatie\": \"000000000\",\r\n \"startdatum\": \"2019-04-09\",\r\n \"einddatum\": null,\r\n \"einddatumGepland\": \"2019-04-20\",\r\n \"uiterlijkeEinddatumAfdoening\": \"2019-04-09\",\r\n \"publicatiedatum\": \"2019-04-09\",\r\n \"communicatiekanaal\": \"\",\r\n \"productenOfDiensten\": [],\r\n \"vertrouwelijkheidaanduiding\": \"geheim\",\r\n \"betalingsindicatie\": \"geheel\",\r\n \"betalingsindicatieWeergave\": null,\r\n \"laatsteBetaaldatum\": \"2019-01-01T00:00:00Z\",\r\n \"zaakgeometrie\": {\r\n \"type\": \"Point\",\r\n \"coordinates\": [\r\n 53.0,\r\n 5.0\r\n ]\r\n },\r\n \"verlenging\": null,\r\n \"opschorting\": null,\r\n \"selectielijstklasse\": \"https://referentielijsten.roxit.nl/api/v1/resultaten/0fe71ce3-b1e1-48eb-9070-be2756fc71b5\",\r\n \"hoofdzaak\": null,\r\n \"deelzaken\": [],\r\n \"relevanteAndereZaken\": [],\r\n \"eigenschappen\": [],\r\n \"rollen\": [],\r\n \"status\": null,\r\n \"zaakinformatieobjecten\": [],\r\n \"zaakobjecten\": [],\r\n \"resultaat\": null,\r\n \"kenmerken\": [],\r\n \"archiefnominatie\": null,\r\n \"archiefstatus\": \"nog_te_archiveren\",\r\n \"archiefactiedatum\": null,\r\n \"opdrachtgevendeOrganisatie\": null,\r\n \"processobjectaard\": null,\r\n \"startdatumBewaartermijn\": null,\r\n \"processobject\": null\r\n}" + }, + "auth": { + "type": "jwt", + "jwt": [ + { + "type": "string", + "value": "{\r\n \"iss\": \"procest-admin\",\r\n \"client_id\": \"procest-admin\",\r\n \"iat\": \"1773145178\",\r\n \"user_id\": \"procest-admin\",\r\n \"user_representation\": \"\"\r\n}", + "key": "payload" + }, + { + "type": "string", + "value": "procest-admin-secret-key-for-testing", + "key": "secret" + }, + { + "type": "string", + "value": "HS256", + "key": "algorithm" + }, + { + "type": "boolean", + "value": false, + "key": "isSecretBase64Encoded" + }, + { + "type": "string", + "value": "header", + "key": "addTokenTo" + }, + { + "type": "string", + "value": "Bearer", + "key": "headerPrefix" + }, + { + "type": "string", + "value": "token", + "key": "queryParamKey" + }, + { + "type": "string", + "value": "{}", + "key": "header" + } + ] + } + }, + "response": { + "id": "c6d4d842-48a7-4211-aa2e-2d857b2cad34", + "status": "OK", + "code": 200, + "header": [ + { + "key": "Date", + "value": "Tue, 10 Mar 2026 12:19:38 GMT" + }, + { + "key": "Server", + "value": "Apache/2.4.66 (Debian)" + }, + { + "key": "X-Content-Type-Options", + "value": "nosniff" + }, + { + "key": "X-Frame-Options", + "value": "SAMEORIGIN" + }, + { + "key": "X-Permitted-Cross-Domain-Policies", + "value": "none" + }, + { + "key": "X-Robots-Tag", + "value": "noindex, nofollow" + }, + { + "key": "Referrer-Policy", + "value": "no-referrer" + }, + { + "key": "X-Powered-By", + "value": "PHP/8.3.30" + }, + { + "key": "Content-Security-Policy", + "value": "default-src 'none';base-uri 'none';manifest-src 'self';frame-ancestors 'none'" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=0444022a931579d292637c726e202cf5; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=0444022a931579d292637c726e202cf5; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=0444022a931579d292637c726e202cf5; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=0444022a931579d292637c726e202cf5; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=0444022a931579d292637c726e202cf5; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=aa7fd996e5e57bdd9a006bf023b03715; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=aa7fd996e5e57bdd9a006bf023b03715; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=aa7fd996e5e57bdd9a006bf023b03715; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=aa7fd996e5e57bdd9a006bf023b03715; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=aa7fd996e5e57bdd9a006bf023b03715; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "X-Request-Id", + "value": "1DYHUvmv5Vfz7IdK8KVE" + }, + { + "key": "Cache-Control", + "value": "no-cache, no-store, must-revalidate" + }, + { + "key": "Feature-Policy", + "value": "autoplay 'none';camera 'none';fullscreen 'none';geolocation 'none';microphone 'none';payment 'none'" + }, + { + "key": "X-User-Id", + "value": "admin" + }, + { + "key": "Content-Encoding", + "value": "gzip" + }, + { + "key": "Content-Length", + "value": "425" + }, + { + "key": "Keep-Alive", + "value": "timeout=5, max=96" + }, + { + "key": "Connection", + "value": "Keep-Alive" + }, + { + "key": "Content-Type", + "value": "application/json; charset=utf-8" + } + ], + "stream": { + "type": "Buffer", + "data": [ + 123, + 34, + 117, + 114, + 108, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 122, + 97, + 107, + 101, + 110, + 92, + 47, + 118, + 49, + 92, + 47, + 122, + 97, + 107, + 101, + 110, + 92, + 47, + 101, + 101, + 99, + 55, + 56, + 100, + 56, + 55, + 45, + 51, + 99, + 52, + 98, + 45, + 52, + 102, + 102, + 102, + 45, + 56, + 48, + 49, + 48, + 45, + 56, + 98, + 101, + 100, + 57, + 50, + 48, + 48, + 99, + 52, + 100, + 55, + 34, + 44, + 34, + 117, + 117, + 105, + 100, + 34, + 58, + 34, + 101, + 101, + 99, + 55, + 56, + 100, + 56, + 55, + 45, + 51, + 99, + 52, + 98, + 45, + 52, + 102, + 102, + 102, + 45, + 56, + 48, + 49, + 48, + 45, + 56, + 98, + 101, + 100, + 57, + 50, + 48, + 48, + 99, + 52, + 100, + 55, + 34, + 44, + 34, + 105, + 100, + 101, + 110, + 116, + 105, + 102, + 105, + 99, + 97, + 116, + 105, + 101, + 34, + 58, + 34, + 34, + 44, + 34, + 111, + 109, + 115, + 99, + 104, + 114, + 105, + 106, + 118, + 105, + 110, + 103, + 34, + 58, + 34, + 115, + 116, + 114, + 105, + 110, + 103, + 34, + 44, + 34, + 116, + 111, + 101, + 108, + 105, + 99, + 104, + 116, + 105, + 110, + 103, + 34, + 58, + 34, + 115, + 116, + 114, + 105, + 110, + 103, + 34, + 44, + 34, + 122, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 105, + 92, + 47, + 118, + 49, + 92, + 47, + 122, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 110, + 92, + 47, + 54, + 49, + 57, + 100, + 99, + 51, + 101, + 53, + 45, + 53, + 50, + 102, + 49, + 45, + 52, + 50, + 57, + 52, + 45, + 97, + 53, + 54, + 57, + 45, + 102, + 50, + 49, + 100, + 49, + 54, + 102, + 52, + 52, + 56, + 55, + 57, + 34, + 44, + 34, + 114, + 101, + 103, + 105, + 115, + 116, + 114, + 97, + 116, + 105, + 101, + 100, + 97, + 116, + 117, + 109, + 34, + 58, + 34, + 50, + 48, + 50, + 54, + 45, + 48, + 51, + 45, + 49, + 48, + 84, + 49, + 50, + 58, + 49, + 57, + 58, + 51, + 55, + 43, + 48, + 48, + 58, + 48, + 48, + 34, + 44, + 34, + 115, + 116, + 97, + 114, + 116, + 100, + 97, + 116, + 117, + 109, + 34, + 58, + 34, + 50, + 48, + 49, + 57, + 45, + 48, + 52, + 45, + 48, + 57, + 34, + 44, + 34, + 101, + 105, + 110, + 100, + 100, + 97, + 116, + 117, + 109, + 34, + 58, + 110, + 117, + 108, + 108, + 44, + 34, + 101, + 105, + 110, + 100, + 100, + 97, + 116, + 117, + 109, + 71, + 101, + 112, + 108, + 97, + 110, + 100, + 34, + 58, + 34, + 50, + 48, + 49, + 57, + 45, + 48, + 52, + 45, + 50, + 48, + 34, + 44, + 34, + 117, + 105, + 116, + 101, + 114, + 108, + 105, + 106, + 107, + 101, + 69, + 105, + 110, + 100, + 100, + 97, + 116, + 117, + 109, + 65, + 102, + 100, + 111, + 101, + 110, + 105, + 110, + 103, + 34, + 58, + 34, + 50, + 48, + 49, + 57, + 45, + 48, + 52, + 45, + 48, + 57, + 34, + 44, + 34, + 118, + 101, + 114, + 116, + 114, + 111, + 117, + 119, + 101, + 108, + 105, + 106, + 107, + 104, + 101, + 105, + 100, + 97, + 97, + 110, + 100, + 117, + 105, + 100, + 105, + 110, + 103, + 34, + 58, + 34, + 103, + 101, + 104, + 101, + 105, + 109, + 34, + 44, + 34, + 118, + 101, + 114, + 97, + 110, + 116, + 119, + 111, + 111, + 114, + 100, + 101, + 108, + 105, + 106, + 107, + 101, + 79, + 114, + 103, + 97, + 110, + 105, + 115, + 97, + 116, + 105, + 101, + 34, + 58, + 34, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 34, + 44, + 34, + 97, + 114, + 99, + 104, + 105, + 101, + 102, + 110, + 111, + 109, + 105, + 110, + 97, + 116, + 105, + 101, + 34, + 58, + 110, + 117, + 108, + 108, + 44, + 34, + 97, + 114, + 99, + 104, + 105, + 101, + 102, + 97, + 99, + 116, + 105, + 101, + 100, + 97, + 116, + 117, + 109, + 34, + 58, + 110, + 117, + 108, + 108, + 44, + 34, + 97, + 114, + 99, + 104, + 105, + 101, + 102, + 115, + 116, + 97, + 116, + 117, + 115, + 34, + 58, + 34, + 110, + 111, + 103, + 95, + 116, + 101, + 95, + 97, + 114, + 99, + 104, + 105, + 118, + 101, + 114, + 101, + 110, + 34, + 44, + 34, + 98, + 101, + 116, + 97, + 108, + 105, + 110, + 103, + 115, + 105, + 110, + 100, + 105, + 99, + 97, + 116, + 105, + 101, + 34, + 58, + 34, + 103, + 101, + 104, + 101, + 101, + 108, + 34, + 44, + 34, + 108, + 97, + 97, + 116, + 115, + 116, + 101, + 66, + 101, + 116, + 97, + 97, + 108, + 100, + 97, + 116, + 117, + 109, + 34, + 58, + 34, + 50, + 48, + 49, + 57, + 45, + 48, + 49, + 45, + 48, + 49, + 34, + 44, + 34, + 104, + 111, + 111, + 102, + 100, + 122, + 97, + 97, + 107, + 34, + 58, + 110, + 117, + 108, + 108, + 125 + ] + }, + "cookie": [], + "responseTime": 185, + "responseSize": 787 + }, + "id": "38b78d20-a047-417e-8179-6b8cc3f6faa3", + "assertions": [ + { + "assertion": "Zaak bijwerken met verlenging null geeft 200", + "skipped": false + } + ] + }, + { + "cursor": { + "ref": "8432ffcb-e247-4571-ba28-5750050f9aba", + "length": 313, + "cycles": 1, + "position": 156, + "iteration": 0, + "httpRequestId": "ffdbf760-97e2-48a7-9be1-c4372cf8832a" + }, + "item": { + "id": "9f847699-2c51-4422-a51d-39bbf5dbdf62", + "name": "(zrc-012l) Zaak deels bijwerken met verlenging null is mogelijk", + "request": { + "url": { + "host": [ + "{{created_zaak_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Accept-Crs", + "value": "EPSG:4326" + }, + { + "key": "Content-Crs", + "value": "EPSG:4326" + } + ], + "method": "PATCH", + "body": { + "mode": "raw", + "raw": "{\n\t\"verlenging\": null\n}" + } + }, + "response": [], + "event": [ + { + "listen": "prerequest", + "script": { + "id": "d553322b-461b-4730-9605-95bb5448428d", + "type": "text/javascript", + "packages": {}, + "exec": [ + "" + ], + "_lastExecutionId": "3eeadadf-b0f3-4ded-b198-f84df1e838d3" + } + }, + { + "listen": "test", + "script": { + "id": "445b8437-21c3-4b92-81e6-dc39638c259a", + "type": "text/javascript", + "packages": {}, + "exec": [ + "pm.test(\"Zaak deels bijwerken met verlenging null geeft 200\", function() {", + " pm.response.to.have.status(200);", + "});", + "", + "" + ], + "_lastExecutionId": "6d559ce4-5be5-4541-9f3d-c7fcaeb45c4c" + } + } + ] + }, + "request": { + "url": { + "protocol": "http", + "port": "8080", + "path": [ + "index.php", + "apps", + "procest", + "api", + "zgw", + "zaken", + "v1", + "zaken", + "eec78d87-3c4b-4fff-8010-8bed9200c4d7" + ], + "host": [ + "localhost" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Accept-Crs", + "value": "EPSG:4326" + }, + { + "key": "Content-Crs", + "value": "EPSG:4326" + }, + { + "key": "Authorization", + "value": "Bearer eyJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJwcm9jZXN0LWFkbWluIiwiY2xpZW50X2lkIjoicHJvY2VzdC1hZG1pbiIsImlhdCI6IjE3NzMxNDUxNzgiLCJ1c2VyX2lkIjoicHJvY2VzdC1hZG1pbiIsInVzZXJfcmVwcmVzZW50YXRpb24iOiIifQ.6S-kwKJoWT6RtgCvJgIgwFESk3kmIIRVzrRl3f3tjMg", + "system": true + }, + { + "key": "User-Agent", + "value": "PostmanRuntime/7.39.1", + "system": true + }, + { + "key": "Accept", + "value": "*/*", + "system": true + }, + { + "key": "Cache-Control", + "value": "no-cache", + "system": true + }, + { + "key": "Postman-Token", + "value": "6e5b3094-8f25-4847-874a-0e3685166688", + "system": true + }, + { + "key": "Host", + "value": "localhost:8080", + "system": true + }, + { + "key": "Accept-Encoding", + "value": "gzip, deflate, br", + "system": true + }, + { + "key": "Connection", + "value": "keep-alive", + "system": true + }, + { + "key": "Content-Length", + "value": "23", + "system": true + }, + { + "key": "Cookie", + "value": "ocvp3112b4wg=aa7fd996e5e57bdd9a006bf023b03715; oc_sessionPassphrase=LBNdKxRzA0iqoULIruNxDDh2BK3O%2BrCIU8aUmiUcOFvy5Xw1YfjwQNlmBW2IkGwJYtxXh9%2BwDN6vYuGNX07tXzkBtjQJUWTGdzf8AIOUIVxVx5DfyWAQZ7nmYmQv6XSE; nc_sameSiteCookielax=true; nc_sameSiteCookiestrict=true", + "system": true + } + ], + "method": "PATCH", + "body": { + "mode": "raw", + "raw": "{\n\t\"verlenging\": null\n}" + }, + "auth": { + "type": "jwt", + "jwt": [ + { + "type": "string", + "value": "{\r\n \"iss\": \"procest-admin\",\r\n \"client_id\": \"procest-admin\",\r\n \"iat\": \"1773145178\",\r\n \"user_id\": \"procest-admin\",\r\n \"user_representation\": \"\"\r\n}", + "key": "payload" + }, + { + "type": "string", + "value": "procest-admin-secret-key-for-testing", + "key": "secret" + }, + { + "type": "string", + "value": "HS256", + "key": "algorithm" + }, + { + "type": "boolean", + "value": false, + "key": "isSecretBase64Encoded" + }, + { + "type": "string", + "value": "header", + "key": "addTokenTo" + }, + { + "type": "string", + "value": "Bearer", + "key": "headerPrefix" + }, + { + "type": "string", + "value": "token", + "key": "queryParamKey" + }, + { + "type": "string", + "value": "{}", + "key": "header" + } + ] + } + }, + "response": { + "id": "fd6acb3b-9450-46bd-bdae-2c3db72caf87", + "status": "OK", + "code": 200, + "header": [ + { + "key": "Date", + "value": "Tue, 10 Mar 2026 12:19:38 GMT" + }, + { + "key": "Server", + "value": "Apache/2.4.66 (Debian)" + }, + { + "key": "X-Content-Type-Options", + "value": "nosniff" + }, + { + "key": "X-Frame-Options", + "value": "SAMEORIGIN" + }, + { + "key": "X-Permitted-Cross-Domain-Policies", + "value": "none" + }, + { + "key": "X-Robots-Tag", + "value": "noindex, nofollow" + }, + { + "key": "Referrer-Policy", + "value": "no-referrer" + }, + { + "key": "X-Powered-By", + "value": "PHP/8.3.30" + }, + { + "key": "Content-Security-Policy", + "value": "default-src 'none';base-uri 'none';manifest-src 'self';frame-ancestors 'none'" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=aa7fd996e5e57bdd9a006bf023b03715; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=aa7fd996e5e57bdd9a006bf023b03715; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=aa7fd996e5e57bdd9a006bf023b03715; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=aa7fd996e5e57bdd9a006bf023b03715; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=aa7fd996e5e57bdd9a006bf023b03715; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=bbb4449da283fccc02313e4e6fdfe655; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=bbb4449da283fccc02313e4e6fdfe655; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=bbb4449da283fccc02313e4e6fdfe655; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=bbb4449da283fccc02313e4e6fdfe655; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=bbb4449da283fccc02313e4e6fdfe655; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "X-Request-Id", + "value": "hzFk7ZWdTtBT81yvrdB5" + }, + { + "key": "Cache-Control", + "value": "no-cache, no-store, must-revalidate" + }, + { + "key": "Feature-Policy", + "value": "autoplay 'none';camera 'none';fullscreen 'none';geolocation 'none';microphone 'none';payment 'none'" + }, + { + "key": "X-User-Id", + "value": "admin" + }, + { + "key": "Content-Encoding", + "value": "gzip" + }, + { + "key": "Content-Length", + "value": "425" + }, + { + "key": "Keep-Alive", + "value": "timeout=5, max=95" + }, + { + "key": "Connection", + "value": "Keep-Alive" + }, + { + "key": "Content-Type", + "value": "application/json; charset=utf-8" + } + ], + "stream": { + "type": "Buffer", + "data": [ + 123, + 34, + 117, + 114, + 108, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 122, + 97, + 107, + 101, + 110, + 92, + 47, + 118, + 49, + 92, + 47, + 122, + 97, + 107, + 101, + 110, + 92, + 47, + 101, + 101, + 99, + 55, + 56, + 100, + 56, + 55, + 45, + 51, + 99, + 52, + 98, + 45, + 52, + 102, + 102, + 102, + 45, + 56, + 48, + 49, + 48, + 45, + 56, + 98, + 101, + 100, + 57, + 50, + 48, + 48, + 99, + 52, + 100, + 55, + 34, + 44, + 34, + 117, + 117, + 105, + 100, + 34, + 58, + 34, + 101, + 101, + 99, + 55, + 56, + 100, + 56, + 55, + 45, + 51, + 99, + 52, + 98, + 45, + 52, + 102, + 102, + 102, + 45, + 56, + 48, + 49, + 48, + 45, + 56, + 98, + 101, + 100, + 57, + 50, + 48, + 48, + 99, + 52, + 100, + 55, + 34, + 44, + 34, + 105, + 100, + 101, + 110, + 116, + 105, + 102, + 105, + 99, + 97, + 116, + 105, + 101, + 34, + 58, + 34, + 34, + 44, + 34, + 111, + 109, + 115, + 99, + 104, + 114, + 105, + 106, + 118, + 105, + 110, + 103, + 34, + 58, + 34, + 115, + 116, + 114, + 105, + 110, + 103, + 34, + 44, + 34, + 116, + 111, + 101, + 108, + 105, + 99, + 104, + 116, + 105, + 110, + 103, + 34, + 58, + 34, + 115, + 116, + 114, + 105, + 110, + 103, + 34, + 44, + 34, + 122, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 105, + 92, + 47, + 118, + 49, + 92, + 47, + 122, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 110, + 92, + 47, + 54, + 49, + 57, + 100, + 99, + 51, + 101, + 53, + 45, + 53, + 50, + 102, + 49, + 45, + 52, + 50, + 57, + 52, + 45, + 97, + 53, + 54, + 57, + 45, + 102, + 50, + 49, + 100, + 49, + 54, + 102, + 52, + 52, + 56, + 55, + 57, + 34, + 44, + 34, + 114, + 101, + 103, + 105, + 115, + 116, + 114, + 97, + 116, + 105, + 101, + 100, + 97, + 116, + 117, + 109, + 34, + 58, + 34, + 50, + 48, + 50, + 54, + 45, + 48, + 51, + 45, + 49, + 48, + 84, + 49, + 50, + 58, + 49, + 57, + 58, + 51, + 55, + 43, + 48, + 48, + 58, + 48, + 48, + 34, + 44, + 34, + 115, + 116, + 97, + 114, + 116, + 100, + 97, + 116, + 117, + 109, + 34, + 58, + 34, + 50, + 48, + 49, + 57, + 45, + 48, + 52, + 45, + 48, + 57, + 34, + 44, + 34, + 101, + 105, + 110, + 100, + 100, + 97, + 116, + 117, + 109, + 34, + 58, + 110, + 117, + 108, + 108, + 44, + 34, + 101, + 105, + 110, + 100, + 100, + 97, + 116, + 117, + 109, + 71, + 101, + 112, + 108, + 97, + 110, + 100, + 34, + 58, + 34, + 50, + 48, + 49, + 57, + 45, + 48, + 52, + 45, + 50, + 48, + 34, + 44, + 34, + 117, + 105, + 116, + 101, + 114, + 108, + 105, + 106, + 107, + 101, + 69, + 105, + 110, + 100, + 100, + 97, + 116, + 117, + 109, + 65, + 102, + 100, + 111, + 101, + 110, + 105, + 110, + 103, + 34, + 58, + 34, + 50, + 48, + 49, + 57, + 45, + 48, + 52, + 45, + 48, + 57, + 34, + 44, + 34, + 118, + 101, + 114, + 116, + 114, + 111, + 117, + 119, + 101, + 108, + 105, + 106, + 107, + 104, + 101, + 105, + 100, + 97, + 97, + 110, + 100, + 117, + 105, + 100, + 105, + 110, + 103, + 34, + 58, + 34, + 103, + 101, + 104, + 101, + 105, + 109, + 34, + 44, + 34, + 118, + 101, + 114, + 97, + 110, + 116, + 119, + 111, + 111, + 114, + 100, + 101, + 108, + 105, + 106, + 107, + 101, + 79, + 114, + 103, + 97, + 110, + 105, + 115, + 97, + 116, + 105, + 101, + 34, + 58, + 34, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 34, + 44, + 34, + 97, + 114, + 99, + 104, + 105, + 101, + 102, + 110, + 111, + 109, + 105, + 110, + 97, + 116, + 105, + 101, + 34, + 58, + 110, + 117, + 108, + 108, + 44, + 34, + 97, + 114, + 99, + 104, + 105, + 101, + 102, + 97, + 99, + 116, + 105, + 101, + 100, + 97, + 116, + 117, + 109, + 34, + 58, + 110, + 117, + 108, + 108, + 44, + 34, + 97, + 114, + 99, + 104, + 105, + 101, + 102, + 115, + 116, + 97, + 116, + 117, + 115, + 34, + 58, + 34, + 110, + 111, + 103, + 95, + 116, + 101, + 95, + 97, + 114, + 99, + 104, + 105, + 118, + 101, + 114, + 101, + 110, + 34, + 44, + 34, + 98, + 101, + 116, + 97, + 108, + 105, + 110, + 103, + 115, + 105, + 110, + 100, + 105, + 99, + 97, + 116, + 105, + 101, + 34, + 58, + 34, + 103, + 101, + 104, + 101, + 101, + 108, + 34, + 44, + 34, + 108, + 97, + 97, + 116, + 115, + 116, + 101, + 66, + 101, + 116, + 97, + 97, + 108, + 100, + 97, + 116, + 117, + 109, + 34, + 58, + 34, + 50, + 48, + 49, + 57, + 45, + 48, + 49, + 45, + 48, + 49, + 34, + 44, + 34, + 104, + 111, + 111, + 102, + 100, + 122, + 97, + 97, + 107, + 34, + 58, + 110, + 117, + 108, + 108, + 125 + ] + }, + "cookie": [], + "responseTime": 224, + "responseSize": 787 + }, + "id": "9f847699-2c51-4422-a51d-39bbf5dbdf62", + "assertions": [ + { + "assertion": "Zaak deels bijwerken met verlenging null geeft 200", + "skipped": false + } + ] + }, + { + "cursor": { + "ref": "56899c52-358f-420a-91ae-9df74fb62382", + "length": 313, + "cycles": 1, + "position": 157, + "iteration": 0, + "httpRequestId": "41028800-3a43-4e12-973d-54071ee36216" + }, + "item": { + "id": "47bdc162-1743-4ca3-bcd5-e8a35d5e6877", + "name": "(zrc-013a) Valideren hoofdzaak op de Zaak-resource", + "request": { + "url": { + "path": [ + "zaken" + ], + "host": [ + "{{zrc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Accept-Crs", + "value": "EPSG:4326" + }, + { + "key": "Content-Crs", + "value": "EPSG:4326" + }, + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\r\n\r\n \"bronorganisatie\": \"000000000\",\r\n \"omschrijving\": \"string\",\r\n \"toelichting\": \"string\",\r\n \"zaaktype\": \"{{zaaktype_url}}\",\r\n \"registratiedatum\": \"2019-04-09\",\r\n \"verantwoordelijkeOrganisatie\": \"000000000\",\r\n \"startdatum\": \"2019-04-09\",\r\n \"einddatum\": null,\r\n \"einddatumGepland\": \"2019-04-20\",\r\n \"uiterlijkeEinddatumAfdoening\": \"2019-04-09\",\r\n \"publicatiedatum\": \"2019-04-09\",\r\n \"communicatiekanaal\": \"\",\r\n \"productenOfDiensten\": [],\r\n \"vertrouwelijkheidaanduiding\": \"geheim\",\r\n \"betalingsindicatie\": \"geheel\",\r\n \"betalingsindicatieWeergave\": null,\r\n \"laatsteBetaaldatum\": \"2019-01-01T00:00:00Z\",\r\n \"zaakgeometrie\": {\r\n \"type\": \"Point\",\r\n \"coordinates\": [\r\n 53.0,\r\n 5.0\r\n ]\r\n },\r\n \"verlenging\": null,\r\n \"opschorting\": {\r\n \"indicatie\": true,\r\n \"reden\": \"string\"\r\n },\r\n \"selectielijstklasse\": \"https://referentielijsten.roxit.nl/api/v1/resultaten/0fe71ce3-b1e1-48eb-9070-be2756fc71b5\",\r\n \"hoofdzaak\": \"https://catalogi.spt-rx-services.nl/api/v1/zaaktypen/01748f67-c7ec-4ba8-aaf5-5de89257203e\",\r\n \"deelzaken\": [],\r\n \"relevanteAndereZaken\": [],\r\n \"eigenschappen\": [],\r\n \"rollen\": [],\r\n \"status\": null,\r\n \"zaakinformatieobjecten\": [],\r\n \"zaakobjecten\": [],\r\n \"resultaat\": null,\r\n \"kenmerken\": [],\r\n \"archiefnominatie\": null,\r\n \"archiefstatus\": \"nog_te_archiveren\",\r\n \"archiefactiedatum\": null,\r\n \"opdrachtgevendeOrganisatie\": null,\r\n \"processobjectaard\": null,\r\n \"startdatumBewaartermijn\": null,\r\n \"processobject\": null\r\n}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "7b5d97c0-726a-4991-b589-4f3386b7f230", + "type": "text/javascript", + "packages": {}, + "exec": [ + "pm.test(\"Zaak aanmaken met hoofdzaak url die niet wijst naar Zaak-resource geeft 400\", function() {", + " pm.response.to.have.status(400);", + " ", + " // Verify that the 400 is returned for the correct reason", + " var errors = pm.response.json()[\"invalidParams\"][0];", + " pm.expect(errors.name).to.be.equal(\"hoofdzaak\");", + " pm.expect(errors.code).to.be.equal(\"no_match\");", + "});", + "", + "" + ], + "_lastExecutionId": "119e163c-5bd3-4a01-8001-e54b6fc890fb" + } + }, + { + "listen": "prerequest", + "script": { + "id": "fe94d753-a0b9-4ebe-941f-1edfc90a933d", + "type": "text/javascript", + "packages": {}, + "exec": [ + "" + ], + "_lastExecutionId": "4bbc8b0a-95ab-4e42-8349-0c89ee4ddbbd" + } + } + ] + }, + "request": { + "url": { + "protocol": "http", + "port": "8080", + "path": [ + "index.php", + "apps", + "procest", + "api", + "zgw", + "zaken", + "v1", + "zaken" + ], + "host": [ + "localhost" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Accept-Crs", + "value": "EPSG:4326" + }, + { + "key": "Content-Crs", + "value": "EPSG:4326" + }, + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Authorization", + "value": "Bearer eyJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJwcm9jZXN0LWFkbWluIiwiY2xpZW50X2lkIjoicHJvY2VzdC1hZG1pbiIsImlhdCI6IjE3NzMxNDUxNzkiLCJ1c2VyX2lkIjoicHJvY2VzdC1hZG1pbiIsInVzZXJfcmVwcmVzZW50YXRpb24iOiIifQ.f9Pe2Iu61E3QVwXcGo082vnnM1Xh87PbmuqRE9-Dce0", + "system": true + }, + { + "key": "User-Agent", + "value": "PostmanRuntime/7.39.1", + "system": true + }, + { + "key": "Accept", + "value": "*/*", + "system": true + }, + { + "key": "Cache-Control", + "value": "no-cache", + "system": true + }, + { + "key": "Postman-Token", + "value": "20d98378-15d5-4a6c-a54f-c5c086ceb5c6", + "system": true + }, + { + "key": "Host", + "value": "localhost:8080", + "system": true + }, + { + "key": "Accept-Encoding", + "value": "gzip, deflate, br", + "system": true + }, + { + "key": "Connection", + "value": "keep-alive", + "system": true + }, + { + "key": "Content-Length", + "value": "1692", + "system": true + }, + { + "key": "Cookie", + "value": "ocvp3112b4wg=bbb4449da283fccc02313e4e6fdfe655; oc_sessionPassphrase=LBNdKxRzA0iqoULIruNxDDh2BK3O%2BrCIU8aUmiUcOFvy5Xw1YfjwQNlmBW2IkGwJYtxXh9%2BwDN6vYuGNX07tXzkBtjQJUWTGdzf8AIOUIVxVx5DfyWAQZ7nmYmQv6XSE; nc_sameSiteCookielax=true; nc_sameSiteCookiestrict=true", + "system": true + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\r\n\r\n \"bronorganisatie\": \"000000000\",\r\n \"omschrijving\": \"string\",\r\n \"toelichting\": \"string\",\r\n \"zaaktype\": \"http://localhost:8080/index.php/apps/procest/api/zgw/catalogi/v1/zaaktypen/619dc3e5-52f1-4294-a569-f21d16f44879\",\r\n \"registratiedatum\": \"2019-04-09\",\r\n \"verantwoordelijkeOrganisatie\": \"000000000\",\r\n \"startdatum\": \"2019-04-09\",\r\n \"einddatum\": null,\r\n \"einddatumGepland\": \"2019-04-20\",\r\n \"uiterlijkeEinddatumAfdoening\": \"2019-04-09\",\r\n \"publicatiedatum\": \"2019-04-09\",\r\n \"communicatiekanaal\": \"\",\r\n \"productenOfDiensten\": [],\r\n \"vertrouwelijkheidaanduiding\": \"geheim\",\r\n \"betalingsindicatie\": \"geheel\",\r\n \"betalingsindicatieWeergave\": null,\r\n \"laatsteBetaaldatum\": \"2019-01-01T00:00:00Z\",\r\n \"zaakgeometrie\": {\r\n \"type\": \"Point\",\r\n \"coordinates\": [\r\n 53.0,\r\n 5.0\r\n ]\r\n },\r\n \"verlenging\": null,\r\n \"opschorting\": {\r\n \"indicatie\": true,\r\n \"reden\": \"string\"\r\n },\r\n \"selectielijstklasse\": \"https://referentielijsten.roxit.nl/api/v1/resultaten/0fe71ce3-b1e1-48eb-9070-be2756fc71b5\",\r\n \"hoofdzaak\": \"https://catalogi.spt-rx-services.nl/api/v1/zaaktypen/01748f67-c7ec-4ba8-aaf5-5de89257203e\",\r\n \"deelzaken\": [],\r\n \"relevanteAndereZaken\": [],\r\n \"eigenschappen\": [],\r\n \"rollen\": [],\r\n \"status\": null,\r\n \"zaakinformatieobjecten\": [],\r\n \"zaakobjecten\": [],\r\n \"resultaat\": null,\r\n \"kenmerken\": [],\r\n \"archiefnominatie\": null,\r\n \"archiefstatus\": \"nog_te_archiveren\",\r\n \"archiefactiedatum\": null,\r\n \"opdrachtgevendeOrganisatie\": null,\r\n \"processobjectaard\": null,\r\n \"startdatumBewaartermijn\": null,\r\n \"processobject\": null\r\n}" + }, + "auth": { + "type": "jwt", + "jwt": [ + { + "type": "string", + "value": "{\r\n \"iss\": \"procest-admin\",\r\n \"client_id\": \"procest-admin\",\r\n \"iat\": \"1773145179\",\r\n \"user_id\": \"procest-admin\",\r\n \"user_representation\": \"\"\r\n}", + "key": "payload" + }, + { + "type": "string", + "value": "procest-admin-secret-key-for-testing", + "key": "secret" + }, + { + "type": "string", + "value": "HS256", + "key": "algorithm" + }, + { + "type": "boolean", + "value": false, + "key": "isSecretBase64Encoded" + }, + { + "type": "string", + "value": "header", + "key": "addTokenTo" + }, + { + "type": "string", + "value": "Bearer", + "key": "headerPrefix" + }, + { + "type": "string", + "value": "token", + "key": "queryParamKey" + }, + { + "type": "string", + "value": "{}", + "key": "header" + } + ] + } + }, + "response": { + "id": "a3fcd19e-3ea2-4ba1-bafa-f1b48971a964", + "status": "Bad request", + "code": 400, + "header": [ + { + "key": "Date", + "value": "Tue, 10 Mar 2026 12:19:38 GMT" + }, + { + "key": "Server", + "value": "Apache/2.4.66 (Debian)" + }, + { + "key": "X-Content-Type-Options", + "value": "nosniff" + }, + { + "key": "X-Frame-Options", + "value": "SAMEORIGIN" + }, + { + "key": "X-Permitted-Cross-Domain-Policies", + "value": "none" + }, + { + "key": "X-Robots-Tag", + "value": "noindex, nofollow" + }, + { + "key": "Referrer-Policy", + "value": "no-referrer" + }, + { + "key": "X-Powered-By", + "value": "PHP/8.3.30" + }, + { + "key": "Content-Security-Policy", + "value": "default-src 'none';base-uri 'none';manifest-src 'self';frame-ancestors 'none'" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=bbb4449da283fccc02313e4e6fdfe655; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=bbb4449da283fccc02313e4e6fdfe655; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=bbb4449da283fccc02313e4e6fdfe655; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=bbb4449da283fccc02313e4e6fdfe655; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=bbb4449da283fccc02313e4e6fdfe655; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=4364134ea9faec0cdf6bcc4bb621d20a; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=4364134ea9faec0cdf6bcc4bb621d20a; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=4364134ea9faec0cdf6bcc4bb621d20a; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=4364134ea9faec0cdf6bcc4bb621d20a; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=4364134ea9faec0cdf6bcc4bb621d20a; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "X-Request-Id", + "value": "wVn4gmIdRhhKSUOCDnIb" + }, + { + "key": "Cache-Control", + "value": "no-cache, no-store, must-revalidate" + }, + { + "key": "Feature-Policy", + "value": "autoplay 'none';camera 'none';fullscreen 'none';geolocation 'none';microphone 'none';payment 'none'" + }, + { + "key": "X-User-Id", + "value": "admin" + }, + { + "key": "Content-Length", + "value": "160" + }, + { + "key": "Connection", + "value": "close" + }, + { + "key": "Content-Type", + "value": "application/json; charset=utf-8" + } + ], + "stream": { + "type": "Buffer", + "data": [ + 123, + 34, + 100, + 101, + 116, + 97, + 105, + 108, + 34, + 58, + 34, + 68, + 101, + 32, + 104, + 111, + 111, + 102, + 100, + 122, + 97, + 97, + 107, + 32, + 105, + 115, + 32, + 111, + 110, + 103, + 101, + 108, + 100, + 105, + 103, + 46, + 34, + 44, + 34, + 105, + 110, + 118, + 97, + 108, + 105, + 100, + 80, + 97, + 114, + 97, + 109, + 115, + 34, + 58, + 91, + 123, + 34, + 110, + 97, + 109, + 101, + 34, + 58, + 34, + 104, + 111, + 111, + 102, + 100, + 122, + 97, + 97, + 107, + 34, + 44, + 34, + 99, + 111, + 100, + 101, + 34, + 58, + 34, + 110, + 111, + 95, + 109, + 97, + 116, + 99, + 104, + 34, + 44, + 34, + 114, + 101, + 97, + 115, + 111, + 110, + 34, + 58, + 34, + 68, + 101, + 32, + 104, + 111, + 111, + 102, + 100, + 122, + 97, + 97, + 107, + 32, + 85, + 82, + 76, + 32, + 118, + 101, + 114, + 119, + 105, + 106, + 115, + 116, + 32, + 110, + 105, + 101, + 116, + 32, + 110, + 97, + 97, + 114, + 32, + 101, + 101, + 110, + 32, + 98, + 101, + 107, + 101, + 110, + 100, + 101, + 32, + 122, + 97, + 97, + 107, + 46, + 34, + 125, + 93, + 125 + ] + }, + "cookie": [], + "responseTime": 119, + "responseSize": 160 + }, + "id": "47bdc162-1743-4ca3-bcd5-e8a35d5e6877", + "assertions": [ + { + "assertion": "Zaak aanmaken met hoofdzaak url die niet wijst naar Zaak-resource geeft 400", + "skipped": false + } + ] + }, + { + "cursor": { + "ref": "008ca0da-00da-47d7-b02d-4b8fd6bd2d93", + "length": 313, + "cycles": 1, + "position": 158, + "iteration": 0, + "httpRequestId": "45a0f27b-6e4d-4174-8d5f-3cdfe94d7339" + }, + "item": { + "id": "fc224f6d-1ce1-43e3-b5ba-1dafe50f7ee9", + "name": "Create Deelzaak", + "request": { + "url": { + "path": [ + "zaken" + ], + "host": [ + "{{zrc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Accept-Crs", + "value": "EPSG:4326" + }, + { + "key": "Content-Crs", + "value": "EPSG:4326" + }, + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\r\n\r\n \"bronorganisatie\": \"000000000\",\r\n \"omschrijving\": \"string\",\r\n \"toelichting\": \"string\",\r\n \"zaaktype\": \"{{zaaktype_url}}\",\r\n \"registratiedatum\": \"2019-04-09\",\r\n \"verantwoordelijkeOrganisatie\": \"000000000\",\r\n \"startdatum\": \"2019-04-09\",\r\n \"einddatum\": null,\r\n \"einddatumGepland\": \"2019-04-20\",\r\n \"uiterlijkeEinddatumAfdoening\": \"2019-04-09\",\r\n \"publicatiedatum\": \"2019-04-09\",\r\n \"communicatiekanaal\": \"\",\r\n \"productenOfDiensten\": [],\r\n \"vertrouwelijkheidaanduiding\": \"geheim\",\r\n \"betalingsindicatie\": \"geheel\",\r\n \"betalingsindicatieWeergave\": null,\r\n \"laatsteBetaaldatum\": \"2019-01-01T00:00:00Z\",\r\n \"zaakgeometrie\": {\r\n \"type\": \"Point\",\r\n \"coordinates\": [\r\n 53.0,\r\n 5.0\r\n ]\r\n },\r\n \"verlenging\": null,\r\n \"opschorting\": {\r\n \"indicatie\": true,\r\n \"reden\": \"string\"\r\n },\r\n \"selectielijstklasse\": \"https://referentielijsten.roxit.nl/api/v1/resultaten/0fe71ce3-b1e1-48eb-9070-be2756fc71b5\",\r\n \"hoofdzaak\": \"{{zaak_url}}\",\r\n \"deelzaken\": [],\r\n \"relevanteAndereZaken\": [],\r\n \"eigenschappen\": [],\r\n \"rollen\": [],\r\n \"status\": null,\r\n \"zaakinformatieobjecten\": [],\r\n \"zaakobjecten\": [],\r\n \"resultaat\": null,\r\n \"kenmerken\": [],\r\n \"archiefnominatie\": null,\r\n \"archiefstatus\": \"nog_te_archiveren\",\r\n \"archiefactiedatum\": null,\r\n \"opdrachtgevendeOrganisatie\": null,\r\n \"processobjectaard\": null,\r\n \"startdatumBewaartermijn\": null,\r\n \"processobject\": null\r\n}" + } + }, + "response": [], + "event": [ + { + "listen": "prerequest", + "script": { + "id": "6fa94dd5-3dd6-47b1-a681-13000b6bab04", + "type": "text/javascript", + "packages": {}, + "exec": [ + "" + ], + "_lastExecutionId": "8b5446c6-8fc3-4adc-844e-4baf8a08192c" + } + }, + { + "listen": "test", + "script": { + "id": "473cea68-241b-4bb9-9fcd-f22336e03d09", + "type": "text/javascript", + "packages": {}, + "exec": [ + "pm.environment.set(\"created_zaak_url\", pm.response.json().url);" + ], + "_lastExecutionId": "f1aa0c71-59f4-4bf2-a5c5-57364829af2e" + } + } + ] + }, + "request": { + "url": { + "protocol": "http", + "port": "8080", + "path": [ + "index.php", + "apps", + "procest", + "api", + "zgw", + "zaken", + "v1", + "zaken" + ], + "host": [ + "localhost" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Accept-Crs", + "value": "EPSG:4326" + }, + { + "key": "Content-Crs", + "value": "EPSG:4326" + }, + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Authorization", + "value": "Bearer eyJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJwcm9jZXN0LWFkbWluIiwiY2xpZW50X2lkIjoicHJvY2VzdC1hZG1pbiIsImlhdCI6IjE3NzMxNDUxNzkiLCJ1c2VyX2lkIjoicHJvY2VzdC1hZG1pbiIsInVzZXJfcmVwcmVzZW50YXRpb24iOiIifQ.f9Pe2Iu61E3QVwXcGo082vnnM1Xh87PbmuqRE9-Dce0", + "system": true + }, + { + "key": "User-Agent", + "value": "PostmanRuntime/7.39.1", + "system": true + }, + { + "key": "Accept", + "value": "*/*", + "system": true + }, + { + "key": "Cache-Control", + "value": "no-cache", + "system": true + }, + { + "key": "Postman-Token", + "value": "3b60d4e9-a56e-4424-be40-93843ddf3715", + "system": true + }, + { + "key": "Host", + "value": "localhost:8080", + "system": true + }, + { + "key": "Accept-Encoding", + "value": "gzip, deflate, br", + "system": true + }, + { + "key": "Connection", + "value": "keep-alive", + "system": true + }, + { + "key": "Content-Length", + "value": "1707", + "system": true + }, + { + "key": "Cookie", + "value": "ocvp3112b4wg=4364134ea9faec0cdf6bcc4bb621d20a; oc_sessionPassphrase=LBNdKxRzA0iqoULIruNxDDh2BK3O%2BrCIU8aUmiUcOFvy5Xw1YfjwQNlmBW2IkGwJYtxXh9%2BwDN6vYuGNX07tXzkBtjQJUWTGdzf8AIOUIVxVx5DfyWAQZ7nmYmQv6XSE; nc_sameSiteCookielax=true; nc_sameSiteCookiestrict=true", + "system": true + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\r\n\r\n \"bronorganisatie\": \"000000000\",\r\n \"omschrijving\": \"string\",\r\n \"toelichting\": \"string\",\r\n \"zaaktype\": \"http://localhost:8080/index.php/apps/procest/api/zgw/catalogi/v1/zaaktypen/619dc3e5-52f1-4294-a569-f21d16f44879\",\r\n \"registratiedatum\": \"2019-04-09\",\r\n \"verantwoordelijkeOrganisatie\": \"000000000\",\r\n \"startdatum\": \"2019-04-09\",\r\n \"einddatum\": null,\r\n \"einddatumGepland\": \"2019-04-20\",\r\n \"uiterlijkeEinddatumAfdoening\": \"2019-04-09\",\r\n \"publicatiedatum\": \"2019-04-09\",\r\n \"communicatiekanaal\": \"\",\r\n \"productenOfDiensten\": [],\r\n \"vertrouwelijkheidaanduiding\": \"geheim\",\r\n \"betalingsindicatie\": \"geheel\",\r\n \"betalingsindicatieWeergave\": null,\r\n \"laatsteBetaaldatum\": \"2019-01-01T00:00:00Z\",\r\n \"zaakgeometrie\": {\r\n \"type\": \"Point\",\r\n \"coordinates\": [\r\n 53.0,\r\n 5.0\r\n ]\r\n },\r\n \"verlenging\": null,\r\n \"opschorting\": {\r\n \"indicatie\": true,\r\n \"reden\": \"string\"\r\n },\r\n \"selectielijstklasse\": \"https://referentielijsten.roxit.nl/api/v1/resultaten/0fe71ce3-b1e1-48eb-9070-be2756fc71b5\",\r\n \"hoofdzaak\": \"http://localhost:8080/index.php/apps/procest/api/zgw/zaken/v1/zaken/1ea85620-912a-4a68-b62e-65570c1dfdfa\",\r\n \"deelzaken\": [],\r\n \"relevanteAndereZaken\": [],\r\n \"eigenschappen\": [],\r\n \"rollen\": [],\r\n \"status\": null,\r\n \"zaakinformatieobjecten\": [],\r\n \"zaakobjecten\": [],\r\n \"resultaat\": null,\r\n \"kenmerken\": [],\r\n \"archiefnominatie\": null,\r\n \"archiefstatus\": \"nog_te_archiveren\",\r\n \"archiefactiedatum\": null,\r\n \"opdrachtgevendeOrganisatie\": null,\r\n \"processobjectaard\": null,\r\n \"startdatumBewaartermijn\": null,\r\n \"processobject\": null\r\n}" + }, + "auth": { + "type": "jwt", + "jwt": [ + { + "type": "string", + "value": "{\r\n \"iss\": \"procest-admin\",\r\n \"client_id\": \"procest-admin\",\r\n \"iat\": \"1773145179\",\r\n \"user_id\": \"procest-admin\",\r\n \"user_representation\": \"\"\r\n}", + "key": "payload" + }, + { + "type": "string", + "value": "procest-admin-secret-key-for-testing", + "key": "secret" + }, + { + "type": "string", + "value": "HS256", + "key": "algorithm" + }, + { + "type": "boolean", + "value": false, + "key": "isSecretBase64Encoded" + }, + { + "type": "string", + "value": "header", + "key": "addTokenTo" + }, + { + "type": "string", + "value": "Bearer", + "key": "headerPrefix" + }, + { + "type": "string", + "value": "token", + "key": "queryParamKey" + }, + { + "type": "string", + "value": "{}", + "key": "header" + } + ] + } + }, + "response": { + "id": "5fe68bd0-0c04-4290-9cd6-170c2b35c4ca", + "status": "Created", + "code": 201, + "header": [ + { + "key": "Date", + "value": "Tue, 10 Mar 2026 12:19:38 GMT" + }, + { + "key": "Server", + "value": "Apache/2.4.66 (Debian)" + }, + { + "key": "X-Content-Type-Options", + "value": "nosniff" + }, + { + "key": "X-Frame-Options", + "value": "SAMEORIGIN" + }, + { + "key": "X-Permitted-Cross-Domain-Policies", + "value": "none" + }, + { + "key": "X-Robots-Tag", + "value": "noindex, nofollow" + }, + { + "key": "Referrer-Policy", + "value": "no-referrer" + }, + { + "key": "X-Powered-By", + "value": "PHP/8.3.30" + }, + { + "key": "Content-Security-Policy", + "value": "default-src 'none';base-uri 'none';manifest-src 'self';frame-ancestors 'none'" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=4364134ea9faec0cdf6bcc4bb621d20a; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=4364134ea9faec0cdf6bcc4bb621d20a; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=4364134ea9faec0cdf6bcc4bb621d20a; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=4364134ea9faec0cdf6bcc4bb621d20a; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=4364134ea9faec0cdf6bcc4bb621d20a; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=6ee96da8ce0ad5163c67173cd289bfe2; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=6ee96da8ce0ad5163c67173cd289bfe2; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=6ee96da8ce0ad5163c67173cd289bfe2; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=6ee96da8ce0ad5163c67173cd289bfe2; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=6ee96da8ce0ad5163c67173cd289bfe2; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "X-Request-Id", + "value": "k6BLSNR6l3lVzEUfa4HI" + }, + { + "key": "Cache-Control", + "value": "no-cache, no-store, must-revalidate" + }, + { + "key": "Feature-Policy", + "value": "autoplay 'none';camera 'none';fullscreen 'none';geolocation 'none';microphone 'none';payment 'none'" + }, + { + "key": "X-User-Id", + "value": "admin" + }, + { + "key": "Content-Length", + "value": "918" + }, + { + "key": "Keep-Alive", + "value": "timeout=5, max=100" + }, + { + "key": "Connection", + "value": "Keep-Alive" + }, + { + "key": "Content-Type", + "value": "application/json; charset=utf-8" + } + ], + "stream": { + "type": "Buffer", + "data": [ + 123, + 34, + 117, + 114, + 108, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 122, + 97, + 107, + 101, + 110, + 92, + 47, + 118, + 49, + 92, + 47, + 122, + 97, + 107, + 101, + 110, + 92, + 47, + 57, + 49, + 99, + 97, + 51, + 98, + 49, + 49, + 45, + 100, + 52, + 55, + 49, + 45, + 52, + 56, + 49, + 98, + 45, + 57, + 97, + 98, + 49, + 45, + 56, + 48, + 98, + 56, + 101, + 99, + 102, + 57, + 102, + 97, + 102, + 98, + 34, + 44, + 34, + 117, + 117, + 105, + 100, + 34, + 58, + 34, + 57, + 49, + 99, + 97, + 51, + 98, + 49, + 49, + 45, + 100, + 52, + 55, + 49, + 45, + 52, + 56, + 49, + 98, + 45, + 57, + 97, + 98, + 49, + 45, + 56, + 48, + 98, + 56, + 101, + 99, + 102, + 57, + 102, + 97, + 102, + 98, + 34, + 44, + 34, + 105, + 100, + 101, + 110, + 116, + 105, + 102, + 105, + 99, + 97, + 116, + 105, + 101, + 34, + 58, + 34, + 90, + 65, + 65, + 75, + 45, + 84, + 66, + 79, + 78, + 75, + 81, + 45, + 53, + 69, + 48, + 69, + 65, + 53, + 34, + 44, + 34, + 111, + 109, + 115, + 99, + 104, + 114, + 105, + 106, + 118, + 105, + 110, + 103, + 34, + 58, + 34, + 115, + 116, + 114, + 105, + 110, + 103, + 34, + 44, + 34, + 116, + 111, + 101, + 108, + 105, + 99, + 104, + 116, + 105, + 110, + 103, + 34, + 58, + 34, + 115, + 116, + 114, + 105, + 110, + 103, + 34, + 44, + 34, + 122, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 105, + 92, + 47, + 118, + 49, + 92, + 47, + 122, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 110, + 92, + 47, + 54, + 49, + 57, + 100, + 99, + 51, + 101, + 53, + 45, + 53, + 50, + 102, + 49, + 45, + 52, + 50, + 57, + 52, + 45, + 97, + 53, + 54, + 57, + 45, + 102, + 50, + 49, + 100, + 49, + 54, + 102, + 52, + 52, + 56, + 55, + 57, + 34, + 44, + 34, + 114, + 101, + 103, + 105, + 115, + 116, + 114, + 97, + 116, + 105, + 101, + 100, + 97, + 116, + 117, + 109, + 34, + 58, + 34, + 50, + 48, + 50, + 54, + 45, + 48, + 51, + 45, + 49, + 48, + 84, + 49, + 50, + 58, + 49, + 57, + 58, + 51, + 56, + 43, + 48, + 48, + 58, + 48, + 48, + 34, + 44, + 34, + 115, + 116, + 97, + 114, + 116, + 100, + 97, + 116, + 117, + 109, + 34, + 58, + 34, + 50, + 48, + 49, + 57, + 45, + 48, + 52, + 45, + 48, + 57, + 34, + 44, + 34, + 101, + 105, + 110, + 100, + 100, + 97, + 116, + 117, + 109, + 34, + 58, + 110, + 117, + 108, + 108, + 44, + 34, + 101, + 105, + 110, + 100, + 100, + 97, + 116, + 117, + 109, + 71, + 101, + 112, + 108, + 97, + 110, + 100, + 34, + 58, + 34, + 50, + 48, + 49, + 57, + 45, + 48, + 52, + 45, + 50, + 48, + 34, + 44, + 34, + 117, + 105, + 116, + 101, + 114, + 108, + 105, + 106, + 107, + 101, + 69, + 105, + 110, + 100, + 100, + 97, + 116, + 117, + 109, + 65, + 102, + 100, + 111, + 101, + 110, + 105, + 110, + 103, + 34, + 58, + 34, + 50, + 48, + 49, + 57, + 45, + 48, + 52, + 45, + 48, + 57, + 34, + 44, + 34, + 118, + 101, + 114, + 116, + 114, + 111, + 117, + 119, + 101, + 108, + 105, + 106, + 107, + 104, + 101, + 105, + 100, + 97, + 97, + 110, + 100, + 117, + 105, + 100, + 105, + 110, + 103, + 34, + 58, + 34, + 103, + 101, + 104, + 101, + 105, + 109, + 34, + 44, + 34, + 118, + 101, + 114, + 97, + 110, + 116, + 119, + 111, + 111, + 114, + 100, + 101, + 108, + 105, + 106, + 107, + 101, + 79, + 114, + 103, + 97, + 110, + 105, + 115, + 97, + 116, + 105, + 101, + 34, + 58, + 34, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 34, + 44, + 34, + 97, + 114, + 99, + 104, + 105, + 101, + 102, + 110, + 111, + 109, + 105, + 110, + 97, + 116, + 105, + 101, + 34, + 58, + 110, + 117, + 108, + 108, + 44, + 34, + 97, + 114, + 99, + 104, + 105, + 101, + 102, + 97, + 99, + 116, + 105, + 101, + 100, + 97, + 116, + 117, + 109, + 34, + 58, + 110, + 117, + 108, + 108, + 44, + 34, + 97, + 114, + 99, + 104, + 105, + 101, + 102, + 115, + 116, + 97, + 116, + 117, + 115, + 34, + 58, + 34, + 110, + 111, + 103, + 95, + 116, + 101, + 95, + 97, + 114, + 99, + 104, + 105, + 118, + 101, + 114, + 101, + 110, + 34, + 44, + 34, + 98, + 101, + 116, + 97, + 108, + 105, + 110, + 103, + 115, + 105, + 110, + 100, + 105, + 99, + 97, + 116, + 105, + 101, + 34, + 58, + 34, + 103, + 101, + 104, + 101, + 101, + 108, + 34, + 44, + 34, + 108, + 97, + 97, + 116, + 115, + 116, + 101, + 66, + 101, + 116, + 97, + 97, + 108, + 100, + 97, + 116, + 117, + 109, + 34, + 58, + 34, + 50, + 48, + 49, + 57, + 45, + 48, + 49, + 45, + 48, + 49, + 34, + 44, + 34, + 104, + 111, + 111, + 102, + 100, + 122, + 97, + 97, + 107, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 122, + 97, + 107, + 101, + 110, + 92, + 47, + 118, + 49, + 92, + 47, + 122, + 97, + 107, + 101, + 110, + 92, + 47, + 49, + 101, + 97, + 56, + 53, + 54, + 50, + 48, + 45, + 57, + 49, + 50, + 97, + 45, + 52, + 97, + 54, + 56, + 45, + 98, + 54, + 50, + 101, + 45, + 54, + 53, + 53, + 55, + 48, + 99, + 49, + 100, + 102, + 100, + 102, + 97, + 34, + 125 + ] + }, + "cookie": [], + "responseTime": 250, + "responseSize": 918 + }, + "id": "fc224f6d-1ce1-43e3-b5ba-1dafe50f7ee9" + }, + { + "cursor": { + "ref": "7cb70aa3-dff9-452e-86b8-002511d47571", + "length": 313, + "cycles": 1, + "position": 159, + "iteration": 0, + "httpRequestId": "785ca9db-5ac4-4600-b3e3-dd623c0c1ebc" + }, + "item": { + "id": "62f8ea3c-6dbe-4827-beb6-609762fea768", + "name": "(zrc-013c) Valideren deelzaak mag geen deelzaak hebben", + "request": { + "url": { + "host": [ + "{{zaak_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Accept-Crs", + "value": "EPSG:4326" + }, + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Content-Crs", + "value": "EPSG:4326" + } + ], + "method": "PUT", + "body": { + "mode": "raw", + "raw": "{\r\n\r\n \"bronorganisatie\": \"000000000\",\r\n \"omschrijving\": \"string\",\r\n \"toelichting\": \"string\",\r\n \"zaaktype\": \"{{zaaktype_url}}\",\r\n \"registratiedatum\": \"2019-04-09\",\r\n \"verantwoordelijkeOrganisatie\": \"000000000\",\r\n \"startdatum\": \"2019-04-09\",\r\n \"einddatum\": null,\r\n \"einddatumGepland\": \"2019-04-20\",\r\n \"uiterlijkeEinddatumAfdoening\": \"2019-04-09\",\r\n \"publicatiedatum\": \"2019-04-09\",\r\n \"communicatiekanaal\": \"\",\r\n \"productenOfDiensten\": [],\r\n \"vertrouwelijkheidaanduiding\": \"geheim\",\r\n \"betalingsindicatie\": \"geheel\",\r\n \"betalingsindicatieWeergave\": null,\r\n \"laatsteBetaaldatum\": \"2019-01-01T00:00:00Z\",\r\n \"zaakgeometrie\": {\r\n \"type\": \"Point\",\r\n \"coordinates\": [\r\n 53.0,\r\n 5.0\r\n ]\r\n },\r\n \"verlenging\": null,\r\n \"opschorting\": {\r\n \"indicatie\": true,\r\n \"reden\": \"string\"\r\n },\r\n \"selectielijstklasse\": \"https://referentielijsten.roxit.nl/api/v1/resultaten/0fe71ce3-b1e1-48eb-9070-be2756fc71b5\",\r\n \"hoofdzaak\": \"{{created_zaak_url}}\",\r\n \"deelzaken\": [],\r\n \"relevanteAndereZaken\": [],\r\n \"eigenschappen\": [],\r\n \"rollen\": [],\r\n \"status\": null,\r\n \"zaakinformatieobjecten\": [],\r\n \"zaakobjecten\": [],\r\n \"resultaat\": null,\r\n \"kenmerken\": [],\r\n \"archiefnominatie\": null,\r\n \"archiefstatus\": \"nog_te_archiveren\",\r\n \"archiefactiedatum\": null,\r\n \"opdrachtgevendeOrganisatie\": null,\r\n \"processobjectaard\": null,\r\n \"startdatumBewaartermijn\": null,\r\n \"processobject\": null\r\n}" + } + }, + "response": [], + "event": [ + { + "listen": "prerequest", + "script": { + "id": "fe0da4bf-2bb4-42f7-9f0a-07d67354e7b3", + "type": "text/javascript", + "packages": {}, + "exec": [ + "" + ], + "_lastExecutionId": "6ae7d403-eff4-40b6-ad6d-e95c2d6314ed" + } + }, + { + "listen": "test", + "script": { + "id": "8967df7b-981d-44b3-b791-09e80f6ee00f", + "type": "text/javascript", + "packages": {}, + "exec": [ + "pm.test(\"Zaak bijwerken met hoofdzaak url die wijst naar de zaak zelf geeft 400\", function(){", + " pm.response.to.have.status(400);", + " ", + " // Verify that the 400 is returned for the correct reason", + " var errors = pm.response.json()[\"invalidParams\"][0];", + " pm.expect(errors.name).to.be.equal(\"hoofdzaak\");", + " pm.expect(errors.code).to.be.equal(\"deelzaak-als-hoofdzaak\");", + "});" + ], + "_lastExecutionId": "b2ecde6a-a442-4a7f-ad6f-f8a2c07c53d4" + } + } + ] + }, + "request": { + "url": { + "protocol": "http", + "port": "8080", + "path": [ + "index.php", + "apps", + "procest", + "api", + "zgw", + "zaken", + "v1", + "zaken", + "1ea85620-912a-4a68-b62e-65570c1dfdfa" + ], + "host": [ + "localhost" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Accept-Crs", + "value": "EPSG:4326" + }, + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Content-Crs", + "value": "EPSG:4326" + }, + { + "key": "Authorization", + "value": "Bearer eyJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJwcm9jZXN0LWFkbWluIiwiY2xpZW50X2lkIjoicHJvY2VzdC1hZG1pbiIsImlhdCI6IjE3NzMxNDUxNzkiLCJ1c2VyX2lkIjoicHJvY2VzdC1hZG1pbiIsInVzZXJfcmVwcmVzZW50YXRpb24iOiIifQ.f9Pe2Iu61E3QVwXcGo082vnnM1Xh87PbmuqRE9-Dce0", + "system": true + }, + { + "key": "User-Agent", + "value": "PostmanRuntime/7.39.1", + "system": true + }, + { + "key": "Accept", + "value": "*/*", + "system": true + }, + { + "key": "Cache-Control", + "value": "no-cache", + "system": true + }, + { + "key": "Postman-Token", + "value": "4d0a1a31-c271-4541-885d-b3cd46af5a5b", + "system": true + }, + { + "key": "Host", + "value": "localhost:8080", + "system": true + }, + { + "key": "Accept-Encoding", + "value": "gzip, deflate, br", + "system": true + }, + { + "key": "Connection", + "value": "keep-alive", + "system": true + }, + { + "key": "Content-Length", + "value": "1707", + "system": true + }, + { + "key": "Cookie", + "value": "ocvp3112b4wg=6ee96da8ce0ad5163c67173cd289bfe2; oc_sessionPassphrase=LBNdKxRzA0iqoULIruNxDDh2BK3O%2BrCIU8aUmiUcOFvy5Xw1YfjwQNlmBW2IkGwJYtxXh9%2BwDN6vYuGNX07tXzkBtjQJUWTGdzf8AIOUIVxVx5DfyWAQZ7nmYmQv6XSE; nc_sameSiteCookielax=true; nc_sameSiteCookiestrict=true", + "system": true + } + ], + "method": "PUT", + "body": { + "mode": "raw", + "raw": "{\r\n\r\n \"bronorganisatie\": \"000000000\",\r\n \"omschrijving\": \"string\",\r\n \"toelichting\": \"string\",\r\n \"zaaktype\": \"http://localhost:8080/index.php/apps/procest/api/zgw/catalogi/v1/zaaktypen/619dc3e5-52f1-4294-a569-f21d16f44879\",\r\n \"registratiedatum\": \"2019-04-09\",\r\n \"verantwoordelijkeOrganisatie\": \"000000000\",\r\n \"startdatum\": \"2019-04-09\",\r\n \"einddatum\": null,\r\n \"einddatumGepland\": \"2019-04-20\",\r\n \"uiterlijkeEinddatumAfdoening\": \"2019-04-09\",\r\n \"publicatiedatum\": \"2019-04-09\",\r\n \"communicatiekanaal\": \"\",\r\n \"productenOfDiensten\": [],\r\n \"vertrouwelijkheidaanduiding\": \"geheim\",\r\n \"betalingsindicatie\": \"geheel\",\r\n \"betalingsindicatieWeergave\": null,\r\n \"laatsteBetaaldatum\": \"2019-01-01T00:00:00Z\",\r\n \"zaakgeometrie\": {\r\n \"type\": \"Point\",\r\n \"coordinates\": [\r\n 53.0,\r\n 5.0\r\n ]\r\n },\r\n \"verlenging\": null,\r\n \"opschorting\": {\r\n \"indicatie\": true,\r\n \"reden\": \"string\"\r\n },\r\n \"selectielijstklasse\": \"https://referentielijsten.roxit.nl/api/v1/resultaten/0fe71ce3-b1e1-48eb-9070-be2756fc71b5\",\r\n \"hoofdzaak\": \"http://localhost:8080/index.php/apps/procest/api/zgw/zaken/v1/zaken/91ca3b11-d471-481b-9ab1-80b8ecf9fafb\",\r\n \"deelzaken\": [],\r\n \"relevanteAndereZaken\": [],\r\n \"eigenschappen\": [],\r\n \"rollen\": [],\r\n \"status\": null,\r\n \"zaakinformatieobjecten\": [],\r\n \"zaakobjecten\": [],\r\n \"resultaat\": null,\r\n \"kenmerken\": [],\r\n \"archiefnominatie\": null,\r\n \"archiefstatus\": \"nog_te_archiveren\",\r\n \"archiefactiedatum\": null,\r\n \"opdrachtgevendeOrganisatie\": null,\r\n \"processobjectaard\": null,\r\n \"startdatumBewaartermijn\": null,\r\n \"processobject\": null\r\n}" + }, + "auth": { + "type": "jwt", + "jwt": [ + { + "type": "string", + "value": "{\r\n \"iss\": \"procest-admin\",\r\n \"client_id\": \"procest-admin\",\r\n \"iat\": \"1773145179\",\r\n \"user_id\": \"procest-admin\",\r\n \"user_representation\": \"\"\r\n}", + "key": "payload" + }, + { + "type": "string", + "value": "procest-admin-secret-key-for-testing", + "key": "secret" + }, + { + "type": "string", + "value": "HS256", + "key": "algorithm" + }, + { + "type": "boolean", + "value": false, + "key": "isSecretBase64Encoded" + }, + { + "type": "string", + "value": "header", + "key": "addTokenTo" + }, + { + "type": "string", + "value": "Bearer", + "key": "headerPrefix" + }, + { + "type": "string", + "value": "token", + "key": "queryParamKey" + }, + { + "type": "string", + "value": "{}", + "key": "header" + } + ] + } + }, + "response": { + "id": "82f5f8dc-4b59-4175-99e4-c1a7a924b2e6", + "status": "Bad request", + "code": 400, + "header": [ + { + "key": "Date", + "value": "Tue, 10 Mar 2026 12:19:39 GMT" + }, + { + "key": "Server", + "value": "Apache/2.4.66 (Debian)" + }, + { + "key": "X-Content-Type-Options", + "value": "nosniff" + }, + { + "key": "X-Frame-Options", + "value": "SAMEORIGIN" + }, + { + "key": "X-Permitted-Cross-Domain-Policies", + "value": "none" + }, + { + "key": "X-Robots-Tag", + "value": "noindex, nofollow" + }, + { + "key": "Referrer-Policy", + "value": "no-referrer" + }, + { + "key": "X-Powered-By", + "value": "PHP/8.3.30" + }, + { + "key": "Content-Security-Policy", + "value": "default-src 'none';base-uri 'none';manifest-src 'self';frame-ancestors 'none'" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=6ee96da8ce0ad5163c67173cd289bfe2; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=6ee96da8ce0ad5163c67173cd289bfe2; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=6ee96da8ce0ad5163c67173cd289bfe2; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=6ee96da8ce0ad5163c67173cd289bfe2; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=6ee96da8ce0ad5163c67173cd289bfe2; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=b7068b9a167df5007c6f75debacb82d9; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=b7068b9a167df5007c6f75debacb82d9; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=b7068b9a167df5007c6f75debacb82d9; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=b7068b9a167df5007c6f75debacb82d9; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=b7068b9a167df5007c6f75debacb82d9; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "X-Request-Id", + "value": "EPPmjLw90UgIJ2DLADrr" + }, + { + "key": "Cache-Control", + "value": "no-cache, no-store, must-revalidate" + }, + { + "key": "Feature-Policy", + "value": "autoplay 'none';camera 'none';fullscreen 'none';geolocation 'none';microphone 'none';payment 'none'" + }, + { + "key": "X-User-Id", + "value": "admin" + }, + { + "key": "Content-Length", + "value": "189" + }, + { + "key": "Connection", + "value": "close" + }, + { + "key": "Content-Type", + "value": "application/json; charset=utf-8" + } + ], + "stream": { + "type": "Buffer", + "data": [ + 123, + 34, + 100, + 101, + 116, + 97, + 105, + 108, + 34, + 58, + 34, + 69, + 101, + 110, + 32, + 100, + 101, + 101, + 108, + 122, + 97, + 97, + 107, + 32, + 118, + 97, + 110, + 32, + 101, + 101, + 110, + 32, + 100, + 101, + 101, + 108, + 122, + 97, + 97, + 107, + 32, + 105, + 115, + 32, + 110, + 105, + 101, + 116, + 32, + 116, + 111, + 101, + 103, + 101, + 115, + 116, + 97, + 97, + 110, + 46, + 34, + 44, + 34, + 105, + 110, + 118, + 97, + 108, + 105, + 100, + 80, + 97, + 114, + 97, + 109, + 115, + 34, + 58, + 91, + 123, + 34, + 110, + 97, + 109, + 101, + 34, + 58, + 34, + 104, + 111, + 111, + 102, + 100, + 122, + 97, + 97, + 107, + 34, + 44, + 34, + 99, + 111, + 100, + 101, + 34, + 58, + 34, + 100, + 101, + 101, + 108, + 122, + 97, + 97, + 107, + 45, + 97, + 108, + 115, + 45, + 104, + 111, + 111, + 102, + 100, + 122, + 97, + 97, + 107, + 34, + 44, + 34, + 114, + 101, + 97, + 115, + 111, + 110, + 34, + 58, + 34, + 68, + 101, + 32, + 111, + 112, + 103, + 101, + 103, + 101, + 118, + 101, + 110, + 32, + 104, + 111, + 111, + 102, + 100, + 122, + 97, + 97, + 107, + 32, + 105, + 115, + 32, + 122, + 101, + 108, + 102, + 32, + 101, + 101, + 110, + 32, + 100, + 101, + 101, + 108, + 122, + 97, + 97, + 107, + 46, + 34, + 125, + 93, + 125 + ] + }, + "cookie": [], + "responseTime": 258, + "responseSize": 189 + }, + "id": "62f8ea3c-6dbe-4827-beb6-609762fea768", + "assertions": [ + { + "assertion": "Zaak bijwerken met hoofdzaak url die wijst naar de zaak zelf geeft 400", + "skipped": false + } + ] + }, + { + "cursor": { + "ref": "d82f0f74-076c-4ae0-8239-6ce5a39bc52e", + "length": 313, + "cycles": 1, + "position": 160, + "iteration": 0, + "httpRequestId": "32fe99bc-8bb2-4278-89a4-bb8be8c361cf" + }, + "item": { + "id": "7a666d03-4992-4844-baf6-1ef2007286c3", + "name": "(zrc-013d) Valideren deelzaak mag geen deelzaak van zichzelf zijn", + "request": { + "url": { + "host": [ + "{{zaak_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Content-Crs", + "value": "EPSG:4326" + }, + { + "key": "Accept-Crs", + "value": "EPSG:4326" + } + ], + "method": "PATCH", + "body": { + "mode": "raw", + "raw": "{\n\t\"hoofdzaak\": \"{{zaak_url}}\"\n}" + } + }, + "response": [], + "event": [ + { + "listen": "prerequest", + "script": { + "id": "da2202cf-9291-43a3-a43b-53adf15d8178", + "type": "text/javascript", + "exec": [ + "" + ], + "_lastExecutionId": "305dd9fd-3fb7-4c6d-a247-12731b654bda" + } + }, + { + "listen": "test", + "script": { + "id": "cc1af4de-c06b-42a1-ad83-2a5a0f37dcf9", + "type": "text/javascript", + "exec": [ + "pm.test(\"Zaak deels bijwerken met hoofdzaak url die wijst naar de zaak zelf geeft 400\", function(){", + " pm.response.to.have.status(400);", + " ", + " // Verify that the 400 is returned for the correct reason", + " var errors = pm.response.json()[\"invalidParams\"][0];", + " pm.expect(errors.name).to.be.equal(\"hoofdzaak\");", + " pm.expect(errors.code).to.be.equal(\"self-forbidden\");", + "});" + ], + "_lastExecutionId": "01902b69-6452-429a-b5c6-28beafd5554a" + } + } + ] + }, + "request": { + "url": { + "protocol": "http", + "port": "8080", + "path": [ + "index.php", + "apps", + "procest", + "api", + "zgw", + "zaken", + "v1", + "zaken", + "1ea85620-912a-4a68-b62e-65570c1dfdfa" + ], + "host": [ + "localhost" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Content-Crs", + "value": "EPSG:4326" + }, + { + "key": "Accept-Crs", + "value": "EPSG:4326" + }, + { + "key": "Authorization", + "value": "Bearer eyJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJwcm9jZXN0LWFkbWluIiwiY2xpZW50X2lkIjoicHJvY2VzdC1hZG1pbiIsImlhdCI6IjE3NzMxNDUxNzkiLCJ1c2VyX2lkIjoicHJvY2VzdC1hZG1pbiIsInVzZXJfcmVwcmVzZW50YXRpb24iOiIifQ.f9Pe2Iu61E3QVwXcGo082vnnM1Xh87PbmuqRE9-Dce0", + "system": true + }, + { + "key": "User-Agent", + "value": "PostmanRuntime/7.39.1", + "system": true + }, + { + "key": "Accept", + "value": "*/*", + "system": true + }, + { + "key": "Cache-Control", + "value": "no-cache", + "system": true + }, + { + "key": "Postman-Token", + "value": "2751a14e-7284-48ad-80cb-4f6426b16e90", + "system": true + }, + { + "key": "Host", + "value": "localhost:8080", + "system": true + }, + { + "key": "Accept-Encoding", + "value": "gzip, deflate, br", + "system": true + }, + { + "key": "Connection", + "value": "keep-alive", + "system": true + }, + { + "key": "Content-Length", + "value": "124", + "system": true + }, + { + "key": "Cookie", + "value": "ocvp3112b4wg=b7068b9a167df5007c6f75debacb82d9; oc_sessionPassphrase=LBNdKxRzA0iqoULIruNxDDh2BK3O%2BrCIU8aUmiUcOFvy5Xw1YfjwQNlmBW2IkGwJYtxXh9%2BwDN6vYuGNX07tXzkBtjQJUWTGdzf8AIOUIVxVx5DfyWAQZ7nmYmQv6XSE; nc_sameSiteCookielax=true; nc_sameSiteCookiestrict=true", + "system": true + } + ], + "method": "PATCH", + "body": { + "mode": "raw", + "raw": "{\n\t\"hoofdzaak\": \"http://localhost:8080/index.php/apps/procest/api/zgw/zaken/v1/zaken/1ea85620-912a-4a68-b62e-65570c1dfdfa\"\n}" + }, + "auth": { + "type": "jwt", + "jwt": [ + { + "type": "string", + "value": "{\r\n \"iss\": \"procest-admin\",\r\n \"client_id\": \"procest-admin\",\r\n \"iat\": \"1773145179\",\r\n \"user_id\": \"procest-admin\",\r\n \"user_representation\": \"\"\r\n}", + "key": "payload" + }, + { + "type": "string", + "value": "procest-admin-secret-key-for-testing", + "key": "secret" + }, + { + "type": "string", + "value": "HS256", + "key": "algorithm" + }, + { + "type": "boolean", + "value": false, + "key": "isSecretBase64Encoded" + }, + { + "type": "string", + "value": "header", + "key": "addTokenTo" + }, + { + "type": "string", + "value": "Bearer", + "key": "headerPrefix" + }, + { + "type": "string", + "value": "token", + "key": "queryParamKey" + }, + { + "type": "string", + "value": "{}", + "key": "header" + } + ] + } + }, + "response": { + "id": "2cd4d354-3319-4c0b-9a6a-2875d82f5492", + "status": "Bad request", + "code": 400, + "header": [ + { + "key": "Date", + "value": "Tue, 10 Mar 2026 12:19:39 GMT" + }, + { + "key": "Server", + "value": "Apache/2.4.66 (Debian)" + }, + { + "key": "X-Content-Type-Options", + "value": "nosniff" + }, + { + "key": "X-Frame-Options", + "value": "SAMEORIGIN" + }, + { + "key": "X-Permitted-Cross-Domain-Policies", + "value": "none" + }, + { + "key": "X-Robots-Tag", + "value": "noindex, nofollow" + }, + { + "key": "Referrer-Policy", + "value": "no-referrer" + }, + { + "key": "X-Powered-By", + "value": "PHP/8.3.30" + }, + { + "key": "Content-Security-Policy", + "value": "default-src 'none';base-uri 'none';manifest-src 'self';frame-ancestors 'none'" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=b7068b9a167df5007c6f75debacb82d9; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=b7068b9a167df5007c6f75debacb82d9; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=b7068b9a167df5007c6f75debacb82d9; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=b7068b9a167df5007c6f75debacb82d9; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=b7068b9a167df5007c6f75debacb82d9; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=8ca97bb83767c791d8b64c6cf9221359; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=8ca97bb83767c791d8b64c6cf9221359; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=8ca97bb83767c791d8b64c6cf9221359; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=8ca97bb83767c791d8b64c6cf9221359; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=8ca97bb83767c791d8b64c6cf9221359; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "X-Request-Id", + "value": "1lNHb8rn0tYeyjMhBGuQ" + }, + { + "key": "Cache-Control", + "value": "no-cache, no-store, must-revalidate" + }, + { + "key": "Feature-Policy", + "value": "autoplay 'none';camera 'none';fullscreen 'none';geolocation 'none';microphone 'none';payment 'none'" + }, + { + "key": "X-User-Id", + "value": "admin" + }, + { + "key": "Content-Length", + "value": "176" + }, + { + "key": "Connection", + "value": "close" + }, + { + "key": "Content-Type", + "value": "application/json; charset=utf-8" + } + ], + "stream": { + "type": "Buffer", + "data": [ + 123, + 34, + 100, + 101, + 116, + 97, + 105, + 108, + 34, + 58, + 34, + 69, + 101, + 110, + 32, + 122, + 97, + 97, + 107, + 32, + 107, + 97, + 110, + 32, + 110, + 105, + 101, + 116, + 32, + 122, + 105, + 106, + 110, + 32, + 101, + 105, + 103, + 101, + 110, + 32, + 104, + 111, + 111, + 102, + 100, + 122, + 97, + 97, + 107, + 32, + 122, + 105, + 106, + 110, + 46, + 34, + 44, + 34, + 105, + 110, + 118, + 97, + 108, + 105, + 100, + 80, + 97, + 114, + 97, + 109, + 115, + 34, + 58, + 91, + 123, + 34, + 110, + 97, + 109, + 101, + 34, + 58, + 34, + 104, + 111, + 111, + 102, + 100, + 122, + 97, + 97, + 107, + 34, + 44, + 34, + 99, + 111, + 100, + 101, + 34, + 58, + 34, + 115, + 101, + 108, + 102, + 45, + 102, + 111, + 114, + 98, + 105, + 100, + 100, + 101, + 110, + 34, + 44, + 34, + 114, + 101, + 97, + 115, + 111, + 110, + 34, + 58, + 34, + 69, + 101, + 110, + 32, + 122, + 97, + 97, + 107, + 32, + 107, + 97, + 110, + 32, + 110, + 105, + 101, + 116, + 32, + 122, + 105, + 106, + 110, + 32, + 101, + 105, + 103, + 101, + 110, + 32, + 104, + 111, + 111, + 102, + 100, + 122, + 97, + 97, + 107, + 32, + 122, + 105, + 106, + 110, + 46, + 34, + 125, + 93, + 125 + ] + }, + "cookie": [], + "responseTime": 124, + "responseSize": 176 + }, + "id": "7a666d03-4992-4844-baf6-1ef2007286c3", + "assertions": [ + { + "assertion": "Zaak deels bijwerken met hoofdzaak url die wijst naar de zaak zelf geeft 400", + "skipped": false + } + ] + }, + { + "cursor": { + "ref": "2bed497b-38b1-4743-9fcd-67d1afa6825d", + "length": 313, + "cycles": 1, + "position": 161, + "iteration": 0, + "httpRequestId": "f1ebbc07-bc22-4765-a24e-dfb7215b5105" + }, + "item": { + "id": "c2599852-e7a0-4c8a-b62a-1e1f9009e2ef", + "name": "(zrc-014a) Zaak aanmaken met betalingsindicatie nvt en een waarde voor laatste betaaldatum is onmogelijk", + "request": { + "url": { + "path": [ + "zaken" + ], + "host": [ + "{{zrc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Authorization", + "value": "{{token}}" + }, + { + "key": "Content-Crs", + "value": "EPSG:4326" + }, + { + "key": "Accept-Crs", + "value": "EPSG:4326" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\r\n\r\n \"bronorganisatie\": \"000000000\",\r\n \"omschrijving\": \"string\",\r\n \"toelichting\": \"string\",\r\n \"zaaktype\": \"{{zaaktype_url}}\",\r\n \"registratiedatum\": \"2019-04-09\",\r\n \"verantwoordelijkeOrganisatie\": \"000000000\",\r\n \"startdatum\": \"2019-04-09\",\r\n \"einddatum\": null,\r\n \"einddatumGepland\": \"2019-04-20\",\r\n \"uiterlijkeEinddatumAfdoening\": \"2019-04-09\",\r\n \"publicatiedatum\": \"2019-04-09\",\r\n \"communicatiekanaal\": \"\",\r\n \"productenOfDiensten\": [],\r\n \"vertrouwelijkheidaanduiding\": \"geheim\",\r\n\r\n\r\n \"betalingsindicatie\": \"nvt\",\r\n \"betalingsindicatieWeergave\": null,\r\n \"laatsteBetaaldatum\": \"2019-01-01T00:00:00Z\",\r\n \"zaakgeometrie\": {\r\n \"type\": \"Point\",\r\n \"coordinates\": [\r\n 53.0,\r\n 5.0\r\n ]\r\n },\r\n \"verlenging\": null,\r\n \"opschorting\": {\r\n \"indicatie\": true,\r\n \"reden\": \"string\"\r\n },\r\n \"selectielijstklasse\": \"https://referentielijsten.roxit.nl/api/v1/resultaten/0fe71ce3-b1e1-48eb-9070-be2756fc71b5\",\r\n \"hoofdzaak\": \"{{zaak_url}}\",\r\n \"deelzaken\": [],\r\n \"relevanteAndereZaken\": [],\r\n \"eigenschappen\": [],\r\n \"rollen\": [],\r\n \"status\": null,\r\n \"zaakinformatieobjecten\": [],\r\n \"zaakobjecten\": [],\r\n \"resultaat\": null,\r\n \"kenmerken\": [],\r\n \"archiefnominatie\": null,\r\n \"archiefstatus\": \"nog_te_archiveren\",\r\n \"archiefactiedatum\": null,\r\n \"opdrachtgevendeOrganisatie\": null,\r\n \"processobjectaard\": null,\r\n \"startdatumBewaartermijn\": null,\r\n \"processobject\": null\r\n}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "f66d8eee-0d62-4cfa-971d-9b22ab16dd7e", + "type": "text/javascript", + "packages": {}, + "exec": [ + "pm.test(\"Zaak aanmaken met betalingsindicatie nvt en laatsteBetaaldatum niet null geeft 400\", function(){", + " pm.response.to.have.status(400);", + " ", + " var error = pm.response.json()[\"invalidParams\"][0];", + " pm.expect(error.name).to.be.equal(\"laatsteBetaaldatum\");", + " pm.expect(error.code).to.be.equal(\"betaling-nvt\");", + "});", + "", + "// If the test failed and the Zaak was created, delete it", + "if(pm.response.code == 201) {", + " pm.environment.set(\"created_zaak_url\", pm.response.json().url);", + "", + "}" + ], + "_lastExecutionId": "33424a22-be30-40f4-9206-aec848fe1fb9" + } + }, + { + "listen": "prerequest", + "script": { + "id": "b1d53cd9-106a-4c8e-8f47-895ef5f32af5", + "type": "text/javascript", + "packages": {}, + "exec": [ + "" + ], + "_lastExecutionId": "21dba557-4198-4a16-826e-4776dc4ce479" + } + } + ] + }, + "request": { + "url": { + "protocol": "http", + "port": "8080", + "path": [ + "index.php", + "apps", + "procest", + "api", + "zgw", + "zaken", + "v1", + "zaken" + ], + "host": [ + "localhost" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Content-Crs", + "value": "EPSG:4326" + }, + { + "key": "Accept-Crs", + "value": "EPSG:4326" + }, + { + "key": "Authorization", + "value": "Bearer eyJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJwcm9jZXN0LWFkbWluIiwiY2xpZW50X2lkIjoicHJvY2VzdC1hZG1pbiIsImlhdCI6IjE3NzMxNDUxODAiLCJ1c2VyX2lkIjoicHJvY2VzdC1hZG1pbiIsInVzZXJfcmVwcmVzZW50YXRpb24iOiIifQ.5S0n7gr37mIvIDD2DM10ZsHilnK7_GpZl-2DWLrcRt0", + "system": true + }, + { + "key": "User-Agent", + "value": "PostmanRuntime/7.39.1", + "system": true + }, + { + "key": "Accept", + "value": "*/*", + "system": true + }, + { + "key": "Cache-Control", + "value": "no-cache", + "system": true + }, + { + "key": "Postman-Token", + "value": "dace5d5c-b78f-45bb-8497-26bca1db9938", + "system": true + }, + { + "key": "Host", + "value": "localhost:8080", + "system": true + }, + { + "key": "Accept-Encoding", + "value": "gzip, deflate, br", + "system": true + }, + { + "key": "Connection", + "value": "keep-alive", + "system": true + }, + { + "key": "Content-Length", + "value": "1708", + "system": true + }, + { + "key": "Cookie", + "value": "ocvp3112b4wg=8ca97bb83767c791d8b64c6cf9221359; oc_sessionPassphrase=LBNdKxRzA0iqoULIruNxDDh2BK3O%2BrCIU8aUmiUcOFvy5Xw1YfjwQNlmBW2IkGwJYtxXh9%2BwDN6vYuGNX07tXzkBtjQJUWTGdzf8AIOUIVxVx5DfyWAQZ7nmYmQv6XSE; nc_sameSiteCookielax=true; nc_sameSiteCookiestrict=true", + "system": true + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\r\n\r\n \"bronorganisatie\": \"000000000\",\r\n \"omschrijving\": \"string\",\r\n \"toelichting\": \"string\",\r\n \"zaaktype\": \"http://localhost:8080/index.php/apps/procest/api/zgw/catalogi/v1/zaaktypen/619dc3e5-52f1-4294-a569-f21d16f44879\",\r\n \"registratiedatum\": \"2019-04-09\",\r\n \"verantwoordelijkeOrganisatie\": \"000000000\",\r\n \"startdatum\": \"2019-04-09\",\r\n \"einddatum\": null,\r\n \"einddatumGepland\": \"2019-04-20\",\r\n \"uiterlijkeEinddatumAfdoening\": \"2019-04-09\",\r\n \"publicatiedatum\": \"2019-04-09\",\r\n \"communicatiekanaal\": \"\",\r\n \"productenOfDiensten\": [],\r\n \"vertrouwelijkheidaanduiding\": \"geheim\",\r\n\r\n\r\n \"betalingsindicatie\": \"nvt\",\r\n \"betalingsindicatieWeergave\": null,\r\n \"laatsteBetaaldatum\": \"2019-01-01T00:00:00Z\",\r\n \"zaakgeometrie\": {\r\n \"type\": \"Point\",\r\n \"coordinates\": [\r\n 53.0,\r\n 5.0\r\n ]\r\n },\r\n \"verlenging\": null,\r\n \"opschorting\": {\r\n \"indicatie\": true,\r\n \"reden\": \"string\"\r\n },\r\n \"selectielijstklasse\": \"https://referentielijsten.roxit.nl/api/v1/resultaten/0fe71ce3-b1e1-48eb-9070-be2756fc71b5\",\r\n \"hoofdzaak\": \"http://localhost:8080/index.php/apps/procest/api/zgw/zaken/v1/zaken/1ea85620-912a-4a68-b62e-65570c1dfdfa\",\r\n \"deelzaken\": [],\r\n \"relevanteAndereZaken\": [],\r\n \"eigenschappen\": [],\r\n \"rollen\": [],\r\n \"status\": null,\r\n \"zaakinformatieobjecten\": [],\r\n \"zaakobjecten\": [],\r\n \"resultaat\": null,\r\n \"kenmerken\": [],\r\n \"archiefnominatie\": null,\r\n \"archiefstatus\": \"nog_te_archiveren\",\r\n \"archiefactiedatum\": null,\r\n \"opdrachtgevendeOrganisatie\": null,\r\n \"processobjectaard\": null,\r\n \"startdatumBewaartermijn\": null,\r\n \"processobject\": null\r\n}" + }, + "auth": { + "type": "jwt", + "jwt": [ + { + "type": "string", + "value": "{\r\n \"iss\": \"procest-admin\",\r\n \"client_id\": \"procest-admin\",\r\n \"iat\": \"1773145180\",\r\n \"user_id\": \"procest-admin\",\r\n \"user_representation\": \"\"\r\n}", + "key": "payload" + }, + { + "type": "string", + "value": "procest-admin-secret-key-for-testing", + "key": "secret" + }, + { + "type": "string", + "value": "HS256", + "key": "algorithm" + }, + { + "type": "boolean", + "value": false, + "key": "isSecretBase64Encoded" + }, + { + "type": "string", + "value": "header", + "key": "addTokenTo" + }, + { + "type": "string", + "value": "Bearer", + "key": "headerPrefix" + }, + { + "type": "string", + "value": "token", + "key": "queryParamKey" + }, + { + "type": "string", + "value": "{}", + "key": "header" + } + ] + } + }, + "response": { + "id": "024c4864-bc8b-4ebb-9c16-8037c7aec4b3", + "status": "Bad request", + "code": 400, + "header": [ + { + "key": "Date", + "value": "Tue, 10 Mar 2026 12:19:39 GMT" + }, + { + "key": "Server", + "value": "Apache/2.4.66 (Debian)" + }, + { + "key": "X-Content-Type-Options", + "value": "nosniff" + }, + { + "key": "X-Frame-Options", + "value": "SAMEORIGIN" + }, + { + "key": "X-Permitted-Cross-Domain-Policies", + "value": "none" + }, + { + "key": "X-Robots-Tag", + "value": "noindex, nofollow" + }, + { + "key": "Referrer-Policy", + "value": "no-referrer" + }, + { + "key": "X-Powered-By", + "value": "PHP/8.3.30" + }, + { + "key": "Content-Security-Policy", + "value": "default-src 'none';base-uri 'none';manifest-src 'self';frame-ancestors 'none'" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=8ca97bb83767c791d8b64c6cf9221359; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=8ca97bb83767c791d8b64c6cf9221359; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=8ca97bb83767c791d8b64c6cf9221359; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=8ca97bb83767c791d8b64c6cf9221359; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=8ca97bb83767c791d8b64c6cf9221359; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=bf578db312f536e0e33c989fa930cbc2; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=bf578db312f536e0e33c989fa930cbc2; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=bf578db312f536e0e33c989fa930cbc2; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=bf578db312f536e0e33c989fa930cbc2; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=bf578db312f536e0e33c989fa930cbc2; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "X-Request-Id", + "value": "FyWkDXviH9uBeUdFeldp" + }, + { + "key": "Cache-Control", + "value": "no-cache, no-store, must-revalidate" + }, + { + "key": "Feature-Policy", + "value": "autoplay 'none';camera 'none';fullscreen 'none';geolocation 'none';microphone 'none';payment 'none'" + }, + { + "key": "X-User-Id", + "value": "admin" + }, + { + "key": "Content-Length", + "value": "247" + }, + { + "key": "Connection", + "value": "close" + }, + { + "key": "Content-Type", + "value": "application/json; charset=utf-8" + } + ], + "stream": { + "type": "Buffer", + "data": [ + 123, + 34, + 100, + 101, + 116, + 97, + 105, + 108, + 34, + 58, + 34, + 65, + 108, + 115, + 32, + 98, + 101, + 116, + 97, + 108, + 105, + 110, + 103, + 115, + 105, + 110, + 100, + 105, + 99, + 97, + 116, + 105, + 101, + 32, + 92, + 34, + 110, + 118, + 116, + 92, + 34, + 32, + 105, + 115, + 44, + 32, + 109, + 97, + 103, + 32, + 108, + 97, + 97, + 116, + 115, + 116, + 101, + 66, + 101, + 116, + 97, + 97, + 108, + 100, + 97, + 116, + 117, + 109, + 32, + 110, + 105, + 101, + 116, + 32, + 103, + 101, + 122, + 101, + 116, + 32, + 119, + 111, + 114, + 100, + 101, + 110, + 46, + 34, + 44, + 34, + 105, + 110, + 118, + 97, + 108, + 105, + 100, + 80, + 97, + 114, + 97, + 109, + 115, + 34, + 58, + 91, + 123, + 34, + 110, + 97, + 109, + 101, + 34, + 58, + 34, + 108, + 97, + 97, + 116, + 115, + 116, + 101, + 66, + 101, + 116, + 97, + 97, + 108, + 100, + 97, + 116, + 117, + 109, + 34, + 44, + 34, + 99, + 111, + 100, + 101, + 34, + 58, + 34, + 98, + 101, + 116, + 97, + 108, + 105, + 110, + 103, + 45, + 110, + 118, + 116, + 34, + 44, + 34, + 114, + 101, + 97, + 115, + 111, + 110, + 34, + 58, + 34, + 65, + 108, + 115, + 32, + 98, + 101, + 116, + 97, + 108, + 105, + 110, + 103, + 115, + 105, + 110, + 100, + 105, + 99, + 97, + 116, + 105, + 101, + 32, + 92, + 34, + 110, + 118, + 116, + 92, + 34, + 32, + 105, + 115, + 44, + 32, + 109, + 97, + 103, + 32, + 108, + 97, + 97, + 116, + 115, + 116, + 101, + 66, + 101, + 116, + 97, + 97, + 108, + 100, + 97, + 116, + 117, + 109, + 32, + 110, + 105, + 101, + 116, + 32, + 103, + 101, + 122, + 101, + 116, + 32, + 119, + 111, + 114, + 100, + 101, + 110, + 46, + 34, + 125, + 93, + 125 + ] + }, + "cookie": [], + "responseTime": 118, + "responseSize": 247 + }, + "id": "c2599852-e7a0-4c8a-b62a-1e1f9009e2ef", + "assertions": [ + { + "assertion": "Zaak aanmaken met betalingsindicatie nvt en laatsteBetaaldatum niet null geeft 400", + "skipped": false + } + ] + }, + { + "cursor": { + "ref": "58e87384-da77-4869-a116-2d9d0c3c45d6", + "length": 313, + "cycles": 1, + "position": 162, + "iteration": 0, + "httpRequestId": "63c43628-4db8-4ad3-af18-ba7793ee3649" + }, + "item": { + "id": "88ab3887-61a0-4a3b-9f0b-cad1bf4c5fa8", + "name": "zaak", + "request": { + "url": { + "path": [ + "zaken" + ], + "host": [ + "{{zrc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Authorization", + "value": "{{token}}" + }, + { + "key": "Content-Crs", + "value": "EPSG:4326" + }, + { + "key": "Accept-Crs", + "value": "EPSG:4326" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\r\n\r\n \"bronorganisatie\": \"000000000\",\r\n \"omschrijving\": \"string\",\r\n \"toelichting\": \"string\",\r\n \"zaaktype\": \"{{zaaktype_url}}\",\r\n \"registratiedatum\": \"2019-04-09\",\r\n \"verantwoordelijkeOrganisatie\": \"000000000\",\r\n \"startdatum\": \"2019-04-09\",\r\n \"einddatum\": null,\r\n \"einddatumGepland\": \"2019-04-20\",\r\n \"uiterlijkeEinddatumAfdoening\": \"2019-04-09\",\r\n \"publicatiedatum\": \"2019-04-09\",\r\n \"communicatiekanaal\": \"\",\r\n \"productenOfDiensten\": [],\r\n \"vertrouwelijkheidaanduiding\": \"geheim\",\r\n\r\n\r\n \"betalingsindicatie\": null,\r\n \"betalingsindicatieWeergave\": null,\r\n \"laatsteBetaaldatum\": null,\r\n \"zaakgeometrie\": {\r\n \"type\": \"Point\",\r\n \"coordinates\": [\r\n 53.0,\r\n 5.0\r\n ]\r\n },\r\n \"verlenging\": null,\r\n \"opschorting\": {\r\n \"indicatie\": true,\r\n \"reden\": \"string\"\r\n },\r\n \"selectielijstklasse\": \"https://referentielijsten.roxit.nl/api/v1/resultaten/0fe71ce3-b1e1-48eb-9070-be2756fc71b5\",\r\n \"hoofdzaak\": \"{{zaak_url}}\",\r\n \"deelzaken\": [],\r\n \"relevanteAndereZaken\": [],\r\n \"eigenschappen\": [],\r\n \"rollen\": [],\r\n \"status\": null,\r\n \"zaakinformatieobjecten\": [],\r\n \"zaakobjecten\": [],\r\n \"resultaat\": null,\r\n \"kenmerken\": [],\r\n \"archiefnominatie\": null,\r\n \"archiefstatus\": \"nog_te_archiveren\",\r\n \"archiefactiedatum\": null,\r\n \"opdrachtgevendeOrganisatie\": null,\r\n \"processobjectaard\": null,\r\n \"startdatumBewaartermijn\": null,\r\n \"processobject\": null\r\n}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "343ff7c5-34f8-4748-afca-57e8b252de5d", + "type": "text/javascript", + "packages": {}, + "exec": [ + "// If the test failed and the Zaak was created, delete it", + "if(pm.response.code == 201) {", + " pm.environment.set(\"zaak_url\", pm.response.json().url);", + "", + "}" + ], + "_lastExecutionId": "9dda0ab5-a5a5-404e-a0d2-5a131af0199e" + } + }, + { + "listen": "prerequest", + "script": { + "id": "68938710-a3af-46a0-a239-ea2544364078", + "type": "text/javascript", + "packages": {}, + "exec": [ + "" + ], + "_lastExecutionId": "641028ca-662b-4606-8e74-2eac4c660d9a" + } + } + ] + }, + "request": { + "url": { + "protocol": "http", + "port": "8080", + "path": [ + "index.php", + "apps", + "procest", + "api", + "zgw", + "zaken", + "v1", + "zaken" + ], + "host": [ + "localhost" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Content-Crs", + "value": "EPSG:4326" + }, + { + "key": "Accept-Crs", + "value": "EPSG:4326" + }, + { + "key": "Authorization", + "value": "Bearer eyJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJwcm9jZXN0LWFkbWluIiwiY2xpZW50X2lkIjoicHJvY2VzdC1hZG1pbiIsImlhdCI6IjE3NzMxNDUxODAiLCJ1c2VyX2lkIjoicHJvY2VzdC1hZG1pbiIsInVzZXJfcmVwcmVzZW50YXRpb24iOiIifQ.5S0n7gr37mIvIDD2DM10ZsHilnK7_GpZl-2DWLrcRt0", + "system": true + }, + { + "key": "User-Agent", + "value": "PostmanRuntime/7.39.1", + "system": true + }, + { + "key": "Accept", + "value": "*/*", + "system": true + }, + { + "key": "Cache-Control", + "value": "no-cache", + "system": true + }, + { + "key": "Postman-Token", + "value": "f01cab39-f242-4f1b-8829-6794e697e5e0", + "system": true + }, + { + "key": "Host", + "value": "localhost:8080", + "system": true + }, + { + "key": "Accept-Encoding", + "value": "gzip, deflate, br", + "system": true + }, + { + "key": "Connection", + "value": "keep-alive", + "system": true + }, + { + "key": "Content-Length", + "value": "1689", + "system": true + }, + { + "key": "Cookie", + "value": "ocvp3112b4wg=bf578db312f536e0e33c989fa930cbc2; oc_sessionPassphrase=LBNdKxRzA0iqoULIruNxDDh2BK3O%2BrCIU8aUmiUcOFvy5Xw1YfjwQNlmBW2IkGwJYtxXh9%2BwDN6vYuGNX07tXzkBtjQJUWTGdzf8AIOUIVxVx5DfyWAQZ7nmYmQv6XSE; nc_sameSiteCookielax=true; nc_sameSiteCookiestrict=true", + "system": true + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\r\n\r\n \"bronorganisatie\": \"000000000\",\r\n \"omschrijving\": \"string\",\r\n \"toelichting\": \"string\",\r\n \"zaaktype\": \"http://localhost:8080/index.php/apps/procest/api/zgw/catalogi/v1/zaaktypen/619dc3e5-52f1-4294-a569-f21d16f44879\",\r\n \"registratiedatum\": \"2019-04-09\",\r\n \"verantwoordelijkeOrganisatie\": \"000000000\",\r\n \"startdatum\": \"2019-04-09\",\r\n \"einddatum\": null,\r\n \"einddatumGepland\": \"2019-04-20\",\r\n \"uiterlijkeEinddatumAfdoening\": \"2019-04-09\",\r\n \"publicatiedatum\": \"2019-04-09\",\r\n \"communicatiekanaal\": \"\",\r\n \"productenOfDiensten\": [],\r\n \"vertrouwelijkheidaanduiding\": \"geheim\",\r\n\r\n\r\n \"betalingsindicatie\": null,\r\n \"betalingsindicatieWeergave\": null,\r\n \"laatsteBetaaldatum\": null,\r\n \"zaakgeometrie\": {\r\n \"type\": \"Point\",\r\n \"coordinates\": [\r\n 53.0,\r\n 5.0\r\n ]\r\n },\r\n \"verlenging\": null,\r\n \"opschorting\": {\r\n \"indicatie\": true,\r\n \"reden\": \"string\"\r\n },\r\n \"selectielijstklasse\": \"https://referentielijsten.roxit.nl/api/v1/resultaten/0fe71ce3-b1e1-48eb-9070-be2756fc71b5\",\r\n \"hoofdzaak\": \"http://localhost:8080/index.php/apps/procest/api/zgw/zaken/v1/zaken/1ea85620-912a-4a68-b62e-65570c1dfdfa\",\r\n \"deelzaken\": [],\r\n \"relevanteAndereZaken\": [],\r\n \"eigenschappen\": [],\r\n \"rollen\": [],\r\n \"status\": null,\r\n \"zaakinformatieobjecten\": [],\r\n \"zaakobjecten\": [],\r\n \"resultaat\": null,\r\n \"kenmerken\": [],\r\n \"archiefnominatie\": null,\r\n \"archiefstatus\": \"nog_te_archiveren\",\r\n \"archiefactiedatum\": null,\r\n \"opdrachtgevendeOrganisatie\": null,\r\n \"processobjectaard\": null,\r\n \"startdatumBewaartermijn\": null,\r\n \"processobject\": null\r\n}" + }, + "auth": { + "type": "jwt", + "jwt": [ + { + "type": "string", + "value": "{\r\n \"iss\": \"procest-admin\",\r\n \"client_id\": \"procest-admin\",\r\n \"iat\": \"1773145180\",\r\n \"user_id\": \"procest-admin\",\r\n \"user_representation\": \"\"\r\n}", + "key": "payload" + }, + { + "type": "string", + "value": "procest-admin-secret-key-for-testing", + "key": "secret" + }, + { + "type": "string", + "value": "HS256", + "key": "algorithm" + }, + { + "type": "boolean", + "value": false, + "key": "isSecretBase64Encoded" + }, + { + "type": "string", + "value": "header", + "key": "addTokenTo" + }, + { + "type": "string", + "value": "Bearer", + "key": "headerPrefix" + }, + { + "type": "string", + "value": "token", + "key": "queryParamKey" + }, + { + "type": "string", + "value": "{}", + "key": "header" + } + ] + } + }, + "response": { + "id": "88f992df-c189-4d60-8940-6d282ad3f249", + "status": "Created", + "code": 201, + "header": [ + { + "key": "Date", + "value": "Tue, 10 Mar 2026 12:19:39 GMT" + }, + { + "key": "Server", + "value": "Apache/2.4.66 (Debian)" + }, + { + "key": "X-Content-Type-Options", + "value": "nosniff" + }, + { + "key": "X-Frame-Options", + "value": "SAMEORIGIN" + }, + { + "key": "X-Permitted-Cross-Domain-Policies", + "value": "none" + }, + { + "key": "X-Robots-Tag", + "value": "noindex, nofollow" + }, + { + "key": "Referrer-Policy", + "value": "no-referrer" + }, + { + "key": "X-Powered-By", + "value": "PHP/8.3.30" + }, + { + "key": "Content-Security-Policy", + "value": "default-src 'none';base-uri 'none';manifest-src 'self';frame-ancestors 'none'" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=bf578db312f536e0e33c989fa930cbc2; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=bf578db312f536e0e33c989fa930cbc2; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=bf578db312f536e0e33c989fa930cbc2; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=bf578db312f536e0e33c989fa930cbc2; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=bf578db312f536e0e33c989fa930cbc2; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=b1d6fbdc727504839107da4ae9a43831; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=b1d6fbdc727504839107da4ae9a43831; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=b1d6fbdc727504839107da4ae9a43831; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=b1d6fbdc727504839107da4ae9a43831; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=b1d6fbdc727504839107da4ae9a43831; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "X-Request-Id", + "value": "XSQ4KTRqzOE8fbQZyvnQ" + }, + { + "key": "Cache-Control", + "value": "no-cache, no-store, must-revalidate" + }, + { + "key": "Feature-Policy", + "value": "autoplay 'none';camera 'none';fullscreen 'none';geolocation 'none';microphone 'none';payment 'none'" + }, + { + "key": "X-User-Id", + "value": "admin" + }, + { + "key": "Content-Length", + "value": "906" + }, + { + "key": "Keep-Alive", + "value": "timeout=5, max=100" + }, + { + "key": "Connection", + "value": "Keep-Alive" + }, + { + "key": "Content-Type", + "value": "application/json; charset=utf-8" + } + ], + "stream": { + "type": "Buffer", + "data": [ + 123, + 34, + 117, + 114, + 108, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 122, + 97, + 107, + 101, + 110, + 92, + 47, + 118, + 49, + 92, + 47, + 122, + 97, + 107, + 101, + 110, + 92, + 47, + 49, + 97, + 52, + 48, + 55, + 51, + 56, + 48, + 45, + 102, + 55, + 49, + 54, + 45, + 52, + 53, + 51, + 55, + 45, + 56, + 50, + 97, + 101, + 45, + 50, + 49, + 50, + 54, + 101, + 55, + 98, + 52, + 102, + 51, + 55, + 57, + 34, + 44, + 34, + 117, + 117, + 105, + 100, + 34, + 58, + 34, + 49, + 97, + 52, + 48, + 55, + 51, + 56, + 48, + 45, + 102, + 55, + 49, + 54, + 45, + 52, + 53, + 51, + 55, + 45, + 56, + 50, + 97, + 101, + 45, + 50, + 49, + 50, + 54, + 101, + 55, + 98, + 52, + 102, + 51, + 55, + 57, + 34, + 44, + 34, + 105, + 100, + 101, + 110, + 116, + 105, + 102, + 105, + 99, + 97, + 116, + 105, + 101, + 34, + 58, + 34, + 90, + 65, + 65, + 75, + 45, + 84, + 66, + 79, + 78, + 75, + 82, + 45, + 65, + 51, + 57, + 55, + 50, + 56, + 34, + 44, + 34, + 111, + 109, + 115, + 99, + 104, + 114, + 105, + 106, + 118, + 105, + 110, + 103, + 34, + 58, + 34, + 115, + 116, + 114, + 105, + 110, + 103, + 34, + 44, + 34, + 116, + 111, + 101, + 108, + 105, + 99, + 104, + 116, + 105, + 110, + 103, + 34, + 58, + 34, + 115, + 116, + 114, + 105, + 110, + 103, + 34, + 44, + 34, + 122, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 105, + 92, + 47, + 118, + 49, + 92, + 47, + 122, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 110, + 92, + 47, + 54, + 49, + 57, + 100, + 99, + 51, + 101, + 53, + 45, + 53, + 50, + 102, + 49, + 45, + 52, + 50, + 57, + 52, + 45, + 97, + 53, + 54, + 57, + 45, + 102, + 50, + 49, + 100, + 49, + 54, + 102, + 52, + 52, + 56, + 55, + 57, + 34, + 44, + 34, + 114, + 101, + 103, + 105, + 115, + 116, + 114, + 97, + 116, + 105, + 101, + 100, + 97, + 116, + 117, + 109, + 34, + 58, + 34, + 50, + 48, + 50, + 54, + 45, + 48, + 51, + 45, + 49, + 48, + 84, + 49, + 50, + 58, + 49, + 57, + 58, + 51, + 57, + 43, + 48, + 48, + 58, + 48, + 48, + 34, + 44, + 34, + 115, + 116, + 97, + 114, + 116, + 100, + 97, + 116, + 117, + 109, + 34, + 58, + 34, + 50, + 48, + 49, + 57, + 45, + 48, + 52, + 45, + 48, + 57, + 34, + 44, + 34, + 101, + 105, + 110, + 100, + 100, + 97, + 116, + 117, + 109, + 34, + 58, + 110, + 117, + 108, + 108, + 44, + 34, + 101, + 105, + 110, + 100, + 100, + 97, + 116, + 117, + 109, + 71, + 101, + 112, + 108, + 97, + 110, + 100, + 34, + 58, + 34, + 50, + 48, + 49, + 57, + 45, + 48, + 52, + 45, + 50, + 48, + 34, + 44, + 34, + 117, + 105, + 116, + 101, + 114, + 108, + 105, + 106, + 107, + 101, + 69, + 105, + 110, + 100, + 100, + 97, + 116, + 117, + 109, + 65, + 102, + 100, + 111, + 101, + 110, + 105, + 110, + 103, + 34, + 58, + 34, + 50, + 48, + 49, + 57, + 45, + 48, + 52, + 45, + 48, + 57, + 34, + 44, + 34, + 118, + 101, + 114, + 116, + 114, + 111, + 117, + 119, + 101, + 108, + 105, + 106, + 107, + 104, + 101, + 105, + 100, + 97, + 97, + 110, + 100, + 117, + 105, + 100, + 105, + 110, + 103, + 34, + 58, + 34, + 103, + 101, + 104, + 101, + 105, + 109, + 34, + 44, + 34, + 118, + 101, + 114, + 97, + 110, + 116, + 119, + 111, + 111, + 114, + 100, + 101, + 108, + 105, + 106, + 107, + 101, + 79, + 114, + 103, + 97, + 110, + 105, + 115, + 97, + 116, + 105, + 101, + 34, + 58, + 34, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 34, + 44, + 34, + 97, + 114, + 99, + 104, + 105, + 101, + 102, + 110, + 111, + 109, + 105, + 110, + 97, + 116, + 105, + 101, + 34, + 58, + 110, + 117, + 108, + 108, + 44, + 34, + 97, + 114, + 99, + 104, + 105, + 101, + 102, + 97, + 99, + 116, + 105, + 101, + 100, + 97, + 116, + 117, + 109, + 34, + 58, + 110, + 117, + 108, + 108, + 44, + 34, + 97, + 114, + 99, + 104, + 105, + 101, + 102, + 115, + 116, + 97, + 116, + 117, + 115, + 34, + 58, + 34, + 110, + 111, + 103, + 95, + 116, + 101, + 95, + 97, + 114, + 99, + 104, + 105, + 118, + 101, + 114, + 101, + 110, + 34, + 44, + 34, + 98, + 101, + 116, + 97, + 108, + 105, + 110, + 103, + 115, + 105, + 110, + 100, + 105, + 99, + 97, + 116, + 105, + 101, + 34, + 58, + 110, + 117, + 108, + 108, + 44, + 34, + 108, + 97, + 97, + 116, + 115, + 116, + 101, + 66, + 101, + 116, + 97, + 97, + 108, + 100, + 97, + 116, + 117, + 109, + 34, + 58, + 110, + 117, + 108, + 108, + 44, + 34, + 104, + 111, + 111, + 102, + 100, + 122, + 97, + 97, + 107, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 122, + 97, + 107, + 101, + 110, + 92, + 47, + 118, + 49, + 92, + 47, + 122, + 97, + 107, + 101, + 110, + 92, + 47, + 49, + 101, + 97, + 56, + 53, + 54, + 50, + 48, + 45, + 57, + 49, + 50, + 97, + 45, + 52, + 97, + 54, + 56, + 45, + 98, + 54, + 50, + 101, + 45, + 54, + 53, + 53, + 55, + 48, + 99, + 49, + 100, + 102, + 100, + 102, + 97, + 34, + 125 + ] + }, + "cookie": [], + "responseTime": 258, + "responseSize": 906 + }, + "id": "88ab3887-61a0-4a3b-9f0b-cad1bf4c5fa8" + }, + { + "cursor": { + "ref": "3e6a565f-c887-488b-8351-526a61636cd9", + "length": 313, + "cycles": 1, + "position": 163, + "iteration": 0, + "httpRequestId": "ca9e6e17-a16c-4b43-8318-af7387ec9824" + }, + "item": { + "id": "5470af17-b018-45e3-b7fd-8ae19c87b5f6", + "name": "(zrc-014b) Zaak bijwerken met betalingsindicatie nvt en een waarde voor laatste betaaldatum is onmogelijk", + "request": { + "url": { + "host": [ + "{{zaak_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Authorization", + "value": "{{token}}" + }, + { + "key": "Content-Crs", + "value": "EPSG:4326" + }, + { + "key": "Accept-Crs", + "value": "EPSG:4326" + } + ], + "method": "PUT", + "body": { + "mode": "raw", + "raw": "{\r\n\r\n \"bronorganisatie\": \"000000000\",\r\n \"omschrijving\": \"string\",\r\n \"toelichting\": \"string\",\r\n \"zaaktype\": \"{{zaaktype_url}}\",\r\n \"registratiedatum\": \"2019-04-09\",\r\n \"verantwoordelijkeOrganisatie\": \"000000000\",\r\n \"startdatum\": \"2019-04-09\",\r\n \"einddatum\": null,\r\n \"einddatumGepland\": \"2019-04-20\",\r\n \"uiterlijkeEinddatumAfdoening\": \"2019-04-09\",\r\n \"publicatiedatum\": \"2019-04-09\",\r\n \"communicatiekanaal\": \"\",\r\n \"productenOfDiensten\": [],\r\n \"vertrouwelijkheidaanduiding\": \"geheim\",\r\n\r\n\r\n \"betalingsindicatie\": \"nvt\",\r\n \"betalingsindicatieWeergave\": null,\r\n \"laatsteBetaaldatum\": \"2019-01-01T00:00:00Z\",\r\n \"zaakgeometrie\": {\r\n \"type\": \"Point\",\r\n \"coordinates\": [\r\n 53.0,\r\n 5.0\r\n ]\r\n },\r\n \"verlenging\": null,\r\n \"opschorting\": {\r\n \"indicatie\": true,\r\n \"reden\": \"string\"\r\n },\r\n \"selectielijstklasse\": \"https://referentielijsten.roxit.nl/api/v1/resultaten/0fe71ce3-b1e1-48eb-9070-be2756fc71b5\",\r\n \"hoofdzaak\": null,\r\n \"deelzaken\": [],\r\n \"relevanteAndereZaken\": [],\r\n \"eigenschappen\": [],\r\n \"rollen\": [],\r\n \"status\": null,\r\n \"zaakinformatieobjecten\": [],\r\n \"zaakobjecten\": [],\r\n \"resultaat\": null,\r\n \"kenmerken\": [],\r\n \"archiefnominatie\": null,\r\n \"archiefstatus\": \"nog_te_archiveren\",\r\n \"archiefactiedatum\": null,\r\n \"opdrachtgevendeOrganisatie\": null,\r\n \"processobjectaard\": null,\r\n \"startdatumBewaartermijn\": null,\r\n \"processobject\": null\r\n}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "b7e2381a-c90d-4548-8ac4-a8da36378d8e", + "type": "text/javascript", + "packages": {}, + "exec": [ + "pm.test(\"Zaak bijwerken met betalingsindicatie nvt en laatsteBetaaldatum niet null geeft 200 en zet laatstebetaaldatum op null\", function(){", + " pm.response.to.have.status(200);", + " ", + " pm.expect(pm.response.json().laatsteBetaaldatum).to.be.null;", + "", + "});" + ], + "_lastExecutionId": "42e9091a-eea9-4a12-94cd-b60cabe63980" + } + }, + { + "listen": "prerequest", + "script": { + "id": "29212748-c956-48d5-a6ff-b8093b9fbcf7", + "type": "text/javascript", + "packages": {}, + "exec": [ + "" + ], + "_lastExecutionId": "a3693817-786b-4112-b209-b66246076139" + } + } + ] + }, + "request": { + "url": { + "protocol": "http", + "port": "8080", + "path": [ + "index.php", + "apps", + "procest", + "api", + "zgw", + "zaken", + "v1", + "zaken", + "1a407380-f716-4537-82ae-2126e7b4f379" + ], + "host": [ + "localhost" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Content-Crs", + "value": "EPSG:4326" + }, + { + "key": "Accept-Crs", + "value": "EPSG:4326" + }, + { + "key": "Authorization", + "value": "Bearer eyJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJwcm9jZXN0LWFkbWluIiwiY2xpZW50X2lkIjoicHJvY2VzdC1hZG1pbiIsImlhdCI6IjE3NzMxNDUxODAiLCJ1c2VyX2lkIjoicHJvY2VzdC1hZG1pbiIsInVzZXJfcmVwcmVzZW50YXRpb24iOiIifQ.5S0n7gr37mIvIDD2DM10ZsHilnK7_GpZl-2DWLrcRt0", + "system": true + }, + { + "key": "User-Agent", + "value": "PostmanRuntime/7.39.1", + "system": true + }, + { + "key": "Accept", + "value": "*/*", + "system": true + }, + { + "key": "Cache-Control", + "value": "no-cache", + "system": true + }, + { + "key": "Postman-Token", + "value": "08143293-7432-4478-bf69-a53d0a69aa9a", + "system": true + }, + { + "key": "Host", + "value": "localhost:8080", + "system": true + }, + { + "key": "Accept-Encoding", + "value": "gzip, deflate, br", + "system": true + }, + { + "key": "Connection", + "value": "keep-alive", + "system": true + }, + { + "key": "Content-Length", + "value": "1606", + "system": true + }, + { + "key": "Cookie", + "value": "ocvp3112b4wg=b1d6fbdc727504839107da4ae9a43831; oc_sessionPassphrase=LBNdKxRzA0iqoULIruNxDDh2BK3O%2BrCIU8aUmiUcOFvy5Xw1YfjwQNlmBW2IkGwJYtxXh9%2BwDN6vYuGNX07tXzkBtjQJUWTGdzf8AIOUIVxVx5DfyWAQZ7nmYmQv6XSE; nc_sameSiteCookielax=true; nc_sameSiteCookiestrict=true", + "system": true + } + ], + "method": "PUT", + "body": { + "mode": "raw", + "raw": "{\r\n\r\n \"bronorganisatie\": \"000000000\",\r\n \"omschrijving\": \"string\",\r\n \"toelichting\": \"string\",\r\n \"zaaktype\": \"http://localhost:8080/index.php/apps/procest/api/zgw/catalogi/v1/zaaktypen/619dc3e5-52f1-4294-a569-f21d16f44879\",\r\n \"registratiedatum\": \"2019-04-09\",\r\n \"verantwoordelijkeOrganisatie\": \"000000000\",\r\n \"startdatum\": \"2019-04-09\",\r\n \"einddatum\": null,\r\n \"einddatumGepland\": \"2019-04-20\",\r\n \"uiterlijkeEinddatumAfdoening\": \"2019-04-09\",\r\n \"publicatiedatum\": \"2019-04-09\",\r\n \"communicatiekanaal\": \"\",\r\n \"productenOfDiensten\": [],\r\n \"vertrouwelijkheidaanduiding\": \"geheim\",\r\n\r\n\r\n \"betalingsindicatie\": \"nvt\",\r\n \"betalingsindicatieWeergave\": null,\r\n \"laatsteBetaaldatum\": \"2019-01-01T00:00:00Z\",\r\n \"zaakgeometrie\": {\r\n \"type\": \"Point\",\r\n \"coordinates\": [\r\n 53.0,\r\n 5.0\r\n ]\r\n },\r\n \"verlenging\": null,\r\n \"opschorting\": {\r\n \"indicatie\": true,\r\n \"reden\": \"string\"\r\n },\r\n \"selectielijstklasse\": \"https://referentielijsten.roxit.nl/api/v1/resultaten/0fe71ce3-b1e1-48eb-9070-be2756fc71b5\",\r\n \"hoofdzaak\": null,\r\n \"deelzaken\": [],\r\n \"relevanteAndereZaken\": [],\r\n \"eigenschappen\": [],\r\n \"rollen\": [],\r\n \"status\": null,\r\n \"zaakinformatieobjecten\": [],\r\n \"zaakobjecten\": [],\r\n \"resultaat\": null,\r\n \"kenmerken\": [],\r\n \"archiefnominatie\": null,\r\n \"archiefstatus\": \"nog_te_archiveren\",\r\n \"archiefactiedatum\": null,\r\n \"opdrachtgevendeOrganisatie\": null,\r\n \"processobjectaard\": null,\r\n \"startdatumBewaartermijn\": null,\r\n \"processobject\": null\r\n}" + }, + "auth": { + "type": "jwt", + "jwt": [ + { + "type": "string", + "value": "{\r\n \"iss\": \"procest-admin\",\r\n \"client_id\": \"procest-admin\",\r\n \"iat\": \"1773145180\",\r\n \"user_id\": \"procest-admin\",\r\n \"user_representation\": \"\"\r\n}", + "key": "payload" + }, + { + "type": "string", + "value": "procest-admin-secret-key-for-testing", + "key": "secret" + }, + { + "type": "string", + "value": "HS256", + "key": "algorithm" + }, + { + "type": "boolean", + "value": false, + "key": "isSecretBase64Encoded" + }, + { + "type": "string", + "value": "header", + "key": "addTokenTo" + }, + { + "type": "string", + "value": "Bearer", + "key": "headerPrefix" + }, + { + "type": "string", + "value": "token", + "key": "queryParamKey" + }, + { + "type": "string", + "value": "{}", + "key": "header" + } + ] + } + }, + "response": { + "id": "914ec4d8-74f7-4d50-a436-0d713d340803", + "status": "OK", + "code": 200, + "header": [ + { + "key": "Date", + "value": "Tue, 10 Mar 2026 12:19:39 GMT" + }, + { + "key": "Server", + "value": "Apache/2.4.66 (Debian)" + }, + { + "key": "X-Content-Type-Options", + "value": "nosniff" + }, + { + "key": "X-Frame-Options", + "value": "SAMEORIGIN" + }, + { + "key": "X-Permitted-Cross-Domain-Policies", + "value": "none" + }, + { + "key": "X-Robots-Tag", + "value": "noindex, nofollow" + }, + { + "key": "Referrer-Policy", + "value": "no-referrer" + }, + { + "key": "X-Powered-By", + "value": "PHP/8.3.30" + }, + { + "key": "Content-Security-Policy", + "value": "default-src 'none';base-uri 'none';manifest-src 'self';frame-ancestors 'none'" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=b1d6fbdc727504839107da4ae9a43831; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=b1d6fbdc727504839107da4ae9a43831; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=b1d6fbdc727504839107da4ae9a43831; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=b1d6fbdc727504839107da4ae9a43831; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=b1d6fbdc727504839107da4ae9a43831; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=c5ea8803661ae57b53ffe91a319fef68; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=c5ea8803661ae57b53ffe91a319fef68; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=c5ea8803661ae57b53ffe91a319fef68; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=c5ea8803661ae57b53ffe91a319fef68; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=c5ea8803661ae57b53ffe91a319fef68; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "X-Request-Id", + "value": "x5jK54NPafeqMAxymNee" + }, + { + "key": "Cache-Control", + "value": "no-cache, no-store, must-revalidate" + }, + { + "key": "Feature-Policy", + "value": "autoplay 'none';camera 'none';fullscreen 'none';geolocation 'none';microphone 'none';payment 'none'" + }, + { + "key": "X-User-Id", + "value": "admin" + }, + { + "key": "Content-Encoding", + "value": "gzip" + }, + { + "key": "Content-Length", + "value": "419" + }, + { + "key": "Keep-Alive", + "value": "timeout=5, max=99" + }, + { + "key": "Connection", + "value": "Keep-Alive" + }, + { + "key": "Content-Type", + "value": "application/json; charset=utf-8" + } + ], + "stream": { + "type": "Buffer", + "data": [ + 123, + 34, + 117, + 114, + 108, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 122, + 97, + 107, + 101, + 110, + 92, + 47, + 118, + 49, + 92, + 47, + 122, + 97, + 107, + 101, + 110, + 92, + 47, + 49, + 97, + 52, + 48, + 55, + 51, + 56, + 48, + 45, + 102, + 55, + 49, + 54, + 45, + 52, + 53, + 51, + 55, + 45, + 56, + 50, + 97, + 101, + 45, + 50, + 49, + 50, + 54, + 101, + 55, + 98, + 52, + 102, + 51, + 55, + 57, + 34, + 44, + 34, + 117, + 117, + 105, + 100, + 34, + 58, + 34, + 49, + 97, + 52, + 48, + 55, + 51, + 56, + 48, + 45, + 102, + 55, + 49, + 54, + 45, + 52, + 53, + 51, + 55, + 45, + 56, + 50, + 97, + 101, + 45, + 50, + 49, + 50, + 54, + 101, + 55, + 98, + 52, + 102, + 51, + 55, + 57, + 34, + 44, + 34, + 105, + 100, + 101, + 110, + 116, + 105, + 102, + 105, + 99, + 97, + 116, + 105, + 101, + 34, + 58, + 34, + 34, + 44, + 34, + 111, + 109, + 115, + 99, + 104, + 114, + 105, + 106, + 118, + 105, + 110, + 103, + 34, + 58, + 34, + 115, + 116, + 114, + 105, + 110, + 103, + 34, + 44, + 34, + 116, + 111, + 101, + 108, + 105, + 99, + 104, + 116, + 105, + 110, + 103, + 34, + 58, + 34, + 115, + 116, + 114, + 105, + 110, + 103, + 34, + 44, + 34, + 122, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 105, + 92, + 47, + 118, + 49, + 92, + 47, + 122, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 110, + 92, + 47, + 54, + 49, + 57, + 100, + 99, + 51, + 101, + 53, + 45, + 53, + 50, + 102, + 49, + 45, + 52, + 50, + 57, + 52, + 45, + 97, + 53, + 54, + 57, + 45, + 102, + 50, + 49, + 100, + 49, + 54, + 102, + 52, + 52, + 56, + 55, + 57, + 34, + 44, + 34, + 114, + 101, + 103, + 105, + 115, + 116, + 114, + 97, + 116, + 105, + 101, + 100, + 97, + 116, + 117, + 109, + 34, + 58, + 34, + 50, + 48, + 50, + 54, + 45, + 48, + 51, + 45, + 49, + 48, + 84, + 49, + 50, + 58, + 49, + 57, + 58, + 51, + 57, + 43, + 48, + 48, + 58, + 48, + 48, + 34, + 44, + 34, + 115, + 116, + 97, + 114, + 116, + 100, + 97, + 116, + 117, + 109, + 34, + 58, + 34, + 50, + 48, + 49, + 57, + 45, + 48, + 52, + 45, + 48, + 57, + 34, + 44, + 34, + 101, + 105, + 110, + 100, + 100, + 97, + 116, + 117, + 109, + 34, + 58, + 110, + 117, + 108, + 108, + 44, + 34, + 101, + 105, + 110, + 100, + 100, + 97, + 116, + 117, + 109, + 71, + 101, + 112, + 108, + 97, + 110, + 100, + 34, + 58, + 34, + 50, + 48, + 49, + 57, + 45, + 48, + 52, + 45, + 50, + 48, + 34, + 44, + 34, + 117, + 105, + 116, + 101, + 114, + 108, + 105, + 106, + 107, + 101, + 69, + 105, + 110, + 100, + 100, + 97, + 116, + 117, + 109, + 65, + 102, + 100, + 111, + 101, + 110, + 105, + 110, + 103, + 34, + 58, + 34, + 50, + 48, + 49, + 57, + 45, + 48, + 52, + 45, + 48, + 57, + 34, + 44, + 34, + 118, + 101, + 114, + 116, + 114, + 111, + 117, + 119, + 101, + 108, + 105, + 106, + 107, + 104, + 101, + 105, + 100, + 97, + 97, + 110, + 100, + 117, + 105, + 100, + 105, + 110, + 103, + 34, + 58, + 34, + 103, + 101, + 104, + 101, + 105, + 109, + 34, + 44, + 34, + 118, + 101, + 114, + 97, + 110, + 116, + 119, + 111, + 111, + 114, + 100, + 101, + 108, + 105, + 106, + 107, + 101, + 79, + 114, + 103, + 97, + 110, + 105, + 115, + 97, + 116, + 105, + 101, + 34, + 58, + 34, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 34, + 44, + 34, + 97, + 114, + 99, + 104, + 105, + 101, + 102, + 110, + 111, + 109, + 105, + 110, + 97, + 116, + 105, + 101, + 34, + 58, + 110, + 117, + 108, + 108, + 44, + 34, + 97, + 114, + 99, + 104, + 105, + 101, + 102, + 97, + 99, + 116, + 105, + 101, + 100, + 97, + 116, + 117, + 109, + 34, + 58, + 110, + 117, + 108, + 108, + 44, + 34, + 97, + 114, + 99, + 104, + 105, + 101, + 102, + 115, + 116, + 97, + 116, + 117, + 115, + 34, + 58, + 34, + 110, + 111, + 103, + 95, + 116, + 101, + 95, + 97, + 114, + 99, + 104, + 105, + 118, + 101, + 114, + 101, + 110, + 34, + 44, + 34, + 98, + 101, + 116, + 97, + 108, + 105, + 110, + 103, + 115, + 105, + 110, + 100, + 105, + 99, + 97, + 116, + 105, + 101, + 34, + 58, + 34, + 110, + 118, + 116, + 34, + 44, + 34, + 108, + 97, + 97, + 116, + 115, + 116, + 101, + 66, + 101, + 116, + 97, + 97, + 108, + 100, + 97, + 116, + 117, + 109, + 34, + 58, + 110, + 117, + 108, + 108, + 44, + 34, + 104, + 111, + 111, + 102, + 100, + 122, + 97, + 97, + 107, + 34, + 58, + 110, + 117, + 108, + 108, + 125 + ] + }, + "cookie": [], + "responseTime": 183, + "responseSize": 776 + }, + "id": "5470af17-b018-45e3-b7fd-8ae19c87b5f6", + "assertions": [ + { + "assertion": "Zaak bijwerken met betalingsindicatie nvt en laatsteBetaaldatum niet null geeft 200 en zet laatstebetaaldatum op null", + "skipped": false + } + ] + }, + { + "cursor": { + "ref": "56a3d1f8-6416-4f1b-b1d1-2cf79360c31d", + "length": 313, + "cycles": 1, + "position": 164, + "iteration": 0, + "httpRequestId": "97a8467b-daef-4c21-9aad-b51cf9ee191c" + }, + "item": { + "id": "fe0604c1-6b84-40c8-8e97-c4bf2a14dc68", + "name": "(zrc-014c) Zaak deels bijwerken met betalingsindicatie nvt en een waarde voor laatste betaaldatum is onmogelijk", + "request": { + "url": { + "host": [ + "{{zaak_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Authorization", + "value": "{{token}}" + }, + { + "key": "Content-Crs", + "value": "EPSG:4326" + }, + { + "key": "Accept-Crs", + "value": "EPSG:4326" + } + ], + "method": "PATCH", + "body": { + "mode": "raw", + "raw": "{\n \"betalingsindicatie\": \"nvt\",\n \"betalingsindicatieWeergave\": null,\n \"laatsteBetaaldatum\": \"2019-01-01T00:00:00Z\"\n}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "c901a170-003d-4630-a8d7-4ee350922a0b", + "type": "text/javascript", + "packages": {}, + "exec": [ + "pm.test(\"Zaak deels bijwerken met betalingsindicatie nvt en laatsteBetaaldatum niet null geeft 200 en zet laatstebetaaldatum op null\", function(){", + " pm.response.to.have.status(200);", + " ", + " pm.expect(pm.response.json().laatsteBetaaldatum).to.be.null;", + "", + "});" + ], + "_lastExecutionId": "8b576a87-f4b3-4959-99df-82a35421aad1" + } + }, + { + "listen": "prerequest", + "script": { + "id": "486a1c81-3ccf-467a-9931-9752e1e2e929", + "type": "text/javascript", + "packages": {}, + "exec": [ + "" + ], + "_lastExecutionId": "ff30fd53-603d-4c2e-807c-92a53216e835" + } + } + ] + }, + "request": { + "url": { + "protocol": "http", + "port": "8080", + "path": [ + "index.php", + "apps", + "procest", + "api", + "zgw", + "zaken", + "v1", + "zaken", + "1a407380-f716-4537-82ae-2126e7b4f379" + ], + "host": [ + "localhost" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Content-Crs", + "value": "EPSG:4326" + }, + { + "key": "Accept-Crs", + "value": "EPSG:4326" + }, + { + "key": "Authorization", + "value": "Bearer eyJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJwcm9jZXN0LWFkbWluIiwiY2xpZW50X2lkIjoicHJvY2VzdC1hZG1pbiIsImlhdCI6IjE3NzMxNDUxODAiLCJ1c2VyX2lkIjoicHJvY2VzdC1hZG1pbiIsInVzZXJfcmVwcmVzZW50YXRpb24iOiIifQ.5S0n7gr37mIvIDD2DM10ZsHilnK7_GpZl-2DWLrcRt0", + "system": true + }, + { + "key": "User-Agent", + "value": "PostmanRuntime/7.39.1", + "system": true + }, + { + "key": "Accept", + "value": "*/*", + "system": true + }, + { + "key": "Cache-Control", + "value": "no-cache", + "system": true + }, + { + "key": "Postman-Token", + "value": "d33e499f-26c6-41dd-a6df-5d8b84b22987", + "system": true + }, + { + "key": "Host", + "value": "localhost:8080", + "system": true + }, + { + "key": "Accept-Encoding", + "value": "gzip, deflate, br", + "system": true + }, + { + "key": "Connection", + "value": "keep-alive", + "system": true + }, + { + "key": "Content-Length", + "value": "125", + "system": true + }, + { + "key": "Cookie", + "value": "ocvp3112b4wg=c5ea8803661ae57b53ffe91a319fef68; oc_sessionPassphrase=LBNdKxRzA0iqoULIruNxDDh2BK3O%2BrCIU8aUmiUcOFvy5Xw1YfjwQNlmBW2IkGwJYtxXh9%2BwDN6vYuGNX07tXzkBtjQJUWTGdzf8AIOUIVxVx5DfyWAQZ7nmYmQv6XSE; nc_sameSiteCookielax=true; nc_sameSiteCookiestrict=true", + "system": true + } + ], + "method": "PATCH", + "body": { + "mode": "raw", + "raw": "{\n \"betalingsindicatie\": \"nvt\",\n \"betalingsindicatieWeergave\": null,\n \"laatsteBetaaldatum\": \"2019-01-01T00:00:00Z\"\n}" + }, + "auth": { + "type": "jwt", + "jwt": [ + { + "type": "string", + "value": "{\r\n \"iss\": \"procest-admin\",\r\n \"client_id\": \"procest-admin\",\r\n \"iat\": \"1773145180\",\r\n \"user_id\": \"procest-admin\",\r\n \"user_representation\": \"\"\r\n}", + "key": "payload" + }, + { + "type": "string", + "value": "procest-admin-secret-key-for-testing", + "key": "secret" + }, + { + "type": "string", + "value": "HS256", + "key": "algorithm" + }, + { + "type": "boolean", + "value": false, + "key": "isSecretBase64Encoded" + }, + { + "type": "string", + "value": "header", + "key": "addTokenTo" + }, + { + "type": "string", + "value": "Bearer", + "key": "headerPrefix" + }, + { + "type": "string", + "value": "token", + "key": "queryParamKey" + }, + { + "type": "string", + "value": "{}", + "key": "header" + } + ] + } + }, + "response": { + "id": "f5a3af58-8b61-4c3e-aa97-ea509498117d", + "status": "OK", + "code": 200, + "header": [ + { + "key": "Date", + "value": "Tue, 10 Mar 2026 12:19:40 GMT" + }, + { + "key": "Server", + "value": "Apache/2.4.66 (Debian)" + }, + { + "key": "X-Content-Type-Options", + "value": "nosniff" + }, + { + "key": "X-Frame-Options", + "value": "SAMEORIGIN" + }, + { + "key": "X-Permitted-Cross-Domain-Policies", + "value": "none" + }, + { + "key": "X-Robots-Tag", + "value": "noindex, nofollow" + }, + { + "key": "Referrer-Policy", + "value": "no-referrer" + }, + { + "key": "X-Powered-By", + "value": "PHP/8.3.30" + }, + { + "key": "Content-Security-Policy", + "value": "default-src 'none';base-uri 'none';manifest-src 'self';frame-ancestors 'none'" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=c5ea8803661ae57b53ffe91a319fef68; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=c5ea8803661ae57b53ffe91a319fef68; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=c5ea8803661ae57b53ffe91a319fef68; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=c5ea8803661ae57b53ffe91a319fef68; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=c5ea8803661ae57b53ffe91a319fef68; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=5b072e9dc825cc51685afe3c0296ee08; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=5b072e9dc825cc51685afe3c0296ee08; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=5b072e9dc825cc51685afe3c0296ee08; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=5b072e9dc825cc51685afe3c0296ee08; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=5b072e9dc825cc51685afe3c0296ee08; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "X-Request-Id", + "value": "YycKDF2l2WHL7LOfZrtd" + }, + { + "key": "Cache-Control", + "value": "no-cache, no-store, must-revalidate" + }, + { + "key": "Feature-Policy", + "value": "autoplay 'none';camera 'none';fullscreen 'none';geolocation 'none';microphone 'none';payment 'none'" + }, + { + "key": "X-User-Id", + "value": "admin" + }, + { + "key": "Content-Encoding", + "value": "gzip" + }, + { + "key": "Content-Length", + "value": "419" + }, + { + "key": "Keep-Alive", + "value": "timeout=5, max=98" + }, + { + "key": "Connection", + "value": "Keep-Alive" + }, + { + "key": "Content-Type", + "value": "application/json; charset=utf-8" + } + ], + "stream": { + "type": "Buffer", + "data": [ + 123, + 34, + 117, + 114, + 108, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 122, + 97, + 107, + 101, + 110, + 92, + 47, + 118, + 49, + 92, + 47, + 122, + 97, + 107, + 101, + 110, + 92, + 47, + 49, + 97, + 52, + 48, + 55, + 51, + 56, + 48, + 45, + 102, + 55, + 49, + 54, + 45, + 52, + 53, + 51, + 55, + 45, + 56, + 50, + 97, + 101, + 45, + 50, + 49, + 50, + 54, + 101, + 55, + 98, + 52, + 102, + 51, + 55, + 57, + 34, + 44, + 34, + 117, + 117, + 105, + 100, + 34, + 58, + 34, + 49, + 97, + 52, + 48, + 55, + 51, + 56, + 48, + 45, + 102, + 55, + 49, + 54, + 45, + 52, + 53, + 51, + 55, + 45, + 56, + 50, + 97, + 101, + 45, + 50, + 49, + 50, + 54, + 101, + 55, + 98, + 52, + 102, + 51, + 55, + 57, + 34, + 44, + 34, + 105, + 100, + 101, + 110, + 116, + 105, + 102, + 105, + 99, + 97, + 116, + 105, + 101, + 34, + 58, + 34, + 34, + 44, + 34, + 111, + 109, + 115, + 99, + 104, + 114, + 105, + 106, + 118, + 105, + 110, + 103, + 34, + 58, + 34, + 115, + 116, + 114, + 105, + 110, + 103, + 34, + 44, + 34, + 116, + 111, + 101, + 108, + 105, + 99, + 104, + 116, + 105, + 110, + 103, + 34, + 58, + 34, + 115, + 116, + 114, + 105, + 110, + 103, + 34, + 44, + 34, + 122, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 105, + 92, + 47, + 118, + 49, + 92, + 47, + 122, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 110, + 92, + 47, + 54, + 49, + 57, + 100, + 99, + 51, + 101, + 53, + 45, + 53, + 50, + 102, + 49, + 45, + 52, + 50, + 57, + 52, + 45, + 97, + 53, + 54, + 57, + 45, + 102, + 50, + 49, + 100, + 49, + 54, + 102, + 52, + 52, + 56, + 55, + 57, + 34, + 44, + 34, + 114, + 101, + 103, + 105, + 115, + 116, + 114, + 97, + 116, + 105, + 101, + 100, + 97, + 116, + 117, + 109, + 34, + 58, + 34, + 50, + 48, + 50, + 54, + 45, + 48, + 51, + 45, + 49, + 48, + 84, + 49, + 50, + 58, + 49, + 57, + 58, + 51, + 57, + 43, + 48, + 48, + 58, + 48, + 48, + 34, + 44, + 34, + 115, + 116, + 97, + 114, + 116, + 100, + 97, + 116, + 117, + 109, + 34, + 58, + 34, + 50, + 48, + 49, + 57, + 45, + 48, + 52, + 45, + 48, + 57, + 34, + 44, + 34, + 101, + 105, + 110, + 100, + 100, + 97, + 116, + 117, + 109, + 34, + 58, + 110, + 117, + 108, + 108, + 44, + 34, + 101, + 105, + 110, + 100, + 100, + 97, + 116, + 117, + 109, + 71, + 101, + 112, + 108, + 97, + 110, + 100, + 34, + 58, + 34, + 50, + 48, + 49, + 57, + 45, + 48, + 52, + 45, + 50, + 48, + 34, + 44, + 34, + 117, + 105, + 116, + 101, + 114, + 108, + 105, + 106, + 107, + 101, + 69, + 105, + 110, + 100, + 100, + 97, + 116, + 117, + 109, + 65, + 102, + 100, + 111, + 101, + 110, + 105, + 110, + 103, + 34, + 58, + 34, + 50, + 48, + 49, + 57, + 45, + 48, + 52, + 45, + 48, + 57, + 34, + 44, + 34, + 118, + 101, + 114, + 116, + 114, + 111, + 117, + 119, + 101, + 108, + 105, + 106, + 107, + 104, + 101, + 105, + 100, + 97, + 97, + 110, + 100, + 117, + 105, + 100, + 105, + 110, + 103, + 34, + 58, + 34, + 103, + 101, + 104, + 101, + 105, + 109, + 34, + 44, + 34, + 118, + 101, + 114, + 97, + 110, + 116, + 119, + 111, + 111, + 114, + 100, + 101, + 108, + 105, + 106, + 107, + 101, + 79, + 114, + 103, + 97, + 110, + 105, + 115, + 97, + 116, + 105, + 101, + 34, + 58, + 34, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 34, + 44, + 34, + 97, + 114, + 99, + 104, + 105, + 101, + 102, + 110, + 111, + 109, + 105, + 110, + 97, + 116, + 105, + 101, + 34, + 58, + 110, + 117, + 108, + 108, + 44, + 34, + 97, + 114, + 99, + 104, + 105, + 101, + 102, + 97, + 99, + 116, + 105, + 101, + 100, + 97, + 116, + 117, + 109, + 34, + 58, + 110, + 117, + 108, + 108, + 44, + 34, + 97, + 114, + 99, + 104, + 105, + 101, + 102, + 115, + 116, + 97, + 116, + 117, + 115, + 34, + 58, + 34, + 110, + 111, + 103, + 95, + 116, + 101, + 95, + 97, + 114, + 99, + 104, + 105, + 118, + 101, + 114, + 101, + 110, + 34, + 44, + 34, + 98, + 101, + 116, + 97, + 108, + 105, + 110, + 103, + 115, + 105, + 110, + 100, + 105, + 99, + 97, + 116, + 105, + 101, + 34, + 58, + 34, + 110, + 118, + 116, + 34, + 44, + 34, + 108, + 97, + 97, + 116, + 115, + 116, + 101, + 66, + 101, + 116, + 97, + 97, + 108, + 100, + 97, + 116, + 117, + 109, + 34, + 58, + 110, + 117, + 108, + 108, + 44, + 34, + 104, + 111, + 111, + 102, + 100, + 122, + 97, + 97, + 107, + 34, + 58, + 110, + 117, + 108, + 108, + 125 + ] + }, + "cookie": [], + "responseTime": 210, + "responseSize": 776 + }, + "id": "fe0604c1-6b84-40c8-8e97-c4bf2a14dc68", + "assertions": [ + { + "assertion": "Zaak deels bijwerken met betalingsindicatie nvt en laatsteBetaaldatum niet null geeft 200 en zet laatstebetaaldatum op null", + "skipped": false + } + ] + }, + { + "cursor": { + "ref": "5a8a5af9-9f1d-48f1-aa25-09100da84522", + "length": 313, + "cycles": 1, + "position": 165, + "iteration": 0, + "httpRequestId": "3190dc7d-23db-4a1a-8285-18b97a6c4448" + }, + "item": { + "id": "2cef4b77-d255-42d4-ad51-23b395b14539", + "name": "(zrc-014d) Zaak bijwerken betalingsindicatie naar nvt moet laatsteBetaalDatum op null zetten", + "request": { + "url": { + "host": [ + "{{zaak_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Authorization", + "value": "{{token}}" + }, + { + "key": "Content-Crs", + "value": "EPSG:4326" + }, + { + "key": "Accept-Crs", + "value": "EPSG:4326" + } + ], + "method": "PUT", + "body": { + "mode": "raw", + "raw": "{\r\n\r\n \"bronorganisatie\": \"000000000\",\r\n \"omschrijving\": \"string\",\r\n \"toelichting\": \"string\",\r\n \"zaaktype\": \"{{zaaktype_url}}\",\r\n \"registratiedatum\": \"2019-04-09\",\r\n \"verantwoordelijkeOrganisatie\": \"000000000\",\r\n \"startdatum\": \"2019-04-09\",\r\n \"einddatum\": null,\r\n \"einddatumGepland\": \"2019-04-20\",\r\n \"uiterlijkeEinddatumAfdoening\": \"2019-04-09\",\r\n \"publicatiedatum\": \"2019-04-09\",\r\n \"communicatiekanaal\": \"\",\r\n \"productenOfDiensten\": [],\r\n \"vertrouwelijkheidaanduiding\": \"geheim\",\r\n\r\n\r\n \"betalingsindicatie\": \"nvt\",\r\n \"betalingsindicatieWeergave\": null,\r\n \"laatsteBetaaldatum\": null,\r\n \"zaakgeometrie\": {\r\n \"type\": \"Point\",\r\n \"coordinates\": [\r\n 53.0,\r\n 5.0\r\n ]\r\n },\r\n \"verlenging\": null,\r\n \"opschorting\": {\r\n \"indicatie\": true,\r\n \"reden\": \"string\"\r\n },\r\n \"selectielijstklasse\": \"https://referentielijsten.roxit.nl/api/v1/resultaten/0fe71ce3-b1e1-48eb-9070-be2756fc71b5\",\r\n \"hoofdzaak\": null,\r\n \"deelzaken\": [],\r\n \"relevanteAndereZaken\": [],\r\n \"eigenschappen\": [],\r\n \"rollen\": [],\r\n \"status\": null,\r\n \"zaakinformatieobjecten\": [],\r\n \"zaakobjecten\": [],\r\n \"resultaat\": null,\r\n \"kenmerken\": [],\r\n \"archiefnominatie\": null,\r\n \"archiefstatus\": \"nog_te_archiveren\",\r\n \"archiefactiedatum\": null,\r\n \"opdrachtgevendeOrganisatie\": null,\r\n \"processobjectaard\": null,\r\n \"startdatumBewaartermijn\": null,\r\n \"processobject\": null\r\n}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "58aeec6a-1f72-454d-8eb5-22ee416313f6", + "type": "text/javascript", + "packages": {}, + "exec": [ + "pm.test(\"Zaak bijwerken met betalingsindicatie nvt verandert laatsteBetaalDatum naar null\", function(){", + " var jsonBody = pm.response.json();", + " pm.expect(jsonBody.betalingsindicatie).to.be.equal(\"nvt\");", + " pm.expect(jsonBody.laatsteBetaaldatum).to.be.equal(null);", + "});" + ], + "_lastExecutionId": "15555669-10be-47e4-8fa8-97b570985b5b" + } + }, + { + "listen": "prerequest", + "script": { + "id": "e6fa283f-290c-47ac-80ef-5f061d20955d", + "type": "text/javascript", + "packages": {}, + "exec": [ + "" + ], + "_lastExecutionId": "6a789948-98b8-46a1-9a96-e9516b3d2428" + } + } + ] + }, + "request": { + "url": { + "protocol": "http", + "port": "8080", + "path": [ + "index.php", + "apps", + "procest", + "api", + "zgw", + "zaken", + "v1", + "zaken", + "1a407380-f716-4537-82ae-2126e7b4f379" + ], + "host": [ + "localhost" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Content-Crs", + "value": "EPSG:4326" + }, + { + "key": "Accept-Crs", + "value": "EPSG:4326" + }, + { + "key": "Authorization", + "value": "Bearer eyJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJwcm9jZXN0LWFkbWluIiwiY2xpZW50X2lkIjoicHJvY2VzdC1hZG1pbiIsImlhdCI6IjE3NzMxNDUxODEiLCJ1c2VyX2lkIjoicHJvY2VzdC1hZG1pbiIsInVzZXJfcmVwcmVzZW50YXRpb24iOiIifQ.kY4sg3xpkJqLaO0RA8Vt5HKeEfLS7OFnBD3sex5epZo", + "system": true + }, + { + "key": "User-Agent", + "value": "PostmanRuntime/7.39.1", + "system": true + }, + { + "key": "Accept", + "value": "*/*", + "system": true + }, + { + "key": "Cache-Control", + "value": "no-cache", + "system": true + }, + { + "key": "Postman-Token", + "value": "7725c8c5-d79b-4325-afa2-70ac5735a4b7", + "system": true + }, + { + "key": "Host", + "value": "localhost:8080", + "system": true + }, + { + "key": "Accept-Encoding", + "value": "gzip, deflate, br", + "system": true + }, + { + "key": "Connection", + "value": "keep-alive", + "system": true + }, + { + "key": "Content-Length", + "value": "1588", + "system": true + }, + { + "key": "Cookie", + "value": "ocvp3112b4wg=5b072e9dc825cc51685afe3c0296ee08; oc_sessionPassphrase=LBNdKxRzA0iqoULIruNxDDh2BK3O%2BrCIU8aUmiUcOFvy5Xw1YfjwQNlmBW2IkGwJYtxXh9%2BwDN6vYuGNX07tXzkBtjQJUWTGdzf8AIOUIVxVx5DfyWAQZ7nmYmQv6XSE; nc_sameSiteCookielax=true; nc_sameSiteCookiestrict=true", + "system": true + } + ], + "method": "PUT", + "body": { + "mode": "raw", + "raw": "{\r\n\r\n \"bronorganisatie\": \"000000000\",\r\n \"omschrijving\": \"string\",\r\n \"toelichting\": \"string\",\r\n \"zaaktype\": \"http://localhost:8080/index.php/apps/procest/api/zgw/catalogi/v1/zaaktypen/619dc3e5-52f1-4294-a569-f21d16f44879\",\r\n \"registratiedatum\": \"2019-04-09\",\r\n \"verantwoordelijkeOrganisatie\": \"000000000\",\r\n \"startdatum\": \"2019-04-09\",\r\n \"einddatum\": null,\r\n \"einddatumGepland\": \"2019-04-20\",\r\n \"uiterlijkeEinddatumAfdoening\": \"2019-04-09\",\r\n \"publicatiedatum\": \"2019-04-09\",\r\n \"communicatiekanaal\": \"\",\r\n \"productenOfDiensten\": [],\r\n \"vertrouwelijkheidaanduiding\": \"geheim\",\r\n\r\n\r\n \"betalingsindicatie\": \"nvt\",\r\n \"betalingsindicatieWeergave\": null,\r\n \"laatsteBetaaldatum\": null,\r\n \"zaakgeometrie\": {\r\n \"type\": \"Point\",\r\n \"coordinates\": [\r\n 53.0,\r\n 5.0\r\n ]\r\n },\r\n \"verlenging\": null,\r\n \"opschorting\": {\r\n \"indicatie\": true,\r\n \"reden\": \"string\"\r\n },\r\n \"selectielijstklasse\": \"https://referentielijsten.roxit.nl/api/v1/resultaten/0fe71ce3-b1e1-48eb-9070-be2756fc71b5\",\r\n \"hoofdzaak\": null,\r\n \"deelzaken\": [],\r\n \"relevanteAndereZaken\": [],\r\n \"eigenschappen\": [],\r\n \"rollen\": [],\r\n \"status\": null,\r\n \"zaakinformatieobjecten\": [],\r\n \"zaakobjecten\": [],\r\n \"resultaat\": null,\r\n \"kenmerken\": [],\r\n \"archiefnominatie\": null,\r\n \"archiefstatus\": \"nog_te_archiveren\",\r\n \"archiefactiedatum\": null,\r\n \"opdrachtgevendeOrganisatie\": null,\r\n \"processobjectaard\": null,\r\n \"startdatumBewaartermijn\": null,\r\n \"processobject\": null\r\n}" + }, + "auth": { + "type": "jwt", + "jwt": [ + { + "type": "string", + "value": "{\r\n \"iss\": \"procest-admin\",\r\n \"client_id\": \"procest-admin\",\r\n \"iat\": \"1773145181\",\r\n \"user_id\": \"procest-admin\",\r\n \"user_representation\": \"\"\r\n}", + "key": "payload" + }, + { + "type": "string", + "value": "procest-admin-secret-key-for-testing", + "key": "secret" + }, + { + "type": "string", + "value": "HS256", + "key": "algorithm" + }, + { + "type": "boolean", + "value": false, + "key": "isSecretBase64Encoded" + }, + { + "type": "string", + "value": "header", + "key": "addTokenTo" + }, + { + "type": "string", + "value": "Bearer", + "key": "headerPrefix" + }, + { + "type": "string", + "value": "token", + "key": "queryParamKey" + }, + { + "type": "string", + "value": "{}", + "key": "header" + } + ] + } + }, + "response": { + "id": "aef83415-064e-48f6-8ac1-5197146e4d49", + "status": "OK", + "code": 200, + "header": [ + { + "key": "Date", + "value": "Tue, 10 Mar 2026 12:19:40 GMT" + }, + { + "key": "Server", + "value": "Apache/2.4.66 (Debian)" + }, + { + "key": "X-Content-Type-Options", + "value": "nosniff" + }, + { + "key": "X-Frame-Options", + "value": "SAMEORIGIN" + }, + { + "key": "X-Permitted-Cross-Domain-Policies", + "value": "none" + }, + { + "key": "X-Robots-Tag", + "value": "noindex, nofollow" + }, + { + "key": "Referrer-Policy", + "value": "no-referrer" + }, + { + "key": "X-Powered-By", + "value": "PHP/8.3.30" + }, + { + "key": "Content-Security-Policy", + "value": "default-src 'none';base-uri 'none';manifest-src 'self';frame-ancestors 'none'" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=5b072e9dc825cc51685afe3c0296ee08; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=5b072e9dc825cc51685afe3c0296ee08; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=5b072e9dc825cc51685afe3c0296ee08; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=5b072e9dc825cc51685afe3c0296ee08; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=5b072e9dc825cc51685afe3c0296ee08; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=ec01dbcf4a19ced78adf53e4a704e205; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=ec01dbcf4a19ced78adf53e4a704e205; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=ec01dbcf4a19ced78adf53e4a704e205; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=ec01dbcf4a19ced78adf53e4a704e205; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=ec01dbcf4a19ced78adf53e4a704e205; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "X-Request-Id", + "value": "lhelMUA51aMllSsZFEJY" + }, + { + "key": "Cache-Control", + "value": "no-cache, no-store, must-revalidate" + }, + { + "key": "Feature-Policy", + "value": "autoplay 'none';camera 'none';fullscreen 'none';geolocation 'none';microphone 'none';payment 'none'" + }, + { + "key": "X-User-Id", + "value": "admin" + }, + { + "key": "Content-Encoding", + "value": "gzip" + }, + { + "key": "Content-Length", + "value": "419" + }, + { + "key": "Keep-Alive", + "value": "timeout=5, max=97" + }, + { + "key": "Connection", + "value": "Keep-Alive" + }, + { + "key": "Content-Type", + "value": "application/json; charset=utf-8" + } + ], + "stream": { + "type": "Buffer", + "data": [ + 123, + 34, + 117, + 114, + 108, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 122, + 97, + 107, + 101, + 110, + 92, + 47, + 118, + 49, + 92, + 47, + 122, + 97, + 107, + 101, + 110, + 92, + 47, + 49, + 97, + 52, + 48, + 55, + 51, + 56, + 48, + 45, + 102, + 55, + 49, + 54, + 45, + 52, + 53, + 51, + 55, + 45, + 56, + 50, + 97, + 101, + 45, + 50, + 49, + 50, + 54, + 101, + 55, + 98, + 52, + 102, + 51, + 55, + 57, + 34, + 44, + 34, + 117, + 117, + 105, + 100, + 34, + 58, + 34, + 49, + 97, + 52, + 48, + 55, + 51, + 56, + 48, + 45, + 102, + 55, + 49, + 54, + 45, + 52, + 53, + 51, + 55, + 45, + 56, + 50, + 97, + 101, + 45, + 50, + 49, + 50, + 54, + 101, + 55, + 98, + 52, + 102, + 51, + 55, + 57, + 34, + 44, + 34, + 105, + 100, + 101, + 110, + 116, + 105, + 102, + 105, + 99, + 97, + 116, + 105, + 101, + 34, + 58, + 34, + 34, + 44, + 34, + 111, + 109, + 115, + 99, + 104, + 114, + 105, + 106, + 118, + 105, + 110, + 103, + 34, + 58, + 34, + 115, + 116, + 114, + 105, + 110, + 103, + 34, + 44, + 34, + 116, + 111, + 101, + 108, + 105, + 99, + 104, + 116, + 105, + 110, + 103, + 34, + 58, + 34, + 115, + 116, + 114, + 105, + 110, + 103, + 34, + 44, + 34, + 122, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 105, + 92, + 47, + 118, + 49, + 92, + 47, + 122, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 110, + 92, + 47, + 54, + 49, + 57, + 100, + 99, + 51, + 101, + 53, + 45, + 53, + 50, + 102, + 49, + 45, + 52, + 50, + 57, + 52, + 45, + 97, + 53, + 54, + 57, + 45, + 102, + 50, + 49, + 100, + 49, + 54, + 102, + 52, + 52, + 56, + 55, + 57, + 34, + 44, + 34, + 114, + 101, + 103, + 105, + 115, + 116, + 114, + 97, + 116, + 105, + 101, + 100, + 97, + 116, + 117, + 109, + 34, + 58, + 34, + 50, + 48, + 50, + 54, + 45, + 48, + 51, + 45, + 49, + 48, + 84, + 49, + 50, + 58, + 49, + 57, + 58, + 51, + 57, + 43, + 48, + 48, + 58, + 48, + 48, + 34, + 44, + 34, + 115, + 116, + 97, + 114, + 116, + 100, + 97, + 116, + 117, + 109, + 34, + 58, + 34, + 50, + 48, + 49, + 57, + 45, + 48, + 52, + 45, + 48, + 57, + 34, + 44, + 34, + 101, + 105, + 110, + 100, + 100, + 97, + 116, + 117, + 109, + 34, + 58, + 110, + 117, + 108, + 108, + 44, + 34, + 101, + 105, + 110, + 100, + 100, + 97, + 116, + 117, + 109, + 71, + 101, + 112, + 108, + 97, + 110, + 100, + 34, + 58, + 34, + 50, + 48, + 49, + 57, + 45, + 48, + 52, + 45, + 50, + 48, + 34, + 44, + 34, + 117, + 105, + 116, + 101, + 114, + 108, + 105, + 106, + 107, + 101, + 69, + 105, + 110, + 100, + 100, + 97, + 116, + 117, + 109, + 65, + 102, + 100, + 111, + 101, + 110, + 105, + 110, + 103, + 34, + 58, + 34, + 50, + 48, + 49, + 57, + 45, + 48, + 52, + 45, + 48, + 57, + 34, + 44, + 34, + 118, + 101, + 114, + 116, + 114, + 111, + 117, + 119, + 101, + 108, + 105, + 106, + 107, + 104, + 101, + 105, + 100, + 97, + 97, + 110, + 100, + 117, + 105, + 100, + 105, + 110, + 103, + 34, + 58, + 34, + 103, + 101, + 104, + 101, + 105, + 109, + 34, + 44, + 34, + 118, + 101, + 114, + 97, + 110, + 116, + 119, + 111, + 111, + 114, + 100, + 101, + 108, + 105, + 106, + 107, + 101, + 79, + 114, + 103, + 97, + 110, + 105, + 115, + 97, + 116, + 105, + 101, + 34, + 58, + 34, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 34, + 44, + 34, + 97, + 114, + 99, + 104, + 105, + 101, + 102, + 110, + 111, + 109, + 105, + 110, + 97, + 116, + 105, + 101, + 34, + 58, + 110, + 117, + 108, + 108, + 44, + 34, + 97, + 114, + 99, + 104, + 105, + 101, + 102, + 97, + 99, + 116, + 105, + 101, + 100, + 97, + 116, + 117, + 109, + 34, + 58, + 110, + 117, + 108, + 108, + 44, + 34, + 97, + 114, + 99, + 104, + 105, + 101, + 102, + 115, + 116, + 97, + 116, + 117, + 115, + 34, + 58, + 34, + 110, + 111, + 103, + 95, + 116, + 101, + 95, + 97, + 114, + 99, + 104, + 105, + 118, + 101, + 114, + 101, + 110, + 34, + 44, + 34, + 98, + 101, + 116, + 97, + 108, + 105, + 110, + 103, + 115, + 105, + 110, + 100, + 105, + 99, + 97, + 116, + 105, + 101, + 34, + 58, + 34, + 110, + 118, + 116, + 34, + 44, + 34, + 108, + 97, + 97, + 116, + 115, + 116, + 101, + 66, + 101, + 116, + 97, + 97, + 108, + 100, + 97, + 116, + 117, + 109, + 34, + 58, + 110, + 117, + 108, + 108, + 44, + 34, + 104, + 111, + 111, + 102, + 100, + 122, + 97, + 97, + 107, + 34, + 58, + 110, + 117, + 108, + 108, + 125 + ] + }, + "cookie": [], + "responseTime": 184, + "responseSize": 776 + }, + "id": "2cef4b77-d255-42d4-ad51-23b395b14539", + "assertions": [ + { + "assertion": "Zaak bijwerken met betalingsindicatie nvt verandert laatsteBetaalDatum naar null", + "skipped": false + } + ] + }, + { + "cursor": { + "ref": "717ae840-994f-4e2e-add6-3ba6940a47d1", + "length": 313, + "cycles": 1, + "position": 166, + "iteration": 0, + "httpRequestId": "8b3bc5e9-2b4f-47bc-a6fc-4db09ebc7adc" + }, + "item": { + "id": "6db620b4-8326-4901-b345-bbf9fa41688d", + "name": "(zrc-014e) Zaak deels bijwerken betalingsindicatie naar nvt moet laatsteBetaalDatum op null zetten", + "request": { + "url": { + "host": [ + "{{zaak_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Authorization", + "value": "{{token}}" + }, + { + "key": "Content-Crs", + "value": "EPSG:4326" + }, + { + "key": "Accept-Crs", + "value": "EPSG:4326" + } + ], + "method": "PATCH", + "body": { + "mode": "raw", + "raw": "{\n\t\"betalingsindicatie\": \"nvt\"\n}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "6dc75edf-0c75-402e-a1d8-e915209287e2", + "type": "text/javascript", + "exec": [ + "pm.test(\"Zaak deels bijwerken met betalingsindicatie nvt verandert laatsteBetaalDatum naar null\", function(){", + " var jsonBody = pm.response.json();", + " pm.expect(jsonBody.betalingsindicatie).to.be.equal(\"nvt\");", + " pm.expect(jsonBody.laatsteBetaaldatum).to.be.equal(null);", + "});" + ], + "_lastExecutionId": "a85aad5b-28e5-4a65-abe9-15f0527b90ec" + } + }, + { + "listen": "prerequest", + "script": { + "id": "6b236ca1-7f08-432c-ae00-14ba7be099a7", + "type": "text/javascript", + "exec": [ + "" + ], + "_lastExecutionId": "53e3c07f-a931-4202-8b13-23946762867b" + } + } + ] + }, + "request": { + "url": { + "protocol": "http", + "port": "8080", + "path": [ + "index.php", + "apps", + "procest", + "api", + "zgw", + "zaken", + "v1", + "zaken", + "1a407380-f716-4537-82ae-2126e7b4f379" + ], + "host": [ + "localhost" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Content-Crs", + "value": "EPSG:4326" + }, + { + "key": "Accept-Crs", + "value": "EPSG:4326" + }, + { + "key": "Authorization", + "value": "Bearer eyJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJwcm9jZXN0LWFkbWluIiwiY2xpZW50X2lkIjoicHJvY2VzdC1hZG1pbiIsImlhdCI6IjE3NzMxNDUxODEiLCJ1c2VyX2lkIjoicHJvY2VzdC1hZG1pbiIsInVzZXJfcmVwcmVzZW50YXRpb24iOiIifQ.kY4sg3xpkJqLaO0RA8Vt5HKeEfLS7OFnBD3sex5epZo", + "system": true + }, + { + "key": "User-Agent", + "value": "PostmanRuntime/7.39.1", + "system": true + }, + { + "key": "Accept", + "value": "*/*", + "system": true + }, + { + "key": "Cache-Control", + "value": "no-cache", + "system": true + }, + { + "key": "Postman-Token", + "value": "7dc0bce4-5851-4b5f-b5ad-994747b48692", + "system": true + }, + { + "key": "Host", + "value": "localhost:8080", + "system": true + }, + { + "key": "Accept-Encoding", + "value": "gzip, deflate, br", + "system": true + }, + { + "key": "Connection", + "value": "keep-alive", + "system": true + }, + { + "key": "Content-Length", + "value": "32", + "system": true + }, + { + "key": "Cookie", + "value": "ocvp3112b4wg=ec01dbcf4a19ced78adf53e4a704e205; oc_sessionPassphrase=LBNdKxRzA0iqoULIruNxDDh2BK3O%2BrCIU8aUmiUcOFvy5Xw1YfjwQNlmBW2IkGwJYtxXh9%2BwDN6vYuGNX07tXzkBtjQJUWTGdzf8AIOUIVxVx5DfyWAQZ7nmYmQv6XSE; nc_sameSiteCookielax=true; nc_sameSiteCookiestrict=true", + "system": true + } + ], + "method": "PATCH", + "body": { + "mode": "raw", + "raw": "{\n\t\"betalingsindicatie\": \"nvt\"\n}" + }, + "auth": { + "type": "jwt", + "jwt": [ + { + "type": "string", + "value": "{\r\n \"iss\": \"procest-admin\",\r\n \"client_id\": \"procest-admin\",\r\n \"iat\": \"1773145181\",\r\n \"user_id\": \"procest-admin\",\r\n \"user_representation\": \"\"\r\n}", + "key": "payload" + }, + { + "type": "string", + "value": "procest-admin-secret-key-for-testing", + "key": "secret" + }, + { + "type": "string", + "value": "HS256", + "key": "algorithm" + }, + { + "type": "boolean", + "value": false, + "key": "isSecretBase64Encoded" + }, + { + "type": "string", + "value": "header", + "key": "addTokenTo" + }, + { + "type": "string", + "value": "Bearer", + "key": "headerPrefix" + }, + { + "type": "string", + "value": "token", + "key": "queryParamKey" + }, + { + "type": "string", + "value": "{}", + "key": "header" + } + ] + } + }, + "response": { + "id": "5db9579a-15e4-4401-9311-0540acf51f7d", + "status": "OK", + "code": 200, + "header": [ + { + "key": "Date", + "value": "Tue, 10 Mar 2026 12:19:40 GMT" + }, + { + "key": "Server", + "value": "Apache/2.4.66 (Debian)" + }, + { + "key": "X-Content-Type-Options", + "value": "nosniff" + }, + { + "key": "X-Frame-Options", + "value": "SAMEORIGIN" + }, + { + "key": "X-Permitted-Cross-Domain-Policies", + "value": "none" + }, + { + "key": "X-Robots-Tag", + "value": "noindex, nofollow" + }, + { + "key": "Referrer-Policy", + "value": "no-referrer" + }, + { + "key": "X-Powered-By", + "value": "PHP/8.3.30" + }, + { + "key": "Content-Security-Policy", + "value": "default-src 'none';base-uri 'none';manifest-src 'self';frame-ancestors 'none'" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=ec01dbcf4a19ced78adf53e4a704e205; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=ec01dbcf4a19ced78adf53e4a704e205; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=ec01dbcf4a19ced78adf53e4a704e205; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=ec01dbcf4a19ced78adf53e4a704e205; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=ec01dbcf4a19ced78adf53e4a704e205; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=0d8ebeec3e7b845ef55858c366be0e8c; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=0d8ebeec3e7b845ef55858c366be0e8c; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=0d8ebeec3e7b845ef55858c366be0e8c; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=0d8ebeec3e7b845ef55858c366be0e8c; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=0d8ebeec3e7b845ef55858c366be0e8c; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "X-Request-Id", + "value": "lEaqNf7WLwPQvvPW9HLs" + }, + { + "key": "Cache-Control", + "value": "no-cache, no-store, must-revalidate" + }, + { + "key": "Feature-Policy", + "value": "autoplay 'none';camera 'none';fullscreen 'none';geolocation 'none';microphone 'none';payment 'none'" + }, + { + "key": "X-User-Id", + "value": "admin" + }, + { + "key": "Content-Encoding", + "value": "gzip" + }, + { + "key": "Content-Length", + "value": "419" + }, + { + "key": "Keep-Alive", + "value": "timeout=5, max=96" + }, + { + "key": "Connection", + "value": "Keep-Alive" + }, + { + "key": "Content-Type", + "value": "application/json; charset=utf-8" + } + ], + "stream": { + "type": "Buffer", + "data": [ + 123, + 34, + 117, + 114, + 108, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 122, + 97, + 107, + 101, + 110, + 92, + 47, + 118, + 49, + 92, + 47, + 122, + 97, + 107, + 101, + 110, + 92, + 47, + 49, + 97, + 52, + 48, + 55, + 51, + 56, + 48, + 45, + 102, + 55, + 49, + 54, + 45, + 52, + 53, + 51, + 55, + 45, + 56, + 50, + 97, + 101, + 45, + 50, + 49, + 50, + 54, + 101, + 55, + 98, + 52, + 102, + 51, + 55, + 57, + 34, + 44, + 34, + 117, + 117, + 105, + 100, + 34, + 58, + 34, + 49, + 97, + 52, + 48, + 55, + 51, + 56, + 48, + 45, + 102, + 55, + 49, + 54, + 45, + 52, + 53, + 51, + 55, + 45, + 56, + 50, + 97, + 101, + 45, + 50, + 49, + 50, + 54, + 101, + 55, + 98, + 52, + 102, + 51, + 55, + 57, + 34, + 44, + 34, + 105, + 100, + 101, + 110, + 116, + 105, + 102, + 105, + 99, + 97, + 116, + 105, + 101, + 34, + 58, + 34, + 34, + 44, + 34, + 111, + 109, + 115, + 99, + 104, + 114, + 105, + 106, + 118, + 105, + 110, + 103, + 34, + 58, + 34, + 115, + 116, + 114, + 105, + 110, + 103, + 34, + 44, + 34, + 116, + 111, + 101, + 108, + 105, + 99, + 104, + 116, + 105, + 110, + 103, + 34, + 58, + 34, + 115, + 116, + 114, + 105, + 110, + 103, + 34, + 44, + 34, + 122, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 105, + 92, + 47, + 118, + 49, + 92, + 47, + 122, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 110, + 92, + 47, + 54, + 49, + 57, + 100, + 99, + 51, + 101, + 53, + 45, + 53, + 50, + 102, + 49, + 45, + 52, + 50, + 57, + 52, + 45, + 97, + 53, + 54, + 57, + 45, + 102, + 50, + 49, + 100, + 49, + 54, + 102, + 52, + 52, + 56, + 55, + 57, + 34, + 44, + 34, + 114, + 101, + 103, + 105, + 115, + 116, + 114, + 97, + 116, + 105, + 101, + 100, + 97, + 116, + 117, + 109, + 34, + 58, + 34, + 50, + 48, + 50, + 54, + 45, + 48, + 51, + 45, + 49, + 48, + 84, + 49, + 50, + 58, + 49, + 57, + 58, + 51, + 57, + 43, + 48, + 48, + 58, + 48, + 48, + 34, + 44, + 34, + 115, + 116, + 97, + 114, + 116, + 100, + 97, + 116, + 117, + 109, + 34, + 58, + 34, + 50, + 48, + 49, + 57, + 45, + 48, + 52, + 45, + 48, + 57, + 34, + 44, + 34, + 101, + 105, + 110, + 100, + 100, + 97, + 116, + 117, + 109, + 34, + 58, + 110, + 117, + 108, + 108, + 44, + 34, + 101, + 105, + 110, + 100, + 100, + 97, + 116, + 117, + 109, + 71, + 101, + 112, + 108, + 97, + 110, + 100, + 34, + 58, + 34, + 50, + 48, + 49, + 57, + 45, + 48, + 52, + 45, + 50, + 48, + 34, + 44, + 34, + 117, + 105, + 116, + 101, + 114, + 108, + 105, + 106, + 107, + 101, + 69, + 105, + 110, + 100, + 100, + 97, + 116, + 117, + 109, + 65, + 102, + 100, + 111, + 101, + 110, + 105, + 110, + 103, + 34, + 58, + 34, + 50, + 48, + 49, + 57, + 45, + 48, + 52, + 45, + 48, + 57, + 34, + 44, + 34, + 118, + 101, + 114, + 116, + 114, + 111, + 117, + 119, + 101, + 108, + 105, + 106, + 107, + 104, + 101, + 105, + 100, + 97, + 97, + 110, + 100, + 117, + 105, + 100, + 105, + 110, + 103, + 34, + 58, + 34, + 103, + 101, + 104, + 101, + 105, + 109, + 34, + 44, + 34, + 118, + 101, + 114, + 97, + 110, + 116, + 119, + 111, + 111, + 114, + 100, + 101, + 108, + 105, + 106, + 107, + 101, + 79, + 114, + 103, + 97, + 110, + 105, + 115, + 97, + 116, + 105, + 101, + 34, + 58, + 34, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 34, + 44, + 34, + 97, + 114, + 99, + 104, + 105, + 101, + 102, + 110, + 111, + 109, + 105, + 110, + 97, + 116, + 105, + 101, + 34, + 58, + 110, + 117, + 108, + 108, + 44, + 34, + 97, + 114, + 99, + 104, + 105, + 101, + 102, + 97, + 99, + 116, + 105, + 101, + 100, + 97, + 116, + 117, + 109, + 34, + 58, + 110, + 117, + 108, + 108, + 44, + 34, + 97, + 114, + 99, + 104, + 105, + 101, + 102, + 115, + 116, + 97, + 116, + 117, + 115, + 34, + 58, + 34, + 110, + 111, + 103, + 95, + 116, + 101, + 95, + 97, + 114, + 99, + 104, + 105, + 118, + 101, + 114, + 101, + 110, + 34, + 44, + 34, + 98, + 101, + 116, + 97, + 108, + 105, + 110, + 103, + 115, + 105, + 110, + 100, + 105, + 99, + 97, + 116, + 105, + 101, + 34, + 58, + 34, + 110, + 118, + 116, + 34, + 44, + 34, + 108, + 97, + 97, + 116, + 115, + 116, + 101, + 66, + 101, + 116, + 97, + 97, + 108, + 100, + 97, + 116, + 117, + 109, + 34, + 58, + 110, + 117, + 108, + 108, + 44, + 34, + 104, + 111, + 111, + 102, + 100, + 122, + 97, + 97, + 107, + 34, + 58, + 110, + 117, + 108, + 108, + 125 + ] + }, + "cookie": [], + "responseTime": 201, + "responseSize": 776 + }, + "id": "6db620b4-8326-4901-b345-bbf9fa41688d", + "assertions": [ + { + "assertion": "Zaak deels bijwerken met betalingsindicatie nvt verandert laatsteBetaalDatum naar null", + "skipped": false + } + ] + }, + { + "cursor": { + "ref": "fa3bb31f-42dd-41eb-9bec-a5830df30692", + "length": 313, + "cycles": 1, + "position": 167, + "iteration": 0, + "httpRequestId": "2dded79a-a089-449d-a26d-2b83994aa2a2" + }, + "item": { + "id": "f06ab89e-66c5-4d05-bc83-c64a54cffcfa", + "name": "(zrc-015a) Zaak productenOfDiensten validatie met Zaaktype productenOfDiensten", + "request": { + "url": { + "path": [ + "zaken" + ], + "host": [ + "{{zrc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Accept-Crs", + "value": "EPSG:4326" + }, + { + "key": "Content-Crs", + "value": "EPSG:4326" + }, + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\r\n\r\n \"bronorganisatie\": \"000000000\",\r\n \"omschrijving\": \"string\",\r\n \"toelichting\": \"string\",\r\n \"zaaktype\": \"{{zaaktype_url}}\",\r\n \"registratiedatum\": \"2019-04-09\",\r\n \"verantwoordelijkeOrganisatie\": \"000000000\",\r\n \"startdatum\": \"2019-04-09\",\r\n \"einddatum\": null,\r\n \"einddatumGepland\": \"2019-04-20\",\r\n \"uiterlijkeEinddatumAfdoening\": \"2019-04-09\",\r\n \"publicatiedatum\": \"2019-04-09\",\r\n \"communicatiekanaal\": \"\",\r\n \"productenOfDiensten\": [\"{{zaak_url}}\"],\r\n \"vertrouwelijkheidaanduiding\": \"geheim\",\r\n \"betalingsindicatie\": \"geheel\",\r\n \"betalingsindicatieWeergave\": null,\r\n \"laatsteBetaaldatum\": \"2019-01-01T00:00:00Z\",\r\n \"zaakgeometrie\": {\r\n \"type\": \"Point\",\r\n \"coordinates\": [\r\n 53.0,\r\n 5.0\r\n ]\r\n },\r\n \"verlenging\": null,\r\n \"opschorting\": {\r\n \"indicatie\": true,\r\n \"reden\": \"string\"\r\n },\r\n \"selectielijstklasse\": \"https://referentielijsten.roxit.nl/api/v1/resultaten/0fe71ce3-b1e1-48eb-9070-be2756fc71b5\",\r\n \"hoofdzaak\": null,\r\n \"deelzaken\": [],\r\n \"relevanteAndereZaken\": [],\r\n \"eigenschappen\": [],\r\n \"rollen\": [],\r\n \"status\": null,\r\n \"zaakinformatieobjecten\": [],\r\n \"zaakobjecten\": [],\r\n \"resultaat\": null,\r\n \"kenmerken\": [],\r\n \"archiefnominatie\": null,\r\n \"archiefstatus\": \"nog_te_archiveren\",\r\n \"archiefactiedatum\": null,\r\n \"opdrachtgevendeOrganisatie\": null,\r\n \"processobjectaard\": null,\r\n \"startdatumBewaartermijn\": null,\r\n \"processobject\": null\r\n}" + } + }, + "response": [], + "event": [ + { + "listen": "prerequest", + "script": { + "id": "2f58eeba-e8e8-4ecf-b7c9-f2596ee006cd", + "type": "text/javascript", + "packages": {}, + "exec": [ + "" + ], + "_lastExecutionId": "0da61bc8-c678-46d7-836b-f5d89ec2fee6" + } + }, + { + "listen": "test", + "script": { + "id": "f8585311-5903-4d13-be16-be1f09c4118d", + "type": "text/javascript", + "packages": {}, + "exec": [ + "pm.test(\"Zaak aanmaken met productenOfDiensten niet in Zaaktype gedefinieerd geeft 400\", function() {", + " pm.response.to.have.status(400);", + " ", + " // Verify that the 400 is returned for the correct reason", + " var error = pm.response.json()[\"invalidParams\"][0];", + " pm.expect(error.name).to.be.equal(\"productenOfDiensten\");", + " pm.expect(error.code).to.be.equal(\"invalid-products-services\");", + "});", + "", + "if(pm.response.code == 201) {", + " pm.environment.set(\"created_zaak_url\", pm.response.json().url);", + "", + "}" + ], + "_lastExecutionId": "0851dfb3-31ab-4d93-ab85-9767831f48c3" + } + } + ] + }, + "request": { + "url": { + "protocol": "http", + "port": "8080", + "path": [ + "index.php", + "apps", + "procest", + "api", + "zgw", + "zaken", + "v1", + "zaken" + ], + "host": [ + "localhost" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Accept-Crs", + "value": "EPSG:4326" + }, + { + "key": "Content-Crs", + "value": "EPSG:4326" + }, + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Authorization", + "value": "Bearer eyJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJwcm9jZXN0LWFkbWluIiwiY2xpZW50X2lkIjoicHJvY2VzdC1hZG1pbiIsImlhdCI6IjE3NzMxNDUxODEiLCJ1c2VyX2lkIjoicHJvY2VzdC1hZG1pbiIsInVzZXJfcmVwcmVzZW50YXRpb24iOiIifQ.kY4sg3xpkJqLaO0RA8Vt5HKeEfLS7OFnBD3sex5epZo", + "system": true + }, + { + "key": "User-Agent", + "value": "PostmanRuntime/7.39.1", + "system": true + }, + { + "key": "Accept", + "value": "*/*", + "system": true + }, + { + "key": "Cache-Control", + "value": "no-cache", + "system": true + }, + { + "key": "Postman-Token", + "value": "6080c28a-e66c-4d85-acb5-d3663e4b9bd1", + "system": true + }, + { + "key": "Host", + "value": "localhost:8080", + "system": true + }, + { + "key": "Accept-Encoding", + "value": "gzip, deflate, br", + "system": true + }, + { + "key": "Connection", + "value": "keep-alive", + "system": true + }, + { + "key": "Content-Length", + "value": "1711", + "system": true + }, + { + "key": "Cookie", + "value": "ocvp3112b4wg=0d8ebeec3e7b845ef55858c366be0e8c; oc_sessionPassphrase=LBNdKxRzA0iqoULIruNxDDh2BK3O%2BrCIU8aUmiUcOFvy5Xw1YfjwQNlmBW2IkGwJYtxXh9%2BwDN6vYuGNX07tXzkBtjQJUWTGdzf8AIOUIVxVx5DfyWAQZ7nmYmQv6XSE; nc_sameSiteCookielax=true; nc_sameSiteCookiestrict=true", + "system": true + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\r\n\r\n \"bronorganisatie\": \"000000000\",\r\n \"omschrijving\": \"string\",\r\n \"toelichting\": \"string\",\r\n \"zaaktype\": \"http://localhost:8080/index.php/apps/procest/api/zgw/catalogi/v1/zaaktypen/619dc3e5-52f1-4294-a569-f21d16f44879\",\r\n \"registratiedatum\": \"2019-04-09\",\r\n \"verantwoordelijkeOrganisatie\": \"000000000\",\r\n \"startdatum\": \"2019-04-09\",\r\n \"einddatum\": null,\r\n \"einddatumGepland\": \"2019-04-20\",\r\n \"uiterlijkeEinddatumAfdoening\": \"2019-04-09\",\r\n \"publicatiedatum\": \"2019-04-09\",\r\n \"communicatiekanaal\": \"\",\r\n \"productenOfDiensten\": [\"http://localhost:8080/index.php/apps/procest/api/zgw/zaken/v1/zaken/1a407380-f716-4537-82ae-2126e7b4f379\"],\r\n \"vertrouwelijkheidaanduiding\": \"geheim\",\r\n \"betalingsindicatie\": \"geheel\",\r\n \"betalingsindicatieWeergave\": null,\r\n \"laatsteBetaaldatum\": \"2019-01-01T00:00:00Z\",\r\n \"zaakgeometrie\": {\r\n \"type\": \"Point\",\r\n \"coordinates\": [\r\n 53.0,\r\n 5.0\r\n ]\r\n },\r\n \"verlenging\": null,\r\n \"opschorting\": {\r\n \"indicatie\": true,\r\n \"reden\": \"string\"\r\n },\r\n \"selectielijstklasse\": \"https://referentielijsten.roxit.nl/api/v1/resultaten/0fe71ce3-b1e1-48eb-9070-be2756fc71b5\",\r\n \"hoofdzaak\": null,\r\n \"deelzaken\": [],\r\n \"relevanteAndereZaken\": [],\r\n \"eigenschappen\": [],\r\n \"rollen\": [],\r\n \"status\": null,\r\n \"zaakinformatieobjecten\": [],\r\n \"zaakobjecten\": [],\r\n \"resultaat\": null,\r\n \"kenmerken\": [],\r\n \"archiefnominatie\": null,\r\n \"archiefstatus\": \"nog_te_archiveren\",\r\n \"archiefactiedatum\": null,\r\n \"opdrachtgevendeOrganisatie\": null,\r\n \"processobjectaard\": null,\r\n \"startdatumBewaartermijn\": null,\r\n \"processobject\": null\r\n}" + }, + "auth": { + "type": "jwt", + "jwt": [ + { + "type": "string", + "value": "{\r\n \"iss\": \"procest-admin\",\r\n \"client_id\": \"procest-admin\",\r\n \"iat\": \"1773145181\",\r\n \"user_id\": \"procest-admin\",\r\n \"user_representation\": \"\"\r\n}", + "key": "payload" + }, + { + "type": "string", + "value": "procest-admin-secret-key-for-testing", + "key": "secret" + }, + { + "type": "string", + "value": "HS256", + "key": "algorithm" + }, + { + "type": "boolean", + "value": false, + "key": "isSecretBase64Encoded" + }, + { + "type": "string", + "value": "header", + "key": "addTokenTo" + }, + { + "type": "string", + "value": "Bearer", + "key": "headerPrefix" + }, + { + "type": "string", + "value": "token", + "key": "queryParamKey" + }, + { + "type": "string", + "value": "{}", + "key": "header" + } + ] + } + }, + "response": { + "id": "f1311939-261a-4998-a02e-cbe248ebb79e", + "status": "Bad request", + "code": 400, + "header": [ + { + "key": "Date", + "value": "Tue, 10 Mar 2026 12:19:40 GMT" + }, + { + "key": "Server", + "value": "Apache/2.4.66 (Debian)" + }, + { + "key": "X-Content-Type-Options", + "value": "nosniff" + }, + { + "key": "X-Frame-Options", + "value": "SAMEORIGIN" + }, + { + "key": "X-Permitted-Cross-Domain-Policies", + "value": "none" + }, + { + "key": "X-Robots-Tag", + "value": "noindex, nofollow" + }, + { + "key": "Referrer-Policy", + "value": "no-referrer" + }, + { + "key": "X-Powered-By", + "value": "PHP/8.3.30" + }, + { + "key": "Content-Security-Policy", + "value": "default-src 'none';base-uri 'none';manifest-src 'self';frame-ancestors 'none'" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=0d8ebeec3e7b845ef55858c366be0e8c; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=0d8ebeec3e7b845ef55858c366be0e8c; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=0d8ebeec3e7b845ef55858c366be0e8c; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=0d8ebeec3e7b845ef55858c366be0e8c; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=0d8ebeec3e7b845ef55858c366be0e8c; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=3ff435ab05f5ddacea8a9647705ad8fd; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=3ff435ab05f5ddacea8a9647705ad8fd; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=3ff435ab05f5ddacea8a9647705ad8fd; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=3ff435ab05f5ddacea8a9647705ad8fd; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=3ff435ab05f5ddacea8a9647705ad8fd; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "X-Request-Id", + "value": "Sxmt8hp7fDUd4Zrx6JC9" + }, + { + "key": "Cache-Control", + "value": "no-cache, no-store, must-revalidate" + }, + { + "key": "Feature-Policy", + "value": "autoplay 'none';camera 'none';fullscreen 'none';geolocation 'none';microphone 'none';payment 'none'" + }, + { + "key": "X-User-Id", + "value": "admin" + }, + { + "key": "Content-Length", + "value": "343" + }, + { + "key": "Connection", + "value": "close" + }, + { + "key": "Content-Type", + "value": "application/json; charset=utf-8" + } + ], + "stream": { + "type": "Buffer", + "data": [ + 123, + 34, + 100, + 101, + 116, + 97, + 105, + 108, + 34, + 58, + 34, + 112, + 114, + 111, + 100, + 117, + 99, + 116, + 101, + 110, + 79, + 102, + 68, + 105, + 101, + 110, + 115, + 116, + 101, + 110, + 32, + 98, + 101, + 118, + 97, + 116, + 32, + 101, + 101, + 110, + 32, + 119, + 97, + 97, + 114, + 100, + 101, + 32, + 100, + 105, + 101, + 32, + 110, + 105, + 101, + 116, + 32, + 105, + 110, + 32, + 104, + 101, + 116, + 32, + 122, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 32, + 118, + 111, + 111, + 114, + 107, + 111, + 109, + 116, + 46, + 34, + 44, + 34, + 105, + 110, + 118, + 97, + 108, + 105, + 100, + 80, + 97, + 114, + 97, + 109, + 115, + 34, + 58, + 91, + 123, + 34, + 110, + 97, + 109, + 101, + 34, + 58, + 34, + 112, + 114, + 111, + 100, + 117, + 99, + 116, + 101, + 110, + 79, + 102, + 68, + 105, + 101, + 110, + 115, + 116, + 101, + 110, + 34, + 44, + 34, + 99, + 111, + 100, + 101, + 34, + 58, + 34, + 105, + 110, + 118, + 97, + 108, + 105, + 100, + 45, + 112, + 114, + 111, + 100, + 117, + 99, + 116, + 115, + 45, + 115, + 101, + 114, + 118, + 105, + 99, + 101, + 115, + 34, + 44, + 34, + 114, + 101, + 97, + 115, + 111, + 110, + 34, + 58, + 34, + 80, + 114, + 111, + 100, + 117, + 99, + 116, + 32, + 39, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 122, + 97, + 107, + 101, + 110, + 92, + 47, + 118, + 49, + 92, + 47, + 122, + 97, + 107, + 101, + 110, + 92, + 47, + 49, + 97, + 52, + 48, + 55, + 51, + 56, + 48, + 45, + 102, + 55, + 49, + 54, + 45, + 52, + 53, + 51, + 55, + 45, + 56, + 50, + 97, + 101, + 45, + 50, + 49, + 50, + 54, + 101, + 55, + 98, + 52, + 102, + 51, + 55, + 57, + 39, + 32, + 105, + 115, + 32, + 110, + 105, + 101, + 116, + 32, + 116, + 111, + 101, + 103, + 101, + 115, + 116, + 97, + 97, + 110, + 32, + 118, + 111, + 111, + 114, + 32, + 100, + 105, + 116, + 32, + 122, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 46, + 34, + 125, + 93, + 125 + ] + }, + "cookie": [], + "responseTime": 120, + "responseSize": 343 + }, + "id": "f06ab89e-66c5-4d05-bc83-c64a54cffcfa", + "assertions": [ + { + "assertion": "Zaak aanmaken met productenOfDiensten niet in Zaaktype gedefinieerd geeft 400", + "skipped": false + } + ] + }, + { + "cursor": { + "ref": "1a7103a5-6667-4fb0-b62e-bc7c696c544b", + "length": 313, + "cycles": 1, + "position": 168, + "iteration": 0, + "httpRequestId": "308a9390-d651-4e1b-98c9-aa1f001f3717" + }, + "item": { + "id": "01c22329-368d-4245-9e76-57c3ac80f39d", + "name": "(zrc-015b) Zaak productenOfDiensten validatie met Zaaktype productenOfDiensten", + "request": { + "url": { + "host": [ + "{{zaak_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Accept-Crs", + "value": "EPSG:4326" + }, + { + "key": "Content-Crs", + "value": "EPSG:4326" + }, + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "PUT", + "body": { + "mode": "raw", + "raw": "{\r\n\r\n \"bronorganisatie\": \"000000000\",\r\n \"omschrijving\": \"string\",\r\n \"toelichting\": \"string\",\r\n \"zaaktype\": \"{{zaaktype_url}}\",\r\n \"registratiedatum\": \"2019-04-09\",\r\n \"verantwoordelijkeOrganisatie\": \"000000000\",\r\n \"startdatum\": \"2019-04-09\",\r\n \"einddatum\": null,\r\n \"einddatumGepland\": \"2019-04-20\",\r\n \"uiterlijkeEinddatumAfdoening\": \"2019-04-09\",\r\n \"publicatiedatum\": \"2019-04-09\",\r\n \"communicatiekanaal\": \"\",\r\n \"productenOfDiensten\": [\"{{zaak_url}}\"],\r\n \"vertrouwelijkheidaanduiding\": \"geheim\",\r\n \"betalingsindicatie\": \"geheel\",\r\n \"betalingsindicatieWeergave\": null,\r\n \"laatsteBetaaldatum\": \"2019-01-01T00:00:00Z\",\r\n \"zaakgeometrie\": {\r\n \"type\": \"Point\",\r\n \"coordinates\": [\r\n 53.0,\r\n 5.0\r\n ]\r\n },\r\n \"verlenging\": null,\r\n \"opschorting\": {\r\n \"indicatie\": true,\r\n \"reden\": \"string\"\r\n },\r\n \"selectielijstklasse\": \"https://referentielijsten.roxit.nl/api/v1/resultaten/0fe71ce3-b1e1-48eb-9070-be2756fc71b5\",\r\n \"hoofdzaak\": null,\r\n \"deelzaken\": [],\r\n \"relevanteAndereZaken\": [],\r\n \"eigenschappen\": [],\r\n \"rollen\": [],\r\n \"status\": null,\r\n \"zaakinformatieobjecten\": [],\r\n \"zaakobjecten\": [],\r\n \"resultaat\": null,\r\n \"kenmerken\": [],\r\n \"archiefnominatie\": null,\r\n \"archiefstatus\": \"nog_te_archiveren\",\r\n \"archiefactiedatum\": null,\r\n \"opdrachtgevendeOrganisatie\": null,\r\n \"processobjectaard\": null,\r\n \"startdatumBewaartermijn\": null,\r\n \"processobject\": null\r\n}" + } + }, + "response": [], + "event": [ + { + "listen": "prerequest", + "script": { + "id": "67e3815b-6402-4c51-b6ac-ad99acc31edc", + "type": "text/javascript", + "packages": {}, + "exec": [ + "" + ], + "_lastExecutionId": "edd96868-6306-4887-a3e9-3e3f4c8ccd53" + } + }, + { + "listen": "test", + "script": { + "id": "96f47701-386f-4bd4-ab5b-78d7334a99e1", + "type": "text/javascript", + "packages": {}, + "exec": [ + "pm.test(\"Zaak bijwerken met productenOfDiensten niet in Zaaktype gedefinieerd geeft 400\", function() {", + " pm.response.to.have.status(400);", + " ", + " // Verify that the 400 is returned for the correct reason", + " var error = pm.response.json()[\"invalidParams\"][0];", + " pm.expect(error.name).to.be.equal(\"productenOfDiensten\");", + " pm.expect(error.code).to.be.equal(\"invalid-products-services\");", + "});" + ], + "_lastExecutionId": "916145c5-fd70-4e7e-9b26-374bfc08e3a8" + } + } + ] + }, + "request": { + "url": { + "protocol": "http", + "port": "8080", + "path": [ + "index.php", + "apps", + "procest", + "api", + "zgw", + "zaken", + "v1", + "zaken", + "1a407380-f716-4537-82ae-2126e7b4f379" + ], + "host": [ + "localhost" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Accept-Crs", + "value": "EPSG:4326" + }, + { + "key": "Content-Crs", + "value": "EPSG:4326" + }, + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Authorization", + "value": "Bearer eyJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJwcm9jZXN0LWFkbWluIiwiY2xpZW50X2lkIjoicHJvY2VzdC1hZG1pbiIsImlhdCI6IjE3NzMxNDUxODEiLCJ1c2VyX2lkIjoicHJvY2VzdC1hZG1pbiIsInVzZXJfcmVwcmVzZW50YXRpb24iOiIifQ.kY4sg3xpkJqLaO0RA8Vt5HKeEfLS7OFnBD3sex5epZo", + "system": true + }, + { + "key": "User-Agent", + "value": "PostmanRuntime/7.39.1", + "system": true + }, + { + "key": "Accept", + "value": "*/*", + "system": true + }, + { + "key": "Cache-Control", + "value": "no-cache", + "system": true + }, + { + "key": "Postman-Token", + "value": "9cbad8a8-e04f-43e8-bb09-3243a95070a3", + "system": true + }, + { + "key": "Host", + "value": "localhost:8080", + "system": true + }, + { + "key": "Accept-Encoding", + "value": "gzip, deflate, br", + "system": true + }, + { + "key": "Connection", + "value": "keep-alive", + "system": true + }, + { + "key": "Content-Length", + "value": "1711", + "system": true + }, + { + "key": "Cookie", + "value": "ocvp3112b4wg=3ff435ab05f5ddacea8a9647705ad8fd; oc_sessionPassphrase=LBNdKxRzA0iqoULIruNxDDh2BK3O%2BrCIU8aUmiUcOFvy5Xw1YfjwQNlmBW2IkGwJYtxXh9%2BwDN6vYuGNX07tXzkBtjQJUWTGdzf8AIOUIVxVx5DfyWAQZ7nmYmQv6XSE; nc_sameSiteCookielax=true; nc_sameSiteCookiestrict=true", + "system": true + } + ], + "method": "PUT", + "body": { + "mode": "raw", + "raw": "{\r\n\r\n \"bronorganisatie\": \"000000000\",\r\n \"omschrijving\": \"string\",\r\n \"toelichting\": \"string\",\r\n \"zaaktype\": \"http://localhost:8080/index.php/apps/procest/api/zgw/catalogi/v1/zaaktypen/619dc3e5-52f1-4294-a569-f21d16f44879\",\r\n \"registratiedatum\": \"2019-04-09\",\r\n \"verantwoordelijkeOrganisatie\": \"000000000\",\r\n \"startdatum\": \"2019-04-09\",\r\n \"einddatum\": null,\r\n \"einddatumGepland\": \"2019-04-20\",\r\n \"uiterlijkeEinddatumAfdoening\": \"2019-04-09\",\r\n \"publicatiedatum\": \"2019-04-09\",\r\n \"communicatiekanaal\": \"\",\r\n \"productenOfDiensten\": [\"http://localhost:8080/index.php/apps/procest/api/zgw/zaken/v1/zaken/1a407380-f716-4537-82ae-2126e7b4f379\"],\r\n \"vertrouwelijkheidaanduiding\": \"geheim\",\r\n \"betalingsindicatie\": \"geheel\",\r\n \"betalingsindicatieWeergave\": null,\r\n \"laatsteBetaaldatum\": \"2019-01-01T00:00:00Z\",\r\n \"zaakgeometrie\": {\r\n \"type\": \"Point\",\r\n \"coordinates\": [\r\n 53.0,\r\n 5.0\r\n ]\r\n },\r\n \"verlenging\": null,\r\n \"opschorting\": {\r\n \"indicatie\": true,\r\n \"reden\": \"string\"\r\n },\r\n \"selectielijstklasse\": \"https://referentielijsten.roxit.nl/api/v1/resultaten/0fe71ce3-b1e1-48eb-9070-be2756fc71b5\",\r\n \"hoofdzaak\": null,\r\n \"deelzaken\": [],\r\n \"relevanteAndereZaken\": [],\r\n \"eigenschappen\": [],\r\n \"rollen\": [],\r\n \"status\": null,\r\n \"zaakinformatieobjecten\": [],\r\n \"zaakobjecten\": [],\r\n \"resultaat\": null,\r\n \"kenmerken\": [],\r\n \"archiefnominatie\": null,\r\n \"archiefstatus\": \"nog_te_archiveren\",\r\n \"archiefactiedatum\": null,\r\n \"opdrachtgevendeOrganisatie\": null,\r\n \"processobjectaard\": null,\r\n \"startdatumBewaartermijn\": null,\r\n \"processobject\": null\r\n}" + }, + "auth": { + "type": "jwt", + "jwt": [ + { + "type": "string", + "value": "{\r\n \"iss\": \"procest-admin\",\r\n \"client_id\": \"procest-admin\",\r\n \"iat\": \"1773145181\",\r\n \"user_id\": \"procest-admin\",\r\n \"user_representation\": \"\"\r\n}", + "key": "payload" + }, + { + "type": "string", + "value": "procest-admin-secret-key-for-testing", + "key": "secret" + }, + { + "type": "string", + "value": "HS256", + "key": "algorithm" + }, + { + "type": "boolean", + "value": false, + "key": "isSecretBase64Encoded" + }, + { + "type": "string", + "value": "header", + "key": "addTokenTo" + }, + { + "type": "string", + "value": "Bearer", + "key": "headerPrefix" + }, + { + "type": "string", + "value": "token", + "key": "queryParamKey" + }, + { + "type": "string", + "value": "{}", + "key": "header" + } + ] + } + }, + "response": { + "id": "dd25c3a6-4b9d-46fe-9c07-e49e8bfdda6a", + "status": "Bad request", + "code": 400, + "header": [ + { + "key": "Date", + "value": "Tue, 10 Mar 2026 12:19:41 GMT" + }, + { + "key": "Server", + "value": "Apache/2.4.66 (Debian)" + }, + { + "key": "X-Content-Type-Options", + "value": "nosniff" + }, + { + "key": "X-Frame-Options", + "value": "SAMEORIGIN" + }, + { + "key": "X-Permitted-Cross-Domain-Policies", + "value": "none" + }, + { + "key": "X-Robots-Tag", + "value": "noindex, nofollow" + }, + { + "key": "Referrer-Policy", + "value": "no-referrer" + }, + { + "key": "X-Powered-By", + "value": "PHP/8.3.30" + }, + { + "key": "Content-Security-Policy", + "value": "default-src 'none';base-uri 'none';manifest-src 'self';frame-ancestors 'none'" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=3ff435ab05f5ddacea8a9647705ad8fd; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=3ff435ab05f5ddacea8a9647705ad8fd; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=3ff435ab05f5ddacea8a9647705ad8fd; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=3ff435ab05f5ddacea8a9647705ad8fd; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=3ff435ab05f5ddacea8a9647705ad8fd; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=9cecf68e9db977c188ec4cbdf2da1dfa; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=9cecf68e9db977c188ec4cbdf2da1dfa; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=9cecf68e9db977c188ec4cbdf2da1dfa; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=9cecf68e9db977c188ec4cbdf2da1dfa; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=9cecf68e9db977c188ec4cbdf2da1dfa; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "X-Request-Id", + "value": "efCmFS4iYKbQ2VKC7Hem" + }, + { + "key": "Cache-Control", + "value": "no-cache, no-store, must-revalidate" + }, + { + "key": "Feature-Policy", + "value": "autoplay 'none';camera 'none';fullscreen 'none';geolocation 'none';microphone 'none';payment 'none'" + }, + { + "key": "X-User-Id", + "value": "admin" + }, + { + "key": "Content-Length", + "value": "343" + }, + { + "key": "Connection", + "value": "close" + }, + { + "key": "Content-Type", + "value": "application/json; charset=utf-8" + } + ], + "stream": { + "type": "Buffer", + "data": [ + 123, + 34, + 100, + 101, + 116, + 97, + 105, + 108, + 34, + 58, + 34, + 112, + 114, + 111, + 100, + 117, + 99, + 116, + 101, + 110, + 79, + 102, + 68, + 105, + 101, + 110, + 115, + 116, + 101, + 110, + 32, + 98, + 101, + 118, + 97, + 116, + 32, + 101, + 101, + 110, + 32, + 119, + 97, + 97, + 114, + 100, + 101, + 32, + 100, + 105, + 101, + 32, + 110, + 105, + 101, + 116, + 32, + 105, + 110, + 32, + 104, + 101, + 116, + 32, + 122, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 32, + 118, + 111, + 111, + 114, + 107, + 111, + 109, + 116, + 46, + 34, + 44, + 34, + 105, + 110, + 118, + 97, + 108, + 105, + 100, + 80, + 97, + 114, + 97, + 109, + 115, + 34, + 58, + 91, + 123, + 34, + 110, + 97, + 109, + 101, + 34, + 58, + 34, + 112, + 114, + 111, + 100, + 117, + 99, + 116, + 101, + 110, + 79, + 102, + 68, + 105, + 101, + 110, + 115, + 116, + 101, + 110, + 34, + 44, + 34, + 99, + 111, + 100, + 101, + 34, + 58, + 34, + 105, + 110, + 118, + 97, + 108, + 105, + 100, + 45, + 112, + 114, + 111, + 100, + 117, + 99, + 116, + 115, + 45, + 115, + 101, + 114, + 118, + 105, + 99, + 101, + 115, + 34, + 44, + 34, + 114, + 101, + 97, + 115, + 111, + 110, + 34, + 58, + 34, + 80, + 114, + 111, + 100, + 117, + 99, + 116, + 32, + 39, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 122, + 97, + 107, + 101, + 110, + 92, + 47, + 118, + 49, + 92, + 47, + 122, + 97, + 107, + 101, + 110, + 92, + 47, + 49, + 97, + 52, + 48, + 55, + 51, + 56, + 48, + 45, + 102, + 55, + 49, + 54, + 45, + 52, + 53, + 51, + 55, + 45, + 56, + 50, + 97, + 101, + 45, + 50, + 49, + 50, + 54, + 101, + 55, + 98, + 52, + 102, + 51, + 55, + 57, + 39, + 32, + 105, + 115, + 32, + 110, + 105, + 101, + 116, + 32, + 116, + 111, + 101, + 103, + 101, + 115, + 116, + 97, + 97, + 110, + 32, + 118, + 111, + 111, + 114, + 32, + 100, + 105, + 116, + 32, + 122, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 46, + 34, + 125, + 93, + 125 + ] + }, + "cookie": [], + "responseTime": 165, + "responseSize": 343 + }, + "id": "01c22329-368d-4245-9e76-57c3ac80f39d", + "assertions": [ + { + "assertion": "Zaak bijwerken met productenOfDiensten niet in Zaaktype gedefinieerd geeft 400", + "skipped": false + } + ] + }, + { + "cursor": { + "ref": "0dbe2beb-a66f-40f4-a9d3-7b75b05fc979", + "length": 313, + "cycles": 1, + "position": 169, + "iteration": 0, + "httpRequestId": "83eef29d-9e0e-4fb7-bee4-46dc9d3b1b2f" + }, + "item": { + "id": "d75f63cd-19db-400c-a62d-3db10f30ed10", + "name": "(zrc-015c) Zaak productenOfDiensten validatie met Zaaktype productenOfDiensten", + "request": { + "url": { + "host": [ + "{{zaak_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Accept-Crs", + "value": "EPSG:4326" + }, + { + "key": "Content-Crs", + "value": "EPSG:4326" + }, + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "PATCH", + "body": { + "mode": "raw", + "raw": "{\n\t\"productenOfDiensten\": [\n\t\t\"{{zaak_url}}\"\t\n\t]\n}" + } + }, + "response": [], + "event": [ + { + "listen": "prerequest", + "script": { + "id": "631128f7-60bb-4deb-be09-56f548bb90ad", + "type": "text/javascript", + "packages": {}, + "exec": [ + "" + ], + "_lastExecutionId": "2e835110-13aa-43c2-a440-89c3665a5493" + } + }, + { + "listen": "test", + "script": { + "id": "96f20108-5c25-4c51-bba0-8cd021f2ec6c", + "type": "text/javascript", + "packages": {}, + "exec": [ + "pm.test(\"Zaak deels bijwerken met productenOfDiensten niet in Zaaktype gedefinieerd geeft 400\", function() {", + " pm.response.to.have.status(400);", + " ", + " // Verify that the 400 is returned for the correct reason", + " var error = pm.response.json()[\"invalidParams\"][0];", + " pm.expect(error.name).to.be.equal(\"productenOfDiensten\");", + " pm.expect(error.code).to.be.equal(\"invalid-products-services\");", + "});" + ], + "_lastExecutionId": "c199af48-1833-4407-a8b7-7cb3c870f42d" + } + } + ] + }, + "request": { + "url": { + "protocol": "http", + "port": "8080", + "path": [ + "index.php", + "apps", + "procest", + "api", + "zgw", + "zaken", + "v1", + "zaken", + "1a407380-f716-4537-82ae-2126e7b4f379" + ], + "host": [ + "localhost" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Accept-Crs", + "value": "EPSG:4326" + }, + { + "key": "Content-Crs", + "value": "EPSG:4326" + }, + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Authorization", + "value": "Bearer eyJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJwcm9jZXN0LWFkbWluIiwiY2xpZW50X2lkIjoicHJvY2VzdC1hZG1pbiIsImlhdCI6IjE3NzMxNDUxODEiLCJ1c2VyX2lkIjoicHJvY2VzdC1hZG1pbiIsInVzZXJfcmVwcmVzZW50YXRpb24iOiIifQ.kY4sg3xpkJqLaO0RA8Vt5HKeEfLS7OFnBD3sex5epZo", + "system": true + }, + { + "key": "User-Agent", + "value": "PostmanRuntime/7.39.1", + "system": true + }, + { + "key": "Accept", + "value": "*/*", + "system": true + }, + { + "key": "Cache-Control", + "value": "no-cache", + "system": true + }, + { + "key": "Postman-Token", + "value": "4ee3d2f1-dc9b-4170-835b-14e268ebef8c", + "system": true + }, + { + "key": "Host", + "value": "localhost:8080", + "system": true + }, + { + "key": "Accept-Encoding", + "value": "gzip, deflate, br", + "system": true + }, + { + "key": "Connection", + "value": "keep-alive", + "system": true + }, + { + "key": "Content-Length", + "value": "142", + "system": true + }, + { + "key": "Cookie", + "value": "ocvp3112b4wg=9cecf68e9db977c188ec4cbdf2da1dfa; oc_sessionPassphrase=LBNdKxRzA0iqoULIruNxDDh2BK3O%2BrCIU8aUmiUcOFvy5Xw1YfjwQNlmBW2IkGwJYtxXh9%2BwDN6vYuGNX07tXzkBtjQJUWTGdzf8AIOUIVxVx5DfyWAQZ7nmYmQv6XSE; nc_sameSiteCookielax=true; nc_sameSiteCookiestrict=true", + "system": true + } + ], + "method": "PATCH", + "body": { + "mode": "raw", + "raw": "{\n\t\"productenOfDiensten\": [\n\t\t\"http://localhost:8080/index.php/apps/procest/api/zgw/zaken/v1/zaken/1a407380-f716-4537-82ae-2126e7b4f379\"\t\n\t]\n}" + }, + "auth": { + "type": "jwt", + "jwt": [ + { + "type": "string", + "value": "{\r\n \"iss\": \"procest-admin\",\r\n \"client_id\": \"procest-admin\",\r\n \"iat\": \"1773145181\",\r\n \"user_id\": \"procest-admin\",\r\n \"user_representation\": \"\"\r\n}", + "key": "payload" + }, + { + "type": "string", + "value": "procest-admin-secret-key-for-testing", + "key": "secret" + }, + { + "type": "string", + "value": "HS256", + "key": "algorithm" + }, + { + "type": "boolean", + "value": false, + "key": "isSecretBase64Encoded" + }, + { + "type": "string", + "value": "header", + "key": "addTokenTo" + }, + { + "type": "string", + "value": "Bearer", + "key": "headerPrefix" + }, + { + "type": "string", + "value": "token", + "key": "queryParamKey" + }, + { + "type": "string", + "value": "{}", + "key": "header" + } + ] + } + }, + "response": { + "id": "6d507681-5d9c-4af9-a3fd-f88d9f84de7b", + "status": "Bad request", + "code": 400, + "header": [ + { + "key": "Date", + "value": "Tue, 10 Mar 2026 12:19:41 GMT" + }, + { + "key": "Server", + "value": "Apache/2.4.66 (Debian)" + }, + { + "key": "X-Content-Type-Options", + "value": "nosniff" + }, + { + "key": "X-Frame-Options", + "value": "SAMEORIGIN" + }, + { + "key": "X-Permitted-Cross-Domain-Policies", + "value": "none" + }, + { + "key": "X-Robots-Tag", + "value": "noindex, nofollow" + }, + { + "key": "Referrer-Policy", + "value": "no-referrer" + }, + { + "key": "X-Powered-By", + "value": "PHP/8.3.30" + }, + { + "key": "Content-Security-Policy", + "value": "default-src 'none';base-uri 'none';manifest-src 'self';frame-ancestors 'none'" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=9cecf68e9db977c188ec4cbdf2da1dfa; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=9cecf68e9db977c188ec4cbdf2da1dfa; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=9cecf68e9db977c188ec4cbdf2da1dfa; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=9cecf68e9db977c188ec4cbdf2da1dfa; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=9cecf68e9db977c188ec4cbdf2da1dfa; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=f724a3b7075ab30374f092f6a2920199; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=f724a3b7075ab30374f092f6a2920199; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=f724a3b7075ab30374f092f6a2920199; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=f724a3b7075ab30374f092f6a2920199; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=f724a3b7075ab30374f092f6a2920199; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "X-Request-Id", + "value": "a7GUbCAgZIP6GJorywy4" + }, + { + "key": "Cache-Control", + "value": "no-cache, no-store, must-revalidate" + }, + { + "key": "Feature-Policy", + "value": "autoplay 'none';camera 'none';fullscreen 'none';geolocation 'none';microphone 'none';payment 'none'" + }, + { + "key": "X-User-Id", + "value": "admin" + }, + { + "key": "Content-Length", + "value": "343" + }, + { + "key": "Connection", + "value": "close" + }, + { + "key": "Content-Type", + "value": "application/json; charset=utf-8" + } + ], + "stream": { + "type": "Buffer", + "data": [ + 123, + 34, + 100, + 101, + 116, + 97, + 105, + 108, + 34, + 58, + 34, + 112, + 114, + 111, + 100, + 117, + 99, + 116, + 101, + 110, + 79, + 102, + 68, + 105, + 101, + 110, + 115, + 116, + 101, + 110, + 32, + 98, + 101, + 118, + 97, + 116, + 32, + 101, + 101, + 110, + 32, + 119, + 97, + 97, + 114, + 100, + 101, + 32, + 100, + 105, + 101, + 32, + 110, + 105, + 101, + 116, + 32, + 105, + 110, + 32, + 104, + 101, + 116, + 32, + 122, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 32, + 118, + 111, + 111, + 114, + 107, + 111, + 109, + 116, + 46, + 34, + 44, + 34, + 105, + 110, + 118, + 97, + 108, + 105, + 100, + 80, + 97, + 114, + 97, + 109, + 115, + 34, + 58, + 91, + 123, + 34, + 110, + 97, + 109, + 101, + 34, + 58, + 34, + 112, + 114, + 111, + 100, + 117, + 99, + 116, + 101, + 110, + 79, + 102, + 68, + 105, + 101, + 110, + 115, + 116, + 101, + 110, + 34, + 44, + 34, + 99, + 111, + 100, + 101, + 34, + 58, + 34, + 105, + 110, + 118, + 97, + 108, + 105, + 100, + 45, + 112, + 114, + 111, + 100, + 117, + 99, + 116, + 115, + 45, + 115, + 101, + 114, + 118, + 105, + 99, + 101, + 115, + 34, + 44, + 34, + 114, + 101, + 97, + 115, + 111, + 110, + 34, + 58, + 34, + 80, + 114, + 111, + 100, + 117, + 99, + 116, + 32, + 39, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 122, + 97, + 107, + 101, + 110, + 92, + 47, + 118, + 49, + 92, + 47, + 122, + 97, + 107, + 101, + 110, + 92, + 47, + 49, + 97, + 52, + 48, + 55, + 51, + 56, + 48, + 45, + 102, + 55, + 49, + 54, + 45, + 52, + 53, + 51, + 55, + 45, + 56, + 50, + 97, + 101, + 45, + 50, + 49, + 50, + 54, + 101, + 55, + 98, + 52, + 102, + 51, + 55, + 57, + 39, + 32, + 105, + 115, + 32, + 110, + 105, + 101, + 116, + 32, + 116, + 111, + 101, + 103, + 101, + 115, + 116, + 97, + 97, + 110, + 32, + 118, + 111, + 111, + 114, + 32, + 100, + 105, + 116, + 32, + 122, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 46, + 34, + 125, + 93, + 125 + ] + }, + "cookie": [], + "responseTime": 143, + "responseSize": 343 + }, + "id": "d75f63cd-19db-400c-a62d-3db10f30ed10", + "assertions": [ + { + "assertion": "Zaak deels bijwerken met productenOfDiensten niet in Zaaktype gedefinieerd geeft 400", + "skipped": false + } + ] + }, + { + "cursor": { + "ref": "f74bb8ec-0d84-4558-9971-78bcc7e244da", + "length": 313, + "cycles": 1, + "position": 170, + "iteration": 0, + "httpRequestId": "2bab52b4-3bc5-4154-b0fe-f0f36f757d7c" + }, + "item": { + "id": "4ef5ee63-2aff-4e90-b36b-a79ab2b1743e", + "name": "(zrc-015d) Zaak aanmaken met valide productenOfDiensten is mogelijk", + "request": { + "url": { + "path": [ + "zaken" + ], + "host": [ + "{{zrc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Accept-Crs", + "value": "EPSG:4326" + }, + { + "key": "Content-Crs", + "value": "EPSG:4326" + }, + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\r\n\r\n \"bronorganisatie\": \"000000000\",\r\n \"omschrijving\": \"string\",\r\n \"toelichting\": \"string\",\r\n \"zaaktype\": \"{{zaaktype_url}}\",\r\n \"registratiedatum\": \"2019-04-09\",\r\n \"verantwoordelijkeOrganisatie\": \"000000000\",\r\n \"startdatum\": \"2019-04-09\",\r\n \"einddatum\": null,\r\n \"einddatumGepland\": \"2019-04-20\",\r\n \"uiterlijkeEinddatumAfdoening\": \"2019-04-09\",\r\n \"publicatiedatum\": \"2019-04-09\",\r\n \"communicatiekanaal\": \"\",\r\n \"productenOfDiensten\": [\"https://ref.tst.vng.cloud/standaard/\"],\r\n \"vertrouwelijkheidaanduiding\": \"geheim\",\r\n \"betalingsindicatie\": \"geheel\",\r\n \"betalingsindicatieWeergave\": null,\r\n \"laatsteBetaaldatum\": \"2019-01-01T00:00:00Z\",\r\n \"zaakgeometrie\": {\r\n \"type\": \"Point\",\r\n \"coordinates\": [\r\n 53.0,\r\n 5.0\r\n ]\r\n },\r\n \"verlenging\": null,\r\n \"opschorting\": {\r\n \"indicatie\": true,\r\n \"reden\": \"string\"\r\n },\r\n \"selectielijstklasse\": \"https://referentielijsten.roxit.nl/api/v1/resultaten/0fe71ce3-b1e1-48eb-9070-be2756fc71b5\",\r\n \"hoofdzaak\": null,\r\n \"deelzaken\": [],\r\n \"relevanteAndereZaken\": [],\r\n \"eigenschappen\": [],\r\n \"rollen\": [],\r\n \"status\": null,\r\n \"zaakinformatieobjecten\": [],\r\n \"zaakobjecten\": [],\r\n \"resultaat\": null,\r\n \"kenmerken\": [],\r\n \"archiefnominatie\": null,\r\n \"archiefstatus\": \"nog_te_archiveren\",\r\n \"archiefactiedatum\": null,\r\n \"opdrachtgevendeOrganisatie\": null,\r\n \"processobjectaard\": null,\r\n \"startdatumBewaartermijn\": null,\r\n \"processobject\": null\r\n}" + } + }, + "response": [], + "event": [ + { + "listen": "prerequest", + "script": { + "id": "92aa2291-f49e-4c8c-aee5-2b373393d2d5", + "type": "text/javascript", + "packages": {}, + "exec": [ + "" + ], + "_lastExecutionId": "6a59a843-75c6-48c9-a2c9-b8c4bd0fe461" + } + }, + { + "listen": "test", + "script": { + "id": "9ee608a0-e9ff-4b5f-90d5-bf95383b805c", + "type": "text/javascript", + "packages": {}, + "exec": [ + "pm.test(\"Zaak aanmaken met valide productenOfDiensten geeft 201\", function() {", + " pm.response.to.have.status(201);", + " pm.environment.set(\"created_zaak_url\", pm.response.json().url);", + "});" + ], + "_lastExecutionId": "589bac20-12f2-4935-9c77-30f7a5d4a2eb" + } + } + ] + }, + "request": { + "url": { + "protocol": "http", + "port": "8080", + "path": [ + "index.php", + "apps", + "procest", + "api", + "zgw", + "zaken", + "v1", + "zaken" + ], + "host": [ + "localhost" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Accept-Crs", + "value": "EPSG:4326" + }, + { + "key": "Content-Crs", + "value": "EPSG:4326" + }, + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Authorization", + "value": "Bearer eyJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJwcm9jZXN0LWFkbWluIiwiY2xpZW50X2lkIjoicHJvY2VzdC1hZG1pbiIsImlhdCI6IjE3NzMxNDUxODIiLCJ1c2VyX2lkIjoicHJvY2VzdC1hZG1pbiIsInVzZXJfcmVwcmVzZW50YXRpb24iOiIifQ.rApWFyxr9Ew5rzjS7pM9wUIioS9Jjm3735YALDhnCag", + "system": true + }, + { + "key": "User-Agent", + "value": "PostmanRuntime/7.39.1", + "system": true + }, + { + "key": "Accept", + "value": "*/*", + "system": true + }, + { + "key": "Cache-Control", + "value": "no-cache", + "system": true + }, + { + "key": "Postman-Token", + "value": "8a46c715-2ed0-4890-8e22-e2f5aa593ba3", + "system": true + }, + { + "key": "Host", + "value": "localhost:8080", + "system": true + }, + { + "key": "Accept-Encoding", + "value": "gzip, deflate, br", + "system": true + }, + { + "key": "Connection", + "value": "keep-alive", + "system": true + }, + { + "key": "Content-Length", + "value": "1643", + "system": true + }, + { + "key": "Cookie", + "value": "ocvp3112b4wg=f724a3b7075ab30374f092f6a2920199; oc_sessionPassphrase=LBNdKxRzA0iqoULIruNxDDh2BK3O%2BrCIU8aUmiUcOFvy5Xw1YfjwQNlmBW2IkGwJYtxXh9%2BwDN6vYuGNX07tXzkBtjQJUWTGdzf8AIOUIVxVx5DfyWAQZ7nmYmQv6XSE; nc_sameSiteCookielax=true; nc_sameSiteCookiestrict=true", + "system": true + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\r\n\r\n \"bronorganisatie\": \"000000000\",\r\n \"omschrijving\": \"string\",\r\n \"toelichting\": \"string\",\r\n \"zaaktype\": \"http://localhost:8080/index.php/apps/procest/api/zgw/catalogi/v1/zaaktypen/619dc3e5-52f1-4294-a569-f21d16f44879\",\r\n \"registratiedatum\": \"2019-04-09\",\r\n \"verantwoordelijkeOrganisatie\": \"000000000\",\r\n \"startdatum\": \"2019-04-09\",\r\n \"einddatum\": null,\r\n \"einddatumGepland\": \"2019-04-20\",\r\n \"uiterlijkeEinddatumAfdoening\": \"2019-04-09\",\r\n \"publicatiedatum\": \"2019-04-09\",\r\n \"communicatiekanaal\": \"\",\r\n \"productenOfDiensten\": [\"https://ref.tst.vng.cloud/standaard/\"],\r\n \"vertrouwelijkheidaanduiding\": \"geheim\",\r\n \"betalingsindicatie\": \"geheel\",\r\n \"betalingsindicatieWeergave\": null,\r\n \"laatsteBetaaldatum\": \"2019-01-01T00:00:00Z\",\r\n \"zaakgeometrie\": {\r\n \"type\": \"Point\",\r\n \"coordinates\": [\r\n 53.0,\r\n 5.0\r\n ]\r\n },\r\n \"verlenging\": null,\r\n \"opschorting\": {\r\n \"indicatie\": true,\r\n \"reden\": \"string\"\r\n },\r\n \"selectielijstklasse\": \"https://referentielijsten.roxit.nl/api/v1/resultaten/0fe71ce3-b1e1-48eb-9070-be2756fc71b5\",\r\n \"hoofdzaak\": null,\r\n \"deelzaken\": [],\r\n \"relevanteAndereZaken\": [],\r\n \"eigenschappen\": [],\r\n \"rollen\": [],\r\n \"status\": null,\r\n \"zaakinformatieobjecten\": [],\r\n \"zaakobjecten\": [],\r\n \"resultaat\": null,\r\n \"kenmerken\": [],\r\n \"archiefnominatie\": null,\r\n \"archiefstatus\": \"nog_te_archiveren\",\r\n \"archiefactiedatum\": null,\r\n \"opdrachtgevendeOrganisatie\": null,\r\n \"processobjectaard\": null,\r\n \"startdatumBewaartermijn\": null,\r\n \"processobject\": null\r\n}" + }, + "auth": { + "type": "jwt", + "jwt": [ + { + "type": "string", + "value": "{\r\n \"iss\": \"procest-admin\",\r\n \"client_id\": \"procest-admin\",\r\n \"iat\": \"1773145182\",\r\n \"user_id\": \"procest-admin\",\r\n \"user_representation\": \"\"\r\n}", + "key": "payload" + }, + { + "type": "string", + "value": "procest-admin-secret-key-for-testing", + "key": "secret" + }, + { + "type": "string", + "value": "HS256", + "key": "algorithm" + }, + { + "type": "boolean", + "value": false, + "key": "isSecretBase64Encoded" + }, + { + "type": "string", + "value": "header", + "key": "addTokenTo" + }, + { + "type": "string", + "value": "Bearer", + "key": "headerPrefix" + }, + { + "type": "string", + "value": "token", + "key": "queryParamKey" + }, + { + "type": "string", + "value": "{}", + "key": "header" + } + ] + } + }, + "response": { + "id": "f0e99e1d-1e00-4fd9-ab1b-1080a4d2d145", + "status": "Created", + "code": 201, + "header": [ + { + "key": "Date", + "value": "Tue, 10 Mar 2026 12:19:41 GMT" + }, + { + "key": "Server", + "value": "Apache/2.4.66 (Debian)" + }, + { + "key": "X-Content-Type-Options", + "value": "nosniff" + }, + { + "key": "X-Frame-Options", + "value": "SAMEORIGIN" + }, + { + "key": "X-Permitted-Cross-Domain-Policies", + "value": "none" + }, + { + "key": "X-Robots-Tag", + "value": "noindex, nofollow" + }, + { + "key": "Referrer-Policy", + "value": "no-referrer" + }, + { + "key": "X-Powered-By", + "value": "PHP/8.3.30" + }, + { + "key": "Content-Security-Policy", + "value": "default-src 'none';base-uri 'none';manifest-src 'self';frame-ancestors 'none'" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=f724a3b7075ab30374f092f6a2920199; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=f724a3b7075ab30374f092f6a2920199; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=f724a3b7075ab30374f092f6a2920199; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=f724a3b7075ab30374f092f6a2920199; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=f724a3b7075ab30374f092f6a2920199; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=6aa2d49769a3f715578f497b4c9a142e; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=6aa2d49769a3f715578f497b4c9a142e; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=6aa2d49769a3f715578f497b4c9a142e; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=6aa2d49769a3f715578f497b4c9a142e; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=6aa2d49769a3f715578f497b4c9a142e; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "X-Request-Id", + "value": "LTACuDxTC42QjS2t6nKT" + }, + { + "key": "Cache-Control", + "value": "no-cache, no-store, must-revalidate" + }, + { + "key": "Feature-Policy", + "value": "autoplay 'none';camera 'none';fullscreen 'none';geolocation 'none';microphone 'none';payment 'none'" + }, + { + "key": "X-User-Id", + "value": "admin" + }, + { + "key": "Content-Length", + "value": "805" + }, + { + "key": "Keep-Alive", + "value": "timeout=5, max=100" + }, + { + "key": "Connection", + "value": "Keep-Alive" + }, + { + "key": "Content-Type", + "value": "application/json; charset=utf-8" + } + ], + "stream": { + "type": "Buffer", + "data": [ + 123, + 34, + 117, + 114, + 108, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 122, + 97, + 107, + 101, + 110, + 92, + 47, + 118, + 49, + 92, + 47, + 122, + 97, + 107, + 101, + 110, + 92, + 47, + 98, + 102, + 102, + 56, + 99, + 57, + 99, + 102, + 45, + 55, + 49, + 99, + 54, + 45, + 52, + 50, + 53, + 50, + 45, + 98, + 51, + 54, + 56, + 45, + 100, + 99, + 51, + 57, + 99, + 51, + 97, + 101, + 57, + 50, + 101, + 51, + 34, + 44, + 34, + 117, + 117, + 105, + 100, + 34, + 58, + 34, + 98, + 102, + 102, + 56, + 99, + 57, + 99, + 102, + 45, + 55, + 49, + 99, + 54, + 45, + 52, + 50, + 53, + 50, + 45, + 98, + 51, + 54, + 56, + 45, + 100, + 99, + 51, + 57, + 99, + 51, + 97, + 101, + 57, + 50, + 101, + 51, + 34, + 44, + 34, + 105, + 100, + 101, + 110, + 116, + 105, + 102, + 105, + 99, + 97, + 116, + 105, + 101, + 34, + 58, + 34, + 90, + 65, + 65, + 75, + 45, + 84, + 66, + 79, + 78, + 75, + 84, + 45, + 50, + 53, + 51, + 55, + 66, + 52, + 34, + 44, + 34, + 111, + 109, + 115, + 99, + 104, + 114, + 105, + 106, + 118, + 105, + 110, + 103, + 34, + 58, + 34, + 115, + 116, + 114, + 105, + 110, + 103, + 34, + 44, + 34, + 116, + 111, + 101, + 108, + 105, + 99, + 104, + 116, + 105, + 110, + 103, + 34, + 58, + 34, + 115, + 116, + 114, + 105, + 110, + 103, + 34, + 44, + 34, + 122, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 105, + 92, + 47, + 118, + 49, + 92, + 47, + 122, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 110, + 92, + 47, + 54, + 49, + 57, + 100, + 99, + 51, + 101, + 53, + 45, + 53, + 50, + 102, + 49, + 45, + 52, + 50, + 57, + 52, + 45, + 97, + 53, + 54, + 57, + 45, + 102, + 50, + 49, + 100, + 49, + 54, + 102, + 52, + 52, + 56, + 55, + 57, + 34, + 44, + 34, + 114, + 101, + 103, + 105, + 115, + 116, + 114, + 97, + 116, + 105, + 101, + 100, + 97, + 116, + 117, + 109, + 34, + 58, + 34, + 50, + 48, + 50, + 54, + 45, + 48, + 51, + 45, + 49, + 48, + 84, + 49, + 50, + 58, + 49, + 57, + 58, + 52, + 49, + 43, + 48, + 48, + 58, + 48, + 48, + 34, + 44, + 34, + 115, + 116, + 97, + 114, + 116, + 100, + 97, + 116, + 117, + 109, + 34, + 58, + 34, + 50, + 48, + 49, + 57, + 45, + 48, + 52, + 45, + 48, + 57, + 34, + 44, + 34, + 101, + 105, + 110, + 100, + 100, + 97, + 116, + 117, + 109, + 34, + 58, + 110, + 117, + 108, + 108, + 44, + 34, + 101, + 105, + 110, + 100, + 100, + 97, + 116, + 117, + 109, + 71, + 101, + 112, + 108, + 97, + 110, + 100, + 34, + 58, + 34, + 50, + 48, + 49, + 57, + 45, + 48, + 52, + 45, + 50, + 48, + 34, + 44, + 34, + 117, + 105, + 116, + 101, + 114, + 108, + 105, + 106, + 107, + 101, + 69, + 105, + 110, + 100, + 100, + 97, + 116, + 117, + 109, + 65, + 102, + 100, + 111, + 101, + 110, + 105, + 110, + 103, + 34, + 58, + 34, + 50, + 48, + 49, + 57, + 45, + 48, + 52, + 45, + 48, + 57, + 34, + 44, + 34, + 118, + 101, + 114, + 116, + 114, + 111, + 117, + 119, + 101, + 108, + 105, + 106, + 107, + 104, + 101, + 105, + 100, + 97, + 97, + 110, + 100, + 117, + 105, + 100, + 105, + 110, + 103, + 34, + 58, + 34, + 103, + 101, + 104, + 101, + 105, + 109, + 34, + 44, + 34, + 118, + 101, + 114, + 97, + 110, + 116, + 119, + 111, + 111, + 114, + 100, + 101, + 108, + 105, + 106, + 107, + 101, + 79, + 114, + 103, + 97, + 110, + 105, + 115, + 97, + 116, + 105, + 101, + 34, + 58, + 34, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 34, + 44, + 34, + 97, + 114, + 99, + 104, + 105, + 101, + 102, + 110, + 111, + 109, + 105, + 110, + 97, + 116, + 105, + 101, + 34, + 58, + 110, + 117, + 108, + 108, + 44, + 34, + 97, + 114, + 99, + 104, + 105, + 101, + 102, + 97, + 99, + 116, + 105, + 101, + 100, + 97, + 116, + 117, + 109, + 34, + 58, + 110, + 117, + 108, + 108, + 44, + 34, + 97, + 114, + 99, + 104, + 105, + 101, + 102, + 115, + 116, + 97, + 116, + 117, + 115, + 34, + 58, + 34, + 110, + 111, + 103, + 95, + 116, + 101, + 95, + 97, + 114, + 99, + 104, + 105, + 118, + 101, + 114, + 101, + 110, + 34, + 44, + 34, + 98, + 101, + 116, + 97, + 108, + 105, + 110, + 103, + 115, + 105, + 110, + 100, + 105, + 99, + 97, + 116, + 105, + 101, + 34, + 58, + 34, + 103, + 101, + 104, + 101, + 101, + 108, + 34, + 44, + 34, + 108, + 97, + 97, + 116, + 115, + 116, + 101, + 66, + 101, + 116, + 97, + 97, + 108, + 100, + 97, + 116, + 117, + 109, + 34, + 58, + 34, + 50, + 48, + 49, + 57, + 45, + 48, + 49, + 45, + 48, + 49, + 34, + 44, + 34, + 104, + 111, + 111, + 102, + 100, + 122, + 97, + 97, + 107, + 34, + 58, + 110, + 117, + 108, + 108, + 125 + ] + }, + "cookie": [], + "responseTime": 300, + "responseSize": 805 + }, + "id": "4ef5ee63-2aff-4e90-b36b-a79ab2b1743e", + "assertions": [ + { + "assertion": "Zaak aanmaken met valide productenOfDiensten geeft 201", + "skipped": false + } + ] + }, + { + "cursor": { + "ref": "c8c313e5-10cf-4904-b534-48a25833f7a6", + "length": 313, + "cycles": 1, + "position": 171, + "iteration": 0, + "httpRequestId": "e52b7e93-c7c7-4002-8071-dad826744042" + }, + "item": { + "id": "cc9a9e5f-29b8-4a7f-9b47-d089854cbb7e", + "name": "(zrc-015e) Zaak bijwerken met valide productenOfDiensten is mogelijk", + "request": { + "url": { + "host": [ + "{{created_zaak_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Accept-Crs", + "value": "EPSG:4326" + }, + { + "key": "Content-Crs", + "value": "EPSG:4326" + }, + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "PUT", + "body": { + "mode": "raw", + "raw": "{\r\n\r\n \"bronorganisatie\": \"000000000\",\r\n \"omschrijving\": \"string\",\r\n \"toelichting\": \"string\",\r\n \"zaaktype\": \"{{zaaktype_url}}\",\r\n \"registratiedatum\": \"2019-04-09\",\r\n \"verantwoordelijkeOrganisatie\": \"000000000\",\r\n \"startdatum\": \"2019-04-09\",\r\n \"einddatum\": null,\r\n \"einddatumGepland\": \"2019-04-20\",\r\n \"uiterlijkeEinddatumAfdoening\": \"2019-04-09\",\r\n \"publicatiedatum\": \"2019-04-09\",\r\n \"communicatiekanaal\": \"\",\r\n \"productenOfDiensten\": [\"https://ref.tst.vng.cloud/standaard/\"],\r\n \"vertrouwelijkheidaanduiding\": \"geheim\",\r\n \"betalingsindicatie\": \"geheel\",\r\n \"betalingsindicatieWeergave\": null,\r\n \"laatsteBetaaldatum\": \"2019-01-01T00:00:00Z\",\r\n \"zaakgeometrie\": {\r\n \"type\": \"Point\",\r\n \"coordinates\": [\r\n 53.0,\r\n 5.0\r\n ]\r\n },\r\n \"verlenging\": null,\r\n \"opschorting\": {\r\n \"indicatie\": true,\r\n \"reden\": \"string\"\r\n },\r\n \"selectielijstklasse\": \"https://referentielijsten.roxit.nl/api/v1/resultaten/0fe71ce3-b1e1-48eb-9070-be2756fc71b5\",\r\n \"hoofdzaak\": null,\r\n \"deelzaken\": [],\r\n \"relevanteAndereZaken\": [],\r\n \"eigenschappen\": [],\r\n \"rollen\": [],\r\n \"status\": null,\r\n \"zaakinformatieobjecten\": [],\r\n \"zaakobjecten\": [],\r\n \"resultaat\": null,\r\n \"kenmerken\": [],\r\n \"archiefnominatie\": null,\r\n \"archiefstatus\": \"nog_te_archiveren\",\r\n \"archiefactiedatum\": null,\r\n \"opdrachtgevendeOrganisatie\": null,\r\n \"processobjectaard\": null,\r\n \"startdatumBewaartermijn\": null,\r\n \"processobject\": null\r\n}" + } + }, + "response": [], + "event": [ + { + "listen": "prerequest", + "script": { + "id": "c986d7aa-df9a-4c2e-b1bc-9c19502942c9", + "type": "text/javascript", + "packages": {}, + "exec": [ + "" + ], + "_lastExecutionId": "e25c5e6a-4f8e-4f6d-893e-5560660f979f" + } + }, + { + "listen": "test", + "script": { + "id": "4d168225-69e7-40ab-b637-2361f298fe20", + "type": "text/javascript", + "packages": {}, + "exec": [ + "pm.test(\"Zaak bijwerken met valide productenOfDiensten geeft 200\", function() {", + " pm.response.to.have.status(200);", + "});" + ], + "_lastExecutionId": "a0fca66b-4644-46c9-bfe2-5704df346b6e" + } + } + ] + }, + "request": { + "url": { + "protocol": "http", + "port": "8080", + "path": [ + "index.php", + "apps", + "procest", + "api", + "zgw", + "zaken", + "v1", + "zaken", + "bff8c9cf-71c6-4252-b368-dc39c3ae92e3" + ], + "host": [ + "localhost" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Accept-Crs", + "value": "EPSG:4326" + }, + { + "key": "Content-Crs", + "value": "EPSG:4326" + }, + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Authorization", + "value": "Bearer eyJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJwcm9jZXN0LWFkbWluIiwiY2xpZW50X2lkIjoicHJvY2VzdC1hZG1pbiIsImlhdCI6IjE3NzMxNDUxODIiLCJ1c2VyX2lkIjoicHJvY2VzdC1hZG1pbiIsInVzZXJfcmVwcmVzZW50YXRpb24iOiIifQ.rApWFyxr9Ew5rzjS7pM9wUIioS9Jjm3735YALDhnCag", + "system": true + }, + { + "key": "User-Agent", + "value": "PostmanRuntime/7.39.1", + "system": true + }, + { + "key": "Accept", + "value": "*/*", + "system": true + }, + { + "key": "Cache-Control", + "value": "no-cache", + "system": true + }, + { + "key": "Postman-Token", + "value": "e1c8bef0-0661-42b8-b46a-3f67ef6ef1b1", + "system": true + }, + { + "key": "Host", + "value": "localhost:8080", + "system": true + }, + { + "key": "Accept-Encoding", + "value": "gzip, deflate, br", + "system": true + }, + { + "key": "Connection", + "value": "keep-alive", + "system": true + }, + { + "key": "Content-Length", + "value": "1643", + "system": true + }, + { + "key": "Cookie", + "value": "ocvp3112b4wg=6aa2d49769a3f715578f497b4c9a142e; oc_sessionPassphrase=LBNdKxRzA0iqoULIruNxDDh2BK3O%2BrCIU8aUmiUcOFvy5Xw1YfjwQNlmBW2IkGwJYtxXh9%2BwDN6vYuGNX07tXzkBtjQJUWTGdzf8AIOUIVxVx5DfyWAQZ7nmYmQv6XSE; nc_sameSiteCookielax=true; nc_sameSiteCookiestrict=true", + "system": true + } + ], + "method": "PUT", + "body": { + "mode": "raw", + "raw": "{\r\n\r\n \"bronorganisatie\": \"000000000\",\r\n \"omschrijving\": \"string\",\r\n \"toelichting\": \"string\",\r\n \"zaaktype\": \"http://localhost:8080/index.php/apps/procest/api/zgw/catalogi/v1/zaaktypen/619dc3e5-52f1-4294-a569-f21d16f44879\",\r\n \"registratiedatum\": \"2019-04-09\",\r\n \"verantwoordelijkeOrganisatie\": \"000000000\",\r\n \"startdatum\": \"2019-04-09\",\r\n \"einddatum\": null,\r\n \"einddatumGepland\": \"2019-04-20\",\r\n \"uiterlijkeEinddatumAfdoening\": \"2019-04-09\",\r\n \"publicatiedatum\": \"2019-04-09\",\r\n \"communicatiekanaal\": \"\",\r\n \"productenOfDiensten\": [\"https://ref.tst.vng.cloud/standaard/\"],\r\n \"vertrouwelijkheidaanduiding\": \"geheim\",\r\n \"betalingsindicatie\": \"geheel\",\r\n \"betalingsindicatieWeergave\": null,\r\n \"laatsteBetaaldatum\": \"2019-01-01T00:00:00Z\",\r\n \"zaakgeometrie\": {\r\n \"type\": \"Point\",\r\n \"coordinates\": [\r\n 53.0,\r\n 5.0\r\n ]\r\n },\r\n \"verlenging\": null,\r\n \"opschorting\": {\r\n \"indicatie\": true,\r\n \"reden\": \"string\"\r\n },\r\n \"selectielijstklasse\": \"https://referentielijsten.roxit.nl/api/v1/resultaten/0fe71ce3-b1e1-48eb-9070-be2756fc71b5\",\r\n \"hoofdzaak\": null,\r\n \"deelzaken\": [],\r\n \"relevanteAndereZaken\": [],\r\n \"eigenschappen\": [],\r\n \"rollen\": [],\r\n \"status\": null,\r\n \"zaakinformatieobjecten\": [],\r\n \"zaakobjecten\": [],\r\n \"resultaat\": null,\r\n \"kenmerken\": [],\r\n \"archiefnominatie\": null,\r\n \"archiefstatus\": \"nog_te_archiveren\",\r\n \"archiefactiedatum\": null,\r\n \"opdrachtgevendeOrganisatie\": null,\r\n \"processobjectaard\": null,\r\n \"startdatumBewaartermijn\": null,\r\n \"processobject\": null\r\n}" + }, + "auth": { + "type": "jwt", + "jwt": [ + { + "type": "string", + "value": "{\r\n \"iss\": \"procest-admin\",\r\n \"client_id\": \"procest-admin\",\r\n \"iat\": \"1773145182\",\r\n \"user_id\": \"procest-admin\",\r\n \"user_representation\": \"\"\r\n}", + "key": "payload" + }, + { + "type": "string", + "value": "procest-admin-secret-key-for-testing", + "key": "secret" + }, + { + "type": "string", + "value": "HS256", + "key": "algorithm" + }, + { + "type": "boolean", + "value": false, + "key": "isSecretBase64Encoded" + }, + { + "type": "string", + "value": "header", + "key": "addTokenTo" + }, + { + "type": "string", + "value": "Bearer", + "key": "headerPrefix" + }, + { + "type": "string", + "value": "token", + "key": "queryParamKey" + }, + { + "type": "string", + "value": "{}", + "key": "header" + } + ] + } + }, + "response": { + "id": "a6e1f5ac-f2b3-4aaf-a8c5-decca0dd4a4e", + "status": "OK", + "code": 200, + "header": [ + { + "key": "Date", + "value": "Tue, 10 Mar 2026 12:19:41 GMT" + }, + { + "key": "Server", + "value": "Apache/2.4.66 (Debian)" + }, + { + "key": "X-Content-Type-Options", + "value": "nosniff" + }, + { + "key": "X-Frame-Options", + "value": "SAMEORIGIN" + }, + { + "key": "X-Permitted-Cross-Domain-Policies", + "value": "none" + }, + { + "key": "X-Robots-Tag", + "value": "noindex, nofollow" + }, + { + "key": "Referrer-Policy", + "value": "no-referrer" + }, + { + "key": "X-Powered-By", + "value": "PHP/8.3.30" + }, + { + "key": "Content-Security-Policy", + "value": "default-src 'none';base-uri 'none';manifest-src 'self';frame-ancestors 'none'" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=6aa2d49769a3f715578f497b4c9a142e; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=6aa2d49769a3f715578f497b4c9a142e; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=6aa2d49769a3f715578f497b4c9a142e; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=6aa2d49769a3f715578f497b4c9a142e; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=6aa2d49769a3f715578f497b4c9a142e; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=8d69ca002a032e3ef98281b7247bf8be; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=8d69ca002a032e3ef98281b7247bf8be; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=8d69ca002a032e3ef98281b7247bf8be; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=8d69ca002a032e3ef98281b7247bf8be; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=8d69ca002a032e3ef98281b7247bf8be; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "X-Request-Id", + "value": "hVvbOP4pZ0de2M0IcE5L" + }, + { + "key": "Cache-Control", + "value": "no-cache, no-store, must-revalidate" + }, + { + "key": "Feature-Policy", + "value": "autoplay 'none';camera 'none';fullscreen 'none';geolocation 'none';microphone 'none';payment 'none'" + }, + { + "key": "X-User-Id", + "value": "admin" + }, + { + "key": "Content-Encoding", + "value": "gzip" + }, + { + "key": "Content-Length", + "value": "424" + }, + { + "key": "Keep-Alive", + "value": "timeout=5, max=99" + }, + { + "key": "Connection", + "value": "Keep-Alive" + }, + { + "key": "Content-Type", + "value": "application/json; charset=utf-8" + } + ], + "stream": { + "type": "Buffer", + "data": [ + 123, + 34, + 117, + 114, + 108, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 122, + 97, + 107, + 101, + 110, + 92, + 47, + 118, + 49, + 92, + 47, + 122, + 97, + 107, + 101, + 110, + 92, + 47, + 98, + 102, + 102, + 56, + 99, + 57, + 99, + 102, + 45, + 55, + 49, + 99, + 54, + 45, + 52, + 50, + 53, + 50, + 45, + 98, + 51, + 54, + 56, + 45, + 100, + 99, + 51, + 57, + 99, + 51, + 97, + 101, + 57, + 50, + 101, + 51, + 34, + 44, + 34, + 117, + 117, + 105, + 100, + 34, + 58, + 34, + 98, + 102, + 102, + 56, + 99, + 57, + 99, + 102, + 45, + 55, + 49, + 99, + 54, + 45, + 52, + 50, + 53, + 50, + 45, + 98, + 51, + 54, + 56, + 45, + 100, + 99, + 51, + 57, + 99, + 51, + 97, + 101, + 57, + 50, + 101, + 51, + 34, + 44, + 34, + 105, + 100, + 101, + 110, + 116, + 105, + 102, + 105, + 99, + 97, + 116, + 105, + 101, + 34, + 58, + 34, + 34, + 44, + 34, + 111, + 109, + 115, + 99, + 104, + 114, + 105, + 106, + 118, + 105, + 110, + 103, + 34, + 58, + 34, + 115, + 116, + 114, + 105, + 110, + 103, + 34, + 44, + 34, + 116, + 111, + 101, + 108, + 105, + 99, + 104, + 116, + 105, + 110, + 103, + 34, + 58, + 34, + 115, + 116, + 114, + 105, + 110, + 103, + 34, + 44, + 34, + 122, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 105, + 92, + 47, + 118, + 49, + 92, + 47, + 122, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 110, + 92, + 47, + 54, + 49, + 57, + 100, + 99, + 51, + 101, + 53, + 45, + 53, + 50, + 102, + 49, + 45, + 52, + 50, + 57, + 52, + 45, + 97, + 53, + 54, + 57, + 45, + 102, + 50, + 49, + 100, + 49, + 54, + 102, + 52, + 52, + 56, + 55, + 57, + 34, + 44, + 34, + 114, + 101, + 103, + 105, + 115, + 116, + 114, + 97, + 116, + 105, + 101, + 100, + 97, + 116, + 117, + 109, + 34, + 58, + 34, + 50, + 48, + 50, + 54, + 45, + 48, + 51, + 45, + 49, + 48, + 84, + 49, + 50, + 58, + 49, + 57, + 58, + 52, + 49, + 43, + 48, + 48, + 58, + 48, + 48, + 34, + 44, + 34, + 115, + 116, + 97, + 114, + 116, + 100, + 97, + 116, + 117, + 109, + 34, + 58, + 34, + 50, + 48, + 49, + 57, + 45, + 48, + 52, + 45, + 48, + 57, + 34, + 44, + 34, + 101, + 105, + 110, + 100, + 100, + 97, + 116, + 117, + 109, + 34, + 58, + 110, + 117, + 108, + 108, + 44, + 34, + 101, + 105, + 110, + 100, + 100, + 97, + 116, + 117, + 109, + 71, + 101, + 112, + 108, + 97, + 110, + 100, + 34, + 58, + 34, + 50, + 48, + 49, + 57, + 45, + 48, + 52, + 45, + 50, + 48, + 34, + 44, + 34, + 117, + 105, + 116, + 101, + 114, + 108, + 105, + 106, + 107, + 101, + 69, + 105, + 110, + 100, + 100, + 97, + 116, + 117, + 109, + 65, + 102, + 100, + 111, + 101, + 110, + 105, + 110, + 103, + 34, + 58, + 34, + 50, + 48, + 49, + 57, + 45, + 48, + 52, + 45, + 48, + 57, + 34, + 44, + 34, + 118, + 101, + 114, + 116, + 114, + 111, + 117, + 119, + 101, + 108, + 105, + 106, + 107, + 104, + 101, + 105, + 100, + 97, + 97, + 110, + 100, + 117, + 105, + 100, + 105, + 110, + 103, + 34, + 58, + 34, + 103, + 101, + 104, + 101, + 105, + 109, + 34, + 44, + 34, + 118, + 101, + 114, + 97, + 110, + 116, + 119, + 111, + 111, + 114, + 100, + 101, + 108, + 105, + 106, + 107, + 101, + 79, + 114, + 103, + 97, + 110, + 105, + 115, + 97, + 116, + 105, + 101, + 34, + 58, + 34, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 34, + 44, + 34, + 97, + 114, + 99, + 104, + 105, + 101, + 102, + 110, + 111, + 109, + 105, + 110, + 97, + 116, + 105, + 101, + 34, + 58, + 110, + 117, + 108, + 108, + 44, + 34, + 97, + 114, + 99, + 104, + 105, + 101, + 102, + 97, + 99, + 116, + 105, + 101, + 100, + 97, + 116, + 117, + 109, + 34, + 58, + 110, + 117, + 108, + 108, + 44, + 34, + 97, + 114, + 99, + 104, + 105, + 101, + 102, + 115, + 116, + 97, + 116, + 117, + 115, + 34, + 58, + 34, + 110, + 111, + 103, + 95, + 116, + 101, + 95, + 97, + 114, + 99, + 104, + 105, + 118, + 101, + 114, + 101, + 110, + 34, + 44, + 34, + 98, + 101, + 116, + 97, + 108, + 105, + 110, + 103, + 115, + 105, + 110, + 100, + 105, + 99, + 97, + 116, + 105, + 101, + 34, + 58, + 34, + 103, + 101, + 104, + 101, + 101, + 108, + 34, + 44, + 34, + 108, + 97, + 97, + 116, + 115, + 116, + 101, + 66, + 101, + 116, + 97, + 97, + 108, + 100, + 97, + 116, + 117, + 109, + 34, + 58, + 34, + 50, + 48, + 49, + 57, + 45, + 48, + 49, + 45, + 48, + 49, + 34, + 44, + 34, + 104, + 111, + 111, + 102, + 100, + 122, + 97, + 97, + 107, + 34, + 58, + 110, + 117, + 108, + 108, + 125 + ] + }, + "cookie": [], + "responseTime": 207, + "responseSize": 787 + }, + "id": "cc9a9e5f-29b8-4a7f-9b47-d089854cbb7e", + "assertions": [ + { + "assertion": "Zaak bijwerken met valide productenOfDiensten geeft 200", + "skipped": false + } + ] + }, + { + "cursor": { + "ref": "2f19f3bb-cb4f-497a-b110-6b50f1011189", + "length": 313, + "cycles": 1, + "position": 172, + "iteration": 0, + "httpRequestId": "4466978e-c6a3-4038-a2f7-df76936ecfb9" + }, + "item": { + "id": "4278ac5c-72c3-4854-9fc0-1212303785dc", + "name": "(zrc-015f) Zaak deels bijwerken met valide productenOfDiensten is mogelijk", + "request": { + "url": { + "host": [ + "{{created_zaak_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Accept-Crs", + "value": "EPSG:4326" + }, + { + "key": "Content-Crs", + "value": "EPSG:4326" + }, + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "PATCH", + "body": { + "mode": "raw", + "raw": "{\r\n \r\n \"productenOfDiensten\": [\"https://ref.tst.vng.cloud/standaard/\"]\r\n}" + } + }, + "response": [], + "event": [ + { + "listen": "prerequest", + "script": { + "id": "784b77d6-27ad-44ae-8e0a-84652e52f531", + "type": "text/javascript", + "packages": {}, + "exec": [ + "" + ], + "_lastExecutionId": "2cc6c2f9-1efa-4df1-a041-62de430d06c0" + } + }, + { + "listen": "test", + "script": { + "id": "abfdce97-8b24-40ce-b79e-56827f3d2474", + "type": "text/javascript", + "packages": {}, + "exec": [ + "pm.test(\"Zaak deels bijwerken met valide productenOfDiensten geeft 200\", function() {", + " pm.response.to.have.status(200);", + "});", + "", + "" + ], + "_lastExecutionId": "478138de-9001-4367-b2c7-b4ba3ab00bf0" + } + } + ] + }, + "request": { + "url": { + "protocol": "http", + "port": "8080", + "path": [ + "index.php", + "apps", + "procest", + "api", + "zgw", + "zaken", + "v1", + "zaken", + "bff8c9cf-71c6-4252-b368-dc39c3ae92e3" + ], + "host": [ + "localhost" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Accept-Crs", + "value": "EPSG:4326" + }, + { + "key": "Content-Crs", + "value": "EPSG:4326" + }, + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Authorization", + "value": "Bearer eyJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJwcm9jZXN0LWFkbWluIiwiY2xpZW50X2lkIjoicHJvY2VzdC1hZG1pbiIsImlhdCI6IjE3NzMxNDUxODIiLCJ1c2VyX2lkIjoicHJvY2VzdC1hZG1pbiIsInVzZXJfcmVwcmVzZW50YXRpb24iOiIifQ.rApWFyxr9Ew5rzjS7pM9wUIioS9Jjm3735YALDhnCag", + "system": true + }, + { + "key": "User-Agent", + "value": "PostmanRuntime/7.39.1", + "system": true + }, + { + "key": "Accept", + "value": "*/*", + "system": true + }, + { + "key": "Cache-Control", + "value": "no-cache", + "system": true + }, + { + "key": "Postman-Token", + "value": "2681e64d-afa3-4521-9cb4-bcc41c499110", + "system": true + }, + { + "key": "Host", + "value": "localhost:8080", + "system": true + }, + { + "key": "Accept-Encoding", + "value": "gzip, deflate, br", + "system": true + }, + { + "key": "Connection", + "value": "keep-alive", + "system": true + }, + { + "key": "Content-Length", + "value": "79", + "system": true + }, + { + "key": "Cookie", + "value": "ocvp3112b4wg=8d69ca002a032e3ef98281b7247bf8be; oc_sessionPassphrase=LBNdKxRzA0iqoULIruNxDDh2BK3O%2BrCIU8aUmiUcOFvy5Xw1YfjwQNlmBW2IkGwJYtxXh9%2BwDN6vYuGNX07tXzkBtjQJUWTGdzf8AIOUIVxVx5DfyWAQZ7nmYmQv6XSE; nc_sameSiteCookielax=true; nc_sameSiteCookiestrict=true", + "system": true + } + ], + "method": "PATCH", + "body": { + "mode": "raw", + "raw": "{\r\n \r\n \"productenOfDiensten\": [\"https://ref.tst.vng.cloud/standaard/\"]\r\n}" + }, + "auth": { + "type": "jwt", + "jwt": [ + { + "type": "string", + "value": "{\r\n \"iss\": \"procest-admin\",\r\n \"client_id\": \"procest-admin\",\r\n \"iat\": \"1773145182\",\r\n \"user_id\": \"procest-admin\",\r\n \"user_representation\": \"\"\r\n}", + "key": "payload" + }, + { + "type": "string", + "value": "procest-admin-secret-key-for-testing", + "key": "secret" + }, + { + "type": "string", + "value": "HS256", + "key": "algorithm" + }, + { + "type": "boolean", + "value": false, + "key": "isSecretBase64Encoded" + }, + { + "type": "string", + "value": "header", + "key": "addTokenTo" + }, + { + "type": "string", + "value": "Bearer", + "key": "headerPrefix" + }, + { + "type": "string", + "value": "token", + "key": "queryParamKey" + }, + { + "type": "string", + "value": "{}", + "key": "header" + } + ] + } + }, + "response": { + "id": "d32e2af5-e961-40ca-88fe-a398578fac25", + "status": "OK", + "code": 200, + "header": [ + { + "key": "Date", + "value": "Tue, 10 Mar 2026 12:19:42 GMT" + }, + { + "key": "Server", + "value": "Apache/2.4.66 (Debian)" + }, + { + "key": "X-Content-Type-Options", + "value": "nosniff" + }, + { + "key": "X-Frame-Options", + "value": "SAMEORIGIN" + }, + { + "key": "X-Permitted-Cross-Domain-Policies", + "value": "none" + }, + { + "key": "X-Robots-Tag", + "value": "noindex, nofollow" + }, + { + "key": "Referrer-Policy", + "value": "no-referrer" + }, + { + "key": "X-Powered-By", + "value": "PHP/8.3.30" + }, + { + "key": "Content-Security-Policy", + "value": "default-src 'none';base-uri 'none';manifest-src 'self';frame-ancestors 'none'" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=8d69ca002a032e3ef98281b7247bf8be; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=8d69ca002a032e3ef98281b7247bf8be; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=8d69ca002a032e3ef98281b7247bf8be; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=8d69ca002a032e3ef98281b7247bf8be; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=8d69ca002a032e3ef98281b7247bf8be; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=220e28b8e38dae2963c1c1d9d50c264b; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=220e28b8e38dae2963c1c1d9d50c264b; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=220e28b8e38dae2963c1c1d9d50c264b; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=220e28b8e38dae2963c1c1d9d50c264b; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=220e28b8e38dae2963c1c1d9d50c264b; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "X-Request-Id", + "value": "NLDD1FzQSTgGavx2mi87" + }, + { + "key": "Cache-Control", + "value": "no-cache, no-store, must-revalidate" + }, + { + "key": "Feature-Policy", + "value": "autoplay 'none';camera 'none';fullscreen 'none';geolocation 'none';microphone 'none';payment 'none'" + }, + { + "key": "X-User-Id", + "value": "admin" + }, + { + "key": "Content-Encoding", + "value": "gzip" + }, + { + "key": "Content-Length", + "value": "424" + }, + { + "key": "Keep-Alive", + "value": "timeout=5, max=98" + }, + { + "key": "Connection", + "value": "Keep-Alive" + }, + { + "key": "Content-Type", + "value": "application/json; charset=utf-8" + } + ], + "stream": { + "type": "Buffer", + "data": [ + 123, + 34, + 117, + 114, + 108, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 122, + 97, + 107, + 101, + 110, + 92, + 47, + 118, + 49, + 92, + 47, + 122, + 97, + 107, + 101, + 110, + 92, + 47, + 98, + 102, + 102, + 56, + 99, + 57, + 99, + 102, + 45, + 55, + 49, + 99, + 54, + 45, + 52, + 50, + 53, + 50, + 45, + 98, + 51, + 54, + 56, + 45, + 100, + 99, + 51, + 57, + 99, + 51, + 97, + 101, + 57, + 50, + 101, + 51, + 34, + 44, + 34, + 117, + 117, + 105, + 100, + 34, + 58, + 34, + 98, + 102, + 102, + 56, + 99, + 57, + 99, + 102, + 45, + 55, + 49, + 99, + 54, + 45, + 52, + 50, + 53, + 50, + 45, + 98, + 51, + 54, + 56, + 45, + 100, + 99, + 51, + 57, + 99, + 51, + 97, + 101, + 57, + 50, + 101, + 51, + 34, + 44, + 34, + 105, + 100, + 101, + 110, + 116, + 105, + 102, + 105, + 99, + 97, + 116, + 105, + 101, + 34, + 58, + 34, + 34, + 44, + 34, + 111, + 109, + 115, + 99, + 104, + 114, + 105, + 106, + 118, + 105, + 110, + 103, + 34, + 58, + 34, + 115, + 116, + 114, + 105, + 110, + 103, + 34, + 44, + 34, + 116, + 111, + 101, + 108, + 105, + 99, + 104, + 116, + 105, + 110, + 103, + 34, + 58, + 34, + 115, + 116, + 114, + 105, + 110, + 103, + 34, + 44, + 34, + 122, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 105, + 92, + 47, + 118, + 49, + 92, + 47, + 122, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 110, + 92, + 47, + 54, + 49, + 57, + 100, + 99, + 51, + 101, + 53, + 45, + 53, + 50, + 102, + 49, + 45, + 52, + 50, + 57, + 52, + 45, + 97, + 53, + 54, + 57, + 45, + 102, + 50, + 49, + 100, + 49, + 54, + 102, + 52, + 52, + 56, + 55, + 57, + 34, + 44, + 34, + 114, + 101, + 103, + 105, + 115, + 116, + 114, + 97, + 116, + 105, + 101, + 100, + 97, + 116, + 117, + 109, + 34, + 58, + 34, + 50, + 48, + 50, + 54, + 45, + 48, + 51, + 45, + 49, + 48, + 84, + 49, + 50, + 58, + 49, + 57, + 58, + 52, + 49, + 43, + 48, + 48, + 58, + 48, + 48, + 34, + 44, + 34, + 115, + 116, + 97, + 114, + 116, + 100, + 97, + 116, + 117, + 109, + 34, + 58, + 34, + 50, + 48, + 49, + 57, + 45, + 48, + 52, + 45, + 48, + 57, + 34, + 44, + 34, + 101, + 105, + 110, + 100, + 100, + 97, + 116, + 117, + 109, + 34, + 58, + 110, + 117, + 108, + 108, + 44, + 34, + 101, + 105, + 110, + 100, + 100, + 97, + 116, + 117, + 109, + 71, + 101, + 112, + 108, + 97, + 110, + 100, + 34, + 58, + 34, + 50, + 48, + 49, + 57, + 45, + 48, + 52, + 45, + 50, + 48, + 34, + 44, + 34, + 117, + 105, + 116, + 101, + 114, + 108, + 105, + 106, + 107, + 101, + 69, + 105, + 110, + 100, + 100, + 97, + 116, + 117, + 109, + 65, + 102, + 100, + 111, + 101, + 110, + 105, + 110, + 103, + 34, + 58, + 34, + 50, + 48, + 49, + 57, + 45, + 48, + 52, + 45, + 48, + 57, + 34, + 44, + 34, + 118, + 101, + 114, + 116, + 114, + 111, + 117, + 119, + 101, + 108, + 105, + 106, + 107, + 104, + 101, + 105, + 100, + 97, + 97, + 110, + 100, + 117, + 105, + 100, + 105, + 110, + 103, + 34, + 58, + 34, + 103, + 101, + 104, + 101, + 105, + 109, + 34, + 44, + 34, + 118, + 101, + 114, + 97, + 110, + 116, + 119, + 111, + 111, + 114, + 100, + 101, + 108, + 105, + 106, + 107, + 101, + 79, + 114, + 103, + 97, + 110, + 105, + 115, + 97, + 116, + 105, + 101, + 34, + 58, + 34, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 34, + 44, + 34, + 97, + 114, + 99, + 104, + 105, + 101, + 102, + 110, + 111, + 109, + 105, + 110, + 97, + 116, + 105, + 101, + 34, + 58, + 110, + 117, + 108, + 108, + 44, + 34, + 97, + 114, + 99, + 104, + 105, + 101, + 102, + 97, + 99, + 116, + 105, + 101, + 100, + 97, + 116, + 117, + 109, + 34, + 58, + 110, + 117, + 108, + 108, + 44, + 34, + 97, + 114, + 99, + 104, + 105, + 101, + 102, + 115, + 116, + 97, + 116, + 117, + 115, + 34, + 58, + 34, + 110, + 111, + 103, + 95, + 116, + 101, + 95, + 97, + 114, + 99, + 104, + 105, + 118, + 101, + 114, + 101, + 110, + 34, + 44, + 34, + 98, + 101, + 116, + 97, + 108, + 105, + 110, + 103, + 115, + 105, + 110, + 100, + 105, + 99, + 97, + 116, + 105, + 101, + 34, + 58, + 34, + 103, + 101, + 104, + 101, + 101, + 108, + 34, + 44, + 34, + 108, + 97, + 97, + 116, + 115, + 116, + 101, + 66, + 101, + 116, + 97, + 97, + 108, + 100, + 97, + 116, + 117, + 109, + 34, + 58, + 34, + 50, + 48, + 49, + 57, + 45, + 48, + 49, + 45, + 48, + 49, + 34, + 44, + 34, + 104, + 111, + 111, + 102, + 100, + 122, + 97, + 97, + 107, + 34, + 58, + 110, + 117, + 108, + 108, + 125 + ] + }, + "cookie": [], + "responseTime": 220, + "responseSize": 787 + }, + "id": "4278ac5c-72c3-4854-9fc0-1212303785dc", + "assertions": [ + { + "assertion": "Zaak deels bijwerken met valide productenOfDiensten geeft 200", + "skipped": false + } + ] + }, + { + "cursor": { + "ref": "fd9c3f25-13eb-4188-b126-d1da865b0517", + "length": 313, + "cycles": 1, + "position": 173, + "iteration": 0, + "httpRequestId": "2845b29f-89b6-4e6d-bc6b-4ac642ef8b03" + }, + "item": { + "id": "4dc0bd99-c9a7-46f5-a212-41fcae93afc2", + "name": "Create Zaaktype for statustype validation", + "request": { + "url": { + "path": [ + "zaaktypen" + ], + "host": [ + "{{ztc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{{request_body}}" + } + }, + "response": [], + "event": [ + { + "listen": "prerequest", + "script": { + "id": "1edca6b8-2d5b-40a8-ba3e-5ed43c5a60a9", + "type": "text/javascript", + "exec": [ + "// Retrieve the Zaak body template and modify as needed", + "var body = JSON.parse(pm.environment.get(\"zaaktype_body\"));", + "body.omschrijving = \"TEMP\"", + "body.besluittypen = [];", + "var uuid = require('uuid');", + "var myUUID = uuid.v4(); ", + "body.identificatie = myUUID", + "// Store the modified Zaak body, allowing it to be used in the main request", + "pm.environment.set(\"request_body\", JSON.stringify(body));" + ], + "_lastExecutionId": "6a825816-a6e6-4585-95e3-745ce2f80af8" + } + }, + { + "listen": "test", + "script": { + "id": "4bfc2807-d1a2-45c2-9eb5-156c2c56b99c", + "type": "text/javascript", + "exec": [ + "pm.environment.set(\"temp_zaaktype_url\", pm.response.json().url);" + ], + "_lastExecutionId": "22c840bb-216f-4e8a-8999-76bb6b6494e4" + } + } + ] + }, + "request": { + "url": { + "protocol": "http", + "port": "8080", + "path": [ + "index.php", + "apps", + "procest", + "api", + "zgw", + "catalogi", + "v1", + "zaaktypen" + ], + "host": [ + "localhost" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Authorization", + "value": "Bearer eyJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJwcm9jZXN0LWFkbWluIiwiY2xpZW50X2lkIjoicHJvY2VzdC1hZG1pbiIsImlhdCI6IjE3NzMxNDUxODIiLCJ1c2VyX2lkIjoicHJvY2VzdC1hZG1pbiIsInVzZXJfcmVwcmVzZW50YXRpb24iOiIifQ.rApWFyxr9Ew5rzjS7pM9wUIioS9Jjm3735YALDhnCag", + "system": true + }, + { + "key": "User-Agent", + "value": "PostmanRuntime/7.39.1", + "system": true + }, + { + "key": "Accept", + "value": "*/*", + "system": true + }, + { + "key": "Cache-Control", + "value": "no-cache", + "system": true + }, + { + "key": "Postman-Token", + "value": "3e662c93-f87a-4b09-8330-6e9baaa3e821", + "system": true + }, + { + "key": "Host", + "value": "localhost:8080", + "system": true + }, + { + "key": "Accept-Encoding", + "value": "gzip, deflate, br", + "system": true + }, + { + "key": "Connection", + "value": "keep-alive", + "system": true + }, + { + "key": "Content-Length", + "value": "1082", + "system": true + }, + { + "key": "Cookie", + "value": "ocvp3112b4wg=220e28b8e38dae2963c1c1d9d50c264b; oc_sessionPassphrase=LBNdKxRzA0iqoULIruNxDDh2BK3O%2BrCIU8aUmiUcOFvy5Xw1YfjwQNlmBW2IkGwJYtxXh9%2BwDN6vYuGNX07tXzkBtjQJUWTGdzf8AIOUIVxVx5DfyWAQZ7nmYmQv6XSE; nc_sameSiteCookielax=true; nc_sameSiteCookiestrict=true", + "system": true + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\"identificatie\":\"55ed3f47-a571-4a89-885f-7f6d5c8720f5\",\"omschrijving\":\"TEMP\",\"vertrouwelijkheidaanduiding\":\"openbaar\",\"doel\":\"test doel\",\"verantwoordelijke\":\"X\",\"aanleiding\":\"test aanleiding\",\"indicatieInternOfExtern\":\"extern\",\"handelingInitiator\":\"indienen\",\"onderwerp\":\"openbare ruimte\",\"handelingBehandelaar\":\"behandelen\",\"doorlooptijd\":\"P10D\",\"opschortingEnAanhoudingMogelijk\":false,\"verlengingMogelijk\":true,\"publicatieIndicatie\":false,\"productenOfDiensten\":[\"https://ref.tst.vng.cloud/standaard/\"],\"selectielijstProcestype\":\"https://selectielijst.openzaak.nl/api/v1/procestypen/838e405a-9b12-43c4-a985-d7a7490d422e\",\"referentieproces\":{\"naam\":\"test\",\"link\":\"\"},\"deelzaaktypen\":[\"cae6f26a-1321-4bff-b314-421ddf7775b9\"],\"catalogus\":\"http://localhost:8080/index.php/apps/procest/api/zgw/catalogi/v1/catalogussen/5057408f-fd76-469e-8646-bcc4ba2efa8d\",\"statustypen\":[],\"resultaattypen\":[],\"eigenschappen\":[],\"informatieobjecttypen\":[],\"besluittypen\":[],\"gerelateerdeZaaktypen\":[],\"beginGeldigheid\":\"2019-01-01\",\"versiedatum\":\"2019-01-01\",\"concept\":true,\"verlengingstermijn\":\"P5D\"}" + }, + "auth": { + "type": "jwt", + "jwt": [ + { + "type": "string", + "value": "{\r\n \"iss\": \"procest-admin\",\r\n \"client_id\": \"procest-admin\",\r\n \"iat\": \"1773145182\",\r\n \"user_id\": \"procest-admin\",\r\n \"user_representation\": \"\"\r\n}", + "key": "payload" + }, + { + "type": "string", + "value": "procest-admin-secret-key-for-testing", + "key": "secret" + }, + { + "type": "string", + "value": "HS256", + "key": "algorithm" + }, + { + "type": "boolean", + "value": false, + "key": "isSecretBase64Encoded" + }, + { + "type": "string", + "value": "header", + "key": "addTokenTo" + }, + { + "type": "string", + "value": "Bearer", + "key": "headerPrefix" + }, + { + "type": "string", + "value": "token", + "key": "queryParamKey" + }, + { + "type": "string", + "value": "{}", + "key": "header" + } + ] + } + }, + "response": { + "id": "c6b635d7-5fe6-49a5-9625-074f9f7a921f", + "status": "Created", + "code": 201, + "header": [ + { + "key": "Date", + "value": "Tue, 10 Mar 2026 12:19:42 GMT" + }, + { + "key": "Server", + "value": "Apache/2.4.66 (Debian)" + }, + { + "key": "X-Content-Type-Options", + "value": "nosniff" + }, + { + "key": "X-Frame-Options", + "value": "SAMEORIGIN" + }, + { + "key": "X-Permitted-Cross-Domain-Policies", + "value": "none" + }, + { + "key": "X-Robots-Tag", + "value": "noindex, nofollow" + }, + { + "key": "Referrer-Policy", + "value": "no-referrer" + }, + { + "key": "X-Powered-By", + "value": "PHP/8.3.30" + }, + { + "key": "Content-Security-Policy", + "value": "default-src 'none';base-uri 'none';manifest-src 'self';frame-ancestors 'none'" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=220e28b8e38dae2963c1c1d9d50c264b; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=220e28b8e38dae2963c1c1d9d50c264b; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=220e28b8e38dae2963c1c1d9d50c264b; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=220e28b8e38dae2963c1c1d9d50c264b; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=220e28b8e38dae2963c1c1d9d50c264b; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=88a493d9361bc5fb8a8d55afabb96c06; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=88a493d9361bc5fb8a8d55afabb96c06; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=88a493d9361bc5fb8a8d55afabb96c06; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=88a493d9361bc5fb8a8d55afabb96c06; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=88a493d9361bc5fb8a8d55afabb96c06; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "X-Request-Id", + "value": "YJD9RyKhCvU9EufxziJ3" + }, + { + "key": "Cache-Control", + "value": "no-cache, no-store, must-revalidate" + }, + { + "key": "Feature-Policy", + "value": "autoplay 'none';camera 'none';fullscreen 'none';geolocation 'none';microphone 'none';payment 'none'" + }, + { + "key": "X-User-Id", + "value": "admin" + }, + { + "key": "Content-Length", + "value": "1330" + }, + { + "key": "Keep-Alive", + "value": "timeout=5, max=97" + }, + { + "key": "Connection", + "value": "Keep-Alive" + }, + { + "key": "Content-Type", + "value": "application/json; charset=utf-8" + } + ], + "stream": { + "type": "Buffer", + "data": [ + 123, + 34, + 117, + 114, + 108, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 105, + 92, + 47, + 118, + 49, + 92, + 47, + 122, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 110, + 92, + 47, + 56, + 52, + 100, + 102, + 50, + 50, + 100, + 56, + 45, + 53, + 57, + 56, + 49, + 45, + 52, + 101, + 50, + 102, + 45, + 56, + 57, + 99, + 50, + 45, + 49, + 57, + 98, + 52, + 97, + 50, + 101, + 50, + 48, + 56, + 49, + 99, + 34, + 44, + 34, + 117, + 117, + 105, + 100, + 34, + 58, + 34, + 56, + 52, + 100, + 102, + 50, + 50, + 100, + 56, + 45, + 53, + 57, + 56, + 49, + 45, + 52, + 101, + 50, + 102, + 45, + 56, + 57, + 99, + 50, + 45, + 49, + 57, + 98, + 52, + 97, + 50, + 101, + 50, + 48, + 56, + 49, + 99, + 34, + 44, + 34, + 105, + 100, + 101, + 110, + 116, + 105, + 102, + 105, + 99, + 97, + 116, + 105, + 101, + 34, + 58, + 34, + 53, + 53, + 101, + 100, + 51, + 102, + 52, + 55, + 45, + 97, + 53, + 55, + 49, + 45, + 52, + 97, + 56, + 57, + 45, + 56, + 56, + 53, + 102, + 45, + 55, + 102, + 54, + 100, + 53, + 99, + 56, + 55, + 50, + 48, + 102, + 53, + 34, + 44, + 34, + 111, + 109, + 115, + 99, + 104, + 114, + 105, + 106, + 118, + 105, + 110, + 103, + 34, + 58, + 34, + 84, + 69, + 77, + 80, + 34, + 44, + 34, + 111, + 109, + 115, + 99, + 104, + 114, + 105, + 106, + 118, + 105, + 110, + 103, + 71, + 101, + 110, + 101, + 114, + 105, + 101, + 107, + 34, + 58, + 34, + 34, + 44, + 34, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 117, + 115, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 105, + 92, + 47, + 118, + 49, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 117, + 115, + 115, + 101, + 110, + 92, + 47, + 53, + 48, + 53, + 55, + 52, + 48, + 56, + 102, + 45, + 102, + 100, + 55, + 54, + 45, + 52, + 54, + 57, + 101, + 45, + 56, + 54, + 52, + 54, + 45, + 98, + 99, + 99, + 52, + 98, + 97, + 50, + 101, + 102, + 97, + 56, + 100, + 34, + 44, + 34, + 100, + 111, + 101, + 108, + 34, + 58, + 34, + 116, + 101, + 115, + 116, + 32, + 100, + 111, + 101, + 108, + 34, + 44, + 34, + 97, + 97, + 110, + 108, + 101, + 105, + 100, + 105, + 110, + 103, + 34, + 58, + 34, + 116, + 101, + 115, + 116, + 32, + 97, + 97, + 110, + 108, + 101, + 105, + 100, + 105, + 110, + 103, + 34, + 44, + 34, + 111, + 110, + 100, + 101, + 114, + 119, + 101, + 114, + 112, + 34, + 58, + 34, + 111, + 112, + 101, + 110, + 98, + 97, + 114, + 101, + 32, + 114, + 117, + 105, + 109, + 116, + 101, + 34, + 44, + 34, + 100, + 111, + 111, + 114, + 108, + 111, + 111, + 112, + 116, + 105, + 106, + 100, + 34, + 58, + 34, + 80, + 49, + 48, + 68, + 34, + 44, + 34, + 118, + 101, + 114, + 116, + 114, + 111, + 117, + 119, + 101, + 108, + 105, + 106, + 107, + 104, + 101, + 105, + 100, + 97, + 97, + 110, + 100, + 117, + 105, + 100, + 105, + 110, + 103, + 34, + 58, + 34, + 111, + 112, + 101, + 110, + 98, + 97, + 97, + 114, + 34, + 44, + 34, + 99, + 111, + 110, + 99, + 101, + 112, + 116, + 34, + 58, + 116, + 114, + 117, + 101, + 44, + 34, + 98, + 101, + 103, + 105, + 110, + 71, + 101, + 108, + 100, + 105, + 103, + 104, + 101, + 105, + 100, + 34, + 58, + 34, + 50, + 48, + 49, + 57, + 45, + 48, + 49, + 45, + 48, + 49, + 34, + 44, + 34, + 101, + 105, + 110, + 100, + 101, + 71, + 101, + 108, + 100, + 105, + 103, + 104, + 101, + 105, + 100, + 34, + 58, + 34, + 50, + 48, + 50, + 54, + 45, + 48, + 51, + 45, + 49, + 48, + 34, + 44, + 34, + 104, + 97, + 110, + 100, + 101, + 108, + 105, + 110, + 103, + 73, + 110, + 105, + 116, + 105, + 97, + 116, + 111, + 114, + 34, + 58, + 34, + 105, + 110, + 100, + 105, + 101, + 110, + 101, + 110, + 34, + 44, + 34, + 105, + 110, + 100, + 105, + 99, + 97, + 116, + 105, + 101, + 73, + 110, + 116, + 101, + 114, + 110, + 79, + 102, + 69, + 120, + 116, + 101, + 114, + 110, + 34, + 58, + 34, + 101, + 120, + 116, + 101, + 114, + 110, + 34, + 44, + 34, + 104, + 97, + 110, + 100, + 101, + 108, + 105, + 110, + 103, + 66, + 101, + 104, + 97, + 110, + 100, + 101, + 108, + 97, + 97, + 114, + 34, + 58, + 34, + 98, + 101, + 104, + 97, + 110, + 100, + 101, + 108, + 101, + 110, + 34, + 44, + 34, + 111, + 112, + 115, + 99, + 104, + 111, + 114, + 116, + 105, + 110, + 103, + 69, + 110, + 65, + 97, + 110, + 104, + 111, + 117, + 100, + 105, + 110, + 103, + 77, + 111, + 103, + 101, + 108, + 105, + 106, + 107, + 34, + 58, + 102, + 97, + 108, + 115, + 101, + 44, + 34, + 118, + 101, + 114, + 108, + 101, + 110, + 103, + 105, + 110, + 103, + 77, + 111, + 103, + 101, + 108, + 105, + 106, + 107, + 34, + 58, + 116, + 114, + 117, + 101, + 44, + 34, + 118, + 101, + 114, + 108, + 101, + 110, + 103, + 105, + 110, + 103, + 115, + 116, + 101, + 114, + 109, + 105, + 106, + 110, + 34, + 58, + 34, + 80, + 53, + 68, + 34, + 44, + 34, + 112, + 117, + 98, + 108, + 105, + 99, + 97, + 116, + 105, + 101, + 73, + 110, + 100, + 105, + 99, + 97, + 116, + 105, + 101, + 34, + 58, + 102, + 97, + 108, + 115, + 101, + 44, + 34, + 112, + 114, + 111, + 100, + 117, + 99, + 116, + 101, + 110, + 79, + 102, + 68, + 105, + 101, + 110, + 115, + 116, + 101, + 110, + 34, + 58, + 91, + 34, + 104, + 116, + 116, + 112, + 115, + 58, + 92, + 47, + 92, + 47, + 114, + 101, + 102, + 46, + 116, + 115, + 116, + 46, + 118, + 110, + 103, + 46, + 99, + 108, + 111, + 117, + 100, + 92, + 47, + 115, + 116, + 97, + 110, + 100, + 97, + 97, + 114, + 100, + 92, + 47, + 34, + 93, + 44, + 34, + 115, + 101, + 108, + 101, + 99, + 116, + 105, + 101, + 108, + 105, + 106, + 115, + 116, + 80, + 114, + 111, + 99, + 101, + 115, + 116, + 121, + 112, + 101, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 115, + 58, + 92, + 47, + 92, + 47, + 115, + 101, + 108, + 101, + 99, + 116, + 105, + 101, + 108, + 105, + 106, + 115, + 116, + 46, + 111, + 112, + 101, + 110, + 122, + 97, + 97, + 107, + 46, + 110, + 108, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 118, + 49, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 121, + 112, + 101, + 110, + 92, + 47, + 56, + 51, + 56, + 101, + 52, + 48, + 53, + 97, + 45, + 57, + 98, + 49, + 50, + 45, + 52, + 51, + 99, + 52, + 45, + 97, + 57, + 56, + 53, + 45, + 100, + 55, + 97, + 55, + 52, + 57, + 48, + 100, + 52, + 50, + 50, + 101, + 34, + 44, + 34, + 114, + 101, + 102, + 101, + 114, + 101, + 110, + 116, + 105, + 101, + 112, + 114, + 111, + 99, + 101, + 115, + 34, + 58, + 123, + 34, + 108, + 105, + 110, + 107, + 34, + 58, + 34, + 34, + 44, + 34, + 110, + 97, + 97, + 109, + 34, + 58, + 34, + 116, + 101, + 115, + 116, + 34, + 125, + 44, + 34, + 118, + 101, + 114, + 97, + 110, + 116, + 119, + 111, + 111, + 114, + 100, + 101, + 108, + 105, + 106, + 107, + 101, + 34, + 58, + 34, + 88, + 34, + 44, + 34, + 103, + 101, + 114, + 101, + 108, + 97, + 116, + 101, + 101, + 114, + 100, + 101, + 90, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 98, + 101, + 115, + 108, + 117, + 105, + 116, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 105, + 110, + 102, + 111, + 114, + 109, + 97, + 116, + 105, + 101, + 111, + 98, + 106, + 101, + 99, + 116, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 100, + 101, + 101, + 108, + 122, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 116, + 111, + 101, + 108, + 105, + 99, + 104, + 116, + 105, + 110, + 103, + 34, + 58, + 34, + 34, + 44, + 34, + 118, + 101, + 114, + 115, + 105, + 101, + 100, + 97, + 116, + 117, + 109, + 34, + 58, + 34, + 50, + 48, + 49, + 57, + 45, + 48, + 49, + 45, + 48, + 49, + 34, + 44, + 34, + 101, + 105, + 103, + 101, + 110, + 115, + 99, + 104, + 97, + 112, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 115, + 116, + 97, + 116, + 117, + 115, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 114, + 101, + 115, + 117, + 108, + 116, + 97, + 97, + 116, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 114, + 111, + 108, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 125 + ] + }, + "cookie": [], + "responseTime": 411, + "responseSize": 1330 + }, + "id": "4dc0bd99-c9a7-46f5-a212-41fcae93afc2" + }, + { + "cursor": { + "ref": "6ebf6b10-6f3b-4469-87fe-d91f0154c726", + "length": 313, + "cycles": 1, + "position": 174, + "iteration": 0, + "httpRequestId": "0c6bae9b-33b9-46f3-82f8-985f79660916" + }, + "item": { + "id": "14cdcea5-a4d6-44f0-a2cf-13d8f795380c", + "name": "Create Statustype for validation test", + "request": { + "url": { + "path": [ + "statustypen" + ], + "host": [ + "{{ztc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n\t\"omschrijving\": \"Begin\",\n\t\"zaaktype\": \"{{temp_zaaktype_url}}\",\n\t\"volgnummer\": 1\n}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "337cc8e7-07c2-47dc-b796-1aa1223e048a", + "type": "text/javascript", + "exec": [ + "pm.environment.set(\"temp_statustype\", pm.response.json().url);" + ], + "_lastExecutionId": "1971f4d0-c85c-4302-b66f-e9b955cd266e" + } + } + ] + }, + "request": { + "url": { + "protocol": "http", + "port": "8080", + "path": [ + "index.php", + "apps", + "procest", + "api", + "zgw", + "catalogi", + "v1", + "statustypen" + ], + "host": [ + "localhost" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Authorization", + "value": "Bearer eyJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJwcm9jZXN0LWFkbWluIiwiY2xpZW50X2lkIjoicHJvY2VzdC1hZG1pbiIsImlhdCI6IjE3NzMxNDUxODMiLCJ1c2VyX2lkIjoicHJvY2VzdC1hZG1pbiIsInVzZXJfcmVwcmVzZW50YXRpb24iOiIifQ.kSZkGCdqtyNqmAy4JmgcRsRZmV6tlL8r1Ey8JJeT8-M", + "system": true + }, + { + "key": "User-Agent", + "value": "PostmanRuntime/7.39.1", + "system": true + }, + { + "key": "Accept", + "value": "*/*", + "system": true + }, + { + "key": "Cache-Control", + "value": "no-cache", + "system": true + }, + { + "key": "Postman-Token", + "value": "9b07c71b-568c-45fd-9d60-714088049ee1", + "system": true + }, + { + "key": "Host", + "value": "localhost:8080", + "system": true + }, + { + "key": "Accept-Encoding", + "value": "gzip, deflate, br", + "system": true + }, + { + "key": "Connection", + "value": "keep-alive", + "system": true + }, + { + "key": "Content-Length", + "value": "174", + "system": true + }, + { + "key": "Cookie", + "value": "ocvp3112b4wg=88a493d9361bc5fb8a8d55afabb96c06; oc_sessionPassphrase=LBNdKxRzA0iqoULIruNxDDh2BK3O%2BrCIU8aUmiUcOFvy5Xw1YfjwQNlmBW2IkGwJYtxXh9%2BwDN6vYuGNX07tXzkBtjQJUWTGdzf8AIOUIVxVx5DfyWAQZ7nmYmQv6XSE; nc_sameSiteCookielax=true; nc_sameSiteCookiestrict=true", + "system": true + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n\t\"omschrijving\": \"Begin\",\n\t\"zaaktype\": \"http://localhost:8080/index.php/apps/procest/api/zgw/catalogi/v1/zaaktypen/84df22d8-5981-4e2f-89c2-19b4a2e2081c\",\n\t\"volgnummer\": 1\n}" + }, + "auth": { + "type": "jwt", + "jwt": [ + { + "type": "string", + "value": "{\r\n \"iss\": \"procest-admin\",\r\n \"client_id\": \"procest-admin\",\r\n \"iat\": \"1773145183\",\r\n \"user_id\": \"procest-admin\",\r\n \"user_representation\": \"\"\r\n}", + "key": "payload" + }, + { + "type": "string", + "value": "procest-admin-secret-key-for-testing", + "key": "secret" + }, + { + "type": "string", + "value": "HS256", + "key": "algorithm" + }, + { + "type": "boolean", + "value": false, + "key": "isSecretBase64Encoded" + }, + { + "type": "string", + "value": "header", + "key": "addTokenTo" + }, + { + "type": "string", + "value": "Bearer", + "key": "headerPrefix" + }, + { + "type": "string", + "value": "token", + "key": "queryParamKey" + }, + { + "type": "string", + "value": "{}", + "key": "header" + } + ] + } + }, + "response": { + "id": "394d8a8c-8c88-4257-be53-d8e0ee329fb4", + "status": "Created", + "code": 201, + "header": [ + { + "key": "Date", + "value": "Tue, 10 Mar 2026 12:19:42 GMT" + }, + { + "key": "Server", + "value": "Apache/2.4.66 (Debian)" + }, + { + "key": "X-Content-Type-Options", + "value": "nosniff" + }, + { + "key": "X-Frame-Options", + "value": "SAMEORIGIN" + }, + { + "key": "X-Permitted-Cross-Domain-Policies", + "value": "none" + }, + { + "key": "X-Robots-Tag", + "value": "noindex, nofollow" + }, + { + "key": "Referrer-Policy", + "value": "no-referrer" + }, + { + "key": "X-Powered-By", + "value": "PHP/8.3.30" + }, + { + "key": "Content-Security-Policy", + "value": "default-src 'none';base-uri 'none';manifest-src 'self';frame-ancestors 'none'" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=88a493d9361bc5fb8a8d55afabb96c06; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=88a493d9361bc5fb8a8d55afabb96c06; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=88a493d9361bc5fb8a8d55afabb96c06; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=88a493d9361bc5fb8a8d55afabb96c06; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=88a493d9361bc5fb8a8d55afabb96c06; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=81e873dd8ad6b0c3065c7e4465203366; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=81e873dd8ad6b0c3065c7e4465203366; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=81e873dd8ad6b0c3065c7e4465203366; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=81e873dd8ad6b0c3065c7e4465203366; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=81e873dd8ad6b0c3065c7e4465203366; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "X-Request-Id", + "value": "3PizGITiriytWYeQoZ9x" + }, + { + "key": "Cache-Control", + "value": "no-cache, no-store, must-revalidate" + }, + { + "key": "Feature-Policy", + "value": "autoplay 'none';camera 'none';fullscreen 'none';geolocation 'none';microphone 'none';payment 'none'" + }, + { + "key": "X-User-Id", + "value": "admin" + }, + { + "key": "Content-Length", + "value": "401" + }, + { + "key": "Keep-Alive", + "value": "timeout=5, max=96" + }, + { + "key": "Connection", + "value": "Keep-Alive" + }, + { + "key": "Content-Type", + "value": "application/json; charset=utf-8" + } + ], + "stream": { + "type": "Buffer", + "data": [ + 123, + 34, + 117, + 114, + 108, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 105, + 92, + 47, + 118, + 49, + 92, + 47, + 115, + 116, + 97, + 116, + 117, + 115, + 116, + 121, + 112, + 101, + 110, + 92, + 47, + 97, + 48, + 101, + 54, + 101, + 102, + 49, + 101, + 45, + 98, + 50, + 55, + 54, + 45, + 52, + 101, + 102, + 101, + 45, + 97, + 48, + 53, + 97, + 45, + 49, + 99, + 100, + 56, + 53, + 99, + 57, + 100, + 52, + 99, + 49, + 102, + 34, + 44, + 34, + 117, + 117, + 105, + 100, + 34, + 58, + 34, + 97, + 48, + 101, + 54, + 101, + 102, + 49, + 101, + 45, + 98, + 50, + 55, + 54, + 45, + 52, + 101, + 102, + 101, + 45, + 97, + 48, + 53, + 97, + 45, + 49, + 99, + 100, + 56, + 53, + 99, + 57, + 100, + 52, + 99, + 49, + 102, + 34, + 44, + 34, + 111, + 109, + 115, + 99, + 104, + 114, + 105, + 106, + 118, + 105, + 110, + 103, + 34, + 58, + 34, + 66, + 101, + 103, + 105, + 110, + 34, + 44, + 34, + 111, + 109, + 115, + 99, + 104, + 114, + 105, + 106, + 118, + 105, + 110, + 103, + 71, + 101, + 110, + 101, + 114, + 105, + 101, + 107, + 34, + 58, + 34, + 34, + 44, + 34, + 122, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 105, + 92, + 47, + 118, + 49, + 92, + 47, + 122, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 110, + 92, + 47, + 56, + 52, + 100, + 102, + 50, + 50, + 100, + 56, + 45, + 53, + 57, + 56, + 49, + 45, + 52, + 101, + 50, + 102, + 45, + 56, + 57, + 99, + 50, + 45, + 49, + 57, + 98, + 52, + 97, + 50, + 101, + 50, + 48, + 56, + 49, + 99, + 34, + 44, + 34, + 118, + 111, + 108, + 103, + 110, + 117, + 109, + 109, + 101, + 114, + 34, + 58, + 49, + 44, + 34, + 105, + 115, + 69, + 105, + 110, + 100, + 115, + 116, + 97, + 116, + 117, + 115, + 34, + 58, + 102, + 97, + 108, + 115, + 101, + 125 + ] + }, + "cookie": [], + "responseTime": 176, + "responseSize": 401 + }, + "id": "14cdcea5-a4d6-44f0-a2cf-13d8f795380c" + }, + { + "cursor": { + "ref": "785a98b8-4b22-4500-995c-e34bcacfc822", + "length": 313, + "cycles": 1, + "position": 175, + "iteration": 0, + "httpRequestId": "f2df7bcb-5111-47c2-9eed-b94be2c3584a" + }, + "item": { + "id": "cdb4808d-a849-4b8d-b8ca-2c0f96442911", + "name": "Publish Zaaktype for statustype validation", + "request": { + "url": { + "path": [ + "publish" + ], + "host": [ + "{{temp_zaaktype_url}}" + ], + "query": [], + "variable": [] + }, + "method": "POST" + }, + "response": [], + "event": [] + }, + "request": { + "url": { + "protocol": "http", + "port": "8080", + "path": [ + "index.php", + "apps", + "procest", + "api", + "zgw", + "catalogi", + "v1", + "zaaktypen", + "84df22d8-5981-4e2f-89c2-19b4a2e2081c", + "publish" + ], + "host": [ + "localhost" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Authorization", + "value": "Bearer eyJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJwcm9jZXN0LWFkbWluIiwiY2xpZW50X2lkIjoicHJvY2VzdC1hZG1pbiIsImlhdCI6IjE3NzMxNDUxODMiLCJ1c2VyX2lkIjoicHJvY2VzdC1hZG1pbiIsInVzZXJfcmVwcmVzZW50YXRpb24iOiIifQ.kSZkGCdqtyNqmAy4JmgcRsRZmV6tlL8r1Ey8JJeT8-M", + "system": true + }, + { + "key": "User-Agent", + "value": "PostmanRuntime/7.39.1", + "system": true + }, + { + "key": "Accept", + "value": "*/*", + "system": true + }, + { + "key": "Cache-Control", + "value": "no-cache", + "system": true + }, + { + "key": "Postman-Token", + "value": "22676d56-c724-44ac-a0f1-cc4740754823", + "system": true + }, + { + "key": "Host", + "value": "localhost:8080", + "system": true + }, + { + "key": "Accept-Encoding", + "value": "gzip, deflate, br", + "system": true + }, + { + "key": "Connection", + "value": "keep-alive", + "system": true + }, + { + "key": "Cookie", + "value": "ocvp3112b4wg=81e873dd8ad6b0c3065c7e4465203366; oc_sessionPassphrase=LBNdKxRzA0iqoULIruNxDDh2BK3O%2BrCIU8aUmiUcOFvy5Xw1YfjwQNlmBW2IkGwJYtxXh9%2BwDN6vYuGNX07tXzkBtjQJUWTGdzf8AIOUIVxVx5DfyWAQZ7nmYmQv6XSE; nc_sameSiteCookielax=true; nc_sameSiteCookiestrict=true", + "system": true + }, + { + "key": "Content-Length", + "value": "0", + "system": true + } + ], + "method": "POST", + "auth": { + "type": "jwt", + "jwt": [ + { + "type": "string", + "value": "{\r\n \"iss\": \"procest-admin\",\r\n \"client_id\": \"procest-admin\",\r\n \"iat\": \"1773145183\",\r\n \"user_id\": \"procest-admin\",\r\n \"user_representation\": \"\"\r\n}", + "key": "payload" + }, + { + "type": "string", + "value": "procest-admin-secret-key-for-testing", + "key": "secret" + }, + { + "type": "string", + "value": "HS256", + "key": "algorithm" + }, + { + "type": "boolean", + "value": false, + "key": "isSecretBase64Encoded" + }, + { + "type": "string", + "value": "header", + "key": "addTokenTo" + }, + { + "type": "string", + "value": "Bearer", + "key": "headerPrefix" + }, + { + "type": "string", + "value": "token", + "key": "queryParamKey" + }, + { + "type": "string", + "value": "{}", + "key": "header" + } + ] + } + }, + "response": { + "id": "c20410e9-00e3-4667-9a6f-91540805203d", + "status": "OK", + "code": 200, + "header": [ + { + "key": "Date", + "value": "Tue, 10 Mar 2026 12:19:43 GMT" + }, + { + "key": "Server", + "value": "Apache/2.4.66 (Debian)" + }, + { + "key": "X-Content-Type-Options", + "value": "nosniff" + }, + { + "key": "X-Frame-Options", + "value": "SAMEORIGIN" + }, + { + "key": "X-Permitted-Cross-Domain-Policies", + "value": "none" + }, + { + "key": "X-Robots-Tag", + "value": "noindex, nofollow" + }, + { + "key": "Referrer-Policy", + "value": "no-referrer" + }, + { + "key": "X-Powered-By", + "value": "PHP/8.3.30" + }, + { + "key": "Content-Security-Policy", + "value": "default-src 'none';base-uri 'none';manifest-src 'self';frame-ancestors 'none'" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=81e873dd8ad6b0c3065c7e4465203366; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=81e873dd8ad6b0c3065c7e4465203366; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=81e873dd8ad6b0c3065c7e4465203366; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=81e873dd8ad6b0c3065c7e4465203366; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=81e873dd8ad6b0c3065c7e4465203366; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=d61985e3605d1069073deec7dec8c510; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=d61985e3605d1069073deec7dec8c510; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=d61985e3605d1069073deec7dec8c510; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=d61985e3605d1069073deec7dec8c510; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=d61985e3605d1069073deec7dec8c510; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "X-Request-Id", + "value": "ouWSQKDh4RK42cWPJPAJ" + }, + { + "key": "Cache-Control", + "value": "no-cache, no-store, must-revalidate" + }, + { + "key": "Feature-Policy", + "value": "autoplay 'none';camera 'none';fullscreen 'none';geolocation 'none';microphone 'none';payment 'none'" + }, + { + "key": "X-User-Id", + "value": "admin" + }, + { + "key": "Content-Encoding", + "value": "gzip" + }, + { + "key": "Content-Length", + "value": "679" + }, + { + "key": "Keep-Alive", + "value": "timeout=5, max=95" + }, + { + "key": "Connection", + "value": "Keep-Alive" + }, + { + "key": "Content-Type", + "value": "application/json; charset=utf-8" + } + ], + "stream": { + "type": "Buffer", + "data": [ + 123, + 34, + 117, + 114, + 108, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 105, + 92, + 47, + 118, + 49, + 92, + 47, + 122, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 110, + 92, + 47, + 56, + 52, + 100, + 102, + 50, + 50, + 100, + 56, + 45, + 53, + 57, + 56, + 49, + 45, + 52, + 101, + 50, + 102, + 45, + 56, + 57, + 99, + 50, + 45, + 49, + 57, + 98, + 52, + 97, + 50, + 101, + 50, + 48, + 56, + 49, + 99, + 34, + 44, + 34, + 117, + 117, + 105, + 100, + 34, + 58, + 34, + 56, + 52, + 100, + 102, + 50, + 50, + 100, + 56, + 45, + 53, + 57, + 56, + 49, + 45, + 52, + 101, + 50, + 102, + 45, + 56, + 57, + 99, + 50, + 45, + 49, + 57, + 98, + 52, + 97, + 50, + 101, + 50, + 48, + 56, + 49, + 99, + 34, + 44, + 34, + 105, + 100, + 101, + 110, + 116, + 105, + 102, + 105, + 99, + 97, + 116, + 105, + 101, + 34, + 58, + 34, + 53, + 53, + 101, + 100, + 51, + 102, + 52, + 55, + 45, + 97, + 53, + 55, + 49, + 45, + 52, + 97, + 56, + 57, + 45, + 56, + 56, + 53, + 102, + 45, + 55, + 102, + 54, + 100, + 53, + 99, + 56, + 55, + 50, + 48, + 102, + 53, + 34, + 44, + 34, + 111, + 109, + 115, + 99, + 104, + 114, + 105, + 106, + 118, + 105, + 110, + 103, + 34, + 58, + 34, + 84, + 69, + 77, + 80, + 34, + 44, + 34, + 111, + 109, + 115, + 99, + 104, + 114, + 105, + 106, + 118, + 105, + 110, + 103, + 71, + 101, + 110, + 101, + 114, + 105, + 101, + 107, + 34, + 58, + 34, + 34, + 44, + 34, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 117, + 115, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 105, + 92, + 47, + 118, + 49, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 117, + 115, + 115, + 101, + 110, + 92, + 47, + 53, + 48, + 53, + 55, + 52, + 48, + 56, + 102, + 45, + 102, + 100, + 55, + 54, + 45, + 52, + 54, + 57, + 101, + 45, + 56, + 54, + 52, + 54, + 45, + 98, + 99, + 99, + 52, + 98, + 97, + 50, + 101, + 102, + 97, + 56, + 100, + 34, + 44, + 34, + 100, + 111, + 101, + 108, + 34, + 58, + 34, + 116, + 101, + 115, + 116, + 32, + 100, + 111, + 101, + 108, + 34, + 44, + 34, + 97, + 97, + 110, + 108, + 101, + 105, + 100, + 105, + 110, + 103, + 34, + 58, + 34, + 116, + 101, + 115, + 116, + 32, + 97, + 97, + 110, + 108, + 101, + 105, + 100, + 105, + 110, + 103, + 34, + 44, + 34, + 111, + 110, + 100, + 101, + 114, + 119, + 101, + 114, + 112, + 34, + 58, + 34, + 111, + 112, + 101, + 110, + 98, + 97, + 114, + 101, + 32, + 114, + 117, + 105, + 109, + 116, + 101, + 34, + 44, + 34, + 100, + 111, + 111, + 114, + 108, + 111, + 111, + 112, + 116, + 105, + 106, + 100, + 34, + 58, + 34, + 80, + 49, + 48, + 68, + 34, + 44, + 34, + 118, + 101, + 114, + 116, + 114, + 111, + 117, + 119, + 101, + 108, + 105, + 106, + 107, + 104, + 101, + 105, + 100, + 97, + 97, + 110, + 100, + 117, + 105, + 100, + 105, + 110, + 103, + 34, + 58, + 34, + 111, + 112, + 101, + 110, + 98, + 97, + 97, + 114, + 34, + 44, + 34, + 99, + 111, + 110, + 99, + 101, + 112, + 116, + 34, + 58, + 102, + 97, + 108, + 115, + 101, + 44, + 34, + 98, + 101, + 103, + 105, + 110, + 71, + 101, + 108, + 100, + 105, + 103, + 104, + 101, + 105, + 100, + 34, + 58, + 34, + 50, + 48, + 49, + 57, + 45, + 48, + 49, + 45, + 48, + 49, + 34, + 44, + 34, + 101, + 105, + 110, + 100, + 101, + 71, + 101, + 108, + 100, + 105, + 103, + 104, + 101, + 105, + 100, + 34, + 58, + 34, + 50, + 48, + 50, + 54, + 45, + 48, + 51, + 45, + 49, + 48, + 34, + 44, + 34, + 104, + 97, + 110, + 100, + 101, + 108, + 105, + 110, + 103, + 73, + 110, + 105, + 116, + 105, + 97, + 116, + 111, + 114, + 34, + 58, + 34, + 105, + 110, + 100, + 105, + 101, + 110, + 101, + 110, + 34, + 44, + 34, + 105, + 110, + 100, + 105, + 99, + 97, + 116, + 105, + 101, + 73, + 110, + 116, + 101, + 114, + 110, + 79, + 102, + 69, + 120, + 116, + 101, + 114, + 110, + 34, + 58, + 34, + 101, + 120, + 116, + 101, + 114, + 110, + 34, + 44, + 34, + 104, + 97, + 110, + 100, + 101, + 108, + 105, + 110, + 103, + 66, + 101, + 104, + 97, + 110, + 100, + 101, + 108, + 97, + 97, + 114, + 34, + 58, + 34, + 98, + 101, + 104, + 97, + 110, + 100, + 101, + 108, + 101, + 110, + 34, + 44, + 34, + 111, + 112, + 115, + 99, + 104, + 111, + 114, + 116, + 105, + 110, + 103, + 69, + 110, + 65, + 97, + 110, + 104, + 111, + 117, + 100, + 105, + 110, + 103, + 77, + 111, + 103, + 101, + 108, + 105, + 106, + 107, + 34, + 58, + 102, + 97, + 108, + 115, + 101, + 44, + 34, + 118, + 101, + 114, + 108, + 101, + 110, + 103, + 105, + 110, + 103, + 77, + 111, + 103, + 101, + 108, + 105, + 106, + 107, + 34, + 58, + 116, + 114, + 117, + 101, + 44, + 34, + 118, + 101, + 114, + 108, + 101, + 110, + 103, + 105, + 110, + 103, + 115, + 116, + 101, + 114, + 109, + 105, + 106, + 110, + 34, + 58, + 34, + 80, + 53, + 68, + 34, + 44, + 34, + 112, + 117, + 98, + 108, + 105, + 99, + 97, + 116, + 105, + 101, + 73, + 110, + 100, + 105, + 99, + 97, + 116, + 105, + 101, + 34, + 58, + 102, + 97, + 108, + 115, + 101, + 44, + 34, + 112, + 114, + 111, + 100, + 117, + 99, + 116, + 101, + 110, + 79, + 102, + 68, + 105, + 101, + 110, + 115, + 116, + 101, + 110, + 34, + 58, + 91, + 34, + 104, + 116, + 116, + 112, + 115, + 58, + 92, + 47, + 92, + 47, + 114, + 101, + 102, + 46, + 116, + 115, + 116, + 46, + 118, + 110, + 103, + 46, + 99, + 108, + 111, + 117, + 100, + 92, + 47, + 115, + 116, + 97, + 110, + 100, + 97, + 97, + 114, + 100, + 92, + 47, + 34, + 93, + 44, + 34, + 115, + 101, + 108, + 101, + 99, + 116, + 105, + 101, + 108, + 105, + 106, + 115, + 116, + 80, + 114, + 111, + 99, + 101, + 115, + 116, + 121, + 112, + 101, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 115, + 58, + 92, + 47, + 92, + 47, + 115, + 101, + 108, + 101, + 99, + 116, + 105, + 101, + 108, + 105, + 106, + 115, + 116, + 46, + 111, + 112, + 101, + 110, + 122, + 97, + 97, + 107, + 46, + 110, + 108, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 118, + 49, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 121, + 112, + 101, + 110, + 92, + 47, + 56, + 51, + 56, + 101, + 52, + 48, + 53, + 97, + 45, + 57, + 98, + 49, + 50, + 45, + 52, + 51, + 99, + 52, + 45, + 97, + 57, + 56, + 53, + 45, + 100, + 55, + 97, + 55, + 52, + 57, + 48, + 100, + 52, + 50, + 50, + 101, + 34, + 44, + 34, + 114, + 101, + 102, + 101, + 114, + 101, + 110, + 116, + 105, + 101, + 112, + 114, + 111, + 99, + 101, + 115, + 34, + 58, + 123, + 34, + 108, + 105, + 110, + 107, + 34, + 58, + 34, + 34, + 44, + 34, + 110, + 97, + 97, + 109, + 34, + 58, + 34, + 116, + 101, + 115, + 116, + 34, + 125, + 44, + 34, + 118, + 101, + 114, + 97, + 110, + 116, + 119, + 111, + 111, + 114, + 100, + 101, + 108, + 105, + 106, + 107, + 101, + 34, + 58, + 34, + 88, + 34, + 44, + 34, + 103, + 101, + 114, + 101, + 108, + 97, + 116, + 101, + 101, + 114, + 100, + 101, + 90, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 98, + 101, + 115, + 108, + 117, + 105, + 116, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 105, + 110, + 102, + 111, + 114, + 109, + 97, + 116, + 105, + 101, + 111, + 98, + 106, + 101, + 99, + 116, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 100, + 101, + 101, + 108, + 122, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 116, + 111, + 101, + 108, + 105, + 99, + 104, + 116, + 105, + 110, + 103, + 34, + 58, + 34, + 34, + 44, + 34, + 118, + 101, + 114, + 115, + 105, + 101, + 100, + 97, + 116, + 117, + 109, + 34, + 58, + 34, + 50, + 48, + 49, + 57, + 45, + 48, + 49, + 45, + 48, + 49, + 34, + 125 + ] + }, + "cookie": [], + "responseTime": 320, + "responseSize": 1261 + }, + "id": "cdb4808d-a849-4b8d-b8ca-2c0f96442911" + }, + { + "cursor": { + "ref": "668cd549-c474-40a0-9bc7-69e579a3907b", + "length": 313, + "cycles": 1, + "position": 176, + "iteration": 0, + "httpRequestId": "fc8e40c7-91b0-4fae-a915-522c1e9686d3" + }, + "item": { + "id": "0e6934e4-9faa-4111-8dc5-e015d3ecbf16", + "name": "Create Zaak for Statustype validation", + "request": { + "url": { + "path": [ + "zaken" + ], + "host": [ + "{{zrc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Accept-Crs", + "value": "EPSG:4326" + }, + { + "key": "Content-Crs", + "value": "EPSG:4326" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{{zaak_body}}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "094acb43-aed6-4b70-9f26-66e535a2238c", + "type": "text/javascript", + "exec": [ + "// If the test failed and the Zaak was created, delete it", + "if(pm.response.code == 201) {", + " pm.environment.set(\"created_zaak_url\", pm.response.json().url);", + "}" + ], + "_lastExecutionId": "5faf4309-853f-45de-9f06-51f4bd632b53" + } + }, + { + "listen": "prerequest", + "script": { + "id": "14e2a98d-0e5b-4291-ab72-192996f30dc1", + "type": "text/javascript", + "exec": [ + "" + ], + "_lastExecutionId": "2593270c-27fb-4f96-9626-43c4deb3c035" + } + } + ] + }, + "request": { + "url": { + "protocol": "http", + "port": "8080", + "path": [ + "index.php", + "apps", + "procest", + "api", + "zgw", + "zaken", + "v1", + "zaken" + ], + "host": [ + "localhost" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Accept-Crs", + "value": "EPSG:4326" + }, + { + "key": "Content-Crs", + "value": "EPSG:4326" + }, + { + "key": "Authorization", + "value": "Bearer eyJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJwcm9jZXN0LWFkbWluIiwiY2xpZW50X2lkIjoicHJvY2VzdC1hZG1pbiIsImlhdCI6IjE3NzMxNDUxODMiLCJ1c2VyX2lkIjoicHJvY2VzdC1hZG1pbiIsInVzZXJfcmVwcmVzZW50YXRpb24iOiIifQ.kSZkGCdqtyNqmAy4JmgcRsRZmV6tlL8r1Ey8JJeT8-M", + "system": true + }, + { + "key": "User-Agent", + "value": "PostmanRuntime/7.39.1", + "system": true + }, + { + "key": "Accept", + "value": "*/*", + "system": true + }, + { + "key": "Cache-Control", + "value": "no-cache", + "system": true + }, + { + "key": "Postman-Token", + "value": "aaf6c6f7-c3a8-4f7f-8b54-7e72f766b0b7", + "system": true + }, + { + "key": "Host", + "value": "localhost:8080", + "system": true + }, + { + "key": "Accept-Encoding", + "value": "gzip, deflate, br", + "system": true + }, + { + "key": "Connection", + "value": "keep-alive", + "system": true + }, + { + "key": "Content-Length", + "value": "13", + "system": true + }, + { + "key": "Cookie", + "value": "ocvp3112b4wg=d61985e3605d1069073deec7dec8c510; oc_sessionPassphrase=LBNdKxRzA0iqoULIruNxDDh2BK3O%2BrCIU8aUmiUcOFvy5Xw1YfjwQNlmBW2IkGwJYtxXh9%2BwDN6vYuGNX07tXzkBtjQJUWTGdzf8AIOUIVxVx5DfyWAQZ7nmYmQv6XSE; nc_sameSiteCookielax=true; nc_sameSiteCookiestrict=true", + "system": true + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{{zaak_body}}" + }, + "auth": { + "type": "jwt", + "jwt": [ + { + "type": "string", + "value": "{\r\n \"iss\": \"procest-admin\",\r\n \"client_id\": \"procest-admin\",\r\n \"iat\": \"1773145183\",\r\n \"user_id\": \"procest-admin\",\r\n \"user_representation\": \"\"\r\n}", + "key": "payload" + }, + { + "type": "string", + "value": "procest-admin-secret-key-for-testing", + "key": "secret" + }, + { + "type": "string", + "value": "HS256", + "key": "algorithm" + }, + { + "type": "boolean", + "value": false, + "key": "isSecretBase64Encoded" + }, + { + "type": "string", + "value": "header", + "key": "addTokenTo" + }, + { + "type": "string", + "value": "Bearer", + "key": "headerPrefix" + }, + { + "type": "string", + "value": "token", + "key": "queryParamKey" + }, + { + "type": "string", + "value": "{}", + "key": "header" + } + ] + } + }, + "response": { + "id": "bc195a28-343d-4317-af7d-acddc9b32f60", + "status": "Bad request", + "code": 400, + "header": [ + { + "key": "Date", + "value": "Tue, 10 Mar 2026 12:19:43 GMT" + }, + { + "key": "Server", + "value": "Apache/2.4.66 (Debian)" + }, + { + "key": "X-Content-Type-Options", + "value": "nosniff" + }, + { + "key": "X-Frame-Options", + "value": "SAMEORIGIN" + }, + { + "key": "X-Permitted-Cross-Domain-Policies", + "value": "none" + }, + { + "key": "X-Robots-Tag", + "value": "noindex, nofollow" + }, + { + "key": "Referrer-Policy", + "value": "no-referrer" + }, + { + "key": "X-Powered-By", + "value": "PHP/8.3.30" + }, + { + "key": "Content-Security-Policy", + "value": "default-src 'none';base-uri 'none';manifest-src 'self';frame-ancestors 'none'" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=d61985e3605d1069073deec7dec8c510; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=d61985e3605d1069073deec7dec8c510; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=d61985e3605d1069073deec7dec8c510; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=d61985e3605d1069073deec7dec8c510; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=d61985e3605d1069073deec7dec8c510; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=d1e026e8ba5c9e3301e0b8b2120f5617; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=d1e026e8ba5c9e3301e0b8b2120f5617; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=d1e026e8ba5c9e3301e0b8b2120f5617; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=d1e026e8ba5c9e3301e0b8b2120f5617; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=d1e026e8ba5c9e3301e0b8b2120f5617; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "X-Request-Id", + "value": "ts2zpL8SDEEfa2HvkPjg" + }, + { + "key": "Cache-Control", + "value": "no-cache, no-store, must-revalidate" + }, + { + "key": "Feature-Policy", + "value": "autoplay 'none';camera 'none';fullscreen 'none';geolocation 'none';microphone 'none';payment 'none'" + }, + { + "key": "X-User-Id", + "value": "admin" + }, + { + "key": "Content-Length", + "value": "122" + }, + { + "key": "Connection", + "value": "close" + }, + { + "key": "Content-Type", + "value": "application/json; charset=utf-8" + } + ], + "stream": { + "type": "Buffer", + "data": [ + 123, + 34, + 100, + 101, + 116, + 97, + 105, + 108, + 34, + 58, + 34, + 80, + 114, + 111, + 112, + 101, + 114, + 116, + 121, + 32, + 39, + 99, + 97, + 115, + 101, + 84, + 121, + 112, + 101, + 39, + 32, + 115, + 104, + 111, + 117, + 108, + 100, + 32, + 109, + 97, + 116, + 99, + 104, + 32, + 102, + 111, + 114, + 109, + 97, + 116, + 32, + 39, + 117, + 117, + 105, + 100, + 39, + 32, + 98, + 117, + 116, + 32, + 39, + 39, + 32, + 100, + 111, + 101, + 115, + 32, + 110, + 111, + 116, + 46, + 32, + 80, + 108, + 101, + 97, + 115, + 101, + 32, + 112, + 114, + 111, + 118, + 105, + 100, + 101, + 32, + 97, + 32, + 118, + 97, + 108, + 117, + 101, + 32, + 105, + 110, + 32, + 116, + 104, + 101, + 32, + 99, + 111, + 114, + 114, + 101, + 99, + 116, + 32, + 102, + 111, + 114, + 109, + 97, + 116, + 46, + 34, + 125 + ] + }, + "cookie": [], + "responseTime": 105, + "responseSize": 122 + }, + "id": "0e6934e4-9faa-4111-8dc5-e015d3ecbf16" + }, + { + "cursor": { + "ref": "965e97c1-0636-4b39-a2e4-d74fc94e535f", + "length": 313, + "cycles": 1, + "position": 177, + "iteration": 0, + "httpRequestId": "80c73eee-8471-42a2-8d24-481a16f05e7c" + }, + "item": { + "id": "ade77017-35ea-46a3-b0c1-674ffb35ac33", + "name": "Add Resultaat to Zaak", + "request": { + "url": { + "path": [ + "resultaten" + ], + "host": [ + "{{zrc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n\t\"zaak\": \"{{created_zaak_url}}\",\n\t\"resultaattype\": \"{{resultaattype_url}}\"\n}" + } + }, + "response": [], + "event": [ + { + "listen": "prerequest", + "script": { + "id": "30b6c89f-54d0-485a-814b-42c7ea507ff6", + "type": "text/javascript", + "exec": [ + "pm.environment.set(\"resultaattype\", pm.environment.get(\"zaaktype_resultaattypen\")[0]);" + ], + "_lastExecutionId": "5cfc06fd-88da-41eb-ae5e-4347a3cdff58" + } + }, + { + "listen": "test", + "script": { + "id": "f962841d-f3d7-49d0-a606-0ce738009d06", + "type": "text/javascript", + "exec": [ + "pm.environment.set(\"zaak_resultaat_url\", pm.response.json().url);" + ], + "_lastExecutionId": "70469b7d-1af4-40e4-ba87-6d0ff4e30471" + } + } + ] + }, + "request": { + "url": { + "protocol": "http", + "port": "8080", + "path": [ + "index.php", + "apps", + "procest", + "api", + "zgw", + "zaken", + "v1", + "resultaten" + ], + "host": [ + "localhost" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Authorization", + "value": "Bearer eyJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJwcm9jZXN0LWFkbWluIiwiY2xpZW50X2lkIjoicHJvY2VzdC1hZG1pbiIsImlhdCI6IjE3NzMxNDUxODQiLCJ1c2VyX2lkIjoicHJvY2VzdC1hZG1pbiIsInVzZXJfcmVwcmVzZW50YXRpb24iOiIifQ.J4ZTQgOw9QoiNN56ZA_e2m4_Jy1EUtsTatLFu9mBjv4", + "system": true + }, + { + "key": "User-Agent", + "value": "PostmanRuntime/7.39.1", + "system": true + }, + { + "key": "Accept", + "value": "*/*", + "system": true + }, + { + "key": "Cache-Control", + "value": "no-cache", + "system": true + }, + { + "key": "Postman-Token", + "value": "e3a7ea50-c44b-4710-8c5d-7dea3476d9b0", + "system": true + }, + { + "key": "Host", + "value": "localhost:8080", + "system": true + }, + { + "key": "Accept-Encoding", + "value": "gzip, deflate, br", + "system": true + }, + { + "key": "Connection", + "value": "keep-alive", + "system": true + }, + { + "key": "Content-Length", + "value": "257", + "system": true + }, + { + "key": "Cookie", + "value": "ocvp3112b4wg=d1e026e8ba5c9e3301e0b8b2120f5617; oc_sessionPassphrase=LBNdKxRzA0iqoULIruNxDDh2BK3O%2BrCIU8aUmiUcOFvy5Xw1YfjwQNlmBW2IkGwJYtxXh9%2BwDN6vYuGNX07tXzkBtjQJUWTGdzf8AIOUIVxVx5DfyWAQZ7nmYmQv6XSE; nc_sameSiteCookielax=true; nc_sameSiteCookiestrict=true", + "system": true + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n\t\"zaak\": \"http://localhost:8080/index.php/apps/procest/api/zgw/zaken/v1/zaken/bff8c9cf-71c6-4252-b368-dc39c3ae92e3\",\n\t\"resultaattype\": \"http://localhost:8080/index.php/apps/procest/api/zgw/catalogi/v1/resultaattypen/1fa4fb2f-1572-4fc1-848d-00a37ef6af45\"\n}" + }, + "auth": { + "type": "jwt", + "jwt": [ + { + "type": "string", + "value": "{\r\n \"iss\": \"procest-admin\",\r\n \"client_id\": \"procest-admin\",\r\n \"iat\": \"1773145184\",\r\n \"user_id\": \"procest-admin\",\r\n \"user_representation\": \"\"\r\n}", + "key": "payload" + }, + { + "type": "string", + "value": "procest-admin-secret-key-for-testing", + "key": "secret" + }, + { + "type": "string", + "value": "HS256", + "key": "algorithm" + }, + { + "type": "boolean", + "value": false, + "key": "isSecretBase64Encoded" + }, + { + "type": "string", + "value": "header", + "key": "addTokenTo" + }, + { + "type": "string", + "value": "Bearer", + "key": "headerPrefix" + }, + { + "type": "string", + "value": "token", + "key": "queryParamKey" + }, + { + "type": "string", + "value": "{}", + "key": "header" + } + ] + } + }, + "response": { + "id": "a9a80c29-6056-440b-a275-2609bb245262", + "status": "Created", + "code": 201, + "header": [ + { + "key": "Date", + "value": "Tue, 10 Mar 2026 12:19:43 GMT" + }, + { + "key": "Server", + "value": "Apache/2.4.66 (Debian)" + }, + { + "key": "X-Content-Type-Options", + "value": "nosniff" + }, + { + "key": "X-Frame-Options", + "value": "SAMEORIGIN" + }, + { + "key": "X-Permitted-Cross-Domain-Policies", + "value": "none" + }, + { + "key": "X-Robots-Tag", + "value": "noindex, nofollow" + }, + { + "key": "Referrer-Policy", + "value": "no-referrer" + }, + { + "key": "X-Powered-By", + "value": "PHP/8.3.30" + }, + { + "key": "Content-Security-Policy", + "value": "default-src 'none';base-uri 'none';manifest-src 'self';frame-ancestors 'none'" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=d1e026e8ba5c9e3301e0b8b2120f5617; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=d1e026e8ba5c9e3301e0b8b2120f5617; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=d1e026e8ba5c9e3301e0b8b2120f5617; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=d1e026e8ba5c9e3301e0b8b2120f5617; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=d1e026e8ba5c9e3301e0b8b2120f5617; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=b4c5f82a6c52056cf50c339d6a811ab7; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=b4c5f82a6c52056cf50c339d6a811ab7; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=b4c5f82a6c52056cf50c339d6a811ab7; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=b4c5f82a6c52056cf50c339d6a811ab7; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=b4c5f82a6c52056cf50c339d6a811ab7; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "X-Request-Id", + "value": "exh1OqQf6fVRCyTGR51H" + }, + { + "key": "Cache-Control", + "value": "no-cache, no-store, must-revalidate" + }, + { + "key": "Feature-Policy", + "value": "autoplay 'none';camera 'none';fullscreen 'none';geolocation 'none';microphone 'none';payment 'none'" + }, + { + "key": "X-User-Id", + "value": "admin" + }, + { + "key": "Content-Length", + "value": "464" + }, + { + "key": "Keep-Alive", + "value": "timeout=5, max=100" + }, + { + "key": "Connection", + "value": "Keep-Alive" + }, + { + "key": "Content-Type", + "value": "application/json; charset=utf-8" + } + ], + "stream": { + "type": "Buffer", + "data": [ + 123, + 34, + 117, + 114, + 108, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 122, + 97, + 107, + 101, + 110, + 92, + 47, + 118, + 49, + 92, + 47, + 114, + 101, + 115, + 117, + 108, + 116, + 97, + 116, + 101, + 110, + 92, + 47, + 48, + 97, + 98, + 56, + 100, + 97, + 102, + 102, + 45, + 99, + 49, + 101, + 99, + 45, + 52, + 51, + 101, + 55, + 45, + 98, + 51, + 101, + 102, + 45, + 97, + 102, + 52, + 57, + 57, + 100, + 48, + 55, + 53, + 99, + 100, + 98, + 34, + 44, + 34, + 117, + 117, + 105, + 100, + 34, + 58, + 34, + 48, + 97, + 98, + 56, + 100, + 97, + 102, + 102, + 45, + 99, + 49, + 101, + 99, + 45, + 52, + 51, + 101, + 55, + 45, + 98, + 51, + 101, + 102, + 45, + 97, + 102, + 52, + 57, + 57, + 100, + 48, + 55, + 53, + 99, + 100, + 98, + 34, + 44, + 34, + 122, + 97, + 97, + 107, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 122, + 97, + 107, + 101, + 110, + 92, + 47, + 118, + 49, + 92, + 47, + 122, + 97, + 107, + 101, + 110, + 92, + 47, + 98, + 102, + 102, + 56, + 99, + 57, + 99, + 102, + 45, + 55, + 49, + 99, + 54, + 45, + 52, + 50, + 53, + 50, + 45, + 98, + 51, + 54, + 56, + 45, + 100, + 99, + 51, + 57, + 99, + 51, + 97, + 101, + 57, + 50, + 101, + 51, + 34, + 44, + 34, + 114, + 101, + 115, + 117, + 108, + 116, + 97, + 97, + 116, + 116, + 121, + 112, + 101, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 105, + 92, + 47, + 118, + 49, + 92, + 47, + 114, + 101, + 115, + 117, + 108, + 116, + 97, + 97, + 116, + 116, + 121, + 112, + 101, + 110, + 92, + 47, + 49, + 102, + 97, + 52, + 102, + 98, + 50, + 102, + 45, + 49, + 53, + 55, + 50, + 45, + 52, + 102, + 99, + 49, + 45, + 56, + 52, + 56, + 100, + 45, + 48, + 48, + 97, + 51, + 55, + 101, + 102, + 54, + 97, + 102, + 52, + 53, + 34, + 44, + 34, + 116, + 111, + 101, + 108, + 105, + 99, + 104, + 116, + 105, + 110, + 103, + 34, + 58, + 34, + 34, + 125 + ] + }, + "cookie": [], + "responseTime": 271, + "responseSize": 464 + }, + "id": "ade77017-35ea-46a3-b0c1-674ffb35ac33" + }, + { + "cursor": { + "ref": "58338940-a25b-4c1d-b648-6694e2323d1d", + "length": 313, + "cycles": 1, + "position": 178, + "iteration": 0, + "httpRequestId": "676131c3-0ba1-4038-b3d1-f8586273b0ac" + }, + "item": { + "id": "954a043b-1b60-4e05-b2c0-d7feb45a05ba", + "name": "(zrc-016a) Status toevoegen aan Zaak met statustype niet in Zaaktype.statustypen is onmogelijk", + "request": { + "url": { + "path": [ + "statussen" + ], + "host": [ + "{{zrc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n\t\"zaak\": \"{{created_zaak_url}}\",\n\t\"statustype\": \"{{temp_statustype}}\",\n\t\"datumStatusGezet\": \"2018-04-20T13:37:00\"\n}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "206e7c5a-889b-43f5-8bfa-85903943bcdb", + "type": "text/javascript", + "exec": [ + "pm.test(\"Status toevoegen aan Zaak met Status.statustype niet in Zaak.zaaktype.statustypen geeft 400\", function() {", + " pm.response.to.have.status(400);", + " ", + " var error = pm.response.json()[\"invalidParams\"][0];", + " pm.expect(error.name).to.be.equal(\"nonFieldErrors\");", + " pm.expect(error.code).to.be.equal(\"zaaktype-mismatch\");", + "});" + ], + "_lastExecutionId": "d82ca810-a6cf-4367-a093-4563d0747422" + } + }, + { + "listen": "prerequest", + "script": { + "id": "c57be017-d106-4ec7-b73a-f0ce887e6772", + "type": "text/javascript", + "exec": [ + "" + ], + "_lastExecutionId": "b3f3e87c-d66b-401c-8515-2ca082c60f81" + } + } + ] + }, + "request": { + "url": { + "protocol": "http", + "port": "8080", + "path": [ + "index.php", + "apps", + "procest", + "api", + "zgw", + "zaken", + "v1", + "statussen" + ], + "host": [ + "localhost" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Authorization", + "value": "Bearer eyJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJwcm9jZXN0LWFkbWluIiwiY2xpZW50X2lkIjoicHJvY2VzdC1hZG1pbiIsImlhdCI6IjE3NzMxNDUxODQiLCJ1c2VyX2lkIjoicHJvY2VzdC1hZG1pbiIsInVzZXJfcmVwcmVzZW50YXRpb24iOiIifQ.J4ZTQgOw9QoiNN56ZA_e2m4_Jy1EUtsTatLFu9mBjv4", + "system": true + }, + { + "key": "User-Agent", + "value": "PostmanRuntime/7.39.1", + "system": true + }, + { + "key": "Accept", + "value": "*/*", + "system": true + }, + { + "key": "Cache-Control", + "value": "no-cache", + "system": true + }, + { + "key": "Postman-Token", + "value": "49a5a9e1-3c00-4df4-a8a7-cf02f8f02846", + "system": true + }, + { + "key": "Host", + "value": "localhost:8080", + "system": true + }, + { + "key": "Accept-Encoding", + "value": "gzip, deflate, br", + "system": true + }, + { + "key": "Connection", + "value": "keep-alive", + "system": true + }, + { + "key": "Content-Length", + "value": "295", + "system": true + }, + { + "key": "Cookie", + "value": "ocvp3112b4wg=b4c5f82a6c52056cf50c339d6a811ab7; oc_sessionPassphrase=LBNdKxRzA0iqoULIruNxDDh2BK3O%2BrCIU8aUmiUcOFvy5Xw1YfjwQNlmBW2IkGwJYtxXh9%2BwDN6vYuGNX07tXzkBtjQJUWTGdzf8AIOUIVxVx5DfyWAQZ7nmYmQv6XSE; nc_sameSiteCookielax=true; nc_sameSiteCookiestrict=true", + "system": true + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n\t\"zaak\": \"http://localhost:8080/index.php/apps/procest/api/zgw/zaken/v1/zaken/bff8c9cf-71c6-4252-b368-dc39c3ae92e3\",\n\t\"statustype\": \"http://localhost:8080/index.php/apps/procest/api/zgw/catalogi/v1/statustypen/a0e6ef1e-b276-4efe-a05a-1cd85c9d4c1f\",\n\t\"datumStatusGezet\": \"2018-04-20T13:37:00\"\n}" + }, + "auth": { + "type": "jwt", + "jwt": [ + { + "type": "string", + "value": "{\r\n \"iss\": \"procest-admin\",\r\n \"client_id\": \"procest-admin\",\r\n \"iat\": \"1773145184\",\r\n \"user_id\": \"procest-admin\",\r\n \"user_representation\": \"\"\r\n}", + "key": "payload" + }, + { + "type": "string", + "value": "procest-admin-secret-key-for-testing", + "key": "secret" + }, + { + "type": "string", + "value": "HS256", + "key": "algorithm" + }, + { + "type": "boolean", + "value": false, + "key": "isSecretBase64Encoded" + }, + { + "type": "string", + "value": "header", + "key": "addTokenTo" + }, + { + "type": "string", + "value": "Bearer", + "key": "headerPrefix" + }, + { + "type": "string", + "value": "token", + "key": "queryParamKey" + }, + { + "type": "string", + "value": "{}", + "key": "header" + } + ] + } + }, + "response": { + "id": "0bf5e0b4-9063-4a5b-8ae1-083cfc9f1d8a", + "status": "Bad request", + "code": 400, + "header": [ + { + "key": "Date", + "value": "Tue, 10 Mar 2026 12:19:43 GMT" + }, + { + "key": "Server", + "value": "Apache/2.4.66 (Debian)" + }, + { + "key": "X-Content-Type-Options", + "value": "nosniff" + }, + { + "key": "X-Frame-Options", + "value": "SAMEORIGIN" + }, + { + "key": "X-Permitted-Cross-Domain-Policies", + "value": "none" + }, + { + "key": "X-Robots-Tag", + "value": "noindex, nofollow" + }, + { + "key": "Referrer-Policy", + "value": "no-referrer" + }, + { + "key": "X-Powered-By", + "value": "PHP/8.3.30" + }, + { + "key": "Content-Security-Policy", + "value": "default-src 'none';base-uri 'none';manifest-src 'self';frame-ancestors 'none'" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=b4c5f82a6c52056cf50c339d6a811ab7; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=b4c5f82a6c52056cf50c339d6a811ab7; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=b4c5f82a6c52056cf50c339d6a811ab7; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=b4c5f82a6c52056cf50c339d6a811ab7; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=b4c5f82a6c52056cf50c339d6a811ab7; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=30a1587506de2366bf9e5fd2a559b0b2; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=30a1587506de2366bf9e5fd2a559b0b2; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=30a1587506de2366bf9e5fd2a559b0b2; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=30a1587506de2366bf9e5fd2a559b0b2; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=30a1587506de2366bf9e5fd2a559b0b2; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "X-Request-Id", + "value": "HjVr8o0UXfSh3ks14vzn" + }, + { + "key": "Cache-Control", + "value": "no-cache, no-store, must-revalidate" + }, + { + "key": "Feature-Policy", + "value": "autoplay 'none';camera 'none';fullscreen 'none';geolocation 'none';microphone 'none';payment 'none'" + }, + { + "key": "X-User-Id", + "value": "admin" + }, + { + "key": "Content-Length", + "value": "206" + }, + { + "key": "Connection", + "value": "close" + }, + { + "key": "Content-Type", + "value": "application/json; charset=utf-8" + } + ], + "stream": { + "type": "Buffer", + "data": [ + 123, + 34, + 100, + 101, + 116, + 97, + 105, + 108, + 34, + 58, + 34, + 72, + 101, + 116, + 32, + 115, + 116, + 97, + 116, + 117, + 115, + 116, + 121, + 112, + 101, + 32, + 104, + 111, + 111, + 114, + 116, + 32, + 110, + 105, + 101, + 116, + 32, + 98, + 105, + 106, + 32, + 104, + 101, + 116, + 32, + 122, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 32, + 118, + 97, + 110, + 32, + 100, + 101, + 32, + 122, + 97, + 97, + 107, + 46, + 34, + 44, + 34, + 105, + 110, + 118, + 97, + 108, + 105, + 100, + 80, + 97, + 114, + 97, + 109, + 115, + 34, + 58, + 91, + 123, + 34, + 110, + 97, + 109, + 101, + 34, + 58, + 34, + 110, + 111, + 110, + 70, + 105, + 101, + 108, + 100, + 69, + 114, + 114, + 111, + 114, + 115, + 34, + 44, + 34, + 99, + 111, + 100, + 101, + 34, + 58, + 34, + 122, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 45, + 109, + 105, + 115, + 109, + 97, + 116, + 99, + 104, + 34, + 44, + 34, + 114, + 101, + 97, + 115, + 111, + 110, + 34, + 58, + 34, + 72, + 101, + 116, + 32, + 115, + 116, + 97, + 116, + 117, + 115, + 116, + 121, + 112, + 101, + 32, + 104, + 111, + 111, + 114, + 116, + 32, + 110, + 105, + 101, + 116, + 32, + 98, + 105, + 106, + 32, + 104, + 101, + 116, + 32, + 122, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 32, + 118, + 97, + 110, + 32, + 100, + 101, + 32, + 122, + 97, + 97, + 107, + 46, + 34, + 125, + 93, + 125 + ] + }, + "cookie": [], + "responseTime": 154, + "responseSize": 206 + }, + "id": "954a043b-1b60-4e05-b2c0-d7feb45a05ba", + "assertions": [ + { + "assertion": "Status toevoegen aan Zaak met Status.statustype niet in Zaak.zaaktype.statustypen geeft 400", + "skipped": false + } + ] + }, + { + "cursor": { + "ref": "bf8f7bd0-fef8-4f18-91ae-fa4d287e28ef", + "length": 313, + "cycles": 1, + "position": 179, + "iteration": 0, + "httpRequestId": "355c787d-ba41-482a-b838-dc50405eb446" + }, + "item": { + "id": "f64d9251-8dd3-4b49-bc46-7b3e0ae89842", + "name": "ZT", + "request": { + "url": { + "path": [ + "zaaktypen" + ], + "host": [ + "{{ztc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n\t\"identificatie\": \"{{random_identificatie}}\",\n \"omschrijving\": \"zrc_tests_1\",\n \"vertrouwelijkheidaanduiding\": \"openbaar\",\n \"doel\": \"test doel\",\n \"verantwoordelijke\":\"X\",\n \"aanleiding\": \"test aanleiding\",\n \"indicatieInternOfExtern\": \"extern\",\n \"handelingInitiator\": \"indienen\",\n \"onderwerp\": \"openbare ruimte\",\n \"handelingBehandelaar\": \"behandelen\",\n \"doorlooptijd\": \"P10D\",\n \"opschortingEnAanhoudingMogelijk\": false,\n \"verlengingMogelijk\": true,\n \"publicatieIndicatie\": false,\n \"productenOfDiensten\": [\n \"https://ref.tst.vng.cloud/standaard/\"\n ],\n \"selectielijstProcestype\": \"{{procestype_procestermijn_nihil_url}}\",\n \"referentieproces\": {\n \"naam\": \"test\",\n \"link\": \"\"\n },\n \"deelzaaktypen\": [\n \"{{deelzaaktype_identificatie}}\"\n ],\n \"catalogus\": \"{{catalogus_url}}\",\n \"statustypen\": [\n \n ],\n \"resultaattypen\": [\n ],\n \"eigenschappen\": [\n ],\n \"informatieobjecttypen\": [],\n \"besluittypen\": [\n \"{{besluit_omschrijving}}\"\n ],\n \"gerelateerdeZaaktypen\": [],\n \"beginGeldigheid\": \"2019-01-01\",\n \"versiedatum\": \"2019-01-01\",\n \"concept\": true,\n \"verlengingstermijn\": \"P5D\"\n}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "cc43a7fe-53bc-4955-bbc1-d57bb829fa15", + "type": "text/javascript", + "packages": {}, + "exec": [ + "if(pm.response.code == 201) {", + " pm.environment.set(\"temp_zaaktype_url\", pm.response.json().url);", + "}" + ], + "_lastExecutionId": "4953529d-8a22-452f-81c6-eaf6f469689c" + } + }, + { + "listen": "prerequest", + "script": { + "id": "dec0da5c-42a2-4233-aea6-8601fc33f592", + "type": "text/javascript", + "packages": {}, + "exec": [ + "var uuid = require('uuid');", + "var myUUID = uuid.v4(); ", + "pm.environment.set(\"random_identificatie\", myUUID);", + "" + ], + "_lastExecutionId": "9720e0c3-0bc2-485e-8a64-d2f48a122091" + } + } + ] + }, + "request": { + "url": { + "protocol": "http", + "port": "8080", + "path": [ + "index.php", + "apps", + "procest", + "api", + "zgw", + "catalogi", + "v1", + "zaaktypen" + ], + "host": [ + "localhost" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Authorization", + "value": "Bearer eyJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJwcm9jZXN0LWFkbWluIiwiY2xpZW50X2lkIjoicHJvY2VzdC1hZG1pbiIsImlhdCI6IjE3NzMxNDUxODQiLCJ1c2VyX2lkIjoicHJvY2VzdC1hZG1pbiIsInVzZXJfcmVwcmVzZW50YXRpb24iOiIifQ.J4ZTQgOw9QoiNN56ZA_e2m4_Jy1EUtsTatLFu9mBjv4", + "system": true + }, + { + "key": "User-Agent", + "value": "PostmanRuntime/7.39.1", + "system": true + }, + { + "key": "Accept", + "value": "*/*", + "system": true + }, + { + "key": "Cache-Control", + "value": "no-cache", + "system": true + }, + { + "key": "Postman-Token", + "value": "21271200-fc99-4b02-afd0-fa9ef496c467", + "system": true + }, + { + "key": "Host", + "value": "localhost:8080", + "system": true + }, + { + "key": "Accept-Encoding", + "value": "gzip, deflate, br", + "system": true + }, + { + "key": "Connection", + "value": "keep-alive", + "system": true + }, + { + "key": "Content-Length", + "value": "1388", + "system": true + }, + { + "key": "Cookie", + "value": "ocvp3112b4wg=30a1587506de2366bf9e5fd2a559b0b2; oc_sessionPassphrase=LBNdKxRzA0iqoULIruNxDDh2BK3O%2BrCIU8aUmiUcOFvy5Xw1YfjwQNlmBW2IkGwJYtxXh9%2BwDN6vYuGNX07tXzkBtjQJUWTGdzf8AIOUIVxVx5DfyWAQZ7nmYmQv6XSE; nc_sameSiteCookielax=true; nc_sameSiteCookiestrict=true", + "system": true + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n\t\"identificatie\": \"21d2ab3c-add3-444f-b137-43db9af8d989\",\n \"omschrijving\": \"zrc_tests_1\",\n \"vertrouwelijkheidaanduiding\": \"openbaar\",\n \"doel\": \"test doel\",\n \"verantwoordelijke\":\"X\",\n \"aanleiding\": \"test aanleiding\",\n \"indicatieInternOfExtern\": \"extern\",\n \"handelingInitiator\": \"indienen\",\n \"onderwerp\": \"openbare ruimte\",\n \"handelingBehandelaar\": \"behandelen\",\n \"doorlooptijd\": \"P10D\",\n \"opschortingEnAanhoudingMogelijk\": false,\n \"verlengingMogelijk\": true,\n \"publicatieIndicatie\": false,\n \"productenOfDiensten\": [\n \"https://ref.tst.vng.cloud/standaard/\"\n ],\n \"selectielijstProcestype\": \"https://selectielijst.openzaak.nl/api/v1/procestypen/838e405a-9b12-43c4-a985-d7a7490d422e\",\n \"referentieproces\": {\n \"naam\": \"test\",\n \"link\": \"\"\n },\n \"deelzaaktypen\": [\n \"cae6f26a-1321-4bff-b314-421ddf7775b9\"\n ],\n \"catalogus\": \"http://localhost:8080/index.php/apps/procest/api/zgw/catalogi/v1/catalogussen/5057408f-fd76-469e-8646-bcc4ba2efa8d\",\n \"statustypen\": [\n \n ],\n \"resultaattypen\": [\n ],\n \"eigenschappen\": [\n ],\n \"informatieobjecttypen\": [],\n \"besluittypen\": [\n \"c7e4cd3e-1645-4c0a-8bc4-0aa1847f6946\"\n ],\n \"gerelateerdeZaaktypen\": [],\n \"beginGeldigheid\": \"2019-01-01\",\n \"versiedatum\": \"2019-01-01\",\n \"concept\": true,\n \"verlengingstermijn\": \"P5D\"\n}" + }, + "auth": { + "type": "jwt", + "jwt": [ + { + "type": "string", + "value": "{\r\n \"iss\": \"procest-admin\",\r\n \"client_id\": \"procest-admin\",\r\n \"iat\": \"1773145184\",\r\n \"user_id\": \"procest-admin\",\r\n \"user_representation\": \"\"\r\n}", + "key": "payload" + }, + { + "type": "string", + "value": "procest-admin-secret-key-for-testing", + "key": "secret" + }, + { + "type": "string", + "value": "HS256", + "key": "algorithm" + }, + { + "type": "boolean", + "value": false, + "key": "isSecretBase64Encoded" + }, + { + "type": "string", + "value": "header", + "key": "addTokenTo" + }, + { + "type": "string", + "value": "Bearer", + "key": "headerPrefix" + }, + { + "type": "string", + "value": "token", + "key": "queryParamKey" + }, + { + "type": "string", + "value": "{}", + "key": "header" + } + ] + } + }, + "response": { + "id": "095bba26-b52f-4562-8dde-b6b14c89811d", + "status": "Created", + "code": 201, + "header": [ + { + "key": "Date", + "value": "Tue, 10 Mar 2026 12:19:44 GMT" + }, + { + "key": "Server", + "value": "Apache/2.4.66 (Debian)" + }, + { + "key": "X-Content-Type-Options", + "value": "nosniff" + }, + { + "key": "X-Frame-Options", + "value": "SAMEORIGIN" + }, + { + "key": "X-Permitted-Cross-Domain-Policies", + "value": "none" + }, + { + "key": "X-Robots-Tag", + "value": "noindex, nofollow" + }, + { + "key": "Referrer-Policy", + "value": "no-referrer" + }, + { + "key": "X-Powered-By", + "value": "PHP/8.3.30" + }, + { + "key": "Content-Security-Policy", + "value": "default-src 'none';base-uri 'none';manifest-src 'self';frame-ancestors 'none'" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=30a1587506de2366bf9e5fd2a559b0b2; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=30a1587506de2366bf9e5fd2a559b0b2; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=30a1587506de2366bf9e5fd2a559b0b2; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=30a1587506de2366bf9e5fd2a559b0b2; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=30a1587506de2366bf9e5fd2a559b0b2; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=222a07223467cf60a18172af69074289; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=222a07223467cf60a18172af69074289; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=222a07223467cf60a18172af69074289; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=222a07223467cf60a18172af69074289; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=222a07223467cf60a18172af69074289; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "X-Request-Id", + "value": "KGPQVVuhCWMJFTJPkcmD" + }, + { + "key": "Cache-Control", + "value": "no-cache, no-store, must-revalidate" + }, + { + "key": "Feature-Policy", + "value": "autoplay 'none';camera 'none';fullscreen 'none';geolocation 'none';microphone 'none';payment 'none'" + }, + { + "key": "X-User-Id", + "value": "admin" + }, + { + "key": "Content-Length", + "value": "1464" + }, + { + "key": "Keep-Alive", + "value": "timeout=5, max=100" + }, + { + "key": "Connection", + "value": "Keep-Alive" + }, + { + "key": "Content-Type", + "value": "application/json; charset=utf-8" + } + ], + "stream": { + "type": "Buffer", + "data": [ + 123, + 34, + 117, + 114, + 108, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 105, + 92, + 47, + 118, + 49, + 92, + 47, + 122, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 110, + 92, + 47, + 102, + 48, + 101, + 100, + 57, + 102, + 98, + 54, + 45, + 52, + 97, + 55, + 52, + 45, + 52, + 55, + 50, + 97, + 45, + 56, + 102, + 98, + 52, + 45, + 54, + 51, + 48, + 51, + 99, + 53, + 100, + 57, + 101, + 102, + 53, + 54, + 34, + 44, + 34, + 117, + 117, + 105, + 100, + 34, + 58, + 34, + 102, + 48, + 101, + 100, + 57, + 102, + 98, + 54, + 45, + 52, + 97, + 55, + 52, + 45, + 52, + 55, + 50, + 97, + 45, + 56, + 102, + 98, + 52, + 45, + 54, + 51, + 48, + 51, + 99, + 53, + 100, + 57, + 101, + 102, + 53, + 54, + 34, + 44, + 34, + 105, + 100, + 101, + 110, + 116, + 105, + 102, + 105, + 99, + 97, + 116, + 105, + 101, + 34, + 58, + 34, + 50, + 49, + 100, + 50, + 97, + 98, + 51, + 99, + 45, + 97, + 100, + 100, + 51, + 45, + 52, + 52, + 52, + 102, + 45, + 98, + 49, + 51, + 55, + 45, + 52, + 51, + 100, + 98, + 57, + 97, + 102, + 56, + 100, + 57, + 56, + 57, + 34, + 44, + 34, + 111, + 109, + 115, + 99, + 104, + 114, + 105, + 106, + 118, + 105, + 110, + 103, + 34, + 58, + 34, + 122, + 114, + 99, + 95, + 116, + 101, + 115, + 116, + 115, + 95, + 49, + 34, + 44, + 34, + 111, + 109, + 115, + 99, + 104, + 114, + 105, + 106, + 118, + 105, + 110, + 103, + 71, + 101, + 110, + 101, + 114, + 105, + 101, + 107, + 34, + 58, + 34, + 34, + 44, + 34, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 117, + 115, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 105, + 92, + 47, + 118, + 49, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 117, + 115, + 115, + 101, + 110, + 92, + 47, + 53, + 48, + 53, + 55, + 52, + 48, + 56, + 102, + 45, + 102, + 100, + 55, + 54, + 45, + 52, + 54, + 57, + 101, + 45, + 56, + 54, + 52, + 54, + 45, + 98, + 99, + 99, + 52, + 98, + 97, + 50, + 101, + 102, + 97, + 56, + 100, + 34, + 44, + 34, + 100, + 111, + 101, + 108, + 34, + 58, + 34, + 116, + 101, + 115, + 116, + 32, + 100, + 111, + 101, + 108, + 34, + 44, + 34, + 97, + 97, + 110, + 108, + 101, + 105, + 100, + 105, + 110, + 103, + 34, + 58, + 34, + 116, + 101, + 115, + 116, + 32, + 97, + 97, + 110, + 108, + 101, + 105, + 100, + 105, + 110, + 103, + 34, + 44, + 34, + 111, + 110, + 100, + 101, + 114, + 119, + 101, + 114, + 112, + 34, + 58, + 34, + 111, + 112, + 101, + 110, + 98, + 97, + 114, + 101, + 32, + 114, + 117, + 105, + 109, + 116, + 101, + 34, + 44, + 34, + 100, + 111, + 111, + 114, + 108, + 111, + 111, + 112, + 116, + 105, + 106, + 100, + 34, + 58, + 34, + 80, + 49, + 48, + 68, + 34, + 44, + 34, + 118, + 101, + 114, + 116, + 114, + 111, + 117, + 119, + 101, + 108, + 105, + 106, + 107, + 104, + 101, + 105, + 100, + 97, + 97, + 110, + 100, + 117, + 105, + 100, + 105, + 110, + 103, + 34, + 58, + 34, + 111, + 112, + 101, + 110, + 98, + 97, + 97, + 114, + 34, + 44, + 34, + 99, + 111, + 110, + 99, + 101, + 112, + 116, + 34, + 58, + 116, + 114, + 117, + 101, + 44, + 34, + 98, + 101, + 103, + 105, + 110, + 71, + 101, + 108, + 100, + 105, + 103, + 104, + 101, + 105, + 100, + 34, + 58, + 34, + 50, + 48, + 49, + 57, + 45, + 48, + 49, + 45, + 48, + 49, + 34, + 44, + 34, + 101, + 105, + 110, + 100, + 101, + 71, + 101, + 108, + 100, + 105, + 103, + 104, + 101, + 105, + 100, + 34, + 58, + 34, + 50, + 48, + 50, + 54, + 45, + 48, + 51, + 45, + 49, + 48, + 34, + 44, + 34, + 104, + 97, + 110, + 100, + 101, + 108, + 105, + 110, + 103, + 73, + 110, + 105, + 116, + 105, + 97, + 116, + 111, + 114, + 34, + 58, + 34, + 105, + 110, + 100, + 105, + 101, + 110, + 101, + 110, + 34, + 44, + 34, + 105, + 110, + 100, + 105, + 99, + 97, + 116, + 105, + 101, + 73, + 110, + 116, + 101, + 114, + 110, + 79, + 102, + 69, + 120, + 116, + 101, + 114, + 110, + 34, + 58, + 34, + 101, + 120, + 116, + 101, + 114, + 110, + 34, + 44, + 34, + 104, + 97, + 110, + 100, + 101, + 108, + 105, + 110, + 103, + 66, + 101, + 104, + 97, + 110, + 100, + 101, + 108, + 97, + 97, + 114, + 34, + 58, + 34, + 98, + 101, + 104, + 97, + 110, + 100, + 101, + 108, + 101, + 110, + 34, + 44, + 34, + 111, + 112, + 115, + 99, + 104, + 111, + 114, + 116, + 105, + 110, + 103, + 69, + 110, + 65, + 97, + 110, + 104, + 111, + 117, + 100, + 105, + 110, + 103, + 77, + 111, + 103, + 101, + 108, + 105, + 106, + 107, + 34, + 58, + 102, + 97, + 108, + 115, + 101, + 44, + 34, + 118, + 101, + 114, + 108, + 101, + 110, + 103, + 105, + 110, + 103, + 77, + 111, + 103, + 101, + 108, + 105, + 106, + 107, + 34, + 58, + 116, + 114, + 117, + 101, + 44, + 34, + 118, + 101, + 114, + 108, + 101, + 110, + 103, + 105, + 110, + 103, + 115, + 116, + 101, + 114, + 109, + 105, + 106, + 110, + 34, + 58, + 34, + 80, + 53, + 68, + 34, + 44, + 34, + 112, + 117, + 98, + 108, + 105, + 99, + 97, + 116, + 105, + 101, + 73, + 110, + 100, + 105, + 99, + 97, + 116, + 105, + 101, + 34, + 58, + 102, + 97, + 108, + 115, + 101, + 44, + 34, + 112, + 114, + 111, + 100, + 117, + 99, + 116, + 101, + 110, + 79, + 102, + 68, + 105, + 101, + 110, + 115, + 116, + 101, + 110, + 34, + 58, + 91, + 34, + 104, + 116, + 116, + 112, + 115, + 58, + 92, + 47, + 92, + 47, + 114, + 101, + 102, + 46, + 116, + 115, + 116, + 46, + 118, + 110, + 103, + 46, + 99, + 108, + 111, + 117, + 100, + 92, + 47, + 115, + 116, + 97, + 110, + 100, + 97, + 97, + 114, + 100, + 92, + 47, + 34, + 93, + 44, + 34, + 115, + 101, + 108, + 101, + 99, + 116, + 105, + 101, + 108, + 105, + 106, + 115, + 116, + 80, + 114, + 111, + 99, + 101, + 115, + 116, + 121, + 112, + 101, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 115, + 58, + 92, + 47, + 92, + 47, + 115, + 101, + 108, + 101, + 99, + 116, + 105, + 101, + 108, + 105, + 106, + 115, + 116, + 46, + 111, + 112, + 101, + 110, + 122, + 97, + 97, + 107, + 46, + 110, + 108, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 118, + 49, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 121, + 112, + 101, + 110, + 92, + 47, + 56, + 51, + 56, + 101, + 52, + 48, + 53, + 97, + 45, + 57, + 98, + 49, + 50, + 45, + 52, + 51, + 99, + 52, + 45, + 97, + 57, + 56, + 53, + 45, + 100, + 55, + 97, + 55, + 52, + 57, + 48, + 100, + 52, + 50, + 50, + 101, + 34, + 44, + 34, + 114, + 101, + 102, + 101, + 114, + 101, + 110, + 116, + 105, + 101, + 112, + 114, + 111, + 99, + 101, + 115, + 34, + 58, + 123, + 34, + 108, + 105, + 110, + 107, + 34, + 58, + 34, + 34, + 44, + 34, + 110, + 97, + 97, + 109, + 34, + 58, + 34, + 116, + 101, + 115, + 116, + 34, + 125, + 44, + 34, + 118, + 101, + 114, + 97, + 110, + 116, + 119, + 111, + 111, + 114, + 100, + 101, + 108, + 105, + 106, + 107, + 101, + 34, + 58, + 34, + 88, + 34, + 44, + 34, + 103, + 101, + 114, + 101, + 108, + 97, + 116, + 101, + 101, + 114, + 100, + 101, + 90, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 98, + 101, + 115, + 108, + 117, + 105, + 116, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 105, + 92, + 47, + 118, + 49, + 92, + 47, + 98, + 101, + 115, + 108, + 117, + 105, + 116, + 116, + 121, + 112, + 101, + 110, + 92, + 47, + 48, + 98, + 50, + 50, + 48, + 100, + 50, + 55, + 45, + 101, + 50, + 53, + 49, + 45, + 52, + 99, + 52, + 55, + 45, + 98, + 48, + 100, + 102, + 45, + 48, + 49, + 52, + 99, + 50, + 101, + 52, + 99, + 97, + 97, + 54, + 49, + 34, + 93, + 44, + 34, + 105, + 110, + 102, + 111, + 114, + 109, + 97, + 116, + 105, + 101, + 111, + 98, + 106, + 101, + 99, + 116, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 100, + 101, + 101, + 108, + 122, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 116, + 111, + 101, + 108, + 105, + 99, + 104, + 116, + 105, + 110, + 103, + 34, + 58, + 34, + 34, + 44, + 34, + 118, + 101, + 114, + 115, + 105, + 101, + 100, + 97, + 116, + 117, + 109, + 34, + 58, + 34, + 50, + 48, + 49, + 57, + 45, + 48, + 49, + 45, + 48, + 49, + 34, + 44, + 34, + 101, + 105, + 103, + 101, + 110, + 115, + 99, + 104, + 97, + 112, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 115, + 116, + 97, + 116, + 117, + 115, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 114, + 101, + 115, + 117, + 108, + 116, + 97, + 97, + 116, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 114, + 111, + 108, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 125 + ] + }, + "cookie": [], + "responseTime": 336, + "responseSize": 1464 + }, + "id": "f64d9251-8dd3-4b49-bc46-7b3e0ae89842" + }, + { + "cursor": { + "ref": "01dd7104-ea6f-4ee5-bf75-1f7c971e13be", + "length": 313, + "cycles": 1, + "position": 180, + "iteration": 0, + "httpRequestId": "873a2c4b-35d7-409d-882a-2290576497ba" + }, + "item": { + "id": "cacd57c4-336a-4a42-ada2-21e46aac464b", + "name": "IOT", + "request": { + "url": { + "path": [ + "informatieobjecttypen" + ], + "host": [ + "{{ztc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n\t\"catalogus\": \"{{catalogus_url}}\",\n\t\"omschrijving\": \"{{informatieobject_omschrijving}}\",\n\t\"vertrouwelijkheidaanduiding\": \"openbaar\",\n\t\"beginGeldigheid\": \"2019-01-01\",\n\t\"informatieobjectcategorie\": \"document\"\n}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "12fb32a4-3f80-49b1-8539-6909f890b5a1", + "type": "text/javascript", + "packages": {}, + "exec": [ + "if(pm.response.code == 201) {\r", + " pm.environment.set(\"temp_iot_url\", pm.response.json().url);\r", + "}" + ], + "_lastExecutionId": "289722fe-54f9-4cea-9871-f8ded8329e64" + } + }, + { + "listen": "prerequest", + "script": { + "id": "c7286960-f8f7-416e-adbf-091db59ee433", + "type": "text/javascript", + "packages": {}, + "exec": [ + "var uuid = require('uuid');\r", + "var myUUID = uuid.v4(); \r", + "pm.environment.set(\"informatieobject_omschrijving\", myUUID);" + ], + "_lastExecutionId": "ca1b2ed2-929a-499f-968f-0534677e437c" + } + } + ] + }, + "request": { + "url": { + "protocol": "http", + "port": "8080", + "path": [ + "index.php", + "apps", + "procest", + "api", + "zgw", + "catalogi", + "v1", + "informatieobjecttypen" + ], + "host": [ + "localhost" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Authorization", + "value": "Bearer eyJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJwcm9jZXN0LWFkbWluIiwiY2xpZW50X2lkIjoicHJvY2VzdC1hZG1pbiIsImlhdCI6IjE3NzMxNDUxODUiLCJ1c2VyX2lkIjoicHJvY2VzdC1hZG1pbiIsInVzZXJfcmVwcmVzZW50YXRpb24iOiIifQ.G3qSymuvPNziZ6UD1hk-mvDzRY75fGxUI597Gth5TrU", + "system": true + }, + { + "key": "User-Agent", + "value": "PostmanRuntime/7.39.1", + "system": true + }, + { + "key": "Accept", + "value": "*/*", + "system": true + }, + { + "key": "Cache-Control", + "value": "no-cache", + "system": true + }, + { + "key": "Postman-Token", + "value": "2aba8b69-8ca8-4441-a6a9-a7e933074ce3", + "system": true + }, + { + "key": "Host", + "value": "localhost:8080", + "system": true + }, + { + "key": "Accept-Encoding", + "value": "gzip, deflate, br", + "system": true + }, + { + "key": "Connection", + "value": "keep-alive", + "system": true + }, + { + "key": "Content-Length", + "value": "311", + "system": true + }, + { + "key": "Cookie", + "value": "ocvp3112b4wg=222a07223467cf60a18172af69074289; oc_sessionPassphrase=LBNdKxRzA0iqoULIruNxDDh2BK3O%2BrCIU8aUmiUcOFvy5Xw1YfjwQNlmBW2IkGwJYtxXh9%2BwDN6vYuGNX07tXzkBtjQJUWTGdzf8AIOUIVxVx5DfyWAQZ7nmYmQv6XSE; nc_sameSiteCookielax=true; nc_sameSiteCookiestrict=true", + "system": true + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n\t\"catalogus\": \"http://localhost:8080/index.php/apps/procest/api/zgw/catalogi/v1/catalogussen/5057408f-fd76-469e-8646-bcc4ba2efa8d\",\n\t\"omschrijving\": \"eb6efb28-ed36-47ff-a301-dd8f4041684d\",\n\t\"vertrouwelijkheidaanduiding\": \"openbaar\",\n\t\"beginGeldigheid\": \"2019-01-01\",\n\t\"informatieobjectcategorie\": \"document\"\n}" + }, + "auth": { + "type": "jwt", + "jwt": [ + { + "type": "string", + "value": "{\r\n \"iss\": \"procest-admin\",\r\n \"client_id\": \"procest-admin\",\r\n \"iat\": \"1773145185\",\r\n \"user_id\": \"procest-admin\",\r\n \"user_representation\": \"\"\r\n}", + "key": "payload" + }, + { + "type": "string", + "value": "procest-admin-secret-key-for-testing", + "key": "secret" + }, + { + "type": "string", + "value": "HS256", + "key": "algorithm" + }, + { + "type": "boolean", + "value": false, + "key": "isSecretBase64Encoded" + }, + { + "type": "string", + "value": "header", + "key": "addTokenTo" + }, + { + "type": "string", + "value": "Bearer", + "key": "headerPrefix" + }, + { + "type": "string", + "value": "token", + "key": "queryParamKey" + }, + { + "type": "string", + "value": "{}", + "key": "header" + } + ] + } + }, + "response": { + "id": "02ac8c5f-a145-4fd0-bfe8-ea53ee335fab", + "status": "Created", + "code": 201, + "header": [ + { + "key": "Date", + "value": "Tue, 10 Mar 2026 12:19:44 GMT" + }, + { + "key": "Server", + "value": "Apache/2.4.66 (Debian)" + }, + { + "key": "X-Content-Type-Options", + "value": "nosniff" + }, + { + "key": "X-Frame-Options", + "value": "SAMEORIGIN" + }, + { + "key": "X-Permitted-Cross-Domain-Policies", + "value": "none" + }, + { + "key": "X-Robots-Tag", + "value": "noindex, nofollow" + }, + { + "key": "Referrer-Policy", + "value": "no-referrer" + }, + { + "key": "X-Powered-By", + "value": "PHP/8.3.30" + }, + { + "key": "Content-Security-Policy", + "value": "default-src 'none';base-uri 'none';manifest-src 'self';frame-ancestors 'none'" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=222a07223467cf60a18172af69074289; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=222a07223467cf60a18172af69074289; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=222a07223467cf60a18172af69074289; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=222a07223467cf60a18172af69074289; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=222a07223467cf60a18172af69074289; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=961646ce3ad48d898c88ff3572f63508; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=961646ce3ad48d898c88ff3572f63508; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=961646ce3ad48d898c88ff3572f63508; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=961646ce3ad48d898c88ff3572f63508; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=961646ce3ad48d898c88ff3572f63508; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "X-Request-Id", + "value": "cZEaI3Cti6x2WN49UHoA" + }, + { + "key": "Cache-Control", + "value": "no-cache, no-store, must-revalidate" + }, + { + "key": "Feature-Policy", + "value": "autoplay 'none';camera 'none';fullscreen 'none';geolocation 'none';microphone 'none';payment 'none'" + }, + { + "key": "X-User-Id", + "value": "admin" + }, + { + "key": "Content-Length", + "value": "576" + }, + { + "key": "Keep-Alive", + "value": "timeout=5, max=99" + }, + { + "key": "Connection", + "value": "Keep-Alive" + }, + { + "key": "Content-Type", + "value": "application/json; charset=utf-8" + } + ], + "stream": { + "type": "Buffer", + "data": [ + 123, + 34, + 117, + 114, + 108, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 105, + 92, + 47, + 118, + 49, + 92, + 47, + 105, + 110, + 102, + 111, + 114, + 109, + 97, + 116, + 105, + 101, + 111, + 98, + 106, + 101, + 99, + 116, + 116, + 121, + 112, + 101, + 110, + 92, + 47, + 100, + 53, + 102, + 101, + 53, + 97, + 48, + 56, + 45, + 55, + 54, + 99, + 51, + 45, + 52, + 48, + 54, + 56, + 45, + 97, + 98, + 48, + 50, + 45, + 101, + 48, + 97, + 102, + 49, + 98, + 49, + 102, + 56, + 56, + 48, + 55, + 34, + 44, + 34, + 117, + 117, + 105, + 100, + 34, + 58, + 34, + 100, + 53, + 102, + 101, + 53, + 97, + 48, + 56, + 45, + 55, + 54, + 99, + 51, + 45, + 52, + 48, + 54, + 56, + 45, + 97, + 98, + 48, + 50, + 45, + 101, + 48, + 97, + 102, + 49, + 98, + 49, + 102, + 56, + 56, + 48, + 55, + 34, + 44, + 34, + 111, + 109, + 115, + 99, + 104, + 114, + 105, + 106, + 118, + 105, + 110, + 103, + 34, + 58, + 34, + 101, + 98, + 54, + 101, + 102, + 98, + 50, + 56, + 45, + 101, + 100, + 51, + 54, + 45, + 52, + 55, + 102, + 102, + 45, + 97, + 51, + 48, + 49, + 45, + 100, + 100, + 56, + 102, + 52, + 48, + 52, + 49, + 54, + 56, + 52, + 100, + 34, + 44, + 34, + 116, + 111, + 101, + 108, + 105, + 99, + 104, + 116, + 105, + 110, + 103, + 34, + 58, + 34, + 34, + 44, + 34, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 117, + 115, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 105, + 92, + 47, + 118, + 49, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 117, + 115, + 115, + 101, + 110, + 92, + 47, + 53, + 48, + 53, + 55, + 52, + 48, + 56, + 102, + 45, + 102, + 100, + 55, + 54, + 45, + 52, + 54, + 57, + 101, + 45, + 56, + 54, + 52, + 54, + 45, + 98, + 99, + 99, + 52, + 98, + 97, + 50, + 101, + 102, + 97, + 56, + 100, + 34, + 44, + 34, + 99, + 111, + 110, + 99, + 101, + 112, + 116, + 34, + 58, + 116, + 114, + 117, + 101, + 44, + 34, + 118, + 101, + 114, + 116, + 114, + 111, + 117, + 119, + 101, + 108, + 105, + 106, + 107, + 104, + 101, + 105, + 100, + 97, + 97, + 110, + 100, + 117, + 105, + 100, + 105, + 110, + 103, + 34, + 58, + 34, + 111, + 112, + 101, + 110, + 98, + 97, + 97, + 114, + 34, + 44, + 34, + 105, + 110, + 102, + 111, + 114, + 109, + 97, + 116, + 105, + 101, + 111, + 98, + 106, + 101, + 99, + 116, + 99, + 97, + 116, + 101, + 103, + 111, + 114, + 105, + 101, + 34, + 58, + 34, + 100, + 111, + 99, + 117, + 109, + 101, + 110, + 116, + 34, + 44, + 34, + 98, + 101, + 103, + 105, + 110, + 71, + 101, + 108, + 100, + 105, + 103, + 104, + 101, + 105, + 100, + 34, + 58, + 34, + 50, + 48, + 49, + 57, + 45, + 48, + 49, + 45, + 48, + 49, + 34, + 44, + 34, + 101, + 105, + 110, + 100, + 101, + 71, + 101, + 108, + 100, + 105, + 103, + 104, + 101, + 105, + 100, + 34, + 58, + 34, + 50, + 48, + 50, + 54, + 45, + 48, + 51, + 45, + 49, + 48, + 34, + 44, + 34, + 118, + 101, + 114, + 112, + 108, + 105, + 99, + 104, + 116, + 34, + 58, + 102, + 97, + 108, + 115, + 101, + 125 + ] + }, + "cookie": [], + "responseTime": 165, + "responseSize": 576 + }, + "id": "cacd57c4-336a-4a42-ada2-21e46aac464b" + }, + { + "cursor": { + "ref": "8f6cd1ca-2af0-4450-b8ab-3dcdf23badac", + "length": 313, + "cycles": 1, + "position": 181, + "iteration": 0, + "httpRequestId": "66713390-95dd-4f1e-aeaf-a3778991022f" + }, + "item": { + "id": "8898ac13-d1ed-4bc4-b705-3e03e9faa64f", + "name": "Publish temp Informatieobjecttype", + "request": { + "url": { + "path": [ + "publish" + ], + "host": [ + "{{temp_iot_url}}" + ], + "query": [], + "variable": [] + }, + "method": "POST" + }, + "response": [], + "event": [] + }, + "request": { + "url": { + "protocol": "http", + "port": "8080", + "path": [ + "index.php", + "apps", + "procest", + "api", + "zgw", + "catalogi", + "v1", + "informatieobjecttypen", + "d5fe5a08-76c3-4068-ab02-e0af1b1f8807", + "publish" + ], + "host": [ + "localhost" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Authorization", + "value": "Bearer eyJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJwcm9jZXN0LWFkbWluIiwiY2xpZW50X2lkIjoicHJvY2VzdC1hZG1pbiIsImlhdCI6IjE3NzMxNDUxODUiLCJ1c2VyX2lkIjoicHJvY2VzdC1hZG1pbiIsInVzZXJfcmVwcmVzZW50YXRpb24iOiIifQ.G3qSymuvPNziZ6UD1hk-mvDzRY75fGxUI597Gth5TrU", + "system": true + }, + { + "key": "User-Agent", + "value": "PostmanRuntime/7.39.1", + "system": true + }, + { + "key": "Accept", + "value": "*/*", + "system": true + }, + { + "key": "Cache-Control", + "value": "no-cache", + "system": true + }, + { + "key": "Postman-Token", + "value": "8435a971-0704-4af7-bc34-de848a2596f4", + "system": true + }, + { + "key": "Host", + "value": "localhost:8080", + "system": true + }, + { + "key": "Accept-Encoding", + "value": "gzip, deflate, br", + "system": true + }, + { + "key": "Connection", + "value": "keep-alive", + "system": true + }, + { + "key": "Cookie", + "value": "ocvp3112b4wg=961646ce3ad48d898c88ff3572f63508; oc_sessionPassphrase=LBNdKxRzA0iqoULIruNxDDh2BK3O%2BrCIU8aUmiUcOFvy5Xw1YfjwQNlmBW2IkGwJYtxXh9%2BwDN6vYuGNX07tXzkBtjQJUWTGdzf8AIOUIVxVx5DfyWAQZ7nmYmQv6XSE; nc_sameSiteCookielax=true; nc_sameSiteCookiestrict=true", + "system": true + }, + { + "key": "Content-Length", + "value": "0", + "system": true + } + ], + "method": "POST", + "auth": { + "type": "jwt", + "jwt": [ + { + "type": "string", + "value": "{\r\n \"iss\": \"procest-admin\",\r\n \"client_id\": \"procest-admin\",\r\n \"iat\": \"1773145185\",\r\n \"user_id\": \"procest-admin\",\r\n \"user_representation\": \"\"\r\n}", + "key": "payload" + }, + { + "type": "string", + "value": "procest-admin-secret-key-for-testing", + "key": "secret" + }, + { + "type": "string", + "value": "HS256", + "key": "algorithm" + }, + { + "type": "boolean", + "value": false, + "key": "isSecretBase64Encoded" + }, + { + "type": "string", + "value": "header", + "key": "addTokenTo" + }, + { + "type": "string", + "value": "Bearer", + "key": "headerPrefix" + }, + { + "type": "string", + "value": "token", + "key": "queryParamKey" + }, + { + "type": "string", + "value": "{}", + "key": "header" + } + ] + } + }, + "response": { + "id": "a1ea6e08-d1e8-468c-b670-67c94f01b3b1", + "status": "OK", + "code": 200, + "header": [ + { + "key": "Date", + "value": "Tue, 10 Mar 2026 12:19:44 GMT" + }, + { + "key": "Server", + "value": "Apache/2.4.66 (Debian)" + }, + { + "key": "X-Content-Type-Options", + "value": "nosniff" + }, + { + "key": "X-Frame-Options", + "value": "SAMEORIGIN" + }, + { + "key": "X-Permitted-Cross-Domain-Policies", + "value": "none" + }, + { + "key": "X-Robots-Tag", + "value": "noindex, nofollow" + }, + { + "key": "Referrer-Policy", + "value": "no-referrer" + }, + { + "key": "X-Powered-By", + "value": "PHP/8.3.30" + }, + { + "key": "Content-Security-Policy", + "value": "default-src 'none';base-uri 'none';manifest-src 'self';frame-ancestors 'none'" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=961646ce3ad48d898c88ff3572f63508; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=961646ce3ad48d898c88ff3572f63508; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=961646ce3ad48d898c88ff3572f63508; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=961646ce3ad48d898c88ff3572f63508; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=961646ce3ad48d898c88ff3572f63508; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=28c0060891e21dd2a62fc2ff1f48ecc3; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=28c0060891e21dd2a62fc2ff1f48ecc3; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=28c0060891e21dd2a62fc2ff1f48ecc3; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=28c0060891e21dd2a62fc2ff1f48ecc3; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=28c0060891e21dd2a62fc2ff1f48ecc3; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "X-Request-Id", + "value": "jHyHbc12pfN19nMxpVMm" + }, + { + "key": "Cache-Control", + "value": "no-cache, no-store, must-revalidate" + }, + { + "key": "Feature-Policy", + "value": "autoplay 'none';camera 'none';fullscreen 'none';geolocation 'none';microphone 'none';payment 'none'" + }, + { + "key": "X-User-Id", + "value": "admin" + }, + { + "key": "Content-Encoding", + "value": "gzip" + }, + { + "key": "Content-Length", + "value": "328" + }, + { + "key": "Keep-Alive", + "value": "timeout=5, max=98" + }, + { + "key": "Connection", + "value": "Keep-Alive" + }, + { + "key": "Content-Type", + "value": "application/json; charset=utf-8" + } + ], + "stream": { + "type": "Buffer", + "data": [ + 123, + 34, + 117, + 114, + 108, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 105, + 92, + 47, + 118, + 49, + 92, + 47, + 105, + 110, + 102, + 111, + 114, + 109, + 97, + 116, + 105, + 101, + 111, + 98, + 106, + 101, + 99, + 116, + 116, + 121, + 112, + 101, + 110, + 92, + 47, + 100, + 53, + 102, + 101, + 53, + 97, + 48, + 56, + 45, + 55, + 54, + 99, + 51, + 45, + 52, + 48, + 54, + 56, + 45, + 97, + 98, + 48, + 50, + 45, + 101, + 48, + 97, + 102, + 49, + 98, + 49, + 102, + 56, + 56, + 48, + 55, + 34, + 44, + 34, + 117, + 117, + 105, + 100, + 34, + 58, + 34, + 100, + 53, + 102, + 101, + 53, + 97, + 48, + 56, + 45, + 55, + 54, + 99, + 51, + 45, + 52, + 48, + 54, + 56, + 45, + 97, + 98, + 48, + 50, + 45, + 101, + 48, + 97, + 102, + 49, + 98, + 49, + 102, + 56, + 56, + 48, + 55, + 34, + 44, + 34, + 111, + 109, + 115, + 99, + 104, + 114, + 105, + 106, + 118, + 105, + 110, + 103, + 34, + 58, + 34, + 101, + 98, + 54, + 101, + 102, + 98, + 50, + 56, + 45, + 101, + 100, + 51, + 54, + 45, + 52, + 55, + 102, + 102, + 45, + 97, + 51, + 48, + 49, + 45, + 100, + 100, + 56, + 102, + 52, + 48, + 52, + 49, + 54, + 56, + 52, + 100, + 34, + 44, + 34, + 116, + 111, + 101, + 108, + 105, + 99, + 104, + 116, + 105, + 110, + 103, + 34, + 58, + 34, + 34, + 44, + 34, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 117, + 115, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 105, + 92, + 47, + 118, + 49, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 117, + 115, + 115, + 101, + 110, + 92, + 47, + 53, + 48, + 53, + 55, + 52, + 48, + 56, + 102, + 45, + 102, + 100, + 55, + 54, + 45, + 52, + 54, + 57, + 101, + 45, + 56, + 54, + 52, + 54, + 45, + 98, + 99, + 99, + 52, + 98, + 97, + 50, + 101, + 102, + 97, + 56, + 100, + 34, + 44, + 34, + 99, + 111, + 110, + 99, + 101, + 112, + 116, + 34, + 58, + 102, + 97, + 108, + 115, + 101, + 44, + 34, + 118, + 101, + 114, + 116, + 114, + 111, + 117, + 119, + 101, + 108, + 105, + 106, + 107, + 104, + 101, + 105, + 100, + 97, + 97, + 110, + 100, + 117, + 105, + 100, + 105, + 110, + 103, + 34, + 58, + 34, + 111, + 112, + 101, + 110, + 98, + 97, + 97, + 114, + 34, + 44, + 34, + 105, + 110, + 102, + 111, + 114, + 109, + 97, + 116, + 105, + 101, + 111, + 98, + 106, + 101, + 99, + 116, + 99, + 97, + 116, + 101, + 103, + 111, + 114, + 105, + 101, + 34, + 58, + 34, + 100, + 111, + 99, + 117, + 109, + 101, + 110, + 116, + 34, + 44, + 34, + 98, + 101, + 103, + 105, + 110, + 71, + 101, + 108, + 100, + 105, + 103, + 104, + 101, + 105, + 100, + 34, + 58, + 34, + 50, + 48, + 49, + 57, + 45, + 48, + 49, + 45, + 48, + 49, + 34, + 44, + 34, + 101, + 105, + 110, + 100, + 101, + 71, + 101, + 108, + 100, + 105, + 103, + 104, + 101, + 105, + 100, + 34, + 58, + 34, + 50, + 48, + 50, + 54, + 45, + 48, + 51, + 45, + 49, + 48, + 34, + 44, + 34, + 118, + 101, + 114, + 112, + 108, + 105, + 99, + 104, + 116, + 34, + 58, + 102, + 97, + 108, + 115, + 101, + 125 + ] + }, + "cookie": [], + "responseTime": 153, + "responseSize": 577 + }, + "id": "8898ac13-d1ed-4bc4-b705-3e03e9faa64f" + }, + { + "cursor": { + "ref": "049b23de-80f9-4b95-a2c1-005185131dba", + "length": 313, + "cycles": 1, + "position": 182, + "iteration": 0, + "httpRequestId": "2e117091-7800-4168-8944-24c33c3a5d0d" + }, + "item": { + "id": "e7182a5c-8e38-4f30-84a7-0320c39157ed", + "name": "Publish Zaaktype for informatieobjecttype validation", + "request": { + "url": { + "path": [ + "publish" + ], + "host": [ + "{{temp_zaaktype_url}}" + ], + "query": [], + "variable": [] + }, + "method": "POST" + }, + "response": [], + "event": [] + }, + "request": { + "url": { + "protocol": "http", + "port": "8080", + "path": [ + "index.php", + "apps", + "procest", + "api", + "zgw", + "catalogi", + "v1", + "zaaktypen", + "f0ed9fb6-4a74-472a-8fb4-6303c5d9ef56", + "publish" + ], + "host": [ + "localhost" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Authorization", + "value": "Bearer eyJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJwcm9jZXN0LWFkbWluIiwiY2xpZW50X2lkIjoicHJvY2VzdC1hZG1pbiIsImlhdCI6IjE3NzMxNDUxODUiLCJ1c2VyX2lkIjoicHJvY2VzdC1hZG1pbiIsInVzZXJfcmVwcmVzZW50YXRpb24iOiIifQ.G3qSymuvPNziZ6UD1hk-mvDzRY75fGxUI597Gth5TrU", + "system": true + }, + { + "key": "User-Agent", + "value": "PostmanRuntime/7.39.1", + "system": true + }, + { + "key": "Accept", + "value": "*/*", + "system": true + }, + { + "key": "Cache-Control", + "value": "no-cache", + "system": true + }, + { + "key": "Postman-Token", + "value": "479cc361-3a2a-4564-84be-f6d321ffe765", + "system": true + }, + { + "key": "Host", + "value": "localhost:8080", + "system": true + }, + { + "key": "Accept-Encoding", + "value": "gzip, deflate, br", + "system": true + }, + { + "key": "Connection", + "value": "keep-alive", + "system": true + }, + { + "key": "Cookie", + "value": "ocvp3112b4wg=28c0060891e21dd2a62fc2ff1f48ecc3; oc_sessionPassphrase=LBNdKxRzA0iqoULIruNxDDh2BK3O%2BrCIU8aUmiUcOFvy5Xw1YfjwQNlmBW2IkGwJYtxXh9%2BwDN6vYuGNX07tXzkBtjQJUWTGdzf8AIOUIVxVx5DfyWAQZ7nmYmQv6XSE; nc_sameSiteCookielax=true; nc_sameSiteCookiestrict=true", + "system": true + }, + { + "key": "Content-Length", + "value": "0", + "system": true + } + ], + "method": "POST", + "auth": { + "type": "jwt", + "jwt": [ + { + "type": "string", + "value": "{\r\n \"iss\": \"procest-admin\",\r\n \"client_id\": \"procest-admin\",\r\n \"iat\": \"1773145185\",\r\n \"user_id\": \"procest-admin\",\r\n \"user_representation\": \"\"\r\n}", + "key": "payload" + }, + { + "type": "string", + "value": "procest-admin-secret-key-for-testing", + "key": "secret" + }, + { + "type": "string", + "value": "HS256", + "key": "algorithm" + }, + { + "type": "boolean", + "value": false, + "key": "isSecretBase64Encoded" + }, + { + "type": "string", + "value": "header", + "key": "addTokenTo" + }, + { + "type": "string", + "value": "Bearer", + "key": "headerPrefix" + }, + { + "type": "string", + "value": "token", + "key": "queryParamKey" + }, + { + "type": "string", + "value": "{}", + "key": "header" + } + ] + } + }, + "response": { + "id": "b6ee0f77-a86d-49b6-aeb0-a9ad68a7375b", + "status": "OK", + "code": 200, + "header": [ + { + "key": "Date", + "value": "Tue, 10 Mar 2026 12:19:44 GMT" + }, + { + "key": "Server", + "value": "Apache/2.4.66 (Debian)" + }, + { + "key": "X-Content-Type-Options", + "value": "nosniff" + }, + { + "key": "X-Frame-Options", + "value": "SAMEORIGIN" + }, + { + "key": "X-Permitted-Cross-Domain-Policies", + "value": "none" + }, + { + "key": "X-Robots-Tag", + "value": "noindex, nofollow" + }, + { + "key": "Referrer-Policy", + "value": "no-referrer" + }, + { + "key": "X-Powered-By", + "value": "PHP/8.3.30" + }, + { + "key": "Content-Security-Policy", + "value": "default-src 'none';base-uri 'none';manifest-src 'self';frame-ancestors 'none'" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=28c0060891e21dd2a62fc2ff1f48ecc3; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=28c0060891e21dd2a62fc2ff1f48ecc3; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=28c0060891e21dd2a62fc2ff1f48ecc3; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=28c0060891e21dd2a62fc2ff1f48ecc3; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=28c0060891e21dd2a62fc2ff1f48ecc3; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=1a15098680337d1ec5318499788c16e5; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=1a15098680337d1ec5318499788c16e5; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=1a15098680337d1ec5318499788c16e5; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=1a15098680337d1ec5318499788c16e5; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=1a15098680337d1ec5318499788c16e5; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "X-Request-Id", + "value": "hi8CBIL6roXOxswoDnUc" + }, + { + "key": "Cache-Control", + "value": "no-cache, no-store, must-revalidate" + }, + { + "key": "Feature-Policy", + "value": "autoplay 'none';camera 'none';fullscreen 'none';geolocation 'none';microphone 'none';payment 'none'" + }, + { + "key": "X-User-Id", + "value": "admin" + }, + { + "key": "Content-Encoding", + "value": "gzip" + }, + { + "key": "Content-Length", + "value": "709" + }, + { + "key": "Keep-Alive", + "value": "timeout=5, max=97" + }, + { + "key": "Connection", + "value": "Keep-Alive" + }, + { + "key": "Content-Type", + "value": "application/json; charset=utf-8" + } + ], + "stream": { + "type": "Buffer", + "data": [ + 123, + 34, + 117, + 114, + 108, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 105, + 92, + 47, + 118, + 49, + 92, + 47, + 122, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 110, + 92, + 47, + 102, + 48, + 101, + 100, + 57, + 102, + 98, + 54, + 45, + 52, + 97, + 55, + 52, + 45, + 52, + 55, + 50, + 97, + 45, + 56, + 102, + 98, + 52, + 45, + 54, + 51, + 48, + 51, + 99, + 53, + 100, + 57, + 101, + 102, + 53, + 54, + 34, + 44, + 34, + 117, + 117, + 105, + 100, + 34, + 58, + 34, + 102, + 48, + 101, + 100, + 57, + 102, + 98, + 54, + 45, + 52, + 97, + 55, + 52, + 45, + 52, + 55, + 50, + 97, + 45, + 56, + 102, + 98, + 52, + 45, + 54, + 51, + 48, + 51, + 99, + 53, + 100, + 57, + 101, + 102, + 53, + 54, + 34, + 44, + 34, + 105, + 100, + 101, + 110, + 116, + 105, + 102, + 105, + 99, + 97, + 116, + 105, + 101, + 34, + 58, + 34, + 50, + 49, + 100, + 50, + 97, + 98, + 51, + 99, + 45, + 97, + 100, + 100, + 51, + 45, + 52, + 52, + 52, + 102, + 45, + 98, + 49, + 51, + 55, + 45, + 52, + 51, + 100, + 98, + 57, + 97, + 102, + 56, + 100, + 57, + 56, + 57, + 34, + 44, + 34, + 111, + 109, + 115, + 99, + 104, + 114, + 105, + 106, + 118, + 105, + 110, + 103, + 34, + 58, + 34, + 122, + 114, + 99, + 95, + 116, + 101, + 115, + 116, + 115, + 95, + 49, + 34, + 44, + 34, + 111, + 109, + 115, + 99, + 104, + 114, + 105, + 106, + 118, + 105, + 110, + 103, + 71, + 101, + 110, + 101, + 114, + 105, + 101, + 107, + 34, + 58, + 34, + 34, + 44, + 34, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 117, + 115, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 105, + 92, + 47, + 118, + 49, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 117, + 115, + 115, + 101, + 110, + 92, + 47, + 53, + 48, + 53, + 55, + 52, + 48, + 56, + 102, + 45, + 102, + 100, + 55, + 54, + 45, + 52, + 54, + 57, + 101, + 45, + 56, + 54, + 52, + 54, + 45, + 98, + 99, + 99, + 52, + 98, + 97, + 50, + 101, + 102, + 97, + 56, + 100, + 34, + 44, + 34, + 100, + 111, + 101, + 108, + 34, + 58, + 34, + 116, + 101, + 115, + 116, + 32, + 100, + 111, + 101, + 108, + 34, + 44, + 34, + 97, + 97, + 110, + 108, + 101, + 105, + 100, + 105, + 110, + 103, + 34, + 58, + 34, + 116, + 101, + 115, + 116, + 32, + 97, + 97, + 110, + 108, + 101, + 105, + 100, + 105, + 110, + 103, + 34, + 44, + 34, + 111, + 110, + 100, + 101, + 114, + 119, + 101, + 114, + 112, + 34, + 58, + 34, + 111, + 112, + 101, + 110, + 98, + 97, + 114, + 101, + 32, + 114, + 117, + 105, + 109, + 116, + 101, + 34, + 44, + 34, + 100, + 111, + 111, + 114, + 108, + 111, + 111, + 112, + 116, + 105, + 106, + 100, + 34, + 58, + 34, + 80, + 49, + 48, + 68, + 34, + 44, + 34, + 118, + 101, + 114, + 116, + 114, + 111, + 117, + 119, + 101, + 108, + 105, + 106, + 107, + 104, + 101, + 105, + 100, + 97, + 97, + 110, + 100, + 117, + 105, + 100, + 105, + 110, + 103, + 34, + 58, + 34, + 111, + 112, + 101, + 110, + 98, + 97, + 97, + 114, + 34, + 44, + 34, + 99, + 111, + 110, + 99, + 101, + 112, + 116, + 34, + 58, + 102, + 97, + 108, + 115, + 101, + 44, + 34, + 98, + 101, + 103, + 105, + 110, + 71, + 101, + 108, + 100, + 105, + 103, + 104, + 101, + 105, + 100, + 34, + 58, + 34, + 50, + 48, + 49, + 57, + 45, + 48, + 49, + 45, + 48, + 49, + 34, + 44, + 34, + 101, + 105, + 110, + 100, + 101, + 71, + 101, + 108, + 100, + 105, + 103, + 104, + 101, + 105, + 100, + 34, + 58, + 34, + 50, + 48, + 50, + 54, + 45, + 48, + 51, + 45, + 49, + 48, + 34, + 44, + 34, + 104, + 97, + 110, + 100, + 101, + 108, + 105, + 110, + 103, + 73, + 110, + 105, + 116, + 105, + 97, + 116, + 111, + 114, + 34, + 58, + 34, + 105, + 110, + 100, + 105, + 101, + 110, + 101, + 110, + 34, + 44, + 34, + 105, + 110, + 100, + 105, + 99, + 97, + 116, + 105, + 101, + 73, + 110, + 116, + 101, + 114, + 110, + 79, + 102, + 69, + 120, + 116, + 101, + 114, + 110, + 34, + 58, + 34, + 101, + 120, + 116, + 101, + 114, + 110, + 34, + 44, + 34, + 104, + 97, + 110, + 100, + 101, + 108, + 105, + 110, + 103, + 66, + 101, + 104, + 97, + 110, + 100, + 101, + 108, + 97, + 97, + 114, + 34, + 58, + 34, + 98, + 101, + 104, + 97, + 110, + 100, + 101, + 108, + 101, + 110, + 34, + 44, + 34, + 111, + 112, + 115, + 99, + 104, + 111, + 114, + 116, + 105, + 110, + 103, + 69, + 110, + 65, + 97, + 110, + 104, + 111, + 117, + 100, + 105, + 110, + 103, + 77, + 111, + 103, + 101, + 108, + 105, + 106, + 107, + 34, + 58, + 102, + 97, + 108, + 115, + 101, + 44, + 34, + 118, + 101, + 114, + 108, + 101, + 110, + 103, + 105, + 110, + 103, + 77, + 111, + 103, + 101, + 108, + 105, + 106, + 107, + 34, + 58, + 116, + 114, + 117, + 101, + 44, + 34, + 118, + 101, + 114, + 108, + 101, + 110, + 103, + 105, + 110, + 103, + 115, + 116, + 101, + 114, + 109, + 105, + 106, + 110, + 34, + 58, + 34, + 80, + 53, + 68, + 34, + 44, + 34, + 112, + 117, + 98, + 108, + 105, + 99, + 97, + 116, + 105, + 101, + 73, + 110, + 100, + 105, + 99, + 97, + 116, + 105, + 101, + 34, + 58, + 102, + 97, + 108, + 115, + 101, + 44, + 34, + 112, + 114, + 111, + 100, + 117, + 99, + 116, + 101, + 110, + 79, + 102, + 68, + 105, + 101, + 110, + 115, + 116, + 101, + 110, + 34, + 58, + 91, + 34, + 104, + 116, + 116, + 112, + 115, + 58, + 92, + 47, + 92, + 47, + 114, + 101, + 102, + 46, + 116, + 115, + 116, + 46, + 118, + 110, + 103, + 46, + 99, + 108, + 111, + 117, + 100, + 92, + 47, + 115, + 116, + 97, + 110, + 100, + 97, + 97, + 114, + 100, + 92, + 47, + 34, + 93, + 44, + 34, + 115, + 101, + 108, + 101, + 99, + 116, + 105, + 101, + 108, + 105, + 106, + 115, + 116, + 80, + 114, + 111, + 99, + 101, + 115, + 116, + 121, + 112, + 101, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 115, + 58, + 92, + 47, + 92, + 47, + 115, + 101, + 108, + 101, + 99, + 116, + 105, + 101, + 108, + 105, + 106, + 115, + 116, + 46, + 111, + 112, + 101, + 110, + 122, + 97, + 97, + 107, + 46, + 110, + 108, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 118, + 49, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 121, + 112, + 101, + 110, + 92, + 47, + 56, + 51, + 56, + 101, + 52, + 48, + 53, + 97, + 45, + 57, + 98, + 49, + 50, + 45, + 52, + 51, + 99, + 52, + 45, + 97, + 57, + 56, + 53, + 45, + 100, + 55, + 97, + 55, + 52, + 57, + 48, + 100, + 52, + 50, + 50, + 101, + 34, + 44, + 34, + 114, + 101, + 102, + 101, + 114, + 101, + 110, + 116, + 105, + 101, + 112, + 114, + 111, + 99, + 101, + 115, + 34, + 58, + 123, + 34, + 108, + 105, + 110, + 107, + 34, + 58, + 34, + 34, + 44, + 34, + 110, + 97, + 97, + 109, + 34, + 58, + 34, + 116, + 101, + 115, + 116, + 34, + 125, + 44, + 34, + 118, + 101, + 114, + 97, + 110, + 116, + 119, + 111, + 111, + 114, + 100, + 101, + 108, + 105, + 106, + 107, + 101, + 34, + 58, + 34, + 88, + 34, + 44, + 34, + 103, + 101, + 114, + 101, + 108, + 97, + 116, + 101, + 101, + 114, + 100, + 101, + 90, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 98, + 101, + 115, + 108, + 117, + 105, + 116, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 34, + 48, + 98, + 50, + 50, + 48, + 100, + 50, + 55, + 45, + 101, + 50, + 53, + 49, + 45, + 52, + 99, + 52, + 55, + 45, + 98, + 48, + 100, + 102, + 45, + 48, + 49, + 52, + 99, + 50, + 101, + 52, + 99, + 97, + 97, + 54, + 49, + 34, + 93, + 44, + 34, + 105, + 110, + 102, + 111, + 114, + 109, + 97, + 116, + 105, + 101, + 111, + 98, + 106, + 101, + 99, + 116, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 100, + 101, + 101, + 108, + 122, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 116, + 111, + 101, + 108, + 105, + 99, + 104, + 116, + 105, + 110, + 103, + 34, + 58, + 34, + 34, + 44, + 34, + 118, + 101, + 114, + 115, + 105, + 101, + 100, + 97, + 116, + 117, + 109, + 34, + 58, + 34, + 50, + 48, + 49, + 57, + 45, + 48, + 49, + 45, + 48, + 49, + 34, + 125 + ] + }, + "cookie": [], + "responseTime": 163, + "responseSize": 1306 + }, + "id": "e7182a5c-8e38-4f30-84a7-0320c39157ed" + }, + { + "cursor": { + "ref": "f84e66c3-74c5-4d11-9ee1-ef6b5b283f7f", + "length": 313, + "cycles": 1, + "position": 183, + "iteration": 0, + "httpRequestId": "ce5d0c6e-7b13-40af-a323-dc121fb7e3eb" + }, + "item": { + "id": "3d80773c-c87e-42a3-a99d-cf230fcc50ab", + "name": "Create Zaak for informatieobjecttype validation", + "request": { + "url": { + "path": [ + "zaken" + ], + "host": [ + "{{zrc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Accept-Crs", + "value": "EPSG:4326" + }, + { + "key": "Content-Crs", + "value": "EPSG:4326" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\r\n\r\n \"bronorganisatie\": \"000000000\",\r\n \"omschrijving\": \"string\",\r\n \"toelichting\": \"string\",\r\n \"zaaktype\": \"{{temp_zaaktype_url}}\",\r\n \"registratiedatum\": \"2019-04-09\",\r\n \"verantwoordelijkeOrganisatie\": \"000000000\",\r\n \"startdatum\": \"2019-04-09\",\r\n \"einddatum\": null,\r\n \"einddatumGepland\": \"2019-04-20\",\r\n \"uiterlijkeEinddatumAfdoening\": \"2019-04-09\",\r\n \"publicatiedatum\": \"2019-04-09\",\r\n \"communicatiekanaal\": \"\",\r\n \"productenOfDiensten\": [],\r\n \"vertrouwelijkheidaanduiding\": \"geheim\",\r\n \"betalingsindicatie\": \"geheel\",\r\n \"betalingsindicatieWeergave\": null,\r\n \"laatsteBetaaldatum\": \"2019-01-01T00:00:00Z\",\r\n \"zaakgeometrie\": {\r\n \"type\": \"Point\",\r\n \"coordinates\": [\r\n 53.0,\r\n 5.0\r\n ]\r\n },\r\n \"verlenging\": null,\r\n \"opschorting\": {\r\n \"indicatie\": true,\r\n \"reden\": \"string\"\r\n },\r\n \"selectielijstklasse\": \"https://referentielijsten.roxit.nl/api/v1/resultaten/0fe71ce3-b1e1-48eb-9070-be2756fc71b5\",\r\n \"hoofdzaak\": null,\r\n \"deelzaken\": [],\r\n \"relevanteAndereZaken\": [],\r\n \"eigenschappen\": [],\r\n \"rollen\": [],\r\n \"status\": null,\r\n \"zaakinformatieobjecten\": [],\r\n \"zaakobjecten\": [],\r\n \"resultaat\": null,\r\n \"kenmerken\": [],\r\n \"archiefnominatie\": null,\r\n \"archiefstatus\": \"nog_te_archiveren\",\r\n \"archiefactiedatum\": null,\r\n \"opdrachtgevendeOrganisatie\": null,\r\n \"processobjectaard\": null,\r\n \"startdatumBewaartermijn\": null,\r\n \"processobject\": null\r\n}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "d268a89b-9d3a-43fb-803c-59776a8d3cfb", + "type": "text/javascript", + "packages": {}, + "exec": [ + "// If the test failed and the Zaak was created, delete it", + "if(pm.response.code == 201) {", + " pm.environment.set(\"created_zaak_url\", pm.response.json().url);", + "}" + ], + "_lastExecutionId": "80d7f3af-e144-499d-af1b-311a16b88496" + } + }, + { + "listen": "prerequest", + "script": { + "id": "128ab0ac-b4ea-4553-8d58-370dd6093d0b", + "type": "text/javascript", + "packages": {}, + "exec": [ + "" + ], + "_lastExecutionId": "e48296a9-6094-4396-b1b2-fd5ea9d3af6f" + } + } + ] + }, + "request": { + "url": { + "protocol": "http", + "port": "8080", + "path": [ + "index.php", + "apps", + "procest", + "api", + "zgw", + "zaken", + "v1", + "zaken" + ], + "host": [ + "localhost" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Accept-Crs", + "value": "EPSG:4326" + }, + { + "key": "Content-Crs", + "value": "EPSG:4326" + }, + { + "key": "Authorization", + "value": "Bearer eyJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJwcm9jZXN0LWFkbWluIiwiY2xpZW50X2lkIjoicHJvY2VzdC1hZG1pbiIsImlhdCI6IjE3NzMxNDUxODUiLCJ1c2VyX2lkIjoicHJvY2VzdC1hZG1pbiIsInVzZXJfcmVwcmVzZW50YXRpb24iOiIifQ.G3qSymuvPNziZ6UD1hk-mvDzRY75fGxUI597Gth5TrU", + "system": true + }, + { + "key": "User-Agent", + "value": "PostmanRuntime/7.39.1", + "system": true + }, + { + "key": "Accept", + "value": "*/*", + "system": true + }, + { + "key": "Cache-Control", + "value": "no-cache", + "system": true + }, + { + "key": "Postman-Token", + "value": "c70a7483-32e0-4e76-9ae5-4f39cbfdcfc4", + "system": true + }, + { + "key": "Host", + "value": "localhost:8080", + "system": true + }, + { + "key": "Accept-Encoding", + "value": "gzip, deflate, br", + "system": true + }, + { + "key": "Connection", + "value": "keep-alive", + "system": true + }, + { + "key": "Content-Length", + "value": "1605", + "system": true + }, + { + "key": "Cookie", + "value": "ocvp3112b4wg=1a15098680337d1ec5318499788c16e5; oc_sessionPassphrase=LBNdKxRzA0iqoULIruNxDDh2BK3O%2BrCIU8aUmiUcOFvy5Xw1YfjwQNlmBW2IkGwJYtxXh9%2BwDN6vYuGNX07tXzkBtjQJUWTGdzf8AIOUIVxVx5DfyWAQZ7nmYmQv6XSE; nc_sameSiteCookielax=true; nc_sameSiteCookiestrict=true", + "system": true + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\r\n\r\n \"bronorganisatie\": \"000000000\",\r\n \"omschrijving\": \"string\",\r\n \"toelichting\": \"string\",\r\n \"zaaktype\": \"http://localhost:8080/index.php/apps/procest/api/zgw/catalogi/v1/zaaktypen/f0ed9fb6-4a74-472a-8fb4-6303c5d9ef56\",\r\n \"registratiedatum\": \"2019-04-09\",\r\n \"verantwoordelijkeOrganisatie\": \"000000000\",\r\n \"startdatum\": \"2019-04-09\",\r\n \"einddatum\": null,\r\n \"einddatumGepland\": \"2019-04-20\",\r\n \"uiterlijkeEinddatumAfdoening\": \"2019-04-09\",\r\n \"publicatiedatum\": \"2019-04-09\",\r\n \"communicatiekanaal\": \"\",\r\n \"productenOfDiensten\": [],\r\n \"vertrouwelijkheidaanduiding\": \"geheim\",\r\n \"betalingsindicatie\": \"geheel\",\r\n \"betalingsindicatieWeergave\": null,\r\n \"laatsteBetaaldatum\": \"2019-01-01T00:00:00Z\",\r\n \"zaakgeometrie\": {\r\n \"type\": \"Point\",\r\n \"coordinates\": [\r\n 53.0,\r\n 5.0\r\n ]\r\n },\r\n \"verlenging\": null,\r\n \"opschorting\": {\r\n \"indicatie\": true,\r\n \"reden\": \"string\"\r\n },\r\n \"selectielijstklasse\": \"https://referentielijsten.roxit.nl/api/v1/resultaten/0fe71ce3-b1e1-48eb-9070-be2756fc71b5\",\r\n \"hoofdzaak\": null,\r\n \"deelzaken\": [],\r\n \"relevanteAndereZaken\": [],\r\n \"eigenschappen\": [],\r\n \"rollen\": [],\r\n \"status\": null,\r\n \"zaakinformatieobjecten\": [],\r\n \"zaakobjecten\": [],\r\n \"resultaat\": null,\r\n \"kenmerken\": [],\r\n \"archiefnominatie\": null,\r\n \"archiefstatus\": \"nog_te_archiveren\",\r\n \"archiefactiedatum\": null,\r\n \"opdrachtgevendeOrganisatie\": null,\r\n \"processobjectaard\": null,\r\n \"startdatumBewaartermijn\": null,\r\n \"processobject\": null\r\n}" + }, + "auth": { + "type": "jwt", + "jwt": [ + { + "type": "string", + "value": "{\r\n \"iss\": \"procest-admin\",\r\n \"client_id\": \"procest-admin\",\r\n \"iat\": \"1773145185\",\r\n \"user_id\": \"procest-admin\",\r\n \"user_representation\": \"\"\r\n}", + "key": "payload" + }, + { + "type": "string", + "value": "procest-admin-secret-key-for-testing", + "key": "secret" + }, + { + "type": "string", + "value": "HS256", + "key": "algorithm" + }, + { + "type": "boolean", + "value": false, + "key": "isSecretBase64Encoded" + }, + { + "type": "string", + "value": "header", + "key": "addTokenTo" + }, + { + "type": "string", + "value": "Bearer", + "key": "headerPrefix" + }, + { + "type": "string", + "value": "token", + "key": "queryParamKey" + }, + { + "type": "string", + "value": "{}", + "key": "header" + } + ] + } + }, + "response": { + "id": "49fffcaf-35ce-4465-8ffe-3afec9dc27eb", + "status": "Created", + "code": 201, + "header": [ + { + "key": "Date", + "value": "Tue, 10 Mar 2026 12:19:45 GMT" + }, + { + "key": "Server", + "value": "Apache/2.4.66 (Debian)" + }, + { + "key": "X-Content-Type-Options", + "value": "nosniff" + }, + { + "key": "X-Frame-Options", + "value": "SAMEORIGIN" + }, + { + "key": "X-Permitted-Cross-Domain-Policies", + "value": "none" + }, + { + "key": "X-Robots-Tag", + "value": "noindex, nofollow" + }, + { + "key": "Referrer-Policy", + "value": "no-referrer" + }, + { + "key": "X-Powered-By", + "value": "PHP/8.3.30" + }, + { + "key": "Content-Security-Policy", + "value": "default-src 'none';base-uri 'none';manifest-src 'self';frame-ancestors 'none'" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=1a15098680337d1ec5318499788c16e5; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=1a15098680337d1ec5318499788c16e5; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=1a15098680337d1ec5318499788c16e5; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=1a15098680337d1ec5318499788c16e5; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=1a15098680337d1ec5318499788c16e5; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=96d8368417751ecd03a58454a517fa39; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=96d8368417751ecd03a58454a517fa39; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=96d8368417751ecd03a58454a517fa39; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=96d8368417751ecd03a58454a517fa39; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=96d8368417751ecd03a58454a517fa39; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "X-Request-Id", + "value": "fUFBMEJKYL4pggHpOe4w" + }, + { + "key": "Cache-Control", + "value": "no-cache, no-store, must-revalidate" + }, + { + "key": "Feature-Policy", + "value": "autoplay 'none';camera 'none';fullscreen 'none';geolocation 'none';microphone 'none';payment 'none'" + }, + { + "key": "X-User-Id", + "value": "admin" + }, + { + "key": "Content-Length", + "value": "805" + }, + { + "key": "Keep-Alive", + "value": "timeout=5, max=96" + }, + { + "key": "Connection", + "value": "Keep-Alive" + }, + { + "key": "Content-Type", + "value": "application/json; charset=utf-8" + } + ], + "stream": { + "type": "Buffer", + "data": [ + 123, + 34, + 117, + 114, + 108, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 122, + 97, + 107, + 101, + 110, + 92, + 47, + 118, + 49, + 92, + 47, + 122, + 97, + 107, + 101, + 110, + 92, + 47, + 98, + 56, + 56, + 55, + 49, + 54, + 55, + 51, + 45, + 100, + 102, + 102, + 51, + 45, + 52, + 53, + 99, + 52, + 45, + 56, + 51, + 57, + 49, + 45, + 49, + 98, + 99, + 54, + 56, + 99, + 99, + 97, + 98, + 52, + 50, + 54, + 34, + 44, + 34, + 117, + 117, + 105, + 100, + 34, + 58, + 34, + 98, + 56, + 56, + 55, + 49, + 54, + 55, + 51, + 45, + 100, + 102, + 102, + 51, + 45, + 52, + 53, + 99, + 52, + 45, + 56, + 51, + 57, + 49, + 45, + 49, + 98, + 99, + 54, + 56, + 99, + 99, + 97, + 98, + 52, + 50, + 54, + 34, + 44, + 34, + 105, + 100, + 101, + 110, + 116, + 105, + 102, + 105, + 99, + 97, + 116, + 105, + 101, + 34, + 58, + 34, + 90, + 65, + 65, + 75, + 45, + 84, + 66, + 79, + 78, + 75, + 88, + 45, + 48, + 49, + 65, + 53, + 48, + 54, + 34, + 44, + 34, + 111, + 109, + 115, + 99, + 104, + 114, + 105, + 106, + 118, + 105, + 110, + 103, + 34, + 58, + 34, + 115, + 116, + 114, + 105, + 110, + 103, + 34, + 44, + 34, + 116, + 111, + 101, + 108, + 105, + 99, + 104, + 116, + 105, + 110, + 103, + 34, + 58, + 34, + 115, + 116, + 114, + 105, + 110, + 103, + 34, + 44, + 34, + 122, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 105, + 92, + 47, + 118, + 49, + 92, + 47, + 122, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 110, + 92, + 47, + 102, + 48, + 101, + 100, + 57, + 102, + 98, + 54, + 45, + 52, + 97, + 55, + 52, + 45, + 52, + 55, + 50, + 97, + 45, + 56, + 102, + 98, + 52, + 45, + 54, + 51, + 48, + 51, + 99, + 53, + 100, + 57, + 101, + 102, + 53, + 54, + 34, + 44, + 34, + 114, + 101, + 103, + 105, + 115, + 116, + 114, + 97, + 116, + 105, + 101, + 100, + 97, + 116, + 117, + 109, + 34, + 58, + 34, + 50, + 48, + 50, + 54, + 45, + 48, + 51, + 45, + 49, + 48, + 84, + 49, + 50, + 58, + 49, + 57, + 58, + 52, + 53, + 43, + 48, + 48, + 58, + 48, + 48, + 34, + 44, + 34, + 115, + 116, + 97, + 114, + 116, + 100, + 97, + 116, + 117, + 109, + 34, + 58, + 34, + 50, + 48, + 49, + 57, + 45, + 48, + 52, + 45, + 48, + 57, + 34, + 44, + 34, + 101, + 105, + 110, + 100, + 100, + 97, + 116, + 117, + 109, + 34, + 58, + 110, + 117, + 108, + 108, + 44, + 34, + 101, + 105, + 110, + 100, + 100, + 97, + 116, + 117, + 109, + 71, + 101, + 112, + 108, + 97, + 110, + 100, + 34, + 58, + 34, + 50, + 48, + 49, + 57, + 45, + 48, + 52, + 45, + 50, + 48, + 34, + 44, + 34, + 117, + 105, + 116, + 101, + 114, + 108, + 105, + 106, + 107, + 101, + 69, + 105, + 110, + 100, + 100, + 97, + 116, + 117, + 109, + 65, + 102, + 100, + 111, + 101, + 110, + 105, + 110, + 103, + 34, + 58, + 34, + 50, + 48, + 49, + 57, + 45, + 48, + 52, + 45, + 48, + 57, + 34, + 44, + 34, + 118, + 101, + 114, + 116, + 114, + 111, + 117, + 119, + 101, + 108, + 105, + 106, + 107, + 104, + 101, + 105, + 100, + 97, + 97, + 110, + 100, + 117, + 105, + 100, + 105, + 110, + 103, + 34, + 58, + 34, + 103, + 101, + 104, + 101, + 105, + 109, + 34, + 44, + 34, + 118, + 101, + 114, + 97, + 110, + 116, + 119, + 111, + 111, + 114, + 100, + 101, + 108, + 105, + 106, + 107, + 101, + 79, + 114, + 103, + 97, + 110, + 105, + 115, + 97, + 116, + 105, + 101, + 34, + 58, + 34, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 34, + 44, + 34, + 97, + 114, + 99, + 104, + 105, + 101, + 102, + 110, + 111, + 109, + 105, + 110, + 97, + 116, + 105, + 101, + 34, + 58, + 110, + 117, + 108, + 108, + 44, + 34, + 97, + 114, + 99, + 104, + 105, + 101, + 102, + 97, + 99, + 116, + 105, + 101, + 100, + 97, + 116, + 117, + 109, + 34, + 58, + 110, + 117, + 108, + 108, + 44, + 34, + 97, + 114, + 99, + 104, + 105, + 101, + 102, + 115, + 116, + 97, + 116, + 117, + 115, + 34, + 58, + 34, + 110, + 111, + 103, + 95, + 116, + 101, + 95, + 97, + 114, + 99, + 104, + 105, + 118, + 101, + 114, + 101, + 110, + 34, + 44, + 34, + 98, + 101, + 116, + 97, + 108, + 105, + 110, + 103, + 115, + 105, + 110, + 100, + 105, + 99, + 97, + 116, + 105, + 101, + 34, + 58, + 34, + 103, + 101, + 104, + 101, + 101, + 108, + 34, + 44, + 34, + 108, + 97, + 97, + 116, + 115, + 116, + 101, + 66, + 101, + 116, + 97, + 97, + 108, + 100, + 97, + 116, + 117, + 109, + 34, + 58, + 34, + 50, + 48, + 49, + 57, + 45, + 48, + 49, + 45, + 48, + 49, + 34, + 44, + 34, + 104, + 111, + 111, + 102, + 100, + 122, + 97, + 97, + 107, + 34, + 58, + 110, + 117, + 108, + 108, + 125 + ] + }, + "cookie": [], + "responseTime": 252, + "responseSize": 805 + }, + "id": "3d80773c-c87e-42a3-a99d-cf230fcc50ab" + }, + { + "cursor": { + "ref": "51f956fa-7636-4ed0-bad4-b54c1adbc817", + "length": 313, + "cycles": 1, + "position": 184, + "iteration": 0, + "httpRequestId": "6836ac16-97ce-4032-b411-41fe8c04f34c" + }, + "item": { + "id": "b114617f-583c-4819-8fb2-caa0e7eda2d8", + "name": "Create EnkelvoudigInformatieObject for informatieobjecttype validation", + "request": { + "url": { + "path": [ + "enkelvoudiginformatieobjecten" + ], + "host": [ + "{{drc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n\t\"bronorganisatie\": \"000000000\",\n\t\"creatiedatum\": \"2019-01-01\",\n\t\"titel\": \"testobject\",\n\t\"auteur\": \"testauteur\",\n\t\"taal\": \"eng\",\n\t\"inhoud\": \"c3RyaW5n\",\n\t\"informatieobjecttype\": \"{{temp_iot_url}}\",\n \"bestandsnaam\": \"x.pdf\",\n\t\"bestandsomvang\": 6\n}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "96f5ad01-6dc5-4a02-a507-a14df91ca349", + "type": "text/javascript", + "packages": {}, + "exec": [ + "pm.environment.set(\"created_informatieobject_url\", pm.response.json().url);" + ], + "_lastExecutionId": "c46bed1c-6746-4cc8-8441-c969748790b2" + } + }, + { + "listen": "prerequest", + "script": { + "id": "82e5a166-67ac-45a6-8be7-202cf2a74844", + "type": "text/javascript", + "packages": {}, + "exec": [ + "" + ], + "_lastExecutionId": "0e1a167a-7942-4f7f-a31a-1de504c9ef2b" + } + } + ] + }, + "request": { + "url": { + "protocol": "http", + "port": "8080", + "path": [ + "index.php", + "apps", + "procest", + "api", + "zgw", + "documenten", + "v1", + "enkelvoudiginformatieobjecten" + ], + "host": [ + "localhost" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Authorization", + "value": "Bearer eyJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJwcm9jZXN0LWFkbWluIiwiY2xpZW50X2lkIjoicHJvY2VzdC1hZG1pbiIsImlhdCI6IjE3NzMxNDUxODUiLCJ1c2VyX2lkIjoicHJvY2VzdC1hZG1pbiIsInVzZXJfcmVwcmVzZW50YXRpb24iOiIifQ.G3qSymuvPNziZ6UD1hk-mvDzRY75fGxUI597Gth5TrU", + "system": true + }, + { + "key": "User-Agent", + "value": "PostmanRuntime/7.39.1", + "system": true + }, + { + "key": "Accept", + "value": "*/*", + "system": true + }, + { + "key": "Cache-Control", + "value": "no-cache", + "system": true + }, + { + "key": "Postman-Token", + "value": "c23e8c2c-1942-4a62-8efa-37b86b6465b8", + "system": true + }, + { + "key": "Host", + "value": "localhost:8080", + "system": true + }, + { + "key": "Accept-Encoding", + "value": "gzip, deflate, br", + "system": true + }, + { + "key": "Connection", + "value": "keep-alive", + "system": true + }, + { + "key": "Content-Length", + "value": "357", + "system": true + }, + { + "key": "Cookie", + "value": "ocvp3112b4wg=96d8368417751ecd03a58454a517fa39; oc_sessionPassphrase=LBNdKxRzA0iqoULIruNxDDh2BK3O%2BrCIU8aUmiUcOFvy5Xw1YfjwQNlmBW2IkGwJYtxXh9%2BwDN6vYuGNX07tXzkBtjQJUWTGdzf8AIOUIVxVx5DfyWAQZ7nmYmQv6XSE; nc_sameSiteCookielax=true; nc_sameSiteCookiestrict=true", + "system": true + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n\t\"bronorganisatie\": \"000000000\",\n\t\"creatiedatum\": \"2019-01-01\",\n\t\"titel\": \"testobject\",\n\t\"auteur\": \"testauteur\",\n\t\"taal\": \"eng\",\n\t\"inhoud\": \"c3RyaW5n\",\n\t\"informatieobjecttype\": \"http://localhost:8080/index.php/apps/procest/api/zgw/catalogi/v1/informatieobjecttypen/d5fe5a08-76c3-4068-ab02-e0af1b1f8807\",\n \"bestandsnaam\": \"x.pdf\",\n\t\"bestandsomvang\": 6\n}" + }, + "auth": { + "type": "jwt", + "jwt": [ + { + "type": "string", + "value": "{\r\n \"iss\": \"procest-admin\",\r\n \"client_id\": \"procest-admin\",\r\n \"iat\": \"1773145185\",\r\n \"user_id\": \"procest-admin\",\r\n \"user_representation\": \"\"\r\n}", + "key": "payload" + }, + { + "type": "string", + "value": "procest-admin-secret-key-for-testing", + "key": "secret" + }, + { + "type": "string", + "value": "HS256", + "key": "algorithm" + }, + { + "type": "boolean", + "value": false, + "key": "isSecretBase64Encoded" + }, + { + "type": "string", + "value": "header", + "key": "addTokenTo" + }, + { + "type": "string", + "value": "Bearer", + "key": "headerPrefix" + }, + { + "type": "string", + "value": "token", + "key": "queryParamKey" + }, + { + "type": "string", + "value": "{}", + "key": "header" + } + ] + } + }, + "response": { + "id": "072abbc4-303a-44df-b12e-ef68322148f3", + "status": "Created", + "code": 201, + "header": [ + { + "key": "Date", + "value": "Tue, 10 Mar 2026 12:19:45 GMT" + }, + { + "key": "Server", + "value": "Apache/2.4.66 (Debian)" + }, + { + "key": "X-Content-Type-Options", + "value": "nosniff" + }, + { + "key": "X-Frame-Options", + "value": "SAMEORIGIN" + }, + { + "key": "X-Permitted-Cross-Domain-Policies", + "value": "none" + }, + { + "key": "X-Robots-Tag", + "value": "noindex, nofollow" + }, + { + "key": "Referrer-Policy", + "value": "no-referrer" + }, + { + "key": "X-Powered-By", + "value": "PHP/8.3.30" + }, + { + "key": "Content-Security-Policy", + "value": "default-src 'none';base-uri 'none';manifest-src 'self';frame-ancestors 'none'" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=96d8368417751ecd03a58454a517fa39; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=96d8368417751ecd03a58454a517fa39; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=96d8368417751ecd03a58454a517fa39; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=96d8368417751ecd03a58454a517fa39; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=96d8368417751ecd03a58454a517fa39; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=88a33663b348600fc5e435071a5b6fef; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=88a33663b348600fc5e435071a5b6fef; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=88a33663b348600fc5e435071a5b6fef; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=88a33663b348600fc5e435071a5b6fef; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=88a33663b348600fc5e435071a5b6fef; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "X-Request-Id", + "value": "ISluOVIECqZL8fDHUcsn" + }, + { + "key": "Cache-Control", + "value": "no-cache, no-store, must-revalidate" + }, + { + "key": "Feature-Policy", + "value": "autoplay 'none';camera 'none';fullscreen 'none';geolocation 'none';microphone 'none';payment 'none'" + }, + { + "key": "X-User-Id", + "value": "admin" + }, + { + "key": "Content-Length", + "value": "909" + }, + { + "key": "Keep-Alive", + "value": "timeout=5, max=95" + }, + { + "key": "Connection", + "value": "Keep-Alive" + }, + { + "key": "Content-Type", + "value": "application/json; charset=utf-8" + } + ], + "stream": { + "type": "Buffer", + "data": [ + 123, + 34, + 117, + 114, + 108, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 100, + 111, + 99, + 117, + 109, + 101, + 110, + 116, + 101, + 110, + 92, + 47, + 118, + 49, + 92, + 47, + 101, + 110, + 107, + 101, + 108, + 118, + 111, + 117, + 100, + 105, + 103, + 105, + 110, + 102, + 111, + 114, + 109, + 97, + 116, + 105, + 101, + 111, + 98, + 106, + 101, + 99, + 116, + 101, + 110, + 92, + 47, + 54, + 98, + 51, + 56, + 52, + 100, + 98, + 55, + 45, + 55, + 97, + 56, + 56, + 45, + 52, + 99, + 50, + 53, + 45, + 57, + 97, + 100, + 100, + 45, + 56, + 99, + 97, + 52, + 54, + 99, + 97, + 56, + 51, + 55, + 101, + 54, + 34, + 44, + 34, + 117, + 117, + 105, + 100, + 34, + 58, + 34, + 54, + 98, + 51, + 56, + 52, + 100, + 98, + 55, + 45, + 55, + 97, + 56, + 56, + 45, + 52, + 99, + 50, + 53, + 45, + 57, + 97, + 100, + 100, + 45, + 56, + 99, + 97, + 52, + 54, + 99, + 97, + 56, + 51, + 55, + 101, + 54, + 34, + 44, + 34, + 105, + 100, + 101, + 110, + 116, + 105, + 102, + 105, + 99, + 97, + 116, + 105, + 101, + 34, + 58, + 34, + 68, + 79, + 67, + 85, + 77, + 69, + 78, + 84, + 45, + 84, + 66, + 79, + 78, + 75, + 88, + 45, + 50, + 55, + 53, + 48, + 65, + 54, + 34, + 44, + 34, + 98, + 114, + 111, + 110, + 111, + 114, + 103, + 97, + 110, + 105, + 115, + 97, + 116, + 105, + 101, + 34, + 58, + 34, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 34, + 44, + 34, + 99, + 114, + 101, + 97, + 116, + 105, + 101, + 100, + 97, + 116, + 117, + 109, + 34, + 58, + 34, + 50, + 48, + 49, + 57, + 45, + 48, + 49, + 45, + 48, + 49, + 34, + 44, + 34, + 116, + 105, + 116, + 101, + 108, + 34, + 58, + 34, + 116, + 101, + 115, + 116, + 111, + 98, + 106, + 101, + 99, + 116, + 34, + 44, + 34, + 118, + 101, + 114, + 116, + 114, + 111, + 117, + 119, + 101, + 108, + 105, + 106, + 107, + 104, + 101, + 105, + 100, + 97, + 97, + 110, + 100, + 117, + 105, + 100, + 105, + 110, + 103, + 34, + 58, + 34, + 111, + 112, + 101, + 110, + 98, + 97, + 97, + 114, + 34, + 44, + 34, + 97, + 117, + 116, + 101, + 117, + 114, + 34, + 58, + 34, + 116, + 101, + 115, + 116, + 97, + 117, + 116, + 101, + 117, + 114, + 34, + 44, + 34, + 115, + 116, + 97, + 116, + 117, + 115, + 34, + 58, + 34, + 34, + 44, + 34, + 102, + 111, + 114, + 109, + 97, + 97, + 116, + 34, + 58, + 34, + 34, + 44, + 34, + 116, + 97, + 97, + 108, + 34, + 58, + 34, + 101, + 110, + 103, + 34, + 44, + 34, + 98, + 101, + 115, + 116, + 97, + 110, + 100, + 115, + 110, + 97, + 97, + 109, + 34, + 58, + 34, + 120, + 46, + 112, + 100, + 102, + 34, + 44, + 34, + 98, + 101, + 115, + 116, + 97, + 110, + 100, + 115, + 111, + 109, + 118, + 97, + 110, + 103, + 34, + 58, + 54, + 44, + 34, + 105, + 110, + 104, + 111, + 117, + 100, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 100, + 111, + 99, + 117, + 109, + 101, + 110, + 116, + 101, + 110, + 92, + 47, + 118, + 49, + 92, + 47, + 101, + 110, + 107, + 101, + 108, + 118, + 111, + 117, + 100, + 105, + 103, + 105, + 110, + 102, + 111, + 114, + 109, + 97, + 116, + 105, + 101, + 111, + 98, + 106, + 101, + 99, + 116, + 101, + 110, + 92, + 47, + 54, + 98, + 51, + 56, + 52, + 100, + 98, + 55, + 45, + 55, + 97, + 56, + 56, + 45, + 52, + 99, + 50, + 53, + 45, + 57, + 97, + 100, + 100, + 45, + 56, + 99, + 97, + 52, + 54, + 99, + 97, + 56, + 51, + 55, + 101, + 54, + 92, + 47, + 100, + 111, + 119, + 110, + 108, + 111, + 97, + 100, + 34, + 44, + 34, + 108, + 105, + 110, + 107, + 34, + 58, + 34, + 34, + 44, + 34, + 98, + 101, + 115, + 99, + 104, + 114, + 105, + 106, + 118, + 105, + 110, + 103, + 34, + 58, + 34, + 34, + 44, + 34, + 105, + 110, + 102, + 111, + 114, + 109, + 97, + 116, + 105, + 101, + 111, + 98, + 106, + 101, + 99, + 116, + 116, + 121, + 112, + 101, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 105, + 92, + 47, + 118, + 49, + 92, + 47, + 105, + 110, + 102, + 111, + 114, + 109, + 97, + 116, + 105, + 101, + 111, + 98, + 106, + 101, + 99, + 116, + 116, + 121, + 112, + 101, + 110, + 92, + 47, + 100, + 53, + 102, + 101, + 53, + 97, + 48, + 56, + 45, + 55, + 54, + 99, + 51, + 45, + 52, + 48, + 54, + 56, + 45, + 97, + 98, + 48, + 50, + 45, + 101, + 48, + 97, + 102, + 49, + 98, + 49, + 102, + 56, + 56, + 48, + 55, + 34, + 44, + 34, + 108, + 111, + 99, + 107, + 101, + 100, + 34, + 58, + 102, + 97, + 108, + 115, + 101, + 44, + 34, + 114, + 101, + 103, + 105, + 115, + 116, + 114, + 97, + 116, + 105, + 101, + 100, + 97, + 116, + 117, + 109, + 34, + 58, + 34, + 50, + 48, + 50, + 54, + 45, + 48, + 51, + 45, + 49, + 48, + 84, + 49, + 50, + 58, + 49, + 57, + 58, + 52, + 53, + 43, + 48, + 48, + 58, + 48, + 48, + 34, + 44, + 34, + 105, + 110, + 100, + 105, + 99, + 97, + 116, + 105, + 101, + 71, + 101, + 98, + 114, + 117, + 105, + 107, + 115, + 114, + 101, + 99, + 104, + 116, + 34, + 58, + 110, + 117, + 108, + 108, + 125 + ] + }, + "cookie": [], + "responseTime": 421, + "responseSize": 909 + }, + "id": "b114617f-583c-4819-8fb2-caa0e7eda2d8" + }, + { + "cursor": { + "ref": "02d0e918-61e1-46b1-90fe-e684f392c8ac", + "length": 313, + "cycles": 1, + "position": 185, + "iteration": 0, + "httpRequestId": "26a232ef-deff-401c-93e6-1a9d0b2ff387" + }, + "item": { + "id": "f8ad51e2-2b37-4b0e-b07d-f9aa3df7227f", + "name": "(zrc-017a) ZaakInformatieObject aanmaken met informatieobjecttype niet in Zaaktype.informatieobjecttypen is onmogelijk", + "request": { + "url": { + "path": [ + "zaakinformatieobjecten" + ], + "host": [ + "{{zrc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n\t\"zaak\": \"{{created_zaak_url}}\",\n\t\"informatieobject\": \"{{created_informatieobject_url}}\",\n\t\"titel\": \"bla\"\n}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "b193a57f-9cf5-405c-9474-670dc3a31c6d", + "type": "text/javascript", + "exec": [ + "pm.test(\"ZaakInformatieObject toevoegen aan Zaak met ZaakInformatieObject.informatieobject.informatieobjecttypen niet in Zaak.zaaktype.informatieobjecttypen geeft 400\", function() {", + " pm.response.to.have.status(400);", + " ", + " var error = pm.response.json()[\"invalidParams\"][0];", + " pm.expect(error.name).to.be.equal(\"nonFieldErrors\");", + " pm.expect(error.code).to.be.equal(\"missing-zaaktype-informatieobjecttype-relation\");", + "});" + ], + "_lastExecutionId": "bdcdb43e-75bf-4d19-95df-73ff8b099779" + } + } + ] + }, + "request": { + "url": { + "protocol": "http", + "port": "8080", + "path": [ + "index.php", + "apps", + "procest", + "api", + "zgw", + "zaken", + "v1", + "zaakinformatieobjecten" + ], + "host": [ + "localhost" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Authorization", + "value": "Bearer eyJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJwcm9jZXN0LWFkbWluIiwiY2xpZW50X2lkIjoicHJvY2VzdC1hZG1pbiIsImlhdCI6IjE3NzMxNDUxODYiLCJ1c2VyX2lkIjoicHJvY2VzdC1hZG1pbiIsInVzZXJfcmVwcmVzZW50YXRpb24iOiIifQ.MaS-Zz6yk6GBQw0GuqoxMY6Q9GRnO5-JENKKeNH9-jk", + "system": true + }, + { + "key": "User-Agent", + "value": "PostmanRuntime/7.39.1", + "system": true + }, + { + "key": "Accept", + "value": "*/*", + "system": true + }, + { + "key": "Cache-Control", + "value": "no-cache", + "system": true + }, + { + "key": "Postman-Token", + "value": "fa1cf251-4dc2-4314-8f27-9281e09bd777", + "system": true + }, + { + "key": "Host", + "value": "localhost:8080", + "system": true + }, + { + "key": "Accept-Encoding", + "value": "gzip, deflate, br", + "system": true + }, + { + "key": "Connection", + "value": "keep-alive", + "system": true + }, + { + "key": "Content-Length", + "value": "294", + "system": true + }, + { + "key": "Cookie", + "value": "ocvp3112b4wg=88a33663b348600fc5e435071a5b6fef; oc_sessionPassphrase=LBNdKxRzA0iqoULIruNxDDh2BK3O%2BrCIU8aUmiUcOFvy5Xw1YfjwQNlmBW2IkGwJYtxXh9%2BwDN6vYuGNX07tXzkBtjQJUWTGdzf8AIOUIVxVx5DfyWAQZ7nmYmQv6XSE; nc_sameSiteCookielax=true; nc_sameSiteCookiestrict=true", + "system": true + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n\t\"zaak\": \"http://localhost:8080/index.php/apps/procest/api/zgw/zaken/v1/zaken/b8871673-dff3-45c4-8391-1bc68ccab426\",\n\t\"informatieobject\": \"http://localhost:8080/index.php/apps/procest/api/zgw/documenten/v1/enkelvoudiginformatieobjecten/6b384db7-7a88-4c25-9add-8ca46ca837e6\",\n\t\"titel\": \"bla\"\n}" + }, + "auth": { + "type": "jwt", + "jwt": [ + { + "type": "string", + "value": "{\r\n \"iss\": \"procest-admin\",\r\n \"client_id\": \"procest-admin\",\r\n \"iat\": \"1773145186\",\r\n \"user_id\": \"procest-admin\",\r\n \"user_representation\": \"\"\r\n}", + "key": "payload" + }, + { + "type": "string", + "value": "procest-admin-secret-key-for-testing", + "key": "secret" + }, + { + "type": "string", + "value": "HS256", + "key": "algorithm" + }, + { + "type": "boolean", + "value": false, + "key": "isSecretBase64Encoded" + }, + { + "type": "string", + "value": "header", + "key": "addTokenTo" + }, + { + "type": "string", + "value": "Bearer", + "key": "headerPrefix" + }, + { + "type": "string", + "value": "token", + "key": "queryParamKey" + }, + { + "type": "string", + "value": "{}", + "key": "header" + } + ] + } + }, + "response": { + "id": "7b5de8ba-67a5-40dc-ab86-0b04dbf2044d", + "status": "Bad request", + "code": 400, + "header": [ + { + "key": "Date", + "value": "Tue, 10 Mar 2026 12:19:45 GMT" + }, + { + "key": "Server", + "value": "Apache/2.4.66 (Debian)" + }, + { + "key": "X-Content-Type-Options", + "value": "nosniff" + }, + { + "key": "X-Frame-Options", + "value": "SAMEORIGIN" + }, + { + "key": "X-Permitted-Cross-Domain-Policies", + "value": "none" + }, + { + "key": "X-Robots-Tag", + "value": "noindex, nofollow" + }, + { + "key": "Referrer-Policy", + "value": "no-referrer" + }, + { + "key": "X-Powered-By", + "value": "PHP/8.3.30" + }, + { + "key": "Content-Security-Policy", + "value": "default-src 'none';base-uri 'none';manifest-src 'self';frame-ancestors 'none'" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=88a33663b348600fc5e435071a5b6fef; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=88a33663b348600fc5e435071a5b6fef; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=88a33663b348600fc5e435071a5b6fef; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=88a33663b348600fc5e435071a5b6fef; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=88a33663b348600fc5e435071a5b6fef; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=a2b23c6b0c286a528041ba68e2791aaf; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=a2b23c6b0c286a528041ba68e2791aaf; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=a2b23c6b0c286a528041ba68e2791aaf; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=a2b23c6b0c286a528041ba68e2791aaf; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=a2b23c6b0c286a528041ba68e2791aaf; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "X-Request-Id", + "value": "NfCKwLtAMIo1qmKa91de" + }, + { + "key": "Cache-Control", + "value": "no-cache, no-store, must-revalidate" + }, + { + "key": "Feature-Policy", + "value": "autoplay 'none';camera 'none';fullscreen 'none';geolocation 'none';microphone 'none';payment 'none'" + }, + { + "key": "X-User-Id", + "value": "admin" + }, + { + "key": "Content-Length", + "value": "305" + }, + { + "key": "Connection", + "value": "close" + }, + { + "key": "Content-Type", + "value": "application/json; charset=utf-8" + } + ], + "stream": { + "type": "Buffer", + "data": [ + 123, + 34, + 100, + 101, + 116, + 97, + 105, + 108, + 34, + 58, + 34, + 72, + 101, + 116, + 32, + 105, + 110, + 102, + 111, + 114, + 109, + 97, + 116, + 105, + 101, + 111, + 98, + 106, + 101, + 99, + 116, + 116, + 121, + 112, + 101, + 32, + 118, + 97, + 110, + 32, + 104, + 101, + 116, + 32, + 105, + 110, + 102, + 111, + 114, + 109, + 97, + 116, + 105, + 101, + 111, + 98, + 106, + 101, + 99, + 116, + 32, + 104, + 111, + 111, + 114, + 116, + 32, + 110, + 105, + 101, + 116, + 32, + 98, + 105, + 106, + 32, + 104, + 101, + 116, + 32, + 122, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 32, + 118, + 97, + 110, + 32, + 100, + 101, + 32, + 122, + 97, + 97, + 107, + 46, + 34, + 44, + 34, + 105, + 110, + 118, + 97, + 108, + 105, + 100, + 80, + 97, + 114, + 97, + 109, + 115, + 34, + 58, + 91, + 123, + 34, + 110, + 97, + 109, + 101, + 34, + 58, + 34, + 110, + 111, + 110, + 70, + 105, + 101, + 108, + 100, + 69, + 114, + 114, + 111, + 114, + 115, + 34, + 44, + 34, + 99, + 111, + 100, + 101, + 34, + 58, + 34, + 109, + 105, + 115, + 115, + 105, + 110, + 103, + 45, + 122, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 45, + 105, + 110, + 102, + 111, + 114, + 109, + 97, + 116, + 105, + 101, + 111, + 98, + 106, + 101, + 99, + 116, + 116, + 121, + 112, + 101, + 45, + 114, + 101, + 108, + 97, + 116, + 105, + 111, + 110, + 34, + 44, + 34, + 114, + 101, + 97, + 115, + 111, + 110, + 34, + 58, + 34, + 72, + 101, + 116, + 32, + 105, + 110, + 102, + 111, + 114, + 109, + 97, + 116, + 105, + 101, + 111, + 98, + 106, + 101, + 99, + 116, + 116, + 121, + 112, + 101, + 32, + 118, + 97, + 110, + 32, + 104, + 101, + 116, + 32, + 105, + 110, + 102, + 111, + 114, + 109, + 97, + 116, + 105, + 101, + 111, + 98, + 106, + 101, + 99, + 116, + 32, + 104, + 111, + 111, + 114, + 116, + 32, + 110, + 105, + 101, + 116, + 32, + 98, + 105, + 106, + 32, + 104, + 101, + 116, + 32, + 122, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 32, + 118, + 97, + 110, + 32, + 100, + 101, + 32, + 122, + 97, + 97, + 107, + 46, + 34, + 125, + 93, + 125 + ] + }, + "cookie": [], + "responseTime": 150, + "responseSize": 305 + }, + "id": "f8ad51e2-2b37-4b0e-b07d-f9aa3df7227f", + "assertions": [ + { + "assertion": "ZaakInformatieObject toevoegen aan Zaak met ZaakInformatieObject.informatieobject.informatieobjecttypen niet in Zaak.zaaktype.informatieobjecttypen geeft 400", + "skipped": false + } + ] + }, + { + "cursor": { + "ref": "7991d362-3c3d-488f-9cf7-87877e0dcc67", + "length": 313, + "cycles": 1, + "position": 186, + "iteration": 0, + "httpRequestId": "e76405ea-9f58-4d0b-a51e-0e65c6b2c5f2" + }, + "item": { + "id": "3a23e2b3-30c7-4c35-99a6-ded05d836abb", + "name": "Create Zaaktype for eigenschap validation", + "request": { + "url": { + "path": [ + "zaaktypen" + ], + "host": [ + "{{ztc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{{request_body}}" + } + }, + "response": [], + "event": [ + { + "listen": "prerequest", + "script": { + "id": "45ecef49-7909-4be8-bf47-8b3ee0662208", + "type": "text/javascript", + "exec": [ + "// Retrieve the Zaak body template and modify as needed", + "var body = JSON.parse(pm.environment.get(\"zaaktype_body\"));", + "body.omschrijving = \"TEMP\"", + "body.besluittypen = [];", + "", + "var uuid = require('uuid');", + "var myUUID = uuid.v4(); ", + "body.identificatie = myUUID", + "// Store the modified Zaak body, allowing it to be used in the main request", + "pm.environment.set(\"request_body\", JSON.stringify(body));" + ], + "_lastExecutionId": "25795abc-52f7-4a4a-a58b-91ea01542ec6" + } + }, + { + "listen": "test", + "script": { + "id": "753d317a-6f37-46e1-9921-489af51c60b5", + "type": "text/javascript", + "exec": [ + "pm.environment.set(\"temp_zaaktype_url\", pm.response.json().url);" + ], + "_lastExecutionId": "a6847c19-b69f-4d4e-b969-1056904c9909" + } + } + ] + }, + "request": { + "url": { + "protocol": "http", + "port": "8080", + "path": [ + "index.php", + "apps", + "procest", + "api", + "zgw", + "catalogi", + "v1", + "zaaktypen" + ], + "host": [ + "localhost" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Authorization", + "value": "Bearer eyJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJwcm9jZXN0LWFkbWluIiwiY2xpZW50X2lkIjoicHJvY2VzdC1hZG1pbiIsImlhdCI6IjE3NzMxNDUxODYiLCJ1c2VyX2lkIjoicHJvY2VzdC1hZG1pbiIsInVzZXJfcmVwcmVzZW50YXRpb24iOiIifQ.MaS-Zz6yk6GBQw0GuqoxMY6Q9GRnO5-JENKKeNH9-jk", + "system": true + }, + { + "key": "User-Agent", + "value": "PostmanRuntime/7.39.1", + "system": true + }, + { + "key": "Accept", + "value": "*/*", + "system": true + }, + { + "key": "Cache-Control", + "value": "no-cache", + "system": true + }, + { + "key": "Postman-Token", + "value": "12102dd2-46c5-4e93-a083-d395a242c9f7", + "system": true + }, + { + "key": "Host", + "value": "localhost:8080", + "system": true + }, + { + "key": "Accept-Encoding", + "value": "gzip, deflate, br", + "system": true + }, + { + "key": "Connection", + "value": "keep-alive", + "system": true + }, + { + "key": "Content-Length", + "value": "1082", + "system": true + }, + { + "key": "Cookie", + "value": "ocvp3112b4wg=a2b23c6b0c286a528041ba68e2791aaf; oc_sessionPassphrase=LBNdKxRzA0iqoULIruNxDDh2BK3O%2BrCIU8aUmiUcOFvy5Xw1YfjwQNlmBW2IkGwJYtxXh9%2BwDN6vYuGNX07tXzkBtjQJUWTGdzf8AIOUIVxVx5DfyWAQZ7nmYmQv6XSE; nc_sameSiteCookielax=true; nc_sameSiteCookiestrict=true", + "system": true + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\"identificatie\":\"5d006f6e-3b7d-4d03-80b1-5cf5171fd11f\",\"omschrijving\":\"TEMP\",\"vertrouwelijkheidaanduiding\":\"openbaar\",\"doel\":\"test doel\",\"verantwoordelijke\":\"X\",\"aanleiding\":\"test aanleiding\",\"indicatieInternOfExtern\":\"extern\",\"handelingInitiator\":\"indienen\",\"onderwerp\":\"openbare ruimte\",\"handelingBehandelaar\":\"behandelen\",\"doorlooptijd\":\"P10D\",\"opschortingEnAanhoudingMogelijk\":false,\"verlengingMogelijk\":true,\"publicatieIndicatie\":false,\"productenOfDiensten\":[\"https://ref.tst.vng.cloud/standaard/\"],\"selectielijstProcestype\":\"https://selectielijst.openzaak.nl/api/v1/procestypen/838e405a-9b12-43c4-a985-d7a7490d422e\",\"referentieproces\":{\"naam\":\"test\",\"link\":\"\"},\"deelzaaktypen\":[\"cae6f26a-1321-4bff-b314-421ddf7775b9\"],\"catalogus\":\"http://localhost:8080/index.php/apps/procest/api/zgw/catalogi/v1/catalogussen/5057408f-fd76-469e-8646-bcc4ba2efa8d\",\"statustypen\":[],\"resultaattypen\":[],\"eigenschappen\":[],\"informatieobjecttypen\":[],\"besluittypen\":[],\"gerelateerdeZaaktypen\":[],\"beginGeldigheid\":\"2019-01-01\",\"versiedatum\":\"2019-01-01\",\"concept\":true,\"verlengingstermijn\":\"P5D\"}" + }, + "auth": { + "type": "jwt", + "jwt": [ + { + "type": "string", + "value": "{\r\n \"iss\": \"procest-admin\",\r\n \"client_id\": \"procest-admin\",\r\n \"iat\": \"1773145186\",\r\n \"user_id\": \"procest-admin\",\r\n \"user_representation\": \"\"\r\n}", + "key": "payload" + }, + { + "type": "string", + "value": "procest-admin-secret-key-for-testing", + "key": "secret" + }, + { + "type": "string", + "value": "HS256", + "key": "algorithm" + }, + { + "type": "boolean", + "value": false, + "key": "isSecretBase64Encoded" + }, + { + "type": "string", + "value": "header", + "key": "addTokenTo" + }, + { + "type": "string", + "value": "Bearer", + "key": "headerPrefix" + }, + { + "type": "string", + "value": "token", + "key": "queryParamKey" + }, + { + "type": "string", + "value": "{}", + "key": "header" + } + ] + } + }, + "response": { + "id": "cd74eb9e-7b99-4f68-b42a-297d7bff73ab", + "status": "Created", + "code": 201, + "header": [ + { + "key": "Date", + "value": "Tue, 10 Mar 2026 12:19:46 GMT" + }, + { + "key": "Server", + "value": "Apache/2.4.66 (Debian)" + }, + { + "key": "X-Content-Type-Options", + "value": "nosniff" + }, + { + "key": "X-Frame-Options", + "value": "SAMEORIGIN" + }, + { + "key": "X-Permitted-Cross-Domain-Policies", + "value": "none" + }, + { + "key": "X-Robots-Tag", + "value": "noindex, nofollow" + }, + { + "key": "Referrer-Policy", + "value": "no-referrer" + }, + { + "key": "X-Powered-By", + "value": "PHP/8.3.30" + }, + { + "key": "Content-Security-Policy", + "value": "default-src 'none';base-uri 'none';manifest-src 'self';frame-ancestors 'none'" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=a2b23c6b0c286a528041ba68e2791aaf; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=a2b23c6b0c286a528041ba68e2791aaf; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=a2b23c6b0c286a528041ba68e2791aaf; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=a2b23c6b0c286a528041ba68e2791aaf; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=a2b23c6b0c286a528041ba68e2791aaf; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=edf2d3e0eddf563295bdd49c475c0bea; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=edf2d3e0eddf563295bdd49c475c0bea; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=edf2d3e0eddf563295bdd49c475c0bea; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=edf2d3e0eddf563295bdd49c475c0bea; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=edf2d3e0eddf563295bdd49c475c0bea; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "X-Request-Id", + "value": "8fKIcac9KDhGgeAmtZG3" + }, + { + "key": "Cache-Control", + "value": "no-cache, no-store, must-revalidate" + }, + { + "key": "Feature-Policy", + "value": "autoplay 'none';camera 'none';fullscreen 'none';geolocation 'none';microphone 'none';payment 'none'" + }, + { + "key": "X-User-Id", + "value": "admin" + }, + { + "key": "Content-Length", + "value": "1330" + }, + { + "key": "Keep-Alive", + "value": "timeout=5, max=100" + }, + { + "key": "Connection", + "value": "Keep-Alive" + }, + { + "key": "Content-Type", + "value": "application/json; charset=utf-8" + } + ], + "stream": { + "type": "Buffer", + "data": [ + 123, + 34, + 117, + 114, + 108, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 105, + 92, + 47, + 118, + 49, + 92, + 47, + 122, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 110, + 92, + 47, + 98, + 55, + 48, + 51, + 97, + 50, + 54, + 99, + 45, + 53, + 48, + 100, + 55, + 45, + 52, + 56, + 49, + 49, + 45, + 97, + 54, + 50, + 56, + 45, + 54, + 50, + 100, + 102, + 98, + 51, + 98, + 51, + 57, + 50, + 52, + 48, + 34, + 44, + 34, + 117, + 117, + 105, + 100, + 34, + 58, + 34, + 98, + 55, + 48, + 51, + 97, + 50, + 54, + 99, + 45, + 53, + 48, + 100, + 55, + 45, + 52, + 56, + 49, + 49, + 45, + 97, + 54, + 50, + 56, + 45, + 54, + 50, + 100, + 102, + 98, + 51, + 98, + 51, + 57, + 50, + 52, + 48, + 34, + 44, + 34, + 105, + 100, + 101, + 110, + 116, + 105, + 102, + 105, + 99, + 97, + 116, + 105, + 101, + 34, + 58, + 34, + 53, + 100, + 48, + 48, + 54, + 102, + 54, + 101, + 45, + 51, + 98, + 55, + 100, + 45, + 52, + 100, + 48, + 51, + 45, + 56, + 48, + 98, + 49, + 45, + 53, + 99, + 102, + 53, + 49, + 55, + 49, + 102, + 100, + 49, + 49, + 102, + 34, + 44, + 34, + 111, + 109, + 115, + 99, + 104, + 114, + 105, + 106, + 118, + 105, + 110, + 103, + 34, + 58, + 34, + 84, + 69, + 77, + 80, + 34, + 44, + 34, + 111, + 109, + 115, + 99, + 104, + 114, + 105, + 106, + 118, + 105, + 110, + 103, + 71, + 101, + 110, + 101, + 114, + 105, + 101, + 107, + 34, + 58, + 34, + 34, + 44, + 34, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 117, + 115, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 105, + 92, + 47, + 118, + 49, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 117, + 115, + 115, + 101, + 110, + 92, + 47, + 53, + 48, + 53, + 55, + 52, + 48, + 56, + 102, + 45, + 102, + 100, + 55, + 54, + 45, + 52, + 54, + 57, + 101, + 45, + 56, + 54, + 52, + 54, + 45, + 98, + 99, + 99, + 52, + 98, + 97, + 50, + 101, + 102, + 97, + 56, + 100, + 34, + 44, + 34, + 100, + 111, + 101, + 108, + 34, + 58, + 34, + 116, + 101, + 115, + 116, + 32, + 100, + 111, + 101, + 108, + 34, + 44, + 34, + 97, + 97, + 110, + 108, + 101, + 105, + 100, + 105, + 110, + 103, + 34, + 58, + 34, + 116, + 101, + 115, + 116, + 32, + 97, + 97, + 110, + 108, + 101, + 105, + 100, + 105, + 110, + 103, + 34, + 44, + 34, + 111, + 110, + 100, + 101, + 114, + 119, + 101, + 114, + 112, + 34, + 58, + 34, + 111, + 112, + 101, + 110, + 98, + 97, + 114, + 101, + 32, + 114, + 117, + 105, + 109, + 116, + 101, + 34, + 44, + 34, + 100, + 111, + 111, + 114, + 108, + 111, + 111, + 112, + 116, + 105, + 106, + 100, + 34, + 58, + 34, + 80, + 49, + 48, + 68, + 34, + 44, + 34, + 118, + 101, + 114, + 116, + 114, + 111, + 117, + 119, + 101, + 108, + 105, + 106, + 107, + 104, + 101, + 105, + 100, + 97, + 97, + 110, + 100, + 117, + 105, + 100, + 105, + 110, + 103, + 34, + 58, + 34, + 111, + 112, + 101, + 110, + 98, + 97, + 97, + 114, + 34, + 44, + 34, + 99, + 111, + 110, + 99, + 101, + 112, + 116, + 34, + 58, + 116, + 114, + 117, + 101, + 44, + 34, + 98, + 101, + 103, + 105, + 110, + 71, + 101, + 108, + 100, + 105, + 103, + 104, + 101, + 105, + 100, + 34, + 58, + 34, + 50, + 48, + 49, + 57, + 45, + 48, + 49, + 45, + 48, + 49, + 34, + 44, + 34, + 101, + 105, + 110, + 100, + 101, + 71, + 101, + 108, + 100, + 105, + 103, + 104, + 101, + 105, + 100, + 34, + 58, + 34, + 50, + 48, + 50, + 54, + 45, + 48, + 51, + 45, + 49, + 48, + 34, + 44, + 34, + 104, + 97, + 110, + 100, + 101, + 108, + 105, + 110, + 103, + 73, + 110, + 105, + 116, + 105, + 97, + 116, + 111, + 114, + 34, + 58, + 34, + 105, + 110, + 100, + 105, + 101, + 110, + 101, + 110, + 34, + 44, + 34, + 105, + 110, + 100, + 105, + 99, + 97, + 116, + 105, + 101, + 73, + 110, + 116, + 101, + 114, + 110, + 79, + 102, + 69, + 120, + 116, + 101, + 114, + 110, + 34, + 58, + 34, + 101, + 120, + 116, + 101, + 114, + 110, + 34, + 44, + 34, + 104, + 97, + 110, + 100, + 101, + 108, + 105, + 110, + 103, + 66, + 101, + 104, + 97, + 110, + 100, + 101, + 108, + 97, + 97, + 114, + 34, + 58, + 34, + 98, + 101, + 104, + 97, + 110, + 100, + 101, + 108, + 101, + 110, + 34, + 44, + 34, + 111, + 112, + 115, + 99, + 104, + 111, + 114, + 116, + 105, + 110, + 103, + 69, + 110, + 65, + 97, + 110, + 104, + 111, + 117, + 100, + 105, + 110, + 103, + 77, + 111, + 103, + 101, + 108, + 105, + 106, + 107, + 34, + 58, + 102, + 97, + 108, + 115, + 101, + 44, + 34, + 118, + 101, + 114, + 108, + 101, + 110, + 103, + 105, + 110, + 103, + 77, + 111, + 103, + 101, + 108, + 105, + 106, + 107, + 34, + 58, + 116, + 114, + 117, + 101, + 44, + 34, + 118, + 101, + 114, + 108, + 101, + 110, + 103, + 105, + 110, + 103, + 115, + 116, + 101, + 114, + 109, + 105, + 106, + 110, + 34, + 58, + 34, + 80, + 53, + 68, + 34, + 44, + 34, + 112, + 117, + 98, + 108, + 105, + 99, + 97, + 116, + 105, + 101, + 73, + 110, + 100, + 105, + 99, + 97, + 116, + 105, + 101, + 34, + 58, + 102, + 97, + 108, + 115, + 101, + 44, + 34, + 112, + 114, + 111, + 100, + 117, + 99, + 116, + 101, + 110, + 79, + 102, + 68, + 105, + 101, + 110, + 115, + 116, + 101, + 110, + 34, + 58, + 91, + 34, + 104, + 116, + 116, + 112, + 115, + 58, + 92, + 47, + 92, + 47, + 114, + 101, + 102, + 46, + 116, + 115, + 116, + 46, + 118, + 110, + 103, + 46, + 99, + 108, + 111, + 117, + 100, + 92, + 47, + 115, + 116, + 97, + 110, + 100, + 97, + 97, + 114, + 100, + 92, + 47, + 34, + 93, + 44, + 34, + 115, + 101, + 108, + 101, + 99, + 116, + 105, + 101, + 108, + 105, + 106, + 115, + 116, + 80, + 114, + 111, + 99, + 101, + 115, + 116, + 121, + 112, + 101, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 115, + 58, + 92, + 47, + 92, + 47, + 115, + 101, + 108, + 101, + 99, + 116, + 105, + 101, + 108, + 105, + 106, + 115, + 116, + 46, + 111, + 112, + 101, + 110, + 122, + 97, + 97, + 107, + 46, + 110, + 108, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 118, + 49, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 121, + 112, + 101, + 110, + 92, + 47, + 56, + 51, + 56, + 101, + 52, + 48, + 53, + 97, + 45, + 57, + 98, + 49, + 50, + 45, + 52, + 51, + 99, + 52, + 45, + 97, + 57, + 56, + 53, + 45, + 100, + 55, + 97, + 55, + 52, + 57, + 48, + 100, + 52, + 50, + 50, + 101, + 34, + 44, + 34, + 114, + 101, + 102, + 101, + 114, + 101, + 110, + 116, + 105, + 101, + 112, + 114, + 111, + 99, + 101, + 115, + 34, + 58, + 123, + 34, + 108, + 105, + 110, + 107, + 34, + 58, + 34, + 34, + 44, + 34, + 110, + 97, + 97, + 109, + 34, + 58, + 34, + 116, + 101, + 115, + 116, + 34, + 125, + 44, + 34, + 118, + 101, + 114, + 97, + 110, + 116, + 119, + 111, + 111, + 114, + 100, + 101, + 108, + 105, + 106, + 107, + 101, + 34, + 58, + 34, + 88, + 34, + 44, + 34, + 103, + 101, + 114, + 101, + 108, + 97, + 116, + 101, + 101, + 114, + 100, + 101, + 90, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 98, + 101, + 115, + 108, + 117, + 105, + 116, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 105, + 110, + 102, + 111, + 114, + 109, + 97, + 116, + 105, + 101, + 111, + 98, + 106, + 101, + 99, + 116, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 100, + 101, + 101, + 108, + 122, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 116, + 111, + 101, + 108, + 105, + 99, + 104, + 116, + 105, + 110, + 103, + 34, + 58, + 34, + 34, + 44, + 34, + 118, + 101, + 114, + 115, + 105, + 101, + 100, + 97, + 116, + 117, + 109, + 34, + 58, + 34, + 50, + 48, + 49, + 57, + 45, + 48, + 49, + 45, + 48, + 49, + 34, + 44, + 34, + 101, + 105, + 103, + 101, + 110, + 115, + 99, + 104, + 97, + 112, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 115, + 116, + 97, + 116, + 117, + 115, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 114, + 101, + 115, + 117, + 108, + 116, + 97, + 97, + 116, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 114, + 111, + 108, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 125 + ] + }, + "cookie": [], + "responseTime": 390, + "responseSize": 1330 + }, + "id": "3a23e2b3-30c7-4c35-99a6-ded05d836abb" + }, + { + "cursor": { + "ref": "21c2feb0-83d4-4903-8351-5107c71ea31b", + "length": 313, + "cycles": 1, + "position": 187, + "iteration": 0, + "httpRequestId": "f69eea42-f133-4ecc-883a-176167331196" + }, + "item": { + "id": "02072489-9c3d-4b72-9dc7-d82ba4c1a8aa", + "name": "Create Eigenschap", + "request": { + "url": { + "path": [ + "eigenschappen" + ], + "host": [ + "{{ztc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n\t\"naam\": \"TEMP\",\n\t\"definitie\": \"for test\",\n\t\"zaaktype\": \"{{temp_zaaktype_url}}\",\n \"specificatie\": {\n \"formaat\": \"tekst\",\n \"lengte\": \"5\",\n \"kardinaliteit\": \"1\",\n \"waardenverzameling\": [\"test\"]\n }\n}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "ce9c058d-e515-4d9b-b058-2c45199d021a", + "type": "text/javascript", + "exec": [ + "pm.environment.set(\"temp_eigenschap\", pm.response.json().url);" + ], + "_lastExecutionId": "1c638fbd-2e40-407f-b6e6-7bd5e7103eeb" + } + } + ] + }, + "request": { + "url": { + "protocol": "http", + "port": "8080", + "path": [ + "index.php", + "apps", + "procest", + "api", + "zgw", + "catalogi", + "v1", + "eigenschappen" + ], + "host": [ + "localhost" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Authorization", + "value": "Bearer eyJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJwcm9jZXN0LWFkbWluIiwiY2xpZW50X2lkIjoicHJvY2VzdC1hZG1pbiIsImlhdCI6IjE3NzMxNDUxODYiLCJ1c2VyX2lkIjoicHJvY2VzdC1hZG1pbiIsInVzZXJfcmVwcmVzZW50YXRpb24iOiIifQ.MaS-Zz6yk6GBQw0GuqoxMY6Q9GRnO5-JENKKeNH9-jk", + "system": true + }, + { + "key": "User-Agent", + "value": "PostmanRuntime/7.39.1", + "system": true + }, + { + "key": "Accept", + "value": "*/*", + "system": true + }, + { + "key": "Cache-Control", + "value": "no-cache", + "system": true + }, + { + "key": "Postman-Token", + "value": "7fe8c1a0-3b8f-4455-9a39-8dc8b62e4e64", + "system": true + }, + { + "key": "Host", + "value": "localhost:8080", + "system": true + }, + { + "key": "Accept-Encoding", + "value": "gzip, deflate, br", + "system": true + }, + { + "key": "Connection", + "value": "keep-alive", + "system": true + }, + { + "key": "Content-Length", + "value": "322", + "system": true + }, + { + "key": "Cookie", + "value": "ocvp3112b4wg=edf2d3e0eddf563295bdd49c475c0bea; oc_sessionPassphrase=LBNdKxRzA0iqoULIruNxDDh2BK3O%2BrCIU8aUmiUcOFvy5Xw1YfjwQNlmBW2IkGwJYtxXh9%2BwDN6vYuGNX07tXzkBtjQJUWTGdzf8AIOUIVxVx5DfyWAQZ7nmYmQv6XSE; nc_sameSiteCookielax=true; nc_sameSiteCookiestrict=true", + "system": true + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n\t\"naam\": \"TEMP\",\n\t\"definitie\": \"for test\",\n\t\"zaaktype\": \"http://localhost:8080/index.php/apps/procest/api/zgw/catalogi/v1/zaaktypen/b703a26c-50d7-4811-a628-62dfb3b39240\",\n \"specificatie\": {\n \"formaat\": \"tekst\",\n \"lengte\": \"5\",\n \"kardinaliteit\": \"1\",\n \"waardenverzameling\": [\"test\"]\n }\n}" + }, + "auth": { + "type": "jwt", + "jwt": [ + { + "type": "string", + "value": "{\r\n \"iss\": \"procest-admin\",\r\n \"client_id\": \"procest-admin\",\r\n \"iat\": \"1773145186\",\r\n \"user_id\": \"procest-admin\",\r\n \"user_representation\": \"\"\r\n}", + "key": "payload" + }, + { + "type": "string", + "value": "procest-admin-secret-key-for-testing", + "key": "secret" + }, + { + "type": "string", + "value": "HS256", + "key": "algorithm" + }, + { + "type": "boolean", + "value": false, + "key": "isSecretBase64Encoded" + }, + { + "type": "string", + "value": "header", + "key": "addTokenTo" + }, + { + "type": "string", + "value": "Bearer", + "key": "headerPrefix" + }, + { + "type": "string", + "value": "token", + "key": "queryParamKey" + }, + { + "type": "string", + "value": "{}", + "key": "header" + } + ] + } + }, + "response": { + "id": "e5204ff5-0323-4b1c-9ca6-dc7c106898c1", + "status": "Created", + "code": 201, + "header": [ + { + "key": "Date", + "value": "Tue, 10 Mar 2026 12:19:46 GMT" + }, + { + "key": "Server", + "value": "Apache/2.4.66 (Debian)" + }, + { + "key": "X-Content-Type-Options", + "value": "nosniff" + }, + { + "key": "X-Frame-Options", + "value": "SAMEORIGIN" + }, + { + "key": "X-Permitted-Cross-Domain-Policies", + "value": "none" + }, + { + "key": "X-Robots-Tag", + "value": "noindex, nofollow" + }, + { + "key": "Referrer-Policy", + "value": "no-referrer" + }, + { + "key": "X-Powered-By", + "value": "PHP/8.3.30" + }, + { + "key": "Content-Security-Policy", + "value": "default-src 'none';base-uri 'none';manifest-src 'self';frame-ancestors 'none'" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=edf2d3e0eddf563295bdd49c475c0bea; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=edf2d3e0eddf563295bdd49c475c0bea; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=edf2d3e0eddf563295bdd49c475c0bea; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=edf2d3e0eddf563295bdd49c475c0bea; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=edf2d3e0eddf563295bdd49c475c0bea; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=3d6377b8eb6c94a0692bac6f4318ca84; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=3d6377b8eb6c94a0692bac6f4318ca84; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=3d6377b8eb6c94a0692bac6f4318ca84; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=3d6377b8eb6c94a0692bac6f4318ca84; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=3d6377b8eb6c94a0692bac6f4318ca84; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "X-Request-Id", + "value": "zTYiUnSRxovun84DQTr2" + }, + { + "key": "Cache-Control", + "value": "no-cache, no-store, must-revalidate" + }, + { + "key": "Feature-Policy", + "value": "autoplay 'none';camera 'none';fullscreen 'none';geolocation 'none';microphone 'none';payment 'none'" + }, + { + "key": "X-User-Id", + "value": "admin" + }, + { + "key": "Content-Length", + "value": "413" + }, + { + "key": "Keep-Alive", + "value": "timeout=5, max=99" + }, + { + "key": "Connection", + "value": "Keep-Alive" + }, + { + "key": "Content-Type", + "value": "application/json; charset=utf-8" + } + ], + "stream": { + "type": "Buffer", + "data": [ + 123, + 34, + 117, + 114, + 108, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 105, + 92, + 47, + 118, + 49, + 92, + 47, + 101, + 105, + 103, + 101, + 110, + 115, + 99, + 104, + 97, + 112, + 112, + 101, + 110, + 92, + 47, + 54, + 49, + 100, + 54, + 54, + 56, + 100, + 97, + 45, + 52, + 48, + 53, + 50, + 45, + 52, + 55, + 101, + 54, + 45, + 97, + 97, + 57, + 50, + 45, + 102, + 50, + 54, + 100, + 101, + 98, + 98, + 49, + 53, + 53, + 57, + 49, + 34, + 44, + 34, + 117, + 117, + 105, + 100, + 34, + 58, + 34, + 54, + 49, + 100, + 54, + 54, + 56, + 100, + 97, + 45, + 52, + 48, + 53, + 50, + 45, + 52, + 55, + 101, + 54, + 45, + 97, + 97, + 57, + 50, + 45, + 102, + 50, + 54, + 100, + 101, + 98, + 98, + 49, + 53, + 53, + 57, + 49, + 34, + 44, + 34, + 110, + 97, + 97, + 109, + 34, + 58, + 34, + 84, + 69, + 77, + 80, + 34, + 44, + 34, + 100, + 101, + 102, + 105, + 110, + 105, + 116, + 105, + 101, + 34, + 58, + 34, + 102, + 111, + 114, + 32, + 116, + 101, + 115, + 116, + 34, + 44, + 34, + 116, + 111, + 101, + 108, + 105, + 99, + 104, + 116, + 105, + 110, + 103, + 34, + 58, + 34, + 34, + 44, + 34, + 122, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 105, + 92, + 47, + 118, + 49, + 92, + 47, + 122, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 110, + 92, + 47, + 98, + 55, + 48, + 51, + 97, + 50, + 54, + 99, + 45, + 53, + 48, + 100, + 55, + 45, + 52, + 56, + 49, + 49, + 45, + 97, + 54, + 50, + 56, + 45, + 54, + 50, + 100, + 102, + 98, + 51, + 98, + 51, + 57, + 50, + 52, + 48, + 34, + 44, + 34, + 115, + 112, + 101, + 99, + 105, + 102, + 105, + 99, + 97, + 116, + 105, + 101, + 34, + 58, + 34, + 123, + 92, + 34, + 102, + 111, + 114, + 109, + 97, + 97, + 116, + 92, + 34, + 58, + 92, + 34, + 116, + 101, + 107, + 115, + 116, + 92, + 34, + 125, + 34, + 125 + ] + }, + "cookie": [], + "responseTime": 236, + "responseSize": 413 + }, + "id": "02072489-9c3d-4b72-9dc7-d82ba4c1a8aa" + }, + { + "cursor": { + "ref": "93e64860-068e-4af2-8719-643313f42e80", + "length": 313, + "cycles": 1, + "position": 188, + "iteration": 0, + "httpRequestId": "160714be-23f7-435f-a52b-5368ed4bcafb" + }, + "item": { + "id": "b730db9f-b222-4cd4-9ec2-39284bbdbe73", + "name": "Publish Zaaktype for eigenschap validation", + "request": { + "url": { + "path": [ + "publish" + ], + "host": [ + "{{temp_zaaktype_url}}" + ], + "query": [], + "variable": [] + }, + "method": "POST" + }, + "response": [], + "event": [] + }, + "request": { + "url": { + "protocol": "http", + "port": "8080", + "path": [ + "index.php", + "apps", + "procest", + "api", + "zgw", + "catalogi", + "v1", + "zaaktypen", + "b703a26c-50d7-4811-a628-62dfb3b39240", + "publish" + ], + "host": [ + "localhost" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Authorization", + "value": "Bearer eyJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJwcm9jZXN0LWFkbWluIiwiY2xpZW50X2lkIjoicHJvY2VzdC1hZG1pbiIsImlhdCI6IjE3NzMxNDUxODciLCJ1c2VyX2lkIjoicHJvY2VzdC1hZG1pbiIsInVzZXJfcmVwcmVzZW50YXRpb24iOiIifQ.Km0euNflHW12E2JRhXaotsOKcob_S0DCyYr9AA8xlow", + "system": true + }, + { + "key": "User-Agent", + "value": "PostmanRuntime/7.39.1", + "system": true + }, + { + "key": "Accept", + "value": "*/*", + "system": true + }, + { + "key": "Cache-Control", + "value": "no-cache", + "system": true + }, + { + "key": "Postman-Token", + "value": "c15b3ea7-ba2f-456b-9bd6-ae48287d53a4", + "system": true + }, + { + "key": "Host", + "value": "localhost:8080", + "system": true + }, + { + "key": "Accept-Encoding", + "value": "gzip, deflate, br", + "system": true + }, + { + "key": "Connection", + "value": "keep-alive", + "system": true + }, + { + "key": "Cookie", + "value": "ocvp3112b4wg=3d6377b8eb6c94a0692bac6f4318ca84; oc_sessionPassphrase=LBNdKxRzA0iqoULIruNxDDh2BK3O%2BrCIU8aUmiUcOFvy5Xw1YfjwQNlmBW2IkGwJYtxXh9%2BwDN6vYuGNX07tXzkBtjQJUWTGdzf8AIOUIVxVx5DfyWAQZ7nmYmQv6XSE; nc_sameSiteCookielax=true; nc_sameSiteCookiestrict=true", + "system": true + }, + { + "key": "Content-Length", + "value": "0", + "system": true + } + ], + "method": "POST", + "auth": { + "type": "jwt", + "jwt": [ + { + "type": "string", + "value": "{\r\n \"iss\": \"procest-admin\",\r\n \"client_id\": \"procest-admin\",\r\n \"iat\": \"1773145187\",\r\n \"user_id\": \"procest-admin\",\r\n \"user_representation\": \"\"\r\n}", + "key": "payload" + }, + { + "type": "string", + "value": "procest-admin-secret-key-for-testing", + "key": "secret" + }, + { + "type": "string", + "value": "HS256", + "key": "algorithm" + }, + { + "type": "boolean", + "value": false, + "key": "isSecretBase64Encoded" + }, + { + "type": "string", + "value": "header", + "key": "addTokenTo" + }, + { + "type": "string", + "value": "Bearer", + "key": "headerPrefix" + }, + { + "type": "string", + "value": "token", + "key": "queryParamKey" + }, + { + "type": "string", + "value": "{}", + "key": "header" + } + ] + } + }, + "response": { + "id": "6bf09077-869f-45ad-9457-002a863a6616", + "status": "OK", + "code": 200, + "header": [ + { + "key": "Date", + "value": "Tue, 10 Mar 2026 12:19:46 GMT" + }, + { + "key": "Server", + "value": "Apache/2.4.66 (Debian)" + }, + { + "key": "X-Content-Type-Options", + "value": "nosniff" + }, + { + "key": "X-Frame-Options", + "value": "SAMEORIGIN" + }, + { + "key": "X-Permitted-Cross-Domain-Policies", + "value": "none" + }, + { + "key": "X-Robots-Tag", + "value": "noindex, nofollow" + }, + { + "key": "Referrer-Policy", + "value": "no-referrer" + }, + { + "key": "X-Powered-By", + "value": "PHP/8.3.30" + }, + { + "key": "Content-Security-Policy", + "value": "default-src 'none';base-uri 'none';manifest-src 'self';frame-ancestors 'none'" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=3d6377b8eb6c94a0692bac6f4318ca84; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=3d6377b8eb6c94a0692bac6f4318ca84; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=3d6377b8eb6c94a0692bac6f4318ca84; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=3d6377b8eb6c94a0692bac6f4318ca84; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=3d6377b8eb6c94a0692bac6f4318ca84; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=343fef6c1f04d274f61f221b9f4adf7a; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=343fef6c1f04d274f61f221b9f4adf7a; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=343fef6c1f04d274f61f221b9f4adf7a; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=343fef6c1f04d274f61f221b9f4adf7a; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=343fef6c1f04d274f61f221b9f4adf7a; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "X-Request-Id", + "value": "wTT0xIDqR6LxuWg2o5Vo" + }, + { + "key": "Cache-Control", + "value": "no-cache, no-store, must-revalidate" + }, + { + "key": "Feature-Policy", + "value": "autoplay 'none';camera 'none';fullscreen 'none';geolocation 'none';microphone 'none';payment 'none'" + }, + { + "key": "X-User-Id", + "value": "admin" + }, + { + "key": "Content-Encoding", + "value": "gzip" + }, + { + "key": "Content-Length", + "value": "679" + }, + { + "key": "Keep-Alive", + "value": "timeout=5, max=98" + }, + { + "key": "Connection", + "value": "Keep-Alive" + }, + { + "key": "Content-Type", + "value": "application/json; charset=utf-8" + } + ], + "stream": { + "type": "Buffer", + "data": [ + 123, + 34, + 117, + 114, + 108, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 105, + 92, + 47, + 118, + 49, + 92, + 47, + 122, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 110, + 92, + 47, + 98, + 55, + 48, + 51, + 97, + 50, + 54, + 99, + 45, + 53, + 48, + 100, + 55, + 45, + 52, + 56, + 49, + 49, + 45, + 97, + 54, + 50, + 56, + 45, + 54, + 50, + 100, + 102, + 98, + 51, + 98, + 51, + 57, + 50, + 52, + 48, + 34, + 44, + 34, + 117, + 117, + 105, + 100, + 34, + 58, + 34, + 98, + 55, + 48, + 51, + 97, + 50, + 54, + 99, + 45, + 53, + 48, + 100, + 55, + 45, + 52, + 56, + 49, + 49, + 45, + 97, + 54, + 50, + 56, + 45, + 54, + 50, + 100, + 102, + 98, + 51, + 98, + 51, + 57, + 50, + 52, + 48, + 34, + 44, + 34, + 105, + 100, + 101, + 110, + 116, + 105, + 102, + 105, + 99, + 97, + 116, + 105, + 101, + 34, + 58, + 34, + 53, + 100, + 48, + 48, + 54, + 102, + 54, + 101, + 45, + 51, + 98, + 55, + 100, + 45, + 52, + 100, + 48, + 51, + 45, + 56, + 48, + 98, + 49, + 45, + 53, + 99, + 102, + 53, + 49, + 55, + 49, + 102, + 100, + 49, + 49, + 102, + 34, + 44, + 34, + 111, + 109, + 115, + 99, + 104, + 114, + 105, + 106, + 118, + 105, + 110, + 103, + 34, + 58, + 34, + 84, + 69, + 77, + 80, + 34, + 44, + 34, + 111, + 109, + 115, + 99, + 104, + 114, + 105, + 106, + 118, + 105, + 110, + 103, + 71, + 101, + 110, + 101, + 114, + 105, + 101, + 107, + 34, + 58, + 34, + 34, + 44, + 34, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 117, + 115, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 105, + 92, + 47, + 118, + 49, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 117, + 115, + 115, + 101, + 110, + 92, + 47, + 53, + 48, + 53, + 55, + 52, + 48, + 56, + 102, + 45, + 102, + 100, + 55, + 54, + 45, + 52, + 54, + 57, + 101, + 45, + 56, + 54, + 52, + 54, + 45, + 98, + 99, + 99, + 52, + 98, + 97, + 50, + 101, + 102, + 97, + 56, + 100, + 34, + 44, + 34, + 100, + 111, + 101, + 108, + 34, + 58, + 34, + 116, + 101, + 115, + 116, + 32, + 100, + 111, + 101, + 108, + 34, + 44, + 34, + 97, + 97, + 110, + 108, + 101, + 105, + 100, + 105, + 110, + 103, + 34, + 58, + 34, + 116, + 101, + 115, + 116, + 32, + 97, + 97, + 110, + 108, + 101, + 105, + 100, + 105, + 110, + 103, + 34, + 44, + 34, + 111, + 110, + 100, + 101, + 114, + 119, + 101, + 114, + 112, + 34, + 58, + 34, + 111, + 112, + 101, + 110, + 98, + 97, + 114, + 101, + 32, + 114, + 117, + 105, + 109, + 116, + 101, + 34, + 44, + 34, + 100, + 111, + 111, + 114, + 108, + 111, + 111, + 112, + 116, + 105, + 106, + 100, + 34, + 58, + 34, + 80, + 49, + 48, + 68, + 34, + 44, + 34, + 118, + 101, + 114, + 116, + 114, + 111, + 117, + 119, + 101, + 108, + 105, + 106, + 107, + 104, + 101, + 105, + 100, + 97, + 97, + 110, + 100, + 117, + 105, + 100, + 105, + 110, + 103, + 34, + 58, + 34, + 111, + 112, + 101, + 110, + 98, + 97, + 97, + 114, + 34, + 44, + 34, + 99, + 111, + 110, + 99, + 101, + 112, + 116, + 34, + 58, + 102, + 97, + 108, + 115, + 101, + 44, + 34, + 98, + 101, + 103, + 105, + 110, + 71, + 101, + 108, + 100, + 105, + 103, + 104, + 101, + 105, + 100, + 34, + 58, + 34, + 50, + 48, + 49, + 57, + 45, + 48, + 49, + 45, + 48, + 49, + 34, + 44, + 34, + 101, + 105, + 110, + 100, + 101, + 71, + 101, + 108, + 100, + 105, + 103, + 104, + 101, + 105, + 100, + 34, + 58, + 34, + 50, + 48, + 50, + 54, + 45, + 48, + 51, + 45, + 49, + 48, + 34, + 44, + 34, + 104, + 97, + 110, + 100, + 101, + 108, + 105, + 110, + 103, + 73, + 110, + 105, + 116, + 105, + 97, + 116, + 111, + 114, + 34, + 58, + 34, + 105, + 110, + 100, + 105, + 101, + 110, + 101, + 110, + 34, + 44, + 34, + 105, + 110, + 100, + 105, + 99, + 97, + 116, + 105, + 101, + 73, + 110, + 116, + 101, + 114, + 110, + 79, + 102, + 69, + 120, + 116, + 101, + 114, + 110, + 34, + 58, + 34, + 101, + 120, + 116, + 101, + 114, + 110, + 34, + 44, + 34, + 104, + 97, + 110, + 100, + 101, + 108, + 105, + 110, + 103, + 66, + 101, + 104, + 97, + 110, + 100, + 101, + 108, + 97, + 97, + 114, + 34, + 58, + 34, + 98, + 101, + 104, + 97, + 110, + 100, + 101, + 108, + 101, + 110, + 34, + 44, + 34, + 111, + 112, + 115, + 99, + 104, + 111, + 114, + 116, + 105, + 110, + 103, + 69, + 110, + 65, + 97, + 110, + 104, + 111, + 117, + 100, + 105, + 110, + 103, + 77, + 111, + 103, + 101, + 108, + 105, + 106, + 107, + 34, + 58, + 102, + 97, + 108, + 115, + 101, + 44, + 34, + 118, + 101, + 114, + 108, + 101, + 110, + 103, + 105, + 110, + 103, + 77, + 111, + 103, + 101, + 108, + 105, + 106, + 107, + 34, + 58, + 116, + 114, + 117, + 101, + 44, + 34, + 118, + 101, + 114, + 108, + 101, + 110, + 103, + 105, + 110, + 103, + 115, + 116, + 101, + 114, + 109, + 105, + 106, + 110, + 34, + 58, + 34, + 80, + 53, + 68, + 34, + 44, + 34, + 112, + 117, + 98, + 108, + 105, + 99, + 97, + 116, + 105, + 101, + 73, + 110, + 100, + 105, + 99, + 97, + 116, + 105, + 101, + 34, + 58, + 102, + 97, + 108, + 115, + 101, + 44, + 34, + 112, + 114, + 111, + 100, + 117, + 99, + 116, + 101, + 110, + 79, + 102, + 68, + 105, + 101, + 110, + 115, + 116, + 101, + 110, + 34, + 58, + 91, + 34, + 104, + 116, + 116, + 112, + 115, + 58, + 92, + 47, + 92, + 47, + 114, + 101, + 102, + 46, + 116, + 115, + 116, + 46, + 118, + 110, + 103, + 46, + 99, + 108, + 111, + 117, + 100, + 92, + 47, + 115, + 116, + 97, + 110, + 100, + 97, + 97, + 114, + 100, + 92, + 47, + 34, + 93, + 44, + 34, + 115, + 101, + 108, + 101, + 99, + 116, + 105, + 101, + 108, + 105, + 106, + 115, + 116, + 80, + 114, + 111, + 99, + 101, + 115, + 116, + 121, + 112, + 101, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 115, + 58, + 92, + 47, + 92, + 47, + 115, + 101, + 108, + 101, + 99, + 116, + 105, + 101, + 108, + 105, + 106, + 115, + 116, + 46, + 111, + 112, + 101, + 110, + 122, + 97, + 97, + 107, + 46, + 110, + 108, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 118, + 49, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 121, + 112, + 101, + 110, + 92, + 47, + 56, + 51, + 56, + 101, + 52, + 48, + 53, + 97, + 45, + 57, + 98, + 49, + 50, + 45, + 52, + 51, + 99, + 52, + 45, + 97, + 57, + 56, + 53, + 45, + 100, + 55, + 97, + 55, + 52, + 57, + 48, + 100, + 52, + 50, + 50, + 101, + 34, + 44, + 34, + 114, + 101, + 102, + 101, + 114, + 101, + 110, + 116, + 105, + 101, + 112, + 114, + 111, + 99, + 101, + 115, + 34, + 58, + 123, + 34, + 108, + 105, + 110, + 107, + 34, + 58, + 34, + 34, + 44, + 34, + 110, + 97, + 97, + 109, + 34, + 58, + 34, + 116, + 101, + 115, + 116, + 34, + 125, + 44, + 34, + 118, + 101, + 114, + 97, + 110, + 116, + 119, + 111, + 111, + 114, + 100, + 101, + 108, + 105, + 106, + 107, + 101, + 34, + 58, + 34, + 88, + 34, + 44, + 34, + 103, + 101, + 114, + 101, + 108, + 97, + 116, + 101, + 101, + 114, + 100, + 101, + 90, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 98, + 101, + 115, + 108, + 117, + 105, + 116, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 105, + 110, + 102, + 111, + 114, + 109, + 97, + 116, + 105, + 101, + 111, + 98, + 106, + 101, + 99, + 116, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 100, + 101, + 101, + 108, + 122, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 116, + 111, + 101, + 108, + 105, + 99, + 104, + 116, + 105, + 110, + 103, + 34, + 58, + 34, + 34, + 44, + 34, + 118, + 101, + 114, + 115, + 105, + 101, + 100, + 97, + 116, + 117, + 109, + 34, + 58, + 34, + 50, + 48, + 49, + 57, + 45, + 48, + 49, + 45, + 48, + 49, + 34, + 125 + ] + }, + "cookie": [], + "responseTime": 168, + "responseSize": 1261 + }, + "id": "b730db9f-b222-4cd4-9ec2-39284bbdbe73" + }, + { + "cursor": { + "ref": "31b088a2-33c4-4081-86df-86f8da718ea4", + "length": 313, + "cycles": 1, + "position": 189, + "iteration": 0, + "httpRequestId": "fee822f8-0d08-4688-9791-b3598e0b1a83" + }, + "item": { + "id": "0888789d-6de5-4b85-b2d2-2f5f26e7cc46", + "name": "Create Zaak for eigenschap validation", + "request": { + "url": { + "path": [ + "zaken" + ], + "host": [ + "{{zrc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Accept-Crs", + "value": "EPSG:4326" + }, + { + "key": "Content-Crs", + "value": "EPSG:4326" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{{zaak_body}}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "3c03356b-fa2f-49c3-b43f-6b71063b3dd3", + "type": "text/javascript", + "exec": [ + "// If the test failed and the Zaak was created, delete it", + "if(pm.response.code == 201) {", + " pm.environment.set(\"created_zaak_url\", pm.response.json().url);", + "}" + ], + "_lastExecutionId": "dc520a77-79e1-4c22-9917-48c57c4619dc" + } + }, + { + "listen": "prerequest", + "script": { + "id": "75c37cf7-df05-4a74-a503-3e5b0b7f4838", + "type": "text/javascript", + "exec": [ + "" + ], + "_lastExecutionId": "69e7aece-1a8b-41e6-a232-5668f1fe9f5a" + } + } + ] + }, + "request": { + "url": { + "protocol": "http", + "port": "8080", + "path": [ + "index.php", + "apps", + "procest", + "api", + "zgw", + "zaken", + "v1", + "zaken" + ], + "host": [ + "localhost" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Accept-Crs", + "value": "EPSG:4326" + }, + { + "key": "Content-Crs", + "value": "EPSG:4326" + }, + { + "key": "Authorization", + "value": "Bearer eyJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJwcm9jZXN0LWFkbWluIiwiY2xpZW50X2lkIjoicHJvY2VzdC1hZG1pbiIsImlhdCI6IjE3NzMxNDUxODciLCJ1c2VyX2lkIjoicHJvY2VzdC1hZG1pbiIsInVzZXJfcmVwcmVzZW50YXRpb24iOiIifQ.Km0euNflHW12E2JRhXaotsOKcob_S0DCyYr9AA8xlow", + "system": true + }, + { + "key": "User-Agent", + "value": "PostmanRuntime/7.39.1", + "system": true + }, + { + "key": "Accept", + "value": "*/*", + "system": true + }, + { + "key": "Cache-Control", + "value": "no-cache", + "system": true + }, + { + "key": "Postman-Token", + "value": "2795dafa-ba47-4ba6-bb8b-6c85311c3389", + "system": true + }, + { + "key": "Host", + "value": "localhost:8080", + "system": true + }, + { + "key": "Accept-Encoding", + "value": "gzip, deflate, br", + "system": true + }, + { + "key": "Connection", + "value": "keep-alive", + "system": true + }, + { + "key": "Content-Length", + "value": "13", + "system": true + }, + { + "key": "Cookie", + "value": "ocvp3112b4wg=343fef6c1f04d274f61f221b9f4adf7a; oc_sessionPassphrase=LBNdKxRzA0iqoULIruNxDDh2BK3O%2BrCIU8aUmiUcOFvy5Xw1YfjwQNlmBW2IkGwJYtxXh9%2BwDN6vYuGNX07tXzkBtjQJUWTGdzf8AIOUIVxVx5DfyWAQZ7nmYmQv6XSE; nc_sameSiteCookielax=true; nc_sameSiteCookiestrict=true", + "system": true + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{{zaak_body}}" + }, + "auth": { + "type": "jwt", + "jwt": [ + { + "type": "string", + "value": "{\r\n \"iss\": \"procest-admin\",\r\n \"client_id\": \"procest-admin\",\r\n \"iat\": \"1773145187\",\r\n \"user_id\": \"procest-admin\",\r\n \"user_representation\": \"\"\r\n}", + "key": "payload" + }, + { + "type": "string", + "value": "procest-admin-secret-key-for-testing", + "key": "secret" + }, + { + "type": "string", + "value": "HS256", + "key": "algorithm" + }, + { + "type": "boolean", + "value": false, + "key": "isSecretBase64Encoded" + }, + { + "type": "string", + "value": "header", + "key": "addTokenTo" + }, + { + "type": "string", + "value": "Bearer", + "key": "headerPrefix" + }, + { + "type": "string", + "value": "token", + "key": "queryParamKey" + }, + { + "type": "string", + "value": "{}", + "key": "header" + } + ] + } + }, + "response": { + "id": "9fcab36c-d463-45db-9892-4ec04ff2c3aa", + "status": "Bad request", + "code": 400, + "header": [ + { + "key": "Date", + "value": "Tue, 10 Mar 2026 12:19:46 GMT" + }, + { + "key": "Server", + "value": "Apache/2.4.66 (Debian)" + }, + { + "key": "X-Content-Type-Options", + "value": "nosniff" + }, + { + "key": "X-Frame-Options", + "value": "SAMEORIGIN" + }, + { + "key": "X-Permitted-Cross-Domain-Policies", + "value": "none" + }, + { + "key": "X-Robots-Tag", + "value": "noindex, nofollow" + }, + { + "key": "Referrer-Policy", + "value": "no-referrer" + }, + { + "key": "X-Powered-By", + "value": "PHP/8.3.30" + }, + { + "key": "Content-Security-Policy", + "value": "default-src 'none';base-uri 'none';manifest-src 'self';frame-ancestors 'none'" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=343fef6c1f04d274f61f221b9f4adf7a; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=343fef6c1f04d274f61f221b9f4adf7a; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=343fef6c1f04d274f61f221b9f4adf7a; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=343fef6c1f04d274f61f221b9f4adf7a; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=343fef6c1f04d274f61f221b9f4adf7a; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=f04a8c3480fac07ea7190f4d661e116b; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=f04a8c3480fac07ea7190f4d661e116b; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=f04a8c3480fac07ea7190f4d661e116b; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=f04a8c3480fac07ea7190f4d661e116b; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=f04a8c3480fac07ea7190f4d661e116b; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "X-Request-Id", + "value": "hRLtg2X3wLjZBmz86d5g" + }, + { + "key": "Cache-Control", + "value": "no-cache, no-store, must-revalidate" + }, + { + "key": "Feature-Policy", + "value": "autoplay 'none';camera 'none';fullscreen 'none';geolocation 'none';microphone 'none';payment 'none'" + }, + { + "key": "X-User-Id", + "value": "admin" + }, + { + "key": "Content-Length", + "value": "122" + }, + { + "key": "Connection", + "value": "close" + }, + { + "key": "Content-Type", + "value": "application/json; charset=utf-8" + } + ], + "stream": { + "type": "Buffer", + "data": [ + 123, + 34, + 100, + 101, + 116, + 97, + 105, + 108, + 34, + 58, + 34, + 80, + 114, + 111, + 112, + 101, + 114, + 116, + 121, + 32, + 39, + 99, + 97, + 115, + 101, + 84, + 121, + 112, + 101, + 39, + 32, + 115, + 104, + 111, + 117, + 108, + 100, + 32, + 109, + 97, + 116, + 99, + 104, + 32, + 102, + 111, + 114, + 109, + 97, + 116, + 32, + 39, + 117, + 117, + 105, + 100, + 39, + 32, + 98, + 117, + 116, + 32, + 39, + 39, + 32, + 100, + 111, + 101, + 115, + 32, + 110, + 111, + 116, + 46, + 32, + 80, + 108, + 101, + 97, + 115, + 101, + 32, + 112, + 114, + 111, + 118, + 105, + 100, + 101, + 32, + 97, + 32, + 118, + 97, + 108, + 117, + 101, + 32, + 105, + 110, + 32, + 116, + 104, + 101, + 32, + 99, + 111, + 114, + 114, + 101, + 99, + 116, + 32, + 102, + 111, + 114, + 109, + 97, + 116, + 46, + 34, + 125 + ] + }, + "cookie": [], + "responseTime": 100, + "responseSize": 122 + }, + "id": "0888789d-6de5-4b85-b2d2-2f5f26e7cc46" + }, + { + "cursor": { + "ref": "521aa314-c7c2-47c9-b882-6e68181eb358", + "length": 313, + "cycles": 1, + "position": 190, + "iteration": 0, + "httpRequestId": "c28664b5-a7ed-478c-ac4d-3082ba46db72" + }, + "item": { + "id": "73fe5131-346f-4133-9e49-f2577601d17f", + "name": "(zrc-018a) ZaakEigenschap toevoegen aan Zaak met eigenschap die niet hoort bij Zaak.zaaktype is onmogelijk", + "request": { + "url": { + "path": [ + "zaakeigenschappen" + ], + "host": [ + "{{created_zaak_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n\t\"zaak\": \"{{created_zaak_url}}\",\n\t\"eigenschap\": \"{{temp_eigenschap}}\",\n\t\"waarde\": \"ja\"\n}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "67dc04dc-d974-4d15-ab15-915b8a33d95f", + "type": "text/javascript", + "exec": [ + "pm.test(\"(zrc-018a) ZaakEigenschap toevoegen aan Zaak met eigenschap die niet hoort bij Zaak.zaaktype geeft 400\", function() {", + " pm.response.to.have.status(400);", + " ", + " var error = pm.response.json()[\"invalidParams\"][0];", + " pm.expect(error.name).to.be.equal(\"nonFieldErrors\");", + " pm.expect(error.code).to.be.equal(\"zaaktype-mismatch\");", + "});" + ], + "_lastExecutionId": "f5990f0f-5022-4fa5-9eb1-2e363ea95f7e" + } + } + ] + }, + "request": { + "url": { + "protocol": "http", + "port": "8080", + "path": [ + "index.php", + "apps", + "procest", + "api", + "zgw", + "zaken", + "v1", + "zaken", + "b8871673-dff3-45c4-8391-1bc68ccab426", + "zaakeigenschappen" + ], + "host": [ + "localhost" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Authorization", + "value": "Bearer eyJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJwcm9jZXN0LWFkbWluIiwiY2xpZW50X2lkIjoicHJvY2VzdC1hZG1pbiIsImlhdCI6IjE3NzMxNDUxODciLCJ1c2VyX2lkIjoicHJvY2VzdC1hZG1pbiIsInVzZXJfcmVwcmVzZW50YXRpb24iOiIifQ.Km0euNflHW12E2JRhXaotsOKcob_S0DCyYr9AA8xlow", + "system": true + }, + { + "key": "User-Agent", + "value": "PostmanRuntime/7.39.1", + "system": true + }, + { + "key": "Accept", + "value": "*/*", + "system": true + }, + { + "key": "Cache-Control", + "value": "no-cache", + "system": true + }, + { + "key": "Postman-Token", + "value": "0bd49059-b898-44b0-a225-f56597e8ee8a", + "system": true + }, + { + "key": "Host", + "value": "localhost:8080", + "system": true + }, + { + "key": "Accept-Encoding", + "value": "gzip, deflate, br", + "system": true + }, + { + "key": "Connection", + "value": "keep-alive", + "system": true + }, + { + "key": "Content-Length", + "value": "270", + "system": true + }, + { + "key": "Cookie", + "value": "ocvp3112b4wg=f04a8c3480fac07ea7190f4d661e116b; oc_sessionPassphrase=LBNdKxRzA0iqoULIruNxDDh2BK3O%2BrCIU8aUmiUcOFvy5Xw1YfjwQNlmBW2IkGwJYtxXh9%2BwDN6vYuGNX07tXzkBtjQJUWTGdzf8AIOUIVxVx5DfyWAQZ7nmYmQv6XSE; nc_sameSiteCookielax=true; nc_sameSiteCookiestrict=true", + "system": true + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n\t\"zaak\": \"http://localhost:8080/index.php/apps/procest/api/zgw/zaken/v1/zaken/b8871673-dff3-45c4-8391-1bc68ccab426\",\n\t\"eigenschap\": \"http://localhost:8080/index.php/apps/procest/api/zgw/catalogi/v1/eigenschappen/61d668da-4052-47e6-aa92-f26debb15591\",\n\t\"waarde\": \"ja\"\n}" + }, + "auth": { + "type": "jwt", + "jwt": [ + { + "type": "string", + "value": "{\r\n \"iss\": \"procest-admin\",\r\n \"client_id\": \"procest-admin\",\r\n \"iat\": \"1773145187\",\r\n \"user_id\": \"procest-admin\",\r\n \"user_representation\": \"\"\r\n}", + "key": "payload" + }, + { + "type": "string", + "value": "procest-admin-secret-key-for-testing", + "key": "secret" + }, + { + "type": "string", + "value": "HS256", + "key": "algorithm" + }, + { + "type": "boolean", + "value": false, + "key": "isSecretBase64Encoded" + }, + { + "type": "string", + "value": "header", + "key": "addTokenTo" + }, + { + "type": "string", + "value": "Bearer", + "key": "headerPrefix" + }, + { + "type": "string", + "value": "token", + "key": "queryParamKey" + }, + { + "type": "string", + "value": "{}", + "key": "header" + } + ] + } + }, + "response": { + "id": "bbf44574-fe13-4960-b2d8-4a85a26c1f93", + "status": "Bad request", + "code": 400, + "header": [ + { + "key": "Date", + "value": "Tue, 10 Mar 2026 12:19:47 GMT" + }, + { + "key": "Server", + "value": "Apache/2.4.66 (Debian)" + }, + { + "key": "X-Content-Type-Options", + "value": "nosniff" + }, + { + "key": "X-Frame-Options", + "value": "SAMEORIGIN" + }, + { + "key": "X-Permitted-Cross-Domain-Policies", + "value": "none" + }, + { + "key": "X-Robots-Tag", + "value": "noindex, nofollow" + }, + { + "key": "Referrer-Policy", + "value": "no-referrer" + }, + { + "key": "X-Powered-By", + "value": "PHP/8.3.30" + }, + { + "key": "Content-Security-Policy", + "value": "default-src 'none';base-uri 'none';manifest-src 'self';frame-ancestors 'none'" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=f04a8c3480fac07ea7190f4d661e116b; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=f04a8c3480fac07ea7190f4d661e116b; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=f04a8c3480fac07ea7190f4d661e116b; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=f04a8c3480fac07ea7190f4d661e116b; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=f04a8c3480fac07ea7190f4d661e116b; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=573547266231bc6b69cd97a8eaf56603; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=573547266231bc6b69cd97a8eaf56603; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=573547266231bc6b69cd97a8eaf56603; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=573547266231bc6b69cd97a8eaf56603; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=573547266231bc6b69cd97a8eaf56603; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "X-Request-Id", + "value": "XsCSEGBg0l9aHyG9keCh" + }, + { + "key": "Cache-Control", + "value": "no-cache, no-store, must-revalidate" + }, + { + "key": "Feature-Policy", + "value": "autoplay 'none';camera 'none';fullscreen 'none';geolocation 'none';microphone 'none';payment 'none'" + }, + { + "key": "X-User-Id", + "value": "admin" + }, + { + "key": "Content-Length", + "value": "206" + }, + { + "key": "Connection", + "value": "close" + }, + { + "key": "Content-Type", + "value": "application/json; charset=utf-8" + } + ], + "stream": { + "type": "Buffer", + "data": [ + 123, + 34, + 100, + 101, + 116, + 97, + 105, + 108, + 34, + 58, + 34, + 72, + 101, + 116, + 32, + 101, + 105, + 103, + 101, + 110, + 115, + 99, + 104, + 97, + 112, + 32, + 104, + 111, + 111, + 114, + 116, + 32, + 110, + 105, + 101, + 116, + 32, + 98, + 105, + 106, + 32, + 104, + 101, + 116, + 32, + 122, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 32, + 118, + 97, + 110, + 32, + 100, + 101, + 32, + 122, + 97, + 97, + 107, + 46, + 34, + 44, + 34, + 105, + 110, + 118, + 97, + 108, + 105, + 100, + 80, + 97, + 114, + 97, + 109, + 115, + 34, + 58, + 91, + 123, + 34, + 110, + 97, + 109, + 101, + 34, + 58, + 34, + 110, + 111, + 110, + 70, + 105, + 101, + 108, + 100, + 69, + 114, + 114, + 111, + 114, + 115, + 34, + 44, + 34, + 99, + 111, + 100, + 101, + 34, + 58, + 34, + 122, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 45, + 109, + 105, + 115, + 109, + 97, + 116, + 99, + 104, + 34, + 44, + 34, + 114, + 101, + 97, + 115, + 111, + 110, + 34, + 58, + 34, + 72, + 101, + 116, + 32, + 101, + 105, + 103, + 101, + 110, + 115, + 99, + 104, + 97, + 112, + 32, + 104, + 111, + 111, + 114, + 116, + 32, + 110, + 105, + 101, + 116, + 32, + 98, + 105, + 106, + 32, + 104, + 101, + 116, + 32, + 122, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 32, + 118, + 97, + 110, + 32, + 100, + 101, + 32, + 122, + 97, + 97, + 107, + 46, + 34, + 125, + 93, + 125 + ] + }, + "cookie": [], + "responseTime": 247, + "responseSize": 206 + }, + "id": "73fe5131-346f-4133-9e49-f2577601d17f", + "assertions": [ + { + "assertion": "(zrc-018a) ZaakEigenschap toevoegen aan Zaak met eigenschap die niet hoort bij Zaak.zaaktype geeft 400", + "skipped": false + } + ] + }, + { + "cursor": { + "ref": "3d757d57-7192-4213-baaa-7661f1fed23c", + "length": 313, + "cycles": 1, + "position": 191, + "iteration": 0, + "httpRequestId": "8be9c786-e06f-4614-840e-80b3505c643e" + }, + "item": { + "id": "e42e70ce-35ad-426f-a6ca-407d8b94fd80", + "name": "Delete Eigenschap", + "request": { + "url": { + "host": [ + "{{temp_eigenschap}}" + ], + "query": [], + "variable": [] + }, + "method": "DELETE" + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "1c7e2561-e70b-40ed-9fc3-e1adff264998", + "type": "text/javascript", + "exec": [ + "pm.environment.unset(\"temp_eigenschap\");" + ], + "_lastExecutionId": "3c50231f-7eb6-4da6-8130-820d2b00b9a8" + } + } + ] + }, + "request": { + "url": { + "protocol": "http", + "port": "8080", + "path": [ + "index.php", + "apps", + "procest", + "api", + "zgw", + "catalogi", + "v1", + "eigenschappen", + "61d668da-4052-47e6-aa92-f26debb15591" + ], + "host": [ + "localhost" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Authorization", + "value": "Bearer eyJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJwcm9jZXN0LWFkbWluIiwiY2xpZW50X2lkIjoicHJvY2VzdC1hZG1pbiIsImlhdCI6IjE3NzMxNDUxODciLCJ1c2VyX2lkIjoicHJvY2VzdC1hZG1pbiIsInVzZXJfcmVwcmVzZW50YXRpb24iOiIifQ.Km0euNflHW12E2JRhXaotsOKcob_S0DCyYr9AA8xlow", + "system": true + }, + { + "key": "User-Agent", + "value": "PostmanRuntime/7.39.1", + "system": true + }, + { + "key": "Accept", + "value": "*/*", + "system": true + }, + { + "key": "Cache-Control", + "value": "no-cache", + "system": true + }, + { + "key": "Postman-Token", + "value": "1c943664-1147-479c-8542-c4507b9500ea", + "system": true + }, + { + "key": "Host", + "value": "localhost:8080", + "system": true + }, + { + "key": "Accept-Encoding", + "value": "gzip, deflate, br", + "system": true + }, + { + "key": "Connection", + "value": "keep-alive", + "system": true + }, + { + "key": "Cookie", + "value": "ocvp3112b4wg=573547266231bc6b69cd97a8eaf56603; oc_sessionPassphrase=LBNdKxRzA0iqoULIruNxDDh2BK3O%2BrCIU8aUmiUcOFvy5Xw1YfjwQNlmBW2IkGwJYtxXh9%2BwDN6vYuGNX07tXzkBtjQJUWTGdzf8AIOUIVxVx5DfyWAQZ7nmYmQv6XSE; nc_sameSiteCookielax=true; nc_sameSiteCookiestrict=true", + "system": true + } + ], + "method": "DELETE", + "auth": { + "type": "jwt", + "jwt": [ + { + "type": "string", + "value": "{\r\n \"iss\": \"procest-admin\",\r\n \"client_id\": \"procest-admin\",\r\n \"iat\": \"1773145187\",\r\n \"user_id\": \"procest-admin\",\r\n \"user_representation\": \"\"\r\n}", + "key": "payload" + }, + { + "type": "string", + "value": "procest-admin-secret-key-for-testing", + "key": "secret" + }, + { + "type": "string", + "value": "HS256", + "key": "algorithm" + }, + { + "type": "boolean", + "value": false, + "key": "isSecretBase64Encoded" + }, + { + "type": "string", + "value": "header", + "key": "addTokenTo" + }, + { + "type": "string", + "value": "Bearer", + "key": "headerPrefix" + }, + { + "type": "string", + "value": "token", + "key": "queryParamKey" + }, + { + "type": "string", + "value": "{}", + "key": "header" + } + ] + } + }, + "response": { + "id": "1b500da4-2b3e-44f0-bd15-7629b471400b", + "status": "Bad request", + "code": 400, + "header": [ + { + "key": "Date", + "value": "Tue, 10 Mar 2026 12:19:47 GMT" + }, + { + "key": "Server", + "value": "Apache/2.4.66 (Debian)" + }, + { + "key": "X-Content-Type-Options", + "value": "nosniff" + }, + { + "key": "X-Frame-Options", + "value": "SAMEORIGIN" + }, + { + "key": "X-Permitted-Cross-Domain-Policies", + "value": "none" + }, + { + "key": "X-Robots-Tag", + "value": "noindex, nofollow" + }, + { + "key": "Referrer-Policy", + "value": "no-referrer" + }, + { + "key": "X-Powered-By", + "value": "PHP/8.3.30" + }, + { + "key": "Content-Security-Policy", + "value": "default-src 'none';base-uri 'none';manifest-src 'self';frame-ancestors 'none'" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=573547266231bc6b69cd97a8eaf56603; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=573547266231bc6b69cd97a8eaf56603; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=573547266231bc6b69cd97a8eaf56603; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=573547266231bc6b69cd97a8eaf56603; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=573547266231bc6b69cd97a8eaf56603; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=b6fc934f40a830780035c7847d95f2a7; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=b6fc934f40a830780035c7847d95f2a7; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=b6fc934f40a830780035c7847d95f2a7; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=b6fc934f40a830780035c7847d95f2a7; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=b6fc934f40a830780035c7847d95f2a7; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "X-Request-Id", + "value": "NMvLMnBdfHmEveiGHUuP" + }, + { + "key": "Cache-Control", + "value": "no-cache, no-store, must-revalidate" + }, + { + "key": "Feature-Policy", + "value": "autoplay 'none';camera 'none';fullscreen 'none';geolocation 'none';microphone 'none';payment 'none'" + }, + { + "key": "X-User-Id", + "value": "admin" + }, + { + "key": "Content-Length", + "value": "251" + }, + { + "key": "Connection", + "value": "close" + }, + { + "key": "Content-Type", + "value": "application/json; charset=utf-8" + } + ], + "stream": { + "type": "Buffer", + "data": [ + 123, + 34, + 100, + 101, + 116, + 97, + 105, + 108, + 34, + 58, + 34, + 72, + 101, + 116, + 32, + 105, + 115, + 32, + 110, + 105, + 101, + 116, + 32, + 116, + 111, + 101, + 103, + 101, + 115, + 116, + 97, + 97, + 110, + 32, + 111, + 109, + 32, + 116, + 121, + 112, + 101, + 110, + 32, + 118, + 97, + 110, + 32, + 101, + 101, + 110, + 32, + 103, + 101, + 112, + 117, + 98, + 108, + 105, + 99, + 101, + 101, + 114, + 100, + 32, + 122, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 32, + 97, + 97, + 110, + 32, + 116, + 101, + 32, + 112, + 97, + 115, + 115, + 101, + 110, + 46, + 34, + 44, + 34, + 105, + 110, + 118, + 97, + 108, + 105, + 100, + 80, + 97, + 114, + 97, + 109, + 115, + 34, + 58, + 91, + 123, + 34, + 110, + 97, + 109, + 101, + 34, + 58, + 34, + 110, + 111, + 110, + 70, + 105, + 101, + 108, + 100, + 69, + 114, + 114, + 111, + 114, + 115, + 34, + 44, + 34, + 99, + 111, + 100, + 101, + 34, + 58, + 34, + 110, + 111, + 110, + 45, + 99, + 111, + 110, + 99, + 101, + 112, + 116, + 45, + 122, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 34, + 44, + 34, + 114, + 101, + 97, + 115, + 111, + 110, + 34, + 58, + 34, + 72, + 101, + 116, + 32, + 105, + 115, + 32, + 110, + 105, + 101, + 116, + 32, + 116, + 111, + 101, + 103, + 101, + 115, + 116, + 97, + 97, + 110, + 32, + 111, + 109, + 32, + 116, + 121, + 112, + 101, + 110, + 32, + 118, + 97, + 110, + 32, + 101, + 101, + 110, + 32, + 103, + 101, + 112, + 117, + 98, + 108, + 105, + 99, + 101, + 101, + 114, + 100, + 32, + 122, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 32, + 97, + 97, + 110, + 32, + 116, + 101, + 32, + 112, + 97, + 115, + 115, + 101, + 110, + 46, + 34, + 125, + 93, + 125 + ] + }, + "cookie": [], + "responseTime": 120, + "responseSize": 251 + }, + "id": "e42e70ce-35ad-426f-a6ca-407d8b94fd80" + }, + { + "cursor": { + "ref": "1ecf812c-0d12-4531-9e89-3af6cf83cf54", + "length": 313, + "cycles": 1, + "position": 192, + "iteration": 0, + "httpRequestId": "6e4eb636-61ba-47d0-bb52-c51172ce0695" + }, + "item": { + "id": "a57a26a7-3760-46de-bcf1-749f0215ca1e", + "name": "Delete Zaaktype for eigenschap validation", + "request": { + "url": { + "host": [ + "{{temp_zaaktype_url}}" + ], + "query": [], + "variable": [] + }, + "method": "DELETE" + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "9a3bfeda-1647-4b17-bcaf-8fc28ab38fea", + "type": "text/javascript", + "packages": {}, + "exec": [ + "pm.environment.unset(\"temp_zaaktype_url\");", + "" + ], + "_lastExecutionId": "c66add51-6fcf-4cfb-af42-6e08b2e274cc" + } + } + ] + }, + "request": { + "url": { + "protocol": "http", + "port": "8080", + "path": [ + "index.php", + "apps", + "procest", + "api", + "zgw", + "catalogi", + "v1", + "zaaktypen", + "b703a26c-50d7-4811-a628-62dfb3b39240" + ], + "host": [ + "localhost" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Authorization", + "value": "Bearer eyJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJwcm9jZXN0LWFkbWluIiwiY2xpZW50X2lkIjoicHJvY2VzdC1hZG1pbiIsImlhdCI6IjE3NzMxNDUxODciLCJ1c2VyX2lkIjoicHJvY2VzdC1hZG1pbiIsInVzZXJfcmVwcmVzZW50YXRpb24iOiIifQ.Km0euNflHW12E2JRhXaotsOKcob_S0DCyYr9AA8xlow", + "system": true + }, + { + "key": "User-Agent", + "value": "PostmanRuntime/7.39.1", + "system": true + }, + { + "key": "Accept", + "value": "*/*", + "system": true + }, + { + "key": "Cache-Control", + "value": "no-cache", + "system": true + }, + { + "key": "Postman-Token", + "value": "3a1f7df1-2a8e-4b78-b956-ffe004fc8887", + "system": true + }, + { + "key": "Host", + "value": "localhost:8080", + "system": true + }, + { + "key": "Accept-Encoding", + "value": "gzip, deflate, br", + "system": true + }, + { + "key": "Connection", + "value": "keep-alive", + "system": true + }, + { + "key": "Cookie", + "value": "ocvp3112b4wg=b6fc934f40a830780035c7847d95f2a7; oc_sessionPassphrase=LBNdKxRzA0iqoULIruNxDDh2BK3O%2BrCIU8aUmiUcOFvy5Xw1YfjwQNlmBW2IkGwJYtxXh9%2BwDN6vYuGNX07tXzkBtjQJUWTGdzf8AIOUIVxVx5DfyWAQZ7nmYmQv6XSE; nc_sameSiteCookielax=true; nc_sameSiteCookiestrict=true", + "system": true + } + ], + "method": "DELETE", + "auth": { + "type": "jwt", + "jwt": [ + { + "type": "string", + "value": "{\r\n \"iss\": \"procest-admin\",\r\n \"client_id\": \"procest-admin\",\r\n \"iat\": \"1773145187\",\r\n \"user_id\": \"procest-admin\",\r\n \"user_representation\": \"\"\r\n}", + "key": "payload" + }, + { + "type": "string", + "value": "procest-admin-secret-key-for-testing", + "key": "secret" + }, + { + "type": "string", + "value": "HS256", + "key": "algorithm" + }, + { + "type": "boolean", + "value": false, + "key": "isSecretBase64Encoded" + }, + { + "type": "string", + "value": "header", + "key": "addTokenTo" + }, + { + "type": "string", + "value": "Bearer", + "key": "headerPrefix" + }, + { + "type": "string", + "value": "token", + "key": "queryParamKey" + }, + { + "type": "string", + "value": "{}", + "key": "header" + } + ] + } + }, + "response": { + "id": "5c8c6333-6d97-4174-95b3-163f0121e887", + "status": "Bad request", + "code": 400, + "header": [ + { + "key": "Date", + "value": "Tue, 10 Mar 2026 12:19:47 GMT" + }, + { + "key": "Server", + "value": "Apache/2.4.66 (Debian)" + }, + { + "key": "X-Content-Type-Options", + "value": "nosniff" + }, + { + "key": "X-Frame-Options", + "value": "SAMEORIGIN" + }, + { + "key": "X-Permitted-Cross-Domain-Policies", + "value": "none" + }, + { + "key": "X-Robots-Tag", + "value": "noindex, nofollow" + }, + { + "key": "Referrer-Policy", + "value": "no-referrer" + }, + { + "key": "X-Powered-By", + "value": "PHP/8.3.30" + }, + { + "key": "Content-Security-Policy", + "value": "default-src 'none';base-uri 'none';manifest-src 'self';frame-ancestors 'none'" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=b6fc934f40a830780035c7847d95f2a7; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=b6fc934f40a830780035c7847d95f2a7; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=b6fc934f40a830780035c7847d95f2a7; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=b6fc934f40a830780035c7847d95f2a7; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=b6fc934f40a830780035c7847d95f2a7; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=5cf04df878765ec8d9a5c976a49ebac7; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=5cf04df878765ec8d9a5c976a49ebac7; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=5cf04df878765ec8d9a5c976a49ebac7; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=5cf04df878765ec8d9a5c976a49ebac7; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=5cf04df878765ec8d9a5c976a49ebac7; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "X-Request-Id", + "value": "n1YWqOauhf5ELqvwgDKE" + }, + { + "key": "Cache-Control", + "value": "no-cache, no-store, must-revalidate" + }, + { + "key": "Feature-Policy", + "value": "autoplay 'none';camera 'none';fullscreen 'none';geolocation 'none';microphone 'none';payment 'none'" + }, + { + "key": "X-User-Id", + "value": "admin" + }, + { + "key": "Content-Length", + "value": "241" + }, + { + "key": "Connection", + "value": "close" + }, + { + "key": "Content-Type", + "value": "application/json; charset=utf-8" + } + ], + "stream": { + "type": "Buffer", + "data": [ + 123, + 34, + 100, + 101, + 116, + 97, + 105, + 108, + 34, + 58, + 34, + 72, + 101, + 116, + 32, + 105, + 115, + 32, + 110, + 105, + 101, + 116, + 32, + 116, + 111, + 101, + 103, + 101, + 115, + 116, + 97, + 97, + 110, + 32, + 111, + 109, + 32, + 101, + 101, + 110, + 32, + 122, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 32, + 109, + 101, + 116, + 32, + 99, + 111, + 110, + 99, + 101, + 112, + 116, + 61, + 102, + 97, + 108, + 115, + 101, + 32, + 116, + 101, + 32, + 118, + 101, + 114, + 119, + 105, + 106, + 100, + 101, + 114, + 101, + 110, + 46, + 34, + 44, + 34, + 105, + 110, + 118, + 97, + 108, + 105, + 100, + 80, + 97, + 114, + 97, + 109, + 115, + 34, + 58, + 91, + 123, + 34, + 110, + 97, + 109, + 101, + 34, + 58, + 34, + 110, + 111, + 110, + 70, + 105, + 101, + 108, + 100, + 69, + 114, + 114, + 111, + 114, + 115, + 34, + 44, + 34, + 99, + 111, + 100, + 101, + 34, + 58, + 34, + 110, + 111, + 110, + 45, + 99, + 111, + 110, + 99, + 101, + 112, + 116, + 45, + 111, + 98, + 106, + 101, + 99, + 116, + 34, + 44, + 34, + 114, + 101, + 97, + 115, + 111, + 110, + 34, + 58, + 34, + 72, + 101, + 116, + 32, + 105, + 115, + 32, + 110, + 105, + 101, + 116, + 32, + 116, + 111, + 101, + 103, + 101, + 115, + 116, + 97, + 97, + 110, + 32, + 111, + 109, + 32, + 101, + 101, + 110, + 32, + 122, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 32, + 109, + 101, + 116, + 32, + 99, + 111, + 110, + 99, + 101, + 112, + 116, + 61, + 102, + 97, + 108, + 115, + 101, + 32, + 116, + 101, + 32, + 118, + 101, + 114, + 119, + 105, + 106, + 100, + 101, + 114, + 101, + 110, + 46, + 34, + 125, + 93, + 125 + ] + }, + "cookie": [], + "responseTime": 111, + "responseSize": 241 + }, + "id": "a57a26a7-3760-46de-bcf1-749f0215ca1e" + }, + { + "cursor": { + "ref": "0b1586df-265e-4ca0-a1bb-b02de30a66d3", + "length": 313, + "cycles": 1, + "position": 193, + "iteration": 0, + "httpRequestId": "f2856b23-e049-4b03-900e-3fab6ee4ae5c" + }, + "item": { + "id": "1df39e9c-74ef-41c1-b1dd-49f96000563d", + "name": "Create Zaaktype for roltype validation", + "request": { + "url": { + "path": [ + "zaaktypen" + ], + "host": [ + "{{ztc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{{request_body}}" + } + }, + "response": [], + "event": [ + { + "listen": "prerequest", + "script": { + "id": "b4321e7a-2474-4e63-bde9-e92551fd9e87", + "type": "text/javascript", + "exec": [ + "// Retrieve the Zaak body template and modify as needed", + "var body = JSON.parse(pm.environment.get(\"zaaktype_body\"));", + "body.omschrijving = \"TEMP\"", + "body.besluittypen = [];", + "", + "var uuid = require('uuid');", + "var myUUID = uuid.v4(); ", + "body.identificatie = myUUID", + "// Store the modified Zaak body, allowing it to be used in the main request", + "pm.environment.set(\"request_body\", JSON.stringify(body));" + ], + "_lastExecutionId": "5e975bbe-b24c-45f8-b67e-e81f9021bc5d" + } + }, + { + "listen": "test", + "script": { + "id": "3d7cd4b8-f774-4d1d-ad86-09abb2313e8a", + "type": "text/javascript", + "exec": [ + "pm.environment.set(\"temp_zaaktype_url\", pm.response.json().url);" + ], + "_lastExecutionId": "3d25069f-4292-4712-a712-1a717f25d7be" + } + } + ] + }, + "request": { + "url": { + "protocol": "http", + "port": "8080", + "path": [ + "index.php", + "apps", + "procest", + "api", + "zgw", + "catalogi", + "v1", + "zaaktypen" + ], + "host": [ + "localhost" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Authorization", + "value": "Bearer eyJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJwcm9jZXN0LWFkbWluIiwiY2xpZW50X2lkIjoicHJvY2VzdC1hZG1pbiIsImlhdCI6IjE3NzMxNDUxODgiLCJ1c2VyX2lkIjoicHJvY2VzdC1hZG1pbiIsInVzZXJfcmVwcmVzZW50YXRpb24iOiIifQ.g7R-ltrqoXnECj2kqVlyc9u5yRBhu1JPMGnxVlHZKj4", + "system": true + }, + { + "key": "User-Agent", + "value": "PostmanRuntime/7.39.1", + "system": true + }, + { + "key": "Accept", + "value": "*/*", + "system": true + }, + { + "key": "Cache-Control", + "value": "no-cache", + "system": true + }, + { + "key": "Postman-Token", + "value": "091c178a-b6e9-4937-a27d-f84ec9242249", + "system": true + }, + { + "key": "Host", + "value": "localhost:8080", + "system": true + }, + { + "key": "Accept-Encoding", + "value": "gzip, deflate, br", + "system": true + }, + { + "key": "Connection", + "value": "keep-alive", + "system": true + }, + { + "key": "Content-Length", + "value": "1082", + "system": true + }, + { + "key": "Cookie", + "value": "ocvp3112b4wg=5cf04df878765ec8d9a5c976a49ebac7; oc_sessionPassphrase=LBNdKxRzA0iqoULIruNxDDh2BK3O%2BrCIU8aUmiUcOFvy5Xw1YfjwQNlmBW2IkGwJYtxXh9%2BwDN6vYuGNX07tXzkBtjQJUWTGdzf8AIOUIVxVx5DfyWAQZ7nmYmQv6XSE; nc_sameSiteCookielax=true; nc_sameSiteCookiestrict=true", + "system": true + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\"identificatie\":\"284b5e0a-eb99-4f32-9fd2-4db93966d3d2\",\"omschrijving\":\"TEMP\",\"vertrouwelijkheidaanduiding\":\"openbaar\",\"doel\":\"test doel\",\"verantwoordelijke\":\"X\",\"aanleiding\":\"test aanleiding\",\"indicatieInternOfExtern\":\"extern\",\"handelingInitiator\":\"indienen\",\"onderwerp\":\"openbare ruimte\",\"handelingBehandelaar\":\"behandelen\",\"doorlooptijd\":\"P10D\",\"opschortingEnAanhoudingMogelijk\":false,\"verlengingMogelijk\":true,\"publicatieIndicatie\":false,\"productenOfDiensten\":[\"https://ref.tst.vng.cloud/standaard/\"],\"selectielijstProcestype\":\"https://selectielijst.openzaak.nl/api/v1/procestypen/838e405a-9b12-43c4-a985-d7a7490d422e\",\"referentieproces\":{\"naam\":\"test\",\"link\":\"\"},\"deelzaaktypen\":[\"cae6f26a-1321-4bff-b314-421ddf7775b9\"],\"catalogus\":\"http://localhost:8080/index.php/apps/procest/api/zgw/catalogi/v1/catalogussen/5057408f-fd76-469e-8646-bcc4ba2efa8d\",\"statustypen\":[],\"resultaattypen\":[],\"eigenschappen\":[],\"informatieobjecttypen\":[],\"besluittypen\":[],\"gerelateerdeZaaktypen\":[],\"beginGeldigheid\":\"2019-01-01\",\"versiedatum\":\"2019-01-01\",\"concept\":true,\"verlengingstermijn\":\"P5D\"}" + }, + "auth": { + "type": "jwt", + "jwt": [ + { + "type": "string", + "value": "{\r\n \"iss\": \"procest-admin\",\r\n \"client_id\": \"procest-admin\",\r\n \"iat\": \"1773145188\",\r\n \"user_id\": \"procest-admin\",\r\n \"user_representation\": \"\"\r\n}", + "key": "payload" + }, + { + "type": "string", + "value": "procest-admin-secret-key-for-testing", + "key": "secret" + }, + { + "type": "string", + "value": "HS256", + "key": "algorithm" + }, + { + "type": "boolean", + "value": false, + "key": "isSecretBase64Encoded" + }, + { + "type": "string", + "value": "header", + "key": "addTokenTo" + }, + { + "type": "string", + "value": "Bearer", + "key": "headerPrefix" + }, + { + "type": "string", + "value": "token", + "key": "queryParamKey" + }, + { + "type": "string", + "value": "{}", + "key": "header" + } + ] + } + }, + "response": { + "id": "2cef16b1-7ffe-44db-8d0e-01d895445b90", + "status": "Created", + "code": 201, + "header": [ + { + "key": "Date", + "value": "Tue, 10 Mar 2026 12:19:47 GMT" + }, + { + "key": "Server", + "value": "Apache/2.4.66 (Debian)" + }, + { + "key": "X-Content-Type-Options", + "value": "nosniff" + }, + { + "key": "X-Frame-Options", + "value": "SAMEORIGIN" + }, + { + "key": "X-Permitted-Cross-Domain-Policies", + "value": "none" + }, + { + "key": "X-Robots-Tag", + "value": "noindex, nofollow" + }, + { + "key": "Referrer-Policy", + "value": "no-referrer" + }, + { + "key": "X-Powered-By", + "value": "PHP/8.3.30" + }, + { + "key": "Content-Security-Policy", + "value": "default-src 'none';base-uri 'none';manifest-src 'self';frame-ancestors 'none'" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=5cf04df878765ec8d9a5c976a49ebac7; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=5cf04df878765ec8d9a5c976a49ebac7; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=5cf04df878765ec8d9a5c976a49ebac7; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=5cf04df878765ec8d9a5c976a49ebac7; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=5cf04df878765ec8d9a5c976a49ebac7; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=f4bdf25be62ef839179c3215595c3dc3; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=f4bdf25be62ef839179c3215595c3dc3; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=f4bdf25be62ef839179c3215595c3dc3; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=f4bdf25be62ef839179c3215595c3dc3; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=f4bdf25be62ef839179c3215595c3dc3; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "X-Request-Id", + "value": "tHRCeWuuSPhlLJsGEEd7" + }, + { + "key": "Cache-Control", + "value": "no-cache, no-store, must-revalidate" + }, + { + "key": "Feature-Policy", + "value": "autoplay 'none';camera 'none';fullscreen 'none';geolocation 'none';microphone 'none';payment 'none'" + }, + { + "key": "X-User-Id", + "value": "admin" + }, + { + "key": "Content-Length", + "value": "1330" + }, + { + "key": "Keep-Alive", + "value": "timeout=5, max=100" + }, + { + "key": "Connection", + "value": "Keep-Alive" + }, + { + "key": "Content-Type", + "value": "application/json; charset=utf-8" + } + ], + "stream": { + "type": "Buffer", + "data": [ + 123, + 34, + 117, + 114, + 108, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 105, + 92, + 47, + 118, + 49, + 92, + 47, + 122, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 110, + 92, + 47, + 56, + 51, + 54, + 55, + 101, + 52, + 49, + 57, + 45, + 56, + 97, + 53, + 51, + 45, + 52, + 56, + 50, + 97, + 45, + 97, + 56, + 99, + 51, + 45, + 97, + 53, + 53, + 57, + 98, + 49, + 100, + 49, + 54, + 100, + 57, + 55, + 34, + 44, + 34, + 117, + 117, + 105, + 100, + 34, + 58, + 34, + 56, + 51, + 54, + 55, + 101, + 52, + 49, + 57, + 45, + 56, + 97, + 53, + 51, + 45, + 52, + 56, + 50, + 97, + 45, + 97, + 56, + 99, + 51, + 45, + 97, + 53, + 53, + 57, + 98, + 49, + 100, + 49, + 54, + 100, + 57, + 55, + 34, + 44, + 34, + 105, + 100, + 101, + 110, + 116, + 105, + 102, + 105, + 99, + 97, + 116, + 105, + 101, + 34, + 58, + 34, + 50, + 56, + 52, + 98, + 53, + 101, + 48, + 97, + 45, + 101, + 98, + 57, + 57, + 45, + 52, + 102, + 51, + 50, + 45, + 57, + 102, + 100, + 50, + 45, + 52, + 100, + 98, + 57, + 51, + 57, + 54, + 54, + 100, + 51, + 100, + 50, + 34, + 44, + 34, + 111, + 109, + 115, + 99, + 104, + 114, + 105, + 106, + 118, + 105, + 110, + 103, + 34, + 58, + 34, + 84, + 69, + 77, + 80, + 34, + 44, + 34, + 111, + 109, + 115, + 99, + 104, + 114, + 105, + 106, + 118, + 105, + 110, + 103, + 71, + 101, + 110, + 101, + 114, + 105, + 101, + 107, + 34, + 58, + 34, + 34, + 44, + 34, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 117, + 115, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 105, + 92, + 47, + 118, + 49, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 117, + 115, + 115, + 101, + 110, + 92, + 47, + 53, + 48, + 53, + 55, + 52, + 48, + 56, + 102, + 45, + 102, + 100, + 55, + 54, + 45, + 52, + 54, + 57, + 101, + 45, + 56, + 54, + 52, + 54, + 45, + 98, + 99, + 99, + 52, + 98, + 97, + 50, + 101, + 102, + 97, + 56, + 100, + 34, + 44, + 34, + 100, + 111, + 101, + 108, + 34, + 58, + 34, + 116, + 101, + 115, + 116, + 32, + 100, + 111, + 101, + 108, + 34, + 44, + 34, + 97, + 97, + 110, + 108, + 101, + 105, + 100, + 105, + 110, + 103, + 34, + 58, + 34, + 116, + 101, + 115, + 116, + 32, + 97, + 97, + 110, + 108, + 101, + 105, + 100, + 105, + 110, + 103, + 34, + 44, + 34, + 111, + 110, + 100, + 101, + 114, + 119, + 101, + 114, + 112, + 34, + 58, + 34, + 111, + 112, + 101, + 110, + 98, + 97, + 114, + 101, + 32, + 114, + 117, + 105, + 109, + 116, + 101, + 34, + 44, + 34, + 100, + 111, + 111, + 114, + 108, + 111, + 111, + 112, + 116, + 105, + 106, + 100, + 34, + 58, + 34, + 80, + 49, + 48, + 68, + 34, + 44, + 34, + 118, + 101, + 114, + 116, + 114, + 111, + 117, + 119, + 101, + 108, + 105, + 106, + 107, + 104, + 101, + 105, + 100, + 97, + 97, + 110, + 100, + 117, + 105, + 100, + 105, + 110, + 103, + 34, + 58, + 34, + 111, + 112, + 101, + 110, + 98, + 97, + 97, + 114, + 34, + 44, + 34, + 99, + 111, + 110, + 99, + 101, + 112, + 116, + 34, + 58, + 116, + 114, + 117, + 101, + 44, + 34, + 98, + 101, + 103, + 105, + 110, + 71, + 101, + 108, + 100, + 105, + 103, + 104, + 101, + 105, + 100, + 34, + 58, + 34, + 50, + 48, + 49, + 57, + 45, + 48, + 49, + 45, + 48, + 49, + 34, + 44, + 34, + 101, + 105, + 110, + 100, + 101, + 71, + 101, + 108, + 100, + 105, + 103, + 104, + 101, + 105, + 100, + 34, + 58, + 34, + 50, + 48, + 50, + 54, + 45, + 48, + 51, + 45, + 49, + 48, + 34, + 44, + 34, + 104, + 97, + 110, + 100, + 101, + 108, + 105, + 110, + 103, + 73, + 110, + 105, + 116, + 105, + 97, + 116, + 111, + 114, + 34, + 58, + 34, + 105, + 110, + 100, + 105, + 101, + 110, + 101, + 110, + 34, + 44, + 34, + 105, + 110, + 100, + 105, + 99, + 97, + 116, + 105, + 101, + 73, + 110, + 116, + 101, + 114, + 110, + 79, + 102, + 69, + 120, + 116, + 101, + 114, + 110, + 34, + 58, + 34, + 101, + 120, + 116, + 101, + 114, + 110, + 34, + 44, + 34, + 104, + 97, + 110, + 100, + 101, + 108, + 105, + 110, + 103, + 66, + 101, + 104, + 97, + 110, + 100, + 101, + 108, + 97, + 97, + 114, + 34, + 58, + 34, + 98, + 101, + 104, + 97, + 110, + 100, + 101, + 108, + 101, + 110, + 34, + 44, + 34, + 111, + 112, + 115, + 99, + 104, + 111, + 114, + 116, + 105, + 110, + 103, + 69, + 110, + 65, + 97, + 110, + 104, + 111, + 117, + 100, + 105, + 110, + 103, + 77, + 111, + 103, + 101, + 108, + 105, + 106, + 107, + 34, + 58, + 102, + 97, + 108, + 115, + 101, + 44, + 34, + 118, + 101, + 114, + 108, + 101, + 110, + 103, + 105, + 110, + 103, + 77, + 111, + 103, + 101, + 108, + 105, + 106, + 107, + 34, + 58, + 116, + 114, + 117, + 101, + 44, + 34, + 118, + 101, + 114, + 108, + 101, + 110, + 103, + 105, + 110, + 103, + 115, + 116, + 101, + 114, + 109, + 105, + 106, + 110, + 34, + 58, + 34, + 80, + 53, + 68, + 34, + 44, + 34, + 112, + 117, + 98, + 108, + 105, + 99, + 97, + 116, + 105, + 101, + 73, + 110, + 100, + 105, + 99, + 97, + 116, + 105, + 101, + 34, + 58, + 102, + 97, + 108, + 115, + 101, + 44, + 34, + 112, + 114, + 111, + 100, + 117, + 99, + 116, + 101, + 110, + 79, + 102, + 68, + 105, + 101, + 110, + 115, + 116, + 101, + 110, + 34, + 58, + 91, + 34, + 104, + 116, + 116, + 112, + 115, + 58, + 92, + 47, + 92, + 47, + 114, + 101, + 102, + 46, + 116, + 115, + 116, + 46, + 118, + 110, + 103, + 46, + 99, + 108, + 111, + 117, + 100, + 92, + 47, + 115, + 116, + 97, + 110, + 100, + 97, + 97, + 114, + 100, + 92, + 47, + 34, + 93, + 44, + 34, + 115, + 101, + 108, + 101, + 99, + 116, + 105, + 101, + 108, + 105, + 106, + 115, + 116, + 80, + 114, + 111, + 99, + 101, + 115, + 116, + 121, + 112, + 101, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 115, + 58, + 92, + 47, + 92, + 47, + 115, + 101, + 108, + 101, + 99, + 116, + 105, + 101, + 108, + 105, + 106, + 115, + 116, + 46, + 111, + 112, + 101, + 110, + 122, + 97, + 97, + 107, + 46, + 110, + 108, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 118, + 49, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 121, + 112, + 101, + 110, + 92, + 47, + 56, + 51, + 56, + 101, + 52, + 48, + 53, + 97, + 45, + 57, + 98, + 49, + 50, + 45, + 52, + 51, + 99, + 52, + 45, + 97, + 57, + 56, + 53, + 45, + 100, + 55, + 97, + 55, + 52, + 57, + 48, + 100, + 52, + 50, + 50, + 101, + 34, + 44, + 34, + 114, + 101, + 102, + 101, + 114, + 101, + 110, + 116, + 105, + 101, + 112, + 114, + 111, + 99, + 101, + 115, + 34, + 58, + 123, + 34, + 108, + 105, + 110, + 107, + 34, + 58, + 34, + 34, + 44, + 34, + 110, + 97, + 97, + 109, + 34, + 58, + 34, + 116, + 101, + 115, + 116, + 34, + 125, + 44, + 34, + 118, + 101, + 114, + 97, + 110, + 116, + 119, + 111, + 111, + 114, + 100, + 101, + 108, + 105, + 106, + 107, + 101, + 34, + 58, + 34, + 88, + 34, + 44, + 34, + 103, + 101, + 114, + 101, + 108, + 97, + 116, + 101, + 101, + 114, + 100, + 101, + 90, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 98, + 101, + 115, + 108, + 117, + 105, + 116, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 105, + 110, + 102, + 111, + 114, + 109, + 97, + 116, + 105, + 101, + 111, + 98, + 106, + 101, + 99, + 116, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 100, + 101, + 101, + 108, + 122, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 116, + 111, + 101, + 108, + 105, + 99, + 104, + 116, + 105, + 110, + 103, + 34, + 58, + 34, + 34, + 44, + 34, + 118, + 101, + 114, + 115, + 105, + 101, + 100, + 97, + 116, + 117, + 109, + 34, + 58, + 34, + 50, + 48, + 49, + 57, + 45, + 48, + 49, + 45, + 48, + 49, + 34, + 44, + 34, + 101, + 105, + 103, + 101, + 110, + 115, + 99, + 104, + 97, + 112, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 115, + 116, + 97, + 116, + 117, + 115, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 114, + 101, + 115, + 117, + 108, + 116, + 97, + 97, + 116, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 114, + 111, + 108, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 125 + ] + }, + "cookie": [], + "responseTime": 379, + "responseSize": 1330 + }, + "id": "1df39e9c-74ef-41c1-b1dd-49f96000563d" + }, + { + "cursor": { + "ref": "3a969ac5-bbd2-470b-8ca0-8eb6783c7752", + "length": 313, + "cycles": 1, + "position": 194, + "iteration": 0, + "httpRequestId": "37d3ad1b-5c10-4c73-aed7-da99438c751c" + }, + "item": { + "id": "e437fbfc-26c0-4c6b-9128-4334ecdf8cf8", + "name": "Create Roltype", + "request": { + "url": { + "path": [ + "roltypen" + ], + "host": [ + "{{ztc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n\t\"omschrijving\": \"TEMP\",\n\t\"omschrijvingGeneriek\": \"adviseur\",\n\t\"zaaktype\": \"{{temp_zaaktype_url}}\"\n}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "f20766a7-14de-417b-8b5a-c9f31c87ed07", + "type": "text/javascript", + "exec": [ + "pm.environment.set(\"temp_roltype\", pm.response.json().url);" + ], + "_lastExecutionId": "20974693-53cd-450e-a635-de0664bca079" + } + } + ] + }, + "request": { + "url": { + "protocol": "http", + "port": "8080", + "path": [ + "index.php", + "apps", + "procest", + "api", + "zgw", + "catalogi", + "v1", + "roltypen" + ], + "host": [ + "localhost" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Authorization", + "value": "Bearer eyJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJwcm9jZXN0LWFkbWluIiwiY2xpZW50X2lkIjoicHJvY2VzdC1hZG1pbiIsImlhdCI6IjE3NzMxNDUxODgiLCJ1c2VyX2lkIjoicHJvY2VzdC1hZG1pbiIsInVzZXJfcmVwcmVzZW50YXRpb24iOiIifQ.g7R-ltrqoXnECj2kqVlyc9u5yRBhu1JPMGnxVlHZKj4", + "system": true + }, + { + "key": "User-Agent", + "value": "PostmanRuntime/7.39.1", + "system": true + }, + { + "key": "Accept", + "value": "*/*", + "system": true + }, + { + "key": "Cache-Control", + "value": "no-cache", + "system": true + }, + { + "key": "Postman-Token", + "value": "b20bdec1-af00-415a-a65d-31f57d18f264", + "system": true + }, + { + "key": "Host", + "value": "localhost:8080", + "system": true + }, + { + "key": "Accept-Encoding", + "value": "gzip, deflate, br", + "system": true + }, + { + "key": "Connection", + "value": "keep-alive", + "system": true + }, + { + "key": "Content-Length", + "value": "192", + "system": true + }, + { + "key": "Cookie", + "value": "ocvp3112b4wg=f4bdf25be62ef839179c3215595c3dc3; oc_sessionPassphrase=LBNdKxRzA0iqoULIruNxDDh2BK3O%2BrCIU8aUmiUcOFvy5Xw1YfjwQNlmBW2IkGwJYtxXh9%2BwDN6vYuGNX07tXzkBtjQJUWTGdzf8AIOUIVxVx5DfyWAQZ7nmYmQv6XSE; nc_sameSiteCookielax=true; nc_sameSiteCookiestrict=true", + "system": true + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n\t\"omschrijving\": \"TEMP\",\n\t\"omschrijvingGeneriek\": \"adviseur\",\n\t\"zaaktype\": \"http://localhost:8080/index.php/apps/procest/api/zgw/catalogi/v1/zaaktypen/8367e419-8a53-482a-a8c3-a559b1d16d97\"\n}" + }, + "auth": { + "type": "jwt", + "jwt": [ + { + "type": "string", + "value": "{\r\n \"iss\": \"procest-admin\",\r\n \"client_id\": \"procest-admin\",\r\n \"iat\": \"1773145188\",\r\n \"user_id\": \"procest-admin\",\r\n \"user_representation\": \"\"\r\n}", + "key": "payload" + }, + { + "type": "string", + "value": "procest-admin-secret-key-for-testing", + "key": "secret" + }, + { + "type": "string", + "value": "HS256", + "key": "algorithm" + }, + { + "type": "boolean", + "value": false, + "key": "isSecretBase64Encoded" + }, + { + "type": "string", + "value": "header", + "key": "addTokenTo" + }, + { + "type": "string", + "value": "Bearer", + "key": "headerPrefix" + }, + { + "type": "string", + "value": "token", + "key": "queryParamKey" + }, + { + "type": "string", + "value": "{}", + "key": "header" + } + ] + } + }, + "response": { + "id": "4bed67d3-8b49-4953-8190-572829438b39", + "status": "Created", + "code": 201, + "header": [ + { + "key": "Date", + "value": "Tue, 10 Mar 2026 12:19:48 GMT" + }, + { + "key": "Server", + "value": "Apache/2.4.66 (Debian)" + }, + { + "key": "X-Content-Type-Options", + "value": "nosniff" + }, + { + "key": "X-Frame-Options", + "value": "SAMEORIGIN" + }, + { + "key": "X-Permitted-Cross-Domain-Policies", + "value": "none" + }, + { + "key": "X-Robots-Tag", + "value": "noindex, nofollow" + }, + { + "key": "Referrer-Policy", + "value": "no-referrer" + }, + { + "key": "X-Powered-By", + "value": "PHP/8.3.30" + }, + { + "key": "Content-Security-Policy", + "value": "default-src 'none';base-uri 'none';manifest-src 'self';frame-ancestors 'none'" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=f4bdf25be62ef839179c3215595c3dc3; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=f4bdf25be62ef839179c3215595c3dc3; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=f4bdf25be62ef839179c3215595c3dc3; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=f4bdf25be62ef839179c3215595c3dc3; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=f4bdf25be62ef839179c3215595c3dc3; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=8e9a9116ec46a2c51f3a442a573cc79a; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=8e9a9116ec46a2c51f3a442a573cc79a; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=8e9a9116ec46a2c51f3a442a573cc79a; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=8e9a9116ec46a2c51f3a442a573cc79a; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=8e9a9116ec46a2c51f3a442a573cc79a; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "X-Request-Id", + "value": "jm4jsnqhJdmuFYCHCrVk" + }, + { + "key": "Cache-Control", + "value": "no-cache, no-store, must-revalidate" + }, + { + "key": "Feature-Policy", + "value": "autoplay 'none';camera 'none';fullscreen 'none';geolocation 'none';microphone 'none';payment 'none'" + }, + { + "key": "X-User-Id", + "value": "admin" + }, + { + "key": "Content-Length", + "value": "369" + }, + { + "key": "Keep-Alive", + "value": "timeout=5, max=99" + }, + { + "key": "Connection", + "value": "Keep-Alive" + }, + { + "key": "Content-Type", + "value": "application/json; charset=utf-8" + } + ], + "stream": { + "type": "Buffer", + "data": [ + 123, + 34, + 117, + 114, + 108, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 105, + 92, + 47, + 118, + 49, + 92, + 47, + 114, + 111, + 108, + 116, + 121, + 112, + 101, + 110, + 92, + 47, + 55, + 102, + 56, + 97, + 99, + 99, + 56, + 100, + 45, + 97, + 54, + 97, + 51, + 45, + 52, + 97, + 98, + 49, + 45, + 56, + 50, + 99, + 57, + 45, + 50, + 101, + 55, + 55, + 55, + 97, + 100, + 102, + 53, + 101, + 102, + 54, + 34, + 44, + 34, + 117, + 117, + 105, + 100, + 34, + 58, + 34, + 55, + 102, + 56, + 97, + 99, + 99, + 56, + 100, + 45, + 97, + 54, + 97, + 51, + 45, + 52, + 97, + 98, + 49, + 45, + 56, + 50, + 99, + 57, + 45, + 50, + 101, + 55, + 55, + 55, + 97, + 100, + 102, + 53, + 101, + 102, + 54, + 34, + 44, + 34, + 111, + 109, + 115, + 99, + 104, + 114, + 105, + 106, + 118, + 105, + 110, + 103, + 34, + 58, + 34, + 84, + 69, + 77, + 80, + 34, + 44, + 34, + 111, + 109, + 115, + 99, + 104, + 114, + 105, + 106, + 118, + 105, + 110, + 103, + 71, + 101, + 110, + 101, + 114, + 105, + 101, + 107, + 34, + 58, + 34, + 97, + 100, + 118, + 105, + 115, + 101, + 117, + 114, + 34, + 44, + 34, + 122, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 105, + 92, + 47, + 118, + 49, + 92, + 47, + 122, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 110, + 92, + 47, + 56, + 51, + 54, + 55, + 101, + 52, + 49, + 57, + 45, + 56, + 97, + 53, + 51, + 45, + 52, + 56, + 50, + 97, + 45, + 97, + 56, + 99, + 51, + 45, + 97, + 53, + 53, + 57, + 98, + 49, + 100, + 49, + 54, + 100, + 57, + 55, + 34, + 125 + ] + }, + "cookie": [], + "responseTime": 214, + "responseSize": 369 + }, + "id": "e437fbfc-26c0-4c6b-9128-4334ecdf8cf8" + }, + { + "cursor": { + "ref": "59e0b40b-b45f-4421-9936-3d63043992a4", + "length": 313, + "cycles": 1, + "position": 195, + "iteration": 0, + "httpRequestId": "30174b9e-564c-4db1-b2d3-2a36896402e0" + }, + "item": { + "id": "57908bd9-916c-4cab-8329-8c5a710a9b60", + "name": "Publish Zaaktype for roltype validation", + "request": { + "url": { + "path": [ + "publish" + ], + "host": [ + "{{temp_zaaktype_url}}" + ], + "query": [], + "variable": [] + }, + "method": "POST" + }, + "response": [], + "event": [] + }, + "request": { + "url": { + "protocol": "http", + "port": "8080", + "path": [ + "index.php", + "apps", + "procest", + "api", + "zgw", + "catalogi", + "v1", + "zaaktypen", + "8367e419-8a53-482a-a8c3-a559b1d16d97", + "publish" + ], + "host": [ + "localhost" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Authorization", + "value": "Bearer eyJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJwcm9jZXN0LWFkbWluIiwiY2xpZW50X2lkIjoicHJvY2VzdC1hZG1pbiIsImlhdCI6IjE3NzMxNDUxODgiLCJ1c2VyX2lkIjoicHJvY2VzdC1hZG1pbiIsInVzZXJfcmVwcmVzZW50YXRpb24iOiIifQ.g7R-ltrqoXnECj2kqVlyc9u5yRBhu1JPMGnxVlHZKj4", + "system": true + }, + { + "key": "User-Agent", + "value": "PostmanRuntime/7.39.1", + "system": true + }, + { + "key": "Accept", + "value": "*/*", + "system": true + }, + { + "key": "Cache-Control", + "value": "no-cache", + "system": true + }, + { + "key": "Postman-Token", + "value": "5995aadf-4cbd-4280-bc41-b47b74c1e2df", + "system": true + }, + { + "key": "Host", + "value": "localhost:8080", + "system": true + }, + { + "key": "Accept-Encoding", + "value": "gzip, deflate, br", + "system": true + }, + { + "key": "Connection", + "value": "keep-alive", + "system": true + }, + { + "key": "Cookie", + "value": "ocvp3112b4wg=8e9a9116ec46a2c51f3a442a573cc79a; oc_sessionPassphrase=LBNdKxRzA0iqoULIruNxDDh2BK3O%2BrCIU8aUmiUcOFvy5Xw1YfjwQNlmBW2IkGwJYtxXh9%2BwDN6vYuGNX07tXzkBtjQJUWTGdzf8AIOUIVxVx5DfyWAQZ7nmYmQv6XSE; nc_sameSiteCookielax=true; nc_sameSiteCookiestrict=true", + "system": true + }, + { + "key": "Content-Length", + "value": "0", + "system": true + } + ], + "method": "POST", + "auth": { + "type": "jwt", + "jwt": [ + { + "type": "string", + "value": "{\r\n \"iss\": \"procest-admin\",\r\n \"client_id\": \"procest-admin\",\r\n \"iat\": \"1773145188\",\r\n \"user_id\": \"procest-admin\",\r\n \"user_representation\": \"\"\r\n}", + "key": "payload" + }, + { + "type": "string", + "value": "procest-admin-secret-key-for-testing", + "key": "secret" + }, + { + "type": "string", + "value": "HS256", + "key": "algorithm" + }, + { + "type": "boolean", + "value": false, + "key": "isSecretBase64Encoded" + }, + { + "type": "string", + "value": "header", + "key": "addTokenTo" + }, + { + "type": "string", + "value": "Bearer", + "key": "headerPrefix" + }, + { + "type": "string", + "value": "token", + "key": "queryParamKey" + }, + { + "type": "string", + "value": "{}", + "key": "header" + } + ] + } + }, + "response": { + "id": "f470dae1-b15f-4a76-baff-4bce2ac2b552", + "status": "OK", + "code": 200, + "header": [ + { + "key": "Date", + "value": "Tue, 10 Mar 2026 12:19:48 GMT" + }, + { + "key": "Server", + "value": "Apache/2.4.66 (Debian)" + }, + { + "key": "X-Content-Type-Options", + "value": "nosniff" + }, + { + "key": "X-Frame-Options", + "value": "SAMEORIGIN" + }, + { + "key": "X-Permitted-Cross-Domain-Policies", + "value": "none" + }, + { + "key": "X-Robots-Tag", + "value": "noindex, nofollow" + }, + { + "key": "Referrer-Policy", + "value": "no-referrer" + }, + { + "key": "X-Powered-By", + "value": "PHP/8.3.30" + }, + { + "key": "Content-Security-Policy", + "value": "default-src 'none';base-uri 'none';manifest-src 'self';frame-ancestors 'none'" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=8e9a9116ec46a2c51f3a442a573cc79a; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=8e9a9116ec46a2c51f3a442a573cc79a; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=8e9a9116ec46a2c51f3a442a573cc79a; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=8e9a9116ec46a2c51f3a442a573cc79a; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=8e9a9116ec46a2c51f3a442a573cc79a; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=30de28c507fee4cf26ec69a901ef21ae; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=30de28c507fee4cf26ec69a901ef21ae; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=30de28c507fee4cf26ec69a901ef21ae; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=30de28c507fee4cf26ec69a901ef21ae; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=30de28c507fee4cf26ec69a901ef21ae; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "X-Request-Id", + "value": "wVC42za4nPSJclX1LPhw" + }, + { + "key": "Cache-Control", + "value": "no-cache, no-store, must-revalidate" + }, + { + "key": "Feature-Policy", + "value": "autoplay 'none';camera 'none';fullscreen 'none';geolocation 'none';microphone 'none';payment 'none'" + }, + { + "key": "X-User-Id", + "value": "admin" + }, + { + "key": "Content-Encoding", + "value": "gzip" + }, + { + "key": "Content-Length", + "value": "678" + }, + { + "key": "Keep-Alive", + "value": "timeout=5, max=98" + }, + { + "key": "Connection", + "value": "Keep-Alive" + }, + { + "key": "Content-Type", + "value": "application/json; charset=utf-8" + } + ], + "stream": { + "type": "Buffer", + "data": [ + 123, + 34, + 117, + 114, + 108, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 105, + 92, + 47, + 118, + 49, + 92, + 47, + 122, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 110, + 92, + 47, + 56, + 51, + 54, + 55, + 101, + 52, + 49, + 57, + 45, + 56, + 97, + 53, + 51, + 45, + 52, + 56, + 50, + 97, + 45, + 97, + 56, + 99, + 51, + 45, + 97, + 53, + 53, + 57, + 98, + 49, + 100, + 49, + 54, + 100, + 57, + 55, + 34, + 44, + 34, + 117, + 117, + 105, + 100, + 34, + 58, + 34, + 56, + 51, + 54, + 55, + 101, + 52, + 49, + 57, + 45, + 56, + 97, + 53, + 51, + 45, + 52, + 56, + 50, + 97, + 45, + 97, + 56, + 99, + 51, + 45, + 97, + 53, + 53, + 57, + 98, + 49, + 100, + 49, + 54, + 100, + 57, + 55, + 34, + 44, + 34, + 105, + 100, + 101, + 110, + 116, + 105, + 102, + 105, + 99, + 97, + 116, + 105, + 101, + 34, + 58, + 34, + 50, + 56, + 52, + 98, + 53, + 101, + 48, + 97, + 45, + 101, + 98, + 57, + 57, + 45, + 52, + 102, + 51, + 50, + 45, + 57, + 102, + 100, + 50, + 45, + 52, + 100, + 98, + 57, + 51, + 57, + 54, + 54, + 100, + 51, + 100, + 50, + 34, + 44, + 34, + 111, + 109, + 115, + 99, + 104, + 114, + 105, + 106, + 118, + 105, + 110, + 103, + 34, + 58, + 34, + 84, + 69, + 77, + 80, + 34, + 44, + 34, + 111, + 109, + 115, + 99, + 104, + 114, + 105, + 106, + 118, + 105, + 110, + 103, + 71, + 101, + 110, + 101, + 114, + 105, + 101, + 107, + 34, + 58, + 34, + 34, + 44, + 34, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 117, + 115, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 105, + 92, + 47, + 118, + 49, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 117, + 115, + 115, + 101, + 110, + 92, + 47, + 53, + 48, + 53, + 55, + 52, + 48, + 56, + 102, + 45, + 102, + 100, + 55, + 54, + 45, + 52, + 54, + 57, + 101, + 45, + 56, + 54, + 52, + 54, + 45, + 98, + 99, + 99, + 52, + 98, + 97, + 50, + 101, + 102, + 97, + 56, + 100, + 34, + 44, + 34, + 100, + 111, + 101, + 108, + 34, + 58, + 34, + 116, + 101, + 115, + 116, + 32, + 100, + 111, + 101, + 108, + 34, + 44, + 34, + 97, + 97, + 110, + 108, + 101, + 105, + 100, + 105, + 110, + 103, + 34, + 58, + 34, + 116, + 101, + 115, + 116, + 32, + 97, + 97, + 110, + 108, + 101, + 105, + 100, + 105, + 110, + 103, + 34, + 44, + 34, + 111, + 110, + 100, + 101, + 114, + 119, + 101, + 114, + 112, + 34, + 58, + 34, + 111, + 112, + 101, + 110, + 98, + 97, + 114, + 101, + 32, + 114, + 117, + 105, + 109, + 116, + 101, + 34, + 44, + 34, + 100, + 111, + 111, + 114, + 108, + 111, + 111, + 112, + 116, + 105, + 106, + 100, + 34, + 58, + 34, + 80, + 49, + 48, + 68, + 34, + 44, + 34, + 118, + 101, + 114, + 116, + 114, + 111, + 117, + 119, + 101, + 108, + 105, + 106, + 107, + 104, + 101, + 105, + 100, + 97, + 97, + 110, + 100, + 117, + 105, + 100, + 105, + 110, + 103, + 34, + 58, + 34, + 111, + 112, + 101, + 110, + 98, + 97, + 97, + 114, + 34, + 44, + 34, + 99, + 111, + 110, + 99, + 101, + 112, + 116, + 34, + 58, + 102, + 97, + 108, + 115, + 101, + 44, + 34, + 98, + 101, + 103, + 105, + 110, + 71, + 101, + 108, + 100, + 105, + 103, + 104, + 101, + 105, + 100, + 34, + 58, + 34, + 50, + 48, + 49, + 57, + 45, + 48, + 49, + 45, + 48, + 49, + 34, + 44, + 34, + 101, + 105, + 110, + 100, + 101, + 71, + 101, + 108, + 100, + 105, + 103, + 104, + 101, + 105, + 100, + 34, + 58, + 34, + 50, + 48, + 50, + 54, + 45, + 48, + 51, + 45, + 49, + 48, + 34, + 44, + 34, + 104, + 97, + 110, + 100, + 101, + 108, + 105, + 110, + 103, + 73, + 110, + 105, + 116, + 105, + 97, + 116, + 111, + 114, + 34, + 58, + 34, + 105, + 110, + 100, + 105, + 101, + 110, + 101, + 110, + 34, + 44, + 34, + 105, + 110, + 100, + 105, + 99, + 97, + 116, + 105, + 101, + 73, + 110, + 116, + 101, + 114, + 110, + 79, + 102, + 69, + 120, + 116, + 101, + 114, + 110, + 34, + 58, + 34, + 101, + 120, + 116, + 101, + 114, + 110, + 34, + 44, + 34, + 104, + 97, + 110, + 100, + 101, + 108, + 105, + 110, + 103, + 66, + 101, + 104, + 97, + 110, + 100, + 101, + 108, + 97, + 97, + 114, + 34, + 58, + 34, + 98, + 101, + 104, + 97, + 110, + 100, + 101, + 108, + 101, + 110, + 34, + 44, + 34, + 111, + 112, + 115, + 99, + 104, + 111, + 114, + 116, + 105, + 110, + 103, + 69, + 110, + 65, + 97, + 110, + 104, + 111, + 117, + 100, + 105, + 110, + 103, + 77, + 111, + 103, + 101, + 108, + 105, + 106, + 107, + 34, + 58, + 102, + 97, + 108, + 115, + 101, + 44, + 34, + 118, + 101, + 114, + 108, + 101, + 110, + 103, + 105, + 110, + 103, + 77, + 111, + 103, + 101, + 108, + 105, + 106, + 107, + 34, + 58, + 116, + 114, + 117, + 101, + 44, + 34, + 118, + 101, + 114, + 108, + 101, + 110, + 103, + 105, + 110, + 103, + 115, + 116, + 101, + 114, + 109, + 105, + 106, + 110, + 34, + 58, + 34, + 80, + 53, + 68, + 34, + 44, + 34, + 112, + 117, + 98, + 108, + 105, + 99, + 97, + 116, + 105, + 101, + 73, + 110, + 100, + 105, + 99, + 97, + 116, + 105, + 101, + 34, + 58, + 102, + 97, + 108, + 115, + 101, + 44, + 34, + 112, + 114, + 111, + 100, + 117, + 99, + 116, + 101, + 110, + 79, + 102, + 68, + 105, + 101, + 110, + 115, + 116, + 101, + 110, + 34, + 58, + 91, + 34, + 104, + 116, + 116, + 112, + 115, + 58, + 92, + 47, + 92, + 47, + 114, + 101, + 102, + 46, + 116, + 115, + 116, + 46, + 118, + 110, + 103, + 46, + 99, + 108, + 111, + 117, + 100, + 92, + 47, + 115, + 116, + 97, + 110, + 100, + 97, + 97, + 114, + 100, + 92, + 47, + 34, + 93, + 44, + 34, + 115, + 101, + 108, + 101, + 99, + 116, + 105, + 101, + 108, + 105, + 106, + 115, + 116, + 80, + 114, + 111, + 99, + 101, + 115, + 116, + 121, + 112, + 101, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 115, + 58, + 92, + 47, + 92, + 47, + 115, + 101, + 108, + 101, + 99, + 116, + 105, + 101, + 108, + 105, + 106, + 115, + 116, + 46, + 111, + 112, + 101, + 110, + 122, + 97, + 97, + 107, + 46, + 110, + 108, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 118, + 49, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 121, + 112, + 101, + 110, + 92, + 47, + 56, + 51, + 56, + 101, + 52, + 48, + 53, + 97, + 45, + 57, + 98, + 49, + 50, + 45, + 52, + 51, + 99, + 52, + 45, + 97, + 57, + 56, + 53, + 45, + 100, + 55, + 97, + 55, + 52, + 57, + 48, + 100, + 52, + 50, + 50, + 101, + 34, + 44, + 34, + 114, + 101, + 102, + 101, + 114, + 101, + 110, + 116, + 105, + 101, + 112, + 114, + 111, + 99, + 101, + 115, + 34, + 58, + 123, + 34, + 108, + 105, + 110, + 107, + 34, + 58, + 34, + 34, + 44, + 34, + 110, + 97, + 97, + 109, + 34, + 58, + 34, + 116, + 101, + 115, + 116, + 34, + 125, + 44, + 34, + 118, + 101, + 114, + 97, + 110, + 116, + 119, + 111, + 111, + 114, + 100, + 101, + 108, + 105, + 106, + 107, + 101, + 34, + 58, + 34, + 88, + 34, + 44, + 34, + 103, + 101, + 114, + 101, + 108, + 97, + 116, + 101, + 101, + 114, + 100, + 101, + 90, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 98, + 101, + 115, + 108, + 117, + 105, + 116, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 105, + 110, + 102, + 111, + 114, + 109, + 97, + 116, + 105, + 101, + 111, + 98, + 106, + 101, + 99, + 116, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 100, + 101, + 101, + 108, + 122, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 116, + 111, + 101, + 108, + 105, + 99, + 104, + 116, + 105, + 110, + 103, + 34, + 58, + 34, + 34, + 44, + 34, + 118, + 101, + 114, + 115, + 105, + 101, + 100, + 97, + 116, + 117, + 109, + 34, + 58, + 34, + 50, + 48, + 49, + 57, + 45, + 48, + 49, + 45, + 48, + 49, + 34, + 125 + ] + }, + "cookie": [], + "responseTime": 185, + "responseSize": 1261 + }, + "id": "57908bd9-916c-4cab-8329-8c5a710a9b60" + }, + { + "cursor": { + "ref": "8cbb2507-be63-49b7-bac5-145a30bd4639", + "length": 313, + "cycles": 1, + "position": 196, + "iteration": 0, + "httpRequestId": "f7abac32-c41f-4cb0-a693-f917d21b49a8" + }, + "item": { + "id": "f5ba079b-a1c8-4c35-8ff7-d21914d51d7c", + "name": "Create Zaak for roltype validation", + "request": { + "url": { + "path": [ + "zaken" + ], + "host": [ + "{{zrc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Accept-Crs", + "value": "EPSG:4326" + }, + { + "key": "Content-Crs", + "value": "EPSG:4326" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{{zaak_body}}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "c5ef8415-5058-43e8-ba57-06993c108143", + "type": "text/javascript", + "exec": [ + "// If the test failed and the Zaak was created, delete it", + "if(pm.response.code == 201) {", + " pm.environment.set(\"created_zaak_url\", pm.response.json().url);", + "}" + ], + "_lastExecutionId": "eb0e6c67-5ed9-4542-9c1c-baa3949ac78d" + } + }, + { + "listen": "prerequest", + "script": { + "id": "e09b5f9a-986c-46be-8afb-adc75e93601e", + "type": "text/javascript", + "exec": [ + "" + ], + "_lastExecutionId": "adad1c74-c522-4bef-ba9c-9fef4bf375ab" + } + } + ] + }, + "request": { + "url": { + "protocol": "http", + "port": "8080", + "path": [ + "index.php", + "apps", + "procest", + "api", + "zgw", + "zaken", + "v1", + "zaken" + ], + "host": [ + "localhost" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Accept-Crs", + "value": "EPSG:4326" + }, + { + "key": "Content-Crs", + "value": "EPSG:4326" + }, + { + "key": "Authorization", + "value": "Bearer eyJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJwcm9jZXN0LWFkbWluIiwiY2xpZW50X2lkIjoicHJvY2VzdC1hZG1pbiIsImlhdCI6IjE3NzMxNDUxODkiLCJ1c2VyX2lkIjoicHJvY2VzdC1hZG1pbiIsInVzZXJfcmVwcmVzZW50YXRpb24iOiIifQ.swbtVP4Dcs2vbHUcPBQm7N6tJxGJogZnV1YSPUkRE0g", + "system": true + }, + { + "key": "User-Agent", + "value": "PostmanRuntime/7.39.1", + "system": true + }, + { + "key": "Accept", + "value": "*/*", + "system": true + }, + { + "key": "Cache-Control", + "value": "no-cache", + "system": true + }, + { + "key": "Postman-Token", + "value": "d51f7d29-0968-40db-bbdd-05d32c20afce", + "system": true + }, + { + "key": "Host", + "value": "localhost:8080", + "system": true + }, + { + "key": "Accept-Encoding", + "value": "gzip, deflate, br", + "system": true + }, + { + "key": "Connection", + "value": "keep-alive", + "system": true + }, + { + "key": "Content-Length", + "value": "13", + "system": true + }, + { + "key": "Cookie", + "value": "ocvp3112b4wg=30de28c507fee4cf26ec69a901ef21ae; oc_sessionPassphrase=LBNdKxRzA0iqoULIruNxDDh2BK3O%2BrCIU8aUmiUcOFvy5Xw1YfjwQNlmBW2IkGwJYtxXh9%2BwDN6vYuGNX07tXzkBtjQJUWTGdzf8AIOUIVxVx5DfyWAQZ7nmYmQv6XSE; nc_sameSiteCookielax=true; nc_sameSiteCookiestrict=true", + "system": true + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{{zaak_body}}" + }, + "auth": { + "type": "jwt", + "jwt": [ + { + "type": "string", + "value": "{\r\n \"iss\": \"procest-admin\",\r\n \"client_id\": \"procest-admin\",\r\n \"iat\": \"1773145189\",\r\n \"user_id\": \"procest-admin\",\r\n \"user_representation\": \"\"\r\n}", + "key": "payload" + }, + { + "type": "string", + "value": "procest-admin-secret-key-for-testing", + "key": "secret" + }, + { + "type": "string", + "value": "HS256", + "key": "algorithm" + }, + { + "type": "boolean", + "value": false, + "key": "isSecretBase64Encoded" + }, + { + "type": "string", + "value": "header", + "key": "addTokenTo" + }, + { + "type": "string", + "value": "Bearer", + "key": "headerPrefix" + }, + { + "type": "string", + "value": "token", + "key": "queryParamKey" + }, + { + "type": "string", + "value": "{}", + "key": "header" + } + ] + } + }, + "response": { + "id": "1d243419-1dd0-4bfb-bbbb-02dbc6094ef1", + "status": "Bad request", + "code": 400, + "header": [ + { + "key": "Date", + "value": "Tue, 10 Mar 2026 12:19:48 GMT" + }, + { + "key": "Server", + "value": "Apache/2.4.66 (Debian)" + }, + { + "key": "X-Content-Type-Options", + "value": "nosniff" + }, + { + "key": "X-Frame-Options", + "value": "SAMEORIGIN" + }, + { + "key": "X-Permitted-Cross-Domain-Policies", + "value": "none" + }, + { + "key": "X-Robots-Tag", + "value": "noindex, nofollow" + }, + { + "key": "Referrer-Policy", + "value": "no-referrer" + }, + { + "key": "X-Powered-By", + "value": "PHP/8.3.30" + }, + { + "key": "Content-Security-Policy", + "value": "default-src 'none';base-uri 'none';manifest-src 'self';frame-ancestors 'none'" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=30de28c507fee4cf26ec69a901ef21ae; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=30de28c507fee4cf26ec69a901ef21ae; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=30de28c507fee4cf26ec69a901ef21ae; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=30de28c507fee4cf26ec69a901ef21ae; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=30de28c507fee4cf26ec69a901ef21ae; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=0145c865d5d0d8d2fb26455d354b1547; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=0145c865d5d0d8d2fb26455d354b1547; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=0145c865d5d0d8d2fb26455d354b1547; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=0145c865d5d0d8d2fb26455d354b1547; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=0145c865d5d0d8d2fb26455d354b1547; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "X-Request-Id", + "value": "wle3O4DDO6Vi6KqTICaS" + }, + { + "key": "Cache-Control", + "value": "no-cache, no-store, must-revalidate" + }, + { + "key": "Feature-Policy", + "value": "autoplay 'none';camera 'none';fullscreen 'none';geolocation 'none';microphone 'none';payment 'none'" + }, + { + "key": "X-User-Id", + "value": "admin" + }, + { + "key": "Content-Length", + "value": "122" + }, + { + "key": "Connection", + "value": "close" + }, + { + "key": "Content-Type", + "value": "application/json; charset=utf-8" + } + ], + "stream": { + "type": "Buffer", + "data": [ + 123, + 34, + 100, + 101, + 116, + 97, + 105, + 108, + 34, + 58, + 34, + 80, + 114, + 111, + 112, + 101, + 114, + 116, + 121, + 32, + 39, + 99, + 97, + 115, + 101, + 84, + 121, + 112, + 101, + 39, + 32, + 115, + 104, + 111, + 117, + 108, + 100, + 32, + 109, + 97, + 116, + 99, + 104, + 32, + 102, + 111, + 114, + 109, + 97, + 116, + 32, + 39, + 117, + 117, + 105, + 100, + 39, + 32, + 98, + 117, + 116, + 32, + 39, + 39, + 32, + 100, + 111, + 101, + 115, + 32, + 110, + 111, + 116, + 46, + 32, + 80, + 108, + 101, + 97, + 115, + 101, + 32, + 112, + 114, + 111, + 118, + 105, + 100, + 101, + 32, + 97, + 32, + 118, + 97, + 108, + 117, + 101, + 32, + 105, + 110, + 32, + 116, + 104, + 101, + 32, + 99, + 111, + 114, + 114, + 101, + 99, + 116, + 32, + 102, + 111, + 114, + 109, + 97, + 116, + 46, + 34, + 125 + ] + }, + "cookie": [], + "responseTime": 115, + "responseSize": 122 + }, + "id": "f5ba079b-a1c8-4c35-8ff7-d21914d51d7c" + }, + { + "cursor": { + "ref": "eca3027e-edd3-496b-88fc-623b70f67641", + "length": 313, + "cycles": 1, + "position": 197, + "iteration": 0, + "httpRequestId": "44519401-1733-4f37-b9a4-27102935c103" + }, + "item": { + "id": "11fc223e-8d50-46ed-88d8-c2049b0d7eb9", + "name": "(zrc-019a) Rol toevoegen aan Zaak met roltype die niet hoort bij Zaak.zaaktype is onmogelijk", + "request": { + "url": { + "path": [ + "rollen" + ], + "host": [ + "{{zrc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n\t\"zaak\": \"{{created_zaak_url}}\",\n\t\"betrokkeneType\": \"natuurlijk_persoon\",\n\t\"roltype\": \"{{temp_roltype}}\",\n\t\"roltoelichting\": \"bla\"\n}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "2a658ee8-c39f-411d-a401-7d81dd72eae4", + "type": "text/javascript", + "exec": [ + "pm.test(\"(zrc-018a) Rol toevoegen aan Zaak met roltype die niet hoort bij Zaak.zaaktype geeft 400\", function() {", + " pm.response.to.have.status(400);", + " ", + " var error = pm.response.json()[\"invalidParams\"][0];", + " pm.expect(error.name).to.be.equal(\"nonFieldErrors\");", + " pm.expect(error.code).to.be.equal(\"zaaktype-mismatch\");", + "});" + ], + "_lastExecutionId": "62dcf797-17dc-43bb-8d55-18d2f7d4cdb4" + } + } + ] + }, + "request": { + "url": { + "protocol": "http", + "port": "8080", + "path": [ + "index.php", + "apps", + "procest", + "api", + "zgw", + "zaken", + "v1", + "rollen" + ], + "host": [ + "localhost" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Authorization", + "value": "Bearer eyJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJwcm9jZXN0LWFkbWluIiwiY2xpZW50X2lkIjoicHJvY2VzdC1hZG1pbiIsImlhdCI6IjE3NzMxNDUxODkiLCJ1c2VyX2lkIjoicHJvY2VzdC1hZG1pbiIsInVzZXJfcmVwcmVzZW50YXRpb24iOiIifQ.swbtVP4Dcs2vbHUcPBQm7N6tJxGJogZnV1YSPUkRE0g", + "system": true + }, + { + "key": "User-Agent", + "value": "PostmanRuntime/7.39.1", + "system": true + }, + { + "key": "Accept", + "value": "*/*", + "system": true + }, + { + "key": "Cache-Control", + "value": "no-cache", + "system": true + }, + { + "key": "Postman-Token", + "value": "6a5a017c-7abf-49a6-8244-7799c39b24e5", + "system": true + }, + { + "key": "Host", + "value": "localhost:8080", + "system": true + }, + { + "key": "Accept-Encoding", + "value": "gzip, deflate, br", + "system": true + }, + { + "key": "Connection", + "value": "keep-alive", + "system": true + }, + { + "key": "Content-Length", + "value": "312", + "system": true + }, + { + "key": "Cookie", + "value": "ocvp3112b4wg=0145c865d5d0d8d2fb26455d354b1547; oc_sessionPassphrase=LBNdKxRzA0iqoULIruNxDDh2BK3O%2BrCIU8aUmiUcOFvy5Xw1YfjwQNlmBW2IkGwJYtxXh9%2BwDN6vYuGNX07tXzkBtjQJUWTGdzf8AIOUIVxVx5DfyWAQZ7nmYmQv6XSE; nc_sameSiteCookielax=true; nc_sameSiteCookiestrict=true", + "system": true + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n\t\"zaak\": \"http://localhost:8080/index.php/apps/procest/api/zgw/zaken/v1/zaken/b8871673-dff3-45c4-8391-1bc68ccab426\",\n\t\"betrokkeneType\": \"natuurlijk_persoon\",\n\t\"roltype\": \"http://localhost:8080/index.php/apps/procest/api/zgw/catalogi/v1/roltypen/7f8acc8d-a6a3-4ab1-82c9-2e777adf5ef6\",\n\t\"roltoelichting\": \"bla\"\n}" + }, + "auth": { + "type": "jwt", + "jwt": [ + { + "type": "string", + "value": "{\r\n \"iss\": \"procest-admin\",\r\n \"client_id\": \"procest-admin\",\r\n \"iat\": \"1773145189\",\r\n \"user_id\": \"procest-admin\",\r\n \"user_representation\": \"\"\r\n}", + "key": "payload" + }, + { + "type": "string", + "value": "procest-admin-secret-key-for-testing", + "key": "secret" + }, + { + "type": "string", + "value": "HS256", + "key": "algorithm" + }, + { + "type": "boolean", + "value": false, + "key": "isSecretBase64Encoded" + }, + { + "type": "string", + "value": "header", + "key": "addTokenTo" + }, + { + "type": "string", + "value": "Bearer", + "key": "headerPrefix" + }, + { + "type": "string", + "value": "token", + "key": "queryParamKey" + }, + { + "type": "string", + "value": "{}", + "key": "header" + } + ] + } + }, + "response": { + "id": "3f60d0b2-6f5b-4981-ae75-b73bfe6f86b8", + "status": "Bad request", + "code": 400, + "header": [ + { + "key": "Date", + "value": "Tue, 10 Mar 2026 12:19:48 GMT" + }, + { + "key": "Server", + "value": "Apache/2.4.66 (Debian)" + }, + { + "key": "X-Content-Type-Options", + "value": "nosniff" + }, + { + "key": "X-Frame-Options", + "value": "SAMEORIGIN" + }, + { + "key": "X-Permitted-Cross-Domain-Policies", + "value": "none" + }, + { + "key": "X-Robots-Tag", + "value": "noindex, nofollow" + }, + { + "key": "Referrer-Policy", + "value": "no-referrer" + }, + { + "key": "X-Powered-By", + "value": "PHP/8.3.30" + }, + { + "key": "Content-Security-Policy", + "value": "default-src 'none';base-uri 'none';manifest-src 'self';frame-ancestors 'none'" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=0145c865d5d0d8d2fb26455d354b1547; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=0145c865d5d0d8d2fb26455d354b1547; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=0145c865d5d0d8d2fb26455d354b1547; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=0145c865d5d0d8d2fb26455d354b1547; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=0145c865d5d0d8d2fb26455d354b1547; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=483c7cd878f013af63546dfd665a64c8; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=483c7cd878f013af63546dfd665a64c8; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=483c7cd878f013af63546dfd665a64c8; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=483c7cd878f013af63546dfd665a64c8; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=483c7cd878f013af63546dfd665a64c8; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "X-Request-Id", + "value": "045WUmn3x9dMakdX6o7C" + }, + { + "key": "Cache-Control", + "value": "no-cache, no-store, must-revalidate" + }, + { + "key": "Feature-Policy", + "value": "autoplay 'none';camera 'none';fullscreen 'none';geolocation 'none';microphone 'none';payment 'none'" + }, + { + "key": "X-User-Id", + "value": "admin" + }, + { + "key": "Content-Length", + "value": "200" + }, + { + "key": "Connection", + "value": "close" + }, + { + "key": "Content-Type", + "value": "application/json; charset=utf-8" + } + ], + "stream": { + "type": "Buffer", + "data": [ + 123, + 34, + 100, + 101, + 116, + 97, + 105, + 108, + 34, + 58, + 34, + 72, + 101, + 116, + 32, + 114, + 111, + 108, + 116, + 121, + 112, + 101, + 32, + 104, + 111, + 111, + 114, + 116, + 32, + 110, + 105, + 101, + 116, + 32, + 98, + 105, + 106, + 32, + 104, + 101, + 116, + 32, + 122, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 32, + 118, + 97, + 110, + 32, + 100, + 101, + 32, + 122, + 97, + 97, + 107, + 46, + 34, + 44, + 34, + 105, + 110, + 118, + 97, + 108, + 105, + 100, + 80, + 97, + 114, + 97, + 109, + 115, + 34, + 58, + 91, + 123, + 34, + 110, + 97, + 109, + 101, + 34, + 58, + 34, + 110, + 111, + 110, + 70, + 105, + 101, + 108, + 100, + 69, + 114, + 114, + 111, + 114, + 115, + 34, + 44, + 34, + 99, + 111, + 100, + 101, + 34, + 58, + 34, + 122, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 45, + 109, + 105, + 115, + 109, + 97, + 116, + 99, + 104, + 34, + 44, + 34, + 114, + 101, + 97, + 115, + 111, + 110, + 34, + 58, + 34, + 72, + 101, + 116, + 32, + 114, + 111, + 108, + 116, + 121, + 112, + 101, + 32, + 104, + 111, + 111, + 114, + 116, + 32, + 110, + 105, + 101, + 116, + 32, + 98, + 105, + 106, + 32, + 104, + 101, + 116, + 32, + 122, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 32, + 118, + 97, + 110, + 32, + 100, + 101, + 32, + 122, + 97, + 97, + 107, + 46, + 34, + 125, + 93, + 125 + ] + }, + "cookie": [], + "responseTime": 134, + "responseSize": 200 + }, + "id": "11fc223e-8d50-46ed-88d8-c2049b0d7eb9", + "assertions": [ + { + "assertion": "(zrc-018a) Rol toevoegen aan Zaak met roltype die niet hoort bij Zaak.zaaktype geeft 400", + "skipped": false + } + ] + }, + { + "cursor": { + "ref": "5405655b-d83a-4dc9-b239-2bbf3ccd9c71", + "length": 313, + "cycles": 1, + "position": 198, + "iteration": 0, + "httpRequestId": "fffdab19-5812-4c01-a14a-7bf0d3c3c81b" + }, + "item": { + "id": "b1de255d-aa2a-4607-81ca-c9ddb5464fa9", + "name": "ZT", + "request": { + "url": { + "path": [ + "zaaktypen" + ], + "host": [ + "{{ztc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n\t\"identificatie\": \"{{random_identificatie}}\",\n \"omschrijving\": \"zrc_tests_1\",\n \"vertrouwelijkheidaanduiding\": \"openbaar\",\n \"doel\": \"test doel\",\n \"verantwoordelijke\":\"X\",\n \"aanleiding\": \"test aanleiding\",\n \"indicatieInternOfExtern\": \"extern\",\n \"handelingInitiator\": \"indienen\",\n \"onderwerp\": \"openbare ruimte\",\n \"handelingBehandelaar\": \"behandelen\",\n \"doorlooptijd\": \"P10D\",\n \"opschortingEnAanhoudingMogelijk\": false,\n \"verlengingMogelijk\": true,\n \"publicatieIndicatie\": false,\n \"productenOfDiensten\": [\n \"https://ref.tst.vng.cloud/standaard/\"\n ],\n \"selectielijstProcestype\": \"{{procestype_procestermijn_nihil_url}}\",\n \"referentieproces\": {\n \"naam\": \"test\",\n \"link\": \"\"\n },\n \"deelzaaktypen\": [\n \"{{deelzaaktype_identificatie}}\"\n ],\n \"catalogus\": \"{{catalogus_url}}\",\n \"statustypen\": [\n \n ],\n \"resultaattypen\": [\n ],\n \"eigenschappen\": [\n ],\n \"informatieobjecttypen\": [],\n \"besluittypen\": [\n \"{{besluit_omschrijving}}\"\n ],\n \"gerelateerdeZaaktypen\": [],\n \"beginGeldigheid\": \"2019-01-01\",\n \"versiedatum\": \"2019-01-01\",\n \"concept\": true,\n \"verlengingstermijn\": \"P5D\"\n}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "b8347eff-a7ee-4da8-92f1-19bf561f4e04", + "type": "text/javascript", + "packages": {}, + "exec": [ + "if(pm.response.code == 201) {", + " pm.environment.set(\"temp_zaaktype_url\", pm.response.json().url);", + "}" + ], + "_lastExecutionId": "b221ec62-d453-49c3-80e8-da9b1c8a8f6a" + } + }, + { + "listen": "prerequest", + "script": { + "id": "bb5e55e7-bf77-400a-81c5-ecf2898e11d3", + "type": "text/javascript", + "packages": {}, + "exec": [ + "var uuid = require('uuid');", + "var myUUID = uuid.v4(); ", + "pm.environment.set(\"random_identificatie\", myUUID);", + "" + ], + "_lastExecutionId": "b097499a-6bc0-4550-a707-696dd90c35fd" + } + } + ] + }, + "request": { + "url": { + "protocol": "http", + "port": "8080", + "path": [ + "index.php", + "apps", + "procest", + "api", + "zgw", + "catalogi", + "v1", + "zaaktypen" + ], + "host": [ + "localhost" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Authorization", + "value": "Bearer eyJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJwcm9jZXN0LWFkbWluIiwiY2xpZW50X2lkIjoicHJvY2VzdC1hZG1pbiIsImlhdCI6IjE3NzMxNDUxODkiLCJ1c2VyX2lkIjoicHJvY2VzdC1hZG1pbiIsInVzZXJfcmVwcmVzZW50YXRpb24iOiIifQ.swbtVP4Dcs2vbHUcPBQm7N6tJxGJogZnV1YSPUkRE0g", + "system": true + }, + { + "key": "User-Agent", + "value": "PostmanRuntime/7.39.1", + "system": true + }, + { + "key": "Accept", + "value": "*/*", + "system": true + }, + { + "key": "Cache-Control", + "value": "no-cache", + "system": true + }, + { + "key": "Postman-Token", + "value": "e284d678-e8f5-4a53-a2af-7e229d2a566b", + "system": true + }, + { + "key": "Host", + "value": "localhost:8080", + "system": true + }, + { + "key": "Accept-Encoding", + "value": "gzip, deflate, br", + "system": true + }, + { + "key": "Connection", + "value": "keep-alive", + "system": true + }, + { + "key": "Content-Length", + "value": "1388", + "system": true + }, + { + "key": "Cookie", + "value": "ocvp3112b4wg=483c7cd878f013af63546dfd665a64c8; oc_sessionPassphrase=LBNdKxRzA0iqoULIruNxDDh2BK3O%2BrCIU8aUmiUcOFvy5Xw1YfjwQNlmBW2IkGwJYtxXh9%2BwDN6vYuGNX07tXzkBtjQJUWTGdzf8AIOUIVxVx5DfyWAQZ7nmYmQv6XSE; nc_sameSiteCookielax=true; nc_sameSiteCookiestrict=true", + "system": true + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n\t\"identificatie\": \"764ab9fa-06d1-4ddc-b042-da4fb7a11fe6\",\n \"omschrijving\": \"zrc_tests_1\",\n \"vertrouwelijkheidaanduiding\": \"openbaar\",\n \"doel\": \"test doel\",\n \"verantwoordelijke\":\"X\",\n \"aanleiding\": \"test aanleiding\",\n \"indicatieInternOfExtern\": \"extern\",\n \"handelingInitiator\": \"indienen\",\n \"onderwerp\": \"openbare ruimte\",\n \"handelingBehandelaar\": \"behandelen\",\n \"doorlooptijd\": \"P10D\",\n \"opschortingEnAanhoudingMogelijk\": false,\n \"verlengingMogelijk\": true,\n \"publicatieIndicatie\": false,\n \"productenOfDiensten\": [\n \"https://ref.tst.vng.cloud/standaard/\"\n ],\n \"selectielijstProcestype\": \"https://selectielijst.openzaak.nl/api/v1/procestypen/838e405a-9b12-43c4-a985-d7a7490d422e\",\n \"referentieproces\": {\n \"naam\": \"test\",\n \"link\": \"\"\n },\n \"deelzaaktypen\": [\n \"cae6f26a-1321-4bff-b314-421ddf7775b9\"\n ],\n \"catalogus\": \"http://localhost:8080/index.php/apps/procest/api/zgw/catalogi/v1/catalogussen/5057408f-fd76-469e-8646-bcc4ba2efa8d\",\n \"statustypen\": [\n \n ],\n \"resultaattypen\": [\n ],\n \"eigenschappen\": [\n ],\n \"informatieobjecttypen\": [],\n \"besluittypen\": [\n \"c7e4cd3e-1645-4c0a-8bc4-0aa1847f6946\"\n ],\n \"gerelateerdeZaaktypen\": [],\n \"beginGeldigheid\": \"2019-01-01\",\n \"versiedatum\": \"2019-01-01\",\n \"concept\": true,\n \"verlengingstermijn\": \"P5D\"\n}" + }, + "auth": { + "type": "jwt", + "jwt": [ + { + "type": "string", + "value": "{\r\n \"iss\": \"procest-admin\",\r\n \"client_id\": \"procest-admin\",\r\n \"iat\": \"1773145189\",\r\n \"user_id\": \"procest-admin\",\r\n \"user_representation\": \"\"\r\n}", + "key": "payload" + }, + { + "type": "string", + "value": "procest-admin-secret-key-for-testing", + "key": "secret" + }, + { + "type": "string", + "value": "HS256", + "key": "algorithm" + }, + { + "type": "boolean", + "value": false, + "key": "isSecretBase64Encoded" + }, + { + "type": "string", + "value": "header", + "key": "addTokenTo" + }, + { + "type": "string", + "value": "Bearer", + "key": "headerPrefix" + }, + { + "type": "string", + "value": "token", + "key": "queryParamKey" + }, + { + "type": "string", + "value": "{}", + "key": "header" + } + ] + } + }, + "response": { + "id": "663d53c4-f7aa-4b4d-b70f-ac7a5328c4c7", + "status": "Created", + "code": 201, + "header": [ + { + "key": "Date", + "value": "Tue, 10 Mar 2026 12:19:48 GMT" + }, + { + "key": "Server", + "value": "Apache/2.4.66 (Debian)" + }, + { + "key": "X-Content-Type-Options", + "value": "nosniff" + }, + { + "key": "X-Frame-Options", + "value": "SAMEORIGIN" + }, + { + "key": "X-Permitted-Cross-Domain-Policies", + "value": "none" + }, + { + "key": "X-Robots-Tag", + "value": "noindex, nofollow" + }, + { + "key": "Referrer-Policy", + "value": "no-referrer" + }, + { + "key": "X-Powered-By", + "value": "PHP/8.3.30" + }, + { + "key": "Content-Security-Policy", + "value": "default-src 'none';base-uri 'none';manifest-src 'self';frame-ancestors 'none'" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=483c7cd878f013af63546dfd665a64c8; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=483c7cd878f013af63546dfd665a64c8; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=483c7cd878f013af63546dfd665a64c8; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=483c7cd878f013af63546dfd665a64c8; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=483c7cd878f013af63546dfd665a64c8; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=a7e7488cbee898af056d2de5475c91c6; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=a7e7488cbee898af056d2de5475c91c6; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=a7e7488cbee898af056d2de5475c91c6; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=a7e7488cbee898af056d2de5475c91c6; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=a7e7488cbee898af056d2de5475c91c6; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "X-Request-Id", + "value": "q15iReZnnTANBuwltlLa" + }, + { + "key": "Cache-Control", + "value": "no-cache, no-store, must-revalidate" + }, + { + "key": "Feature-Policy", + "value": "autoplay 'none';camera 'none';fullscreen 'none';geolocation 'none';microphone 'none';payment 'none'" + }, + { + "key": "X-User-Id", + "value": "admin" + }, + { + "key": "Content-Length", + "value": "1464" + }, + { + "key": "Keep-Alive", + "value": "timeout=5, max=100" + }, + { + "key": "Connection", + "value": "Keep-Alive" + }, + { + "key": "Content-Type", + "value": "application/json; charset=utf-8" + } + ], + "stream": { + "type": "Buffer", + "data": [ + 123, + 34, + 117, + 114, + 108, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 105, + 92, + 47, + 118, + 49, + 92, + 47, + 122, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 110, + 92, + 47, + 54, + 100, + 55, + 99, + 54, + 98, + 55, + 101, + 45, + 97, + 55, + 48, + 57, + 45, + 52, + 57, + 99, + 99, + 45, + 57, + 56, + 102, + 102, + 45, + 99, + 97, + 57, + 56, + 49, + 53, + 54, + 54, + 51, + 57, + 57, + 102, + 34, + 44, + 34, + 117, + 117, + 105, + 100, + 34, + 58, + 34, + 54, + 100, + 55, + 99, + 54, + 98, + 55, + 101, + 45, + 97, + 55, + 48, + 57, + 45, + 52, + 57, + 99, + 99, + 45, + 57, + 56, + 102, + 102, + 45, + 99, + 97, + 57, + 56, + 49, + 53, + 54, + 54, + 51, + 57, + 57, + 102, + 34, + 44, + 34, + 105, + 100, + 101, + 110, + 116, + 105, + 102, + 105, + 99, + 97, + 116, + 105, + 101, + 34, + 58, + 34, + 55, + 54, + 52, + 97, + 98, + 57, + 102, + 97, + 45, + 48, + 54, + 100, + 49, + 45, + 52, + 100, + 100, + 99, + 45, + 98, + 48, + 52, + 50, + 45, + 100, + 97, + 52, + 102, + 98, + 55, + 97, + 49, + 49, + 102, + 101, + 54, + 34, + 44, + 34, + 111, + 109, + 115, + 99, + 104, + 114, + 105, + 106, + 118, + 105, + 110, + 103, + 34, + 58, + 34, + 122, + 114, + 99, + 95, + 116, + 101, + 115, + 116, + 115, + 95, + 49, + 34, + 44, + 34, + 111, + 109, + 115, + 99, + 104, + 114, + 105, + 106, + 118, + 105, + 110, + 103, + 71, + 101, + 110, + 101, + 114, + 105, + 101, + 107, + 34, + 58, + 34, + 34, + 44, + 34, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 117, + 115, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 105, + 92, + 47, + 118, + 49, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 117, + 115, + 115, + 101, + 110, + 92, + 47, + 53, + 48, + 53, + 55, + 52, + 48, + 56, + 102, + 45, + 102, + 100, + 55, + 54, + 45, + 52, + 54, + 57, + 101, + 45, + 56, + 54, + 52, + 54, + 45, + 98, + 99, + 99, + 52, + 98, + 97, + 50, + 101, + 102, + 97, + 56, + 100, + 34, + 44, + 34, + 100, + 111, + 101, + 108, + 34, + 58, + 34, + 116, + 101, + 115, + 116, + 32, + 100, + 111, + 101, + 108, + 34, + 44, + 34, + 97, + 97, + 110, + 108, + 101, + 105, + 100, + 105, + 110, + 103, + 34, + 58, + 34, + 116, + 101, + 115, + 116, + 32, + 97, + 97, + 110, + 108, + 101, + 105, + 100, + 105, + 110, + 103, + 34, + 44, + 34, + 111, + 110, + 100, + 101, + 114, + 119, + 101, + 114, + 112, + 34, + 58, + 34, + 111, + 112, + 101, + 110, + 98, + 97, + 114, + 101, + 32, + 114, + 117, + 105, + 109, + 116, + 101, + 34, + 44, + 34, + 100, + 111, + 111, + 114, + 108, + 111, + 111, + 112, + 116, + 105, + 106, + 100, + 34, + 58, + 34, + 80, + 49, + 48, + 68, + 34, + 44, + 34, + 118, + 101, + 114, + 116, + 114, + 111, + 117, + 119, + 101, + 108, + 105, + 106, + 107, + 104, + 101, + 105, + 100, + 97, + 97, + 110, + 100, + 117, + 105, + 100, + 105, + 110, + 103, + 34, + 58, + 34, + 111, + 112, + 101, + 110, + 98, + 97, + 97, + 114, + 34, + 44, + 34, + 99, + 111, + 110, + 99, + 101, + 112, + 116, + 34, + 58, + 116, + 114, + 117, + 101, + 44, + 34, + 98, + 101, + 103, + 105, + 110, + 71, + 101, + 108, + 100, + 105, + 103, + 104, + 101, + 105, + 100, + 34, + 58, + 34, + 50, + 48, + 49, + 57, + 45, + 48, + 49, + 45, + 48, + 49, + 34, + 44, + 34, + 101, + 105, + 110, + 100, + 101, + 71, + 101, + 108, + 100, + 105, + 103, + 104, + 101, + 105, + 100, + 34, + 58, + 34, + 50, + 48, + 50, + 54, + 45, + 48, + 51, + 45, + 49, + 48, + 34, + 44, + 34, + 104, + 97, + 110, + 100, + 101, + 108, + 105, + 110, + 103, + 73, + 110, + 105, + 116, + 105, + 97, + 116, + 111, + 114, + 34, + 58, + 34, + 105, + 110, + 100, + 105, + 101, + 110, + 101, + 110, + 34, + 44, + 34, + 105, + 110, + 100, + 105, + 99, + 97, + 116, + 105, + 101, + 73, + 110, + 116, + 101, + 114, + 110, + 79, + 102, + 69, + 120, + 116, + 101, + 114, + 110, + 34, + 58, + 34, + 101, + 120, + 116, + 101, + 114, + 110, + 34, + 44, + 34, + 104, + 97, + 110, + 100, + 101, + 108, + 105, + 110, + 103, + 66, + 101, + 104, + 97, + 110, + 100, + 101, + 108, + 97, + 97, + 114, + 34, + 58, + 34, + 98, + 101, + 104, + 97, + 110, + 100, + 101, + 108, + 101, + 110, + 34, + 44, + 34, + 111, + 112, + 115, + 99, + 104, + 111, + 114, + 116, + 105, + 110, + 103, + 69, + 110, + 65, + 97, + 110, + 104, + 111, + 117, + 100, + 105, + 110, + 103, + 77, + 111, + 103, + 101, + 108, + 105, + 106, + 107, + 34, + 58, + 102, + 97, + 108, + 115, + 101, + 44, + 34, + 118, + 101, + 114, + 108, + 101, + 110, + 103, + 105, + 110, + 103, + 77, + 111, + 103, + 101, + 108, + 105, + 106, + 107, + 34, + 58, + 116, + 114, + 117, + 101, + 44, + 34, + 118, + 101, + 114, + 108, + 101, + 110, + 103, + 105, + 110, + 103, + 115, + 116, + 101, + 114, + 109, + 105, + 106, + 110, + 34, + 58, + 34, + 80, + 53, + 68, + 34, + 44, + 34, + 112, + 117, + 98, + 108, + 105, + 99, + 97, + 116, + 105, + 101, + 73, + 110, + 100, + 105, + 99, + 97, + 116, + 105, + 101, + 34, + 58, + 102, + 97, + 108, + 115, + 101, + 44, + 34, + 112, + 114, + 111, + 100, + 117, + 99, + 116, + 101, + 110, + 79, + 102, + 68, + 105, + 101, + 110, + 115, + 116, + 101, + 110, + 34, + 58, + 91, + 34, + 104, + 116, + 116, + 112, + 115, + 58, + 92, + 47, + 92, + 47, + 114, + 101, + 102, + 46, + 116, + 115, + 116, + 46, + 118, + 110, + 103, + 46, + 99, + 108, + 111, + 117, + 100, + 92, + 47, + 115, + 116, + 97, + 110, + 100, + 97, + 97, + 114, + 100, + 92, + 47, + 34, + 93, + 44, + 34, + 115, + 101, + 108, + 101, + 99, + 116, + 105, + 101, + 108, + 105, + 106, + 115, + 116, + 80, + 114, + 111, + 99, + 101, + 115, + 116, + 121, + 112, + 101, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 115, + 58, + 92, + 47, + 92, + 47, + 115, + 101, + 108, + 101, + 99, + 116, + 105, + 101, + 108, + 105, + 106, + 115, + 116, + 46, + 111, + 112, + 101, + 110, + 122, + 97, + 97, + 107, + 46, + 110, + 108, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 118, + 49, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 121, + 112, + 101, + 110, + 92, + 47, + 56, + 51, + 56, + 101, + 52, + 48, + 53, + 97, + 45, + 57, + 98, + 49, + 50, + 45, + 52, + 51, + 99, + 52, + 45, + 97, + 57, + 56, + 53, + 45, + 100, + 55, + 97, + 55, + 52, + 57, + 48, + 100, + 52, + 50, + 50, + 101, + 34, + 44, + 34, + 114, + 101, + 102, + 101, + 114, + 101, + 110, + 116, + 105, + 101, + 112, + 114, + 111, + 99, + 101, + 115, + 34, + 58, + 123, + 34, + 108, + 105, + 110, + 107, + 34, + 58, + 34, + 34, + 44, + 34, + 110, + 97, + 97, + 109, + 34, + 58, + 34, + 116, + 101, + 115, + 116, + 34, + 125, + 44, + 34, + 118, + 101, + 114, + 97, + 110, + 116, + 119, + 111, + 111, + 114, + 100, + 101, + 108, + 105, + 106, + 107, + 101, + 34, + 58, + 34, + 88, + 34, + 44, + 34, + 103, + 101, + 114, + 101, + 108, + 97, + 116, + 101, + 101, + 114, + 100, + 101, + 90, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 98, + 101, + 115, + 108, + 117, + 105, + 116, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 105, + 92, + 47, + 118, + 49, + 92, + 47, + 98, + 101, + 115, + 108, + 117, + 105, + 116, + 116, + 121, + 112, + 101, + 110, + 92, + 47, + 48, + 98, + 50, + 50, + 48, + 100, + 50, + 55, + 45, + 101, + 50, + 53, + 49, + 45, + 52, + 99, + 52, + 55, + 45, + 98, + 48, + 100, + 102, + 45, + 48, + 49, + 52, + 99, + 50, + 101, + 52, + 99, + 97, + 97, + 54, + 49, + 34, + 93, + 44, + 34, + 105, + 110, + 102, + 111, + 114, + 109, + 97, + 116, + 105, + 101, + 111, + 98, + 106, + 101, + 99, + 116, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 100, + 101, + 101, + 108, + 122, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 116, + 111, + 101, + 108, + 105, + 99, + 104, + 116, + 105, + 110, + 103, + 34, + 58, + 34, + 34, + 44, + 34, + 118, + 101, + 114, + 115, + 105, + 101, + 100, + 97, + 116, + 117, + 109, + 34, + 58, + 34, + 50, + 48, + 49, + 57, + 45, + 48, + 49, + 45, + 48, + 49, + 34, + 44, + 34, + 101, + 105, + 103, + 101, + 110, + 115, + 99, + 104, + 97, + 112, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 115, + 116, + 97, + 116, + 117, + 115, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 114, + 101, + 115, + 117, + 108, + 116, + 97, + 97, + 116, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 114, + 111, + 108, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 125 + ] + }, + "cookie": [], + "responseTime": 329, + "responseSize": 1464 + }, + "id": "b1de255d-aa2a-4607-81ca-c9ddb5464fa9" + }, + { + "cursor": { + "ref": "941c3803-29db-494e-b240-bd7060171355", + "length": 313, + "cycles": 1, + "position": 199, + "iteration": 0, + "httpRequestId": "0b27926c-0c92-4028-87de-4442d88e3c2b" + }, + "item": { + "id": "8dd52372-1663-4da6-98eb-1a792086388f", + "name": "Create Resultaattype", + "request": { + "url": { + "path": [ + "resultaattypen" + ], + "host": [ + "{{ztc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n\t\"zaaktype\": \"{{temp_zaaktype_url}}\",\n\t\"omschrijving\": \"Klaar\",\n\t\"resultaattypeomschrijving\": \"https://referentielijsten.roxit.nl/api/v1/resultaattypeomschrijvingen/4a6b5072-e44f-4826-9546-e8074499654e\",\n\t\"selectielijstklasse\": \"{{selectielijstklasse_procestermijn_nihil_url}}\",\n \"besluittypen\": [],\n\t\"brondatumArchiefprocedure\": {\n\t\t\"afleidingswijze\": \"afgehandeld\",\n\t\t\"procestermijn\": null,\n\t\t\"datumkenmerk\": \"\",\n\t\t\"einddatumBekend\": false,\n\t\t\"objecttype\": \"\",\n\t\t\"registratie\": \"\"\n\t}\n}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "cc5b83c9-75ad-41f0-b581-3ce6ea792c62", + "type": "text/javascript", + "packages": {}, + "exec": [ + "pm.environment.set(\"temp_resultaattype\", pm.response.json().url);" + ], + "_lastExecutionId": "da4a052d-cf5d-4770-b9ea-e16cb836106d" + } + } + ] + }, + "request": { + "url": { + "protocol": "http", + "port": "8080", + "path": [ + "index.php", + "apps", + "procest", + "api", + "zgw", + "catalogi", + "v1", + "resultaattypen" + ], + "host": [ + "localhost" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Authorization", + "value": "Bearer eyJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJwcm9jZXN0LWFkbWluIiwiY2xpZW50X2lkIjoicHJvY2VzdC1hZG1pbiIsImlhdCI6IjE3NzMxNDUxODkiLCJ1c2VyX2lkIjoicHJvY2VzdC1hZG1pbiIsInVzZXJfcmVwcmVzZW50YXRpb24iOiIifQ.swbtVP4Dcs2vbHUcPBQm7N6tJxGJogZnV1YSPUkRE0g", + "system": true + }, + { + "key": "User-Agent", + "value": "PostmanRuntime/7.39.1", + "system": true + }, + { + "key": "Accept", + "value": "*/*", + "system": true + }, + { + "key": "Cache-Control", + "value": "no-cache", + "system": true + }, + { + "key": "Postman-Token", + "value": "0f7af89a-a319-41e9-9748-390434faac3e", + "system": true + }, + { + "key": "Host", + "value": "localhost:8080", + "system": true + }, + { + "key": "Accept-Encoding", + "value": "gzip, deflate, br", + "system": true + }, + { + "key": "Connection", + "value": "keep-alive", + "system": true + }, + { + "key": "Content-Length", + "value": "623", + "system": true + }, + { + "key": "Cookie", + "value": "ocvp3112b4wg=a7e7488cbee898af056d2de5475c91c6; oc_sessionPassphrase=LBNdKxRzA0iqoULIruNxDDh2BK3O%2BrCIU8aUmiUcOFvy5Xw1YfjwQNlmBW2IkGwJYtxXh9%2BwDN6vYuGNX07tXzkBtjQJUWTGdzf8AIOUIVxVx5DfyWAQZ7nmYmQv6XSE; nc_sameSiteCookielax=true; nc_sameSiteCookiestrict=true", + "system": true + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n\t\"zaaktype\": \"http://localhost:8080/index.php/apps/procest/api/zgw/catalogi/v1/zaaktypen/6d7c6b7e-a709-49cc-98ff-ca981566399f\",\n\t\"omschrijving\": \"Klaar\",\n\t\"resultaattypeomschrijving\": \"https://referentielijsten.roxit.nl/api/v1/resultaattypeomschrijvingen/4a6b5072-e44f-4826-9546-e8074499654e\",\n\t\"selectielijstklasse\": \"https://selectielijst.openzaak.nl/api/v1/resultaten/3fc7002b-31b6-4abe-82af-b6d46a9a1736\",\n \"besluittypen\": [],\n\t\"brondatumArchiefprocedure\": {\n\t\t\"afleidingswijze\": \"afgehandeld\",\n\t\t\"procestermijn\": null,\n\t\t\"datumkenmerk\": \"\",\n\t\t\"einddatumBekend\": false,\n\t\t\"objecttype\": \"\",\n\t\t\"registratie\": \"\"\n\t}\n}" + }, + "auth": { + "type": "jwt", + "jwt": [ + { + "type": "string", + "value": "{\r\n \"iss\": \"procest-admin\",\r\n \"client_id\": \"procest-admin\",\r\n \"iat\": \"1773145189\",\r\n \"user_id\": \"procest-admin\",\r\n \"user_representation\": \"\"\r\n}", + "key": "payload" + }, + { + "type": "string", + "value": "procest-admin-secret-key-for-testing", + "key": "secret" + }, + { + "type": "string", + "value": "HS256", + "key": "algorithm" + }, + { + "type": "boolean", + "value": false, + "key": "isSecretBase64Encoded" + }, + { + "type": "string", + "value": "header", + "key": "addTokenTo" + }, + { + "type": "string", + "value": "Bearer", + "key": "headerPrefix" + }, + { + "type": "string", + "value": "token", + "key": "queryParamKey" + }, + { + "type": "string", + "value": "{}", + "key": "header" + } + ] + } + }, + "response": { + "id": "6e79d74f-52b4-4ad9-a662-1077d0f1a5ae", + "status": "Created", + "code": 201, + "header": [ + { + "key": "Date", + "value": "Tue, 10 Mar 2026 12:19:49 GMT" + }, + { + "key": "Server", + "value": "Apache/2.4.66 (Debian)" + }, + { + "key": "X-Content-Type-Options", + "value": "nosniff" + }, + { + "key": "X-Frame-Options", + "value": "SAMEORIGIN" + }, + { + "key": "X-Permitted-Cross-Domain-Policies", + "value": "none" + }, + { + "key": "X-Robots-Tag", + "value": "noindex, nofollow" + }, + { + "key": "Referrer-Policy", + "value": "no-referrer" + }, + { + "key": "X-Powered-By", + "value": "PHP/8.3.30" + }, + { + "key": "Content-Security-Policy", + "value": "default-src 'none';base-uri 'none';manifest-src 'self';frame-ancestors 'none'" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=a7e7488cbee898af056d2de5475c91c6; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=a7e7488cbee898af056d2de5475c91c6; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=a7e7488cbee898af056d2de5475c91c6; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=a7e7488cbee898af056d2de5475c91c6; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=a7e7488cbee898af056d2de5475c91c6; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=dc151d01d07cff324457cdf360d6df95; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=dc151d01d07cff324457cdf360d6df95; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=dc151d01d07cff324457cdf360d6df95; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=dc151d01d07cff324457cdf360d6df95; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=dc151d01d07cff324457cdf360d6df95; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "X-Request-Id", + "value": "rvCCqTTul19WXbll9d4z" + }, + { + "key": "Cache-Control", + "value": "no-cache, no-store, must-revalidate" + }, + { + "key": "Feature-Policy", + "value": "autoplay 'none';camera 'none';fullscreen 'none';geolocation 'none';microphone 'none';payment 'none'" + }, + { + "key": "X-User-Id", + "value": "admin" + }, + { + "key": "Content-Length", + "value": "754" + }, + { + "key": "Keep-Alive", + "value": "timeout=5, max=99" + }, + { + "key": "Connection", + "value": "Keep-Alive" + }, + { + "key": "Content-Type", + "value": "application/json; charset=utf-8" + } + ], + "stream": { + "type": "Buffer", + "data": [ + 123, + 34, + 117, + 114, + 108, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 105, + 92, + 47, + 118, + 49, + 92, + 47, + 114, + 101, + 115, + 117, + 108, + 116, + 97, + 97, + 116, + 116, + 121, + 112, + 101, + 110, + 92, + 47, + 101, + 48, + 49, + 102, + 51, + 55, + 48, + 50, + 45, + 50, + 54, + 51, + 49, + 45, + 52, + 55, + 52, + 99, + 45, + 98, + 52, + 50, + 48, + 45, + 50, + 53, + 57, + 56, + 99, + 56, + 54, + 52, + 51, + 99, + 99, + 98, + 34, + 44, + 34, + 117, + 117, + 105, + 100, + 34, + 58, + 34, + 101, + 48, + 49, + 102, + 51, + 55, + 48, + 50, + 45, + 50, + 54, + 51, + 49, + 45, + 52, + 55, + 52, + 99, + 45, + 98, + 52, + 50, + 48, + 45, + 50, + 53, + 57, + 56, + 99, + 56, + 54, + 52, + 51, + 99, + 99, + 98, + 34, + 44, + 34, + 111, + 109, + 115, + 99, + 104, + 114, + 105, + 106, + 118, + 105, + 110, + 103, + 34, + 58, + 34, + 75, + 108, + 97, + 97, + 114, + 34, + 44, + 34, + 111, + 109, + 115, + 99, + 104, + 114, + 105, + 106, + 118, + 105, + 110, + 103, + 71, + 101, + 110, + 101, + 114, + 105, + 101, + 107, + 34, + 58, + 34, + 71, + 101, + 119, + 101, + 105, + 103, + 101, + 114, + 100, + 34, + 44, + 34, + 116, + 111, + 101, + 108, + 105, + 99, + 104, + 116, + 105, + 110, + 103, + 34, + 58, + 34, + 34, + 44, + 34, + 122, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 105, + 92, + 47, + 118, + 49, + 92, + 47, + 122, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 110, + 92, + 47, + 54, + 100, + 55, + 99, + 54, + 98, + 55, + 101, + 45, + 97, + 55, + 48, + 57, + 45, + 52, + 57, + 99, + 99, + 45, + 57, + 56, + 102, + 102, + 45, + 99, + 97, + 57, + 56, + 49, + 53, + 54, + 54, + 51, + 57, + 57, + 102, + 34, + 44, + 34, + 97, + 114, + 99, + 104, + 105, + 101, + 102, + 110, + 111, + 109, + 105, + 110, + 97, + 116, + 105, + 101, + 34, + 58, + 34, + 118, + 101, + 114, + 110, + 105, + 101, + 116, + 105, + 103, + 101, + 110, + 34, + 44, + 34, + 97, + 114, + 99, + 104, + 105, + 101, + 102, + 97, + 99, + 116, + 105, + 101, + 116, + 101, + 114, + 109, + 105, + 106, + 110, + 34, + 58, + 34, + 80, + 53, + 89, + 34, + 44, + 34, + 98, + 114, + 111, + 110, + 100, + 97, + 116, + 117, + 109, + 65, + 114, + 99, + 104, + 105, + 101, + 102, + 112, + 114, + 111, + 99, + 101, + 100, + 117, + 114, + 101, + 34, + 58, + 34, + 123, + 92, + 34, + 97, + 102, + 108, + 101, + 105, + 100, + 105, + 110, + 103, + 115, + 119, + 105, + 106, + 122, + 101, + 92, + 34, + 58, + 92, + 34, + 97, + 102, + 103, + 101, + 104, + 97, + 110, + 100, + 101, + 108, + 100, + 92, + 34, + 44, + 92, + 34, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 101, + 114, + 109, + 105, + 106, + 110, + 92, + 34, + 58, + 110, + 117, + 108, + 108, + 44, + 92, + 34, + 100, + 97, + 116, + 117, + 109, + 107, + 101, + 110, + 109, + 101, + 114, + 107, + 92, + 34, + 58, + 92, + 34, + 92, + 34, + 44, + 92, + 34, + 101, + 105, + 110, + 100, + 100, + 97, + 116, + 117, + 109, + 66, + 101, + 107, + 101, + 110, + 100, + 92, + 34, + 58, + 102, + 97, + 108, + 115, + 101, + 44, + 92, + 34, + 111, + 98, + 106, + 101, + 99, + 116, + 116, + 121, + 112, + 101, + 92, + 34, + 58, + 92, + 34, + 92, + 34, + 44, + 92, + 34, + 114, + 101, + 103, + 105, + 115, + 116, + 114, + 97, + 116, + 105, + 101, + 92, + 34, + 58, + 92, + 34, + 92, + 34, + 125, + 34, + 44, + 34, + 115, + 101, + 108, + 101, + 99, + 116, + 105, + 101, + 108, + 105, + 106, + 115, + 116, + 107, + 108, + 97, + 115, + 115, + 101, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 115, + 58, + 92, + 47, + 92, + 47, + 115, + 101, + 108, + 101, + 99, + 116, + 105, + 101, + 108, + 105, + 106, + 115, + 116, + 46, + 111, + 112, + 101, + 110, + 122, + 97, + 97, + 107, + 46, + 110, + 108, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 118, + 49, + 92, + 47, + 114, + 101, + 115, + 117, + 108, + 116, + 97, + 116, + 101, + 110, + 92, + 47, + 51, + 102, + 99, + 55, + 48, + 48, + 50, + 98, + 45, + 51, + 49, + 98, + 54, + 45, + 52, + 97, + 98, + 101, + 45, + 56, + 50, + 97, + 102, + 45, + 98, + 54, + 100, + 52, + 54, + 97, + 57, + 97, + 49, + 55, + 51, + 54, + 34, + 125 + ] + }, + "cookie": [], + "responseTime": 420, + "responseSize": 754 + }, + "id": "8dd52372-1663-4da6-98eb-1a792086388f" + }, + { + "cursor": { + "ref": "2f1136af-f353-4391-a371-c8098b2bfcf7", + "length": 313, + "cycles": 1, + "position": 200, + "iteration": 0, + "httpRequestId": "42de4943-f943-4040-adc7-d8c290343ae2" + }, + "item": { + "id": "00fd6141-cf1a-4fe6-b6b8-73ec7aef0858", + "name": "Publish Zaaktype for resultaattype validation", + "request": { + "url": { + "path": [ + "publish" + ], + "host": [ + "{{temp_zaaktype_url}}" + ], + "query": [], + "variable": [] + }, + "method": "POST" + }, + "response": [], + "event": [] + }, + "request": { + "url": { + "protocol": "http", + "port": "8080", + "path": [ + "index.php", + "apps", + "procest", + "api", + "zgw", + "catalogi", + "v1", + "zaaktypen", + "6d7c6b7e-a709-49cc-98ff-ca981566399f", + "publish" + ], + "host": [ + "localhost" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Authorization", + "value": "Bearer eyJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJwcm9jZXN0LWFkbWluIiwiY2xpZW50X2lkIjoicHJvY2VzdC1hZG1pbiIsImlhdCI6IjE3NzMxNDUxOTAiLCJ1c2VyX2lkIjoicHJvY2VzdC1hZG1pbiIsInVzZXJfcmVwcmVzZW50YXRpb24iOiIifQ.xNN08XKTsVy7xYJMbhzih63e9xBz6uXlUKzg-a3MMdw", + "system": true + }, + { + "key": "User-Agent", + "value": "PostmanRuntime/7.39.1", + "system": true + }, + { + "key": "Accept", + "value": "*/*", + "system": true + }, + { + "key": "Cache-Control", + "value": "no-cache", + "system": true + }, + { + "key": "Postman-Token", + "value": "7e0d7c37-c9ce-4071-9daf-9a01812066f2", + "system": true + }, + { + "key": "Host", + "value": "localhost:8080", + "system": true + }, + { + "key": "Accept-Encoding", + "value": "gzip, deflate, br", + "system": true + }, + { + "key": "Connection", + "value": "keep-alive", + "system": true + }, + { + "key": "Cookie", + "value": "ocvp3112b4wg=dc151d01d07cff324457cdf360d6df95; oc_sessionPassphrase=LBNdKxRzA0iqoULIruNxDDh2BK3O%2BrCIU8aUmiUcOFvy5Xw1YfjwQNlmBW2IkGwJYtxXh9%2BwDN6vYuGNX07tXzkBtjQJUWTGdzf8AIOUIVxVx5DfyWAQZ7nmYmQv6XSE; nc_sameSiteCookielax=true; nc_sameSiteCookiestrict=true", + "system": true + }, + { + "key": "Content-Length", + "value": "0", + "system": true + } + ], + "method": "POST", + "auth": { + "type": "jwt", + "jwt": [ + { + "type": "string", + "value": "{\r\n \"iss\": \"procest-admin\",\r\n \"client_id\": \"procest-admin\",\r\n \"iat\": \"1773145190\",\r\n \"user_id\": \"procest-admin\",\r\n \"user_representation\": \"\"\r\n}", + "key": "payload" + }, + { + "type": "string", + "value": "procest-admin-secret-key-for-testing", + "key": "secret" + }, + { + "type": "string", + "value": "HS256", + "key": "algorithm" + }, + { + "type": "boolean", + "value": false, + "key": "isSecretBase64Encoded" + }, + { + "type": "string", + "value": "header", + "key": "addTokenTo" + }, + { + "type": "string", + "value": "Bearer", + "key": "headerPrefix" + }, + { + "type": "string", + "value": "token", + "key": "queryParamKey" + }, + { + "type": "string", + "value": "{}", + "key": "header" + } + ] + } + }, + "response": { + "id": "15fd01d1-c1a0-4a9c-bfc8-fb16c612729e", + "status": "OK", + "code": 200, + "header": [ + { + "key": "Date", + "value": "Tue, 10 Mar 2026 12:19:49 GMT" + }, + { + "key": "Server", + "value": "Apache/2.4.66 (Debian)" + }, + { + "key": "X-Content-Type-Options", + "value": "nosniff" + }, + { + "key": "X-Frame-Options", + "value": "SAMEORIGIN" + }, + { + "key": "X-Permitted-Cross-Domain-Policies", + "value": "none" + }, + { + "key": "X-Robots-Tag", + "value": "noindex, nofollow" + }, + { + "key": "Referrer-Policy", + "value": "no-referrer" + }, + { + "key": "X-Powered-By", + "value": "PHP/8.3.30" + }, + { + "key": "Content-Security-Policy", + "value": "default-src 'none';base-uri 'none';manifest-src 'self';frame-ancestors 'none'" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=dc151d01d07cff324457cdf360d6df95; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=dc151d01d07cff324457cdf360d6df95; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=dc151d01d07cff324457cdf360d6df95; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=dc151d01d07cff324457cdf360d6df95; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=dc151d01d07cff324457cdf360d6df95; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=107c5976ec14a4f9f208ff0b18366b58; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=107c5976ec14a4f9f208ff0b18366b58; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=107c5976ec14a4f9f208ff0b18366b58; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=107c5976ec14a4f9f208ff0b18366b58; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=107c5976ec14a4f9f208ff0b18366b58; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "X-Request-Id", + "value": "KpsApZ5FRLxeKN2S2fQv" + }, + { + "key": "Cache-Control", + "value": "no-cache, no-store, must-revalidate" + }, + { + "key": "Feature-Policy", + "value": "autoplay 'none';camera 'none';fullscreen 'none';geolocation 'none';microphone 'none';payment 'none'" + }, + { + "key": "X-User-Id", + "value": "admin" + }, + { + "key": "Content-Encoding", + "value": "gzip" + }, + { + "key": "Content-Length", + "value": "709" + }, + { + "key": "Keep-Alive", + "value": "timeout=5, max=98" + }, + { + "key": "Connection", + "value": "Keep-Alive" + }, + { + "key": "Content-Type", + "value": "application/json; charset=utf-8" + } + ], + "stream": { + "type": "Buffer", + "data": [ + 123, + 34, + 117, + 114, + 108, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 105, + 92, + 47, + 118, + 49, + 92, + 47, + 122, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 110, + 92, + 47, + 54, + 100, + 55, + 99, + 54, + 98, + 55, + 101, + 45, + 97, + 55, + 48, + 57, + 45, + 52, + 57, + 99, + 99, + 45, + 57, + 56, + 102, + 102, + 45, + 99, + 97, + 57, + 56, + 49, + 53, + 54, + 54, + 51, + 57, + 57, + 102, + 34, + 44, + 34, + 117, + 117, + 105, + 100, + 34, + 58, + 34, + 54, + 100, + 55, + 99, + 54, + 98, + 55, + 101, + 45, + 97, + 55, + 48, + 57, + 45, + 52, + 57, + 99, + 99, + 45, + 57, + 56, + 102, + 102, + 45, + 99, + 97, + 57, + 56, + 49, + 53, + 54, + 54, + 51, + 57, + 57, + 102, + 34, + 44, + 34, + 105, + 100, + 101, + 110, + 116, + 105, + 102, + 105, + 99, + 97, + 116, + 105, + 101, + 34, + 58, + 34, + 55, + 54, + 52, + 97, + 98, + 57, + 102, + 97, + 45, + 48, + 54, + 100, + 49, + 45, + 52, + 100, + 100, + 99, + 45, + 98, + 48, + 52, + 50, + 45, + 100, + 97, + 52, + 102, + 98, + 55, + 97, + 49, + 49, + 102, + 101, + 54, + 34, + 44, + 34, + 111, + 109, + 115, + 99, + 104, + 114, + 105, + 106, + 118, + 105, + 110, + 103, + 34, + 58, + 34, + 122, + 114, + 99, + 95, + 116, + 101, + 115, + 116, + 115, + 95, + 49, + 34, + 44, + 34, + 111, + 109, + 115, + 99, + 104, + 114, + 105, + 106, + 118, + 105, + 110, + 103, + 71, + 101, + 110, + 101, + 114, + 105, + 101, + 107, + 34, + 58, + 34, + 34, + 44, + 34, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 117, + 115, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 105, + 92, + 47, + 118, + 49, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 117, + 115, + 115, + 101, + 110, + 92, + 47, + 53, + 48, + 53, + 55, + 52, + 48, + 56, + 102, + 45, + 102, + 100, + 55, + 54, + 45, + 52, + 54, + 57, + 101, + 45, + 56, + 54, + 52, + 54, + 45, + 98, + 99, + 99, + 52, + 98, + 97, + 50, + 101, + 102, + 97, + 56, + 100, + 34, + 44, + 34, + 100, + 111, + 101, + 108, + 34, + 58, + 34, + 116, + 101, + 115, + 116, + 32, + 100, + 111, + 101, + 108, + 34, + 44, + 34, + 97, + 97, + 110, + 108, + 101, + 105, + 100, + 105, + 110, + 103, + 34, + 58, + 34, + 116, + 101, + 115, + 116, + 32, + 97, + 97, + 110, + 108, + 101, + 105, + 100, + 105, + 110, + 103, + 34, + 44, + 34, + 111, + 110, + 100, + 101, + 114, + 119, + 101, + 114, + 112, + 34, + 58, + 34, + 111, + 112, + 101, + 110, + 98, + 97, + 114, + 101, + 32, + 114, + 117, + 105, + 109, + 116, + 101, + 34, + 44, + 34, + 100, + 111, + 111, + 114, + 108, + 111, + 111, + 112, + 116, + 105, + 106, + 100, + 34, + 58, + 34, + 80, + 49, + 48, + 68, + 34, + 44, + 34, + 118, + 101, + 114, + 116, + 114, + 111, + 117, + 119, + 101, + 108, + 105, + 106, + 107, + 104, + 101, + 105, + 100, + 97, + 97, + 110, + 100, + 117, + 105, + 100, + 105, + 110, + 103, + 34, + 58, + 34, + 111, + 112, + 101, + 110, + 98, + 97, + 97, + 114, + 34, + 44, + 34, + 99, + 111, + 110, + 99, + 101, + 112, + 116, + 34, + 58, + 102, + 97, + 108, + 115, + 101, + 44, + 34, + 98, + 101, + 103, + 105, + 110, + 71, + 101, + 108, + 100, + 105, + 103, + 104, + 101, + 105, + 100, + 34, + 58, + 34, + 50, + 48, + 49, + 57, + 45, + 48, + 49, + 45, + 48, + 49, + 34, + 44, + 34, + 101, + 105, + 110, + 100, + 101, + 71, + 101, + 108, + 100, + 105, + 103, + 104, + 101, + 105, + 100, + 34, + 58, + 34, + 50, + 48, + 50, + 54, + 45, + 48, + 51, + 45, + 49, + 48, + 34, + 44, + 34, + 104, + 97, + 110, + 100, + 101, + 108, + 105, + 110, + 103, + 73, + 110, + 105, + 116, + 105, + 97, + 116, + 111, + 114, + 34, + 58, + 34, + 105, + 110, + 100, + 105, + 101, + 110, + 101, + 110, + 34, + 44, + 34, + 105, + 110, + 100, + 105, + 99, + 97, + 116, + 105, + 101, + 73, + 110, + 116, + 101, + 114, + 110, + 79, + 102, + 69, + 120, + 116, + 101, + 114, + 110, + 34, + 58, + 34, + 101, + 120, + 116, + 101, + 114, + 110, + 34, + 44, + 34, + 104, + 97, + 110, + 100, + 101, + 108, + 105, + 110, + 103, + 66, + 101, + 104, + 97, + 110, + 100, + 101, + 108, + 97, + 97, + 114, + 34, + 58, + 34, + 98, + 101, + 104, + 97, + 110, + 100, + 101, + 108, + 101, + 110, + 34, + 44, + 34, + 111, + 112, + 115, + 99, + 104, + 111, + 114, + 116, + 105, + 110, + 103, + 69, + 110, + 65, + 97, + 110, + 104, + 111, + 117, + 100, + 105, + 110, + 103, + 77, + 111, + 103, + 101, + 108, + 105, + 106, + 107, + 34, + 58, + 102, + 97, + 108, + 115, + 101, + 44, + 34, + 118, + 101, + 114, + 108, + 101, + 110, + 103, + 105, + 110, + 103, + 77, + 111, + 103, + 101, + 108, + 105, + 106, + 107, + 34, + 58, + 116, + 114, + 117, + 101, + 44, + 34, + 118, + 101, + 114, + 108, + 101, + 110, + 103, + 105, + 110, + 103, + 115, + 116, + 101, + 114, + 109, + 105, + 106, + 110, + 34, + 58, + 34, + 80, + 53, + 68, + 34, + 44, + 34, + 112, + 117, + 98, + 108, + 105, + 99, + 97, + 116, + 105, + 101, + 73, + 110, + 100, + 105, + 99, + 97, + 116, + 105, + 101, + 34, + 58, + 102, + 97, + 108, + 115, + 101, + 44, + 34, + 112, + 114, + 111, + 100, + 117, + 99, + 116, + 101, + 110, + 79, + 102, + 68, + 105, + 101, + 110, + 115, + 116, + 101, + 110, + 34, + 58, + 91, + 34, + 104, + 116, + 116, + 112, + 115, + 58, + 92, + 47, + 92, + 47, + 114, + 101, + 102, + 46, + 116, + 115, + 116, + 46, + 118, + 110, + 103, + 46, + 99, + 108, + 111, + 117, + 100, + 92, + 47, + 115, + 116, + 97, + 110, + 100, + 97, + 97, + 114, + 100, + 92, + 47, + 34, + 93, + 44, + 34, + 115, + 101, + 108, + 101, + 99, + 116, + 105, + 101, + 108, + 105, + 106, + 115, + 116, + 80, + 114, + 111, + 99, + 101, + 115, + 116, + 121, + 112, + 101, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 115, + 58, + 92, + 47, + 92, + 47, + 115, + 101, + 108, + 101, + 99, + 116, + 105, + 101, + 108, + 105, + 106, + 115, + 116, + 46, + 111, + 112, + 101, + 110, + 122, + 97, + 97, + 107, + 46, + 110, + 108, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 118, + 49, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 121, + 112, + 101, + 110, + 92, + 47, + 56, + 51, + 56, + 101, + 52, + 48, + 53, + 97, + 45, + 57, + 98, + 49, + 50, + 45, + 52, + 51, + 99, + 52, + 45, + 97, + 57, + 56, + 53, + 45, + 100, + 55, + 97, + 55, + 52, + 57, + 48, + 100, + 52, + 50, + 50, + 101, + 34, + 44, + 34, + 114, + 101, + 102, + 101, + 114, + 101, + 110, + 116, + 105, + 101, + 112, + 114, + 111, + 99, + 101, + 115, + 34, + 58, + 123, + 34, + 108, + 105, + 110, + 107, + 34, + 58, + 34, + 34, + 44, + 34, + 110, + 97, + 97, + 109, + 34, + 58, + 34, + 116, + 101, + 115, + 116, + 34, + 125, + 44, + 34, + 118, + 101, + 114, + 97, + 110, + 116, + 119, + 111, + 111, + 114, + 100, + 101, + 108, + 105, + 106, + 107, + 101, + 34, + 58, + 34, + 88, + 34, + 44, + 34, + 103, + 101, + 114, + 101, + 108, + 97, + 116, + 101, + 101, + 114, + 100, + 101, + 90, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 98, + 101, + 115, + 108, + 117, + 105, + 116, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 34, + 48, + 98, + 50, + 50, + 48, + 100, + 50, + 55, + 45, + 101, + 50, + 53, + 49, + 45, + 52, + 99, + 52, + 55, + 45, + 98, + 48, + 100, + 102, + 45, + 48, + 49, + 52, + 99, + 50, + 101, + 52, + 99, + 97, + 97, + 54, + 49, + 34, + 93, + 44, + 34, + 105, + 110, + 102, + 111, + 114, + 109, + 97, + 116, + 105, + 101, + 111, + 98, + 106, + 101, + 99, + 116, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 100, + 101, + 101, + 108, + 122, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 116, + 111, + 101, + 108, + 105, + 99, + 104, + 116, + 105, + 110, + 103, + 34, + 58, + 34, + 34, + 44, + 34, + 118, + 101, + 114, + 115, + 105, + 101, + 100, + 97, + 116, + 117, + 109, + 34, + 58, + 34, + 50, + 48, + 49, + 57, + 45, + 48, + 49, + 45, + 48, + 49, + 34, + 125 + ] + }, + "cookie": [], + "responseTime": 160, + "responseSize": 1306 + }, + "id": "00fd6141-cf1a-4fe6-b6b8-73ec7aef0858" + }, + { + "cursor": { + "ref": "00ecd68a-0bc3-48e4-b85c-7e3c4a2bd900", + "length": 313, + "cycles": 1, + "position": 201, + "iteration": 0, + "httpRequestId": "cbe7d290-db5e-41ce-ab8b-fbfffbe43a46" + }, + "item": { + "id": "80daed8e-5625-4bb7-ab5d-baa3835f0667", + "name": "Create Zaak for resultaattype validation", + "request": { + "url": { + "path": [ + "zaken" + ], + "host": [ + "{{zrc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Accept-Crs", + "value": "EPSG:4326" + }, + { + "key": "Content-Crs", + "value": "EPSG:4326" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\r\n\r\n \"bronorganisatie\": \"000000000\",\r\n \"omschrijving\": \"string\",\r\n \"toelichting\": \"string\",\r\n \"zaaktype\": \"{{zaaktype_url}}\",\r\n \"registratiedatum\": \"2019-04-09\",\r\n \"verantwoordelijkeOrganisatie\": \"000000000\",\r\n \"startdatum\": \"2019-04-09\",\r\n \"einddatum\": null,\r\n \"einddatumGepland\": \"2019-04-20\",\r\n \"uiterlijkeEinddatumAfdoening\": \"2019-04-09\",\r\n \"publicatiedatum\": \"2019-04-09\",\r\n \"communicatiekanaal\": \"\",\r\n \"productenOfDiensten\": [],\r\n \"vertrouwelijkheidaanduiding\": \"geheim\",\r\n \"betalingsindicatie\": \"geheel\",\r\n \"betalingsindicatieWeergave\": null,\r\n \"laatsteBetaaldatum\": \"2019-01-01T00:00:00Z\",\r\n \"zaakgeometrie\": {\r\n \"type\": \"Point\",\r\n \"coordinates\": [\r\n 53.0,\r\n 5.0\r\n ]\r\n },\r\n \"verlenging\": null,\r\n \"opschorting\": {\r\n \"indicatie\": true,\r\n \"reden\": \"string\"\r\n },\r\n \"selectielijstklasse\": \"https://referentielijsten.roxit.nl/api/v1/resultaten/0fe71ce3-b1e1-48eb-9070-be2756fc71b5\",\r\n \"hoofdzaak\": null,\r\n \"deelzaken\": [],\r\n \"relevanteAndereZaken\": [],\r\n \"eigenschappen\": [],\r\n \"rollen\": [],\r\n \"status\": null,\r\n \"zaakinformatieobjecten\": [],\r\n \"zaakobjecten\": [],\r\n \"resultaat\": null,\r\n \"kenmerken\": [],\r\n \"archiefnominatie\": null,\r\n \"archiefstatus\": \"nog_te_archiveren\",\r\n \"archiefactiedatum\": null,\r\n \"opdrachtgevendeOrganisatie\": null,\r\n \"processobjectaard\": null,\r\n \"startdatumBewaartermijn\": null,\r\n \"processobject\": null\r\n}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "1c640716-ca16-4f19-9692-7abd9c3fa178", + "type": "text/javascript", + "packages": {}, + "exec": [ + "// If the test failed and the Zaak was created, delete it", + "if(pm.response.code == 201) {", + " pm.environment.set(\"created_zaak_url\", pm.response.json().url);", + "}" + ], + "_lastExecutionId": "29f6f6a4-edbb-46b4-9d7c-e08d23a9030f" + } + }, + { + "listen": "prerequest", + "script": { + "id": "db255ca2-34e3-44a0-8991-9f8e6b126530", + "type": "text/javascript", + "packages": {}, + "exec": [ + "" + ], + "_lastExecutionId": "2ee987be-0390-46e8-ad01-3034df15f049" + } + } + ] + }, + "request": { + "url": { + "protocol": "http", + "port": "8080", + "path": [ + "index.php", + "apps", + "procest", + "api", + "zgw", + "zaken", + "v1", + "zaken" + ], + "host": [ + "localhost" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Accept-Crs", + "value": "EPSG:4326" + }, + { + "key": "Content-Crs", + "value": "EPSG:4326" + }, + { + "key": "Authorization", + "value": "Bearer eyJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJwcm9jZXN0LWFkbWluIiwiY2xpZW50X2lkIjoicHJvY2VzdC1hZG1pbiIsImlhdCI6IjE3NzMxNDUxOTAiLCJ1c2VyX2lkIjoicHJvY2VzdC1hZG1pbiIsInVzZXJfcmVwcmVzZW50YXRpb24iOiIifQ.xNN08XKTsVy7xYJMbhzih63e9xBz6uXlUKzg-a3MMdw", + "system": true + }, + { + "key": "User-Agent", + "value": "PostmanRuntime/7.39.1", + "system": true + }, + { + "key": "Accept", + "value": "*/*", + "system": true + }, + { + "key": "Cache-Control", + "value": "no-cache", + "system": true + }, + { + "key": "Postman-Token", + "value": "75bdaa63-2cc5-4dec-95fb-8fabb8df89ca", + "system": true + }, + { + "key": "Host", + "value": "localhost:8080", + "system": true + }, + { + "key": "Accept-Encoding", + "value": "gzip, deflate, br", + "system": true + }, + { + "key": "Connection", + "value": "keep-alive", + "system": true + }, + { + "key": "Content-Length", + "value": "1605", + "system": true + }, + { + "key": "Cookie", + "value": "ocvp3112b4wg=107c5976ec14a4f9f208ff0b18366b58; oc_sessionPassphrase=LBNdKxRzA0iqoULIruNxDDh2BK3O%2BrCIU8aUmiUcOFvy5Xw1YfjwQNlmBW2IkGwJYtxXh9%2BwDN6vYuGNX07tXzkBtjQJUWTGdzf8AIOUIVxVx5DfyWAQZ7nmYmQv6XSE; nc_sameSiteCookielax=true; nc_sameSiteCookiestrict=true", + "system": true + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\r\n\r\n \"bronorganisatie\": \"000000000\",\r\n \"omschrijving\": \"string\",\r\n \"toelichting\": \"string\",\r\n \"zaaktype\": \"http://localhost:8080/index.php/apps/procest/api/zgw/catalogi/v1/zaaktypen/619dc3e5-52f1-4294-a569-f21d16f44879\",\r\n \"registratiedatum\": \"2019-04-09\",\r\n \"verantwoordelijkeOrganisatie\": \"000000000\",\r\n \"startdatum\": \"2019-04-09\",\r\n \"einddatum\": null,\r\n \"einddatumGepland\": \"2019-04-20\",\r\n \"uiterlijkeEinddatumAfdoening\": \"2019-04-09\",\r\n \"publicatiedatum\": \"2019-04-09\",\r\n \"communicatiekanaal\": \"\",\r\n \"productenOfDiensten\": [],\r\n \"vertrouwelijkheidaanduiding\": \"geheim\",\r\n \"betalingsindicatie\": \"geheel\",\r\n \"betalingsindicatieWeergave\": null,\r\n \"laatsteBetaaldatum\": \"2019-01-01T00:00:00Z\",\r\n \"zaakgeometrie\": {\r\n \"type\": \"Point\",\r\n \"coordinates\": [\r\n 53.0,\r\n 5.0\r\n ]\r\n },\r\n \"verlenging\": null,\r\n \"opschorting\": {\r\n \"indicatie\": true,\r\n \"reden\": \"string\"\r\n },\r\n \"selectielijstklasse\": \"https://referentielijsten.roxit.nl/api/v1/resultaten/0fe71ce3-b1e1-48eb-9070-be2756fc71b5\",\r\n \"hoofdzaak\": null,\r\n \"deelzaken\": [],\r\n \"relevanteAndereZaken\": [],\r\n \"eigenschappen\": [],\r\n \"rollen\": [],\r\n \"status\": null,\r\n \"zaakinformatieobjecten\": [],\r\n \"zaakobjecten\": [],\r\n \"resultaat\": null,\r\n \"kenmerken\": [],\r\n \"archiefnominatie\": null,\r\n \"archiefstatus\": \"nog_te_archiveren\",\r\n \"archiefactiedatum\": null,\r\n \"opdrachtgevendeOrganisatie\": null,\r\n \"processobjectaard\": null,\r\n \"startdatumBewaartermijn\": null,\r\n \"processobject\": null\r\n}" + }, + "auth": { + "type": "jwt", + "jwt": [ + { + "type": "string", + "value": "{\r\n \"iss\": \"procest-admin\",\r\n \"client_id\": \"procest-admin\",\r\n \"iat\": \"1773145190\",\r\n \"user_id\": \"procest-admin\",\r\n \"user_representation\": \"\"\r\n}", + "key": "payload" + }, + { + "type": "string", + "value": "procest-admin-secret-key-for-testing", + "key": "secret" + }, + { + "type": "string", + "value": "HS256", + "key": "algorithm" + }, + { + "type": "boolean", + "value": false, + "key": "isSecretBase64Encoded" + }, + { + "type": "string", + "value": "header", + "key": "addTokenTo" + }, + { + "type": "string", + "value": "Bearer", + "key": "headerPrefix" + }, + { + "type": "string", + "value": "token", + "key": "queryParamKey" + }, + { + "type": "string", + "value": "{}", + "key": "header" + } + ] + } + }, + "response": { + "id": "19b1056b-0656-4b19-8b85-08ba6c134e8a", + "status": "Created", + "code": 201, + "header": [ + { + "key": "Date", + "value": "Tue, 10 Mar 2026 12:19:49 GMT" + }, + { + "key": "Server", + "value": "Apache/2.4.66 (Debian)" + }, + { + "key": "X-Content-Type-Options", + "value": "nosniff" + }, + { + "key": "X-Frame-Options", + "value": "SAMEORIGIN" + }, + { + "key": "X-Permitted-Cross-Domain-Policies", + "value": "none" + }, + { + "key": "X-Robots-Tag", + "value": "noindex, nofollow" + }, + { + "key": "Referrer-Policy", + "value": "no-referrer" + }, + { + "key": "X-Powered-By", + "value": "PHP/8.3.30" + }, + { + "key": "Content-Security-Policy", + "value": "default-src 'none';base-uri 'none';manifest-src 'self';frame-ancestors 'none'" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=107c5976ec14a4f9f208ff0b18366b58; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=107c5976ec14a4f9f208ff0b18366b58; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=107c5976ec14a4f9f208ff0b18366b58; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=107c5976ec14a4f9f208ff0b18366b58; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=107c5976ec14a4f9f208ff0b18366b58; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=8b8811f3644e50c5a391c5b37053cece; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=8b8811f3644e50c5a391c5b37053cece; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=8b8811f3644e50c5a391c5b37053cece; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=8b8811f3644e50c5a391c5b37053cece; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=8b8811f3644e50c5a391c5b37053cece; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "X-Request-Id", + "value": "m5nTIDJpChCE2EI5CNv3" + }, + { + "key": "Cache-Control", + "value": "no-cache, no-store, must-revalidate" + }, + { + "key": "Feature-Policy", + "value": "autoplay 'none';camera 'none';fullscreen 'none';geolocation 'none';microphone 'none';payment 'none'" + }, + { + "key": "X-User-Id", + "value": "admin" + }, + { + "key": "Content-Length", + "value": "805" + }, + { + "key": "Keep-Alive", + "value": "timeout=5, max=97" + }, + { + "key": "Connection", + "value": "Keep-Alive" + }, + { + "key": "Content-Type", + "value": "application/json; charset=utf-8" + } + ], + "stream": { + "type": "Buffer", + "data": [ + 123, + 34, + 117, + 114, + 108, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 122, + 97, + 107, + 101, + 110, + 92, + 47, + 118, + 49, + 92, + 47, + 122, + 97, + 107, + 101, + 110, + 92, + 47, + 97, + 97, + 100, + 53, + 99, + 50, + 99, + 100, + 45, + 52, + 54, + 98, + 53, + 45, + 52, + 99, + 48, + 48, + 45, + 97, + 53, + 53, + 53, + 45, + 48, + 99, + 57, + 56, + 101, + 54, + 55, + 55, + 57, + 99, + 98, + 99, + 34, + 44, + 34, + 117, + 117, + 105, + 100, + 34, + 58, + 34, + 97, + 97, + 100, + 53, + 99, + 50, + 99, + 100, + 45, + 52, + 54, + 98, + 53, + 45, + 52, + 99, + 48, + 48, + 45, + 97, + 53, + 53, + 53, + 45, + 48, + 99, + 57, + 56, + 101, + 54, + 55, + 55, + 57, + 99, + 98, + 99, + 34, + 44, + 34, + 105, + 100, + 101, + 110, + 116, + 105, + 102, + 105, + 99, + 97, + 116, + 105, + 101, + 34, + 58, + 34, + 90, + 65, + 65, + 75, + 45, + 84, + 66, + 79, + 78, + 76, + 49, + 45, + 68, + 54, + 65, + 57, + 52, + 51, + 34, + 44, + 34, + 111, + 109, + 115, + 99, + 104, + 114, + 105, + 106, + 118, + 105, + 110, + 103, + 34, + 58, + 34, + 115, + 116, + 114, + 105, + 110, + 103, + 34, + 44, + 34, + 116, + 111, + 101, + 108, + 105, + 99, + 104, + 116, + 105, + 110, + 103, + 34, + 58, + 34, + 115, + 116, + 114, + 105, + 110, + 103, + 34, + 44, + 34, + 122, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 105, + 92, + 47, + 118, + 49, + 92, + 47, + 122, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 110, + 92, + 47, + 54, + 49, + 57, + 100, + 99, + 51, + 101, + 53, + 45, + 53, + 50, + 102, + 49, + 45, + 52, + 50, + 57, + 52, + 45, + 97, + 53, + 54, + 57, + 45, + 102, + 50, + 49, + 100, + 49, + 54, + 102, + 52, + 52, + 56, + 55, + 57, + 34, + 44, + 34, + 114, + 101, + 103, + 105, + 115, + 116, + 114, + 97, + 116, + 105, + 101, + 100, + 97, + 116, + 117, + 109, + 34, + 58, + 34, + 50, + 48, + 50, + 54, + 45, + 48, + 51, + 45, + 49, + 48, + 84, + 49, + 50, + 58, + 49, + 57, + 58, + 52, + 57, + 43, + 48, + 48, + 58, + 48, + 48, + 34, + 44, + 34, + 115, + 116, + 97, + 114, + 116, + 100, + 97, + 116, + 117, + 109, + 34, + 58, + 34, + 50, + 48, + 49, + 57, + 45, + 48, + 52, + 45, + 48, + 57, + 34, + 44, + 34, + 101, + 105, + 110, + 100, + 100, + 97, + 116, + 117, + 109, + 34, + 58, + 110, + 117, + 108, + 108, + 44, + 34, + 101, + 105, + 110, + 100, + 100, + 97, + 116, + 117, + 109, + 71, + 101, + 112, + 108, + 97, + 110, + 100, + 34, + 58, + 34, + 50, + 48, + 49, + 57, + 45, + 48, + 52, + 45, + 50, + 48, + 34, + 44, + 34, + 117, + 105, + 116, + 101, + 114, + 108, + 105, + 106, + 107, + 101, + 69, + 105, + 110, + 100, + 100, + 97, + 116, + 117, + 109, + 65, + 102, + 100, + 111, + 101, + 110, + 105, + 110, + 103, + 34, + 58, + 34, + 50, + 48, + 49, + 57, + 45, + 48, + 52, + 45, + 48, + 57, + 34, + 44, + 34, + 118, + 101, + 114, + 116, + 114, + 111, + 117, + 119, + 101, + 108, + 105, + 106, + 107, + 104, + 101, + 105, + 100, + 97, + 97, + 110, + 100, + 117, + 105, + 100, + 105, + 110, + 103, + 34, + 58, + 34, + 103, + 101, + 104, + 101, + 105, + 109, + 34, + 44, + 34, + 118, + 101, + 114, + 97, + 110, + 116, + 119, + 111, + 111, + 114, + 100, + 101, + 108, + 105, + 106, + 107, + 101, + 79, + 114, + 103, + 97, + 110, + 105, + 115, + 97, + 116, + 105, + 101, + 34, + 58, + 34, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 34, + 44, + 34, + 97, + 114, + 99, + 104, + 105, + 101, + 102, + 110, + 111, + 109, + 105, + 110, + 97, + 116, + 105, + 101, + 34, + 58, + 110, + 117, + 108, + 108, + 44, + 34, + 97, + 114, + 99, + 104, + 105, + 101, + 102, + 97, + 99, + 116, + 105, + 101, + 100, + 97, + 116, + 117, + 109, + 34, + 58, + 110, + 117, + 108, + 108, + 44, + 34, + 97, + 114, + 99, + 104, + 105, + 101, + 102, + 115, + 116, + 97, + 116, + 117, + 115, + 34, + 58, + 34, + 110, + 111, + 103, + 95, + 116, + 101, + 95, + 97, + 114, + 99, + 104, + 105, + 118, + 101, + 114, + 101, + 110, + 34, + 44, + 34, + 98, + 101, + 116, + 97, + 108, + 105, + 110, + 103, + 115, + 105, + 110, + 100, + 105, + 99, + 97, + 116, + 105, + 101, + 34, + 58, + 34, + 103, + 101, + 104, + 101, + 101, + 108, + 34, + 44, + 34, + 108, + 97, + 97, + 116, + 115, + 116, + 101, + 66, + 101, + 116, + 97, + 97, + 108, + 100, + 97, + 116, + 117, + 109, + 34, + 58, + 34, + 50, + 48, + 49, + 57, + 45, + 48, + 49, + 45, + 48, + 49, + 34, + 44, + 34, + 104, + 111, + 111, + 102, + 100, + 122, + 97, + 97, + 107, + 34, + 58, + 110, + 117, + 108, + 108, + 125 + ] + }, + "cookie": [], + "responseTime": 227, + "responseSize": 805 + }, + "id": "80daed8e-5625-4bb7-ab5d-baa3835f0667" + }, + { + "cursor": { + "ref": "45b0121f-bfbf-4cf4-9a21-d33e32b7a4f6", + "length": 313, + "cycles": 1, + "position": 202, + "iteration": 0, + "httpRequestId": "1854684d-0838-4523-8b16-b58d029ba94a" + }, + "item": { + "id": "fb8d9047-cf1c-4770-8a42-6d1dabcac3af", + "name": "(zrc-020a) Resultaat toevoegen aan Zaak met resultaattype die niet hoort bij Zaak.zaaktype is onmogelijk", + "request": { + "url": { + "path": [ + "resultaten" + ], + "host": [ + "{{zrc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n\t\"zaak\": \"{{created_zaak_url}}\",\n\t\"resultaattype\": \"{{temp_resultaattype}}\"\n}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "f03d1531-c090-459c-8719-0e05d4934d16", + "type": "text/javascript", + "exec": [ + "pm.test(\"(zrc-020a) Resultaat toevoegen aan Zaak met resultaattype die niet hoort bij Zaak.zaaktype geeft 400\", function() {", + " pm.response.to.have.status(400);", + " ", + " var error = pm.response.json()[\"invalidParams\"][0];", + " pm.expect(error.name).to.be.equal(\"nonFieldErrors\");", + " pm.expect(error.code).to.be.equal(\"zaaktype-mismatch\");", + "});" + ], + "_lastExecutionId": "d1bfa998-fff8-418d-b024-36c070a6d20b" + } + } + ] + }, + "request": { + "url": { + "protocol": "http", + "port": "8080", + "path": [ + "index.php", + "apps", + "procest", + "api", + "zgw", + "zaken", + "v1", + "resultaten" + ], + "host": [ + "localhost" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Authorization", + "value": "Bearer eyJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJwcm9jZXN0LWFkbWluIiwiY2xpZW50X2lkIjoicHJvY2VzdC1hZG1pbiIsImlhdCI6IjE3NzMxNDUxOTAiLCJ1c2VyX2lkIjoicHJvY2VzdC1hZG1pbiIsInVzZXJfcmVwcmVzZW50YXRpb24iOiIifQ.xNN08XKTsVy7xYJMbhzih63e9xBz6uXlUKzg-a3MMdw", + "system": true + }, + { + "key": "User-Agent", + "value": "PostmanRuntime/7.39.1", + "system": true + }, + { + "key": "Accept", + "value": "*/*", + "system": true + }, + { + "key": "Cache-Control", + "value": "no-cache", + "system": true + }, + { + "key": "Postman-Token", + "value": "915bfa0f-dfd3-4cdb-b2b3-d238ddb26cbf", + "system": true + }, + { + "key": "Host", + "value": "localhost:8080", + "system": true + }, + { + "key": "Accept-Encoding", + "value": "gzip, deflate, br", + "system": true + }, + { + "key": "Connection", + "value": "keep-alive", + "system": true + }, + { + "key": "Content-Length", + "value": "257", + "system": true + }, + { + "key": "Cookie", + "value": "ocvp3112b4wg=8b8811f3644e50c5a391c5b37053cece; oc_sessionPassphrase=LBNdKxRzA0iqoULIruNxDDh2BK3O%2BrCIU8aUmiUcOFvy5Xw1YfjwQNlmBW2IkGwJYtxXh9%2BwDN6vYuGNX07tXzkBtjQJUWTGdzf8AIOUIVxVx5DfyWAQZ7nmYmQv6XSE; nc_sameSiteCookielax=true; nc_sameSiteCookiestrict=true", + "system": true + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n\t\"zaak\": \"http://localhost:8080/index.php/apps/procest/api/zgw/zaken/v1/zaken/aad5c2cd-46b5-4c00-a555-0c98e6779cbc\",\n\t\"resultaattype\": \"http://localhost:8080/index.php/apps/procest/api/zgw/catalogi/v1/resultaattypen/e01f3702-2631-474c-b420-2598c8643ccb\"\n}" + }, + "auth": { + "type": "jwt", + "jwt": [ + { + "type": "string", + "value": "{\r\n \"iss\": \"procest-admin\",\r\n \"client_id\": \"procest-admin\",\r\n \"iat\": \"1773145190\",\r\n \"user_id\": \"procest-admin\",\r\n \"user_representation\": \"\"\r\n}", + "key": "payload" + }, + { + "type": "string", + "value": "procest-admin-secret-key-for-testing", + "key": "secret" + }, + { + "type": "string", + "value": "HS256", + "key": "algorithm" + }, + { + "type": "boolean", + "value": false, + "key": "isSecretBase64Encoded" + }, + { + "type": "string", + "value": "header", + "key": "addTokenTo" + }, + { + "type": "string", + "value": "Bearer", + "key": "headerPrefix" + }, + { + "type": "string", + "value": "token", + "key": "queryParamKey" + }, + { + "type": "string", + "value": "{}", + "key": "header" + } + ] + } + }, + "response": { + "id": "b403b6fe-7ad5-43f5-8c9c-79fbdf21458c", + "status": "Bad request", + "code": 400, + "header": [ + { + "key": "Date", + "value": "Tue, 10 Mar 2026 12:19:50 GMT" + }, + { + "key": "Server", + "value": "Apache/2.4.66 (Debian)" + }, + { + "key": "X-Content-Type-Options", + "value": "nosniff" + }, + { + "key": "X-Frame-Options", + "value": "SAMEORIGIN" + }, + { + "key": "X-Permitted-Cross-Domain-Policies", + "value": "none" + }, + { + "key": "X-Robots-Tag", + "value": "noindex, nofollow" + }, + { + "key": "Referrer-Policy", + "value": "no-referrer" + }, + { + "key": "X-Powered-By", + "value": "PHP/8.3.30" + }, + { + "key": "Content-Security-Policy", + "value": "default-src 'none';base-uri 'none';manifest-src 'self';frame-ancestors 'none'" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=8b8811f3644e50c5a391c5b37053cece; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=8b8811f3644e50c5a391c5b37053cece; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=8b8811f3644e50c5a391c5b37053cece; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=8b8811f3644e50c5a391c5b37053cece; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=8b8811f3644e50c5a391c5b37053cece; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=e16a7eb11dc6133437082e200811fdd4; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=e16a7eb11dc6133437082e200811fdd4; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=e16a7eb11dc6133437082e200811fdd4; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=e16a7eb11dc6133437082e200811fdd4; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=e16a7eb11dc6133437082e200811fdd4; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "X-Request-Id", + "value": "pzZCJh0WDvd3usMw7zyj" + }, + { + "key": "Cache-Control", + "value": "no-cache, no-store, must-revalidate" + }, + { + "key": "Feature-Policy", + "value": "autoplay 'none';camera 'none';fullscreen 'none';geolocation 'none';microphone 'none';payment 'none'" + }, + { + "key": "X-User-Id", + "value": "admin" + }, + { + "key": "Content-Length", + "value": "212" + }, + { + "key": "Connection", + "value": "close" + }, + { + "key": "Content-Type", + "value": "application/json; charset=utf-8" + } + ], + "stream": { + "type": "Buffer", + "data": [ + 123, + 34, + 100, + 101, + 116, + 97, + 105, + 108, + 34, + 58, + 34, + 72, + 101, + 116, + 32, + 114, + 101, + 115, + 117, + 108, + 116, + 97, + 97, + 116, + 116, + 121, + 112, + 101, + 32, + 104, + 111, + 111, + 114, + 116, + 32, + 110, + 105, + 101, + 116, + 32, + 98, + 105, + 106, + 32, + 104, + 101, + 116, + 32, + 122, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 32, + 118, + 97, + 110, + 32, + 100, + 101, + 32, + 122, + 97, + 97, + 107, + 46, + 34, + 44, + 34, + 105, + 110, + 118, + 97, + 108, + 105, + 100, + 80, + 97, + 114, + 97, + 109, + 115, + 34, + 58, + 91, + 123, + 34, + 110, + 97, + 109, + 101, + 34, + 58, + 34, + 110, + 111, + 110, + 70, + 105, + 101, + 108, + 100, + 69, + 114, + 114, + 111, + 114, + 115, + 34, + 44, + 34, + 99, + 111, + 100, + 101, + 34, + 58, + 34, + 122, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 45, + 109, + 105, + 115, + 109, + 97, + 116, + 99, + 104, + 34, + 44, + 34, + 114, + 101, + 97, + 115, + 111, + 110, + 34, + 58, + 34, + 72, + 101, + 116, + 32, + 114, + 101, + 115, + 117, + 108, + 116, + 97, + 97, + 116, + 116, + 121, + 112, + 101, + 32, + 104, + 111, + 111, + 114, + 116, + 32, + 110, + 105, + 101, + 116, + 32, + 98, + 105, + 106, + 32, + 104, + 101, + 116, + 32, + 122, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 32, + 118, + 97, + 110, + 32, + 100, + 101, + 32, + 122, + 97, + 97, + 107, + 46, + 34, + 125, + 93, + 125 + ] + }, + "cookie": [], + "responseTime": 117, + "responseSize": 212 + }, + "id": "fb8d9047-cf1c-4770-8a42-6d1dabcac3af", + "assertions": [ + { + "assertion": "(zrc-020a) Resultaat toevoegen aan Zaak met resultaattype die niet hoort bij Zaak.zaaktype geeft 400", + "skipped": false + } + ] + }, + { + "cursor": { + "ref": "7081bb0c-1fed-43da-bc35-0128b280d1bb", + "length": 313, + "cycles": 1, + "position": 203, + "iteration": 0, + "httpRequestId": "3b4a3cd8-0e0f-490f-a235-35a36217a625" + }, + "item": { + "id": "55386c1f-adf4-44d5-88b2-07c16a1f87dc", + "name": "ZT", + "request": { + "url": { + "path": [ + "zaaktypen" + ], + "host": [ + "{{ztc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n\t\"identificatie\": \"{{random_identificatie}}\",\n \"omschrijving\": \"zrc_tests_1\",\n \"vertrouwelijkheidaanduiding\": \"openbaar\",\n \"doel\": \"test doel\",\n \"verantwoordelijke\":\"X\",\n \"aanleiding\": \"test aanleiding\",\n \"indicatieInternOfExtern\": \"extern\",\n \"handelingInitiator\": \"indienen\",\n \"onderwerp\": \"openbare ruimte\",\n \"handelingBehandelaar\": \"behandelen\",\n \"doorlooptijd\": \"P10D\",\n \"opschortingEnAanhoudingMogelijk\": false,\n \"verlengingMogelijk\": true,\n \"publicatieIndicatie\": false,\n \"productenOfDiensten\": [\n \"https://ref.tst.vng.cloud/standaard/\"\n ],\n \"selectielijstProcestype\": \"{{procestype_procestermijn_nihil_url}}\",\n \"referentieproces\": {\n \"naam\": \"test\",\n \"link\": \"\"\n },\n \"deelzaaktypen\": [\n \"{{deelzaaktype_identificatie}}\"\n ],\n \"catalogus\": \"{{catalogus_url}}\",\n \"statustypen\": [\n \n ],\n \"resultaattypen\": [\n ],\n \"eigenschappen\": [\n ],\n \"informatieobjecttypen\": [],\n \"besluittypen\": [\n \"{{besluit_omschrijving}}\"\n ],\n \"gerelateerdeZaaktypen\": [],\n \"beginGeldigheid\": \"2019-01-01\",\n \"versiedatum\": \"2019-01-01\",\n \"concept\": true,\n \"verlengingstermijn\": \"P5D\"\n}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "0fbf79aa-72a8-4ad6-92b2-935166bd166d", + "type": "text/javascript", + "packages": {}, + "exec": [ + "if(pm.response.code == 201) {", + "", + " pm.environment.set(\"zaaktype_procestermijn_nihil_url\", pm.response.json().url);", + "}" + ], + "_lastExecutionId": "5c5f419b-4c82-4681-8cee-f76e92e06d60" + } + }, + { + "listen": "prerequest", + "script": { + "id": "7521147a-8415-4719-88cd-19c2d864dbaf", + "type": "text/javascript", + "packages": {}, + "exec": [ + "var uuid = require('uuid');", + "var myUUID = uuid.v4(); ", + "pm.environment.set(\"random_identificatie\", myUUID);", + "" + ], + "_lastExecutionId": "7bdb6766-00e2-4782-84df-c4d245dd4410" + } + } + ] + }, + "request": { + "url": { + "protocol": "http", + "port": "8080", + "path": [ + "index.php", + "apps", + "procest", + "api", + "zgw", + "catalogi", + "v1", + "zaaktypen" + ], + "host": [ + "localhost" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Authorization", + "value": "Bearer eyJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJwcm9jZXN0LWFkbWluIiwiY2xpZW50X2lkIjoicHJvY2VzdC1hZG1pbiIsImlhdCI6IjE3NzMxNDUxOTAiLCJ1c2VyX2lkIjoicHJvY2VzdC1hZG1pbiIsInVzZXJfcmVwcmVzZW50YXRpb24iOiIifQ.xNN08XKTsVy7xYJMbhzih63e9xBz6uXlUKzg-a3MMdw", + "system": true + }, + { + "key": "User-Agent", + "value": "PostmanRuntime/7.39.1", + "system": true + }, + { + "key": "Accept", + "value": "*/*", + "system": true + }, + { + "key": "Cache-Control", + "value": "no-cache", + "system": true + }, + { + "key": "Postman-Token", + "value": "d256aa71-1b05-498a-86d5-9381e9ae9467", + "system": true + }, + { + "key": "Host", + "value": "localhost:8080", + "system": true + }, + { + "key": "Accept-Encoding", + "value": "gzip, deflate, br", + "system": true + }, + { + "key": "Connection", + "value": "keep-alive", + "system": true + }, + { + "key": "Content-Length", + "value": "1388", + "system": true + }, + { + "key": "Cookie", + "value": "ocvp3112b4wg=e16a7eb11dc6133437082e200811fdd4; oc_sessionPassphrase=LBNdKxRzA0iqoULIruNxDDh2BK3O%2BrCIU8aUmiUcOFvy5Xw1YfjwQNlmBW2IkGwJYtxXh9%2BwDN6vYuGNX07tXzkBtjQJUWTGdzf8AIOUIVxVx5DfyWAQZ7nmYmQv6XSE; nc_sameSiteCookielax=true; nc_sameSiteCookiestrict=true", + "system": true + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n\t\"identificatie\": \"78e4cc42-1419-493d-b54b-a4374a4d74ba\",\n \"omschrijving\": \"zrc_tests_1\",\n \"vertrouwelijkheidaanduiding\": \"openbaar\",\n \"doel\": \"test doel\",\n \"verantwoordelijke\":\"X\",\n \"aanleiding\": \"test aanleiding\",\n \"indicatieInternOfExtern\": \"extern\",\n \"handelingInitiator\": \"indienen\",\n \"onderwerp\": \"openbare ruimte\",\n \"handelingBehandelaar\": \"behandelen\",\n \"doorlooptijd\": \"P10D\",\n \"opschortingEnAanhoudingMogelijk\": false,\n \"verlengingMogelijk\": true,\n \"publicatieIndicatie\": false,\n \"productenOfDiensten\": [\n \"https://ref.tst.vng.cloud/standaard/\"\n ],\n \"selectielijstProcestype\": \"https://selectielijst.openzaak.nl/api/v1/procestypen/838e405a-9b12-43c4-a985-d7a7490d422e\",\n \"referentieproces\": {\n \"naam\": \"test\",\n \"link\": \"\"\n },\n \"deelzaaktypen\": [\n \"cae6f26a-1321-4bff-b314-421ddf7775b9\"\n ],\n \"catalogus\": \"http://localhost:8080/index.php/apps/procest/api/zgw/catalogi/v1/catalogussen/5057408f-fd76-469e-8646-bcc4ba2efa8d\",\n \"statustypen\": [\n \n ],\n \"resultaattypen\": [\n ],\n \"eigenschappen\": [\n ],\n \"informatieobjecttypen\": [],\n \"besluittypen\": [\n \"c7e4cd3e-1645-4c0a-8bc4-0aa1847f6946\"\n ],\n \"gerelateerdeZaaktypen\": [],\n \"beginGeldigheid\": \"2019-01-01\",\n \"versiedatum\": \"2019-01-01\",\n \"concept\": true,\n \"verlengingstermijn\": \"P5D\"\n}" + }, + "auth": { + "type": "jwt", + "jwt": [ + { + "type": "string", + "value": "{\r\n \"iss\": \"procest-admin\",\r\n \"client_id\": \"procest-admin\",\r\n \"iat\": \"1773145190\",\r\n \"user_id\": \"procest-admin\",\r\n \"user_representation\": \"\"\r\n}", + "key": "payload" + }, + { + "type": "string", + "value": "procest-admin-secret-key-for-testing", + "key": "secret" + }, + { + "type": "string", + "value": "HS256", + "key": "algorithm" + }, + { + "type": "boolean", + "value": false, + "key": "isSecretBase64Encoded" + }, + { + "type": "string", + "value": "header", + "key": "addTokenTo" + }, + { + "type": "string", + "value": "Bearer", + "key": "headerPrefix" + }, + { + "type": "string", + "value": "token", + "key": "queryParamKey" + }, + { + "type": "string", + "value": "{}", + "key": "header" + } + ] + } + }, + "response": { + "id": "f306c42d-baff-4006-a41d-1cd3a1093813", + "status": "Created", + "code": 201, + "header": [ + { + "key": "Date", + "value": "Tue, 10 Mar 2026 12:19:50 GMT" + }, + { + "key": "Server", + "value": "Apache/2.4.66 (Debian)" + }, + { + "key": "X-Content-Type-Options", + "value": "nosniff" + }, + { + "key": "X-Frame-Options", + "value": "SAMEORIGIN" + }, + { + "key": "X-Permitted-Cross-Domain-Policies", + "value": "none" + }, + { + "key": "X-Robots-Tag", + "value": "noindex, nofollow" + }, + { + "key": "Referrer-Policy", + "value": "no-referrer" + }, + { + "key": "X-Powered-By", + "value": "PHP/8.3.30" + }, + { + "key": "Content-Security-Policy", + "value": "default-src 'none';base-uri 'none';manifest-src 'self';frame-ancestors 'none'" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=e16a7eb11dc6133437082e200811fdd4; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=e16a7eb11dc6133437082e200811fdd4; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=e16a7eb11dc6133437082e200811fdd4; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=e16a7eb11dc6133437082e200811fdd4; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=e16a7eb11dc6133437082e200811fdd4; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=6b445c73446eb391e001c376946c75af; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=6b445c73446eb391e001c376946c75af; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=6b445c73446eb391e001c376946c75af; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=6b445c73446eb391e001c376946c75af; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=6b445c73446eb391e001c376946c75af; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "X-Request-Id", + "value": "SUhS7g22YcTxsBjLbfIR" + }, + { + "key": "Cache-Control", + "value": "no-cache, no-store, must-revalidate" + }, + { + "key": "Feature-Policy", + "value": "autoplay 'none';camera 'none';fullscreen 'none';geolocation 'none';microphone 'none';payment 'none'" + }, + { + "key": "X-User-Id", + "value": "admin" + }, + { + "key": "Content-Length", + "value": "1464" + }, + { + "key": "Keep-Alive", + "value": "timeout=5, max=100" + }, + { + "key": "Connection", + "value": "Keep-Alive" + }, + { + "key": "Content-Type", + "value": "application/json; charset=utf-8" + } + ], + "stream": { + "type": "Buffer", + "data": [ + 123, + 34, + 117, + 114, + 108, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 105, + 92, + 47, + 118, + 49, + 92, + 47, + 122, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 110, + 92, + 47, + 101, + 98, + 56, + 101, + 48, + 54, + 49, + 55, + 45, + 48, + 53, + 98, + 48, + 45, + 52, + 98, + 99, + 100, + 45, + 57, + 48, + 53, + 56, + 45, + 57, + 54, + 98, + 49, + 53, + 53, + 50, + 48, + 48, + 57, + 101, + 102, + 34, + 44, + 34, + 117, + 117, + 105, + 100, + 34, + 58, + 34, + 101, + 98, + 56, + 101, + 48, + 54, + 49, + 55, + 45, + 48, + 53, + 98, + 48, + 45, + 52, + 98, + 99, + 100, + 45, + 57, + 48, + 53, + 56, + 45, + 57, + 54, + 98, + 49, + 53, + 53, + 50, + 48, + 48, + 57, + 101, + 102, + 34, + 44, + 34, + 105, + 100, + 101, + 110, + 116, + 105, + 102, + 105, + 99, + 97, + 116, + 105, + 101, + 34, + 58, + 34, + 55, + 56, + 101, + 52, + 99, + 99, + 52, + 50, + 45, + 49, + 52, + 49, + 57, + 45, + 52, + 57, + 51, + 100, + 45, + 98, + 53, + 52, + 98, + 45, + 97, + 52, + 51, + 55, + 52, + 97, + 52, + 100, + 55, + 52, + 98, + 97, + 34, + 44, + 34, + 111, + 109, + 115, + 99, + 104, + 114, + 105, + 106, + 118, + 105, + 110, + 103, + 34, + 58, + 34, + 122, + 114, + 99, + 95, + 116, + 101, + 115, + 116, + 115, + 95, + 49, + 34, + 44, + 34, + 111, + 109, + 115, + 99, + 104, + 114, + 105, + 106, + 118, + 105, + 110, + 103, + 71, + 101, + 110, + 101, + 114, + 105, + 101, + 107, + 34, + 58, + 34, + 34, + 44, + 34, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 117, + 115, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 105, + 92, + 47, + 118, + 49, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 117, + 115, + 115, + 101, + 110, + 92, + 47, + 53, + 48, + 53, + 55, + 52, + 48, + 56, + 102, + 45, + 102, + 100, + 55, + 54, + 45, + 52, + 54, + 57, + 101, + 45, + 56, + 54, + 52, + 54, + 45, + 98, + 99, + 99, + 52, + 98, + 97, + 50, + 101, + 102, + 97, + 56, + 100, + 34, + 44, + 34, + 100, + 111, + 101, + 108, + 34, + 58, + 34, + 116, + 101, + 115, + 116, + 32, + 100, + 111, + 101, + 108, + 34, + 44, + 34, + 97, + 97, + 110, + 108, + 101, + 105, + 100, + 105, + 110, + 103, + 34, + 58, + 34, + 116, + 101, + 115, + 116, + 32, + 97, + 97, + 110, + 108, + 101, + 105, + 100, + 105, + 110, + 103, + 34, + 44, + 34, + 111, + 110, + 100, + 101, + 114, + 119, + 101, + 114, + 112, + 34, + 58, + 34, + 111, + 112, + 101, + 110, + 98, + 97, + 114, + 101, + 32, + 114, + 117, + 105, + 109, + 116, + 101, + 34, + 44, + 34, + 100, + 111, + 111, + 114, + 108, + 111, + 111, + 112, + 116, + 105, + 106, + 100, + 34, + 58, + 34, + 80, + 49, + 48, + 68, + 34, + 44, + 34, + 118, + 101, + 114, + 116, + 114, + 111, + 117, + 119, + 101, + 108, + 105, + 106, + 107, + 104, + 101, + 105, + 100, + 97, + 97, + 110, + 100, + 117, + 105, + 100, + 105, + 110, + 103, + 34, + 58, + 34, + 111, + 112, + 101, + 110, + 98, + 97, + 97, + 114, + 34, + 44, + 34, + 99, + 111, + 110, + 99, + 101, + 112, + 116, + 34, + 58, + 116, + 114, + 117, + 101, + 44, + 34, + 98, + 101, + 103, + 105, + 110, + 71, + 101, + 108, + 100, + 105, + 103, + 104, + 101, + 105, + 100, + 34, + 58, + 34, + 50, + 48, + 49, + 57, + 45, + 48, + 49, + 45, + 48, + 49, + 34, + 44, + 34, + 101, + 105, + 110, + 100, + 101, + 71, + 101, + 108, + 100, + 105, + 103, + 104, + 101, + 105, + 100, + 34, + 58, + 34, + 50, + 48, + 50, + 54, + 45, + 48, + 51, + 45, + 49, + 48, + 34, + 44, + 34, + 104, + 97, + 110, + 100, + 101, + 108, + 105, + 110, + 103, + 73, + 110, + 105, + 116, + 105, + 97, + 116, + 111, + 114, + 34, + 58, + 34, + 105, + 110, + 100, + 105, + 101, + 110, + 101, + 110, + 34, + 44, + 34, + 105, + 110, + 100, + 105, + 99, + 97, + 116, + 105, + 101, + 73, + 110, + 116, + 101, + 114, + 110, + 79, + 102, + 69, + 120, + 116, + 101, + 114, + 110, + 34, + 58, + 34, + 101, + 120, + 116, + 101, + 114, + 110, + 34, + 44, + 34, + 104, + 97, + 110, + 100, + 101, + 108, + 105, + 110, + 103, + 66, + 101, + 104, + 97, + 110, + 100, + 101, + 108, + 97, + 97, + 114, + 34, + 58, + 34, + 98, + 101, + 104, + 97, + 110, + 100, + 101, + 108, + 101, + 110, + 34, + 44, + 34, + 111, + 112, + 115, + 99, + 104, + 111, + 114, + 116, + 105, + 110, + 103, + 69, + 110, + 65, + 97, + 110, + 104, + 111, + 117, + 100, + 105, + 110, + 103, + 77, + 111, + 103, + 101, + 108, + 105, + 106, + 107, + 34, + 58, + 102, + 97, + 108, + 115, + 101, + 44, + 34, + 118, + 101, + 114, + 108, + 101, + 110, + 103, + 105, + 110, + 103, + 77, + 111, + 103, + 101, + 108, + 105, + 106, + 107, + 34, + 58, + 116, + 114, + 117, + 101, + 44, + 34, + 118, + 101, + 114, + 108, + 101, + 110, + 103, + 105, + 110, + 103, + 115, + 116, + 101, + 114, + 109, + 105, + 106, + 110, + 34, + 58, + 34, + 80, + 53, + 68, + 34, + 44, + 34, + 112, + 117, + 98, + 108, + 105, + 99, + 97, + 116, + 105, + 101, + 73, + 110, + 100, + 105, + 99, + 97, + 116, + 105, + 101, + 34, + 58, + 102, + 97, + 108, + 115, + 101, + 44, + 34, + 112, + 114, + 111, + 100, + 117, + 99, + 116, + 101, + 110, + 79, + 102, + 68, + 105, + 101, + 110, + 115, + 116, + 101, + 110, + 34, + 58, + 91, + 34, + 104, + 116, + 116, + 112, + 115, + 58, + 92, + 47, + 92, + 47, + 114, + 101, + 102, + 46, + 116, + 115, + 116, + 46, + 118, + 110, + 103, + 46, + 99, + 108, + 111, + 117, + 100, + 92, + 47, + 115, + 116, + 97, + 110, + 100, + 97, + 97, + 114, + 100, + 92, + 47, + 34, + 93, + 44, + 34, + 115, + 101, + 108, + 101, + 99, + 116, + 105, + 101, + 108, + 105, + 106, + 115, + 116, + 80, + 114, + 111, + 99, + 101, + 115, + 116, + 121, + 112, + 101, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 115, + 58, + 92, + 47, + 92, + 47, + 115, + 101, + 108, + 101, + 99, + 116, + 105, + 101, + 108, + 105, + 106, + 115, + 116, + 46, + 111, + 112, + 101, + 110, + 122, + 97, + 97, + 107, + 46, + 110, + 108, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 118, + 49, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 121, + 112, + 101, + 110, + 92, + 47, + 56, + 51, + 56, + 101, + 52, + 48, + 53, + 97, + 45, + 57, + 98, + 49, + 50, + 45, + 52, + 51, + 99, + 52, + 45, + 97, + 57, + 56, + 53, + 45, + 100, + 55, + 97, + 55, + 52, + 57, + 48, + 100, + 52, + 50, + 50, + 101, + 34, + 44, + 34, + 114, + 101, + 102, + 101, + 114, + 101, + 110, + 116, + 105, + 101, + 112, + 114, + 111, + 99, + 101, + 115, + 34, + 58, + 123, + 34, + 108, + 105, + 110, + 107, + 34, + 58, + 34, + 34, + 44, + 34, + 110, + 97, + 97, + 109, + 34, + 58, + 34, + 116, + 101, + 115, + 116, + 34, + 125, + 44, + 34, + 118, + 101, + 114, + 97, + 110, + 116, + 119, + 111, + 111, + 114, + 100, + 101, + 108, + 105, + 106, + 107, + 101, + 34, + 58, + 34, + 88, + 34, + 44, + 34, + 103, + 101, + 114, + 101, + 108, + 97, + 116, + 101, + 101, + 114, + 100, + 101, + 90, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 98, + 101, + 115, + 108, + 117, + 105, + 116, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 105, + 92, + 47, + 118, + 49, + 92, + 47, + 98, + 101, + 115, + 108, + 117, + 105, + 116, + 116, + 121, + 112, + 101, + 110, + 92, + 47, + 48, + 98, + 50, + 50, + 48, + 100, + 50, + 55, + 45, + 101, + 50, + 53, + 49, + 45, + 52, + 99, + 52, + 55, + 45, + 98, + 48, + 100, + 102, + 45, + 48, + 49, + 52, + 99, + 50, + 101, + 52, + 99, + 97, + 97, + 54, + 49, + 34, + 93, + 44, + 34, + 105, + 110, + 102, + 111, + 114, + 109, + 97, + 116, + 105, + 101, + 111, + 98, + 106, + 101, + 99, + 116, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 100, + 101, + 101, + 108, + 122, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 116, + 111, + 101, + 108, + 105, + 99, + 104, + 116, + 105, + 110, + 103, + 34, + 58, + 34, + 34, + 44, + 34, + 118, + 101, + 114, + 115, + 105, + 101, + 100, + 97, + 116, + 117, + 109, + 34, + 58, + 34, + 50, + 48, + 49, + 57, + 45, + 48, + 49, + 45, + 48, + 49, + 34, + 44, + 34, + 101, + 105, + 103, + 101, + 110, + 115, + 99, + 104, + 97, + 112, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 115, + 116, + 97, + 116, + 117, + 115, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 114, + 101, + 115, + 117, + 108, + 116, + 97, + 97, + 116, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 114, + 111, + 108, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 125 + ] + }, + "cookie": [], + "responseTime": 349, + "responseSize": 1464 + }, + "id": "55386c1f-adf4-44d5-88b2-07c16a1f87dc" + }, + { + "cursor": { + "ref": "278e4c0d-5bd8-4a38-b28e-2a1a3a9d0341", + "length": 313, + "cycles": 1, + "position": 204, + "iteration": 0, + "httpRequestId": "8849a355-d376-4d6b-9ca8-c6e1c7675a9e" + }, + "item": { + "id": "b5754e41-f81b-4a6b-85a2-ad8069a27faa", + "name": "Create Resultaattype procestermijn nihil", + "request": { + "url": { + "path": [ + "resultaattypen" + ], + "host": [ + "{{ztc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n\t\"zaaktype\": \"{{zaaktype_procestermijn_nihil_url}}\",\n\t\"omschrijving\": \"Klaar\",\n\t\"resultaattypeomschrijving\": \"https://referentielijsten.roxit.nl/api/v1/resultaattypeomschrijvingen/4a6b5072-e44f-4826-9546-e8074499654e\",\n\t\"selectielijstklasse\": \"{{selectielijstklasse_procestermijn_nihil_url}}\",\n \"besluittypen\": [],\n\t\"brondatumArchiefprocedure\": {\n\t\t\"afleidingswijze\": \"afgehandeld\",\n\t\t\"procestermijn\": null,\n\t\t\"datumkenmerk\": \"\",\n\t\t\"einddatumBekend\": false,\n\t\t\"objecttype\": \"\",\n\t\t\"registratie\": \"\"\n\t}\n}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "35677ddf-9ae2-4579-b974-ca327d49985f", + "type": "text/javascript", + "packages": {}, + "exec": [ + "var jsonData = pm.response.json();", + "", + "pm.environment.set(\"current_resultaattype\", jsonData.url);", + "pm.environment.set(\"resultaattype_archiefnominatie\", jsonData.archiefnominatie);", + "pm.environment.set(\"resultaattype_archiefactietermijn\", jsonData.archiefactietermijn);", + "pm.environment.set(\"resultaattype_brondatumArchiefprocedure\", jsonData.brondatumArchiefprocedure);" + ], + "_lastExecutionId": "4b92dd0e-84ac-433f-a3fc-2e2d757e6b4d" + } + } + ] + }, + "request": { + "url": { + "protocol": "http", + "port": "8080", + "path": [ + "index.php", + "apps", + "procest", + "api", + "zgw", + "catalogi", + "v1", + "resultaattypen" + ], + "host": [ + "localhost" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Authorization", + "value": "Bearer eyJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJwcm9jZXN0LWFkbWluIiwiY2xpZW50X2lkIjoicHJvY2VzdC1hZG1pbiIsImlhdCI6IjE3NzMxNDUxOTEiLCJ1c2VyX2lkIjoicHJvY2VzdC1hZG1pbiIsInVzZXJfcmVwcmVzZW50YXRpb24iOiIifQ.2MLzlyz51Secf6CWUE2fRisCz-yWMrDweybvZsTY66M", + "system": true + }, + { + "key": "User-Agent", + "value": "PostmanRuntime/7.39.1", + "system": true + }, + { + "key": "Accept", + "value": "*/*", + "system": true + }, + { + "key": "Cache-Control", + "value": "no-cache", + "system": true + }, + { + "key": "Postman-Token", + "value": "1133b3da-bf7b-4458-bcdc-2e56acc61803", + "system": true + }, + { + "key": "Host", + "value": "localhost:8080", + "system": true + }, + { + "key": "Accept-Encoding", + "value": "gzip, deflate, br", + "system": true + }, + { + "key": "Connection", + "value": "keep-alive", + "system": true + }, + { + "key": "Content-Length", + "value": "623", + "system": true + }, + { + "key": "Cookie", + "value": "ocvp3112b4wg=6b445c73446eb391e001c376946c75af; oc_sessionPassphrase=LBNdKxRzA0iqoULIruNxDDh2BK3O%2BrCIU8aUmiUcOFvy5Xw1YfjwQNlmBW2IkGwJYtxXh9%2BwDN6vYuGNX07tXzkBtjQJUWTGdzf8AIOUIVxVx5DfyWAQZ7nmYmQv6XSE; nc_sameSiteCookielax=true; nc_sameSiteCookiestrict=true", + "system": true + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n\t\"zaaktype\": \"http://localhost:8080/index.php/apps/procest/api/zgw/catalogi/v1/zaaktypen/eb8e0617-05b0-4bcd-9058-96b1552009ef\",\n\t\"omschrijving\": \"Klaar\",\n\t\"resultaattypeomschrijving\": \"https://referentielijsten.roxit.nl/api/v1/resultaattypeomschrijvingen/4a6b5072-e44f-4826-9546-e8074499654e\",\n\t\"selectielijstklasse\": \"https://selectielijst.openzaak.nl/api/v1/resultaten/3fc7002b-31b6-4abe-82af-b6d46a9a1736\",\n \"besluittypen\": [],\n\t\"brondatumArchiefprocedure\": {\n\t\t\"afleidingswijze\": \"afgehandeld\",\n\t\t\"procestermijn\": null,\n\t\t\"datumkenmerk\": \"\",\n\t\t\"einddatumBekend\": false,\n\t\t\"objecttype\": \"\",\n\t\t\"registratie\": \"\"\n\t}\n}" + }, + "auth": { + "type": "jwt", + "jwt": [ + { + "type": "string", + "value": "{\r\n \"iss\": \"procest-admin\",\r\n \"client_id\": \"procest-admin\",\r\n \"iat\": \"1773145191\",\r\n \"user_id\": \"procest-admin\",\r\n \"user_representation\": \"\"\r\n}", + "key": "payload" + }, + { + "type": "string", + "value": "procest-admin-secret-key-for-testing", + "key": "secret" + }, + { + "type": "string", + "value": "HS256", + "key": "algorithm" + }, + { + "type": "boolean", + "value": false, + "key": "isSecretBase64Encoded" + }, + { + "type": "string", + "value": "header", + "key": "addTokenTo" + }, + { + "type": "string", + "value": "Bearer", + "key": "headerPrefix" + }, + { + "type": "string", + "value": "token", + "key": "queryParamKey" + }, + { + "type": "string", + "value": "{}", + "key": "header" + } + ] + } + }, + "response": { + "id": "aa83a734-033d-4181-b2d4-ddb938daf7f8", + "status": "Created", + "code": 201, + "header": [ + { + "key": "Date", + "value": "Tue, 10 Mar 2026 12:19:50 GMT" + }, + { + "key": "Server", + "value": "Apache/2.4.66 (Debian)" + }, + { + "key": "X-Content-Type-Options", + "value": "nosniff" + }, + { + "key": "X-Frame-Options", + "value": "SAMEORIGIN" + }, + { + "key": "X-Permitted-Cross-Domain-Policies", + "value": "none" + }, + { + "key": "X-Robots-Tag", + "value": "noindex, nofollow" + }, + { + "key": "Referrer-Policy", + "value": "no-referrer" + }, + { + "key": "X-Powered-By", + "value": "PHP/8.3.30" + }, + { + "key": "Content-Security-Policy", + "value": "default-src 'none';base-uri 'none';manifest-src 'self';frame-ancestors 'none'" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=6b445c73446eb391e001c376946c75af; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=6b445c73446eb391e001c376946c75af; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=6b445c73446eb391e001c376946c75af; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=6b445c73446eb391e001c376946c75af; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=6b445c73446eb391e001c376946c75af; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=a89c26c7a3ae935c27784222ee5d6baa; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=a89c26c7a3ae935c27784222ee5d6baa; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=a89c26c7a3ae935c27784222ee5d6baa; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=a89c26c7a3ae935c27784222ee5d6baa; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=a89c26c7a3ae935c27784222ee5d6baa; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "X-Request-Id", + "value": "lQXGK8HpU5tPpjqYEN8n" + }, + { + "key": "Cache-Control", + "value": "no-cache, no-store, must-revalidate" + }, + { + "key": "Feature-Policy", + "value": "autoplay 'none';camera 'none';fullscreen 'none';geolocation 'none';microphone 'none';payment 'none'" + }, + { + "key": "X-User-Id", + "value": "admin" + }, + { + "key": "Content-Length", + "value": "754" + }, + { + "key": "Keep-Alive", + "value": "timeout=5, max=99" + }, + { + "key": "Connection", + "value": "Keep-Alive" + }, + { + "key": "Content-Type", + "value": "application/json; charset=utf-8" + } + ], + "stream": { + "type": "Buffer", + "data": [ + 123, + 34, + 117, + 114, + 108, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 105, + 92, + 47, + 118, + 49, + 92, + 47, + 114, + 101, + 115, + 117, + 108, + 116, + 97, + 97, + 116, + 116, + 121, + 112, + 101, + 110, + 92, + 47, + 53, + 99, + 97, + 52, + 49, + 54, + 53, + 48, + 45, + 52, + 100, + 56, + 53, + 45, + 52, + 56, + 56, + 51, + 45, + 98, + 50, + 99, + 101, + 45, + 55, + 97, + 52, + 50, + 50, + 53, + 48, + 56, + 100, + 102, + 52, + 54, + 34, + 44, + 34, + 117, + 117, + 105, + 100, + 34, + 58, + 34, + 53, + 99, + 97, + 52, + 49, + 54, + 53, + 48, + 45, + 52, + 100, + 56, + 53, + 45, + 52, + 56, + 56, + 51, + 45, + 98, + 50, + 99, + 101, + 45, + 55, + 97, + 52, + 50, + 50, + 53, + 48, + 56, + 100, + 102, + 52, + 54, + 34, + 44, + 34, + 111, + 109, + 115, + 99, + 104, + 114, + 105, + 106, + 118, + 105, + 110, + 103, + 34, + 58, + 34, + 75, + 108, + 97, + 97, + 114, + 34, + 44, + 34, + 111, + 109, + 115, + 99, + 104, + 114, + 105, + 106, + 118, + 105, + 110, + 103, + 71, + 101, + 110, + 101, + 114, + 105, + 101, + 107, + 34, + 58, + 34, + 71, + 101, + 119, + 101, + 105, + 103, + 101, + 114, + 100, + 34, + 44, + 34, + 116, + 111, + 101, + 108, + 105, + 99, + 104, + 116, + 105, + 110, + 103, + 34, + 58, + 34, + 34, + 44, + 34, + 122, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 105, + 92, + 47, + 118, + 49, + 92, + 47, + 122, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 110, + 92, + 47, + 101, + 98, + 56, + 101, + 48, + 54, + 49, + 55, + 45, + 48, + 53, + 98, + 48, + 45, + 52, + 98, + 99, + 100, + 45, + 57, + 48, + 53, + 56, + 45, + 57, + 54, + 98, + 49, + 53, + 53, + 50, + 48, + 48, + 57, + 101, + 102, + 34, + 44, + 34, + 97, + 114, + 99, + 104, + 105, + 101, + 102, + 110, + 111, + 109, + 105, + 110, + 97, + 116, + 105, + 101, + 34, + 58, + 34, + 118, + 101, + 114, + 110, + 105, + 101, + 116, + 105, + 103, + 101, + 110, + 34, + 44, + 34, + 97, + 114, + 99, + 104, + 105, + 101, + 102, + 97, + 99, + 116, + 105, + 101, + 116, + 101, + 114, + 109, + 105, + 106, + 110, + 34, + 58, + 34, + 80, + 53, + 89, + 34, + 44, + 34, + 98, + 114, + 111, + 110, + 100, + 97, + 116, + 117, + 109, + 65, + 114, + 99, + 104, + 105, + 101, + 102, + 112, + 114, + 111, + 99, + 101, + 100, + 117, + 114, + 101, + 34, + 58, + 34, + 123, + 92, + 34, + 97, + 102, + 108, + 101, + 105, + 100, + 105, + 110, + 103, + 115, + 119, + 105, + 106, + 122, + 101, + 92, + 34, + 58, + 92, + 34, + 97, + 102, + 103, + 101, + 104, + 97, + 110, + 100, + 101, + 108, + 100, + 92, + 34, + 44, + 92, + 34, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 101, + 114, + 109, + 105, + 106, + 110, + 92, + 34, + 58, + 110, + 117, + 108, + 108, + 44, + 92, + 34, + 100, + 97, + 116, + 117, + 109, + 107, + 101, + 110, + 109, + 101, + 114, + 107, + 92, + 34, + 58, + 92, + 34, + 92, + 34, + 44, + 92, + 34, + 101, + 105, + 110, + 100, + 100, + 97, + 116, + 117, + 109, + 66, + 101, + 107, + 101, + 110, + 100, + 92, + 34, + 58, + 102, + 97, + 108, + 115, + 101, + 44, + 92, + 34, + 111, + 98, + 106, + 101, + 99, + 116, + 116, + 121, + 112, + 101, + 92, + 34, + 58, + 92, + 34, + 92, + 34, + 44, + 92, + 34, + 114, + 101, + 103, + 105, + 115, + 116, + 114, + 97, + 116, + 105, + 101, + 92, + 34, + 58, + 92, + 34, + 92, + 34, + 125, + 34, + 44, + 34, + 115, + 101, + 108, + 101, + 99, + 116, + 105, + 101, + 108, + 105, + 106, + 115, + 116, + 107, + 108, + 97, + 115, + 115, + 101, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 115, + 58, + 92, + 47, + 92, + 47, + 115, + 101, + 108, + 101, + 99, + 116, + 105, + 101, + 108, + 105, + 106, + 115, + 116, + 46, + 111, + 112, + 101, + 110, + 122, + 97, + 97, + 107, + 46, + 110, + 108, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 118, + 49, + 92, + 47, + 114, + 101, + 115, + 117, + 108, + 116, + 97, + 116, + 101, + 110, + 92, + 47, + 51, + 102, + 99, + 55, + 48, + 48, + 50, + 98, + 45, + 51, + 49, + 98, + 54, + 45, + 52, + 97, + 98, + 101, + 45, + 56, + 50, + 97, + 102, + 45, + 98, + 54, + 100, + 52, + 54, + 97, + 57, + 97, + 49, + 55, + 51, + 54, + 34, + 125 + ] + }, + "cookie": [], + "responseTime": 371, + "responseSize": 754 + }, + "id": "b5754e41-f81b-4a6b-85a2-ad8069a27faa" + }, + { + "cursor": { + "ref": "2c35b21b-6cbb-49b5-9f47-002bfd457acd", + "length": 313, + "cycles": 1, + "position": 205, + "iteration": 0, + "httpRequestId": "b66c1a0b-5234-4b2a-8f35-3543f075aedd" + }, + "item": { + "id": "a751a1d1-eb47-4a4a-9292-6b0cfe7944f3", + "name": "Create eind Statustype procestermijn nihil", + "request": { + "url": { + "path": [ + "statustypen" + ], + "host": [ + "{{ztc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n\t\"omschrijving\": \"Eind\",\n\t\"zaaktype\": \"{{zaaktype_procestermijn_nihil_url}}\",\n\t\"volgnummer\": 2\n}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "aef131be-4e99-4b2b-b40b-b85b2aff83ac", + "type": "text/javascript", + "exec": [ + "pm.environment.set(\"current_statustype_url\", pm.response.json().url);" + ], + "_lastExecutionId": "e9a62fc2-0571-4b26-8bec-3b9d44f65d9c" + } + } + ] + }, + "request": { + "url": { + "protocol": "http", + "port": "8080", + "path": [ + "index.php", + "apps", + "procest", + "api", + "zgw", + "catalogi", + "v1", + "statustypen" + ], + "host": [ + "localhost" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Authorization", + "value": "Bearer eyJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJwcm9jZXN0LWFkbWluIiwiY2xpZW50X2lkIjoicHJvY2VzdC1hZG1pbiIsImlhdCI6IjE3NzMxNDUxOTEiLCJ1c2VyX2lkIjoicHJvY2VzdC1hZG1pbiIsInVzZXJfcmVwcmVzZW50YXRpb24iOiIifQ.2MLzlyz51Secf6CWUE2fRisCz-yWMrDweybvZsTY66M", + "system": true + }, + { + "key": "User-Agent", + "value": "PostmanRuntime/7.39.1", + "system": true + }, + { + "key": "Accept", + "value": "*/*", + "system": true + }, + { + "key": "Cache-Control", + "value": "no-cache", + "system": true + }, + { + "key": "Postman-Token", + "value": "f8f570b7-9c35-449b-afe7-94f2463cdf7f", + "system": true + }, + { + "key": "Host", + "value": "localhost:8080", + "system": true + }, + { + "key": "Accept-Encoding", + "value": "gzip, deflate, br", + "system": true + }, + { + "key": "Connection", + "value": "keep-alive", + "system": true + }, + { + "key": "Content-Length", + "value": "173", + "system": true + }, + { + "key": "Cookie", + "value": "ocvp3112b4wg=a89c26c7a3ae935c27784222ee5d6baa; oc_sessionPassphrase=LBNdKxRzA0iqoULIruNxDDh2BK3O%2BrCIU8aUmiUcOFvy5Xw1YfjwQNlmBW2IkGwJYtxXh9%2BwDN6vYuGNX07tXzkBtjQJUWTGdzf8AIOUIVxVx5DfyWAQZ7nmYmQv6XSE; nc_sameSiteCookielax=true; nc_sameSiteCookiestrict=true", + "system": true + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n\t\"omschrijving\": \"Eind\",\n\t\"zaaktype\": \"http://localhost:8080/index.php/apps/procest/api/zgw/catalogi/v1/zaaktypen/eb8e0617-05b0-4bcd-9058-96b1552009ef\",\n\t\"volgnummer\": 2\n}" + }, + "auth": { + "type": "jwt", + "jwt": [ + { + "type": "string", + "value": "{\r\n \"iss\": \"procest-admin\",\r\n \"client_id\": \"procest-admin\",\r\n \"iat\": \"1773145191\",\r\n \"user_id\": \"procest-admin\",\r\n \"user_representation\": \"\"\r\n}", + "key": "payload" + }, + { + "type": "string", + "value": "procest-admin-secret-key-for-testing", + "key": "secret" + }, + { + "type": "string", + "value": "HS256", + "key": "algorithm" + }, + { + "type": "boolean", + "value": false, + "key": "isSecretBase64Encoded" + }, + { + "type": "string", + "value": "header", + "key": "addTokenTo" + }, + { + "type": "string", + "value": "Bearer", + "key": "headerPrefix" + }, + { + "type": "string", + "value": "token", + "key": "queryParamKey" + }, + { + "type": "string", + "value": "{}", + "key": "header" + } + ] + } + }, + "response": { + "id": "9a03f115-4622-4ce4-acd1-0de24cc16a31", + "status": "Created", + "code": 201, + "header": [ + { + "key": "Date", + "value": "Tue, 10 Mar 2026 12:19:51 GMT" + }, + { + "key": "Server", + "value": "Apache/2.4.66 (Debian)" + }, + { + "key": "X-Content-Type-Options", + "value": "nosniff" + }, + { + "key": "X-Frame-Options", + "value": "SAMEORIGIN" + }, + { + "key": "X-Permitted-Cross-Domain-Policies", + "value": "none" + }, + { + "key": "X-Robots-Tag", + "value": "noindex, nofollow" + }, + { + "key": "Referrer-Policy", + "value": "no-referrer" + }, + { + "key": "X-Powered-By", + "value": "PHP/8.3.30" + }, + { + "key": "Content-Security-Policy", + "value": "default-src 'none';base-uri 'none';manifest-src 'self';frame-ancestors 'none'" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=a89c26c7a3ae935c27784222ee5d6baa; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=a89c26c7a3ae935c27784222ee5d6baa; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=a89c26c7a3ae935c27784222ee5d6baa; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=a89c26c7a3ae935c27784222ee5d6baa; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=a89c26c7a3ae935c27784222ee5d6baa; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=c3656be70c54875df4ccde4a799878e9; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=c3656be70c54875df4ccde4a799878e9; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=c3656be70c54875df4ccde4a799878e9; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=c3656be70c54875df4ccde4a799878e9; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=c3656be70c54875df4ccde4a799878e9; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "X-Request-Id", + "value": "QgTeGb3URs3ZFDO8KToG" + }, + { + "key": "Cache-Control", + "value": "no-cache, no-store, must-revalidate" + }, + { + "key": "Feature-Policy", + "value": "autoplay 'none';camera 'none';fullscreen 'none';geolocation 'none';microphone 'none';payment 'none'" + }, + { + "key": "X-User-Id", + "value": "admin" + }, + { + "key": "Content-Length", + "value": "400" + }, + { + "key": "Keep-Alive", + "value": "timeout=5, max=98" + }, + { + "key": "Connection", + "value": "Keep-Alive" + }, + { + "key": "Content-Type", + "value": "application/json; charset=utf-8" + } + ], + "stream": { + "type": "Buffer", + "data": [ + 123, + 34, + 117, + 114, + 108, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 105, + 92, + 47, + 118, + 49, + 92, + 47, + 115, + 116, + 97, + 116, + 117, + 115, + 116, + 121, + 112, + 101, + 110, + 92, + 47, + 102, + 48, + 100, + 56, + 56, + 97, + 57, + 56, + 45, + 53, + 52, + 97, + 50, + 45, + 52, + 54, + 97, + 99, + 45, + 57, + 54, + 56, + 101, + 45, + 52, + 54, + 55, + 99, + 54, + 52, + 97, + 50, + 53, + 54, + 100, + 98, + 34, + 44, + 34, + 117, + 117, + 105, + 100, + 34, + 58, + 34, + 102, + 48, + 100, + 56, + 56, + 97, + 57, + 56, + 45, + 53, + 52, + 97, + 50, + 45, + 52, + 54, + 97, + 99, + 45, + 57, + 54, + 56, + 101, + 45, + 52, + 54, + 55, + 99, + 54, + 52, + 97, + 50, + 53, + 54, + 100, + 98, + 34, + 44, + 34, + 111, + 109, + 115, + 99, + 104, + 114, + 105, + 106, + 118, + 105, + 110, + 103, + 34, + 58, + 34, + 69, + 105, + 110, + 100, + 34, + 44, + 34, + 111, + 109, + 115, + 99, + 104, + 114, + 105, + 106, + 118, + 105, + 110, + 103, + 71, + 101, + 110, + 101, + 114, + 105, + 101, + 107, + 34, + 58, + 34, + 34, + 44, + 34, + 122, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 105, + 92, + 47, + 118, + 49, + 92, + 47, + 122, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 110, + 92, + 47, + 101, + 98, + 56, + 101, + 48, + 54, + 49, + 55, + 45, + 48, + 53, + 98, + 48, + 45, + 52, + 98, + 99, + 100, + 45, + 57, + 48, + 53, + 56, + 45, + 57, + 54, + 98, + 49, + 53, + 53, + 50, + 48, + 48, + 57, + 101, + 102, + 34, + 44, + 34, + 118, + 111, + 108, + 103, + 110, + 117, + 109, + 109, + 101, + 114, + 34, + 58, + 50, + 44, + 34, + 105, + 115, + 69, + 105, + 110, + 100, + 115, + 116, + 97, + 116, + 117, + 115, + 34, + 58, + 102, + 97, + 108, + 115, + 101, + 125 + ] + }, + "cookie": [], + "responseTime": 344, + "responseSize": 400 + }, + "id": "a751a1d1-eb47-4a4a-9292-6b0cfe7944f3" + }, + { + "cursor": { + "ref": "126127d1-68dc-4faf-bc77-16aea917f28e", + "length": 313, + "cycles": 1, + "position": 206, + "iteration": 0, + "httpRequestId": "fbdcb3aa-416e-4810-aea6-9432f1975246" + }, + "item": { + "id": "7b67c4e0-ab81-4d40-94b2-c3d81d2528b3", + "name": "Publish Zaaktype procestermijn nihil", + "request": { + "url": { + "path": [ + "publish" + ], + "host": [ + "{{zaaktype_procestermijn_nihil_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "ba9fba6f-a246-4fe2-aeeb-70e990ca769f", + "type": "text/javascript", + "exec": [ + "" + ], + "_lastExecutionId": "bb6cdfc4-4316-437d-9e7b-6cac59a30248" + } + }, + { + "listen": "prerequest", + "script": { + "id": "582a5c74-6224-4a01-aa6c-678ac7e45dd9", + "type": "text/javascript", + "exec": [ + "" + ], + "_lastExecutionId": "b872afa6-7bef-40a3-bd6c-c722da95bd0e" + } + } + ] + }, + "request": { + "url": { + "protocol": "http", + "port": "8080", + "path": [ + "index.php", + "apps", + "procest", + "api", + "zgw", + "catalogi", + "v1", + "zaaktypen", + "eb8e0617-05b0-4bcd-9058-96b1552009ef", + "publish" + ], + "host": [ + "localhost" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Authorization", + "value": "Bearer eyJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJwcm9jZXN0LWFkbWluIiwiY2xpZW50X2lkIjoicHJvY2VzdC1hZG1pbiIsImlhdCI6IjE3NzMxNDUxOTEiLCJ1c2VyX2lkIjoicHJvY2VzdC1hZG1pbiIsInVzZXJfcmVwcmVzZW50YXRpb24iOiIifQ.2MLzlyz51Secf6CWUE2fRisCz-yWMrDweybvZsTY66M", + "system": true + }, + { + "key": "User-Agent", + "value": "PostmanRuntime/7.39.1", + "system": true + }, + { + "key": "Accept", + "value": "*/*", + "system": true + }, + { + "key": "Cache-Control", + "value": "no-cache", + "system": true + }, + { + "key": "Postman-Token", + "value": "4eb449e5-79c4-429d-86e6-4affc33c963c", + "system": true + }, + { + "key": "Host", + "value": "localhost:8080", + "system": true + }, + { + "key": "Accept-Encoding", + "value": "gzip, deflate, br", + "system": true + }, + { + "key": "Connection", + "value": "keep-alive", + "system": true + }, + { + "key": "Cookie", + "value": "ocvp3112b4wg=c3656be70c54875df4ccde4a799878e9; oc_sessionPassphrase=LBNdKxRzA0iqoULIruNxDDh2BK3O%2BrCIU8aUmiUcOFvy5Xw1YfjwQNlmBW2IkGwJYtxXh9%2BwDN6vYuGNX07tXzkBtjQJUWTGdzf8AIOUIVxVx5DfyWAQZ7nmYmQv6XSE; nc_sameSiteCookielax=true; nc_sameSiteCookiestrict=true", + "system": true + }, + { + "key": "Content-Length", + "value": "0", + "system": true + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "" + }, + "auth": { + "type": "jwt", + "jwt": [ + { + "type": "string", + "value": "{\r\n \"iss\": \"procest-admin\",\r\n \"client_id\": \"procest-admin\",\r\n \"iat\": \"1773145191\",\r\n \"user_id\": \"procest-admin\",\r\n \"user_representation\": \"\"\r\n}", + "key": "payload" + }, + { + "type": "string", + "value": "procest-admin-secret-key-for-testing", + "key": "secret" + }, + { + "type": "string", + "value": "HS256", + "key": "algorithm" + }, + { + "type": "boolean", + "value": false, + "key": "isSecretBase64Encoded" + }, + { + "type": "string", + "value": "header", + "key": "addTokenTo" + }, + { + "type": "string", + "value": "Bearer", + "key": "headerPrefix" + }, + { + "type": "string", + "value": "token", + "key": "queryParamKey" + }, + { + "type": "string", + "value": "{}", + "key": "header" + } + ] + } + }, + "response": { + "id": "54bf6743-2f17-44da-b04f-a2831559460c", + "status": "OK", + "code": 200, + "header": [ + { + "key": "Date", + "value": "Tue, 10 Mar 2026 12:19:51 GMT" + }, + { + "key": "Server", + "value": "Apache/2.4.66 (Debian)" + }, + { + "key": "X-Content-Type-Options", + "value": "nosniff" + }, + { + "key": "X-Frame-Options", + "value": "SAMEORIGIN" + }, + { + "key": "X-Permitted-Cross-Domain-Policies", + "value": "none" + }, + { + "key": "X-Robots-Tag", + "value": "noindex, nofollow" + }, + { + "key": "Referrer-Policy", + "value": "no-referrer" + }, + { + "key": "X-Powered-By", + "value": "PHP/8.3.30" + }, + { + "key": "Content-Security-Policy", + "value": "default-src 'none';base-uri 'none';manifest-src 'self';frame-ancestors 'none'" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=c3656be70c54875df4ccde4a799878e9; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=c3656be70c54875df4ccde4a799878e9; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=c3656be70c54875df4ccde4a799878e9; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=c3656be70c54875df4ccde4a799878e9; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=c3656be70c54875df4ccde4a799878e9; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=eaae5be1d82a1372036c6de07e375629; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=eaae5be1d82a1372036c6de07e375629; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=eaae5be1d82a1372036c6de07e375629; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=eaae5be1d82a1372036c6de07e375629; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=eaae5be1d82a1372036c6de07e375629; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "X-Request-Id", + "value": "KCJ9RoeI3HfI0VRDGLga" + }, + { + "key": "Cache-Control", + "value": "no-cache, no-store, must-revalidate" + }, + { + "key": "Feature-Policy", + "value": "autoplay 'none';camera 'none';fullscreen 'none';geolocation 'none';microphone 'none';payment 'none'" + }, + { + "key": "X-User-Id", + "value": "admin" + }, + { + "key": "Content-Encoding", + "value": "gzip" + }, + { + "key": "Content-Length", + "value": "708" + }, + { + "key": "Keep-Alive", + "value": "timeout=5, max=97" + }, + { + "key": "Connection", + "value": "Keep-Alive" + }, + { + "key": "Content-Type", + "value": "application/json; charset=utf-8" + } + ], + "stream": { + "type": "Buffer", + "data": [ + 123, + 34, + 117, + 114, + 108, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 105, + 92, + 47, + 118, + 49, + 92, + 47, + 122, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 110, + 92, + 47, + 101, + 98, + 56, + 101, + 48, + 54, + 49, + 55, + 45, + 48, + 53, + 98, + 48, + 45, + 52, + 98, + 99, + 100, + 45, + 57, + 48, + 53, + 56, + 45, + 57, + 54, + 98, + 49, + 53, + 53, + 50, + 48, + 48, + 57, + 101, + 102, + 34, + 44, + 34, + 117, + 117, + 105, + 100, + 34, + 58, + 34, + 101, + 98, + 56, + 101, + 48, + 54, + 49, + 55, + 45, + 48, + 53, + 98, + 48, + 45, + 52, + 98, + 99, + 100, + 45, + 57, + 48, + 53, + 56, + 45, + 57, + 54, + 98, + 49, + 53, + 53, + 50, + 48, + 48, + 57, + 101, + 102, + 34, + 44, + 34, + 105, + 100, + 101, + 110, + 116, + 105, + 102, + 105, + 99, + 97, + 116, + 105, + 101, + 34, + 58, + 34, + 55, + 56, + 101, + 52, + 99, + 99, + 52, + 50, + 45, + 49, + 52, + 49, + 57, + 45, + 52, + 57, + 51, + 100, + 45, + 98, + 53, + 52, + 98, + 45, + 97, + 52, + 51, + 55, + 52, + 97, + 52, + 100, + 55, + 52, + 98, + 97, + 34, + 44, + 34, + 111, + 109, + 115, + 99, + 104, + 114, + 105, + 106, + 118, + 105, + 110, + 103, + 34, + 58, + 34, + 122, + 114, + 99, + 95, + 116, + 101, + 115, + 116, + 115, + 95, + 49, + 34, + 44, + 34, + 111, + 109, + 115, + 99, + 104, + 114, + 105, + 106, + 118, + 105, + 110, + 103, + 71, + 101, + 110, + 101, + 114, + 105, + 101, + 107, + 34, + 58, + 34, + 34, + 44, + 34, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 117, + 115, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 105, + 92, + 47, + 118, + 49, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 117, + 115, + 115, + 101, + 110, + 92, + 47, + 53, + 48, + 53, + 55, + 52, + 48, + 56, + 102, + 45, + 102, + 100, + 55, + 54, + 45, + 52, + 54, + 57, + 101, + 45, + 56, + 54, + 52, + 54, + 45, + 98, + 99, + 99, + 52, + 98, + 97, + 50, + 101, + 102, + 97, + 56, + 100, + 34, + 44, + 34, + 100, + 111, + 101, + 108, + 34, + 58, + 34, + 116, + 101, + 115, + 116, + 32, + 100, + 111, + 101, + 108, + 34, + 44, + 34, + 97, + 97, + 110, + 108, + 101, + 105, + 100, + 105, + 110, + 103, + 34, + 58, + 34, + 116, + 101, + 115, + 116, + 32, + 97, + 97, + 110, + 108, + 101, + 105, + 100, + 105, + 110, + 103, + 34, + 44, + 34, + 111, + 110, + 100, + 101, + 114, + 119, + 101, + 114, + 112, + 34, + 58, + 34, + 111, + 112, + 101, + 110, + 98, + 97, + 114, + 101, + 32, + 114, + 117, + 105, + 109, + 116, + 101, + 34, + 44, + 34, + 100, + 111, + 111, + 114, + 108, + 111, + 111, + 112, + 116, + 105, + 106, + 100, + 34, + 58, + 34, + 80, + 49, + 48, + 68, + 34, + 44, + 34, + 118, + 101, + 114, + 116, + 114, + 111, + 117, + 119, + 101, + 108, + 105, + 106, + 107, + 104, + 101, + 105, + 100, + 97, + 97, + 110, + 100, + 117, + 105, + 100, + 105, + 110, + 103, + 34, + 58, + 34, + 111, + 112, + 101, + 110, + 98, + 97, + 97, + 114, + 34, + 44, + 34, + 99, + 111, + 110, + 99, + 101, + 112, + 116, + 34, + 58, + 102, + 97, + 108, + 115, + 101, + 44, + 34, + 98, + 101, + 103, + 105, + 110, + 71, + 101, + 108, + 100, + 105, + 103, + 104, + 101, + 105, + 100, + 34, + 58, + 34, + 50, + 48, + 49, + 57, + 45, + 48, + 49, + 45, + 48, + 49, + 34, + 44, + 34, + 101, + 105, + 110, + 100, + 101, + 71, + 101, + 108, + 100, + 105, + 103, + 104, + 101, + 105, + 100, + 34, + 58, + 34, + 50, + 48, + 50, + 54, + 45, + 48, + 51, + 45, + 49, + 48, + 34, + 44, + 34, + 104, + 97, + 110, + 100, + 101, + 108, + 105, + 110, + 103, + 73, + 110, + 105, + 116, + 105, + 97, + 116, + 111, + 114, + 34, + 58, + 34, + 105, + 110, + 100, + 105, + 101, + 110, + 101, + 110, + 34, + 44, + 34, + 105, + 110, + 100, + 105, + 99, + 97, + 116, + 105, + 101, + 73, + 110, + 116, + 101, + 114, + 110, + 79, + 102, + 69, + 120, + 116, + 101, + 114, + 110, + 34, + 58, + 34, + 101, + 120, + 116, + 101, + 114, + 110, + 34, + 44, + 34, + 104, + 97, + 110, + 100, + 101, + 108, + 105, + 110, + 103, + 66, + 101, + 104, + 97, + 110, + 100, + 101, + 108, + 97, + 97, + 114, + 34, + 58, + 34, + 98, + 101, + 104, + 97, + 110, + 100, + 101, + 108, + 101, + 110, + 34, + 44, + 34, + 111, + 112, + 115, + 99, + 104, + 111, + 114, + 116, + 105, + 110, + 103, + 69, + 110, + 65, + 97, + 110, + 104, + 111, + 117, + 100, + 105, + 110, + 103, + 77, + 111, + 103, + 101, + 108, + 105, + 106, + 107, + 34, + 58, + 102, + 97, + 108, + 115, + 101, + 44, + 34, + 118, + 101, + 114, + 108, + 101, + 110, + 103, + 105, + 110, + 103, + 77, + 111, + 103, + 101, + 108, + 105, + 106, + 107, + 34, + 58, + 116, + 114, + 117, + 101, + 44, + 34, + 118, + 101, + 114, + 108, + 101, + 110, + 103, + 105, + 110, + 103, + 115, + 116, + 101, + 114, + 109, + 105, + 106, + 110, + 34, + 58, + 34, + 80, + 53, + 68, + 34, + 44, + 34, + 112, + 117, + 98, + 108, + 105, + 99, + 97, + 116, + 105, + 101, + 73, + 110, + 100, + 105, + 99, + 97, + 116, + 105, + 101, + 34, + 58, + 102, + 97, + 108, + 115, + 101, + 44, + 34, + 112, + 114, + 111, + 100, + 117, + 99, + 116, + 101, + 110, + 79, + 102, + 68, + 105, + 101, + 110, + 115, + 116, + 101, + 110, + 34, + 58, + 91, + 34, + 104, + 116, + 116, + 112, + 115, + 58, + 92, + 47, + 92, + 47, + 114, + 101, + 102, + 46, + 116, + 115, + 116, + 46, + 118, + 110, + 103, + 46, + 99, + 108, + 111, + 117, + 100, + 92, + 47, + 115, + 116, + 97, + 110, + 100, + 97, + 97, + 114, + 100, + 92, + 47, + 34, + 93, + 44, + 34, + 115, + 101, + 108, + 101, + 99, + 116, + 105, + 101, + 108, + 105, + 106, + 115, + 116, + 80, + 114, + 111, + 99, + 101, + 115, + 116, + 121, + 112, + 101, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 115, + 58, + 92, + 47, + 92, + 47, + 115, + 101, + 108, + 101, + 99, + 116, + 105, + 101, + 108, + 105, + 106, + 115, + 116, + 46, + 111, + 112, + 101, + 110, + 122, + 97, + 97, + 107, + 46, + 110, + 108, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 118, + 49, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 121, + 112, + 101, + 110, + 92, + 47, + 56, + 51, + 56, + 101, + 52, + 48, + 53, + 97, + 45, + 57, + 98, + 49, + 50, + 45, + 52, + 51, + 99, + 52, + 45, + 97, + 57, + 56, + 53, + 45, + 100, + 55, + 97, + 55, + 52, + 57, + 48, + 100, + 52, + 50, + 50, + 101, + 34, + 44, + 34, + 114, + 101, + 102, + 101, + 114, + 101, + 110, + 116, + 105, + 101, + 112, + 114, + 111, + 99, + 101, + 115, + 34, + 58, + 123, + 34, + 108, + 105, + 110, + 107, + 34, + 58, + 34, + 34, + 44, + 34, + 110, + 97, + 97, + 109, + 34, + 58, + 34, + 116, + 101, + 115, + 116, + 34, + 125, + 44, + 34, + 118, + 101, + 114, + 97, + 110, + 116, + 119, + 111, + 111, + 114, + 100, + 101, + 108, + 105, + 106, + 107, + 101, + 34, + 58, + 34, + 88, + 34, + 44, + 34, + 103, + 101, + 114, + 101, + 108, + 97, + 116, + 101, + 101, + 114, + 100, + 101, + 90, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 98, + 101, + 115, + 108, + 117, + 105, + 116, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 34, + 48, + 98, + 50, + 50, + 48, + 100, + 50, + 55, + 45, + 101, + 50, + 53, + 49, + 45, + 52, + 99, + 52, + 55, + 45, + 98, + 48, + 100, + 102, + 45, + 48, + 49, + 52, + 99, + 50, + 101, + 52, + 99, + 97, + 97, + 54, + 49, + 34, + 93, + 44, + 34, + 105, + 110, + 102, + 111, + 114, + 109, + 97, + 116, + 105, + 101, + 111, + 98, + 106, + 101, + 99, + 116, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 100, + 101, + 101, + 108, + 122, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 116, + 111, + 101, + 108, + 105, + 99, + 104, + 116, + 105, + 110, + 103, + 34, + 58, + 34, + 34, + 44, + 34, + 118, + 101, + 114, + 115, + 105, + 101, + 100, + 97, + 116, + 117, + 109, + 34, + 58, + 34, + 50, + 48, + 49, + 57, + 45, + 48, + 49, + 45, + 48, + 49, + 34, + 125 + ] + }, + "cookie": [], + "responseTime": 188, + "responseSize": 1306 + }, + "id": "7b67c4e0-ab81-4d40-94b2-c3d81d2528b3" + }, + { + "cursor": { + "ref": "dd2ebcda-0e3f-49a5-bf68-c5d39806425e", + "length": 313, + "cycles": 1, + "position": 207, + "iteration": 0, + "httpRequestId": "b8efd653-7a67-41ef-aed7-dd304aca707c" + }, + "item": { + "id": "5d37680f-2724-42e3-a530-d5f016b7b6a6", + "name": "Create Zaak without archiefnominatie", + "request": { + "url": { + "path": [ + "zaken" + ], + "host": [ + "{{zrc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Accept-Crs", + "value": "EPSG:4326" + }, + { + "key": "Content-Crs", + "value": "EPSG:4326" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\r\n \"bronorganisatie\": \"000000000\",\r\n \"omschrijving\": \"string\",\r\n \"toelichting\": \"string\",\r\n \"zaaktype\": \"{{zaaktype_procestermijn_nihil_url}}\",\r\n \"registratiedatum\": \"2019-04-09\",\r\n \"verantwoordelijkeOrganisatie\": \"000000000\",\r\n \"startdatum\": \"2019-04-09\",\r\n \"einddatum\": null,\r\n \"einddatumGepland\": \"2019-04-20\",\r\n \"uiterlijkeEinddatumAfdoening\": \"2019-04-09\",\r\n \"publicatiedatum\": \"2019-04-09\",\r\n \"communicatiekanaal\": \"\",\r\n \"productenOfDiensten\": [],\r\n \"vertrouwelijkheidaanduiding\": \"geheim\",\r\n \"betalingsindicatie\": \"geheel\",\r\n \"betalingsindicatieWeergave\": null,\r\n \"laatsteBetaaldatum\": \"2019-01-01T00:00:00Z\",\r\n \"zaakgeometrie\": {\r\n \"type\": \"Point\",\r\n \"coordinates\": [\r\n 53.0,\r\n 5.0\r\n ]\r\n },\r\n \"verlenging\": null,\r\n \"opschorting\": null,\r\n \"selectielijstklasse\": \"https://referentielijsten.roxit.nl/api/v1/resultaten/0fe71ce3-b1e1-48eb-9070-be2756fc71b5\",\r\n \"hoofdzaak\": null,\r\n \"deelzaken\": [],\r\n \"relevanteAndereZaken\": [],\r\n \"eigenschappen\": [],\r\n \"rollen\": [],\r\n \"status\": null,\r\n \"zaakinformatieobjecten\": [],\r\n \"zaakobjecten\": [],\r\n \"resultaat\": null,\r\n \"kenmerken\": [],\r\n \"archiefnominatie\": null,\r\n \"archiefstatus\": \"nog_te_archiveren\",\r\n \"archiefactiedatum\": null,\r\n \"opdrachtgevendeOrganisatie\": null,\r\n \"processobjectaard\": null,\r\n \"startdatumBewaartermijn\": null,\r\n \"processobject\": null\r\n}" + } + }, + "response": [], + "event": [ + { + "listen": "prerequest", + "script": { + "id": "6eb46eea-f0b0-42cf-8fc8-8534372bee3a", + "type": "text/javascript", + "packages": {}, + "exec": [ + "" + ], + "_lastExecutionId": "510a2f36-cc1e-4350-b7d9-1189c5990a23" + } + }, + { + "listen": "test", + "script": { + "id": "f37520b0-ebcb-4a80-a7b2-2f47b8d45ca4", + "type": "text/javascript", + "packages": {}, + "exec": [ + "pm.environment.set(\"zaak_zonder_archiefnominatie_url\", pm.response.json().url);" + ], + "_lastExecutionId": "88a70335-9937-4c51-b4e2-ba3728093562" + } + } + ] + }, + "request": { + "url": { + "protocol": "http", + "port": "8080", + "path": [ + "index.php", + "apps", + "procest", + "api", + "zgw", + "zaken", + "v1", + "zaken" + ], + "host": [ + "localhost" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Accept-Crs", + "value": "EPSG:4326" + }, + { + "key": "Content-Crs", + "value": "EPSG:4326" + }, + { + "key": "Authorization", + "value": "Bearer eyJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJwcm9jZXN0LWFkbWluIiwiY2xpZW50X2lkIjoicHJvY2VzdC1hZG1pbiIsImlhdCI6IjE3NzMxNDUxOTIiLCJ1c2VyX2lkIjoicHJvY2VzdC1hZG1pbiIsInVzZXJfcmVwcmVzZW50YXRpb24iOiIifQ.mFe7GQhl7refVHG2Na381EXFLoz-uUGnQtsxXkqmJKk", + "system": true + }, + { + "key": "User-Agent", + "value": "PostmanRuntime/7.39.1", + "system": true + }, + { + "key": "Accept", + "value": "*/*", + "system": true + }, + { + "key": "Cache-Control", + "value": "no-cache", + "system": true + }, + { + "key": "Postman-Token", + "value": "fbcfc493-7df6-4141-81f1-8ebb0a5f7a5a", + "system": true + }, + { + "key": "Host", + "value": "localhost:8080", + "system": true + }, + { + "key": "Accept-Encoding", + "value": "gzip, deflate, br", + "system": true + }, + { + "key": "Connection", + "value": "keep-alive", + "system": true + }, + { + "key": "Content-Length", + "value": "1544", + "system": true + }, + { + "key": "Cookie", + "value": "ocvp3112b4wg=eaae5be1d82a1372036c6de07e375629; oc_sessionPassphrase=LBNdKxRzA0iqoULIruNxDDh2BK3O%2BrCIU8aUmiUcOFvy5Xw1YfjwQNlmBW2IkGwJYtxXh9%2BwDN6vYuGNX07tXzkBtjQJUWTGdzf8AIOUIVxVx5DfyWAQZ7nmYmQv6XSE; nc_sameSiteCookielax=true; nc_sameSiteCookiestrict=true", + "system": true + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\r\n \"bronorganisatie\": \"000000000\",\r\n \"omschrijving\": \"string\",\r\n \"toelichting\": \"string\",\r\n \"zaaktype\": \"http://localhost:8080/index.php/apps/procest/api/zgw/catalogi/v1/zaaktypen/eb8e0617-05b0-4bcd-9058-96b1552009ef\",\r\n \"registratiedatum\": \"2019-04-09\",\r\n \"verantwoordelijkeOrganisatie\": \"000000000\",\r\n \"startdatum\": \"2019-04-09\",\r\n \"einddatum\": null,\r\n \"einddatumGepland\": \"2019-04-20\",\r\n \"uiterlijkeEinddatumAfdoening\": \"2019-04-09\",\r\n \"publicatiedatum\": \"2019-04-09\",\r\n \"communicatiekanaal\": \"\",\r\n \"productenOfDiensten\": [],\r\n \"vertrouwelijkheidaanduiding\": \"geheim\",\r\n \"betalingsindicatie\": \"geheel\",\r\n \"betalingsindicatieWeergave\": null,\r\n \"laatsteBetaaldatum\": \"2019-01-01T00:00:00Z\",\r\n \"zaakgeometrie\": {\r\n \"type\": \"Point\",\r\n \"coordinates\": [\r\n 53.0,\r\n 5.0\r\n ]\r\n },\r\n \"verlenging\": null,\r\n \"opschorting\": null,\r\n \"selectielijstklasse\": \"https://referentielijsten.roxit.nl/api/v1/resultaten/0fe71ce3-b1e1-48eb-9070-be2756fc71b5\",\r\n \"hoofdzaak\": null,\r\n \"deelzaken\": [],\r\n \"relevanteAndereZaken\": [],\r\n \"eigenschappen\": [],\r\n \"rollen\": [],\r\n \"status\": null,\r\n \"zaakinformatieobjecten\": [],\r\n \"zaakobjecten\": [],\r\n \"resultaat\": null,\r\n \"kenmerken\": [],\r\n \"archiefnominatie\": null,\r\n \"archiefstatus\": \"nog_te_archiveren\",\r\n \"archiefactiedatum\": null,\r\n \"opdrachtgevendeOrganisatie\": null,\r\n \"processobjectaard\": null,\r\n \"startdatumBewaartermijn\": null,\r\n \"processobject\": null\r\n}" + }, + "auth": { + "type": "jwt", + "jwt": [ + { + "type": "string", + "value": "{\r\n \"iss\": \"procest-admin\",\r\n \"client_id\": \"procest-admin\",\r\n \"iat\": \"1773145192\",\r\n \"user_id\": \"procest-admin\",\r\n \"user_representation\": \"\"\r\n}", + "key": "payload" + }, + { + "type": "string", + "value": "procest-admin-secret-key-for-testing", + "key": "secret" + }, + { + "type": "string", + "value": "HS256", + "key": "algorithm" + }, + { + "type": "boolean", + "value": false, + "key": "isSecretBase64Encoded" + }, + { + "type": "string", + "value": "header", + "key": "addTokenTo" + }, + { + "type": "string", + "value": "Bearer", + "key": "headerPrefix" + }, + { + "type": "string", + "value": "token", + "key": "queryParamKey" + }, + { + "type": "string", + "value": "{}", + "key": "header" + } + ] + } + }, + "response": { + "id": "876112e6-c3a4-4bd5-9683-3acde45ea09b", + "status": "Created", + "code": 201, + "header": [ + { + "key": "Date", + "value": "Tue, 10 Mar 2026 12:19:51 GMT" + }, + { + "key": "Server", + "value": "Apache/2.4.66 (Debian)" + }, + { + "key": "X-Content-Type-Options", + "value": "nosniff" + }, + { + "key": "X-Frame-Options", + "value": "SAMEORIGIN" + }, + { + "key": "X-Permitted-Cross-Domain-Policies", + "value": "none" + }, + { + "key": "X-Robots-Tag", + "value": "noindex, nofollow" + }, + { + "key": "Referrer-Policy", + "value": "no-referrer" + }, + { + "key": "X-Powered-By", + "value": "PHP/8.3.30" + }, + { + "key": "Content-Security-Policy", + "value": "default-src 'none';base-uri 'none';manifest-src 'self';frame-ancestors 'none'" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=eaae5be1d82a1372036c6de07e375629; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=eaae5be1d82a1372036c6de07e375629; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=eaae5be1d82a1372036c6de07e375629; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=eaae5be1d82a1372036c6de07e375629; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=eaae5be1d82a1372036c6de07e375629; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=ea7ecfea99bdb0d0b9b02beb51ebf598; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=ea7ecfea99bdb0d0b9b02beb51ebf598; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=ea7ecfea99bdb0d0b9b02beb51ebf598; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=ea7ecfea99bdb0d0b9b02beb51ebf598; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=ea7ecfea99bdb0d0b9b02beb51ebf598; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "X-Request-Id", + "value": "OQ11028Fx8R8wmYiBD5f" + }, + { + "key": "Cache-Control", + "value": "no-cache, no-store, must-revalidate" + }, + { + "key": "Feature-Policy", + "value": "autoplay 'none';camera 'none';fullscreen 'none';geolocation 'none';microphone 'none';payment 'none'" + }, + { + "key": "X-User-Id", + "value": "admin" + }, + { + "key": "Content-Length", + "value": "805" + }, + { + "key": "Keep-Alive", + "value": "timeout=5, max=96" + }, + { + "key": "Connection", + "value": "Keep-Alive" + }, + { + "key": "Content-Type", + "value": "application/json; charset=utf-8" + } + ], + "stream": { + "type": "Buffer", + "data": [ + 123, + 34, + 117, + 114, + 108, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 122, + 97, + 107, + 101, + 110, + 92, + 47, + 118, + 49, + 92, + 47, + 122, + 97, + 107, + 101, + 110, + 92, + 47, + 100, + 102, + 57, + 54, + 51, + 98, + 97, + 52, + 45, + 100, + 49, + 101, + 98, + 45, + 52, + 53, + 54, + 55, + 45, + 56, + 56, + 97, + 102, + 45, + 48, + 97, + 52, + 100, + 99, + 100, + 54, + 56, + 51, + 101, + 48, + 52, + 34, + 44, + 34, + 117, + 117, + 105, + 100, + 34, + 58, + 34, + 100, + 102, + 57, + 54, + 51, + 98, + 97, + 52, + 45, + 100, + 49, + 101, + 98, + 45, + 52, + 53, + 54, + 55, + 45, + 56, + 56, + 97, + 102, + 45, + 48, + 97, + 52, + 100, + 99, + 100, + 54, + 56, + 51, + 101, + 48, + 52, + 34, + 44, + 34, + 105, + 100, + 101, + 110, + 116, + 105, + 102, + 105, + 99, + 97, + 116, + 105, + 101, + 34, + 58, + 34, + 90, + 65, + 65, + 75, + 45, + 84, + 66, + 79, + 78, + 76, + 51, + 45, + 56, + 49, + 57, + 56, + 66, + 68, + 34, + 44, + 34, + 111, + 109, + 115, + 99, + 104, + 114, + 105, + 106, + 118, + 105, + 110, + 103, + 34, + 58, + 34, + 115, + 116, + 114, + 105, + 110, + 103, + 34, + 44, + 34, + 116, + 111, + 101, + 108, + 105, + 99, + 104, + 116, + 105, + 110, + 103, + 34, + 58, + 34, + 115, + 116, + 114, + 105, + 110, + 103, + 34, + 44, + 34, + 122, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 105, + 92, + 47, + 118, + 49, + 92, + 47, + 122, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 110, + 92, + 47, + 101, + 98, + 56, + 101, + 48, + 54, + 49, + 55, + 45, + 48, + 53, + 98, + 48, + 45, + 52, + 98, + 99, + 100, + 45, + 57, + 48, + 53, + 56, + 45, + 57, + 54, + 98, + 49, + 53, + 53, + 50, + 48, + 48, + 57, + 101, + 102, + 34, + 44, + 34, + 114, + 101, + 103, + 105, + 115, + 116, + 114, + 97, + 116, + 105, + 101, + 100, + 97, + 116, + 117, + 109, + 34, + 58, + 34, + 50, + 48, + 50, + 54, + 45, + 48, + 51, + 45, + 49, + 48, + 84, + 49, + 50, + 58, + 49, + 57, + 58, + 53, + 49, + 43, + 48, + 48, + 58, + 48, + 48, + 34, + 44, + 34, + 115, + 116, + 97, + 114, + 116, + 100, + 97, + 116, + 117, + 109, + 34, + 58, + 34, + 50, + 48, + 49, + 57, + 45, + 48, + 52, + 45, + 48, + 57, + 34, + 44, + 34, + 101, + 105, + 110, + 100, + 100, + 97, + 116, + 117, + 109, + 34, + 58, + 110, + 117, + 108, + 108, + 44, + 34, + 101, + 105, + 110, + 100, + 100, + 97, + 116, + 117, + 109, + 71, + 101, + 112, + 108, + 97, + 110, + 100, + 34, + 58, + 34, + 50, + 48, + 49, + 57, + 45, + 48, + 52, + 45, + 50, + 48, + 34, + 44, + 34, + 117, + 105, + 116, + 101, + 114, + 108, + 105, + 106, + 107, + 101, + 69, + 105, + 110, + 100, + 100, + 97, + 116, + 117, + 109, + 65, + 102, + 100, + 111, + 101, + 110, + 105, + 110, + 103, + 34, + 58, + 34, + 50, + 48, + 49, + 57, + 45, + 48, + 52, + 45, + 48, + 57, + 34, + 44, + 34, + 118, + 101, + 114, + 116, + 114, + 111, + 117, + 119, + 101, + 108, + 105, + 106, + 107, + 104, + 101, + 105, + 100, + 97, + 97, + 110, + 100, + 117, + 105, + 100, + 105, + 110, + 103, + 34, + 58, + 34, + 103, + 101, + 104, + 101, + 105, + 109, + 34, + 44, + 34, + 118, + 101, + 114, + 97, + 110, + 116, + 119, + 111, + 111, + 114, + 100, + 101, + 108, + 105, + 106, + 107, + 101, + 79, + 114, + 103, + 97, + 110, + 105, + 115, + 97, + 116, + 105, + 101, + 34, + 58, + 34, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 34, + 44, + 34, + 97, + 114, + 99, + 104, + 105, + 101, + 102, + 110, + 111, + 109, + 105, + 110, + 97, + 116, + 105, + 101, + 34, + 58, + 110, + 117, + 108, + 108, + 44, + 34, + 97, + 114, + 99, + 104, + 105, + 101, + 102, + 97, + 99, + 116, + 105, + 101, + 100, + 97, + 116, + 117, + 109, + 34, + 58, + 110, + 117, + 108, + 108, + 44, + 34, + 97, + 114, + 99, + 104, + 105, + 101, + 102, + 115, + 116, + 97, + 116, + 117, + 115, + 34, + 58, + 34, + 110, + 111, + 103, + 95, + 116, + 101, + 95, + 97, + 114, + 99, + 104, + 105, + 118, + 101, + 114, + 101, + 110, + 34, + 44, + 34, + 98, + 101, + 116, + 97, + 108, + 105, + 110, + 103, + 115, + 105, + 110, + 100, + 105, + 99, + 97, + 116, + 105, + 101, + 34, + 58, + 34, + 103, + 101, + 104, + 101, + 101, + 108, + 34, + 44, + 34, + 108, + 97, + 97, + 116, + 115, + 116, + 101, + 66, + 101, + 116, + 97, + 97, + 108, + 100, + 97, + 116, + 117, + 109, + 34, + 58, + 34, + 50, + 48, + 49, + 57, + 45, + 48, + 49, + 45, + 48, + 49, + 34, + 44, + 34, + 104, + 111, + 111, + 102, + 100, + 122, + 97, + 97, + 107, + 34, + 58, + 110, + 117, + 108, + 108, + 125 + ] + }, + "cookie": [], + "responseTime": 245, + "responseSize": 805 + }, + "id": "5d37680f-2724-42e3-a530-d5f016b7b6a6" + }, + { + "cursor": { + "ref": "5f689e65-8f8d-4836-b62d-d2297580794a", + "length": 313, + "cycles": 1, + "position": 208, + "iteration": 0, + "httpRequestId": "ec6db47f-3694-446d-94c5-c8dce661075c" + }, + "item": { + "id": "d968408c-599d-4778-be73-01c417ba9fb2", + "name": "Add Resultaat to Zaak", + "request": { + "url": { + "path": [ + "resultaten" + ], + "host": [ + "{{zrc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n\t\"zaak\": \"{{zaak_zonder_archiefnominatie_url}}\",\n\t\"resultaattype\": \"{{current_resultaattype}}\"\n}" + } + }, + "response": [], + "event": [ + { + "listen": "prerequest", + "script": { + "id": "b8311e8f-0b87-4bf3-ae76-3c2e3e7cee9a", + "type": "text/javascript", + "exec": [ + "// if (!pm.environment.get(\"resultaattype_index\")) {", + "// pm.environment.set(\"resultaattype_index\", 0);", + "// }", + "", + "// pm.environment.set(\"current_resultaattype\", pm.environment.get(\"zaaktype_resultaattypen\")[pm.environment.get(\"resultaattype_index\")])" + ], + "_lastExecutionId": "0411090c-0ecc-4e03-8d30-57626702b749" + } + }, + { + "listen": "test", + "script": { + "id": "4fd7df46-2186-45d8-85e5-a35902582bc9", + "type": "text/javascript", + "exec": [ + "pm.environment.set(\"zaak_resultaat_url\", pm.response.json().url);" + ], + "_lastExecutionId": "7e0ae00c-af7c-403a-a966-1edb1632754b" + } + } + ] + }, + "request": { + "url": { + "protocol": "http", + "port": "8080", + "path": [ + "index.php", + "apps", + "procest", + "api", + "zgw", + "zaken", + "v1", + "resultaten" + ], + "host": [ + "localhost" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Authorization", + "value": "Bearer eyJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJwcm9jZXN0LWFkbWluIiwiY2xpZW50X2lkIjoicHJvY2VzdC1hZG1pbiIsImlhdCI6IjE3NzMxNDUxOTIiLCJ1c2VyX2lkIjoicHJvY2VzdC1hZG1pbiIsInVzZXJfcmVwcmVzZW50YXRpb24iOiIifQ.mFe7GQhl7refVHG2Na381EXFLoz-uUGnQtsxXkqmJKk", + "system": true + }, + { + "key": "User-Agent", + "value": "PostmanRuntime/7.39.1", + "system": true + }, + { + "key": "Accept", + "value": "*/*", + "system": true + }, + { + "key": "Cache-Control", + "value": "no-cache", + "system": true + }, + { + "key": "Postman-Token", + "value": "b0bee360-0f02-4a20-bb7f-5c00488a9319", + "system": true + }, + { + "key": "Host", + "value": "localhost:8080", + "system": true + }, + { + "key": "Accept-Encoding", + "value": "gzip, deflate, br", + "system": true + }, + { + "key": "Connection", + "value": "keep-alive", + "system": true + }, + { + "key": "Content-Length", + "value": "257", + "system": true + }, + { + "key": "Cookie", + "value": "ocvp3112b4wg=ea7ecfea99bdb0d0b9b02beb51ebf598; oc_sessionPassphrase=LBNdKxRzA0iqoULIruNxDDh2BK3O%2BrCIU8aUmiUcOFvy5Xw1YfjwQNlmBW2IkGwJYtxXh9%2BwDN6vYuGNX07tXzkBtjQJUWTGdzf8AIOUIVxVx5DfyWAQZ7nmYmQv6XSE; nc_sameSiteCookielax=true; nc_sameSiteCookiestrict=true", + "system": true + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n\t\"zaak\": \"http://localhost:8080/index.php/apps/procest/api/zgw/zaken/v1/zaken/df963ba4-d1eb-4567-88af-0a4dcd683e04\",\n\t\"resultaattype\": \"http://localhost:8080/index.php/apps/procest/api/zgw/catalogi/v1/resultaattypen/5ca41650-4d85-4883-b2ce-7a422508df46\"\n}" + }, + "auth": { + "type": "jwt", + "jwt": [ + { + "type": "string", + "value": "{\r\n \"iss\": \"procest-admin\",\r\n \"client_id\": \"procest-admin\",\r\n \"iat\": \"1773145192\",\r\n \"user_id\": \"procest-admin\",\r\n \"user_representation\": \"\"\r\n}", + "key": "payload" + }, + { + "type": "string", + "value": "procest-admin-secret-key-for-testing", + "key": "secret" + }, + { + "type": "string", + "value": "HS256", + "key": "algorithm" + }, + { + "type": "boolean", + "value": false, + "key": "isSecretBase64Encoded" + }, + { + "type": "string", + "value": "header", + "key": "addTokenTo" + }, + { + "type": "string", + "value": "Bearer", + "key": "headerPrefix" + }, + { + "type": "string", + "value": "token", + "key": "queryParamKey" + }, + { + "type": "string", + "value": "{}", + "key": "header" + } + ] + } + }, + "response": { + "id": "fabbf860-c404-4030-94d2-60dcd66f25a3", + "status": "Created", + "code": 201, + "header": [ + { + "key": "Date", + "value": "Tue, 10 Mar 2026 12:19:51 GMT" + }, + { + "key": "Server", + "value": "Apache/2.4.66 (Debian)" + }, + { + "key": "X-Content-Type-Options", + "value": "nosniff" + }, + { + "key": "X-Frame-Options", + "value": "SAMEORIGIN" + }, + { + "key": "X-Permitted-Cross-Domain-Policies", + "value": "none" + }, + { + "key": "X-Robots-Tag", + "value": "noindex, nofollow" + }, + { + "key": "Referrer-Policy", + "value": "no-referrer" + }, + { + "key": "X-Powered-By", + "value": "PHP/8.3.30" + }, + { + "key": "Content-Security-Policy", + "value": "default-src 'none';base-uri 'none';manifest-src 'self';frame-ancestors 'none'" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=ea7ecfea99bdb0d0b9b02beb51ebf598; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=ea7ecfea99bdb0d0b9b02beb51ebf598; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=ea7ecfea99bdb0d0b9b02beb51ebf598; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=ea7ecfea99bdb0d0b9b02beb51ebf598; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=ea7ecfea99bdb0d0b9b02beb51ebf598; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=5373022fca24123f9f44fcc4c085fcf3; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=5373022fca24123f9f44fcc4c085fcf3; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=5373022fca24123f9f44fcc4c085fcf3; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=5373022fca24123f9f44fcc4c085fcf3; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=5373022fca24123f9f44fcc4c085fcf3; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "X-Request-Id", + "value": "R1NDOLVvuKhx3HEEayYt" + }, + { + "key": "Cache-Control", + "value": "no-cache, no-store, must-revalidate" + }, + { + "key": "Feature-Policy", + "value": "autoplay 'none';camera 'none';fullscreen 'none';geolocation 'none';microphone 'none';payment 'none'" + }, + { + "key": "X-User-Id", + "value": "admin" + }, + { + "key": "Content-Length", + "value": "464" + }, + { + "key": "Keep-Alive", + "value": "timeout=5, max=95" + }, + { + "key": "Connection", + "value": "Keep-Alive" + }, + { + "key": "Content-Type", + "value": "application/json; charset=utf-8" + } + ], + "stream": { + "type": "Buffer", + "data": [ + 123, + 34, + 117, + 114, + 108, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 122, + 97, + 107, + 101, + 110, + 92, + 47, + 118, + 49, + 92, + 47, + 114, + 101, + 115, + 117, + 108, + 116, + 97, + 116, + 101, + 110, + 92, + 47, + 56, + 102, + 98, + 57, + 97, + 55, + 101, + 51, + 45, + 54, + 100, + 102, + 57, + 45, + 52, + 53, + 99, + 48, + 45, + 97, + 56, + 99, + 102, + 45, + 100, + 56, + 49, + 102, + 99, + 50, + 54, + 98, + 97, + 50, + 99, + 51, + 34, + 44, + 34, + 117, + 117, + 105, + 100, + 34, + 58, + 34, + 56, + 102, + 98, + 57, + 97, + 55, + 101, + 51, + 45, + 54, + 100, + 102, + 57, + 45, + 52, + 53, + 99, + 48, + 45, + 97, + 56, + 99, + 102, + 45, + 100, + 56, + 49, + 102, + 99, + 50, + 54, + 98, + 97, + 50, + 99, + 51, + 34, + 44, + 34, + 122, + 97, + 97, + 107, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 122, + 97, + 107, + 101, + 110, + 92, + 47, + 118, + 49, + 92, + 47, + 122, + 97, + 107, + 101, + 110, + 92, + 47, + 100, + 102, + 57, + 54, + 51, + 98, + 97, + 52, + 45, + 100, + 49, + 101, + 98, + 45, + 52, + 53, + 54, + 55, + 45, + 56, + 56, + 97, + 102, + 45, + 48, + 97, + 52, + 100, + 99, + 100, + 54, + 56, + 51, + 101, + 48, + 52, + 34, + 44, + 34, + 114, + 101, + 115, + 117, + 108, + 116, + 97, + 97, + 116, + 116, + 121, + 112, + 101, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 105, + 92, + 47, + 118, + 49, + 92, + 47, + 114, + 101, + 115, + 117, + 108, + 116, + 97, + 97, + 116, + 116, + 121, + 112, + 101, + 110, + 92, + 47, + 53, + 99, + 97, + 52, + 49, + 54, + 53, + 48, + 45, + 52, + 100, + 56, + 53, + 45, + 52, + 56, + 56, + 51, + 45, + 98, + 50, + 99, + 101, + 45, + 55, + 97, + 52, + 50, + 50, + 53, + 48, + 56, + 100, + 102, + 52, + 54, + 34, + 44, + 34, + 116, + 111, + 101, + 108, + 105, + 99, + 104, + 116, + 105, + 110, + 103, + 34, + 58, + 34, + 34, + 125 + ] + }, + "cookie": [], + "responseTime": 246, + "responseSize": 464 + }, + "id": "d968408c-599d-4778-be73-01c417ba9fb2" + }, + { + "cursor": { + "ref": "4d5deafd-dad7-480c-b0bf-97ba4b191b80", + "length": 313, + "cycles": 1, + "position": 209, + "iteration": 0, + "httpRequestId": "1a77237e-6509-4f47-8654-96ca2bc37b5d" + }, + "item": { + "id": "1ccda679-b174-453e-a24d-de55b7384b96", + "name": "Add Eindstatus to Zaak without archiefnominatie", + "request": { + "url": { + "path": [ + "statussen" + ], + "host": [ + "{{zrc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n\t\"zaak\": \"{{zaak_zonder_archiefnominatie_url}}\",\n\t\"statustype\": \"{{current_statustype_url}}\",\n\t\"datumStatusGezet\": \"2018-04-26T13:37:00\"\n}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "bdba9e27-1c63-4229-aa22-01fdae4baff0", + "type": "text/javascript", + "exec": [ + "" + ], + "_lastExecutionId": "6785fb2f-3531-4fba-953a-576fc262071e" + } + }, + { + "listen": "prerequest", + "script": { + "id": "909a6d53-c541-4dd3-b520-d7974bffc24c", + "type": "text/javascript", + "exec": [ + "" + ], + "_lastExecutionId": "41dbf284-2309-42e6-8497-3a1bc7cb6703" + } + } + ] + }, + "request": { + "url": { + "protocol": "http", + "port": "8080", + "path": [ + "index.php", + "apps", + "procest", + "api", + "zgw", + "zaken", + "v1", + "statussen" + ], + "host": [ + "localhost" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Authorization", + "value": "Bearer eyJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJwcm9jZXN0LWFkbWluIiwiY2xpZW50X2lkIjoicHJvY2VzdC1hZG1pbiIsImlhdCI6IjE3NzMxNDUxOTIiLCJ1c2VyX2lkIjoicHJvY2VzdC1hZG1pbiIsInVzZXJfcmVwcmVzZW50YXRpb24iOiIifQ.mFe7GQhl7refVHG2Na381EXFLoz-uUGnQtsxXkqmJKk", + "system": true + }, + { + "key": "User-Agent", + "value": "PostmanRuntime/7.39.1", + "system": true + }, + { + "key": "Accept", + "value": "*/*", + "system": true + }, + { + "key": "Cache-Control", + "value": "no-cache", + "system": true + }, + { + "key": "Postman-Token", + "value": "3844a66b-8e8a-43c6-9343-d007373f1c08", + "system": true + }, + { + "key": "Host", + "value": "localhost:8080", + "system": true + }, + { + "key": "Accept-Encoding", + "value": "gzip, deflate, br", + "system": true + }, + { + "key": "Connection", + "value": "keep-alive", + "system": true + }, + { + "key": "Content-Length", + "value": "295", + "system": true + }, + { + "key": "Cookie", + "value": "ocvp3112b4wg=5373022fca24123f9f44fcc4c085fcf3; oc_sessionPassphrase=LBNdKxRzA0iqoULIruNxDDh2BK3O%2BrCIU8aUmiUcOFvy5Xw1YfjwQNlmBW2IkGwJYtxXh9%2BwDN6vYuGNX07tXzkBtjQJUWTGdzf8AIOUIVxVx5DfyWAQZ7nmYmQv6XSE; nc_sameSiteCookielax=true; nc_sameSiteCookiestrict=true", + "system": true + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n\t\"zaak\": \"http://localhost:8080/index.php/apps/procest/api/zgw/zaken/v1/zaken/df963ba4-d1eb-4567-88af-0a4dcd683e04\",\n\t\"statustype\": \"http://localhost:8080/index.php/apps/procest/api/zgw/catalogi/v1/statustypen/f0d88a98-54a2-46ac-968e-467c64a256db\",\n\t\"datumStatusGezet\": \"2018-04-26T13:37:00\"\n}" + }, + "auth": { + "type": "jwt", + "jwt": [ + { + "type": "string", + "value": "{\r\n \"iss\": \"procest-admin\",\r\n \"client_id\": \"procest-admin\",\r\n \"iat\": \"1773145192\",\r\n \"user_id\": \"procest-admin\",\r\n \"user_representation\": \"\"\r\n}", + "key": "payload" + }, + { + "type": "string", + "value": "procest-admin-secret-key-for-testing", + "key": "secret" + }, + { + "type": "string", + "value": "HS256", + "key": "algorithm" + }, + { + "type": "boolean", + "value": false, + "key": "isSecretBase64Encoded" + }, + { + "type": "string", + "value": "header", + "key": "addTokenTo" + }, + { + "type": "string", + "value": "Bearer", + "key": "headerPrefix" + }, + { + "type": "string", + "value": "token", + "key": "queryParamKey" + }, + { + "type": "string", + "value": "{}", + "key": "header" + } + ] + } + }, + "response": { + "id": "88ce91c8-fb50-4257-895e-e7d8bc6e22a8", + "status": "Created", + "code": 201, + "header": [ + { + "key": "Date", + "value": "Tue, 10 Mar 2026 12:19:52 GMT" + }, + { + "key": "Server", + "value": "Apache/2.4.66 (Debian)" + }, + { + "key": "X-Content-Type-Options", + "value": "nosniff" + }, + { + "key": "X-Frame-Options", + "value": "SAMEORIGIN" + }, + { + "key": "X-Permitted-Cross-Domain-Policies", + "value": "none" + }, + { + "key": "X-Robots-Tag", + "value": "noindex, nofollow" + }, + { + "key": "Referrer-Policy", + "value": "no-referrer" + }, + { + "key": "X-Powered-By", + "value": "PHP/8.3.30" + }, + { + "key": "Content-Security-Policy", + "value": "default-src 'none';base-uri 'none';manifest-src 'self';frame-ancestors 'none'" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=5373022fca24123f9f44fcc4c085fcf3; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=5373022fca24123f9f44fcc4c085fcf3; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=5373022fca24123f9f44fcc4c085fcf3; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=5373022fca24123f9f44fcc4c085fcf3; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=5373022fca24123f9f44fcc4c085fcf3; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=1bd05224368b69348373acaf683f1b00; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=1bd05224368b69348373acaf683f1b00; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=1bd05224368b69348373acaf683f1b00; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=1bd05224368b69348373acaf683f1b00; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=1bd05224368b69348373acaf683f1b00; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "X-Request-Id", + "value": "w461mlciXXOCHgHfT68O" + }, + { + "key": "Cache-Control", + "value": "no-cache, no-store, must-revalidate" + }, + { + "key": "Feature-Policy", + "value": "autoplay 'none';camera 'none';fullscreen 'none';geolocation 'none';microphone 'none';payment 'none'" + }, + { + "key": "X-User-Id", + "value": "admin" + }, + { + "key": "Content-Length", + "value": "510" + }, + { + "key": "Keep-Alive", + "value": "timeout=5, max=94" + }, + { + "key": "Connection", + "value": "Keep-Alive" + }, + { + "key": "Content-Type", + "value": "application/json; charset=utf-8" + } + ], + "stream": { + "type": "Buffer", + "data": [ + 123, + 34, + 117, + 114, + 108, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 122, + 97, + 107, + 101, + 110, + 92, + 47, + 118, + 49, + 92, + 47, + 115, + 116, + 97, + 116, + 117, + 115, + 115, + 101, + 110, + 92, + 47, + 101, + 97, + 57, + 51, + 97, + 56, + 100, + 56, + 45, + 97, + 53, + 50, + 97, + 45, + 52, + 48, + 101, + 99, + 45, + 98, + 101, + 97, + 48, + 45, + 48, + 51, + 102, + 97, + 97, + 54, + 99, + 101, + 55, + 97, + 49, + 56, + 34, + 44, + 34, + 117, + 117, + 105, + 100, + 34, + 58, + 34, + 101, + 97, + 57, + 51, + 97, + 56, + 100, + 56, + 45, + 97, + 53, + 50, + 97, + 45, + 52, + 48, + 101, + 99, + 45, + 98, + 101, + 97, + 48, + 45, + 48, + 51, + 102, + 97, + 97, + 54, + 99, + 101, + 55, + 97, + 49, + 56, + 34, + 44, + 34, + 122, + 97, + 97, + 107, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 122, + 97, + 107, + 101, + 110, + 92, + 47, + 118, + 49, + 92, + 47, + 122, + 97, + 107, + 101, + 110, + 92, + 47, + 100, + 102, + 57, + 54, + 51, + 98, + 97, + 52, + 45, + 100, + 49, + 101, + 98, + 45, + 52, + 53, + 54, + 55, + 45, + 56, + 56, + 97, + 102, + 45, + 48, + 97, + 52, + 100, + 99, + 100, + 54, + 56, + 51, + 101, + 48, + 52, + 34, + 44, + 34, + 115, + 116, + 97, + 116, + 117, + 115, + 116, + 121, + 112, + 101, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 105, + 92, + 47, + 118, + 49, + 92, + 47, + 115, + 116, + 97, + 116, + 117, + 115, + 116, + 121, + 112, + 101, + 110, + 92, + 47, + 102, + 48, + 100, + 56, + 56, + 97, + 57, + 56, + 45, + 53, + 52, + 97, + 50, + 45, + 52, + 54, + 97, + 99, + 45, + 57, + 54, + 56, + 101, + 45, + 52, + 54, + 55, + 99, + 54, + 52, + 97, + 50, + 53, + 54, + 100, + 98, + 34, + 44, + 34, + 100, + 97, + 116, + 117, + 109, + 83, + 116, + 97, + 116, + 117, + 115, + 71, + 101, + 122, + 101, + 116, + 34, + 58, + 34, + 50, + 48, + 50, + 54, + 45, + 48, + 51, + 45, + 49, + 48, + 84, + 49, + 50, + 58, + 49, + 57, + 58, + 53, + 50, + 43, + 48, + 48, + 58, + 48, + 48, + 34, + 44, + 34, + 115, + 116, + 97, + 116, + 117, + 115, + 116, + 111, + 101, + 108, + 105, + 99, + 104, + 116, + 105, + 110, + 103, + 34, + 58, + 34, + 34, + 125 + ] + }, + "cookie": [], + "responseTime": 284, + "responseSize": 510 + }, + "id": "1ccda679-b174-453e-a24d-de55b7384b96" + }, + { + "cursor": { + "ref": "744e9008-c6ac-4f7a-8eec-7d0b0d623007", + "length": 313, + "cycles": 1, + "position": 210, + "iteration": 0, + "httpRequestId": "2f23ffce-3faa-4beb-862c-79b33a6f1ed3" + }, + "item": { + "id": "bacd7e0f-bc36-4a2e-b692-23e4e18a429a", + "name": "(zrc-021a) Afleidingswijze afgehandeld", + "request": { + "url": { + "host": [ + "{{zaak_zonder_archiefnominatie_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Accept-Crs", + "value": "EPSG:4326" + } + ], + "method": "GET" + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "d1c8024f-7580-4773-b8c9-f769d4a86684", + "type": "text/javascript", + "exec": [ + "var moment = require('moment');", + "", + "pm.test(\"Resultaat toevoegen aan Zaak zonder archiefnominatie betekent dat archiefnominatie afgeleid wordt uit Resultaattype\", function() {", + " pm.response.to.have.status(200);", + " pm.expect(pm.response.json().archiefnominatie).to.be.equal(pm.environment.get(\"resultaattype_archiefnominatie\"));", + "});", + "", + "pm.test(\"Resultaat met afleidingswijze afgehandeld toevoegen aan Zaak zet correcte Zaak.archiefdatum\", function() {", + " var jsonData = pm.response.json();", + " ", + " if (pm.environment.get(\"resultaattype_archiefactietermijn\")) {", + " const brondatum = moment.utc(jsonData.einddatum);", + " const archiefactietermijn = moment.duration(pm.environment.get(\"resultaattype_archiefactietermijn\"), 'years');", + " var calculated_archiefactiedatum = brondatum.add(archiefactietermijn);", + " ", + " pm.expect(jsonData.archiefactiedatum).to.be.equal(calculated_archiefactiedatum.format(\"YYYY-MM-DD\")); ", + " }", + "});" + ], + "_lastExecutionId": "40fa3192-9a51-4a5d-a6ff-59629d15b06d" + } + } + ] + }, + "request": { + "url": { + "protocol": "http", + "port": "8080", + "path": [ + "index.php", + "apps", + "procest", + "api", + "zgw", + "zaken", + "v1", + "zaken", + "df963ba4-d1eb-4567-88af-0a4dcd683e04" + ], + "host": [ + "localhost" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Accept-Crs", + "value": "EPSG:4326" + }, + { + "key": "Authorization", + "value": "Bearer eyJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJwcm9jZXN0LWFkbWluIiwiY2xpZW50X2lkIjoicHJvY2VzdC1hZG1pbiIsImlhdCI6IjE3NzMxNDUxOTMiLCJ1c2VyX2lkIjoicHJvY2VzdC1hZG1pbiIsInVzZXJfcmVwcmVzZW50YXRpb24iOiIifQ.oUZkgwef_PEQgHOJcgQWUD67bDio_mtMTAfIL_w3oXA", + "system": true + }, + { + "key": "User-Agent", + "value": "PostmanRuntime/7.39.1", + "system": true + }, + { + "key": "Accept", + "value": "*/*", + "system": true + }, + { + "key": "Cache-Control", + "value": "no-cache", + "system": true + }, + { + "key": "Postman-Token", + "value": "8b275aa9-e3fb-47e4-a07c-5e860a94391c", + "system": true + }, + { + "key": "Host", + "value": "localhost:8080", + "system": true + }, + { + "key": "Accept-Encoding", + "value": "gzip, deflate, br", + "system": true + }, + { + "key": "Connection", + "value": "keep-alive", + "system": true + }, + { + "key": "Cookie", + "value": "ocvp3112b4wg=1bd05224368b69348373acaf683f1b00; oc_sessionPassphrase=LBNdKxRzA0iqoULIruNxDDh2BK3O%2BrCIU8aUmiUcOFvy5Xw1YfjwQNlmBW2IkGwJYtxXh9%2BwDN6vYuGNX07tXzkBtjQJUWTGdzf8AIOUIVxVx5DfyWAQZ7nmYmQv6XSE; nc_sameSiteCookielax=true; nc_sameSiteCookiestrict=true", + "system": true + } + ], + "method": "GET", + "auth": { + "type": "jwt", + "jwt": [ + { + "type": "string", + "value": "{\r\n \"iss\": \"procest-admin\",\r\n \"client_id\": \"procest-admin\",\r\n \"iat\": \"1773145193\",\r\n \"user_id\": \"procest-admin\",\r\n \"user_representation\": \"\"\r\n}", + "key": "payload" + }, + { + "type": "string", + "value": "procest-admin-secret-key-for-testing", + "key": "secret" + }, + { + "type": "string", + "value": "HS256", + "key": "algorithm" + }, + { + "type": "boolean", + "value": false, + "key": "isSecretBase64Encoded" + }, + { + "type": "string", + "value": "header", + "key": "addTokenTo" + }, + { + "type": "string", + "value": "Bearer", + "key": "headerPrefix" + }, + { + "type": "string", + "value": "token", + "key": "queryParamKey" + }, + { + "type": "string", + "value": "{}", + "key": "header" + } + ] + } + }, + "response": { + "id": "1ebd8ef0-3570-46c1-8d63-03ea33e7f572", + "status": "OK", + "code": 200, + "header": [ + { + "key": "Date", + "value": "Tue, 10 Mar 2026 12:19:52 GMT" + }, + { + "key": "Server", + "value": "Apache/2.4.66 (Debian)" + }, + { + "key": "X-Content-Type-Options", + "value": "nosniff" + }, + { + "key": "X-Frame-Options", + "value": "SAMEORIGIN" + }, + { + "key": "X-Permitted-Cross-Domain-Policies", + "value": "none" + }, + { + "key": "X-Robots-Tag", + "value": "noindex, nofollow" + }, + { + "key": "Referrer-Policy", + "value": "no-referrer" + }, + { + "key": "X-Powered-By", + "value": "PHP/8.3.30" + }, + { + "key": "Content-Security-Policy", + "value": "default-src 'none';base-uri 'none';manifest-src 'self';frame-ancestors 'none'" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=1bd05224368b69348373acaf683f1b00; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=1bd05224368b69348373acaf683f1b00; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=1bd05224368b69348373acaf683f1b00; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=1bd05224368b69348373acaf683f1b00; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=1bd05224368b69348373acaf683f1b00; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=8de8f5bfbe6d18c381b88e649c64f3a0; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=8de8f5bfbe6d18c381b88e649c64f3a0; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=8de8f5bfbe6d18c381b88e649c64f3a0; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=8de8f5bfbe6d18c381b88e649c64f3a0; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=8de8f5bfbe6d18c381b88e649c64f3a0; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "X-Request-Id", + "value": "eqCABdmrUG0hpaTNQS8p" + }, + { + "key": "Cache-Control", + "value": "no-cache, no-store, must-revalidate" + }, + { + "key": "Feature-Policy", + "value": "autoplay 'none';camera 'none';fullscreen 'none';geolocation 'none';microphone 'none';payment 'none'" + }, + { + "key": "X-User-Id", + "value": "admin" + }, + { + "key": "Content-Encoding", + "value": "gzip" + }, + { + "key": "Content-Length", + "value": "454" + }, + { + "key": "Keep-Alive", + "value": "timeout=5, max=93" + }, + { + "key": "Connection", + "value": "Keep-Alive" + }, + { + "key": "Content-Type", + "value": "application/json; charset=utf-8" + } + ], + "stream": { + "type": "Buffer", + "data": [ + 123, + 34, + 117, + 114, + 108, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 122, + 97, + 107, + 101, + 110, + 92, + 47, + 118, + 49, + 92, + 47, + 122, + 97, + 107, + 101, + 110, + 92, + 47, + 100, + 102, + 57, + 54, + 51, + 98, + 97, + 52, + 45, + 100, + 49, + 101, + 98, + 45, + 52, + 53, + 54, + 55, + 45, + 56, + 56, + 97, + 102, + 45, + 48, + 97, + 52, + 100, + 99, + 100, + 54, + 56, + 51, + 101, + 48, + 52, + 34, + 44, + 34, + 117, + 117, + 105, + 100, + 34, + 58, + 34, + 100, + 102, + 57, + 54, + 51, + 98, + 97, + 52, + 45, + 100, + 49, + 101, + 98, + 45, + 52, + 53, + 54, + 55, + 45, + 56, + 56, + 97, + 102, + 45, + 48, + 97, + 52, + 100, + 99, + 100, + 54, + 56, + 51, + 101, + 48, + 52, + 34, + 44, + 34, + 105, + 100, + 101, + 110, + 116, + 105, + 102, + 105, + 99, + 97, + 116, + 105, + 101, + 34, + 58, + 34, + 90, + 65, + 65, + 75, + 45, + 84, + 66, + 79, + 78, + 76, + 51, + 45, + 56, + 49, + 57, + 56, + 66, + 68, + 34, + 44, + 34, + 111, + 109, + 115, + 99, + 104, + 114, + 105, + 106, + 118, + 105, + 110, + 103, + 34, + 58, + 34, + 115, + 116, + 114, + 105, + 110, + 103, + 34, + 44, + 34, + 116, + 111, + 101, + 108, + 105, + 99, + 104, + 116, + 105, + 110, + 103, + 34, + 58, + 34, + 115, + 116, + 114, + 105, + 110, + 103, + 34, + 44, + 34, + 122, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 105, + 92, + 47, + 118, + 49, + 92, + 47, + 122, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 110, + 92, + 47, + 101, + 98, + 56, + 101, + 48, + 54, + 49, + 55, + 45, + 48, + 53, + 98, + 48, + 45, + 52, + 98, + 99, + 100, + 45, + 57, + 48, + 53, + 56, + 45, + 57, + 54, + 98, + 49, + 53, + 53, + 50, + 48, + 48, + 57, + 101, + 102, + 34, + 44, + 34, + 114, + 101, + 103, + 105, + 115, + 116, + 114, + 97, + 116, + 105, + 101, + 100, + 97, + 116, + 117, + 109, + 34, + 58, + 34, + 50, + 48, + 50, + 54, + 45, + 48, + 51, + 45, + 49, + 48, + 84, + 49, + 50, + 58, + 49, + 57, + 58, + 53, + 49, + 43, + 48, + 48, + 58, + 48, + 48, + 34, + 44, + 34, + 115, + 116, + 97, + 114, + 116, + 100, + 97, + 116, + 117, + 109, + 34, + 58, + 34, + 50, + 48, + 49, + 57, + 45, + 48, + 52, + 45, + 48, + 57, + 34, + 44, + 34, + 101, + 105, + 110, + 100, + 100, + 97, + 116, + 117, + 109, + 34, + 58, + 34, + 50, + 48, + 49, + 56, + 45, + 48, + 52, + 45, + 50, + 54, + 34, + 44, + 34, + 101, + 105, + 110, + 100, + 100, + 97, + 116, + 117, + 109, + 71, + 101, + 112, + 108, + 97, + 110, + 100, + 34, + 58, + 34, + 50, + 48, + 49, + 57, + 45, + 48, + 52, + 45, + 50, + 48, + 34, + 44, + 34, + 117, + 105, + 116, + 101, + 114, + 108, + 105, + 106, + 107, + 101, + 69, + 105, + 110, + 100, + 100, + 97, + 116, + 117, + 109, + 65, + 102, + 100, + 111, + 101, + 110, + 105, + 110, + 103, + 34, + 58, + 34, + 50, + 48, + 49, + 57, + 45, + 48, + 52, + 45, + 48, + 57, + 34, + 44, + 34, + 118, + 101, + 114, + 116, + 114, + 111, + 117, + 119, + 101, + 108, + 105, + 106, + 107, + 104, + 101, + 105, + 100, + 97, + 97, + 110, + 100, + 117, + 105, + 100, + 105, + 110, + 103, + 34, + 58, + 34, + 103, + 101, + 104, + 101, + 105, + 109, + 34, + 44, + 34, + 118, + 101, + 114, + 97, + 110, + 116, + 119, + 111, + 111, + 114, + 100, + 101, + 108, + 105, + 106, + 107, + 101, + 79, + 114, + 103, + 97, + 110, + 105, + 115, + 97, + 116, + 105, + 101, + 34, + 58, + 34, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 34, + 44, + 34, + 97, + 114, + 99, + 104, + 105, + 101, + 102, + 110, + 111, + 109, + 105, + 110, + 97, + 116, + 105, + 101, + 34, + 58, + 34, + 118, + 101, + 114, + 110, + 105, + 101, + 116, + 105, + 103, + 101, + 110, + 34, + 44, + 34, + 97, + 114, + 99, + 104, + 105, + 101, + 102, + 97, + 99, + 116, + 105, + 101, + 100, + 97, + 116, + 117, + 109, + 34, + 58, + 34, + 50, + 48, + 50, + 51, + 45, + 48, + 52, + 45, + 50, + 54, + 34, + 44, + 34, + 97, + 114, + 99, + 104, + 105, + 101, + 102, + 115, + 116, + 97, + 116, + 117, + 115, + 34, + 58, + 34, + 110, + 111, + 103, + 95, + 116, + 101, + 95, + 97, + 114, + 99, + 104, + 105, + 118, + 101, + 114, + 101, + 110, + 34, + 44, + 34, + 98, + 101, + 116, + 97, + 108, + 105, + 110, + 103, + 115, + 105, + 110, + 100, + 105, + 99, + 97, + 116, + 105, + 101, + 34, + 58, + 34, + 103, + 101, + 104, + 101, + 101, + 108, + 34, + 44, + 34, + 108, + 97, + 97, + 116, + 115, + 116, + 101, + 66, + 101, + 116, + 97, + 97, + 108, + 100, + 97, + 116, + 117, + 109, + 34, + 58, + 34, + 50, + 48, + 49, + 57, + 45, + 48, + 49, + 45, + 48, + 49, + 34, + 44, + 34, + 104, + 111, + 111, + 102, + 100, + 122, + 97, + 97, + 107, + 34, + 58, + 110, + 117, + 108, + 108, + 125 + ] + }, + "cookie": [], + "responseTime": 122, + "responseSize": 830 + }, + "id": "bacd7e0f-bc36-4a2e-b692-23e4e18a429a", + "assertions": [ + { + "assertion": "Resultaat toevoegen aan Zaak zonder archiefnominatie betekent dat archiefnominatie afgeleid wordt uit Resultaattype", + "skipped": false + }, + { + "assertion": "Resultaat met afleidingswijze afgehandeld toevoegen aan Zaak zet correcte Zaak.archiefdatum", + "skipped": false + } + ] + }, + { + "cursor": { + "ref": "a5434987-b930-4fe6-993f-3c8ec2351bd9", + "length": 313, + "cycles": 1, + "position": 211, + "iteration": 0, + "httpRequestId": "6f95affc-51a4-40c2-a212-982bb4a55cf9" + }, + "item": { + "id": "462c8621-ca1b-4d23-b7c8-74e207be237d", + "name": "Create Zaaktype procestermijn vast_te_leggen_datum", + "request": { + "url": { + "path": [ + "zaaktypen" + ], + "host": [ + "{{ztc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\r\n \"identificatie\": \"{{random_identificatie_DZ}}\",\r\n \"omschrijving\": \"Zaaktype for archiving tests vast_te_leggen_datum\",\r\n \"omschrijvingGeneriek\": null,\r\n \"vertrouwelijkheidaanduiding\": \"openbaar\",\r\n \"doel\": \"test doel\",\r\n \"aanleiding\": \"test aanleiding\",\r\n \"toelichting\": null,\r\n \"indicatieInternOfExtern\": \"extern\",\r\n \"handelingInitiator\": \"indienen\",\r\n \"onderwerp\": \"openbare ruimte\",\r\n \"handelingBehandelaar\": \"behandelen\",\r\n \"doorlooptijd\": \"P10D\",\r\n \"servicenorm\": null,\r\n \"opschortingEnAanhoudingMogelijk\": false,\r\n \"verlengingMogelijk\": true,\r\n \"verlengingstermijn\": \"P5D\",\r\n \"trefwoorden\": [],\r\n \"publicatieIndicatie\": false,\r\n \"publicatietekst\": null,\r\n \"verantwoordingsrelatie\": [],\r\n \"productenOfDiensten\": [\r\n \"https://ref.tst.vng.cloud/standaard/\"\r\n ],\r\n \"selectielijstProcestype\": \"https://referentielijsten.roxit.nl/api/v1/procestypen/cdb46f05-0750-4d83-8025-31e20408ed21\",\r\n \"referentieproces\": {\r\n \"naam\": \"test\",\r\n \"link\": \"\"\r\n },\r\n \"verantwoordelijke\": \"X\",\r\n \"zaakobjecttypen\": [],\r\n \"broncatalogus\": null,\r\n \"bronzaaktype\": null,\r\n \"catalogus\": \"{{catalogus_url}}\",\r\n \"statustypen\": [],\r\n \"resultaattypen\": [],\r\n \"eigenschappen\": [],\r\n \"informatieobjecttypen\": [],\r\n \"roltypen\": [],\r\n \"besluittypen\": [],\r\n \"deelzaaktypen\": [],\r\n \"gerelateerdeZaaktypen\": [],\r\n \"concept\": true,\r\n \"beginGeldigheid\": \"2019-01-01\",\r\n \"eindeGeldigheid\": null,\r\n \"beginObject\": null,\r\n \"eindeObject\": null,\r\n \"versiedatum\": \"2019-01-01\"\r\n}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "13567726-354b-4d92-8146-52d30e50faa2", + "type": "text/javascript", + "packages": {}, + "exec": [ + "var res = pm.response.json();", + "pm.environment.set(\"zaaktype_procestermijn_vast_te_leggen_datum_url\", res.url);" + ], + "_lastExecutionId": "1cd8368c-f260-4503-8f6d-75012e10baea" + } + }, + { + "listen": "prerequest", + "script": { + "id": "d1c17045-8ac6-4d68-9c9a-d0da91916437", + "type": "text/javascript", + "packages": {}, + "exec": [ + "", + "var uuid = require('uuid');", + "var myUUID = uuid.v4(); ", + "pm.environment.set(\"random_identificatie_DZ\", myUUID);" + ], + "_lastExecutionId": "1eb91f2d-de8f-4923-9422-b88f8565c0ce" + } + } + ] + }, + "request": { + "url": { + "protocol": "http", + "port": "8080", + "path": [ + "index.php", + "apps", + "procest", + "api", + "zgw", + "catalogi", + "v1", + "zaaktypen" + ], + "host": [ + "localhost" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Authorization", + "value": "Bearer eyJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJwcm9jZXN0LWFkbWluIiwiY2xpZW50X2lkIjoicHJvY2VzdC1hZG1pbiIsImlhdCI6IjE3NzMxNDUxOTMiLCJ1c2VyX2lkIjoicHJvY2VzdC1hZG1pbiIsInVzZXJfcmVwcmVzZW50YXRpb24iOiIifQ.oUZkgwef_PEQgHOJcgQWUD67bDio_mtMTAfIL_w3oXA", + "system": true + }, + { + "key": "User-Agent", + "value": "PostmanRuntime/7.39.1", + "system": true + }, + { + "key": "Accept", + "value": "*/*", + "system": true + }, + { + "key": "Cache-Control", + "value": "no-cache", + "system": true + }, + { + "key": "Postman-Token", + "value": "d5c2a0b2-fd25-4028-9d43-fc577af1bd14", + "system": true + }, + { + "key": "Host", + "value": "localhost:8080", + "system": true + }, + { + "key": "Accept-Encoding", + "value": "gzip, deflate, br", + "system": true + }, + { + "key": "Connection", + "value": "keep-alive", + "system": true + }, + { + "key": "Content-Length", + "value": "1701", + "system": true + }, + { + "key": "Cookie", + "value": "ocvp3112b4wg=8de8f5bfbe6d18c381b88e649c64f3a0; oc_sessionPassphrase=LBNdKxRzA0iqoULIruNxDDh2BK3O%2BrCIU8aUmiUcOFvy5Xw1YfjwQNlmBW2IkGwJYtxXh9%2BwDN6vYuGNX07tXzkBtjQJUWTGdzf8AIOUIVxVx5DfyWAQZ7nmYmQv6XSE; nc_sameSiteCookielax=true; nc_sameSiteCookiestrict=true", + "system": true + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\r\n \"identificatie\": \"fcd68a58-e546-4645-aa0d-055ca3ca8603\",\r\n \"omschrijving\": \"Zaaktype for archiving tests vast_te_leggen_datum\",\r\n \"omschrijvingGeneriek\": null,\r\n \"vertrouwelijkheidaanduiding\": \"openbaar\",\r\n \"doel\": \"test doel\",\r\n \"aanleiding\": \"test aanleiding\",\r\n \"toelichting\": null,\r\n \"indicatieInternOfExtern\": \"extern\",\r\n \"handelingInitiator\": \"indienen\",\r\n \"onderwerp\": \"openbare ruimte\",\r\n \"handelingBehandelaar\": \"behandelen\",\r\n \"doorlooptijd\": \"P10D\",\r\n \"servicenorm\": null,\r\n \"opschortingEnAanhoudingMogelijk\": false,\r\n \"verlengingMogelijk\": true,\r\n \"verlengingstermijn\": \"P5D\",\r\n \"trefwoorden\": [],\r\n \"publicatieIndicatie\": false,\r\n \"publicatietekst\": null,\r\n \"verantwoordingsrelatie\": [],\r\n \"productenOfDiensten\": [\r\n \"https://ref.tst.vng.cloud/standaard/\"\r\n ],\r\n \"selectielijstProcestype\": \"https://referentielijsten.roxit.nl/api/v1/procestypen/cdb46f05-0750-4d83-8025-31e20408ed21\",\r\n \"referentieproces\": {\r\n \"naam\": \"test\",\r\n \"link\": \"\"\r\n },\r\n \"verantwoordelijke\": \"X\",\r\n \"zaakobjecttypen\": [],\r\n \"broncatalogus\": null,\r\n \"bronzaaktype\": null,\r\n \"catalogus\": \"http://localhost:8080/index.php/apps/procest/api/zgw/catalogi/v1/catalogussen/5057408f-fd76-469e-8646-bcc4ba2efa8d\",\r\n \"statustypen\": [],\r\n \"resultaattypen\": [],\r\n \"eigenschappen\": [],\r\n \"informatieobjecttypen\": [],\r\n \"roltypen\": [],\r\n \"besluittypen\": [],\r\n \"deelzaaktypen\": [],\r\n \"gerelateerdeZaaktypen\": [],\r\n \"concept\": true,\r\n \"beginGeldigheid\": \"2019-01-01\",\r\n \"eindeGeldigheid\": null,\r\n \"beginObject\": null,\r\n \"eindeObject\": null,\r\n \"versiedatum\": \"2019-01-01\"\r\n}" + }, + "auth": { + "type": "jwt", + "jwt": [ + { + "type": "string", + "value": "{\r\n \"iss\": \"procest-admin\",\r\n \"client_id\": \"procest-admin\",\r\n \"iat\": \"1773145193\",\r\n \"user_id\": \"procest-admin\",\r\n \"user_representation\": \"\"\r\n}", + "key": "payload" + }, + { + "type": "string", + "value": "procest-admin-secret-key-for-testing", + "key": "secret" + }, + { + "type": "string", + "value": "HS256", + "key": "algorithm" + }, + { + "type": "boolean", + "value": false, + "key": "isSecretBase64Encoded" + }, + { + "type": "string", + "value": "header", + "key": "addTokenTo" + }, + { + "type": "string", + "value": "Bearer", + "key": "headerPrefix" + }, + { + "type": "string", + "value": "token", + "key": "queryParamKey" + }, + { + "type": "string", + "value": "{}", + "key": "header" + } + ] + } + }, + "response": { + "id": "1144ec0e-0e11-4bb2-b024-53918fb81bb2", + "status": "Created", + "code": 201, + "header": [ + { + "key": "Date", + "value": "Tue, 10 Mar 2026 12:19:52 GMT" + }, + { + "key": "Server", + "value": "Apache/2.4.66 (Debian)" + }, + { + "key": "X-Content-Type-Options", + "value": "nosniff" + }, + { + "key": "X-Frame-Options", + "value": "SAMEORIGIN" + }, + { + "key": "X-Permitted-Cross-Domain-Policies", + "value": "none" + }, + { + "key": "X-Robots-Tag", + "value": "noindex, nofollow" + }, + { + "key": "Referrer-Policy", + "value": "no-referrer" + }, + { + "key": "X-Powered-By", + "value": "PHP/8.3.30" + }, + { + "key": "Content-Security-Policy", + "value": "default-src 'none';base-uri 'none';manifest-src 'self';frame-ancestors 'none'" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=8de8f5bfbe6d18c381b88e649c64f3a0; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=8de8f5bfbe6d18c381b88e649c64f3a0; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=8de8f5bfbe6d18c381b88e649c64f3a0; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=8de8f5bfbe6d18c381b88e649c64f3a0; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=8de8f5bfbe6d18c381b88e649c64f3a0; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=571abccc060cdc03e6619c59ad6ddeb9; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=571abccc060cdc03e6619c59ad6ddeb9; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=571abccc060cdc03e6619c59ad6ddeb9; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=571abccc060cdc03e6619c59ad6ddeb9; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=571abccc060cdc03e6619c59ad6ddeb9; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "X-Request-Id", + "value": "bVkb5TqSsAoFLZVOQ6YI" + }, + { + "key": "Cache-Control", + "value": "no-cache, no-store, must-revalidate" + }, + { + "key": "Feature-Policy", + "value": "autoplay 'none';camera 'none';fullscreen 'none';geolocation 'none';microphone 'none';payment 'none'" + }, + { + "key": "X-User-Id", + "value": "admin" + }, + { + "key": "Content-Length", + "value": "1376" + }, + { + "key": "Keep-Alive", + "value": "timeout=5, max=92" + }, + { + "key": "Connection", + "value": "Keep-Alive" + }, + { + "key": "Content-Type", + "value": "application/json; charset=utf-8" + } + ], + "stream": { + "type": "Buffer", + "data": [ + 123, + 34, + 117, + 114, + 108, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 105, + 92, + 47, + 118, + 49, + 92, + 47, + 122, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 110, + 92, + 47, + 48, + 51, + 50, + 99, + 100, + 57, + 101, + 50, + 45, + 56, + 49, + 50, + 97, + 45, + 52, + 54, + 52, + 51, + 45, + 56, + 50, + 57, + 48, + 45, + 98, + 49, + 53, + 97, + 101, + 49, + 52, + 101, + 49, + 98, + 55, + 57, + 34, + 44, + 34, + 117, + 117, + 105, + 100, + 34, + 58, + 34, + 48, + 51, + 50, + 99, + 100, + 57, + 101, + 50, + 45, + 56, + 49, + 50, + 97, + 45, + 52, + 54, + 52, + 51, + 45, + 56, + 50, + 57, + 48, + 45, + 98, + 49, + 53, + 97, + 101, + 49, + 52, + 101, + 49, + 98, + 55, + 57, + 34, + 44, + 34, + 105, + 100, + 101, + 110, + 116, + 105, + 102, + 105, + 99, + 97, + 116, + 105, + 101, + 34, + 58, + 34, + 102, + 99, + 100, + 54, + 56, + 97, + 53, + 56, + 45, + 101, + 53, + 52, + 54, + 45, + 52, + 54, + 52, + 53, + 45, + 97, + 97, + 48, + 100, + 45, + 48, + 53, + 53, + 99, + 97, + 51, + 99, + 97, + 56, + 54, + 48, + 51, + 34, + 44, + 34, + 111, + 109, + 115, + 99, + 104, + 114, + 105, + 106, + 118, + 105, + 110, + 103, + 34, + 58, + 34, + 90, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 32, + 102, + 111, + 114, + 32, + 97, + 114, + 99, + 104, + 105, + 118, + 105, + 110, + 103, + 32, + 116, + 101, + 115, + 116, + 115, + 32, + 118, + 97, + 115, + 116, + 95, + 116, + 101, + 95, + 108, + 101, + 103, + 103, + 101, + 110, + 95, + 100, + 97, + 116, + 117, + 109, + 34, + 44, + 34, + 111, + 109, + 115, + 99, + 104, + 114, + 105, + 106, + 118, + 105, + 110, + 103, + 71, + 101, + 110, + 101, + 114, + 105, + 101, + 107, + 34, + 58, + 34, + 34, + 44, + 34, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 117, + 115, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 105, + 92, + 47, + 118, + 49, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 117, + 115, + 115, + 101, + 110, + 92, + 47, + 53, + 48, + 53, + 55, + 52, + 48, + 56, + 102, + 45, + 102, + 100, + 55, + 54, + 45, + 52, + 54, + 57, + 101, + 45, + 56, + 54, + 52, + 54, + 45, + 98, + 99, + 99, + 52, + 98, + 97, + 50, + 101, + 102, + 97, + 56, + 100, + 34, + 44, + 34, + 100, + 111, + 101, + 108, + 34, + 58, + 34, + 116, + 101, + 115, + 116, + 32, + 100, + 111, + 101, + 108, + 34, + 44, + 34, + 97, + 97, + 110, + 108, + 101, + 105, + 100, + 105, + 110, + 103, + 34, + 58, + 34, + 116, + 101, + 115, + 116, + 32, + 97, + 97, + 110, + 108, + 101, + 105, + 100, + 105, + 110, + 103, + 34, + 44, + 34, + 111, + 110, + 100, + 101, + 114, + 119, + 101, + 114, + 112, + 34, + 58, + 34, + 111, + 112, + 101, + 110, + 98, + 97, + 114, + 101, + 32, + 114, + 117, + 105, + 109, + 116, + 101, + 34, + 44, + 34, + 100, + 111, + 111, + 114, + 108, + 111, + 111, + 112, + 116, + 105, + 106, + 100, + 34, + 58, + 34, + 80, + 49, + 48, + 68, + 34, + 44, + 34, + 118, + 101, + 114, + 116, + 114, + 111, + 117, + 119, + 101, + 108, + 105, + 106, + 107, + 104, + 101, + 105, + 100, + 97, + 97, + 110, + 100, + 117, + 105, + 100, + 105, + 110, + 103, + 34, + 58, + 34, + 111, + 112, + 101, + 110, + 98, + 97, + 97, + 114, + 34, + 44, + 34, + 99, + 111, + 110, + 99, + 101, + 112, + 116, + 34, + 58, + 116, + 114, + 117, + 101, + 44, + 34, + 98, + 101, + 103, + 105, + 110, + 71, + 101, + 108, + 100, + 105, + 103, + 104, + 101, + 105, + 100, + 34, + 58, + 34, + 50, + 48, + 49, + 57, + 45, + 48, + 49, + 45, + 48, + 49, + 34, + 44, + 34, + 101, + 105, + 110, + 100, + 101, + 71, + 101, + 108, + 100, + 105, + 103, + 104, + 101, + 105, + 100, + 34, + 58, + 34, + 50, + 48, + 50, + 54, + 45, + 48, + 51, + 45, + 49, + 48, + 34, + 44, + 34, + 104, + 97, + 110, + 100, + 101, + 108, + 105, + 110, + 103, + 73, + 110, + 105, + 116, + 105, + 97, + 116, + 111, + 114, + 34, + 58, + 34, + 105, + 110, + 100, + 105, + 101, + 110, + 101, + 110, + 34, + 44, + 34, + 105, + 110, + 100, + 105, + 99, + 97, + 116, + 105, + 101, + 73, + 110, + 116, + 101, + 114, + 110, + 79, + 102, + 69, + 120, + 116, + 101, + 114, + 110, + 34, + 58, + 34, + 101, + 120, + 116, + 101, + 114, + 110, + 34, + 44, + 34, + 104, + 97, + 110, + 100, + 101, + 108, + 105, + 110, + 103, + 66, + 101, + 104, + 97, + 110, + 100, + 101, + 108, + 97, + 97, + 114, + 34, + 58, + 34, + 98, + 101, + 104, + 97, + 110, + 100, + 101, + 108, + 101, + 110, + 34, + 44, + 34, + 111, + 112, + 115, + 99, + 104, + 111, + 114, + 116, + 105, + 110, + 103, + 69, + 110, + 65, + 97, + 110, + 104, + 111, + 117, + 100, + 105, + 110, + 103, + 77, + 111, + 103, + 101, + 108, + 105, + 106, + 107, + 34, + 58, + 102, + 97, + 108, + 115, + 101, + 44, + 34, + 118, + 101, + 114, + 108, + 101, + 110, + 103, + 105, + 110, + 103, + 77, + 111, + 103, + 101, + 108, + 105, + 106, + 107, + 34, + 58, + 116, + 114, + 117, + 101, + 44, + 34, + 118, + 101, + 114, + 108, + 101, + 110, + 103, + 105, + 110, + 103, + 115, + 116, + 101, + 114, + 109, + 105, + 106, + 110, + 34, + 58, + 34, + 80, + 53, + 68, + 34, + 44, + 34, + 112, + 117, + 98, + 108, + 105, + 99, + 97, + 116, + 105, + 101, + 73, + 110, + 100, + 105, + 99, + 97, + 116, + 105, + 101, + 34, + 58, + 102, + 97, + 108, + 115, + 101, + 44, + 34, + 112, + 114, + 111, + 100, + 117, + 99, + 116, + 101, + 110, + 79, + 102, + 68, + 105, + 101, + 110, + 115, + 116, + 101, + 110, + 34, + 58, + 91, + 34, + 104, + 116, + 116, + 112, + 115, + 58, + 92, + 47, + 92, + 47, + 114, + 101, + 102, + 46, + 116, + 115, + 116, + 46, + 118, + 110, + 103, + 46, + 99, + 108, + 111, + 117, + 100, + 92, + 47, + 115, + 116, + 97, + 110, + 100, + 97, + 97, + 114, + 100, + 92, + 47, + 34, + 93, + 44, + 34, + 115, + 101, + 108, + 101, + 99, + 116, + 105, + 101, + 108, + 105, + 106, + 115, + 116, + 80, + 114, + 111, + 99, + 101, + 115, + 116, + 121, + 112, + 101, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 115, + 58, + 92, + 47, + 92, + 47, + 114, + 101, + 102, + 101, + 114, + 101, + 110, + 116, + 105, + 101, + 108, + 105, + 106, + 115, + 116, + 101, + 110, + 46, + 114, + 111, + 120, + 105, + 116, + 46, + 110, + 108, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 118, + 49, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 121, + 112, + 101, + 110, + 92, + 47, + 99, + 100, + 98, + 52, + 54, + 102, + 48, + 53, + 45, + 48, + 55, + 53, + 48, + 45, + 52, + 100, + 56, + 51, + 45, + 56, + 48, + 50, + 53, + 45, + 51, + 49, + 101, + 50, + 48, + 52, + 48, + 56, + 101, + 100, + 50, + 49, + 34, + 44, + 34, + 114, + 101, + 102, + 101, + 114, + 101, + 110, + 116, + 105, + 101, + 112, + 114, + 111, + 99, + 101, + 115, + 34, + 58, + 123, + 34, + 108, + 105, + 110, + 107, + 34, + 58, + 34, + 34, + 44, + 34, + 110, + 97, + 97, + 109, + 34, + 58, + 34, + 116, + 101, + 115, + 116, + 34, + 125, + 44, + 34, + 118, + 101, + 114, + 97, + 110, + 116, + 119, + 111, + 111, + 114, + 100, + 101, + 108, + 105, + 106, + 107, + 101, + 34, + 58, + 34, + 88, + 34, + 44, + 34, + 103, + 101, + 114, + 101, + 108, + 97, + 116, + 101, + 101, + 114, + 100, + 101, + 90, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 98, + 101, + 115, + 108, + 117, + 105, + 116, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 105, + 110, + 102, + 111, + 114, + 109, + 97, + 116, + 105, + 101, + 111, + 98, + 106, + 101, + 99, + 116, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 100, + 101, + 101, + 108, + 122, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 116, + 111, + 101, + 108, + 105, + 99, + 104, + 116, + 105, + 110, + 103, + 34, + 58, + 34, + 34, + 44, + 34, + 118, + 101, + 114, + 115, + 105, + 101, + 100, + 97, + 116, + 117, + 109, + 34, + 58, + 34, + 50, + 48, + 49, + 57, + 45, + 48, + 49, + 45, + 48, + 49, + 34, + 44, + 34, + 101, + 105, + 103, + 101, + 110, + 115, + 99, + 104, + 97, + 112, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 115, + 116, + 97, + 116, + 117, + 115, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 114, + 101, + 115, + 117, + 108, + 116, + 97, + 97, + 116, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 114, + 111, + 108, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 125 + ] + }, + "cookie": [], + "responseTime": 322, + "responseSize": 1376 + }, + "id": "462c8621-ca1b-4d23-b7c8-74e207be237d" + }, + { + "cursor": { + "ref": "4383002a-fc04-41bb-89c4-0aa326b5cadd", + "length": 313, + "cycles": 1, + "position": 212, + "iteration": 0, + "httpRequestId": "bcf0f8fa-30b7-4ecd-bf35-c2f55640a5af" + }, + "item": { + "id": "b14a1067-ec08-4bcd-930e-3c2d72dd3838", + "name": "Create Hoofdzaaktype", + "request": { + "url": { + "path": [ + "zaaktypen" + ], + "host": [ + "{{ztc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n\t\"identificatie\": \"{{random_identificatie-21zrc}}\",\n \"omschrijving\": \"zrc_tests_1 hoofdzaak\",\n \"vertrouwelijkheidaanduiding\": \"openbaar\",\n \"doel\": \"test doel\",\n \"aanleiding\": \"test aanleiding\",\n \"indicatieInternOfExtern\": \"extern\",\n \"handelingInitiator\": \"indienen\",\n \"onderwerp\": \"openbare ruimte\",\n \"handelingBehandelaar\": \"behandelen\",\n \"doorlooptijd\": \"P10D\",\n \"opschortingEnAanhoudingMogelijk\": false,\n \"verlengingMogelijk\": true,\n \"publicatieIndicatie\": false,\n \"verantwoordelijke\":\"X\",\n \"productenOfDiensten\": [\n \"https://ref.tst.vng.cloud/standaard/\"\n ],\n \"selectielijstProcestype\": \"{{procestype_procestermijn_nihil_url}}\",\n \"referentieproces\": {\n \"naam\": \"test\",\n \"link\": \"\"\n },\n \"deelzaaktypen\": [\n \"{{random_identificatie_DZ}}\"\n ],\n \"catalogus\": \"{{catalogus_url}}\",\n \"statustypen\": [\n \"http://localhost:8002/api/v1/statustypen/ecb7fc03-5c11-46be-917f-e70e16c77554\",\n \"http://localhost:8002/api/v1/statustypen/14734ec8-04f8-4c18-a009-e190ff448ca9\"\n ],\n \"resultaattypen\": [\n \"http://localhost:8002/api/v1/resultaattypen/eead9dcd-9544-4862-8a03-b55643f95228\"\n ],\n \"eigenschappen\": [\n \"http://localhost:8002/api/v1/eigenschappen/d417bd46-a2a8-46d7-bb8c-4c8dc214301b\"\n ],\n \"informatieobjecttypen\": [],\n \"besluittypen\": [],\n \"gerelateerdeZaaktypen\": [],\n \"beginGeldigheid\": \"2019-01-01\",\n \"versiedatum\": \"2019-01-01\",\n \"concept\": true,\n \"verlengingstermijn\": \"P5D\"\n}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "8022290d-fe3a-4fb4-9d05-a2700d143cf2", + "type": "text/javascript", + "packages": {}, + "exec": [ + "var res = pm.response.json();", + "pm.environment.set(\"hoofdzaaktype_url\", res.url);", + "" + ], + "_lastExecutionId": "c97359bf-d6ba-4b83-bb59-e3bbe6b550a1" + } + }, + { + "listen": "prerequest", + "script": { + "id": "b1649ea2-6388-4732-956d-61c90e070076", + "type": "text/javascript", + "packages": {}, + "exec": [ + "var uuid = require('uuid');", + "var myUUID = uuid.v4(); ", + "pm.environment.set(\"random_identificatie-21zrc\", myUUID);", + "" + ], + "_lastExecutionId": "f42a2d16-3acc-4209-9302-00dd1f8ff95a" + } + } + ] + }, + "request": { + "url": { + "protocol": "http", + "port": "8080", + "path": [ + "index.php", + "apps", + "procest", + "api", + "zgw", + "catalogi", + "v1", + "zaaktypen" + ], + "host": [ + "localhost" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Authorization", + "value": "Bearer eyJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJwcm9jZXN0LWFkbWluIiwiY2xpZW50X2lkIjoicHJvY2VzdC1hZG1pbiIsImlhdCI6IjE3NzMxNDUxOTMiLCJ1c2VyX2lkIjoicHJvY2VzdC1hZG1pbiIsInVzZXJfcmVwcmVzZW50YXRpb24iOiIifQ.oUZkgwef_PEQgHOJcgQWUD67bDio_mtMTAfIL_w3oXA", + "system": true + }, + { + "key": "User-Agent", + "value": "PostmanRuntime/7.39.1", + "system": true + }, + { + "key": "Accept", + "value": "*/*", + "system": true + }, + { + "key": "Cache-Control", + "value": "no-cache", + "system": true + }, + { + "key": "Postman-Token", + "value": "b6b22582-e39d-4206-a895-d3ac9cd0dbc0", + "system": true + }, + { + "key": "Host", + "value": "localhost:8080", + "system": true + }, + { + "key": "Accept-Encoding", + "value": "gzip, deflate, br", + "system": true + }, + { + "key": "Connection", + "value": "keep-alive", + "system": true + }, + { + "key": "Content-Length", + "value": "1696", + "system": true + }, + { + "key": "Cookie", + "value": "ocvp3112b4wg=571abccc060cdc03e6619c59ad6ddeb9; oc_sessionPassphrase=LBNdKxRzA0iqoULIruNxDDh2BK3O%2BrCIU8aUmiUcOFvy5Xw1YfjwQNlmBW2IkGwJYtxXh9%2BwDN6vYuGNX07tXzkBtjQJUWTGdzf8AIOUIVxVx5DfyWAQZ7nmYmQv6XSE; nc_sameSiteCookielax=true; nc_sameSiteCookiestrict=true", + "system": true + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n\t\"identificatie\": \"45a3cae9-5fac-47cc-95a4-e8c186f0de14\",\n \"omschrijving\": \"zrc_tests_1 hoofdzaak\",\n \"vertrouwelijkheidaanduiding\": \"openbaar\",\n \"doel\": \"test doel\",\n \"aanleiding\": \"test aanleiding\",\n \"indicatieInternOfExtern\": \"extern\",\n \"handelingInitiator\": \"indienen\",\n \"onderwerp\": \"openbare ruimte\",\n \"handelingBehandelaar\": \"behandelen\",\n \"doorlooptijd\": \"P10D\",\n \"opschortingEnAanhoudingMogelijk\": false,\n \"verlengingMogelijk\": true,\n \"publicatieIndicatie\": false,\n \"verantwoordelijke\":\"X\",\n \"productenOfDiensten\": [\n \"https://ref.tst.vng.cloud/standaard/\"\n ],\n \"selectielijstProcestype\": \"https://selectielijst.openzaak.nl/api/v1/procestypen/838e405a-9b12-43c4-a985-d7a7490d422e\",\n \"referentieproces\": {\n \"naam\": \"test\",\n \"link\": \"\"\n },\n \"deelzaaktypen\": [\n \"fcd68a58-e546-4645-aa0d-055ca3ca8603\"\n ],\n \"catalogus\": \"http://localhost:8080/index.php/apps/procest/api/zgw/catalogi/v1/catalogussen/5057408f-fd76-469e-8646-bcc4ba2efa8d\",\n \"statustypen\": [\n \"http://localhost:8002/api/v1/statustypen/ecb7fc03-5c11-46be-917f-e70e16c77554\",\n \"http://localhost:8002/api/v1/statustypen/14734ec8-04f8-4c18-a009-e190ff448ca9\"\n ],\n \"resultaattypen\": [\n \"http://localhost:8002/api/v1/resultaattypen/eead9dcd-9544-4862-8a03-b55643f95228\"\n ],\n \"eigenschappen\": [\n \"http://localhost:8002/api/v1/eigenschappen/d417bd46-a2a8-46d7-bb8c-4c8dc214301b\"\n ],\n \"informatieobjecttypen\": [],\n \"besluittypen\": [],\n \"gerelateerdeZaaktypen\": [],\n \"beginGeldigheid\": \"2019-01-01\",\n \"versiedatum\": \"2019-01-01\",\n \"concept\": true,\n \"verlengingstermijn\": \"P5D\"\n}" + }, + "auth": { + "type": "jwt", + "jwt": [ + { + "type": "string", + "value": "{\r\n \"iss\": \"procest-admin\",\r\n \"client_id\": \"procest-admin\",\r\n \"iat\": \"1773145193\",\r\n \"user_id\": \"procest-admin\",\r\n \"user_representation\": \"\"\r\n}", + "key": "payload" + }, + { + "type": "string", + "value": "procest-admin-secret-key-for-testing", + "key": "secret" + }, + { + "type": "string", + "value": "HS256", + "key": "algorithm" + }, + { + "type": "boolean", + "value": false, + "key": "isSecretBase64Encoded" + }, + { + "type": "string", + "value": "header", + "key": "addTokenTo" + }, + { + "type": "string", + "value": "Bearer", + "key": "headerPrefix" + }, + { + "type": "string", + "value": "token", + "key": "queryParamKey" + }, + { + "type": "string", + "value": "{}", + "key": "header" + } + ] + } + }, + "response": { + "id": "ffbbcbb3-ca9f-4123-b0aa-fb5671f43f23", + "status": "Created", + "code": 201, + "header": [ + { + "key": "Date", + "value": "Tue, 10 Mar 2026 12:19:53 GMT" + }, + { + "key": "Server", + "value": "Apache/2.4.66 (Debian)" + }, + { + "key": "X-Content-Type-Options", + "value": "nosniff" + }, + { + "key": "X-Frame-Options", + "value": "SAMEORIGIN" + }, + { + "key": "X-Permitted-Cross-Domain-Policies", + "value": "none" + }, + { + "key": "X-Robots-Tag", + "value": "noindex, nofollow" + }, + { + "key": "Referrer-Policy", + "value": "no-referrer" + }, + { + "key": "X-Powered-By", + "value": "PHP/8.3.30" + }, + { + "key": "Content-Security-Policy", + "value": "default-src 'none';base-uri 'none';manifest-src 'self';frame-ancestors 'none'" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=571abccc060cdc03e6619c59ad6ddeb9; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=571abccc060cdc03e6619c59ad6ddeb9; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=571abccc060cdc03e6619c59ad6ddeb9; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=571abccc060cdc03e6619c59ad6ddeb9; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=571abccc060cdc03e6619c59ad6ddeb9; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=718ad82daf35f1b48e49f3c7654a079e; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=718ad82daf35f1b48e49f3c7654a079e; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=718ad82daf35f1b48e49f3c7654a079e; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=718ad82daf35f1b48e49f3c7654a079e; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=718ad82daf35f1b48e49f3c7654a079e; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "X-Request-Id", + "value": "3vFW8yUprkOgUsJ706cc" + }, + { + "key": "Cache-Control", + "value": "no-cache, no-store, must-revalidate" + }, + { + "key": "Feature-Policy", + "value": "autoplay 'none';camera 'none';fullscreen 'none';geolocation 'none';microphone 'none';payment 'none'" + }, + { + "key": "X-User-Id", + "value": "admin" + }, + { + "key": "Content-Length", + "value": "1347" + }, + { + "key": "Keep-Alive", + "value": "timeout=5, max=91" + }, + { + "key": "Connection", + "value": "Keep-Alive" + }, + { + "key": "Content-Type", + "value": "application/json; charset=utf-8" + } + ], + "stream": { + "type": "Buffer", + "data": [ + 123, + 34, + 117, + 114, + 108, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 105, + 92, + 47, + 118, + 49, + 92, + 47, + 122, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 110, + 92, + 47, + 52, + 49, + 101, + 51, + 51, + 52, + 51, + 99, + 45, + 52, + 53, + 50, + 52, + 45, + 52, + 50, + 50, + 51, + 45, + 97, + 49, + 99, + 98, + 45, + 57, + 54, + 49, + 54, + 51, + 57, + 49, + 97, + 56, + 52, + 54, + 102, + 34, + 44, + 34, + 117, + 117, + 105, + 100, + 34, + 58, + 34, + 52, + 49, + 101, + 51, + 51, + 52, + 51, + 99, + 45, + 52, + 53, + 50, + 52, + 45, + 52, + 50, + 50, + 51, + 45, + 97, + 49, + 99, + 98, + 45, + 57, + 54, + 49, + 54, + 51, + 57, + 49, + 97, + 56, + 52, + 54, + 102, + 34, + 44, + 34, + 105, + 100, + 101, + 110, + 116, + 105, + 102, + 105, + 99, + 97, + 116, + 105, + 101, + 34, + 58, + 34, + 52, + 53, + 97, + 51, + 99, + 97, + 101, + 57, + 45, + 53, + 102, + 97, + 99, + 45, + 52, + 55, + 99, + 99, + 45, + 57, + 53, + 97, + 52, + 45, + 101, + 56, + 99, + 49, + 56, + 54, + 102, + 48, + 100, + 101, + 49, + 52, + 34, + 44, + 34, + 111, + 109, + 115, + 99, + 104, + 114, + 105, + 106, + 118, + 105, + 110, + 103, + 34, + 58, + 34, + 122, + 114, + 99, + 95, + 116, + 101, + 115, + 116, + 115, + 95, + 49, + 32, + 104, + 111, + 111, + 102, + 100, + 122, + 97, + 97, + 107, + 34, + 44, + 34, + 111, + 109, + 115, + 99, + 104, + 114, + 105, + 106, + 118, + 105, + 110, + 103, + 71, + 101, + 110, + 101, + 114, + 105, + 101, + 107, + 34, + 58, + 34, + 34, + 44, + 34, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 117, + 115, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 105, + 92, + 47, + 118, + 49, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 117, + 115, + 115, + 101, + 110, + 92, + 47, + 53, + 48, + 53, + 55, + 52, + 48, + 56, + 102, + 45, + 102, + 100, + 55, + 54, + 45, + 52, + 54, + 57, + 101, + 45, + 56, + 54, + 52, + 54, + 45, + 98, + 99, + 99, + 52, + 98, + 97, + 50, + 101, + 102, + 97, + 56, + 100, + 34, + 44, + 34, + 100, + 111, + 101, + 108, + 34, + 58, + 34, + 116, + 101, + 115, + 116, + 32, + 100, + 111, + 101, + 108, + 34, + 44, + 34, + 97, + 97, + 110, + 108, + 101, + 105, + 100, + 105, + 110, + 103, + 34, + 58, + 34, + 116, + 101, + 115, + 116, + 32, + 97, + 97, + 110, + 108, + 101, + 105, + 100, + 105, + 110, + 103, + 34, + 44, + 34, + 111, + 110, + 100, + 101, + 114, + 119, + 101, + 114, + 112, + 34, + 58, + 34, + 111, + 112, + 101, + 110, + 98, + 97, + 114, + 101, + 32, + 114, + 117, + 105, + 109, + 116, + 101, + 34, + 44, + 34, + 100, + 111, + 111, + 114, + 108, + 111, + 111, + 112, + 116, + 105, + 106, + 100, + 34, + 58, + 34, + 80, + 49, + 48, + 68, + 34, + 44, + 34, + 118, + 101, + 114, + 116, + 114, + 111, + 117, + 119, + 101, + 108, + 105, + 106, + 107, + 104, + 101, + 105, + 100, + 97, + 97, + 110, + 100, + 117, + 105, + 100, + 105, + 110, + 103, + 34, + 58, + 34, + 111, + 112, + 101, + 110, + 98, + 97, + 97, + 114, + 34, + 44, + 34, + 99, + 111, + 110, + 99, + 101, + 112, + 116, + 34, + 58, + 116, + 114, + 117, + 101, + 44, + 34, + 98, + 101, + 103, + 105, + 110, + 71, + 101, + 108, + 100, + 105, + 103, + 104, + 101, + 105, + 100, + 34, + 58, + 34, + 50, + 48, + 49, + 57, + 45, + 48, + 49, + 45, + 48, + 49, + 34, + 44, + 34, + 101, + 105, + 110, + 100, + 101, + 71, + 101, + 108, + 100, + 105, + 103, + 104, + 101, + 105, + 100, + 34, + 58, + 34, + 50, + 48, + 50, + 54, + 45, + 48, + 51, + 45, + 49, + 48, + 34, + 44, + 34, + 104, + 97, + 110, + 100, + 101, + 108, + 105, + 110, + 103, + 73, + 110, + 105, + 116, + 105, + 97, + 116, + 111, + 114, + 34, + 58, + 34, + 105, + 110, + 100, + 105, + 101, + 110, + 101, + 110, + 34, + 44, + 34, + 105, + 110, + 100, + 105, + 99, + 97, + 116, + 105, + 101, + 73, + 110, + 116, + 101, + 114, + 110, + 79, + 102, + 69, + 120, + 116, + 101, + 114, + 110, + 34, + 58, + 34, + 101, + 120, + 116, + 101, + 114, + 110, + 34, + 44, + 34, + 104, + 97, + 110, + 100, + 101, + 108, + 105, + 110, + 103, + 66, + 101, + 104, + 97, + 110, + 100, + 101, + 108, + 97, + 97, + 114, + 34, + 58, + 34, + 98, + 101, + 104, + 97, + 110, + 100, + 101, + 108, + 101, + 110, + 34, + 44, + 34, + 111, + 112, + 115, + 99, + 104, + 111, + 114, + 116, + 105, + 110, + 103, + 69, + 110, + 65, + 97, + 110, + 104, + 111, + 117, + 100, + 105, + 110, + 103, + 77, + 111, + 103, + 101, + 108, + 105, + 106, + 107, + 34, + 58, + 102, + 97, + 108, + 115, + 101, + 44, + 34, + 118, + 101, + 114, + 108, + 101, + 110, + 103, + 105, + 110, + 103, + 77, + 111, + 103, + 101, + 108, + 105, + 106, + 107, + 34, + 58, + 116, + 114, + 117, + 101, + 44, + 34, + 118, + 101, + 114, + 108, + 101, + 110, + 103, + 105, + 110, + 103, + 115, + 116, + 101, + 114, + 109, + 105, + 106, + 110, + 34, + 58, + 34, + 80, + 53, + 68, + 34, + 44, + 34, + 112, + 117, + 98, + 108, + 105, + 99, + 97, + 116, + 105, + 101, + 73, + 110, + 100, + 105, + 99, + 97, + 116, + 105, + 101, + 34, + 58, + 102, + 97, + 108, + 115, + 101, + 44, + 34, + 112, + 114, + 111, + 100, + 117, + 99, + 116, + 101, + 110, + 79, + 102, + 68, + 105, + 101, + 110, + 115, + 116, + 101, + 110, + 34, + 58, + 91, + 34, + 104, + 116, + 116, + 112, + 115, + 58, + 92, + 47, + 92, + 47, + 114, + 101, + 102, + 46, + 116, + 115, + 116, + 46, + 118, + 110, + 103, + 46, + 99, + 108, + 111, + 117, + 100, + 92, + 47, + 115, + 116, + 97, + 110, + 100, + 97, + 97, + 114, + 100, + 92, + 47, + 34, + 93, + 44, + 34, + 115, + 101, + 108, + 101, + 99, + 116, + 105, + 101, + 108, + 105, + 106, + 115, + 116, + 80, + 114, + 111, + 99, + 101, + 115, + 116, + 121, + 112, + 101, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 115, + 58, + 92, + 47, + 92, + 47, + 115, + 101, + 108, + 101, + 99, + 116, + 105, + 101, + 108, + 105, + 106, + 115, + 116, + 46, + 111, + 112, + 101, + 110, + 122, + 97, + 97, + 107, + 46, + 110, + 108, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 118, + 49, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 121, + 112, + 101, + 110, + 92, + 47, + 56, + 51, + 56, + 101, + 52, + 48, + 53, + 97, + 45, + 57, + 98, + 49, + 50, + 45, + 52, + 51, + 99, + 52, + 45, + 97, + 57, + 56, + 53, + 45, + 100, + 55, + 97, + 55, + 52, + 57, + 48, + 100, + 52, + 50, + 50, + 101, + 34, + 44, + 34, + 114, + 101, + 102, + 101, + 114, + 101, + 110, + 116, + 105, + 101, + 112, + 114, + 111, + 99, + 101, + 115, + 34, + 58, + 123, + 34, + 108, + 105, + 110, + 107, + 34, + 58, + 34, + 34, + 44, + 34, + 110, + 97, + 97, + 109, + 34, + 58, + 34, + 116, + 101, + 115, + 116, + 34, + 125, + 44, + 34, + 118, + 101, + 114, + 97, + 110, + 116, + 119, + 111, + 111, + 114, + 100, + 101, + 108, + 105, + 106, + 107, + 101, + 34, + 58, + 34, + 88, + 34, + 44, + 34, + 103, + 101, + 114, + 101, + 108, + 97, + 116, + 101, + 101, + 114, + 100, + 101, + 90, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 98, + 101, + 115, + 108, + 117, + 105, + 116, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 105, + 110, + 102, + 111, + 114, + 109, + 97, + 116, + 105, + 101, + 111, + 98, + 106, + 101, + 99, + 116, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 100, + 101, + 101, + 108, + 122, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 116, + 111, + 101, + 108, + 105, + 99, + 104, + 116, + 105, + 110, + 103, + 34, + 58, + 34, + 34, + 44, + 34, + 118, + 101, + 114, + 115, + 105, + 101, + 100, + 97, + 116, + 117, + 109, + 34, + 58, + 34, + 50, + 48, + 49, + 57, + 45, + 48, + 49, + 45, + 48, + 49, + 34, + 44, + 34, + 101, + 105, + 103, + 101, + 110, + 115, + 99, + 104, + 97, + 112, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 115, + 116, + 97, + 116, + 117, + 115, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 114, + 101, + 115, + 117, + 108, + 116, + 97, + 97, + 116, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 114, + 111, + 108, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 125 + ] + }, + "cookie": [], + "responseTime": 329, + "responseSize": 1347 + }, + "id": "b14a1067-ec08-4bcd-930e-3c2d72dd3838" + }, + { + "cursor": { + "ref": "a6b988a9-12f8-4fb8-ab53-28e08032a5f5", + "length": 313, + "cycles": 1, + "position": 213, + "iteration": 0, + "httpRequestId": "efedb28a-a148-4cf6-85b8-2ec2630550c0" + }, + "item": { + "id": "5302de86-2a04-421e-a1fc-bc13c502e192", + "name": "Create Resultaattype afleidingswijze hoofdzaak", + "request": { + "url": { + "path": [ + "resultaattypen" + ], + "host": [ + "{{ztc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n \"zaaktype\": \"{{zaaktype_procestermijn_vast_te_leggen_datum_url}}\",\n \"omschrijving\": \"TEST\",\n \"resultaattypeomschrijving\": \"https://referentielijsten.roxit.nl/api/v1/resultaattypeomschrijvingen/4a6b5072-e44f-4826-9546-e8074499654e\",\n \"selectielijstklasse\": \"{{selectielijstklasse_procestermijn_vast_te_leggen_datum_url}}\",\n \"brondatumArchiefprocedure\": {\n \"afleidingswijze\": \"hoofdzaak\",\n \"procestermijn\": null,\n \"datumkenmerk\": \"\",\n \"einddatumBekend\": true,\n \"objecttype\": \"\",\n \"registratie\": \"\"\n },\n \"besluittypen\": []\n}" + } + }, + "response": [], + "event": [ + { + "listen": "prerequest", + "script": { + "id": "6b292670-e541-4b93-992b-c59c302abf93", + "type": "text/javascript", + "packages": {}, + "exec": [ + "" + ], + "_lastExecutionId": "a69a9e07-96db-45bd-a5ec-5dd4d679e02e" + } + }, + { + "listen": "test", + "script": { + "id": "a325f93f-57a5-49d0-a6fd-50d5e0298c35", + "type": "text/javascript", + "packages": {}, + "exec": [ + "var jsonData = pm.response.json();", + "", + "pm.environment.set(\"current_resultaattype\", jsonData.url);", + "pm.environment.set(\"resultaattype_archiefnominatie\", jsonData.archiefnominatie);", + "pm.environment.set(\"resultaattype_archiefactietermijn\", jsonData.archiefactietermijn);", + "pm.environment.set(\"resultaattype_brondatumArchiefprocedure\", jsonData.brondatumArchiefprocedure);" + ], + "_lastExecutionId": "c7166470-cd41-4380-83ba-a4613fe77694" + } + } + ] + }, + "request": { + "url": { + "protocol": "http", + "port": "8080", + "path": [ + "index.php", + "apps", + "procest", + "api", + "zgw", + "catalogi", + "v1", + "resultaattypen" + ], + "host": [ + "localhost" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Authorization", + "value": "Bearer eyJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJwcm9jZXN0LWFkbWluIiwiY2xpZW50X2lkIjoicHJvY2VzdC1hZG1pbiIsImlhdCI6IjE3NzMxNDUxOTMiLCJ1c2VyX2lkIjoicHJvY2VzdC1hZG1pbiIsInVzZXJfcmVwcmVzZW50YXRpb24iOiIifQ.oUZkgwef_PEQgHOJcgQWUD67bDio_mtMTAfIL_w3oXA", + "system": true + }, + { + "key": "User-Agent", + "value": "PostmanRuntime/7.39.1", + "system": true + }, + { + "key": "Accept", + "value": "*/*", + "system": true + }, + { + "key": "Cache-Control", + "value": "no-cache", + "system": true + }, + { + "key": "Postman-Token", + "value": "5e663982-eb23-45fc-9f87-3b5c1359e38f", + "system": true + }, + { + "key": "Host", + "value": "localhost:8080", + "system": true + }, + { + "key": "Accept-Encoding", + "value": "gzip, deflate, br", + "system": true + }, + { + "key": "Connection", + "value": "keep-alive", + "system": true + }, + { + "key": "Content-Length", + "value": "673", + "system": true + }, + { + "key": "Cookie", + "value": "ocvp3112b4wg=718ad82daf35f1b48e49f3c7654a079e; oc_sessionPassphrase=LBNdKxRzA0iqoULIruNxDDh2BK3O%2BrCIU8aUmiUcOFvy5Xw1YfjwQNlmBW2IkGwJYtxXh9%2BwDN6vYuGNX07tXzkBtjQJUWTGdzf8AIOUIVxVx5DfyWAQZ7nmYmQv6XSE; nc_sameSiteCookielax=true; nc_sameSiteCookiestrict=true", + "system": true + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n \"zaaktype\": \"http://localhost:8080/index.php/apps/procest/api/zgw/catalogi/v1/zaaktypen/032cd9e2-812a-4643-8290-b15ae14e1b79\",\n \"omschrijving\": \"TEST\",\n \"resultaattypeomschrijving\": \"https://referentielijsten.roxit.nl/api/v1/resultaattypeomschrijvingen/4a6b5072-e44f-4826-9546-e8074499654e\",\n \"selectielijstklasse\": \"https://selectielijst.openzaak.nl/api/v1/resultaten/80ffe8cb-e430-4ae9-a48b-34a9ef21e3cd\",\n \"brondatumArchiefprocedure\": {\n \"afleidingswijze\": \"hoofdzaak\",\n \"procestermijn\": null,\n \"datumkenmerk\": \"\",\n \"einddatumBekend\": true,\n \"objecttype\": \"\",\n \"registratie\": \"\"\n },\n \"besluittypen\": []\n}" + }, + "auth": { + "type": "jwt", + "jwt": [ + { + "type": "string", + "value": "{\r\n \"iss\": \"procest-admin\",\r\n \"client_id\": \"procest-admin\",\r\n \"iat\": \"1773145193\",\r\n \"user_id\": \"procest-admin\",\r\n \"user_representation\": \"\"\r\n}", + "key": "payload" + }, + { + "type": "string", + "value": "procest-admin-secret-key-for-testing", + "key": "secret" + }, + { + "type": "string", + "value": "HS256", + "key": "algorithm" + }, + { + "type": "boolean", + "value": false, + "key": "isSecretBase64Encoded" + }, + { + "type": "string", + "value": "header", + "key": "addTokenTo" + }, + { + "type": "string", + "value": "Bearer", + "key": "headerPrefix" + }, + { + "type": "string", + "value": "token", + "key": "queryParamKey" + }, + { + "type": "string", + "value": "{}", + "key": "header" + } + ] + } + }, + "response": { + "id": "f123a84e-a5de-4140-b204-76ad0024bc4b", + "status": "Bad request", + "code": 400, + "header": [ + { + "key": "Date", + "value": "Tue, 10 Mar 2026 12:19:53 GMT" + }, + { + "key": "Server", + "value": "Apache/2.4.66 (Debian)" + }, + { + "key": "X-Content-Type-Options", + "value": "nosniff" + }, + { + "key": "X-Frame-Options", + "value": "SAMEORIGIN" + }, + { + "key": "X-Permitted-Cross-Domain-Policies", + "value": "none" + }, + { + "key": "X-Robots-Tag", + "value": "noindex, nofollow" + }, + { + "key": "Referrer-Policy", + "value": "no-referrer" + }, + { + "key": "X-Powered-By", + "value": "PHP/8.3.30" + }, + { + "key": "Content-Security-Policy", + "value": "default-src 'none';base-uri 'none';manifest-src 'self';frame-ancestors 'none'" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=718ad82daf35f1b48e49f3c7654a079e; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=718ad82daf35f1b48e49f3c7654a079e; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=718ad82daf35f1b48e49f3c7654a079e; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=718ad82daf35f1b48e49f3c7654a079e; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=718ad82daf35f1b48e49f3c7654a079e; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=c69cd7c0015901f54d17ab44c0aaeaef; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=c69cd7c0015901f54d17ab44c0aaeaef; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=c69cd7c0015901f54d17ab44c0aaeaef; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=c69cd7c0015901f54d17ab44c0aaeaef; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=c69cd7c0015901f54d17ab44c0aaeaef; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "X-Request-Id", + "value": "B5TpW2s5TZbMUOQv5vdQ" + }, + { + "key": "Cache-Control", + "value": "no-cache, no-store, must-revalidate" + }, + { + "key": "Feature-Policy", + "value": "autoplay 'none';camera 'none';fullscreen 'none';geolocation 'none';microphone 'none';payment 'none'" + }, + { + "key": "X-User-Id", + "value": "admin" + }, + { + "key": "Content-Length", + "value": "290" + }, + { + "key": "Connection", + "value": "close" + }, + { + "key": "Content-Type", + "value": "application/json; charset=utf-8" + } + ], + "stream": { + "type": "Buffer", + "data": [ + 123, + 34, + 100, + 101, + 116, + 97, + 105, + 108, + 34, + 58, + 34, + 72, + 101, + 116, + 32, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 121, + 112, + 101, + 32, + 118, + 97, + 110, + 32, + 100, + 101, + 32, + 115, + 101, + 108, + 101, + 99, + 116, + 105, + 101, + 108, + 105, + 106, + 115, + 116, + 107, + 108, + 97, + 115, + 115, + 101, + 32, + 107, + 111, + 109, + 116, + 32, + 110, + 105, + 101, + 116, + 32, + 111, + 118, + 101, + 114, + 101, + 101, + 110, + 32, + 109, + 101, + 116, + 32, + 104, + 101, + 116, + 32, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 121, + 112, + 101, + 32, + 118, + 97, + 110, + 32, + 104, + 101, + 116, + 32, + 122, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 46, + 34, + 44, + 34, + 105, + 110, + 118, + 97, + 108, + 105, + 100, + 80, + 97, + 114, + 97, + 109, + 115, + 34, + 58, + 91, + 123, + 34, + 110, + 97, + 109, + 101, + 34, + 58, + 34, + 110, + 111, + 110, + 70, + 105, + 101, + 108, + 100, + 69, + 114, + 114, + 111, + 114, + 115, + 34, + 44, + 34, + 99, + 111, + 100, + 101, + 34, + 58, + 34, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 121, + 112, + 101, + 45, + 109, + 105, + 115, + 109, + 97, + 116, + 99, + 104, + 34, + 44, + 34, + 114, + 101, + 97, + 115, + 111, + 110, + 34, + 58, + 34, + 72, + 101, + 116, + 32, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 121, + 112, + 101, + 32, + 118, + 97, + 110, + 32, + 100, + 101, + 32, + 115, + 101, + 108, + 101, + 99, + 116, + 105, + 101, + 108, + 105, + 106, + 115, + 116, + 107, + 108, + 97, + 115, + 115, + 101, + 32, + 107, + 111, + 109, + 116, + 32, + 110, + 105, + 101, + 116, + 32, + 111, + 118, + 101, + 114, + 101, + 101, + 110, + 32, + 109, + 101, + 116, + 32, + 104, + 101, + 116, + 32, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 121, + 112, + 101, + 32, + 118, + 97, + 110, + 32, + 104, + 101, + 116, + 32, + 122, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 46, + 34, + 125, + 93, + 125 + ] + }, + "cookie": [], + "responseTime": 574, + "responseSize": 290 + }, + "id": "5302de86-2a04-421e-a1fc-bc13c502e192" + }, + { + "cursor": { + "ref": "490938e4-4bdc-4825-bd62-f5543efb13c4", + "length": 313, + "cycles": 1, + "position": 214, + "iteration": 0, + "httpRequestId": "c80a2745-4dde-4f8f-b4c8-1396cbf4ec73" + }, + "item": { + "id": "bf472fda-1b0e-4e0a-beca-768d5129638a", + "name": "Create eind Statustype procestermijn vast_te_leggen_datum", + "request": { + "url": { + "path": [ + "statustypen" + ], + "host": [ + "{{ztc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n\t\"omschrijving\": \"Eind\",\n\t\"zaaktype\": \"{{zaaktype_procestermijn_vast_te_leggen_datum_url}}\",\n\t\"volgnummer\": 2\n}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "fdd1503e-ca8e-47f2-92b5-dfd0f2f481eb", + "type": "text/javascript", + "exec": [ + "pm.environment.set(\"current_statustype_url\", pm.response.json().url);" + ], + "_lastExecutionId": "2124be3b-83ef-4ce3-b6cf-bd46f9cab543" + } + } + ] + }, + "request": { + "url": { + "protocol": "http", + "port": "8080", + "path": [ + "index.php", + "apps", + "procest", + "api", + "zgw", + "catalogi", + "v1", + "statustypen" + ], + "host": [ + "localhost" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Authorization", + "value": "Bearer eyJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJwcm9jZXN0LWFkbWluIiwiY2xpZW50X2lkIjoicHJvY2VzdC1hZG1pbiIsImlhdCI6IjE3NzMxNDUxOTQiLCJ1c2VyX2lkIjoicHJvY2VzdC1hZG1pbiIsInVzZXJfcmVwcmVzZW50YXRpb24iOiIifQ.Cv98n6zdckOv2Somq0NDCiOQC2z0hZlAsSNfSkMS15Q", + "system": true + }, + { + "key": "User-Agent", + "value": "PostmanRuntime/7.39.1", + "system": true + }, + { + "key": "Accept", + "value": "*/*", + "system": true + }, + { + "key": "Cache-Control", + "value": "no-cache", + "system": true + }, + { + "key": "Postman-Token", + "value": "15b320ff-4f56-4b8d-99e4-6b671e36b9ec", + "system": true + }, + { + "key": "Host", + "value": "localhost:8080", + "system": true + }, + { + "key": "Accept-Encoding", + "value": "gzip, deflate, br", + "system": true + }, + { + "key": "Connection", + "value": "keep-alive", + "system": true + }, + { + "key": "Content-Length", + "value": "173", + "system": true + }, + { + "key": "Cookie", + "value": "ocvp3112b4wg=c69cd7c0015901f54d17ab44c0aaeaef; oc_sessionPassphrase=LBNdKxRzA0iqoULIruNxDDh2BK3O%2BrCIU8aUmiUcOFvy5Xw1YfjwQNlmBW2IkGwJYtxXh9%2BwDN6vYuGNX07tXzkBtjQJUWTGdzf8AIOUIVxVx5DfyWAQZ7nmYmQv6XSE; nc_sameSiteCookielax=true; nc_sameSiteCookiestrict=true", + "system": true + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n\t\"omschrijving\": \"Eind\",\n\t\"zaaktype\": \"http://localhost:8080/index.php/apps/procest/api/zgw/catalogi/v1/zaaktypen/032cd9e2-812a-4643-8290-b15ae14e1b79\",\n\t\"volgnummer\": 2\n}" + }, + "auth": { + "type": "jwt", + "jwt": [ + { + "type": "string", + "value": "{\r\n \"iss\": \"procest-admin\",\r\n \"client_id\": \"procest-admin\",\r\n \"iat\": \"1773145194\",\r\n \"user_id\": \"procest-admin\",\r\n \"user_representation\": \"\"\r\n}", + "key": "payload" + }, + { + "type": "string", + "value": "procest-admin-secret-key-for-testing", + "key": "secret" + }, + { + "type": "string", + "value": "HS256", + "key": "algorithm" + }, + { + "type": "boolean", + "value": false, + "key": "isSecretBase64Encoded" + }, + { + "type": "string", + "value": "header", + "key": "addTokenTo" + }, + { + "type": "string", + "value": "Bearer", + "key": "headerPrefix" + }, + { + "type": "string", + "value": "token", + "key": "queryParamKey" + }, + { + "type": "string", + "value": "{}", + "key": "header" + } + ] + } + }, + "response": { + "id": "ab7c36de-f319-4a3b-8696-8a1ba6e38aad", + "status": "Created", + "code": 201, + "header": [ + { + "key": "Date", + "value": "Tue, 10 Mar 2026 12:19:54 GMT" + }, + { + "key": "Server", + "value": "Apache/2.4.66 (Debian)" + }, + { + "key": "X-Content-Type-Options", + "value": "nosniff" + }, + { + "key": "X-Frame-Options", + "value": "SAMEORIGIN" + }, + { + "key": "X-Permitted-Cross-Domain-Policies", + "value": "none" + }, + { + "key": "X-Robots-Tag", + "value": "noindex, nofollow" + }, + { + "key": "Referrer-Policy", + "value": "no-referrer" + }, + { + "key": "X-Powered-By", + "value": "PHP/8.3.30" + }, + { + "key": "Content-Security-Policy", + "value": "default-src 'none';base-uri 'none';manifest-src 'self';frame-ancestors 'none'" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=c69cd7c0015901f54d17ab44c0aaeaef; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=c69cd7c0015901f54d17ab44c0aaeaef; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=c69cd7c0015901f54d17ab44c0aaeaef; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=c69cd7c0015901f54d17ab44c0aaeaef; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=c69cd7c0015901f54d17ab44c0aaeaef; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=dd0530590e04fcf9bd666a8777ab0d63; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=dd0530590e04fcf9bd666a8777ab0d63; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=dd0530590e04fcf9bd666a8777ab0d63; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=dd0530590e04fcf9bd666a8777ab0d63; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=dd0530590e04fcf9bd666a8777ab0d63; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "X-Request-Id", + "value": "51v0EiBDxFjI5ziZB3hT" + }, + { + "key": "Cache-Control", + "value": "no-cache, no-store, must-revalidate" + }, + { + "key": "Feature-Policy", + "value": "autoplay 'none';camera 'none';fullscreen 'none';geolocation 'none';microphone 'none';payment 'none'" + }, + { + "key": "X-User-Id", + "value": "admin" + }, + { + "key": "Content-Length", + "value": "400" + }, + { + "key": "Keep-Alive", + "value": "timeout=5, max=100" + }, + { + "key": "Connection", + "value": "Keep-Alive" + }, + { + "key": "Content-Type", + "value": "application/json; charset=utf-8" + } + ], + "stream": { + "type": "Buffer", + "data": [ + 123, + 34, + 117, + 114, + 108, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 105, + 92, + 47, + 118, + 49, + 92, + 47, + 115, + 116, + 97, + 116, + 117, + 115, + 116, + 121, + 112, + 101, + 110, + 92, + 47, + 97, + 51, + 49, + 52, + 98, + 56, + 57, + 51, + 45, + 98, + 101, + 49, + 52, + 45, + 52, + 55, + 49, + 98, + 45, + 98, + 100, + 53, + 57, + 45, + 97, + 57, + 50, + 56, + 48, + 99, + 100, + 50, + 101, + 52, + 54, + 97, + 34, + 44, + 34, + 117, + 117, + 105, + 100, + 34, + 58, + 34, + 97, + 51, + 49, + 52, + 98, + 56, + 57, + 51, + 45, + 98, + 101, + 49, + 52, + 45, + 52, + 55, + 49, + 98, + 45, + 98, + 100, + 53, + 57, + 45, + 97, + 57, + 50, + 56, + 48, + 99, + 100, + 50, + 101, + 52, + 54, + 97, + 34, + 44, + 34, + 111, + 109, + 115, + 99, + 104, + 114, + 105, + 106, + 118, + 105, + 110, + 103, + 34, + 58, + 34, + 69, + 105, + 110, + 100, + 34, + 44, + 34, + 111, + 109, + 115, + 99, + 104, + 114, + 105, + 106, + 118, + 105, + 110, + 103, + 71, + 101, + 110, + 101, + 114, + 105, + 101, + 107, + 34, + 58, + 34, + 34, + 44, + 34, + 122, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 105, + 92, + 47, + 118, + 49, + 92, + 47, + 122, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 110, + 92, + 47, + 48, + 51, + 50, + 99, + 100, + 57, + 101, + 50, + 45, + 56, + 49, + 50, + 97, + 45, + 52, + 54, + 52, + 51, + 45, + 56, + 50, + 57, + 48, + 45, + 98, + 49, + 53, + 97, + 101, + 49, + 52, + 101, + 49, + 98, + 55, + 57, + 34, + 44, + 34, + 118, + 111, + 108, + 103, + 110, + 117, + 109, + 109, + 101, + 114, + 34, + 58, + 50, + 44, + 34, + 105, + 115, + 69, + 105, + 110, + 100, + 115, + 116, + 97, + 116, + 117, + 115, + 34, + 58, + 102, + 97, + 108, + 115, + 101, + 125 + ] + }, + "cookie": [], + "responseTime": 184, + "responseSize": 400 + }, + "id": "bf472fda-1b0e-4e0a-beca-768d5129638a" + }, + { + "cursor": { + "ref": "ca76bd10-7430-43ea-bc68-9a269643ab2e", + "length": 313, + "cycles": 1, + "position": 215, + "iteration": 0, + "httpRequestId": "f313519c-1184-4a30-86ad-1a2245d10c3c" + }, + "item": { + "id": "64035861-b95f-4ad2-b8da-3e8e9be88c1c", + "name": "Create Resultaattype afleidingswijze afgehandeld for hoofdzaaktype", + "request": { + "url": { + "path": [ + "resultaattypen" + ], + "host": [ + "{{ztc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n\t\"zaaktype\": \"{{hoofdzaaktype_url}}\",\n\t\"omschrijving\": \"Klaar\",\n\t\"resultaattypeomschrijving\": \"https://referentielijsten.roxit.nl/api/v1/resultaattypeomschrijvingen/4a6b5072-e44f-4826-9546-e8074499654e\",\n\t\"selectielijstklasse\": \"{{selectielijstklasse_procestermijn_nihil_url}}\",\n\t\"brondatumArchiefprocedure\": {\n\t\t\"afleidingswijze\": \"afgehandeld\",\n\t\t\"procestermijn\": null,\n\t\t\"datumkenmerk\": \"\",\n\t\t\"einddatumBekend\": false,\n\t\t\"objecttype\": \"\",\n\t\t\"registratie\": \"\"\n\t},\n \"besluittypen\":[]\n}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "ad949f71-b5f0-448b-9f3c-0431d22fcb0a", + "type": "text/javascript", + "packages": {}, + "exec": [ + "pm.environment.set(\"resultaattype_for_hoofdzaaktype_url\", pm.response.json().url);" + ], + "_lastExecutionId": "3729afd9-643a-4542-a1af-d3e7ad437751" + } + } + ] + }, + "request": { + "url": { + "protocol": "http", + "port": "8080", + "path": [ + "index.php", + "apps", + "procest", + "api", + "zgw", + "catalogi", + "v1", + "resultaattypen" + ], + "host": [ + "localhost" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Authorization", + "value": "Bearer eyJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJwcm9jZXN0LWFkbWluIiwiY2xpZW50X2lkIjoicHJvY2VzdC1hZG1pbiIsImlhdCI6IjE3NzMxNDUxOTQiLCJ1c2VyX2lkIjoicHJvY2VzdC1hZG1pbiIsInVzZXJfcmVwcmVzZW50YXRpb24iOiIifQ.Cv98n6zdckOv2Somq0NDCiOQC2z0hZlAsSNfSkMS15Q", + "system": true + }, + { + "key": "User-Agent", + "value": "PostmanRuntime/7.39.1", + "system": true + }, + { + "key": "Accept", + "value": "*/*", + "system": true + }, + { + "key": "Cache-Control", + "value": "no-cache", + "system": true + }, + { + "key": "Postman-Token", + "value": "edd2d211-7b4c-496a-b8d8-87aac6b79326", + "system": true + }, + { + "key": "Host", + "value": "localhost:8080", + "system": true + }, + { + "key": "Accept-Encoding", + "value": "gzip, deflate, br", + "system": true + }, + { + "key": "Connection", + "value": "keep-alive", + "system": true + }, + { + "key": "Content-Length", + "value": "622", + "system": true + }, + { + "key": "Cookie", + "value": "ocvp3112b4wg=dd0530590e04fcf9bd666a8777ab0d63; oc_sessionPassphrase=LBNdKxRzA0iqoULIruNxDDh2BK3O%2BrCIU8aUmiUcOFvy5Xw1YfjwQNlmBW2IkGwJYtxXh9%2BwDN6vYuGNX07tXzkBtjQJUWTGdzf8AIOUIVxVx5DfyWAQZ7nmYmQv6XSE; nc_sameSiteCookielax=true; nc_sameSiteCookiestrict=true", + "system": true + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n\t\"zaaktype\": \"http://localhost:8080/index.php/apps/procest/api/zgw/catalogi/v1/zaaktypen/41e3343c-4524-4223-a1cb-9616391a846f\",\n\t\"omschrijving\": \"Klaar\",\n\t\"resultaattypeomschrijving\": \"https://referentielijsten.roxit.nl/api/v1/resultaattypeomschrijvingen/4a6b5072-e44f-4826-9546-e8074499654e\",\n\t\"selectielijstklasse\": \"https://selectielijst.openzaak.nl/api/v1/resultaten/3fc7002b-31b6-4abe-82af-b6d46a9a1736\",\n\t\"brondatumArchiefprocedure\": {\n\t\t\"afleidingswijze\": \"afgehandeld\",\n\t\t\"procestermijn\": null,\n\t\t\"datumkenmerk\": \"\",\n\t\t\"einddatumBekend\": false,\n\t\t\"objecttype\": \"\",\n\t\t\"registratie\": \"\"\n\t},\n \"besluittypen\":[]\n}" + }, + "auth": { + "type": "jwt", + "jwt": [ + { + "type": "string", + "value": "{\r\n \"iss\": \"procest-admin\",\r\n \"client_id\": \"procest-admin\",\r\n \"iat\": \"1773145194\",\r\n \"user_id\": \"procest-admin\",\r\n \"user_representation\": \"\"\r\n}", + "key": "payload" + }, + { + "type": "string", + "value": "procest-admin-secret-key-for-testing", + "key": "secret" + }, + { + "type": "string", + "value": "HS256", + "key": "algorithm" + }, + { + "type": "boolean", + "value": false, + "key": "isSecretBase64Encoded" + }, + { + "type": "string", + "value": "header", + "key": "addTokenTo" + }, + { + "type": "string", + "value": "Bearer", + "key": "headerPrefix" + }, + { + "type": "string", + "value": "token", + "key": "queryParamKey" + }, + { + "type": "string", + "value": "{}", + "key": "header" + } + ] + } + }, + "response": { + "id": "cb9d5695-a2e7-43cc-9f45-600ed1e7f4b3", + "status": "Created", + "code": 201, + "header": [ + { + "key": "Date", + "value": "Tue, 10 Mar 2026 12:19:54 GMT" + }, + { + "key": "Server", + "value": "Apache/2.4.66 (Debian)" + }, + { + "key": "X-Content-Type-Options", + "value": "nosniff" + }, + { + "key": "X-Frame-Options", + "value": "SAMEORIGIN" + }, + { + "key": "X-Permitted-Cross-Domain-Policies", + "value": "none" + }, + { + "key": "X-Robots-Tag", + "value": "noindex, nofollow" + }, + { + "key": "Referrer-Policy", + "value": "no-referrer" + }, + { + "key": "X-Powered-By", + "value": "PHP/8.3.30" + }, + { + "key": "Content-Security-Policy", + "value": "default-src 'none';base-uri 'none';manifest-src 'self';frame-ancestors 'none'" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=dd0530590e04fcf9bd666a8777ab0d63; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=dd0530590e04fcf9bd666a8777ab0d63; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=dd0530590e04fcf9bd666a8777ab0d63; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=dd0530590e04fcf9bd666a8777ab0d63; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=dd0530590e04fcf9bd666a8777ab0d63; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=f9a208f8603737bb98a2ff55ab7b75fb; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=f9a208f8603737bb98a2ff55ab7b75fb; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=f9a208f8603737bb98a2ff55ab7b75fb; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=f9a208f8603737bb98a2ff55ab7b75fb; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=f9a208f8603737bb98a2ff55ab7b75fb; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "X-Request-Id", + "value": "lOQxNjtiry7wxM9SfTUs" + }, + { + "key": "Cache-Control", + "value": "no-cache, no-store, must-revalidate" + }, + { + "key": "Feature-Policy", + "value": "autoplay 'none';camera 'none';fullscreen 'none';geolocation 'none';microphone 'none';payment 'none'" + }, + { + "key": "X-User-Id", + "value": "admin" + }, + { + "key": "Content-Length", + "value": "754" + }, + { + "key": "Keep-Alive", + "value": "timeout=5, max=99" + }, + { + "key": "Connection", + "value": "Keep-Alive" + }, + { + "key": "Content-Type", + "value": "application/json; charset=utf-8" + } + ], + "stream": { + "type": "Buffer", + "data": [ + 123, + 34, + 117, + 114, + 108, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 105, + 92, + 47, + 118, + 49, + 92, + 47, + 114, + 101, + 115, + 117, + 108, + 116, + 97, + 97, + 116, + 116, + 121, + 112, + 101, + 110, + 92, + 47, + 97, + 57, + 49, + 49, + 100, + 98, + 57, + 56, + 45, + 97, + 54, + 99, + 102, + 45, + 52, + 56, + 55, + 99, + 45, + 57, + 53, + 57, + 54, + 45, + 51, + 97, + 102, + 55, + 98, + 55, + 49, + 99, + 101, + 51, + 55, + 101, + 34, + 44, + 34, + 117, + 117, + 105, + 100, + 34, + 58, + 34, + 97, + 57, + 49, + 49, + 100, + 98, + 57, + 56, + 45, + 97, + 54, + 99, + 102, + 45, + 52, + 56, + 55, + 99, + 45, + 57, + 53, + 57, + 54, + 45, + 51, + 97, + 102, + 55, + 98, + 55, + 49, + 99, + 101, + 51, + 55, + 101, + 34, + 44, + 34, + 111, + 109, + 115, + 99, + 104, + 114, + 105, + 106, + 118, + 105, + 110, + 103, + 34, + 58, + 34, + 75, + 108, + 97, + 97, + 114, + 34, + 44, + 34, + 111, + 109, + 115, + 99, + 104, + 114, + 105, + 106, + 118, + 105, + 110, + 103, + 71, + 101, + 110, + 101, + 114, + 105, + 101, + 107, + 34, + 58, + 34, + 71, + 101, + 119, + 101, + 105, + 103, + 101, + 114, + 100, + 34, + 44, + 34, + 116, + 111, + 101, + 108, + 105, + 99, + 104, + 116, + 105, + 110, + 103, + 34, + 58, + 34, + 34, + 44, + 34, + 122, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 105, + 92, + 47, + 118, + 49, + 92, + 47, + 122, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 110, + 92, + 47, + 52, + 49, + 101, + 51, + 51, + 52, + 51, + 99, + 45, + 52, + 53, + 50, + 52, + 45, + 52, + 50, + 50, + 51, + 45, + 97, + 49, + 99, + 98, + 45, + 57, + 54, + 49, + 54, + 51, + 57, + 49, + 97, + 56, + 52, + 54, + 102, + 34, + 44, + 34, + 97, + 114, + 99, + 104, + 105, + 101, + 102, + 110, + 111, + 109, + 105, + 110, + 97, + 116, + 105, + 101, + 34, + 58, + 34, + 118, + 101, + 114, + 110, + 105, + 101, + 116, + 105, + 103, + 101, + 110, + 34, + 44, + 34, + 97, + 114, + 99, + 104, + 105, + 101, + 102, + 97, + 99, + 116, + 105, + 101, + 116, + 101, + 114, + 109, + 105, + 106, + 110, + 34, + 58, + 34, + 80, + 53, + 89, + 34, + 44, + 34, + 98, + 114, + 111, + 110, + 100, + 97, + 116, + 117, + 109, + 65, + 114, + 99, + 104, + 105, + 101, + 102, + 112, + 114, + 111, + 99, + 101, + 100, + 117, + 114, + 101, + 34, + 58, + 34, + 123, + 92, + 34, + 97, + 102, + 108, + 101, + 105, + 100, + 105, + 110, + 103, + 115, + 119, + 105, + 106, + 122, + 101, + 92, + 34, + 58, + 92, + 34, + 97, + 102, + 103, + 101, + 104, + 97, + 110, + 100, + 101, + 108, + 100, + 92, + 34, + 44, + 92, + 34, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 101, + 114, + 109, + 105, + 106, + 110, + 92, + 34, + 58, + 110, + 117, + 108, + 108, + 44, + 92, + 34, + 100, + 97, + 116, + 117, + 109, + 107, + 101, + 110, + 109, + 101, + 114, + 107, + 92, + 34, + 58, + 92, + 34, + 92, + 34, + 44, + 92, + 34, + 101, + 105, + 110, + 100, + 100, + 97, + 116, + 117, + 109, + 66, + 101, + 107, + 101, + 110, + 100, + 92, + 34, + 58, + 102, + 97, + 108, + 115, + 101, + 44, + 92, + 34, + 111, + 98, + 106, + 101, + 99, + 116, + 116, + 121, + 112, + 101, + 92, + 34, + 58, + 92, + 34, + 92, + 34, + 44, + 92, + 34, + 114, + 101, + 103, + 105, + 115, + 116, + 114, + 97, + 116, + 105, + 101, + 92, + 34, + 58, + 92, + 34, + 92, + 34, + 125, + 34, + 44, + 34, + 115, + 101, + 108, + 101, + 99, + 116, + 105, + 101, + 108, + 105, + 106, + 115, + 116, + 107, + 108, + 97, + 115, + 115, + 101, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 115, + 58, + 92, + 47, + 92, + 47, + 115, + 101, + 108, + 101, + 99, + 116, + 105, + 101, + 108, + 105, + 106, + 115, + 116, + 46, + 111, + 112, + 101, + 110, + 122, + 97, + 97, + 107, + 46, + 110, + 108, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 118, + 49, + 92, + 47, + 114, + 101, + 115, + 117, + 108, + 116, + 97, + 116, + 101, + 110, + 92, + 47, + 51, + 102, + 99, + 55, + 48, + 48, + 50, + 98, + 45, + 51, + 49, + 98, + 54, + 45, + 52, + 97, + 98, + 101, + 45, + 56, + 50, + 97, + 102, + 45, + 98, + 54, + 100, + 52, + 54, + 97, + 57, + 97, + 49, + 55, + 51, + 54, + 34, + 125 + ] + }, + "cookie": [], + "responseTime": 388, + "responseSize": 754 + }, + "id": "64035861-b95f-4ad2-b8da-3e8e9be88c1c" + }, + { + "cursor": { + "ref": "fe66d708-02ac-4d0f-8a26-197e9c2776fa", + "length": 313, + "cycles": 1, + "position": 216, + "iteration": 0, + "httpRequestId": "6a1f3592-9bbe-427c-b2af-760b2161ba39" + }, + "item": { + "id": "2846073a-e321-4508-87c1-119eebbbea6a", + "name": "Create eind Statustype for hoofdzaaktype", + "request": { + "url": { + "path": [ + "statustypen" + ], + "host": [ + "{{ztc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n\t\"omschrijving\": \"Eind\",\n\t\"zaaktype\": \"{{hoofdzaaktype_url}}\",\n\t\"volgnummer\": 2\n}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "0fec3a09-a39f-4a14-8d46-b58fec799cf2", + "type": "text/javascript", + "exec": [ + "pm.environment.set(\"eindstatustype_for_hoofdzaaktype_url\", pm.response.json().url);" + ], + "_lastExecutionId": "59a8ee92-83ed-4d68-b102-59b262f51eb0" + } + } + ] + }, + "request": { + "url": { + "protocol": "http", + "port": "8080", + "path": [ + "index.php", + "apps", + "procest", + "api", + "zgw", + "catalogi", + "v1", + "statustypen" + ], + "host": [ + "localhost" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Authorization", + "value": "Bearer eyJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJwcm9jZXN0LWFkbWluIiwiY2xpZW50X2lkIjoicHJvY2VzdC1hZG1pbiIsImlhdCI6IjE3NzMxNDUxOTUiLCJ1c2VyX2lkIjoicHJvY2VzdC1hZG1pbiIsInVzZXJfcmVwcmVzZW50YXRpb24iOiIifQ.Bm6ArnSMLX4U_A9lMxwo5yWIvTtf_JZ3a6qLfPORbY0", + "system": true + }, + { + "key": "User-Agent", + "value": "PostmanRuntime/7.39.1", + "system": true + }, + { + "key": "Accept", + "value": "*/*", + "system": true + }, + { + "key": "Cache-Control", + "value": "no-cache", + "system": true + }, + { + "key": "Postman-Token", + "value": "ce2a8cfd-9799-4fe1-8090-b5856126f1b0", + "system": true + }, + { + "key": "Host", + "value": "localhost:8080", + "system": true + }, + { + "key": "Accept-Encoding", + "value": "gzip, deflate, br", + "system": true + }, + { + "key": "Connection", + "value": "keep-alive", + "system": true + }, + { + "key": "Content-Length", + "value": "173", + "system": true + }, + { + "key": "Cookie", + "value": "ocvp3112b4wg=f9a208f8603737bb98a2ff55ab7b75fb; oc_sessionPassphrase=LBNdKxRzA0iqoULIruNxDDh2BK3O%2BrCIU8aUmiUcOFvy5Xw1YfjwQNlmBW2IkGwJYtxXh9%2BwDN6vYuGNX07tXzkBtjQJUWTGdzf8AIOUIVxVx5DfyWAQZ7nmYmQv6XSE; nc_sameSiteCookielax=true; nc_sameSiteCookiestrict=true", + "system": true + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n\t\"omschrijving\": \"Eind\",\n\t\"zaaktype\": \"http://localhost:8080/index.php/apps/procest/api/zgw/catalogi/v1/zaaktypen/41e3343c-4524-4223-a1cb-9616391a846f\",\n\t\"volgnummer\": 2\n}" + }, + "auth": { + "type": "jwt", + "jwt": [ + { + "type": "string", + "value": "{\r\n \"iss\": \"procest-admin\",\r\n \"client_id\": \"procest-admin\",\r\n \"iat\": \"1773145195\",\r\n \"user_id\": \"procest-admin\",\r\n \"user_representation\": \"\"\r\n}", + "key": "payload" + }, + { + "type": "string", + "value": "procest-admin-secret-key-for-testing", + "key": "secret" + }, + { + "type": "string", + "value": "HS256", + "key": "algorithm" + }, + { + "type": "boolean", + "value": false, + "key": "isSecretBase64Encoded" + }, + { + "type": "string", + "value": "header", + "key": "addTokenTo" + }, + { + "type": "string", + "value": "Bearer", + "key": "headerPrefix" + }, + { + "type": "string", + "value": "token", + "key": "queryParamKey" + }, + { + "type": "string", + "value": "{}", + "key": "header" + } + ] + } + }, + "response": { + "id": "d7863dcc-a276-466e-a83f-020172ec5e7f", + "status": "Created", + "code": 201, + "header": [ + { + "key": "Date", + "value": "Tue, 10 Mar 2026 12:19:54 GMT" + }, + { + "key": "Server", + "value": "Apache/2.4.66 (Debian)" + }, + { + "key": "X-Content-Type-Options", + "value": "nosniff" + }, + { + "key": "X-Frame-Options", + "value": "SAMEORIGIN" + }, + { + "key": "X-Permitted-Cross-Domain-Policies", + "value": "none" + }, + { + "key": "X-Robots-Tag", + "value": "noindex, nofollow" + }, + { + "key": "Referrer-Policy", + "value": "no-referrer" + }, + { + "key": "X-Powered-By", + "value": "PHP/8.3.30" + }, + { + "key": "Content-Security-Policy", + "value": "default-src 'none';base-uri 'none';manifest-src 'self';frame-ancestors 'none'" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=f9a208f8603737bb98a2ff55ab7b75fb; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=f9a208f8603737bb98a2ff55ab7b75fb; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=f9a208f8603737bb98a2ff55ab7b75fb; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=f9a208f8603737bb98a2ff55ab7b75fb; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=f9a208f8603737bb98a2ff55ab7b75fb; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=dc45ded4f9473febd70e114c35fefb7d; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=dc45ded4f9473febd70e114c35fefb7d; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=dc45ded4f9473febd70e114c35fefb7d; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=dc45ded4f9473febd70e114c35fefb7d; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=dc45ded4f9473febd70e114c35fefb7d; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "X-Request-Id", + "value": "afidye0v07qp85Drab0P" + }, + { + "key": "Cache-Control", + "value": "no-cache, no-store, must-revalidate" + }, + { + "key": "Feature-Policy", + "value": "autoplay 'none';camera 'none';fullscreen 'none';geolocation 'none';microphone 'none';payment 'none'" + }, + { + "key": "X-User-Id", + "value": "admin" + }, + { + "key": "Content-Length", + "value": "400" + }, + { + "key": "Keep-Alive", + "value": "timeout=5, max=98" + }, + { + "key": "Connection", + "value": "Keep-Alive" + }, + { + "key": "Content-Type", + "value": "application/json; charset=utf-8" + } + ], + "stream": { + "type": "Buffer", + "data": [ + 123, + 34, + 117, + 114, + 108, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 105, + 92, + 47, + 118, + 49, + 92, + 47, + 115, + 116, + 97, + 116, + 117, + 115, + 116, + 121, + 112, + 101, + 110, + 92, + 47, + 97, + 101, + 100, + 56, + 48, + 98, + 50, + 99, + 45, + 52, + 52, + 55, + 54, + 45, + 52, + 54, + 57, + 53, + 45, + 98, + 52, + 51, + 53, + 45, + 48, + 56, + 51, + 99, + 97, + 99, + 54, + 56, + 98, + 97, + 49, + 100, + 34, + 44, + 34, + 117, + 117, + 105, + 100, + 34, + 58, + 34, + 97, + 101, + 100, + 56, + 48, + 98, + 50, + 99, + 45, + 52, + 52, + 55, + 54, + 45, + 52, + 54, + 57, + 53, + 45, + 98, + 52, + 51, + 53, + 45, + 48, + 56, + 51, + 99, + 97, + 99, + 54, + 56, + 98, + 97, + 49, + 100, + 34, + 44, + 34, + 111, + 109, + 115, + 99, + 104, + 114, + 105, + 106, + 118, + 105, + 110, + 103, + 34, + 58, + 34, + 69, + 105, + 110, + 100, + 34, + 44, + 34, + 111, + 109, + 115, + 99, + 104, + 114, + 105, + 106, + 118, + 105, + 110, + 103, + 71, + 101, + 110, + 101, + 114, + 105, + 101, + 107, + 34, + 58, + 34, + 34, + 44, + 34, + 122, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 105, + 92, + 47, + 118, + 49, + 92, + 47, + 122, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 110, + 92, + 47, + 52, + 49, + 101, + 51, + 51, + 52, + 51, + 99, + 45, + 52, + 53, + 50, + 52, + 45, + 52, + 50, + 50, + 51, + 45, + 97, + 49, + 99, + 98, + 45, + 57, + 54, + 49, + 54, + 51, + 57, + 49, + 97, + 56, + 52, + 54, + 102, + 34, + 44, + 34, + 118, + 111, + 108, + 103, + 110, + 117, + 109, + 109, + 101, + 114, + 34, + 58, + 50, + 44, + 34, + 105, + 115, + 69, + 105, + 110, + 100, + 115, + 116, + 97, + 116, + 117, + 115, + 34, + 58, + 102, + 97, + 108, + 115, + 101, + 125 + ] + }, + "cookie": [], + "responseTime": 168, + "responseSize": 400 + }, + "id": "2846073a-e321-4508-87c1-119eebbbea6a" + }, + { + "cursor": { + "ref": "8836c1c4-d242-4169-8986-d36379badee4", + "length": 313, + "cycles": 1, + "position": 217, + "iteration": 0, + "httpRequestId": "25ab5d46-d978-4e17-a269-6432c5899917" + }, + "item": { + "id": "31bc80e5-a333-4881-b84b-1bfee36232e0", + "name": "Publish Zaaktype procestermijn vast_te_leggen_datum", + "request": { + "url": { + "path": [ + "publish" + ], + "host": [ + "{{zaaktype_procestermijn_vast_te_leggen_datum_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "a97fdf7a-51b6-42f7-8cf1-a29243798bfe", + "type": "text/javascript", + "exec": [ + "pm.environment.set(\"archiving_zaaktypen\", [", + " pm.environment.get(\"zaaktype_procestermijn_nihil_url\"),", + " pm.environment.get(\"zaaktype_procestermijn_ingeschatte_bestaansduur_object_url\"),", + " pm.environment.get(\"zaaktype_procestermijn_vast_te_leggen_datum_url\")", + "]);" + ], + "_lastExecutionId": "54e90fab-3870-47c9-9453-ffeecbfd314f" + } + }, + { + "listen": "prerequest", + "script": { + "id": "4c911907-f775-42ac-a146-51644ad08f81", + "type": "text/javascript", + "exec": [ + "" + ], + "_lastExecutionId": "2eb1e91b-d650-4050-9f31-45dbf047a6a2" + } + } + ] + }, + "request": { + "url": { + "protocol": "http", + "port": "8080", + "path": [ + "index.php", + "apps", + "procest", + "api", + "zgw", + "catalogi", + "v1", + "zaaktypen", + "032cd9e2-812a-4643-8290-b15ae14e1b79", + "publish" + ], + "host": [ + "localhost" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Authorization", + "value": "Bearer eyJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJwcm9jZXN0LWFkbWluIiwiY2xpZW50X2lkIjoicHJvY2VzdC1hZG1pbiIsImlhdCI6IjE3NzMxNDUxOTUiLCJ1c2VyX2lkIjoicHJvY2VzdC1hZG1pbiIsInVzZXJfcmVwcmVzZW50YXRpb24iOiIifQ.Bm6ArnSMLX4U_A9lMxwo5yWIvTtf_JZ3a6qLfPORbY0", + "system": true + }, + { + "key": "User-Agent", + "value": "PostmanRuntime/7.39.1", + "system": true + }, + { + "key": "Accept", + "value": "*/*", + "system": true + }, + { + "key": "Cache-Control", + "value": "no-cache", + "system": true + }, + { + "key": "Postman-Token", + "value": "c1e0ce63-ff9d-4325-8709-3bf72674230c", + "system": true + }, + { + "key": "Host", + "value": "localhost:8080", + "system": true + }, + { + "key": "Accept-Encoding", + "value": "gzip, deflate, br", + "system": true + }, + { + "key": "Connection", + "value": "keep-alive", + "system": true + }, + { + "key": "Cookie", + "value": "ocvp3112b4wg=dc45ded4f9473febd70e114c35fefb7d; oc_sessionPassphrase=LBNdKxRzA0iqoULIruNxDDh2BK3O%2BrCIU8aUmiUcOFvy5Xw1YfjwQNlmBW2IkGwJYtxXh9%2BwDN6vYuGNX07tXzkBtjQJUWTGdzf8AIOUIVxVx5DfyWAQZ7nmYmQv6XSE; nc_sameSiteCookielax=true; nc_sameSiteCookiestrict=true", + "system": true + }, + { + "key": "Content-Length", + "value": "0", + "system": true + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "" + }, + "auth": { + "type": "jwt", + "jwt": [ + { + "type": "string", + "value": "{\r\n \"iss\": \"procest-admin\",\r\n \"client_id\": \"procest-admin\",\r\n \"iat\": \"1773145195\",\r\n \"user_id\": \"procest-admin\",\r\n \"user_representation\": \"\"\r\n}", + "key": "payload" + }, + { + "type": "string", + "value": "procest-admin-secret-key-for-testing", + "key": "secret" + }, + { + "type": "string", + "value": "HS256", + "key": "algorithm" + }, + { + "type": "boolean", + "value": false, + "key": "isSecretBase64Encoded" + }, + { + "type": "string", + "value": "header", + "key": "addTokenTo" + }, + { + "type": "string", + "value": "Bearer", + "key": "headerPrefix" + }, + { + "type": "string", + "value": "token", + "key": "queryParamKey" + }, + { + "type": "string", + "value": "{}", + "key": "header" + } + ] + } + }, + "response": { + "id": "a07e24b3-8aeb-49ca-aff3-ad6112601bf3", + "status": "OK", + "code": 200, + "header": [ + { + "key": "Date", + "value": "Tue, 10 Mar 2026 12:19:54 GMT" + }, + { + "key": "Server", + "value": "Apache/2.4.66 (Debian)" + }, + { + "key": "X-Content-Type-Options", + "value": "nosniff" + }, + { + "key": "X-Frame-Options", + "value": "SAMEORIGIN" + }, + { + "key": "X-Permitted-Cross-Domain-Policies", + "value": "none" + }, + { + "key": "X-Robots-Tag", + "value": "noindex, nofollow" + }, + { + "key": "Referrer-Policy", + "value": "no-referrer" + }, + { + "key": "X-Powered-By", + "value": "PHP/8.3.30" + }, + { + "key": "Content-Security-Policy", + "value": "default-src 'none';base-uri 'none';manifest-src 'self';frame-ancestors 'none'" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=dc45ded4f9473febd70e114c35fefb7d; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=dc45ded4f9473febd70e114c35fefb7d; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=dc45ded4f9473febd70e114c35fefb7d; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=dc45ded4f9473febd70e114c35fefb7d; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=dc45ded4f9473febd70e114c35fefb7d; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=44a72e9f4684ecd435bde92639584e4b; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=44a72e9f4684ecd435bde92639584e4b; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=44a72e9f4684ecd435bde92639584e4b; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=44a72e9f4684ecd435bde92639584e4b; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=44a72e9f4684ecd435bde92639584e4b; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "X-Request-Id", + "value": "M6ZV6ghWXtHblFNmZtHc" + }, + { + "key": "Cache-Control", + "value": "no-cache, no-store, must-revalidate" + }, + { + "key": "Feature-Policy", + "value": "autoplay 'none';camera 'none';fullscreen 'none';geolocation 'none';microphone 'none';payment 'none'" + }, + { + "key": "X-User-Id", + "value": "admin" + }, + { + "key": "Content-Encoding", + "value": "gzip" + }, + { + "key": "Content-Length", + "value": "698" + }, + { + "key": "Keep-Alive", + "value": "timeout=5, max=97" + }, + { + "key": "Connection", + "value": "Keep-Alive" + }, + { + "key": "Content-Type", + "value": "application/json; charset=utf-8" + } + ], + "stream": { + "type": "Buffer", + "data": [ + 123, + 34, + 117, + 114, + 108, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 105, + 92, + 47, + 118, + 49, + 92, + 47, + 122, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 110, + 92, + 47, + 48, + 51, + 50, + 99, + 100, + 57, + 101, + 50, + 45, + 56, + 49, + 50, + 97, + 45, + 52, + 54, + 52, + 51, + 45, + 56, + 50, + 57, + 48, + 45, + 98, + 49, + 53, + 97, + 101, + 49, + 52, + 101, + 49, + 98, + 55, + 57, + 34, + 44, + 34, + 117, + 117, + 105, + 100, + 34, + 58, + 34, + 48, + 51, + 50, + 99, + 100, + 57, + 101, + 50, + 45, + 56, + 49, + 50, + 97, + 45, + 52, + 54, + 52, + 51, + 45, + 56, + 50, + 57, + 48, + 45, + 98, + 49, + 53, + 97, + 101, + 49, + 52, + 101, + 49, + 98, + 55, + 57, + 34, + 44, + 34, + 105, + 100, + 101, + 110, + 116, + 105, + 102, + 105, + 99, + 97, + 116, + 105, + 101, + 34, + 58, + 34, + 102, + 99, + 100, + 54, + 56, + 97, + 53, + 56, + 45, + 101, + 53, + 52, + 54, + 45, + 52, + 54, + 52, + 53, + 45, + 97, + 97, + 48, + 100, + 45, + 48, + 53, + 53, + 99, + 97, + 51, + 99, + 97, + 56, + 54, + 48, + 51, + 34, + 44, + 34, + 111, + 109, + 115, + 99, + 104, + 114, + 105, + 106, + 118, + 105, + 110, + 103, + 34, + 58, + 34, + 90, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 32, + 102, + 111, + 114, + 32, + 97, + 114, + 99, + 104, + 105, + 118, + 105, + 110, + 103, + 32, + 116, + 101, + 115, + 116, + 115, + 32, + 118, + 97, + 115, + 116, + 95, + 116, + 101, + 95, + 108, + 101, + 103, + 103, + 101, + 110, + 95, + 100, + 97, + 116, + 117, + 109, + 34, + 44, + 34, + 111, + 109, + 115, + 99, + 104, + 114, + 105, + 106, + 118, + 105, + 110, + 103, + 71, + 101, + 110, + 101, + 114, + 105, + 101, + 107, + 34, + 58, + 34, + 34, + 44, + 34, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 117, + 115, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 105, + 92, + 47, + 118, + 49, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 117, + 115, + 115, + 101, + 110, + 92, + 47, + 53, + 48, + 53, + 55, + 52, + 48, + 56, + 102, + 45, + 102, + 100, + 55, + 54, + 45, + 52, + 54, + 57, + 101, + 45, + 56, + 54, + 52, + 54, + 45, + 98, + 99, + 99, + 52, + 98, + 97, + 50, + 101, + 102, + 97, + 56, + 100, + 34, + 44, + 34, + 100, + 111, + 101, + 108, + 34, + 58, + 34, + 116, + 101, + 115, + 116, + 32, + 100, + 111, + 101, + 108, + 34, + 44, + 34, + 97, + 97, + 110, + 108, + 101, + 105, + 100, + 105, + 110, + 103, + 34, + 58, + 34, + 116, + 101, + 115, + 116, + 32, + 97, + 97, + 110, + 108, + 101, + 105, + 100, + 105, + 110, + 103, + 34, + 44, + 34, + 111, + 110, + 100, + 101, + 114, + 119, + 101, + 114, + 112, + 34, + 58, + 34, + 111, + 112, + 101, + 110, + 98, + 97, + 114, + 101, + 32, + 114, + 117, + 105, + 109, + 116, + 101, + 34, + 44, + 34, + 100, + 111, + 111, + 114, + 108, + 111, + 111, + 112, + 116, + 105, + 106, + 100, + 34, + 58, + 34, + 80, + 49, + 48, + 68, + 34, + 44, + 34, + 118, + 101, + 114, + 116, + 114, + 111, + 117, + 119, + 101, + 108, + 105, + 106, + 107, + 104, + 101, + 105, + 100, + 97, + 97, + 110, + 100, + 117, + 105, + 100, + 105, + 110, + 103, + 34, + 58, + 34, + 111, + 112, + 101, + 110, + 98, + 97, + 97, + 114, + 34, + 44, + 34, + 99, + 111, + 110, + 99, + 101, + 112, + 116, + 34, + 58, + 102, + 97, + 108, + 115, + 101, + 44, + 34, + 98, + 101, + 103, + 105, + 110, + 71, + 101, + 108, + 100, + 105, + 103, + 104, + 101, + 105, + 100, + 34, + 58, + 34, + 50, + 48, + 49, + 57, + 45, + 48, + 49, + 45, + 48, + 49, + 34, + 44, + 34, + 101, + 105, + 110, + 100, + 101, + 71, + 101, + 108, + 100, + 105, + 103, + 104, + 101, + 105, + 100, + 34, + 58, + 34, + 50, + 48, + 50, + 54, + 45, + 48, + 51, + 45, + 49, + 48, + 34, + 44, + 34, + 104, + 97, + 110, + 100, + 101, + 108, + 105, + 110, + 103, + 73, + 110, + 105, + 116, + 105, + 97, + 116, + 111, + 114, + 34, + 58, + 34, + 105, + 110, + 100, + 105, + 101, + 110, + 101, + 110, + 34, + 44, + 34, + 105, + 110, + 100, + 105, + 99, + 97, + 116, + 105, + 101, + 73, + 110, + 116, + 101, + 114, + 110, + 79, + 102, + 69, + 120, + 116, + 101, + 114, + 110, + 34, + 58, + 34, + 101, + 120, + 116, + 101, + 114, + 110, + 34, + 44, + 34, + 104, + 97, + 110, + 100, + 101, + 108, + 105, + 110, + 103, + 66, + 101, + 104, + 97, + 110, + 100, + 101, + 108, + 97, + 97, + 114, + 34, + 58, + 34, + 98, + 101, + 104, + 97, + 110, + 100, + 101, + 108, + 101, + 110, + 34, + 44, + 34, + 111, + 112, + 115, + 99, + 104, + 111, + 114, + 116, + 105, + 110, + 103, + 69, + 110, + 65, + 97, + 110, + 104, + 111, + 117, + 100, + 105, + 110, + 103, + 77, + 111, + 103, + 101, + 108, + 105, + 106, + 107, + 34, + 58, + 102, + 97, + 108, + 115, + 101, + 44, + 34, + 118, + 101, + 114, + 108, + 101, + 110, + 103, + 105, + 110, + 103, + 77, + 111, + 103, + 101, + 108, + 105, + 106, + 107, + 34, + 58, + 116, + 114, + 117, + 101, + 44, + 34, + 118, + 101, + 114, + 108, + 101, + 110, + 103, + 105, + 110, + 103, + 115, + 116, + 101, + 114, + 109, + 105, + 106, + 110, + 34, + 58, + 34, + 80, + 53, + 68, + 34, + 44, + 34, + 112, + 117, + 98, + 108, + 105, + 99, + 97, + 116, + 105, + 101, + 73, + 110, + 100, + 105, + 99, + 97, + 116, + 105, + 101, + 34, + 58, + 102, + 97, + 108, + 115, + 101, + 44, + 34, + 112, + 114, + 111, + 100, + 117, + 99, + 116, + 101, + 110, + 79, + 102, + 68, + 105, + 101, + 110, + 115, + 116, + 101, + 110, + 34, + 58, + 91, + 34, + 104, + 116, + 116, + 112, + 115, + 58, + 92, + 47, + 92, + 47, + 114, + 101, + 102, + 46, + 116, + 115, + 116, + 46, + 118, + 110, + 103, + 46, + 99, + 108, + 111, + 117, + 100, + 92, + 47, + 115, + 116, + 97, + 110, + 100, + 97, + 97, + 114, + 100, + 92, + 47, + 34, + 93, + 44, + 34, + 115, + 101, + 108, + 101, + 99, + 116, + 105, + 101, + 108, + 105, + 106, + 115, + 116, + 80, + 114, + 111, + 99, + 101, + 115, + 116, + 121, + 112, + 101, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 115, + 58, + 92, + 47, + 92, + 47, + 114, + 101, + 102, + 101, + 114, + 101, + 110, + 116, + 105, + 101, + 108, + 105, + 106, + 115, + 116, + 101, + 110, + 46, + 114, + 111, + 120, + 105, + 116, + 46, + 110, + 108, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 118, + 49, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 121, + 112, + 101, + 110, + 92, + 47, + 99, + 100, + 98, + 52, + 54, + 102, + 48, + 53, + 45, + 48, + 55, + 53, + 48, + 45, + 52, + 100, + 56, + 51, + 45, + 56, + 48, + 50, + 53, + 45, + 51, + 49, + 101, + 50, + 48, + 52, + 48, + 56, + 101, + 100, + 50, + 49, + 34, + 44, + 34, + 114, + 101, + 102, + 101, + 114, + 101, + 110, + 116, + 105, + 101, + 112, + 114, + 111, + 99, + 101, + 115, + 34, + 58, + 123, + 34, + 108, + 105, + 110, + 107, + 34, + 58, + 34, + 34, + 44, + 34, + 110, + 97, + 97, + 109, + 34, + 58, + 34, + 116, + 101, + 115, + 116, + 34, + 125, + 44, + 34, + 118, + 101, + 114, + 97, + 110, + 116, + 119, + 111, + 111, + 114, + 100, + 101, + 108, + 105, + 106, + 107, + 101, + 34, + 58, + 34, + 88, + 34, + 44, + 34, + 103, + 101, + 114, + 101, + 108, + 97, + 116, + 101, + 101, + 114, + 100, + 101, + 90, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 98, + 101, + 115, + 108, + 117, + 105, + 116, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 105, + 110, + 102, + 111, + 114, + 109, + 97, + 116, + 105, + 101, + 111, + 98, + 106, + 101, + 99, + 116, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 100, + 101, + 101, + 108, + 122, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 116, + 111, + 101, + 108, + 105, + 99, + 104, + 116, + 105, + 110, + 103, + 34, + 58, + 34, + 34, + 44, + 34, + 118, + 101, + 114, + 115, + 105, + 101, + 100, + 97, + 116, + 117, + 109, + 34, + 58, + 34, + 50, + 48, + 49, + 57, + 45, + 48, + 49, + 45, + 48, + 49, + 34, + 125 + ] + }, + "cookie": [], + "responseTime": 308, + "responseSize": 1307 + }, + "id": "31bc80e5-a333-4881-b84b-1bfee36232e0" + }, + { + "cursor": { + "ref": "842e13d5-62d5-4adc-a582-44f421666ba3", + "length": 313, + "cycles": 1, + "position": 218, + "iteration": 0, + "httpRequestId": "eb4d42f9-bef1-4ba4-89b2-db1fc8ed2dee" + }, + "item": { + "id": "e9c95663-e8d4-4212-a130-c140b054c9ba", + "name": "Publish Hoofdzaaktype", + "request": { + "url": { + "path": [ + "publish" + ], + "host": [ + "{{hoofdzaaktype_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "b3f29a44-569f-4cf5-bd7c-2e1ffa65f995", + "type": "text/javascript", + "exec": [ + "" + ], + "_lastExecutionId": "66861ac4-2bdb-49f2-bd39-4c853be846d8" + } + }, + { + "listen": "prerequest", + "script": { + "id": "0f51bf8b-b467-4499-8634-015e347e1cbb", + "type": "text/javascript", + "exec": [ + "" + ], + "_lastExecutionId": "de7a5502-ff1f-4a27-a9a2-67e63dca2938" + } + } + ] + }, + "request": { + "url": { + "protocol": "http", + "port": "8080", + "path": [ + "index.php", + "apps", + "procest", + "api", + "zgw", + "catalogi", + "v1", + "zaaktypen", + "41e3343c-4524-4223-a1cb-9616391a846f", + "publish" + ], + "host": [ + "localhost" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Authorization", + "value": "Bearer eyJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJwcm9jZXN0LWFkbWluIiwiY2xpZW50X2lkIjoicHJvY2VzdC1hZG1pbiIsImlhdCI6IjE3NzMxNDUxOTUiLCJ1c2VyX2lkIjoicHJvY2VzdC1hZG1pbiIsInVzZXJfcmVwcmVzZW50YXRpb24iOiIifQ.Bm6ArnSMLX4U_A9lMxwo5yWIvTtf_JZ3a6qLfPORbY0", + "system": true + }, + { + "key": "User-Agent", + "value": "PostmanRuntime/7.39.1", + "system": true + }, + { + "key": "Accept", + "value": "*/*", + "system": true + }, + { + "key": "Cache-Control", + "value": "no-cache", + "system": true + }, + { + "key": "Postman-Token", + "value": "223aa58c-07ad-4f69-b816-15cfb0b8a203", + "system": true + }, + { + "key": "Host", + "value": "localhost:8080", + "system": true + }, + { + "key": "Accept-Encoding", + "value": "gzip, deflate, br", + "system": true + }, + { + "key": "Connection", + "value": "keep-alive", + "system": true + }, + { + "key": "Cookie", + "value": "ocvp3112b4wg=44a72e9f4684ecd435bde92639584e4b; oc_sessionPassphrase=LBNdKxRzA0iqoULIruNxDDh2BK3O%2BrCIU8aUmiUcOFvy5Xw1YfjwQNlmBW2IkGwJYtxXh9%2BwDN6vYuGNX07tXzkBtjQJUWTGdzf8AIOUIVxVx5DfyWAQZ7nmYmQv6XSE; nc_sameSiteCookielax=true; nc_sameSiteCookiestrict=true", + "system": true + }, + { + "key": "Content-Length", + "value": "0", + "system": true + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "" + }, + "auth": { + "type": "jwt", + "jwt": [ + { + "type": "string", + "value": "{\r\n \"iss\": \"procest-admin\",\r\n \"client_id\": \"procest-admin\",\r\n \"iat\": \"1773145195\",\r\n \"user_id\": \"procest-admin\",\r\n \"user_representation\": \"\"\r\n}", + "key": "payload" + }, + { + "type": "string", + "value": "procest-admin-secret-key-for-testing", + "key": "secret" + }, + { + "type": "string", + "value": "HS256", + "key": "algorithm" + }, + { + "type": "boolean", + "value": false, + "key": "isSecretBase64Encoded" + }, + { + "type": "string", + "value": "header", + "key": "addTokenTo" + }, + { + "type": "string", + "value": "Bearer", + "key": "headerPrefix" + }, + { + "type": "string", + "value": "token", + "key": "queryParamKey" + }, + { + "type": "string", + "value": "{}", + "key": "header" + } + ] + } + }, + "response": { + "id": "367ed8d2-ae20-4804-8ee5-ed10033c4c34", + "status": "OK", + "code": 200, + "header": [ + { + "key": "Date", + "value": "Tue, 10 Mar 2026 12:19:55 GMT" + }, + { + "key": "Server", + "value": "Apache/2.4.66 (Debian)" + }, + { + "key": "X-Content-Type-Options", + "value": "nosniff" + }, + { + "key": "X-Frame-Options", + "value": "SAMEORIGIN" + }, + { + "key": "X-Permitted-Cross-Domain-Policies", + "value": "none" + }, + { + "key": "X-Robots-Tag", + "value": "noindex, nofollow" + }, + { + "key": "Referrer-Policy", + "value": "no-referrer" + }, + { + "key": "X-Powered-By", + "value": "PHP/8.3.30" + }, + { + "key": "Content-Security-Policy", + "value": "default-src 'none';base-uri 'none';manifest-src 'self';frame-ancestors 'none'" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=44a72e9f4684ecd435bde92639584e4b; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=44a72e9f4684ecd435bde92639584e4b; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=44a72e9f4684ecd435bde92639584e4b; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=44a72e9f4684ecd435bde92639584e4b; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=44a72e9f4684ecd435bde92639584e4b; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=6a6c3237899eafcaf5eddf95fc08e7bb; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=6a6c3237899eafcaf5eddf95fc08e7bb; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=6a6c3237899eafcaf5eddf95fc08e7bb; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=6a6c3237899eafcaf5eddf95fc08e7bb; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=6a6c3237899eafcaf5eddf95fc08e7bb; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "X-Request-Id", + "value": "3d96z5X92TymEtxUN4zM" + }, + { + "key": "Cache-Control", + "value": "no-cache, no-store, must-revalidate" + }, + { + "key": "Feature-Policy", + "value": "autoplay 'none';camera 'none';fullscreen 'none';geolocation 'none';microphone 'none';payment 'none'" + }, + { + "key": "X-User-Id", + "value": "admin" + }, + { + "key": "Content-Encoding", + "value": "gzip" + }, + { + "key": "Content-Length", + "value": "687" + }, + { + "key": "Keep-Alive", + "value": "timeout=5, max=96" + }, + { + "key": "Connection", + "value": "Keep-Alive" + }, + { + "key": "Content-Type", + "value": "application/json; charset=utf-8" + } + ], + "stream": { + "type": "Buffer", + "data": [ + 123, + 34, + 117, + 114, + 108, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 105, + 92, + 47, + 118, + 49, + 92, + 47, + 122, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 110, + 92, + 47, + 52, + 49, + 101, + 51, + 51, + 52, + 51, + 99, + 45, + 52, + 53, + 50, + 52, + 45, + 52, + 50, + 50, + 51, + 45, + 97, + 49, + 99, + 98, + 45, + 57, + 54, + 49, + 54, + 51, + 57, + 49, + 97, + 56, + 52, + 54, + 102, + 34, + 44, + 34, + 117, + 117, + 105, + 100, + 34, + 58, + 34, + 52, + 49, + 101, + 51, + 51, + 52, + 51, + 99, + 45, + 52, + 53, + 50, + 52, + 45, + 52, + 50, + 50, + 51, + 45, + 97, + 49, + 99, + 98, + 45, + 57, + 54, + 49, + 54, + 51, + 57, + 49, + 97, + 56, + 52, + 54, + 102, + 34, + 44, + 34, + 105, + 100, + 101, + 110, + 116, + 105, + 102, + 105, + 99, + 97, + 116, + 105, + 101, + 34, + 58, + 34, + 52, + 53, + 97, + 51, + 99, + 97, + 101, + 57, + 45, + 53, + 102, + 97, + 99, + 45, + 52, + 55, + 99, + 99, + 45, + 57, + 53, + 97, + 52, + 45, + 101, + 56, + 99, + 49, + 56, + 54, + 102, + 48, + 100, + 101, + 49, + 52, + 34, + 44, + 34, + 111, + 109, + 115, + 99, + 104, + 114, + 105, + 106, + 118, + 105, + 110, + 103, + 34, + 58, + 34, + 122, + 114, + 99, + 95, + 116, + 101, + 115, + 116, + 115, + 95, + 49, + 32, + 104, + 111, + 111, + 102, + 100, + 122, + 97, + 97, + 107, + 34, + 44, + 34, + 111, + 109, + 115, + 99, + 104, + 114, + 105, + 106, + 118, + 105, + 110, + 103, + 71, + 101, + 110, + 101, + 114, + 105, + 101, + 107, + 34, + 58, + 34, + 34, + 44, + 34, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 117, + 115, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 105, + 92, + 47, + 118, + 49, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 117, + 115, + 115, + 101, + 110, + 92, + 47, + 53, + 48, + 53, + 55, + 52, + 48, + 56, + 102, + 45, + 102, + 100, + 55, + 54, + 45, + 52, + 54, + 57, + 101, + 45, + 56, + 54, + 52, + 54, + 45, + 98, + 99, + 99, + 52, + 98, + 97, + 50, + 101, + 102, + 97, + 56, + 100, + 34, + 44, + 34, + 100, + 111, + 101, + 108, + 34, + 58, + 34, + 116, + 101, + 115, + 116, + 32, + 100, + 111, + 101, + 108, + 34, + 44, + 34, + 97, + 97, + 110, + 108, + 101, + 105, + 100, + 105, + 110, + 103, + 34, + 58, + 34, + 116, + 101, + 115, + 116, + 32, + 97, + 97, + 110, + 108, + 101, + 105, + 100, + 105, + 110, + 103, + 34, + 44, + 34, + 111, + 110, + 100, + 101, + 114, + 119, + 101, + 114, + 112, + 34, + 58, + 34, + 111, + 112, + 101, + 110, + 98, + 97, + 114, + 101, + 32, + 114, + 117, + 105, + 109, + 116, + 101, + 34, + 44, + 34, + 100, + 111, + 111, + 114, + 108, + 111, + 111, + 112, + 116, + 105, + 106, + 100, + 34, + 58, + 34, + 80, + 49, + 48, + 68, + 34, + 44, + 34, + 118, + 101, + 114, + 116, + 114, + 111, + 117, + 119, + 101, + 108, + 105, + 106, + 107, + 104, + 101, + 105, + 100, + 97, + 97, + 110, + 100, + 117, + 105, + 100, + 105, + 110, + 103, + 34, + 58, + 34, + 111, + 112, + 101, + 110, + 98, + 97, + 97, + 114, + 34, + 44, + 34, + 99, + 111, + 110, + 99, + 101, + 112, + 116, + 34, + 58, + 102, + 97, + 108, + 115, + 101, + 44, + 34, + 98, + 101, + 103, + 105, + 110, + 71, + 101, + 108, + 100, + 105, + 103, + 104, + 101, + 105, + 100, + 34, + 58, + 34, + 50, + 48, + 49, + 57, + 45, + 48, + 49, + 45, + 48, + 49, + 34, + 44, + 34, + 101, + 105, + 110, + 100, + 101, + 71, + 101, + 108, + 100, + 105, + 103, + 104, + 101, + 105, + 100, + 34, + 58, + 34, + 50, + 48, + 50, + 54, + 45, + 48, + 51, + 45, + 49, + 48, + 34, + 44, + 34, + 104, + 97, + 110, + 100, + 101, + 108, + 105, + 110, + 103, + 73, + 110, + 105, + 116, + 105, + 97, + 116, + 111, + 114, + 34, + 58, + 34, + 105, + 110, + 100, + 105, + 101, + 110, + 101, + 110, + 34, + 44, + 34, + 105, + 110, + 100, + 105, + 99, + 97, + 116, + 105, + 101, + 73, + 110, + 116, + 101, + 114, + 110, + 79, + 102, + 69, + 120, + 116, + 101, + 114, + 110, + 34, + 58, + 34, + 101, + 120, + 116, + 101, + 114, + 110, + 34, + 44, + 34, + 104, + 97, + 110, + 100, + 101, + 108, + 105, + 110, + 103, + 66, + 101, + 104, + 97, + 110, + 100, + 101, + 108, + 97, + 97, + 114, + 34, + 58, + 34, + 98, + 101, + 104, + 97, + 110, + 100, + 101, + 108, + 101, + 110, + 34, + 44, + 34, + 111, + 112, + 115, + 99, + 104, + 111, + 114, + 116, + 105, + 110, + 103, + 69, + 110, + 65, + 97, + 110, + 104, + 111, + 117, + 100, + 105, + 110, + 103, + 77, + 111, + 103, + 101, + 108, + 105, + 106, + 107, + 34, + 58, + 102, + 97, + 108, + 115, + 101, + 44, + 34, + 118, + 101, + 114, + 108, + 101, + 110, + 103, + 105, + 110, + 103, + 77, + 111, + 103, + 101, + 108, + 105, + 106, + 107, + 34, + 58, + 116, + 114, + 117, + 101, + 44, + 34, + 118, + 101, + 114, + 108, + 101, + 110, + 103, + 105, + 110, + 103, + 115, + 116, + 101, + 114, + 109, + 105, + 106, + 110, + 34, + 58, + 34, + 80, + 53, + 68, + 34, + 44, + 34, + 112, + 117, + 98, + 108, + 105, + 99, + 97, + 116, + 105, + 101, + 73, + 110, + 100, + 105, + 99, + 97, + 116, + 105, + 101, + 34, + 58, + 102, + 97, + 108, + 115, + 101, + 44, + 34, + 112, + 114, + 111, + 100, + 117, + 99, + 116, + 101, + 110, + 79, + 102, + 68, + 105, + 101, + 110, + 115, + 116, + 101, + 110, + 34, + 58, + 91, + 34, + 104, + 116, + 116, + 112, + 115, + 58, + 92, + 47, + 92, + 47, + 114, + 101, + 102, + 46, + 116, + 115, + 116, + 46, + 118, + 110, + 103, + 46, + 99, + 108, + 111, + 117, + 100, + 92, + 47, + 115, + 116, + 97, + 110, + 100, + 97, + 97, + 114, + 100, + 92, + 47, + 34, + 93, + 44, + 34, + 115, + 101, + 108, + 101, + 99, + 116, + 105, + 101, + 108, + 105, + 106, + 115, + 116, + 80, + 114, + 111, + 99, + 101, + 115, + 116, + 121, + 112, + 101, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 115, + 58, + 92, + 47, + 92, + 47, + 115, + 101, + 108, + 101, + 99, + 116, + 105, + 101, + 108, + 105, + 106, + 115, + 116, + 46, + 111, + 112, + 101, + 110, + 122, + 97, + 97, + 107, + 46, + 110, + 108, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 118, + 49, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 121, + 112, + 101, + 110, + 92, + 47, + 56, + 51, + 56, + 101, + 52, + 48, + 53, + 97, + 45, + 57, + 98, + 49, + 50, + 45, + 52, + 51, + 99, + 52, + 45, + 97, + 57, + 56, + 53, + 45, + 100, + 55, + 97, + 55, + 52, + 57, + 48, + 100, + 52, + 50, + 50, + 101, + 34, + 44, + 34, + 114, + 101, + 102, + 101, + 114, + 101, + 110, + 116, + 105, + 101, + 112, + 114, + 111, + 99, + 101, + 115, + 34, + 58, + 123, + 34, + 108, + 105, + 110, + 107, + 34, + 58, + 34, + 34, + 44, + 34, + 110, + 97, + 97, + 109, + 34, + 58, + 34, + 116, + 101, + 115, + 116, + 34, + 125, + 44, + 34, + 118, + 101, + 114, + 97, + 110, + 116, + 119, + 111, + 111, + 114, + 100, + 101, + 108, + 105, + 106, + 107, + 101, + 34, + 58, + 34, + 88, + 34, + 44, + 34, + 103, + 101, + 114, + 101, + 108, + 97, + 116, + 101, + 101, + 114, + 100, + 101, + 90, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 98, + 101, + 115, + 108, + 117, + 105, + 116, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 105, + 110, + 102, + 111, + 114, + 109, + 97, + 116, + 105, + 101, + 111, + 98, + 106, + 101, + 99, + 116, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 100, + 101, + 101, + 108, + 122, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 116, + 111, + 101, + 108, + 105, + 99, + 104, + 116, + 105, + 110, + 103, + 34, + 58, + 34, + 34, + 44, + 34, + 118, + 101, + 114, + 115, + 105, + 101, + 100, + 97, + 116, + 117, + 109, + 34, + 58, + 34, + 50, + 48, + 49, + 57, + 45, + 48, + 49, + 45, + 48, + 49, + 34, + 125 + ] + }, + "cookie": [], + "responseTime": 160, + "responseSize": 1278 + }, + "id": "e9c95663-e8d4-4212-a130-c140b054c9ba" + }, + { + "cursor": { + "ref": "b9fcfe86-87f9-415f-9dbc-26b61f18a05c", + "length": 313, + "cycles": 1, + "position": 219, + "iteration": 0, + "httpRequestId": "f27a7d35-0860-4cea-84e2-c89616e71446" + }, + "item": { + "id": "17d3a242-3800-49e0-873f-e62575c1b8c5", + "name": "Create Hoofdzaak", + "request": { + "url": { + "path": [ + "zaken" + ], + "host": [ + "{{zrc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Accept-Crs", + "value": "EPSG:4326" + }, + { + "key": "Content-Crs", + "value": "EPSG:4326" + }, + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\r\n \"bronorganisatie\": \"000000000\",\r\n \"omschrijving\": \"string\",\r\n \"toelichting\": \"string\",\r\n \"zaaktype\": \"{{hoofdzaaktype_url}}\",\r\n \"registratiedatum\": \"2019-04-09\",\r\n \"verantwoordelijkeOrganisatie\": \"000000000\",\r\n \"startdatum\": \"2019-04-09\",\r\n \"einddatum\": null,\r\n \"einddatumGepland\": \"2019-04-20\",\r\n \"uiterlijkeEinddatumAfdoening\": \"2019-04-09\",\r\n \"publicatiedatum\": \"2019-04-09\",\r\n \"communicatiekanaal\": \"\",\r\n \"productenOfDiensten\": [],\r\n \"vertrouwelijkheidaanduiding\": \"geheim\",\r\n \"betalingsindicatie\": \"geheel\",\r\n \"betalingsindicatieWeergave\": null,\r\n \"laatsteBetaaldatum\": \"2019-01-01T00:00:00Z\",\r\n \"zaakgeometrie\": {\r\n \"type\": \"Point\",\r\n \"coordinates\": [\r\n 53.0,\r\n 5.0\r\n ]\r\n },\r\n \"verlenging\": null,\r\n \"opschorting\": null,\r\n \"selectielijstklasse\": \"https://referentielijsten.roxit.nl/api/v1/resultaten/0fe71ce3-b1e1-48eb-9070-be2756fc71b5\",\r\n \"hoofdzaak\": null,\r\n \"deelzaken\": [],\r\n \"relevanteAndereZaken\": [],\r\n \"eigenschappen\": [],\r\n \"rollen\": [],\r\n \"status\": null,\r\n \"zaakinformatieobjecten\": [],\r\n \"zaakobjecten\": [],\r\n \"resultaat\": null,\r\n \"kenmerken\": [],\r\n \"archiefnominatie\": null,\r\n \"archiefstatus\": \"nog_te_archiveren\",\r\n \"archiefactiedatum\": null,\r\n \"opdrachtgevendeOrganisatie\": null,\r\n \"processobjectaard\": null,\r\n \"startdatumBewaartermijn\": null,\r\n \"processobject\": null\r\n}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "084425f5-0813-45bd-a155-6db6a4593784", + "type": "text/javascript", + "packages": {}, + "exec": [ + "pm.environment.set(\"hoofdzaak_url\", pm.response.json().url);" + ], + "_lastExecutionId": "7531b24a-2012-4f8c-9486-159aedd5c2b2" + } + }, + { + "listen": "prerequest", + "script": { + "id": "6033e19d-bf71-4abb-9e13-d4ef2ae1a338", + "type": "text/javascript", + "packages": {}, + "exec": [ + "" + ], + "_lastExecutionId": "21e690a5-075c-4307-a7e0-a7489363ca1e" + } + } + ] + }, + "request": { + "url": { + "protocol": "http", + "port": "8080", + "path": [ + "index.php", + "apps", + "procest", + "api", + "zgw", + "zaken", + "v1", + "zaken" + ], + "host": [ + "localhost" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Accept-Crs", + "value": "EPSG:4326" + }, + { + "key": "Content-Crs", + "value": "EPSG:4326" + }, + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Authorization", + "value": "Bearer eyJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJwcm9jZXN0LWFkbWluIiwiY2xpZW50X2lkIjoicHJvY2VzdC1hZG1pbiIsImlhdCI6IjE3NzMxNDUxOTUiLCJ1c2VyX2lkIjoicHJvY2VzdC1hZG1pbiIsInVzZXJfcmVwcmVzZW50YXRpb24iOiIifQ.Bm6ArnSMLX4U_A9lMxwo5yWIvTtf_JZ3a6qLfPORbY0", + "system": true + }, + { + "key": "User-Agent", + "value": "PostmanRuntime/7.39.1", + "system": true + }, + { + "key": "Accept", + "value": "*/*", + "system": true + }, + { + "key": "Cache-Control", + "value": "no-cache", + "system": true + }, + { + "key": "Postman-Token", + "value": "b359a590-b941-426f-b85b-4b1a3e88d288", + "system": true + }, + { + "key": "Host", + "value": "localhost:8080", + "system": true + }, + { + "key": "Accept-Encoding", + "value": "gzip, deflate, br", + "system": true + }, + { + "key": "Connection", + "value": "keep-alive", + "system": true + }, + { + "key": "Content-Length", + "value": "1544", + "system": true + }, + { + "key": "Cookie", + "value": "ocvp3112b4wg=6a6c3237899eafcaf5eddf95fc08e7bb; oc_sessionPassphrase=LBNdKxRzA0iqoULIruNxDDh2BK3O%2BrCIU8aUmiUcOFvy5Xw1YfjwQNlmBW2IkGwJYtxXh9%2BwDN6vYuGNX07tXzkBtjQJUWTGdzf8AIOUIVxVx5DfyWAQZ7nmYmQv6XSE; nc_sameSiteCookielax=true; nc_sameSiteCookiestrict=true", + "system": true + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\r\n \"bronorganisatie\": \"000000000\",\r\n \"omschrijving\": \"string\",\r\n \"toelichting\": \"string\",\r\n \"zaaktype\": \"http://localhost:8080/index.php/apps/procest/api/zgw/catalogi/v1/zaaktypen/41e3343c-4524-4223-a1cb-9616391a846f\",\r\n \"registratiedatum\": \"2019-04-09\",\r\n \"verantwoordelijkeOrganisatie\": \"000000000\",\r\n \"startdatum\": \"2019-04-09\",\r\n \"einddatum\": null,\r\n \"einddatumGepland\": \"2019-04-20\",\r\n \"uiterlijkeEinddatumAfdoening\": \"2019-04-09\",\r\n \"publicatiedatum\": \"2019-04-09\",\r\n \"communicatiekanaal\": \"\",\r\n \"productenOfDiensten\": [],\r\n \"vertrouwelijkheidaanduiding\": \"geheim\",\r\n \"betalingsindicatie\": \"geheel\",\r\n \"betalingsindicatieWeergave\": null,\r\n \"laatsteBetaaldatum\": \"2019-01-01T00:00:00Z\",\r\n \"zaakgeometrie\": {\r\n \"type\": \"Point\",\r\n \"coordinates\": [\r\n 53.0,\r\n 5.0\r\n ]\r\n },\r\n \"verlenging\": null,\r\n \"opschorting\": null,\r\n \"selectielijstklasse\": \"https://referentielijsten.roxit.nl/api/v1/resultaten/0fe71ce3-b1e1-48eb-9070-be2756fc71b5\",\r\n \"hoofdzaak\": null,\r\n \"deelzaken\": [],\r\n \"relevanteAndereZaken\": [],\r\n \"eigenschappen\": [],\r\n \"rollen\": [],\r\n \"status\": null,\r\n \"zaakinformatieobjecten\": [],\r\n \"zaakobjecten\": [],\r\n \"resultaat\": null,\r\n \"kenmerken\": [],\r\n \"archiefnominatie\": null,\r\n \"archiefstatus\": \"nog_te_archiveren\",\r\n \"archiefactiedatum\": null,\r\n \"opdrachtgevendeOrganisatie\": null,\r\n \"processobjectaard\": null,\r\n \"startdatumBewaartermijn\": null,\r\n \"processobject\": null\r\n}" + }, + "auth": { + "type": "jwt", + "jwt": [ + { + "type": "string", + "value": "{\r\n \"iss\": \"procest-admin\",\r\n \"client_id\": \"procest-admin\",\r\n \"iat\": \"1773145195\",\r\n \"user_id\": \"procest-admin\",\r\n \"user_representation\": \"\"\r\n}", + "key": "payload" + }, + { + "type": "string", + "value": "procest-admin-secret-key-for-testing", + "key": "secret" + }, + { + "type": "string", + "value": "HS256", + "key": "algorithm" + }, + { + "type": "boolean", + "value": false, + "key": "isSecretBase64Encoded" + }, + { + "type": "string", + "value": "header", + "key": "addTokenTo" + }, + { + "type": "string", + "value": "Bearer", + "key": "headerPrefix" + }, + { + "type": "string", + "value": "token", + "key": "queryParamKey" + }, + { + "type": "string", + "value": "{}", + "key": "header" + } + ] + } + }, + "response": { + "id": "6d820974-8fc4-4960-a3c2-9ce648938911", + "status": "Created", + "code": 201, + "header": [ + { + "key": "Date", + "value": "Tue, 10 Mar 2026 12:19:55 GMT" + }, + { + "key": "Server", + "value": "Apache/2.4.66 (Debian)" + }, + { + "key": "X-Content-Type-Options", + "value": "nosniff" + }, + { + "key": "X-Frame-Options", + "value": "SAMEORIGIN" + }, + { + "key": "X-Permitted-Cross-Domain-Policies", + "value": "none" + }, + { + "key": "X-Robots-Tag", + "value": "noindex, nofollow" + }, + { + "key": "Referrer-Policy", + "value": "no-referrer" + }, + { + "key": "X-Powered-By", + "value": "PHP/8.3.30" + }, + { + "key": "Content-Security-Policy", + "value": "default-src 'none';base-uri 'none';manifest-src 'self';frame-ancestors 'none'" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=6a6c3237899eafcaf5eddf95fc08e7bb; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=6a6c3237899eafcaf5eddf95fc08e7bb; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=6a6c3237899eafcaf5eddf95fc08e7bb; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=6a6c3237899eafcaf5eddf95fc08e7bb; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=6a6c3237899eafcaf5eddf95fc08e7bb; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=429d2de37c7c0ae6faa10fb4d842b3cf; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=429d2de37c7c0ae6faa10fb4d842b3cf; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=429d2de37c7c0ae6faa10fb4d842b3cf; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=429d2de37c7c0ae6faa10fb4d842b3cf; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=429d2de37c7c0ae6faa10fb4d842b3cf; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "X-Request-Id", + "value": "N6TkXNKmNfH01pQQWOFe" + }, + { + "key": "Cache-Control", + "value": "no-cache, no-store, must-revalidate" + }, + { + "key": "Feature-Policy", + "value": "autoplay 'none';camera 'none';fullscreen 'none';geolocation 'none';microphone 'none';payment 'none'" + }, + { + "key": "X-User-Id", + "value": "admin" + }, + { + "key": "Content-Length", + "value": "805" + }, + { + "key": "Keep-Alive", + "value": "timeout=5, max=95" + }, + { + "key": "Connection", + "value": "Keep-Alive" + }, + { + "key": "Content-Type", + "value": "application/json; charset=utf-8" + } + ], + "stream": { + "type": "Buffer", + "data": [ + 123, + 34, + 117, + 114, + 108, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 122, + 97, + 107, + 101, + 110, + 92, + 47, + 118, + 49, + 92, + 47, + 122, + 97, + 107, + 101, + 110, + 92, + 47, + 55, + 54, + 54, + 101, + 98, + 50, + 57, + 49, + 45, + 100, + 57, + 56, + 101, + 45, + 52, + 52, + 102, + 98, + 45, + 57, + 51, + 98, + 52, + 45, + 57, + 50, + 49, + 101, + 102, + 99, + 53, + 102, + 50, + 53, + 100, + 50, + 34, + 44, + 34, + 117, + 117, + 105, + 100, + 34, + 58, + 34, + 55, + 54, + 54, + 101, + 98, + 50, + 57, + 49, + 45, + 100, + 57, + 56, + 101, + 45, + 52, + 52, + 102, + 98, + 45, + 57, + 51, + 98, + 52, + 45, + 57, + 50, + 49, + 101, + 102, + 99, + 53, + 102, + 50, + 53, + 100, + 50, + 34, + 44, + 34, + 105, + 100, + 101, + 110, + 116, + 105, + 102, + 105, + 99, + 97, + 116, + 105, + 101, + 34, + 58, + 34, + 90, + 65, + 65, + 75, + 45, + 84, + 66, + 79, + 78, + 76, + 55, + 45, + 68, + 50, + 51, + 51, + 69, + 65, + 34, + 44, + 34, + 111, + 109, + 115, + 99, + 104, + 114, + 105, + 106, + 118, + 105, + 110, + 103, + 34, + 58, + 34, + 115, + 116, + 114, + 105, + 110, + 103, + 34, + 44, + 34, + 116, + 111, + 101, + 108, + 105, + 99, + 104, + 116, + 105, + 110, + 103, + 34, + 58, + 34, + 115, + 116, + 114, + 105, + 110, + 103, + 34, + 44, + 34, + 122, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 105, + 92, + 47, + 118, + 49, + 92, + 47, + 122, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 110, + 92, + 47, + 52, + 49, + 101, + 51, + 51, + 52, + 51, + 99, + 45, + 52, + 53, + 50, + 52, + 45, + 52, + 50, + 50, + 51, + 45, + 97, + 49, + 99, + 98, + 45, + 57, + 54, + 49, + 54, + 51, + 57, + 49, + 97, + 56, + 52, + 54, + 102, + 34, + 44, + 34, + 114, + 101, + 103, + 105, + 115, + 116, + 114, + 97, + 116, + 105, + 101, + 100, + 97, + 116, + 117, + 109, + 34, + 58, + 34, + 50, + 48, + 50, + 54, + 45, + 48, + 51, + 45, + 49, + 48, + 84, + 49, + 50, + 58, + 49, + 57, + 58, + 53, + 53, + 43, + 48, + 48, + 58, + 48, + 48, + 34, + 44, + 34, + 115, + 116, + 97, + 114, + 116, + 100, + 97, + 116, + 117, + 109, + 34, + 58, + 34, + 50, + 48, + 49, + 57, + 45, + 48, + 52, + 45, + 48, + 57, + 34, + 44, + 34, + 101, + 105, + 110, + 100, + 100, + 97, + 116, + 117, + 109, + 34, + 58, + 110, + 117, + 108, + 108, + 44, + 34, + 101, + 105, + 110, + 100, + 100, + 97, + 116, + 117, + 109, + 71, + 101, + 112, + 108, + 97, + 110, + 100, + 34, + 58, + 34, + 50, + 48, + 49, + 57, + 45, + 48, + 52, + 45, + 50, + 48, + 34, + 44, + 34, + 117, + 105, + 116, + 101, + 114, + 108, + 105, + 106, + 107, + 101, + 69, + 105, + 110, + 100, + 100, + 97, + 116, + 117, + 109, + 65, + 102, + 100, + 111, + 101, + 110, + 105, + 110, + 103, + 34, + 58, + 34, + 50, + 48, + 49, + 57, + 45, + 48, + 52, + 45, + 48, + 57, + 34, + 44, + 34, + 118, + 101, + 114, + 116, + 114, + 111, + 117, + 119, + 101, + 108, + 105, + 106, + 107, + 104, + 101, + 105, + 100, + 97, + 97, + 110, + 100, + 117, + 105, + 100, + 105, + 110, + 103, + 34, + 58, + 34, + 103, + 101, + 104, + 101, + 105, + 109, + 34, + 44, + 34, + 118, + 101, + 114, + 97, + 110, + 116, + 119, + 111, + 111, + 114, + 100, + 101, + 108, + 105, + 106, + 107, + 101, + 79, + 114, + 103, + 97, + 110, + 105, + 115, + 97, + 116, + 105, + 101, + 34, + 58, + 34, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 34, + 44, + 34, + 97, + 114, + 99, + 104, + 105, + 101, + 102, + 110, + 111, + 109, + 105, + 110, + 97, + 116, + 105, + 101, + 34, + 58, + 110, + 117, + 108, + 108, + 44, + 34, + 97, + 114, + 99, + 104, + 105, + 101, + 102, + 97, + 99, + 116, + 105, + 101, + 100, + 97, + 116, + 117, + 109, + 34, + 58, + 110, + 117, + 108, + 108, + 44, + 34, + 97, + 114, + 99, + 104, + 105, + 101, + 102, + 115, + 116, + 97, + 116, + 117, + 115, + 34, + 58, + 34, + 110, + 111, + 103, + 95, + 116, + 101, + 95, + 97, + 114, + 99, + 104, + 105, + 118, + 101, + 114, + 101, + 110, + 34, + 44, + 34, + 98, + 101, + 116, + 97, + 108, + 105, + 110, + 103, + 115, + 105, + 110, + 100, + 105, + 99, + 97, + 116, + 105, + 101, + 34, + 58, + 34, + 103, + 101, + 104, + 101, + 101, + 108, + 34, + 44, + 34, + 108, + 97, + 97, + 116, + 115, + 116, + 101, + 66, + 101, + 116, + 97, + 97, + 108, + 100, + 97, + 116, + 117, + 109, + 34, + 58, + 34, + 50, + 48, + 49, + 57, + 45, + 48, + 49, + 45, + 48, + 49, + 34, + 44, + 34, + 104, + 111, + 111, + 102, + 100, + 122, + 97, + 97, + 107, + 34, + 58, + 110, + 117, + 108, + 108, + 125 + ] + }, + "cookie": [], + "responseTime": 223, + "responseSize": 805 + }, + "id": "17d3a242-3800-49e0-873f-e62575c1b8c5" + }, + { + "cursor": { + "ref": "2fa3ffb7-dc67-4a04-9bec-3ed091185e7e", + "length": 313, + "cycles": 1, + "position": 220, + "iteration": 0, + "httpRequestId": "40ea15ad-bff5-4ed4-9ffe-57ab5dfecfae" + }, + "item": { + "id": "de991733-3757-4a5f-9313-bf7add7da434", + "name": "Create Zaak met vast te leggen datum", + "request": { + "url": { + "path": [ + "zaken" + ], + "host": [ + "{{zrc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Accept-Crs", + "value": "EPSG:4326" + }, + { + "key": "Content-Crs", + "value": "EPSG:4326" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\r\n \"bronorganisatie\": \"000000000\",\r\n \"omschrijving\": \"string\",\r\n \"toelichting\": \"string\",\r\n \"zaaktype\": \"{{zaaktype_procestermijn_vast_te_leggen_datum_url}}\",\r\n \"registratiedatum\": \"2019-04-09\",\r\n \"verantwoordelijkeOrganisatie\": \"000000000\",\r\n \"startdatum\": \"2019-04-09\",\r\n \"einddatum\": null,\r\n \"einddatumGepland\": \"2019-04-20\",\r\n \"uiterlijkeEinddatumAfdoening\": \"2019-04-09\",\r\n \"publicatiedatum\": \"2019-04-09\",\r\n \"communicatiekanaal\": \"\",\r\n \"productenOfDiensten\": [],\r\n \"vertrouwelijkheidaanduiding\": \"geheim\",\r\n \"betalingsindicatie\": \"geheel\",\r\n \"betalingsindicatieWeergave\": null,\r\n \"laatsteBetaaldatum\": \"2019-01-01T00:00:00Z\",\r\n \"zaakgeometrie\": {\r\n \"type\": \"Point\",\r\n \"coordinates\": [\r\n 53.0,\r\n 5.0\r\n ]\r\n },\r\n \"verlenging\": null,\r\n \"opschorting\": null,\r\n \"selectielijstklasse\": \"https://referentielijsten.roxit.nl/api/v1/resultaten/0fe71ce3-b1e1-48eb-9070-be2756fc71b5\",\r\n \"hoofdzaak\": null,\r\n \"deelzaken\": [],\r\n \"relevanteAndereZaken\": [],\r\n \"eigenschappen\": [],\r\n \"rollen\": [],\r\n \"status\": null,\r\n \"zaakinformatieobjecten\": [],\r\n \"zaakobjecten\": [],\r\n \"resultaat\": null,\r\n \"kenmerken\": [],\r\n \"archiefnominatie\": null,\r\n \"archiefstatus\": \"nog_te_archiveren\",\r\n \"archiefactiedatum\": null,\r\n \"opdrachtgevendeOrganisatie\": null,\r\n \"processobjectaard\": null,\r\n \"startdatumBewaartermijn\": null,\r\n \"processobject\": null\r\n}" + } + }, + "response": [], + "event": [ + { + "listen": "prerequest", + "script": { + "id": "25166d60-bdeb-4f99-9052-ddf71f2b1ffc", + "type": "text/javascript", + "packages": {}, + "exec": [ + "" + ], + "_lastExecutionId": "b52347b1-2efa-4fc2-9076-7184ab67e390" + } + }, + { + "listen": "test", + "script": { + "id": "2d2768bf-a421-4a64-b2e5-cad877d32144", + "type": "text/javascript", + "packages": {}, + "exec": [ + "pm.environment.set(\"zaak_met_vast_te_leggen_datum\", pm.response.json().url);" + ], + "_lastExecutionId": "5489f5a5-a576-49eb-9276-57ac16d35322" + } + } + ] + }, + "request": { + "url": { + "protocol": "http", + "port": "8080", + "path": [ + "index.php", + "apps", + "procest", + "api", + "zgw", + "zaken", + "v1", + "zaken" + ], + "host": [ + "localhost" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Accept-Crs", + "value": "EPSG:4326" + }, + { + "key": "Content-Crs", + "value": "EPSG:4326" + }, + { + "key": "Authorization", + "value": "Bearer eyJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJwcm9jZXN0LWFkbWluIiwiY2xpZW50X2lkIjoicHJvY2VzdC1hZG1pbiIsImlhdCI6IjE3NzMxNDUxOTYiLCJ1c2VyX2lkIjoicHJvY2VzdC1hZG1pbiIsInVzZXJfcmVwcmVzZW50YXRpb24iOiIifQ.M-pFfP1nIWNxsbefV5znTkSo3-55fuORcOiaGSIF12o", + "system": true + }, + { + "key": "User-Agent", + "value": "PostmanRuntime/7.39.1", + "system": true + }, + { + "key": "Accept", + "value": "*/*", + "system": true + }, + { + "key": "Cache-Control", + "value": "no-cache", + "system": true + }, + { + "key": "Postman-Token", + "value": "541d6f8c-c463-47db-b32a-bd8f339c9035", + "system": true + }, + { + "key": "Host", + "value": "localhost:8080", + "system": true + }, + { + "key": "Accept-Encoding", + "value": "gzip, deflate, br", + "system": true + }, + { + "key": "Connection", + "value": "keep-alive", + "system": true + }, + { + "key": "Content-Length", + "value": "1544", + "system": true + }, + { + "key": "Cookie", + "value": "ocvp3112b4wg=429d2de37c7c0ae6faa10fb4d842b3cf; oc_sessionPassphrase=LBNdKxRzA0iqoULIruNxDDh2BK3O%2BrCIU8aUmiUcOFvy5Xw1YfjwQNlmBW2IkGwJYtxXh9%2BwDN6vYuGNX07tXzkBtjQJUWTGdzf8AIOUIVxVx5DfyWAQZ7nmYmQv6XSE; nc_sameSiteCookielax=true; nc_sameSiteCookiestrict=true", + "system": true + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\r\n \"bronorganisatie\": \"000000000\",\r\n \"omschrijving\": \"string\",\r\n \"toelichting\": \"string\",\r\n \"zaaktype\": \"http://localhost:8080/index.php/apps/procest/api/zgw/catalogi/v1/zaaktypen/032cd9e2-812a-4643-8290-b15ae14e1b79\",\r\n \"registratiedatum\": \"2019-04-09\",\r\n \"verantwoordelijkeOrganisatie\": \"000000000\",\r\n \"startdatum\": \"2019-04-09\",\r\n \"einddatum\": null,\r\n \"einddatumGepland\": \"2019-04-20\",\r\n \"uiterlijkeEinddatumAfdoening\": \"2019-04-09\",\r\n \"publicatiedatum\": \"2019-04-09\",\r\n \"communicatiekanaal\": \"\",\r\n \"productenOfDiensten\": [],\r\n \"vertrouwelijkheidaanduiding\": \"geheim\",\r\n \"betalingsindicatie\": \"geheel\",\r\n \"betalingsindicatieWeergave\": null,\r\n \"laatsteBetaaldatum\": \"2019-01-01T00:00:00Z\",\r\n \"zaakgeometrie\": {\r\n \"type\": \"Point\",\r\n \"coordinates\": [\r\n 53.0,\r\n 5.0\r\n ]\r\n },\r\n \"verlenging\": null,\r\n \"opschorting\": null,\r\n \"selectielijstklasse\": \"https://referentielijsten.roxit.nl/api/v1/resultaten/0fe71ce3-b1e1-48eb-9070-be2756fc71b5\",\r\n \"hoofdzaak\": null,\r\n \"deelzaken\": [],\r\n \"relevanteAndereZaken\": [],\r\n \"eigenschappen\": [],\r\n \"rollen\": [],\r\n \"status\": null,\r\n \"zaakinformatieobjecten\": [],\r\n \"zaakobjecten\": [],\r\n \"resultaat\": null,\r\n \"kenmerken\": [],\r\n \"archiefnominatie\": null,\r\n \"archiefstatus\": \"nog_te_archiveren\",\r\n \"archiefactiedatum\": null,\r\n \"opdrachtgevendeOrganisatie\": null,\r\n \"processobjectaard\": null,\r\n \"startdatumBewaartermijn\": null,\r\n \"processobject\": null\r\n}" + }, + "auth": { + "type": "jwt", + "jwt": [ + { + "type": "string", + "value": "{\r\n \"iss\": \"procest-admin\",\r\n \"client_id\": \"procest-admin\",\r\n \"iat\": \"1773145196\",\r\n \"user_id\": \"procest-admin\",\r\n \"user_representation\": \"\"\r\n}", + "key": "payload" + }, + { + "type": "string", + "value": "procest-admin-secret-key-for-testing", + "key": "secret" + }, + { + "type": "string", + "value": "HS256", + "key": "algorithm" + }, + { + "type": "boolean", + "value": false, + "key": "isSecretBase64Encoded" + }, + { + "type": "string", + "value": "header", + "key": "addTokenTo" + }, + { + "type": "string", + "value": "Bearer", + "key": "headerPrefix" + }, + { + "type": "string", + "value": "token", + "key": "queryParamKey" + }, + { + "type": "string", + "value": "{}", + "key": "header" + } + ] + } + }, + "response": { + "id": "34882f17-7984-41cd-ac4b-8fe92f9a7edb", + "status": "Created", + "code": 201, + "header": [ + { + "key": "Date", + "value": "Tue, 10 Mar 2026 12:19:55 GMT" + }, + { + "key": "Server", + "value": "Apache/2.4.66 (Debian)" + }, + { + "key": "X-Content-Type-Options", + "value": "nosniff" + }, + { + "key": "X-Frame-Options", + "value": "SAMEORIGIN" + }, + { + "key": "X-Permitted-Cross-Domain-Policies", + "value": "none" + }, + { + "key": "X-Robots-Tag", + "value": "noindex, nofollow" + }, + { + "key": "Referrer-Policy", + "value": "no-referrer" + }, + { + "key": "X-Powered-By", + "value": "PHP/8.3.30" + }, + { + "key": "Content-Security-Policy", + "value": "default-src 'none';base-uri 'none';manifest-src 'self';frame-ancestors 'none'" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=429d2de37c7c0ae6faa10fb4d842b3cf; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=429d2de37c7c0ae6faa10fb4d842b3cf; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=429d2de37c7c0ae6faa10fb4d842b3cf; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=429d2de37c7c0ae6faa10fb4d842b3cf; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=429d2de37c7c0ae6faa10fb4d842b3cf; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=f5ead8c3bba0405d82a50ae6b45ee368; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=f5ead8c3bba0405d82a50ae6b45ee368; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=f5ead8c3bba0405d82a50ae6b45ee368; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=f5ead8c3bba0405d82a50ae6b45ee368; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=f5ead8c3bba0405d82a50ae6b45ee368; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "X-Request-Id", + "value": "vrCZxubrWFkEjLEfZvyH" + }, + { + "key": "Cache-Control", + "value": "no-cache, no-store, must-revalidate" + }, + { + "key": "Feature-Policy", + "value": "autoplay 'none';camera 'none';fullscreen 'none';geolocation 'none';microphone 'none';payment 'none'" + }, + { + "key": "X-User-Id", + "value": "admin" + }, + { + "key": "Content-Length", + "value": "805" + }, + { + "key": "Keep-Alive", + "value": "timeout=5, max=94" + }, + { + "key": "Connection", + "value": "Keep-Alive" + }, + { + "key": "Content-Type", + "value": "application/json; charset=utf-8" + } + ], + "stream": { + "type": "Buffer", + "data": [ + 123, + 34, + 117, + 114, + 108, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 122, + 97, + 107, + 101, + 110, + 92, + 47, + 118, + 49, + 92, + 47, + 122, + 97, + 107, + 101, + 110, + 92, + 47, + 49, + 57, + 97, + 52, + 57, + 102, + 50, + 55, + 45, + 97, + 57, + 48, + 54, + 45, + 52, + 51, + 52, + 102, + 45, + 57, + 97, + 52, + 48, + 45, + 53, + 101, + 98, + 56, + 97, + 99, + 100, + 56, + 55, + 52, + 55, + 102, + 34, + 44, + 34, + 117, + 117, + 105, + 100, + 34, + 58, + 34, + 49, + 57, + 97, + 52, + 57, + 102, + 50, + 55, + 45, + 97, + 57, + 48, + 54, + 45, + 52, + 51, + 52, + 102, + 45, + 57, + 97, + 52, + 48, + 45, + 53, + 101, + 98, + 56, + 97, + 99, + 100, + 56, + 55, + 52, + 55, + 102, + 34, + 44, + 34, + 105, + 100, + 101, + 110, + 116, + 105, + 102, + 105, + 99, + 97, + 116, + 105, + 101, + 34, + 58, + 34, + 90, + 65, + 65, + 75, + 45, + 84, + 66, + 79, + 78, + 76, + 55, + 45, + 54, + 53, + 52, + 53, + 48, + 49, + 34, + 44, + 34, + 111, + 109, + 115, + 99, + 104, + 114, + 105, + 106, + 118, + 105, + 110, + 103, + 34, + 58, + 34, + 115, + 116, + 114, + 105, + 110, + 103, + 34, + 44, + 34, + 116, + 111, + 101, + 108, + 105, + 99, + 104, + 116, + 105, + 110, + 103, + 34, + 58, + 34, + 115, + 116, + 114, + 105, + 110, + 103, + 34, + 44, + 34, + 122, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 105, + 92, + 47, + 118, + 49, + 92, + 47, + 122, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 110, + 92, + 47, + 48, + 51, + 50, + 99, + 100, + 57, + 101, + 50, + 45, + 56, + 49, + 50, + 97, + 45, + 52, + 54, + 52, + 51, + 45, + 56, + 50, + 57, + 48, + 45, + 98, + 49, + 53, + 97, + 101, + 49, + 52, + 101, + 49, + 98, + 55, + 57, + 34, + 44, + 34, + 114, + 101, + 103, + 105, + 115, + 116, + 114, + 97, + 116, + 105, + 101, + 100, + 97, + 116, + 117, + 109, + 34, + 58, + 34, + 50, + 48, + 50, + 54, + 45, + 48, + 51, + 45, + 49, + 48, + 84, + 49, + 50, + 58, + 49, + 57, + 58, + 53, + 53, + 43, + 48, + 48, + 58, + 48, + 48, + 34, + 44, + 34, + 115, + 116, + 97, + 114, + 116, + 100, + 97, + 116, + 117, + 109, + 34, + 58, + 34, + 50, + 48, + 49, + 57, + 45, + 48, + 52, + 45, + 48, + 57, + 34, + 44, + 34, + 101, + 105, + 110, + 100, + 100, + 97, + 116, + 117, + 109, + 34, + 58, + 110, + 117, + 108, + 108, + 44, + 34, + 101, + 105, + 110, + 100, + 100, + 97, + 116, + 117, + 109, + 71, + 101, + 112, + 108, + 97, + 110, + 100, + 34, + 58, + 34, + 50, + 48, + 49, + 57, + 45, + 48, + 52, + 45, + 50, + 48, + 34, + 44, + 34, + 117, + 105, + 116, + 101, + 114, + 108, + 105, + 106, + 107, + 101, + 69, + 105, + 110, + 100, + 100, + 97, + 116, + 117, + 109, + 65, + 102, + 100, + 111, + 101, + 110, + 105, + 110, + 103, + 34, + 58, + 34, + 50, + 48, + 49, + 57, + 45, + 48, + 52, + 45, + 48, + 57, + 34, + 44, + 34, + 118, + 101, + 114, + 116, + 114, + 111, + 117, + 119, + 101, + 108, + 105, + 106, + 107, + 104, + 101, + 105, + 100, + 97, + 97, + 110, + 100, + 117, + 105, + 100, + 105, + 110, + 103, + 34, + 58, + 34, + 103, + 101, + 104, + 101, + 105, + 109, + 34, + 44, + 34, + 118, + 101, + 114, + 97, + 110, + 116, + 119, + 111, + 111, + 114, + 100, + 101, + 108, + 105, + 106, + 107, + 101, + 79, + 114, + 103, + 97, + 110, + 105, + 115, + 97, + 116, + 105, + 101, + 34, + 58, + 34, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 34, + 44, + 34, + 97, + 114, + 99, + 104, + 105, + 101, + 102, + 110, + 111, + 109, + 105, + 110, + 97, + 116, + 105, + 101, + 34, + 58, + 110, + 117, + 108, + 108, + 44, + 34, + 97, + 114, + 99, + 104, + 105, + 101, + 102, + 97, + 99, + 116, + 105, + 101, + 100, + 97, + 116, + 117, + 109, + 34, + 58, + 110, + 117, + 108, + 108, + 44, + 34, + 97, + 114, + 99, + 104, + 105, + 101, + 102, + 115, + 116, + 97, + 116, + 117, + 115, + 34, + 58, + 34, + 110, + 111, + 103, + 95, + 116, + 101, + 95, + 97, + 114, + 99, + 104, + 105, + 118, + 101, + 114, + 101, + 110, + 34, + 44, + 34, + 98, + 101, + 116, + 97, + 108, + 105, + 110, + 103, + 115, + 105, + 110, + 100, + 105, + 99, + 97, + 116, + 105, + 101, + 34, + 58, + 34, + 103, + 101, + 104, + 101, + 101, + 108, + 34, + 44, + 34, + 108, + 97, + 97, + 116, + 115, + 116, + 101, + 66, + 101, + 116, + 97, + 97, + 108, + 100, + 97, + 116, + 117, + 109, + 34, + 58, + 34, + 50, + 48, + 49, + 57, + 45, + 48, + 49, + 45, + 48, + 49, + 34, + 44, + 34, + 104, + 111, + 111, + 102, + 100, + 122, + 97, + 97, + 107, + 34, + 58, + 110, + 117, + 108, + 108, + 125 + ] + }, + "cookie": [], + "responseTime": 257, + "responseSize": 805 + }, + "id": "de991733-3757-4a5f-9313-bf7add7da434" + }, + { + "cursor": { + "ref": "fff8dbe2-ceb3-42c7-84d1-e4dbc3528f58", + "length": 313, + "cycles": 1, + "position": 221, + "iteration": 0, + "httpRequestId": "48938a63-96b6-42b7-9785-ab8f646c522d" + }, + "item": { + "id": "b1092ffd-12a6-4069-aa11-f2a02b79ad76", + "name": "Add Resultaat to Hoofdzaak", + "request": { + "url": { + "path": [ + "resultaten" + ], + "host": [ + "{{zrc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n\t\"zaak\": \"{{hoofdzaak_url}}\",\n\t\"resultaattype\": \"{{resultaattype}}\"\n}" + } + }, + "response": [], + "event": [ + { + "listen": "prerequest", + "script": { + "id": "b4933627-0ef4-47b8-8ae3-b459f84f4dc2", + "type": "text/javascript", + "exec": [ + "pm.environment.set(\"resultaattype\", pm.environment.get(\"resultaattype_for_hoofdzaaktype_url\"));" + ], + "_lastExecutionId": "b16e0609-a261-41aa-bcdb-142edab31779" + } + }, + { + "listen": "test", + "script": { + "id": "92eb5b56-7397-4123-b308-c743e59691d0", + "type": "text/javascript", + "exec": [ + "pm.environment.set(\"hoofdzaak_resultaat_url\", pm.response.json().url);" + ], + "_lastExecutionId": "f5700280-416f-467b-8388-57ff345bc9a1" + } + } + ] + }, + "request": { + "url": { + "protocol": "http", + "port": "8080", + "path": [ + "index.php", + "apps", + "procest", + "api", + "zgw", + "zaken", + "v1", + "resultaten" + ], + "host": [ + "localhost" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Authorization", + "value": "Bearer eyJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJwcm9jZXN0LWFkbWluIiwiY2xpZW50X2lkIjoicHJvY2VzdC1hZG1pbiIsImlhdCI6IjE3NzMxNDUxOTYiLCJ1c2VyX2lkIjoicHJvY2VzdC1hZG1pbiIsInVzZXJfcmVwcmVzZW50YXRpb24iOiIifQ.M-pFfP1nIWNxsbefV5znTkSo3-55fuORcOiaGSIF12o", + "system": true + }, + { + "key": "User-Agent", + "value": "PostmanRuntime/7.39.1", + "system": true + }, + { + "key": "Accept", + "value": "*/*", + "system": true + }, + { + "key": "Cache-Control", + "value": "no-cache", + "system": true + }, + { + "key": "Postman-Token", + "value": "1d6e4ac0-7716-44b2-8481-f6fa46a180be", + "system": true + }, + { + "key": "Host", + "value": "localhost:8080", + "system": true + }, + { + "key": "Accept-Encoding", + "value": "gzip, deflate, br", + "system": true + }, + { + "key": "Connection", + "value": "keep-alive", + "system": true + }, + { + "key": "Content-Length", + "value": "257", + "system": true + }, + { + "key": "Cookie", + "value": "ocvp3112b4wg=f5ead8c3bba0405d82a50ae6b45ee368; oc_sessionPassphrase=LBNdKxRzA0iqoULIruNxDDh2BK3O%2BrCIU8aUmiUcOFvy5Xw1YfjwQNlmBW2IkGwJYtxXh9%2BwDN6vYuGNX07tXzkBtjQJUWTGdzf8AIOUIVxVx5DfyWAQZ7nmYmQv6XSE; nc_sameSiteCookielax=true; nc_sameSiteCookiestrict=true", + "system": true + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n\t\"zaak\": \"http://localhost:8080/index.php/apps/procest/api/zgw/zaken/v1/zaken/766eb291-d98e-44fb-93b4-921efc5f25d2\",\n\t\"resultaattype\": \"http://localhost:8080/index.php/apps/procest/api/zgw/catalogi/v1/resultaattypen/a911db98-a6cf-487c-9596-3af7b71ce37e\"\n}" + }, + "auth": { + "type": "jwt", + "jwt": [ + { + "type": "string", + "value": "{\r\n \"iss\": \"procest-admin\",\r\n \"client_id\": \"procest-admin\",\r\n \"iat\": \"1773145196\",\r\n \"user_id\": \"procest-admin\",\r\n \"user_representation\": \"\"\r\n}", + "key": "payload" + }, + { + "type": "string", + "value": "procest-admin-secret-key-for-testing", + "key": "secret" + }, + { + "type": "string", + "value": "HS256", + "key": "algorithm" + }, + { + "type": "boolean", + "value": false, + "key": "isSecretBase64Encoded" + }, + { + "type": "string", + "value": "header", + "key": "addTokenTo" + }, + { + "type": "string", + "value": "Bearer", + "key": "headerPrefix" + }, + { + "type": "string", + "value": "token", + "key": "queryParamKey" + }, + { + "type": "string", + "value": "{}", + "key": "header" + } + ] + } + }, + "response": { + "id": "26f95194-d7d0-44b1-80f9-7208f55d9440", + "status": "Created", + "code": 201, + "header": [ + { + "key": "Date", + "value": "Tue, 10 Mar 2026 12:19:56 GMT" + }, + { + "key": "Server", + "value": "Apache/2.4.66 (Debian)" + }, + { + "key": "X-Content-Type-Options", + "value": "nosniff" + }, + { + "key": "X-Frame-Options", + "value": "SAMEORIGIN" + }, + { + "key": "X-Permitted-Cross-Domain-Policies", + "value": "none" + }, + { + "key": "X-Robots-Tag", + "value": "noindex, nofollow" + }, + { + "key": "Referrer-Policy", + "value": "no-referrer" + }, + { + "key": "X-Powered-By", + "value": "PHP/8.3.30" + }, + { + "key": "Content-Security-Policy", + "value": "default-src 'none';base-uri 'none';manifest-src 'self';frame-ancestors 'none'" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=f5ead8c3bba0405d82a50ae6b45ee368; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=f5ead8c3bba0405d82a50ae6b45ee368; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=f5ead8c3bba0405d82a50ae6b45ee368; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=f5ead8c3bba0405d82a50ae6b45ee368; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=f5ead8c3bba0405d82a50ae6b45ee368; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=0203dab0dc9dbc8bd5b083332f35818e; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=0203dab0dc9dbc8bd5b083332f35818e; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=0203dab0dc9dbc8bd5b083332f35818e; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=0203dab0dc9dbc8bd5b083332f35818e; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=0203dab0dc9dbc8bd5b083332f35818e; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "X-Request-Id", + "value": "guiBRuCsMOhLeJqWA78Q" + }, + { + "key": "Cache-Control", + "value": "no-cache, no-store, must-revalidate" + }, + { + "key": "Feature-Policy", + "value": "autoplay 'none';camera 'none';fullscreen 'none';geolocation 'none';microphone 'none';payment 'none'" + }, + { + "key": "X-User-Id", + "value": "admin" + }, + { + "key": "Content-Length", + "value": "464" + }, + { + "key": "Keep-Alive", + "value": "timeout=5, max=93" + }, + { + "key": "Connection", + "value": "Keep-Alive" + }, + { + "key": "Content-Type", + "value": "application/json; charset=utf-8" + } + ], + "stream": { + "type": "Buffer", + "data": [ + 123, + 34, + 117, + 114, + 108, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 122, + 97, + 107, + 101, + 110, + 92, + 47, + 118, + 49, + 92, + 47, + 114, + 101, + 115, + 117, + 108, + 116, + 97, + 116, + 101, + 110, + 92, + 47, + 99, + 97, + 53, + 57, + 99, + 56, + 101, + 102, + 45, + 97, + 53, + 52, + 102, + 45, + 52, + 51, + 97, + 51, + 45, + 56, + 57, + 56, + 100, + 45, + 50, + 51, + 102, + 99, + 52, + 55, + 100, + 99, + 48, + 57, + 48, + 55, + 34, + 44, + 34, + 117, + 117, + 105, + 100, + 34, + 58, + 34, + 99, + 97, + 53, + 57, + 99, + 56, + 101, + 102, + 45, + 97, + 53, + 52, + 102, + 45, + 52, + 51, + 97, + 51, + 45, + 56, + 57, + 56, + 100, + 45, + 50, + 51, + 102, + 99, + 52, + 55, + 100, + 99, + 48, + 57, + 48, + 55, + 34, + 44, + 34, + 122, + 97, + 97, + 107, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 122, + 97, + 107, + 101, + 110, + 92, + 47, + 118, + 49, + 92, + 47, + 122, + 97, + 107, + 101, + 110, + 92, + 47, + 55, + 54, + 54, + 101, + 98, + 50, + 57, + 49, + 45, + 100, + 57, + 56, + 101, + 45, + 52, + 52, + 102, + 98, + 45, + 57, + 51, + 98, + 52, + 45, + 57, + 50, + 49, + 101, + 102, + 99, + 53, + 102, + 50, + 53, + 100, + 50, + 34, + 44, + 34, + 114, + 101, + 115, + 117, + 108, + 116, + 97, + 97, + 116, + 116, + 121, + 112, + 101, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 105, + 92, + 47, + 118, + 49, + 92, + 47, + 114, + 101, + 115, + 117, + 108, + 116, + 97, + 97, + 116, + 116, + 121, + 112, + 101, + 110, + 92, + 47, + 97, + 57, + 49, + 49, + 100, + 98, + 57, + 56, + 45, + 97, + 54, + 99, + 102, + 45, + 52, + 56, + 55, + 99, + 45, + 57, + 53, + 57, + 54, + 45, + 51, + 97, + 102, + 55, + 98, + 55, + 49, + 99, + 101, + 51, + 55, + 101, + 34, + 44, + 34, + 116, + 111, + 101, + 108, + 105, + 99, + 104, + 116, + 105, + 110, + 103, + 34, + 58, + 34, + 34, + 125 + ] + }, + "cookie": [], + "responseTime": 318, + "responseSize": 464 + }, + "id": "b1092ffd-12a6-4069-aa11-f2a02b79ad76" + }, + { + "cursor": { + "ref": "18b0e1c6-059c-4a66-b412-1847bc167585", + "length": 313, + "cycles": 1, + "position": 222, + "iteration": 0, + "httpRequestId": "7363c147-696a-450f-81a6-8bb83c82b96f" + }, + "item": { + "id": "d4135438-ce59-4528-a06c-0819b655bb20", + "name": "Add Eindstatus to Hoofdzaak", + "request": { + "url": { + "path": [ + "statussen" + ], + "host": [ + "{{zrc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n\t\"zaak\": \"{{hoofdzaak_url}}\",\n\t\"statustype\": \"{{eindstatustype_for_hoofdzaaktype_url}}\",\n\t\"datumStatusGezet\": \"2018-04-18T13:37:00\"\n}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "8c17c0d7-ff46-4603-8e73-95267e8f2522", + "type": "text/javascript", + "exec": [ + "" + ], + "_lastExecutionId": "81aba630-f64a-46df-a08f-024d21ed1cc9" + } + }, + { + "listen": "prerequest", + "script": { + "id": "3e07a5a1-046f-4cf4-aad6-726590927814", + "type": "text/javascript", + "exec": [ + "" + ], + "_lastExecutionId": "b97e3766-2728-4073-a268-c525a54a0061" + } + } + ] + }, + "request": { + "url": { + "protocol": "http", + "port": "8080", + "path": [ + "index.php", + "apps", + "procest", + "api", + "zgw", + "zaken", + "v1", + "statussen" + ], + "host": [ + "localhost" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Authorization", + "value": "Bearer eyJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJwcm9jZXN0LWFkbWluIiwiY2xpZW50X2lkIjoicHJvY2VzdC1hZG1pbiIsImlhdCI6IjE3NzMxNDUxOTYiLCJ1c2VyX2lkIjoicHJvY2VzdC1hZG1pbiIsInVzZXJfcmVwcmVzZW50YXRpb24iOiIifQ.M-pFfP1nIWNxsbefV5znTkSo3-55fuORcOiaGSIF12o", + "system": true + }, + { + "key": "User-Agent", + "value": "PostmanRuntime/7.39.1", + "system": true + }, + { + "key": "Accept", + "value": "*/*", + "system": true + }, + { + "key": "Cache-Control", + "value": "no-cache", + "system": true + }, + { + "key": "Postman-Token", + "value": "ab5159b1-6f5d-413d-b839-2ee52d605999", + "system": true + }, + { + "key": "Host", + "value": "localhost:8080", + "system": true + }, + { + "key": "Accept-Encoding", + "value": "gzip, deflate, br", + "system": true + }, + { + "key": "Connection", + "value": "keep-alive", + "system": true + }, + { + "key": "Content-Length", + "value": "295", + "system": true + }, + { + "key": "Cookie", + "value": "ocvp3112b4wg=0203dab0dc9dbc8bd5b083332f35818e; oc_sessionPassphrase=LBNdKxRzA0iqoULIruNxDDh2BK3O%2BrCIU8aUmiUcOFvy5Xw1YfjwQNlmBW2IkGwJYtxXh9%2BwDN6vYuGNX07tXzkBtjQJUWTGdzf8AIOUIVxVx5DfyWAQZ7nmYmQv6XSE; nc_sameSiteCookielax=true; nc_sameSiteCookiestrict=true", + "system": true + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n\t\"zaak\": \"http://localhost:8080/index.php/apps/procest/api/zgw/zaken/v1/zaken/766eb291-d98e-44fb-93b4-921efc5f25d2\",\n\t\"statustype\": \"http://localhost:8080/index.php/apps/procest/api/zgw/catalogi/v1/statustypen/aed80b2c-4476-4695-b435-083cac68ba1d\",\n\t\"datumStatusGezet\": \"2018-04-18T13:37:00\"\n}" + }, + "auth": { + "type": "jwt", + "jwt": [ + { + "type": "string", + "value": "{\r\n \"iss\": \"procest-admin\",\r\n \"client_id\": \"procest-admin\",\r\n \"iat\": \"1773145196\",\r\n \"user_id\": \"procest-admin\",\r\n \"user_representation\": \"\"\r\n}", + "key": "payload" + }, + { + "type": "string", + "value": "procest-admin-secret-key-for-testing", + "key": "secret" + }, + { + "type": "string", + "value": "HS256", + "key": "algorithm" + }, + { + "type": "boolean", + "value": false, + "key": "isSecretBase64Encoded" + }, + { + "type": "string", + "value": "header", + "key": "addTokenTo" + }, + { + "type": "string", + "value": "Bearer", + "key": "headerPrefix" + }, + { + "type": "string", + "value": "token", + "key": "queryParamKey" + }, + { + "type": "string", + "value": "{}", + "key": "header" + } + ] + } + }, + "response": { + "id": "89fc09aa-27ff-49c6-8fe1-38c007100c59", + "status": "Created", + "code": 201, + "header": [ + { + "key": "Date", + "value": "Tue, 10 Mar 2026 12:19:56 GMT" + }, + { + "key": "Server", + "value": "Apache/2.4.66 (Debian)" + }, + { + "key": "X-Content-Type-Options", + "value": "nosniff" + }, + { + "key": "X-Frame-Options", + "value": "SAMEORIGIN" + }, + { + "key": "X-Permitted-Cross-Domain-Policies", + "value": "none" + }, + { + "key": "X-Robots-Tag", + "value": "noindex, nofollow" + }, + { + "key": "Referrer-Policy", + "value": "no-referrer" + }, + { + "key": "X-Powered-By", + "value": "PHP/8.3.30" + }, + { + "key": "Content-Security-Policy", + "value": "default-src 'none';base-uri 'none';manifest-src 'self';frame-ancestors 'none'" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=0203dab0dc9dbc8bd5b083332f35818e; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=0203dab0dc9dbc8bd5b083332f35818e; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=0203dab0dc9dbc8bd5b083332f35818e; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=0203dab0dc9dbc8bd5b083332f35818e; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=0203dab0dc9dbc8bd5b083332f35818e; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=d8f1ea12a7eff5cb8de3ba3fa8ca045d; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=d8f1ea12a7eff5cb8de3ba3fa8ca045d; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=d8f1ea12a7eff5cb8de3ba3fa8ca045d; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=d8f1ea12a7eff5cb8de3ba3fa8ca045d; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=d8f1ea12a7eff5cb8de3ba3fa8ca045d; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "X-Request-Id", + "value": "8MZMpiWCt7Q0bsw7PGS1" + }, + { + "key": "Cache-Control", + "value": "no-cache, no-store, must-revalidate" + }, + { + "key": "Feature-Policy", + "value": "autoplay 'none';camera 'none';fullscreen 'none';geolocation 'none';microphone 'none';payment 'none'" + }, + { + "key": "X-User-Id", + "value": "admin" + }, + { + "key": "Content-Length", + "value": "510" + }, + { + "key": "Keep-Alive", + "value": "timeout=5, max=92" + }, + { + "key": "Connection", + "value": "Keep-Alive" + }, + { + "key": "Content-Type", + "value": "application/json; charset=utf-8" + } + ], + "stream": { + "type": "Buffer", + "data": [ + 123, + 34, + 117, + 114, + 108, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 122, + 97, + 107, + 101, + 110, + 92, + 47, + 118, + 49, + 92, + 47, + 115, + 116, + 97, + 116, + 117, + 115, + 115, + 101, + 110, + 92, + 47, + 102, + 99, + 54, + 48, + 56, + 97, + 55, + 101, + 45, + 54, + 51, + 54, + 51, + 45, + 52, + 101, + 48, + 101, + 45, + 57, + 56, + 53, + 102, + 45, + 50, + 57, + 102, + 54, + 55, + 49, + 97, + 98, + 101, + 97, + 49, + 57, + 34, + 44, + 34, + 117, + 117, + 105, + 100, + 34, + 58, + 34, + 102, + 99, + 54, + 48, + 56, + 97, + 55, + 101, + 45, + 54, + 51, + 54, + 51, + 45, + 52, + 101, + 48, + 101, + 45, + 57, + 56, + 53, + 102, + 45, + 50, + 57, + 102, + 54, + 55, + 49, + 97, + 98, + 101, + 97, + 49, + 57, + 34, + 44, + 34, + 122, + 97, + 97, + 107, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 122, + 97, + 107, + 101, + 110, + 92, + 47, + 118, + 49, + 92, + 47, + 122, + 97, + 107, + 101, + 110, + 92, + 47, + 55, + 54, + 54, + 101, + 98, + 50, + 57, + 49, + 45, + 100, + 57, + 56, + 101, + 45, + 52, + 52, + 102, + 98, + 45, + 57, + 51, + 98, + 52, + 45, + 57, + 50, + 49, + 101, + 102, + 99, + 53, + 102, + 50, + 53, + 100, + 50, + 34, + 44, + 34, + 115, + 116, + 97, + 116, + 117, + 115, + 116, + 121, + 112, + 101, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 105, + 92, + 47, + 118, + 49, + 92, + 47, + 115, + 116, + 97, + 116, + 117, + 115, + 116, + 121, + 112, + 101, + 110, + 92, + 47, + 97, + 101, + 100, + 56, + 48, + 98, + 50, + 99, + 45, + 52, + 52, + 55, + 54, + 45, + 52, + 54, + 57, + 53, + 45, + 98, + 52, + 51, + 53, + 45, + 48, + 56, + 51, + 99, + 97, + 99, + 54, + 56, + 98, + 97, + 49, + 100, + 34, + 44, + 34, + 100, + 97, + 116, + 117, + 109, + 83, + 116, + 97, + 116, + 117, + 115, + 71, + 101, + 122, + 101, + 116, + 34, + 58, + 34, + 50, + 48, + 50, + 54, + 45, + 48, + 51, + 45, + 49, + 48, + 84, + 49, + 50, + 58, + 49, + 57, + 58, + 53, + 54, + 43, + 48, + 48, + 58, + 48, + 48, + 34, + 44, + 34, + 115, + 116, + 97, + 116, + 117, + 115, + 116, + 111, + 101, + 108, + 105, + 99, + 104, + 116, + 105, + 110, + 103, + 34, + 58, + 34, + 34, + 125 + ] + }, + "cookie": [], + "responseTime": 323, + "responseSize": 510 + }, + "id": "d4135438-ce59-4528-a06c-0819b655bb20" + }, + { + "cursor": { + "ref": "0b06b857-b76e-4879-b690-8cc9692cd8c0", + "length": 313, + "cycles": 1, + "position": 223, + "iteration": 0, + "httpRequestId": "420d52cf-ce60-489c-89a3-485ae772beb8" + }, + "item": { + "id": "5b8804b3-ecd4-48dd-a3a3-0a115a6d9db2", + "name": "Retrieve Hoofdzaak einddatum", + "request": { + "url": { + "host": [ + "{{hoofdzaak_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Accept-Crs", + "value": "EPSG:4326" + }, + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "GET" + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "958bddb1-f5d1-4288-bff7-4914ba0a8fe9", + "type": "text/javascript", + "exec": [ + "pm.environment.set(\"hoofdzaak_einddatum\", pm.response.json().einddatum);" + ], + "_lastExecutionId": "6a975131-a3af-4d76-8e50-805f9adf2e36" + } + } + ] + }, + "request": { + "url": { + "protocol": "http", + "port": "8080", + "path": [ + "index.php", + "apps", + "procest", + "api", + "zgw", + "zaken", + "v1", + "zaken", + "766eb291-d98e-44fb-93b4-921efc5f25d2" + ], + "host": [ + "localhost" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Accept-Crs", + "value": "EPSG:4326" + }, + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Authorization", + "value": "Bearer eyJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJwcm9jZXN0LWFkbWluIiwiY2xpZW50X2lkIjoicHJvY2VzdC1hZG1pbiIsImlhdCI6IjE3NzMxNDUxOTciLCJ1c2VyX2lkIjoicHJvY2VzdC1hZG1pbiIsInVzZXJfcmVwcmVzZW50YXRpb24iOiIifQ.NU6WcTcZX8kj2J6o6dArHraCgviKPG47egMU6DmJlIs", + "system": true + }, + { + "key": "User-Agent", + "value": "PostmanRuntime/7.39.1", + "system": true + }, + { + "key": "Accept", + "value": "*/*", + "system": true + }, + { + "key": "Cache-Control", + "value": "no-cache", + "system": true + }, + { + "key": "Postman-Token", + "value": "ca240d6c-a427-43c1-a094-48187a8a88ce", + "system": true + }, + { + "key": "Host", + "value": "localhost:8080", + "system": true + }, + { + "key": "Accept-Encoding", + "value": "gzip, deflate, br", + "system": true + }, + { + "key": "Connection", + "value": "keep-alive", + "system": true + }, + { + "key": "Cookie", + "value": "ocvp3112b4wg=d8f1ea12a7eff5cb8de3ba3fa8ca045d; oc_sessionPassphrase=LBNdKxRzA0iqoULIruNxDDh2BK3O%2BrCIU8aUmiUcOFvy5Xw1YfjwQNlmBW2IkGwJYtxXh9%2BwDN6vYuGNX07tXzkBtjQJUWTGdzf8AIOUIVxVx5DfyWAQZ7nmYmQv6XSE; nc_sameSiteCookielax=true; nc_sameSiteCookiestrict=true", + "system": true + } + ], + "method": "GET", + "auth": { + "type": "jwt", + "jwt": [ + { + "type": "string", + "value": "{\r\n \"iss\": \"procest-admin\",\r\n \"client_id\": \"procest-admin\",\r\n \"iat\": \"1773145197\",\r\n \"user_id\": \"procest-admin\",\r\n \"user_representation\": \"\"\r\n}", + "key": "payload" + }, + { + "type": "string", + "value": "procest-admin-secret-key-for-testing", + "key": "secret" + }, + { + "type": "string", + "value": "HS256", + "key": "algorithm" + }, + { + "type": "boolean", + "value": false, + "key": "isSecretBase64Encoded" + }, + { + "type": "string", + "value": "header", + "key": "addTokenTo" + }, + { + "type": "string", + "value": "Bearer", + "key": "headerPrefix" + }, + { + "type": "string", + "value": "token", + "key": "queryParamKey" + }, + { + "type": "string", + "value": "{}", + "key": "header" + } + ] + } + }, + "response": { + "id": "b20521a3-7003-4b10-a64e-a9ad527af2fd", + "status": "OK", + "code": 200, + "header": [ + { + "key": "Date", + "value": "Tue, 10 Mar 2026 12:19:56 GMT" + }, + { + "key": "Server", + "value": "Apache/2.4.66 (Debian)" + }, + { + "key": "X-Content-Type-Options", + "value": "nosniff" + }, + { + "key": "X-Frame-Options", + "value": "SAMEORIGIN" + }, + { + "key": "X-Permitted-Cross-Domain-Policies", + "value": "none" + }, + { + "key": "X-Robots-Tag", + "value": "noindex, nofollow" + }, + { + "key": "Referrer-Policy", + "value": "no-referrer" + }, + { + "key": "X-Powered-By", + "value": "PHP/8.3.30" + }, + { + "key": "Content-Security-Policy", + "value": "default-src 'none';base-uri 'none';manifest-src 'self';frame-ancestors 'none'" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=d8f1ea12a7eff5cb8de3ba3fa8ca045d; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=d8f1ea12a7eff5cb8de3ba3fa8ca045d; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=d8f1ea12a7eff5cb8de3ba3fa8ca045d; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=d8f1ea12a7eff5cb8de3ba3fa8ca045d; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=d8f1ea12a7eff5cb8de3ba3fa8ca045d; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=81823f9cacf01173d146e5859078d0d4; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=81823f9cacf01173d146e5859078d0d4; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=81823f9cacf01173d146e5859078d0d4; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=81823f9cacf01173d146e5859078d0d4; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=81823f9cacf01173d146e5859078d0d4; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "X-Request-Id", + "value": "Fj5zY4hGJ5nwflWaWbc5" + }, + { + "key": "Cache-Control", + "value": "no-cache, no-store, must-revalidate" + }, + { + "key": "Feature-Policy", + "value": "autoplay 'none';camera 'none';fullscreen 'none';geolocation 'none';microphone 'none';payment 'none'" + }, + { + "key": "X-User-Id", + "value": "admin" + }, + { + "key": "Content-Encoding", + "value": "gzip" + }, + { + "key": "Content-Length", + "value": "455" + }, + { + "key": "Keep-Alive", + "value": "timeout=5, max=91" + }, + { + "key": "Connection", + "value": "Keep-Alive" + }, + { + "key": "Content-Type", + "value": "application/json; charset=utf-8" + } + ], + "stream": { + "type": "Buffer", + "data": [ + 123, + 34, + 117, + 114, + 108, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 122, + 97, + 107, + 101, + 110, + 92, + 47, + 118, + 49, + 92, + 47, + 122, + 97, + 107, + 101, + 110, + 92, + 47, + 55, + 54, + 54, + 101, + 98, + 50, + 57, + 49, + 45, + 100, + 57, + 56, + 101, + 45, + 52, + 52, + 102, + 98, + 45, + 57, + 51, + 98, + 52, + 45, + 57, + 50, + 49, + 101, + 102, + 99, + 53, + 102, + 50, + 53, + 100, + 50, + 34, + 44, + 34, + 117, + 117, + 105, + 100, + 34, + 58, + 34, + 55, + 54, + 54, + 101, + 98, + 50, + 57, + 49, + 45, + 100, + 57, + 56, + 101, + 45, + 52, + 52, + 102, + 98, + 45, + 57, + 51, + 98, + 52, + 45, + 57, + 50, + 49, + 101, + 102, + 99, + 53, + 102, + 50, + 53, + 100, + 50, + 34, + 44, + 34, + 105, + 100, + 101, + 110, + 116, + 105, + 102, + 105, + 99, + 97, + 116, + 105, + 101, + 34, + 58, + 34, + 90, + 65, + 65, + 75, + 45, + 84, + 66, + 79, + 78, + 76, + 55, + 45, + 68, + 50, + 51, + 51, + 69, + 65, + 34, + 44, + 34, + 111, + 109, + 115, + 99, + 104, + 114, + 105, + 106, + 118, + 105, + 110, + 103, + 34, + 58, + 34, + 115, + 116, + 114, + 105, + 110, + 103, + 34, + 44, + 34, + 116, + 111, + 101, + 108, + 105, + 99, + 104, + 116, + 105, + 110, + 103, + 34, + 58, + 34, + 115, + 116, + 114, + 105, + 110, + 103, + 34, + 44, + 34, + 122, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 105, + 92, + 47, + 118, + 49, + 92, + 47, + 122, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 110, + 92, + 47, + 52, + 49, + 101, + 51, + 51, + 52, + 51, + 99, + 45, + 52, + 53, + 50, + 52, + 45, + 52, + 50, + 50, + 51, + 45, + 97, + 49, + 99, + 98, + 45, + 57, + 54, + 49, + 54, + 51, + 57, + 49, + 97, + 56, + 52, + 54, + 102, + 34, + 44, + 34, + 114, + 101, + 103, + 105, + 115, + 116, + 114, + 97, + 116, + 105, + 101, + 100, + 97, + 116, + 117, + 109, + 34, + 58, + 34, + 50, + 48, + 50, + 54, + 45, + 48, + 51, + 45, + 49, + 48, + 84, + 49, + 50, + 58, + 49, + 57, + 58, + 53, + 53, + 43, + 48, + 48, + 58, + 48, + 48, + 34, + 44, + 34, + 115, + 116, + 97, + 114, + 116, + 100, + 97, + 116, + 117, + 109, + 34, + 58, + 34, + 50, + 48, + 49, + 57, + 45, + 48, + 52, + 45, + 48, + 57, + 34, + 44, + 34, + 101, + 105, + 110, + 100, + 100, + 97, + 116, + 117, + 109, + 34, + 58, + 34, + 50, + 48, + 49, + 56, + 45, + 48, + 52, + 45, + 49, + 56, + 34, + 44, + 34, + 101, + 105, + 110, + 100, + 100, + 97, + 116, + 117, + 109, + 71, + 101, + 112, + 108, + 97, + 110, + 100, + 34, + 58, + 34, + 50, + 48, + 49, + 57, + 45, + 48, + 52, + 45, + 50, + 48, + 34, + 44, + 34, + 117, + 105, + 116, + 101, + 114, + 108, + 105, + 106, + 107, + 101, + 69, + 105, + 110, + 100, + 100, + 97, + 116, + 117, + 109, + 65, + 102, + 100, + 111, + 101, + 110, + 105, + 110, + 103, + 34, + 58, + 34, + 50, + 48, + 49, + 57, + 45, + 48, + 52, + 45, + 48, + 57, + 34, + 44, + 34, + 118, + 101, + 114, + 116, + 114, + 111, + 117, + 119, + 101, + 108, + 105, + 106, + 107, + 104, + 101, + 105, + 100, + 97, + 97, + 110, + 100, + 117, + 105, + 100, + 105, + 110, + 103, + 34, + 58, + 34, + 103, + 101, + 104, + 101, + 105, + 109, + 34, + 44, + 34, + 118, + 101, + 114, + 97, + 110, + 116, + 119, + 111, + 111, + 114, + 100, + 101, + 108, + 105, + 106, + 107, + 101, + 79, + 114, + 103, + 97, + 110, + 105, + 115, + 97, + 116, + 105, + 101, + 34, + 58, + 34, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 34, + 44, + 34, + 97, + 114, + 99, + 104, + 105, + 101, + 102, + 110, + 111, + 109, + 105, + 110, + 97, + 116, + 105, + 101, + 34, + 58, + 34, + 118, + 101, + 114, + 110, + 105, + 101, + 116, + 105, + 103, + 101, + 110, + 34, + 44, + 34, + 97, + 114, + 99, + 104, + 105, + 101, + 102, + 97, + 99, + 116, + 105, + 101, + 100, + 97, + 116, + 117, + 109, + 34, + 58, + 34, + 50, + 48, + 50, + 51, + 45, + 48, + 52, + 45, + 49, + 56, + 34, + 44, + 34, + 97, + 114, + 99, + 104, + 105, + 101, + 102, + 115, + 116, + 97, + 116, + 117, + 115, + 34, + 58, + 34, + 110, + 111, + 103, + 95, + 116, + 101, + 95, + 97, + 114, + 99, + 104, + 105, + 118, + 101, + 114, + 101, + 110, + 34, + 44, + 34, + 98, + 101, + 116, + 97, + 108, + 105, + 110, + 103, + 115, + 105, + 110, + 100, + 105, + 99, + 97, + 116, + 105, + 101, + 34, + 58, + 34, + 103, + 101, + 104, + 101, + 101, + 108, + 34, + 44, + 34, + 108, + 97, + 97, + 116, + 115, + 116, + 101, + 66, + 101, + 116, + 97, + 97, + 108, + 100, + 97, + 116, + 117, + 109, + 34, + 58, + 34, + 50, + 48, + 49, + 57, + 45, + 48, + 49, + 45, + 48, + 49, + 34, + 44, + 34, + 104, + 111, + 111, + 102, + 100, + 122, + 97, + 97, + 107, + 34, + 58, + 110, + 117, + 108, + 108, + 125 + ] + }, + "cookie": [], + "responseTime": 144, + "responseSize": 830 + }, + "id": "5b8804b3-ecd4-48dd-a3a3-0a115a6d9db2" + }, + { + "cursor": { + "ref": "2d6880eb-2c4e-4ad2-9533-5d8159920818", + "length": 313, + "cycles": 1, + "position": 224, + "iteration": 0, + "httpRequestId": "9daed274-6a27-47a9-b836-344b6cacd957" + }, + "item": { + "id": "2402796c-cf3c-44bf-971b-bb98792992b7", + "name": "Create Zaaktype procestermijn vast_te_leggen_datum", + "request": { + "url": { + "path": [ + "zaaktypen" + ], + "host": [ + "{{ztc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\r\n \"identificatie\": \"{{random_identificatie_DZ}}\",\r\n \"omschrijving\": \"Zaaktype for archiving tests vast_te_leggen_datum\",\r\n \"omschrijvingGeneriek\": null,\r\n \"vertrouwelijkheidaanduiding\": \"openbaar\",\r\n \"doel\": \"test doel\",\r\n \"aanleiding\": \"test aanleiding\",\r\n \"toelichting\": null,\r\n \"indicatieInternOfExtern\": \"extern\",\r\n \"handelingInitiator\": \"indienen\",\r\n \"onderwerp\": \"openbare ruimte\",\r\n \"handelingBehandelaar\": \"behandelen\",\r\n \"doorlooptijd\": \"P10D\",\r\n \"servicenorm\": null,\r\n \"opschortingEnAanhoudingMogelijk\": false,\r\n \"verlengingMogelijk\": true,\r\n \"verlengingstermijn\": \"P5D\",\r\n \"trefwoorden\": [],\r\n \"publicatieIndicatie\": false,\r\n \"publicatietekst\": null,\r\n \"verantwoordingsrelatie\": [],\r\n \"productenOfDiensten\": [\r\n \"https://ref.tst.vng.cloud/standaard/\"\r\n ],\r\n \"selectielijstProcestype\": \"https://referentielijsten.roxit.nl/api/v1/procestypen/cdb46f05-0750-4d83-8025-31e20408ed21\",\r\n \"referentieproces\": {\r\n \"naam\": \"test\",\r\n \"link\": \"\"\r\n },\r\n \"verantwoordelijke\": \"X\",\r\n \"zaakobjecttypen\": [],\r\n \"broncatalogus\": null,\r\n \"bronzaaktype\": null,\r\n \"catalogus\": \"{{catalogus_url}}\",\r\n \"statustypen\": [],\r\n \"resultaattypen\": [],\r\n \"eigenschappen\": [],\r\n \"informatieobjecttypen\": [],\r\n \"roltypen\": [],\r\n \"besluittypen\": [],\r\n \"deelzaaktypen\": [],\r\n \"gerelateerdeZaaktypen\": [],\r\n \"concept\": true,\r\n \"beginGeldigheid\": \"2019-01-01\",\r\n \"eindeGeldigheid\": null,\r\n \"beginObject\": null,\r\n \"eindeObject\": null,\r\n \"versiedatum\": \"2019-01-01\"\r\n}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "4c3e1d44-c4df-4b61-a14b-07fcb0961dc4", + "type": "text/javascript", + "packages": {}, + "exec": [ + "var res = pm.response.json();", + "pm.environment.set(\"zaaktype_procestermijn_vast_te_leggen_datum_url\", res.url);" + ], + "_lastExecutionId": "b370cc99-bf18-4524-bef9-347a1c6f00f0" + } + }, + { + "listen": "prerequest", + "script": { + "id": "6a4c474e-4db3-4b6c-b682-926c5506757f", + "type": "text/javascript", + "packages": {}, + "exec": [ + "", + "var uuid = require('uuid');", + "var myUUID = uuid.v4(); ", + "pm.environment.set(\"random_identificatie_DZ\", myUUID);" + ], + "_lastExecutionId": "67ebeb3b-ace9-4cfe-9f78-0ebdf6f06a8b" + } + } + ] + }, + "request": { + "url": { + "protocol": "http", + "port": "8080", + "path": [ + "index.php", + "apps", + "procest", + "api", + "zgw", + "catalogi", + "v1", + "zaaktypen" + ], + "host": [ + "localhost" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Authorization", + "value": "Bearer eyJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJwcm9jZXN0LWFkbWluIiwiY2xpZW50X2lkIjoicHJvY2VzdC1hZG1pbiIsImlhdCI6IjE3NzMxNDUxOTciLCJ1c2VyX2lkIjoicHJvY2VzdC1hZG1pbiIsInVzZXJfcmVwcmVzZW50YXRpb24iOiIifQ.NU6WcTcZX8kj2J6o6dArHraCgviKPG47egMU6DmJlIs", + "system": true + }, + { + "key": "User-Agent", + "value": "PostmanRuntime/7.39.1", + "system": true + }, + { + "key": "Accept", + "value": "*/*", + "system": true + }, + { + "key": "Cache-Control", + "value": "no-cache", + "system": true + }, + { + "key": "Postman-Token", + "value": "6637aecb-c213-4e3d-b68a-c10d0cd45459", + "system": true + }, + { + "key": "Host", + "value": "localhost:8080", + "system": true + }, + { + "key": "Accept-Encoding", + "value": "gzip, deflate, br", + "system": true + }, + { + "key": "Connection", + "value": "keep-alive", + "system": true + }, + { + "key": "Content-Length", + "value": "1701", + "system": true + }, + { + "key": "Cookie", + "value": "ocvp3112b4wg=81823f9cacf01173d146e5859078d0d4; oc_sessionPassphrase=LBNdKxRzA0iqoULIruNxDDh2BK3O%2BrCIU8aUmiUcOFvy5Xw1YfjwQNlmBW2IkGwJYtxXh9%2BwDN6vYuGNX07tXzkBtjQJUWTGdzf8AIOUIVxVx5DfyWAQZ7nmYmQv6XSE; nc_sameSiteCookielax=true; nc_sameSiteCookiestrict=true", + "system": true + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\r\n \"identificatie\": \"0b12e3a0-35b6-4261-a6ba-f209a4732492\",\r\n \"omschrijving\": \"Zaaktype for archiving tests vast_te_leggen_datum\",\r\n \"omschrijvingGeneriek\": null,\r\n \"vertrouwelijkheidaanduiding\": \"openbaar\",\r\n \"doel\": \"test doel\",\r\n \"aanleiding\": \"test aanleiding\",\r\n \"toelichting\": null,\r\n \"indicatieInternOfExtern\": \"extern\",\r\n \"handelingInitiator\": \"indienen\",\r\n \"onderwerp\": \"openbare ruimte\",\r\n \"handelingBehandelaar\": \"behandelen\",\r\n \"doorlooptijd\": \"P10D\",\r\n \"servicenorm\": null,\r\n \"opschortingEnAanhoudingMogelijk\": false,\r\n \"verlengingMogelijk\": true,\r\n \"verlengingstermijn\": \"P5D\",\r\n \"trefwoorden\": [],\r\n \"publicatieIndicatie\": false,\r\n \"publicatietekst\": null,\r\n \"verantwoordingsrelatie\": [],\r\n \"productenOfDiensten\": [\r\n \"https://ref.tst.vng.cloud/standaard/\"\r\n ],\r\n \"selectielijstProcestype\": \"https://referentielijsten.roxit.nl/api/v1/procestypen/cdb46f05-0750-4d83-8025-31e20408ed21\",\r\n \"referentieproces\": {\r\n \"naam\": \"test\",\r\n \"link\": \"\"\r\n },\r\n \"verantwoordelijke\": \"X\",\r\n \"zaakobjecttypen\": [],\r\n \"broncatalogus\": null,\r\n \"bronzaaktype\": null,\r\n \"catalogus\": \"http://localhost:8080/index.php/apps/procest/api/zgw/catalogi/v1/catalogussen/5057408f-fd76-469e-8646-bcc4ba2efa8d\",\r\n \"statustypen\": [],\r\n \"resultaattypen\": [],\r\n \"eigenschappen\": [],\r\n \"informatieobjecttypen\": [],\r\n \"roltypen\": [],\r\n \"besluittypen\": [],\r\n \"deelzaaktypen\": [],\r\n \"gerelateerdeZaaktypen\": [],\r\n \"concept\": true,\r\n \"beginGeldigheid\": \"2019-01-01\",\r\n \"eindeGeldigheid\": null,\r\n \"beginObject\": null,\r\n \"eindeObject\": null,\r\n \"versiedatum\": \"2019-01-01\"\r\n}" + }, + "auth": { + "type": "jwt", + "jwt": [ + { + "type": "string", + "value": "{\r\n \"iss\": \"procest-admin\",\r\n \"client_id\": \"procest-admin\",\r\n \"iat\": \"1773145197\",\r\n \"user_id\": \"procest-admin\",\r\n \"user_representation\": \"\"\r\n}", + "key": "payload" + }, + { + "type": "string", + "value": "procest-admin-secret-key-for-testing", + "key": "secret" + }, + { + "type": "string", + "value": "HS256", + "key": "algorithm" + }, + { + "type": "boolean", + "value": false, + "key": "isSecretBase64Encoded" + }, + { + "type": "string", + "value": "header", + "key": "addTokenTo" + }, + { + "type": "string", + "value": "Bearer", + "key": "headerPrefix" + }, + { + "type": "string", + "value": "token", + "key": "queryParamKey" + }, + { + "type": "string", + "value": "{}", + "key": "header" + } + ] + } + }, + "response": { + "id": "aa2a7bef-6e05-4a04-aaf0-4eb70087e6ce", + "status": "Created", + "code": 201, + "header": [ + { + "key": "Date", + "value": "Tue, 10 Mar 2026 12:19:57 GMT" + }, + { + "key": "Server", + "value": "Apache/2.4.66 (Debian)" + }, + { + "key": "X-Content-Type-Options", + "value": "nosniff" + }, + { + "key": "X-Frame-Options", + "value": "SAMEORIGIN" + }, + { + "key": "X-Permitted-Cross-Domain-Policies", + "value": "none" + }, + { + "key": "X-Robots-Tag", + "value": "noindex, nofollow" + }, + { + "key": "Referrer-Policy", + "value": "no-referrer" + }, + { + "key": "X-Powered-By", + "value": "PHP/8.3.30" + }, + { + "key": "Content-Security-Policy", + "value": "default-src 'none';base-uri 'none';manifest-src 'self';frame-ancestors 'none'" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=81823f9cacf01173d146e5859078d0d4; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=81823f9cacf01173d146e5859078d0d4; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=81823f9cacf01173d146e5859078d0d4; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=81823f9cacf01173d146e5859078d0d4; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=81823f9cacf01173d146e5859078d0d4; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=2dd7e5494d992bf073376ce0d06ed37f; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=2dd7e5494d992bf073376ce0d06ed37f; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=2dd7e5494d992bf073376ce0d06ed37f; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=2dd7e5494d992bf073376ce0d06ed37f; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=2dd7e5494d992bf073376ce0d06ed37f; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "X-Request-Id", + "value": "9d6JVV8yY27EtjmIWKwg" + }, + { + "key": "Cache-Control", + "value": "no-cache, no-store, must-revalidate" + }, + { + "key": "Feature-Policy", + "value": "autoplay 'none';camera 'none';fullscreen 'none';geolocation 'none';microphone 'none';payment 'none'" + }, + { + "key": "X-User-Id", + "value": "admin" + }, + { + "key": "Content-Length", + "value": "1376" + }, + { + "key": "Keep-Alive", + "value": "timeout=5, max=90" + }, + { + "key": "Connection", + "value": "Keep-Alive" + }, + { + "key": "Content-Type", + "value": "application/json; charset=utf-8" + } + ], + "stream": { + "type": "Buffer", + "data": [ + 123, + 34, + 117, + 114, + 108, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 105, + 92, + 47, + 118, + 49, + 92, + 47, + 122, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 110, + 92, + 47, + 101, + 49, + 53, + 102, + 52, + 98, + 97, + 56, + 45, + 55, + 102, + 56, + 52, + 45, + 52, + 54, + 56, + 57, + 45, + 98, + 102, + 57, + 55, + 45, + 49, + 53, + 52, + 56, + 49, + 54, + 51, + 101, + 54, + 52, + 52, + 99, + 34, + 44, + 34, + 117, + 117, + 105, + 100, + 34, + 58, + 34, + 101, + 49, + 53, + 102, + 52, + 98, + 97, + 56, + 45, + 55, + 102, + 56, + 52, + 45, + 52, + 54, + 56, + 57, + 45, + 98, + 102, + 57, + 55, + 45, + 49, + 53, + 52, + 56, + 49, + 54, + 51, + 101, + 54, + 52, + 52, + 99, + 34, + 44, + 34, + 105, + 100, + 101, + 110, + 116, + 105, + 102, + 105, + 99, + 97, + 116, + 105, + 101, + 34, + 58, + 34, + 48, + 98, + 49, + 50, + 101, + 51, + 97, + 48, + 45, + 51, + 53, + 98, + 54, + 45, + 52, + 50, + 54, + 49, + 45, + 97, + 54, + 98, + 97, + 45, + 102, + 50, + 48, + 57, + 97, + 52, + 55, + 51, + 50, + 52, + 57, + 50, + 34, + 44, + 34, + 111, + 109, + 115, + 99, + 104, + 114, + 105, + 106, + 118, + 105, + 110, + 103, + 34, + 58, + 34, + 90, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 32, + 102, + 111, + 114, + 32, + 97, + 114, + 99, + 104, + 105, + 118, + 105, + 110, + 103, + 32, + 116, + 101, + 115, + 116, + 115, + 32, + 118, + 97, + 115, + 116, + 95, + 116, + 101, + 95, + 108, + 101, + 103, + 103, + 101, + 110, + 95, + 100, + 97, + 116, + 117, + 109, + 34, + 44, + 34, + 111, + 109, + 115, + 99, + 104, + 114, + 105, + 106, + 118, + 105, + 110, + 103, + 71, + 101, + 110, + 101, + 114, + 105, + 101, + 107, + 34, + 58, + 34, + 34, + 44, + 34, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 117, + 115, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 105, + 92, + 47, + 118, + 49, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 117, + 115, + 115, + 101, + 110, + 92, + 47, + 53, + 48, + 53, + 55, + 52, + 48, + 56, + 102, + 45, + 102, + 100, + 55, + 54, + 45, + 52, + 54, + 57, + 101, + 45, + 56, + 54, + 52, + 54, + 45, + 98, + 99, + 99, + 52, + 98, + 97, + 50, + 101, + 102, + 97, + 56, + 100, + 34, + 44, + 34, + 100, + 111, + 101, + 108, + 34, + 58, + 34, + 116, + 101, + 115, + 116, + 32, + 100, + 111, + 101, + 108, + 34, + 44, + 34, + 97, + 97, + 110, + 108, + 101, + 105, + 100, + 105, + 110, + 103, + 34, + 58, + 34, + 116, + 101, + 115, + 116, + 32, + 97, + 97, + 110, + 108, + 101, + 105, + 100, + 105, + 110, + 103, + 34, + 44, + 34, + 111, + 110, + 100, + 101, + 114, + 119, + 101, + 114, + 112, + 34, + 58, + 34, + 111, + 112, + 101, + 110, + 98, + 97, + 114, + 101, + 32, + 114, + 117, + 105, + 109, + 116, + 101, + 34, + 44, + 34, + 100, + 111, + 111, + 114, + 108, + 111, + 111, + 112, + 116, + 105, + 106, + 100, + 34, + 58, + 34, + 80, + 49, + 48, + 68, + 34, + 44, + 34, + 118, + 101, + 114, + 116, + 114, + 111, + 117, + 119, + 101, + 108, + 105, + 106, + 107, + 104, + 101, + 105, + 100, + 97, + 97, + 110, + 100, + 117, + 105, + 100, + 105, + 110, + 103, + 34, + 58, + 34, + 111, + 112, + 101, + 110, + 98, + 97, + 97, + 114, + 34, + 44, + 34, + 99, + 111, + 110, + 99, + 101, + 112, + 116, + 34, + 58, + 116, + 114, + 117, + 101, + 44, + 34, + 98, + 101, + 103, + 105, + 110, + 71, + 101, + 108, + 100, + 105, + 103, + 104, + 101, + 105, + 100, + 34, + 58, + 34, + 50, + 48, + 49, + 57, + 45, + 48, + 49, + 45, + 48, + 49, + 34, + 44, + 34, + 101, + 105, + 110, + 100, + 101, + 71, + 101, + 108, + 100, + 105, + 103, + 104, + 101, + 105, + 100, + 34, + 58, + 34, + 50, + 48, + 50, + 54, + 45, + 48, + 51, + 45, + 49, + 48, + 34, + 44, + 34, + 104, + 97, + 110, + 100, + 101, + 108, + 105, + 110, + 103, + 73, + 110, + 105, + 116, + 105, + 97, + 116, + 111, + 114, + 34, + 58, + 34, + 105, + 110, + 100, + 105, + 101, + 110, + 101, + 110, + 34, + 44, + 34, + 105, + 110, + 100, + 105, + 99, + 97, + 116, + 105, + 101, + 73, + 110, + 116, + 101, + 114, + 110, + 79, + 102, + 69, + 120, + 116, + 101, + 114, + 110, + 34, + 58, + 34, + 101, + 120, + 116, + 101, + 114, + 110, + 34, + 44, + 34, + 104, + 97, + 110, + 100, + 101, + 108, + 105, + 110, + 103, + 66, + 101, + 104, + 97, + 110, + 100, + 101, + 108, + 97, + 97, + 114, + 34, + 58, + 34, + 98, + 101, + 104, + 97, + 110, + 100, + 101, + 108, + 101, + 110, + 34, + 44, + 34, + 111, + 112, + 115, + 99, + 104, + 111, + 114, + 116, + 105, + 110, + 103, + 69, + 110, + 65, + 97, + 110, + 104, + 111, + 117, + 100, + 105, + 110, + 103, + 77, + 111, + 103, + 101, + 108, + 105, + 106, + 107, + 34, + 58, + 102, + 97, + 108, + 115, + 101, + 44, + 34, + 118, + 101, + 114, + 108, + 101, + 110, + 103, + 105, + 110, + 103, + 77, + 111, + 103, + 101, + 108, + 105, + 106, + 107, + 34, + 58, + 116, + 114, + 117, + 101, + 44, + 34, + 118, + 101, + 114, + 108, + 101, + 110, + 103, + 105, + 110, + 103, + 115, + 116, + 101, + 114, + 109, + 105, + 106, + 110, + 34, + 58, + 34, + 80, + 53, + 68, + 34, + 44, + 34, + 112, + 117, + 98, + 108, + 105, + 99, + 97, + 116, + 105, + 101, + 73, + 110, + 100, + 105, + 99, + 97, + 116, + 105, + 101, + 34, + 58, + 102, + 97, + 108, + 115, + 101, + 44, + 34, + 112, + 114, + 111, + 100, + 117, + 99, + 116, + 101, + 110, + 79, + 102, + 68, + 105, + 101, + 110, + 115, + 116, + 101, + 110, + 34, + 58, + 91, + 34, + 104, + 116, + 116, + 112, + 115, + 58, + 92, + 47, + 92, + 47, + 114, + 101, + 102, + 46, + 116, + 115, + 116, + 46, + 118, + 110, + 103, + 46, + 99, + 108, + 111, + 117, + 100, + 92, + 47, + 115, + 116, + 97, + 110, + 100, + 97, + 97, + 114, + 100, + 92, + 47, + 34, + 93, + 44, + 34, + 115, + 101, + 108, + 101, + 99, + 116, + 105, + 101, + 108, + 105, + 106, + 115, + 116, + 80, + 114, + 111, + 99, + 101, + 115, + 116, + 121, + 112, + 101, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 115, + 58, + 92, + 47, + 92, + 47, + 114, + 101, + 102, + 101, + 114, + 101, + 110, + 116, + 105, + 101, + 108, + 105, + 106, + 115, + 116, + 101, + 110, + 46, + 114, + 111, + 120, + 105, + 116, + 46, + 110, + 108, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 118, + 49, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 121, + 112, + 101, + 110, + 92, + 47, + 99, + 100, + 98, + 52, + 54, + 102, + 48, + 53, + 45, + 48, + 55, + 53, + 48, + 45, + 52, + 100, + 56, + 51, + 45, + 56, + 48, + 50, + 53, + 45, + 51, + 49, + 101, + 50, + 48, + 52, + 48, + 56, + 101, + 100, + 50, + 49, + 34, + 44, + 34, + 114, + 101, + 102, + 101, + 114, + 101, + 110, + 116, + 105, + 101, + 112, + 114, + 111, + 99, + 101, + 115, + 34, + 58, + 123, + 34, + 108, + 105, + 110, + 107, + 34, + 58, + 34, + 34, + 44, + 34, + 110, + 97, + 97, + 109, + 34, + 58, + 34, + 116, + 101, + 115, + 116, + 34, + 125, + 44, + 34, + 118, + 101, + 114, + 97, + 110, + 116, + 119, + 111, + 111, + 114, + 100, + 101, + 108, + 105, + 106, + 107, + 101, + 34, + 58, + 34, + 88, + 34, + 44, + 34, + 103, + 101, + 114, + 101, + 108, + 97, + 116, + 101, + 101, + 114, + 100, + 101, + 90, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 98, + 101, + 115, + 108, + 117, + 105, + 116, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 105, + 110, + 102, + 111, + 114, + 109, + 97, + 116, + 105, + 101, + 111, + 98, + 106, + 101, + 99, + 116, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 100, + 101, + 101, + 108, + 122, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 116, + 111, + 101, + 108, + 105, + 99, + 104, + 116, + 105, + 110, + 103, + 34, + 58, + 34, + 34, + 44, + 34, + 118, + 101, + 114, + 115, + 105, + 101, + 100, + 97, + 116, + 117, + 109, + 34, + 58, + 34, + 50, + 48, + 49, + 57, + 45, + 48, + 49, + 45, + 48, + 49, + 34, + 44, + 34, + 101, + 105, + 103, + 101, + 110, + 115, + 99, + 104, + 97, + 112, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 115, + 116, + 97, + 116, + 117, + 115, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 114, + 101, + 115, + 117, + 108, + 116, + 97, + 97, + 116, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 114, + 111, + 108, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 125 + ] + }, + "cookie": [], + "responseTime": 326, + "responseSize": 1376 + }, + "id": "2402796c-cf3c-44bf-971b-bb98792992b7" + }, + { + "cursor": { + "ref": "740ea8c3-fbd7-4995-a658-90d8cd9bb2e4", + "length": 313, + "cycles": 1, + "position": 225, + "iteration": 0, + "httpRequestId": "310c67c2-f868-4033-b3f1-19c2cc1b3f93" + }, + "item": { + "id": "e300eb0f-2958-4c6a-8e09-4c4e64bef025", + "name": "Create Resultaattype afleidingswijze eigenschap", + "request": { + "url": { + "path": [ + "resultaattypen" + ], + "host": [ + "{{ztc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n \"zaaktype\": \"{{zaaktype_procestermijn_vast_te_leggen_datum_url}}\",\n \"omschrijving\": \"TEST\",\n \"resultaattypeomschrijving\": \"https://referentielijsten.roxit.nl/api/v1/resultaattypeomschrijvingen/bae947e7-02b5-44f9-ab76-28c7a0ed01c0\",\n \"selectielijstklasse\": \"{{selectielijstklasse_procestermijn_vast_te_leggen_datum_url}}\",\n \"brondatumArchiefprocedure\": {\n \"afleidingswijze\": \"eigenschap\",\n \"procestermijn\": null,\n \"datumkenmerk\": \"archivering_test\",\n \"einddatumBekend\": true,\n \"objecttype\": \"\",\n \"registratie\": \"\"\n },\n \"besluittypen\": []\n}" + } + }, + "response": [], + "event": [ + { + "listen": "prerequest", + "script": { + "id": "7511dd77-64ee-4643-ac1a-8340d42a609c", + "type": "text/javascript", + "packages": {}, + "exec": [ + "" + ], + "_lastExecutionId": "93485a7e-9557-4400-b237-a57ab005fc6e" + } + }, + { + "listen": "test", + "script": { + "id": "591b7c86-f243-472c-a387-9890133a5f24", + "type": "text/javascript", + "packages": {}, + "exec": [ + "var jsonData = pm.response.json();", + "", + "pm.environment.set(\"current_resultaattype\", jsonData.url);", + "pm.environment.set(\"resultaattype_archiefnominatie\", jsonData.archiefnominatie);", + "pm.environment.set(\"resultaattype_archiefactietermijn\", jsonData.archiefactietermijn);", + "pm.environment.set(\"resultaattype_brondatumArchiefprocedure\", jsonData.brondatumArchiefprocedure);" + ], + "_lastExecutionId": "28274228-1d86-4737-91d7-2c07e564ca91" + } + } + ] + }, + "request": { + "url": { + "protocol": "http", + "port": "8080", + "path": [ + "index.php", + "apps", + "procest", + "api", + "zgw", + "catalogi", + "v1", + "resultaattypen" + ], + "host": [ + "localhost" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Authorization", + "value": "Bearer eyJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJwcm9jZXN0LWFkbWluIiwiY2xpZW50X2lkIjoicHJvY2VzdC1hZG1pbiIsImlhdCI6IjE3NzMxNDUxOTciLCJ1c2VyX2lkIjoicHJvY2VzdC1hZG1pbiIsInVzZXJfcmVwcmVzZW50YXRpb24iOiIifQ.NU6WcTcZX8kj2J6o6dArHraCgviKPG47egMU6DmJlIs", + "system": true + }, + { + "key": "User-Agent", + "value": "PostmanRuntime/7.39.1", + "system": true + }, + { + "key": "Accept", + "value": "*/*", + "system": true + }, + { + "key": "Cache-Control", + "value": "no-cache", + "system": true + }, + { + "key": "Postman-Token", + "value": "372298df-9c92-43db-abc5-3a9bb752c2e2", + "system": true + }, + { + "key": "Host", + "value": "localhost:8080", + "system": true + }, + { + "key": "Accept-Encoding", + "value": "gzip, deflate, br", + "system": true + }, + { + "key": "Connection", + "value": "keep-alive", + "system": true + }, + { + "key": "Content-Length", + "value": "690", + "system": true + }, + { + "key": "Cookie", + "value": "ocvp3112b4wg=2dd7e5494d992bf073376ce0d06ed37f; oc_sessionPassphrase=LBNdKxRzA0iqoULIruNxDDh2BK3O%2BrCIU8aUmiUcOFvy5Xw1YfjwQNlmBW2IkGwJYtxXh9%2BwDN6vYuGNX07tXzkBtjQJUWTGdzf8AIOUIVxVx5DfyWAQZ7nmYmQv6XSE; nc_sameSiteCookielax=true; nc_sameSiteCookiestrict=true", + "system": true + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n \"zaaktype\": \"http://localhost:8080/index.php/apps/procest/api/zgw/catalogi/v1/zaaktypen/e15f4ba8-7f84-4689-bf97-1548163e644c\",\n \"omschrijving\": \"TEST\",\n \"resultaattypeomschrijving\": \"https://referentielijsten.roxit.nl/api/v1/resultaattypeomschrijvingen/bae947e7-02b5-44f9-ab76-28c7a0ed01c0\",\n \"selectielijstklasse\": \"https://selectielijst.openzaak.nl/api/v1/resultaten/80ffe8cb-e430-4ae9-a48b-34a9ef21e3cd\",\n \"brondatumArchiefprocedure\": {\n \"afleidingswijze\": \"eigenschap\",\n \"procestermijn\": null,\n \"datumkenmerk\": \"archivering_test\",\n \"einddatumBekend\": true,\n \"objecttype\": \"\",\n \"registratie\": \"\"\n },\n \"besluittypen\": []\n}" + }, + "auth": { + "type": "jwt", + "jwt": [ + { + "type": "string", + "value": "{\r\n \"iss\": \"procest-admin\",\r\n \"client_id\": \"procest-admin\",\r\n \"iat\": \"1773145197\",\r\n \"user_id\": \"procest-admin\",\r\n \"user_representation\": \"\"\r\n}", + "key": "payload" + }, + { + "type": "string", + "value": "procest-admin-secret-key-for-testing", + "key": "secret" + }, + { + "type": "string", + "value": "HS256", + "key": "algorithm" + }, + { + "type": "boolean", + "value": false, + "key": "isSecretBase64Encoded" + }, + { + "type": "string", + "value": "header", + "key": "addTokenTo" + }, + { + "type": "string", + "value": "Bearer", + "key": "headerPrefix" + }, + { + "type": "string", + "value": "token", + "key": "queryParamKey" + }, + { + "type": "string", + "value": "{}", + "key": "header" + } + ] + } + }, + "response": { + "id": "e102655d-b0db-4435-a807-c7b284c3d973", + "status": "Bad request", + "code": 400, + "header": [ + { + "key": "Date", + "value": "Tue, 10 Mar 2026 12:19:57 GMT" + }, + { + "key": "Server", + "value": "Apache/2.4.66 (Debian)" + }, + { + "key": "X-Content-Type-Options", + "value": "nosniff" + }, + { + "key": "X-Frame-Options", + "value": "SAMEORIGIN" + }, + { + "key": "X-Permitted-Cross-Domain-Policies", + "value": "none" + }, + { + "key": "X-Robots-Tag", + "value": "noindex, nofollow" + }, + { + "key": "Referrer-Policy", + "value": "no-referrer" + }, + { + "key": "X-Powered-By", + "value": "PHP/8.3.30" + }, + { + "key": "Content-Security-Policy", + "value": "default-src 'none';base-uri 'none';manifest-src 'self';frame-ancestors 'none'" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=2dd7e5494d992bf073376ce0d06ed37f; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=2dd7e5494d992bf073376ce0d06ed37f; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=2dd7e5494d992bf073376ce0d06ed37f; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=2dd7e5494d992bf073376ce0d06ed37f; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=2dd7e5494d992bf073376ce0d06ed37f; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=8916cfd87db9caaa4012a6bb6ace6a87; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=8916cfd87db9caaa4012a6bb6ace6a87; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=8916cfd87db9caaa4012a6bb6ace6a87; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=8916cfd87db9caaa4012a6bb6ace6a87; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=8916cfd87db9caaa4012a6bb6ace6a87; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "X-Request-Id", + "value": "YXYGd2UeptPe4VAeLBUH" + }, + { + "key": "Cache-Control", + "value": "no-cache, no-store, must-revalidate" + }, + { + "key": "Feature-Policy", + "value": "autoplay 'none';camera 'none';fullscreen 'none';geolocation 'none';microphone 'none';payment 'none'" + }, + { + "key": "X-User-Id", + "value": "admin" + }, + { + "key": "Content-Length", + "value": "290" + }, + { + "key": "Connection", + "value": "close" + }, + { + "key": "Content-Type", + "value": "application/json; charset=utf-8" + } + ], + "stream": { + "type": "Buffer", + "data": [ + 123, + 34, + 100, + 101, + 116, + 97, + 105, + 108, + 34, + 58, + 34, + 72, + 101, + 116, + 32, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 121, + 112, + 101, + 32, + 118, + 97, + 110, + 32, + 100, + 101, + 32, + 115, + 101, + 108, + 101, + 99, + 116, + 105, + 101, + 108, + 105, + 106, + 115, + 116, + 107, + 108, + 97, + 115, + 115, + 101, + 32, + 107, + 111, + 109, + 116, + 32, + 110, + 105, + 101, + 116, + 32, + 111, + 118, + 101, + 114, + 101, + 101, + 110, + 32, + 109, + 101, + 116, + 32, + 104, + 101, + 116, + 32, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 121, + 112, + 101, + 32, + 118, + 97, + 110, + 32, + 104, + 101, + 116, + 32, + 122, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 46, + 34, + 44, + 34, + 105, + 110, + 118, + 97, + 108, + 105, + 100, + 80, + 97, + 114, + 97, + 109, + 115, + 34, + 58, + 91, + 123, + 34, + 110, + 97, + 109, + 101, + 34, + 58, + 34, + 110, + 111, + 110, + 70, + 105, + 101, + 108, + 100, + 69, + 114, + 114, + 111, + 114, + 115, + 34, + 44, + 34, + 99, + 111, + 100, + 101, + 34, + 58, + 34, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 121, + 112, + 101, + 45, + 109, + 105, + 115, + 109, + 97, + 116, + 99, + 104, + 34, + 44, + 34, + 114, + 101, + 97, + 115, + 111, + 110, + 34, + 58, + 34, + 72, + 101, + 116, + 32, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 121, + 112, + 101, + 32, + 118, + 97, + 110, + 32, + 100, + 101, + 32, + 115, + 101, + 108, + 101, + 99, + 116, + 105, + 101, + 108, + 105, + 106, + 115, + 116, + 107, + 108, + 97, + 115, + 115, + 101, + 32, + 107, + 111, + 109, + 116, + 32, + 110, + 105, + 101, + 116, + 32, + 111, + 118, + 101, + 114, + 101, + 101, + 110, + 32, + 109, + 101, + 116, + 32, + 104, + 101, + 116, + 32, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 121, + 112, + 101, + 32, + 118, + 97, + 110, + 32, + 104, + 101, + 116, + 32, + 122, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 46, + 34, + 125, + 93, + 125 + ] + }, + "cookie": [], + "responseTime": 334, + "responseSize": 290 + }, + "id": "e300eb0f-2958-4c6a-8e09-4c4e64bef025" + }, + { + "cursor": { + "ref": "04ba41c3-b4b5-42fb-9de5-09c2a62ee2ab", + "length": 313, + "cycles": 1, + "position": 226, + "iteration": 0, + "httpRequestId": "360938aa-af21-4698-ac2c-c31463d6cb70" + }, + "item": { + "id": "3d7bbd94-c1a8-40cf-88ec-87c8fecdba21", + "name": "Create eind Statustype procestermijn vast_te_leggen_datum", + "request": { + "url": { + "path": [ + "statustypen" + ], + "host": [ + "{{ztc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n\t\"omschrijving\": \"Eind\",\n\t\"zaaktype\": \"{{zaaktype_procestermijn_vast_te_leggen_datum_url}}\",\n\t\"volgnummer\": 2\n}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "bc848531-8a2b-430e-834e-a18f45b9be24", + "type": "text/javascript", + "exec": [ + "pm.environment.set(\"current_statustype_url\", pm.response.json().url);" + ], + "_lastExecutionId": "3f95093c-1f07-4ce7-bd7b-fff029042c69" + } + } + ] + }, + "request": { + "url": { + "protocol": "http", + "port": "8080", + "path": [ + "index.php", + "apps", + "procest", + "api", + "zgw", + "catalogi", + "v1", + "statustypen" + ], + "host": [ + "localhost" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Authorization", + "value": "Bearer eyJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJwcm9jZXN0LWFkbWluIiwiY2xpZW50X2lkIjoicHJvY2VzdC1hZG1pbiIsImlhdCI6IjE3NzMxNDUxOTgiLCJ1c2VyX2lkIjoicHJvY2VzdC1hZG1pbiIsInVzZXJfcmVwcmVzZW50YXRpb24iOiIifQ.D6wDOZIQbopgUVAd8CD1WwvHgEyc0ZnGeQB2DdLp1FE", + "system": true + }, + { + "key": "User-Agent", + "value": "PostmanRuntime/7.39.1", + "system": true + }, + { + "key": "Accept", + "value": "*/*", + "system": true + }, + { + "key": "Cache-Control", + "value": "no-cache", + "system": true + }, + { + "key": "Postman-Token", + "value": "b262c24b-1c52-4b59-974e-71f86baed769", + "system": true + }, + { + "key": "Host", + "value": "localhost:8080", + "system": true + }, + { + "key": "Accept-Encoding", + "value": "gzip, deflate, br", + "system": true + }, + { + "key": "Connection", + "value": "keep-alive", + "system": true + }, + { + "key": "Content-Length", + "value": "173", + "system": true + }, + { + "key": "Cookie", + "value": "ocvp3112b4wg=8916cfd87db9caaa4012a6bb6ace6a87; oc_sessionPassphrase=LBNdKxRzA0iqoULIruNxDDh2BK3O%2BrCIU8aUmiUcOFvy5Xw1YfjwQNlmBW2IkGwJYtxXh9%2BwDN6vYuGNX07tXzkBtjQJUWTGdzf8AIOUIVxVx5DfyWAQZ7nmYmQv6XSE; nc_sameSiteCookielax=true; nc_sameSiteCookiestrict=true", + "system": true + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n\t\"omschrijving\": \"Eind\",\n\t\"zaaktype\": \"http://localhost:8080/index.php/apps/procest/api/zgw/catalogi/v1/zaaktypen/e15f4ba8-7f84-4689-bf97-1548163e644c\",\n\t\"volgnummer\": 2\n}" + }, + "auth": { + "type": "jwt", + "jwt": [ + { + "type": "string", + "value": "{\r\n \"iss\": \"procest-admin\",\r\n \"client_id\": \"procest-admin\",\r\n \"iat\": \"1773145198\",\r\n \"user_id\": \"procest-admin\",\r\n \"user_representation\": \"\"\r\n}", + "key": "payload" + }, + { + "type": "string", + "value": "procest-admin-secret-key-for-testing", + "key": "secret" + }, + { + "type": "string", + "value": "HS256", + "key": "algorithm" + }, + { + "type": "boolean", + "value": false, + "key": "isSecretBase64Encoded" + }, + { + "type": "string", + "value": "header", + "key": "addTokenTo" + }, + { + "type": "string", + "value": "Bearer", + "key": "headerPrefix" + }, + { + "type": "string", + "value": "token", + "key": "queryParamKey" + }, + { + "type": "string", + "value": "{}", + "key": "header" + } + ] + } + }, + "response": { + "id": "651e6fe0-27d5-43aa-9162-393b8a44d284", + "status": "Created", + "code": 201, + "header": [ + { + "key": "Date", + "value": "Tue, 10 Mar 2026 12:19:57 GMT" + }, + { + "key": "Server", + "value": "Apache/2.4.66 (Debian)" + }, + { + "key": "X-Content-Type-Options", + "value": "nosniff" + }, + { + "key": "X-Frame-Options", + "value": "SAMEORIGIN" + }, + { + "key": "X-Permitted-Cross-Domain-Policies", + "value": "none" + }, + { + "key": "X-Robots-Tag", + "value": "noindex, nofollow" + }, + { + "key": "Referrer-Policy", + "value": "no-referrer" + }, + { + "key": "X-Powered-By", + "value": "PHP/8.3.30" + }, + { + "key": "Content-Security-Policy", + "value": "default-src 'none';base-uri 'none';manifest-src 'self';frame-ancestors 'none'" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=8916cfd87db9caaa4012a6bb6ace6a87; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=8916cfd87db9caaa4012a6bb6ace6a87; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=8916cfd87db9caaa4012a6bb6ace6a87; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=8916cfd87db9caaa4012a6bb6ace6a87; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=8916cfd87db9caaa4012a6bb6ace6a87; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=2599af21d71f7e7046e52b3a23e819f5; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=2599af21d71f7e7046e52b3a23e819f5; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=2599af21d71f7e7046e52b3a23e819f5; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=2599af21d71f7e7046e52b3a23e819f5; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=2599af21d71f7e7046e52b3a23e819f5; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "X-Request-Id", + "value": "DcXRhXk3mrjkfhrefXqV" + }, + { + "key": "Cache-Control", + "value": "no-cache, no-store, must-revalidate" + }, + { + "key": "Feature-Policy", + "value": "autoplay 'none';camera 'none';fullscreen 'none';geolocation 'none';microphone 'none';payment 'none'" + }, + { + "key": "X-User-Id", + "value": "admin" + }, + { + "key": "Content-Length", + "value": "400" + }, + { + "key": "Keep-Alive", + "value": "timeout=5, max=100" + }, + { + "key": "Connection", + "value": "Keep-Alive" + }, + { + "key": "Content-Type", + "value": "application/json; charset=utf-8" + } + ], + "stream": { + "type": "Buffer", + "data": [ + 123, + 34, + 117, + 114, + 108, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 105, + 92, + 47, + 118, + 49, + 92, + 47, + 115, + 116, + 97, + 116, + 117, + 115, + 116, + 121, + 112, + 101, + 110, + 92, + 47, + 101, + 50, + 101, + 51, + 54, + 53, + 56, + 98, + 45, + 54, + 52, + 97, + 102, + 45, + 52, + 97, + 57, + 100, + 45, + 56, + 56, + 54, + 55, + 45, + 54, + 51, + 102, + 100, + 50, + 50, + 57, + 100, + 102, + 51, + 56, + 50, + 34, + 44, + 34, + 117, + 117, + 105, + 100, + 34, + 58, + 34, + 101, + 50, + 101, + 51, + 54, + 53, + 56, + 98, + 45, + 54, + 52, + 97, + 102, + 45, + 52, + 97, + 57, + 100, + 45, + 56, + 56, + 54, + 55, + 45, + 54, + 51, + 102, + 100, + 50, + 50, + 57, + 100, + 102, + 51, + 56, + 50, + 34, + 44, + 34, + 111, + 109, + 115, + 99, + 104, + 114, + 105, + 106, + 118, + 105, + 110, + 103, + 34, + 58, + 34, + 69, + 105, + 110, + 100, + 34, + 44, + 34, + 111, + 109, + 115, + 99, + 104, + 114, + 105, + 106, + 118, + 105, + 110, + 103, + 71, + 101, + 110, + 101, + 114, + 105, + 101, + 107, + 34, + 58, + 34, + 34, + 44, + 34, + 122, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 105, + 92, + 47, + 118, + 49, + 92, + 47, + 122, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 110, + 92, + 47, + 101, + 49, + 53, + 102, + 52, + 98, + 97, + 56, + 45, + 55, + 102, + 56, + 52, + 45, + 52, + 54, + 56, + 57, + 45, + 98, + 102, + 57, + 55, + 45, + 49, + 53, + 52, + 56, + 49, + 54, + 51, + 101, + 54, + 52, + 52, + 99, + 34, + 44, + 34, + 118, + 111, + 108, + 103, + 110, + 117, + 109, + 109, + 101, + 114, + 34, + 58, + 50, + 44, + 34, + 105, + 115, + 69, + 105, + 110, + 100, + 115, + 116, + 97, + 116, + 117, + 115, + 34, + 58, + 102, + 97, + 108, + 115, + 101, + 125 + ] + }, + "cookie": [], + "responseTime": 177, + "responseSize": 400 + }, + "id": "3d7bbd94-c1a8-40cf-88ec-87c8fecdba21" + }, + { + "cursor": { + "ref": "33f44e58-8b3b-4693-8c5f-74227aaf6a30", + "length": 313, + "cycles": 1, + "position": 227, + "iteration": 0, + "httpRequestId": "7dc92ffe-7d4b-4af0-a9b2-4d0bfb0edc3e" + }, + "item": { + "id": "57cc5a90-b924-4944-a5ea-248a4fccd6e0", + "name": "Create Eigenschap for zaaktype", + "request": { + "url": { + "path": [ + "eigenschappen" + ], + "host": [ + "{{ztc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n\t\"naam\": \"archivering_test\",\n\t\"definitie\": \"test\",\n\t\"zaaktype\": \"{{zaaktype_procestermijn_vast_te_leggen_datum_url}}\",\n \"specificatie\": {\n \"formaat\": \"datum\",\n \"lengte\": \"8\",\n \"kardinaliteit\": \"1\",\n\n }\n}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "c2bbdf78-bbde-49a6-8c34-d7b7a4d34ad5", + "type": "text/javascript", + "packages": {}, + "exec": [ + "pm.environment.set(\"archivering_eigenschap_url\", pm.response.json().url);" + ], + "_lastExecutionId": "d1b72ef1-76ce-4e12-a000-1544fe81760a" + } + } + ] + }, + "request": { + "url": { + "protocol": "http", + "port": "8080", + "path": [ + "index.php", + "apps", + "procest", + "api", + "zgw", + "catalogi", + "v1", + "eigenschappen" + ], + "host": [ + "localhost" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Authorization", + "value": "Bearer eyJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJwcm9jZXN0LWFkbWluIiwiY2xpZW50X2lkIjoicHJvY2VzdC1hZG1pbiIsImlhdCI6IjE3NzMxNDUxOTgiLCJ1c2VyX2lkIjoicHJvY2VzdC1hZG1pbiIsInVzZXJfcmVwcmVzZW50YXRpb24iOiIifQ.D6wDOZIQbopgUVAd8CD1WwvHgEyc0ZnGeQB2DdLp1FE", + "system": true + }, + { + "key": "User-Agent", + "value": "PostmanRuntime/7.39.1", + "system": true + }, + { + "key": "Accept", + "value": "*/*", + "system": true + }, + { + "key": "Cache-Control", + "value": "no-cache", + "system": true + }, + { + "key": "Postman-Token", + "value": "758c74fc-247b-422f-8d0f-e5d8eda92aa1", + "system": true + }, + { + "key": "Host", + "value": "localhost:8080", + "system": true + }, + { + "key": "Accept-Encoding", + "value": "gzip, deflate, br", + "system": true + }, + { + "key": "Connection", + "value": "keep-alive", + "system": true + }, + { + "key": "Content-Length", + "value": "292", + "system": true + }, + { + "key": "Cookie", + "value": "ocvp3112b4wg=2599af21d71f7e7046e52b3a23e819f5; oc_sessionPassphrase=LBNdKxRzA0iqoULIruNxDDh2BK3O%2BrCIU8aUmiUcOFvy5Xw1YfjwQNlmBW2IkGwJYtxXh9%2BwDN6vYuGNX07tXzkBtjQJUWTGdzf8AIOUIVxVx5DfyWAQZ7nmYmQv6XSE; nc_sameSiteCookielax=true; nc_sameSiteCookiestrict=true", + "system": true + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n\t\"naam\": \"archivering_test\",\n\t\"definitie\": \"test\",\n\t\"zaaktype\": \"http://localhost:8080/index.php/apps/procest/api/zgw/catalogi/v1/zaaktypen/e15f4ba8-7f84-4689-bf97-1548163e644c\",\n \"specificatie\": {\n \"formaat\": \"datum\",\n \"lengte\": \"8\",\n \"kardinaliteit\": \"1\",\n\n }\n}" + }, + "auth": { + "type": "jwt", + "jwt": [ + { + "type": "string", + "value": "{\r\n \"iss\": \"procest-admin\",\r\n \"client_id\": \"procest-admin\",\r\n \"iat\": \"1773145198\",\r\n \"user_id\": \"procest-admin\",\r\n \"user_representation\": \"\"\r\n}", + "key": "payload" + }, + { + "type": "string", + "value": "procest-admin-secret-key-for-testing", + "key": "secret" + }, + { + "type": "string", + "value": "HS256", + "key": "algorithm" + }, + { + "type": "boolean", + "value": false, + "key": "isSecretBase64Encoded" + }, + { + "type": "string", + "value": "header", + "key": "addTokenTo" + }, + { + "type": "string", + "value": "Bearer", + "key": "headerPrefix" + }, + { + "type": "string", + "value": "token", + "key": "queryParamKey" + }, + { + "type": "string", + "value": "{}", + "key": "header" + } + ] + } + }, + "response": { + "id": "c573b353-4610-4033-975f-3a14bf0b7157", + "status": "Bad request", + "code": 400, + "header": [ + { + "key": "Date", + "value": "Tue, 10 Mar 2026 12:19:58 GMT" + }, + { + "key": "Server", + "value": "Apache/2.4.66 (Debian)" + }, + { + "key": "X-Content-Type-Options", + "value": "nosniff" + }, + { + "key": "X-Frame-Options", + "value": "SAMEORIGIN" + }, + { + "key": "X-Permitted-Cross-Domain-Policies", + "value": "none" + }, + { + "key": "X-Robots-Tag", + "value": "noindex, nofollow" + }, + { + "key": "Referrer-Policy", + "value": "no-referrer" + }, + { + "key": "X-Powered-By", + "value": "PHP/8.3.30" + }, + { + "key": "Content-Security-Policy", + "value": "default-src 'none';base-uri 'none';manifest-src 'self';frame-ancestors 'none'" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=2599af21d71f7e7046e52b3a23e819f5; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=2599af21d71f7e7046e52b3a23e819f5; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=2599af21d71f7e7046e52b3a23e819f5; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=2599af21d71f7e7046e52b3a23e819f5; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=2599af21d71f7e7046e52b3a23e819f5; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=d15ad148dd7c94efc179fffc09e0a886; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=d15ad148dd7c94efc179fffc09e0a886; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=d15ad148dd7c94efc179fffc09e0a886; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=d15ad148dd7c94efc179fffc09e0a886; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=d15ad148dd7c94efc179fffc09e0a886; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "X-Request-Id", + "value": "2GupInWWnt9LcMnyzRTT" + }, + { + "key": "Cache-Control", + "value": "no-cache, no-store, must-revalidate" + }, + { + "key": "Feature-Policy", + "value": "autoplay 'none';camera 'none';fullscreen 'none';geolocation 'none';microphone 'none';payment 'none'" + }, + { + "key": "X-User-Id", + "value": "admin" + }, + { + "key": "Content-Length", + "value": "122" + }, + { + "key": "Connection", + "value": "close" + }, + { + "key": "Content-Type", + "value": "application/json; charset=utf-8" + } + ], + "stream": { + "type": "Buffer", + "data": [ + 123, + 34, + 100, + 101, + 116, + 97, + 105, + 108, + 34, + 58, + 34, + 80, + 114, + 111, + 112, + 101, + 114, + 116, + 121, + 32, + 39, + 99, + 97, + 115, + 101, + 84, + 121, + 112, + 101, + 39, + 32, + 115, + 104, + 111, + 117, + 108, + 100, + 32, + 109, + 97, + 116, + 99, + 104, + 32, + 102, + 111, + 114, + 109, + 97, + 116, + 32, + 39, + 117, + 117, + 105, + 100, + 39, + 32, + 98, + 117, + 116, + 32, + 39, + 39, + 32, + 100, + 111, + 101, + 115, + 32, + 110, + 111, + 116, + 46, + 32, + 80, + 108, + 101, + 97, + 115, + 101, + 32, + 112, + 114, + 111, + 118, + 105, + 100, + 101, + 32, + 97, + 32, + 118, + 97, + 108, + 117, + 101, + 32, + 105, + 110, + 32, + 116, + 104, + 101, + 32, + 99, + 111, + 114, + 114, + 101, + 99, + 116, + 32, + 102, + 111, + 114, + 109, + 97, + 116, + 46, + 34, + 125 + ] + }, + "cookie": [], + "responseTime": 109, + "responseSize": 122 + }, + "id": "57cc5a90-b924-4944-a5ea-248a4fccd6e0" + }, + { + "cursor": { + "ref": "72452659-e437-4332-8126-bd940fdd3e9a", + "length": 313, + "cycles": 1, + "position": 228, + "iteration": 0, + "httpRequestId": "b63633f5-5ab4-4675-a583-8efcbef3b221" + }, + "item": { + "id": "84709925-8c76-4642-a3d3-9422031168c4", + "name": "Publish Zaaktype procestermijn vast_te_leggen_datum", + "request": { + "url": { + "path": [ + "publish" + ], + "host": [ + "{{zaaktype_procestermijn_vast_te_leggen_datum_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "29dc6357-2101-419b-96cf-c74a977c10f0", + "type": "text/javascript", + "exec": [ + "pm.environment.set(\"archiving_zaaktypen\", [", + " pm.environment.get(\"zaaktype_procestermijn_nihil_url\"),", + " pm.environment.get(\"zaaktype_procestermijn_ingeschatte_bestaansduur_object_url\"),", + " pm.environment.get(\"zaaktype_procestermijn_vast_te_leggen_datum_url\")", + "]);" + ], + "_lastExecutionId": "87f19e2d-1410-4384-9893-1f142a599086" + } + }, + { + "listen": "prerequest", + "script": { + "id": "82d1b365-9513-4668-87d6-61d16273df2f", + "type": "text/javascript", + "exec": [ + "" + ], + "_lastExecutionId": "3b6e4d18-3854-4881-ad7c-0edd40998b9a" + } + } + ] + }, + "request": { + "url": { + "protocol": "http", + "port": "8080", + "path": [ + "index.php", + "apps", + "procest", + "api", + "zgw", + "catalogi", + "v1", + "zaaktypen", + "e15f4ba8-7f84-4689-bf97-1548163e644c", + "publish" + ], + "host": [ + "localhost" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Authorization", + "value": "Bearer eyJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJwcm9jZXN0LWFkbWluIiwiY2xpZW50X2lkIjoicHJvY2VzdC1hZG1pbiIsImlhdCI6IjE3NzMxNDUxOTgiLCJ1c2VyX2lkIjoicHJvY2VzdC1hZG1pbiIsInVzZXJfcmVwcmVzZW50YXRpb24iOiIifQ.D6wDOZIQbopgUVAd8CD1WwvHgEyc0ZnGeQB2DdLp1FE", + "system": true + }, + { + "key": "User-Agent", + "value": "PostmanRuntime/7.39.1", + "system": true + }, + { + "key": "Accept", + "value": "*/*", + "system": true + }, + { + "key": "Cache-Control", + "value": "no-cache", + "system": true + }, + { + "key": "Postman-Token", + "value": "ed13148c-8e34-4287-91cb-3a80c85f73d3", + "system": true + }, + { + "key": "Host", + "value": "localhost:8080", + "system": true + }, + { + "key": "Accept-Encoding", + "value": "gzip, deflate, br", + "system": true + }, + { + "key": "Connection", + "value": "keep-alive", + "system": true + }, + { + "key": "Cookie", + "value": "ocvp3112b4wg=d15ad148dd7c94efc179fffc09e0a886; oc_sessionPassphrase=LBNdKxRzA0iqoULIruNxDDh2BK3O%2BrCIU8aUmiUcOFvy5Xw1YfjwQNlmBW2IkGwJYtxXh9%2BwDN6vYuGNX07tXzkBtjQJUWTGdzf8AIOUIVxVx5DfyWAQZ7nmYmQv6XSE; nc_sameSiteCookielax=true; nc_sameSiteCookiestrict=true", + "system": true + }, + { + "key": "Content-Length", + "value": "0", + "system": true + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "" + }, + "auth": { + "type": "jwt", + "jwt": [ + { + "type": "string", + "value": "{\r\n \"iss\": \"procest-admin\",\r\n \"client_id\": \"procest-admin\",\r\n \"iat\": \"1773145198\",\r\n \"user_id\": \"procest-admin\",\r\n \"user_representation\": \"\"\r\n}", + "key": "payload" + }, + { + "type": "string", + "value": "procest-admin-secret-key-for-testing", + "key": "secret" + }, + { + "type": "string", + "value": "HS256", + "key": "algorithm" + }, + { + "type": "boolean", + "value": false, + "key": "isSecretBase64Encoded" + }, + { + "type": "string", + "value": "header", + "key": "addTokenTo" + }, + { + "type": "string", + "value": "Bearer", + "key": "headerPrefix" + }, + { + "type": "string", + "value": "token", + "key": "queryParamKey" + }, + { + "type": "string", + "value": "{}", + "key": "header" + } + ] + } + }, + "response": { + "id": "62c8b175-df4b-4493-a9d2-79b2c9df7196", + "status": "OK", + "code": 200, + "header": [ + { + "key": "Date", + "value": "Tue, 10 Mar 2026 12:19:58 GMT" + }, + { + "key": "Server", + "value": "Apache/2.4.66 (Debian)" + }, + { + "key": "X-Content-Type-Options", + "value": "nosniff" + }, + { + "key": "X-Frame-Options", + "value": "SAMEORIGIN" + }, + { + "key": "X-Permitted-Cross-Domain-Policies", + "value": "none" + }, + { + "key": "X-Robots-Tag", + "value": "noindex, nofollow" + }, + { + "key": "Referrer-Policy", + "value": "no-referrer" + }, + { + "key": "X-Powered-By", + "value": "PHP/8.3.30" + }, + { + "key": "Content-Security-Policy", + "value": "default-src 'none';base-uri 'none';manifest-src 'self';frame-ancestors 'none'" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=d15ad148dd7c94efc179fffc09e0a886; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=d15ad148dd7c94efc179fffc09e0a886; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=d15ad148dd7c94efc179fffc09e0a886; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=d15ad148dd7c94efc179fffc09e0a886; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=d15ad148dd7c94efc179fffc09e0a886; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=23037bcff976ad702a23d0311bd2a69b; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=23037bcff976ad702a23d0311bd2a69b; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=23037bcff976ad702a23d0311bd2a69b; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=23037bcff976ad702a23d0311bd2a69b; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=23037bcff976ad702a23d0311bd2a69b; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "X-Request-Id", + "value": "DsnCYk806MUNsQjZCnkR" + }, + { + "key": "Cache-Control", + "value": "no-cache, no-store, must-revalidate" + }, + { + "key": "Feature-Policy", + "value": "autoplay 'none';camera 'none';fullscreen 'none';geolocation 'none';microphone 'none';payment 'none'" + }, + { + "key": "X-User-Id", + "value": "admin" + }, + { + "key": "Content-Encoding", + "value": "gzip" + }, + { + "key": "Content-Length", + "value": "702" + }, + { + "key": "Keep-Alive", + "value": "timeout=5, max=100" + }, + { + "key": "Connection", + "value": "Keep-Alive" + }, + { + "key": "Content-Type", + "value": "application/json; charset=utf-8" + } + ], + "stream": { + "type": "Buffer", + "data": [ + 123, + 34, + 117, + 114, + 108, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 105, + 92, + 47, + 118, + 49, + 92, + 47, + 122, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 110, + 92, + 47, + 101, + 49, + 53, + 102, + 52, + 98, + 97, + 56, + 45, + 55, + 102, + 56, + 52, + 45, + 52, + 54, + 56, + 57, + 45, + 98, + 102, + 57, + 55, + 45, + 49, + 53, + 52, + 56, + 49, + 54, + 51, + 101, + 54, + 52, + 52, + 99, + 34, + 44, + 34, + 117, + 117, + 105, + 100, + 34, + 58, + 34, + 101, + 49, + 53, + 102, + 52, + 98, + 97, + 56, + 45, + 55, + 102, + 56, + 52, + 45, + 52, + 54, + 56, + 57, + 45, + 98, + 102, + 57, + 55, + 45, + 49, + 53, + 52, + 56, + 49, + 54, + 51, + 101, + 54, + 52, + 52, + 99, + 34, + 44, + 34, + 105, + 100, + 101, + 110, + 116, + 105, + 102, + 105, + 99, + 97, + 116, + 105, + 101, + 34, + 58, + 34, + 48, + 98, + 49, + 50, + 101, + 51, + 97, + 48, + 45, + 51, + 53, + 98, + 54, + 45, + 52, + 50, + 54, + 49, + 45, + 97, + 54, + 98, + 97, + 45, + 102, + 50, + 48, + 57, + 97, + 52, + 55, + 51, + 50, + 52, + 57, + 50, + 34, + 44, + 34, + 111, + 109, + 115, + 99, + 104, + 114, + 105, + 106, + 118, + 105, + 110, + 103, + 34, + 58, + 34, + 90, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 32, + 102, + 111, + 114, + 32, + 97, + 114, + 99, + 104, + 105, + 118, + 105, + 110, + 103, + 32, + 116, + 101, + 115, + 116, + 115, + 32, + 118, + 97, + 115, + 116, + 95, + 116, + 101, + 95, + 108, + 101, + 103, + 103, + 101, + 110, + 95, + 100, + 97, + 116, + 117, + 109, + 34, + 44, + 34, + 111, + 109, + 115, + 99, + 104, + 114, + 105, + 106, + 118, + 105, + 110, + 103, + 71, + 101, + 110, + 101, + 114, + 105, + 101, + 107, + 34, + 58, + 34, + 34, + 44, + 34, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 117, + 115, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 105, + 92, + 47, + 118, + 49, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 117, + 115, + 115, + 101, + 110, + 92, + 47, + 53, + 48, + 53, + 55, + 52, + 48, + 56, + 102, + 45, + 102, + 100, + 55, + 54, + 45, + 52, + 54, + 57, + 101, + 45, + 56, + 54, + 52, + 54, + 45, + 98, + 99, + 99, + 52, + 98, + 97, + 50, + 101, + 102, + 97, + 56, + 100, + 34, + 44, + 34, + 100, + 111, + 101, + 108, + 34, + 58, + 34, + 116, + 101, + 115, + 116, + 32, + 100, + 111, + 101, + 108, + 34, + 44, + 34, + 97, + 97, + 110, + 108, + 101, + 105, + 100, + 105, + 110, + 103, + 34, + 58, + 34, + 116, + 101, + 115, + 116, + 32, + 97, + 97, + 110, + 108, + 101, + 105, + 100, + 105, + 110, + 103, + 34, + 44, + 34, + 111, + 110, + 100, + 101, + 114, + 119, + 101, + 114, + 112, + 34, + 58, + 34, + 111, + 112, + 101, + 110, + 98, + 97, + 114, + 101, + 32, + 114, + 117, + 105, + 109, + 116, + 101, + 34, + 44, + 34, + 100, + 111, + 111, + 114, + 108, + 111, + 111, + 112, + 116, + 105, + 106, + 100, + 34, + 58, + 34, + 80, + 49, + 48, + 68, + 34, + 44, + 34, + 118, + 101, + 114, + 116, + 114, + 111, + 117, + 119, + 101, + 108, + 105, + 106, + 107, + 104, + 101, + 105, + 100, + 97, + 97, + 110, + 100, + 117, + 105, + 100, + 105, + 110, + 103, + 34, + 58, + 34, + 111, + 112, + 101, + 110, + 98, + 97, + 97, + 114, + 34, + 44, + 34, + 99, + 111, + 110, + 99, + 101, + 112, + 116, + 34, + 58, + 102, + 97, + 108, + 115, + 101, + 44, + 34, + 98, + 101, + 103, + 105, + 110, + 71, + 101, + 108, + 100, + 105, + 103, + 104, + 101, + 105, + 100, + 34, + 58, + 34, + 50, + 48, + 49, + 57, + 45, + 48, + 49, + 45, + 48, + 49, + 34, + 44, + 34, + 101, + 105, + 110, + 100, + 101, + 71, + 101, + 108, + 100, + 105, + 103, + 104, + 101, + 105, + 100, + 34, + 58, + 34, + 50, + 48, + 50, + 54, + 45, + 48, + 51, + 45, + 49, + 48, + 34, + 44, + 34, + 104, + 97, + 110, + 100, + 101, + 108, + 105, + 110, + 103, + 73, + 110, + 105, + 116, + 105, + 97, + 116, + 111, + 114, + 34, + 58, + 34, + 105, + 110, + 100, + 105, + 101, + 110, + 101, + 110, + 34, + 44, + 34, + 105, + 110, + 100, + 105, + 99, + 97, + 116, + 105, + 101, + 73, + 110, + 116, + 101, + 114, + 110, + 79, + 102, + 69, + 120, + 116, + 101, + 114, + 110, + 34, + 58, + 34, + 101, + 120, + 116, + 101, + 114, + 110, + 34, + 44, + 34, + 104, + 97, + 110, + 100, + 101, + 108, + 105, + 110, + 103, + 66, + 101, + 104, + 97, + 110, + 100, + 101, + 108, + 97, + 97, + 114, + 34, + 58, + 34, + 98, + 101, + 104, + 97, + 110, + 100, + 101, + 108, + 101, + 110, + 34, + 44, + 34, + 111, + 112, + 115, + 99, + 104, + 111, + 114, + 116, + 105, + 110, + 103, + 69, + 110, + 65, + 97, + 110, + 104, + 111, + 117, + 100, + 105, + 110, + 103, + 77, + 111, + 103, + 101, + 108, + 105, + 106, + 107, + 34, + 58, + 102, + 97, + 108, + 115, + 101, + 44, + 34, + 118, + 101, + 114, + 108, + 101, + 110, + 103, + 105, + 110, + 103, + 77, + 111, + 103, + 101, + 108, + 105, + 106, + 107, + 34, + 58, + 116, + 114, + 117, + 101, + 44, + 34, + 118, + 101, + 114, + 108, + 101, + 110, + 103, + 105, + 110, + 103, + 115, + 116, + 101, + 114, + 109, + 105, + 106, + 110, + 34, + 58, + 34, + 80, + 53, + 68, + 34, + 44, + 34, + 112, + 117, + 98, + 108, + 105, + 99, + 97, + 116, + 105, + 101, + 73, + 110, + 100, + 105, + 99, + 97, + 116, + 105, + 101, + 34, + 58, + 102, + 97, + 108, + 115, + 101, + 44, + 34, + 112, + 114, + 111, + 100, + 117, + 99, + 116, + 101, + 110, + 79, + 102, + 68, + 105, + 101, + 110, + 115, + 116, + 101, + 110, + 34, + 58, + 91, + 34, + 104, + 116, + 116, + 112, + 115, + 58, + 92, + 47, + 92, + 47, + 114, + 101, + 102, + 46, + 116, + 115, + 116, + 46, + 118, + 110, + 103, + 46, + 99, + 108, + 111, + 117, + 100, + 92, + 47, + 115, + 116, + 97, + 110, + 100, + 97, + 97, + 114, + 100, + 92, + 47, + 34, + 93, + 44, + 34, + 115, + 101, + 108, + 101, + 99, + 116, + 105, + 101, + 108, + 105, + 106, + 115, + 116, + 80, + 114, + 111, + 99, + 101, + 115, + 116, + 121, + 112, + 101, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 115, + 58, + 92, + 47, + 92, + 47, + 114, + 101, + 102, + 101, + 114, + 101, + 110, + 116, + 105, + 101, + 108, + 105, + 106, + 115, + 116, + 101, + 110, + 46, + 114, + 111, + 120, + 105, + 116, + 46, + 110, + 108, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 118, + 49, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 121, + 112, + 101, + 110, + 92, + 47, + 99, + 100, + 98, + 52, + 54, + 102, + 48, + 53, + 45, + 48, + 55, + 53, + 48, + 45, + 52, + 100, + 56, + 51, + 45, + 56, + 48, + 50, + 53, + 45, + 51, + 49, + 101, + 50, + 48, + 52, + 48, + 56, + 101, + 100, + 50, + 49, + 34, + 44, + 34, + 114, + 101, + 102, + 101, + 114, + 101, + 110, + 116, + 105, + 101, + 112, + 114, + 111, + 99, + 101, + 115, + 34, + 58, + 123, + 34, + 108, + 105, + 110, + 107, + 34, + 58, + 34, + 34, + 44, + 34, + 110, + 97, + 97, + 109, + 34, + 58, + 34, + 116, + 101, + 115, + 116, + 34, + 125, + 44, + 34, + 118, + 101, + 114, + 97, + 110, + 116, + 119, + 111, + 111, + 114, + 100, + 101, + 108, + 105, + 106, + 107, + 101, + 34, + 58, + 34, + 88, + 34, + 44, + 34, + 103, + 101, + 114, + 101, + 108, + 97, + 116, + 101, + 101, + 114, + 100, + 101, + 90, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 98, + 101, + 115, + 108, + 117, + 105, + 116, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 105, + 110, + 102, + 111, + 114, + 109, + 97, + 116, + 105, + 101, + 111, + 98, + 106, + 101, + 99, + 116, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 100, + 101, + 101, + 108, + 122, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 116, + 111, + 101, + 108, + 105, + 99, + 104, + 116, + 105, + 110, + 103, + 34, + 58, + 34, + 34, + 44, + 34, + 118, + 101, + 114, + 115, + 105, + 101, + 100, + 97, + 116, + 117, + 109, + 34, + 58, + 34, + 50, + 48, + 49, + 57, + 45, + 48, + 49, + 45, + 48, + 49, + 34, + 125 + ] + }, + "cookie": [], + "responseTime": 181, + "responseSize": 1307 + }, + "id": "84709925-8c76-4642-a3d3-9422031168c4" + }, + { + "cursor": { + "ref": "65cd7d67-2758-496e-b4c4-7ab157a80bd8", + "length": 313, + "cycles": 1, + "position": 229, + "iteration": 0, + "httpRequestId": "1aac73ae-48a3-4885-b17d-78f65c7da1a8" + }, + "item": { + "id": "d32ab4fe-74a3-4669-8e91-ddc7b6a917b8", + "name": "Create Zaak without archiefnominatie", + "request": { + "url": { + "path": [ + "zaken" + ], + "host": [ + "{{zrc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Accept-Crs", + "value": "EPSG:4326" + }, + { + "key": "Content-Crs", + "value": "EPSG:4326" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\r\n \"bronorganisatie\": \"000000000\",\r\n \"omschrijving\": \"string\",\r\n \"toelichting\": \"string\",\r\n \"zaaktype\": \"{{zaaktype_procestermijn_vast_te_leggen_datum_url}}\",\r\n \"registratiedatum\": \"2019-04-09\",\r\n \"verantwoordelijkeOrganisatie\": \"000000000\",\r\n \"startdatum\": \"2019-04-09\",\r\n \"einddatum\": null,\r\n \"einddatumGepland\": \"2019-04-20\",\r\n \"uiterlijkeEinddatumAfdoening\": \"2019-04-09\",\r\n \"publicatiedatum\": \"2019-04-09\",\r\n \"communicatiekanaal\": \"\",\r\n \"productenOfDiensten\": [],\r\n \"vertrouwelijkheidaanduiding\": \"geheim\",\r\n \"betalingsindicatie\": \"geheel\",\r\n \"betalingsindicatieWeergave\": null,\r\n \"laatsteBetaaldatum\": \"2019-01-01T00:00:00Z\",\r\n \"zaakgeometrie\": {\r\n \"type\": \"Point\",\r\n \"coordinates\": [\r\n 53.0,\r\n 5.0\r\n ]\r\n },\r\n \"verlenging\": null,\r\n \"opschorting\": null,\r\n \"selectielijstklasse\": \"https://referentielijsten.roxit.nl/api/v1/resultaten/0fe71ce3-b1e1-48eb-9070-be2756fc71b5\",\r\n \"hoofdzaak\": null,\r\n \"deelzaken\": [],\r\n \"relevanteAndereZaken\": [],\r\n \"eigenschappen\": [],\r\n \"rollen\": [],\r\n \"status\": null,\r\n \"zaakinformatieobjecten\": [],\r\n \"zaakobjecten\": [],\r\n \"resultaat\": null,\r\n \"kenmerken\": [],\r\n \"archiefnominatie\": null,\r\n \"archiefstatus\": \"nog_te_archiveren\",\r\n \"archiefactiedatum\": null,\r\n \"opdrachtgevendeOrganisatie\": null,\r\n \"processobjectaard\": null,\r\n \"startdatumBewaartermijn\": null,\r\n \"processobject\": null\r\n}" + } + }, + "response": [], + "event": [ + { + "listen": "prerequest", + "script": { + "id": "aac89af2-fedc-4f76-b3ad-c93944e2b1de", + "type": "text/javascript", + "packages": {}, + "exec": [ + "" + ], + "_lastExecutionId": "14757362-7bde-415d-a797-0bcd75abad76" + } + }, + { + "listen": "test", + "script": { + "id": "52af458d-dfec-4576-83be-df2e20e59bb0", + "type": "text/javascript", + "packages": {}, + "exec": [ + "pm.environment.set(\"zaak_zonder_archiefnominatie_url\", pm.response.json().url);" + ], + "_lastExecutionId": "50168ae3-a298-4396-8319-ff5de8903c1a" + } + } + ] + }, + "request": { + "url": { + "protocol": "http", + "port": "8080", + "path": [ + "index.php", + "apps", + "procest", + "api", + "zgw", + "zaken", + "v1", + "zaken" + ], + "host": [ + "localhost" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Accept-Crs", + "value": "EPSG:4326" + }, + { + "key": "Content-Crs", + "value": "EPSG:4326" + }, + { + "key": "Authorization", + "value": "Bearer eyJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJwcm9jZXN0LWFkbWluIiwiY2xpZW50X2lkIjoicHJvY2VzdC1hZG1pbiIsImlhdCI6IjE3NzMxNDUxOTgiLCJ1c2VyX2lkIjoicHJvY2VzdC1hZG1pbiIsInVzZXJfcmVwcmVzZW50YXRpb24iOiIifQ.D6wDOZIQbopgUVAd8CD1WwvHgEyc0ZnGeQB2DdLp1FE", + "system": true + }, + { + "key": "User-Agent", + "value": "PostmanRuntime/7.39.1", + "system": true + }, + { + "key": "Accept", + "value": "*/*", + "system": true + }, + { + "key": "Cache-Control", + "value": "no-cache", + "system": true + }, + { + "key": "Postman-Token", + "value": "e9fa492b-4ec5-47f7-9ad4-58f76cbf8ae5", + "system": true + }, + { + "key": "Host", + "value": "localhost:8080", + "system": true + }, + { + "key": "Accept-Encoding", + "value": "gzip, deflate, br", + "system": true + }, + { + "key": "Connection", + "value": "keep-alive", + "system": true + }, + { + "key": "Content-Length", + "value": "1544", + "system": true + }, + { + "key": "Cookie", + "value": "ocvp3112b4wg=23037bcff976ad702a23d0311bd2a69b; oc_sessionPassphrase=LBNdKxRzA0iqoULIruNxDDh2BK3O%2BrCIU8aUmiUcOFvy5Xw1YfjwQNlmBW2IkGwJYtxXh9%2BwDN6vYuGNX07tXzkBtjQJUWTGdzf8AIOUIVxVx5DfyWAQZ7nmYmQv6XSE; nc_sameSiteCookielax=true; nc_sameSiteCookiestrict=true", + "system": true + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\r\n \"bronorganisatie\": \"000000000\",\r\n \"omschrijving\": \"string\",\r\n \"toelichting\": \"string\",\r\n \"zaaktype\": \"http://localhost:8080/index.php/apps/procest/api/zgw/catalogi/v1/zaaktypen/e15f4ba8-7f84-4689-bf97-1548163e644c\",\r\n \"registratiedatum\": \"2019-04-09\",\r\n \"verantwoordelijkeOrganisatie\": \"000000000\",\r\n \"startdatum\": \"2019-04-09\",\r\n \"einddatum\": null,\r\n \"einddatumGepland\": \"2019-04-20\",\r\n \"uiterlijkeEinddatumAfdoening\": \"2019-04-09\",\r\n \"publicatiedatum\": \"2019-04-09\",\r\n \"communicatiekanaal\": \"\",\r\n \"productenOfDiensten\": [],\r\n \"vertrouwelijkheidaanduiding\": \"geheim\",\r\n \"betalingsindicatie\": \"geheel\",\r\n \"betalingsindicatieWeergave\": null,\r\n \"laatsteBetaaldatum\": \"2019-01-01T00:00:00Z\",\r\n \"zaakgeometrie\": {\r\n \"type\": \"Point\",\r\n \"coordinates\": [\r\n 53.0,\r\n 5.0\r\n ]\r\n },\r\n \"verlenging\": null,\r\n \"opschorting\": null,\r\n \"selectielijstklasse\": \"https://referentielijsten.roxit.nl/api/v1/resultaten/0fe71ce3-b1e1-48eb-9070-be2756fc71b5\",\r\n \"hoofdzaak\": null,\r\n \"deelzaken\": [],\r\n \"relevanteAndereZaken\": [],\r\n \"eigenschappen\": [],\r\n \"rollen\": [],\r\n \"status\": null,\r\n \"zaakinformatieobjecten\": [],\r\n \"zaakobjecten\": [],\r\n \"resultaat\": null,\r\n \"kenmerken\": [],\r\n \"archiefnominatie\": null,\r\n \"archiefstatus\": \"nog_te_archiveren\",\r\n \"archiefactiedatum\": null,\r\n \"opdrachtgevendeOrganisatie\": null,\r\n \"processobjectaard\": null,\r\n \"startdatumBewaartermijn\": null,\r\n \"processobject\": null\r\n}" + }, + "auth": { + "type": "jwt", + "jwt": [ + { + "type": "string", + "value": "{\r\n \"iss\": \"procest-admin\",\r\n \"client_id\": \"procest-admin\",\r\n \"iat\": \"1773145198\",\r\n \"user_id\": \"procest-admin\",\r\n \"user_representation\": \"\"\r\n}", + "key": "payload" + }, + { + "type": "string", + "value": "procest-admin-secret-key-for-testing", + "key": "secret" + }, + { + "type": "string", + "value": "HS256", + "key": "algorithm" + }, + { + "type": "boolean", + "value": false, + "key": "isSecretBase64Encoded" + }, + { + "type": "string", + "value": "header", + "key": "addTokenTo" + }, + { + "type": "string", + "value": "Bearer", + "key": "headerPrefix" + }, + { + "type": "string", + "value": "token", + "key": "queryParamKey" + }, + { + "type": "string", + "value": "{}", + "key": "header" + } + ] + } + }, + "response": { + "id": "effe50c7-cc01-42c0-a89a-f8178a3c6735", + "status": "Created", + "code": 201, + "header": [ + { + "key": "Date", + "value": "Tue, 10 Mar 2026 12:19:58 GMT" + }, + { + "key": "Server", + "value": "Apache/2.4.66 (Debian)" + }, + { + "key": "X-Content-Type-Options", + "value": "nosniff" + }, + { + "key": "X-Frame-Options", + "value": "SAMEORIGIN" + }, + { + "key": "X-Permitted-Cross-Domain-Policies", + "value": "none" + }, + { + "key": "X-Robots-Tag", + "value": "noindex, nofollow" + }, + { + "key": "Referrer-Policy", + "value": "no-referrer" + }, + { + "key": "X-Powered-By", + "value": "PHP/8.3.30" + }, + { + "key": "Content-Security-Policy", + "value": "default-src 'none';base-uri 'none';manifest-src 'self';frame-ancestors 'none'" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=23037bcff976ad702a23d0311bd2a69b; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=23037bcff976ad702a23d0311bd2a69b; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=23037bcff976ad702a23d0311bd2a69b; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=23037bcff976ad702a23d0311bd2a69b; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=23037bcff976ad702a23d0311bd2a69b; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=0adb5f5f8751d5d821cb68e2493149a9; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=0adb5f5f8751d5d821cb68e2493149a9; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=0adb5f5f8751d5d821cb68e2493149a9; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=0adb5f5f8751d5d821cb68e2493149a9; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=0adb5f5f8751d5d821cb68e2493149a9; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "X-Request-Id", + "value": "y9hBbg2muavxGj59msJr" + }, + { + "key": "Cache-Control", + "value": "no-cache, no-store, must-revalidate" + }, + { + "key": "Feature-Policy", + "value": "autoplay 'none';camera 'none';fullscreen 'none';geolocation 'none';microphone 'none';payment 'none'" + }, + { + "key": "X-User-Id", + "value": "admin" + }, + { + "key": "Content-Length", + "value": "805" + }, + { + "key": "Keep-Alive", + "value": "timeout=5, max=99" + }, + { + "key": "Connection", + "value": "Keep-Alive" + }, + { + "key": "Content-Type", + "value": "application/json; charset=utf-8" + } + ], + "stream": { + "type": "Buffer", + "data": [ + 123, + 34, + 117, + 114, + 108, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 122, + 97, + 107, + 101, + 110, + 92, + 47, + 118, + 49, + 92, + 47, + 122, + 97, + 107, + 101, + 110, + 92, + 47, + 99, + 57, + 99, + 48, + 50, + 52, + 55, + 102, + 45, + 50, + 48, + 99, + 54, + 45, + 52, + 54, + 101, + 51, + 45, + 57, + 56, + 53, + 99, + 45, + 52, + 53, + 100, + 100, + 51, + 102, + 55, + 51, + 51, + 53, + 102, + 99, + 34, + 44, + 34, + 117, + 117, + 105, + 100, + 34, + 58, + 34, + 99, + 57, + 99, + 48, + 50, + 52, + 55, + 102, + 45, + 50, + 48, + 99, + 54, + 45, + 52, + 54, + 101, + 51, + 45, + 57, + 56, + 53, + 99, + 45, + 52, + 53, + 100, + 100, + 51, + 102, + 55, + 51, + 51, + 53, + 102, + 99, + 34, + 44, + 34, + 105, + 100, + 101, + 110, + 116, + 105, + 102, + 105, + 99, + 97, + 116, + 105, + 101, + 34, + 58, + 34, + 90, + 65, + 65, + 75, + 45, + 84, + 66, + 79, + 78, + 76, + 65, + 45, + 48, + 57, + 54, + 57, + 57, + 67, + 34, + 44, + 34, + 111, + 109, + 115, + 99, + 104, + 114, + 105, + 106, + 118, + 105, + 110, + 103, + 34, + 58, + 34, + 115, + 116, + 114, + 105, + 110, + 103, + 34, + 44, + 34, + 116, + 111, + 101, + 108, + 105, + 99, + 104, + 116, + 105, + 110, + 103, + 34, + 58, + 34, + 115, + 116, + 114, + 105, + 110, + 103, + 34, + 44, + 34, + 122, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 105, + 92, + 47, + 118, + 49, + 92, + 47, + 122, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 110, + 92, + 47, + 101, + 49, + 53, + 102, + 52, + 98, + 97, + 56, + 45, + 55, + 102, + 56, + 52, + 45, + 52, + 54, + 56, + 57, + 45, + 98, + 102, + 57, + 55, + 45, + 49, + 53, + 52, + 56, + 49, + 54, + 51, + 101, + 54, + 52, + 52, + 99, + 34, + 44, + 34, + 114, + 101, + 103, + 105, + 115, + 116, + 114, + 97, + 116, + 105, + 101, + 100, + 97, + 116, + 117, + 109, + 34, + 58, + 34, + 50, + 48, + 50, + 54, + 45, + 48, + 51, + 45, + 49, + 48, + 84, + 49, + 50, + 58, + 49, + 57, + 58, + 53, + 56, + 43, + 48, + 48, + 58, + 48, + 48, + 34, + 44, + 34, + 115, + 116, + 97, + 114, + 116, + 100, + 97, + 116, + 117, + 109, + 34, + 58, + 34, + 50, + 48, + 49, + 57, + 45, + 48, + 52, + 45, + 48, + 57, + 34, + 44, + 34, + 101, + 105, + 110, + 100, + 100, + 97, + 116, + 117, + 109, + 34, + 58, + 110, + 117, + 108, + 108, + 44, + 34, + 101, + 105, + 110, + 100, + 100, + 97, + 116, + 117, + 109, + 71, + 101, + 112, + 108, + 97, + 110, + 100, + 34, + 58, + 34, + 50, + 48, + 49, + 57, + 45, + 48, + 52, + 45, + 50, + 48, + 34, + 44, + 34, + 117, + 105, + 116, + 101, + 114, + 108, + 105, + 106, + 107, + 101, + 69, + 105, + 110, + 100, + 100, + 97, + 116, + 117, + 109, + 65, + 102, + 100, + 111, + 101, + 110, + 105, + 110, + 103, + 34, + 58, + 34, + 50, + 48, + 49, + 57, + 45, + 48, + 52, + 45, + 48, + 57, + 34, + 44, + 34, + 118, + 101, + 114, + 116, + 114, + 111, + 117, + 119, + 101, + 108, + 105, + 106, + 107, + 104, + 101, + 105, + 100, + 97, + 97, + 110, + 100, + 117, + 105, + 100, + 105, + 110, + 103, + 34, + 58, + 34, + 103, + 101, + 104, + 101, + 105, + 109, + 34, + 44, + 34, + 118, + 101, + 114, + 97, + 110, + 116, + 119, + 111, + 111, + 114, + 100, + 101, + 108, + 105, + 106, + 107, + 101, + 79, + 114, + 103, + 97, + 110, + 105, + 115, + 97, + 116, + 105, + 101, + 34, + 58, + 34, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 34, + 44, + 34, + 97, + 114, + 99, + 104, + 105, + 101, + 102, + 110, + 111, + 109, + 105, + 110, + 97, + 116, + 105, + 101, + 34, + 58, + 110, + 117, + 108, + 108, + 44, + 34, + 97, + 114, + 99, + 104, + 105, + 101, + 102, + 97, + 99, + 116, + 105, + 101, + 100, + 97, + 116, + 117, + 109, + 34, + 58, + 110, + 117, + 108, + 108, + 44, + 34, + 97, + 114, + 99, + 104, + 105, + 101, + 102, + 115, + 116, + 97, + 116, + 117, + 115, + 34, + 58, + 34, + 110, + 111, + 103, + 95, + 116, + 101, + 95, + 97, + 114, + 99, + 104, + 105, + 118, + 101, + 114, + 101, + 110, + 34, + 44, + 34, + 98, + 101, + 116, + 97, + 108, + 105, + 110, + 103, + 115, + 105, + 110, + 100, + 105, + 99, + 97, + 116, + 105, + 101, + 34, + 58, + 34, + 103, + 101, + 104, + 101, + 101, + 108, + 34, + 44, + 34, + 108, + 97, + 97, + 116, + 115, + 116, + 101, + 66, + 101, + 116, + 97, + 97, + 108, + 100, + 97, + 116, + 117, + 109, + 34, + 58, + 34, + 50, + 48, + 49, + 57, + 45, + 48, + 49, + 45, + 48, + 49, + 34, + 44, + 34, + 104, + 111, + 111, + 102, + 100, + 122, + 97, + 97, + 107, + 34, + 58, + 110, + 117, + 108, + 108, + 125 + ] + }, + "cookie": [], + "responseTime": 272, + "responseSize": 805 + }, + "id": "d32ab4fe-74a3-4669-8e91-ddc7b6a917b8" + }, + { + "cursor": { + "ref": "f7feb3e7-0a7c-48ad-9ed0-aefd268b35ce", + "length": 313, + "cycles": 1, + "position": 230, + "iteration": 0, + "httpRequestId": "1c4c50a4-7372-4846-8a00-79fa49398ba5" + }, + "item": { + "id": "faf2db2c-9618-4d09-9b02-fae021b6310c", + "name": "Add Eigenschap to Zaak without archiefnominatie", + "request": { + "url": { + "path": [ + "zaakeigenschappen" + ], + "host": [ + "{{zaak_zonder_archiefnominatie_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n\t\"zaak\": \"{{zaak_zonder_archiefnominatie_url}}\",\n\t\"eigenschap\": \"{{archivering_eigenschap_url}}\",\n\t\"waarde\": \"20230101\"\n}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "ee695ae7-8510-4396-9bb0-097340b87ba4", + "type": "text/javascript", + "packages": {}, + "exec": [ + "pm.environment.set(\"eigenschap_waarde\", pm.response.json().waarde);" + ], + "_lastExecutionId": "1dd0637b-2142-4ee3-9d47-5c33f4fcd435" + } + } + ] + }, + "request": { + "url": { + "protocol": "http", + "port": "8080", + "path": [ + "index.php", + "apps", + "procest", + "api", + "zgw", + "zaken", + "v1", + "zaken", + "c9c0247f-20c6-46e3-985c-45dd3f7335fc", + "zaakeigenschappen" + ], + "host": [ + "localhost" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Authorization", + "value": "Bearer eyJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJwcm9jZXN0LWFkbWluIiwiY2xpZW50X2lkIjoicHJvY2VzdC1hZG1pbiIsImlhdCI6IjE3NzMxNDUxOTkiLCJ1c2VyX2lkIjoicHJvY2VzdC1hZG1pbiIsInVzZXJfcmVwcmVzZW50YXRpb24iOiIifQ.odAcPYMhr7SgglIHo-OTkzF2iKJCOtcxpM6z8Kc9Gy4", + "system": true + }, + { + "key": "User-Agent", + "value": "PostmanRuntime/7.39.1", + "system": true + }, + { + "key": "Accept", + "value": "*/*", + "system": true + }, + { + "key": "Cache-Control", + "value": "no-cache", + "system": true + }, + { + "key": "Postman-Token", + "value": "6565691d-5a34-42f7-9ba8-9613bea64131", + "system": true + }, + { + "key": "Host", + "value": "localhost:8080", + "system": true + }, + { + "key": "Accept-Encoding", + "value": "gzip, deflate, br", + "system": true + }, + { + "key": "Connection", + "value": "keep-alive", + "system": true + }, + { + "key": "Content-Length", + "value": "165", + "system": true + }, + { + "key": "Cookie", + "value": "ocvp3112b4wg=0adb5f5f8751d5d821cb68e2493149a9; oc_sessionPassphrase=LBNdKxRzA0iqoULIruNxDDh2BK3O%2BrCIU8aUmiUcOFvy5Xw1YfjwQNlmBW2IkGwJYtxXh9%2BwDN6vYuGNX07tXzkBtjQJUWTGdzf8AIOUIVxVx5DfyWAQZ7nmYmQv6XSE; nc_sameSiteCookielax=true; nc_sameSiteCookiestrict=true", + "system": true + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n\t\"zaak\": \"http://localhost:8080/index.php/apps/procest/api/zgw/zaken/v1/zaken/c9c0247f-20c6-46e3-985c-45dd3f7335fc\",\n\t\"eigenschap\": \"null\",\n\t\"waarde\": \"20230101\"\n}" + }, + "auth": { + "type": "jwt", + "jwt": [ + { + "type": "string", + "value": "{\r\n \"iss\": \"procest-admin\",\r\n \"client_id\": \"procest-admin\",\r\n \"iat\": \"1773145199\",\r\n \"user_id\": \"procest-admin\",\r\n \"user_representation\": \"\"\r\n}", + "key": "payload" + }, + { + "type": "string", + "value": "procest-admin-secret-key-for-testing", + "key": "secret" + }, + { + "type": "string", + "value": "HS256", + "key": "algorithm" + }, + { + "type": "boolean", + "value": false, + "key": "isSecretBase64Encoded" + }, + { + "type": "string", + "value": "header", + "key": "addTokenTo" + }, + { + "type": "string", + "value": "Bearer", + "key": "headerPrefix" + }, + { + "type": "string", + "value": "token", + "key": "queryParamKey" + }, + { + "type": "string", + "value": "{}", + "key": "header" + } + ] + } + }, + "response": { + "id": "bd4ae799-a978-48d5-80cf-9b93f5b75cc8", + "status": "Bad request", + "code": 400, + "header": [ + { + "key": "Date", + "value": "Tue, 10 Mar 2026 12:19:58 GMT" + }, + { + "key": "Server", + "value": "Apache/2.4.66 (Debian)" + }, + { + "key": "X-Content-Type-Options", + "value": "nosniff" + }, + { + "key": "X-Frame-Options", + "value": "SAMEORIGIN" + }, + { + "key": "X-Permitted-Cross-Domain-Policies", + "value": "none" + }, + { + "key": "X-Robots-Tag", + "value": "noindex, nofollow" + }, + { + "key": "Referrer-Policy", + "value": "no-referrer" + }, + { + "key": "X-Powered-By", + "value": "PHP/8.3.30" + }, + { + "key": "Content-Security-Policy", + "value": "default-src 'none';base-uri 'none';manifest-src 'self';frame-ancestors 'none'" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=0adb5f5f8751d5d821cb68e2493149a9; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=0adb5f5f8751d5d821cb68e2493149a9; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=0adb5f5f8751d5d821cb68e2493149a9; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=0adb5f5f8751d5d821cb68e2493149a9; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=0adb5f5f8751d5d821cb68e2493149a9; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=41515bca9b5b0d86867763bdf2068fe3; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=41515bca9b5b0d86867763bdf2068fe3; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=41515bca9b5b0d86867763bdf2068fe3; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=41515bca9b5b0d86867763bdf2068fe3; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=41515bca9b5b0d86867763bdf2068fe3; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "X-Request-Id", + "value": "g36SSPxzDfUzMFd2zyF6" + }, + { + "key": "Cache-Control", + "value": "no-cache, no-store, must-revalidate" + }, + { + "key": "Feature-Policy", + "value": "autoplay 'none';camera 'none';fullscreen 'none';geolocation 'none';microphone 'none';payment 'none'" + }, + { + "key": "X-User-Id", + "value": "admin" + }, + { + "key": "Content-Length", + "value": "136" + }, + { + "key": "Connection", + "value": "close" + }, + { + "key": "Content-Type", + "value": "application/json; charset=utf-8" + } + ], + "stream": { + "type": "Buffer", + "data": [ + 123, + 34, + 100, + 101, + 116, + 97, + 105, + 108, + 34, + 58, + 34, + 80, + 114, + 111, + 112, + 101, + 114, + 116, + 121, + 32, + 39, + 112, + 114, + 111, + 112, + 101, + 114, + 116, + 121, + 68, + 101, + 102, + 105, + 110, + 105, + 116, + 105, + 111, + 110, + 39, + 32, + 115, + 104, + 111, + 117, + 108, + 100, + 32, + 109, + 97, + 116, + 99, + 104, + 32, + 102, + 111, + 114, + 109, + 97, + 116, + 32, + 39, + 117, + 117, + 105, + 100, + 39, + 32, + 98, + 117, + 116, + 32, + 39, + 110, + 117, + 108, + 108, + 39, + 32, + 100, + 111, + 101, + 115, + 32, + 110, + 111, + 116, + 46, + 32, + 80, + 108, + 101, + 97, + 115, + 101, + 32, + 112, + 114, + 111, + 118, + 105, + 100, + 101, + 32, + 97, + 32, + 118, + 97, + 108, + 117, + 101, + 32, + 105, + 110, + 32, + 116, + 104, + 101, + 32, + 99, + 111, + 114, + 114, + 101, + 99, + 116, + 32, + 102, + 111, + 114, + 109, + 97, + 116, + 46, + 34, + 125 + ] + }, + "cookie": [], + "responseTime": 121, + "responseSize": 136 + }, + "id": "faf2db2c-9618-4d09-9b02-fae021b6310c" + }, + { + "cursor": { + "ref": "fdfba225-f7c3-426c-b529-3591476cd33e", + "length": 313, + "cycles": 1, + "position": 231, + "iteration": 0, + "httpRequestId": "c01ad86a-40d6-47d0-8f6d-91f66a989b0a" + }, + "item": { + "id": "d280ca27-12be-4dca-93fc-39fe1d7f291a", + "name": "Add Resultaat to Zaak", + "request": { + "url": { + "path": [ + "resultaten" + ], + "host": [ + "{{zrc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n\t\"zaak\": \"{{zaak_zonder_archiefnominatie_url}}\",\n\t\"resultaattype\": \"{{current_resultaattype}}\"\n}" + } + }, + "response": [], + "event": [ + { + "listen": "prerequest", + "script": { + "id": "7e55e97c-73da-4c42-bdc4-3ec678fcc74b", + "type": "text/javascript", + "exec": [ + "// if (!pm.environment.get(\"resultaattype_index\")) {", + "// pm.environment.set(\"resultaattype_index\", 0);", + "// }", + "", + "// pm.environment.set(\"current_resultaattype\", pm.environment.get(\"zaaktype_resultaattypen\")[pm.environment.get(\"resultaattype_index\")])" + ], + "_lastExecutionId": "a0747019-bc45-43c6-b310-12eaca4b444e" + } + }, + { + "listen": "test", + "script": { + "id": "884f27b8-3ff1-466c-a496-479fe8e5f954", + "type": "text/javascript", + "exec": [ + "pm.environment.set(\"zaak_resultaat_url\", pm.response.json().url);" + ], + "_lastExecutionId": "c19ca04f-df0e-4aa8-b415-bc42864cdd2a" + } + } + ] + }, + "request": { + "url": { + "protocol": "http", + "port": "8080", + "path": [ + "index.php", + "apps", + "procest", + "api", + "zgw", + "zaken", + "v1", + "resultaten" + ], + "host": [ + "localhost" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Authorization", + "value": "Bearer eyJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJwcm9jZXN0LWFkbWluIiwiY2xpZW50X2lkIjoicHJvY2VzdC1hZG1pbiIsImlhdCI6IjE3NzMxNDUxOTkiLCJ1c2VyX2lkIjoicHJvY2VzdC1hZG1pbiIsInVzZXJfcmVwcmVzZW50YXRpb24iOiIifQ.odAcPYMhr7SgglIHo-OTkzF2iKJCOtcxpM6z8Kc9Gy4", + "system": true + }, + { + "key": "User-Agent", + "value": "PostmanRuntime/7.39.1", + "system": true + }, + { + "key": "Accept", + "value": "*/*", + "system": true + }, + { + "key": "Cache-Control", + "value": "no-cache", + "system": true + }, + { + "key": "Postman-Token", + "value": "2210afeb-2bf4-4df5-bd7f-5defc0142b4d", + "system": true + }, + { + "key": "Host", + "value": "localhost:8080", + "system": true + }, + { + "key": "Accept-Encoding", + "value": "gzip, deflate, br", + "system": true + }, + { + "key": "Connection", + "value": "keep-alive", + "system": true + }, + { + "key": "Content-Length", + "value": "145", + "system": true + }, + { + "key": "Cookie", + "value": "ocvp3112b4wg=41515bca9b5b0d86867763bdf2068fe3; oc_sessionPassphrase=LBNdKxRzA0iqoULIruNxDDh2BK3O%2BrCIU8aUmiUcOFvy5Xw1YfjwQNlmBW2IkGwJYtxXh9%2BwDN6vYuGNX07tXzkBtjQJUWTGdzf8AIOUIVxVx5DfyWAQZ7nmYmQv6XSE; nc_sameSiteCookielax=true; nc_sameSiteCookiestrict=true", + "system": true + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n\t\"zaak\": \"http://localhost:8080/index.php/apps/procest/api/zgw/zaken/v1/zaken/c9c0247f-20c6-46e3-985c-45dd3f7335fc\",\n\t\"resultaattype\": \"null\"\n}" + }, + "auth": { + "type": "jwt", + "jwt": [ + { + "type": "string", + "value": "{\r\n \"iss\": \"procest-admin\",\r\n \"client_id\": \"procest-admin\",\r\n \"iat\": \"1773145199\",\r\n \"user_id\": \"procest-admin\",\r\n \"user_representation\": \"\"\r\n}", + "key": "payload" + }, + { + "type": "string", + "value": "procest-admin-secret-key-for-testing", + "key": "secret" + }, + { + "type": "string", + "value": "HS256", + "key": "algorithm" + }, + { + "type": "boolean", + "value": false, + "key": "isSecretBase64Encoded" + }, + { + "type": "string", + "value": "header", + "key": "addTokenTo" + }, + { + "type": "string", + "value": "Bearer", + "key": "headerPrefix" + }, + { + "type": "string", + "value": "token", + "key": "queryParamKey" + }, + { + "type": "string", + "value": "{}", + "key": "header" + } + ] + } + }, + "response": { + "id": "ceb3df73-66a4-45e8-b26d-0ddf73f0e325", + "status": "Bad request", + "code": 400, + "header": [ + { + "key": "Date", + "value": "Tue, 10 Mar 2026 12:19:58 GMT" + }, + { + "key": "Server", + "value": "Apache/2.4.66 (Debian)" + }, + { + "key": "X-Content-Type-Options", + "value": "nosniff" + }, + { + "key": "X-Frame-Options", + "value": "SAMEORIGIN" + }, + { + "key": "X-Permitted-Cross-Domain-Policies", + "value": "none" + }, + { + "key": "X-Robots-Tag", + "value": "noindex, nofollow" + }, + { + "key": "Referrer-Policy", + "value": "no-referrer" + }, + { + "key": "X-Powered-By", + "value": "PHP/8.3.30" + }, + { + "key": "Content-Security-Policy", + "value": "default-src 'none';base-uri 'none';manifest-src 'self';frame-ancestors 'none'" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=41515bca9b5b0d86867763bdf2068fe3; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=41515bca9b5b0d86867763bdf2068fe3; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=41515bca9b5b0d86867763bdf2068fe3; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=41515bca9b5b0d86867763bdf2068fe3; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=41515bca9b5b0d86867763bdf2068fe3; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=a6f35aa8e5825a53fc195e3497f8b352; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=a6f35aa8e5825a53fc195e3497f8b352; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=a6f35aa8e5825a53fc195e3497f8b352; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=a6f35aa8e5825a53fc195e3497f8b352; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=a6f35aa8e5825a53fc195e3497f8b352; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "X-Request-Id", + "value": "9SO1f7Xb16jXJHZggFwn" + }, + { + "key": "Cache-Control", + "value": "no-cache, no-store, must-revalidate" + }, + { + "key": "Feature-Policy", + "value": "autoplay 'none';camera 'none';fullscreen 'none';geolocation 'none';microphone 'none';payment 'none'" + }, + { + "key": "X-User-Id", + "value": "admin" + }, + { + "key": "Content-Length", + "value": "128" + }, + { + "key": "Connection", + "value": "close" + }, + { + "key": "Content-Type", + "value": "application/json; charset=utf-8" + } + ], + "stream": { + "type": "Buffer", + "data": [ + 123, + 34, + 100, + 101, + 116, + 97, + 105, + 108, + 34, + 58, + 34, + 80, + 114, + 111, + 112, + 101, + 114, + 116, + 121, + 32, + 39, + 114, + 101, + 115, + 117, + 108, + 116, + 84, + 121, + 112, + 101, + 39, + 32, + 115, + 104, + 111, + 117, + 108, + 100, + 32, + 109, + 97, + 116, + 99, + 104, + 32, + 102, + 111, + 114, + 109, + 97, + 116, + 32, + 39, + 117, + 117, + 105, + 100, + 39, + 32, + 98, + 117, + 116, + 32, + 39, + 110, + 117, + 108, + 108, + 39, + 32, + 100, + 111, + 101, + 115, + 32, + 110, + 111, + 116, + 46, + 32, + 80, + 108, + 101, + 97, + 115, + 101, + 32, + 112, + 114, + 111, + 118, + 105, + 100, + 101, + 32, + 97, + 32, + 118, + 97, + 108, + 117, + 101, + 32, + 105, + 110, + 32, + 116, + 104, + 101, + 32, + 99, + 111, + 114, + 114, + 101, + 99, + 116, + 32, + 102, + 111, + 114, + 109, + 97, + 116, + 46, + 34, + 125 + ] + }, + "cookie": [], + "responseTime": 276, + "responseSize": 128 + }, + "id": "d280ca27-12be-4dca-93fc-39fe1d7f291a" + }, + { + "cursor": { + "ref": "50478aaa-bfc5-42e2-95e9-4010bc28fc3c", + "length": 313, + "cycles": 1, + "position": 232, + "iteration": 0, + "httpRequestId": "62562d62-aa21-4a74-bc05-48a3d12a7b23" + }, + "item": { + "id": "cbd96978-1aff-496d-871e-4a77c00464ba", + "name": "Add Eindstatus to Zaak without archiefnominatie", + "request": { + "url": { + "path": [ + "statussen" + ], + "host": [ + "{{zrc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n\t\"zaak\": \"{{zaak_zonder_archiefnominatie_url}}\",\n\t\"statustype\": \"{{current_statustype_url}}\",\n\t\"datumStatusGezet\": \"2018-04-26T13:37:00\"\n}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "189343ed-0d24-4284-946e-727e0ec63b8a", + "type": "text/javascript", + "exec": [ + "" + ], + "_lastExecutionId": "361b002a-f17c-4329-887e-44ac69674a28" + } + }, + { + "listen": "prerequest", + "script": { + "id": "d6f619e1-f90a-402e-a319-5b0974377eaf", + "type": "text/javascript", + "exec": [ + "" + ], + "_lastExecutionId": "37ba57f4-3aa1-401c-bde5-592de5cf695f" + } + } + ] + }, + "request": { + "url": { + "protocol": "http", + "port": "8080", + "path": [ + "index.php", + "apps", + "procest", + "api", + "zgw", + "zaken", + "v1", + "statussen" + ], + "host": [ + "localhost" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Authorization", + "value": "Bearer eyJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJwcm9jZXN0LWFkbWluIiwiY2xpZW50X2lkIjoicHJvY2VzdC1hZG1pbiIsImlhdCI6IjE3NzMxNDUxOTkiLCJ1c2VyX2lkIjoicHJvY2VzdC1hZG1pbiIsInVzZXJfcmVwcmVzZW50YXRpb24iOiIifQ.odAcPYMhr7SgglIHo-OTkzF2iKJCOtcxpM6z8Kc9Gy4", + "system": true + }, + { + "key": "User-Agent", + "value": "PostmanRuntime/7.39.1", + "system": true + }, + { + "key": "Accept", + "value": "*/*", + "system": true + }, + { + "key": "Cache-Control", + "value": "no-cache", + "system": true + }, + { + "key": "Postman-Token", + "value": "70ea3a82-4a1f-4b6c-92f0-8f0de1042356", + "system": true + }, + { + "key": "Host", + "value": "localhost:8080", + "system": true + }, + { + "key": "Accept-Encoding", + "value": "gzip, deflate, br", + "system": true + }, + { + "key": "Connection", + "value": "keep-alive", + "system": true + }, + { + "key": "Content-Length", + "value": "295", + "system": true + }, + { + "key": "Cookie", + "value": "ocvp3112b4wg=a6f35aa8e5825a53fc195e3497f8b352; oc_sessionPassphrase=LBNdKxRzA0iqoULIruNxDDh2BK3O%2BrCIU8aUmiUcOFvy5Xw1YfjwQNlmBW2IkGwJYtxXh9%2BwDN6vYuGNX07tXzkBtjQJUWTGdzf8AIOUIVxVx5DfyWAQZ7nmYmQv6XSE; nc_sameSiteCookielax=true; nc_sameSiteCookiestrict=true", + "system": true + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n\t\"zaak\": \"http://localhost:8080/index.php/apps/procest/api/zgw/zaken/v1/zaken/c9c0247f-20c6-46e3-985c-45dd3f7335fc\",\n\t\"statustype\": \"http://localhost:8080/index.php/apps/procest/api/zgw/catalogi/v1/statustypen/e2e3658b-64af-4a9d-8867-63fd229df382\",\n\t\"datumStatusGezet\": \"2018-04-26T13:37:00\"\n}" + }, + "auth": { + "type": "jwt", + "jwt": [ + { + "type": "string", + "value": "{\r\n \"iss\": \"procest-admin\",\r\n \"client_id\": \"procest-admin\",\r\n \"iat\": \"1773145199\",\r\n \"user_id\": \"procest-admin\",\r\n \"user_representation\": \"\"\r\n}", + "key": "payload" + }, + { + "type": "string", + "value": "procest-admin-secret-key-for-testing", + "key": "secret" + }, + { + "type": "string", + "value": "HS256", + "key": "algorithm" + }, + { + "type": "boolean", + "value": false, + "key": "isSecretBase64Encoded" + }, + { + "type": "string", + "value": "header", + "key": "addTokenTo" + }, + { + "type": "string", + "value": "Bearer", + "key": "headerPrefix" + }, + { + "type": "string", + "value": "token", + "key": "queryParamKey" + }, + { + "type": "string", + "value": "{}", + "key": "header" + } + ] + } + }, + "response": { + "id": "33f34df6-9f1e-4c3b-a0bc-c730e895d20d", + "status": "Created", + "code": 201, + "header": [ + { + "key": "Date", + "value": "Tue, 10 Mar 2026 12:19:59 GMT" + }, + { + "key": "Server", + "value": "Apache/2.4.66 (Debian)" + }, + { + "key": "X-Content-Type-Options", + "value": "nosniff" + }, + { + "key": "X-Frame-Options", + "value": "SAMEORIGIN" + }, + { + "key": "X-Permitted-Cross-Domain-Policies", + "value": "none" + }, + { + "key": "X-Robots-Tag", + "value": "noindex, nofollow" + }, + { + "key": "Referrer-Policy", + "value": "no-referrer" + }, + { + "key": "X-Powered-By", + "value": "PHP/8.3.30" + }, + { + "key": "Content-Security-Policy", + "value": "default-src 'none';base-uri 'none';manifest-src 'self';frame-ancestors 'none'" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=a6f35aa8e5825a53fc195e3497f8b352; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=a6f35aa8e5825a53fc195e3497f8b352; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=a6f35aa8e5825a53fc195e3497f8b352; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=a6f35aa8e5825a53fc195e3497f8b352; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=a6f35aa8e5825a53fc195e3497f8b352; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=0cc9f424c385483dc43fa23a75a8b5f6; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=0cc9f424c385483dc43fa23a75a8b5f6; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=0cc9f424c385483dc43fa23a75a8b5f6; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=0cc9f424c385483dc43fa23a75a8b5f6; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=0cc9f424c385483dc43fa23a75a8b5f6; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "X-Request-Id", + "value": "OFmJPp8TpuYCVp7rMecA" + }, + { + "key": "Cache-Control", + "value": "no-cache, no-store, must-revalidate" + }, + { + "key": "Feature-Policy", + "value": "autoplay 'none';camera 'none';fullscreen 'none';geolocation 'none';microphone 'none';payment 'none'" + }, + { + "key": "X-User-Id", + "value": "admin" + }, + { + "key": "Content-Length", + "value": "510" + }, + { + "key": "Keep-Alive", + "value": "timeout=5, max=100" + }, + { + "key": "Connection", + "value": "Keep-Alive" + }, + { + "key": "Content-Type", + "value": "application/json; charset=utf-8" + } + ], + "stream": { + "type": "Buffer", + "data": [ + 123, + 34, + 117, + 114, + 108, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 122, + 97, + 107, + 101, + 110, + 92, + 47, + 118, + 49, + 92, + 47, + 115, + 116, + 97, + 116, + 117, + 115, + 115, + 101, + 110, + 92, + 47, + 55, + 98, + 52, + 101, + 56, + 99, + 100, + 54, + 45, + 54, + 57, + 50, + 97, + 45, + 52, + 100, + 56, + 57, + 45, + 98, + 53, + 53, + 54, + 45, + 100, + 54, + 53, + 101, + 51, + 100, + 54, + 50, + 101, + 49, + 53, + 57, + 34, + 44, + 34, + 117, + 117, + 105, + 100, + 34, + 58, + 34, + 55, + 98, + 52, + 101, + 56, + 99, + 100, + 54, + 45, + 54, + 57, + 50, + 97, + 45, + 52, + 100, + 56, + 57, + 45, + 98, + 53, + 53, + 54, + 45, + 100, + 54, + 53, + 101, + 51, + 100, + 54, + 50, + 101, + 49, + 53, + 57, + 34, + 44, + 34, + 122, + 97, + 97, + 107, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 122, + 97, + 107, + 101, + 110, + 92, + 47, + 118, + 49, + 92, + 47, + 122, + 97, + 107, + 101, + 110, + 92, + 47, + 99, + 57, + 99, + 48, + 50, + 52, + 55, + 102, + 45, + 50, + 48, + 99, + 54, + 45, + 52, + 54, + 101, + 51, + 45, + 57, + 56, + 53, + 99, + 45, + 52, + 53, + 100, + 100, + 51, + 102, + 55, + 51, + 51, + 53, + 102, + 99, + 34, + 44, + 34, + 115, + 116, + 97, + 116, + 117, + 115, + 116, + 121, + 112, + 101, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 105, + 92, + 47, + 118, + 49, + 92, + 47, + 115, + 116, + 97, + 116, + 117, + 115, + 116, + 121, + 112, + 101, + 110, + 92, + 47, + 101, + 50, + 101, + 51, + 54, + 53, + 56, + 98, + 45, + 54, + 52, + 97, + 102, + 45, + 52, + 97, + 57, + 100, + 45, + 56, + 56, + 54, + 55, + 45, + 54, + 51, + 102, + 100, + 50, + 50, + 57, + 100, + 102, + 51, + 56, + 50, + 34, + 44, + 34, + 100, + 97, + 116, + 117, + 109, + 83, + 116, + 97, + 116, + 117, + 115, + 71, + 101, + 122, + 101, + 116, + 34, + 58, + 34, + 50, + 48, + 50, + 54, + 45, + 48, + 51, + 45, + 49, + 48, + 84, + 49, + 50, + 58, + 49, + 57, + 58, + 53, + 57, + 43, + 48, + 48, + 58, + 48, + 48, + 34, + 44, + 34, + 115, + 116, + 97, + 116, + 117, + 115, + 116, + 111, + 101, + 108, + 105, + 99, + 104, + 116, + 105, + 110, + 103, + 34, + 58, + 34, + 34, + 125 + ] + }, + "cookie": [], + "responseTime": 271, + "responseSize": 510 + }, + "id": "cbd96978-1aff-496d-871e-4a77c00464ba" + }, + { + "cursor": { + "ref": "78d6df4f-42a3-4d04-9398-3eab2c5b4b58", + "length": 313, + "cycles": 1, + "position": 233, + "iteration": 0, + "httpRequestId": "e7a22181-f858-4e86-9b93-e500ef2d48fc" + }, + "item": { + "id": "a6648084-8d27-4029-a31c-dad5cf6f839b", + "name": "(zrc-021c) Afleidingswijze eigenschap", + "request": { + "url": { + "host": [ + "{{zaak_zonder_archiefnominatie_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Accept-Crs", + "value": "EPSG:4326" + } + ], + "method": "GET" + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "c93c807f-5c98-4994-8a3f-19129c1c4787", + "type": "text/javascript", + "exec": [ + "var moment = require('moment');", + "", + "pm.test(\"Resultaat toevoegen aan Zaak zonder archiefnominatie betekent dat archiefnominatie afgeleid wordt uit Resultaattype\", function() {", + " pm.response.to.have.status(200);", + " pm.expect(pm.response.json().archiefnominatie).to.be.equal(pm.environment.get(\"resultaattype_archiefnominatie\"));", + "});", + "", + "pm.test(\"Resultaat met afleidingswijze eigenschap toevoegen aan Zaak zet correcte Zaak.archiefdatum\", function() {", + " var jsonData = pm.response.json();", + " ", + " if (pm.environment.get(\"resultaattype_archiefactietermijn\")) {", + " const brondatum = moment.utc(pm.environment.get(\"eigenschap_waarde\"));", + " const archiefactietermijn = moment.duration(pm.environment.get(\"resultaattype_archiefactietermijn\"), 'years');", + " var calculated_archiefactiedatum = brondatum.add(archiefactietermijn);", + " ", + " pm.expect(jsonData.archiefactiedatum).to.be.equal(calculated_archiefactiedatum.format(\"YYYY-MM-DD\")); ", + " }", + "});" + ], + "_lastExecutionId": "e5dc43e8-ba72-4095-be4e-c53aa70c9f4b" + } + }, + { + "listen": "prerequest", + "script": { + "id": "4ae913f9-135e-4df8-ae69-412930ca7475", + "type": "text/javascript", + "exec": [ + "" + ], + "_lastExecutionId": "517f2538-e542-4eaa-b9f4-7c1fc9ea3d40" + } + } + ] + }, + "request": { + "url": { + "protocol": "http", + "port": "8080", + "path": [ + "index.php", + "apps", + "procest", + "api", + "zgw", + "zaken", + "v1", + "zaken", + "c9c0247f-20c6-46e3-985c-45dd3f7335fc" + ], + "host": [ + "localhost" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Accept-Crs", + "value": "EPSG:4326" + }, + { + "key": "Authorization", + "value": "Bearer eyJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJwcm9jZXN0LWFkbWluIiwiY2xpZW50X2lkIjoicHJvY2VzdC1hZG1pbiIsImlhdCI6IjE3NzMxNDUyMDAiLCJ1c2VyX2lkIjoicHJvY2VzdC1hZG1pbiIsInVzZXJfcmVwcmVzZW50YXRpb24iOiIifQ.cHUYQyOzN2CSNQ6zuF7Ns-frlNIK6bi5-FLK4MwxUDs", + "system": true + }, + { + "key": "User-Agent", + "value": "PostmanRuntime/7.39.1", + "system": true + }, + { + "key": "Accept", + "value": "*/*", + "system": true + }, + { + "key": "Cache-Control", + "value": "no-cache", + "system": true + }, + { + "key": "Postman-Token", + "value": "b1cf4d31-d0b5-4f87-9db9-7f8c7bfc9ec9", + "system": true + }, + { + "key": "Host", + "value": "localhost:8080", + "system": true + }, + { + "key": "Accept-Encoding", + "value": "gzip, deflate, br", + "system": true + }, + { + "key": "Connection", + "value": "keep-alive", + "system": true + }, + { + "key": "Cookie", + "value": "ocvp3112b4wg=0cc9f424c385483dc43fa23a75a8b5f6; oc_sessionPassphrase=LBNdKxRzA0iqoULIruNxDDh2BK3O%2BrCIU8aUmiUcOFvy5Xw1YfjwQNlmBW2IkGwJYtxXh9%2BwDN6vYuGNX07tXzkBtjQJUWTGdzf8AIOUIVxVx5DfyWAQZ7nmYmQv6XSE; nc_sameSiteCookielax=true; nc_sameSiteCookiestrict=true", + "system": true + } + ], + "method": "GET", + "auth": { + "type": "jwt", + "jwt": [ + { + "type": "string", + "value": "{\r\n \"iss\": \"procest-admin\",\r\n \"client_id\": \"procest-admin\",\r\n \"iat\": \"1773145200\",\r\n \"user_id\": \"procest-admin\",\r\n \"user_representation\": \"\"\r\n}", + "key": "payload" + }, + { + "type": "string", + "value": "procest-admin-secret-key-for-testing", + "key": "secret" + }, + { + "type": "string", + "value": "HS256", + "key": "algorithm" + }, + { + "type": "boolean", + "value": false, + "key": "isSecretBase64Encoded" + }, + { + "type": "string", + "value": "header", + "key": "addTokenTo" + }, + { + "type": "string", + "value": "Bearer", + "key": "headerPrefix" + }, + { + "type": "string", + "value": "token", + "key": "queryParamKey" + }, + { + "type": "string", + "value": "{}", + "key": "header" + } + ] + } + }, + "response": { + "id": "f49444b7-c388-4526-a55b-ac431d2e7b65", + "status": "OK", + "code": 200, + "header": [ + { + "key": "Date", + "value": "Tue, 10 Mar 2026 12:19:59 GMT" + }, + { + "key": "Server", + "value": "Apache/2.4.66 (Debian)" + }, + { + "key": "X-Content-Type-Options", + "value": "nosniff" + }, + { + "key": "X-Frame-Options", + "value": "SAMEORIGIN" + }, + { + "key": "X-Permitted-Cross-Domain-Policies", + "value": "none" + }, + { + "key": "X-Robots-Tag", + "value": "noindex, nofollow" + }, + { + "key": "Referrer-Policy", + "value": "no-referrer" + }, + { + "key": "X-Powered-By", + "value": "PHP/8.3.30" + }, + { + "key": "Content-Security-Policy", + "value": "default-src 'none';base-uri 'none';manifest-src 'self';frame-ancestors 'none'" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=0cc9f424c385483dc43fa23a75a8b5f6; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=0cc9f424c385483dc43fa23a75a8b5f6; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=0cc9f424c385483dc43fa23a75a8b5f6; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=0cc9f424c385483dc43fa23a75a8b5f6; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=0cc9f424c385483dc43fa23a75a8b5f6; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=1311dc5ecdae75ab2af5b009b0c7ea06; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=1311dc5ecdae75ab2af5b009b0c7ea06; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=1311dc5ecdae75ab2af5b009b0c7ea06; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=1311dc5ecdae75ab2af5b009b0c7ea06; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=1311dc5ecdae75ab2af5b009b0c7ea06; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "X-Request-Id", + "value": "eDaKiKoABJsGNM7ncBua" + }, + { + "key": "Cache-Control", + "value": "no-cache, no-store, must-revalidate" + }, + { + "key": "Feature-Policy", + "value": "autoplay 'none';camera 'none';fullscreen 'none';geolocation 'none';microphone 'none';payment 'none'" + }, + { + "key": "X-User-Id", + "value": "admin" + }, + { + "key": "Content-Encoding", + "value": "gzip" + }, + { + "key": "Content-Length", + "value": "447" + }, + { + "key": "Keep-Alive", + "value": "timeout=5, max=99" + }, + { + "key": "Connection", + "value": "Keep-Alive" + }, + { + "key": "Content-Type", + "value": "application/json; charset=utf-8" + } + ], + "stream": { + "type": "Buffer", + "data": [ + 123, + 34, + 117, + 114, + 108, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 122, + 97, + 107, + 101, + 110, + 92, + 47, + 118, + 49, + 92, + 47, + 122, + 97, + 107, + 101, + 110, + 92, + 47, + 99, + 57, + 99, + 48, + 50, + 52, + 55, + 102, + 45, + 50, + 48, + 99, + 54, + 45, + 52, + 54, + 101, + 51, + 45, + 57, + 56, + 53, + 99, + 45, + 52, + 53, + 100, + 100, + 51, + 102, + 55, + 51, + 51, + 53, + 102, + 99, + 34, + 44, + 34, + 117, + 117, + 105, + 100, + 34, + 58, + 34, + 99, + 57, + 99, + 48, + 50, + 52, + 55, + 102, + 45, + 50, + 48, + 99, + 54, + 45, + 52, + 54, + 101, + 51, + 45, + 57, + 56, + 53, + 99, + 45, + 52, + 53, + 100, + 100, + 51, + 102, + 55, + 51, + 51, + 53, + 102, + 99, + 34, + 44, + 34, + 105, + 100, + 101, + 110, + 116, + 105, + 102, + 105, + 99, + 97, + 116, + 105, + 101, + 34, + 58, + 34, + 90, + 65, + 65, + 75, + 45, + 84, + 66, + 79, + 78, + 76, + 65, + 45, + 48, + 57, + 54, + 57, + 57, + 67, + 34, + 44, + 34, + 111, + 109, + 115, + 99, + 104, + 114, + 105, + 106, + 118, + 105, + 110, + 103, + 34, + 58, + 34, + 115, + 116, + 114, + 105, + 110, + 103, + 34, + 44, + 34, + 116, + 111, + 101, + 108, + 105, + 99, + 104, + 116, + 105, + 110, + 103, + 34, + 58, + 34, + 115, + 116, + 114, + 105, + 110, + 103, + 34, + 44, + 34, + 122, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 105, + 92, + 47, + 118, + 49, + 92, + 47, + 122, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 110, + 92, + 47, + 101, + 49, + 53, + 102, + 52, + 98, + 97, + 56, + 45, + 55, + 102, + 56, + 52, + 45, + 52, + 54, + 56, + 57, + 45, + 98, + 102, + 57, + 55, + 45, + 49, + 53, + 52, + 56, + 49, + 54, + 51, + 101, + 54, + 52, + 52, + 99, + 34, + 44, + 34, + 114, + 101, + 103, + 105, + 115, + 116, + 114, + 97, + 116, + 105, + 101, + 100, + 97, + 116, + 117, + 109, + 34, + 58, + 34, + 50, + 48, + 50, + 54, + 45, + 48, + 51, + 45, + 49, + 48, + 84, + 49, + 50, + 58, + 49, + 57, + 58, + 53, + 56, + 43, + 48, + 48, + 58, + 48, + 48, + 34, + 44, + 34, + 115, + 116, + 97, + 114, + 116, + 100, + 97, + 116, + 117, + 109, + 34, + 58, + 34, + 50, + 48, + 49, + 57, + 45, + 48, + 52, + 45, + 48, + 57, + 34, + 44, + 34, + 101, + 105, + 110, + 100, + 100, + 97, + 116, + 117, + 109, + 34, + 58, + 34, + 50, + 48, + 49, + 56, + 45, + 48, + 52, + 45, + 50, + 54, + 34, + 44, + 34, + 101, + 105, + 110, + 100, + 100, + 97, + 116, + 117, + 109, + 71, + 101, + 112, + 108, + 97, + 110, + 100, + 34, + 58, + 34, + 50, + 48, + 49, + 57, + 45, + 48, + 52, + 45, + 50, + 48, + 34, + 44, + 34, + 117, + 105, + 116, + 101, + 114, + 108, + 105, + 106, + 107, + 101, + 69, + 105, + 110, + 100, + 100, + 97, + 116, + 117, + 109, + 65, + 102, + 100, + 111, + 101, + 110, + 105, + 110, + 103, + 34, + 58, + 34, + 50, + 48, + 49, + 57, + 45, + 48, + 52, + 45, + 48, + 57, + 34, + 44, + 34, + 118, + 101, + 114, + 116, + 114, + 111, + 117, + 119, + 101, + 108, + 105, + 106, + 107, + 104, + 101, + 105, + 100, + 97, + 97, + 110, + 100, + 117, + 105, + 100, + 105, + 110, + 103, + 34, + 58, + 34, + 103, + 101, + 104, + 101, + 105, + 109, + 34, + 44, + 34, + 118, + 101, + 114, + 97, + 110, + 116, + 119, + 111, + 111, + 114, + 100, + 101, + 108, + 105, + 106, + 107, + 101, + 79, + 114, + 103, + 97, + 110, + 105, + 115, + 97, + 116, + 105, + 101, + 34, + 58, + 34, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 34, + 44, + 34, + 97, + 114, + 99, + 104, + 105, + 101, + 102, + 110, + 111, + 109, + 105, + 110, + 97, + 116, + 105, + 101, + 34, + 58, + 110, + 117, + 108, + 108, + 44, + 34, + 97, + 114, + 99, + 104, + 105, + 101, + 102, + 97, + 99, + 116, + 105, + 101, + 100, + 97, + 116, + 117, + 109, + 34, + 58, + 110, + 117, + 108, + 108, + 44, + 34, + 97, + 114, + 99, + 104, + 105, + 101, + 102, + 115, + 116, + 97, + 116, + 117, + 115, + 34, + 58, + 34, + 110, + 111, + 103, + 95, + 116, + 101, + 95, + 97, + 114, + 99, + 104, + 105, + 118, + 101, + 114, + 101, + 110, + 34, + 44, + 34, + 98, + 101, + 116, + 97, + 108, + 105, + 110, + 103, + 115, + 105, + 110, + 100, + 105, + 99, + 97, + 116, + 105, + 101, + 34, + 58, + 34, + 103, + 101, + 104, + 101, + 101, + 108, + 34, + 44, + 34, + 108, + 97, + 97, + 116, + 115, + 116, + 101, + 66, + 101, + 116, + 97, + 97, + 108, + 100, + 97, + 116, + 117, + 109, + 34, + 58, + 34, + 50, + 48, + 49, + 57, + 45, + 48, + 49, + 45, + 48, + 49, + 34, + 44, + 34, + 104, + 111, + 111, + 102, + 100, + 122, + 97, + 97, + 107, + 34, + 58, + 110, + 117, + 108, + 108, + 125 + ] + }, + "cookie": [], + "responseTime": 114, + "responseSize": 813 + }, + "id": "a6648084-8d27-4029-a31c-dad5cf6f839b", + "assertions": [ + { + "assertion": "Resultaat toevoegen aan Zaak zonder archiefnominatie betekent dat archiefnominatie afgeleid wordt uit Resultaattype", + "skipped": false + }, + { + "assertion": "Resultaat met afleidingswijze eigenschap toevoegen aan Zaak zet correcte Zaak.archiefdatum", + "skipped": false + } + ] + }, + { + "cursor": { + "ref": "0d01b0a7-9c8a-4704-adc0-7444d7789f53", + "length": 313, + "cycles": 1, + "position": 234, + "iteration": 0, + "httpRequestId": "88f884fb-b437-4a67-a256-2997c54012f3" + }, + "item": { + "id": "d6450df6-54f6-4a6d-b801-1e95350f16f3", + "name": "Create concept Besluittype", + "request": { + "url": { + "path": [ + "besluittypen" + ], + "host": [ + "{{ztc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n \"catalogus\": \"{{catalogus_url}}\",\n \"omschrijving\": \"{{random_omschrijving}}\",\n \"zaaktypen\": [],\n\t\"publicatieIndicatie\": false,\n\t\"informatieobjecttypen\": [],\n\t\"beginGeldigheid\": \"2019-01-01\"\n}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "272d1f8a-1caf-46a2-8dbd-0872f098bf66", + "type": "text/javascript", + "packages": {}, + "exec": [ + "pm.environment.set(\"besluittype_omschrijving\", pm.response.json().omschrijving);\r", + "pm.environment.set(\"concept_besluittype_url\", pm.response.json().url);" + ], + "_lastExecutionId": "866bf48e-826f-4ca2-bc17-5a3e63127bcc" + } + }, + { + "listen": "prerequest", + "script": { + "id": "3c2ee494-1d8e-45ae-aaeb-90ee9f7d76ab", + "type": "text/javascript", + "packages": {}, + "exec": [ + "var uuid = require('uuid');\r", + "var myUUID = uuid.v4(); \r", + "pm.environment.set(\"random_omschrijving\",myUUID);" + ], + "_lastExecutionId": "6251875c-d924-4d35-b71b-54d7e7d4a8f3" + } + } + ] + }, + "request": { + "url": { + "protocol": "http", + "port": "8080", + "path": [ + "index.php", + "apps", + "procest", + "api", + "zgw", + "catalogi", + "v1", + "besluittypen" + ], + "host": [ + "localhost" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Authorization", + "value": "Bearer eyJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJwcm9jZXN0LWFkbWluIiwiY2xpZW50X2lkIjoicHJvY2VzdC1hZG1pbiIsImlhdCI6IjE3NzMxNDUyMDAiLCJ1c2VyX2lkIjoicHJvY2VzdC1hZG1pbiIsInVzZXJfcmVwcmVzZW50YXRpb24iOiIifQ.cHUYQyOzN2CSNQ6zuF7Ns-frlNIK6bi5-FLK4MwxUDs", + "system": true + }, + { + "key": "User-Agent", + "value": "PostmanRuntime/7.39.1", + "system": true + }, + { + "key": "Accept", + "value": "*/*", + "system": true + }, + { + "key": "Cache-Control", + "value": "no-cache", + "system": true + }, + { + "key": "Postman-Token", + "value": "7ca92cd1-3802-4a89-a2c5-c81040277b4e", + "system": true + }, + { + "key": "Host", + "value": "localhost:8080", + "system": true + }, + { + "key": "Accept-Encoding", + "value": "gzip, deflate, br", + "system": true + }, + { + "key": "Connection", + "value": "keep-alive", + "system": true + }, + { + "key": "Content-Length", + "value": "313", + "system": true + }, + { + "key": "Cookie", + "value": "ocvp3112b4wg=1311dc5ecdae75ab2af5b009b0c7ea06; oc_sessionPassphrase=LBNdKxRzA0iqoULIruNxDDh2BK3O%2BrCIU8aUmiUcOFvy5Xw1YfjwQNlmBW2IkGwJYtxXh9%2BwDN6vYuGNX07tXzkBtjQJUWTGdzf8AIOUIVxVx5DfyWAQZ7nmYmQv6XSE; nc_sameSiteCookielax=true; nc_sameSiteCookiestrict=true", + "system": true + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n \"catalogus\": \"http://localhost:8080/index.php/apps/procest/api/zgw/catalogi/v1/catalogussen/5057408f-fd76-469e-8646-bcc4ba2efa8d\",\n \"omschrijving\": \"56dc1608-52db-4144-9411-7a89b6d6d0ce\",\n \"zaaktypen\": [],\n\t\"publicatieIndicatie\": false,\n\t\"informatieobjecttypen\": [],\n\t\"beginGeldigheid\": \"2019-01-01\"\n}" + }, + "auth": { + "type": "jwt", + "jwt": [ + { + "type": "string", + "value": "{\r\n \"iss\": \"procest-admin\",\r\n \"client_id\": \"procest-admin\",\r\n \"iat\": \"1773145200\",\r\n \"user_id\": \"procest-admin\",\r\n \"user_representation\": \"\"\r\n}", + "key": "payload" + }, + { + "type": "string", + "value": "procest-admin-secret-key-for-testing", + "key": "secret" + }, + { + "type": "string", + "value": "HS256", + "key": "algorithm" + }, + { + "type": "boolean", + "value": false, + "key": "isSecretBase64Encoded" + }, + { + "type": "string", + "value": "header", + "key": "addTokenTo" + }, + { + "type": "string", + "value": "Bearer", + "key": "headerPrefix" + }, + { + "type": "string", + "value": "token", + "key": "queryParamKey" + }, + { + "type": "string", + "value": "{}", + "key": "header" + } + ] + } + }, + "response": { + "id": "d82d1d6c-49fc-40ed-a63e-8fe336aa0766", + "status": "Created", + "code": 201, + "header": [ + { + "key": "Date", + "value": "Tue, 10 Mar 2026 12:19:59 GMT" + }, + { + "key": "Server", + "value": "Apache/2.4.66 (Debian)" + }, + { + "key": "X-Content-Type-Options", + "value": "nosniff" + }, + { + "key": "X-Frame-Options", + "value": "SAMEORIGIN" + }, + { + "key": "X-Permitted-Cross-Domain-Policies", + "value": "none" + }, + { + "key": "X-Robots-Tag", + "value": "noindex, nofollow" + }, + { + "key": "Referrer-Policy", + "value": "no-referrer" + }, + { + "key": "X-Powered-By", + "value": "PHP/8.3.30" + }, + { + "key": "Content-Security-Policy", + "value": "default-src 'none';base-uri 'none';manifest-src 'self';frame-ancestors 'none'" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=1311dc5ecdae75ab2af5b009b0c7ea06; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=1311dc5ecdae75ab2af5b009b0c7ea06; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=1311dc5ecdae75ab2af5b009b0c7ea06; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=1311dc5ecdae75ab2af5b009b0c7ea06; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=1311dc5ecdae75ab2af5b009b0c7ea06; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=8945c361aeecd21311da6d89c4262850; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=8945c361aeecd21311da6d89c4262850; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=8945c361aeecd21311da6d89c4262850; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=8945c361aeecd21311da6d89c4262850; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=8945c361aeecd21311da6d89c4262850; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "X-Request-Id", + "value": "GCXdt7n7rg7m6UZupw3Q" + }, + { + "key": "Cache-Control", + "value": "no-cache, no-store, must-revalidate" + }, + { + "key": "Feature-Policy", + "value": "autoplay 'none';camera 'none';fullscreen 'none';geolocation 'none';microphone 'none';payment 'none'" + }, + { + "key": "X-User-Id", + "value": "admin" + }, + { + "key": "Content-Length", + "value": "539" + }, + { + "key": "Keep-Alive", + "value": "timeout=5, max=98" + }, + { + "key": "Connection", + "value": "Keep-Alive" + }, + { + "key": "Content-Type", + "value": "application/json; charset=utf-8" + } + ], + "stream": { + "type": "Buffer", + "data": [ + 123, + 34, + 117, + 114, + 108, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 105, + 92, + 47, + 118, + 49, + 92, + 47, + 98, + 101, + 115, + 108, + 117, + 105, + 116, + 116, + 121, + 112, + 101, + 110, + 92, + 47, + 55, + 57, + 56, + 100, + 102, + 100, + 98, + 56, + 45, + 52, + 49, + 55, + 49, + 45, + 52, + 48, + 51, + 100, + 45, + 56, + 98, + 53, + 55, + 45, + 55, + 97, + 50, + 50, + 55, + 100, + 102, + 51, + 102, + 55, + 100, + 99, + 34, + 44, + 34, + 117, + 117, + 105, + 100, + 34, + 58, + 34, + 55, + 57, + 56, + 100, + 102, + 100, + 98, + 56, + 45, + 52, + 49, + 55, + 49, + 45, + 52, + 48, + 51, + 100, + 45, + 56, + 98, + 53, + 55, + 45, + 55, + 97, + 50, + 50, + 55, + 100, + 102, + 51, + 102, + 55, + 100, + 99, + 34, + 44, + 34, + 111, + 109, + 115, + 99, + 104, + 114, + 105, + 106, + 118, + 105, + 110, + 103, + 34, + 58, + 34, + 53, + 54, + 100, + 99, + 49, + 54, + 48, + 56, + 45, + 53, + 50, + 100, + 98, + 45, + 52, + 49, + 52, + 52, + 45, + 57, + 52, + 49, + 49, + 45, + 55, + 97, + 56, + 57, + 98, + 54, + 100, + 54, + 100, + 48, + 99, + 101, + 34, + 44, + 34, + 116, + 111, + 101, + 108, + 105, + 99, + 104, + 116, + 105, + 110, + 103, + 34, + 58, + 34, + 34, + 44, + 34, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 117, + 115, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 105, + 92, + 47, + 118, + 49, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 117, + 115, + 115, + 101, + 110, + 92, + 47, + 53, + 48, + 53, + 55, + 52, + 48, + 56, + 102, + 45, + 102, + 100, + 55, + 54, + 45, + 52, + 54, + 57, + 101, + 45, + 56, + 54, + 52, + 54, + 45, + 98, + 99, + 99, + 52, + 98, + 97, + 50, + 101, + 102, + 97, + 56, + 100, + 34, + 44, + 34, + 122, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 99, + 111, + 110, + 99, + 101, + 112, + 116, + 34, + 58, + 116, + 114, + 117, + 101, + 44, + 34, + 112, + 117, + 98, + 108, + 105, + 99, + 97, + 116, + 105, + 101, + 73, + 110, + 100, + 105, + 99, + 97, + 116, + 105, + 101, + 34, + 58, + 102, + 97, + 108, + 115, + 101, + 44, + 34, + 105, + 110, + 102, + 111, + 114, + 109, + 97, + 116, + 105, + 101, + 111, + 98, + 106, + 101, + 99, + 116, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 98, + 101, + 103, + 105, + 110, + 71, + 101, + 108, + 100, + 105, + 103, + 104, + 101, + 105, + 100, + 34, + 58, + 34, + 50, + 48, + 49, + 57, + 45, + 48, + 49, + 45, + 48, + 49, + 34, + 44, + 34, + 101, + 105, + 110, + 100, + 101, + 71, + 101, + 108, + 100, + 105, + 103, + 104, + 101, + 105, + 100, + 34, + 58, + 34, + 50, + 48, + 50, + 54, + 45, + 48, + 51, + 45, + 49, + 48, + 34, + 125 + ] + }, + "cookie": [], + "responseTime": 165, + "responseSize": 539 + }, + "id": "d6450df6-54f6-4a6d-b801-1e95350f16f3" + }, + { + "cursor": { + "ref": "a96a82ff-a150-454c-a63a-622157c08e3c", + "length": 313, + "cycles": 1, + "position": 235, + "iteration": 0, + "httpRequestId": "48bb73a8-6b60-474a-89e8-10ecec58e298" + }, + "item": { + "id": "14456041-31f8-4fd0-980d-ac8482b251b2", + "name": "Create Zaaktype procestermijn vast_te_leggen_datum", + "request": { + "url": { + "path": [ + "zaaktypen" + ], + "host": [ + "{{ztc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\r\n\r\n \"identificatie\": \"{{random_identificatie}}\",\r\n \"omschrijving\": \"Zaaktype for archiving tests vast_te_leggen_datum\",\r\n \"omschrijvingGeneriek\": null,\r\n \"vertrouwelijkheidaanduiding\": \"openbaar\",\r\n \"doel\": \"test doel\",\r\n \"aanleiding\": \"test aanleiding\",\r\n \"toelichting\": null,\r\n \"indicatieInternOfExtern\": \"extern\",\r\n \"handelingInitiator\": \"indienen\",\r\n \"onderwerp\": \"openbare ruimte\",\r\n \"handelingBehandelaar\": \"behandelen\",\r\n \"doorlooptijd\": \"P10D\",\r\n \"servicenorm\": null,\r\n \"opschortingEnAanhoudingMogelijk\": false,\r\n \"verlengingMogelijk\": true,\r\n \"verlengingstermijn\": \"P5D\",\r\n \"trefwoorden\": [],\r\n \"publicatieIndicatie\": false,\r\n \"publicatietekst\": null,\r\n \"verantwoordingsrelatie\": [],\r\n \"productenOfDiensten\": [\r\n \"https://ref.tst.vng.cloud/standaard/\"\r\n ],\r\n \"selectielijstProcestype\": \"{{procestype_procestermijn_vast_te_leggen_datum_url}}\",\r\n \"referentieproces\": {\r\n \"naam\": \"test\",\r\n \"link\": \"\"\r\n },\r\n \"verantwoordelijke\": \"X\",\r\n \"zaakobjecttypen\": [],\r\n \"broncatalogus\": null,\r\n \"bronzaaktype\": null,\r\n \"catalogus\": \"{{catalogus_url}}\",\r\n \"statustypen\": [],\r\n \"resultaattypen\": [],\r\n \"eigenschappen\": [],\r\n \"informatieobjecttypen\": [],\r\n \"roltypen\": [],\r\n \"besluittypen\": [\"{{besluittype_omschrijving}}\"],\r\n \"deelzaaktypen\": [\r\n \r\n ],\r\n \"gerelateerdeZaaktypen\": [],\r\n \"concept\": true,\r\n \"beginGeldigheid\": \"2019-01-01\",\r\n \"eindeGeldigheid\": null,\r\n \"beginObject\": null,\r\n \"eindeObject\": null,\r\n \"versiedatum\": \"2019-01-01\"\r\n}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "fd964c6e-fad1-4baf-8cbc-ad40a5bd0b55", + "type": "text/javascript", + "packages": {}, + "exec": [ + "var res = pm.response.json();", + "pm.environment.set(\"zaaktype_procestermijn_vast_te_leggen_datum_url\", res.url);" + ], + "_lastExecutionId": "90a0f2ef-e803-4527-97ab-7cca34e23709" + } + }, + { + "listen": "prerequest", + "script": { + "id": "7c82cb16-23bf-4871-8800-6f2c79dbe808", + "type": "text/javascript", + "packages": {}, + "exec": [ + "var uuid = require('uuid');", + "var myUUID = uuid.v4(); ", + "pm.environment.set(\"random_identificatie\",myUUID);", + "", + "", + "" + ], + "_lastExecutionId": "81f8acef-ef6e-4ef2-99f6-cfb0134f5c7e" + } + } + ] + }, + "request": { + "url": { + "protocol": "http", + "port": "8080", + "path": [ + "index.php", + "apps", + "procest", + "api", + "zgw", + "catalogi", + "v1", + "zaaktypen" + ], + "host": [ + "localhost" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Authorization", + "value": "Bearer eyJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJwcm9jZXN0LWFkbWluIiwiY2xpZW50X2lkIjoicHJvY2VzdC1hZG1pbiIsImlhdCI6IjE3NzMxNDUyMDAiLCJ1c2VyX2lkIjoicHJvY2VzdC1hZG1pbiIsInVzZXJfcmVwcmVzZW50YXRpb24iOiIifQ.cHUYQyOzN2CSNQ6zuF7Ns-frlNIK6bi5-FLK4MwxUDs", + "system": true + }, + { + "key": "User-Agent", + "value": "PostmanRuntime/7.39.1", + "system": true + }, + { + "key": "Accept", + "value": "*/*", + "system": true + }, + { + "key": "Cache-Control", + "value": "no-cache", + "system": true + }, + { + "key": "Postman-Token", + "value": "559ccb0e-d87f-4917-90ee-a6ef9d632dfd", + "system": true + }, + { + "key": "Host", + "value": "localhost:8080", + "system": true + }, + { + "key": "Accept-Encoding", + "value": "gzip, deflate, br", + "system": true + }, + { + "key": "Connection", + "value": "keep-alive", + "system": true + }, + { + "key": "Content-Length", + "value": "1756", + "system": true + }, + { + "key": "Cookie", + "value": "ocvp3112b4wg=8945c361aeecd21311da6d89c4262850; oc_sessionPassphrase=LBNdKxRzA0iqoULIruNxDDh2BK3O%2BrCIU8aUmiUcOFvy5Xw1YfjwQNlmBW2IkGwJYtxXh9%2BwDN6vYuGNX07tXzkBtjQJUWTGdzf8AIOUIVxVx5DfyWAQZ7nmYmQv6XSE; nc_sameSiteCookielax=true; nc_sameSiteCookiestrict=true", + "system": true + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\r\n\r\n \"identificatie\": \"9ad91725-a8d5-466a-8a16-f4409a5bc0a0\",\r\n \"omschrijving\": \"Zaaktype for archiving tests vast_te_leggen_datum\",\r\n \"omschrijvingGeneriek\": null,\r\n \"vertrouwelijkheidaanduiding\": \"openbaar\",\r\n \"doel\": \"test doel\",\r\n \"aanleiding\": \"test aanleiding\",\r\n \"toelichting\": null,\r\n \"indicatieInternOfExtern\": \"extern\",\r\n \"handelingInitiator\": \"indienen\",\r\n \"onderwerp\": \"openbare ruimte\",\r\n \"handelingBehandelaar\": \"behandelen\",\r\n \"doorlooptijd\": \"P10D\",\r\n \"servicenorm\": null,\r\n \"opschortingEnAanhoudingMogelijk\": false,\r\n \"verlengingMogelijk\": true,\r\n \"verlengingstermijn\": \"P5D\",\r\n \"trefwoorden\": [],\r\n \"publicatieIndicatie\": false,\r\n \"publicatietekst\": null,\r\n \"verantwoordingsrelatie\": [],\r\n \"productenOfDiensten\": [\r\n \"https://ref.tst.vng.cloud/standaard/\"\r\n ],\r\n \"selectielijstProcestype\": \"https://selectielijst.openzaak.nl/api/v1/procestypen/838e405a-9b12-43c4-a985-d7a7490d422e\",\r\n \"referentieproces\": {\r\n \"naam\": \"test\",\r\n \"link\": \"\"\r\n },\r\n \"verantwoordelijke\": \"X\",\r\n \"zaakobjecttypen\": [],\r\n \"broncatalogus\": null,\r\n \"bronzaaktype\": null,\r\n \"catalogus\": \"http://localhost:8080/index.php/apps/procest/api/zgw/catalogi/v1/catalogussen/5057408f-fd76-469e-8646-bcc4ba2efa8d\",\r\n \"statustypen\": [],\r\n \"resultaattypen\": [],\r\n \"eigenschappen\": [],\r\n \"informatieobjecttypen\": [],\r\n \"roltypen\": [],\r\n \"besluittypen\": [\"56dc1608-52db-4144-9411-7a89b6d6d0ce\"],\r\n \"deelzaaktypen\": [\r\n \r\n ],\r\n \"gerelateerdeZaaktypen\": [],\r\n \"concept\": true,\r\n \"beginGeldigheid\": \"2019-01-01\",\r\n \"eindeGeldigheid\": null,\r\n \"beginObject\": null,\r\n \"eindeObject\": null,\r\n \"versiedatum\": \"2019-01-01\"\r\n}" + }, + "auth": { + "type": "jwt", + "jwt": [ + { + "type": "string", + "value": "{\r\n \"iss\": \"procest-admin\",\r\n \"client_id\": \"procest-admin\",\r\n \"iat\": \"1773145200\",\r\n \"user_id\": \"procest-admin\",\r\n \"user_representation\": \"\"\r\n}", + "key": "payload" + }, + { + "type": "string", + "value": "procest-admin-secret-key-for-testing", + "key": "secret" + }, + { + "type": "string", + "value": "HS256", + "key": "algorithm" + }, + { + "type": "boolean", + "value": false, + "key": "isSecretBase64Encoded" + }, + { + "type": "string", + "value": "header", + "key": "addTokenTo" + }, + { + "type": "string", + "value": "Bearer", + "key": "headerPrefix" + }, + { + "type": "string", + "value": "token", + "key": "queryParamKey" + }, + { + "type": "string", + "value": "{}", + "key": "header" + } + ] + } + }, + "response": { + "id": "aa77997a-aaeb-4524-832e-333a01f10ae9", + "status": "Created", + "code": 201, + "header": [ + { + "key": "Date", + "value": "Tue, 10 Mar 2026 12:19:59 GMT" + }, + { + "key": "Server", + "value": "Apache/2.4.66 (Debian)" + }, + { + "key": "X-Content-Type-Options", + "value": "nosniff" + }, + { + "key": "X-Frame-Options", + "value": "SAMEORIGIN" + }, + { + "key": "X-Permitted-Cross-Domain-Policies", + "value": "none" + }, + { + "key": "X-Robots-Tag", + "value": "noindex, nofollow" + }, + { + "key": "Referrer-Policy", + "value": "no-referrer" + }, + { + "key": "X-Powered-By", + "value": "PHP/8.3.30" + }, + { + "key": "Content-Security-Policy", + "value": "default-src 'none';base-uri 'none';manifest-src 'self';frame-ancestors 'none'" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=8945c361aeecd21311da6d89c4262850; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=8945c361aeecd21311da6d89c4262850; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=8945c361aeecd21311da6d89c4262850; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=8945c361aeecd21311da6d89c4262850; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=8945c361aeecd21311da6d89c4262850; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=46c4621f859ad1475a4b1964f1d89fa1; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=46c4621f859ad1475a4b1964f1d89fa1; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=46c4621f859ad1475a4b1964f1d89fa1; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=46c4621f859ad1475a4b1964f1d89fa1; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=46c4621f859ad1475a4b1964f1d89fa1; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "X-Request-Id", + "value": "vS6vwSeUo9pBFQv17AbD" + }, + { + "key": "Cache-Control", + "value": "no-cache, no-store, must-revalidate" + }, + { + "key": "Feature-Policy", + "value": "autoplay 'none';camera 'none';fullscreen 'none';geolocation 'none';microphone 'none';payment 'none'" + }, + { + "key": "X-User-Id", + "value": "admin" + }, + { + "key": "Content-Length", + "value": "1375" + }, + { + "key": "Keep-Alive", + "value": "timeout=5, max=97" + }, + { + "key": "Connection", + "value": "Keep-Alive" + }, + { + "key": "Content-Type", + "value": "application/json; charset=utf-8" + } + ], + "stream": { + "type": "Buffer", + "data": [ + 123, + 34, + 117, + 114, + 108, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 105, + 92, + 47, + 118, + 49, + 92, + 47, + 122, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 110, + 92, + 47, + 48, + 49, + 57, + 50, + 99, + 97, + 99, + 51, + 45, + 55, + 48, + 48, + 101, + 45, + 52, + 52, + 52, + 102, + 45, + 98, + 48, + 52, + 53, + 45, + 99, + 102, + 56, + 57, + 48, + 54, + 54, + 55, + 101, + 55, + 99, + 49, + 34, + 44, + 34, + 117, + 117, + 105, + 100, + 34, + 58, + 34, + 48, + 49, + 57, + 50, + 99, + 97, + 99, + 51, + 45, + 55, + 48, + 48, + 101, + 45, + 52, + 52, + 52, + 102, + 45, + 98, + 48, + 52, + 53, + 45, + 99, + 102, + 56, + 57, + 48, + 54, + 54, + 55, + 101, + 55, + 99, + 49, + 34, + 44, + 34, + 105, + 100, + 101, + 110, + 116, + 105, + 102, + 105, + 99, + 97, + 116, + 105, + 101, + 34, + 58, + 34, + 57, + 97, + 100, + 57, + 49, + 55, + 50, + 53, + 45, + 97, + 56, + 100, + 53, + 45, + 52, + 54, + 54, + 97, + 45, + 56, + 97, + 49, + 54, + 45, + 102, + 52, + 52, + 48, + 57, + 97, + 53, + 98, + 99, + 48, + 97, + 48, + 34, + 44, + 34, + 111, + 109, + 115, + 99, + 104, + 114, + 105, + 106, + 118, + 105, + 110, + 103, + 34, + 58, + 34, + 90, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 32, + 102, + 111, + 114, + 32, + 97, + 114, + 99, + 104, + 105, + 118, + 105, + 110, + 103, + 32, + 116, + 101, + 115, + 116, + 115, + 32, + 118, + 97, + 115, + 116, + 95, + 116, + 101, + 95, + 108, + 101, + 103, + 103, + 101, + 110, + 95, + 100, + 97, + 116, + 117, + 109, + 34, + 44, + 34, + 111, + 109, + 115, + 99, + 104, + 114, + 105, + 106, + 118, + 105, + 110, + 103, + 71, + 101, + 110, + 101, + 114, + 105, + 101, + 107, + 34, + 58, + 34, + 34, + 44, + 34, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 117, + 115, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 105, + 92, + 47, + 118, + 49, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 117, + 115, + 115, + 101, + 110, + 92, + 47, + 53, + 48, + 53, + 55, + 52, + 48, + 56, + 102, + 45, + 102, + 100, + 55, + 54, + 45, + 52, + 54, + 57, + 101, + 45, + 56, + 54, + 52, + 54, + 45, + 98, + 99, + 99, + 52, + 98, + 97, + 50, + 101, + 102, + 97, + 56, + 100, + 34, + 44, + 34, + 100, + 111, + 101, + 108, + 34, + 58, + 34, + 116, + 101, + 115, + 116, + 32, + 100, + 111, + 101, + 108, + 34, + 44, + 34, + 97, + 97, + 110, + 108, + 101, + 105, + 100, + 105, + 110, + 103, + 34, + 58, + 34, + 116, + 101, + 115, + 116, + 32, + 97, + 97, + 110, + 108, + 101, + 105, + 100, + 105, + 110, + 103, + 34, + 44, + 34, + 111, + 110, + 100, + 101, + 114, + 119, + 101, + 114, + 112, + 34, + 58, + 34, + 111, + 112, + 101, + 110, + 98, + 97, + 114, + 101, + 32, + 114, + 117, + 105, + 109, + 116, + 101, + 34, + 44, + 34, + 100, + 111, + 111, + 114, + 108, + 111, + 111, + 112, + 116, + 105, + 106, + 100, + 34, + 58, + 34, + 80, + 49, + 48, + 68, + 34, + 44, + 34, + 118, + 101, + 114, + 116, + 114, + 111, + 117, + 119, + 101, + 108, + 105, + 106, + 107, + 104, + 101, + 105, + 100, + 97, + 97, + 110, + 100, + 117, + 105, + 100, + 105, + 110, + 103, + 34, + 58, + 34, + 111, + 112, + 101, + 110, + 98, + 97, + 97, + 114, + 34, + 44, + 34, + 99, + 111, + 110, + 99, + 101, + 112, + 116, + 34, + 58, + 116, + 114, + 117, + 101, + 44, + 34, + 98, + 101, + 103, + 105, + 110, + 71, + 101, + 108, + 100, + 105, + 103, + 104, + 101, + 105, + 100, + 34, + 58, + 34, + 50, + 48, + 49, + 57, + 45, + 48, + 49, + 45, + 48, + 49, + 34, + 44, + 34, + 101, + 105, + 110, + 100, + 101, + 71, + 101, + 108, + 100, + 105, + 103, + 104, + 101, + 105, + 100, + 34, + 58, + 34, + 50, + 48, + 50, + 54, + 45, + 48, + 51, + 45, + 49, + 48, + 34, + 44, + 34, + 104, + 97, + 110, + 100, + 101, + 108, + 105, + 110, + 103, + 73, + 110, + 105, + 116, + 105, + 97, + 116, + 111, + 114, + 34, + 58, + 34, + 105, + 110, + 100, + 105, + 101, + 110, + 101, + 110, + 34, + 44, + 34, + 105, + 110, + 100, + 105, + 99, + 97, + 116, + 105, + 101, + 73, + 110, + 116, + 101, + 114, + 110, + 79, + 102, + 69, + 120, + 116, + 101, + 114, + 110, + 34, + 58, + 34, + 101, + 120, + 116, + 101, + 114, + 110, + 34, + 44, + 34, + 104, + 97, + 110, + 100, + 101, + 108, + 105, + 110, + 103, + 66, + 101, + 104, + 97, + 110, + 100, + 101, + 108, + 97, + 97, + 114, + 34, + 58, + 34, + 98, + 101, + 104, + 97, + 110, + 100, + 101, + 108, + 101, + 110, + 34, + 44, + 34, + 111, + 112, + 115, + 99, + 104, + 111, + 114, + 116, + 105, + 110, + 103, + 69, + 110, + 65, + 97, + 110, + 104, + 111, + 117, + 100, + 105, + 110, + 103, + 77, + 111, + 103, + 101, + 108, + 105, + 106, + 107, + 34, + 58, + 102, + 97, + 108, + 115, + 101, + 44, + 34, + 118, + 101, + 114, + 108, + 101, + 110, + 103, + 105, + 110, + 103, + 77, + 111, + 103, + 101, + 108, + 105, + 106, + 107, + 34, + 58, + 116, + 114, + 117, + 101, + 44, + 34, + 118, + 101, + 114, + 108, + 101, + 110, + 103, + 105, + 110, + 103, + 115, + 116, + 101, + 114, + 109, + 105, + 106, + 110, + 34, + 58, + 34, + 80, + 53, + 68, + 34, + 44, + 34, + 112, + 117, + 98, + 108, + 105, + 99, + 97, + 116, + 105, + 101, + 73, + 110, + 100, + 105, + 99, + 97, + 116, + 105, + 101, + 34, + 58, + 102, + 97, + 108, + 115, + 101, + 44, + 34, + 112, + 114, + 111, + 100, + 117, + 99, + 116, + 101, + 110, + 79, + 102, + 68, + 105, + 101, + 110, + 115, + 116, + 101, + 110, + 34, + 58, + 91, + 34, + 104, + 116, + 116, + 112, + 115, + 58, + 92, + 47, + 92, + 47, + 114, + 101, + 102, + 46, + 116, + 115, + 116, + 46, + 118, + 110, + 103, + 46, + 99, + 108, + 111, + 117, + 100, + 92, + 47, + 115, + 116, + 97, + 110, + 100, + 97, + 97, + 114, + 100, + 92, + 47, + 34, + 93, + 44, + 34, + 115, + 101, + 108, + 101, + 99, + 116, + 105, + 101, + 108, + 105, + 106, + 115, + 116, + 80, + 114, + 111, + 99, + 101, + 115, + 116, + 121, + 112, + 101, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 115, + 58, + 92, + 47, + 92, + 47, + 115, + 101, + 108, + 101, + 99, + 116, + 105, + 101, + 108, + 105, + 106, + 115, + 116, + 46, + 111, + 112, + 101, + 110, + 122, + 97, + 97, + 107, + 46, + 110, + 108, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 118, + 49, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 121, + 112, + 101, + 110, + 92, + 47, + 56, + 51, + 56, + 101, + 52, + 48, + 53, + 97, + 45, + 57, + 98, + 49, + 50, + 45, + 52, + 51, + 99, + 52, + 45, + 97, + 57, + 56, + 53, + 45, + 100, + 55, + 97, + 55, + 52, + 57, + 48, + 100, + 52, + 50, + 50, + 101, + 34, + 44, + 34, + 114, + 101, + 102, + 101, + 114, + 101, + 110, + 116, + 105, + 101, + 112, + 114, + 111, + 99, + 101, + 115, + 34, + 58, + 123, + 34, + 108, + 105, + 110, + 107, + 34, + 58, + 34, + 34, + 44, + 34, + 110, + 97, + 97, + 109, + 34, + 58, + 34, + 116, + 101, + 115, + 116, + 34, + 125, + 44, + 34, + 118, + 101, + 114, + 97, + 110, + 116, + 119, + 111, + 111, + 114, + 100, + 101, + 108, + 105, + 106, + 107, + 101, + 34, + 58, + 34, + 88, + 34, + 44, + 34, + 103, + 101, + 114, + 101, + 108, + 97, + 116, + 101, + 101, + 114, + 100, + 101, + 90, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 98, + 101, + 115, + 108, + 117, + 105, + 116, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 105, + 110, + 102, + 111, + 114, + 109, + 97, + 116, + 105, + 101, + 111, + 98, + 106, + 101, + 99, + 116, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 100, + 101, + 101, + 108, + 122, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 116, + 111, + 101, + 108, + 105, + 99, + 104, + 116, + 105, + 110, + 103, + 34, + 58, + 34, + 34, + 44, + 34, + 118, + 101, + 114, + 115, + 105, + 101, + 100, + 97, + 116, + 117, + 109, + 34, + 58, + 34, + 50, + 48, + 49, + 57, + 45, + 48, + 49, + 45, + 48, + 49, + 34, + 44, + 34, + 101, + 105, + 103, + 101, + 110, + 115, + 99, + 104, + 97, + 112, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 115, + 116, + 97, + 116, + 117, + 115, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 114, + 101, + 115, + 117, + 108, + 116, + 97, + 97, + 116, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 114, + 111, + 108, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 125 + ] + }, + "cookie": [], + "responseTime": 317, + "responseSize": 1375 + }, + "id": "14456041-31f8-4fd0-980d-ac8482b251b2" + }, + { + "cursor": { + "ref": "dc22f6d0-fc28-4474-acf8-3cd87d53346b", + "length": 313, + "cycles": 1, + "position": 236, + "iteration": 0, + "httpRequestId": "6587a028-9806-49ab-8850-2f94657f398c" + }, + "item": { + "id": "af5a7ee9-3dfd-4b0b-ab5a-9fb200689f7e", + "name": "Create Resultaattype afleidingswijze ingangsdatum_besluit", + "request": { + "url": { + "path": [ + "resultaattypen" + ], + "host": [ + "{{ztc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n\t\"zaaktype\": \"{{zaaktype_procestermijn_vast_te_leggen_datum_url}}\",\n\t\"omschrijving\": \"TEST\",\n\t\"resultaattypeomschrijving\": \"https://referentielijsten.roxit.nl/api/v1/resultaattypeomschrijvingen/bae947e7-02b5-44f9-ab76-28c7a0ed01c0\",\n\t\"selectielijstklasse\": \"{{selectielijstklasse_procestermijn_vast_te_leggen_datum_url}}\",\n \"besluittypen\": [],\n\t\"brondatumArchiefprocedure\": {\n\t\t\"afleidingswijze\": \"ingangsdatum_besluit\",\n\t\t\"procestermijn\": null,\n\t\t\"datumkenmerk\": \"\",\n\t\t\"einddatumBekend\": true,\n\t\t\"objecttype\": \"\",\n\t\t\"registratie\": \"\"\n\t}\n}" + } + }, + "response": [], + "event": [ + { + "listen": "prerequest", + "script": { + "id": "2928fc78-c7b6-4342-b60a-6db66bf135bc", + "type": "text/javascript", + "packages": {}, + "exec": [ + "" + ], + "_lastExecutionId": "e7537935-c1a9-4fb4-9e6f-5580e79857eb" + } + }, + { + "listen": "test", + "script": { + "id": "ae0ab089-5546-4556-9471-9fdeb68f6649", + "type": "text/javascript", + "packages": {}, + "exec": [ + "var jsonData = pm.response.json();", + "", + "pm.environment.set(\"current_resultaattype\", jsonData.url);", + "pm.environment.set(\"resultaattype_archiefnominatie\", jsonData.archiefnominatie);", + "pm.environment.set(\"resultaattype_archiefactietermijn\", jsonData.archiefactietermijn);", + "pm.environment.set(\"resultaattype_brondatumArchiefprocedure\", jsonData.brondatumArchiefprocedure);" + ], + "_lastExecutionId": "b17ee286-81e5-41ae-a5a2-be7566c9f873" + } + } + ] + }, + "request": { + "url": { + "protocol": "http", + "port": "8080", + "path": [ + "index.php", + "apps", + "procest", + "api", + "zgw", + "catalogi", + "v1", + "resultaattypen" + ], + "host": [ + "localhost" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Authorization", + "value": "Bearer eyJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJwcm9jZXN0LWFkbWluIiwiY2xpZW50X2lkIjoicHJvY2VzdC1hZG1pbiIsImlhdCI6IjE3NzMxNDUyMDAiLCJ1c2VyX2lkIjoicHJvY2VzdC1hZG1pbiIsInVzZXJfcmVwcmVzZW50YXRpb24iOiIifQ.cHUYQyOzN2CSNQ6zuF7Ns-frlNIK6bi5-FLK4MwxUDs", + "system": true + }, + { + "key": "User-Agent", + "value": "PostmanRuntime/7.39.1", + "system": true + }, + { + "key": "Accept", + "value": "*/*", + "system": true + }, + { + "key": "Cache-Control", + "value": "no-cache", + "system": true + }, + { + "key": "Postman-Token", + "value": "12753fc5-c616-4ff7-8ab2-d6d6c59d411b", + "system": true + }, + { + "key": "Host", + "value": "localhost:8080", + "system": true + }, + { + "key": "Accept-Encoding", + "value": "gzip, deflate, br", + "system": true + }, + { + "key": "Connection", + "value": "keep-alive", + "system": true + }, + { + "key": "Content-Length", + "value": "630", + "system": true + }, + { + "key": "Cookie", + "value": "ocvp3112b4wg=46c4621f859ad1475a4b1964f1d89fa1; oc_sessionPassphrase=LBNdKxRzA0iqoULIruNxDDh2BK3O%2BrCIU8aUmiUcOFvy5Xw1YfjwQNlmBW2IkGwJYtxXh9%2BwDN6vYuGNX07tXzkBtjQJUWTGdzf8AIOUIVxVx5DfyWAQZ7nmYmQv6XSE; nc_sameSiteCookielax=true; nc_sameSiteCookiestrict=true", + "system": true + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n\t\"zaaktype\": \"http://localhost:8080/index.php/apps/procest/api/zgw/catalogi/v1/zaaktypen/0192cac3-700e-444f-b045-cf890667e7c1\",\n\t\"omschrijving\": \"TEST\",\n\t\"resultaattypeomschrijving\": \"https://referentielijsten.roxit.nl/api/v1/resultaattypeomschrijvingen/bae947e7-02b5-44f9-ab76-28c7a0ed01c0\",\n\t\"selectielijstklasse\": \"https://selectielijst.openzaak.nl/api/v1/resultaten/80ffe8cb-e430-4ae9-a48b-34a9ef21e3cd\",\n \"besluittypen\": [],\n\t\"brondatumArchiefprocedure\": {\n\t\t\"afleidingswijze\": \"ingangsdatum_besluit\",\n\t\t\"procestermijn\": null,\n\t\t\"datumkenmerk\": \"\",\n\t\t\"einddatumBekend\": true,\n\t\t\"objecttype\": \"\",\n\t\t\"registratie\": \"\"\n\t}\n}" + }, + "auth": { + "type": "jwt", + "jwt": [ + { + "type": "string", + "value": "{\r\n \"iss\": \"procest-admin\",\r\n \"client_id\": \"procest-admin\",\r\n \"iat\": \"1773145200\",\r\n \"user_id\": \"procest-admin\",\r\n \"user_representation\": \"\"\r\n}", + "key": "payload" + }, + { + "type": "string", + "value": "procest-admin-secret-key-for-testing", + "key": "secret" + }, + { + "type": "string", + "value": "HS256", + "key": "algorithm" + }, + { + "type": "boolean", + "value": false, + "key": "isSecretBase64Encoded" + }, + { + "type": "string", + "value": "header", + "key": "addTokenTo" + }, + { + "type": "string", + "value": "Bearer", + "key": "headerPrefix" + }, + { + "type": "string", + "value": "token", + "key": "queryParamKey" + }, + { + "type": "string", + "value": "{}", + "key": "header" + } + ] + } + }, + "response": { + "id": "88532b9b-3d58-4f79-b151-fac7eae577e2", + "status": "Created", + "code": 201, + "header": [ + { + "key": "Date", + "value": "Tue, 10 Mar 2026 12:20:00 GMT" + }, + { + "key": "Server", + "value": "Apache/2.4.66 (Debian)" + }, + { + "key": "X-Content-Type-Options", + "value": "nosniff" + }, + { + "key": "X-Frame-Options", + "value": "SAMEORIGIN" + }, + { + "key": "X-Permitted-Cross-Domain-Policies", + "value": "none" + }, + { + "key": "X-Robots-Tag", + "value": "noindex, nofollow" + }, + { + "key": "Referrer-Policy", + "value": "no-referrer" + }, + { + "key": "X-Powered-By", + "value": "PHP/8.3.30" + }, + { + "key": "Content-Security-Policy", + "value": "default-src 'none';base-uri 'none';manifest-src 'self';frame-ancestors 'none'" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=46c4621f859ad1475a4b1964f1d89fa1; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=46c4621f859ad1475a4b1964f1d89fa1; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=46c4621f859ad1475a4b1964f1d89fa1; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=46c4621f859ad1475a4b1964f1d89fa1; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=46c4621f859ad1475a4b1964f1d89fa1; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=6c208a5f5094151cad7681337f828e9b; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=6c208a5f5094151cad7681337f828e9b; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=6c208a5f5094151cad7681337f828e9b; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=6c208a5f5094151cad7681337f828e9b; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=6c208a5f5094151cad7681337f828e9b; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "X-Request-Id", + "value": "QAHcVyl25vGk5Hbrgql9" + }, + { + "key": "Cache-Control", + "value": "no-cache, no-store, must-revalidate" + }, + { + "key": "Feature-Policy", + "value": "autoplay 'none';camera 'none';fullscreen 'none';geolocation 'none';microphone 'none';payment 'none'" + }, + { + "key": "X-User-Id", + "value": "admin" + }, + { + "key": "Content-Length", + "value": "762" + }, + { + "key": "Keep-Alive", + "value": "timeout=5, max=96" + }, + { + "key": "Connection", + "value": "Keep-Alive" + }, + { + "key": "Content-Type", + "value": "application/json; charset=utf-8" + } + ], + "stream": { + "type": "Buffer", + "data": [ + 123, + 34, + 117, + 114, + 108, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 105, + 92, + 47, + 118, + 49, + 92, + 47, + 114, + 101, + 115, + 117, + 108, + 116, + 97, + 97, + 116, + 116, + 121, + 112, + 101, + 110, + 92, + 47, + 54, + 99, + 99, + 99, + 53, + 55, + 51, + 100, + 45, + 53, + 100, + 55, + 53, + 45, + 52, + 97, + 51, + 98, + 45, + 56, + 51, + 56, + 51, + 45, + 56, + 48, + 99, + 56, + 57, + 99, + 98, + 50, + 52, + 48, + 51, + 52, + 34, + 44, + 34, + 117, + 117, + 105, + 100, + 34, + 58, + 34, + 54, + 99, + 99, + 99, + 53, + 55, + 51, + 100, + 45, + 53, + 100, + 55, + 53, + 45, + 52, + 97, + 51, + 98, + 45, + 56, + 51, + 56, + 51, + 45, + 56, + 48, + 99, + 56, + 57, + 99, + 98, + 50, + 52, + 48, + 51, + 52, + 34, + 44, + 34, + 111, + 109, + 115, + 99, + 104, + 114, + 105, + 106, + 118, + 105, + 110, + 103, + 34, + 58, + 34, + 84, + 69, + 83, + 84, + 34, + 44, + 34, + 111, + 109, + 115, + 99, + 104, + 114, + 105, + 106, + 118, + 105, + 110, + 103, + 71, + 101, + 110, + 101, + 114, + 105, + 101, + 107, + 34, + 58, + 34, + 65, + 102, + 103, + 101, + 98, + 114, + 111, + 107, + 101, + 110, + 34, + 44, + 34, + 116, + 111, + 101, + 108, + 105, + 99, + 104, + 116, + 105, + 110, + 103, + 34, + 58, + 34, + 34, + 44, + 34, + 122, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 105, + 92, + 47, + 118, + 49, + 92, + 47, + 122, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 110, + 92, + 47, + 48, + 49, + 57, + 50, + 99, + 97, + 99, + 51, + 45, + 55, + 48, + 48, + 101, + 45, + 52, + 52, + 52, + 102, + 45, + 98, + 48, + 52, + 53, + 45, + 99, + 102, + 56, + 57, + 48, + 54, + 54, + 55, + 101, + 55, + 99, + 49, + 34, + 44, + 34, + 97, + 114, + 99, + 104, + 105, + 101, + 102, + 110, + 111, + 109, + 105, + 110, + 97, + 116, + 105, + 101, + 34, + 58, + 34, + 118, + 101, + 114, + 110, + 105, + 101, + 116, + 105, + 103, + 101, + 110, + 34, + 44, + 34, + 97, + 114, + 99, + 104, + 105, + 101, + 102, + 97, + 99, + 116, + 105, + 101, + 116, + 101, + 114, + 109, + 105, + 106, + 110, + 34, + 58, + 34, + 80, + 53, + 89, + 34, + 44, + 34, + 98, + 114, + 111, + 110, + 100, + 97, + 116, + 117, + 109, + 65, + 114, + 99, + 104, + 105, + 101, + 102, + 112, + 114, + 111, + 99, + 101, + 100, + 117, + 114, + 101, + 34, + 58, + 34, + 123, + 92, + 34, + 97, + 102, + 108, + 101, + 105, + 100, + 105, + 110, + 103, + 115, + 119, + 105, + 106, + 122, + 101, + 92, + 34, + 58, + 92, + 34, + 105, + 110, + 103, + 97, + 110, + 103, + 115, + 100, + 97, + 116, + 117, + 109, + 95, + 98, + 101, + 115, + 108, + 117, + 105, + 116, + 92, + 34, + 44, + 92, + 34, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 101, + 114, + 109, + 105, + 106, + 110, + 92, + 34, + 58, + 110, + 117, + 108, + 108, + 44, + 92, + 34, + 100, + 97, + 116, + 117, + 109, + 107, + 101, + 110, + 109, + 101, + 114, + 107, + 92, + 34, + 58, + 92, + 34, + 92, + 34, + 44, + 92, + 34, + 101, + 105, + 110, + 100, + 100, + 97, + 116, + 117, + 109, + 66, + 101, + 107, + 101, + 110, + 100, + 92, + 34, + 58, + 116, + 114, + 117, + 101, + 44, + 92, + 34, + 111, + 98, + 106, + 101, + 99, + 116, + 116, + 121, + 112, + 101, + 92, + 34, + 58, + 92, + 34, + 92, + 34, + 44, + 92, + 34, + 114, + 101, + 103, + 105, + 115, + 116, + 114, + 97, + 116, + 105, + 101, + 92, + 34, + 58, + 92, + 34, + 92, + 34, + 125, + 34, + 44, + 34, + 115, + 101, + 108, + 101, + 99, + 116, + 105, + 101, + 108, + 105, + 106, + 115, + 116, + 107, + 108, + 97, + 115, + 115, + 101, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 115, + 58, + 92, + 47, + 92, + 47, + 115, + 101, + 108, + 101, + 99, + 116, + 105, + 101, + 108, + 105, + 106, + 115, + 116, + 46, + 111, + 112, + 101, + 110, + 122, + 97, + 97, + 107, + 46, + 110, + 108, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 118, + 49, + 92, + 47, + 114, + 101, + 115, + 117, + 108, + 116, + 97, + 116, + 101, + 110, + 92, + 47, + 56, + 48, + 102, + 102, + 101, + 56, + 99, + 98, + 45, + 101, + 52, + 51, + 48, + 45, + 52, + 97, + 101, + 57, + 45, + 97, + 52, + 56, + 98, + 45, + 51, + 52, + 97, + 57, + 101, + 102, + 50, + 49, + 101, + 51, + 99, + 100, + 34, + 125 + ] + }, + "cookie": [], + "responseTime": 428, + "responseSize": 762 + }, + "id": "af5a7ee9-3dfd-4b0b-ab5a-9fb200689f7e" + }, + { + "cursor": { + "ref": "4355ccdd-ed88-4771-84fe-fcfb0a286914", + "length": 313, + "cycles": 1, + "position": 237, + "iteration": 0, + "httpRequestId": "8edc723c-b3b7-4cbd-81ef-059c2f0d8bb3" + }, + "item": { + "id": "1b1a3dbf-e387-4d25-8fb3-8fabd0e903cf", + "name": "Create eind Statustype procestermijn vast_te_leggen_datum", + "request": { + "url": { + "path": [ + "statustypen" + ], + "host": [ + "{{ztc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n\t\"omschrijving\": \"Eind\",\n\t\"zaaktype\": \"{{zaaktype_procestermijn_vast_te_leggen_datum_url}}\",\n\t\"volgnummer\": 2\n}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "973e810f-5f2d-457b-945f-5f4c268c02d5", + "type": "text/javascript", + "exec": [ + "pm.environment.set(\"current_statustype_url\", pm.response.json().url);" + ], + "_lastExecutionId": "5b9c2001-45b3-4ded-9b65-bf713db667b4" + } + } + ] + }, + "request": { + "url": { + "protocol": "http", + "port": "8080", + "path": [ + "index.php", + "apps", + "procest", + "api", + "zgw", + "catalogi", + "v1", + "statustypen" + ], + "host": [ + "localhost" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Authorization", + "value": "Bearer eyJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJwcm9jZXN0LWFkbWluIiwiY2xpZW50X2lkIjoicHJvY2VzdC1hZG1pbiIsImlhdCI6IjE3NzMxNDUyMDEiLCJ1c2VyX2lkIjoicHJvY2VzdC1hZG1pbiIsInVzZXJfcmVwcmVzZW50YXRpb24iOiIifQ.5Rw382yUpzcvx9ZwErObBKoRSIPBxC5_XLsc-zhSdOo", + "system": true + }, + { + "key": "User-Agent", + "value": "PostmanRuntime/7.39.1", + "system": true + }, + { + "key": "Accept", + "value": "*/*", + "system": true + }, + { + "key": "Cache-Control", + "value": "no-cache", + "system": true + }, + { + "key": "Postman-Token", + "value": "d33b1991-a66f-467d-825c-ffeac9700091", + "system": true + }, + { + "key": "Host", + "value": "localhost:8080", + "system": true + }, + { + "key": "Accept-Encoding", + "value": "gzip, deflate, br", + "system": true + }, + { + "key": "Connection", + "value": "keep-alive", + "system": true + }, + { + "key": "Content-Length", + "value": "173", + "system": true + }, + { + "key": "Cookie", + "value": "ocvp3112b4wg=6c208a5f5094151cad7681337f828e9b; oc_sessionPassphrase=LBNdKxRzA0iqoULIruNxDDh2BK3O%2BrCIU8aUmiUcOFvy5Xw1YfjwQNlmBW2IkGwJYtxXh9%2BwDN6vYuGNX07tXzkBtjQJUWTGdzf8AIOUIVxVx5DfyWAQZ7nmYmQv6XSE; nc_sameSiteCookielax=true; nc_sameSiteCookiestrict=true", + "system": true + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n\t\"omschrijving\": \"Eind\",\n\t\"zaaktype\": \"http://localhost:8080/index.php/apps/procest/api/zgw/catalogi/v1/zaaktypen/0192cac3-700e-444f-b045-cf890667e7c1\",\n\t\"volgnummer\": 2\n}" + }, + "auth": { + "type": "jwt", + "jwt": [ + { + "type": "string", + "value": "{\r\n \"iss\": \"procest-admin\",\r\n \"client_id\": \"procest-admin\",\r\n \"iat\": \"1773145201\",\r\n \"user_id\": \"procest-admin\",\r\n \"user_representation\": \"\"\r\n}", + "key": "payload" + }, + { + "type": "string", + "value": "procest-admin-secret-key-for-testing", + "key": "secret" + }, + { + "type": "string", + "value": "HS256", + "key": "algorithm" + }, + { + "type": "boolean", + "value": false, + "key": "isSecretBase64Encoded" + }, + { + "type": "string", + "value": "header", + "key": "addTokenTo" + }, + { + "type": "string", + "value": "Bearer", + "key": "headerPrefix" + }, + { + "type": "string", + "value": "token", + "key": "queryParamKey" + }, + { + "type": "string", + "value": "{}", + "key": "header" + } + ] + } + }, + "response": { + "id": "efc103fc-b5b5-46ec-b648-eb2c447cd885", + "status": "Created", + "code": 201, + "header": [ + { + "key": "Date", + "value": "Tue, 10 Mar 2026 12:20:00 GMT" + }, + { + "key": "Server", + "value": "Apache/2.4.66 (Debian)" + }, + { + "key": "X-Content-Type-Options", + "value": "nosniff" + }, + { + "key": "X-Frame-Options", + "value": "SAMEORIGIN" + }, + { + "key": "X-Permitted-Cross-Domain-Policies", + "value": "none" + }, + { + "key": "X-Robots-Tag", + "value": "noindex, nofollow" + }, + { + "key": "Referrer-Policy", + "value": "no-referrer" + }, + { + "key": "X-Powered-By", + "value": "PHP/8.3.30" + }, + { + "key": "Content-Security-Policy", + "value": "default-src 'none';base-uri 'none';manifest-src 'self';frame-ancestors 'none'" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=6c208a5f5094151cad7681337f828e9b; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=6c208a5f5094151cad7681337f828e9b; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=6c208a5f5094151cad7681337f828e9b; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=6c208a5f5094151cad7681337f828e9b; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=6c208a5f5094151cad7681337f828e9b; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=d7387913842aa190f20b2fe93f404f7f; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=d7387913842aa190f20b2fe93f404f7f; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=d7387913842aa190f20b2fe93f404f7f; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=d7387913842aa190f20b2fe93f404f7f; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=d7387913842aa190f20b2fe93f404f7f; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "X-Request-Id", + "value": "wjP2q4HzL4hEKg4dyhbn" + }, + { + "key": "Cache-Control", + "value": "no-cache, no-store, must-revalidate" + }, + { + "key": "Feature-Policy", + "value": "autoplay 'none';camera 'none';fullscreen 'none';geolocation 'none';microphone 'none';payment 'none'" + }, + { + "key": "X-User-Id", + "value": "admin" + }, + { + "key": "Content-Length", + "value": "400" + }, + { + "key": "Keep-Alive", + "value": "timeout=5, max=95" + }, + { + "key": "Connection", + "value": "Keep-Alive" + }, + { + "key": "Content-Type", + "value": "application/json; charset=utf-8" + } + ], + "stream": { + "type": "Buffer", + "data": [ + 123, + 34, + 117, + 114, + 108, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 105, + 92, + 47, + 118, + 49, + 92, + 47, + 115, + 116, + 97, + 116, + 117, + 115, + 116, + 121, + 112, + 101, + 110, + 92, + 47, + 54, + 54, + 50, + 97, + 101, + 99, + 98, + 56, + 45, + 101, + 57, + 50, + 100, + 45, + 52, + 56, + 97, + 100, + 45, + 98, + 50, + 98, + 99, + 45, + 101, + 48, + 48, + 56, + 52, + 57, + 55, + 56, + 101, + 50, + 57, + 99, + 34, + 44, + 34, + 117, + 117, + 105, + 100, + 34, + 58, + 34, + 54, + 54, + 50, + 97, + 101, + 99, + 98, + 56, + 45, + 101, + 57, + 50, + 100, + 45, + 52, + 56, + 97, + 100, + 45, + 98, + 50, + 98, + 99, + 45, + 101, + 48, + 48, + 56, + 52, + 57, + 55, + 56, + 101, + 50, + 57, + 99, + 34, + 44, + 34, + 111, + 109, + 115, + 99, + 104, + 114, + 105, + 106, + 118, + 105, + 110, + 103, + 34, + 58, + 34, + 69, + 105, + 110, + 100, + 34, + 44, + 34, + 111, + 109, + 115, + 99, + 104, + 114, + 105, + 106, + 118, + 105, + 110, + 103, + 71, + 101, + 110, + 101, + 114, + 105, + 101, + 107, + 34, + 58, + 34, + 34, + 44, + 34, + 122, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 105, + 92, + 47, + 118, + 49, + 92, + 47, + 122, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 110, + 92, + 47, + 48, + 49, + 57, + 50, + 99, + 97, + 99, + 51, + 45, + 55, + 48, + 48, + 101, + 45, + 52, + 52, + 52, + 102, + 45, + 98, + 48, + 52, + 53, + 45, + 99, + 102, + 56, + 57, + 48, + 54, + 54, + 55, + 101, + 55, + 99, + 49, + 34, + 44, + 34, + 118, + 111, + 108, + 103, + 110, + 117, + 109, + 109, + 101, + 114, + 34, + 58, + 50, + 44, + 34, + 105, + 115, + 69, + 105, + 110, + 100, + 115, + 116, + 97, + 116, + 117, + 115, + 34, + 58, + 102, + 97, + 108, + 115, + 101, + 125 + ] + }, + "cookie": [], + "responseTime": 167, + "responseSize": 400 + }, + "id": "1b1a3dbf-e387-4d25-8fb3-8fabd0e903cf" + }, + { + "cursor": { + "ref": "488d8049-7fda-4a2b-9b58-b411e036688b", + "length": 313, + "cycles": 1, + "position": 238, + "iteration": 0, + "httpRequestId": "7df2f27b-8015-40c3-bfd5-738c4750d698" + }, + "item": { + "id": "a99536a2-5a02-4e3d-b493-87eb19a8bc90", + "name": "Publish concept Besluittype", + "request": { + "url": { + "path": [ + "publish" + ], + "host": [ + "{{concept_besluittype_url}}" + ], + "query": [], + "variable": [] + }, + "method": "POST" + }, + "response": [], + "event": [] + }, + "request": { + "url": { + "protocol": "http", + "port": "8080", + "path": [ + "index.php", + "apps", + "procest", + "api", + "zgw", + "catalogi", + "v1", + "besluittypen", + "798dfdb8-4171-403d-8b57-7a227df3f7dc", + "publish" + ], + "host": [ + "localhost" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Authorization", + "value": "Bearer eyJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJwcm9jZXN0LWFkbWluIiwiY2xpZW50X2lkIjoicHJvY2VzdC1hZG1pbiIsImlhdCI6IjE3NzMxNDUyMDEiLCJ1c2VyX2lkIjoicHJvY2VzdC1hZG1pbiIsInVzZXJfcmVwcmVzZW50YXRpb24iOiIifQ.5Rw382yUpzcvx9ZwErObBKoRSIPBxC5_XLsc-zhSdOo", + "system": true + }, + { + "key": "User-Agent", + "value": "PostmanRuntime/7.39.1", + "system": true + }, + { + "key": "Accept", + "value": "*/*", + "system": true + }, + { + "key": "Cache-Control", + "value": "no-cache", + "system": true + }, + { + "key": "Postman-Token", + "value": "249943da-250f-4216-997e-a5e6fc0ee2eb", + "system": true + }, + { + "key": "Host", + "value": "localhost:8080", + "system": true + }, + { + "key": "Accept-Encoding", + "value": "gzip, deflate, br", + "system": true + }, + { + "key": "Connection", + "value": "keep-alive", + "system": true + }, + { + "key": "Cookie", + "value": "ocvp3112b4wg=d7387913842aa190f20b2fe93f404f7f; oc_sessionPassphrase=LBNdKxRzA0iqoULIruNxDDh2BK3O%2BrCIU8aUmiUcOFvy5Xw1YfjwQNlmBW2IkGwJYtxXh9%2BwDN6vYuGNX07tXzkBtjQJUWTGdzf8AIOUIVxVx5DfyWAQZ7nmYmQv6XSE; nc_sameSiteCookielax=true; nc_sameSiteCookiestrict=true", + "system": true + }, + { + "key": "Content-Length", + "value": "0", + "system": true + } + ], + "method": "POST", + "auth": { + "type": "jwt", + "jwt": [ + { + "type": "string", + "value": "{\r\n \"iss\": \"procest-admin\",\r\n \"client_id\": \"procest-admin\",\r\n \"iat\": \"1773145201\",\r\n \"user_id\": \"procest-admin\",\r\n \"user_representation\": \"\"\r\n}", + "key": "payload" + }, + { + "type": "string", + "value": "procest-admin-secret-key-for-testing", + "key": "secret" + }, + { + "type": "string", + "value": "HS256", + "key": "algorithm" + }, + { + "type": "boolean", + "value": false, + "key": "isSecretBase64Encoded" + }, + { + "type": "string", + "value": "header", + "key": "addTokenTo" + }, + { + "type": "string", + "value": "Bearer", + "key": "headerPrefix" + }, + { + "type": "string", + "value": "token", + "key": "queryParamKey" + }, + { + "type": "string", + "value": "{}", + "key": "header" + } + ] + } + }, + "response": { + "id": "015cdfba-9d54-45d7-a5d0-dc3bce690eeb", + "status": "OK", + "code": 200, + "header": [ + { + "key": "Date", + "value": "Tue, 10 Mar 2026 12:20:00 GMT" + }, + { + "key": "Server", + "value": "Apache/2.4.66 (Debian)" + }, + { + "key": "X-Content-Type-Options", + "value": "nosniff" + }, + { + "key": "X-Frame-Options", + "value": "SAMEORIGIN" + }, + { + "key": "X-Permitted-Cross-Domain-Policies", + "value": "none" + }, + { + "key": "X-Robots-Tag", + "value": "noindex, nofollow" + }, + { + "key": "Referrer-Policy", + "value": "no-referrer" + }, + { + "key": "X-Powered-By", + "value": "PHP/8.3.30" + }, + { + "key": "Content-Security-Policy", + "value": "default-src 'none';base-uri 'none';manifest-src 'self';frame-ancestors 'none'" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=d7387913842aa190f20b2fe93f404f7f; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=d7387913842aa190f20b2fe93f404f7f; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=d7387913842aa190f20b2fe93f404f7f; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=d7387913842aa190f20b2fe93f404f7f; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=d7387913842aa190f20b2fe93f404f7f; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=3546bce5ab9ccdec3b00d56c50e88d8f; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=3546bce5ab9ccdec3b00d56c50e88d8f; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=3546bce5ab9ccdec3b00d56c50e88d8f; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=3546bce5ab9ccdec3b00d56c50e88d8f; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=3546bce5ab9ccdec3b00d56c50e88d8f; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "X-Request-Id", + "value": "cHy0nxCWlpJ0xTb7KVDC" + }, + { + "key": "Cache-Control", + "value": "no-cache, no-store, must-revalidate" + }, + { + "key": "Feature-Policy", + "value": "autoplay 'none';camera 'none';fullscreen 'none';geolocation 'none';microphone 'none';payment 'none'" + }, + { + "key": "X-User-Id", + "value": "admin" + }, + { + "key": "Content-Encoding", + "value": "gzip" + }, + { + "key": "Content-Length", + "value": "314" + }, + { + "key": "Keep-Alive", + "value": "timeout=5, max=94" + }, + { + "key": "Connection", + "value": "Keep-Alive" + }, + { + "key": "Content-Type", + "value": "application/json; charset=utf-8" + } + ], + "stream": { + "type": "Buffer", + "data": [ + 123, + 34, + 117, + 114, + 108, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 105, + 92, + 47, + 118, + 49, + 92, + 47, + 98, + 101, + 115, + 108, + 117, + 105, + 116, + 116, + 121, + 112, + 101, + 110, + 92, + 47, + 55, + 57, + 56, + 100, + 102, + 100, + 98, + 56, + 45, + 52, + 49, + 55, + 49, + 45, + 52, + 48, + 51, + 100, + 45, + 56, + 98, + 53, + 55, + 45, + 55, + 97, + 50, + 50, + 55, + 100, + 102, + 51, + 102, + 55, + 100, + 99, + 34, + 44, + 34, + 117, + 117, + 105, + 100, + 34, + 58, + 34, + 55, + 57, + 56, + 100, + 102, + 100, + 98, + 56, + 45, + 52, + 49, + 55, + 49, + 45, + 52, + 48, + 51, + 100, + 45, + 56, + 98, + 53, + 55, + 45, + 55, + 97, + 50, + 50, + 55, + 100, + 102, + 51, + 102, + 55, + 100, + 99, + 34, + 44, + 34, + 111, + 109, + 115, + 99, + 104, + 114, + 105, + 106, + 118, + 105, + 110, + 103, + 34, + 58, + 34, + 53, + 54, + 100, + 99, + 49, + 54, + 48, + 56, + 45, + 53, + 50, + 100, + 98, + 45, + 52, + 49, + 52, + 52, + 45, + 57, + 52, + 49, + 49, + 45, + 55, + 97, + 56, + 57, + 98, + 54, + 100, + 54, + 100, + 48, + 99, + 101, + 34, + 44, + 34, + 116, + 111, + 101, + 108, + 105, + 99, + 104, + 116, + 105, + 110, + 103, + 34, + 58, + 34, + 34, + 44, + 34, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 117, + 115, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 105, + 92, + 47, + 118, + 49, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 117, + 115, + 115, + 101, + 110, + 92, + 47, + 53, + 48, + 53, + 55, + 52, + 48, + 56, + 102, + 45, + 102, + 100, + 55, + 54, + 45, + 52, + 54, + 57, + 101, + 45, + 56, + 54, + 52, + 54, + 45, + 98, + 99, + 99, + 52, + 98, + 97, + 50, + 101, + 102, + 97, + 56, + 100, + 34, + 44, + 34, + 122, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 99, + 111, + 110, + 99, + 101, + 112, + 116, + 34, + 58, + 102, + 97, + 108, + 115, + 101, + 44, + 34, + 112, + 117, + 98, + 108, + 105, + 99, + 97, + 116, + 105, + 101, + 73, + 110, + 100, + 105, + 99, + 97, + 116, + 105, + 101, + 34, + 58, + 102, + 97, + 108, + 115, + 101, + 44, + 34, + 105, + 110, + 102, + 111, + 114, + 109, + 97, + 116, + 105, + 101, + 111, + 98, + 106, + 101, + 99, + 116, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 98, + 101, + 103, + 105, + 110, + 71, + 101, + 108, + 100, + 105, + 103, + 104, + 101, + 105, + 100, + 34, + 58, + 34, + 50, + 48, + 49, + 57, + 45, + 48, + 49, + 45, + 48, + 49, + 34, + 44, + 34, + 101, + 105, + 110, + 100, + 101, + 71, + 101, + 108, + 100, + 105, + 103, + 104, + 101, + 105, + 100, + 34, + 58, + 34, + 50, + 48, + 50, + 54, + 45, + 48, + 51, + 45, + 49, + 48, + 34, + 125 + ] + }, + "cookie": [], + "responseTime": 146, + "responseSize": 540 + }, + "id": "a99536a2-5a02-4e3d-b493-87eb19a8bc90" + }, + { + "cursor": { + "ref": "b8aeb78f-41c4-419e-a034-b479690f0131", + "length": 313, + "cycles": 1, + "position": 239, + "iteration": 0, + "httpRequestId": "773bb21f-fb12-485c-8a1f-8c8ea07ee838" + }, + "item": { + "id": "055389b3-dc58-4b63-a570-32cf5cbd8d5b", + "name": "Publish Zaaktype procestermijn vast_te_leggen_datum", + "request": { + "url": { + "path": [ + "publish" + ], + "host": [ + "{{zaaktype_procestermijn_vast_te_leggen_datum_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "b5522570-cffc-4770-a633-b438def166ab", + "type": "text/javascript", + "exec": [ + "pm.environment.set(\"archiving_zaaktypen\", [", + " pm.environment.get(\"zaaktype_procestermijn_nihil_url\"),", + " pm.environment.get(\"zaaktype_procestermijn_ingeschatte_bestaansduur_object_url\"),", + " pm.environment.get(\"zaaktype_procestermijn_vast_te_leggen_datum_url\")", + "]);" + ], + "_lastExecutionId": "e0e11093-f48a-40c1-ad52-ff4eeb188539" + } + }, + { + "listen": "prerequest", + "script": { + "id": "8bc52dca-29e2-4e3e-a86d-260f8bda69f1", + "type": "text/javascript", + "exec": [ + "" + ], + "_lastExecutionId": "2ccbf80a-fdfd-4391-9317-9dde65b57704" + } + } + ] + }, + "request": { + "url": { + "protocol": "http", + "port": "8080", + "path": [ + "index.php", + "apps", + "procest", + "api", + "zgw", + "catalogi", + "v1", + "zaaktypen", + "0192cac3-700e-444f-b045-cf890667e7c1", + "publish" + ], + "host": [ + "localhost" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Authorization", + "value": "Bearer eyJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJwcm9jZXN0LWFkbWluIiwiY2xpZW50X2lkIjoicHJvY2VzdC1hZG1pbiIsImlhdCI6IjE3NzMxNDUyMDEiLCJ1c2VyX2lkIjoicHJvY2VzdC1hZG1pbiIsInVzZXJfcmVwcmVzZW50YXRpb24iOiIifQ.5Rw382yUpzcvx9ZwErObBKoRSIPBxC5_XLsc-zhSdOo", + "system": true + }, + { + "key": "User-Agent", + "value": "PostmanRuntime/7.39.1", + "system": true + }, + { + "key": "Accept", + "value": "*/*", + "system": true + }, + { + "key": "Cache-Control", + "value": "no-cache", + "system": true + }, + { + "key": "Postman-Token", + "value": "f0c38f0e-ffaf-41be-a1c9-1102ecbe9ce0", + "system": true + }, + { + "key": "Host", + "value": "localhost:8080", + "system": true + }, + { + "key": "Accept-Encoding", + "value": "gzip, deflate, br", + "system": true + }, + { + "key": "Connection", + "value": "keep-alive", + "system": true + }, + { + "key": "Cookie", + "value": "ocvp3112b4wg=3546bce5ab9ccdec3b00d56c50e88d8f; oc_sessionPassphrase=LBNdKxRzA0iqoULIruNxDDh2BK3O%2BrCIU8aUmiUcOFvy5Xw1YfjwQNlmBW2IkGwJYtxXh9%2BwDN6vYuGNX07tXzkBtjQJUWTGdzf8AIOUIVxVx5DfyWAQZ7nmYmQv6XSE; nc_sameSiteCookielax=true; nc_sameSiteCookiestrict=true", + "system": true + }, + { + "key": "Content-Length", + "value": "0", + "system": true + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "" + }, + "auth": { + "type": "jwt", + "jwt": [ + { + "type": "string", + "value": "{\r\n \"iss\": \"procest-admin\",\r\n \"client_id\": \"procest-admin\",\r\n \"iat\": \"1773145201\",\r\n \"user_id\": \"procest-admin\",\r\n \"user_representation\": \"\"\r\n}", + "key": "payload" + }, + { + "type": "string", + "value": "procest-admin-secret-key-for-testing", + "key": "secret" + }, + { + "type": "string", + "value": "HS256", + "key": "algorithm" + }, + { + "type": "boolean", + "value": false, + "key": "isSecretBase64Encoded" + }, + { + "type": "string", + "value": "header", + "key": "addTokenTo" + }, + { + "type": "string", + "value": "Bearer", + "key": "headerPrefix" + }, + { + "type": "string", + "value": "token", + "key": "queryParamKey" + }, + { + "type": "string", + "value": "{}", + "key": "header" + } + ] + } + }, + "response": { + "id": "8f3d6366-ce97-4d65-acd1-8cd55c07f584", + "status": "OK", + "code": 200, + "header": [ + { + "key": "Date", + "value": "Tue, 10 Mar 2026 12:20:01 GMT" + }, + { + "key": "Server", + "value": "Apache/2.4.66 (Debian)" + }, + { + "key": "X-Content-Type-Options", + "value": "nosniff" + }, + { + "key": "X-Frame-Options", + "value": "SAMEORIGIN" + }, + { + "key": "X-Permitted-Cross-Domain-Policies", + "value": "none" + }, + { + "key": "X-Robots-Tag", + "value": "noindex, nofollow" + }, + { + "key": "Referrer-Policy", + "value": "no-referrer" + }, + { + "key": "X-Powered-By", + "value": "PHP/8.3.30" + }, + { + "key": "Content-Security-Policy", + "value": "default-src 'none';base-uri 'none';manifest-src 'self';frame-ancestors 'none'" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=3546bce5ab9ccdec3b00d56c50e88d8f; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=3546bce5ab9ccdec3b00d56c50e88d8f; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=3546bce5ab9ccdec3b00d56c50e88d8f; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=3546bce5ab9ccdec3b00d56c50e88d8f; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=3546bce5ab9ccdec3b00d56c50e88d8f; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=53088329b7de83894a62b30fdeda90e3; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=53088329b7de83894a62b30fdeda90e3; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=53088329b7de83894a62b30fdeda90e3; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=53088329b7de83894a62b30fdeda90e3; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=53088329b7de83894a62b30fdeda90e3; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "X-Request-Id", + "value": "AEu6b7COLgdwsu4GOKr8" + }, + { + "key": "Cache-Control", + "value": "no-cache, no-store, must-revalidate" + }, + { + "key": "Feature-Policy", + "value": "autoplay 'none';camera 'none';fullscreen 'none';geolocation 'none';microphone 'none';payment 'none'" + }, + { + "key": "X-User-Id", + "value": "admin" + }, + { + "key": "Content-Encoding", + "value": "gzip" + }, + { + "key": "Content-Length", + "value": "730" + }, + { + "key": "Keep-Alive", + "value": "timeout=5, max=93" + }, + { + "key": "Connection", + "value": "Keep-Alive" + }, + { + "key": "Content-Type", + "value": "application/json; charset=utf-8" + } + ], + "stream": { + "type": "Buffer", + "data": [ + 123, + 34, + 117, + 114, + 108, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 105, + 92, + 47, + 118, + 49, + 92, + 47, + 122, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 110, + 92, + 47, + 48, + 49, + 57, + 50, + 99, + 97, + 99, + 51, + 45, + 55, + 48, + 48, + 101, + 45, + 52, + 52, + 52, + 102, + 45, + 98, + 48, + 52, + 53, + 45, + 99, + 102, + 56, + 57, + 48, + 54, + 54, + 55, + 101, + 55, + 99, + 49, + 34, + 44, + 34, + 117, + 117, + 105, + 100, + 34, + 58, + 34, + 48, + 49, + 57, + 50, + 99, + 97, + 99, + 51, + 45, + 55, + 48, + 48, + 101, + 45, + 52, + 52, + 52, + 102, + 45, + 98, + 48, + 52, + 53, + 45, + 99, + 102, + 56, + 57, + 48, + 54, + 54, + 55, + 101, + 55, + 99, + 49, + 34, + 44, + 34, + 105, + 100, + 101, + 110, + 116, + 105, + 102, + 105, + 99, + 97, + 116, + 105, + 101, + 34, + 58, + 34, + 57, + 97, + 100, + 57, + 49, + 55, + 50, + 53, + 45, + 97, + 56, + 100, + 53, + 45, + 52, + 54, + 54, + 97, + 45, + 56, + 97, + 49, + 54, + 45, + 102, + 52, + 52, + 48, + 57, + 97, + 53, + 98, + 99, + 48, + 97, + 48, + 34, + 44, + 34, + 111, + 109, + 115, + 99, + 104, + 114, + 105, + 106, + 118, + 105, + 110, + 103, + 34, + 58, + 34, + 90, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 32, + 102, + 111, + 114, + 32, + 97, + 114, + 99, + 104, + 105, + 118, + 105, + 110, + 103, + 32, + 116, + 101, + 115, + 116, + 115, + 32, + 118, + 97, + 115, + 116, + 95, + 116, + 101, + 95, + 108, + 101, + 103, + 103, + 101, + 110, + 95, + 100, + 97, + 116, + 117, + 109, + 34, + 44, + 34, + 111, + 109, + 115, + 99, + 104, + 114, + 105, + 106, + 118, + 105, + 110, + 103, + 71, + 101, + 110, + 101, + 114, + 105, + 101, + 107, + 34, + 58, + 34, + 34, + 44, + 34, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 117, + 115, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 105, + 92, + 47, + 118, + 49, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 117, + 115, + 115, + 101, + 110, + 92, + 47, + 53, + 48, + 53, + 55, + 52, + 48, + 56, + 102, + 45, + 102, + 100, + 55, + 54, + 45, + 52, + 54, + 57, + 101, + 45, + 56, + 54, + 52, + 54, + 45, + 98, + 99, + 99, + 52, + 98, + 97, + 50, + 101, + 102, + 97, + 56, + 100, + 34, + 44, + 34, + 100, + 111, + 101, + 108, + 34, + 58, + 34, + 116, + 101, + 115, + 116, + 32, + 100, + 111, + 101, + 108, + 34, + 44, + 34, + 97, + 97, + 110, + 108, + 101, + 105, + 100, + 105, + 110, + 103, + 34, + 58, + 34, + 116, + 101, + 115, + 116, + 32, + 97, + 97, + 110, + 108, + 101, + 105, + 100, + 105, + 110, + 103, + 34, + 44, + 34, + 111, + 110, + 100, + 101, + 114, + 119, + 101, + 114, + 112, + 34, + 58, + 34, + 111, + 112, + 101, + 110, + 98, + 97, + 114, + 101, + 32, + 114, + 117, + 105, + 109, + 116, + 101, + 34, + 44, + 34, + 100, + 111, + 111, + 114, + 108, + 111, + 111, + 112, + 116, + 105, + 106, + 100, + 34, + 58, + 34, + 80, + 49, + 48, + 68, + 34, + 44, + 34, + 118, + 101, + 114, + 116, + 114, + 111, + 117, + 119, + 101, + 108, + 105, + 106, + 107, + 104, + 101, + 105, + 100, + 97, + 97, + 110, + 100, + 117, + 105, + 100, + 105, + 110, + 103, + 34, + 58, + 34, + 111, + 112, + 101, + 110, + 98, + 97, + 97, + 114, + 34, + 44, + 34, + 99, + 111, + 110, + 99, + 101, + 112, + 116, + 34, + 58, + 102, + 97, + 108, + 115, + 101, + 44, + 34, + 98, + 101, + 103, + 105, + 110, + 71, + 101, + 108, + 100, + 105, + 103, + 104, + 101, + 105, + 100, + 34, + 58, + 34, + 50, + 48, + 49, + 57, + 45, + 48, + 49, + 45, + 48, + 49, + 34, + 44, + 34, + 101, + 105, + 110, + 100, + 101, + 71, + 101, + 108, + 100, + 105, + 103, + 104, + 101, + 105, + 100, + 34, + 58, + 34, + 50, + 48, + 50, + 54, + 45, + 48, + 51, + 45, + 49, + 48, + 34, + 44, + 34, + 104, + 97, + 110, + 100, + 101, + 108, + 105, + 110, + 103, + 73, + 110, + 105, + 116, + 105, + 97, + 116, + 111, + 114, + 34, + 58, + 34, + 105, + 110, + 100, + 105, + 101, + 110, + 101, + 110, + 34, + 44, + 34, + 105, + 110, + 100, + 105, + 99, + 97, + 116, + 105, + 101, + 73, + 110, + 116, + 101, + 114, + 110, + 79, + 102, + 69, + 120, + 116, + 101, + 114, + 110, + 34, + 58, + 34, + 101, + 120, + 116, + 101, + 114, + 110, + 34, + 44, + 34, + 104, + 97, + 110, + 100, + 101, + 108, + 105, + 110, + 103, + 66, + 101, + 104, + 97, + 110, + 100, + 101, + 108, + 97, + 97, + 114, + 34, + 58, + 34, + 98, + 101, + 104, + 97, + 110, + 100, + 101, + 108, + 101, + 110, + 34, + 44, + 34, + 111, + 112, + 115, + 99, + 104, + 111, + 114, + 116, + 105, + 110, + 103, + 69, + 110, + 65, + 97, + 110, + 104, + 111, + 117, + 100, + 105, + 110, + 103, + 77, + 111, + 103, + 101, + 108, + 105, + 106, + 107, + 34, + 58, + 102, + 97, + 108, + 115, + 101, + 44, + 34, + 118, + 101, + 114, + 108, + 101, + 110, + 103, + 105, + 110, + 103, + 77, + 111, + 103, + 101, + 108, + 105, + 106, + 107, + 34, + 58, + 116, + 114, + 117, + 101, + 44, + 34, + 118, + 101, + 114, + 108, + 101, + 110, + 103, + 105, + 110, + 103, + 115, + 116, + 101, + 114, + 109, + 105, + 106, + 110, + 34, + 58, + 34, + 80, + 53, + 68, + 34, + 44, + 34, + 112, + 117, + 98, + 108, + 105, + 99, + 97, + 116, + 105, + 101, + 73, + 110, + 100, + 105, + 99, + 97, + 116, + 105, + 101, + 34, + 58, + 102, + 97, + 108, + 115, + 101, + 44, + 34, + 112, + 114, + 111, + 100, + 117, + 99, + 116, + 101, + 110, + 79, + 102, + 68, + 105, + 101, + 110, + 115, + 116, + 101, + 110, + 34, + 58, + 91, + 34, + 104, + 116, + 116, + 112, + 115, + 58, + 92, + 47, + 92, + 47, + 114, + 101, + 102, + 46, + 116, + 115, + 116, + 46, + 118, + 110, + 103, + 46, + 99, + 108, + 111, + 117, + 100, + 92, + 47, + 115, + 116, + 97, + 110, + 100, + 97, + 97, + 114, + 100, + 92, + 47, + 34, + 93, + 44, + 34, + 115, + 101, + 108, + 101, + 99, + 116, + 105, + 101, + 108, + 105, + 106, + 115, + 116, + 80, + 114, + 111, + 99, + 101, + 115, + 116, + 121, + 112, + 101, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 115, + 58, + 92, + 47, + 92, + 47, + 115, + 101, + 108, + 101, + 99, + 116, + 105, + 101, + 108, + 105, + 106, + 115, + 116, + 46, + 111, + 112, + 101, + 110, + 122, + 97, + 97, + 107, + 46, + 110, + 108, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 118, + 49, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 121, + 112, + 101, + 110, + 92, + 47, + 56, + 51, + 56, + 101, + 52, + 48, + 53, + 97, + 45, + 57, + 98, + 49, + 50, + 45, + 52, + 51, + 99, + 52, + 45, + 97, + 57, + 56, + 53, + 45, + 100, + 55, + 97, + 55, + 52, + 57, + 48, + 100, + 52, + 50, + 50, + 101, + 34, + 44, + 34, + 114, + 101, + 102, + 101, + 114, + 101, + 110, + 116, + 105, + 101, + 112, + 114, + 111, + 99, + 101, + 115, + 34, + 58, + 123, + 34, + 108, + 105, + 110, + 107, + 34, + 58, + 34, + 34, + 44, + 34, + 110, + 97, + 97, + 109, + 34, + 58, + 34, + 116, + 101, + 115, + 116, + 34, + 125, + 44, + 34, + 118, + 101, + 114, + 97, + 110, + 116, + 119, + 111, + 111, + 114, + 100, + 101, + 108, + 105, + 106, + 107, + 101, + 34, + 58, + 34, + 88, + 34, + 44, + 34, + 103, + 101, + 114, + 101, + 108, + 97, + 116, + 101, + 101, + 114, + 100, + 101, + 90, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 98, + 101, + 115, + 108, + 117, + 105, + 116, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 34, + 55, + 57, + 56, + 100, + 102, + 100, + 98, + 56, + 45, + 52, + 49, + 55, + 49, + 45, + 52, + 48, + 51, + 100, + 45, + 56, + 98, + 53, + 55, + 45, + 55, + 97, + 50, + 50, + 55, + 100, + 102, + 51, + 102, + 55, + 100, + 99, + 34, + 93, + 44, + 34, + 105, + 110, + 102, + 111, + 114, + 109, + 97, + 116, + 105, + 101, + 111, + 98, + 106, + 101, + 99, + 116, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 100, + 101, + 101, + 108, + 122, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 116, + 111, + 101, + 108, + 105, + 99, + 104, + 116, + 105, + 110, + 103, + 34, + 58, + 34, + 34, + 44, + 34, + 118, + 101, + 114, + 115, + 105, + 101, + 100, + 97, + 116, + 117, + 109, + 34, + 58, + 34, + 50, + 48, + 49, + 57, + 45, + 48, + 49, + 45, + 48, + 49, + 34, + 125 + ] + }, + "cookie": [], + "responseTime": 203, + "responseSize": 1344 + }, + "id": "055389b3-dc58-4b63-a570-32cf5cbd8d5b" + }, + { + "cursor": { + "ref": "c4a29864-7902-457d-bb1d-463e5cddcc47", + "length": 313, + "cycles": 1, + "position": 240, + "iteration": 0, + "httpRequestId": "bd1b8233-cab8-479f-8217-03673b893d15" + }, + "item": { + "id": "986f8ed6-971e-42be-9f9f-2f1d2ec7935f", + "name": "Create Zaak without archiefnominatie", + "request": { + "url": { + "path": [ + "zaken" + ], + "host": [ + "{{zrc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Accept-Crs", + "value": "EPSG:4326" + }, + { + "key": "Content-Crs", + "value": "EPSG:4326" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\r\n \"bronorganisatie\": \"000000000\",\r\n \"omschrijving\": \"string\",\r\n \"toelichting\": \"string\",\r\n \"zaaktype\": \"{{zaaktype_procestermijn_vast_te_leggen_datum_url}}\",\r\n \"registratiedatum\": \"2019-04-09\",\r\n \"verantwoordelijkeOrganisatie\": \"000000000\",\r\n \"startdatum\": \"2019-04-09\",\r\n \"einddatum\": null,\r\n \"einddatumGepland\": \"2019-04-20\",\r\n \"uiterlijkeEinddatumAfdoening\": \"2019-04-09\",\r\n \"publicatiedatum\": \"2019-04-09\",\r\n \"communicatiekanaal\": \"\",\r\n \"productenOfDiensten\": [],\r\n \"vertrouwelijkheidaanduiding\": \"geheim\",\r\n \"betalingsindicatie\": \"geheel\",\r\n \"betalingsindicatieWeergave\": null,\r\n \"laatsteBetaaldatum\": \"2019-01-01T00:00:00Z\",\r\n \"zaakgeometrie\": {\r\n \"type\": \"Point\",\r\n \"coordinates\": [\r\n 53.0,\r\n 5.0\r\n ]\r\n },\r\n \"verlenging\": null,\r\n \"opschorting\": null,\r\n \"selectielijstklasse\": \"https://referentielijsten.roxit.nl/api/v1/resultaten/0fe71ce3-b1e1-48eb-9070-be2756fc71b5\",\r\n \"hoofdzaak\": null,\r\n \"deelzaken\": [],\r\n \"relevanteAndereZaken\": [],\r\n \"eigenschappen\": [],\r\n \"rollen\": [],\r\n \"status\": null,\r\n \"zaakinformatieobjecten\": [],\r\n \"zaakobjecten\": [],\r\n \"resultaat\": null,\r\n \"kenmerken\": [],\r\n \"archiefnominatie\": null,\r\n \"archiefstatus\": \"nog_te_archiveren\",\r\n \"archiefactiedatum\": null,\r\n \"opdrachtgevendeOrganisatie\": null,\r\n \"processobjectaard\": null,\r\n \"startdatumBewaartermijn\": null,\r\n \"processobject\": null\r\n}" + } + }, + "response": [], + "event": [ + { + "listen": "prerequest", + "script": { + "id": "450b56ff-da21-48f3-9470-919f241a4800", + "type": "text/javascript", + "packages": {}, + "exec": [ + "" + ], + "_lastExecutionId": "10f86cf1-d065-4eb1-97fb-b3b1264ceb13" + } + }, + { + "listen": "test", + "script": { + "id": "6813f73f-d038-4666-a158-fb468b2442f3", + "type": "text/javascript", + "packages": {}, + "exec": [ + "pm.environment.set(\"zaak_zonder_archiefnominatie_url\", pm.response.json().url);" + ], + "_lastExecutionId": "a5df61dd-324e-4226-934b-b7802e44b7f7" + } + } + ] + }, + "request": { + "url": { + "protocol": "http", + "port": "8080", + "path": [ + "index.php", + "apps", + "procest", + "api", + "zgw", + "zaken", + "v1", + "zaken" + ], + "host": [ + "localhost" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Accept-Crs", + "value": "EPSG:4326" + }, + { + "key": "Content-Crs", + "value": "EPSG:4326" + }, + { + "key": "Authorization", + "value": "Bearer eyJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJwcm9jZXN0LWFkbWluIiwiY2xpZW50X2lkIjoicHJvY2VzdC1hZG1pbiIsImlhdCI6IjE3NzMxNDUyMDEiLCJ1c2VyX2lkIjoicHJvY2VzdC1hZG1pbiIsInVzZXJfcmVwcmVzZW50YXRpb24iOiIifQ.5Rw382yUpzcvx9ZwErObBKoRSIPBxC5_XLsc-zhSdOo", + "system": true + }, + { + "key": "User-Agent", + "value": "PostmanRuntime/7.39.1", + "system": true + }, + { + "key": "Accept", + "value": "*/*", + "system": true + }, + { + "key": "Cache-Control", + "value": "no-cache", + "system": true + }, + { + "key": "Postman-Token", + "value": "e1eb09ea-6636-4483-b58f-92650a6791c4", + "system": true + }, + { + "key": "Host", + "value": "localhost:8080", + "system": true + }, + { + "key": "Accept-Encoding", + "value": "gzip, deflate, br", + "system": true + }, + { + "key": "Connection", + "value": "keep-alive", + "system": true + }, + { + "key": "Content-Length", + "value": "1544", + "system": true + }, + { + "key": "Cookie", + "value": "ocvp3112b4wg=53088329b7de83894a62b30fdeda90e3; oc_sessionPassphrase=LBNdKxRzA0iqoULIruNxDDh2BK3O%2BrCIU8aUmiUcOFvy5Xw1YfjwQNlmBW2IkGwJYtxXh9%2BwDN6vYuGNX07tXzkBtjQJUWTGdzf8AIOUIVxVx5DfyWAQZ7nmYmQv6XSE; nc_sameSiteCookielax=true; nc_sameSiteCookiestrict=true", + "system": true + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\r\n \"bronorganisatie\": \"000000000\",\r\n \"omschrijving\": \"string\",\r\n \"toelichting\": \"string\",\r\n \"zaaktype\": \"http://localhost:8080/index.php/apps/procest/api/zgw/catalogi/v1/zaaktypen/0192cac3-700e-444f-b045-cf890667e7c1\",\r\n \"registratiedatum\": \"2019-04-09\",\r\n \"verantwoordelijkeOrganisatie\": \"000000000\",\r\n \"startdatum\": \"2019-04-09\",\r\n \"einddatum\": null,\r\n \"einddatumGepland\": \"2019-04-20\",\r\n \"uiterlijkeEinddatumAfdoening\": \"2019-04-09\",\r\n \"publicatiedatum\": \"2019-04-09\",\r\n \"communicatiekanaal\": \"\",\r\n \"productenOfDiensten\": [],\r\n \"vertrouwelijkheidaanduiding\": \"geheim\",\r\n \"betalingsindicatie\": \"geheel\",\r\n \"betalingsindicatieWeergave\": null,\r\n \"laatsteBetaaldatum\": \"2019-01-01T00:00:00Z\",\r\n \"zaakgeometrie\": {\r\n \"type\": \"Point\",\r\n \"coordinates\": [\r\n 53.0,\r\n 5.0\r\n ]\r\n },\r\n \"verlenging\": null,\r\n \"opschorting\": null,\r\n \"selectielijstklasse\": \"https://referentielijsten.roxit.nl/api/v1/resultaten/0fe71ce3-b1e1-48eb-9070-be2756fc71b5\",\r\n \"hoofdzaak\": null,\r\n \"deelzaken\": [],\r\n \"relevanteAndereZaken\": [],\r\n \"eigenschappen\": [],\r\n \"rollen\": [],\r\n \"status\": null,\r\n \"zaakinformatieobjecten\": [],\r\n \"zaakobjecten\": [],\r\n \"resultaat\": null,\r\n \"kenmerken\": [],\r\n \"archiefnominatie\": null,\r\n \"archiefstatus\": \"nog_te_archiveren\",\r\n \"archiefactiedatum\": null,\r\n \"opdrachtgevendeOrganisatie\": null,\r\n \"processobjectaard\": null,\r\n \"startdatumBewaartermijn\": null,\r\n \"processobject\": null\r\n}" + }, + "auth": { + "type": "jwt", + "jwt": [ + { + "type": "string", + "value": "{\r\n \"iss\": \"procest-admin\",\r\n \"client_id\": \"procest-admin\",\r\n \"iat\": \"1773145201\",\r\n \"user_id\": \"procest-admin\",\r\n \"user_representation\": \"\"\r\n}", + "key": "payload" + }, + { + "type": "string", + "value": "procest-admin-secret-key-for-testing", + "key": "secret" + }, + { + "type": "string", + "value": "HS256", + "key": "algorithm" + }, + { + "type": "boolean", + "value": false, + "key": "isSecretBase64Encoded" + }, + { + "type": "string", + "value": "header", + "key": "addTokenTo" + }, + { + "type": "string", + "value": "Bearer", + "key": "headerPrefix" + }, + { + "type": "string", + "value": "token", + "key": "queryParamKey" + }, + { + "type": "string", + "value": "{}", + "key": "header" + } + ] + } + }, + "response": { + "id": "5a02257f-ba48-421c-9c1c-9d30a579f426", + "status": "Created", + "code": 201, + "header": [ + { + "key": "Date", + "value": "Tue, 10 Mar 2026 12:20:01 GMT" + }, + { + "key": "Server", + "value": "Apache/2.4.66 (Debian)" + }, + { + "key": "X-Content-Type-Options", + "value": "nosniff" + }, + { + "key": "X-Frame-Options", + "value": "SAMEORIGIN" + }, + { + "key": "X-Permitted-Cross-Domain-Policies", + "value": "none" + }, + { + "key": "X-Robots-Tag", + "value": "noindex, nofollow" + }, + { + "key": "Referrer-Policy", + "value": "no-referrer" + }, + { + "key": "X-Powered-By", + "value": "PHP/8.3.30" + }, + { + "key": "Content-Security-Policy", + "value": "default-src 'none';base-uri 'none';manifest-src 'self';frame-ancestors 'none'" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=53088329b7de83894a62b30fdeda90e3; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=53088329b7de83894a62b30fdeda90e3; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=53088329b7de83894a62b30fdeda90e3; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=53088329b7de83894a62b30fdeda90e3; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=53088329b7de83894a62b30fdeda90e3; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=5596a2c9cea68f282def1c80b0e4b8f9; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=5596a2c9cea68f282def1c80b0e4b8f9; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=5596a2c9cea68f282def1c80b0e4b8f9; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=5596a2c9cea68f282def1c80b0e4b8f9; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=5596a2c9cea68f282def1c80b0e4b8f9; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "X-Request-Id", + "value": "6gqvEJX77N38lMVfE06I" + }, + { + "key": "Cache-Control", + "value": "no-cache, no-store, must-revalidate" + }, + { + "key": "Feature-Policy", + "value": "autoplay 'none';camera 'none';fullscreen 'none';geolocation 'none';microphone 'none';payment 'none'" + }, + { + "key": "X-User-Id", + "value": "admin" + }, + { + "key": "Content-Length", + "value": "805" + }, + { + "key": "Keep-Alive", + "value": "timeout=5, max=92" + }, + { + "key": "Connection", + "value": "Keep-Alive" + }, + { + "key": "Content-Type", + "value": "application/json; charset=utf-8" + } + ], + "stream": { + "type": "Buffer", + "data": [ + 123, + 34, + 117, + 114, + 108, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 122, + 97, + 107, + 101, + 110, + 92, + 47, + 118, + 49, + 92, + 47, + 122, + 97, + 107, + 101, + 110, + 92, + 47, + 56, + 55, + 99, + 56, + 55, + 98, + 52, + 48, + 45, + 54, + 50, + 99, + 57, + 45, + 52, + 97, + 49, + 54, + 45, + 57, + 55, + 99, + 55, + 45, + 102, + 98, + 49, + 49, + 101, + 50, + 52, + 48, + 55, + 102, + 102, + 57, + 34, + 44, + 34, + 117, + 117, + 105, + 100, + 34, + 58, + 34, + 56, + 55, + 99, + 56, + 55, + 98, + 52, + 48, + 45, + 54, + 50, + 99, + 57, + 45, + 52, + 97, + 49, + 54, + 45, + 57, + 55, + 99, + 55, + 45, + 102, + 98, + 49, + 49, + 101, + 50, + 52, + 48, + 55, + 102, + 102, + 57, + 34, + 44, + 34, + 105, + 100, + 101, + 110, + 116, + 105, + 102, + 105, + 99, + 97, + 116, + 105, + 101, + 34, + 58, + 34, + 90, + 65, + 65, + 75, + 45, + 84, + 66, + 79, + 78, + 76, + 68, + 45, + 49, + 54, + 56, + 52, + 66, + 66, + 34, + 44, + 34, + 111, + 109, + 115, + 99, + 104, + 114, + 105, + 106, + 118, + 105, + 110, + 103, + 34, + 58, + 34, + 115, + 116, + 114, + 105, + 110, + 103, + 34, + 44, + 34, + 116, + 111, + 101, + 108, + 105, + 99, + 104, + 116, + 105, + 110, + 103, + 34, + 58, + 34, + 115, + 116, + 114, + 105, + 110, + 103, + 34, + 44, + 34, + 122, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 105, + 92, + 47, + 118, + 49, + 92, + 47, + 122, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 110, + 92, + 47, + 48, + 49, + 57, + 50, + 99, + 97, + 99, + 51, + 45, + 55, + 48, + 48, + 101, + 45, + 52, + 52, + 52, + 102, + 45, + 98, + 48, + 52, + 53, + 45, + 99, + 102, + 56, + 57, + 48, + 54, + 54, + 55, + 101, + 55, + 99, + 49, + 34, + 44, + 34, + 114, + 101, + 103, + 105, + 115, + 116, + 114, + 97, + 116, + 105, + 101, + 100, + 97, + 116, + 117, + 109, + 34, + 58, + 34, + 50, + 48, + 50, + 54, + 45, + 48, + 51, + 45, + 49, + 48, + 84, + 49, + 50, + 58, + 50, + 48, + 58, + 48, + 49, + 43, + 48, + 48, + 58, + 48, + 48, + 34, + 44, + 34, + 115, + 116, + 97, + 114, + 116, + 100, + 97, + 116, + 117, + 109, + 34, + 58, + 34, + 50, + 48, + 49, + 57, + 45, + 48, + 52, + 45, + 48, + 57, + 34, + 44, + 34, + 101, + 105, + 110, + 100, + 100, + 97, + 116, + 117, + 109, + 34, + 58, + 110, + 117, + 108, + 108, + 44, + 34, + 101, + 105, + 110, + 100, + 100, + 97, + 116, + 117, + 109, + 71, + 101, + 112, + 108, + 97, + 110, + 100, + 34, + 58, + 34, + 50, + 48, + 49, + 57, + 45, + 48, + 52, + 45, + 50, + 48, + 34, + 44, + 34, + 117, + 105, + 116, + 101, + 114, + 108, + 105, + 106, + 107, + 101, + 69, + 105, + 110, + 100, + 100, + 97, + 116, + 117, + 109, + 65, + 102, + 100, + 111, + 101, + 110, + 105, + 110, + 103, + 34, + 58, + 34, + 50, + 48, + 49, + 57, + 45, + 48, + 52, + 45, + 48, + 57, + 34, + 44, + 34, + 118, + 101, + 114, + 116, + 114, + 111, + 117, + 119, + 101, + 108, + 105, + 106, + 107, + 104, + 101, + 105, + 100, + 97, + 97, + 110, + 100, + 117, + 105, + 100, + 105, + 110, + 103, + 34, + 58, + 34, + 103, + 101, + 104, + 101, + 105, + 109, + 34, + 44, + 34, + 118, + 101, + 114, + 97, + 110, + 116, + 119, + 111, + 111, + 114, + 100, + 101, + 108, + 105, + 106, + 107, + 101, + 79, + 114, + 103, + 97, + 110, + 105, + 115, + 97, + 116, + 105, + 101, + 34, + 58, + 34, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 34, + 44, + 34, + 97, + 114, + 99, + 104, + 105, + 101, + 102, + 110, + 111, + 109, + 105, + 110, + 97, + 116, + 105, + 101, + 34, + 58, + 110, + 117, + 108, + 108, + 44, + 34, + 97, + 114, + 99, + 104, + 105, + 101, + 102, + 97, + 99, + 116, + 105, + 101, + 100, + 97, + 116, + 117, + 109, + 34, + 58, + 110, + 117, + 108, + 108, + 44, + 34, + 97, + 114, + 99, + 104, + 105, + 101, + 102, + 115, + 116, + 97, + 116, + 117, + 115, + 34, + 58, + 34, + 110, + 111, + 103, + 95, + 116, + 101, + 95, + 97, + 114, + 99, + 104, + 105, + 118, + 101, + 114, + 101, + 110, + 34, + 44, + 34, + 98, + 101, + 116, + 97, + 108, + 105, + 110, + 103, + 115, + 105, + 110, + 100, + 105, + 99, + 97, + 116, + 105, + 101, + 34, + 58, + 34, + 103, + 101, + 104, + 101, + 101, + 108, + 34, + 44, + 34, + 108, + 97, + 97, + 116, + 115, + 116, + 101, + 66, + 101, + 116, + 97, + 97, + 108, + 100, + 97, + 116, + 117, + 109, + 34, + 58, + 34, + 50, + 48, + 49, + 57, + 45, + 48, + 49, + 45, + 48, + 49, + 34, + 44, + 34, + 104, + 111, + 111, + 102, + 100, + 122, + 97, + 97, + 107, + 34, + 58, + 110, + 117, + 108, + 108, + 125 + ] + }, + "cookie": [], + "responseTime": 283, + "responseSize": 805 + }, + "id": "986f8ed6-971e-42be-9f9f-2f1d2ec7935f" + }, + { + "cursor": { + "ref": "bdb398bb-c30e-4d29-b0f2-8530b2442cd3", + "length": 313, + "cycles": 1, + "position": 241, + "iteration": 0, + "httpRequestId": "d1dd3b85-9821-49ae-8138-d72fd3e40516" + }, + "item": { + "id": "4ad737fb-2160-4da9-aa1d-1835d5fdc7ce", + "name": "besluit", + "request": { + "url": { + "path": [ + "besluiten" + ], + "host": [ + "{{brc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n \"verantwoordelijkeOrganisatie\": \"000000000\",\n \"besluittype\": \"{{concept_besluittype_url}}\",\n \"zaak\": \"{{zaak_zonder_archiefnominatie_url}}\",\n \"datum\": \"2019-01-01\",\n \"ingangsdatum\": \"2018-11-11\"\n}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "3d563803-18f7-4fe5-abb4-abd1615aabf1", + "type": "text/javascript", + "packages": {}, + "exec": [ + "var besluit = pm.response.json();", + "pm.environment.set(\"besluit_url\", besluit.url);", + "" + ], + "_lastExecutionId": "03c3486c-27ed-439a-a720-2f718edc5461" + } + } + ] + }, + "request": { + "url": { + "protocol": "http", + "port": "8080", + "path": [ + "index.php", + "apps", + "procest", + "api", + "zgw", + "besluiten", + "v1", + "besluiten" + ], + "host": [ + "localhost" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Authorization", + "value": "Bearer eyJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJwcm9jZXN0LWFkbWluIiwiY2xpZW50X2lkIjoicHJvY2VzdC1hZG1pbiIsImlhdCI6IjE3NzMxNDUyMDIiLCJ1c2VyX2lkIjoicHJvY2VzdC1hZG1pbiIsInVzZXJfcmVwcmVzZW50YXRpb24iOiIifQ.CqUzqUMS8TNnqWPhTOAlIwAx293HhZdN1cCAc44EiQw", + "system": true + }, + { + "key": "User-Agent", + "value": "PostmanRuntime/7.39.1", + "system": true + }, + { + "key": "Accept", + "value": "*/*", + "system": true + }, + { + "key": "Cache-Control", + "value": "no-cache", + "system": true + }, + { + "key": "Postman-Token", + "value": "0728c966-1fd0-4547-928c-58120dcb2a2c", + "system": true + }, + { + "key": "Host", + "value": "localhost:8080", + "system": true + }, + { + "key": "Accept-Encoding", + "value": "gzip, deflate, br", + "system": true + }, + { + "key": "Connection", + "value": "keep-alive", + "system": true + }, + { + "key": "Content-Length", + "value": "369", + "system": true + }, + { + "key": "Cookie", + "value": "ocvp3112b4wg=5596a2c9cea68f282def1c80b0e4b8f9; oc_sessionPassphrase=LBNdKxRzA0iqoULIruNxDDh2BK3O%2BrCIU8aUmiUcOFvy5Xw1YfjwQNlmBW2IkGwJYtxXh9%2BwDN6vYuGNX07tXzkBtjQJUWTGdzf8AIOUIVxVx5DfyWAQZ7nmYmQv6XSE; nc_sameSiteCookielax=true; nc_sameSiteCookiestrict=true", + "system": true + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n \"verantwoordelijkeOrganisatie\": \"000000000\",\n \"besluittype\": \"http://localhost:8080/index.php/apps/procest/api/zgw/catalogi/v1/besluittypen/798dfdb8-4171-403d-8b57-7a227df3f7dc\",\n \"zaak\": \"http://localhost:8080/index.php/apps/procest/api/zgw/zaken/v1/zaken/87c87b40-62c9-4a16-97c7-fb11e2407ff9\",\n \"datum\": \"2019-01-01\",\n \"ingangsdatum\": \"2018-11-11\"\n}" + }, + "auth": { + "type": "jwt", + "jwt": [ + { + "type": "string", + "value": "{\r\n \"iss\": \"procest-admin\",\r\n \"client_id\": \"procest-admin\",\r\n \"iat\": \"1773145202\",\r\n \"user_id\": \"procest-admin\",\r\n \"user_representation\": \"\"\r\n}", + "key": "payload" + }, + { + "type": "string", + "value": "procest-admin-secret-key-for-testing", + "key": "secret" + }, + { + "type": "string", + "value": "HS256", + "key": "algorithm" + }, + { + "type": "boolean", + "value": false, + "key": "isSecretBase64Encoded" + }, + { + "type": "string", + "value": "header", + "key": "addTokenTo" + }, + { + "type": "string", + "value": "Bearer", + "key": "headerPrefix" + }, + { + "type": "string", + "value": "token", + "key": "queryParamKey" + }, + { + "type": "string", + "value": "{}", + "key": "header" + } + ] + } + }, + "response": { + "id": "bfcaf953-597b-4ca7-8375-2c3ce8d7dd04", + "status": "Created", + "code": 201, + "header": [ + { + "key": "Date", + "value": "Tue, 10 Mar 2026 12:20:01 GMT" + }, + { + "key": "Server", + "value": "Apache/2.4.66 (Debian)" + }, + { + "key": "X-Content-Type-Options", + "value": "nosniff" + }, + { + "key": "X-Frame-Options", + "value": "SAMEORIGIN" + }, + { + "key": "X-Permitted-Cross-Domain-Policies", + "value": "none" + }, + { + "key": "X-Robots-Tag", + "value": "noindex, nofollow" + }, + { + "key": "Referrer-Policy", + "value": "no-referrer" + }, + { + "key": "X-Powered-By", + "value": "PHP/8.3.30" + }, + { + "key": "Content-Security-Policy", + "value": "default-src 'none';base-uri 'none';manifest-src 'self';frame-ancestors 'none'" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=5596a2c9cea68f282def1c80b0e4b8f9; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=5596a2c9cea68f282def1c80b0e4b8f9; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=5596a2c9cea68f282def1c80b0e4b8f9; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=5596a2c9cea68f282def1c80b0e4b8f9; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=5596a2c9cea68f282def1c80b0e4b8f9; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=6fba181a8886ddd718e20f279cf4c102; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=6fba181a8886ddd718e20f279cf4c102; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=6fba181a8886ddd718e20f279cf4c102; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=6fba181a8886ddd718e20f279cf4c102; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=6fba181a8886ddd718e20f279cf4c102; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "X-Request-Id", + "value": "p9BrDBrDG9lZya5s45k8" + }, + { + "key": "Cache-Control", + "value": "no-cache, no-store, must-revalidate" + }, + { + "key": "Feature-Policy", + "value": "autoplay 'none';camera 'none';fullscreen 'none';geolocation 'none';microphone 'none';payment 'none'" + }, + { + "key": "X-User-Id", + "value": "admin" + }, + { + "key": "Content-Length", + "value": "701" + }, + { + "key": "Keep-Alive", + "value": "timeout=5, max=91" + }, + { + "key": "Connection", + "value": "Keep-Alive" + }, + { + "key": "Content-Type", + "value": "application/json; charset=utf-8" + } + ], + "stream": { + "type": "Buffer", + "data": [ + 123, + 34, + 117, + 114, + 108, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 98, + 101, + 115, + 108, + 117, + 105, + 116, + 101, + 110, + 92, + 47, + 118, + 49, + 92, + 47, + 98, + 101, + 115, + 108, + 117, + 105, + 116, + 101, + 110, + 92, + 47, + 98, + 99, + 57, + 50, + 54, + 97, + 101, + 52, + 45, + 53, + 99, + 57, + 51, + 45, + 52, + 100, + 53, + 97, + 45, + 57, + 98, + 97, + 101, + 45, + 101, + 54, + 56, + 52, + 56, + 102, + 99, + 52, + 102, + 55, + 50, + 49, + 34, + 44, + 34, + 117, + 117, + 105, + 100, + 34, + 58, + 34, + 98, + 99, + 57, + 50, + 54, + 97, + 101, + 52, + 45, + 53, + 99, + 57, + 51, + 45, + 52, + 100, + 53, + 97, + 45, + 57, + 98, + 97, + 101, + 45, + 101, + 54, + 56, + 52, + 56, + 102, + 99, + 52, + 102, + 55, + 50, + 49, + 34, + 44, + 34, + 105, + 100, + 101, + 110, + 116, + 105, + 102, + 105, + 99, + 97, + 116, + 105, + 101, + 34, + 58, + 34, + 66, + 69, + 83, + 76, + 85, + 73, + 84, + 45, + 84, + 66, + 79, + 78, + 76, + 68, + 45, + 57, + 69, + 54, + 50, + 54, + 53, + 34, + 44, + 34, + 116, + 111, + 101, + 108, + 105, + 99, + 104, + 116, + 105, + 110, + 103, + 34, + 58, + 34, + 34, + 44, + 34, + 122, + 97, + 97, + 107, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 122, + 97, + 107, + 101, + 110, + 92, + 47, + 118, + 49, + 92, + 47, + 122, + 97, + 107, + 101, + 110, + 92, + 47, + 56, + 55, + 99, + 56, + 55, + 98, + 52, + 48, + 45, + 54, + 50, + 99, + 57, + 45, + 52, + 97, + 49, + 54, + 45, + 57, + 55, + 99, + 55, + 45, + 102, + 98, + 49, + 49, + 101, + 50, + 52, + 48, + 55, + 102, + 102, + 57, + 34, + 44, + 34, + 98, + 101, + 115, + 108, + 117, + 105, + 116, + 116, + 121, + 112, + 101, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 105, + 92, + 47, + 118, + 49, + 92, + 47, + 98, + 101, + 115, + 108, + 117, + 105, + 116, + 116, + 121, + 112, + 101, + 110, + 92, + 47, + 55, + 57, + 56, + 100, + 102, + 100, + 98, + 56, + 45, + 52, + 49, + 55, + 49, + 45, + 52, + 48, + 51, + 100, + 45, + 56, + 98, + 53, + 55, + 45, + 55, + 97, + 50, + 50, + 55, + 100, + 102, + 51, + 102, + 55, + 100, + 99, + 34, + 44, + 34, + 118, + 101, + 114, + 97, + 110, + 116, + 119, + 111, + 111, + 114, + 100, + 101, + 108, + 105, + 106, + 107, + 101, + 79, + 114, + 103, + 97, + 110, + 105, + 115, + 97, + 116, + 105, + 101, + 34, + 58, + 34, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 34, + 44, + 34, + 100, + 97, + 116, + 117, + 109, + 34, + 58, + 34, + 50, + 48, + 49, + 57, + 45, + 48, + 49, + 45, + 48, + 49, + 34, + 44, + 34, + 105, + 110, + 103, + 97, + 110, + 103, + 115, + 100, + 97, + 116, + 117, + 109, + 34, + 58, + 34, + 50, + 48, + 49, + 56, + 45, + 49, + 49, + 45, + 49, + 49, + 34, + 44, + 34, + 118, + 101, + 114, + 118, + 97, + 108, + 100, + 97, + 116, + 117, + 109, + 34, + 58, + 34, + 50, + 48, + 50, + 54, + 45, + 48, + 51, + 45, + 49, + 48, + 34, + 44, + 34, + 112, + 117, + 98, + 108, + 105, + 99, + 97, + 116, + 105, + 101, + 100, + 97, + 116, + 117, + 109, + 34, + 58, + 34, + 50, + 48, + 50, + 54, + 45, + 48, + 51, + 45, + 49, + 48, + 34, + 44, + 34, + 118, + 101, + 114, + 122, + 101, + 110, + 100, + 100, + 97, + 116, + 117, + 109, + 34, + 58, + 34, + 50, + 48, + 50, + 54, + 45, + 48, + 51, + 45, + 49, + 48, + 34, + 44, + 34, + 98, + 101, + 115, + 116, + 117, + 117, + 114, + 115, + 111, + 114, + 103, + 97, + 97, + 110, + 34, + 58, + 34, + 34, + 125 + ] + }, + "cookie": [], + "responseTime": 209, + "responseSize": 701 + }, + "id": "4ad737fb-2160-4da9-aa1d-1835d5fdc7ce" + }, + { + "cursor": { + "ref": "9a84af45-274d-4a10-8925-2cac0b79c282", + "length": 313, + "cycles": 1, + "position": 242, + "iteration": 0, + "httpRequestId": "358a209f-d309-4f0f-8bcf-3974f98cda5f" + }, + "item": { + "id": "416241ad-e32b-452f-ba59-5ccb399e4efc", + "name": "Add Resultaat to Zaak", + "request": { + "url": { + "path": [ + "resultaten" + ], + "host": [ + "{{zrc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n\t\"zaak\": \"{{zaak_zonder_archiefnominatie_url}}\",\n\t\"resultaattype\": \"{{current_resultaattype}}\"\n}" + } + }, + "response": [], + "event": [ + { + "listen": "prerequest", + "script": { + "id": "84ac8a7c-fc5f-4ea9-bc1c-ebbf529bf782", + "type": "text/javascript", + "exec": [ + "// if (!pm.environment.get(\"resultaattype_index\")) {", + "// pm.environment.set(\"resultaattype_index\", 0);", + "// }", + "", + "// pm.environment.set(\"current_resultaattype\", pm.environment.get(\"zaaktype_resultaattypen\")[pm.environment.get(\"resultaattype_index\")])" + ], + "_lastExecutionId": "9f2b70e2-8079-4b1f-a7f0-701232ef2af1" + } + }, + { + "listen": "test", + "script": { + "id": "9ca5b60b-1ef3-4a84-b3ee-d805b9507f29", + "type": "text/javascript", + "exec": [ + "pm.environment.set(\"zaak_resultaat_url\", pm.response.json().url);" + ], + "_lastExecutionId": "a9536c07-a486-4b35-aa1f-1d15cb586b8b" + } + } + ] + }, + "request": { + "url": { + "protocol": "http", + "port": "8080", + "path": [ + "index.php", + "apps", + "procest", + "api", + "zgw", + "zaken", + "v1", + "resultaten" + ], + "host": [ + "localhost" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Authorization", + "value": "Bearer eyJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJwcm9jZXN0LWFkbWluIiwiY2xpZW50X2lkIjoicHJvY2VzdC1hZG1pbiIsImlhdCI6IjE3NzMxNDUyMDIiLCJ1c2VyX2lkIjoicHJvY2VzdC1hZG1pbiIsInVzZXJfcmVwcmVzZW50YXRpb24iOiIifQ.CqUzqUMS8TNnqWPhTOAlIwAx293HhZdN1cCAc44EiQw", + "system": true + }, + { + "key": "User-Agent", + "value": "PostmanRuntime/7.39.1", + "system": true + }, + { + "key": "Accept", + "value": "*/*", + "system": true + }, + { + "key": "Cache-Control", + "value": "no-cache", + "system": true + }, + { + "key": "Postman-Token", + "value": "7aef095a-5e18-4e62-b041-eb424ef892c0", + "system": true + }, + { + "key": "Host", + "value": "localhost:8080", + "system": true + }, + { + "key": "Accept-Encoding", + "value": "gzip, deflate, br", + "system": true + }, + { + "key": "Connection", + "value": "keep-alive", + "system": true + }, + { + "key": "Content-Length", + "value": "257", + "system": true + }, + { + "key": "Cookie", + "value": "ocvp3112b4wg=6fba181a8886ddd718e20f279cf4c102; oc_sessionPassphrase=LBNdKxRzA0iqoULIruNxDDh2BK3O%2BrCIU8aUmiUcOFvy5Xw1YfjwQNlmBW2IkGwJYtxXh9%2BwDN6vYuGNX07tXzkBtjQJUWTGdzf8AIOUIVxVx5DfyWAQZ7nmYmQv6XSE; nc_sameSiteCookielax=true; nc_sameSiteCookiestrict=true", + "system": true + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n\t\"zaak\": \"http://localhost:8080/index.php/apps/procest/api/zgw/zaken/v1/zaken/87c87b40-62c9-4a16-97c7-fb11e2407ff9\",\n\t\"resultaattype\": \"http://localhost:8080/index.php/apps/procest/api/zgw/catalogi/v1/resultaattypen/6ccc573d-5d75-4a3b-8383-80c89cb24034\"\n}" + }, + "auth": { + "type": "jwt", + "jwt": [ + { + "type": "string", + "value": "{\r\n \"iss\": \"procest-admin\",\r\n \"client_id\": \"procest-admin\",\r\n \"iat\": \"1773145202\",\r\n \"user_id\": \"procest-admin\",\r\n \"user_representation\": \"\"\r\n}", + "key": "payload" + }, + { + "type": "string", + "value": "procest-admin-secret-key-for-testing", + "key": "secret" + }, + { + "type": "string", + "value": "HS256", + "key": "algorithm" + }, + { + "type": "boolean", + "value": false, + "key": "isSecretBase64Encoded" + }, + { + "type": "string", + "value": "header", + "key": "addTokenTo" + }, + { + "type": "string", + "value": "Bearer", + "key": "headerPrefix" + }, + { + "type": "string", + "value": "token", + "key": "queryParamKey" + }, + { + "type": "string", + "value": "{}", + "key": "header" + } + ] + } + }, + "response": { + "id": "0bb613b9-0a85-4f8c-9819-8314b2b5d5f9", + "status": "Created", + "code": 201, + "header": [ + { + "key": "Date", + "value": "Tue, 10 Mar 2026 12:20:02 GMT" + }, + { + "key": "Server", + "value": "Apache/2.4.66 (Debian)" + }, + { + "key": "X-Content-Type-Options", + "value": "nosniff" + }, + { + "key": "X-Frame-Options", + "value": "SAMEORIGIN" + }, + { + "key": "X-Permitted-Cross-Domain-Policies", + "value": "none" + }, + { + "key": "X-Robots-Tag", + "value": "noindex, nofollow" + }, + { + "key": "Referrer-Policy", + "value": "no-referrer" + }, + { + "key": "X-Powered-By", + "value": "PHP/8.3.30" + }, + { + "key": "Content-Security-Policy", + "value": "default-src 'none';base-uri 'none';manifest-src 'self';frame-ancestors 'none'" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=6fba181a8886ddd718e20f279cf4c102; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=6fba181a8886ddd718e20f279cf4c102; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=6fba181a8886ddd718e20f279cf4c102; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=6fba181a8886ddd718e20f279cf4c102; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=6fba181a8886ddd718e20f279cf4c102; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=508ba38444d9b3da660b02c76918ff27; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=508ba38444d9b3da660b02c76918ff27; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=508ba38444d9b3da660b02c76918ff27; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=508ba38444d9b3da660b02c76918ff27; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=508ba38444d9b3da660b02c76918ff27; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "X-Request-Id", + "value": "Pcg18Ffbd5roJAmLFIHT" + }, + { + "key": "Cache-Control", + "value": "no-cache, no-store, must-revalidate" + }, + { + "key": "Feature-Policy", + "value": "autoplay 'none';camera 'none';fullscreen 'none';geolocation 'none';microphone 'none';payment 'none'" + }, + { + "key": "X-User-Id", + "value": "admin" + }, + { + "key": "Content-Length", + "value": "464" + }, + { + "key": "Keep-Alive", + "value": "timeout=5, max=90" + }, + { + "key": "Connection", + "value": "Keep-Alive" + }, + { + "key": "Content-Type", + "value": "application/json; charset=utf-8" + } + ], + "stream": { + "type": "Buffer", + "data": [ + 123, + 34, + 117, + 114, + 108, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 122, + 97, + 107, + 101, + 110, + 92, + 47, + 118, + 49, + 92, + 47, + 114, + 101, + 115, + 117, + 108, + 116, + 97, + 116, + 101, + 110, + 92, + 47, + 54, + 55, + 51, + 102, + 51, + 98, + 97, + 52, + 45, + 53, + 54, + 57, + 49, + 45, + 52, + 53, + 53, + 51, + 45, + 57, + 50, + 48, + 48, + 45, + 98, + 100, + 99, + 54, + 49, + 102, + 50, + 48, + 101, + 53, + 52, + 102, + 34, + 44, + 34, + 117, + 117, + 105, + 100, + 34, + 58, + 34, + 54, + 55, + 51, + 102, + 51, + 98, + 97, + 52, + 45, + 53, + 54, + 57, + 49, + 45, + 52, + 53, + 53, + 51, + 45, + 57, + 50, + 48, + 48, + 45, + 98, + 100, + 99, + 54, + 49, + 102, + 50, + 48, + 101, + 53, + 52, + 102, + 34, + 44, + 34, + 122, + 97, + 97, + 107, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 122, + 97, + 107, + 101, + 110, + 92, + 47, + 118, + 49, + 92, + 47, + 122, + 97, + 107, + 101, + 110, + 92, + 47, + 56, + 55, + 99, + 56, + 55, + 98, + 52, + 48, + 45, + 54, + 50, + 99, + 57, + 45, + 52, + 97, + 49, + 54, + 45, + 57, + 55, + 99, + 55, + 45, + 102, + 98, + 49, + 49, + 101, + 50, + 52, + 48, + 55, + 102, + 102, + 57, + 34, + 44, + 34, + 114, + 101, + 115, + 117, + 108, + 116, + 97, + 97, + 116, + 116, + 121, + 112, + 101, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 105, + 92, + 47, + 118, + 49, + 92, + 47, + 114, + 101, + 115, + 117, + 108, + 116, + 97, + 97, + 116, + 116, + 121, + 112, + 101, + 110, + 92, + 47, + 54, + 99, + 99, + 99, + 53, + 55, + 51, + 100, + 45, + 53, + 100, + 55, + 53, + 45, + 52, + 97, + 51, + 98, + 45, + 56, + 51, + 56, + 51, + 45, + 56, + 48, + 99, + 56, + 57, + 99, + 98, + 50, + 52, + 48, + 51, + 52, + 34, + 44, + 34, + 116, + 111, + 101, + 108, + 105, + 99, + 104, + 116, + 105, + 110, + 103, + 34, + 58, + 34, + 34, + 125 + ] + }, + "cookie": [], + "responseTime": 255, + "responseSize": 464 + }, + "id": "416241ad-e32b-452f-ba59-5ccb399e4efc" + }, + { + "cursor": { + "ref": "37b4735b-f132-40df-baf9-5a19fe27757f", + "length": 313, + "cycles": 1, + "position": 243, + "iteration": 0, + "httpRequestId": "fdbd7d8c-d6b1-462d-87d7-1b482c6a83c5" + }, + "item": { + "id": "7c658f89-4fdb-46ef-ab36-b3468c22151e", + "name": "Add Eindstatus to Zaak without archiefnominatie", + "request": { + "url": { + "path": [ + "statussen" + ], + "host": [ + "{{zrc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n\t\"zaak\": \"{{zaak_zonder_archiefnominatie_url}}\",\n\t\"statustype\": \"{{current_statustype_url}}\",\n\t\"datumStatusGezet\": \"2018-04-26T13:37:00\"\n}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "84a3b47b-821a-4279-99e2-5f3c3aad530f", + "type": "text/javascript", + "exec": [ + "" + ], + "_lastExecutionId": "29e517c3-54de-4387-ba65-2d0bdf03b2a5" + } + }, + { + "listen": "prerequest", + "script": { + "id": "e0352f04-e9a8-4fe6-b300-750ce03e828e", + "type": "text/javascript", + "exec": [ + "" + ], + "_lastExecutionId": "e4528b87-72ba-4483-899e-4361e7695b2b" + } + } + ] + }, + "request": { + "url": { + "protocol": "http", + "port": "8080", + "path": [ + "index.php", + "apps", + "procest", + "api", + "zgw", + "zaken", + "v1", + "statussen" + ], + "host": [ + "localhost" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Authorization", + "value": "Bearer eyJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJwcm9jZXN0LWFkbWluIiwiY2xpZW50X2lkIjoicHJvY2VzdC1hZG1pbiIsImlhdCI6IjE3NzMxNDUyMDIiLCJ1c2VyX2lkIjoicHJvY2VzdC1hZG1pbiIsInVzZXJfcmVwcmVzZW50YXRpb24iOiIifQ.CqUzqUMS8TNnqWPhTOAlIwAx293HhZdN1cCAc44EiQw", + "system": true + }, + { + "key": "User-Agent", + "value": "PostmanRuntime/7.39.1", + "system": true + }, + { + "key": "Accept", + "value": "*/*", + "system": true + }, + { + "key": "Cache-Control", + "value": "no-cache", + "system": true + }, + { + "key": "Postman-Token", + "value": "62f3e070-3cdf-4cca-bf3d-9ce055d019a1", + "system": true + }, + { + "key": "Host", + "value": "localhost:8080", + "system": true + }, + { + "key": "Accept-Encoding", + "value": "gzip, deflate, br", + "system": true + }, + { + "key": "Connection", + "value": "keep-alive", + "system": true + }, + { + "key": "Content-Length", + "value": "295", + "system": true + }, + { + "key": "Cookie", + "value": "ocvp3112b4wg=508ba38444d9b3da660b02c76918ff27; oc_sessionPassphrase=LBNdKxRzA0iqoULIruNxDDh2BK3O%2BrCIU8aUmiUcOFvy5Xw1YfjwQNlmBW2IkGwJYtxXh9%2BwDN6vYuGNX07tXzkBtjQJUWTGdzf8AIOUIVxVx5DfyWAQZ7nmYmQv6XSE; nc_sameSiteCookielax=true; nc_sameSiteCookiestrict=true", + "system": true + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n\t\"zaak\": \"http://localhost:8080/index.php/apps/procest/api/zgw/zaken/v1/zaken/87c87b40-62c9-4a16-97c7-fb11e2407ff9\",\n\t\"statustype\": \"http://localhost:8080/index.php/apps/procest/api/zgw/catalogi/v1/statustypen/662aecb8-e92d-48ad-b2bc-e0084978e29c\",\n\t\"datumStatusGezet\": \"2018-04-26T13:37:00\"\n}" + }, + "auth": { + "type": "jwt", + "jwt": [ + { + "type": "string", + "value": "{\r\n \"iss\": \"procest-admin\",\r\n \"client_id\": \"procest-admin\",\r\n \"iat\": \"1773145202\",\r\n \"user_id\": \"procest-admin\",\r\n \"user_representation\": \"\"\r\n}", + "key": "payload" + }, + { + "type": "string", + "value": "procest-admin-secret-key-for-testing", + "key": "secret" + }, + { + "type": "string", + "value": "HS256", + "key": "algorithm" + }, + { + "type": "boolean", + "value": false, + "key": "isSecretBase64Encoded" + }, + { + "type": "string", + "value": "header", + "key": "addTokenTo" + }, + { + "type": "string", + "value": "Bearer", + "key": "headerPrefix" + }, + { + "type": "string", + "value": "token", + "key": "queryParamKey" + }, + { + "type": "string", + "value": "{}", + "key": "header" + } + ] + } + }, + "response": { + "id": "1de043ac-b93d-42ab-8d5c-0d08b983c9ec", + "status": "Created", + "code": 201, + "header": [ + { + "key": "Date", + "value": "Tue, 10 Mar 2026 12:20:02 GMT" + }, + { + "key": "Server", + "value": "Apache/2.4.66 (Debian)" + }, + { + "key": "X-Content-Type-Options", + "value": "nosniff" + }, + { + "key": "X-Frame-Options", + "value": "SAMEORIGIN" + }, + { + "key": "X-Permitted-Cross-Domain-Policies", + "value": "none" + }, + { + "key": "X-Robots-Tag", + "value": "noindex, nofollow" + }, + { + "key": "Referrer-Policy", + "value": "no-referrer" + }, + { + "key": "X-Powered-By", + "value": "PHP/8.3.30" + }, + { + "key": "Content-Security-Policy", + "value": "default-src 'none';base-uri 'none';manifest-src 'self';frame-ancestors 'none'" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=508ba38444d9b3da660b02c76918ff27; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=508ba38444d9b3da660b02c76918ff27; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=508ba38444d9b3da660b02c76918ff27; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=508ba38444d9b3da660b02c76918ff27; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=508ba38444d9b3da660b02c76918ff27; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=fc4932b100d73c13dac344d3c3e4b622; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=fc4932b100d73c13dac344d3c3e4b622; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=fc4932b100d73c13dac344d3c3e4b622; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=fc4932b100d73c13dac344d3c3e4b622; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=fc4932b100d73c13dac344d3c3e4b622; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "X-Request-Id", + "value": "3keo271KmubC6BpvqWWD" + }, + { + "key": "Cache-Control", + "value": "no-cache, no-store, must-revalidate" + }, + { + "key": "Feature-Policy", + "value": "autoplay 'none';camera 'none';fullscreen 'none';geolocation 'none';microphone 'none';payment 'none'" + }, + { + "key": "X-User-Id", + "value": "admin" + }, + { + "key": "Content-Length", + "value": "510" + }, + { + "key": "Keep-Alive", + "value": "timeout=5, max=89" + }, + { + "key": "Connection", + "value": "Keep-Alive" + }, + { + "key": "Content-Type", + "value": "application/json; charset=utf-8" + } + ], + "stream": { + "type": "Buffer", + "data": [ + 123, + 34, + 117, + 114, + 108, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 122, + 97, + 107, + 101, + 110, + 92, + 47, + 118, + 49, + 92, + 47, + 115, + 116, + 97, + 116, + 117, + 115, + 115, + 101, + 110, + 92, + 47, + 98, + 54, + 53, + 53, + 48, + 101, + 101, + 50, + 45, + 51, + 56, + 99, + 99, + 45, + 52, + 101, + 52, + 97, + 45, + 98, + 99, + 53, + 56, + 45, + 57, + 51, + 53, + 51, + 49, + 98, + 98, + 54, + 49, + 57, + 50, + 57, + 34, + 44, + 34, + 117, + 117, + 105, + 100, + 34, + 58, + 34, + 98, + 54, + 53, + 53, + 48, + 101, + 101, + 50, + 45, + 51, + 56, + 99, + 99, + 45, + 52, + 101, + 52, + 97, + 45, + 98, + 99, + 53, + 56, + 45, + 57, + 51, + 53, + 51, + 49, + 98, + 98, + 54, + 49, + 57, + 50, + 57, + 34, + 44, + 34, + 122, + 97, + 97, + 107, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 122, + 97, + 107, + 101, + 110, + 92, + 47, + 118, + 49, + 92, + 47, + 122, + 97, + 107, + 101, + 110, + 92, + 47, + 56, + 55, + 99, + 56, + 55, + 98, + 52, + 48, + 45, + 54, + 50, + 99, + 57, + 45, + 52, + 97, + 49, + 54, + 45, + 57, + 55, + 99, + 55, + 45, + 102, + 98, + 49, + 49, + 101, + 50, + 52, + 48, + 55, + 102, + 102, + 57, + 34, + 44, + 34, + 115, + 116, + 97, + 116, + 117, + 115, + 116, + 121, + 112, + 101, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 105, + 92, + 47, + 118, + 49, + 92, + 47, + 115, + 116, + 97, + 116, + 117, + 115, + 116, + 121, + 112, + 101, + 110, + 92, + 47, + 54, + 54, + 50, + 97, + 101, + 99, + 98, + 56, + 45, + 101, + 57, + 50, + 100, + 45, + 52, + 56, + 97, + 100, + 45, + 98, + 50, + 98, + 99, + 45, + 101, + 48, + 48, + 56, + 52, + 57, + 55, + 56, + 101, + 50, + 57, + 99, + 34, + 44, + 34, + 100, + 97, + 116, + 117, + 109, + 83, + 116, + 97, + 116, + 117, + 115, + 71, + 101, + 122, + 101, + 116, + 34, + 58, + 34, + 50, + 48, + 50, + 54, + 45, + 48, + 51, + 45, + 49, + 48, + 84, + 49, + 50, + 58, + 50, + 48, + 58, + 48, + 50, + 43, + 48, + 48, + 58, + 48, + 48, + 34, + 44, + 34, + 115, + 116, + 97, + 116, + 117, + 115, + 116, + 111, + 101, + 108, + 105, + 99, + 104, + 116, + 105, + 110, + 103, + 34, + 58, + 34, + 34, + 125 + ] + }, + "cookie": [], + "responseTime": 299, + "responseSize": 510 + }, + "id": "7c658f89-4fdb-46ef-ab36-b3468c22151e" + }, + { + "cursor": { + "ref": "2fb3058d-6268-42d6-b309-2062c5b63106", + "length": 313, + "cycles": 1, + "position": 244, + "iteration": 0, + "httpRequestId": "7eb66a8e-e500-4c95-b2f0-dda6d88b4c48" + }, + "item": { + "id": "87953ab5-d7c0-4689-aedf-71aef4f31447", + "name": "(zrc-021d) Afleidingswijze ingangsdatum besluit", + "request": { + "url": { + "host": [ + "{{zaak_zonder_archiefnominatie_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Accept-Crs", + "value": "EPSG:4326" + } + ], + "method": "GET" + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "e1e319b3-3356-48bc-85d5-b6a8ac4bb5f1", + "type": "text/javascript", + "packages": {}, + "exec": [ + "pm.test(\"zrc-021d afleidingswijze ingangsdatum besluit\", function() {", + " pm.expect(pm.response.json().archiefactiedatum).to.be.equal(\"2023-11-11\");", + "});" + ], + "_lastExecutionId": "009e8e52-74c5-44a2-9574-79a1833420c7" + } + }, + { + "listen": "prerequest", + "script": { + "id": "7b67e8a0-416e-4001-94a0-ad7102b1d718", + "type": "text/javascript", + "packages": {}, + "exec": [ + "" + ], + "_lastExecutionId": "60d162c9-1bf0-40d5-9bae-8fbf7709f21e" + } + } + ] + }, + "request": { + "url": { + "protocol": "http", + "port": "8080", + "path": [ + "index.php", + "apps", + "procest", + "api", + "zgw", + "zaken", + "v1", + "zaken", + "87c87b40-62c9-4a16-97c7-fb11e2407ff9" + ], + "host": [ + "localhost" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Accept-Crs", + "value": "EPSG:4326" + }, + { + "key": "Authorization", + "value": "Bearer eyJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJwcm9jZXN0LWFkbWluIiwiY2xpZW50X2lkIjoicHJvY2VzdC1hZG1pbiIsImlhdCI6IjE3NzMxNDUyMDMiLCJ1c2VyX2lkIjoicHJvY2VzdC1hZG1pbiIsInVzZXJfcmVwcmVzZW50YXRpb24iOiIifQ.sTJamKEyslhHrLIUtH8aNO_KkxNklUwdF6CsZVuK7eU", + "system": true + }, + { + "key": "User-Agent", + "value": "PostmanRuntime/7.39.1", + "system": true + }, + { + "key": "Accept", + "value": "*/*", + "system": true + }, + { + "key": "Cache-Control", + "value": "no-cache", + "system": true + }, + { + "key": "Postman-Token", + "value": "5051b97b-8d51-4ada-be83-db52813822e1", + "system": true + }, + { + "key": "Host", + "value": "localhost:8080", + "system": true + }, + { + "key": "Accept-Encoding", + "value": "gzip, deflate, br", + "system": true + }, + { + "key": "Connection", + "value": "keep-alive", + "system": true + }, + { + "key": "Cookie", + "value": "ocvp3112b4wg=fc4932b100d73c13dac344d3c3e4b622; oc_sessionPassphrase=LBNdKxRzA0iqoULIruNxDDh2BK3O%2BrCIU8aUmiUcOFvy5Xw1YfjwQNlmBW2IkGwJYtxXh9%2BwDN6vYuGNX07tXzkBtjQJUWTGdzf8AIOUIVxVx5DfyWAQZ7nmYmQv6XSE; nc_sameSiteCookielax=true; nc_sameSiteCookiestrict=true", + "system": true + } + ], + "method": "GET", + "auth": { + "type": "jwt", + "jwt": [ + { + "type": "string", + "value": "{\r\n \"iss\": \"procest-admin\",\r\n \"client_id\": \"procest-admin\",\r\n \"iat\": \"1773145203\",\r\n \"user_id\": \"procest-admin\",\r\n \"user_representation\": \"\"\r\n}", + "key": "payload" + }, + { + "type": "string", + "value": "procest-admin-secret-key-for-testing", + "key": "secret" + }, + { + "type": "string", + "value": "HS256", + "key": "algorithm" + }, + { + "type": "boolean", + "value": false, + "key": "isSecretBase64Encoded" + }, + { + "type": "string", + "value": "header", + "key": "addTokenTo" + }, + { + "type": "string", + "value": "Bearer", + "key": "headerPrefix" + }, + { + "type": "string", + "value": "token", + "key": "queryParamKey" + }, + { + "type": "string", + "value": "{}", + "key": "header" + } + ] + } + }, + "response": { + "id": "3479a5fb-fed6-4fdc-bb82-9e1ffc25f669", + "status": "OK", + "code": 200, + "header": [ + { + "key": "Date", + "value": "Tue, 10 Mar 2026 12:20:02 GMT" + }, + { + "key": "Server", + "value": "Apache/2.4.66 (Debian)" + }, + { + "key": "X-Content-Type-Options", + "value": "nosniff" + }, + { + "key": "X-Frame-Options", + "value": "SAMEORIGIN" + }, + { + "key": "X-Permitted-Cross-Domain-Policies", + "value": "none" + }, + { + "key": "X-Robots-Tag", + "value": "noindex, nofollow" + }, + { + "key": "Referrer-Policy", + "value": "no-referrer" + }, + { + "key": "X-Powered-By", + "value": "PHP/8.3.30" + }, + { + "key": "Content-Security-Policy", + "value": "default-src 'none';base-uri 'none';manifest-src 'self';frame-ancestors 'none'" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=fc4932b100d73c13dac344d3c3e4b622; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=fc4932b100d73c13dac344d3c3e4b622; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=fc4932b100d73c13dac344d3c3e4b622; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=fc4932b100d73c13dac344d3c3e4b622; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=fc4932b100d73c13dac344d3c3e4b622; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=b4132cc1e88d73db5463a375efc198fe; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=b4132cc1e88d73db5463a375efc198fe; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=b4132cc1e88d73db5463a375efc198fe; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=b4132cc1e88d73db5463a375efc198fe; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=b4132cc1e88d73db5463a375efc198fe; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "X-Request-Id", + "value": "jmPorScNOCNZgySDOgg6" + }, + { + "key": "Cache-Control", + "value": "no-cache, no-store, must-revalidate" + }, + { + "key": "Feature-Policy", + "value": "autoplay 'none';camera 'none';fullscreen 'none';geolocation 'none';microphone 'none';payment 'none'" + }, + { + "key": "X-User-Id", + "value": "admin" + }, + { + "key": "Content-Encoding", + "value": "gzip" + }, + { + "key": "Content-Length", + "value": "454" + }, + { + "key": "Keep-Alive", + "value": "timeout=5, max=88" + }, + { + "key": "Connection", + "value": "Keep-Alive" + }, + { + "key": "Content-Type", + "value": "application/json; charset=utf-8" + } + ], + "stream": { + "type": "Buffer", + "data": [ + 123, + 34, + 117, + 114, + 108, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 122, + 97, + 107, + 101, + 110, + 92, + 47, + 118, + 49, + 92, + 47, + 122, + 97, + 107, + 101, + 110, + 92, + 47, + 56, + 55, + 99, + 56, + 55, + 98, + 52, + 48, + 45, + 54, + 50, + 99, + 57, + 45, + 52, + 97, + 49, + 54, + 45, + 57, + 55, + 99, + 55, + 45, + 102, + 98, + 49, + 49, + 101, + 50, + 52, + 48, + 55, + 102, + 102, + 57, + 34, + 44, + 34, + 117, + 117, + 105, + 100, + 34, + 58, + 34, + 56, + 55, + 99, + 56, + 55, + 98, + 52, + 48, + 45, + 54, + 50, + 99, + 57, + 45, + 52, + 97, + 49, + 54, + 45, + 57, + 55, + 99, + 55, + 45, + 102, + 98, + 49, + 49, + 101, + 50, + 52, + 48, + 55, + 102, + 102, + 57, + 34, + 44, + 34, + 105, + 100, + 101, + 110, + 116, + 105, + 102, + 105, + 99, + 97, + 116, + 105, + 101, + 34, + 58, + 34, + 90, + 65, + 65, + 75, + 45, + 84, + 66, + 79, + 78, + 76, + 68, + 45, + 49, + 54, + 56, + 52, + 66, + 66, + 34, + 44, + 34, + 111, + 109, + 115, + 99, + 104, + 114, + 105, + 106, + 118, + 105, + 110, + 103, + 34, + 58, + 34, + 115, + 116, + 114, + 105, + 110, + 103, + 34, + 44, + 34, + 116, + 111, + 101, + 108, + 105, + 99, + 104, + 116, + 105, + 110, + 103, + 34, + 58, + 34, + 115, + 116, + 114, + 105, + 110, + 103, + 34, + 44, + 34, + 122, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 105, + 92, + 47, + 118, + 49, + 92, + 47, + 122, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 110, + 92, + 47, + 48, + 49, + 57, + 50, + 99, + 97, + 99, + 51, + 45, + 55, + 48, + 48, + 101, + 45, + 52, + 52, + 52, + 102, + 45, + 98, + 48, + 52, + 53, + 45, + 99, + 102, + 56, + 57, + 48, + 54, + 54, + 55, + 101, + 55, + 99, + 49, + 34, + 44, + 34, + 114, + 101, + 103, + 105, + 115, + 116, + 114, + 97, + 116, + 105, + 101, + 100, + 97, + 116, + 117, + 109, + 34, + 58, + 34, + 50, + 48, + 50, + 54, + 45, + 48, + 51, + 45, + 49, + 48, + 84, + 49, + 50, + 58, + 50, + 48, + 58, + 48, + 49, + 43, + 48, + 48, + 58, + 48, + 48, + 34, + 44, + 34, + 115, + 116, + 97, + 114, + 116, + 100, + 97, + 116, + 117, + 109, + 34, + 58, + 34, + 50, + 48, + 49, + 57, + 45, + 48, + 52, + 45, + 48, + 57, + 34, + 44, + 34, + 101, + 105, + 110, + 100, + 100, + 97, + 116, + 117, + 109, + 34, + 58, + 34, + 50, + 48, + 49, + 56, + 45, + 48, + 52, + 45, + 50, + 54, + 34, + 44, + 34, + 101, + 105, + 110, + 100, + 100, + 97, + 116, + 117, + 109, + 71, + 101, + 112, + 108, + 97, + 110, + 100, + 34, + 58, + 34, + 50, + 48, + 49, + 57, + 45, + 48, + 52, + 45, + 50, + 48, + 34, + 44, + 34, + 117, + 105, + 116, + 101, + 114, + 108, + 105, + 106, + 107, + 101, + 69, + 105, + 110, + 100, + 100, + 97, + 116, + 117, + 109, + 65, + 102, + 100, + 111, + 101, + 110, + 105, + 110, + 103, + 34, + 58, + 34, + 50, + 48, + 49, + 57, + 45, + 48, + 52, + 45, + 48, + 57, + 34, + 44, + 34, + 118, + 101, + 114, + 116, + 114, + 111, + 117, + 119, + 101, + 108, + 105, + 106, + 107, + 104, + 101, + 105, + 100, + 97, + 97, + 110, + 100, + 117, + 105, + 100, + 105, + 110, + 103, + 34, + 58, + 34, + 103, + 101, + 104, + 101, + 105, + 109, + 34, + 44, + 34, + 118, + 101, + 114, + 97, + 110, + 116, + 119, + 111, + 111, + 114, + 100, + 101, + 108, + 105, + 106, + 107, + 101, + 79, + 114, + 103, + 97, + 110, + 105, + 115, + 97, + 116, + 105, + 101, + 34, + 58, + 34, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 34, + 44, + 34, + 97, + 114, + 99, + 104, + 105, + 101, + 102, + 110, + 111, + 109, + 105, + 110, + 97, + 116, + 105, + 101, + 34, + 58, + 34, + 118, + 101, + 114, + 110, + 105, + 101, + 116, + 105, + 103, + 101, + 110, + 34, + 44, + 34, + 97, + 114, + 99, + 104, + 105, + 101, + 102, + 97, + 99, + 116, + 105, + 101, + 100, + 97, + 116, + 117, + 109, + 34, + 58, + 34, + 50, + 48, + 50, + 51, + 45, + 49, + 49, + 45, + 49, + 49, + 34, + 44, + 34, + 97, + 114, + 99, + 104, + 105, + 101, + 102, + 115, + 116, + 97, + 116, + 117, + 115, + 34, + 58, + 34, + 110, + 111, + 103, + 95, + 116, + 101, + 95, + 97, + 114, + 99, + 104, + 105, + 118, + 101, + 114, + 101, + 110, + 34, + 44, + 34, + 98, + 101, + 116, + 97, + 108, + 105, + 110, + 103, + 115, + 105, + 110, + 100, + 105, + 99, + 97, + 116, + 105, + 101, + 34, + 58, + 34, + 103, + 101, + 104, + 101, + 101, + 108, + 34, + 44, + 34, + 108, + 97, + 97, + 116, + 115, + 116, + 101, + 66, + 101, + 116, + 97, + 97, + 108, + 100, + 97, + 116, + 117, + 109, + 34, + 58, + 34, + 50, + 48, + 49, + 57, + 45, + 48, + 49, + 45, + 48, + 49, + 34, + 44, + 34, + 104, + 111, + 111, + 102, + 100, + 122, + 97, + 97, + 107, + 34, + 58, + 110, + 117, + 108, + 108, + 125 + ] + }, + "cookie": [], + "responseTime": 118, + "responseSize": 830 + }, + "id": "87953ab5-d7c0-4689-aedf-71aef4f31447", + "assertions": [ + { + "assertion": "zrc-021d afleidingswijze ingangsdatum besluit", + "skipped": false + } + ] + }, + { + "cursor": { + "ref": "5a34702b-6dd8-450c-9f0d-59269a5431d5", + "length": 313, + "cycles": 1, + "position": 245, + "iteration": 0, + "httpRequestId": "f4ea045a-a46f-45d6-aee5-c63cba6f808c" + }, + "item": { + "id": "895e091f-89a0-429c-ae78-8ff76a42d6c5", + "name": "Create concept Besluittype", + "request": { + "url": { + "path": [ + "besluittypen" + ], + "host": [ + "{{ztc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n \"catalogus\": \"{{catalogus_url}}\",\n \"omschrijving\": \"{{random_omschrijving}}\",\n \"zaaktypen\": [],\n\t\"publicatieIndicatie\": false,\n\t\"informatieobjecttypen\": [],\n\t\"beginGeldigheid\": \"2019-01-01\"\n}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "1b703ce7-22ff-4d8f-81c3-a9fe57f94e72", + "type": "text/javascript", + "packages": {}, + "exec": [ + "pm.environment.set(\"besluittype_omschrijving\", pm.response.json().omschrijving);\r", + "pm.environment.set(\"concept_besluittype_url\", pm.response.json().url);" + ], + "_lastExecutionId": "02d70faf-d14e-4911-b58f-7de9818f6674" + } + }, + { + "listen": "prerequest", + "script": { + "id": "e295fb2e-5413-4f80-be4d-841ae4a06c76", + "type": "text/javascript", + "packages": {}, + "exec": [ + "var uuid = require('uuid');\r", + "var myUUID = uuid.v4(); \r", + "pm.environment.set(\"random_omschrijving\",myUUID);" + ], + "_lastExecutionId": "736ff304-a643-4a7a-b8d1-8692dd1927ff" + } + } + ] + }, + "request": { + "url": { + "protocol": "http", + "port": "8080", + "path": [ + "index.php", + "apps", + "procest", + "api", + "zgw", + "catalogi", + "v1", + "besluittypen" + ], + "host": [ + "localhost" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Authorization", + "value": "Bearer eyJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJwcm9jZXN0LWFkbWluIiwiY2xpZW50X2lkIjoicHJvY2VzdC1hZG1pbiIsImlhdCI6IjE3NzMxNDUyMDMiLCJ1c2VyX2lkIjoicHJvY2VzdC1hZG1pbiIsInVzZXJfcmVwcmVzZW50YXRpb24iOiIifQ.sTJamKEyslhHrLIUtH8aNO_KkxNklUwdF6CsZVuK7eU", + "system": true + }, + { + "key": "User-Agent", + "value": "PostmanRuntime/7.39.1", + "system": true + }, + { + "key": "Accept", + "value": "*/*", + "system": true + }, + { + "key": "Cache-Control", + "value": "no-cache", + "system": true + }, + { + "key": "Postman-Token", + "value": "72dea8e9-c5d7-4ede-a6e3-12ec6222a851", + "system": true + }, + { + "key": "Host", + "value": "localhost:8080", + "system": true + }, + { + "key": "Accept-Encoding", + "value": "gzip, deflate, br", + "system": true + }, + { + "key": "Connection", + "value": "keep-alive", + "system": true + }, + { + "key": "Content-Length", + "value": "313", + "system": true + }, + { + "key": "Cookie", + "value": "ocvp3112b4wg=b4132cc1e88d73db5463a375efc198fe; oc_sessionPassphrase=LBNdKxRzA0iqoULIruNxDDh2BK3O%2BrCIU8aUmiUcOFvy5Xw1YfjwQNlmBW2IkGwJYtxXh9%2BwDN6vYuGNX07tXzkBtjQJUWTGdzf8AIOUIVxVx5DfyWAQZ7nmYmQv6XSE; nc_sameSiteCookielax=true; nc_sameSiteCookiestrict=true", + "system": true + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n \"catalogus\": \"http://localhost:8080/index.php/apps/procest/api/zgw/catalogi/v1/catalogussen/5057408f-fd76-469e-8646-bcc4ba2efa8d\",\n \"omschrijving\": \"d9dade73-eadc-4d1d-a506-04dee26919ca\",\n \"zaaktypen\": [],\n\t\"publicatieIndicatie\": false,\n\t\"informatieobjecttypen\": [],\n\t\"beginGeldigheid\": \"2019-01-01\"\n}" + }, + "auth": { + "type": "jwt", + "jwt": [ + { + "type": "string", + "value": "{\r\n \"iss\": \"procest-admin\",\r\n \"client_id\": \"procest-admin\",\r\n \"iat\": \"1773145203\",\r\n \"user_id\": \"procest-admin\",\r\n \"user_representation\": \"\"\r\n}", + "key": "payload" + }, + { + "type": "string", + "value": "procest-admin-secret-key-for-testing", + "key": "secret" + }, + { + "type": "string", + "value": "HS256", + "key": "algorithm" + }, + { + "type": "boolean", + "value": false, + "key": "isSecretBase64Encoded" + }, + { + "type": "string", + "value": "header", + "key": "addTokenTo" + }, + { + "type": "string", + "value": "Bearer", + "key": "headerPrefix" + }, + { + "type": "string", + "value": "token", + "key": "queryParamKey" + }, + { + "type": "string", + "value": "{}", + "key": "header" + } + ] + } + }, + "response": { + "id": "7f8bac1e-c2a5-4135-b73f-84e9958a987d", + "status": "Created", + "code": 201, + "header": [ + { + "key": "Date", + "value": "Tue, 10 Mar 2026 12:20:02 GMT" + }, + { + "key": "Server", + "value": "Apache/2.4.66 (Debian)" + }, + { + "key": "X-Content-Type-Options", + "value": "nosniff" + }, + { + "key": "X-Frame-Options", + "value": "SAMEORIGIN" + }, + { + "key": "X-Permitted-Cross-Domain-Policies", + "value": "none" + }, + { + "key": "X-Robots-Tag", + "value": "noindex, nofollow" + }, + { + "key": "Referrer-Policy", + "value": "no-referrer" + }, + { + "key": "X-Powered-By", + "value": "PHP/8.3.30" + }, + { + "key": "Content-Security-Policy", + "value": "default-src 'none';base-uri 'none';manifest-src 'self';frame-ancestors 'none'" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=b4132cc1e88d73db5463a375efc198fe; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=b4132cc1e88d73db5463a375efc198fe; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=b4132cc1e88d73db5463a375efc198fe; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=b4132cc1e88d73db5463a375efc198fe; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=b4132cc1e88d73db5463a375efc198fe; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=4b0d0b2c889df6f4e65ad16223fd4bae; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=4b0d0b2c889df6f4e65ad16223fd4bae; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=4b0d0b2c889df6f4e65ad16223fd4bae; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=4b0d0b2c889df6f4e65ad16223fd4bae; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=4b0d0b2c889df6f4e65ad16223fd4bae; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "X-Request-Id", + "value": "9wB75aanBkNNoyHamaZh" + }, + { + "key": "Cache-Control", + "value": "no-cache, no-store, must-revalidate" + }, + { + "key": "Feature-Policy", + "value": "autoplay 'none';camera 'none';fullscreen 'none';geolocation 'none';microphone 'none';payment 'none'" + }, + { + "key": "X-User-Id", + "value": "admin" + }, + { + "key": "Content-Length", + "value": "539" + }, + { + "key": "Keep-Alive", + "value": "timeout=5, max=87" + }, + { + "key": "Connection", + "value": "Keep-Alive" + }, + { + "key": "Content-Type", + "value": "application/json; charset=utf-8" + } + ], + "stream": { + "type": "Buffer", + "data": [ + 123, + 34, + 117, + 114, + 108, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 105, + 92, + 47, + 118, + 49, + 92, + 47, + 98, + 101, + 115, + 108, + 117, + 105, + 116, + 116, + 121, + 112, + 101, + 110, + 92, + 47, + 99, + 97, + 56, + 48, + 102, + 100, + 100, + 57, + 45, + 101, + 49, + 50, + 57, + 45, + 52, + 50, + 48, + 49, + 45, + 98, + 99, + 97, + 57, + 45, + 48, + 100, + 54, + 99, + 97, + 53, + 51, + 53, + 101, + 54, + 99, + 55, + 34, + 44, + 34, + 117, + 117, + 105, + 100, + 34, + 58, + 34, + 99, + 97, + 56, + 48, + 102, + 100, + 100, + 57, + 45, + 101, + 49, + 50, + 57, + 45, + 52, + 50, + 48, + 49, + 45, + 98, + 99, + 97, + 57, + 45, + 48, + 100, + 54, + 99, + 97, + 53, + 51, + 53, + 101, + 54, + 99, + 55, + 34, + 44, + 34, + 111, + 109, + 115, + 99, + 104, + 114, + 105, + 106, + 118, + 105, + 110, + 103, + 34, + 58, + 34, + 100, + 57, + 100, + 97, + 100, + 101, + 55, + 51, + 45, + 101, + 97, + 100, + 99, + 45, + 52, + 100, + 49, + 100, + 45, + 97, + 53, + 48, + 54, + 45, + 48, + 52, + 100, + 101, + 101, + 50, + 54, + 57, + 49, + 57, + 99, + 97, + 34, + 44, + 34, + 116, + 111, + 101, + 108, + 105, + 99, + 104, + 116, + 105, + 110, + 103, + 34, + 58, + 34, + 34, + 44, + 34, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 117, + 115, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 105, + 92, + 47, + 118, + 49, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 117, + 115, + 115, + 101, + 110, + 92, + 47, + 53, + 48, + 53, + 55, + 52, + 48, + 56, + 102, + 45, + 102, + 100, + 55, + 54, + 45, + 52, + 54, + 57, + 101, + 45, + 56, + 54, + 52, + 54, + 45, + 98, + 99, + 99, + 52, + 98, + 97, + 50, + 101, + 102, + 97, + 56, + 100, + 34, + 44, + 34, + 122, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 99, + 111, + 110, + 99, + 101, + 112, + 116, + 34, + 58, + 116, + 114, + 117, + 101, + 44, + 34, + 112, + 117, + 98, + 108, + 105, + 99, + 97, + 116, + 105, + 101, + 73, + 110, + 100, + 105, + 99, + 97, + 116, + 105, + 101, + 34, + 58, + 102, + 97, + 108, + 115, + 101, + 44, + 34, + 105, + 110, + 102, + 111, + 114, + 109, + 97, + 116, + 105, + 101, + 111, + 98, + 106, + 101, + 99, + 116, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 98, + 101, + 103, + 105, + 110, + 71, + 101, + 108, + 100, + 105, + 103, + 104, + 101, + 105, + 100, + 34, + 58, + 34, + 50, + 48, + 49, + 57, + 45, + 48, + 49, + 45, + 48, + 49, + 34, + 44, + 34, + 101, + 105, + 110, + 100, + 101, + 71, + 101, + 108, + 100, + 105, + 103, + 104, + 101, + 105, + 100, + 34, + 58, + 34, + 50, + 48, + 50, + 54, + 45, + 48, + 51, + 45, + 49, + 48, + 34, + 125 + ] + }, + "cookie": [], + "responseTime": 183, + "responseSize": 539 + }, + "id": "895e091f-89a0-429c-ae78-8ff76a42d6c5" + }, + { + "cursor": { + "ref": "4f4aa5b9-ea37-462f-ac61-c209bffe42c9", + "length": 313, + "cycles": 1, + "position": 246, + "iteration": 0, + "httpRequestId": "5b63bf93-639c-4de1-9719-6f6e840b3054" + }, + "item": { + "id": "55891476-ec46-4fa5-b859-fff7f56cc46c", + "name": "Create Zaaktype procestermijn vast_te_leggen_datum", + "request": { + "url": { + "path": [ + "zaaktypen" + ], + "host": [ + "{{ztc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\r\n\r\n \"identificatie\": \"{{random_identificatie}}\",\r\n \"omschrijving\": \"Zaaktype for archiving tests vast_te_leggen_datum\",\r\n \"omschrijvingGeneriek\": null,\r\n \"vertrouwelijkheidaanduiding\": \"openbaar\",\r\n \"doel\": \"test doel\",\r\n \"aanleiding\": \"test aanleiding\",\r\n \"toelichting\": null,\r\n \"indicatieInternOfExtern\": \"extern\",\r\n \"handelingInitiator\": \"indienen\",\r\n \"onderwerp\": \"openbare ruimte\",\r\n \"handelingBehandelaar\": \"behandelen\",\r\n \"doorlooptijd\": \"P10D\",\r\n \"servicenorm\": null,\r\n \"opschortingEnAanhoudingMogelijk\": false,\r\n \"verlengingMogelijk\": true,\r\n \"verlengingstermijn\": \"P5D\",\r\n \"trefwoorden\": [],\r\n \"publicatieIndicatie\": false,\r\n \"publicatietekst\": null,\r\n \"verantwoordingsrelatie\": [],\r\n \"productenOfDiensten\": [\r\n \"https://ref.tst.vng.cloud/standaard/\"\r\n ],\r\n \"selectielijstProcestype\": \"{{procestype_procestermijn_vast_te_leggen_datum_url}}\",\r\n \"referentieproces\": {\r\n \"naam\": \"test\",\r\n \"link\": \"\"\r\n },\r\n \"verantwoordelijke\": \"X\",\r\n \"zaakobjecttypen\": [],\r\n \"broncatalogus\": null,\r\n \"bronzaaktype\": null,\r\n \"catalogus\": \"{{catalogus_url}}\",\r\n \"statustypen\": [],\r\n \"resultaattypen\": [],\r\n \"eigenschappen\": [],\r\n \"informatieobjecttypen\": [],\r\n \"roltypen\": [],\r\n \"besluittypen\": [\"{{besluittype_omschrijving}}\"],\r\n \"deelzaaktypen\": [\r\n \r\n ],\r\n \"gerelateerdeZaaktypen\": [],\r\n \"concept\": true,\r\n \"beginGeldigheid\": \"2019-01-01\",\r\n \"eindeGeldigheid\": null,\r\n \"beginObject\": null,\r\n \"eindeObject\": null,\r\n \"versiedatum\": \"2019-01-01\"\r\n}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "4b12a9ee-cb6d-4952-aba1-6e8ac287649a", + "type": "text/javascript", + "packages": {}, + "exec": [ + "var res = pm.response.json();", + "pm.environment.set(\"zaaktype_procestermijn_vast_te_leggen_datum_url\", res.url);" + ], + "_lastExecutionId": "65f1a1de-ccab-47a4-8e4c-057ce373373d" + } + }, + { + "listen": "prerequest", + "script": { + "id": "20bb7b76-a80a-41ab-96a6-b3674a4a9bb2", + "type": "text/javascript", + "packages": {}, + "exec": [ + "var uuid = require('uuid');", + "var myUUID = uuid.v4(); ", + "pm.environment.set(\"random_identificatie\",myUUID);", + "", + "", + "" + ], + "_lastExecutionId": "dd35e31c-eb96-4782-a4fa-1706f26e5038" + } + } + ] + }, + "request": { + "url": { + "protocol": "http", + "port": "8080", + "path": [ + "index.php", + "apps", + "procest", + "api", + "zgw", + "catalogi", + "v1", + "zaaktypen" + ], + "host": [ + "localhost" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Authorization", + "value": "Bearer eyJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJwcm9jZXN0LWFkbWluIiwiY2xpZW50X2lkIjoicHJvY2VzdC1hZG1pbiIsImlhdCI6IjE3NzMxNDUyMDMiLCJ1c2VyX2lkIjoicHJvY2VzdC1hZG1pbiIsInVzZXJfcmVwcmVzZW50YXRpb24iOiIifQ.sTJamKEyslhHrLIUtH8aNO_KkxNklUwdF6CsZVuK7eU", + "system": true + }, + { + "key": "User-Agent", + "value": "PostmanRuntime/7.39.1", + "system": true + }, + { + "key": "Accept", + "value": "*/*", + "system": true + }, + { + "key": "Cache-Control", + "value": "no-cache", + "system": true + }, + { + "key": "Postman-Token", + "value": "17a7866b-7aa7-4c59-acc6-f01b95496e98", + "system": true + }, + { + "key": "Host", + "value": "localhost:8080", + "system": true + }, + { + "key": "Accept-Encoding", + "value": "gzip, deflate, br", + "system": true + }, + { + "key": "Connection", + "value": "keep-alive", + "system": true + }, + { + "key": "Content-Length", + "value": "1756", + "system": true + }, + { + "key": "Cookie", + "value": "ocvp3112b4wg=4b0d0b2c889df6f4e65ad16223fd4bae; oc_sessionPassphrase=LBNdKxRzA0iqoULIruNxDDh2BK3O%2BrCIU8aUmiUcOFvy5Xw1YfjwQNlmBW2IkGwJYtxXh9%2BwDN6vYuGNX07tXzkBtjQJUWTGdzf8AIOUIVxVx5DfyWAQZ7nmYmQv6XSE; nc_sameSiteCookielax=true; nc_sameSiteCookiestrict=true", + "system": true + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\r\n\r\n \"identificatie\": \"554870ef-4fef-4aa1-976d-65c835e40c43\",\r\n \"omschrijving\": \"Zaaktype for archiving tests vast_te_leggen_datum\",\r\n \"omschrijvingGeneriek\": null,\r\n \"vertrouwelijkheidaanduiding\": \"openbaar\",\r\n \"doel\": \"test doel\",\r\n \"aanleiding\": \"test aanleiding\",\r\n \"toelichting\": null,\r\n \"indicatieInternOfExtern\": \"extern\",\r\n \"handelingInitiator\": \"indienen\",\r\n \"onderwerp\": \"openbare ruimte\",\r\n \"handelingBehandelaar\": \"behandelen\",\r\n \"doorlooptijd\": \"P10D\",\r\n \"servicenorm\": null,\r\n \"opschortingEnAanhoudingMogelijk\": false,\r\n \"verlengingMogelijk\": true,\r\n \"verlengingstermijn\": \"P5D\",\r\n \"trefwoorden\": [],\r\n \"publicatieIndicatie\": false,\r\n \"publicatietekst\": null,\r\n \"verantwoordingsrelatie\": [],\r\n \"productenOfDiensten\": [\r\n \"https://ref.tst.vng.cloud/standaard/\"\r\n ],\r\n \"selectielijstProcestype\": \"https://selectielijst.openzaak.nl/api/v1/procestypen/838e405a-9b12-43c4-a985-d7a7490d422e\",\r\n \"referentieproces\": {\r\n \"naam\": \"test\",\r\n \"link\": \"\"\r\n },\r\n \"verantwoordelijke\": \"X\",\r\n \"zaakobjecttypen\": [],\r\n \"broncatalogus\": null,\r\n \"bronzaaktype\": null,\r\n \"catalogus\": \"http://localhost:8080/index.php/apps/procest/api/zgw/catalogi/v1/catalogussen/5057408f-fd76-469e-8646-bcc4ba2efa8d\",\r\n \"statustypen\": [],\r\n \"resultaattypen\": [],\r\n \"eigenschappen\": [],\r\n \"informatieobjecttypen\": [],\r\n \"roltypen\": [],\r\n \"besluittypen\": [\"d9dade73-eadc-4d1d-a506-04dee26919ca\"],\r\n \"deelzaaktypen\": [\r\n \r\n ],\r\n \"gerelateerdeZaaktypen\": [],\r\n \"concept\": true,\r\n \"beginGeldigheid\": \"2019-01-01\",\r\n \"eindeGeldigheid\": null,\r\n \"beginObject\": null,\r\n \"eindeObject\": null,\r\n \"versiedatum\": \"2019-01-01\"\r\n}" + }, + "auth": { + "type": "jwt", + "jwt": [ + { + "type": "string", + "value": "{\r\n \"iss\": \"procest-admin\",\r\n \"client_id\": \"procest-admin\",\r\n \"iat\": \"1773145203\",\r\n \"user_id\": \"procest-admin\",\r\n \"user_representation\": \"\"\r\n}", + "key": "payload" + }, + { + "type": "string", + "value": "procest-admin-secret-key-for-testing", + "key": "secret" + }, + { + "type": "string", + "value": "HS256", + "key": "algorithm" + }, + { + "type": "boolean", + "value": false, + "key": "isSecretBase64Encoded" + }, + { + "type": "string", + "value": "header", + "key": "addTokenTo" + }, + { + "type": "string", + "value": "Bearer", + "key": "headerPrefix" + }, + { + "type": "string", + "value": "token", + "key": "queryParamKey" + }, + { + "type": "string", + "value": "{}", + "key": "header" + } + ] + } + }, + "response": { + "id": "bbf665ef-c0f7-452f-89c3-88d9ca866750", + "status": "Created", + "code": 201, + "header": [ + { + "key": "Date", + "value": "Tue, 10 Mar 2026 12:20:03 GMT" + }, + { + "key": "Server", + "value": "Apache/2.4.66 (Debian)" + }, + { + "key": "X-Content-Type-Options", + "value": "nosniff" + }, + { + "key": "X-Frame-Options", + "value": "SAMEORIGIN" + }, + { + "key": "X-Permitted-Cross-Domain-Policies", + "value": "none" + }, + { + "key": "X-Robots-Tag", + "value": "noindex, nofollow" + }, + { + "key": "Referrer-Policy", + "value": "no-referrer" + }, + { + "key": "X-Powered-By", + "value": "PHP/8.3.30" + }, + { + "key": "Content-Security-Policy", + "value": "default-src 'none';base-uri 'none';manifest-src 'self';frame-ancestors 'none'" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=4b0d0b2c889df6f4e65ad16223fd4bae; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=4b0d0b2c889df6f4e65ad16223fd4bae; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=4b0d0b2c889df6f4e65ad16223fd4bae; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=4b0d0b2c889df6f4e65ad16223fd4bae; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=4b0d0b2c889df6f4e65ad16223fd4bae; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=1a262dfec1a7d9e76ed2d70b02a0eec9; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=1a262dfec1a7d9e76ed2d70b02a0eec9; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=1a262dfec1a7d9e76ed2d70b02a0eec9; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=1a262dfec1a7d9e76ed2d70b02a0eec9; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=1a262dfec1a7d9e76ed2d70b02a0eec9; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "X-Request-Id", + "value": "NRtAzpQt1xHjbUBZiaTm" + }, + { + "key": "Cache-Control", + "value": "no-cache, no-store, must-revalidate" + }, + { + "key": "Feature-Policy", + "value": "autoplay 'none';camera 'none';fullscreen 'none';geolocation 'none';microphone 'none';payment 'none'" + }, + { + "key": "X-User-Id", + "value": "admin" + }, + { + "key": "Content-Length", + "value": "1375" + }, + { + "key": "Keep-Alive", + "value": "timeout=5, max=86" + }, + { + "key": "Connection", + "value": "Keep-Alive" + }, + { + "key": "Content-Type", + "value": "application/json; charset=utf-8" + } + ], + "stream": { + "type": "Buffer", + "data": [ + 123, + 34, + 117, + 114, + 108, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 105, + 92, + 47, + 118, + 49, + 92, + 47, + 122, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 110, + 92, + 47, + 54, + 52, + 49, + 51, + 49, + 55, + 57, + 52, + 45, + 52, + 55, + 54, + 97, + 45, + 52, + 50, + 98, + 56, + 45, + 56, + 102, + 56, + 49, + 45, + 99, + 49, + 100, + 52, + 50, + 55, + 50, + 101, + 56, + 52, + 49, + 56, + 34, + 44, + 34, + 117, + 117, + 105, + 100, + 34, + 58, + 34, + 54, + 52, + 49, + 51, + 49, + 55, + 57, + 52, + 45, + 52, + 55, + 54, + 97, + 45, + 52, + 50, + 98, + 56, + 45, + 56, + 102, + 56, + 49, + 45, + 99, + 49, + 100, + 52, + 50, + 55, + 50, + 101, + 56, + 52, + 49, + 56, + 34, + 44, + 34, + 105, + 100, + 101, + 110, + 116, + 105, + 102, + 105, + 99, + 97, + 116, + 105, + 101, + 34, + 58, + 34, + 53, + 53, + 52, + 56, + 55, + 48, + 101, + 102, + 45, + 52, + 102, + 101, + 102, + 45, + 52, + 97, + 97, + 49, + 45, + 57, + 55, + 54, + 100, + 45, + 54, + 53, + 99, + 56, + 51, + 53, + 101, + 52, + 48, + 99, + 52, + 51, + 34, + 44, + 34, + 111, + 109, + 115, + 99, + 104, + 114, + 105, + 106, + 118, + 105, + 110, + 103, + 34, + 58, + 34, + 90, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 32, + 102, + 111, + 114, + 32, + 97, + 114, + 99, + 104, + 105, + 118, + 105, + 110, + 103, + 32, + 116, + 101, + 115, + 116, + 115, + 32, + 118, + 97, + 115, + 116, + 95, + 116, + 101, + 95, + 108, + 101, + 103, + 103, + 101, + 110, + 95, + 100, + 97, + 116, + 117, + 109, + 34, + 44, + 34, + 111, + 109, + 115, + 99, + 104, + 114, + 105, + 106, + 118, + 105, + 110, + 103, + 71, + 101, + 110, + 101, + 114, + 105, + 101, + 107, + 34, + 58, + 34, + 34, + 44, + 34, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 117, + 115, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 105, + 92, + 47, + 118, + 49, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 117, + 115, + 115, + 101, + 110, + 92, + 47, + 53, + 48, + 53, + 55, + 52, + 48, + 56, + 102, + 45, + 102, + 100, + 55, + 54, + 45, + 52, + 54, + 57, + 101, + 45, + 56, + 54, + 52, + 54, + 45, + 98, + 99, + 99, + 52, + 98, + 97, + 50, + 101, + 102, + 97, + 56, + 100, + 34, + 44, + 34, + 100, + 111, + 101, + 108, + 34, + 58, + 34, + 116, + 101, + 115, + 116, + 32, + 100, + 111, + 101, + 108, + 34, + 44, + 34, + 97, + 97, + 110, + 108, + 101, + 105, + 100, + 105, + 110, + 103, + 34, + 58, + 34, + 116, + 101, + 115, + 116, + 32, + 97, + 97, + 110, + 108, + 101, + 105, + 100, + 105, + 110, + 103, + 34, + 44, + 34, + 111, + 110, + 100, + 101, + 114, + 119, + 101, + 114, + 112, + 34, + 58, + 34, + 111, + 112, + 101, + 110, + 98, + 97, + 114, + 101, + 32, + 114, + 117, + 105, + 109, + 116, + 101, + 34, + 44, + 34, + 100, + 111, + 111, + 114, + 108, + 111, + 111, + 112, + 116, + 105, + 106, + 100, + 34, + 58, + 34, + 80, + 49, + 48, + 68, + 34, + 44, + 34, + 118, + 101, + 114, + 116, + 114, + 111, + 117, + 119, + 101, + 108, + 105, + 106, + 107, + 104, + 101, + 105, + 100, + 97, + 97, + 110, + 100, + 117, + 105, + 100, + 105, + 110, + 103, + 34, + 58, + 34, + 111, + 112, + 101, + 110, + 98, + 97, + 97, + 114, + 34, + 44, + 34, + 99, + 111, + 110, + 99, + 101, + 112, + 116, + 34, + 58, + 116, + 114, + 117, + 101, + 44, + 34, + 98, + 101, + 103, + 105, + 110, + 71, + 101, + 108, + 100, + 105, + 103, + 104, + 101, + 105, + 100, + 34, + 58, + 34, + 50, + 48, + 49, + 57, + 45, + 48, + 49, + 45, + 48, + 49, + 34, + 44, + 34, + 101, + 105, + 110, + 100, + 101, + 71, + 101, + 108, + 100, + 105, + 103, + 104, + 101, + 105, + 100, + 34, + 58, + 34, + 50, + 48, + 50, + 54, + 45, + 48, + 51, + 45, + 49, + 48, + 34, + 44, + 34, + 104, + 97, + 110, + 100, + 101, + 108, + 105, + 110, + 103, + 73, + 110, + 105, + 116, + 105, + 97, + 116, + 111, + 114, + 34, + 58, + 34, + 105, + 110, + 100, + 105, + 101, + 110, + 101, + 110, + 34, + 44, + 34, + 105, + 110, + 100, + 105, + 99, + 97, + 116, + 105, + 101, + 73, + 110, + 116, + 101, + 114, + 110, + 79, + 102, + 69, + 120, + 116, + 101, + 114, + 110, + 34, + 58, + 34, + 101, + 120, + 116, + 101, + 114, + 110, + 34, + 44, + 34, + 104, + 97, + 110, + 100, + 101, + 108, + 105, + 110, + 103, + 66, + 101, + 104, + 97, + 110, + 100, + 101, + 108, + 97, + 97, + 114, + 34, + 58, + 34, + 98, + 101, + 104, + 97, + 110, + 100, + 101, + 108, + 101, + 110, + 34, + 44, + 34, + 111, + 112, + 115, + 99, + 104, + 111, + 114, + 116, + 105, + 110, + 103, + 69, + 110, + 65, + 97, + 110, + 104, + 111, + 117, + 100, + 105, + 110, + 103, + 77, + 111, + 103, + 101, + 108, + 105, + 106, + 107, + 34, + 58, + 102, + 97, + 108, + 115, + 101, + 44, + 34, + 118, + 101, + 114, + 108, + 101, + 110, + 103, + 105, + 110, + 103, + 77, + 111, + 103, + 101, + 108, + 105, + 106, + 107, + 34, + 58, + 116, + 114, + 117, + 101, + 44, + 34, + 118, + 101, + 114, + 108, + 101, + 110, + 103, + 105, + 110, + 103, + 115, + 116, + 101, + 114, + 109, + 105, + 106, + 110, + 34, + 58, + 34, + 80, + 53, + 68, + 34, + 44, + 34, + 112, + 117, + 98, + 108, + 105, + 99, + 97, + 116, + 105, + 101, + 73, + 110, + 100, + 105, + 99, + 97, + 116, + 105, + 101, + 34, + 58, + 102, + 97, + 108, + 115, + 101, + 44, + 34, + 112, + 114, + 111, + 100, + 117, + 99, + 116, + 101, + 110, + 79, + 102, + 68, + 105, + 101, + 110, + 115, + 116, + 101, + 110, + 34, + 58, + 91, + 34, + 104, + 116, + 116, + 112, + 115, + 58, + 92, + 47, + 92, + 47, + 114, + 101, + 102, + 46, + 116, + 115, + 116, + 46, + 118, + 110, + 103, + 46, + 99, + 108, + 111, + 117, + 100, + 92, + 47, + 115, + 116, + 97, + 110, + 100, + 97, + 97, + 114, + 100, + 92, + 47, + 34, + 93, + 44, + 34, + 115, + 101, + 108, + 101, + 99, + 116, + 105, + 101, + 108, + 105, + 106, + 115, + 116, + 80, + 114, + 111, + 99, + 101, + 115, + 116, + 121, + 112, + 101, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 115, + 58, + 92, + 47, + 92, + 47, + 115, + 101, + 108, + 101, + 99, + 116, + 105, + 101, + 108, + 105, + 106, + 115, + 116, + 46, + 111, + 112, + 101, + 110, + 122, + 97, + 97, + 107, + 46, + 110, + 108, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 118, + 49, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 121, + 112, + 101, + 110, + 92, + 47, + 56, + 51, + 56, + 101, + 52, + 48, + 53, + 97, + 45, + 57, + 98, + 49, + 50, + 45, + 52, + 51, + 99, + 52, + 45, + 97, + 57, + 56, + 53, + 45, + 100, + 55, + 97, + 55, + 52, + 57, + 48, + 100, + 52, + 50, + 50, + 101, + 34, + 44, + 34, + 114, + 101, + 102, + 101, + 114, + 101, + 110, + 116, + 105, + 101, + 112, + 114, + 111, + 99, + 101, + 115, + 34, + 58, + 123, + 34, + 108, + 105, + 110, + 107, + 34, + 58, + 34, + 34, + 44, + 34, + 110, + 97, + 97, + 109, + 34, + 58, + 34, + 116, + 101, + 115, + 116, + 34, + 125, + 44, + 34, + 118, + 101, + 114, + 97, + 110, + 116, + 119, + 111, + 111, + 114, + 100, + 101, + 108, + 105, + 106, + 107, + 101, + 34, + 58, + 34, + 88, + 34, + 44, + 34, + 103, + 101, + 114, + 101, + 108, + 97, + 116, + 101, + 101, + 114, + 100, + 101, + 90, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 98, + 101, + 115, + 108, + 117, + 105, + 116, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 105, + 110, + 102, + 111, + 114, + 109, + 97, + 116, + 105, + 101, + 111, + 98, + 106, + 101, + 99, + 116, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 100, + 101, + 101, + 108, + 122, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 116, + 111, + 101, + 108, + 105, + 99, + 104, + 116, + 105, + 110, + 103, + 34, + 58, + 34, + 34, + 44, + 34, + 118, + 101, + 114, + 115, + 105, + 101, + 100, + 97, + 116, + 117, + 109, + 34, + 58, + 34, + 50, + 48, + 49, + 57, + 45, + 48, + 49, + 45, + 48, + 49, + 34, + 44, + 34, + 101, + 105, + 103, + 101, + 110, + 115, + 99, + 104, + 97, + 112, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 115, + 116, + 97, + 116, + 117, + 115, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 114, + 101, + 115, + 117, + 108, + 116, + 97, + 97, + 116, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 114, + 111, + 108, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 125 + ] + }, + "cookie": [], + "responseTime": 441, + "responseSize": 1375 + }, + "id": "55891476-ec46-4fa5-b859-fff7f56cc46c" + }, + { + "cursor": { + "ref": "7ec54a7c-3aad-4b9f-bd78-b0c412d70539", + "length": 313, + "cycles": 1, + "position": 247, + "iteration": 0, + "httpRequestId": "8a20ed06-b29e-41d8-abbc-19ce1915a3dc" + }, + "item": { + "id": "50dd2829-c9f8-402e-bf5a-476964e97f16", + "name": "Create Resultaattype afleidingswijze vervaldatum_besluit", + "request": { + "url": { + "path": [ + "resultaattypen" + ], + "host": [ + "{{ztc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n\t\"zaaktype\": \"{{zaaktype_procestermijn_vast_te_leggen_datum_url}}\",\n\t\"omschrijving\": \"TEST\",\n\t\"resultaattypeomschrijving\": \"https://referentielijsten.roxit.nl/api/v1/resultaattypeomschrijvingen/bae947e7-02b5-44f9-ab76-28c7a0ed01c0\",\n\t\"selectielijstklasse\": \"{{selectielijstklasse_procestermijn_vast_te_leggen_datum_url}}\",\n \"besluittypen\": [],\n\t\"brondatumArchiefprocedure\": {\n\t\t\"afleidingswijze\": \"vervaldatum_besluit\",\n\t\t\"procestermijn\": null,\n\t\t\"datumkenmerk\": \"\",\n\t\t\"einddatumBekend\": true,\n\t\t\"objecttype\": \"\",\n\t\t\"registratie\": \"\"\n\t}\n}" + } + }, + "response": [], + "event": [ + { + "listen": "prerequest", + "script": { + "id": "c180663e-9b61-42b6-8aa8-bd6f1311f1fe", + "type": "text/javascript", + "packages": {}, + "exec": [ + "" + ], + "_lastExecutionId": "b4cd7e48-cd4d-49c4-bcb2-341e94bab14a" + } + }, + { + "listen": "test", + "script": { + "id": "1207b969-bfe4-429b-8b69-2c6ecf8f6c04", + "type": "text/javascript", + "packages": {}, + "exec": [ + "var jsonData = pm.response.json();", + "", + "pm.environment.set(\"current_resultaattype\", jsonData.url);", + "pm.environment.set(\"resultaattype_archiefnominatie\", jsonData.archiefnominatie);", + "pm.environment.set(\"resultaattype_archiefactietermijn\", jsonData.archiefactietermijn);", + "pm.environment.set(\"resultaattype_brondatumArchiefprocedure\", jsonData.brondatumArchiefprocedure);" + ], + "_lastExecutionId": "41823a04-d090-418b-ba94-21413f3dc121" + } + } + ] + }, + "request": { + "url": { + "protocol": "http", + "port": "8080", + "path": [ + "index.php", + "apps", + "procest", + "api", + "zgw", + "catalogi", + "v1", + "resultaattypen" + ], + "host": [ + "localhost" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Authorization", + "value": "Bearer eyJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJwcm9jZXN0LWFkbWluIiwiY2xpZW50X2lkIjoicHJvY2VzdC1hZG1pbiIsImlhdCI6IjE3NzMxNDUyMDQiLCJ1c2VyX2lkIjoicHJvY2VzdC1hZG1pbiIsInVzZXJfcmVwcmVzZW50YXRpb24iOiIifQ._FM4qRV3vB2OgdnekSom1cgZ21KEEihLVRqbegy8uGI", + "system": true + }, + { + "key": "User-Agent", + "value": "PostmanRuntime/7.39.1", + "system": true + }, + { + "key": "Accept", + "value": "*/*", + "system": true + }, + { + "key": "Cache-Control", + "value": "no-cache", + "system": true + }, + { + "key": "Postman-Token", + "value": "49215b5e-d56a-4012-9107-4fa5cea856f4", + "system": true + }, + { + "key": "Host", + "value": "localhost:8080", + "system": true + }, + { + "key": "Accept-Encoding", + "value": "gzip, deflate, br", + "system": true + }, + { + "key": "Connection", + "value": "keep-alive", + "system": true + }, + { + "key": "Content-Length", + "value": "629", + "system": true + }, + { + "key": "Cookie", + "value": "ocvp3112b4wg=1a262dfec1a7d9e76ed2d70b02a0eec9; oc_sessionPassphrase=LBNdKxRzA0iqoULIruNxDDh2BK3O%2BrCIU8aUmiUcOFvy5Xw1YfjwQNlmBW2IkGwJYtxXh9%2BwDN6vYuGNX07tXzkBtjQJUWTGdzf8AIOUIVxVx5DfyWAQZ7nmYmQv6XSE; nc_sameSiteCookielax=true; nc_sameSiteCookiestrict=true", + "system": true + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n\t\"zaaktype\": \"http://localhost:8080/index.php/apps/procest/api/zgw/catalogi/v1/zaaktypen/64131794-476a-42b8-8f81-c1d4272e8418\",\n\t\"omschrijving\": \"TEST\",\n\t\"resultaattypeomschrijving\": \"https://referentielijsten.roxit.nl/api/v1/resultaattypeomschrijvingen/bae947e7-02b5-44f9-ab76-28c7a0ed01c0\",\n\t\"selectielijstklasse\": \"https://selectielijst.openzaak.nl/api/v1/resultaten/80ffe8cb-e430-4ae9-a48b-34a9ef21e3cd\",\n \"besluittypen\": [],\n\t\"brondatumArchiefprocedure\": {\n\t\t\"afleidingswijze\": \"vervaldatum_besluit\",\n\t\t\"procestermijn\": null,\n\t\t\"datumkenmerk\": \"\",\n\t\t\"einddatumBekend\": true,\n\t\t\"objecttype\": \"\",\n\t\t\"registratie\": \"\"\n\t}\n}" + }, + "auth": { + "type": "jwt", + "jwt": [ + { + "type": "string", + "value": "{\r\n \"iss\": \"procest-admin\",\r\n \"client_id\": \"procest-admin\",\r\n \"iat\": \"1773145204\",\r\n \"user_id\": \"procest-admin\",\r\n \"user_representation\": \"\"\r\n}", + "key": "payload" + }, + { + "type": "string", + "value": "procest-admin-secret-key-for-testing", + "key": "secret" + }, + { + "type": "string", + "value": "HS256", + "key": "algorithm" + }, + { + "type": "boolean", + "value": false, + "key": "isSecretBase64Encoded" + }, + { + "type": "string", + "value": "header", + "key": "addTokenTo" + }, + { + "type": "string", + "value": "Bearer", + "key": "headerPrefix" + }, + { + "type": "string", + "value": "token", + "key": "queryParamKey" + }, + { + "type": "string", + "value": "{}", + "key": "header" + } + ] + } + }, + "response": { + "id": "8a1a3893-9ddb-4fbc-8056-b15676a1a273", + "status": "Created", + "code": 201, + "header": [ + { + "key": "Date", + "value": "Tue, 10 Mar 2026 12:20:03 GMT" + }, + { + "key": "Server", + "value": "Apache/2.4.66 (Debian)" + }, + { + "key": "X-Content-Type-Options", + "value": "nosniff" + }, + { + "key": "X-Frame-Options", + "value": "SAMEORIGIN" + }, + { + "key": "X-Permitted-Cross-Domain-Policies", + "value": "none" + }, + { + "key": "X-Robots-Tag", + "value": "noindex, nofollow" + }, + { + "key": "Referrer-Policy", + "value": "no-referrer" + }, + { + "key": "X-Powered-By", + "value": "PHP/8.3.30" + }, + { + "key": "Content-Security-Policy", + "value": "default-src 'none';base-uri 'none';manifest-src 'self';frame-ancestors 'none'" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=1a262dfec1a7d9e76ed2d70b02a0eec9; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=1a262dfec1a7d9e76ed2d70b02a0eec9; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=1a262dfec1a7d9e76ed2d70b02a0eec9; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=1a262dfec1a7d9e76ed2d70b02a0eec9; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=1a262dfec1a7d9e76ed2d70b02a0eec9; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=7c23b8d7e7ad424e661f7ed603d21340; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=7c23b8d7e7ad424e661f7ed603d21340; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=7c23b8d7e7ad424e661f7ed603d21340; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=7c23b8d7e7ad424e661f7ed603d21340; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=7c23b8d7e7ad424e661f7ed603d21340; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "X-Request-Id", + "value": "RoMXdl6VzWLVtPdFji2G" + }, + { + "key": "Cache-Control", + "value": "no-cache, no-store, must-revalidate" + }, + { + "key": "Feature-Policy", + "value": "autoplay 'none';camera 'none';fullscreen 'none';geolocation 'none';microphone 'none';payment 'none'" + }, + { + "key": "X-User-Id", + "value": "admin" + }, + { + "key": "Content-Length", + "value": "761" + }, + { + "key": "Keep-Alive", + "value": "timeout=5, max=85" + }, + { + "key": "Connection", + "value": "Keep-Alive" + }, + { + "key": "Content-Type", + "value": "application/json; charset=utf-8" + } + ], + "stream": { + "type": "Buffer", + "data": [ + 123, + 34, + 117, + 114, + 108, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 105, + 92, + 47, + 118, + 49, + 92, + 47, + 114, + 101, + 115, + 117, + 108, + 116, + 97, + 97, + 116, + 116, + 121, + 112, + 101, + 110, + 92, + 47, + 101, + 102, + 56, + 97, + 99, + 99, + 97, + 54, + 45, + 50, + 54, + 97, + 48, + 45, + 52, + 50, + 53, + 51, + 45, + 97, + 99, + 100, + 56, + 45, + 52, + 53, + 99, + 49, + 50, + 54, + 49, + 48, + 99, + 101, + 48, + 54, + 34, + 44, + 34, + 117, + 117, + 105, + 100, + 34, + 58, + 34, + 101, + 102, + 56, + 97, + 99, + 99, + 97, + 54, + 45, + 50, + 54, + 97, + 48, + 45, + 52, + 50, + 53, + 51, + 45, + 97, + 99, + 100, + 56, + 45, + 52, + 53, + 99, + 49, + 50, + 54, + 49, + 48, + 99, + 101, + 48, + 54, + 34, + 44, + 34, + 111, + 109, + 115, + 99, + 104, + 114, + 105, + 106, + 118, + 105, + 110, + 103, + 34, + 58, + 34, + 84, + 69, + 83, + 84, + 34, + 44, + 34, + 111, + 109, + 115, + 99, + 104, + 114, + 105, + 106, + 118, + 105, + 110, + 103, + 71, + 101, + 110, + 101, + 114, + 105, + 101, + 107, + 34, + 58, + 34, + 65, + 102, + 103, + 101, + 98, + 114, + 111, + 107, + 101, + 110, + 34, + 44, + 34, + 116, + 111, + 101, + 108, + 105, + 99, + 104, + 116, + 105, + 110, + 103, + 34, + 58, + 34, + 34, + 44, + 34, + 122, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 105, + 92, + 47, + 118, + 49, + 92, + 47, + 122, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 110, + 92, + 47, + 54, + 52, + 49, + 51, + 49, + 55, + 57, + 52, + 45, + 52, + 55, + 54, + 97, + 45, + 52, + 50, + 98, + 56, + 45, + 56, + 102, + 56, + 49, + 45, + 99, + 49, + 100, + 52, + 50, + 55, + 50, + 101, + 56, + 52, + 49, + 56, + 34, + 44, + 34, + 97, + 114, + 99, + 104, + 105, + 101, + 102, + 110, + 111, + 109, + 105, + 110, + 97, + 116, + 105, + 101, + 34, + 58, + 34, + 118, + 101, + 114, + 110, + 105, + 101, + 116, + 105, + 103, + 101, + 110, + 34, + 44, + 34, + 97, + 114, + 99, + 104, + 105, + 101, + 102, + 97, + 99, + 116, + 105, + 101, + 116, + 101, + 114, + 109, + 105, + 106, + 110, + 34, + 58, + 34, + 80, + 53, + 89, + 34, + 44, + 34, + 98, + 114, + 111, + 110, + 100, + 97, + 116, + 117, + 109, + 65, + 114, + 99, + 104, + 105, + 101, + 102, + 112, + 114, + 111, + 99, + 101, + 100, + 117, + 114, + 101, + 34, + 58, + 34, + 123, + 92, + 34, + 97, + 102, + 108, + 101, + 105, + 100, + 105, + 110, + 103, + 115, + 119, + 105, + 106, + 122, + 101, + 92, + 34, + 58, + 92, + 34, + 118, + 101, + 114, + 118, + 97, + 108, + 100, + 97, + 116, + 117, + 109, + 95, + 98, + 101, + 115, + 108, + 117, + 105, + 116, + 92, + 34, + 44, + 92, + 34, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 101, + 114, + 109, + 105, + 106, + 110, + 92, + 34, + 58, + 110, + 117, + 108, + 108, + 44, + 92, + 34, + 100, + 97, + 116, + 117, + 109, + 107, + 101, + 110, + 109, + 101, + 114, + 107, + 92, + 34, + 58, + 92, + 34, + 92, + 34, + 44, + 92, + 34, + 101, + 105, + 110, + 100, + 100, + 97, + 116, + 117, + 109, + 66, + 101, + 107, + 101, + 110, + 100, + 92, + 34, + 58, + 116, + 114, + 117, + 101, + 44, + 92, + 34, + 111, + 98, + 106, + 101, + 99, + 116, + 116, + 121, + 112, + 101, + 92, + 34, + 58, + 92, + 34, + 92, + 34, + 44, + 92, + 34, + 114, + 101, + 103, + 105, + 115, + 116, + 114, + 97, + 116, + 105, + 101, + 92, + 34, + 58, + 92, + 34, + 92, + 34, + 125, + 34, + 44, + 34, + 115, + 101, + 108, + 101, + 99, + 116, + 105, + 101, + 108, + 105, + 106, + 115, + 116, + 107, + 108, + 97, + 115, + 115, + 101, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 115, + 58, + 92, + 47, + 92, + 47, + 115, + 101, + 108, + 101, + 99, + 116, + 105, + 101, + 108, + 105, + 106, + 115, + 116, + 46, + 111, + 112, + 101, + 110, + 122, + 97, + 97, + 107, + 46, + 110, + 108, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 118, + 49, + 92, + 47, + 114, + 101, + 115, + 117, + 108, + 116, + 97, + 116, + 101, + 110, + 92, + 47, + 56, + 48, + 102, + 102, + 101, + 56, + 99, + 98, + 45, + 101, + 52, + 51, + 48, + 45, + 52, + 97, + 101, + 57, + 45, + 97, + 52, + 56, + 98, + 45, + 51, + 52, + 97, + 57, + 101, + 102, + 50, + 49, + 101, + 51, + 99, + 100, + 34, + 125 + ] + }, + "cookie": [], + "responseTime": 365, + "responseSize": 761 + }, + "id": "50dd2829-c9f8-402e-bf5a-476964e97f16" + }, + { + "cursor": { + "ref": "14ffa044-db55-4934-987c-5005061743a2", + "length": 313, + "cycles": 1, + "position": 248, + "iteration": 0, + "httpRequestId": "cb0596a6-01df-4181-a7fd-26197d49afd1" + }, + "item": { + "id": "a6acafda-2a60-46df-baca-4b4a1e06a92f", + "name": "Create eind Statustype procestermijn vast_te_leggen_datum", + "request": { + "url": { + "path": [ + "statustypen" + ], + "host": [ + "{{ztc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n\t\"omschrijving\": \"Eind\",\n\t\"zaaktype\": \"{{zaaktype_procestermijn_vast_te_leggen_datum_url}}\",\n\t\"volgnummer\": 2\n}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "0af82795-a00c-430b-a801-151540fc84b6", + "type": "text/javascript", + "exec": [ + "pm.environment.set(\"current_statustype_url\", pm.response.json().url);" + ], + "_lastExecutionId": "c1842862-b10e-485a-bb51-e7b1f3cddee2" + } + } + ] + }, + "request": { + "url": { + "protocol": "http", + "port": "8080", + "path": [ + "index.php", + "apps", + "procest", + "api", + "zgw", + "catalogi", + "v1", + "statustypen" + ], + "host": [ + "localhost" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Authorization", + "value": "Bearer eyJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJwcm9jZXN0LWFkbWluIiwiY2xpZW50X2lkIjoicHJvY2VzdC1hZG1pbiIsImlhdCI6IjE3NzMxNDUyMDQiLCJ1c2VyX2lkIjoicHJvY2VzdC1hZG1pbiIsInVzZXJfcmVwcmVzZW50YXRpb24iOiIifQ._FM4qRV3vB2OgdnekSom1cgZ21KEEihLVRqbegy8uGI", + "system": true + }, + { + "key": "User-Agent", + "value": "PostmanRuntime/7.39.1", + "system": true + }, + { + "key": "Accept", + "value": "*/*", + "system": true + }, + { + "key": "Cache-Control", + "value": "no-cache", + "system": true + }, + { + "key": "Postman-Token", + "value": "7686b065-1cb5-4815-8e77-458e216aa2df", + "system": true + }, + { + "key": "Host", + "value": "localhost:8080", + "system": true + }, + { + "key": "Accept-Encoding", + "value": "gzip, deflate, br", + "system": true + }, + { + "key": "Connection", + "value": "keep-alive", + "system": true + }, + { + "key": "Content-Length", + "value": "173", + "system": true + }, + { + "key": "Cookie", + "value": "ocvp3112b4wg=7c23b8d7e7ad424e661f7ed603d21340; oc_sessionPassphrase=LBNdKxRzA0iqoULIruNxDDh2BK3O%2BrCIU8aUmiUcOFvy5Xw1YfjwQNlmBW2IkGwJYtxXh9%2BwDN6vYuGNX07tXzkBtjQJUWTGdzf8AIOUIVxVx5DfyWAQZ7nmYmQv6XSE; nc_sameSiteCookielax=true; nc_sameSiteCookiestrict=true", + "system": true + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n\t\"omschrijving\": \"Eind\",\n\t\"zaaktype\": \"http://localhost:8080/index.php/apps/procest/api/zgw/catalogi/v1/zaaktypen/64131794-476a-42b8-8f81-c1d4272e8418\",\n\t\"volgnummer\": 2\n}" + }, + "auth": { + "type": "jwt", + "jwt": [ + { + "type": "string", + "value": "{\r\n \"iss\": \"procest-admin\",\r\n \"client_id\": \"procest-admin\",\r\n \"iat\": \"1773145204\",\r\n \"user_id\": \"procest-admin\",\r\n \"user_representation\": \"\"\r\n}", + "key": "payload" + }, + { + "type": "string", + "value": "procest-admin-secret-key-for-testing", + "key": "secret" + }, + { + "type": "string", + "value": "HS256", + "key": "algorithm" + }, + { + "type": "boolean", + "value": false, + "key": "isSecretBase64Encoded" + }, + { + "type": "string", + "value": "header", + "key": "addTokenTo" + }, + { + "type": "string", + "value": "Bearer", + "key": "headerPrefix" + }, + { + "type": "string", + "value": "token", + "key": "queryParamKey" + }, + { + "type": "string", + "value": "{}", + "key": "header" + } + ] + } + }, + "response": { + "id": "76e9c405-fd9d-43c2-af5b-e269fd069093", + "status": "Created", + "code": 201, + "header": [ + { + "key": "Date", + "value": "Tue, 10 Mar 2026 12:20:03 GMT" + }, + { + "key": "Server", + "value": "Apache/2.4.66 (Debian)" + }, + { + "key": "X-Content-Type-Options", + "value": "nosniff" + }, + { + "key": "X-Frame-Options", + "value": "SAMEORIGIN" + }, + { + "key": "X-Permitted-Cross-Domain-Policies", + "value": "none" + }, + { + "key": "X-Robots-Tag", + "value": "noindex, nofollow" + }, + { + "key": "Referrer-Policy", + "value": "no-referrer" + }, + { + "key": "X-Powered-By", + "value": "PHP/8.3.30" + }, + { + "key": "Content-Security-Policy", + "value": "default-src 'none';base-uri 'none';manifest-src 'self';frame-ancestors 'none'" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=7c23b8d7e7ad424e661f7ed603d21340; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=7c23b8d7e7ad424e661f7ed603d21340; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=7c23b8d7e7ad424e661f7ed603d21340; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=7c23b8d7e7ad424e661f7ed603d21340; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=7c23b8d7e7ad424e661f7ed603d21340; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=eac3b3818ef52708d108d41330f1a67a; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=eac3b3818ef52708d108d41330f1a67a; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=eac3b3818ef52708d108d41330f1a67a; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=eac3b3818ef52708d108d41330f1a67a; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=eac3b3818ef52708d108d41330f1a67a; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "X-Request-Id", + "value": "AUOHVewKVkC5aA99Gv7l" + }, + { + "key": "Cache-Control", + "value": "no-cache, no-store, must-revalidate" + }, + { + "key": "Feature-Policy", + "value": "autoplay 'none';camera 'none';fullscreen 'none';geolocation 'none';microphone 'none';payment 'none'" + }, + { + "key": "X-User-Id", + "value": "admin" + }, + { + "key": "Content-Length", + "value": "400" + }, + { + "key": "Keep-Alive", + "value": "timeout=5, max=84" + }, + { + "key": "Connection", + "value": "Keep-Alive" + }, + { + "key": "Content-Type", + "value": "application/json; charset=utf-8" + } + ], + "stream": { + "type": "Buffer", + "data": [ + 123, + 34, + 117, + 114, + 108, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 105, + 92, + 47, + 118, + 49, + 92, + 47, + 115, + 116, + 97, + 116, + 117, + 115, + 116, + 121, + 112, + 101, + 110, + 92, + 47, + 99, + 52, + 51, + 57, + 57, + 101, + 54, + 55, + 45, + 54, + 99, + 100, + 51, + 45, + 52, + 101, + 98, + 51, + 45, + 97, + 99, + 97, + 98, + 45, + 97, + 99, + 49, + 102, + 51, + 101, + 48, + 102, + 53, + 52, + 48, + 51, + 34, + 44, + 34, + 117, + 117, + 105, + 100, + 34, + 58, + 34, + 99, + 52, + 51, + 57, + 57, + 101, + 54, + 55, + 45, + 54, + 99, + 100, + 51, + 45, + 52, + 101, + 98, + 51, + 45, + 97, + 99, + 97, + 98, + 45, + 97, + 99, + 49, + 102, + 51, + 101, + 48, + 102, + 53, + 52, + 48, + 51, + 34, + 44, + 34, + 111, + 109, + 115, + 99, + 104, + 114, + 105, + 106, + 118, + 105, + 110, + 103, + 34, + 58, + 34, + 69, + 105, + 110, + 100, + 34, + 44, + 34, + 111, + 109, + 115, + 99, + 104, + 114, + 105, + 106, + 118, + 105, + 110, + 103, + 71, + 101, + 110, + 101, + 114, + 105, + 101, + 107, + 34, + 58, + 34, + 34, + 44, + 34, + 122, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 105, + 92, + 47, + 118, + 49, + 92, + 47, + 122, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 110, + 92, + 47, + 54, + 52, + 49, + 51, + 49, + 55, + 57, + 52, + 45, + 52, + 55, + 54, + 97, + 45, + 52, + 50, + 98, + 56, + 45, + 56, + 102, + 56, + 49, + 45, + 99, + 49, + 100, + 52, + 50, + 55, + 50, + 101, + 56, + 52, + 49, + 56, + 34, + 44, + 34, + 118, + 111, + 108, + 103, + 110, + 117, + 109, + 109, + 101, + 114, + 34, + 58, + 50, + 44, + 34, + 105, + 115, + 69, + 105, + 110, + 100, + 115, + 116, + 97, + 116, + 117, + 115, + 34, + 58, + 102, + 97, + 108, + 115, + 101, + 125 + ] + }, + "cookie": [], + "responseTime": 165, + "responseSize": 400 + }, + "id": "a6acafda-2a60-46df-baca-4b4a1e06a92f" + }, + { + "cursor": { + "ref": "0a745942-2fc0-4f8e-8fa5-469a79947154", + "length": 313, + "cycles": 1, + "position": 249, + "iteration": 0, + "httpRequestId": "f48584c9-50d2-4279-86e5-6a619df063d4" + }, + "item": { + "id": "c97f3315-f731-4791-b9dc-7c3e408ca2d4", + "name": "Publish concept Besluittype", + "request": { + "url": { + "path": [ + "publish" + ], + "host": [ + "{{concept_besluittype_url}}" + ], + "query": [], + "variable": [] + }, + "method": "POST" + }, + "response": [], + "event": [] + }, + "request": { + "url": { + "protocol": "http", + "port": "8080", + "path": [ + "index.php", + "apps", + "procest", + "api", + "zgw", + "catalogi", + "v1", + "besluittypen", + "ca80fdd9-e129-4201-bca9-0d6ca535e6c7", + "publish" + ], + "host": [ + "localhost" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Authorization", + "value": "Bearer eyJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJwcm9jZXN0LWFkbWluIiwiY2xpZW50X2lkIjoicHJvY2VzdC1hZG1pbiIsImlhdCI6IjE3NzMxNDUyMDQiLCJ1c2VyX2lkIjoicHJvY2VzdC1hZG1pbiIsInVzZXJfcmVwcmVzZW50YXRpb24iOiIifQ._FM4qRV3vB2OgdnekSom1cgZ21KEEihLVRqbegy8uGI", + "system": true + }, + { + "key": "User-Agent", + "value": "PostmanRuntime/7.39.1", + "system": true + }, + { + "key": "Accept", + "value": "*/*", + "system": true + }, + { + "key": "Cache-Control", + "value": "no-cache", + "system": true + }, + { + "key": "Postman-Token", + "value": "a28d9e01-a5f1-4e49-bab8-e71e82a2fd6d", + "system": true + }, + { + "key": "Host", + "value": "localhost:8080", + "system": true + }, + { + "key": "Accept-Encoding", + "value": "gzip, deflate, br", + "system": true + }, + { + "key": "Connection", + "value": "keep-alive", + "system": true + }, + { + "key": "Cookie", + "value": "ocvp3112b4wg=eac3b3818ef52708d108d41330f1a67a; oc_sessionPassphrase=LBNdKxRzA0iqoULIruNxDDh2BK3O%2BrCIU8aUmiUcOFvy5Xw1YfjwQNlmBW2IkGwJYtxXh9%2BwDN6vYuGNX07tXzkBtjQJUWTGdzf8AIOUIVxVx5DfyWAQZ7nmYmQv6XSE; nc_sameSiteCookielax=true; nc_sameSiteCookiestrict=true", + "system": true + }, + { + "key": "Content-Length", + "value": "0", + "system": true + } + ], + "method": "POST", + "auth": { + "type": "jwt", + "jwt": [ + { + "type": "string", + "value": "{\r\n \"iss\": \"procest-admin\",\r\n \"client_id\": \"procest-admin\",\r\n \"iat\": \"1773145204\",\r\n \"user_id\": \"procest-admin\",\r\n \"user_representation\": \"\"\r\n}", + "key": "payload" + }, + { + "type": "string", + "value": "procest-admin-secret-key-for-testing", + "key": "secret" + }, + { + "type": "string", + "value": "HS256", + "key": "algorithm" + }, + { + "type": "boolean", + "value": false, + "key": "isSecretBase64Encoded" + }, + { + "type": "string", + "value": "header", + "key": "addTokenTo" + }, + { + "type": "string", + "value": "Bearer", + "key": "headerPrefix" + }, + { + "type": "string", + "value": "token", + "key": "queryParamKey" + }, + { + "type": "string", + "value": "{}", + "key": "header" + } + ] + } + }, + "response": { + "id": "c8f9ec27-06f3-4b3f-abe9-59bc9b55522b", + "status": "OK", + "code": 200, + "header": [ + { + "key": "Date", + "value": "Tue, 10 Mar 2026 12:20:04 GMT" + }, + { + "key": "Server", + "value": "Apache/2.4.66 (Debian)" + }, + { + "key": "X-Content-Type-Options", + "value": "nosniff" + }, + { + "key": "X-Frame-Options", + "value": "SAMEORIGIN" + }, + { + "key": "X-Permitted-Cross-Domain-Policies", + "value": "none" + }, + { + "key": "X-Robots-Tag", + "value": "noindex, nofollow" + }, + { + "key": "Referrer-Policy", + "value": "no-referrer" + }, + { + "key": "X-Powered-By", + "value": "PHP/8.3.30" + }, + { + "key": "Content-Security-Policy", + "value": "default-src 'none';base-uri 'none';manifest-src 'self';frame-ancestors 'none'" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=eac3b3818ef52708d108d41330f1a67a; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=eac3b3818ef52708d108d41330f1a67a; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=eac3b3818ef52708d108d41330f1a67a; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=eac3b3818ef52708d108d41330f1a67a; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=eac3b3818ef52708d108d41330f1a67a; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=7cc3cbe7166bec02a84515fea05c77a0; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=7cc3cbe7166bec02a84515fea05c77a0; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=7cc3cbe7166bec02a84515fea05c77a0; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=7cc3cbe7166bec02a84515fea05c77a0; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=7cc3cbe7166bec02a84515fea05c77a0; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "X-Request-Id", + "value": "XRMX55ixcifRHjKKJgmf" + }, + { + "key": "Cache-Control", + "value": "no-cache, no-store, must-revalidate" + }, + { + "key": "Feature-Policy", + "value": "autoplay 'none';camera 'none';fullscreen 'none';geolocation 'none';microphone 'none';payment 'none'" + }, + { + "key": "X-User-Id", + "value": "admin" + }, + { + "key": "Content-Encoding", + "value": "gzip" + }, + { + "key": "Content-Length", + "value": "313" + }, + { + "key": "Keep-Alive", + "value": "timeout=5, max=83" + }, + { + "key": "Connection", + "value": "Keep-Alive" + }, + { + "key": "Content-Type", + "value": "application/json; charset=utf-8" + } + ], + "stream": { + "type": "Buffer", + "data": [ + 123, + 34, + 117, + 114, + 108, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 105, + 92, + 47, + 118, + 49, + 92, + 47, + 98, + 101, + 115, + 108, + 117, + 105, + 116, + 116, + 121, + 112, + 101, + 110, + 92, + 47, + 99, + 97, + 56, + 48, + 102, + 100, + 100, + 57, + 45, + 101, + 49, + 50, + 57, + 45, + 52, + 50, + 48, + 49, + 45, + 98, + 99, + 97, + 57, + 45, + 48, + 100, + 54, + 99, + 97, + 53, + 51, + 53, + 101, + 54, + 99, + 55, + 34, + 44, + 34, + 117, + 117, + 105, + 100, + 34, + 58, + 34, + 99, + 97, + 56, + 48, + 102, + 100, + 100, + 57, + 45, + 101, + 49, + 50, + 57, + 45, + 52, + 50, + 48, + 49, + 45, + 98, + 99, + 97, + 57, + 45, + 48, + 100, + 54, + 99, + 97, + 53, + 51, + 53, + 101, + 54, + 99, + 55, + 34, + 44, + 34, + 111, + 109, + 115, + 99, + 104, + 114, + 105, + 106, + 118, + 105, + 110, + 103, + 34, + 58, + 34, + 100, + 57, + 100, + 97, + 100, + 101, + 55, + 51, + 45, + 101, + 97, + 100, + 99, + 45, + 52, + 100, + 49, + 100, + 45, + 97, + 53, + 48, + 54, + 45, + 48, + 52, + 100, + 101, + 101, + 50, + 54, + 57, + 49, + 57, + 99, + 97, + 34, + 44, + 34, + 116, + 111, + 101, + 108, + 105, + 99, + 104, + 116, + 105, + 110, + 103, + 34, + 58, + 34, + 34, + 44, + 34, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 117, + 115, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 105, + 92, + 47, + 118, + 49, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 117, + 115, + 115, + 101, + 110, + 92, + 47, + 53, + 48, + 53, + 55, + 52, + 48, + 56, + 102, + 45, + 102, + 100, + 55, + 54, + 45, + 52, + 54, + 57, + 101, + 45, + 56, + 54, + 52, + 54, + 45, + 98, + 99, + 99, + 52, + 98, + 97, + 50, + 101, + 102, + 97, + 56, + 100, + 34, + 44, + 34, + 122, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 99, + 111, + 110, + 99, + 101, + 112, + 116, + 34, + 58, + 102, + 97, + 108, + 115, + 101, + 44, + 34, + 112, + 117, + 98, + 108, + 105, + 99, + 97, + 116, + 105, + 101, + 73, + 110, + 100, + 105, + 99, + 97, + 116, + 105, + 101, + 34, + 58, + 102, + 97, + 108, + 115, + 101, + 44, + 34, + 105, + 110, + 102, + 111, + 114, + 109, + 97, + 116, + 105, + 101, + 111, + 98, + 106, + 101, + 99, + 116, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 98, + 101, + 103, + 105, + 110, + 71, + 101, + 108, + 100, + 105, + 103, + 104, + 101, + 105, + 100, + 34, + 58, + 34, + 50, + 48, + 49, + 57, + 45, + 48, + 49, + 45, + 48, + 49, + 34, + 44, + 34, + 101, + 105, + 110, + 100, + 101, + 71, + 101, + 108, + 100, + 105, + 103, + 104, + 101, + 105, + 100, + 34, + 58, + 34, + 50, + 48, + 50, + 54, + 45, + 48, + 51, + 45, + 49, + 48, + 34, + 125 + ] + }, + "cookie": [], + "responseTime": 155, + "responseSize": 540 + }, + "id": "c97f3315-f731-4791-b9dc-7c3e408ca2d4" + }, + { + "cursor": { + "ref": "bac552de-98a1-4e89-9df5-983f98fb9485", + "length": 313, + "cycles": 1, + "position": 250, + "iteration": 0, + "httpRequestId": "857d4662-6ba7-45f1-87cf-80e43f61df2a" + }, + "item": { + "id": "a882450b-7c71-4e6d-9025-2de34cd00699", + "name": "Publish Zaaktype procestermijn vast_te_leggen_datum", + "request": { + "url": { + "path": [ + "publish" + ], + "host": [ + "{{zaaktype_procestermijn_vast_te_leggen_datum_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "c4b0d862-d3ae-40a3-ab08-8307d8b6be2f", + "type": "text/javascript", + "exec": [ + "pm.environment.set(\"archiving_zaaktypen\", [", + " pm.environment.get(\"zaaktype_procestermijn_nihil_url\"),", + " pm.environment.get(\"zaaktype_procestermijn_ingeschatte_bestaansduur_object_url\"),", + " pm.environment.get(\"zaaktype_procestermijn_vast_te_leggen_datum_url\")", + "]);" + ], + "_lastExecutionId": "0a1056ad-b9c6-46e1-8c69-58caf3aae808" + } + }, + { + "listen": "prerequest", + "script": { + "id": "f5eaea45-cc29-44aa-8ff7-39fc25504480", + "type": "text/javascript", + "exec": [ + "" + ], + "_lastExecutionId": "5d74d103-35ec-435f-bd63-74a79c9c9418" + } + } + ] + }, + "request": { + "url": { + "protocol": "http", + "port": "8080", + "path": [ + "index.php", + "apps", + "procest", + "api", + "zgw", + "catalogi", + "v1", + "zaaktypen", + "64131794-476a-42b8-8f81-c1d4272e8418", + "publish" + ], + "host": [ + "localhost" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Authorization", + "value": "Bearer eyJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJwcm9jZXN0LWFkbWluIiwiY2xpZW50X2lkIjoicHJvY2VzdC1hZG1pbiIsImlhdCI6IjE3NzMxNDUyMDQiLCJ1c2VyX2lkIjoicHJvY2VzdC1hZG1pbiIsInVzZXJfcmVwcmVzZW50YXRpb24iOiIifQ._FM4qRV3vB2OgdnekSom1cgZ21KEEihLVRqbegy8uGI", + "system": true + }, + { + "key": "User-Agent", + "value": "PostmanRuntime/7.39.1", + "system": true + }, + { + "key": "Accept", + "value": "*/*", + "system": true + }, + { + "key": "Cache-Control", + "value": "no-cache", + "system": true + }, + { + "key": "Postman-Token", + "value": "d1cbc255-4c2c-422c-9112-3af50e51842e", + "system": true + }, + { + "key": "Host", + "value": "localhost:8080", + "system": true + }, + { + "key": "Accept-Encoding", + "value": "gzip, deflate, br", + "system": true + }, + { + "key": "Connection", + "value": "keep-alive", + "system": true + }, + { + "key": "Cookie", + "value": "ocvp3112b4wg=7cc3cbe7166bec02a84515fea05c77a0; oc_sessionPassphrase=LBNdKxRzA0iqoULIruNxDDh2BK3O%2BrCIU8aUmiUcOFvy5Xw1YfjwQNlmBW2IkGwJYtxXh9%2BwDN6vYuGNX07tXzkBtjQJUWTGdzf8AIOUIVxVx5DfyWAQZ7nmYmQv6XSE; nc_sameSiteCookielax=true; nc_sameSiteCookiestrict=true", + "system": true + }, + { + "key": "Content-Length", + "value": "0", + "system": true + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "" + }, + "auth": { + "type": "jwt", + "jwt": [ + { + "type": "string", + "value": "{\r\n \"iss\": \"procest-admin\",\r\n \"client_id\": \"procest-admin\",\r\n \"iat\": \"1773145204\",\r\n \"user_id\": \"procest-admin\",\r\n \"user_representation\": \"\"\r\n}", + "key": "payload" + }, + { + "type": "string", + "value": "procest-admin-secret-key-for-testing", + "key": "secret" + }, + { + "type": "string", + "value": "HS256", + "key": "algorithm" + }, + { + "type": "boolean", + "value": false, + "key": "isSecretBase64Encoded" + }, + { + "type": "string", + "value": "header", + "key": "addTokenTo" + }, + { + "type": "string", + "value": "Bearer", + "key": "headerPrefix" + }, + { + "type": "string", + "value": "token", + "key": "queryParamKey" + }, + { + "type": "string", + "value": "{}", + "key": "header" + } + ] + } + }, + "response": { + "id": "f9447802-7ee8-460f-85f8-978ca6ca5187", + "status": "OK", + "code": 200, + "header": [ + { + "key": "Date", + "value": "Tue, 10 Mar 2026 12:20:04 GMT" + }, + { + "key": "Server", + "value": "Apache/2.4.66 (Debian)" + }, + { + "key": "X-Content-Type-Options", + "value": "nosniff" + }, + { + "key": "X-Frame-Options", + "value": "SAMEORIGIN" + }, + { + "key": "X-Permitted-Cross-Domain-Policies", + "value": "none" + }, + { + "key": "X-Robots-Tag", + "value": "noindex, nofollow" + }, + { + "key": "Referrer-Policy", + "value": "no-referrer" + }, + { + "key": "X-Powered-By", + "value": "PHP/8.3.30" + }, + { + "key": "Content-Security-Policy", + "value": "default-src 'none';base-uri 'none';manifest-src 'self';frame-ancestors 'none'" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=7cc3cbe7166bec02a84515fea05c77a0; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=7cc3cbe7166bec02a84515fea05c77a0; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=7cc3cbe7166bec02a84515fea05c77a0; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=7cc3cbe7166bec02a84515fea05c77a0; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=7cc3cbe7166bec02a84515fea05c77a0; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=c4ad56cb03c3245390b0475a2f0ab5a5; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=c4ad56cb03c3245390b0475a2f0ab5a5; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=c4ad56cb03c3245390b0475a2f0ab5a5; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=c4ad56cb03c3245390b0475a2f0ab5a5; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=c4ad56cb03c3245390b0475a2f0ab5a5; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "X-Request-Id", + "value": "Jq2syuPAJx5g70xYTcWW" + }, + { + "key": "Cache-Control", + "value": "no-cache, no-store, must-revalidate" + }, + { + "key": "Feature-Policy", + "value": "autoplay 'none';camera 'none';fullscreen 'none';geolocation 'none';microphone 'none';payment 'none'" + }, + { + "key": "X-User-Id", + "value": "admin" + }, + { + "key": "Content-Encoding", + "value": "gzip" + }, + { + "key": "Content-Length", + "value": "730" + }, + { + "key": "Keep-Alive", + "value": "timeout=5, max=82" + }, + { + "key": "Connection", + "value": "Keep-Alive" + }, + { + "key": "Content-Type", + "value": "application/json; charset=utf-8" + } + ], + "stream": { + "type": "Buffer", + "data": [ + 123, + 34, + 117, + 114, + 108, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 105, + 92, + 47, + 118, + 49, + 92, + 47, + 122, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 110, + 92, + 47, + 54, + 52, + 49, + 51, + 49, + 55, + 57, + 52, + 45, + 52, + 55, + 54, + 97, + 45, + 52, + 50, + 98, + 56, + 45, + 56, + 102, + 56, + 49, + 45, + 99, + 49, + 100, + 52, + 50, + 55, + 50, + 101, + 56, + 52, + 49, + 56, + 34, + 44, + 34, + 117, + 117, + 105, + 100, + 34, + 58, + 34, + 54, + 52, + 49, + 51, + 49, + 55, + 57, + 52, + 45, + 52, + 55, + 54, + 97, + 45, + 52, + 50, + 98, + 56, + 45, + 56, + 102, + 56, + 49, + 45, + 99, + 49, + 100, + 52, + 50, + 55, + 50, + 101, + 56, + 52, + 49, + 56, + 34, + 44, + 34, + 105, + 100, + 101, + 110, + 116, + 105, + 102, + 105, + 99, + 97, + 116, + 105, + 101, + 34, + 58, + 34, + 53, + 53, + 52, + 56, + 55, + 48, + 101, + 102, + 45, + 52, + 102, + 101, + 102, + 45, + 52, + 97, + 97, + 49, + 45, + 57, + 55, + 54, + 100, + 45, + 54, + 53, + 99, + 56, + 51, + 53, + 101, + 52, + 48, + 99, + 52, + 51, + 34, + 44, + 34, + 111, + 109, + 115, + 99, + 104, + 114, + 105, + 106, + 118, + 105, + 110, + 103, + 34, + 58, + 34, + 90, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 32, + 102, + 111, + 114, + 32, + 97, + 114, + 99, + 104, + 105, + 118, + 105, + 110, + 103, + 32, + 116, + 101, + 115, + 116, + 115, + 32, + 118, + 97, + 115, + 116, + 95, + 116, + 101, + 95, + 108, + 101, + 103, + 103, + 101, + 110, + 95, + 100, + 97, + 116, + 117, + 109, + 34, + 44, + 34, + 111, + 109, + 115, + 99, + 104, + 114, + 105, + 106, + 118, + 105, + 110, + 103, + 71, + 101, + 110, + 101, + 114, + 105, + 101, + 107, + 34, + 58, + 34, + 34, + 44, + 34, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 117, + 115, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 105, + 92, + 47, + 118, + 49, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 117, + 115, + 115, + 101, + 110, + 92, + 47, + 53, + 48, + 53, + 55, + 52, + 48, + 56, + 102, + 45, + 102, + 100, + 55, + 54, + 45, + 52, + 54, + 57, + 101, + 45, + 56, + 54, + 52, + 54, + 45, + 98, + 99, + 99, + 52, + 98, + 97, + 50, + 101, + 102, + 97, + 56, + 100, + 34, + 44, + 34, + 100, + 111, + 101, + 108, + 34, + 58, + 34, + 116, + 101, + 115, + 116, + 32, + 100, + 111, + 101, + 108, + 34, + 44, + 34, + 97, + 97, + 110, + 108, + 101, + 105, + 100, + 105, + 110, + 103, + 34, + 58, + 34, + 116, + 101, + 115, + 116, + 32, + 97, + 97, + 110, + 108, + 101, + 105, + 100, + 105, + 110, + 103, + 34, + 44, + 34, + 111, + 110, + 100, + 101, + 114, + 119, + 101, + 114, + 112, + 34, + 58, + 34, + 111, + 112, + 101, + 110, + 98, + 97, + 114, + 101, + 32, + 114, + 117, + 105, + 109, + 116, + 101, + 34, + 44, + 34, + 100, + 111, + 111, + 114, + 108, + 111, + 111, + 112, + 116, + 105, + 106, + 100, + 34, + 58, + 34, + 80, + 49, + 48, + 68, + 34, + 44, + 34, + 118, + 101, + 114, + 116, + 114, + 111, + 117, + 119, + 101, + 108, + 105, + 106, + 107, + 104, + 101, + 105, + 100, + 97, + 97, + 110, + 100, + 117, + 105, + 100, + 105, + 110, + 103, + 34, + 58, + 34, + 111, + 112, + 101, + 110, + 98, + 97, + 97, + 114, + 34, + 44, + 34, + 99, + 111, + 110, + 99, + 101, + 112, + 116, + 34, + 58, + 102, + 97, + 108, + 115, + 101, + 44, + 34, + 98, + 101, + 103, + 105, + 110, + 71, + 101, + 108, + 100, + 105, + 103, + 104, + 101, + 105, + 100, + 34, + 58, + 34, + 50, + 48, + 49, + 57, + 45, + 48, + 49, + 45, + 48, + 49, + 34, + 44, + 34, + 101, + 105, + 110, + 100, + 101, + 71, + 101, + 108, + 100, + 105, + 103, + 104, + 101, + 105, + 100, + 34, + 58, + 34, + 50, + 48, + 50, + 54, + 45, + 48, + 51, + 45, + 49, + 48, + 34, + 44, + 34, + 104, + 97, + 110, + 100, + 101, + 108, + 105, + 110, + 103, + 73, + 110, + 105, + 116, + 105, + 97, + 116, + 111, + 114, + 34, + 58, + 34, + 105, + 110, + 100, + 105, + 101, + 110, + 101, + 110, + 34, + 44, + 34, + 105, + 110, + 100, + 105, + 99, + 97, + 116, + 105, + 101, + 73, + 110, + 116, + 101, + 114, + 110, + 79, + 102, + 69, + 120, + 116, + 101, + 114, + 110, + 34, + 58, + 34, + 101, + 120, + 116, + 101, + 114, + 110, + 34, + 44, + 34, + 104, + 97, + 110, + 100, + 101, + 108, + 105, + 110, + 103, + 66, + 101, + 104, + 97, + 110, + 100, + 101, + 108, + 97, + 97, + 114, + 34, + 58, + 34, + 98, + 101, + 104, + 97, + 110, + 100, + 101, + 108, + 101, + 110, + 34, + 44, + 34, + 111, + 112, + 115, + 99, + 104, + 111, + 114, + 116, + 105, + 110, + 103, + 69, + 110, + 65, + 97, + 110, + 104, + 111, + 117, + 100, + 105, + 110, + 103, + 77, + 111, + 103, + 101, + 108, + 105, + 106, + 107, + 34, + 58, + 102, + 97, + 108, + 115, + 101, + 44, + 34, + 118, + 101, + 114, + 108, + 101, + 110, + 103, + 105, + 110, + 103, + 77, + 111, + 103, + 101, + 108, + 105, + 106, + 107, + 34, + 58, + 116, + 114, + 117, + 101, + 44, + 34, + 118, + 101, + 114, + 108, + 101, + 110, + 103, + 105, + 110, + 103, + 115, + 116, + 101, + 114, + 109, + 105, + 106, + 110, + 34, + 58, + 34, + 80, + 53, + 68, + 34, + 44, + 34, + 112, + 117, + 98, + 108, + 105, + 99, + 97, + 116, + 105, + 101, + 73, + 110, + 100, + 105, + 99, + 97, + 116, + 105, + 101, + 34, + 58, + 102, + 97, + 108, + 115, + 101, + 44, + 34, + 112, + 114, + 111, + 100, + 117, + 99, + 116, + 101, + 110, + 79, + 102, + 68, + 105, + 101, + 110, + 115, + 116, + 101, + 110, + 34, + 58, + 91, + 34, + 104, + 116, + 116, + 112, + 115, + 58, + 92, + 47, + 92, + 47, + 114, + 101, + 102, + 46, + 116, + 115, + 116, + 46, + 118, + 110, + 103, + 46, + 99, + 108, + 111, + 117, + 100, + 92, + 47, + 115, + 116, + 97, + 110, + 100, + 97, + 97, + 114, + 100, + 92, + 47, + 34, + 93, + 44, + 34, + 115, + 101, + 108, + 101, + 99, + 116, + 105, + 101, + 108, + 105, + 106, + 115, + 116, + 80, + 114, + 111, + 99, + 101, + 115, + 116, + 121, + 112, + 101, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 115, + 58, + 92, + 47, + 92, + 47, + 115, + 101, + 108, + 101, + 99, + 116, + 105, + 101, + 108, + 105, + 106, + 115, + 116, + 46, + 111, + 112, + 101, + 110, + 122, + 97, + 97, + 107, + 46, + 110, + 108, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 118, + 49, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 121, + 112, + 101, + 110, + 92, + 47, + 56, + 51, + 56, + 101, + 52, + 48, + 53, + 97, + 45, + 57, + 98, + 49, + 50, + 45, + 52, + 51, + 99, + 52, + 45, + 97, + 57, + 56, + 53, + 45, + 100, + 55, + 97, + 55, + 52, + 57, + 48, + 100, + 52, + 50, + 50, + 101, + 34, + 44, + 34, + 114, + 101, + 102, + 101, + 114, + 101, + 110, + 116, + 105, + 101, + 112, + 114, + 111, + 99, + 101, + 115, + 34, + 58, + 123, + 34, + 108, + 105, + 110, + 107, + 34, + 58, + 34, + 34, + 44, + 34, + 110, + 97, + 97, + 109, + 34, + 58, + 34, + 116, + 101, + 115, + 116, + 34, + 125, + 44, + 34, + 118, + 101, + 114, + 97, + 110, + 116, + 119, + 111, + 111, + 114, + 100, + 101, + 108, + 105, + 106, + 107, + 101, + 34, + 58, + 34, + 88, + 34, + 44, + 34, + 103, + 101, + 114, + 101, + 108, + 97, + 116, + 101, + 101, + 114, + 100, + 101, + 90, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 98, + 101, + 115, + 108, + 117, + 105, + 116, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 34, + 99, + 97, + 56, + 48, + 102, + 100, + 100, + 57, + 45, + 101, + 49, + 50, + 57, + 45, + 52, + 50, + 48, + 49, + 45, + 98, + 99, + 97, + 57, + 45, + 48, + 100, + 54, + 99, + 97, + 53, + 51, + 53, + 101, + 54, + 99, + 55, + 34, + 93, + 44, + 34, + 105, + 110, + 102, + 111, + 114, + 109, + 97, + 116, + 105, + 101, + 111, + 98, + 106, + 101, + 99, + 116, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 100, + 101, + 101, + 108, + 122, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 116, + 111, + 101, + 108, + 105, + 99, + 104, + 116, + 105, + 110, + 103, + 34, + 58, + 34, + 34, + 44, + 34, + 118, + 101, + 114, + 115, + 105, + 101, + 100, + 97, + 116, + 117, + 109, + 34, + 58, + 34, + 50, + 48, + 49, + 57, + 45, + 48, + 49, + 45, + 48, + 49, + 34, + 125 + ] + }, + "cookie": [], + "responseTime": 165, + "responseSize": 1344 + }, + "id": "a882450b-7c71-4e6d-9025-2de34cd00699" + }, + { + "cursor": { + "ref": "254df46f-158c-452b-9737-8760190d8fba", + "length": 313, + "cycles": 1, + "position": 251, + "iteration": 0, + "httpRequestId": "d9624a88-66a2-495f-a009-44c84e8ee6ec" + }, + "item": { + "id": "7bc4e01b-cfd2-4a7d-8e7a-d1365a197786", + "name": "Create Zaak without archiefnominatie", + "request": { + "url": { + "path": [ + "zaken" + ], + "host": [ + "{{zrc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Accept-Crs", + "value": "EPSG:4326" + }, + { + "key": "Content-Crs", + "value": "EPSG:4326" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\r\n \"bronorganisatie\": \"000000000\",\r\n \"omschrijving\": \"string\",\r\n \"toelichting\": \"string\",\r\n \"zaaktype\": \"{{zaaktype_procestermijn_vast_te_leggen_datum_url}}\",\r\n \"registratiedatum\": \"2019-04-09\",\r\n \"verantwoordelijkeOrganisatie\": \"000000000\",\r\n \"startdatum\": \"2019-04-09\",\r\n \"einddatum\": null,\r\n \"einddatumGepland\": \"2019-04-20\",\r\n \"uiterlijkeEinddatumAfdoening\": \"2019-04-09\",\r\n \"publicatiedatum\": \"2019-04-09\",\r\n \"communicatiekanaal\": \"\",\r\n \"productenOfDiensten\": [],\r\n \"vertrouwelijkheidaanduiding\": \"geheim\",\r\n \"betalingsindicatie\": \"geheel\",\r\n \"betalingsindicatieWeergave\": null,\r\n \"laatsteBetaaldatum\": \"2019-01-01T00:00:00Z\",\r\n \"zaakgeometrie\": {\r\n \"type\": \"Point\",\r\n \"coordinates\": [\r\n 53.0,\r\n 5.0\r\n ]\r\n },\r\n \"verlenging\": null,\r\n \"opschorting\": null,\r\n \"selectielijstklasse\": \"https://referentielijsten.roxit.nl/api/v1/resultaten/0fe71ce3-b1e1-48eb-9070-be2756fc71b5\",\r\n \"hoofdzaak\": null,\r\n \"deelzaken\": [],\r\n \"relevanteAndereZaken\": [],\r\n \"eigenschappen\": [],\r\n \"rollen\": [],\r\n \"status\": null,\r\n \"zaakinformatieobjecten\": [],\r\n \"zaakobjecten\": [],\r\n \"resultaat\": null,\r\n \"kenmerken\": [],\r\n \"archiefnominatie\": null,\r\n \"archiefstatus\": \"nog_te_archiveren\",\r\n \"archiefactiedatum\": null,\r\n \"opdrachtgevendeOrganisatie\": null,\r\n \"processobjectaard\": null,\r\n \"startdatumBewaartermijn\": null,\r\n \"processobject\": null\r\n}" + } + }, + "response": [], + "event": [ + { + "listen": "prerequest", + "script": { + "id": "bda2b51b-6993-4a11-9e0e-dc7620c2b233", + "type": "text/javascript", + "packages": {}, + "exec": [ + "" + ], + "_lastExecutionId": "ca299685-d02a-4785-b812-8e097580eb6e" + } + }, + { + "listen": "test", + "script": { + "id": "45eebaf4-2422-412d-841e-ddd484ea8fca", + "type": "text/javascript", + "packages": {}, + "exec": [ + "pm.environment.set(\"zaak_zonder_archiefnominatie_url\", pm.response.json().url);" + ], + "_lastExecutionId": "8cf18216-2ffa-4572-b483-3f4899974a08" + } + } + ] + }, + "request": { + "url": { + "protocol": "http", + "port": "8080", + "path": [ + "index.php", + "apps", + "procest", + "api", + "zgw", + "zaken", + "v1", + "zaken" + ], + "host": [ + "localhost" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Accept-Crs", + "value": "EPSG:4326" + }, + { + "key": "Content-Crs", + "value": "EPSG:4326" + }, + { + "key": "Authorization", + "value": "Bearer eyJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJwcm9jZXN0LWFkbWluIiwiY2xpZW50X2lkIjoicHJvY2VzdC1hZG1pbiIsImlhdCI6IjE3NzMxNDUyMDUiLCJ1c2VyX2lkIjoicHJvY2VzdC1hZG1pbiIsInVzZXJfcmVwcmVzZW50YXRpb24iOiIifQ.y-D6VywMLn0Ms7YsRwPBydpVWpN0qHEsObkbkPtdjK8", + "system": true + }, + { + "key": "User-Agent", + "value": "PostmanRuntime/7.39.1", + "system": true + }, + { + "key": "Accept", + "value": "*/*", + "system": true + }, + { + "key": "Cache-Control", + "value": "no-cache", + "system": true + }, + { + "key": "Postman-Token", + "value": "27afa346-d492-404e-b8ca-8e6d932ab1f9", + "system": true + }, + { + "key": "Host", + "value": "localhost:8080", + "system": true + }, + { + "key": "Accept-Encoding", + "value": "gzip, deflate, br", + "system": true + }, + { + "key": "Connection", + "value": "keep-alive", + "system": true + }, + { + "key": "Content-Length", + "value": "1544", + "system": true + }, + { + "key": "Cookie", + "value": "ocvp3112b4wg=c4ad56cb03c3245390b0475a2f0ab5a5; oc_sessionPassphrase=LBNdKxRzA0iqoULIruNxDDh2BK3O%2BrCIU8aUmiUcOFvy5Xw1YfjwQNlmBW2IkGwJYtxXh9%2BwDN6vYuGNX07tXzkBtjQJUWTGdzf8AIOUIVxVx5DfyWAQZ7nmYmQv6XSE; nc_sameSiteCookielax=true; nc_sameSiteCookiestrict=true", + "system": true + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\r\n \"bronorganisatie\": \"000000000\",\r\n \"omschrijving\": \"string\",\r\n \"toelichting\": \"string\",\r\n \"zaaktype\": \"http://localhost:8080/index.php/apps/procest/api/zgw/catalogi/v1/zaaktypen/64131794-476a-42b8-8f81-c1d4272e8418\",\r\n \"registratiedatum\": \"2019-04-09\",\r\n \"verantwoordelijkeOrganisatie\": \"000000000\",\r\n \"startdatum\": \"2019-04-09\",\r\n \"einddatum\": null,\r\n \"einddatumGepland\": \"2019-04-20\",\r\n \"uiterlijkeEinddatumAfdoening\": \"2019-04-09\",\r\n \"publicatiedatum\": \"2019-04-09\",\r\n \"communicatiekanaal\": \"\",\r\n \"productenOfDiensten\": [],\r\n \"vertrouwelijkheidaanduiding\": \"geheim\",\r\n \"betalingsindicatie\": \"geheel\",\r\n \"betalingsindicatieWeergave\": null,\r\n \"laatsteBetaaldatum\": \"2019-01-01T00:00:00Z\",\r\n \"zaakgeometrie\": {\r\n \"type\": \"Point\",\r\n \"coordinates\": [\r\n 53.0,\r\n 5.0\r\n ]\r\n },\r\n \"verlenging\": null,\r\n \"opschorting\": null,\r\n \"selectielijstklasse\": \"https://referentielijsten.roxit.nl/api/v1/resultaten/0fe71ce3-b1e1-48eb-9070-be2756fc71b5\",\r\n \"hoofdzaak\": null,\r\n \"deelzaken\": [],\r\n \"relevanteAndereZaken\": [],\r\n \"eigenschappen\": [],\r\n \"rollen\": [],\r\n \"status\": null,\r\n \"zaakinformatieobjecten\": [],\r\n \"zaakobjecten\": [],\r\n \"resultaat\": null,\r\n \"kenmerken\": [],\r\n \"archiefnominatie\": null,\r\n \"archiefstatus\": \"nog_te_archiveren\",\r\n \"archiefactiedatum\": null,\r\n \"opdrachtgevendeOrganisatie\": null,\r\n \"processobjectaard\": null,\r\n \"startdatumBewaartermijn\": null,\r\n \"processobject\": null\r\n}" + }, + "auth": { + "type": "jwt", + "jwt": [ + { + "type": "string", + "value": "{\r\n \"iss\": \"procest-admin\",\r\n \"client_id\": \"procest-admin\",\r\n \"iat\": \"1773145205\",\r\n \"user_id\": \"procest-admin\",\r\n \"user_representation\": \"\"\r\n}", + "key": "payload" + }, + { + "type": "string", + "value": "procest-admin-secret-key-for-testing", + "key": "secret" + }, + { + "type": "string", + "value": "HS256", + "key": "algorithm" + }, + { + "type": "boolean", + "value": false, + "key": "isSecretBase64Encoded" + }, + { + "type": "string", + "value": "header", + "key": "addTokenTo" + }, + { + "type": "string", + "value": "Bearer", + "key": "headerPrefix" + }, + { + "type": "string", + "value": "token", + "key": "queryParamKey" + }, + { + "type": "string", + "value": "{}", + "key": "header" + } + ] + } + }, + "response": { + "id": "5bcb42ba-b454-4eb1-b889-b73ae35d9a94", + "status": "Created", + "code": 201, + "header": [ + { + "key": "Date", + "value": "Tue, 10 Mar 2026 12:20:04 GMT" + }, + { + "key": "Server", + "value": "Apache/2.4.66 (Debian)" + }, + { + "key": "X-Content-Type-Options", + "value": "nosniff" + }, + { + "key": "X-Frame-Options", + "value": "SAMEORIGIN" + }, + { + "key": "X-Permitted-Cross-Domain-Policies", + "value": "none" + }, + { + "key": "X-Robots-Tag", + "value": "noindex, nofollow" + }, + { + "key": "Referrer-Policy", + "value": "no-referrer" + }, + { + "key": "X-Powered-By", + "value": "PHP/8.3.30" + }, + { + "key": "Content-Security-Policy", + "value": "default-src 'none';base-uri 'none';manifest-src 'self';frame-ancestors 'none'" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=c4ad56cb03c3245390b0475a2f0ab5a5; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=c4ad56cb03c3245390b0475a2f0ab5a5; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=c4ad56cb03c3245390b0475a2f0ab5a5; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=c4ad56cb03c3245390b0475a2f0ab5a5; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=c4ad56cb03c3245390b0475a2f0ab5a5; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=2df16e46fa54357b9337a366d1e50be7; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=2df16e46fa54357b9337a366d1e50be7; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=2df16e46fa54357b9337a366d1e50be7; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=2df16e46fa54357b9337a366d1e50be7; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=2df16e46fa54357b9337a366d1e50be7; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "X-Request-Id", + "value": "jKEpzJgZrwN0roeXKiEG" + }, + { + "key": "Cache-Control", + "value": "no-cache, no-store, must-revalidate" + }, + { + "key": "Feature-Policy", + "value": "autoplay 'none';camera 'none';fullscreen 'none';geolocation 'none';microphone 'none';payment 'none'" + }, + { + "key": "X-User-Id", + "value": "admin" + }, + { + "key": "Content-Length", + "value": "805" + }, + { + "key": "Keep-Alive", + "value": "timeout=5, max=81" + }, + { + "key": "Connection", + "value": "Keep-Alive" + }, + { + "key": "Content-Type", + "value": "application/json; charset=utf-8" + } + ], + "stream": { + "type": "Buffer", + "data": [ + 123, + 34, + 117, + 114, + 108, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 122, + 97, + 107, + 101, + 110, + 92, + 47, + 118, + 49, + 92, + 47, + 122, + 97, + 107, + 101, + 110, + 92, + 47, + 99, + 54, + 99, + 55, + 55, + 99, + 102, + 100, + 45, + 102, + 56, + 99, + 48, + 45, + 52, + 51, + 51, + 50, + 45, + 98, + 101, + 97, + 49, + 45, + 97, + 57, + 51, + 53, + 98, + 97, + 99, + 51, + 52, + 51, + 57, + 48, + 34, + 44, + 34, + 117, + 117, + 105, + 100, + 34, + 58, + 34, + 99, + 54, + 99, + 55, + 55, + 99, + 102, + 100, + 45, + 102, + 56, + 99, + 48, + 45, + 52, + 51, + 51, + 50, + 45, + 98, + 101, + 97, + 49, + 45, + 97, + 57, + 51, + 53, + 98, + 97, + 99, + 51, + 52, + 51, + 57, + 48, + 34, + 44, + 34, + 105, + 100, + 101, + 110, + 116, + 105, + 102, + 105, + 99, + 97, + 116, + 105, + 101, + 34, + 58, + 34, + 90, + 65, + 65, + 75, + 45, + 84, + 66, + 79, + 78, + 76, + 71, + 45, + 51, + 51, + 68, + 53, + 56, + 57, + 34, + 44, + 34, + 111, + 109, + 115, + 99, + 104, + 114, + 105, + 106, + 118, + 105, + 110, + 103, + 34, + 58, + 34, + 115, + 116, + 114, + 105, + 110, + 103, + 34, + 44, + 34, + 116, + 111, + 101, + 108, + 105, + 99, + 104, + 116, + 105, + 110, + 103, + 34, + 58, + 34, + 115, + 116, + 114, + 105, + 110, + 103, + 34, + 44, + 34, + 122, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 105, + 92, + 47, + 118, + 49, + 92, + 47, + 122, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 110, + 92, + 47, + 54, + 52, + 49, + 51, + 49, + 55, + 57, + 52, + 45, + 52, + 55, + 54, + 97, + 45, + 52, + 50, + 98, + 56, + 45, + 56, + 102, + 56, + 49, + 45, + 99, + 49, + 100, + 52, + 50, + 55, + 50, + 101, + 56, + 52, + 49, + 56, + 34, + 44, + 34, + 114, + 101, + 103, + 105, + 115, + 116, + 114, + 97, + 116, + 105, + 101, + 100, + 97, + 116, + 117, + 109, + 34, + 58, + 34, + 50, + 48, + 50, + 54, + 45, + 48, + 51, + 45, + 49, + 48, + 84, + 49, + 50, + 58, + 50, + 48, + 58, + 48, + 52, + 43, + 48, + 48, + 58, + 48, + 48, + 34, + 44, + 34, + 115, + 116, + 97, + 114, + 116, + 100, + 97, + 116, + 117, + 109, + 34, + 58, + 34, + 50, + 48, + 49, + 57, + 45, + 48, + 52, + 45, + 48, + 57, + 34, + 44, + 34, + 101, + 105, + 110, + 100, + 100, + 97, + 116, + 117, + 109, + 34, + 58, + 110, + 117, + 108, + 108, + 44, + 34, + 101, + 105, + 110, + 100, + 100, + 97, + 116, + 117, + 109, + 71, + 101, + 112, + 108, + 97, + 110, + 100, + 34, + 58, + 34, + 50, + 48, + 49, + 57, + 45, + 48, + 52, + 45, + 50, + 48, + 34, + 44, + 34, + 117, + 105, + 116, + 101, + 114, + 108, + 105, + 106, + 107, + 101, + 69, + 105, + 110, + 100, + 100, + 97, + 116, + 117, + 109, + 65, + 102, + 100, + 111, + 101, + 110, + 105, + 110, + 103, + 34, + 58, + 34, + 50, + 48, + 49, + 57, + 45, + 48, + 52, + 45, + 48, + 57, + 34, + 44, + 34, + 118, + 101, + 114, + 116, + 114, + 111, + 117, + 119, + 101, + 108, + 105, + 106, + 107, + 104, + 101, + 105, + 100, + 97, + 97, + 110, + 100, + 117, + 105, + 100, + 105, + 110, + 103, + 34, + 58, + 34, + 103, + 101, + 104, + 101, + 105, + 109, + 34, + 44, + 34, + 118, + 101, + 114, + 97, + 110, + 116, + 119, + 111, + 111, + 114, + 100, + 101, + 108, + 105, + 106, + 107, + 101, + 79, + 114, + 103, + 97, + 110, + 105, + 115, + 97, + 116, + 105, + 101, + 34, + 58, + 34, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 34, + 44, + 34, + 97, + 114, + 99, + 104, + 105, + 101, + 102, + 110, + 111, + 109, + 105, + 110, + 97, + 116, + 105, + 101, + 34, + 58, + 110, + 117, + 108, + 108, + 44, + 34, + 97, + 114, + 99, + 104, + 105, + 101, + 102, + 97, + 99, + 116, + 105, + 101, + 100, + 97, + 116, + 117, + 109, + 34, + 58, + 110, + 117, + 108, + 108, + 44, + 34, + 97, + 114, + 99, + 104, + 105, + 101, + 102, + 115, + 116, + 97, + 116, + 117, + 115, + 34, + 58, + 34, + 110, + 111, + 103, + 95, + 116, + 101, + 95, + 97, + 114, + 99, + 104, + 105, + 118, + 101, + 114, + 101, + 110, + 34, + 44, + 34, + 98, + 101, + 116, + 97, + 108, + 105, + 110, + 103, + 115, + 105, + 110, + 100, + 105, + 99, + 97, + 116, + 105, + 101, + 34, + 58, + 34, + 103, + 101, + 104, + 101, + 101, + 108, + 34, + 44, + 34, + 108, + 97, + 97, + 116, + 115, + 116, + 101, + 66, + 101, + 116, + 97, + 97, + 108, + 100, + 97, + 116, + 117, + 109, + 34, + 58, + 34, + 50, + 48, + 49, + 57, + 45, + 48, + 49, + 45, + 48, + 49, + 34, + 44, + 34, + 104, + 111, + 111, + 102, + 100, + 122, + 97, + 97, + 107, + 34, + 58, + 110, + 117, + 108, + 108, + 125 + ] + }, + "cookie": [], + "responseTime": 231, + "responseSize": 805 + }, + "id": "7bc4e01b-cfd2-4a7d-8e7a-d1365a197786" + }, + { + "cursor": { + "ref": "03214c4a-834c-43f6-998e-efa33864da33", + "length": 313, + "cycles": 1, + "position": 252, + "iteration": 0, + "httpRequestId": "a1da50db-b145-4d9c-b304-38f8e1f09f40" + }, + "item": { + "id": "904b9fe6-c566-468e-9383-423a405be1d8", + "name": "besluit met eerdere datum", + "request": { + "url": { + "path": [ + "besluiten" + ], + "host": [ + "{{brc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n \"verantwoordelijkeOrganisatie\": \"000000000\",\n \"besluittype\": \"{{concept_besluittype_url}}\",\n \"zaak\": \"{{zaak_zonder_archiefnominatie_url}}\",\n \"datum\": \"2019-01-01\",\n \"ingangsdatum\": \"2018-10-10\",\n \"vervaldatum\": \"2015-09-16\"\n}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "c079b81d-4910-4ff1-bf4c-a31a0b0eebf8", + "type": "text/javascript", + "packages": {}, + "exec": [ + "var besluit = pm.response.json();", + "pm.environment.set(\"besluit_url\", besluit.url);", + "" + ], + "_lastExecutionId": "ddbee593-9a89-41d8-870e-23ad68dc2638" + } + } + ] + }, + "request": { + "url": { + "protocol": "http", + "port": "8080", + "path": [ + "index.php", + "apps", + "procest", + "api", + "zgw", + "besluiten", + "v1", + "besluiten" + ], + "host": [ + "localhost" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Authorization", + "value": "Bearer eyJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJwcm9jZXN0LWFkbWluIiwiY2xpZW50X2lkIjoicHJvY2VzdC1hZG1pbiIsImlhdCI6IjE3NzMxNDUyMDUiLCJ1c2VyX2lkIjoicHJvY2VzdC1hZG1pbiIsInVzZXJfcmVwcmVzZW50YXRpb24iOiIifQ.y-D6VywMLn0Ms7YsRwPBydpVWpN0qHEsObkbkPtdjK8", + "system": true + }, + { + "key": "User-Agent", + "value": "PostmanRuntime/7.39.1", + "system": true + }, + { + "key": "Accept", + "value": "*/*", + "system": true + }, + { + "key": "Cache-Control", + "value": "no-cache", + "system": true + }, + { + "key": "Postman-Token", + "value": "f2b8af3f-0428-4f14-8572-5ca587f8cd0e", + "system": true + }, + { + "key": "Host", + "value": "localhost:8080", + "system": true + }, + { + "key": "Accept-Encoding", + "value": "gzip, deflate, br", + "system": true + }, + { + "key": "Connection", + "value": "keep-alive", + "system": true + }, + { + "key": "Content-Length", + "value": "402", + "system": true + }, + { + "key": "Cookie", + "value": "ocvp3112b4wg=2df16e46fa54357b9337a366d1e50be7; oc_sessionPassphrase=LBNdKxRzA0iqoULIruNxDDh2BK3O%2BrCIU8aUmiUcOFvy5Xw1YfjwQNlmBW2IkGwJYtxXh9%2BwDN6vYuGNX07tXzkBtjQJUWTGdzf8AIOUIVxVx5DfyWAQZ7nmYmQv6XSE; nc_sameSiteCookielax=true; nc_sameSiteCookiestrict=true", + "system": true + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n \"verantwoordelijkeOrganisatie\": \"000000000\",\n \"besluittype\": \"http://localhost:8080/index.php/apps/procest/api/zgw/catalogi/v1/besluittypen/ca80fdd9-e129-4201-bca9-0d6ca535e6c7\",\n \"zaak\": \"http://localhost:8080/index.php/apps/procest/api/zgw/zaken/v1/zaken/c6c77cfd-f8c0-4332-bea1-a935bac34390\",\n \"datum\": \"2019-01-01\",\n \"ingangsdatum\": \"2018-10-10\",\n \"vervaldatum\": \"2015-09-16\"\n}" + }, + "auth": { + "type": "jwt", + "jwt": [ + { + "type": "string", + "value": "{\r\n \"iss\": \"procest-admin\",\r\n \"client_id\": \"procest-admin\",\r\n \"iat\": \"1773145205\",\r\n \"user_id\": \"procest-admin\",\r\n \"user_representation\": \"\"\r\n}", + "key": "payload" + }, + { + "type": "string", + "value": "procest-admin-secret-key-for-testing", + "key": "secret" + }, + { + "type": "string", + "value": "HS256", + "key": "algorithm" + }, + { + "type": "boolean", + "value": false, + "key": "isSecretBase64Encoded" + }, + { + "type": "string", + "value": "header", + "key": "addTokenTo" + }, + { + "type": "string", + "value": "Bearer", + "key": "headerPrefix" + }, + { + "type": "string", + "value": "token", + "key": "queryParamKey" + }, + { + "type": "string", + "value": "{}", + "key": "header" + } + ] + } + }, + "response": { + "id": "2e806937-14c9-49ce-9d22-6a81b06cace7", + "status": "Created", + "code": 201, + "header": [ + { + "key": "Date", + "value": "Tue, 10 Mar 2026 12:20:04 GMT" + }, + { + "key": "Server", + "value": "Apache/2.4.66 (Debian)" + }, + { + "key": "X-Content-Type-Options", + "value": "nosniff" + }, + { + "key": "X-Frame-Options", + "value": "SAMEORIGIN" + }, + { + "key": "X-Permitted-Cross-Domain-Policies", + "value": "none" + }, + { + "key": "X-Robots-Tag", + "value": "noindex, nofollow" + }, + { + "key": "Referrer-Policy", + "value": "no-referrer" + }, + { + "key": "X-Powered-By", + "value": "PHP/8.3.30" + }, + { + "key": "Content-Security-Policy", + "value": "default-src 'none';base-uri 'none';manifest-src 'self';frame-ancestors 'none'" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=2df16e46fa54357b9337a366d1e50be7; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=2df16e46fa54357b9337a366d1e50be7; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=2df16e46fa54357b9337a366d1e50be7; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=2df16e46fa54357b9337a366d1e50be7; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=2df16e46fa54357b9337a366d1e50be7; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=30403c0a1111615c69d8fc82d3616a25; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=30403c0a1111615c69d8fc82d3616a25; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=30403c0a1111615c69d8fc82d3616a25; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=30403c0a1111615c69d8fc82d3616a25; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=30403c0a1111615c69d8fc82d3616a25; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "X-Request-Id", + "value": "w6kJnJpTT3Vd8BN8R1L1" + }, + { + "key": "Cache-Control", + "value": "no-cache, no-store, must-revalidate" + }, + { + "key": "Feature-Policy", + "value": "autoplay 'none';camera 'none';fullscreen 'none';geolocation 'none';microphone 'none';payment 'none'" + }, + { + "key": "X-User-Id", + "value": "admin" + }, + { + "key": "Content-Length", + "value": "701" + }, + { + "key": "Keep-Alive", + "value": "timeout=5, max=80" + }, + { + "key": "Connection", + "value": "Keep-Alive" + }, + { + "key": "Content-Type", + "value": "application/json; charset=utf-8" + } + ], + "stream": { + "type": "Buffer", + "data": [ + 123, + 34, + 117, + 114, + 108, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 98, + 101, + 115, + 108, + 117, + 105, + 116, + 101, + 110, + 92, + 47, + 118, + 49, + 92, + 47, + 98, + 101, + 115, + 108, + 117, + 105, + 116, + 101, + 110, + 92, + 47, + 51, + 100, + 98, + 100, + 101, + 100, + 56, + 54, + 45, + 97, + 51, + 54, + 54, + 45, + 52, + 51, + 99, + 52, + 45, + 57, + 101, + 55, + 57, + 45, + 52, + 57, + 54, + 98, + 101, + 100, + 100, + 57, + 50, + 49, + 100, + 57, + 34, + 44, + 34, + 117, + 117, + 105, + 100, + 34, + 58, + 34, + 51, + 100, + 98, + 100, + 101, + 100, + 56, + 54, + 45, + 97, + 51, + 54, + 54, + 45, + 52, + 51, + 99, + 52, + 45, + 57, + 101, + 55, + 57, + 45, + 52, + 57, + 54, + 98, + 101, + 100, + 100, + 57, + 50, + 49, + 100, + 57, + 34, + 44, + 34, + 105, + 100, + 101, + 110, + 116, + 105, + 102, + 105, + 99, + 97, + 116, + 105, + 101, + 34, + 58, + 34, + 66, + 69, + 83, + 76, + 85, + 73, + 84, + 45, + 84, + 66, + 79, + 78, + 76, + 72, + 45, + 66, + 52, + 53, + 50, + 66, + 57, + 34, + 44, + 34, + 116, + 111, + 101, + 108, + 105, + 99, + 104, + 116, + 105, + 110, + 103, + 34, + 58, + 34, + 34, + 44, + 34, + 122, + 97, + 97, + 107, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 122, + 97, + 107, + 101, + 110, + 92, + 47, + 118, + 49, + 92, + 47, + 122, + 97, + 107, + 101, + 110, + 92, + 47, + 99, + 54, + 99, + 55, + 55, + 99, + 102, + 100, + 45, + 102, + 56, + 99, + 48, + 45, + 52, + 51, + 51, + 50, + 45, + 98, + 101, + 97, + 49, + 45, + 97, + 57, + 51, + 53, + 98, + 97, + 99, + 51, + 52, + 51, + 57, + 48, + 34, + 44, + 34, + 98, + 101, + 115, + 108, + 117, + 105, + 116, + 116, + 121, + 112, + 101, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 105, + 92, + 47, + 118, + 49, + 92, + 47, + 98, + 101, + 115, + 108, + 117, + 105, + 116, + 116, + 121, + 112, + 101, + 110, + 92, + 47, + 99, + 97, + 56, + 48, + 102, + 100, + 100, + 57, + 45, + 101, + 49, + 50, + 57, + 45, + 52, + 50, + 48, + 49, + 45, + 98, + 99, + 97, + 57, + 45, + 48, + 100, + 54, + 99, + 97, + 53, + 51, + 53, + 101, + 54, + 99, + 55, + 34, + 44, + 34, + 118, + 101, + 114, + 97, + 110, + 116, + 119, + 111, + 111, + 114, + 100, + 101, + 108, + 105, + 106, + 107, + 101, + 79, + 114, + 103, + 97, + 110, + 105, + 115, + 97, + 116, + 105, + 101, + 34, + 58, + 34, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 34, + 44, + 34, + 100, + 97, + 116, + 117, + 109, + 34, + 58, + 34, + 50, + 48, + 49, + 57, + 45, + 48, + 49, + 45, + 48, + 49, + 34, + 44, + 34, + 105, + 110, + 103, + 97, + 110, + 103, + 115, + 100, + 97, + 116, + 117, + 109, + 34, + 58, + 34, + 50, + 48, + 49, + 56, + 45, + 49, + 48, + 45, + 49, + 48, + 34, + 44, + 34, + 118, + 101, + 114, + 118, + 97, + 108, + 100, + 97, + 116, + 117, + 109, + 34, + 58, + 34, + 50, + 48, + 49, + 53, + 45, + 48, + 57, + 45, + 49, + 54, + 34, + 44, + 34, + 112, + 117, + 98, + 108, + 105, + 99, + 97, + 116, + 105, + 101, + 100, + 97, + 116, + 117, + 109, + 34, + 58, + 34, + 50, + 48, + 50, + 54, + 45, + 48, + 51, + 45, + 49, + 48, + 34, + 44, + 34, + 118, + 101, + 114, + 122, + 101, + 110, + 100, + 100, + 97, + 116, + 117, + 109, + 34, + 58, + 34, + 50, + 48, + 50, + 54, + 45, + 48, + 51, + 45, + 49, + 48, + 34, + 44, + 34, + 98, + 101, + 115, + 116, + 117, + 117, + 114, + 115, + 111, + 114, + 103, + 97, + 97, + 110, + 34, + 58, + 34, + 34, + 125 + ] + }, + "cookie": [], + "responseTime": 195, + "responseSize": 701 + }, + "id": "904b9fe6-c566-468e-9383-423a405be1d8" + }, + { + "cursor": { + "ref": "beca8b94-8362-48e9-ab9e-db72d2d3c88a", + "length": 313, + "cycles": 1, + "position": 253, + "iteration": 0, + "httpRequestId": "217fc459-f7e7-4028-ae43-0413702262bd" + }, + "item": { + "id": "7f917139-716b-4012-8d6f-27f22753bf70", + "name": "besluit", + "request": { + "url": { + "path": [ + "besluiten" + ], + "host": [ + "{{brc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n \"verantwoordelijkeOrganisatie\": \"000000000\",\n \"besluittype\": \"{{concept_besluittype_url}}\",\n \"zaak\": \"{{zaak_zonder_archiefnominatie_url}}\",\n \"datum\": \"2019-01-01\",\n \"ingangsdatum\": \"2018-10-10\",\n \"vervaldatum\": \"2025-09-16\"\n}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "ece7cfd0-af1c-4186-9530-140cfd74c083", + "type": "text/javascript", + "packages": {}, + "exec": [ + "var besluit = pm.response.json();", + "pm.environment.set(\"besluit_url\", besluit.url);", + "" + ], + "_lastExecutionId": "5d111730-bfd2-4154-90fb-0659670c1806" + } + } + ] + }, + "request": { + "url": { + "protocol": "http", + "port": "8080", + "path": [ + "index.php", + "apps", + "procest", + "api", + "zgw", + "besluiten", + "v1", + "besluiten" + ], + "host": [ + "localhost" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Authorization", + "value": "Bearer eyJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJwcm9jZXN0LWFkbWluIiwiY2xpZW50X2lkIjoicHJvY2VzdC1hZG1pbiIsImlhdCI6IjE3NzMxNDUyMDUiLCJ1c2VyX2lkIjoicHJvY2VzdC1hZG1pbiIsInVzZXJfcmVwcmVzZW50YXRpb24iOiIifQ.y-D6VywMLn0Ms7YsRwPBydpVWpN0qHEsObkbkPtdjK8", + "system": true + }, + { + "key": "User-Agent", + "value": "PostmanRuntime/7.39.1", + "system": true + }, + { + "key": "Accept", + "value": "*/*", + "system": true + }, + { + "key": "Cache-Control", + "value": "no-cache", + "system": true + }, + { + "key": "Postman-Token", + "value": "b794a691-85e7-4add-8fd6-01668230b6fe", + "system": true + }, + { + "key": "Host", + "value": "localhost:8080", + "system": true + }, + { + "key": "Accept-Encoding", + "value": "gzip, deflate, br", + "system": true + }, + { + "key": "Connection", + "value": "keep-alive", + "system": true + }, + { + "key": "Content-Length", + "value": "402", + "system": true + }, + { + "key": "Cookie", + "value": "ocvp3112b4wg=30403c0a1111615c69d8fc82d3616a25; oc_sessionPassphrase=LBNdKxRzA0iqoULIruNxDDh2BK3O%2BrCIU8aUmiUcOFvy5Xw1YfjwQNlmBW2IkGwJYtxXh9%2BwDN6vYuGNX07tXzkBtjQJUWTGdzf8AIOUIVxVx5DfyWAQZ7nmYmQv6XSE; nc_sameSiteCookielax=true; nc_sameSiteCookiestrict=true", + "system": true + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n \"verantwoordelijkeOrganisatie\": \"000000000\",\n \"besluittype\": \"http://localhost:8080/index.php/apps/procest/api/zgw/catalogi/v1/besluittypen/ca80fdd9-e129-4201-bca9-0d6ca535e6c7\",\n \"zaak\": \"http://localhost:8080/index.php/apps/procest/api/zgw/zaken/v1/zaken/c6c77cfd-f8c0-4332-bea1-a935bac34390\",\n \"datum\": \"2019-01-01\",\n \"ingangsdatum\": \"2018-10-10\",\n \"vervaldatum\": \"2025-09-16\"\n}" + }, + "auth": { + "type": "jwt", + "jwt": [ + { + "type": "string", + "value": "{\r\n \"iss\": \"procest-admin\",\r\n \"client_id\": \"procest-admin\",\r\n \"iat\": \"1773145205\",\r\n \"user_id\": \"procest-admin\",\r\n \"user_representation\": \"\"\r\n}", + "key": "payload" + }, + { + "type": "string", + "value": "procest-admin-secret-key-for-testing", + "key": "secret" + }, + { + "type": "string", + "value": "HS256", + "key": "algorithm" + }, + { + "type": "boolean", + "value": false, + "key": "isSecretBase64Encoded" + }, + { + "type": "string", + "value": "header", + "key": "addTokenTo" + }, + { + "type": "string", + "value": "Bearer", + "key": "headerPrefix" + }, + { + "type": "string", + "value": "token", + "key": "queryParamKey" + }, + { + "type": "string", + "value": "{}", + "key": "header" + } + ] + } + }, + "response": { + "id": "a5e30836-75a1-4780-8b4d-77853a5e40ab", + "status": "Created", + "code": 201, + "header": [ + { + "key": "Date", + "value": "Tue, 10 Mar 2026 12:20:05 GMT" + }, + { + "key": "Server", + "value": "Apache/2.4.66 (Debian)" + }, + { + "key": "X-Content-Type-Options", + "value": "nosniff" + }, + { + "key": "X-Frame-Options", + "value": "SAMEORIGIN" + }, + { + "key": "X-Permitted-Cross-Domain-Policies", + "value": "none" + }, + { + "key": "X-Robots-Tag", + "value": "noindex, nofollow" + }, + { + "key": "Referrer-Policy", + "value": "no-referrer" + }, + { + "key": "X-Powered-By", + "value": "PHP/8.3.30" + }, + { + "key": "Content-Security-Policy", + "value": "default-src 'none';base-uri 'none';manifest-src 'self';frame-ancestors 'none'" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=30403c0a1111615c69d8fc82d3616a25; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=30403c0a1111615c69d8fc82d3616a25; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=30403c0a1111615c69d8fc82d3616a25; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=30403c0a1111615c69d8fc82d3616a25; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=30403c0a1111615c69d8fc82d3616a25; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=9de20a7626e9b849a1d99d32ba08a313; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=9de20a7626e9b849a1d99d32ba08a313; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=9de20a7626e9b849a1d99d32ba08a313; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=9de20a7626e9b849a1d99d32ba08a313; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=9de20a7626e9b849a1d99d32ba08a313; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "X-Request-Id", + "value": "iEkr7ZvZ70ZCN5dgH3L1" + }, + { + "key": "Cache-Control", + "value": "no-cache, no-store, must-revalidate" + }, + { + "key": "Feature-Policy", + "value": "autoplay 'none';camera 'none';fullscreen 'none';geolocation 'none';microphone 'none';payment 'none'" + }, + { + "key": "X-User-Id", + "value": "admin" + }, + { + "key": "Content-Length", + "value": "701" + }, + { + "key": "Keep-Alive", + "value": "timeout=5, max=79" + }, + { + "key": "Connection", + "value": "Keep-Alive" + }, + { + "key": "Content-Type", + "value": "application/json; charset=utf-8" + } + ], + "stream": { + "type": "Buffer", + "data": [ + 123, + 34, + 117, + 114, + 108, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 98, + 101, + 115, + 108, + 117, + 105, + 116, + 101, + 110, + 92, + 47, + 118, + 49, + 92, + 47, + 98, + 101, + 115, + 108, + 117, + 105, + 116, + 101, + 110, + 92, + 47, + 100, + 97, + 100, + 102, + 97, + 101, + 99, + 55, + 45, + 56, + 98, + 53, + 50, + 45, + 52, + 54, + 100, + 100, + 45, + 56, + 97, + 56, + 53, + 45, + 101, + 50, + 51, + 50, + 53, + 56, + 49, + 50, + 55, + 55, + 56, + 53, + 34, + 44, + 34, + 117, + 117, + 105, + 100, + 34, + 58, + 34, + 100, + 97, + 100, + 102, + 97, + 101, + 99, + 55, + 45, + 56, + 98, + 53, + 50, + 45, + 52, + 54, + 100, + 100, + 45, + 56, + 97, + 56, + 53, + 45, + 101, + 50, + 51, + 50, + 53, + 56, + 49, + 50, + 55, + 55, + 56, + 53, + 34, + 44, + 34, + 105, + 100, + 101, + 110, + 116, + 105, + 102, + 105, + 99, + 97, + 116, + 105, + 101, + 34, + 58, + 34, + 66, + 69, + 83, + 76, + 85, + 73, + 84, + 45, + 84, + 66, + 79, + 78, + 76, + 72, + 45, + 50, + 57, + 70, + 55, + 54, + 53, + 34, + 44, + 34, + 116, + 111, + 101, + 108, + 105, + 99, + 104, + 116, + 105, + 110, + 103, + 34, + 58, + 34, + 34, + 44, + 34, + 122, + 97, + 97, + 107, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 122, + 97, + 107, + 101, + 110, + 92, + 47, + 118, + 49, + 92, + 47, + 122, + 97, + 107, + 101, + 110, + 92, + 47, + 99, + 54, + 99, + 55, + 55, + 99, + 102, + 100, + 45, + 102, + 56, + 99, + 48, + 45, + 52, + 51, + 51, + 50, + 45, + 98, + 101, + 97, + 49, + 45, + 97, + 57, + 51, + 53, + 98, + 97, + 99, + 51, + 52, + 51, + 57, + 48, + 34, + 44, + 34, + 98, + 101, + 115, + 108, + 117, + 105, + 116, + 116, + 121, + 112, + 101, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 105, + 92, + 47, + 118, + 49, + 92, + 47, + 98, + 101, + 115, + 108, + 117, + 105, + 116, + 116, + 121, + 112, + 101, + 110, + 92, + 47, + 99, + 97, + 56, + 48, + 102, + 100, + 100, + 57, + 45, + 101, + 49, + 50, + 57, + 45, + 52, + 50, + 48, + 49, + 45, + 98, + 99, + 97, + 57, + 45, + 48, + 100, + 54, + 99, + 97, + 53, + 51, + 53, + 101, + 54, + 99, + 55, + 34, + 44, + 34, + 118, + 101, + 114, + 97, + 110, + 116, + 119, + 111, + 111, + 114, + 100, + 101, + 108, + 105, + 106, + 107, + 101, + 79, + 114, + 103, + 97, + 110, + 105, + 115, + 97, + 116, + 105, + 101, + 34, + 58, + 34, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 34, + 44, + 34, + 100, + 97, + 116, + 117, + 109, + 34, + 58, + 34, + 50, + 48, + 49, + 57, + 45, + 48, + 49, + 45, + 48, + 49, + 34, + 44, + 34, + 105, + 110, + 103, + 97, + 110, + 103, + 115, + 100, + 97, + 116, + 117, + 109, + 34, + 58, + 34, + 50, + 48, + 49, + 56, + 45, + 49, + 48, + 45, + 49, + 48, + 34, + 44, + 34, + 118, + 101, + 114, + 118, + 97, + 108, + 100, + 97, + 116, + 117, + 109, + 34, + 58, + 34, + 50, + 48, + 50, + 53, + 45, + 48, + 57, + 45, + 49, + 54, + 34, + 44, + 34, + 112, + 117, + 98, + 108, + 105, + 99, + 97, + 116, + 105, + 101, + 100, + 97, + 116, + 117, + 109, + 34, + 58, + 34, + 50, + 48, + 50, + 54, + 45, + 48, + 51, + 45, + 49, + 48, + 34, + 44, + 34, + 118, + 101, + 114, + 122, + 101, + 110, + 100, + 100, + 97, + 116, + 117, + 109, + 34, + 58, + 34, + 50, + 48, + 50, + 54, + 45, + 48, + 51, + 45, + 49, + 48, + 34, + 44, + 34, + 98, + 101, + 115, + 116, + 117, + 117, + 114, + 115, + 111, + 114, + 103, + 97, + 97, + 110, + 34, + 58, + 34, + 34, + 125 + ] + }, + "cookie": [], + "responseTime": 207, + "responseSize": 701 + }, + "id": "7f917139-716b-4012-8d6f-27f22753bf70" + }, + { + "cursor": { + "ref": "06eae711-4492-4348-861b-9443b32c52a4", + "length": 313, + "cycles": 1, + "position": 254, + "iteration": 0, + "httpRequestId": "3d93d300-9a28-4849-a448-a922c72bee8c" + }, + "item": { + "id": "59a8bbf5-d0bc-4b9c-83ee-e263eff9e64d", + "name": "Add Resultaat to Zaak", + "request": { + "url": { + "path": [ + "resultaten" + ], + "host": [ + "{{zrc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n\t\"zaak\": \"{{zaak_zonder_archiefnominatie_url}}\",\n\t\"resultaattype\": \"{{current_resultaattype}}\"\n}" + } + }, + "response": [], + "event": [ + { + "listen": "prerequest", + "script": { + "id": "6af2b05a-cbac-4045-86fe-b6aebf60781f", + "type": "text/javascript", + "exec": [ + "// if (!pm.environment.get(\"resultaattype_index\")) {", + "// pm.environment.set(\"resultaattype_index\", 0);", + "// }", + "", + "// pm.environment.set(\"current_resultaattype\", pm.environment.get(\"zaaktype_resultaattypen\")[pm.environment.get(\"resultaattype_index\")])" + ], + "_lastExecutionId": "ac2285f7-c534-49a1-b2ba-04f06a775203" + } + }, + { + "listen": "test", + "script": { + "id": "d2059830-36ce-4959-9508-3223fd4eac70", + "type": "text/javascript", + "exec": [ + "pm.environment.set(\"zaak_resultaat_url\", pm.response.json().url);" + ], + "_lastExecutionId": "91e45eb2-3d16-4112-89a5-1cecab668d65" + } + } + ] + }, + "request": { + "url": { + "protocol": "http", + "port": "8080", + "path": [ + "index.php", + "apps", + "procest", + "api", + "zgw", + "zaken", + "v1", + "resultaten" + ], + "host": [ + "localhost" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Authorization", + "value": "Bearer eyJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJwcm9jZXN0LWFkbWluIiwiY2xpZW50X2lkIjoicHJvY2VzdC1hZG1pbiIsImlhdCI6IjE3NzMxNDUyMDUiLCJ1c2VyX2lkIjoicHJvY2VzdC1hZG1pbiIsInVzZXJfcmVwcmVzZW50YXRpb24iOiIifQ.y-D6VywMLn0Ms7YsRwPBydpVWpN0qHEsObkbkPtdjK8", + "system": true + }, + { + "key": "User-Agent", + "value": "PostmanRuntime/7.39.1", + "system": true + }, + { + "key": "Accept", + "value": "*/*", + "system": true + }, + { + "key": "Cache-Control", + "value": "no-cache", + "system": true + }, + { + "key": "Postman-Token", + "value": "e3a5473e-b440-432a-9cd4-d2e68b95da23", + "system": true + }, + { + "key": "Host", + "value": "localhost:8080", + "system": true + }, + { + "key": "Accept-Encoding", + "value": "gzip, deflate, br", + "system": true + }, + { + "key": "Connection", + "value": "keep-alive", + "system": true + }, + { + "key": "Content-Length", + "value": "257", + "system": true + }, + { + "key": "Cookie", + "value": "ocvp3112b4wg=9de20a7626e9b849a1d99d32ba08a313; oc_sessionPassphrase=LBNdKxRzA0iqoULIruNxDDh2BK3O%2BrCIU8aUmiUcOFvy5Xw1YfjwQNlmBW2IkGwJYtxXh9%2BwDN6vYuGNX07tXzkBtjQJUWTGdzf8AIOUIVxVx5DfyWAQZ7nmYmQv6XSE; nc_sameSiteCookielax=true; nc_sameSiteCookiestrict=true", + "system": true + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n\t\"zaak\": \"http://localhost:8080/index.php/apps/procest/api/zgw/zaken/v1/zaken/c6c77cfd-f8c0-4332-bea1-a935bac34390\",\n\t\"resultaattype\": \"http://localhost:8080/index.php/apps/procest/api/zgw/catalogi/v1/resultaattypen/ef8acca6-26a0-4253-acd8-45c12610ce06\"\n}" + }, + "auth": { + "type": "jwt", + "jwt": [ + { + "type": "string", + "value": "{\r\n \"iss\": \"procest-admin\",\r\n \"client_id\": \"procest-admin\",\r\n \"iat\": \"1773145205\",\r\n \"user_id\": \"procest-admin\",\r\n \"user_representation\": \"\"\r\n}", + "key": "payload" + }, + { + "type": "string", + "value": "procest-admin-secret-key-for-testing", + "key": "secret" + }, + { + "type": "string", + "value": "HS256", + "key": "algorithm" + }, + { + "type": "boolean", + "value": false, + "key": "isSecretBase64Encoded" + }, + { + "type": "string", + "value": "header", + "key": "addTokenTo" + }, + { + "type": "string", + "value": "Bearer", + "key": "headerPrefix" + }, + { + "type": "string", + "value": "token", + "key": "queryParamKey" + }, + { + "type": "string", + "value": "{}", + "key": "header" + } + ] + } + }, + "response": { + "id": "cd4b6b46-36f8-4449-b76a-25a31fc54e78", + "status": "Created", + "code": 201, + "header": [ + { + "key": "Date", + "value": "Tue, 10 Mar 2026 12:20:05 GMT" + }, + { + "key": "Server", + "value": "Apache/2.4.66 (Debian)" + }, + { + "key": "X-Content-Type-Options", + "value": "nosniff" + }, + { + "key": "X-Frame-Options", + "value": "SAMEORIGIN" + }, + { + "key": "X-Permitted-Cross-Domain-Policies", + "value": "none" + }, + { + "key": "X-Robots-Tag", + "value": "noindex, nofollow" + }, + { + "key": "Referrer-Policy", + "value": "no-referrer" + }, + { + "key": "X-Powered-By", + "value": "PHP/8.3.30" + }, + { + "key": "Content-Security-Policy", + "value": "default-src 'none';base-uri 'none';manifest-src 'self';frame-ancestors 'none'" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=9de20a7626e9b849a1d99d32ba08a313; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=9de20a7626e9b849a1d99d32ba08a313; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=9de20a7626e9b849a1d99d32ba08a313; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=9de20a7626e9b849a1d99d32ba08a313; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=9de20a7626e9b849a1d99d32ba08a313; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=be8467164e8a6be90602e008ec051580; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=be8467164e8a6be90602e008ec051580; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=be8467164e8a6be90602e008ec051580; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=be8467164e8a6be90602e008ec051580; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=be8467164e8a6be90602e008ec051580; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "X-Request-Id", + "value": "nH9sz0OMGO7I6Tr4j9Hz" + }, + { + "key": "Cache-Control", + "value": "no-cache, no-store, must-revalidate" + }, + { + "key": "Feature-Policy", + "value": "autoplay 'none';camera 'none';fullscreen 'none';geolocation 'none';microphone 'none';payment 'none'" + }, + { + "key": "X-User-Id", + "value": "admin" + }, + { + "key": "Content-Length", + "value": "464" + }, + { + "key": "Keep-Alive", + "value": "timeout=5, max=78" + }, + { + "key": "Connection", + "value": "Keep-Alive" + }, + { + "key": "Content-Type", + "value": "application/json; charset=utf-8" + } + ], + "stream": { + "type": "Buffer", + "data": [ + 123, + 34, + 117, + 114, + 108, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 122, + 97, + 107, + 101, + 110, + 92, + 47, + 118, + 49, + 92, + 47, + 114, + 101, + 115, + 117, + 108, + 116, + 97, + 116, + 101, + 110, + 92, + 47, + 52, + 100, + 54, + 100, + 54, + 53, + 98, + 57, + 45, + 56, + 52, + 51, + 56, + 45, + 52, + 51, + 53, + 97, + 45, + 57, + 49, + 52, + 51, + 45, + 53, + 49, + 54, + 99, + 56, + 98, + 99, + 53, + 100, + 101, + 55, + 50, + 34, + 44, + 34, + 117, + 117, + 105, + 100, + 34, + 58, + 34, + 52, + 100, + 54, + 100, + 54, + 53, + 98, + 57, + 45, + 56, + 52, + 51, + 56, + 45, + 52, + 51, + 53, + 97, + 45, + 57, + 49, + 52, + 51, + 45, + 53, + 49, + 54, + 99, + 56, + 98, + 99, + 53, + 100, + 101, + 55, + 50, + 34, + 44, + 34, + 122, + 97, + 97, + 107, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 122, + 97, + 107, + 101, + 110, + 92, + 47, + 118, + 49, + 92, + 47, + 122, + 97, + 107, + 101, + 110, + 92, + 47, + 99, + 54, + 99, + 55, + 55, + 99, + 102, + 100, + 45, + 102, + 56, + 99, + 48, + 45, + 52, + 51, + 51, + 50, + 45, + 98, + 101, + 97, + 49, + 45, + 97, + 57, + 51, + 53, + 98, + 97, + 99, + 51, + 52, + 51, + 57, + 48, + 34, + 44, + 34, + 114, + 101, + 115, + 117, + 108, + 116, + 97, + 97, + 116, + 116, + 121, + 112, + 101, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 105, + 92, + 47, + 118, + 49, + 92, + 47, + 114, + 101, + 115, + 117, + 108, + 116, + 97, + 97, + 116, + 116, + 121, + 112, + 101, + 110, + 92, + 47, + 101, + 102, + 56, + 97, + 99, + 99, + 97, + 54, + 45, + 50, + 54, + 97, + 48, + 45, + 52, + 50, + 53, + 51, + 45, + 97, + 99, + 100, + 56, + 45, + 52, + 53, + 99, + 49, + 50, + 54, + 49, + 48, + 99, + 101, + 48, + 54, + 34, + 44, + 34, + 116, + 111, + 101, + 108, + 105, + 99, + 104, + 116, + 105, + 110, + 103, + 34, + 58, + 34, + 34, + 125 + ] + }, + "cookie": [], + "responseTime": 250, + "responseSize": 464 + }, + "id": "59a8bbf5-d0bc-4b9c-83ee-e263eff9e64d" + }, + { + "cursor": { + "ref": "9c28ea31-4044-4989-8f19-db4e244aa0b6", + "length": 313, + "cycles": 1, + "position": 255, + "iteration": 0, + "httpRequestId": "e485f289-1df1-4b3c-b5ef-380f44b70a7d" + }, + "item": { + "id": "312c16a1-a7d0-4959-b68e-36672cdf6ba9", + "name": "Add Eindstatus to Zaak without archiefnominatie", + "request": { + "url": { + "path": [ + "statussen" + ], + "host": [ + "{{zrc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n\t\"zaak\": \"{{zaak_zonder_archiefnominatie_url}}\",\n\t\"statustype\": \"{{current_statustype_url}}\",\n\t\"datumStatusGezet\": \"2018-04-26T13:37:00\"\n}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "f66aff1e-cc88-483a-a9b5-96c256badae6", + "type": "text/javascript", + "exec": [ + "" + ], + "_lastExecutionId": "de3c950a-315e-4bab-804b-8ae77f771228" + } + }, + { + "listen": "prerequest", + "script": { + "id": "92f6eccc-e6a4-4c6c-8bd9-011d8c9a8b1d", + "type": "text/javascript", + "exec": [ + "" + ], + "_lastExecutionId": "7fd4ff46-89bc-4345-b8f1-cb60d21c8400" + } + } + ] + }, + "request": { + "url": { + "protocol": "http", + "port": "8080", + "path": [ + "index.php", + "apps", + "procest", + "api", + "zgw", + "zaken", + "v1", + "statussen" + ], + "host": [ + "localhost" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Authorization", + "value": "Bearer eyJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJwcm9jZXN0LWFkbWluIiwiY2xpZW50X2lkIjoicHJvY2VzdC1hZG1pbiIsImlhdCI6IjE3NzMxNDUyMDYiLCJ1c2VyX2lkIjoicHJvY2VzdC1hZG1pbiIsInVzZXJfcmVwcmVzZW50YXRpb24iOiIifQ.BJ3wJkKeun7z_AE_SsIy5-88y49TZa5uVDemKjA3xXY", + "system": true + }, + { + "key": "User-Agent", + "value": "PostmanRuntime/7.39.1", + "system": true + }, + { + "key": "Accept", + "value": "*/*", + "system": true + }, + { + "key": "Cache-Control", + "value": "no-cache", + "system": true + }, + { + "key": "Postman-Token", + "value": "40d459d1-cafe-4d59-a07e-037a15eff396", + "system": true + }, + { + "key": "Host", + "value": "localhost:8080", + "system": true + }, + { + "key": "Accept-Encoding", + "value": "gzip, deflate, br", + "system": true + }, + { + "key": "Connection", + "value": "keep-alive", + "system": true + }, + { + "key": "Content-Length", + "value": "295", + "system": true + }, + { + "key": "Cookie", + "value": "ocvp3112b4wg=be8467164e8a6be90602e008ec051580; oc_sessionPassphrase=LBNdKxRzA0iqoULIruNxDDh2BK3O%2BrCIU8aUmiUcOFvy5Xw1YfjwQNlmBW2IkGwJYtxXh9%2BwDN6vYuGNX07tXzkBtjQJUWTGdzf8AIOUIVxVx5DfyWAQZ7nmYmQv6XSE; nc_sameSiteCookielax=true; nc_sameSiteCookiestrict=true", + "system": true + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n\t\"zaak\": \"http://localhost:8080/index.php/apps/procest/api/zgw/zaken/v1/zaken/c6c77cfd-f8c0-4332-bea1-a935bac34390\",\n\t\"statustype\": \"http://localhost:8080/index.php/apps/procest/api/zgw/catalogi/v1/statustypen/c4399e67-6cd3-4eb3-acab-ac1f3e0f5403\",\n\t\"datumStatusGezet\": \"2018-04-26T13:37:00\"\n}" + }, + "auth": { + "type": "jwt", + "jwt": [ + { + "type": "string", + "value": "{\r\n \"iss\": \"procest-admin\",\r\n \"client_id\": \"procest-admin\",\r\n \"iat\": \"1773145206\",\r\n \"user_id\": \"procest-admin\",\r\n \"user_representation\": \"\"\r\n}", + "key": "payload" + }, + { + "type": "string", + "value": "procest-admin-secret-key-for-testing", + "key": "secret" + }, + { + "type": "string", + "value": "HS256", + "key": "algorithm" + }, + { + "type": "boolean", + "value": false, + "key": "isSecretBase64Encoded" + }, + { + "type": "string", + "value": "header", + "key": "addTokenTo" + }, + { + "type": "string", + "value": "Bearer", + "key": "headerPrefix" + }, + { + "type": "string", + "value": "token", + "key": "queryParamKey" + }, + { + "type": "string", + "value": "{}", + "key": "header" + } + ] + } + }, + "response": { + "id": "56ae97a7-9597-413d-ab13-0843d5e9c2f8", + "status": "Created", + "code": 201, + "header": [ + { + "key": "Date", + "value": "Tue, 10 Mar 2026 12:20:05 GMT" + }, + { + "key": "Server", + "value": "Apache/2.4.66 (Debian)" + }, + { + "key": "X-Content-Type-Options", + "value": "nosniff" + }, + { + "key": "X-Frame-Options", + "value": "SAMEORIGIN" + }, + { + "key": "X-Permitted-Cross-Domain-Policies", + "value": "none" + }, + { + "key": "X-Robots-Tag", + "value": "noindex, nofollow" + }, + { + "key": "Referrer-Policy", + "value": "no-referrer" + }, + { + "key": "X-Powered-By", + "value": "PHP/8.3.30" + }, + { + "key": "Content-Security-Policy", + "value": "default-src 'none';base-uri 'none';manifest-src 'self';frame-ancestors 'none'" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=be8467164e8a6be90602e008ec051580; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=be8467164e8a6be90602e008ec051580; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=be8467164e8a6be90602e008ec051580; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=be8467164e8a6be90602e008ec051580; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=be8467164e8a6be90602e008ec051580; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=41f7683ea5b4e611515b27df73e6e0ce; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=41f7683ea5b4e611515b27df73e6e0ce; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=41f7683ea5b4e611515b27df73e6e0ce; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=41f7683ea5b4e611515b27df73e6e0ce; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=41f7683ea5b4e611515b27df73e6e0ce; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "X-Request-Id", + "value": "BuNfjXQiRzhx9QykW6q0" + }, + { + "key": "Cache-Control", + "value": "no-cache, no-store, must-revalidate" + }, + { + "key": "Feature-Policy", + "value": "autoplay 'none';camera 'none';fullscreen 'none';geolocation 'none';microphone 'none';payment 'none'" + }, + { + "key": "X-User-Id", + "value": "admin" + }, + { + "key": "Content-Length", + "value": "510" + }, + { + "key": "Keep-Alive", + "value": "timeout=5, max=77" + }, + { + "key": "Connection", + "value": "Keep-Alive" + }, + { + "key": "Content-Type", + "value": "application/json; charset=utf-8" + } + ], + "stream": { + "type": "Buffer", + "data": [ + 123, + 34, + 117, + 114, + 108, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 122, + 97, + 107, + 101, + 110, + 92, + 47, + 118, + 49, + 92, + 47, + 115, + 116, + 97, + 116, + 117, + 115, + 115, + 101, + 110, + 92, + 47, + 48, + 100, + 51, + 54, + 49, + 98, + 49, + 101, + 45, + 54, + 98, + 98, + 98, + 45, + 52, + 99, + 52, + 52, + 45, + 56, + 99, + 100, + 54, + 45, + 52, + 102, + 100, + 54, + 57, + 53, + 53, + 54, + 97, + 97, + 49, + 53, + 34, + 44, + 34, + 117, + 117, + 105, + 100, + 34, + 58, + 34, + 48, + 100, + 51, + 54, + 49, + 98, + 49, + 101, + 45, + 54, + 98, + 98, + 98, + 45, + 52, + 99, + 52, + 52, + 45, + 56, + 99, + 100, + 54, + 45, + 52, + 102, + 100, + 54, + 57, + 53, + 53, + 54, + 97, + 97, + 49, + 53, + 34, + 44, + 34, + 122, + 97, + 97, + 107, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 122, + 97, + 107, + 101, + 110, + 92, + 47, + 118, + 49, + 92, + 47, + 122, + 97, + 107, + 101, + 110, + 92, + 47, + 99, + 54, + 99, + 55, + 55, + 99, + 102, + 100, + 45, + 102, + 56, + 99, + 48, + 45, + 52, + 51, + 51, + 50, + 45, + 98, + 101, + 97, + 49, + 45, + 97, + 57, + 51, + 53, + 98, + 97, + 99, + 51, + 52, + 51, + 57, + 48, + 34, + 44, + 34, + 115, + 116, + 97, + 116, + 117, + 115, + 116, + 121, + 112, + 101, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 105, + 92, + 47, + 118, + 49, + 92, + 47, + 115, + 116, + 97, + 116, + 117, + 115, + 116, + 121, + 112, + 101, + 110, + 92, + 47, + 99, + 52, + 51, + 57, + 57, + 101, + 54, + 55, + 45, + 54, + 99, + 100, + 51, + 45, + 52, + 101, + 98, + 51, + 45, + 97, + 99, + 97, + 98, + 45, + 97, + 99, + 49, + 102, + 51, + 101, + 48, + 102, + 53, + 52, + 48, + 51, + 34, + 44, + 34, + 100, + 97, + 116, + 117, + 109, + 83, + 116, + 97, + 116, + 117, + 115, + 71, + 101, + 122, + 101, + 116, + 34, + 58, + 34, + 50, + 48, + 50, + 54, + 45, + 48, + 51, + 45, + 49, + 48, + 84, + 49, + 50, + 58, + 50, + 48, + 58, + 48, + 53, + 43, + 48, + 48, + 58, + 48, + 48, + 34, + 44, + 34, + 115, + 116, + 97, + 116, + 117, + 115, + 116, + 111, + 101, + 108, + 105, + 99, + 104, + 116, + 105, + 110, + 103, + 34, + 58, + 34, + 34, + 125 + ] + }, + "cookie": [], + "responseTime": 289, + "responseSize": 510 + }, + "id": "312c16a1-a7d0-4959-b68e-36672cdf6ba9" + }, + { + "cursor": { + "ref": "27c198c7-a457-4d38-9afa-c2dcfa28abc0", + "length": 313, + "cycles": 1, + "position": 256, + "iteration": 0, + "httpRequestId": "e1c5210f-bb34-43a4-9e21-e87a427081fb" + }, + "item": { + "id": "8864a293-2594-4fd5-b9a8-aba910ebb609", + "name": "(zrc-021e) Afleidingswijze vervaldatum_besluit", + "request": { + "url": { + "host": [ + "{{zaak_zonder_archiefnominatie_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Accept-Crs", + "value": "EPSG:4326" + } + ], + "method": "GET" + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "13329ca9-4355-4f60-b5ba-d14fcad2c029", + "type": "text/javascript", + "packages": {}, + "exec": [ + "pm.test(\"zrc-021d afleidingswijze vervaldatum besluit\", function() {", + " pm.expect(pm.response.json().archiefactiedatum).to.be.equal(\"2030-09-16\");", + "});" + ], + "_lastExecutionId": "42184437-29ba-459f-beb9-0dc867b8c16d" + } + }, + { + "listen": "prerequest", + "script": { + "id": "fe6fbed3-e761-4d3a-8f39-10ea226fddc3", + "type": "text/javascript", + "packages": {}, + "exec": [ + "" + ], + "_lastExecutionId": "4cfb1904-da2e-4922-83f3-b34228f756f5" + } + } + ] + }, + "request": { + "url": { + "protocol": "http", + "port": "8080", + "path": [ + "index.php", + "apps", + "procest", + "api", + "zgw", + "zaken", + "v1", + "zaken", + "c6c77cfd-f8c0-4332-bea1-a935bac34390" + ], + "host": [ + "localhost" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Accept-Crs", + "value": "EPSG:4326" + }, + { + "key": "Authorization", + "value": "Bearer eyJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJwcm9jZXN0LWFkbWluIiwiY2xpZW50X2lkIjoicHJvY2VzdC1hZG1pbiIsImlhdCI6IjE3NzMxNDUyMDYiLCJ1c2VyX2lkIjoicHJvY2VzdC1hZG1pbiIsInVzZXJfcmVwcmVzZW50YXRpb24iOiIifQ.BJ3wJkKeun7z_AE_SsIy5-88y49TZa5uVDemKjA3xXY", + "system": true + }, + { + "key": "User-Agent", + "value": "PostmanRuntime/7.39.1", + "system": true + }, + { + "key": "Accept", + "value": "*/*", + "system": true + }, + { + "key": "Cache-Control", + "value": "no-cache", + "system": true + }, + { + "key": "Postman-Token", + "value": "ac350a0c-029a-40c8-9aff-bfd4052abb3e", + "system": true + }, + { + "key": "Host", + "value": "localhost:8080", + "system": true + }, + { + "key": "Accept-Encoding", + "value": "gzip, deflate, br", + "system": true + }, + { + "key": "Connection", + "value": "keep-alive", + "system": true + }, + { + "key": "Cookie", + "value": "ocvp3112b4wg=41f7683ea5b4e611515b27df73e6e0ce; oc_sessionPassphrase=LBNdKxRzA0iqoULIruNxDDh2BK3O%2BrCIU8aUmiUcOFvy5Xw1YfjwQNlmBW2IkGwJYtxXh9%2BwDN6vYuGNX07tXzkBtjQJUWTGdzf8AIOUIVxVx5DfyWAQZ7nmYmQv6XSE; nc_sameSiteCookielax=true; nc_sameSiteCookiestrict=true", + "system": true + } + ], + "method": "GET", + "auth": { + "type": "jwt", + "jwt": [ + { + "type": "string", + "value": "{\r\n \"iss\": \"procest-admin\",\r\n \"client_id\": \"procest-admin\",\r\n \"iat\": \"1773145206\",\r\n \"user_id\": \"procest-admin\",\r\n \"user_representation\": \"\"\r\n}", + "key": "payload" + }, + { + "type": "string", + "value": "procest-admin-secret-key-for-testing", + "key": "secret" + }, + { + "type": "string", + "value": "HS256", + "key": "algorithm" + }, + { + "type": "boolean", + "value": false, + "key": "isSecretBase64Encoded" + }, + { + "type": "string", + "value": "header", + "key": "addTokenTo" + }, + { + "type": "string", + "value": "Bearer", + "key": "headerPrefix" + }, + { + "type": "string", + "value": "token", + "key": "queryParamKey" + }, + { + "type": "string", + "value": "{}", + "key": "header" + } + ] + } + }, + "response": { + "id": "60bb3023-8bc1-47c7-9601-8dc460af70f5", + "status": "OK", + "code": 200, + "header": [ + { + "key": "Date", + "value": "Tue, 10 Mar 2026 12:20:06 GMT" + }, + { + "key": "Server", + "value": "Apache/2.4.66 (Debian)" + }, + { + "key": "X-Content-Type-Options", + "value": "nosniff" + }, + { + "key": "X-Frame-Options", + "value": "SAMEORIGIN" + }, + { + "key": "X-Permitted-Cross-Domain-Policies", + "value": "none" + }, + { + "key": "X-Robots-Tag", + "value": "noindex, nofollow" + }, + { + "key": "Referrer-Policy", + "value": "no-referrer" + }, + { + "key": "X-Powered-By", + "value": "PHP/8.3.30" + }, + { + "key": "Content-Security-Policy", + "value": "default-src 'none';base-uri 'none';manifest-src 'self';frame-ancestors 'none'" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=41f7683ea5b4e611515b27df73e6e0ce; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=41f7683ea5b4e611515b27df73e6e0ce; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=41f7683ea5b4e611515b27df73e6e0ce; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=41f7683ea5b4e611515b27df73e6e0ce; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=41f7683ea5b4e611515b27df73e6e0ce; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=87cc0b0bb4f6c1c34528b2c2f6e40b55; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=87cc0b0bb4f6c1c34528b2c2f6e40b55; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=87cc0b0bb4f6c1c34528b2c2f6e40b55; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=87cc0b0bb4f6c1c34528b2c2f6e40b55; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=87cc0b0bb4f6c1c34528b2c2f6e40b55; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "X-Request-Id", + "value": "gUMr655joy0CSQpUySfh" + }, + { + "key": "Cache-Control", + "value": "no-cache, no-store, must-revalidate" + }, + { + "key": "Feature-Policy", + "value": "autoplay 'none';camera 'none';fullscreen 'none';geolocation 'none';microphone 'none';payment 'none'" + }, + { + "key": "X-User-Id", + "value": "admin" + }, + { + "key": "Content-Encoding", + "value": "gzip" + }, + { + "key": "Content-Length", + "value": "457" + }, + { + "key": "Keep-Alive", + "value": "timeout=5, max=76" + }, + { + "key": "Connection", + "value": "Keep-Alive" + }, + { + "key": "Content-Type", + "value": "application/json; charset=utf-8" + } + ], + "stream": { + "type": "Buffer", + "data": [ + 123, + 34, + 117, + 114, + 108, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 122, + 97, + 107, + 101, + 110, + 92, + 47, + 118, + 49, + 92, + 47, + 122, + 97, + 107, + 101, + 110, + 92, + 47, + 99, + 54, + 99, + 55, + 55, + 99, + 102, + 100, + 45, + 102, + 56, + 99, + 48, + 45, + 52, + 51, + 51, + 50, + 45, + 98, + 101, + 97, + 49, + 45, + 97, + 57, + 51, + 53, + 98, + 97, + 99, + 51, + 52, + 51, + 57, + 48, + 34, + 44, + 34, + 117, + 117, + 105, + 100, + 34, + 58, + 34, + 99, + 54, + 99, + 55, + 55, + 99, + 102, + 100, + 45, + 102, + 56, + 99, + 48, + 45, + 52, + 51, + 51, + 50, + 45, + 98, + 101, + 97, + 49, + 45, + 97, + 57, + 51, + 53, + 98, + 97, + 99, + 51, + 52, + 51, + 57, + 48, + 34, + 44, + 34, + 105, + 100, + 101, + 110, + 116, + 105, + 102, + 105, + 99, + 97, + 116, + 105, + 101, + 34, + 58, + 34, + 90, + 65, + 65, + 75, + 45, + 84, + 66, + 79, + 78, + 76, + 71, + 45, + 51, + 51, + 68, + 53, + 56, + 57, + 34, + 44, + 34, + 111, + 109, + 115, + 99, + 104, + 114, + 105, + 106, + 118, + 105, + 110, + 103, + 34, + 58, + 34, + 115, + 116, + 114, + 105, + 110, + 103, + 34, + 44, + 34, + 116, + 111, + 101, + 108, + 105, + 99, + 104, + 116, + 105, + 110, + 103, + 34, + 58, + 34, + 115, + 116, + 114, + 105, + 110, + 103, + 34, + 44, + 34, + 122, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 105, + 92, + 47, + 118, + 49, + 92, + 47, + 122, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 110, + 92, + 47, + 54, + 52, + 49, + 51, + 49, + 55, + 57, + 52, + 45, + 52, + 55, + 54, + 97, + 45, + 52, + 50, + 98, + 56, + 45, + 56, + 102, + 56, + 49, + 45, + 99, + 49, + 100, + 52, + 50, + 55, + 50, + 101, + 56, + 52, + 49, + 56, + 34, + 44, + 34, + 114, + 101, + 103, + 105, + 115, + 116, + 114, + 97, + 116, + 105, + 101, + 100, + 97, + 116, + 117, + 109, + 34, + 58, + 34, + 50, + 48, + 50, + 54, + 45, + 48, + 51, + 45, + 49, + 48, + 84, + 49, + 50, + 58, + 50, + 48, + 58, + 48, + 52, + 43, + 48, + 48, + 58, + 48, + 48, + 34, + 44, + 34, + 115, + 116, + 97, + 114, + 116, + 100, + 97, + 116, + 117, + 109, + 34, + 58, + 34, + 50, + 48, + 49, + 57, + 45, + 48, + 52, + 45, + 48, + 57, + 34, + 44, + 34, + 101, + 105, + 110, + 100, + 100, + 97, + 116, + 117, + 109, + 34, + 58, + 34, + 50, + 48, + 49, + 56, + 45, + 48, + 52, + 45, + 50, + 54, + 34, + 44, + 34, + 101, + 105, + 110, + 100, + 100, + 97, + 116, + 117, + 109, + 71, + 101, + 112, + 108, + 97, + 110, + 100, + 34, + 58, + 34, + 50, + 48, + 49, + 57, + 45, + 48, + 52, + 45, + 50, + 48, + 34, + 44, + 34, + 117, + 105, + 116, + 101, + 114, + 108, + 105, + 106, + 107, + 101, + 69, + 105, + 110, + 100, + 100, + 97, + 116, + 117, + 109, + 65, + 102, + 100, + 111, + 101, + 110, + 105, + 110, + 103, + 34, + 58, + 34, + 50, + 48, + 49, + 57, + 45, + 48, + 52, + 45, + 48, + 57, + 34, + 44, + 34, + 118, + 101, + 114, + 116, + 114, + 111, + 117, + 119, + 101, + 108, + 105, + 106, + 107, + 104, + 101, + 105, + 100, + 97, + 97, + 110, + 100, + 117, + 105, + 100, + 105, + 110, + 103, + 34, + 58, + 34, + 103, + 101, + 104, + 101, + 105, + 109, + 34, + 44, + 34, + 118, + 101, + 114, + 97, + 110, + 116, + 119, + 111, + 111, + 114, + 100, + 101, + 108, + 105, + 106, + 107, + 101, + 79, + 114, + 103, + 97, + 110, + 105, + 115, + 97, + 116, + 105, + 101, + 34, + 58, + 34, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 34, + 44, + 34, + 97, + 114, + 99, + 104, + 105, + 101, + 102, + 110, + 111, + 109, + 105, + 110, + 97, + 116, + 105, + 101, + 34, + 58, + 34, + 118, + 101, + 114, + 110, + 105, + 101, + 116, + 105, + 103, + 101, + 110, + 34, + 44, + 34, + 97, + 114, + 99, + 104, + 105, + 101, + 102, + 97, + 99, + 116, + 105, + 101, + 100, + 97, + 116, + 117, + 109, + 34, + 58, + 34, + 50, + 48, + 51, + 48, + 45, + 48, + 57, + 45, + 49, + 54, + 34, + 44, + 34, + 97, + 114, + 99, + 104, + 105, + 101, + 102, + 115, + 116, + 97, + 116, + 117, + 115, + 34, + 58, + 34, + 110, + 111, + 103, + 95, + 116, + 101, + 95, + 97, + 114, + 99, + 104, + 105, + 118, + 101, + 114, + 101, + 110, + 34, + 44, + 34, + 98, + 101, + 116, + 97, + 108, + 105, + 110, + 103, + 115, + 105, + 110, + 100, + 105, + 99, + 97, + 116, + 105, + 101, + 34, + 58, + 34, + 103, + 101, + 104, + 101, + 101, + 108, + 34, + 44, + 34, + 108, + 97, + 97, + 116, + 115, + 116, + 101, + 66, + 101, + 116, + 97, + 97, + 108, + 100, + 97, + 116, + 117, + 109, + 34, + 58, + 34, + 50, + 48, + 49, + 57, + 45, + 48, + 49, + 45, + 48, + 49, + 34, + 44, + 34, + 104, + 111, + 111, + 102, + 100, + 122, + 97, + 97, + 107, + 34, + 58, + 110, + 117, + 108, + 108, + 125 + ] + }, + "cookie": [], + "responseTime": 116, + "responseSize": 830 + }, + "id": "8864a293-2594-4fd5-b9a8-aba910ebb609", + "assertions": [ + { + "assertion": "zrc-021d afleidingswijze vervaldatum besluit", + "skipped": false + } + ] + }, + { + "cursor": { + "ref": "2d1725e1-e231-4b7a-8e05-3b5e89ce421e", + "length": 313, + "cycles": 1, + "position": 257, + "iteration": 0, + "httpRequestId": "ac8dd11b-98be-418c-b2f2-cce934b214f3" + }, + "item": { + "id": "2892d305-7ad6-4a9b-971e-22ed9e084afb", + "name": "Create Zaaktype procestermijn vast_te_leggen_datum", + "request": { + "url": { + "path": [ + "zaaktypen" + ], + "host": [ + "{{ztc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{{request_body}}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "9c4bbcfc-2fb2-4e23-a160-b28870bf6bfa", + "type": "text/javascript", + "exec": [ + "var res = pm.response.json();", + "pm.environment.set(\"zaaktype_procestermijn_vast_te_leggen_datum_url\", res.url);" + ], + "_lastExecutionId": "83114555-84bf-4ee4-914b-1bdb11fa910f" + } + }, + { + "listen": "prerequest", + "script": { + "id": "3d3b1af6-deaa-4056-a022-5c5a74705ce6", + "type": "text/javascript", + "exec": [ + "// Retrieve the Zaak body template and modify as needed", + "var body = JSON.parse(pm.environment.get(\"zaaktype_body\"));", + "body.besluittypen = [];", + "body.omschrijving = \"Zaaktype for archiving tests vast_te_leggen_datum\";", + "body.selectielijstProcestype = pm.environment.get(\"procestype_procestermijn_vast_te_leggen_datum_url\");", + "var uuid = require('uuid');", + "var myUUID = uuid.v4(); ", + "body.identificatie=myUUID", + "// Store the modified Zaak body, allowing it to be used in the main request", + "pm.environment.set(\"request_body\", JSON.stringify(body));" + ], + "_lastExecutionId": "e74d10ba-bfa0-4d57-9691-d613ed6bbf12" + } + } + ] + }, + "request": { + "url": { + "protocol": "http", + "port": "8080", + "path": [ + "index.php", + "apps", + "procest", + "api", + "zgw", + "catalogi", + "v1", + "zaaktypen" + ], + "host": [ + "localhost" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Authorization", + "value": "Bearer eyJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJwcm9jZXN0LWFkbWluIiwiY2xpZW50X2lkIjoicHJvY2VzdC1hZG1pbiIsImlhdCI6IjE3NzMxNDUyMDYiLCJ1c2VyX2lkIjoicHJvY2VzdC1hZG1pbiIsInVzZXJfcmVwcmVzZW50YXRpb24iOiIifQ.BJ3wJkKeun7z_AE_SsIy5-88y49TZa5uVDemKjA3xXY", + "system": true + }, + { + "key": "User-Agent", + "value": "PostmanRuntime/7.39.1", + "system": true + }, + { + "key": "Accept", + "value": "*/*", + "system": true + }, + { + "key": "Cache-Control", + "value": "no-cache", + "system": true + }, + { + "key": "Postman-Token", + "value": "4c33501c-ec7c-4948-be81-7ddb3fe6c37e", + "system": true + }, + { + "key": "Host", + "value": "localhost:8080", + "system": true + }, + { + "key": "Accept-Encoding", + "value": "gzip, deflate, br", + "system": true + }, + { + "key": "Connection", + "value": "keep-alive", + "system": true + }, + { + "key": "Content-Length", + "value": "1127", + "system": true + }, + { + "key": "Cookie", + "value": "ocvp3112b4wg=87cc0b0bb4f6c1c34528b2c2f6e40b55; oc_sessionPassphrase=LBNdKxRzA0iqoULIruNxDDh2BK3O%2BrCIU8aUmiUcOFvy5Xw1YfjwQNlmBW2IkGwJYtxXh9%2BwDN6vYuGNX07tXzkBtjQJUWTGdzf8AIOUIVxVx5DfyWAQZ7nmYmQv6XSE; nc_sameSiteCookielax=true; nc_sameSiteCookiestrict=true", + "system": true + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\"identificatie\":\"754e6663-2300-458a-961e-5a3b817d75ca\",\"omschrijving\":\"Zaaktype for archiving tests vast_te_leggen_datum\",\"vertrouwelijkheidaanduiding\":\"openbaar\",\"doel\":\"test doel\",\"verantwoordelijke\":\"X\",\"aanleiding\":\"test aanleiding\",\"indicatieInternOfExtern\":\"extern\",\"handelingInitiator\":\"indienen\",\"onderwerp\":\"openbare ruimte\",\"handelingBehandelaar\":\"behandelen\",\"doorlooptijd\":\"P10D\",\"opschortingEnAanhoudingMogelijk\":false,\"verlengingMogelijk\":true,\"publicatieIndicatie\":false,\"productenOfDiensten\":[\"https://ref.tst.vng.cloud/standaard/\"],\"selectielijstProcestype\":\"https://selectielijst.openzaak.nl/api/v1/procestypen/838e405a-9b12-43c4-a985-d7a7490d422e\",\"referentieproces\":{\"naam\":\"test\",\"link\":\"\"},\"deelzaaktypen\":[\"cae6f26a-1321-4bff-b314-421ddf7775b9\"],\"catalogus\":\"http://localhost:8080/index.php/apps/procest/api/zgw/catalogi/v1/catalogussen/5057408f-fd76-469e-8646-bcc4ba2efa8d\",\"statustypen\":[],\"resultaattypen\":[],\"eigenschappen\":[],\"informatieobjecttypen\":[],\"besluittypen\":[],\"gerelateerdeZaaktypen\":[],\"beginGeldigheid\":\"2019-01-01\",\"versiedatum\":\"2019-01-01\",\"concept\":true,\"verlengingstermijn\":\"P5D\"}" + }, + "auth": { + "type": "jwt", + "jwt": [ + { + "type": "string", + "value": "{\r\n \"iss\": \"procest-admin\",\r\n \"client_id\": \"procest-admin\",\r\n \"iat\": \"1773145206\",\r\n \"user_id\": \"procest-admin\",\r\n \"user_representation\": \"\"\r\n}", + "key": "payload" + }, + { + "type": "string", + "value": "procest-admin-secret-key-for-testing", + "key": "secret" + }, + { + "type": "string", + "value": "HS256", + "key": "algorithm" + }, + { + "type": "boolean", + "value": false, + "key": "isSecretBase64Encoded" + }, + { + "type": "string", + "value": "header", + "key": "addTokenTo" + }, + { + "type": "string", + "value": "Bearer", + "key": "headerPrefix" + }, + { + "type": "string", + "value": "token", + "key": "queryParamKey" + }, + { + "type": "string", + "value": "{}", + "key": "header" + } + ] + } + }, + "response": { + "id": "810f59e1-0994-4785-9be2-7d89b316fb93", + "status": "Created", + "code": 201, + "header": [ + { + "key": "Date", + "value": "Tue, 10 Mar 2026 12:20:06 GMT" + }, + { + "key": "Server", + "value": "Apache/2.4.66 (Debian)" + }, + { + "key": "X-Content-Type-Options", + "value": "nosniff" + }, + { + "key": "X-Frame-Options", + "value": "SAMEORIGIN" + }, + { + "key": "X-Permitted-Cross-Domain-Policies", + "value": "none" + }, + { + "key": "X-Robots-Tag", + "value": "noindex, nofollow" + }, + { + "key": "Referrer-Policy", + "value": "no-referrer" + }, + { + "key": "X-Powered-By", + "value": "PHP/8.3.30" + }, + { + "key": "Content-Security-Policy", + "value": "default-src 'none';base-uri 'none';manifest-src 'self';frame-ancestors 'none'" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=87cc0b0bb4f6c1c34528b2c2f6e40b55; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=87cc0b0bb4f6c1c34528b2c2f6e40b55; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=87cc0b0bb4f6c1c34528b2c2f6e40b55; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=87cc0b0bb4f6c1c34528b2c2f6e40b55; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=87cc0b0bb4f6c1c34528b2c2f6e40b55; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=d766a7280f3364f82dee19021aa6b2f5; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=d766a7280f3364f82dee19021aa6b2f5; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=d766a7280f3364f82dee19021aa6b2f5; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=d766a7280f3364f82dee19021aa6b2f5; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=d766a7280f3364f82dee19021aa6b2f5; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "X-Request-Id", + "value": "mBGLApzm5uXbkv16SnXY" + }, + { + "key": "Cache-Control", + "value": "no-cache, no-store, must-revalidate" + }, + { + "key": "Feature-Policy", + "value": "autoplay 'none';camera 'none';fullscreen 'none';geolocation 'none';microphone 'none';payment 'none'" + }, + { + "key": "X-User-Id", + "value": "admin" + }, + { + "key": "Content-Length", + "value": "1375" + }, + { + "key": "Keep-Alive", + "value": "timeout=5, max=75" + }, + { + "key": "Connection", + "value": "Keep-Alive" + }, + { + "key": "Content-Type", + "value": "application/json; charset=utf-8" + } + ], + "stream": { + "type": "Buffer", + "data": [ + 123, + 34, + 117, + 114, + 108, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 105, + 92, + 47, + 118, + 49, + 92, + 47, + 122, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 110, + 92, + 47, + 57, + 97, + 51, + 51, + 100, + 50, + 48, + 100, + 45, + 50, + 51, + 102, + 56, + 45, + 52, + 100, + 55, + 52, + 45, + 56, + 53, + 56, + 50, + 45, + 53, + 101, + 56, + 57, + 56, + 102, + 54, + 49, + 54, + 54, + 56, + 56, + 34, + 44, + 34, + 117, + 117, + 105, + 100, + 34, + 58, + 34, + 57, + 97, + 51, + 51, + 100, + 50, + 48, + 100, + 45, + 50, + 51, + 102, + 56, + 45, + 52, + 100, + 55, + 52, + 45, + 56, + 53, + 56, + 50, + 45, + 53, + 101, + 56, + 57, + 56, + 102, + 54, + 49, + 54, + 54, + 56, + 56, + 34, + 44, + 34, + 105, + 100, + 101, + 110, + 116, + 105, + 102, + 105, + 99, + 97, + 116, + 105, + 101, + 34, + 58, + 34, + 55, + 53, + 52, + 101, + 54, + 54, + 54, + 51, + 45, + 50, + 51, + 48, + 48, + 45, + 52, + 53, + 56, + 97, + 45, + 57, + 54, + 49, + 101, + 45, + 53, + 97, + 51, + 98, + 56, + 49, + 55, + 100, + 55, + 53, + 99, + 97, + 34, + 44, + 34, + 111, + 109, + 115, + 99, + 104, + 114, + 105, + 106, + 118, + 105, + 110, + 103, + 34, + 58, + 34, + 90, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 32, + 102, + 111, + 114, + 32, + 97, + 114, + 99, + 104, + 105, + 118, + 105, + 110, + 103, + 32, + 116, + 101, + 115, + 116, + 115, + 32, + 118, + 97, + 115, + 116, + 95, + 116, + 101, + 95, + 108, + 101, + 103, + 103, + 101, + 110, + 95, + 100, + 97, + 116, + 117, + 109, + 34, + 44, + 34, + 111, + 109, + 115, + 99, + 104, + 114, + 105, + 106, + 118, + 105, + 110, + 103, + 71, + 101, + 110, + 101, + 114, + 105, + 101, + 107, + 34, + 58, + 34, + 34, + 44, + 34, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 117, + 115, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 105, + 92, + 47, + 118, + 49, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 117, + 115, + 115, + 101, + 110, + 92, + 47, + 53, + 48, + 53, + 55, + 52, + 48, + 56, + 102, + 45, + 102, + 100, + 55, + 54, + 45, + 52, + 54, + 57, + 101, + 45, + 56, + 54, + 52, + 54, + 45, + 98, + 99, + 99, + 52, + 98, + 97, + 50, + 101, + 102, + 97, + 56, + 100, + 34, + 44, + 34, + 100, + 111, + 101, + 108, + 34, + 58, + 34, + 116, + 101, + 115, + 116, + 32, + 100, + 111, + 101, + 108, + 34, + 44, + 34, + 97, + 97, + 110, + 108, + 101, + 105, + 100, + 105, + 110, + 103, + 34, + 58, + 34, + 116, + 101, + 115, + 116, + 32, + 97, + 97, + 110, + 108, + 101, + 105, + 100, + 105, + 110, + 103, + 34, + 44, + 34, + 111, + 110, + 100, + 101, + 114, + 119, + 101, + 114, + 112, + 34, + 58, + 34, + 111, + 112, + 101, + 110, + 98, + 97, + 114, + 101, + 32, + 114, + 117, + 105, + 109, + 116, + 101, + 34, + 44, + 34, + 100, + 111, + 111, + 114, + 108, + 111, + 111, + 112, + 116, + 105, + 106, + 100, + 34, + 58, + 34, + 80, + 49, + 48, + 68, + 34, + 44, + 34, + 118, + 101, + 114, + 116, + 114, + 111, + 117, + 119, + 101, + 108, + 105, + 106, + 107, + 104, + 101, + 105, + 100, + 97, + 97, + 110, + 100, + 117, + 105, + 100, + 105, + 110, + 103, + 34, + 58, + 34, + 111, + 112, + 101, + 110, + 98, + 97, + 97, + 114, + 34, + 44, + 34, + 99, + 111, + 110, + 99, + 101, + 112, + 116, + 34, + 58, + 116, + 114, + 117, + 101, + 44, + 34, + 98, + 101, + 103, + 105, + 110, + 71, + 101, + 108, + 100, + 105, + 103, + 104, + 101, + 105, + 100, + 34, + 58, + 34, + 50, + 48, + 49, + 57, + 45, + 48, + 49, + 45, + 48, + 49, + 34, + 44, + 34, + 101, + 105, + 110, + 100, + 101, + 71, + 101, + 108, + 100, + 105, + 103, + 104, + 101, + 105, + 100, + 34, + 58, + 34, + 50, + 48, + 50, + 54, + 45, + 48, + 51, + 45, + 49, + 48, + 34, + 44, + 34, + 104, + 97, + 110, + 100, + 101, + 108, + 105, + 110, + 103, + 73, + 110, + 105, + 116, + 105, + 97, + 116, + 111, + 114, + 34, + 58, + 34, + 105, + 110, + 100, + 105, + 101, + 110, + 101, + 110, + 34, + 44, + 34, + 105, + 110, + 100, + 105, + 99, + 97, + 116, + 105, + 101, + 73, + 110, + 116, + 101, + 114, + 110, + 79, + 102, + 69, + 120, + 116, + 101, + 114, + 110, + 34, + 58, + 34, + 101, + 120, + 116, + 101, + 114, + 110, + 34, + 44, + 34, + 104, + 97, + 110, + 100, + 101, + 108, + 105, + 110, + 103, + 66, + 101, + 104, + 97, + 110, + 100, + 101, + 108, + 97, + 97, + 114, + 34, + 58, + 34, + 98, + 101, + 104, + 97, + 110, + 100, + 101, + 108, + 101, + 110, + 34, + 44, + 34, + 111, + 112, + 115, + 99, + 104, + 111, + 114, + 116, + 105, + 110, + 103, + 69, + 110, + 65, + 97, + 110, + 104, + 111, + 117, + 100, + 105, + 110, + 103, + 77, + 111, + 103, + 101, + 108, + 105, + 106, + 107, + 34, + 58, + 102, + 97, + 108, + 115, + 101, + 44, + 34, + 118, + 101, + 114, + 108, + 101, + 110, + 103, + 105, + 110, + 103, + 77, + 111, + 103, + 101, + 108, + 105, + 106, + 107, + 34, + 58, + 116, + 114, + 117, + 101, + 44, + 34, + 118, + 101, + 114, + 108, + 101, + 110, + 103, + 105, + 110, + 103, + 115, + 116, + 101, + 114, + 109, + 105, + 106, + 110, + 34, + 58, + 34, + 80, + 53, + 68, + 34, + 44, + 34, + 112, + 117, + 98, + 108, + 105, + 99, + 97, + 116, + 105, + 101, + 73, + 110, + 100, + 105, + 99, + 97, + 116, + 105, + 101, + 34, + 58, + 102, + 97, + 108, + 115, + 101, + 44, + 34, + 112, + 114, + 111, + 100, + 117, + 99, + 116, + 101, + 110, + 79, + 102, + 68, + 105, + 101, + 110, + 115, + 116, + 101, + 110, + 34, + 58, + 91, + 34, + 104, + 116, + 116, + 112, + 115, + 58, + 92, + 47, + 92, + 47, + 114, + 101, + 102, + 46, + 116, + 115, + 116, + 46, + 118, + 110, + 103, + 46, + 99, + 108, + 111, + 117, + 100, + 92, + 47, + 115, + 116, + 97, + 110, + 100, + 97, + 97, + 114, + 100, + 92, + 47, + 34, + 93, + 44, + 34, + 115, + 101, + 108, + 101, + 99, + 116, + 105, + 101, + 108, + 105, + 106, + 115, + 116, + 80, + 114, + 111, + 99, + 101, + 115, + 116, + 121, + 112, + 101, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 115, + 58, + 92, + 47, + 92, + 47, + 115, + 101, + 108, + 101, + 99, + 116, + 105, + 101, + 108, + 105, + 106, + 115, + 116, + 46, + 111, + 112, + 101, + 110, + 122, + 97, + 97, + 107, + 46, + 110, + 108, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 118, + 49, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 121, + 112, + 101, + 110, + 92, + 47, + 56, + 51, + 56, + 101, + 52, + 48, + 53, + 97, + 45, + 57, + 98, + 49, + 50, + 45, + 52, + 51, + 99, + 52, + 45, + 97, + 57, + 56, + 53, + 45, + 100, + 55, + 97, + 55, + 52, + 57, + 48, + 100, + 52, + 50, + 50, + 101, + 34, + 44, + 34, + 114, + 101, + 102, + 101, + 114, + 101, + 110, + 116, + 105, + 101, + 112, + 114, + 111, + 99, + 101, + 115, + 34, + 58, + 123, + 34, + 108, + 105, + 110, + 107, + 34, + 58, + 34, + 34, + 44, + 34, + 110, + 97, + 97, + 109, + 34, + 58, + 34, + 116, + 101, + 115, + 116, + 34, + 125, + 44, + 34, + 118, + 101, + 114, + 97, + 110, + 116, + 119, + 111, + 111, + 114, + 100, + 101, + 108, + 105, + 106, + 107, + 101, + 34, + 58, + 34, + 88, + 34, + 44, + 34, + 103, + 101, + 114, + 101, + 108, + 97, + 116, + 101, + 101, + 114, + 100, + 101, + 90, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 98, + 101, + 115, + 108, + 117, + 105, + 116, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 105, + 110, + 102, + 111, + 114, + 109, + 97, + 116, + 105, + 101, + 111, + 98, + 106, + 101, + 99, + 116, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 100, + 101, + 101, + 108, + 122, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 116, + 111, + 101, + 108, + 105, + 99, + 104, + 116, + 105, + 110, + 103, + 34, + 58, + 34, + 34, + 44, + 34, + 118, + 101, + 114, + 115, + 105, + 101, + 100, + 97, + 116, + 117, + 109, + 34, + 58, + 34, + 50, + 48, + 49, + 57, + 45, + 48, + 49, + 45, + 48, + 49, + 34, + 44, + 34, + 101, + 105, + 103, + 101, + 110, + 115, + 99, + 104, + 97, + 112, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 115, + 116, + 97, + 116, + 117, + 115, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 114, + 101, + 115, + 117, + 108, + 116, + 97, + 97, + 116, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 114, + 111, + 108, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 125 + ] + }, + "cookie": [], + "responseTime": 370, + "responseSize": 1375 + }, + "id": "2892d305-7ad6-4a9b-971e-22ed9e084afb" + }, + { + "cursor": { + "ref": "bb796c22-a29f-4a94-8d32-89dacf81901f", + "length": 313, + "cycles": 1, + "position": 258, + "iteration": 0, + "httpRequestId": "32c5fe77-ee08-491d-9690-d20f3bb7c370" + }, + "item": { + "id": "7d48a77f-d150-44f3-9676-f3947fe23f7e", + "name": "Create Resultaattype procestermijn vast_te_leggen_datum", + "request": { + "url": { + "path": [ + "resultaattypen" + ], + "host": [ + "{{ztc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n\t\"zaaktype\": \"{{zaaktype_procestermijn_vast_te_leggen_datum_url}}\",\n\t\"omschrijving\": \"Test\",\n\t\"resultaattypeomschrijving\": \"https://referentielijsten.roxit.nl/api/v1/resultaattypeomschrijvingen/cad65ef5-6db5-404f-8c6b-8b76d7af40f5\",\n\t\"selectielijstklasse\": \"{{selectielijstklasse_procestermijn_vast_te_leggen_datum_url}}\",\n\t\"brondatumArchiefprocedure\": {\n\t\t\"afleidingswijze\": \"ander_datumkenmerk\",\n\t\t\"procestermijn\": null,\n\t\t\"datumkenmerk\": \"identificatie\",\n\t\t\"einddatumBekend\": false,\n\t\t\"objecttype\": \"pand\",\n\t\t\"registratie\": \"test\"\n\t},\"besluittypen\":[]\n}" + } + }, + "response": [], + "event": [ + { + "listen": "prerequest", + "script": { + "id": "6499d324-bfea-42ee-8ad6-12295c5229dd", + "type": "text/javascript", + "packages": {}, + "exec": [ + "" + ], + "_lastExecutionId": "86e86a31-dc4f-4b5b-94f9-1f5f21eee0ec" + } + }, + { + "listen": "test", + "script": { + "id": "bb5b8781-83d5-4267-8ffe-5385087fbd99", + "type": "text/javascript", + "packages": {}, + "exec": [ + "var jsonData = pm.response.json();", + "", + "pm.environment.set(\"current_resultaattype\", jsonData.url);", + "pm.environment.set(\"resultaattype_archiefnominatie\", jsonData.archiefnominatie);", + "pm.environment.set(\"resultaattype_archiefactietermijn\", jsonData.archiefactietermijn);", + "pm.environment.set(\"resultaattype_brondatumArchiefprocedure\", jsonData.brondatumArchiefprocedure);" + ], + "_lastExecutionId": "15125c02-a2be-40fa-88bd-5c18d478167b" + } + } + ] + }, + "request": { + "url": { + "protocol": "http", + "port": "8080", + "path": [ + "index.php", + "apps", + "procest", + "api", + "zgw", + "catalogi", + "v1", + "resultaattypen" + ], + "host": [ + "localhost" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Authorization", + "value": "Bearer eyJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJwcm9jZXN0LWFkbWluIiwiY2xpZW50X2lkIjoicHJvY2VzdC1hZG1pbiIsImlhdCI6IjE3NzMxNDUyMDciLCJ1c2VyX2lkIjoicHJvY2VzdC1hZG1pbiIsInVzZXJfcmVwcmVzZW50YXRpb24iOiIifQ.JvgrNj-M3eAv8mbU9Mo4HZqE_0IjbVXT5txBDoevPfY", + "system": true + }, + { + "key": "User-Agent", + "value": "PostmanRuntime/7.39.1", + "system": true + }, + { + "key": "Accept", + "value": "*/*", + "system": true + }, + { + "key": "Cache-Control", + "value": "no-cache", + "system": true + }, + { + "key": "Postman-Token", + "value": "707fc75c-9bc0-472c-a1bc-431a12ad39a5", + "system": true + }, + { + "key": "Host", + "value": "localhost:8080", + "system": true + }, + { + "key": "Accept-Encoding", + "value": "gzip, deflate, br", + "system": true + }, + { + "key": "Connection", + "value": "keep-alive", + "system": true + }, + { + "key": "Content-Length", + "value": "644", + "system": true + }, + { + "key": "Cookie", + "value": "ocvp3112b4wg=d766a7280f3364f82dee19021aa6b2f5; oc_sessionPassphrase=LBNdKxRzA0iqoULIruNxDDh2BK3O%2BrCIU8aUmiUcOFvy5Xw1YfjwQNlmBW2IkGwJYtxXh9%2BwDN6vYuGNX07tXzkBtjQJUWTGdzf8AIOUIVxVx5DfyWAQZ7nmYmQv6XSE; nc_sameSiteCookielax=true; nc_sameSiteCookiestrict=true", + "system": true + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n\t\"zaaktype\": \"http://localhost:8080/index.php/apps/procest/api/zgw/catalogi/v1/zaaktypen/9a33d20d-23f8-4d74-8582-5e898f616688\",\n\t\"omschrijving\": \"Test\",\n\t\"resultaattypeomschrijving\": \"https://referentielijsten.roxit.nl/api/v1/resultaattypeomschrijvingen/cad65ef5-6db5-404f-8c6b-8b76d7af40f5\",\n\t\"selectielijstklasse\": \"https://selectielijst.openzaak.nl/api/v1/resultaten/80ffe8cb-e430-4ae9-a48b-34a9ef21e3cd\",\n\t\"brondatumArchiefprocedure\": {\n\t\t\"afleidingswijze\": \"ander_datumkenmerk\",\n\t\t\"procestermijn\": null,\n\t\t\"datumkenmerk\": \"identificatie\",\n\t\t\"einddatumBekend\": false,\n\t\t\"objecttype\": \"pand\",\n\t\t\"registratie\": \"test\"\n\t},\"besluittypen\":[]\n}" + }, + "auth": { + "type": "jwt", + "jwt": [ + { + "type": "string", + "value": "{\r\n \"iss\": \"procest-admin\",\r\n \"client_id\": \"procest-admin\",\r\n \"iat\": \"1773145207\",\r\n \"user_id\": \"procest-admin\",\r\n \"user_representation\": \"\"\r\n}", + "key": "payload" + }, + { + "type": "string", + "value": "procest-admin-secret-key-for-testing", + "key": "secret" + }, + { + "type": "string", + "value": "HS256", + "key": "algorithm" + }, + { + "type": "boolean", + "value": false, + "key": "isSecretBase64Encoded" + }, + { + "type": "string", + "value": "header", + "key": "addTokenTo" + }, + { + "type": "string", + "value": "Bearer", + "key": "headerPrefix" + }, + { + "type": "string", + "value": "token", + "key": "queryParamKey" + }, + { + "type": "string", + "value": "{}", + "key": "header" + } + ] + } + }, + "response": { + "id": "ee2142e4-cef4-417a-bfe3-87b30bdbf012", + "status": "Created", + "code": 201, + "header": [ + { + "key": "Date", + "value": "Tue, 10 Mar 2026 12:20:06 GMT" + }, + { + "key": "Server", + "value": "Apache/2.4.66 (Debian)" + }, + { + "key": "X-Content-Type-Options", + "value": "nosniff" + }, + { + "key": "X-Frame-Options", + "value": "SAMEORIGIN" + }, + { + "key": "X-Permitted-Cross-Domain-Policies", + "value": "none" + }, + { + "key": "X-Robots-Tag", + "value": "noindex, nofollow" + }, + { + "key": "Referrer-Policy", + "value": "no-referrer" + }, + { + "key": "X-Powered-By", + "value": "PHP/8.3.30" + }, + { + "key": "Content-Security-Policy", + "value": "default-src 'none';base-uri 'none';manifest-src 'self';frame-ancestors 'none'" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=d766a7280f3364f82dee19021aa6b2f5; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=d766a7280f3364f82dee19021aa6b2f5; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=d766a7280f3364f82dee19021aa6b2f5; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=d766a7280f3364f82dee19021aa6b2f5; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=d766a7280f3364f82dee19021aa6b2f5; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=d1ed4d766e2e8c00840d5182674c6b4d; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=d1ed4d766e2e8c00840d5182674c6b4d; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=d1ed4d766e2e8c00840d5182674c6b4d; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=d1ed4d766e2e8c00840d5182674c6b4d; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=d1ed4d766e2e8c00840d5182674c6b4d; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "X-Request-Id", + "value": "OA5ij43NiKIhhUUccnkc" + }, + { + "key": "Cache-Control", + "value": "no-cache, no-store, must-revalidate" + }, + { + "key": "Feature-Policy", + "value": "autoplay 'none';camera 'none';fullscreen 'none';geolocation 'none';microphone 'none';payment 'none'" + }, + { + "key": "X-User-Id", + "value": "admin" + }, + { + "key": "Content-Length", + "value": "783" + }, + { + "key": "Keep-Alive", + "value": "timeout=5, max=74" + }, + { + "key": "Connection", + "value": "Keep-Alive" + }, + { + "key": "Content-Type", + "value": "application/json; charset=utf-8" + } + ], + "stream": { + "type": "Buffer", + "data": [ + 123, + 34, + 117, + 114, + 108, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 105, + 92, + 47, + 118, + 49, + 92, + 47, + 114, + 101, + 115, + 117, + 108, + 116, + 97, + 97, + 116, + 116, + 121, + 112, + 101, + 110, + 92, + 47, + 49, + 57, + 55, + 50, + 57, + 97, + 57, + 55, + 45, + 57, + 48, + 100, + 100, + 45, + 52, + 102, + 98, + 98, + 45, + 56, + 55, + 53, + 50, + 45, + 56, + 51, + 54, + 97, + 54, + 57, + 99, + 52, + 57, + 51, + 57, + 56, + 34, + 44, + 34, + 117, + 117, + 105, + 100, + 34, + 58, + 34, + 49, + 57, + 55, + 50, + 57, + 97, + 57, + 55, + 45, + 57, + 48, + 100, + 100, + 45, + 52, + 102, + 98, + 98, + 45, + 56, + 55, + 53, + 50, + 45, + 56, + 51, + 54, + 97, + 54, + 57, + 99, + 52, + 57, + 51, + 57, + 56, + 34, + 44, + 34, + 111, + 109, + 115, + 99, + 104, + 114, + 105, + 106, + 118, + 105, + 110, + 103, + 34, + 58, + 34, + 84, + 101, + 115, + 116, + 34, + 44, + 34, + 111, + 109, + 115, + 99, + 104, + 114, + 105, + 106, + 118, + 105, + 110, + 103, + 71, + 101, + 110, + 101, + 114, + 105, + 101, + 107, + 34, + 58, + 34, + 65, + 102, + 103, + 101, + 104, + 97, + 110, + 100, + 101, + 108, + 100, + 34, + 44, + 34, + 116, + 111, + 101, + 108, + 105, + 99, + 104, + 116, + 105, + 110, + 103, + 34, + 58, + 34, + 34, + 44, + 34, + 122, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 105, + 92, + 47, + 118, + 49, + 92, + 47, + 122, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 110, + 92, + 47, + 57, + 97, + 51, + 51, + 100, + 50, + 48, + 100, + 45, + 50, + 51, + 102, + 56, + 45, + 52, + 100, + 55, + 52, + 45, + 56, + 53, + 56, + 50, + 45, + 53, + 101, + 56, + 57, + 56, + 102, + 54, + 49, + 54, + 54, + 56, + 56, + 34, + 44, + 34, + 97, + 114, + 99, + 104, + 105, + 101, + 102, + 110, + 111, + 109, + 105, + 110, + 97, + 116, + 105, + 101, + 34, + 58, + 34, + 118, + 101, + 114, + 110, + 105, + 101, + 116, + 105, + 103, + 101, + 110, + 34, + 44, + 34, + 97, + 114, + 99, + 104, + 105, + 101, + 102, + 97, + 99, + 116, + 105, + 101, + 116, + 101, + 114, + 109, + 105, + 106, + 110, + 34, + 58, + 34, + 80, + 53, + 89, + 34, + 44, + 34, + 98, + 114, + 111, + 110, + 100, + 97, + 116, + 117, + 109, + 65, + 114, + 99, + 104, + 105, + 101, + 102, + 112, + 114, + 111, + 99, + 101, + 100, + 117, + 114, + 101, + 34, + 58, + 34, + 123, + 92, + 34, + 97, + 102, + 108, + 101, + 105, + 100, + 105, + 110, + 103, + 115, + 119, + 105, + 106, + 122, + 101, + 92, + 34, + 58, + 92, + 34, + 97, + 110, + 100, + 101, + 114, + 95, + 100, + 97, + 116, + 117, + 109, + 107, + 101, + 110, + 109, + 101, + 114, + 107, + 92, + 34, + 44, + 92, + 34, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 101, + 114, + 109, + 105, + 106, + 110, + 92, + 34, + 58, + 110, + 117, + 108, + 108, + 44, + 92, + 34, + 100, + 97, + 116, + 117, + 109, + 107, + 101, + 110, + 109, + 101, + 114, + 107, + 92, + 34, + 58, + 92, + 34, + 105, + 100, + 101, + 110, + 116, + 105, + 102, + 105, + 99, + 97, + 116, + 105, + 101, + 92, + 34, + 44, + 92, + 34, + 101, + 105, + 110, + 100, + 100, + 97, + 116, + 117, + 109, + 66, + 101, + 107, + 101, + 110, + 100, + 92, + 34, + 58, + 102, + 97, + 108, + 115, + 101, + 44, + 92, + 34, + 111, + 98, + 106, + 101, + 99, + 116, + 116, + 121, + 112, + 101, + 92, + 34, + 58, + 92, + 34, + 112, + 97, + 110, + 100, + 92, + 34, + 44, + 92, + 34, + 114, + 101, + 103, + 105, + 115, + 116, + 114, + 97, + 116, + 105, + 101, + 92, + 34, + 58, + 92, + 34, + 116, + 101, + 115, + 116, + 92, + 34, + 125, + 34, + 44, + 34, + 115, + 101, + 108, + 101, + 99, + 116, + 105, + 101, + 108, + 105, + 106, + 115, + 116, + 107, + 108, + 97, + 115, + 115, + 101, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 115, + 58, + 92, + 47, + 92, + 47, + 115, + 101, + 108, + 101, + 99, + 116, + 105, + 101, + 108, + 105, + 106, + 115, + 116, + 46, + 111, + 112, + 101, + 110, + 122, + 97, + 97, + 107, + 46, + 110, + 108, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 118, + 49, + 92, + 47, + 114, + 101, + 115, + 117, + 108, + 116, + 97, + 116, + 101, + 110, + 92, + 47, + 56, + 48, + 102, + 102, + 101, + 56, + 99, + 98, + 45, + 101, + 52, + 51, + 48, + 45, + 52, + 97, + 101, + 57, + 45, + 97, + 52, + 56, + 98, + 45, + 51, + 52, + 97, + 57, + 101, + 102, + 50, + 49, + 101, + 51, + 99, + 100, + 34, + 125 + ] + }, + "cookie": [], + "responseTime": 365, + "responseSize": 783 + }, + "id": "7d48a77f-d150-44f3-9676-f3947fe23f7e" + }, + { + "cursor": { + "ref": "2f9fa48d-e415-44d7-babe-0e2a3d932572", + "length": 313, + "cycles": 1, + "position": 259, + "iteration": 0, + "httpRequestId": "ec135cc4-914b-40d8-a61f-4d936f616196" + }, + "item": { + "id": "cecc81ad-f294-4ae7-b9e1-8d3f00452168", + "name": "Create eind Statustype procestermijn vast_te_leggen_datum", + "request": { + "url": { + "path": [ + "statustypen" + ], + "host": [ + "{{ztc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n\t\"omschrijving\": \"Eind\",\n\t\"zaaktype\": \"{{zaaktype_procestermijn_vast_te_leggen_datum_url}}\",\n\t\"volgnummer\": 2\n}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "af6df8e4-791f-4139-ac73-0265ee0dcff5", + "type": "text/javascript", + "exec": [ + "pm.environment.set(\"current_statustype_url\", pm.response.json().url);" + ], + "_lastExecutionId": "4c501cd6-afa0-44fa-b598-d86732f30fb6" + } + } + ] + }, + "request": { + "url": { + "protocol": "http", + "port": "8080", + "path": [ + "index.php", + "apps", + "procest", + "api", + "zgw", + "catalogi", + "v1", + "statustypen" + ], + "host": [ + "localhost" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Authorization", + "value": "Bearer eyJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJwcm9jZXN0LWFkbWluIiwiY2xpZW50X2lkIjoicHJvY2VzdC1hZG1pbiIsImlhdCI6IjE3NzMxNDUyMDciLCJ1c2VyX2lkIjoicHJvY2VzdC1hZG1pbiIsInVzZXJfcmVwcmVzZW50YXRpb24iOiIifQ.JvgrNj-M3eAv8mbU9Mo4HZqE_0IjbVXT5txBDoevPfY", + "system": true + }, + { + "key": "User-Agent", + "value": "PostmanRuntime/7.39.1", + "system": true + }, + { + "key": "Accept", + "value": "*/*", + "system": true + }, + { + "key": "Cache-Control", + "value": "no-cache", + "system": true + }, + { + "key": "Postman-Token", + "value": "220917d3-3f5d-4f48-90dd-14666d93a13f", + "system": true + }, + { + "key": "Host", + "value": "localhost:8080", + "system": true + }, + { + "key": "Accept-Encoding", + "value": "gzip, deflate, br", + "system": true + }, + { + "key": "Connection", + "value": "keep-alive", + "system": true + }, + { + "key": "Content-Length", + "value": "173", + "system": true + }, + { + "key": "Cookie", + "value": "ocvp3112b4wg=d1ed4d766e2e8c00840d5182674c6b4d; oc_sessionPassphrase=LBNdKxRzA0iqoULIruNxDDh2BK3O%2BrCIU8aUmiUcOFvy5Xw1YfjwQNlmBW2IkGwJYtxXh9%2BwDN6vYuGNX07tXzkBtjQJUWTGdzf8AIOUIVxVx5DfyWAQZ7nmYmQv6XSE; nc_sameSiteCookielax=true; nc_sameSiteCookiestrict=true", + "system": true + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n\t\"omschrijving\": \"Eind\",\n\t\"zaaktype\": \"http://localhost:8080/index.php/apps/procest/api/zgw/catalogi/v1/zaaktypen/9a33d20d-23f8-4d74-8582-5e898f616688\",\n\t\"volgnummer\": 2\n}" + }, + "auth": { + "type": "jwt", + "jwt": [ + { + "type": "string", + "value": "{\r\n \"iss\": \"procest-admin\",\r\n \"client_id\": \"procest-admin\",\r\n \"iat\": \"1773145207\",\r\n \"user_id\": \"procest-admin\",\r\n \"user_representation\": \"\"\r\n}", + "key": "payload" + }, + { + "type": "string", + "value": "procest-admin-secret-key-for-testing", + "key": "secret" + }, + { + "type": "string", + "value": "HS256", + "key": "algorithm" + }, + { + "type": "boolean", + "value": false, + "key": "isSecretBase64Encoded" + }, + { + "type": "string", + "value": "header", + "key": "addTokenTo" + }, + { + "type": "string", + "value": "Bearer", + "key": "headerPrefix" + }, + { + "type": "string", + "value": "token", + "key": "queryParamKey" + }, + { + "type": "string", + "value": "{}", + "key": "header" + } + ] + } + }, + "response": { + "id": "791b25da-40e8-48e5-aba1-07d575cbca21", + "status": "Created", + "code": 201, + "header": [ + { + "key": "Date", + "value": "Tue, 10 Mar 2026 12:20:07 GMT" + }, + { + "key": "Server", + "value": "Apache/2.4.66 (Debian)" + }, + { + "key": "X-Content-Type-Options", + "value": "nosniff" + }, + { + "key": "X-Frame-Options", + "value": "SAMEORIGIN" + }, + { + "key": "X-Permitted-Cross-Domain-Policies", + "value": "none" + }, + { + "key": "X-Robots-Tag", + "value": "noindex, nofollow" + }, + { + "key": "Referrer-Policy", + "value": "no-referrer" + }, + { + "key": "X-Powered-By", + "value": "PHP/8.3.30" + }, + { + "key": "Content-Security-Policy", + "value": "default-src 'none';base-uri 'none';manifest-src 'self';frame-ancestors 'none'" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=d1ed4d766e2e8c00840d5182674c6b4d; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=d1ed4d766e2e8c00840d5182674c6b4d; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=d1ed4d766e2e8c00840d5182674c6b4d; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=d1ed4d766e2e8c00840d5182674c6b4d; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=d1ed4d766e2e8c00840d5182674c6b4d; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=b747b84d7b04d6ea86912a57afea27b2; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=b747b84d7b04d6ea86912a57afea27b2; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=b747b84d7b04d6ea86912a57afea27b2; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=b747b84d7b04d6ea86912a57afea27b2; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=b747b84d7b04d6ea86912a57afea27b2; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "X-Request-Id", + "value": "74t3pf5lhty6YBTuX5lq" + }, + { + "key": "Cache-Control", + "value": "no-cache, no-store, must-revalidate" + }, + { + "key": "Feature-Policy", + "value": "autoplay 'none';camera 'none';fullscreen 'none';geolocation 'none';microphone 'none';payment 'none'" + }, + { + "key": "X-User-Id", + "value": "admin" + }, + { + "key": "Content-Length", + "value": "400" + }, + { + "key": "Keep-Alive", + "value": "timeout=5, max=73" + }, + { + "key": "Connection", + "value": "Keep-Alive" + }, + { + "key": "Content-Type", + "value": "application/json; charset=utf-8" + } + ], + "stream": { + "type": "Buffer", + "data": [ + 123, + 34, + 117, + 114, + 108, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 105, + 92, + 47, + 118, + 49, + 92, + 47, + 115, + 116, + 97, + 116, + 117, + 115, + 116, + 121, + 112, + 101, + 110, + 92, + 47, + 51, + 55, + 51, + 97, + 54, + 50, + 97, + 57, + 45, + 99, + 57, + 102, + 56, + 45, + 52, + 101, + 54, + 97, + 45, + 56, + 56, + 98, + 49, + 45, + 49, + 101, + 48, + 48, + 48, + 102, + 50, + 50, + 50, + 98, + 50, + 52, + 34, + 44, + 34, + 117, + 117, + 105, + 100, + 34, + 58, + 34, + 51, + 55, + 51, + 97, + 54, + 50, + 97, + 57, + 45, + 99, + 57, + 102, + 56, + 45, + 52, + 101, + 54, + 97, + 45, + 56, + 56, + 98, + 49, + 45, + 49, + 101, + 48, + 48, + 48, + 102, + 50, + 50, + 50, + 98, + 50, + 52, + 34, + 44, + 34, + 111, + 109, + 115, + 99, + 104, + 114, + 105, + 106, + 118, + 105, + 110, + 103, + 34, + 58, + 34, + 69, + 105, + 110, + 100, + 34, + 44, + 34, + 111, + 109, + 115, + 99, + 104, + 114, + 105, + 106, + 118, + 105, + 110, + 103, + 71, + 101, + 110, + 101, + 114, + 105, + 101, + 107, + 34, + 58, + 34, + 34, + 44, + 34, + 122, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 105, + 92, + 47, + 118, + 49, + 92, + 47, + 122, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 110, + 92, + 47, + 57, + 97, + 51, + 51, + 100, + 50, + 48, + 100, + 45, + 50, + 51, + 102, + 56, + 45, + 52, + 100, + 55, + 52, + 45, + 56, + 53, + 56, + 50, + 45, + 53, + 101, + 56, + 57, + 56, + 102, + 54, + 49, + 54, + 54, + 56, + 56, + 34, + 44, + 34, + 118, + 111, + 108, + 103, + 110, + 117, + 109, + 109, + 101, + 114, + 34, + 58, + 50, + 44, + 34, + 105, + 115, + 69, + 105, + 110, + 100, + 115, + 116, + 97, + 116, + 117, + 115, + 34, + 58, + 102, + 97, + 108, + 115, + 101, + 125 + ] + }, + "cookie": [], + "responseTime": 311, + "responseSize": 400 + }, + "id": "cecc81ad-f294-4ae7-b9e1-8d3f00452168" + }, + { + "cursor": { + "ref": "c68a0156-0f92-4c0a-be89-daaed0873d4b", + "length": 313, + "cycles": 1, + "position": 260, + "iteration": 0, + "httpRequestId": "1ef0165f-00b6-436b-9fc3-23d917a09d1c" + }, + "item": { + "id": "05ec5dd3-0eb1-411f-8a23-2a683a349f7b", + "name": "Publish Zaaktype procestermijn vast_te_leggen_datum", + "request": { + "url": { + "path": [ + "publish" + ], + "host": [ + "{{zaaktype_procestermijn_vast_te_leggen_datum_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "a5a016cf-a23d-4fd4-9ff6-d35e85055ab4", + "type": "text/javascript", + "exec": [ + "pm.environment.set(\"archiving_zaaktypen\", [", + " pm.environment.get(\"zaaktype_procestermijn_nihil_url\"),", + " pm.environment.get(\"zaaktype_procestermijn_ingeschatte_bestaansduur_object_url\"),", + " pm.environment.get(\"zaaktype_procestermijn_vast_te_leggen_datum_url\")", + "]);" + ], + "_lastExecutionId": "025d162d-e108-44d2-b4dc-a409ff6045e3" + } + }, + { + "listen": "prerequest", + "script": { + "id": "322c2820-76c0-4b9e-a316-96ababe1003d", + "type": "text/javascript", + "exec": [ + "" + ], + "_lastExecutionId": "23a32a57-3d27-4bba-ae5d-1e36af14f027" + } + } + ] + }, + "request": { + "url": { + "protocol": "http", + "port": "8080", + "path": [ + "index.php", + "apps", + "procest", + "api", + "zgw", + "catalogi", + "v1", + "zaaktypen", + "9a33d20d-23f8-4d74-8582-5e898f616688", + "publish" + ], + "host": [ + "localhost" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Authorization", + "value": "Bearer eyJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJwcm9jZXN0LWFkbWluIiwiY2xpZW50X2lkIjoicHJvY2VzdC1hZG1pbiIsImlhdCI6IjE3NzMxNDUyMDciLCJ1c2VyX2lkIjoicHJvY2VzdC1hZG1pbiIsInVzZXJfcmVwcmVzZW50YXRpb24iOiIifQ.JvgrNj-M3eAv8mbU9Mo4HZqE_0IjbVXT5txBDoevPfY", + "system": true + }, + { + "key": "User-Agent", + "value": "PostmanRuntime/7.39.1", + "system": true + }, + { + "key": "Accept", + "value": "*/*", + "system": true + }, + { + "key": "Cache-Control", + "value": "no-cache", + "system": true + }, + { + "key": "Postman-Token", + "value": "2b17702e-22c5-44f5-af5c-834797ef0ce9", + "system": true + }, + { + "key": "Host", + "value": "localhost:8080", + "system": true + }, + { + "key": "Accept-Encoding", + "value": "gzip, deflate, br", + "system": true + }, + { + "key": "Connection", + "value": "keep-alive", + "system": true + }, + { + "key": "Cookie", + "value": "ocvp3112b4wg=b747b84d7b04d6ea86912a57afea27b2; oc_sessionPassphrase=LBNdKxRzA0iqoULIruNxDDh2BK3O%2BrCIU8aUmiUcOFvy5Xw1YfjwQNlmBW2IkGwJYtxXh9%2BwDN6vYuGNX07tXzkBtjQJUWTGdzf8AIOUIVxVx5DfyWAQZ7nmYmQv6XSE; nc_sameSiteCookielax=true; nc_sameSiteCookiestrict=true", + "system": true + }, + { + "key": "Content-Length", + "value": "0", + "system": true + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "" + }, + "auth": { + "type": "jwt", + "jwt": [ + { + "type": "string", + "value": "{\r\n \"iss\": \"procest-admin\",\r\n \"client_id\": \"procest-admin\",\r\n \"iat\": \"1773145207\",\r\n \"user_id\": \"procest-admin\",\r\n \"user_representation\": \"\"\r\n}", + "key": "payload" + }, + { + "type": "string", + "value": "procest-admin-secret-key-for-testing", + "key": "secret" + }, + { + "type": "string", + "value": "HS256", + "key": "algorithm" + }, + { + "type": "boolean", + "value": false, + "key": "isSecretBase64Encoded" + }, + { + "type": "string", + "value": "header", + "key": "addTokenTo" + }, + { + "type": "string", + "value": "Bearer", + "key": "headerPrefix" + }, + { + "type": "string", + "value": "token", + "key": "queryParamKey" + }, + { + "type": "string", + "value": "{}", + "key": "header" + } + ] + } + }, + "response": { + "id": "05d4ae0d-f419-4536-889f-14b7c51d49a9", + "status": "OK", + "code": 200, + "header": [ + { + "key": "Date", + "value": "Tue, 10 Mar 2026 12:20:07 GMT" + }, + { + "key": "Server", + "value": "Apache/2.4.66 (Debian)" + }, + { + "key": "X-Content-Type-Options", + "value": "nosniff" + }, + { + "key": "X-Frame-Options", + "value": "SAMEORIGIN" + }, + { + "key": "X-Permitted-Cross-Domain-Policies", + "value": "none" + }, + { + "key": "X-Robots-Tag", + "value": "noindex, nofollow" + }, + { + "key": "Referrer-Policy", + "value": "no-referrer" + }, + { + "key": "X-Powered-By", + "value": "PHP/8.3.30" + }, + { + "key": "Content-Security-Policy", + "value": "default-src 'none';base-uri 'none';manifest-src 'self';frame-ancestors 'none'" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=b747b84d7b04d6ea86912a57afea27b2; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=b747b84d7b04d6ea86912a57afea27b2; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=b747b84d7b04d6ea86912a57afea27b2; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=b747b84d7b04d6ea86912a57afea27b2; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=b747b84d7b04d6ea86912a57afea27b2; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=947568c23b2fb0a776d3192aafb678e7; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=947568c23b2fb0a776d3192aafb678e7; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=947568c23b2fb0a776d3192aafb678e7; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=947568c23b2fb0a776d3192aafb678e7; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=947568c23b2fb0a776d3192aafb678e7; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "X-Request-Id", + "value": "l9SRcl9LNwzdX09V7tyR" + }, + { + "key": "Cache-Control", + "value": "no-cache, no-store, must-revalidate" + }, + { + "key": "Feature-Policy", + "value": "autoplay 'none';camera 'none';fullscreen 'none';geolocation 'none';microphone 'none';payment 'none'" + }, + { + "key": "X-User-Id", + "value": "admin" + }, + { + "key": "Content-Encoding", + "value": "gzip" + }, + { + "key": "Content-Length", + "value": "701" + }, + { + "key": "Keep-Alive", + "value": "timeout=5, max=72" + }, + { + "key": "Connection", + "value": "Keep-Alive" + }, + { + "key": "Content-Type", + "value": "application/json; charset=utf-8" + } + ], + "stream": { + "type": "Buffer", + "data": [ + 123, + 34, + 117, + 114, + 108, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 105, + 92, + 47, + 118, + 49, + 92, + 47, + 122, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 110, + 92, + 47, + 57, + 97, + 51, + 51, + 100, + 50, + 48, + 100, + 45, + 50, + 51, + 102, + 56, + 45, + 52, + 100, + 55, + 52, + 45, + 56, + 53, + 56, + 50, + 45, + 53, + 101, + 56, + 57, + 56, + 102, + 54, + 49, + 54, + 54, + 56, + 56, + 34, + 44, + 34, + 117, + 117, + 105, + 100, + 34, + 58, + 34, + 57, + 97, + 51, + 51, + 100, + 50, + 48, + 100, + 45, + 50, + 51, + 102, + 56, + 45, + 52, + 100, + 55, + 52, + 45, + 56, + 53, + 56, + 50, + 45, + 53, + 101, + 56, + 57, + 56, + 102, + 54, + 49, + 54, + 54, + 56, + 56, + 34, + 44, + 34, + 105, + 100, + 101, + 110, + 116, + 105, + 102, + 105, + 99, + 97, + 116, + 105, + 101, + 34, + 58, + 34, + 55, + 53, + 52, + 101, + 54, + 54, + 54, + 51, + 45, + 50, + 51, + 48, + 48, + 45, + 52, + 53, + 56, + 97, + 45, + 57, + 54, + 49, + 101, + 45, + 53, + 97, + 51, + 98, + 56, + 49, + 55, + 100, + 55, + 53, + 99, + 97, + 34, + 44, + 34, + 111, + 109, + 115, + 99, + 104, + 114, + 105, + 106, + 118, + 105, + 110, + 103, + 34, + 58, + 34, + 90, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 32, + 102, + 111, + 114, + 32, + 97, + 114, + 99, + 104, + 105, + 118, + 105, + 110, + 103, + 32, + 116, + 101, + 115, + 116, + 115, + 32, + 118, + 97, + 115, + 116, + 95, + 116, + 101, + 95, + 108, + 101, + 103, + 103, + 101, + 110, + 95, + 100, + 97, + 116, + 117, + 109, + 34, + 44, + 34, + 111, + 109, + 115, + 99, + 104, + 114, + 105, + 106, + 118, + 105, + 110, + 103, + 71, + 101, + 110, + 101, + 114, + 105, + 101, + 107, + 34, + 58, + 34, + 34, + 44, + 34, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 117, + 115, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 105, + 92, + 47, + 118, + 49, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 117, + 115, + 115, + 101, + 110, + 92, + 47, + 53, + 48, + 53, + 55, + 52, + 48, + 56, + 102, + 45, + 102, + 100, + 55, + 54, + 45, + 52, + 54, + 57, + 101, + 45, + 56, + 54, + 52, + 54, + 45, + 98, + 99, + 99, + 52, + 98, + 97, + 50, + 101, + 102, + 97, + 56, + 100, + 34, + 44, + 34, + 100, + 111, + 101, + 108, + 34, + 58, + 34, + 116, + 101, + 115, + 116, + 32, + 100, + 111, + 101, + 108, + 34, + 44, + 34, + 97, + 97, + 110, + 108, + 101, + 105, + 100, + 105, + 110, + 103, + 34, + 58, + 34, + 116, + 101, + 115, + 116, + 32, + 97, + 97, + 110, + 108, + 101, + 105, + 100, + 105, + 110, + 103, + 34, + 44, + 34, + 111, + 110, + 100, + 101, + 114, + 119, + 101, + 114, + 112, + 34, + 58, + 34, + 111, + 112, + 101, + 110, + 98, + 97, + 114, + 101, + 32, + 114, + 117, + 105, + 109, + 116, + 101, + 34, + 44, + 34, + 100, + 111, + 111, + 114, + 108, + 111, + 111, + 112, + 116, + 105, + 106, + 100, + 34, + 58, + 34, + 80, + 49, + 48, + 68, + 34, + 44, + 34, + 118, + 101, + 114, + 116, + 114, + 111, + 117, + 119, + 101, + 108, + 105, + 106, + 107, + 104, + 101, + 105, + 100, + 97, + 97, + 110, + 100, + 117, + 105, + 100, + 105, + 110, + 103, + 34, + 58, + 34, + 111, + 112, + 101, + 110, + 98, + 97, + 97, + 114, + 34, + 44, + 34, + 99, + 111, + 110, + 99, + 101, + 112, + 116, + 34, + 58, + 102, + 97, + 108, + 115, + 101, + 44, + 34, + 98, + 101, + 103, + 105, + 110, + 71, + 101, + 108, + 100, + 105, + 103, + 104, + 101, + 105, + 100, + 34, + 58, + 34, + 50, + 48, + 49, + 57, + 45, + 48, + 49, + 45, + 48, + 49, + 34, + 44, + 34, + 101, + 105, + 110, + 100, + 101, + 71, + 101, + 108, + 100, + 105, + 103, + 104, + 101, + 105, + 100, + 34, + 58, + 34, + 50, + 48, + 50, + 54, + 45, + 48, + 51, + 45, + 49, + 48, + 34, + 44, + 34, + 104, + 97, + 110, + 100, + 101, + 108, + 105, + 110, + 103, + 73, + 110, + 105, + 116, + 105, + 97, + 116, + 111, + 114, + 34, + 58, + 34, + 105, + 110, + 100, + 105, + 101, + 110, + 101, + 110, + 34, + 44, + 34, + 105, + 110, + 100, + 105, + 99, + 97, + 116, + 105, + 101, + 73, + 110, + 116, + 101, + 114, + 110, + 79, + 102, + 69, + 120, + 116, + 101, + 114, + 110, + 34, + 58, + 34, + 101, + 120, + 116, + 101, + 114, + 110, + 34, + 44, + 34, + 104, + 97, + 110, + 100, + 101, + 108, + 105, + 110, + 103, + 66, + 101, + 104, + 97, + 110, + 100, + 101, + 108, + 97, + 97, + 114, + 34, + 58, + 34, + 98, + 101, + 104, + 97, + 110, + 100, + 101, + 108, + 101, + 110, + 34, + 44, + 34, + 111, + 112, + 115, + 99, + 104, + 111, + 114, + 116, + 105, + 110, + 103, + 69, + 110, + 65, + 97, + 110, + 104, + 111, + 117, + 100, + 105, + 110, + 103, + 77, + 111, + 103, + 101, + 108, + 105, + 106, + 107, + 34, + 58, + 102, + 97, + 108, + 115, + 101, + 44, + 34, + 118, + 101, + 114, + 108, + 101, + 110, + 103, + 105, + 110, + 103, + 77, + 111, + 103, + 101, + 108, + 105, + 106, + 107, + 34, + 58, + 116, + 114, + 117, + 101, + 44, + 34, + 118, + 101, + 114, + 108, + 101, + 110, + 103, + 105, + 110, + 103, + 115, + 116, + 101, + 114, + 109, + 105, + 106, + 110, + 34, + 58, + 34, + 80, + 53, + 68, + 34, + 44, + 34, + 112, + 117, + 98, + 108, + 105, + 99, + 97, + 116, + 105, + 101, + 73, + 110, + 100, + 105, + 99, + 97, + 116, + 105, + 101, + 34, + 58, + 102, + 97, + 108, + 115, + 101, + 44, + 34, + 112, + 114, + 111, + 100, + 117, + 99, + 116, + 101, + 110, + 79, + 102, + 68, + 105, + 101, + 110, + 115, + 116, + 101, + 110, + 34, + 58, + 91, + 34, + 104, + 116, + 116, + 112, + 115, + 58, + 92, + 47, + 92, + 47, + 114, + 101, + 102, + 46, + 116, + 115, + 116, + 46, + 118, + 110, + 103, + 46, + 99, + 108, + 111, + 117, + 100, + 92, + 47, + 115, + 116, + 97, + 110, + 100, + 97, + 97, + 114, + 100, + 92, + 47, + 34, + 93, + 44, + 34, + 115, + 101, + 108, + 101, + 99, + 116, + 105, + 101, + 108, + 105, + 106, + 115, + 116, + 80, + 114, + 111, + 99, + 101, + 115, + 116, + 121, + 112, + 101, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 115, + 58, + 92, + 47, + 92, + 47, + 115, + 101, + 108, + 101, + 99, + 116, + 105, + 101, + 108, + 105, + 106, + 115, + 116, + 46, + 111, + 112, + 101, + 110, + 122, + 97, + 97, + 107, + 46, + 110, + 108, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 118, + 49, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 121, + 112, + 101, + 110, + 92, + 47, + 56, + 51, + 56, + 101, + 52, + 48, + 53, + 97, + 45, + 57, + 98, + 49, + 50, + 45, + 52, + 51, + 99, + 52, + 45, + 97, + 57, + 56, + 53, + 45, + 100, + 55, + 97, + 55, + 52, + 57, + 48, + 100, + 52, + 50, + 50, + 101, + 34, + 44, + 34, + 114, + 101, + 102, + 101, + 114, + 101, + 110, + 116, + 105, + 101, + 112, + 114, + 111, + 99, + 101, + 115, + 34, + 58, + 123, + 34, + 108, + 105, + 110, + 107, + 34, + 58, + 34, + 34, + 44, + 34, + 110, + 97, + 97, + 109, + 34, + 58, + 34, + 116, + 101, + 115, + 116, + 34, + 125, + 44, + 34, + 118, + 101, + 114, + 97, + 110, + 116, + 119, + 111, + 111, + 114, + 100, + 101, + 108, + 105, + 106, + 107, + 101, + 34, + 58, + 34, + 88, + 34, + 44, + 34, + 103, + 101, + 114, + 101, + 108, + 97, + 116, + 101, + 101, + 114, + 100, + 101, + 90, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 98, + 101, + 115, + 108, + 117, + 105, + 116, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 105, + 110, + 102, + 111, + 114, + 109, + 97, + 116, + 105, + 101, + 111, + 98, + 106, + 101, + 99, + 116, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 100, + 101, + 101, + 108, + 122, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 116, + 111, + 101, + 108, + 105, + 99, + 104, + 116, + 105, + 110, + 103, + 34, + 58, + 34, + 34, + 44, + 34, + 118, + 101, + 114, + 115, + 105, + 101, + 100, + 97, + 116, + 117, + 109, + 34, + 58, + 34, + 50, + 48, + 49, + 57, + 45, + 48, + 49, + 45, + 48, + 49, + 34, + 125 + ] + }, + "cookie": [], + "responseTime": 164, + "responseSize": 1306 + }, + "id": "05ec5dd3-0eb1-411f-8a23-2a683a349f7b" + }, + { + "cursor": { + "ref": "7a662c2c-ff57-4062-9a68-fedb0f36faa9", + "length": 313, + "cycles": 1, + "position": 261, + "iteration": 0, + "httpRequestId": "4425d6f6-1f53-443b-bf41-897a9b4e7271" + }, + "item": { + "id": "381f329e-48ee-4f74-ae36-b2ccb7c36178", + "name": "Create Zaak without archiefnominatie", + "request": { + "url": { + "path": [ + "zaken" + ], + "host": [ + "{{zrc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Accept-Crs", + "value": "EPSG:4326" + }, + { + "key": "Content-Crs", + "value": "EPSG:4326" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\r\n \"bronorganisatie\": \"000000000\",\r\n \"omschrijving\": \"string\",\r\n \"toelichting\": \"string\",\r\n \"zaaktype\": \"{{zaaktype_procestermijn_vast_te_leggen_datum_url}}\",\r\n \"registratiedatum\": \"2019-04-09\",\r\n \"verantwoordelijkeOrganisatie\": \"000000000\",\r\n \"startdatum\": \"2019-04-09\",\r\n \"einddatum\": null,\r\n \"einddatumGepland\": \"2019-04-20\",\r\n \"uiterlijkeEinddatumAfdoening\": \"2019-04-09\",\r\n \"publicatiedatum\": \"2019-04-09\",\r\n \"communicatiekanaal\": \"\",\r\n \"productenOfDiensten\": [],\r\n \"vertrouwelijkheidaanduiding\": \"geheim\",\r\n \"betalingsindicatie\": \"geheel\",\r\n \"betalingsindicatieWeergave\": null,\r\n \"laatsteBetaaldatum\": \"2019-01-01T00:00:00Z\",\r\n \"zaakgeometrie\": {\r\n \"type\": \"Point\",\r\n \"coordinates\": [\r\n 53.0,\r\n 5.0\r\n ]\r\n },\r\n \"verlenging\": null,\r\n \"opschorting\": null,\r\n \"selectielijstklasse\": \"https://referentielijsten.roxit.nl/api/v1/resultaten/0fe71ce3-b1e1-48eb-9070-be2756fc71b5\",\r\n \"hoofdzaak\": null,\r\n \"deelzaken\": [],\r\n \"relevanteAndereZaken\": [],\r\n \"eigenschappen\": [],\r\n \"rollen\": [],\r\n \"status\": null,\r\n \"zaakinformatieobjecten\": [],\r\n \"zaakobjecten\": [],\r\n \"resultaat\": null,\r\n \"kenmerken\": [],\r\n \"archiefnominatie\": null,\r\n \"archiefstatus\": \"nog_te_archiveren\",\r\n \"archiefactiedatum\": null,\r\n \"opdrachtgevendeOrganisatie\": null,\r\n \"processobjectaard\": null,\r\n \"startdatumBewaartermijn\": null,\r\n \"processobject\": null\r\n}" + } + }, + "response": [], + "event": [ + { + "listen": "prerequest", + "script": { + "id": "f7c7d51c-6e88-4b66-a661-047c76eda10a", + "type": "text/javascript", + "packages": {}, + "exec": [ + "" + ], + "_lastExecutionId": "284d4220-99a6-4456-895d-a2f5f2f758b8" + } + }, + { + "listen": "test", + "script": { + "id": "a5da970b-a9a3-446d-84ae-d19a9c9d0484", + "type": "text/javascript", + "packages": {}, + "exec": [ + "pm.environment.set(\"zaak_zonder_archiefnominatie_url\", pm.response.json().url);" + ], + "_lastExecutionId": "516881f7-44e2-4368-8ca5-75b9961e4eb6" + } + } + ] + }, + "request": { + "url": { + "protocol": "http", + "port": "8080", + "path": [ + "index.php", + "apps", + "procest", + "api", + "zgw", + "zaken", + "v1", + "zaken" + ], + "host": [ + "localhost" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Accept-Crs", + "value": "EPSG:4326" + }, + { + "key": "Content-Crs", + "value": "EPSG:4326" + }, + { + "key": "Authorization", + "value": "Bearer eyJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJwcm9jZXN0LWFkbWluIiwiY2xpZW50X2lkIjoicHJvY2VzdC1hZG1pbiIsImlhdCI6IjE3NzMxNDUyMDgiLCJ1c2VyX2lkIjoicHJvY2VzdC1hZG1pbiIsInVzZXJfcmVwcmVzZW50YXRpb24iOiIifQ.YgPvzgVXgnRCpmVChMug0dnDHGSnRA92o0tAWi_PKaA", + "system": true + }, + { + "key": "User-Agent", + "value": "PostmanRuntime/7.39.1", + "system": true + }, + { + "key": "Accept", + "value": "*/*", + "system": true + }, + { + "key": "Cache-Control", + "value": "no-cache", + "system": true + }, + { + "key": "Postman-Token", + "value": "2d65e5a6-1a4c-403b-bd82-7aeb17f788fb", + "system": true + }, + { + "key": "Host", + "value": "localhost:8080", + "system": true + }, + { + "key": "Accept-Encoding", + "value": "gzip, deflate, br", + "system": true + }, + { + "key": "Connection", + "value": "keep-alive", + "system": true + }, + { + "key": "Content-Length", + "value": "1544", + "system": true + }, + { + "key": "Cookie", + "value": "ocvp3112b4wg=947568c23b2fb0a776d3192aafb678e7; oc_sessionPassphrase=LBNdKxRzA0iqoULIruNxDDh2BK3O%2BrCIU8aUmiUcOFvy5Xw1YfjwQNlmBW2IkGwJYtxXh9%2BwDN6vYuGNX07tXzkBtjQJUWTGdzf8AIOUIVxVx5DfyWAQZ7nmYmQv6XSE; nc_sameSiteCookielax=true; nc_sameSiteCookiestrict=true", + "system": true + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\r\n \"bronorganisatie\": \"000000000\",\r\n \"omschrijving\": \"string\",\r\n \"toelichting\": \"string\",\r\n \"zaaktype\": \"http://localhost:8080/index.php/apps/procest/api/zgw/catalogi/v1/zaaktypen/9a33d20d-23f8-4d74-8582-5e898f616688\",\r\n \"registratiedatum\": \"2019-04-09\",\r\n \"verantwoordelijkeOrganisatie\": \"000000000\",\r\n \"startdatum\": \"2019-04-09\",\r\n \"einddatum\": null,\r\n \"einddatumGepland\": \"2019-04-20\",\r\n \"uiterlijkeEinddatumAfdoening\": \"2019-04-09\",\r\n \"publicatiedatum\": \"2019-04-09\",\r\n \"communicatiekanaal\": \"\",\r\n \"productenOfDiensten\": [],\r\n \"vertrouwelijkheidaanduiding\": \"geheim\",\r\n \"betalingsindicatie\": \"geheel\",\r\n \"betalingsindicatieWeergave\": null,\r\n \"laatsteBetaaldatum\": \"2019-01-01T00:00:00Z\",\r\n \"zaakgeometrie\": {\r\n \"type\": \"Point\",\r\n \"coordinates\": [\r\n 53.0,\r\n 5.0\r\n ]\r\n },\r\n \"verlenging\": null,\r\n \"opschorting\": null,\r\n \"selectielijstklasse\": \"https://referentielijsten.roxit.nl/api/v1/resultaten/0fe71ce3-b1e1-48eb-9070-be2756fc71b5\",\r\n \"hoofdzaak\": null,\r\n \"deelzaken\": [],\r\n \"relevanteAndereZaken\": [],\r\n \"eigenschappen\": [],\r\n \"rollen\": [],\r\n \"status\": null,\r\n \"zaakinformatieobjecten\": [],\r\n \"zaakobjecten\": [],\r\n \"resultaat\": null,\r\n \"kenmerken\": [],\r\n \"archiefnominatie\": null,\r\n \"archiefstatus\": \"nog_te_archiveren\",\r\n \"archiefactiedatum\": null,\r\n \"opdrachtgevendeOrganisatie\": null,\r\n \"processobjectaard\": null,\r\n \"startdatumBewaartermijn\": null,\r\n \"processobject\": null\r\n}" + }, + "auth": { + "type": "jwt", + "jwt": [ + { + "type": "string", + "value": "{\r\n \"iss\": \"procest-admin\",\r\n \"client_id\": \"procest-admin\",\r\n \"iat\": \"1773145208\",\r\n \"user_id\": \"procest-admin\",\r\n \"user_representation\": \"\"\r\n}", + "key": "payload" + }, + { + "type": "string", + "value": "procest-admin-secret-key-for-testing", + "key": "secret" + }, + { + "type": "string", + "value": "HS256", + "key": "algorithm" + }, + { + "type": "boolean", + "value": false, + "key": "isSecretBase64Encoded" + }, + { + "type": "string", + "value": "header", + "key": "addTokenTo" + }, + { + "type": "string", + "value": "Bearer", + "key": "headerPrefix" + }, + { + "type": "string", + "value": "token", + "key": "queryParamKey" + }, + { + "type": "string", + "value": "{}", + "key": "header" + } + ] + } + }, + "response": { + "id": "ba4205fd-26de-4b0c-b313-b03c06f492fe", + "status": "Created", + "code": 201, + "header": [ + { + "key": "Date", + "value": "Tue, 10 Mar 2026 12:20:07 GMT" + }, + { + "key": "Server", + "value": "Apache/2.4.66 (Debian)" + }, + { + "key": "X-Content-Type-Options", + "value": "nosniff" + }, + { + "key": "X-Frame-Options", + "value": "SAMEORIGIN" + }, + { + "key": "X-Permitted-Cross-Domain-Policies", + "value": "none" + }, + { + "key": "X-Robots-Tag", + "value": "noindex, nofollow" + }, + { + "key": "Referrer-Policy", + "value": "no-referrer" + }, + { + "key": "X-Powered-By", + "value": "PHP/8.3.30" + }, + { + "key": "Content-Security-Policy", + "value": "default-src 'none';base-uri 'none';manifest-src 'self';frame-ancestors 'none'" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=947568c23b2fb0a776d3192aafb678e7; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=947568c23b2fb0a776d3192aafb678e7; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=947568c23b2fb0a776d3192aafb678e7; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=947568c23b2fb0a776d3192aafb678e7; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=947568c23b2fb0a776d3192aafb678e7; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=05eb71c3a2a1f07fdaaa0469685c28b8; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=05eb71c3a2a1f07fdaaa0469685c28b8; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=05eb71c3a2a1f07fdaaa0469685c28b8; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=05eb71c3a2a1f07fdaaa0469685c28b8; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=05eb71c3a2a1f07fdaaa0469685c28b8; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "X-Request-Id", + "value": "T1qI0qe2KB2eRFWlOIIC" + }, + { + "key": "Cache-Control", + "value": "no-cache, no-store, must-revalidate" + }, + { + "key": "Feature-Policy", + "value": "autoplay 'none';camera 'none';fullscreen 'none';geolocation 'none';microphone 'none';payment 'none'" + }, + { + "key": "X-User-Id", + "value": "admin" + }, + { + "key": "Content-Length", + "value": "805" + }, + { + "key": "Keep-Alive", + "value": "timeout=5, max=71" + }, + { + "key": "Connection", + "value": "Keep-Alive" + }, + { + "key": "Content-Type", + "value": "application/json; charset=utf-8" + } + ], + "stream": { + "type": "Buffer", + "data": [ + 123, + 34, + 117, + 114, + 108, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 122, + 97, + 107, + 101, + 110, + 92, + 47, + 118, + 49, + 92, + 47, + 122, + 97, + 107, + 101, + 110, + 92, + 47, + 98, + 52, + 100, + 50, + 52, + 99, + 100, + 102, + 45, + 51, + 50, + 53, + 51, + 45, + 52, + 98, + 51, + 102, + 45, + 56, + 48, + 52, + 101, + 45, + 97, + 56, + 56, + 55, + 97, + 97, + 97, + 56, + 101, + 49, + 55, + 99, + 34, + 44, + 34, + 117, + 117, + 105, + 100, + 34, + 58, + 34, + 98, + 52, + 100, + 50, + 52, + 99, + 100, + 102, + 45, + 51, + 50, + 53, + 51, + 45, + 52, + 98, + 51, + 102, + 45, + 56, + 48, + 52, + 101, + 45, + 97, + 56, + 56, + 55, + 97, + 97, + 97, + 56, + 101, + 49, + 55, + 99, + 34, + 44, + 34, + 105, + 100, + 101, + 110, + 116, + 105, + 102, + 105, + 99, + 97, + 116, + 105, + 101, + 34, + 58, + 34, + 90, + 65, + 65, + 75, + 45, + 84, + 66, + 79, + 78, + 76, + 74, + 45, + 70, + 57, + 49, + 57, + 48, + 55, + 34, + 44, + 34, + 111, + 109, + 115, + 99, + 104, + 114, + 105, + 106, + 118, + 105, + 110, + 103, + 34, + 58, + 34, + 115, + 116, + 114, + 105, + 110, + 103, + 34, + 44, + 34, + 116, + 111, + 101, + 108, + 105, + 99, + 104, + 116, + 105, + 110, + 103, + 34, + 58, + 34, + 115, + 116, + 114, + 105, + 110, + 103, + 34, + 44, + 34, + 122, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 105, + 92, + 47, + 118, + 49, + 92, + 47, + 122, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 110, + 92, + 47, + 57, + 97, + 51, + 51, + 100, + 50, + 48, + 100, + 45, + 50, + 51, + 102, + 56, + 45, + 52, + 100, + 55, + 52, + 45, + 56, + 53, + 56, + 50, + 45, + 53, + 101, + 56, + 57, + 56, + 102, + 54, + 49, + 54, + 54, + 56, + 56, + 34, + 44, + 34, + 114, + 101, + 103, + 105, + 115, + 116, + 114, + 97, + 116, + 105, + 101, + 100, + 97, + 116, + 117, + 109, + 34, + 58, + 34, + 50, + 48, + 50, + 54, + 45, + 48, + 51, + 45, + 49, + 48, + 84, + 49, + 50, + 58, + 50, + 48, + 58, + 48, + 55, + 43, + 48, + 48, + 58, + 48, + 48, + 34, + 44, + 34, + 115, + 116, + 97, + 114, + 116, + 100, + 97, + 116, + 117, + 109, + 34, + 58, + 34, + 50, + 48, + 49, + 57, + 45, + 48, + 52, + 45, + 48, + 57, + 34, + 44, + 34, + 101, + 105, + 110, + 100, + 100, + 97, + 116, + 117, + 109, + 34, + 58, + 110, + 117, + 108, + 108, + 44, + 34, + 101, + 105, + 110, + 100, + 100, + 97, + 116, + 117, + 109, + 71, + 101, + 112, + 108, + 97, + 110, + 100, + 34, + 58, + 34, + 50, + 48, + 49, + 57, + 45, + 48, + 52, + 45, + 50, + 48, + 34, + 44, + 34, + 117, + 105, + 116, + 101, + 114, + 108, + 105, + 106, + 107, + 101, + 69, + 105, + 110, + 100, + 100, + 97, + 116, + 117, + 109, + 65, + 102, + 100, + 111, + 101, + 110, + 105, + 110, + 103, + 34, + 58, + 34, + 50, + 48, + 49, + 57, + 45, + 48, + 52, + 45, + 48, + 57, + 34, + 44, + 34, + 118, + 101, + 114, + 116, + 114, + 111, + 117, + 119, + 101, + 108, + 105, + 106, + 107, + 104, + 101, + 105, + 100, + 97, + 97, + 110, + 100, + 117, + 105, + 100, + 105, + 110, + 103, + 34, + 58, + 34, + 103, + 101, + 104, + 101, + 105, + 109, + 34, + 44, + 34, + 118, + 101, + 114, + 97, + 110, + 116, + 119, + 111, + 111, + 114, + 100, + 101, + 108, + 105, + 106, + 107, + 101, + 79, + 114, + 103, + 97, + 110, + 105, + 115, + 97, + 116, + 105, + 101, + 34, + 58, + 34, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 34, + 44, + 34, + 97, + 114, + 99, + 104, + 105, + 101, + 102, + 110, + 111, + 109, + 105, + 110, + 97, + 116, + 105, + 101, + 34, + 58, + 110, + 117, + 108, + 108, + 44, + 34, + 97, + 114, + 99, + 104, + 105, + 101, + 102, + 97, + 99, + 116, + 105, + 101, + 100, + 97, + 116, + 117, + 109, + 34, + 58, + 110, + 117, + 108, + 108, + 44, + 34, + 97, + 114, + 99, + 104, + 105, + 101, + 102, + 115, + 116, + 97, + 116, + 117, + 115, + 34, + 58, + 34, + 110, + 111, + 103, + 95, + 116, + 101, + 95, + 97, + 114, + 99, + 104, + 105, + 118, + 101, + 114, + 101, + 110, + 34, + 44, + 34, + 98, + 101, + 116, + 97, + 108, + 105, + 110, + 103, + 115, + 105, + 110, + 100, + 105, + 99, + 97, + 116, + 105, + 101, + 34, + 58, + 34, + 103, + 101, + 104, + 101, + 101, + 108, + 34, + 44, + 34, + 108, + 97, + 97, + 116, + 115, + 116, + 101, + 66, + 101, + 116, + 97, + 97, + 108, + 100, + 97, + 116, + 117, + 109, + 34, + 58, + 34, + 50, + 48, + 49, + 57, + 45, + 48, + 49, + 45, + 48, + 49, + 34, + 44, + 34, + 104, + 111, + 111, + 102, + 100, + 122, + 97, + 97, + 107, + 34, + 58, + 110, + 117, + 108, + 108, + 125 + ] + }, + "cookie": [], + "responseTime": 258, + "responseSize": 805 + }, + "id": "381f329e-48ee-4f74-ae36-b2ccb7c36178" + }, + { + "cursor": { + "ref": "38b3136c-c895-4894-8783-6797adfa867f", + "length": 313, + "cycles": 1, + "position": 262, + "iteration": 0, + "httpRequestId": "247dd4a6-05af-4f8c-bdcc-5d5459cba857" + }, + "item": { + "id": "212d7a43-a884-4c9c-8093-e0fc2ed43421", + "name": "Add Resultaat to Zaak", + "request": { + "url": { + "path": [ + "resultaten" + ], + "host": [ + "{{zrc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n\t\"zaak\": \"{{zaak_zonder_archiefnominatie_url}}\",\n\t\"resultaattype\": \"{{current_resultaattype}}\"\n}" + } + }, + "response": [], + "event": [ + { + "listen": "prerequest", + "script": { + "id": "3c937fde-1e32-4775-8963-67d6c0494ca9", + "type": "text/javascript", + "exec": [ + "// if (!pm.environment.get(\"resultaattype_index\")) {", + "// pm.environment.set(\"resultaattype_index\", 0);", + "// }", + "", + "// pm.environment.set(\"current_resultaattype\", pm.environment.get(\"zaaktype_resultaattypen\")[pm.environment.get(\"resultaattype_index\")])" + ], + "_lastExecutionId": "bbc9b9c4-1f64-48c3-9b86-9377b948b4bf" + } + }, + { + "listen": "test", + "script": { + "id": "44663709-afeb-48b1-adc3-2356c1465d31", + "type": "text/javascript", + "exec": [ + "pm.environment.set(\"zaak_resultaat_url\", pm.response.json().url);" + ], + "_lastExecutionId": "4a834e3b-7de6-49bd-8126-9d039385e7f2" + } + } + ] + }, + "request": { + "url": { + "protocol": "http", + "port": "8080", + "path": [ + "index.php", + "apps", + "procest", + "api", + "zgw", + "zaken", + "v1", + "resultaten" + ], + "host": [ + "localhost" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Authorization", + "value": "Bearer eyJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJwcm9jZXN0LWFkbWluIiwiY2xpZW50X2lkIjoicHJvY2VzdC1hZG1pbiIsImlhdCI6IjE3NzMxNDUyMDgiLCJ1c2VyX2lkIjoicHJvY2VzdC1hZG1pbiIsInVzZXJfcmVwcmVzZW50YXRpb24iOiIifQ.YgPvzgVXgnRCpmVChMug0dnDHGSnRA92o0tAWi_PKaA", + "system": true + }, + { + "key": "User-Agent", + "value": "PostmanRuntime/7.39.1", + "system": true + }, + { + "key": "Accept", + "value": "*/*", + "system": true + }, + { + "key": "Cache-Control", + "value": "no-cache", + "system": true + }, + { + "key": "Postman-Token", + "value": "f06a904f-1c30-4008-943e-6f7ad575c339", + "system": true + }, + { + "key": "Host", + "value": "localhost:8080", + "system": true + }, + { + "key": "Accept-Encoding", + "value": "gzip, deflate, br", + "system": true + }, + { + "key": "Connection", + "value": "keep-alive", + "system": true + }, + { + "key": "Content-Length", + "value": "257", + "system": true + }, + { + "key": "Cookie", + "value": "ocvp3112b4wg=05eb71c3a2a1f07fdaaa0469685c28b8; oc_sessionPassphrase=LBNdKxRzA0iqoULIruNxDDh2BK3O%2BrCIU8aUmiUcOFvy5Xw1YfjwQNlmBW2IkGwJYtxXh9%2BwDN6vYuGNX07tXzkBtjQJUWTGdzf8AIOUIVxVx5DfyWAQZ7nmYmQv6XSE; nc_sameSiteCookielax=true; nc_sameSiteCookiestrict=true", + "system": true + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n\t\"zaak\": \"http://localhost:8080/index.php/apps/procest/api/zgw/zaken/v1/zaken/b4d24cdf-3253-4b3f-804e-a887aaa8e17c\",\n\t\"resultaattype\": \"http://localhost:8080/index.php/apps/procest/api/zgw/catalogi/v1/resultaattypen/19729a97-90dd-4fbb-8752-836a69c49398\"\n}" + }, + "auth": { + "type": "jwt", + "jwt": [ + { + "type": "string", + "value": "{\r\n \"iss\": \"procest-admin\",\r\n \"client_id\": \"procest-admin\",\r\n \"iat\": \"1773145208\",\r\n \"user_id\": \"procest-admin\",\r\n \"user_representation\": \"\"\r\n}", + "key": "payload" + }, + { + "type": "string", + "value": "procest-admin-secret-key-for-testing", + "key": "secret" + }, + { + "type": "string", + "value": "HS256", + "key": "algorithm" + }, + { + "type": "boolean", + "value": false, + "key": "isSecretBase64Encoded" + }, + { + "type": "string", + "value": "header", + "key": "addTokenTo" + }, + { + "type": "string", + "value": "Bearer", + "key": "headerPrefix" + }, + { + "type": "string", + "value": "token", + "key": "queryParamKey" + }, + { + "type": "string", + "value": "{}", + "key": "header" + } + ] + } + }, + "response": { + "id": "f609149f-63c3-4803-bcd7-12a380659a27", + "status": "Created", + "code": 201, + "header": [ + { + "key": "Date", + "value": "Tue, 10 Mar 2026 12:20:07 GMT" + }, + { + "key": "Server", + "value": "Apache/2.4.66 (Debian)" + }, + { + "key": "X-Content-Type-Options", + "value": "nosniff" + }, + { + "key": "X-Frame-Options", + "value": "SAMEORIGIN" + }, + { + "key": "X-Permitted-Cross-Domain-Policies", + "value": "none" + }, + { + "key": "X-Robots-Tag", + "value": "noindex, nofollow" + }, + { + "key": "Referrer-Policy", + "value": "no-referrer" + }, + { + "key": "X-Powered-By", + "value": "PHP/8.3.30" + }, + { + "key": "Content-Security-Policy", + "value": "default-src 'none';base-uri 'none';manifest-src 'self';frame-ancestors 'none'" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=05eb71c3a2a1f07fdaaa0469685c28b8; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=05eb71c3a2a1f07fdaaa0469685c28b8; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=05eb71c3a2a1f07fdaaa0469685c28b8; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=05eb71c3a2a1f07fdaaa0469685c28b8; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=05eb71c3a2a1f07fdaaa0469685c28b8; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=394c6226561ba78b935ac4ed811ae240; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=394c6226561ba78b935ac4ed811ae240; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=394c6226561ba78b935ac4ed811ae240; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=394c6226561ba78b935ac4ed811ae240; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=394c6226561ba78b935ac4ed811ae240; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "X-Request-Id", + "value": "92eZcGfypTVjAwcLMxvv" + }, + { + "key": "Cache-Control", + "value": "no-cache, no-store, must-revalidate" + }, + { + "key": "Feature-Policy", + "value": "autoplay 'none';camera 'none';fullscreen 'none';geolocation 'none';microphone 'none';payment 'none'" + }, + { + "key": "X-User-Id", + "value": "admin" + }, + { + "key": "Content-Length", + "value": "464" + }, + { + "key": "Keep-Alive", + "value": "timeout=5, max=70" + }, + { + "key": "Connection", + "value": "Keep-Alive" + }, + { + "key": "Content-Type", + "value": "application/json; charset=utf-8" + } + ], + "stream": { + "type": "Buffer", + "data": [ + 123, + 34, + 117, + 114, + 108, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 122, + 97, + 107, + 101, + 110, + 92, + 47, + 118, + 49, + 92, + 47, + 114, + 101, + 115, + 117, + 108, + 116, + 97, + 116, + 101, + 110, + 92, + 47, + 51, + 49, + 98, + 100, + 54, + 51, + 50, + 48, + 45, + 97, + 102, + 101, + 48, + 45, + 52, + 54, + 99, + 53, + 45, + 97, + 51, + 49, + 98, + 45, + 101, + 56, + 99, + 97, + 55, + 49, + 100, + 53, + 52, + 54, + 52, + 56, + 34, + 44, + 34, + 117, + 117, + 105, + 100, + 34, + 58, + 34, + 51, + 49, + 98, + 100, + 54, + 51, + 50, + 48, + 45, + 97, + 102, + 101, + 48, + 45, + 52, + 54, + 99, + 53, + 45, + 97, + 51, + 49, + 98, + 45, + 101, + 56, + 99, + 97, + 55, + 49, + 100, + 53, + 52, + 54, + 52, + 56, + 34, + 44, + 34, + 122, + 97, + 97, + 107, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 122, + 97, + 107, + 101, + 110, + 92, + 47, + 118, + 49, + 92, + 47, + 122, + 97, + 107, + 101, + 110, + 92, + 47, + 98, + 52, + 100, + 50, + 52, + 99, + 100, + 102, + 45, + 51, + 50, + 53, + 51, + 45, + 52, + 98, + 51, + 102, + 45, + 56, + 48, + 52, + 101, + 45, + 97, + 56, + 56, + 55, + 97, + 97, + 97, + 56, + 101, + 49, + 55, + 99, + 34, + 44, + 34, + 114, + 101, + 115, + 117, + 108, + 116, + 97, + 97, + 116, + 116, + 121, + 112, + 101, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 105, + 92, + 47, + 118, + 49, + 92, + 47, + 114, + 101, + 115, + 117, + 108, + 116, + 97, + 97, + 116, + 116, + 121, + 112, + 101, + 110, + 92, + 47, + 49, + 57, + 55, + 50, + 57, + 97, + 57, + 55, + 45, + 57, + 48, + 100, + 100, + 45, + 52, + 102, + 98, + 98, + 45, + 56, + 55, + 53, + 50, + 45, + 56, + 51, + 54, + 97, + 54, + 57, + 99, + 52, + 57, + 51, + 57, + 56, + 34, + 44, + 34, + 116, + 111, + 101, + 108, + 105, + 99, + 104, + 116, + 105, + 110, + 103, + 34, + 58, + 34, + 34, + 125 + ] + }, + "cookie": [], + "responseTime": 255, + "responseSize": 464 + }, + "id": "212d7a43-a884-4c9c-8093-e0fc2ed43421" + }, + { + "cursor": { + "ref": "f3ce66ee-16c2-4569-8f20-231fffc920c7", + "length": 313, + "cycles": 1, + "position": 263, + "iteration": 0, + "httpRequestId": "1cf49731-3c88-410b-8697-10835d01056e" + }, + "item": { + "id": "c0a2a3c8-7c0c-4f1d-ada5-48013aa54947", + "name": "Add Eindstatus to Zaak without archiefnominatie", + "request": { + "url": { + "path": [ + "statussen" + ], + "host": [ + "{{zrc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n\t\"zaak\": \"{{zaak_zonder_archiefnominatie_url}}\",\n\t\"statustype\": \"{{current_statustype_url}}\",\n\t\"datumStatusGezet\": \"2018-04-26T13:37:00\"\n}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "062395d2-0ed0-48f0-b2da-18200689daec", + "type": "text/javascript", + "exec": [ + "" + ], + "_lastExecutionId": "cd81e3ab-988b-491e-a568-495fb74d8c85" + } + }, + { + "listen": "prerequest", + "script": { + "id": "a26aa521-74cb-45f1-9682-f1f48dd8a0dc", + "type": "text/javascript", + "exec": [ + "" + ], + "_lastExecutionId": "f2b77deb-d2d9-4733-91a6-570a4bdad943" + } + } + ] + }, + "request": { + "url": { + "protocol": "http", + "port": "8080", + "path": [ + "index.php", + "apps", + "procest", + "api", + "zgw", + "zaken", + "v1", + "statussen" + ], + "host": [ + "localhost" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Authorization", + "value": "Bearer eyJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJwcm9jZXN0LWFkbWluIiwiY2xpZW50X2lkIjoicHJvY2VzdC1hZG1pbiIsImlhdCI6IjE3NzMxNDUyMDgiLCJ1c2VyX2lkIjoicHJvY2VzdC1hZG1pbiIsInVzZXJfcmVwcmVzZW50YXRpb24iOiIifQ.YgPvzgVXgnRCpmVChMug0dnDHGSnRA92o0tAWi_PKaA", + "system": true + }, + { + "key": "User-Agent", + "value": "PostmanRuntime/7.39.1", + "system": true + }, + { + "key": "Accept", + "value": "*/*", + "system": true + }, + { + "key": "Cache-Control", + "value": "no-cache", + "system": true + }, + { + "key": "Postman-Token", + "value": "c2882fea-4da9-4f0e-a87c-85342cc52653", + "system": true + }, + { + "key": "Host", + "value": "localhost:8080", + "system": true + }, + { + "key": "Accept-Encoding", + "value": "gzip, deflate, br", + "system": true + }, + { + "key": "Connection", + "value": "keep-alive", + "system": true + }, + { + "key": "Content-Length", + "value": "295", + "system": true + }, + { + "key": "Cookie", + "value": "ocvp3112b4wg=394c6226561ba78b935ac4ed811ae240; oc_sessionPassphrase=LBNdKxRzA0iqoULIruNxDDh2BK3O%2BrCIU8aUmiUcOFvy5Xw1YfjwQNlmBW2IkGwJYtxXh9%2BwDN6vYuGNX07tXzkBtjQJUWTGdzf8AIOUIVxVx5DfyWAQZ7nmYmQv6XSE; nc_sameSiteCookielax=true; nc_sameSiteCookiestrict=true", + "system": true + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n\t\"zaak\": \"http://localhost:8080/index.php/apps/procest/api/zgw/zaken/v1/zaken/b4d24cdf-3253-4b3f-804e-a887aaa8e17c\",\n\t\"statustype\": \"http://localhost:8080/index.php/apps/procest/api/zgw/catalogi/v1/statustypen/373a62a9-c9f8-4e6a-88b1-1e000f222b24\",\n\t\"datumStatusGezet\": \"2018-04-26T13:37:00\"\n}" + }, + "auth": { + "type": "jwt", + "jwt": [ + { + "type": "string", + "value": "{\r\n \"iss\": \"procest-admin\",\r\n \"client_id\": \"procest-admin\",\r\n \"iat\": \"1773145208\",\r\n \"user_id\": \"procest-admin\",\r\n \"user_representation\": \"\"\r\n}", + "key": "payload" + }, + { + "type": "string", + "value": "procest-admin-secret-key-for-testing", + "key": "secret" + }, + { + "type": "string", + "value": "HS256", + "key": "algorithm" + }, + { + "type": "boolean", + "value": false, + "key": "isSecretBase64Encoded" + }, + { + "type": "string", + "value": "header", + "key": "addTokenTo" + }, + { + "type": "string", + "value": "Bearer", + "key": "headerPrefix" + }, + { + "type": "string", + "value": "token", + "key": "queryParamKey" + }, + { + "type": "string", + "value": "{}", + "key": "header" + } + ] + } + }, + "response": { + "id": "b1da3345-e4ee-4f15-9455-4f2b2dec6f76", + "status": "Created", + "code": 201, + "header": [ + { + "key": "Date", + "value": "Tue, 10 Mar 2026 12:20:08 GMT" + }, + { + "key": "Server", + "value": "Apache/2.4.66 (Debian)" + }, + { + "key": "X-Content-Type-Options", + "value": "nosniff" + }, + { + "key": "X-Frame-Options", + "value": "SAMEORIGIN" + }, + { + "key": "X-Permitted-Cross-Domain-Policies", + "value": "none" + }, + { + "key": "X-Robots-Tag", + "value": "noindex, nofollow" + }, + { + "key": "Referrer-Policy", + "value": "no-referrer" + }, + { + "key": "X-Powered-By", + "value": "PHP/8.3.30" + }, + { + "key": "Content-Security-Policy", + "value": "default-src 'none';base-uri 'none';manifest-src 'self';frame-ancestors 'none'" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=394c6226561ba78b935ac4ed811ae240; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=394c6226561ba78b935ac4ed811ae240; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=394c6226561ba78b935ac4ed811ae240; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=394c6226561ba78b935ac4ed811ae240; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=394c6226561ba78b935ac4ed811ae240; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=3a4e95b84c1e0c6b452f1c8811068f2b; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=3a4e95b84c1e0c6b452f1c8811068f2b; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=3a4e95b84c1e0c6b452f1c8811068f2b; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=3a4e95b84c1e0c6b452f1c8811068f2b; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=3a4e95b84c1e0c6b452f1c8811068f2b; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "X-Request-Id", + "value": "v03mNLzCxaqbaG0vyYkh" + }, + { + "key": "Cache-Control", + "value": "no-cache, no-store, must-revalidate" + }, + { + "key": "Feature-Policy", + "value": "autoplay 'none';camera 'none';fullscreen 'none';geolocation 'none';microphone 'none';payment 'none'" + }, + { + "key": "X-User-Id", + "value": "admin" + }, + { + "key": "Content-Length", + "value": "510" + }, + { + "key": "Keep-Alive", + "value": "timeout=5, max=69" + }, + { + "key": "Connection", + "value": "Keep-Alive" + }, + { + "key": "Content-Type", + "value": "application/json; charset=utf-8" + } + ], + "stream": { + "type": "Buffer", + "data": [ + 123, + 34, + 117, + 114, + 108, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 122, + 97, + 107, + 101, + 110, + 92, + 47, + 118, + 49, + 92, + 47, + 115, + 116, + 97, + 116, + 117, + 115, + 115, + 101, + 110, + 92, + 47, + 51, + 100, + 55, + 97, + 48, + 99, + 100, + 50, + 45, + 55, + 97, + 56, + 50, + 45, + 52, + 55, + 48, + 52, + 45, + 57, + 54, + 55, + 99, + 45, + 52, + 56, + 101, + 99, + 48, + 98, + 101, + 52, + 97, + 99, + 99, + 97, + 34, + 44, + 34, + 117, + 117, + 105, + 100, + 34, + 58, + 34, + 51, + 100, + 55, + 97, + 48, + 99, + 100, + 50, + 45, + 55, + 97, + 56, + 50, + 45, + 52, + 55, + 48, + 52, + 45, + 57, + 54, + 55, + 99, + 45, + 52, + 56, + 101, + 99, + 48, + 98, + 101, + 52, + 97, + 99, + 99, + 97, + 34, + 44, + 34, + 122, + 97, + 97, + 107, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 122, + 97, + 107, + 101, + 110, + 92, + 47, + 118, + 49, + 92, + 47, + 122, + 97, + 107, + 101, + 110, + 92, + 47, + 98, + 52, + 100, + 50, + 52, + 99, + 100, + 102, + 45, + 51, + 50, + 53, + 51, + 45, + 52, + 98, + 51, + 102, + 45, + 56, + 48, + 52, + 101, + 45, + 97, + 56, + 56, + 55, + 97, + 97, + 97, + 56, + 101, + 49, + 55, + 99, + 34, + 44, + 34, + 115, + 116, + 97, + 116, + 117, + 115, + 116, + 121, + 112, + 101, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 105, + 92, + 47, + 118, + 49, + 92, + 47, + 115, + 116, + 97, + 116, + 117, + 115, + 116, + 121, + 112, + 101, + 110, + 92, + 47, + 51, + 55, + 51, + 97, + 54, + 50, + 97, + 57, + 45, + 99, + 57, + 102, + 56, + 45, + 52, + 101, + 54, + 97, + 45, + 56, + 56, + 98, + 49, + 45, + 49, + 101, + 48, + 48, + 48, + 102, + 50, + 50, + 50, + 98, + 50, + 52, + 34, + 44, + 34, + 100, + 97, + 116, + 117, + 109, + 83, + 116, + 97, + 116, + 117, + 115, + 71, + 101, + 122, + 101, + 116, + 34, + 58, + 34, + 50, + 48, + 50, + 54, + 45, + 48, + 51, + 45, + 49, + 48, + 84, + 49, + 50, + 58, + 50, + 48, + 58, + 48, + 56, + 43, + 48, + 48, + 58, + 48, + 48, + 34, + 44, + 34, + 115, + 116, + 97, + 116, + 117, + 115, + 116, + 111, + 101, + 108, + 105, + 99, + 104, + 116, + 105, + 110, + 103, + 34, + 58, + 34, + 34, + 125 + ] + }, + "cookie": [], + "responseTime": 315, + "responseSize": 510 + }, + "id": "c0a2a3c8-7c0c-4f1d-ada5-48013aa54947" + }, + { + "cursor": { + "ref": "218ccd78-cb6b-4846-b2d9-9d4c9fc232d5", + "length": 313, + "cycles": 1, + "position": 264, + "iteration": 0, + "httpRequestId": "f4dba4f8-198a-4258-9e5b-32ada4379095" + }, + "item": { + "id": "9a1b8361-d2d3-43df-a545-b50c5361508b", + "name": "(zrc-021g) Afleidingswijze ander_datumkenmerk", + "request": { + "url": { + "host": [ + "{{zaak_zonder_archiefnominatie_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Accept-Crs", + "value": "EPSG:4326" + } + ], + "method": "GET" + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "2df2545f-d35c-4069-85a4-08fa52208e91", + "type": "text/javascript", + "exec": [ + "var moment = require('moment');", + "", + "pm.test(\"Resultaat toevoegen aan Zaak zonder archiefnominatie betekent dat archiefnominatie afgeleid wordt uit Resultaattype\", function() {", + " pm.response.to.have.status(200);", + " pm.expect(pm.response.json().archiefnominatie).to.be.equal(pm.environment.get(\"resultaattype_archiefnominatie\"));", + "});", + "", + "pm.test(\"Resultaat met afleidingswijze ander_datumkenmerk toevoegen aan Zaak zet correcte Zaak.archiefdatum\", function() {", + " var jsonData = pm.response.json();", + " ", + " if (pm.environment.get(\"resultaattype_archiefactietermijn\")) {", + " // const brondatum = moment.utc(jsonData.einddatum).add(procestermijn);", + " // TODO", + " const brondatum = null;", + " ", + " // const archiefactietermijn = moment.duration(pm.environment.get(\"resultaattype_archiefactietermijn\"), 'years');", + " // var calculated_archiefactiedatum = brondatum.add(archiefactietermijn);", + " ", + " // pm.expect(jsonData.archiefactiedatum).to.be.equal(calculated_archiefactiedatum.format(\"YYYY-MM-DD\")); ", + " pm.expect(jsonData.archiefactiedatum).to.be.equal(null);", + " }", + "});" + ], + "_lastExecutionId": "d5e6fc8d-c2c9-405c-b463-91e2b70eea09" + } + } + ] + }, + "request": { + "url": { + "protocol": "http", + "port": "8080", + "path": [ + "index.php", + "apps", + "procest", + "api", + "zgw", + "zaken", + "v1", + "zaken", + "b4d24cdf-3253-4b3f-804e-a887aaa8e17c" + ], + "host": [ + "localhost" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Accept-Crs", + "value": "EPSG:4326" + }, + { + "key": "Authorization", + "value": "Bearer eyJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJwcm9jZXN0LWFkbWluIiwiY2xpZW50X2lkIjoicHJvY2VzdC1hZG1pbiIsImlhdCI6IjE3NzMxNDUyMDkiLCJ1c2VyX2lkIjoicHJvY2VzdC1hZG1pbiIsInVzZXJfcmVwcmVzZW50YXRpb24iOiIifQ.iOG5ZBXsm0pb0LQPlNX4-KSlSsDjycxQT1RWYgA9vFk", + "system": true + }, + { + "key": "User-Agent", + "value": "PostmanRuntime/7.39.1", + "system": true + }, + { + "key": "Accept", + "value": "*/*", + "system": true + }, + { + "key": "Cache-Control", + "value": "no-cache", + "system": true + }, + { + "key": "Postman-Token", + "value": "633cc919-c0e1-45a5-80c1-0fe27f8388c9", + "system": true + }, + { + "key": "Host", + "value": "localhost:8080", + "system": true + }, + { + "key": "Accept-Encoding", + "value": "gzip, deflate, br", + "system": true + }, + { + "key": "Connection", + "value": "keep-alive", + "system": true + }, + { + "key": "Cookie", + "value": "ocvp3112b4wg=3a4e95b84c1e0c6b452f1c8811068f2b; oc_sessionPassphrase=LBNdKxRzA0iqoULIruNxDDh2BK3O%2BrCIU8aUmiUcOFvy5Xw1YfjwQNlmBW2IkGwJYtxXh9%2BwDN6vYuGNX07tXzkBtjQJUWTGdzf8AIOUIVxVx5DfyWAQZ7nmYmQv6XSE; nc_sameSiteCookielax=true; nc_sameSiteCookiestrict=true", + "system": true + } + ], + "method": "GET", + "auth": { + "type": "jwt", + "jwt": [ + { + "type": "string", + "value": "{\r\n \"iss\": \"procest-admin\",\r\n \"client_id\": \"procest-admin\",\r\n \"iat\": \"1773145209\",\r\n \"user_id\": \"procest-admin\",\r\n \"user_representation\": \"\"\r\n}", + "key": "payload" + }, + { + "type": "string", + "value": "procest-admin-secret-key-for-testing", + "key": "secret" + }, + { + "type": "string", + "value": "HS256", + "key": "algorithm" + }, + { + "type": "boolean", + "value": false, + "key": "isSecretBase64Encoded" + }, + { + "type": "string", + "value": "header", + "key": "addTokenTo" + }, + { + "type": "string", + "value": "Bearer", + "key": "headerPrefix" + }, + { + "type": "string", + "value": "token", + "key": "queryParamKey" + }, + { + "type": "string", + "value": "{}", + "key": "header" + } + ] + } + }, + "response": { + "id": "07785e11-474f-4890-97ec-c91ba6a10aea", + "status": "OK", + "code": 200, + "header": [ + { + "key": "Date", + "value": "Tue, 10 Mar 2026 12:20:08 GMT" + }, + { + "key": "Server", + "value": "Apache/2.4.66 (Debian)" + }, + { + "key": "X-Content-Type-Options", + "value": "nosniff" + }, + { + "key": "X-Frame-Options", + "value": "SAMEORIGIN" + }, + { + "key": "X-Permitted-Cross-Domain-Policies", + "value": "none" + }, + { + "key": "X-Robots-Tag", + "value": "noindex, nofollow" + }, + { + "key": "Referrer-Policy", + "value": "no-referrer" + }, + { + "key": "X-Powered-By", + "value": "PHP/8.3.30" + }, + { + "key": "Content-Security-Policy", + "value": "default-src 'none';base-uri 'none';manifest-src 'self';frame-ancestors 'none'" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=3a4e95b84c1e0c6b452f1c8811068f2b; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=3a4e95b84c1e0c6b452f1c8811068f2b; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=3a4e95b84c1e0c6b452f1c8811068f2b; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=3a4e95b84c1e0c6b452f1c8811068f2b; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=3a4e95b84c1e0c6b452f1c8811068f2b; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=305e67f7987a0f6cfd914a97b4de6173; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=305e67f7987a0f6cfd914a97b4de6173; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=305e67f7987a0f6cfd914a97b4de6173; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=305e67f7987a0f6cfd914a97b4de6173; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=305e67f7987a0f6cfd914a97b4de6173; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "X-Request-Id", + "value": "W4KgLPq0TF1Nmq25RK3Y" + }, + { + "key": "Cache-Control", + "value": "no-cache, no-store, must-revalidate" + }, + { + "key": "Feature-Policy", + "value": "autoplay 'none';camera 'none';fullscreen 'none';geolocation 'none';microphone 'none';payment 'none'" + }, + { + "key": "X-User-Id", + "value": "admin" + }, + { + "key": "Content-Encoding", + "value": "gzip" + }, + { + "key": "Content-Length", + "value": "452" + }, + { + "key": "Keep-Alive", + "value": "timeout=5, max=68" + }, + { + "key": "Connection", + "value": "Keep-Alive" + }, + { + "key": "Content-Type", + "value": "application/json; charset=utf-8" + } + ], + "stream": { + "type": "Buffer", + "data": [ + 123, + 34, + 117, + 114, + 108, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 122, + 97, + 107, + 101, + 110, + 92, + 47, + 118, + 49, + 92, + 47, + 122, + 97, + 107, + 101, + 110, + 92, + 47, + 98, + 52, + 100, + 50, + 52, + 99, + 100, + 102, + 45, + 51, + 50, + 53, + 51, + 45, + 52, + 98, + 51, + 102, + 45, + 56, + 48, + 52, + 101, + 45, + 97, + 56, + 56, + 55, + 97, + 97, + 97, + 56, + 101, + 49, + 55, + 99, + 34, + 44, + 34, + 117, + 117, + 105, + 100, + 34, + 58, + 34, + 98, + 52, + 100, + 50, + 52, + 99, + 100, + 102, + 45, + 51, + 50, + 53, + 51, + 45, + 52, + 98, + 51, + 102, + 45, + 56, + 48, + 52, + 101, + 45, + 97, + 56, + 56, + 55, + 97, + 97, + 97, + 56, + 101, + 49, + 55, + 99, + 34, + 44, + 34, + 105, + 100, + 101, + 110, + 116, + 105, + 102, + 105, + 99, + 97, + 116, + 105, + 101, + 34, + 58, + 34, + 90, + 65, + 65, + 75, + 45, + 84, + 66, + 79, + 78, + 76, + 74, + 45, + 70, + 57, + 49, + 57, + 48, + 55, + 34, + 44, + 34, + 111, + 109, + 115, + 99, + 104, + 114, + 105, + 106, + 118, + 105, + 110, + 103, + 34, + 58, + 34, + 115, + 116, + 114, + 105, + 110, + 103, + 34, + 44, + 34, + 116, + 111, + 101, + 108, + 105, + 99, + 104, + 116, + 105, + 110, + 103, + 34, + 58, + 34, + 115, + 116, + 114, + 105, + 110, + 103, + 34, + 44, + 34, + 122, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 105, + 92, + 47, + 118, + 49, + 92, + 47, + 122, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 110, + 92, + 47, + 57, + 97, + 51, + 51, + 100, + 50, + 48, + 100, + 45, + 50, + 51, + 102, + 56, + 45, + 52, + 100, + 55, + 52, + 45, + 56, + 53, + 56, + 50, + 45, + 53, + 101, + 56, + 57, + 56, + 102, + 54, + 49, + 54, + 54, + 56, + 56, + 34, + 44, + 34, + 114, + 101, + 103, + 105, + 115, + 116, + 114, + 97, + 116, + 105, + 101, + 100, + 97, + 116, + 117, + 109, + 34, + 58, + 34, + 50, + 48, + 50, + 54, + 45, + 48, + 51, + 45, + 49, + 48, + 84, + 49, + 50, + 58, + 50, + 48, + 58, + 48, + 55, + 43, + 48, + 48, + 58, + 48, + 48, + 34, + 44, + 34, + 115, + 116, + 97, + 114, + 116, + 100, + 97, + 116, + 117, + 109, + 34, + 58, + 34, + 50, + 48, + 49, + 57, + 45, + 48, + 52, + 45, + 48, + 57, + 34, + 44, + 34, + 101, + 105, + 110, + 100, + 100, + 97, + 116, + 117, + 109, + 34, + 58, + 34, + 50, + 48, + 49, + 56, + 45, + 48, + 52, + 45, + 50, + 54, + 34, + 44, + 34, + 101, + 105, + 110, + 100, + 100, + 97, + 116, + 117, + 109, + 71, + 101, + 112, + 108, + 97, + 110, + 100, + 34, + 58, + 34, + 50, + 48, + 49, + 57, + 45, + 48, + 52, + 45, + 50, + 48, + 34, + 44, + 34, + 117, + 105, + 116, + 101, + 114, + 108, + 105, + 106, + 107, + 101, + 69, + 105, + 110, + 100, + 100, + 97, + 116, + 117, + 109, + 65, + 102, + 100, + 111, + 101, + 110, + 105, + 110, + 103, + 34, + 58, + 34, + 50, + 48, + 49, + 57, + 45, + 48, + 52, + 45, + 48, + 57, + 34, + 44, + 34, + 118, + 101, + 114, + 116, + 114, + 111, + 117, + 119, + 101, + 108, + 105, + 106, + 107, + 104, + 101, + 105, + 100, + 97, + 97, + 110, + 100, + 117, + 105, + 100, + 105, + 110, + 103, + 34, + 58, + 34, + 103, + 101, + 104, + 101, + 105, + 109, + 34, + 44, + 34, + 118, + 101, + 114, + 97, + 110, + 116, + 119, + 111, + 111, + 114, + 100, + 101, + 108, + 105, + 106, + 107, + 101, + 79, + 114, + 103, + 97, + 110, + 105, + 115, + 97, + 116, + 105, + 101, + 34, + 58, + 34, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 34, + 44, + 34, + 97, + 114, + 99, + 104, + 105, + 101, + 102, + 110, + 111, + 109, + 105, + 110, + 97, + 116, + 105, + 101, + 34, + 58, + 34, + 118, + 101, + 114, + 110, + 105, + 101, + 116, + 105, + 103, + 101, + 110, + 34, + 44, + 34, + 97, + 114, + 99, + 104, + 105, + 101, + 102, + 97, + 99, + 116, + 105, + 101, + 100, + 97, + 116, + 117, + 109, + 34, + 58, + 110, + 117, + 108, + 108, + 44, + 34, + 97, + 114, + 99, + 104, + 105, + 101, + 102, + 115, + 116, + 97, + 116, + 117, + 115, + 34, + 58, + 34, + 110, + 111, + 103, + 95, + 116, + 101, + 95, + 97, + 114, + 99, + 104, + 105, + 118, + 101, + 114, + 101, + 110, + 34, + 44, + 34, + 98, + 101, + 116, + 97, + 108, + 105, + 110, + 103, + 115, + 105, + 110, + 100, + 105, + 99, + 97, + 116, + 105, + 101, + 34, + 58, + 34, + 103, + 101, + 104, + 101, + 101, + 108, + 34, + 44, + 34, + 108, + 97, + 97, + 116, + 115, + 116, + 101, + 66, + 101, + 116, + 97, + 97, + 108, + 100, + 97, + 116, + 117, + 109, + 34, + 58, + 34, + 50, + 48, + 49, + 57, + 45, + 48, + 49, + 45, + 48, + 49, + 34, + 44, + 34, + 104, + 111, + 111, + 102, + 100, + 122, + 97, + 97, + 107, + 34, + 58, + 110, + 117, + 108, + 108, + 125 + ] + }, + "cookie": [], + "responseTime": 120, + "responseSize": 822 + }, + "id": "9a1b8361-d2d3-43df-a545-b50c5361508b", + "assertions": [ + { + "assertion": "Resultaat toevoegen aan Zaak zonder archiefnominatie betekent dat archiefnominatie afgeleid wordt uit Resultaattype", + "skipped": false + }, + { + "assertion": "Resultaat met afleidingswijze ander_datumkenmerk toevoegen aan Zaak zet correcte Zaak.archiefdatum", + "skipped": false + } + ] + }, + { + "cursor": { + "ref": "d35cb3ea-51cf-4b35-88a0-f0ae971cb8ea", + "length": 313, + "cycles": 1, + "position": 265, + "iteration": 0, + "httpRequestId": "5b0ff0e3-8880-4b26-91f7-8c930bb2ca97" + }, + "item": { + "id": "c514dedb-32f3-48ac-9e83-bc1540a2de7b", + "name": "Create InformatieObjecttype Copy 2", + "request": { + "url": { + "path": [ + "informatieobjecttypen" + ], + "host": [ + "{{ztc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n\t\"catalogus\": \"{{catalogus_url}}\",\n\t\"omschrijving\": \"{{informatieobject_omschrijving}}\",\n\t\"vertrouwelijkheidaanduiding\": \"openbaar\",\n\t\"beginGeldigheid\": \"2019-01-01\",\n\t\"informatieobjectcategorie\": \"document\"\n}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "e7ec73c9-3bcb-42c6-92b2-960e3af1c4ad", + "type": "text/javascript", + "packages": {}, + "exec": [ + "if(pm.response.code == 201) {\r", + " pm.environment.set(\"informatieobjecttype_url\", pm.response.json().url);\r", + "}" + ], + "_lastExecutionId": "9a85c29d-19cf-419a-a5ac-a6b300902b3b" + } + }, + { + "listen": "prerequest", + "script": { + "id": "883b3480-e002-4d37-ba02-6d612b08f519", + "type": "text/javascript", + "packages": {}, + "exec": [ + "var uuid = require('uuid');\r", + "var myUUID = uuid.v4(); \r", + "pm.environment.set(\"informatieobject_omschrijving\", myUUID);" + ], + "_lastExecutionId": "592031af-a667-4e67-a96c-4b10e1326e26" + } + } + ] + }, + "request": { + "url": { + "protocol": "http", + "port": "8080", + "path": [ + "index.php", + "apps", + "procest", + "api", + "zgw", + "catalogi", + "v1", + "informatieobjecttypen" + ], + "host": [ + "localhost" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Authorization", + "value": "Bearer eyJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJwcm9jZXN0LWFkbWluIiwiY2xpZW50X2lkIjoicHJvY2VzdC1hZG1pbiIsImlhdCI6IjE3NzMxNDUyMDkiLCJ1c2VyX2lkIjoicHJvY2VzdC1hZG1pbiIsInVzZXJfcmVwcmVzZW50YXRpb24iOiIifQ.iOG5ZBXsm0pb0LQPlNX4-KSlSsDjycxQT1RWYgA9vFk", + "system": true + }, + { + "key": "User-Agent", + "value": "PostmanRuntime/7.39.1", + "system": true + }, + { + "key": "Accept", + "value": "*/*", + "system": true + }, + { + "key": "Cache-Control", + "value": "no-cache", + "system": true + }, + { + "key": "Postman-Token", + "value": "a4a6e5fb-b3f2-4a36-9906-9b7c0170be53", + "system": true + }, + { + "key": "Host", + "value": "localhost:8080", + "system": true + }, + { + "key": "Accept-Encoding", + "value": "gzip, deflate, br", + "system": true + }, + { + "key": "Connection", + "value": "keep-alive", + "system": true + }, + { + "key": "Content-Length", + "value": "311", + "system": true + }, + { + "key": "Cookie", + "value": "ocvp3112b4wg=305e67f7987a0f6cfd914a97b4de6173; oc_sessionPassphrase=LBNdKxRzA0iqoULIruNxDDh2BK3O%2BrCIU8aUmiUcOFvy5Xw1YfjwQNlmBW2IkGwJYtxXh9%2BwDN6vYuGNX07tXzkBtjQJUWTGdzf8AIOUIVxVx5DfyWAQZ7nmYmQv6XSE; nc_sameSiteCookielax=true; nc_sameSiteCookiestrict=true", + "system": true + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n\t\"catalogus\": \"http://localhost:8080/index.php/apps/procest/api/zgw/catalogi/v1/catalogussen/5057408f-fd76-469e-8646-bcc4ba2efa8d\",\n\t\"omschrijving\": \"2523610f-ef0a-405b-8175-5848b576f35a\",\n\t\"vertrouwelijkheidaanduiding\": \"openbaar\",\n\t\"beginGeldigheid\": \"2019-01-01\",\n\t\"informatieobjectcategorie\": \"document\"\n}" + }, + "auth": { + "type": "jwt", + "jwt": [ + { + "type": "string", + "value": "{\r\n \"iss\": \"procest-admin\",\r\n \"client_id\": \"procest-admin\",\r\n \"iat\": \"1773145209\",\r\n \"user_id\": \"procest-admin\",\r\n \"user_representation\": \"\"\r\n}", + "key": "payload" + }, + { + "type": "string", + "value": "procest-admin-secret-key-for-testing", + "key": "secret" + }, + { + "type": "string", + "value": "HS256", + "key": "algorithm" + }, + { + "type": "boolean", + "value": false, + "key": "isSecretBase64Encoded" + }, + { + "type": "string", + "value": "header", + "key": "addTokenTo" + }, + { + "type": "string", + "value": "Bearer", + "key": "headerPrefix" + }, + { + "type": "string", + "value": "token", + "key": "queryParamKey" + }, + { + "type": "string", + "value": "{}", + "key": "header" + } + ] + } + }, + "response": { + "id": "4268278b-f6d9-4bec-8902-0aee86a27e64", + "status": "Created", + "code": 201, + "header": [ + { + "key": "Date", + "value": "Tue, 10 Mar 2026 12:20:08 GMT" + }, + { + "key": "Server", + "value": "Apache/2.4.66 (Debian)" + }, + { + "key": "X-Content-Type-Options", + "value": "nosniff" + }, + { + "key": "X-Frame-Options", + "value": "SAMEORIGIN" + }, + { + "key": "X-Permitted-Cross-Domain-Policies", + "value": "none" + }, + { + "key": "X-Robots-Tag", + "value": "noindex, nofollow" + }, + { + "key": "Referrer-Policy", + "value": "no-referrer" + }, + { + "key": "X-Powered-By", + "value": "PHP/8.3.30" + }, + { + "key": "Content-Security-Policy", + "value": "default-src 'none';base-uri 'none';manifest-src 'self';frame-ancestors 'none'" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=305e67f7987a0f6cfd914a97b4de6173; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=305e67f7987a0f6cfd914a97b4de6173; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=305e67f7987a0f6cfd914a97b4de6173; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=305e67f7987a0f6cfd914a97b4de6173; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=305e67f7987a0f6cfd914a97b4de6173; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=451a42c6979815e9eba1de5447b726b7; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=451a42c6979815e9eba1de5447b726b7; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=451a42c6979815e9eba1de5447b726b7; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=451a42c6979815e9eba1de5447b726b7; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=451a42c6979815e9eba1de5447b726b7; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "X-Request-Id", + "value": "rw8F9aFv8BzBISUu9o7V" + }, + { + "key": "Cache-Control", + "value": "no-cache, no-store, must-revalidate" + }, + { + "key": "Feature-Policy", + "value": "autoplay 'none';camera 'none';fullscreen 'none';geolocation 'none';microphone 'none';payment 'none'" + }, + { + "key": "X-User-Id", + "value": "admin" + }, + { + "key": "Content-Length", + "value": "576" + }, + { + "key": "Keep-Alive", + "value": "timeout=5, max=67" + }, + { + "key": "Connection", + "value": "Keep-Alive" + }, + { + "key": "Content-Type", + "value": "application/json; charset=utf-8" + } + ], + "stream": { + "type": "Buffer", + "data": [ + 123, + 34, + 117, + 114, + 108, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 105, + 92, + 47, + 118, + 49, + 92, + 47, + 105, + 110, + 102, + 111, + 114, + 109, + 97, + 116, + 105, + 101, + 111, + 98, + 106, + 101, + 99, + 116, + 116, + 121, + 112, + 101, + 110, + 92, + 47, + 97, + 100, + 57, + 102, + 50, + 48, + 97, + 97, + 45, + 50, + 99, + 49, + 54, + 45, + 52, + 57, + 97, + 57, + 45, + 98, + 100, + 99, + 51, + 45, + 56, + 97, + 51, + 48, + 54, + 52, + 51, + 100, + 100, + 101, + 97, + 57, + 34, + 44, + 34, + 117, + 117, + 105, + 100, + 34, + 58, + 34, + 97, + 100, + 57, + 102, + 50, + 48, + 97, + 97, + 45, + 50, + 99, + 49, + 54, + 45, + 52, + 57, + 97, + 57, + 45, + 98, + 100, + 99, + 51, + 45, + 56, + 97, + 51, + 48, + 54, + 52, + 51, + 100, + 100, + 101, + 97, + 57, + 34, + 44, + 34, + 111, + 109, + 115, + 99, + 104, + 114, + 105, + 106, + 118, + 105, + 110, + 103, + 34, + 58, + 34, + 50, + 53, + 50, + 51, + 54, + 49, + 48, + 102, + 45, + 101, + 102, + 48, + 97, + 45, + 52, + 48, + 53, + 98, + 45, + 56, + 49, + 55, + 53, + 45, + 53, + 56, + 52, + 56, + 98, + 53, + 55, + 54, + 102, + 51, + 53, + 97, + 34, + 44, + 34, + 116, + 111, + 101, + 108, + 105, + 99, + 104, + 116, + 105, + 110, + 103, + 34, + 58, + 34, + 34, + 44, + 34, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 117, + 115, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 105, + 92, + 47, + 118, + 49, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 117, + 115, + 115, + 101, + 110, + 92, + 47, + 53, + 48, + 53, + 55, + 52, + 48, + 56, + 102, + 45, + 102, + 100, + 55, + 54, + 45, + 52, + 54, + 57, + 101, + 45, + 56, + 54, + 52, + 54, + 45, + 98, + 99, + 99, + 52, + 98, + 97, + 50, + 101, + 102, + 97, + 56, + 100, + 34, + 44, + 34, + 99, + 111, + 110, + 99, + 101, + 112, + 116, + 34, + 58, + 116, + 114, + 117, + 101, + 44, + 34, + 118, + 101, + 114, + 116, + 114, + 111, + 117, + 119, + 101, + 108, + 105, + 106, + 107, + 104, + 101, + 105, + 100, + 97, + 97, + 110, + 100, + 117, + 105, + 100, + 105, + 110, + 103, + 34, + 58, + 34, + 111, + 112, + 101, + 110, + 98, + 97, + 97, + 114, + 34, + 44, + 34, + 105, + 110, + 102, + 111, + 114, + 109, + 97, + 116, + 105, + 101, + 111, + 98, + 106, + 101, + 99, + 116, + 99, + 97, + 116, + 101, + 103, + 111, + 114, + 105, + 101, + 34, + 58, + 34, + 100, + 111, + 99, + 117, + 109, + 101, + 110, + 116, + 34, + 44, + 34, + 98, + 101, + 103, + 105, + 110, + 71, + 101, + 108, + 100, + 105, + 103, + 104, + 101, + 105, + 100, + 34, + 58, + 34, + 50, + 48, + 49, + 57, + 45, + 48, + 49, + 45, + 48, + 49, + 34, + 44, + 34, + 101, + 105, + 110, + 100, + 101, + 71, + 101, + 108, + 100, + 105, + 103, + 104, + 101, + 105, + 100, + 34, + 58, + 34, + 50, + 48, + 50, + 54, + 45, + 48, + 51, + 45, + 49, + 48, + 34, + 44, + 34, + 118, + 101, + 114, + 112, + 108, + 105, + 99, + 104, + 116, + 34, + 58, + 102, + 97, + 108, + 115, + 101, + 125 + ] + }, + "cookie": [], + "responseTime": 171, + "responseSize": 576 + }, + "id": "c514dedb-32f3-48ac-9e83-bc1540a2de7b" + }, + { + "cursor": { + "ref": "c71330f2-0e60-4de1-86e0-2717f1952fa4", + "length": 313, + "cycles": 1, + "position": 266, + "iteration": 0, + "httpRequestId": "a802bf7c-b3b1-4205-9d8c-a2f26cdbcaaa" + }, + "item": { + "id": "6643d5bd-c0fa-4423-b4a1-89f887a9aac2", + "name": "Create Zaaktype Copy 2", + "request": { + "url": { + "path": [ + "zaaktypen" + ], + "host": [ + "{{ztc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n\t\"identificatie\": \"{{random_identificatie}}\",\n \"omschrijving\": \"zrc_tests_1\",\n \"vertrouwelijkheidaanduiding\": \"openbaar\",\n \"doel\": \"test doel\",\n \"verantwoordelijke\":\"X\",\n \"aanleiding\": \"test aanleiding\",\n \"indicatieInternOfExtern\": \"extern\",\n \"handelingInitiator\": \"indienen\",\n \"onderwerp\": \"openbare ruimte\",\n \"handelingBehandelaar\": \"behandelen\",\n \"doorlooptijd\": \"P10D\",\n \"opschortingEnAanhoudingMogelijk\": false,\n \"verlengingMogelijk\": true,\n \"publicatieIndicatie\": false,\n \"productenOfDiensten\": [\n \"https://ref.tst.vng.cloud/standaard/\"\n ],\n \"selectielijstProcestype\": \"{{procestype_procestermijn_nihil_url}}\",\n \"referentieproces\": {\n \"naam\": \"test\",\n \"link\": \"\"\n },\n \"deelzaaktypen\": [\n \"{{deelzaaktype_identificatie}}\"\n ],\n \"catalogus\": \"{{catalogus_url}}\",\n \"statustypen\": [\n \n ],\n \"resultaattypen\": [\n ],\n \"eigenschappen\": [\n ],\n \"informatieobjecttypen\": [],\n \"besluittypen\": [\n \"{{besluit_omschrijving}}\"\n ],\n \"gerelateerdeZaaktypen\": [],\n \"beginGeldigheid\": \"2019-01-01\",\n \"versiedatum\": \"2019-01-01\",\n \"concept\": true,\n \"verlengingstermijn\": \"P5D\"\n}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "5b357457-36a8-43c5-878d-7caafa40dfa8", + "type": "text/javascript", + "packages": {}, + "exec": [ + "if(pm.response.code == 201) {", + " var res = pm.response.json();", + "pm.environment.set(\"zaaktype_url\", res.url);", + "pm.environment.set(\"zaaktype_vertrouwelijkheid\", res.vertrouwelijkheidaanduiding);", + "pm.environment.set(\"zaaktype_productenOfDiensten\", res.productenOfDiensten);", + "pm.environment.set(\"zaaktype_resultaattypen\", res.resultaattypen);", + "pm.environment.set(\"zaaktype_eigenschap\", res.eigenschappen[0]);", + "pm.environment.set(\"zaaktype_body\", pm.request.body.raw);", + "}" + ], + "_lastExecutionId": "30592ec1-5af0-4485-b3a2-f8835d241239" + } + }, + { + "listen": "prerequest", + "script": { + "id": "4488fd36-9e89-48e8-82e9-62bc48d2260f", + "type": "text/javascript", + "packages": {}, + "exec": [ + "var uuid = require('uuid');", + "var myUUID = uuid.v4(); ", + "pm.environment.set(\"random_identificatie\", myUUID);", + "" + ], + "_lastExecutionId": "2993ba61-90d0-4ad4-ab08-ff9253e2bcc0" + } + } + ] + }, + "request": { + "url": { + "protocol": "http", + "port": "8080", + "path": [ + "index.php", + "apps", + "procest", + "api", + "zgw", + "catalogi", + "v1", + "zaaktypen" + ], + "host": [ + "localhost" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Authorization", + "value": "Bearer eyJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJwcm9jZXN0LWFkbWluIiwiY2xpZW50X2lkIjoicHJvY2VzdC1hZG1pbiIsImlhdCI6IjE3NzMxNDUyMDkiLCJ1c2VyX2lkIjoicHJvY2VzdC1hZG1pbiIsInVzZXJfcmVwcmVzZW50YXRpb24iOiIifQ.iOG5ZBXsm0pb0LQPlNX4-KSlSsDjycxQT1RWYgA9vFk", + "system": true + }, + { + "key": "User-Agent", + "value": "PostmanRuntime/7.39.1", + "system": true + }, + { + "key": "Accept", + "value": "*/*", + "system": true + }, + { + "key": "Cache-Control", + "value": "no-cache", + "system": true + }, + { + "key": "Postman-Token", + "value": "9d698c78-513b-4d23-8f57-645c92f71d50", + "system": true + }, + { + "key": "Host", + "value": "localhost:8080", + "system": true + }, + { + "key": "Accept-Encoding", + "value": "gzip, deflate, br", + "system": true + }, + { + "key": "Connection", + "value": "keep-alive", + "system": true + }, + { + "key": "Content-Length", + "value": "1388", + "system": true + }, + { + "key": "Cookie", + "value": "ocvp3112b4wg=451a42c6979815e9eba1de5447b726b7; oc_sessionPassphrase=LBNdKxRzA0iqoULIruNxDDh2BK3O%2BrCIU8aUmiUcOFvy5Xw1YfjwQNlmBW2IkGwJYtxXh9%2BwDN6vYuGNX07tXzkBtjQJUWTGdzf8AIOUIVxVx5DfyWAQZ7nmYmQv6XSE; nc_sameSiteCookielax=true; nc_sameSiteCookiestrict=true", + "system": true + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n\t\"identificatie\": \"d12dfe86-296a-4845-997f-d59a5c3b7beb\",\n \"omschrijving\": \"zrc_tests_1\",\n \"vertrouwelijkheidaanduiding\": \"openbaar\",\n \"doel\": \"test doel\",\n \"verantwoordelijke\":\"X\",\n \"aanleiding\": \"test aanleiding\",\n \"indicatieInternOfExtern\": \"extern\",\n \"handelingInitiator\": \"indienen\",\n \"onderwerp\": \"openbare ruimte\",\n \"handelingBehandelaar\": \"behandelen\",\n \"doorlooptijd\": \"P10D\",\n \"opschortingEnAanhoudingMogelijk\": false,\n \"verlengingMogelijk\": true,\n \"publicatieIndicatie\": false,\n \"productenOfDiensten\": [\n \"https://ref.tst.vng.cloud/standaard/\"\n ],\n \"selectielijstProcestype\": \"https://selectielijst.openzaak.nl/api/v1/procestypen/838e405a-9b12-43c4-a985-d7a7490d422e\",\n \"referentieproces\": {\n \"naam\": \"test\",\n \"link\": \"\"\n },\n \"deelzaaktypen\": [\n \"cae6f26a-1321-4bff-b314-421ddf7775b9\"\n ],\n \"catalogus\": \"http://localhost:8080/index.php/apps/procest/api/zgw/catalogi/v1/catalogussen/5057408f-fd76-469e-8646-bcc4ba2efa8d\",\n \"statustypen\": [\n \n ],\n \"resultaattypen\": [\n ],\n \"eigenschappen\": [\n ],\n \"informatieobjecttypen\": [],\n \"besluittypen\": [\n \"c7e4cd3e-1645-4c0a-8bc4-0aa1847f6946\"\n ],\n \"gerelateerdeZaaktypen\": [],\n \"beginGeldigheid\": \"2019-01-01\",\n \"versiedatum\": \"2019-01-01\",\n \"concept\": true,\n \"verlengingstermijn\": \"P5D\"\n}" + }, + "auth": { + "type": "jwt", + "jwt": [ + { + "type": "string", + "value": "{\r\n \"iss\": \"procest-admin\",\r\n \"client_id\": \"procest-admin\",\r\n \"iat\": \"1773145209\",\r\n \"user_id\": \"procest-admin\",\r\n \"user_representation\": \"\"\r\n}", + "key": "payload" + }, + { + "type": "string", + "value": "procest-admin-secret-key-for-testing", + "key": "secret" + }, + { + "type": "string", + "value": "HS256", + "key": "algorithm" + }, + { + "type": "boolean", + "value": false, + "key": "isSecretBase64Encoded" + }, + { + "type": "string", + "value": "header", + "key": "addTokenTo" + }, + { + "type": "string", + "value": "Bearer", + "key": "headerPrefix" + }, + { + "type": "string", + "value": "token", + "key": "queryParamKey" + }, + { + "type": "string", + "value": "{}", + "key": "header" + } + ] + } + }, + "response": { + "id": "8050450b-b271-4eb8-af9c-27f0520c16b8", + "status": "Created", + "code": 201, + "header": [ + { + "key": "Date", + "value": "Tue, 10 Mar 2026 12:20:08 GMT" + }, + { + "key": "Server", + "value": "Apache/2.4.66 (Debian)" + }, + { + "key": "X-Content-Type-Options", + "value": "nosniff" + }, + { + "key": "X-Frame-Options", + "value": "SAMEORIGIN" + }, + { + "key": "X-Permitted-Cross-Domain-Policies", + "value": "none" + }, + { + "key": "X-Robots-Tag", + "value": "noindex, nofollow" + }, + { + "key": "Referrer-Policy", + "value": "no-referrer" + }, + { + "key": "X-Powered-By", + "value": "PHP/8.3.30" + }, + { + "key": "Content-Security-Policy", + "value": "default-src 'none';base-uri 'none';manifest-src 'self';frame-ancestors 'none'" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=451a42c6979815e9eba1de5447b726b7; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=451a42c6979815e9eba1de5447b726b7; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=451a42c6979815e9eba1de5447b726b7; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=451a42c6979815e9eba1de5447b726b7; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=451a42c6979815e9eba1de5447b726b7; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=3094598aaa3fdb3edf843177a2fca9d9; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=3094598aaa3fdb3edf843177a2fca9d9; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=3094598aaa3fdb3edf843177a2fca9d9; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=3094598aaa3fdb3edf843177a2fca9d9; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=3094598aaa3fdb3edf843177a2fca9d9; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "X-Request-Id", + "value": "2F72Sa8iOE9jK1MxZYO1" + }, + { + "key": "Cache-Control", + "value": "no-cache, no-store, must-revalidate" + }, + { + "key": "Feature-Policy", + "value": "autoplay 'none';camera 'none';fullscreen 'none';geolocation 'none';microphone 'none';payment 'none'" + }, + { + "key": "X-User-Id", + "value": "admin" + }, + { + "key": "Content-Length", + "value": "1464" + }, + { + "key": "Keep-Alive", + "value": "timeout=5, max=66" + }, + { + "key": "Connection", + "value": "Keep-Alive" + }, + { + "key": "Content-Type", + "value": "application/json; charset=utf-8" + } + ], + "stream": { + "type": "Buffer", + "data": [ + 123, + 34, + 117, + 114, + 108, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 105, + 92, + 47, + 118, + 49, + 92, + 47, + 122, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 110, + 92, + 47, + 52, + 98, + 53, + 49, + 98, + 48, + 57, + 57, + 45, + 97, + 57, + 51, + 52, + 45, + 52, + 99, + 97, + 55, + 45, + 98, + 57, + 52, + 100, + 45, + 48, + 98, + 57, + 55, + 100, + 101, + 57, + 100, + 55, + 53, + 99, + 50, + 34, + 44, + 34, + 117, + 117, + 105, + 100, + 34, + 58, + 34, + 52, + 98, + 53, + 49, + 98, + 48, + 57, + 57, + 45, + 97, + 57, + 51, + 52, + 45, + 52, + 99, + 97, + 55, + 45, + 98, + 57, + 52, + 100, + 45, + 48, + 98, + 57, + 55, + 100, + 101, + 57, + 100, + 55, + 53, + 99, + 50, + 34, + 44, + 34, + 105, + 100, + 101, + 110, + 116, + 105, + 102, + 105, + 99, + 97, + 116, + 105, + 101, + 34, + 58, + 34, + 100, + 49, + 50, + 100, + 102, + 101, + 56, + 54, + 45, + 50, + 57, + 54, + 97, + 45, + 52, + 56, + 52, + 53, + 45, + 57, + 57, + 55, + 102, + 45, + 100, + 53, + 57, + 97, + 53, + 99, + 51, + 98, + 55, + 98, + 101, + 98, + 34, + 44, + 34, + 111, + 109, + 115, + 99, + 104, + 114, + 105, + 106, + 118, + 105, + 110, + 103, + 34, + 58, + 34, + 122, + 114, + 99, + 95, + 116, + 101, + 115, + 116, + 115, + 95, + 49, + 34, + 44, + 34, + 111, + 109, + 115, + 99, + 104, + 114, + 105, + 106, + 118, + 105, + 110, + 103, + 71, + 101, + 110, + 101, + 114, + 105, + 101, + 107, + 34, + 58, + 34, + 34, + 44, + 34, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 117, + 115, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 105, + 92, + 47, + 118, + 49, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 117, + 115, + 115, + 101, + 110, + 92, + 47, + 53, + 48, + 53, + 55, + 52, + 48, + 56, + 102, + 45, + 102, + 100, + 55, + 54, + 45, + 52, + 54, + 57, + 101, + 45, + 56, + 54, + 52, + 54, + 45, + 98, + 99, + 99, + 52, + 98, + 97, + 50, + 101, + 102, + 97, + 56, + 100, + 34, + 44, + 34, + 100, + 111, + 101, + 108, + 34, + 58, + 34, + 116, + 101, + 115, + 116, + 32, + 100, + 111, + 101, + 108, + 34, + 44, + 34, + 97, + 97, + 110, + 108, + 101, + 105, + 100, + 105, + 110, + 103, + 34, + 58, + 34, + 116, + 101, + 115, + 116, + 32, + 97, + 97, + 110, + 108, + 101, + 105, + 100, + 105, + 110, + 103, + 34, + 44, + 34, + 111, + 110, + 100, + 101, + 114, + 119, + 101, + 114, + 112, + 34, + 58, + 34, + 111, + 112, + 101, + 110, + 98, + 97, + 114, + 101, + 32, + 114, + 117, + 105, + 109, + 116, + 101, + 34, + 44, + 34, + 100, + 111, + 111, + 114, + 108, + 111, + 111, + 112, + 116, + 105, + 106, + 100, + 34, + 58, + 34, + 80, + 49, + 48, + 68, + 34, + 44, + 34, + 118, + 101, + 114, + 116, + 114, + 111, + 117, + 119, + 101, + 108, + 105, + 106, + 107, + 104, + 101, + 105, + 100, + 97, + 97, + 110, + 100, + 117, + 105, + 100, + 105, + 110, + 103, + 34, + 58, + 34, + 111, + 112, + 101, + 110, + 98, + 97, + 97, + 114, + 34, + 44, + 34, + 99, + 111, + 110, + 99, + 101, + 112, + 116, + 34, + 58, + 116, + 114, + 117, + 101, + 44, + 34, + 98, + 101, + 103, + 105, + 110, + 71, + 101, + 108, + 100, + 105, + 103, + 104, + 101, + 105, + 100, + 34, + 58, + 34, + 50, + 48, + 49, + 57, + 45, + 48, + 49, + 45, + 48, + 49, + 34, + 44, + 34, + 101, + 105, + 110, + 100, + 101, + 71, + 101, + 108, + 100, + 105, + 103, + 104, + 101, + 105, + 100, + 34, + 58, + 34, + 50, + 48, + 50, + 54, + 45, + 48, + 51, + 45, + 49, + 48, + 34, + 44, + 34, + 104, + 97, + 110, + 100, + 101, + 108, + 105, + 110, + 103, + 73, + 110, + 105, + 116, + 105, + 97, + 116, + 111, + 114, + 34, + 58, + 34, + 105, + 110, + 100, + 105, + 101, + 110, + 101, + 110, + 34, + 44, + 34, + 105, + 110, + 100, + 105, + 99, + 97, + 116, + 105, + 101, + 73, + 110, + 116, + 101, + 114, + 110, + 79, + 102, + 69, + 120, + 116, + 101, + 114, + 110, + 34, + 58, + 34, + 101, + 120, + 116, + 101, + 114, + 110, + 34, + 44, + 34, + 104, + 97, + 110, + 100, + 101, + 108, + 105, + 110, + 103, + 66, + 101, + 104, + 97, + 110, + 100, + 101, + 108, + 97, + 97, + 114, + 34, + 58, + 34, + 98, + 101, + 104, + 97, + 110, + 100, + 101, + 108, + 101, + 110, + 34, + 44, + 34, + 111, + 112, + 115, + 99, + 104, + 111, + 114, + 116, + 105, + 110, + 103, + 69, + 110, + 65, + 97, + 110, + 104, + 111, + 117, + 100, + 105, + 110, + 103, + 77, + 111, + 103, + 101, + 108, + 105, + 106, + 107, + 34, + 58, + 102, + 97, + 108, + 115, + 101, + 44, + 34, + 118, + 101, + 114, + 108, + 101, + 110, + 103, + 105, + 110, + 103, + 77, + 111, + 103, + 101, + 108, + 105, + 106, + 107, + 34, + 58, + 116, + 114, + 117, + 101, + 44, + 34, + 118, + 101, + 114, + 108, + 101, + 110, + 103, + 105, + 110, + 103, + 115, + 116, + 101, + 114, + 109, + 105, + 106, + 110, + 34, + 58, + 34, + 80, + 53, + 68, + 34, + 44, + 34, + 112, + 117, + 98, + 108, + 105, + 99, + 97, + 116, + 105, + 101, + 73, + 110, + 100, + 105, + 99, + 97, + 116, + 105, + 101, + 34, + 58, + 102, + 97, + 108, + 115, + 101, + 44, + 34, + 112, + 114, + 111, + 100, + 117, + 99, + 116, + 101, + 110, + 79, + 102, + 68, + 105, + 101, + 110, + 115, + 116, + 101, + 110, + 34, + 58, + 91, + 34, + 104, + 116, + 116, + 112, + 115, + 58, + 92, + 47, + 92, + 47, + 114, + 101, + 102, + 46, + 116, + 115, + 116, + 46, + 118, + 110, + 103, + 46, + 99, + 108, + 111, + 117, + 100, + 92, + 47, + 115, + 116, + 97, + 110, + 100, + 97, + 97, + 114, + 100, + 92, + 47, + 34, + 93, + 44, + 34, + 115, + 101, + 108, + 101, + 99, + 116, + 105, + 101, + 108, + 105, + 106, + 115, + 116, + 80, + 114, + 111, + 99, + 101, + 115, + 116, + 121, + 112, + 101, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 115, + 58, + 92, + 47, + 92, + 47, + 115, + 101, + 108, + 101, + 99, + 116, + 105, + 101, + 108, + 105, + 106, + 115, + 116, + 46, + 111, + 112, + 101, + 110, + 122, + 97, + 97, + 107, + 46, + 110, + 108, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 118, + 49, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 121, + 112, + 101, + 110, + 92, + 47, + 56, + 51, + 56, + 101, + 52, + 48, + 53, + 97, + 45, + 57, + 98, + 49, + 50, + 45, + 52, + 51, + 99, + 52, + 45, + 97, + 57, + 56, + 53, + 45, + 100, + 55, + 97, + 55, + 52, + 57, + 48, + 100, + 52, + 50, + 50, + 101, + 34, + 44, + 34, + 114, + 101, + 102, + 101, + 114, + 101, + 110, + 116, + 105, + 101, + 112, + 114, + 111, + 99, + 101, + 115, + 34, + 58, + 123, + 34, + 108, + 105, + 110, + 107, + 34, + 58, + 34, + 34, + 44, + 34, + 110, + 97, + 97, + 109, + 34, + 58, + 34, + 116, + 101, + 115, + 116, + 34, + 125, + 44, + 34, + 118, + 101, + 114, + 97, + 110, + 116, + 119, + 111, + 111, + 114, + 100, + 101, + 108, + 105, + 106, + 107, + 101, + 34, + 58, + 34, + 88, + 34, + 44, + 34, + 103, + 101, + 114, + 101, + 108, + 97, + 116, + 101, + 101, + 114, + 100, + 101, + 90, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 98, + 101, + 115, + 108, + 117, + 105, + 116, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 105, + 92, + 47, + 118, + 49, + 92, + 47, + 98, + 101, + 115, + 108, + 117, + 105, + 116, + 116, + 121, + 112, + 101, + 110, + 92, + 47, + 48, + 98, + 50, + 50, + 48, + 100, + 50, + 55, + 45, + 101, + 50, + 53, + 49, + 45, + 52, + 99, + 52, + 55, + 45, + 98, + 48, + 100, + 102, + 45, + 48, + 49, + 52, + 99, + 50, + 101, + 52, + 99, + 97, + 97, + 54, + 49, + 34, + 93, + 44, + 34, + 105, + 110, + 102, + 111, + 114, + 109, + 97, + 116, + 105, + 101, + 111, + 98, + 106, + 101, + 99, + 116, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 100, + 101, + 101, + 108, + 122, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 116, + 111, + 101, + 108, + 105, + 99, + 104, + 116, + 105, + 110, + 103, + 34, + 58, + 34, + 34, + 44, + 34, + 118, + 101, + 114, + 115, + 105, + 101, + 100, + 97, + 116, + 117, + 109, + 34, + 58, + 34, + 50, + 48, + 49, + 57, + 45, + 48, + 49, + 45, + 48, + 49, + 34, + 44, + 34, + 101, + 105, + 103, + 101, + 110, + 115, + 99, + 104, + 97, + 112, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 115, + 116, + 97, + 116, + 117, + 115, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 114, + 101, + 115, + 117, + 108, + 116, + 97, + 97, + 116, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 114, + 111, + 108, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 125 + ] + }, + "cookie": [], + "responseTime": 309, + "responseSize": 1464 + }, + "id": "6643d5bd-c0fa-4423-b4a1-89f887a9aac2" + }, + { + "cursor": { + "ref": "576f4112-67dc-4152-b0d8-79b492e59c1e", + "length": 313, + "cycles": 1, + "position": 267, + "iteration": 0, + "httpRequestId": "316a44a8-80fe-4446-a7d4-7bc58b41bec4" + }, + "item": { + "id": "146734af-509c-407a-a1b9-70204293bdf0", + "name": "Create Zaaktype-InformatieObjectType relation Copy 2", + "request": { + "url": { + "path": [ + "zaaktype-informatieobjecttypen" + ], + "host": [ + "{{ztc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n\t\"zaaktype\": \"{{zaaktype_url}}\",\n\t\"informatieobjecttype\": \"{{informatieobject_omschrijving}}\",\n\t\"volgnummer\": 1,\n\t\"richting\": \"inkomend\"\n}" + } + }, + "response": [], + "event": [] + }, + "request": { + "url": { + "protocol": "http", + "port": "8080", + "path": [ + "index.php", + "apps", + "procest", + "api", + "zgw", + "catalogi", + "v1", + "zaaktype-informatieobjecttypen" + ], + "host": [ + "localhost" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Authorization", + "value": "Bearer eyJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJwcm9jZXN0LWFkbWluIiwiY2xpZW50X2lkIjoicHJvY2VzdC1hZG1pbiIsImlhdCI6IjE3NzMxNDUyMDkiLCJ1c2VyX2lkIjoicHJvY2VzdC1hZG1pbiIsInVzZXJfcmVwcmVzZW50YXRpb24iOiIifQ.iOG5ZBXsm0pb0LQPlNX4-KSlSsDjycxQT1RWYgA9vFk", + "system": true + }, + { + "key": "User-Agent", + "value": "PostmanRuntime/7.39.1", + "system": true + }, + { + "key": "Accept", + "value": "*/*", + "system": true + }, + { + "key": "Cache-Control", + "value": "no-cache", + "system": true + }, + { + "key": "Postman-Token", + "value": "a96ec14e-293a-4a16-a1fd-ca69b2e3ea20", + "system": true + }, + { + "key": "Host", + "value": "localhost:8080", + "system": true + }, + { + "key": "Accept-Encoding", + "value": "gzip, deflate, br", + "system": true + }, + { + "key": "Connection", + "value": "keep-alive", + "system": true + }, + { + "key": "Content-Length", + "value": "238", + "system": true + }, + { + "key": "Cookie", + "value": "ocvp3112b4wg=3094598aaa3fdb3edf843177a2fca9d9; oc_sessionPassphrase=LBNdKxRzA0iqoULIruNxDDh2BK3O%2BrCIU8aUmiUcOFvy5Xw1YfjwQNlmBW2IkGwJYtxXh9%2BwDN6vYuGNX07tXzkBtjQJUWTGdzf8AIOUIVxVx5DfyWAQZ7nmYmQv6XSE; nc_sameSiteCookielax=true; nc_sameSiteCookiestrict=true", + "system": true + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n\t\"zaaktype\": \"http://localhost:8080/index.php/apps/procest/api/zgw/catalogi/v1/zaaktypen/4b51b099-a934-4ca7-b94d-0b97de9d75c2\",\n\t\"informatieobjecttype\": \"2523610f-ef0a-405b-8175-5848b576f35a\",\n\t\"volgnummer\": 1,\n\t\"richting\": \"inkomend\"\n}" + }, + "auth": { + "type": "jwt", + "jwt": [ + { + "type": "string", + "value": "{\r\n \"iss\": \"procest-admin\",\r\n \"client_id\": \"procest-admin\",\r\n \"iat\": \"1773145209\",\r\n \"user_id\": \"procest-admin\",\r\n \"user_representation\": \"\"\r\n}", + "key": "payload" + }, + { + "type": "string", + "value": "procest-admin-secret-key-for-testing", + "key": "secret" + }, + { + "type": "string", + "value": "HS256", + "key": "algorithm" + }, + { + "type": "boolean", + "value": false, + "key": "isSecretBase64Encoded" + }, + { + "type": "string", + "value": "header", + "key": "addTokenTo" + }, + { + "type": "string", + "value": "Bearer", + "key": "headerPrefix" + }, + { + "type": "string", + "value": "token", + "key": "queryParamKey" + }, + { + "type": "string", + "value": "{}", + "key": "header" + } + ] + } + }, + "response": { + "id": "25a309a9-3157-49ba-a8d3-e2ebe76edc3c", + "status": "Created", + "code": 201, + "header": [ + { + "key": "Date", + "value": "Tue, 10 Mar 2026 12:20:09 GMT" + }, + { + "key": "Server", + "value": "Apache/2.4.66 (Debian)" + }, + { + "key": "X-Content-Type-Options", + "value": "nosniff" + }, + { + "key": "X-Frame-Options", + "value": "SAMEORIGIN" + }, + { + "key": "X-Permitted-Cross-Domain-Policies", + "value": "none" + }, + { + "key": "X-Robots-Tag", + "value": "noindex, nofollow" + }, + { + "key": "Referrer-Policy", + "value": "no-referrer" + }, + { + "key": "X-Powered-By", + "value": "PHP/8.3.30" + }, + { + "key": "Content-Security-Policy", + "value": "default-src 'none';base-uri 'none';manifest-src 'self';frame-ancestors 'none'" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=3094598aaa3fdb3edf843177a2fca9d9; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=3094598aaa3fdb3edf843177a2fca9d9; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=3094598aaa3fdb3edf843177a2fca9d9; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=3094598aaa3fdb3edf843177a2fca9d9; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=3094598aaa3fdb3edf843177a2fca9d9; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=ead275c7b7bcd37c40c6360e69fafb1d; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=ead275c7b7bcd37c40c6360e69fafb1d; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=ead275c7b7bcd37c40c6360e69fafb1d; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=ead275c7b7bcd37c40c6360e69fafb1d; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=ead275c7b7bcd37c40c6360e69fafb1d; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "X-Request-Id", + "value": "NA9bBT4LjMQehDncxlww" + }, + { + "key": "Cache-Control", + "value": "no-cache, no-store, must-revalidate" + }, + { + "key": "Feature-Policy", + "value": "autoplay 'none';camera 'none';fullscreen 'none';geolocation 'none';microphone 'none';payment 'none'" + }, + { + "key": "X-User-Id", + "value": "admin" + }, + { + "key": "Content-Length", + "value": "548" + }, + { + "key": "Keep-Alive", + "value": "timeout=5, max=65" + }, + { + "key": "Connection", + "value": "Keep-Alive" + }, + { + "key": "Content-Type", + "value": "application/json; charset=utf-8" + } + ], + "stream": { + "type": "Buffer", + "data": [ + 123, + 34, + 117, + 114, + 108, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 105, + 92, + 47, + 118, + 49, + 92, + 47, + 122, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 45, + 105, + 110, + 102, + 111, + 114, + 109, + 97, + 116, + 105, + 101, + 111, + 98, + 106, + 101, + 99, + 116, + 116, + 121, + 112, + 101, + 110, + 92, + 47, + 101, + 57, + 57, + 50, + 98, + 51, + 102, + 56, + 45, + 53, + 99, + 53, + 49, + 45, + 52, + 54, + 99, + 101, + 45, + 57, + 50, + 48, + 48, + 45, + 100, + 56, + 53, + 97, + 54, + 100, + 99, + 98, + 98, + 56, + 57, + 98, + 34, + 44, + 34, + 117, + 117, + 105, + 100, + 34, + 58, + 34, + 101, + 57, + 57, + 50, + 98, + 51, + 102, + 56, + 45, + 53, + 99, + 53, + 49, + 45, + 52, + 54, + 99, + 101, + 45, + 57, + 50, + 48, + 48, + 45, + 100, + 56, + 53, + 97, + 54, + 100, + 99, + 98, + 98, + 56, + 57, + 98, + 34, + 44, + 34, + 122, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 105, + 92, + 47, + 118, + 49, + 92, + 47, + 122, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 110, + 92, + 47, + 52, + 98, + 53, + 49, + 98, + 48, + 57, + 57, + 45, + 97, + 57, + 51, + 52, + 45, + 52, + 99, + 97, + 55, + 45, + 98, + 57, + 52, + 100, + 45, + 48, + 98, + 57, + 55, + 100, + 101, + 57, + 100, + 55, + 53, + 99, + 50, + 34, + 44, + 34, + 105, + 110, + 102, + 111, + 114, + 109, + 97, + 116, + 105, + 101, + 111, + 98, + 106, + 101, + 99, + 116, + 116, + 121, + 112, + 101, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 105, + 92, + 47, + 118, + 49, + 92, + 47, + 105, + 110, + 102, + 111, + 114, + 109, + 97, + 116, + 105, + 101, + 111, + 98, + 106, + 101, + 99, + 116, + 116, + 121, + 112, + 101, + 110, + 92, + 47, + 97, + 100, + 57, + 102, + 50, + 48, + 97, + 97, + 45, + 50, + 99, + 49, + 54, + 45, + 52, + 57, + 97, + 57, + 45, + 98, + 100, + 99, + 51, + 45, + 56, + 97, + 51, + 48, + 54, + 52, + 51, + 100, + 100, + 101, + 97, + 57, + 34, + 44, + 34, + 118, + 111, + 108, + 103, + 110, + 117, + 109, + 109, + 101, + 114, + 34, + 58, + 49, + 44, + 34, + 114, + 105, + 99, + 104, + 116, + 105, + 110, + 103, + 34, + 58, + 34, + 105, + 110, + 107, + 111, + 109, + 101, + 110, + 100, + 34, + 44, + 34, + 115, + 116, + 97, + 116, + 117, + 115, + 116, + 121, + 112, + 101, + 34, + 58, + 34, + 34, + 125 + ] + }, + "cookie": [], + "responseTime": 200, + "responseSize": 548 + }, + "id": "146734af-509c-407a-a1b9-70204293bdf0" + }, + { + "cursor": { + "ref": "3a822ba6-8a42-4d25-adf3-5e37c829d35c", + "length": 313, + "cycles": 1, + "position": 268, + "iteration": 0, + "httpRequestId": "bbce7a98-dd8c-4017-b755-1779b3cb72e8" + }, + "item": { + "id": "6042bac1-5774-4bd2-a5e3-17d1214b50ff", + "name": "Publish Informatieobjecttype Copy 2", + "request": { + "url": { + "path": [ + "publish" + ], + "host": [ + "{{informatieobjecttype_url}}" + ], + "query": [], + "variable": [] + }, + "method": "POST" + }, + "response": [], + "event": [] + }, + "request": { + "url": { + "protocol": "http", + "port": "8080", + "path": [ + "index.php", + "apps", + "procest", + "api", + "zgw", + "catalogi", + "v1", + "informatieobjecttypen", + "ad9f20aa-2c16-49a9-bdc3-8a30643ddea9", + "publish" + ], + "host": [ + "localhost" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Authorization", + "value": "Bearer eyJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJwcm9jZXN0LWFkbWluIiwiY2xpZW50X2lkIjoicHJvY2VzdC1hZG1pbiIsImlhdCI6IjE3NzMxNDUyMTAiLCJ1c2VyX2lkIjoicHJvY2VzdC1hZG1pbiIsInVzZXJfcmVwcmVzZW50YXRpb24iOiIifQ.GYIh64zZk60R4CR3IWOZTdM81UHutJMKN1F6Jj0SqdU", + "system": true + }, + { + "key": "User-Agent", + "value": "PostmanRuntime/7.39.1", + "system": true + }, + { + "key": "Accept", + "value": "*/*", + "system": true + }, + { + "key": "Cache-Control", + "value": "no-cache", + "system": true + }, + { + "key": "Postman-Token", + "value": "86106f0d-47f1-494f-974a-5990d81defd9", + "system": true + }, + { + "key": "Host", + "value": "localhost:8080", + "system": true + }, + { + "key": "Accept-Encoding", + "value": "gzip, deflate, br", + "system": true + }, + { + "key": "Connection", + "value": "keep-alive", + "system": true + }, + { + "key": "Cookie", + "value": "ocvp3112b4wg=ead275c7b7bcd37c40c6360e69fafb1d; oc_sessionPassphrase=LBNdKxRzA0iqoULIruNxDDh2BK3O%2BrCIU8aUmiUcOFvy5Xw1YfjwQNlmBW2IkGwJYtxXh9%2BwDN6vYuGNX07tXzkBtjQJUWTGdzf8AIOUIVxVx5DfyWAQZ7nmYmQv6XSE; nc_sameSiteCookielax=true; nc_sameSiteCookiestrict=true", + "system": true + }, + { + "key": "Content-Length", + "value": "0", + "system": true + } + ], + "method": "POST", + "auth": { + "type": "jwt", + "jwt": [ + { + "type": "string", + "value": "{\r\n \"iss\": \"procest-admin\",\r\n \"client_id\": \"procest-admin\",\r\n \"iat\": \"1773145210\",\r\n \"user_id\": \"procest-admin\",\r\n \"user_representation\": \"\"\r\n}", + "key": "payload" + }, + { + "type": "string", + "value": "procest-admin-secret-key-for-testing", + "key": "secret" + }, + { + "type": "string", + "value": "HS256", + "key": "algorithm" + }, + { + "type": "boolean", + "value": false, + "key": "isSecretBase64Encoded" + }, + { + "type": "string", + "value": "header", + "key": "addTokenTo" + }, + { + "type": "string", + "value": "Bearer", + "key": "headerPrefix" + }, + { + "type": "string", + "value": "token", + "key": "queryParamKey" + }, + { + "type": "string", + "value": "{}", + "key": "header" + } + ] + } + }, + "response": { + "id": "6234b1f9-9c14-4cc4-b0c5-88cc16007a46", + "status": "OK", + "code": 200, + "header": [ + { + "key": "Date", + "value": "Tue, 10 Mar 2026 12:20:09 GMT" + }, + { + "key": "Server", + "value": "Apache/2.4.66 (Debian)" + }, + { + "key": "X-Content-Type-Options", + "value": "nosniff" + }, + { + "key": "X-Frame-Options", + "value": "SAMEORIGIN" + }, + { + "key": "X-Permitted-Cross-Domain-Policies", + "value": "none" + }, + { + "key": "X-Robots-Tag", + "value": "noindex, nofollow" + }, + { + "key": "Referrer-Policy", + "value": "no-referrer" + }, + { + "key": "X-Powered-By", + "value": "PHP/8.3.30" + }, + { + "key": "Content-Security-Policy", + "value": "default-src 'none';base-uri 'none';manifest-src 'self';frame-ancestors 'none'" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=ead275c7b7bcd37c40c6360e69fafb1d; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=ead275c7b7bcd37c40c6360e69fafb1d; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=ead275c7b7bcd37c40c6360e69fafb1d; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=ead275c7b7bcd37c40c6360e69fafb1d; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=ead275c7b7bcd37c40c6360e69fafb1d; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=c756b6b09e682e7d0ae363238ca154e0; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=c756b6b09e682e7d0ae363238ca154e0; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=c756b6b09e682e7d0ae363238ca154e0; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=c756b6b09e682e7d0ae363238ca154e0; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=c756b6b09e682e7d0ae363238ca154e0; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "X-Request-Id", + "value": "qlDPMqqEfQaooW9nDdSE" + }, + { + "key": "Cache-Control", + "value": "no-cache, no-store, must-revalidate" + }, + { + "key": "Feature-Policy", + "value": "autoplay 'none';camera 'none';fullscreen 'none';geolocation 'none';microphone 'none';payment 'none'" + }, + { + "key": "X-User-Id", + "value": "admin" + }, + { + "key": "Content-Encoding", + "value": "gzip" + }, + { + "key": "Content-Length", + "value": "330" + }, + { + "key": "Keep-Alive", + "value": "timeout=5, max=64" + }, + { + "key": "Connection", + "value": "Keep-Alive" + }, + { + "key": "Content-Type", + "value": "application/json; charset=utf-8" + } + ], + "stream": { + "type": "Buffer", + "data": [ + 123, + 34, + 117, + 114, + 108, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 105, + 92, + 47, + 118, + 49, + 92, + 47, + 105, + 110, + 102, + 111, + 114, + 109, + 97, + 116, + 105, + 101, + 111, + 98, + 106, + 101, + 99, + 116, + 116, + 121, + 112, + 101, + 110, + 92, + 47, + 97, + 100, + 57, + 102, + 50, + 48, + 97, + 97, + 45, + 50, + 99, + 49, + 54, + 45, + 52, + 57, + 97, + 57, + 45, + 98, + 100, + 99, + 51, + 45, + 56, + 97, + 51, + 48, + 54, + 52, + 51, + 100, + 100, + 101, + 97, + 57, + 34, + 44, + 34, + 117, + 117, + 105, + 100, + 34, + 58, + 34, + 97, + 100, + 57, + 102, + 50, + 48, + 97, + 97, + 45, + 50, + 99, + 49, + 54, + 45, + 52, + 57, + 97, + 57, + 45, + 98, + 100, + 99, + 51, + 45, + 56, + 97, + 51, + 48, + 54, + 52, + 51, + 100, + 100, + 101, + 97, + 57, + 34, + 44, + 34, + 111, + 109, + 115, + 99, + 104, + 114, + 105, + 106, + 118, + 105, + 110, + 103, + 34, + 58, + 34, + 50, + 53, + 50, + 51, + 54, + 49, + 48, + 102, + 45, + 101, + 102, + 48, + 97, + 45, + 52, + 48, + 53, + 98, + 45, + 56, + 49, + 55, + 53, + 45, + 53, + 56, + 52, + 56, + 98, + 53, + 55, + 54, + 102, + 51, + 53, + 97, + 34, + 44, + 34, + 116, + 111, + 101, + 108, + 105, + 99, + 104, + 116, + 105, + 110, + 103, + 34, + 58, + 34, + 34, + 44, + 34, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 117, + 115, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 105, + 92, + 47, + 118, + 49, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 117, + 115, + 115, + 101, + 110, + 92, + 47, + 53, + 48, + 53, + 55, + 52, + 48, + 56, + 102, + 45, + 102, + 100, + 55, + 54, + 45, + 52, + 54, + 57, + 101, + 45, + 56, + 54, + 52, + 54, + 45, + 98, + 99, + 99, + 52, + 98, + 97, + 50, + 101, + 102, + 97, + 56, + 100, + 34, + 44, + 34, + 99, + 111, + 110, + 99, + 101, + 112, + 116, + 34, + 58, + 102, + 97, + 108, + 115, + 101, + 44, + 34, + 118, + 101, + 114, + 116, + 114, + 111, + 117, + 119, + 101, + 108, + 105, + 106, + 107, + 104, + 101, + 105, + 100, + 97, + 97, + 110, + 100, + 117, + 105, + 100, + 105, + 110, + 103, + 34, + 58, + 34, + 111, + 112, + 101, + 110, + 98, + 97, + 97, + 114, + 34, + 44, + 34, + 105, + 110, + 102, + 111, + 114, + 109, + 97, + 116, + 105, + 101, + 111, + 98, + 106, + 101, + 99, + 116, + 99, + 97, + 116, + 101, + 103, + 111, + 114, + 105, + 101, + 34, + 58, + 34, + 100, + 111, + 99, + 117, + 109, + 101, + 110, + 116, + 34, + 44, + 34, + 98, + 101, + 103, + 105, + 110, + 71, + 101, + 108, + 100, + 105, + 103, + 104, + 101, + 105, + 100, + 34, + 58, + 34, + 50, + 48, + 49, + 57, + 45, + 48, + 49, + 45, + 48, + 49, + 34, + 44, + 34, + 101, + 105, + 110, + 100, + 101, + 71, + 101, + 108, + 100, + 105, + 103, + 104, + 101, + 105, + 100, + 34, + 58, + 34, + 50, + 48, + 50, + 54, + 45, + 48, + 51, + 45, + 49, + 48, + 34, + 44, + 34, + 118, + 101, + 114, + 112, + 108, + 105, + 99, + 104, + 116, + 34, + 58, + 102, + 97, + 108, + 115, + 101, + 125 + ] + }, + "cookie": [], + "responseTime": 158, + "responseSize": 577 + }, + "id": "6042bac1-5774-4bd2-a5e3-17d1214b50ff" + }, + { + "cursor": { + "ref": "be0d0bc9-6523-4498-b935-c7185d72674b", + "length": 313, + "cycles": 1, + "position": 269, + "iteration": 0, + "httpRequestId": "d63bdcf8-d9b0-46df-a992-465377ccbc6b" + }, + "item": { + "id": "4f9bc535-ca39-4194-9249-140c3d7bf513", + "name": "Publish Zaaktype Copy 2", + "request": { + "url": { + "path": [ + "publish" + ], + "host": [ + "{{zaaktype_url}}" + ], + "query": [], + "variable": [] + }, + "method": "POST" + }, + "response": [], + "event": [] + }, + "request": { + "url": { + "protocol": "http", + "port": "8080", + "path": [ + "index.php", + "apps", + "procest", + "api", + "zgw", + "catalogi", + "v1", + "zaaktypen", + "4b51b099-a934-4ca7-b94d-0b97de9d75c2", + "publish" + ], + "host": [ + "localhost" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Authorization", + "value": "Bearer eyJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJwcm9jZXN0LWFkbWluIiwiY2xpZW50X2lkIjoicHJvY2VzdC1hZG1pbiIsImlhdCI6IjE3NzMxNDUyMTAiLCJ1c2VyX2lkIjoicHJvY2VzdC1hZG1pbiIsInVzZXJfcmVwcmVzZW50YXRpb24iOiIifQ.GYIh64zZk60R4CR3IWOZTdM81UHutJMKN1F6Jj0SqdU", + "system": true + }, + { + "key": "User-Agent", + "value": "PostmanRuntime/7.39.1", + "system": true + }, + { + "key": "Accept", + "value": "*/*", + "system": true + }, + { + "key": "Cache-Control", + "value": "no-cache", + "system": true + }, + { + "key": "Postman-Token", + "value": "41b92929-514d-4b0d-a35b-632e3ebea929", + "system": true + }, + { + "key": "Host", + "value": "localhost:8080", + "system": true + }, + { + "key": "Accept-Encoding", + "value": "gzip, deflate, br", + "system": true + }, + { + "key": "Connection", + "value": "keep-alive", + "system": true + }, + { + "key": "Cookie", + "value": "ocvp3112b4wg=c756b6b09e682e7d0ae363238ca154e0; oc_sessionPassphrase=LBNdKxRzA0iqoULIruNxDDh2BK3O%2BrCIU8aUmiUcOFvy5Xw1YfjwQNlmBW2IkGwJYtxXh9%2BwDN6vYuGNX07tXzkBtjQJUWTGdzf8AIOUIVxVx5DfyWAQZ7nmYmQv6XSE; nc_sameSiteCookielax=true; nc_sameSiteCookiestrict=true", + "system": true + }, + { + "key": "Content-Length", + "value": "0", + "system": true + } + ], + "method": "POST", + "auth": { + "type": "jwt", + "jwt": [ + { + "type": "string", + "value": "{\r\n \"iss\": \"procest-admin\",\r\n \"client_id\": \"procest-admin\",\r\n \"iat\": \"1773145210\",\r\n \"user_id\": \"procest-admin\",\r\n \"user_representation\": \"\"\r\n}", + "key": "payload" + }, + { + "type": "string", + "value": "procest-admin-secret-key-for-testing", + "key": "secret" + }, + { + "type": "string", + "value": "HS256", + "key": "algorithm" + }, + { + "type": "boolean", + "value": false, + "key": "isSecretBase64Encoded" + }, + { + "type": "string", + "value": "header", + "key": "addTokenTo" + }, + { + "type": "string", + "value": "Bearer", + "key": "headerPrefix" + }, + { + "type": "string", + "value": "token", + "key": "queryParamKey" + }, + { + "type": "string", + "value": "{}", + "key": "header" + } + ] + } + }, + "response": { + "id": "a7afdc42-2efb-464d-944b-f05ba8a3973b", + "status": "OK", + "code": 200, + "header": [ + { + "key": "Date", + "value": "Tue, 10 Mar 2026 12:20:09 GMT" + }, + { + "key": "Server", + "value": "Apache/2.4.66 (Debian)" + }, + { + "key": "X-Content-Type-Options", + "value": "nosniff" + }, + { + "key": "X-Frame-Options", + "value": "SAMEORIGIN" + }, + { + "key": "X-Permitted-Cross-Domain-Policies", + "value": "none" + }, + { + "key": "X-Robots-Tag", + "value": "noindex, nofollow" + }, + { + "key": "Referrer-Policy", + "value": "no-referrer" + }, + { + "key": "X-Powered-By", + "value": "PHP/8.3.30" + }, + { + "key": "Content-Security-Policy", + "value": "default-src 'none';base-uri 'none';manifest-src 'self';frame-ancestors 'none'" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=c756b6b09e682e7d0ae363238ca154e0; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=c756b6b09e682e7d0ae363238ca154e0; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=c756b6b09e682e7d0ae363238ca154e0; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=c756b6b09e682e7d0ae363238ca154e0; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=c756b6b09e682e7d0ae363238ca154e0; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=520838b6d4cdf59325741695d61defc7; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=520838b6d4cdf59325741695d61defc7; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=520838b6d4cdf59325741695d61defc7; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=520838b6d4cdf59325741695d61defc7; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=520838b6d4cdf59325741695d61defc7; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "X-Request-Id", + "value": "bA64Xnnn4azoTQE9XPpE" + }, + { + "key": "Cache-Control", + "value": "no-cache, no-store, must-revalidate" + }, + { + "key": "Feature-Policy", + "value": "autoplay 'none';camera 'none';fullscreen 'none';geolocation 'none';microphone 'none';payment 'none'" + }, + { + "key": "X-User-Id", + "value": "admin" + }, + { + "key": "Content-Encoding", + "value": "gzip" + }, + { + "key": "Content-Length", + "value": "710" + }, + { + "key": "Keep-Alive", + "value": "timeout=5, max=63" + }, + { + "key": "Connection", + "value": "Keep-Alive" + }, + { + "key": "Content-Type", + "value": "application/json; charset=utf-8" + } + ], + "stream": { + "type": "Buffer", + "data": [ + 123, + 34, + 117, + 114, + 108, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 105, + 92, + 47, + 118, + 49, + 92, + 47, + 122, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 110, + 92, + 47, + 52, + 98, + 53, + 49, + 98, + 48, + 57, + 57, + 45, + 97, + 57, + 51, + 52, + 45, + 52, + 99, + 97, + 55, + 45, + 98, + 57, + 52, + 100, + 45, + 48, + 98, + 57, + 55, + 100, + 101, + 57, + 100, + 55, + 53, + 99, + 50, + 34, + 44, + 34, + 117, + 117, + 105, + 100, + 34, + 58, + 34, + 52, + 98, + 53, + 49, + 98, + 48, + 57, + 57, + 45, + 97, + 57, + 51, + 52, + 45, + 52, + 99, + 97, + 55, + 45, + 98, + 57, + 52, + 100, + 45, + 48, + 98, + 57, + 55, + 100, + 101, + 57, + 100, + 55, + 53, + 99, + 50, + 34, + 44, + 34, + 105, + 100, + 101, + 110, + 116, + 105, + 102, + 105, + 99, + 97, + 116, + 105, + 101, + 34, + 58, + 34, + 100, + 49, + 50, + 100, + 102, + 101, + 56, + 54, + 45, + 50, + 57, + 54, + 97, + 45, + 52, + 56, + 52, + 53, + 45, + 57, + 57, + 55, + 102, + 45, + 100, + 53, + 57, + 97, + 53, + 99, + 51, + 98, + 55, + 98, + 101, + 98, + 34, + 44, + 34, + 111, + 109, + 115, + 99, + 104, + 114, + 105, + 106, + 118, + 105, + 110, + 103, + 34, + 58, + 34, + 122, + 114, + 99, + 95, + 116, + 101, + 115, + 116, + 115, + 95, + 49, + 34, + 44, + 34, + 111, + 109, + 115, + 99, + 104, + 114, + 105, + 106, + 118, + 105, + 110, + 103, + 71, + 101, + 110, + 101, + 114, + 105, + 101, + 107, + 34, + 58, + 34, + 34, + 44, + 34, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 117, + 115, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 105, + 92, + 47, + 118, + 49, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 117, + 115, + 115, + 101, + 110, + 92, + 47, + 53, + 48, + 53, + 55, + 52, + 48, + 56, + 102, + 45, + 102, + 100, + 55, + 54, + 45, + 52, + 54, + 57, + 101, + 45, + 56, + 54, + 52, + 54, + 45, + 98, + 99, + 99, + 52, + 98, + 97, + 50, + 101, + 102, + 97, + 56, + 100, + 34, + 44, + 34, + 100, + 111, + 101, + 108, + 34, + 58, + 34, + 116, + 101, + 115, + 116, + 32, + 100, + 111, + 101, + 108, + 34, + 44, + 34, + 97, + 97, + 110, + 108, + 101, + 105, + 100, + 105, + 110, + 103, + 34, + 58, + 34, + 116, + 101, + 115, + 116, + 32, + 97, + 97, + 110, + 108, + 101, + 105, + 100, + 105, + 110, + 103, + 34, + 44, + 34, + 111, + 110, + 100, + 101, + 114, + 119, + 101, + 114, + 112, + 34, + 58, + 34, + 111, + 112, + 101, + 110, + 98, + 97, + 114, + 101, + 32, + 114, + 117, + 105, + 109, + 116, + 101, + 34, + 44, + 34, + 100, + 111, + 111, + 114, + 108, + 111, + 111, + 112, + 116, + 105, + 106, + 100, + 34, + 58, + 34, + 80, + 49, + 48, + 68, + 34, + 44, + 34, + 118, + 101, + 114, + 116, + 114, + 111, + 117, + 119, + 101, + 108, + 105, + 106, + 107, + 104, + 101, + 105, + 100, + 97, + 97, + 110, + 100, + 117, + 105, + 100, + 105, + 110, + 103, + 34, + 58, + 34, + 111, + 112, + 101, + 110, + 98, + 97, + 97, + 114, + 34, + 44, + 34, + 99, + 111, + 110, + 99, + 101, + 112, + 116, + 34, + 58, + 102, + 97, + 108, + 115, + 101, + 44, + 34, + 98, + 101, + 103, + 105, + 110, + 71, + 101, + 108, + 100, + 105, + 103, + 104, + 101, + 105, + 100, + 34, + 58, + 34, + 50, + 48, + 49, + 57, + 45, + 48, + 49, + 45, + 48, + 49, + 34, + 44, + 34, + 101, + 105, + 110, + 100, + 101, + 71, + 101, + 108, + 100, + 105, + 103, + 104, + 101, + 105, + 100, + 34, + 58, + 34, + 50, + 48, + 50, + 54, + 45, + 48, + 51, + 45, + 49, + 48, + 34, + 44, + 34, + 104, + 97, + 110, + 100, + 101, + 108, + 105, + 110, + 103, + 73, + 110, + 105, + 116, + 105, + 97, + 116, + 111, + 114, + 34, + 58, + 34, + 105, + 110, + 100, + 105, + 101, + 110, + 101, + 110, + 34, + 44, + 34, + 105, + 110, + 100, + 105, + 99, + 97, + 116, + 105, + 101, + 73, + 110, + 116, + 101, + 114, + 110, + 79, + 102, + 69, + 120, + 116, + 101, + 114, + 110, + 34, + 58, + 34, + 101, + 120, + 116, + 101, + 114, + 110, + 34, + 44, + 34, + 104, + 97, + 110, + 100, + 101, + 108, + 105, + 110, + 103, + 66, + 101, + 104, + 97, + 110, + 100, + 101, + 108, + 97, + 97, + 114, + 34, + 58, + 34, + 98, + 101, + 104, + 97, + 110, + 100, + 101, + 108, + 101, + 110, + 34, + 44, + 34, + 111, + 112, + 115, + 99, + 104, + 111, + 114, + 116, + 105, + 110, + 103, + 69, + 110, + 65, + 97, + 110, + 104, + 111, + 117, + 100, + 105, + 110, + 103, + 77, + 111, + 103, + 101, + 108, + 105, + 106, + 107, + 34, + 58, + 102, + 97, + 108, + 115, + 101, + 44, + 34, + 118, + 101, + 114, + 108, + 101, + 110, + 103, + 105, + 110, + 103, + 77, + 111, + 103, + 101, + 108, + 105, + 106, + 107, + 34, + 58, + 116, + 114, + 117, + 101, + 44, + 34, + 118, + 101, + 114, + 108, + 101, + 110, + 103, + 105, + 110, + 103, + 115, + 116, + 101, + 114, + 109, + 105, + 106, + 110, + 34, + 58, + 34, + 80, + 53, + 68, + 34, + 44, + 34, + 112, + 117, + 98, + 108, + 105, + 99, + 97, + 116, + 105, + 101, + 73, + 110, + 100, + 105, + 99, + 97, + 116, + 105, + 101, + 34, + 58, + 102, + 97, + 108, + 115, + 101, + 44, + 34, + 112, + 114, + 111, + 100, + 117, + 99, + 116, + 101, + 110, + 79, + 102, + 68, + 105, + 101, + 110, + 115, + 116, + 101, + 110, + 34, + 58, + 91, + 34, + 104, + 116, + 116, + 112, + 115, + 58, + 92, + 47, + 92, + 47, + 114, + 101, + 102, + 46, + 116, + 115, + 116, + 46, + 118, + 110, + 103, + 46, + 99, + 108, + 111, + 117, + 100, + 92, + 47, + 115, + 116, + 97, + 110, + 100, + 97, + 97, + 114, + 100, + 92, + 47, + 34, + 93, + 44, + 34, + 115, + 101, + 108, + 101, + 99, + 116, + 105, + 101, + 108, + 105, + 106, + 115, + 116, + 80, + 114, + 111, + 99, + 101, + 115, + 116, + 121, + 112, + 101, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 115, + 58, + 92, + 47, + 92, + 47, + 115, + 101, + 108, + 101, + 99, + 116, + 105, + 101, + 108, + 105, + 106, + 115, + 116, + 46, + 111, + 112, + 101, + 110, + 122, + 97, + 97, + 107, + 46, + 110, + 108, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 118, + 49, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 121, + 112, + 101, + 110, + 92, + 47, + 56, + 51, + 56, + 101, + 52, + 48, + 53, + 97, + 45, + 57, + 98, + 49, + 50, + 45, + 52, + 51, + 99, + 52, + 45, + 97, + 57, + 56, + 53, + 45, + 100, + 55, + 97, + 55, + 52, + 57, + 48, + 100, + 52, + 50, + 50, + 101, + 34, + 44, + 34, + 114, + 101, + 102, + 101, + 114, + 101, + 110, + 116, + 105, + 101, + 112, + 114, + 111, + 99, + 101, + 115, + 34, + 58, + 123, + 34, + 108, + 105, + 110, + 107, + 34, + 58, + 34, + 34, + 44, + 34, + 110, + 97, + 97, + 109, + 34, + 58, + 34, + 116, + 101, + 115, + 116, + 34, + 125, + 44, + 34, + 118, + 101, + 114, + 97, + 110, + 116, + 119, + 111, + 111, + 114, + 100, + 101, + 108, + 105, + 106, + 107, + 101, + 34, + 58, + 34, + 88, + 34, + 44, + 34, + 103, + 101, + 114, + 101, + 108, + 97, + 116, + 101, + 101, + 114, + 100, + 101, + 90, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 98, + 101, + 115, + 108, + 117, + 105, + 116, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 34, + 48, + 98, + 50, + 50, + 48, + 100, + 50, + 55, + 45, + 101, + 50, + 53, + 49, + 45, + 52, + 99, + 52, + 55, + 45, + 98, + 48, + 100, + 102, + 45, + 48, + 49, + 52, + 99, + 50, + 101, + 52, + 99, + 97, + 97, + 54, + 49, + 34, + 93, + 44, + 34, + 105, + 110, + 102, + 111, + 114, + 109, + 97, + 116, + 105, + 101, + 111, + 98, + 106, + 101, + 99, + 116, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 100, + 101, + 101, + 108, + 122, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 116, + 111, + 101, + 108, + 105, + 99, + 104, + 116, + 105, + 110, + 103, + 34, + 58, + 34, + 34, + 44, + 34, + 118, + 101, + 114, + 115, + 105, + 101, + 100, + 97, + 116, + 117, + 109, + 34, + 58, + 34, + 50, + 48, + 49, + 57, + 45, + 48, + 49, + 45, + 48, + 49, + 34, + 125 + ] + }, + "cookie": [], + "responseTime": 164, + "responseSize": 1306 + }, + "id": "4f9bc535-ca39-4194-9249-140c3d7bf513" + }, + { + "cursor": { + "ref": "cf077e7a-e371-4a7f-8fe7-65675198a9fa", + "length": 313, + "cycles": 1, + "position": 270, + "iteration": 0, + "httpRequestId": "6662fa66-b4c0-47ef-882e-b98d58aaf535" + }, + "item": { + "id": "c1a641c0-d05b-43f9-ac16-15b008ab6b22", + "name": "(zrc-022a) Zaak aanmaken geeft voor archiefstatus standaardwaarde nog_te_archiveren", + "request": { + "url": { + "path": [ + "zaken" + ], + "host": [ + "{{zrc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Accept-Crs", + "value": "EPSG:4326" + }, + { + "key": "Content-Crs", + "value": "EPSG:4326" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\r\n \"bronorganisatie\": \"000000000\",\r\n \"omschrijving\": \"string\",\r\n \"toelichting\": \"string\",\r\n \"registratiedatum\": \"2019-04-09\",\r\n \"verantwoordelijkeOrganisatie\": \"000000000\",\r\n \"zaaktype\": \"{{zaaktype_url}}\",\r\n \"startdatum\": \"2019-04-09\",\r\n \"einddatumGepland\": \"2019-04-20\",\r\n \"uiterlijkeEinddatumAfdoening\": \"2019-04-09\",\r\n \"publicatiedatum\": \"2019-04-09\",\r\n \"vertrouwelijkheidaanduiding\": \"openbaar\",\r\n \"betalingsindicatie\": \"geheel\",\r\n \"laatsteBetaalDatum\": \"2019-01-01\",\r\n \"zaakgeometrie\": {\r\n \"type\": \"Point\",\r\n \"coordinates\": [\r\n 53,\r\n 5\r\n ]\r\n },\r\n \"opschorting\": {\r\n \"indicatie\": true,\r\n \"reden\": \"string\"\r\n },\r\n \"selectielijstklasse\": \"{{selectielijstklasse_url}}\",\r\n \"archiefstatus\": \"nog_te_archiveren\",\r\n \"deelzaaktypen\" : [\"{{deelzaaktype_url}}\"]\r\n}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "1a5aab40-a2f9-4901-b669-45093b651e9e", + "type": "text/javascript", + "packages": {}, + "exec": [ + "pm.test(\"Zaak aanmaken geeft voor archiefstatus standaardwaarde nog_te_archiveren\", function(){", + " pm.expect(pm.response.json().archiefstatus).to.be.equal(\"nog_te_archiveren\");", + "});", + "", + "// If the Zaak was created, delete it", + "if(pm.response.code == 201) {", + " pm.environment.set(\"created_zaak_url\", pm.response.json().url);", + "", + "}" + ], + "_lastExecutionId": "d45e6cbd-7514-4460-9996-79e21b9c1891" + } + } + ] + }, + "request": { + "url": { + "protocol": "http", + "port": "8080", + "path": [ + "index.php", + "apps", + "procest", + "api", + "zgw", + "zaken", + "v1", + "zaken" + ], + "host": [ + "localhost" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Accept-Crs", + "value": "EPSG:4326" + }, + { + "key": "Content-Crs", + "value": "EPSG:4326" + }, + { + "key": "Authorization", + "value": "Bearer eyJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJwcm9jZXN0LWFkbWluIiwiY2xpZW50X2lkIjoicHJvY2VzdC1hZG1pbiIsImlhdCI6IjE3NzMxNDUyMTAiLCJ1c2VyX2lkIjoicHJvY2VzdC1hZG1pbiIsInVzZXJfcmVwcmVzZW50YXRpb24iOiIifQ.GYIh64zZk60R4CR3IWOZTdM81UHutJMKN1F6Jj0SqdU", + "system": true + }, + { + "key": "User-Agent", + "value": "PostmanRuntime/7.39.1", + "system": true + }, + { + "key": "Accept", + "value": "*/*", + "system": true + }, + { + "key": "Cache-Control", + "value": "no-cache", + "system": true + }, + { + "key": "Postman-Token", + "value": "ad18c099-bdb8-4ce7-ae7b-cf0a1cfa1c7a", + "system": true + }, + { + "key": "Host", + "value": "localhost:8080", + "system": true + }, + { + "key": "Accept-Encoding", + "value": "gzip, deflate, br", + "system": true + }, + { + "key": "Connection", + "value": "keep-alive", + "system": true + }, + { + "key": "Content-Length", + "value": "1124", + "system": true + }, + { + "key": "Cookie", + "value": "ocvp3112b4wg=520838b6d4cdf59325741695d61defc7; oc_sessionPassphrase=LBNdKxRzA0iqoULIruNxDDh2BK3O%2BrCIU8aUmiUcOFvy5Xw1YfjwQNlmBW2IkGwJYtxXh9%2BwDN6vYuGNX07tXzkBtjQJUWTGdzf8AIOUIVxVx5DfyWAQZ7nmYmQv6XSE; nc_sameSiteCookielax=true; nc_sameSiteCookiestrict=true", + "system": true + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\r\n \"bronorganisatie\": \"000000000\",\r\n \"omschrijving\": \"string\",\r\n \"toelichting\": \"string\",\r\n \"registratiedatum\": \"2019-04-09\",\r\n \"verantwoordelijkeOrganisatie\": \"000000000\",\r\n \"zaaktype\": \"http://localhost:8080/index.php/apps/procest/api/zgw/catalogi/v1/zaaktypen/4b51b099-a934-4ca7-b94d-0b97de9d75c2\",\r\n \"startdatum\": \"2019-04-09\",\r\n \"einddatumGepland\": \"2019-04-20\",\r\n \"uiterlijkeEinddatumAfdoening\": \"2019-04-09\",\r\n \"publicatiedatum\": \"2019-04-09\",\r\n \"vertrouwelijkheidaanduiding\": \"openbaar\",\r\n \"betalingsindicatie\": \"geheel\",\r\n \"laatsteBetaalDatum\": \"2019-01-01\",\r\n \"zaakgeometrie\": {\r\n \"type\": \"Point\",\r\n \"coordinates\": [\r\n 53,\r\n 5\r\n ]\r\n },\r\n \"opschorting\": {\r\n \"indicatie\": true,\r\n \"reden\": \"string\"\r\n },\r\n \"selectielijstklasse\": \"https://selectielijst.openzaak.nl/api/v1/resultaten/0eb8f19f-d55e-4a15-8b5f-26cdf07482c1\",\r\n \"archiefstatus\": \"nog_te_archiveren\",\r\n \"deelzaaktypen\" : [\"http://localhost:8080/index.php/apps/procest/api/zgw/catalogi/v1/zaaktypen/7571bffe-5579-4295-9fac-87a9a6b6c5ac\"]\r\n}" + }, + "auth": { + "type": "jwt", + "jwt": [ + { + "type": "string", + "value": "{\r\n \"iss\": \"procest-admin\",\r\n \"client_id\": \"procest-admin\",\r\n \"iat\": \"1773145210\",\r\n \"user_id\": \"procest-admin\",\r\n \"user_representation\": \"\"\r\n}", + "key": "payload" + }, + { + "type": "string", + "value": "procest-admin-secret-key-for-testing", + "key": "secret" + }, + { + "type": "string", + "value": "HS256", + "key": "algorithm" + }, + { + "type": "boolean", + "value": false, + "key": "isSecretBase64Encoded" + }, + { + "type": "string", + "value": "header", + "key": "addTokenTo" + }, + { + "type": "string", + "value": "Bearer", + "key": "headerPrefix" + }, + { + "type": "string", + "value": "token", + "key": "queryParamKey" + }, + { + "type": "string", + "value": "{}", + "key": "header" + } + ] + } + }, + "response": { + "id": "4b6694d0-2bae-4f6b-9bd0-7ae314097167", + "status": "Created", + "code": 201, + "header": [ + { + "key": "Date", + "value": "Tue, 10 Mar 2026 12:20:09 GMT" + }, + { + "key": "Server", + "value": "Apache/2.4.66 (Debian)" + }, + { + "key": "X-Content-Type-Options", + "value": "nosniff" + }, + { + "key": "X-Frame-Options", + "value": "SAMEORIGIN" + }, + { + "key": "X-Permitted-Cross-Domain-Policies", + "value": "none" + }, + { + "key": "X-Robots-Tag", + "value": "noindex, nofollow" + }, + { + "key": "Referrer-Policy", + "value": "no-referrer" + }, + { + "key": "X-Powered-By", + "value": "PHP/8.3.30" + }, + { + "key": "Content-Security-Policy", + "value": "default-src 'none';base-uri 'none';manifest-src 'self';frame-ancestors 'none'" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=520838b6d4cdf59325741695d61defc7; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=520838b6d4cdf59325741695d61defc7; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=520838b6d4cdf59325741695d61defc7; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=520838b6d4cdf59325741695d61defc7; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=520838b6d4cdf59325741695d61defc7; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=727e0e17fa8edffb4f44f73a13029409; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=727e0e17fa8edffb4f44f73a13029409; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=727e0e17fa8edffb4f44f73a13029409; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=727e0e17fa8edffb4f44f73a13029409; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=727e0e17fa8edffb4f44f73a13029409; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "X-Request-Id", + "value": "JQ4p56CHsnlFFlVstJxr" + }, + { + "key": "Cache-Control", + "value": "no-cache, no-store, must-revalidate" + }, + { + "key": "Feature-Policy", + "value": "autoplay 'none';camera 'none';fullscreen 'none';geolocation 'none';microphone 'none';payment 'none'" + }, + { + "key": "X-User-Id", + "value": "admin" + }, + { + "key": "Content-Length", + "value": "799" + }, + { + "key": "Keep-Alive", + "value": "timeout=5, max=62" + }, + { + "key": "Connection", + "value": "Keep-Alive" + }, + { + "key": "Content-Type", + "value": "application/json; charset=utf-8" + } + ], + "stream": { + "type": "Buffer", + "data": [ + 123, + 34, + 117, + 114, + 108, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 122, + 97, + 107, + 101, + 110, + 92, + 47, + 118, + 49, + 92, + 47, + 122, + 97, + 107, + 101, + 110, + 92, + 47, + 56, + 49, + 55, + 57, + 50, + 50, + 53, + 53, + 45, + 102, + 102, + 100, + 100, + 45, + 52, + 56, + 100, + 51, + 45, + 98, + 57, + 102, + 57, + 45, + 57, + 51, + 97, + 99, + 49, + 52, + 54, + 55, + 54, + 49, + 55, + 102, + 34, + 44, + 34, + 117, + 117, + 105, + 100, + 34, + 58, + 34, + 56, + 49, + 55, + 57, + 50, + 50, + 53, + 53, + 45, + 102, + 102, + 100, + 100, + 45, + 52, + 56, + 100, + 51, + 45, + 98, + 57, + 102, + 57, + 45, + 57, + 51, + 97, + 99, + 49, + 52, + 54, + 55, + 54, + 49, + 55, + 102, + 34, + 44, + 34, + 105, + 100, + 101, + 110, + 116, + 105, + 102, + 105, + 99, + 97, + 116, + 105, + 101, + 34, + 58, + 34, + 90, + 65, + 65, + 75, + 45, + 84, + 66, + 79, + 78, + 76, + 77, + 45, + 68, + 69, + 50, + 69, + 68, + 55, + 34, + 44, + 34, + 111, + 109, + 115, + 99, + 104, + 114, + 105, + 106, + 118, + 105, + 110, + 103, + 34, + 58, + 34, + 115, + 116, + 114, + 105, + 110, + 103, + 34, + 44, + 34, + 116, + 111, + 101, + 108, + 105, + 99, + 104, + 116, + 105, + 110, + 103, + 34, + 58, + 34, + 115, + 116, + 114, + 105, + 110, + 103, + 34, + 44, + 34, + 122, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 105, + 92, + 47, + 118, + 49, + 92, + 47, + 122, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 110, + 92, + 47, + 52, + 98, + 53, + 49, + 98, + 48, + 57, + 57, + 45, + 97, + 57, + 51, + 52, + 45, + 52, + 99, + 97, + 55, + 45, + 98, + 57, + 52, + 100, + 45, + 48, + 98, + 57, + 55, + 100, + 101, + 57, + 100, + 55, + 53, + 99, + 50, + 34, + 44, + 34, + 114, + 101, + 103, + 105, + 115, + 116, + 114, + 97, + 116, + 105, + 101, + 100, + 97, + 116, + 117, + 109, + 34, + 58, + 34, + 50, + 48, + 50, + 54, + 45, + 48, + 51, + 45, + 49, + 48, + 84, + 49, + 50, + 58, + 50, + 48, + 58, + 49, + 48, + 43, + 48, + 48, + 58, + 48, + 48, + 34, + 44, + 34, + 115, + 116, + 97, + 114, + 116, + 100, + 97, + 116, + 117, + 109, + 34, + 58, + 34, + 50, + 48, + 49, + 57, + 45, + 48, + 52, + 45, + 48, + 57, + 34, + 44, + 34, + 101, + 105, + 110, + 100, + 100, + 97, + 116, + 117, + 109, + 34, + 58, + 110, + 117, + 108, + 108, + 44, + 34, + 101, + 105, + 110, + 100, + 100, + 97, + 116, + 117, + 109, + 71, + 101, + 112, + 108, + 97, + 110, + 100, + 34, + 58, + 34, + 50, + 48, + 49, + 57, + 45, + 48, + 52, + 45, + 50, + 48, + 34, + 44, + 34, + 117, + 105, + 116, + 101, + 114, + 108, + 105, + 106, + 107, + 101, + 69, + 105, + 110, + 100, + 100, + 97, + 116, + 117, + 109, + 65, + 102, + 100, + 111, + 101, + 110, + 105, + 110, + 103, + 34, + 58, + 34, + 50, + 48, + 49, + 57, + 45, + 48, + 52, + 45, + 48, + 57, + 34, + 44, + 34, + 118, + 101, + 114, + 116, + 114, + 111, + 117, + 119, + 101, + 108, + 105, + 106, + 107, + 104, + 101, + 105, + 100, + 97, + 97, + 110, + 100, + 117, + 105, + 100, + 105, + 110, + 103, + 34, + 58, + 34, + 111, + 112, + 101, + 110, + 98, + 97, + 97, + 114, + 34, + 44, + 34, + 118, + 101, + 114, + 97, + 110, + 116, + 119, + 111, + 111, + 114, + 100, + 101, + 108, + 105, + 106, + 107, + 101, + 79, + 114, + 103, + 97, + 110, + 105, + 115, + 97, + 116, + 105, + 101, + 34, + 58, + 34, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 34, + 44, + 34, + 97, + 114, + 99, + 104, + 105, + 101, + 102, + 110, + 111, + 109, + 105, + 110, + 97, + 116, + 105, + 101, + 34, + 58, + 110, + 117, + 108, + 108, + 44, + 34, + 97, + 114, + 99, + 104, + 105, + 101, + 102, + 97, + 99, + 116, + 105, + 101, + 100, + 97, + 116, + 117, + 109, + 34, + 58, + 110, + 117, + 108, + 108, + 44, + 34, + 97, + 114, + 99, + 104, + 105, + 101, + 102, + 115, + 116, + 97, + 116, + 117, + 115, + 34, + 58, + 34, + 110, + 111, + 103, + 95, + 116, + 101, + 95, + 97, + 114, + 99, + 104, + 105, + 118, + 101, + 114, + 101, + 110, + 34, + 44, + 34, + 98, + 101, + 116, + 97, + 108, + 105, + 110, + 103, + 115, + 105, + 110, + 100, + 105, + 99, + 97, + 116, + 105, + 101, + 34, + 58, + 34, + 103, + 101, + 104, + 101, + 101, + 108, + 34, + 44, + 34, + 108, + 97, + 97, + 116, + 115, + 116, + 101, + 66, + 101, + 116, + 97, + 97, + 108, + 100, + 97, + 116, + 117, + 109, + 34, + 58, + 110, + 117, + 108, + 108, + 44, + 34, + 104, + 111, + 111, + 102, + 100, + 122, + 97, + 97, + 107, + 34, + 58, + 110, + 117, + 108, + 108, + 125 + ] + }, + "cookie": [], + "responseTime": 260, + "responseSize": 799 + }, + "id": "c1a641c0-d05b-43f9-ac16-15b008ab6b22", + "assertions": [ + { + "assertion": "Zaak aanmaken geeft voor archiefstatus standaardwaarde nog_te_archiveren", + "skipped": false + } + ] + }, + { + "cursor": { + "ref": "2ef0b798-590b-4e2f-8e11-de140952f03c", + "length": 313, + "cycles": 1, + "position": 271, + "iteration": 0, + "httpRequestId": "93cb8d6c-d5ec-45c6-ba7c-17364e970aa2" + }, + "item": { + "id": "ee2c90f4-4547-467d-89a7-57103118c957", + "name": "verwijder zaak", + "request": { + "url": { + "host": [ + "{{created_zaak_url}}" + ], + "query": [], + "variable": [] + }, + "method": "DELETE" + }, + "response": [], + "event": [] + }, + "request": { + "url": { + "protocol": "http", + "port": "8080", + "path": [ + "index.php", + "apps", + "procest", + "api", + "zgw", + "zaken", + "v1", + "zaken", + "81792255-ffdd-48d3-b9f9-93ac1467617f" + ], + "host": [ + "localhost" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Authorization", + "value": "Bearer eyJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJwcm9jZXN0LWFkbWluIiwiY2xpZW50X2lkIjoicHJvY2VzdC1hZG1pbiIsImlhdCI6IjE3NzMxNDUyMTAiLCJ1c2VyX2lkIjoicHJvY2VzdC1hZG1pbiIsInVzZXJfcmVwcmVzZW50YXRpb24iOiIifQ.GYIh64zZk60R4CR3IWOZTdM81UHutJMKN1F6Jj0SqdU", + "system": true + }, + { + "key": "User-Agent", + "value": "PostmanRuntime/7.39.1", + "system": true + }, + { + "key": "Accept", + "value": "*/*", + "system": true + }, + { + "key": "Cache-Control", + "value": "no-cache", + "system": true + }, + { + "key": "Postman-Token", + "value": "67340d95-27ca-47a9-9ac2-04a21fde919b", + "system": true + }, + { + "key": "Host", + "value": "localhost:8080", + "system": true + }, + { + "key": "Accept-Encoding", + "value": "gzip, deflate, br", + "system": true + }, + { + "key": "Connection", + "value": "keep-alive", + "system": true + }, + { + "key": "Cookie", + "value": "ocvp3112b4wg=727e0e17fa8edffb4f44f73a13029409; oc_sessionPassphrase=LBNdKxRzA0iqoULIruNxDDh2BK3O%2BrCIU8aUmiUcOFvy5Xw1YfjwQNlmBW2IkGwJYtxXh9%2BwDN6vYuGNX07tXzkBtjQJUWTGdzf8AIOUIVxVx5DfyWAQZ7nmYmQv6XSE; nc_sameSiteCookielax=true; nc_sameSiteCookiestrict=true", + "system": true + } + ], + "method": "DELETE", + "auth": { + "type": "jwt", + "jwt": [ + { + "type": "string", + "value": "{\r\n \"iss\": \"procest-admin\",\r\n \"client_id\": \"procest-admin\",\r\n \"iat\": \"1773145210\",\r\n \"user_id\": \"procest-admin\",\r\n \"user_representation\": \"\"\r\n}", + "key": "payload" + }, + { + "type": "string", + "value": "procest-admin-secret-key-for-testing", + "key": "secret" + }, + { + "type": "string", + "value": "HS256", + "key": "algorithm" + }, + { + "type": "boolean", + "value": false, + "key": "isSecretBase64Encoded" + }, + { + "type": "string", + "value": "header", + "key": "addTokenTo" + }, + { + "type": "string", + "value": "Bearer", + "key": "headerPrefix" + }, + { + "type": "string", + "value": "token", + "key": "queryParamKey" + }, + { + "type": "string", + "value": "{}", + "key": "header" + } + ] + } + }, + "response": { + "id": "29debd3d-036e-4716-b084-6e4cf444fb53", + "status": "No Content", + "code": 204, + "header": [ + { + "key": "Date", + "value": "Tue, 10 Mar 2026 12:20:10 GMT" + }, + { + "key": "Server", + "value": "Apache/2.4.66 (Debian)" + }, + { + "key": "X-Content-Type-Options", + "value": "nosniff" + }, + { + "key": "X-Frame-Options", + "value": "SAMEORIGIN" + }, + { + "key": "X-Permitted-Cross-Domain-Policies", + "value": "none" + }, + { + "key": "X-Robots-Tag", + "value": "noindex, nofollow" + }, + { + "key": "Referrer-Policy", + "value": "no-referrer" + }, + { + "key": "X-Powered-By", + "value": "PHP/8.3.30" + }, + { + "key": "Content-Security-Policy", + "value": "default-src 'none';base-uri 'none';manifest-src 'self';frame-ancestors 'none'" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=727e0e17fa8edffb4f44f73a13029409; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=727e0e17fa8edffb4f44f73a13029409; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=727e0e17fa8edffb4f44f73a13029409; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=727e0e17fa8edffb4f44f73a13029409; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=727e0e17fa8edffb4f44f73a13029409; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=14ea44c33bf9f66b79d57cf95b714254; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=14ea44c33bf9f66b79d57cf95b714254; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=14ea44c33bf9f66b79d57cf95b714254; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=14ea44c33bf9f66b79d57cf95b714254; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=14ea44c33bf9f66b79d57cf95b714254; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "X-Request-Id", + "value": "tHu2K0IYPOlDdoJrxOHw" + }, + { + "key": "Cache-Control", + "value": "no-cache, no-store, must-revalidate" + }, + { + "key": "Feature-Policy", + "value": "autoplay 'none';camera 'none';fullscreen 'none';geolocation 'none';microphone 'none';payment 'none'" + }, + { + "key": "X-User-Id", + "value": "admin" + }, + { + "key": "Keep-Alive", + "value": "timeout=5, max=61" + }, + { + "key": "Connection", + "value": "Keep-Alive" + } + ], + "stream": { + "type": "Buffer", + "data": [] + }, + "cookie": [], + "responseTime": 549, + "responseSize": 0 + }, + "id": "ee2c90f4-4547-467d-89a7-57103118c957" + }, + { + "cursor": { + "ref": "85b8a56f-c292-4c4f-bdac-37153ac35b88", + "length": 313, + "cycles": 1, + "position": 272, + "iteration": 0, + "httpRequestId": "9b199b61-6a16-4b3a-978b-b56f83466b7c" + }, + "item": { + "id": "e749b5c8-0a54-4f4e-b700-9c4a412b926c", + "name": "Create Zaak to be archived", + "request": { + "url": { + "path": [ + "zaken" + ], + "host": [ + "{{zrc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Accept-Crs", + "value": "EPSG:4326" + }, + { + "key": "Content-Crs", + "value": "EPSG:4326" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\r\n \"bronorganisatie\": \"000000000\",\r\n \"omschrijving\": \"string\",\r\n \"toelichting\": \"string\",\r\n \"registratiedatum\": \"2019-04-09\",\r\n \"verantwoordelijkeOrganisatie\": \"000000000\",\r\n \"zaaktype\": \"{{zaaktype_url}}\",\r\n \"startdatum\": \"2019-04-09\",\r\n \"einddatumGepland\": \"2019-04-20\",\r\n \"uiterlijkeEinddatumAfdoening\": \"2019-04-09\",\r\n \"publicatiedatum\": \"2019-04-09\",\r\n \"vertrouwelijkheidaanduiding\": \"openbaar\",\r\n \"betalingsindicatie\": \"geheel\",\r\n \"laatsteBetaalDatum\": \"2019-01-01\",\r\n \"zaakgeometrie\": {\r\n \"type\": \"Point\",\r\n \"coordinates\": [\r\n 53,\r\n 5\r\n ]\r\n },\r\n \"opschorting\": {\r\n \"indicatie\": true,\r\n \"reden\": \"string\"\r\n },\r\n \"selectielijstklasse\": \"{{selectielijstklasse_url}}\",\r\n \"archiefstatus\": \"nog_te_archiveren\",\r\n \"deelzaaktypen\" : [\"{{deelzaaktype_url}}\"]\r\n}" + } + }, + "response": [], + "event": [ + { + "listen": "prerequest", + "script": { + "id": "6b009c88-fdc8-4abc-8cd2-b0b211c5abfa", + "type": "text/javascript", + "packages": {}, + "exec": [ + "" + ], + "_lastExecutionId": "c6c35926-0b49-49bd-b182-7e1737ec04d9" + } + }, + { + "listen": "test", + "script": { + "id": "49f8f995-4a3d-4567-a50d-77e0d5e42e7c", + "type": "text/javascript", + "packages": {}, + "exec": [ + "pm.environment.set(\"created_zaak_url\", pm.response.json().url);", + "", + "" + ], + "_lastExecutionId": "2edc8c9f-4a4f-44b1-b03f-d745751ad2de" + } + } + ] + }, + "request": { + "url": { + "protocol": "http", + "port": "8080", + "path": [ + "index.php", + "apps", + "procest", + "api", + "zgw", + "zaken", + "v1", + "zaken" + ], + "host": [ + "localhost" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Accept-Crs", + "value": "EPSG:4326" + }, + { + "key": "Content-Crs", + "value": "EPSG:4326" + }, + { + "key": "Authorization", + "value": "Bearer eyJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJwcm9jZXN0LWFkbWluIiwiY2xpZW50X2lkIjoicHJvY2VzdC1hZG1pbiIsImlhdCI6IjE3NzMxNDUyMTEiLCJ1c2VyX2lkIjoicHJvY2VzdC1hZG1pbiIsInVzZXJfcmVwcmVzZW50YXRpb24iOiIifQ.8_ibYWGktmy0S4fOzKzHSwuaa4j0IxyTzCmEeJ2_tIg", + "system": true + }, + { + "key": "User-Agent", + "value": "PostmanRuntime/7.39.1", + "system": true + }, + { + "key": "Accept", + "value": "*/*", + "system": true + }, + { + "key": "Cache-Control", + "value": "no-cache", + "system": true + }, + { + "key": "Postman-Token", + "value": "1b16c14b-09ff-4dec-a386-5a9241f272a9", + "system": true + }, + { + "key": "Host", + "value": "localhost:8080", + "system": true + }, + { + "key": "Accept-Encoding", + "value": "gzip, deflate, br", + "system": true + }, + { + "key": "Connection", + "value": "keep-alive", + "system": true + }, + { + "key": "Content-Length", + "value": "1124", + "system": true + }, + { + "key": "Cookie", + "value": "ocvp3112b4wg=14ea44c33bf9f66b79d57cf95b714254; oc_sessionPassphrase=LBNdKxRzA0iqoULIruNxDDh2BK3O%2BrCIU8aUmiUcOFvy5Xw1YfjwQNlmBW2IkGwJYtxXh9%2BwDN6vYuGNX07tXzkBtjQJUWTGdzf8AIOUIVxVx5DfyWAQZ7nmYmQv6XSE; nc_sameSiteCookielax=true; nc_sameSiteCookiestrict=true", + "system": true + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\r\n \"bronorganisatie\": \"000000000\",\r\n \"omschrijving\": \"string\",\r\n \"toelichting\": \"string\",\r\n \"registratiedatum\": \"2019-04-09\",\r\n \"verantwoordelijkeOrganisatie\": \"000000000\",\r\n \"zaaktype\": \"http://localhost:8080/index.php/apps/procest/api/zgw/catalogi/v1/zaaktypen/4b51b099-a934-4ca7-b94d-0b97de9d75c2\",\r\n \"startdatum\": \"2019-04-09\",\r\n \"einddatumGepland\": \"2019-04-20\",\r\n \"uiterlijkeEinddatumAfdoening\": \"2019-04-09\",\r\n \"publicatiedatum\": \"2019-04-09\",\r\n \"vertrouwelijkheidaanduiding\": \"openbaar\",\r\n \"betalingsindicatie\": \"geheel\",\r\n \"laatsteBetaalDatum\": \"2019-01-01\",\r\n \"zaakgeometrie\": {\r\n \"type\": \"Point\",\r\n \"coordinates\": [\r\n 53,\r\n 5\r\n ]\r\n },\r\n \"opschorting\": {\r\n \"indicatie\": true,\r\n \"reden\": \"string\"\r\n },\r\n \"selectielijstklasse\": \"https://selectielijst.openzaak.nl/api/v1/resultaten/0eb8f19f-d55e-4a15-8b5f-26cdf07482c1\",\r\n \"archiefstatus\": \"nog_te_archiveren\",\r\n \"deelzaaktypen\" : [\"http://localhost:8080/index.php/apps/procest/api/zgw/catalogi/v1/zaaktypen/7571bffe-5579-4295-9fac-87a9a6b6c5ac\"]\r\n}" + }, + "auth": { + "type": "jwt", + "jwt": [ + { + "type": "string", + "value": "{\r\n \"iss\": \"procest-admin\",\r\n \"client_id\": \"procest-admin\",\r\n \"iat\": \"1773145211\",\r\n \"user_id\": \"procest-admin\",\r\n \"user_representation\": \"\"\r\n}", + "key": "payload" + }, + { + "type": "string", + "value": "procest-admin-secret-key-for-testing", + "key": "secret" + }, + { + "type": "string", + "value": "HS256", + "key": "algorithm" + }, + { + "type": "boolean", + "value": false, + "key": "isSecretBase64Encoded" + }, + { + "type": "string", + "value": "header", + "key": "addTokenTo" + }, + { + "type": "string", + "value": "Bearer", + "key": "headerPrefix" + }, + { + "type": "string", + "value": "token", + "key": "queryParamKey" + }, + { + "type": "string", + "value": "{}", + "key": "header" + } + ] + } + }, + "response": { + "id": "b71be81e-9686-4d0e-8106-24c9e101fd7c", + "status": "Created", + "code": 201, + "header": [ + { + "key": "Date", + "value": "Tue, 10 Mar 2026 12:20:10 GMT" + }, + { + "key": "Server", + "value": "Apache/2.4.66 (Debian)" + }, + { + "key": "X-Content-Type-Options", + "value": "nosniff" + }, + { + "key": "X-Frame-Options", + "value": "SAMEORIGIN" + }, + { + "key": "X-Permitted-Cross-Domain-Policies", + "value": "none" + }, + { + "key": "X-Robots-Tag", + "value": "noindex, nofollow" + }, + { + "key": "Referrer-Policy", + "value": "no-referrer" + }, + { + "key": "X-Powered-By", + "value": "PHP/8.3.30" + }, + { + "key": "Content-Security-Policy", + "value": "default-src 'none';base-uri 'none';manifest-src 'self';frame-ancestors 'none'" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=14ea44c33bf9f66b79d57cf95b714254; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=14ea44c33bf9f66b79d57cf95b714254; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=14ea44c33bf9f66b79d57cf95b714254; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=14ea44c33bf9f66b79d57cf95b714254; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=14ea44c33bf9f66b79d57cf95b714254; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=a04e1b478ab7688bc21c790ec74a3bc9; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=a04e1b478ab7688bc21c790ec74a3bc9; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=a04e1b478ab7688bc21c790ec74a3bc9; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=a04e1b478ab7688bc21c790ec74a3bc9; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=a04e1b478ab7688bc21c790ec74a3bc9; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "X-Request-Id", + "value": "nF5hSBFWx08aZoOwDeJj" + }, + { + "key": "Cache-Control", + "value": "no-cache, no-store, must-revalidate" + }, + { + "key": "Feature-Policy", + "value": "autoplay 'none';camera 'none';fullscreen 'none';geolocation 'none';microphone 'none';payment 'none'" + }, + { + "key": "X-User-Id", + "value": "admin" + }, + { + "key": "Content-Length", + "value": "799" + }, + { + "key": "Keep-Alive", + "value": "timeout=5, max=60" + }, + { + "key": "Connection", + "value": "Keep-Alive" + }, + { + "key": "Content-Type", + "value": "application/json; charset=utf-8" + } + ], + "stream": { + "type": "Buffer", + "data": [ + 123, + 34, + 117, + 114, + 108, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 122, + 97, + 107, + 101, + 110, + 92, + 47, + 118, + 49, + 92, + 47, + 122, + 97, + 107, + 101, + 110, + 92, + 47, + 56, + 53, + 57, + 52, + 54, + 52, + 97, + 49, + 45, + 99, + 51, + 101, + 53, + 45, + 52, + 51, + 99, + 50, + 45, + 57, + 49, + 51, + 50, + 45, + 54, + 48, + 51, + 57, + 57, + 98, + 49, + 57, + 49, + 51, + 56, + 51, + 34, + 44, + 34, + 117, + 117, + 105, + 100, + 34, + 58, + 34, + 56, + 53, + 57, + 52, + 54, + 52, + 97, + 49, + 45, + 99, + 51, + 101, + 53, + 45, + 52, + 51, + 99, + 50, + 45, + 57, + 49, + 51, + 50, + 45, + 54, + 48, + 51, + 57, + 57, + 98, + 49, + 57, + 49, + 51, + 56, + 51, + 34, + 44, + 34, + 105, + 100, + 101, + 110, + 116, + 105, + 102, + 105, + 99, + 97, + 116, + 105, + 101, + 34, + 58, + 34, + 90, + 65, + 65, + 75, + 45, + 84, + 66, + 79, + 78, + 76, + 77, + 45, + 57, + 51, + 67, + 56, + 50, + 70, + 34, + 44, + 34, + 111, + 109, + 115, + 99, + 104, + 114, + 105, + 106, + 118, + 105, + 110, + 103, + 34, + 58, + 34, + 115, + 116, + 114, + 105, + 110, + 103, + 34, + 44, + 34, + 116, + 111, + 101, + 108, + 105, + 99, + 104, + 116, + 105, + 110, + 103, + 34, + 58, + 34, + 115, + 116, + 114, + 105, + 110, + 103, + 34, + 44, + 34, + 122, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 105, + 92, + 47, + 118, + 49, + 92, + 47, + 122, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 110, + 92, + 47, + 52, + 98, + 53, + 49, + 98, + 48, + 57, + 57, + 45, + 97, + 57, + 51, + 52, + 45, + 52, + 99, + 97, + 55, + 45, + 98, + 57, + 52, + 100, + 45, + 48, + 98, + 57, + 55, + 100, + 101, + 57, + 100, + 55, + 53, + 99, + 50, + 34, + 44, + 34, + 114, + 101, + 103, + 105, + 115, + 116, + 114, + 97, + 116, + 105, + 101, + 100, + 97, + 116, + 117, + 109, + 34, + 58, + 34, + 50, + 48, + 50, + 54, + 45, + 48, + 51, + 45, + 49, + 48, + 84, + 49, + 50, + 58, + 50, + 48, + 58, + 49, + 48, + 43, + 48, + 48, + 58, + 48, + 48, + 34, + 44, + 34, + 115, + 116, + 97, + 114, + 116, + 100, + 97, + 116, + 117, + 109, + 34, + 58, + 34, + 50, + 48, + 49, + 57, + 45, + 48, + 52, + 45, + 48, + 57, + 34, + 44, + 34, + 101, + 105, + 110, + 100, + 100, + 97, + 116, + 117, + 109, + 34, + 58, + 110, + 117, + 108, + 108, + 44, + 34, + 101, + 105, + 110, + 100, + 100, + 97, + 116, + 117, + 109, + 71, + 101, + 112, + 108, + 97, + 110, + 100, + 34, + 58, + 34, + 50, + 48, + 49, + 57, + 45, + 48, + 52, + 45, + 50, + 48, + 34, + 44, + 34, + 117, + 105, + 116, + 101, + 114, + 108, + 105, + 106, + 107, + 101, + 69, + 105, + 110, + 100, + 100, + 97, + 116, + 117, + 109, + 65, + 102, + 100, + 111, + 101, + 110, + 105, + 110, + 103, + 34, + 58, + 34, + 50, + 48, + 49, + 57, + 45, + 48, + 52, + 45, + 48, + 57, + 34, + 44, + 34, + 118, + 101, + 114, + 116, + 114, + 111, + 117, + 119, + 101, + 108, + 105, + 106, + 107, + 104, + 101, + 105, + 100, + 97, + 97, + 110, + 100, + 117, + 105, + 100, + 105, + 110, + 103, + 34, + 58, + 34, + 111, + 112, + 101, + 110, + 98, + 97, + 97, + 114, + 34, + 44, + 34, + 118, + 101, + 114, + 97, + 110, + 116, + 119, + 111, + 111, + 114, + 100, + 101, + 108, + 105, + 106, + 107, + 101, + 79, + 114, + 103, + 97, + 110, + 105, + 115, + 97, + 116, + 105, + 101, + 34, + 58, + 34, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 34, + 44, + 34, + 97, + 114, + 99, + 104, + 105, + 101, + 102, + 110, + 111, + 109, + 105, + 110, + 97, + 116, + 105, + 101, + 34, + 58, + 110, + 117, + 108, + 108, + 44, + 34, + 97, + 114, + 99, + 104, + 105, + 101, + 102, + 97, + 99, + 116, + 105, + 101, + 100, + 97, + 116, + 117, + 109, + 34, + 58, + 110, + 117, + 108, + 108, + 44, + 34, + 97, + 114, + 99, + 104, + 105, + 101, + 102, + 115, + 116, + 97, + 116, + 117, + 115, + 34, + 58, + 34, + 110, + 111, + 103, + 95, + 116, + 101, + 95, + 97, + 114, + 99, + 104, + 105, + 118, + 101, + 114, + 101, + 110, + 34, + 44, + 34, + 98, + 101, + 116, + 97, + 108, + 105, + 110, + 103, + 115, + 105, + 110, + 100, + 105, + 99, + 97, + 116, + 105, + 101, + 34, + 58, + 34, + 103, + 101, + 104, + 101, + 101, + 108, + 34, + 44, + 34, + 108, + 97, + 97, + 116, + 115, + 116, + 101, + 66, + 101, + 116, + 97, + 97, + 108, + 100, + 97, + 116, + 117, + 109, + 34, + 58, + 110, + 117, + 108, + 108, + 44, + 34, + 104, + 111, + 111, + 102, + 100, + 122, + 97, + 97, + 107, + 34, + 58, + 110, + 117, + 108, + 108, + 125 + ] + }, + "cookie": [], + "responseTime": 232, + "responseSize": 799 + }, + "id": "e749b5c8-0a54-4f4e-b700-9c4a412b926c" + }, + { + "cursor": { + "ref": "9d5b38c9-f6fe-4539-8c49-c2403e05909a", + "length": 313, + "cycles": 1, + "position": 273, + "iteration": 0, + "httpRequestId": "7037579c-f96e-4397-a425-9122fd344f40" + }, + "item": { + "id": "dc1295e2-40b9-47c4-9712-bfb29144cfb8", + "name": "(DRC) Create EnkelvoudigInformatieObject", + "request": { + "url": { + "path": [ + "enkelvoudiginformatieobjecten" + ], + "host": [ + "{{drc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n \"bronorganisatie\": \"000000000\",\n \"creatiedatum\": \"2019-01-01\",\n \"titel\": \"testobject\",\n \"auteur\": \"testauteur\",\n \"taal\": \"eng\",\n \"inhoud\": \"{{object_inhoud}}\",\n \"informatieobjecttype\": \"{{informatieobjecttype_url}}\",\n \"indicatieGebruiksrecht\": false,\n \"status\": \"in_bewerking\",\n \"bestandsnaam\": \"iets.pdf\",\n \"bestandsomvang\": 6\n}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "f67a1eb6-730a-4337-8d0a-3ebf3282be57", + "type": "text/javascript", + "packages": {}, + "exec": [ + "pm.environment.set(\"informatieobject_url\", pm.response.json().url);" + ], + "_lastExecutionId": "0ada8fe5-db72-41f4-8dd9-0b12ba640679" + } + }, + { + "listen": "prerequest", + "script": { + "id": "d80451e7-a758-4e79-9c0a-e4a45e6f84ed", + "type": "text/javascript", + "packages": {}, + "exec": [ + "pm.environment.set(\"object_inhoud\", btoa(\"string\"))" + ], + "_lastExecutionId": "e0954c67-97cf-4df4-9920-8db9cf6f62b7" + } + } + ] + }, + "request": { + "url": { + "protocol": "http", + "port": "8080", + "path": [ + "index.php", + "apps", + "procest", + "api", + "zgw", + "documenten", + "v1", + "enkelvoudiginformatieobjecten" + ], + "host": [ + "localhost" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Authorization", + "value": "Bearer eyJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJwcm9jZXN0LWFkbWluIiwiY2xpZW50X2lkIjoicHJvY2VzdC1hZG1pbiIsImlhdCI6IjE3NzMxNDUyMTEiLCJ1c2VyX2lkIjoicHJvY2VzdC1hZG1pbiIsInVzZXJfcmVwcmVzZW50YXRpb24iOiIifQ.8_ibYWGktmy0S4fOzKzHSwuaa4j0IxyTzCmEeJ2_tIg", + "system": true + }, + { + "key": "User-Agent", + "value": "PostmanRuntime/7.39.1", + "system": true + }, + { + "key": "Accept", + "value": "*/*", + "system": true + }, + { + "key": "Cache-Control", + "value": "no-cache", + "system": true + }, + { + "key": "Postman-Token", + "value": "e838ca6b-9ec2-4bac-819b-6af6ef347fe9", + "system": true + }, + { + "key": "Host", + "value": "localhost:8080", + "system": true + }, + { + "key": "Accept-Encoding", + "value": "gzip, deflate, br", + "system": true + }, + { + "key": "Connection", + "value": "keep-alive", + "system": true + }, + { + "key": "Content-Length", + "value": "459", + "system": true + }, + { + "key": "Cookie", + "value": "ocvp3112b4wg=a04e1b478ab7688bc21c790ec74a3bc9; oc_sessionPassphrase=LBNdKxRzA0iqoULIruNxDDh2BK3O%2BrCIU8aUmiUcOFvy5Xw1YfjwQNlmBW2IkGwJYtxXh9%2BwDN6vYuGNX07tXzkBtjQJUWTGdzf8AIOUIVxVx5DfyWAQZ7nmYmQv6XSE; nc_sameSiteCookielax=true; nc_sameSiteCookiestrict=true", + "system": true + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n \"bronorganisatie\": \"000000000\",\n \"creatiedatum\": \"2019-01-01\",\n \"titel\": \"testobject\",\n \"auteur\": \"testauteur\",\n \"taal\": \"eng\",\n \"inhoud\": \"c3RyaW5n\",\n \"informatieobjecttype\": \"http://localhost:8080/index.php/apps/procest/api/zgw/catalogi/v1/informatieobjecttypen/ad9f20aa-2c16-49a9-bdc3-8a30643ddea9\",\n \"indicatieGebruiksrecht\": false,\n \"status\": \"in_bewerking\",\n \"bestandsnaam\": \"iets.pdf\",\n \"bestandsomvang\": 6\n}" + }, + "auth": { + "type": "jwt", + "jwt": [ + { + "type": "string", + "value": "{\r\n \"iss\": \"procest-admin\",\r\n \"client_id\": \"procest-admin\",\r\n \"iat\": \"1773145211\",\r\n \"user_id\": \"procest-admin\",\r\n \"user_representation\": \"\"\r\n}", + "key": "payload" + }, + { + "type": "string", + "value": "procest-admin-secret-key-for-testing", + "key": "secret" + }, + { + "type": "string", + "value": "HS256", + "key": "algorithm" + }, + { + "type": "boolean", + "value": false, + "key": "isSecretBase64Encoded" + }, + { + "type": "string", + "value": "header", + "key": "addTokenTo" + }, + { + "type": "string", + "value": "Bearer", + "key": "headerPrefix" + }, + { + "type": "string", + "value": "token", + "key": "queryParamKey" + }, + { + "type": "string", + "value": "{}", + "key": "header" + } + ] + } + }, + "response": { + "id": "9f140a5f-6f9b-4416-acf6-20e8a0d4d2cd", + "status": "Created", + "code": 201, + "header": [ + { + "key": "Date", + "value": "Tue, 10 Mar 2026 12:20:11 GMT" + }, + { + "key": "Server", + "value": "Apache/2.4.66 (Debian)" + }, + { + "key": "X-Content-Type-Options", + "value": "nosniff" + }, + { + "key": "X-Frame-Options", + "value": "SAMEORIGIN" + }, + { + "key": "X-Permitted-Cross-Domain-Policies", + "value": "none" + }, + { + "key": "X-Robots-Tag", + "value": "noindex, nofollow" + }, + { + "key": "Referrer-Policy", + "value": "no-referrer" + }, + { + "key": "X-Powered-By", + "value": "PHP/8.3.30" + }, + { + "key": "Content-Security-Policy", + "value": "default-src 'none';base-uri 'none';manifest-src 'self';frame-ancestors 'none'" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=a04e1b478ab7688bc21c790ec74a3bc9; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=a04e1b478ab7688bc21c790ec74a3bc9; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=a04e1b478ab7688bc21c790ec74a3bc9; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=a04e1b478ab7688bc21c790ec74a3bc9; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=a04e1b478ab7688bc21c790ec74a3bc9; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=bf9bef0f1768ebc653cc4ef896028acb; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=bf9bef0f1768ebc653cc4ef896028acb; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=bf9bef0f1768ebc653cc4ef896028acb; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=bf9bef0f1768ebc653cc4ef896028acb; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=bf9bef0f1768ebc653cc4ef896028acb; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "X-Request-Id", + "value": "rrEeYBK4vufgGYQv8raI" + }, + { + "key": "Cache-Control", + "value": "no-cache, no-store, must-revalidate" + }, + { + "key": "Feature-Policy", + "value": "autoplay 'none';camera 'none';fullscreen 'none';geolocation 'none';microphone 'none';payment 'none'" + }, + { + "key": "X-User-Id", + "value": "admin" + }, + { + "key": "Content-Length", + "value": "924" + }, + { + "key": "Keep-Alive", + "value": "timeout=5, max=59" + }, + { + "key": "Connection", + "value": "Keep-Alive" + }, + { + "key": "Content-Type", + "value": "application/json; charset=utf-8" + } + ], + "stream": { + "type": "Buffer", + "data": [ + 123, + 34, + 117, + 114, + 108, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 100, + 111, + 99, + 117, + 109, + 101, + 110, + 116, + 101, + 110, + 92, + 47, + 118, + 49, + 92, + 47, + 101, + 110, + 107, + 101, + 108, + 118, + 111, + 117, + 100, + 105, + 103, + 105, + 110, + 102, + 111, + 114, + 109, + 97, + 116, + 105, + 101, + 111, + 98, + 106, + 101, + 99, + 116, + 101, + 110, + 92, + 47, + 56, + 51, + 101, + 57, + 53, + 52, + 97, + 99, + 45, + 98, + 100, + 98, + 52, + 45, + 52, + 49, + 54, + 97, + 45, + 97, + 100, + 49, + 52, + 45, + 53, + 101, + 50, + 57, + 50, + 55, + 55, + 53, + 102, + 100, + 57, + 54, + 34, + 44, + 34, + 117, + 117, + 105, + 100, + 34, + 58, + 34, + 56, + 51, + 101, + 57, + 53, + 52, + 97, + 99, + 45, + 98, + 100, + 98, + 52, + 45, + 52, + 49, + 54, + 97, + 45, + 97, + 100, + 49, + 52, + 45, + 53, + 101, + 50, + 57, + 50, + 55, + 55, + 53, + 102, + 100, + 57, + 54, + 34, + 44, + 34, + 105, + 100, + 101, + 110, + 116, + 105, + 102, + 105, + 99, + 97, + 116, + 105, + 101, + 34, + 58, + 34, + 68, + 79, + 67, + 85, + 77, + 69, + 78, + 84, + 45, + 84, + 66, + 79, + 78, + 76, + 78, + 45, + 67, + 66, + 52, + 48, + 70, + 57, + 34, + 44, + 34, + 98, + 114, + 111, + 110, + 111, + 114, + 103, + 97, + 110, + 105, + 115, + 97, + 116, + 105, + 101, + 34, + 58, + 34, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 34, + 44, + 34, + 99, + 114, + 101, + 97, + 116, + 105, + 101, + 100, + 97, + 116, + 117, + 109, + 34, + 58, + 34, + 50, + 48, + 49, + 57, + 45, + 48, + 49, + 45, + 48, + 49, + 34, + 44, + 34, + 116, + 105, + 116, + 101, + 108, + 34, + 58, + 34, + 116, + 101, + 115, + 116, + 111, + 98, + 106, + 101, + 99, + 116, + 34, + 44, + 34, + 118, + 101, + 114, + 116, + 114, + 111, + 117, + 119, + 101, + 108, + 105, + 106, + 107, + 104, + 101, + 105, + 100, + 97, + 97, + 110, + 100, + 117, + 105, + 100, + 105, + 110, + 103, + 34, + 58, + 34, + 111, + 112, + 101, + 110, + 98, + 97, + 97, + 114, + 34, + 44, + 34, + 97, + 117, + 116, + 101, + 117, + 114, + 34, + 58, + 34, + 116, + 101, + 115, + 116, + 97, + 117, + 116, + 101, + 117, + 114, + 34, + 44, + 34, + 115, + 116, + 97, + 116, + 117, + 115, + 34, + 58, + 34, + 105, + 110, + 95, + 98, + 101, + 119, + 101, + 114, + 107, + 105, + 110, + 103, + 34, + 44, + 34, + 102, + 111, + 114, + 109, + 97, + 97, + 116, + 34, + 58, + 34, + 34, + 44, + 34, + 116, + 97, + 97, + 108, + 34, + 58, + 34, + 101, + 110, + 103, + 34, + 44, + 34, + 98, + 101, + 115, + 116, + 97, + 110, + 100, + 115, + 110, + 97, + 97, + 109, + 34, + 58, + 34, + 105, + 101, + 116, + 115, + 46, + 112, + 100, + 102, + 34, + 44, + 34, + 98, + 101, + 115, + 116, + 97, + 110, + 100, + 115, + 111, + 109, + 118, + 97, + 110, + 103, + 34, + 58, + 54, + 44, + 34, + 105, + 110, + 104, + 111, + 117, + 100, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 100, + 111, + 99, + 117, + 109, + 101, + 110, + 116, + 101, + 110, + 92, + 47, + 118, + 49, + 92, + 47, + 101, + 110, + 107, + 101, + 108, + 118, + 111, + 117, + 100, + 105, + 103, + 105, + 110, + 102, + 111, + 114, + 109, + 97, + 116, + 105, + 101, + 111, + 98, + 106, + 101, + 99, + 116, + 101, + 110, + 92, + 47, + 56, + 51, + 101, + 57, + 53, + 52, + 97, + 99, + 45, + 98, + 100, + 98, + 52, + 45, + 52, + 49, + 54, + 97, + 45, + 97, + 100, + 49, + 52, + 45, + 53, + 101, + 50, + 57, + 50, + 55, + 55, + 53, + 102, + 100, + 57, + 54, + 92, + 47, + 100, + 111, + 119, + 110, + 108, + 111, + 97, + 100, + 34, + 44, + 34, + 108, + 105, + 110, + 107, + 34, + 58, + 34, + 34, + 44, + 34, + 98, + 101, + 115, + 99, + 104, + 114, + 105, + 106, + 118, + 105, + 110, + 103, + 34, + 58, + 34, + 34, + 44, + 34, + 105, + 110, + 102, + 111, + 114, + 109, + 97, + 116, + 105, + 101, + 111, + 98, + 106, + 101, + 99, + 116, + 116, + 121, + 112, + 101, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 105, + 92, + 47, + 118, + 49, + 92, + 47, + 105, + 110, + 102, + 111, + 114, + 109, + 97, + 116, + 105, + 101, + 111, + 98, + 106, + 101, + 99, + 116, + 116, + 121, + 112, + 101, + 110, + 92, + 47, + 97, + 100, + 57, + 102, + 50, + 48, + 97, + 97, + 45, + 50, + 99, + 49, + 54, + 45, + 52, + 57, + 97, + 57, + 45, + 98, + 100, + 99, + 51, + 45, + 56, + 97, + 51, + 48, + 54, + 52, + 51, + 100, + 100, + 101, + 97, + 57, + 34, + 44, + 34, + 108, + 111, + 99, + 107, + 101, + 100, + 34, + 58, + 102, + 97, + 108, + 115, + 101, + 44, + 34, + 114, + 101, + 103, + 105, + 115, + 116, + 114, + 97, + 116, + 105, + 101, + 100, + 97, + 116, + 117, + 109, + 34, + 58, + 34, + 50, + 48, + 50, + 54, + 45, + 48, + 51, + 45, + 49, + 48, + 84, + 49, + 50, + 58, + 50, + 48, + 58, + 49, + 49, + 43, + 48, + 48, + 58, + 48, + 48, + 34, + 44, + 34, + 105, + 110, + 100, + 105, + 99, + 97, + 116, + 105, + 101, + 71, + 101, + 98, + 114, + 117, + 105, + 107, + 115, + 114, + 101, + 99, + 104, + 116, + 34, + 58, + 110, + 117, + 108, + 108, + 125 + ] + }, + "cookie": [], + "responseTime": 570, + "responseSize": 924 + }, + "id": "dc1295e2-40b9-47c4-9712-bfb29144cfb8" + }, + { + "cursor": { + "ref": "f6336d10-42f3-4c6e-996f-66857a204f2d", + "length": 313, + "cycles": 1, + "position": 274, + "iteration": 0, + "httpRequestId": "eb499721-88f9-4439-948f-d09d0cb9d384" + }, + "item": { + "id": "f2faac61-0357-403b-96c3-3b104eed54ee", + "name": "(zrc-022) ZaakInformatieObject aanmaken is mogelijk", + "request": { + "url": { + "path": [ + "zaakinformatieobjecten" + ], + "host": [ + "{{zrc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n\t\"zaak\": \"{{created_zaak_url}}\",\n\t\"informatieobject\": \"{{informatieobject_url}}\",\n\t\"titel\": \"test\",\n\t\"beschrijving\": \"bla\"\n}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "bc209cf3-46b8-4c4f-a62d-9d4b130015a5", + "type": "text/javascript", + "packages": {}, + "exec": [ + "pm.test(\"ZaakInformatieObject aanmaken met valide gegevens geeft 201\", function() {", + " pm.response.to.have.status(201);", + "});", + "", + "if(pm.response.code == 201) {", + " pm.environment.set(\"zaakinformatieobject_body\", pm.request.body.raw);", + " pm.environment.set(\"created_zaakinformatieobject_url\", pm.response.json().url);", + "}" + ], + "_lastExecutionId": "165f0b11-e8a2-4236-9ba1-80ba9e7a4c74" + } + } + ] + }, + "request": { + "url": { + "protocol": "http", + "port": "8080", + "path": [ + "index.php", + "apps", + "procest", + "api", + "zgw", + "zaken", + "v1", + "zaakinformatieobjecten" + ], + "host": [ + "localhost" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Authorization", + "value": "Bearer eyJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJwcm9jZXN0LWFkbWluIiwiY2xpZW50X2lkIjoicHJvY2VzdC1hZG1pbiIsImlhdCI6IjE3NzMxNDUyMTIiLCJ1c2VyX2lkIjoicHJvY2VzdC1hZG1pbiIsInVzZXJfcmVwcmVzZW50YXRpb24iOiIifQ.BT-QcIRRfxj0jnjwRCStAn4MNyW4kJnx5zA-6WPa94M", + "system": true + }, + { + "key": "User-Agent", + "value": "PostmanRuntime/7.39.1", + "system": true + }, + { + "key": "Accept", + "value": "*/*", + "system": true + }, + { + "key": "Cache-Control", + "value": "no-cache", + "system": true + }, + { + "key": "Postman-Token", + "value": "f8ed52d3-e7d3-45e5-bf16-2d5ba138da95", + "system": true + }, + { + "key": "Host", + "value": "localhost:8080", + "system": true + }, + { + "key": "Accept-Encoding", + "value": "gzip, deflate, br", + "system": true + }, + { + "key": "Connection", + "value": "keep-alive", + "system": true + }, + { + "key": "Content-Length", + "value": "319", + "system": true + }, + { + "key": "Cookie", + "value": "ocvp3112b4wg=bf9bef0f1768ebc653cc4ef896028acb; oc_sessionPassphrase=LBNdKxRzA0iqoULIruNxDDh2BK3O%2BrCIU8aUmiUcOFvy5Xw1YfjwQNlmBW2IkGwJYtxXh9%2BwDN6vYuGNX07tXzkBtjQJUWTGdzf8AIOUIVxVx5DfyWAQZ7nmYmQv6XSE; nc_sameSiteCookielax=true; nc_sameSiteCookiestrict=true", + "system": true + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n\t\"zaak\": \"http://localhost:8080/index.php/apps/procest/api/zgw/zaken/v1/zaken/859464a1-c3e5-43c2-9132-60399b191383\",\n\t\"informatieobject\": \"http://localhost:8080/index.php/apps/procest/api/zgw/documenten/v1/enkelvoudiginformatieobjecten/83e954ac-bdb4-416a-ad14-5e292775fd96\",\n\t\"titel\": \"test\",\n\t\"beschrijving\": \"bla\"\n}" + }, + "auth": { + "type": "jwt", + "jwt": [ + { + "type": "string", + "value": "{\r\n \"iss\": \"procest-admin\",\r\n \"client_id\": \"procest-admin\",\r\n \"iat\": \"1773145212\",\r\n \"user_id\": \"procest-admin\",\r\n \"user_representation\": \"\"\r\n}", + "key": "payload" + }, + { + "type": "string", + "value": "procest-admin-secret-key-for-testing", + "key": "secret" + }, + { + "type": "string", + "value": "HS256", + "key": "algorithm" + }, + { + "type": "boolean", + "value": false, + "key": "isSecretBase64Encoded" + }, + { + "type": "string", + "value": "header", + "key": "addTokenTo" + }, + { + "type": "string", + "value": "Bearer", + "key": "headerPrefix" + }, + { + "type": "string", + "value": "token", + "key": "queryParamKey" + }, + { + "type": "string", + "value": "{}", + "key": "header" + } + ] + } + }, + "response": { + "id": "150ca48a-2b4e-4d07-b4ff-a1aa697bef23", + "status": "Created", + "code": 201, + "header": [ + { + "key": "Date", + "value": "Tue, 10 Mar 2026 12:20:11 GMT" + }, + { + "key": "Server", + "value": "Apache/2.4.66 (Debian)" + }, + { + "key": "X-Content-Type-Options", + "value": "nosniff" + }, + { + "key": "X-Frame-Options", + "value": "SAMEORIGIN" + }, + { + "key": "X-Permitted-Cross-Domain-Policies", + "value": "none" + }, + { + "key": "X-Robots-Tag", + "value": "noindex, nofollow" + }, + { + "key": "Referrer-Policy", + "value": "no-referrer" + }, + { + "key": "X-Powered-By", + "value": "PHP/8.3.30" + }, + { + "key": "Content-Security-Policy", + "value": "default-src 'none';base-uri 'none';manifest-src 'self';frame-ancestors 'none'" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=bf9bef0f1768ebc653cc4ef896028acb; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=bf9bef0f1768ebc653cc4ef896028acb; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=bf9bef0f1768ebc653cc4ef896028acb; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=bf9bef0f1768ebc653cc4ef896028acb; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=bf9bef0f1768ebc653cc4ef896028acb; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=9d1a5baee2a759abfbdba57e701affd6; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=9d1a5baee2a759abfbdba57e701affd6; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=9d1a5baee2a759abfbdba57e701affd6; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=9d1a5baee2a759abfbdba57e701affd6; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=9d1a5baee2a759abfbdba57e701affd6; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "X-Request-Id", + "value": "Q4ZepBLRKGE1upTUbxWs" + }, + { + "key": "Cache-Control", + "value": "no-cache, no-store, must-revalidate" + }, + { + "key": "Feature-Policy", + "value": "autoplay 'none';camera 'none';fullscreen 'none';geolocation 'none';microphone 'none';payment 'none'" + }, + { + "key": "X-User-Id", + "value": "admin" + }, + { + "key": "Content-Length", + "value": "598" + }, + { + "key": "Keep-Alive", + "value": "timeout=5, max=58" + }, + { + "key": "Connection", + "value": "Keep-Alive" + }, + { + "key": "Content-Type", + "value": "application/json; charset=utf-8" + } + ], + "stream": { + "type": "Buffer", + "data": [ + 123, + 34, + 117, + 114, + 108, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 122, + 97, + 107, + 101, + 110, + 92, + 47, + 118, + 49, + 92, + 47, + 122, + 97, + 97, + 107, + 105, + 110, + 102, + 111, + 114, + 109, + 97, + 116, + 105, + 101, + 111, + 98, + 106, + 101, + 99, + 116, + 101, + 110, + 92, + 47, + 99, + 57, + 54, + 102, + 97, + 102, + 51, + 49, + 45, + 54, + 102, + 49, + 99, + 45, + 52, + 53, + 57, + 48, + 45, + 57, + 57, + 57, + 98, + 45, + 100, + 55, + 56, + 101, + 49, + 57, + 54, + 97, + 48, + 51, + 100, + 57, + 34, + 44, + 34, + 117, + 117, + 105, + 100, + 34, + 58, + 34, + 99, + 57, + 54, + 102, + 97, + 102, + 51, + 49, + 45, + 54, + 102, + 49, + 99, + 45, + 52, + 53, + 57, + 48, + 45, + 57, + 57, + 57, + 98, + 45, + 100, + 55, + 56, + 101, + 49, + 57, + 54, + 97, + 48, + 51, + 100, + 57, + 34, + 44, + 34, + 122, + 97, + 97, + 107, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 122, + 97, + 107, + 101, + 110, + 92, + 47, + 118, + 49, + 92, + 47, + 122, + 97, + 107, + 101, + 110, + 92, + 47, + 56, + 53, + 57, + 52, + 54, + 52, + 97, + 49, + 45, + 99, + 51, + 101, + 53, + 45, + 52, + 51, + 99, + 50, + 45, + 57, + 49, + 51, + 50, + 45, + 54, + 48, + 51, + 57, + 57, + 98, + 49, + 57, + 49, + 51, + 56, + 51, + 34, + 44, + 34, + 105, + 110, + 102, + 111, + 114, + 109, + 97, + 116, + 105, + 101, + 111, + 98, + 106, + 101, + 99, + 116, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 100, + 111, + 99, + 117, + 109, + 101, + 110, + 116, + 101, + 110, + 92, + 47, + 118, + 49, + 92, + 47, + 101, + 110, + 107, + 101, + 108, + 118, + 111, + 117, + 100, + 105, + 103, + 105, + 110, + 102, + 111, + 114, + 109, + 97, + 116, + 105, + 101, + 111, + 98, + 106, + 101, + 99, + 116, + 101, + 110, + 92, + 47, + 56, + 51, + 101, + 57, + 53, + 52, + 97, + 99, + 45, + 98, + 100, + 98, + 52, + 45, + 52, + 49, + 54, + 97, + 45, + 97, + 100, + 49, + 52, + 45, + 53, + 101, + 50, + 57, + 50, + 55, + 55, + 53, + 102, + 100, + 57, + 54, + 34, + 44, + 34, + 116, + 105, + 116, + 101, + 108, + 34, + 58, + 34, + 116, + 101, + 115, + 116, + 34, + 44, + 34, + 98, + 101, + 115, + 99, + 104, + 114, + 105, + 106, + 118, + 105, + 110, + 103, + 34, + 58, + 34, + 98, + 108, + 97, + 34, + 44, + 34, + 114, + 101, + 103, + 105, + 115, + 116, + 114, + 97, + 116, + 105, + 101, + 100, + 97, + 116, + 117, + 109, + 34, + 58, + 34, + 50, + 48, + 50, + 54, + 45, + 48, + 51, + 45, + 49, + 48, + 34, + 44, + 34, + 97, + 97, + 114, + 100, + 82, + 101, + 108, + 97, + 116, + 105, + 101, + 87, + 101, + 101, + 114, + 103, + 97, + 118, + 101, + 34, + 58, + 34, + 72, + 111, + 111, + 114, + 116, + 32, + 98, + 105, + 106, + 44, + 32, + 111, + 109, + 103, + 101, + 107, + 101, + 101, + 114, + 100, + 58, + 32, + 107, + 101, + 110, + 116, + 34, + 125 + ] + }, + "cookie": [], + "responseTime": 306, + "responseSize": 598 + }, + "id": "f2faac61-0357-403b-96c3-3b104eed54ee", + "assertions": [ + { + "assertion": "ZaakInformatieObject aanmaken met valide gegevens geeft 201", + "skipped": false + } + ] + }, + { + "cursor": { + "ref": "741859da-80eb-4b45-9b88-01134eacbe0d", + "length": 313, + "cycles": 1, + "position": 275, + "iteration": 0, + "httpRequestId": "f6f6d36c-e0b5-479c-8aaf-53a0b0eed1c8" + }, + "item": { + "id": "ff9e9626-1cd6-4a3d-bd72-4153ff89a9ea", + "name": "Plaats lock", + "request": { + "url": { + "path": [ + "lock" + ], + "host": [ + "{{informatieobject_url}}" + ], + "query": [], + "variable": [] + }, + "method": "POST" + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "8ad4f8dd-9a01-4293-8834-20dc26082642", + "type": "text/javascript", + "packages": {}, + "exec": [ + "pm.environment.set(\"informatieobject_lock_id\", pm.response.json().lock);" + ], + "_lastExecutionId": "115ecaeb-67e6-43b7-8ffc-689b34ad5a56" + } + } + ] + }, + "request": { + "url": { + "protocol": "http", + "port": "8080", + "path": [ + "index.php", + "apps", + "procest", + "api", + "zgw", + "documenten", + "v1", + "enkelvoudiginformatieobjecten", + "83e954ac-bdb4-416a-ad14-5e292775fd96", + "lock" + ], + "host": [ + "localhost" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Authorization", + "value": "Bearer eyJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJwcm9jZXN0LWFkbWluIiwiY2xpZW50X2lkIjoicHJvY2VzdC1hZG1pbiIsImlhdCI6IjE3NzMxNDUyMTIiLCJ1c2VyX2lkIjoicHJvY2VzdC1hZG1pbiIsInVzZXJfcmVwcmVzZW50YXRpb24iOiIifQ.BT-QcIRRfxj0jnjwRCStAn4MNyW4kJnx5zA-6WPa94M", + "system": true + }, + { + "key": "User-Agent", + "value": "PostmanRuntime/7.39.1", + "system": true + }, + { + "key": "Accept", + "value": "*/*", + "system": true + }, + { + "key": "Cache-Control", + "value": "no-cache", + "system": true + }, + { + "key": "Postman-Token", + "value": "94e6a192-b1b4-499f-b165-4d85db0f9bb0", + "system": true + }, + { + "key": "Host", + "value": "localhost:8080", + "system": true + }, + { + "key": "Accept-Encoding", + "value": "gzip, deflate, br", + "system": true + }, + { + "key": "Connection", + "value": "keep-alive", + "system": true + }, + { + "key": "Cookie", + "value": "ocvp3112b4wg=9d1a5baee2a759abfbdba57e701affd6; oc_sessionPassphrase=LBNdKxRzA0iqoULIruNxDDh2BK3O%2BrCIU8aUmiUcOFvy5Xw1YfjwQNlmBW2IkGwJYtxXh9%2BwDN6vYuGNX07tXzkBtjQJUWTGdzf8AIOUIVxVx5DfyWAQZ7nmYmQv6XSE; nc_sameSiteCookielax=true; nc_sameSiteCookiestrict=true", + "system": true + }, + { + "key": "Content-Length", + "value": "0", + "system": true + } + ], + "method": "POST", + "auth": { + "type": "jwt", + "jwt": [ + { + "type": "string", + "value": "{\r\n \"iss\": \"procest-admin\",\r\n \"client_id\": \"procest-admin\",\r\n \"iat\": \"1773145212\",\r\n \"user_id\": \"procest-admin\",\r\n \"user_representation\": \"\"\r\n}", + "key": "payload" + }, + { + "type": "string", + "value": "procest-admin-secret-key-for-testing", + "key": "secret" + }, + { + "type": "string", + "value": "HS256", + "key": "algorithm" + }, + { + "type": "boolean", + "value": false, + "key": "isSecretBase64Encoded" + }, + { + "type": "string", + "value": "header", + "key": "addTokenTo" + }, + { + "type": "string", + "value": "Bearer", + "key": "headerPrefix" + }, + { + "type": "string", + "value": "token", + "key": "queryParamKey" + }, + { + "type": "string", + "value": "{}", + "key": "header" + } + ] + } + }, + "response": { + "id": "bb1298b8-2aa9-45e2-9fce-c871577f63e4", + "status": "OK", + "code": 200, + "header": [ + { + "key": "Date", + "value": "Tue, 10 Mar 2026 12:20:12 GMT" + }, + { + "key": "Server", + "value": "Apache/2.4.66 (Debian)" + }, + { + "key": "X-Content-Type-Options", + "value": "nosniff" + }, + { + "key": "X-Frame-Options", + "value": "SAMEORIGIN" + }, + { + "key": "X-Permitted-Cross-Domain-Policies", + "value": "none" + }, + { + "key": "X-Robots-Tag", + "value": "noindex, nofollow" + }, + { + "key": "Referrer-Policy", + "value": "no-referrer" + }, + { + "key": "X-Powered-By", + "value": "PHP/8.3.30" + }, + { + "key": "Content-Security-Policy", + "value": "default-src 'none';base-uri 'none';manifest-src 'self';frame-ancestors 'none'" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=9d1a5baee2a759abfbdba57e701affd6; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=9d1a5baee2a759abfbdba57e701affd6; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=9d1a5baee2a759abfbdba57e701affd6; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=9d1a5baee2a759abfbdba57e701affd6; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=9d1a5baee2a759abfbdba57e701affd6; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=0217d6830d7e0d4ba180c9d64bbeca1c; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=0217d6830d7e0d4ba180c9d64bbeca1c; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=0217d6830d7e0d4ba180c9d64bbeca1c; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=0217d6830d7e0d4ba180c9d64bbeca1c; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=0217d6830d7e0d4ba180c9d64bbeca1c; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "X-Request-Id", + "value": "o0HnfqZwUHebk78cvmcv" + }, + { + "key": "Cache-Control", + "value": "no-cache, no-store, must-revalidate" + }, + { + "key": "Feature-Policy", + "value": "autoplay 'none';camera 'none';fullscreen 'none';geolocation 'none';microphone 'none';payment 'none'" + }, + { + "key": "X-User-Id", + "value": "admin" + }, + { + "key": "Content-Encoding", + "value": "gzip" + }, + { + "key": "Content-Length", + "value": "63" + }, + { + "key": "Keep-Alive", + "value": "timeout=5, max=57" + }, + { + "key": "Connection", + "value": "Keep-Alive" + }, + { + "key": "Content-Type", + "value": "application/json; charset=utf-8" + } + ], + "stream": { + "type": "Buffer", + "data": [ + 123, + 34, + 108, + 111, + 99, + 107, + 34, + 58, + 34, + 98, + 48, + 54, + 50, + 51, + 55, + 49, + 50, + 98, + 50, + 54, + 51, + 97, + 97, + 98, + 50, + 48, + 97, + 97, + 102, + 53, + 48, + 97, + 51, + 100, + 57, + 53, + 102, + 56, + 53, + 52, + 52, + 34, + 125 + ] + }, + "cookie": [], + "responseTime": 163, + "responseSize": 43 + }, + "id": "ff9e9626-1cd6-4a3d-bd72-4153ff89a9ea" + }, + { + "cursor": { + "ref": "d194d4e1-487b-460a-8f8e-805d8f098c41", + "length": 313, + "cycles": 1, + "position": 276, + "iteration": 0, + "httpRequestId": "96da09cb-eaf2-4cf7-b3ab-f257205ac3aa" + }, + "item": { + "id": "e140242a-09d1-43f4-964c-a0330d27dc69", + "name": "Change Informatieobject status to gearchiveerd", + "request": { + "url": { + "host": [ + "{{informatieobject_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "PATCH", + "body": { + "mode": "raw", + "raw": "{\n\t\"status\": \"gearchiveerd\",\n\t\"lock\": \"{{informatieobject_lock_id}}\"\n}" + } + }, + "response": [], + "event": [] + }, + "request": { + "url": { + "protocol": "http", + "port": "8080", + "path": [ + "index.php", + "apps", + "procest", + "api", + "zgw", + "documenten", + "v1", + "enkelvoudiginformatieobjecten", + "83e954ac-bdb4-416a-ad14-5e292775fd96" + ], + "host": [ + "localhost" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Authorization", + "value": "Bearer eyJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJwcm9jZXN0LWFkbWluIiwiY2xpZW50X2lkIjoicHJvY2VzdC1hZG1pbiIsImlhdCI6IjE3NzMxNDUyMTIiLCJ1c2VyX2lkIjoicHJvY2VzdC1hZG1pbiIsInVzZXJfcmVwcmVzZW50YXRpb24iOiIifQ.BT-QcIRRfxj0jnjwRCStAn4MNyW4kJnx5zA-6WPa94M", + "system": true + }, + { + "key": "User-Agent", + "value": "PostmanRuntime/7.39.1", + "system": true + }, + { + "key": "Accept", + "value": "*/*", + "system": true + }, + { + "key": "Cache-Control", + "value": "no-cache", + "system": true + }, + { + "key": "Postman-Token", + "value": "368e5b32-ddd3-4b0b-9bdc-85b68bc724e8", + "system": true + }, + { + "key": "Host", + "value": "localhost:8080", + "system": true + }, + { + "key": "Accept-Encoding", + "value": "gzip, deflate, br", + "system": true + }, + { + "key": "Connection", + "value": "keep-alive", + "system": true + }, + { + "key": "Content-Length", + "value": "74", + "system": true + }, + { + "key": "Cookie", + "value": "ocvp3112b4wg=0217d6830d7e0d4ba180c9d64bbeca1c; oc_sessionPassphrase=LBNdKxRzA0iqoULIruNxDDh2BK3O%2BrCIU8aUmiUcOFvy5Xw1YfjwQNlmBW2IkGwJYtxXh9%2BwDN6vYuGNX07tXzkBtjQJUWTGdzf8AIOUIVxVx5DfyWAQZ7nmYmQv6XSE; nc_sameSiteCookielax=true; nc_sameSiteCookiestrict=true", + "system": true + } + ], + "method": "PATCH", + "body": { + "mode": "raw", + "raw": "{\n\t\"status\": \"gearchiveerd\",\n\t\"lock\": \"b0623712b263aab20aaf50a3d95f8544\"\n}" + }, + "auth": { + "type": "jwt", + "jwt": [ + { + "type": "string", + "value": "{\r\n \"iss\": \"procest-admin\",\r\n \"client_id\": \"procest-admin\",\r\n \"iat\": \"1773145212\",\r\n \"user_id\": \"procest-admin\",\r\n \"user_representation\": \"\"\r\n}", + "key": "payload" + }, + { + "type": "string", + "value": "procest-admin-secret-key-for-testing", + "key": "secret" + }, + { + "type": "string", + "value": "HS256", + "key": "algorithm" + }, + { + "type": "boolean", + "value": false, + "key": "isSecretBase64Encoded" + }, + { + "type": "string", + "value": "header", + "key": "addTokenTo" + }, + { + "type": "string", + "value": "Bearer", + "key": "headerPrefix" + }, + { + "type": "string", + "value": "token", + "key": "queryParamKey" + }, + { + "type": "string", + "value": "{}", + "key": "header" + } + ] + } + }, + "response": { + "id": "4e816ba5-9852-4d9f-beec-3a02c3c7b598", + "status": "OK", + "code": 200, + "header": [ + { + "key": "Date", + "value": "Tue, 10 Mar 2026 12:20:12 GMT" + }, + { + "key": "Server", + "value": "Apache/2.4.66 (Debian)" + }, + { + "key": "X-Content-Type-Options", + "value": "nosniff" + }, + { + "key": "X-Frame-Options", + "value": "SAMEORIGIN" + }, + { + "key": "X-Permitted-Cross-Domain-Policies", + "value": "none" + }, + { + "key": "X-Robots-Tag", + "value": "noindex, nofollow" + }, + { + "key": "Referrer-Policy", + "value": "no-referrer" + }, + { + "key": "X-Powered-By", + "value": "PHP/8.3.30" + }, + { + "key": "Content-Security-Policy", + "value": "default-src 'none';base-uri 'none';manifest-src 'self';frame-ancestors 'none'" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=0217d6830d7e0d4ba180c9d64bbeca1c; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=0217d6830d7e0d4ba180c9d64bbeca1c; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=0217d6830d7e0d4ba180c9d64bbeca1c; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=0217d6830d7e0d4ba180c9d64bbeca1c; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=0217d6830d7e0d4ba180c9d64bbeca1c; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=21e9ec64eb1bd2d04f1abf4a0eaa5efd; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=21e9ec64eb1bd2d04f1abf4a0eaa5efd; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=21e9ec64eb1bd2d04f1abf4a0eaa5efd; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=21e9ec64eb1bd2d04f1abf4a0eaa5efd; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=21e9ec64eb1bd2d04f1abf4a0eaa5efd; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "X-Request-Id", + "value": "ZYZIAcusyfFH7vlsIVEc" + }, + { + "key": "Cache-Control", + "value": "no-cache, no-store, must-revalidate" + }, + { + "key": "Feature-Policy", + "value": "autoplay 'none';camera 'none';fullscreen 'none';geolocation 'none';microphone 'none';payment 'none'" + }, + { + "key": "X-User-Id", + "value": "admin" + }, + { + "key": "Content-Encoding", + "value": "gzip" + }, + { + "key": "Content-Length", + "value": "374" + }, + { + "key": "Keep-Alive", + "value": "timeout=5, max=56" + }, + { + "key": "Connection", + "value": "Keep-Alive" + }, + { + "key": "Content-Type", + "value": "application/json; charset=utf-8" + } + ], + "stream": { + "type": "Buffer", + "data": [ + 123, + 34, + 117, + 114, + 108, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 100, + 111, + 99, + 117, + 109, + 101, + 110, + 116, + 101, + 110, + 92, + 47, + 118, + 49, + 92, + 47, + 101, + 110, + 107, + 101, + 108, + 118, + 111, + 117, + 100, + 105, + 103, + 105, + 110, + 102, + 111, + 114, + 109, + 97, + 116, + 105, + 101, + 111, + 98, + 106, + 101, + 99, + 116, + 101, + 110, + 92, + 47, + 56, + 51, + 101, + 57, + 53, + 52, + 97, + 99, + 45, + 98, + 100, + 98, + 52, + 45, + 52, + 49, + 54, + 97, + 45, + 97, + 100, + 49, + 52, + 45, + 53, + 101, + 50, + 57, + 50, + 55, + 55, + 53, + 102, + 100, + 57, + 54, + 34, + 44, + 34, + 117, + 117, + 105, + 100, + 34, + 58, + 34, + 56, + 51, + 101, + 57, + 53, + 52, + 97, + 99, + 45, + 98, + 100, + 98, + 52, + 45, + 52, + 49, + 54, + 97, + 45, + 97, + 100, + 49, + 52, + 45, + 53, + 101, + 50, + 57, + 50, + 55, + 55, + 53, + 102, + 100, + 57, + 54, + 34, + 44, + 34, + 105, + 100, + 101, + 110, + 116, + 105, + 102, + 105, + 99, + 97, + 116, + 105, + 101, + 34, + 58, + 34, + 34, + 44, + 34, + 98, + 114, + 111, + 110, + 111, + 114, + 103, + 97, + 110, + 105, + 115, + 97, + 116, + 105, + 101, + 34, + 58, + 34, + 34, + 44, + 34, + 99, + 114, + 101, + 97, + 116, + 105, + 101, + 100, + 97, + 116, + 117, + 109, + 34, + 58, + 34, + 50, + 48, + 50, + 54, + 45, + 48, + 51, + 45, + 49, + 48, + 34, + 44, + 34, + 116, + 105, + 116, + 101, + 108, + 34, + 58, + 34, + 34, + 44, + 34, + 118, + 101, + 114, + 116, + 114, + 111, + 117, + 119, + 101, + 108, + 105, + 106, + 107, + 104, + 101, + 105, + 100, + 97, + 97, + 110, + 100, + 117, + 105, + 100, + 105, + 110, + 103, + 34, + 58, + 34, + 34, + 44, + 34, + 97, + 117, + 116, + 101, + 117, + 114, + 34, + 58, + 34, + 34, + 44, + 34, + 115, + 116, + 97, + 116, + 117, + 115, + 34, + 58, + 34, + 103, + 101, + 97, + 114, + 99, + 104, + 105, + 118, + 101, + 101, + 114, + 100, + 34, + 44, + 34, + 102, + 111, + 114, + 109, + 97, + 97, + 116, + 34, + 58, + 34, + 34, + 44, + 34, + 116, + 97, + 97, + 108, + 34, + 58, + 34, + 110, + 108, + 100, + 34, + 44, + 34, + 98, + 101, + 115, + 116, + 97, + 110, + 100, + 115, + 110, + 97, + 97, + 109, + 34, + 58, + 34, + 34, + 44, + 34, + 98, + 101, + 115, + 116, + 97, + 110, + 100, + 115, + 111, + 109, + 118, + 97, + 110, + 103, + 34, + 58, + 48, + 44, + 34, + 105, + 110, + 104, + 111, + 117, + 100, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 100, + 111, + 99, + 117, + 109, + 101, + 110, + 116, + 101, + 110, + 92, + 47, + 118, + 49, + 92, + 47, + 101, + 110, + 107, + 101, + 108, + 118, + 111, + 117, + 100, + 105, + 103, + 105, + 110, + 102, + 111, + 114, + 109, + 97, + 116, + 105, + 101, + 111, + 98, + 106, + 101, + 99, + 116, + 101, + 110, + 92, + 47, + 56, + 51, + 101, + 57, + 53, + 52, + 97, + 99, + 45, + 98, + 100, + 98, + 52, + 45, + 52, + 49, + 54, + 97, + 45, + 97, + 100, + 49, + 52, + 45, + 53, + 101, + 50, + 57, + 50, + 55, + 55, + 53, + 102, + 100, + 57, + 54, + 92, + 47, + 100, + 111, + 119, + 110, + 108, + 111, + 97, + 100, + 34, + 44, + 34, + 108, + 105, + 110, + 107, + 34, + 58, + 34, + 34, + 44, + 34, + 98, + 101, + 115, + 99, + 104, + 114, + 105, + 106, + 118, + 105, + 110, + 103, + 34, + 58, + 34, + 34, + 44, + 34, + 105, + 110, + 102, + 111, + 114, + 109, + 97, + 116, + 105, + 101, + 111, + 98, + 106, + 101, + 99, + 116, + 116, + 121, + 112, + 101, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 105, + 92, + 47, + 118, + 49, + 92, + 47, + 105, + 110, + 102, + 111, + 114, + 109, + 97, + 116, + 105, + 101, + 111, + 98, + 106, + 101, + 99, + 116, + 116, + 121, + 112, + 101, + 110, + 92, + 47, + 34, + 44, + 34, + 108, + 111, + 99, + 107, + 101, + 100, + 34, + 58, + 116, + 114, + 117, + 101, + 44, + 34, + 114, + 101, + 103, + 105, + 115, + 116, + 114, + 97, + 116, + 105, + 101, + 100, + 97, + 116, + 117, + 109, + 34, + 58, + 34, + 50, + 48, + 50, + 54, + 45, + 48, + 51, + 45, + 49, + 48, + 84, + 49, + 50, + 58, + 50, + 48, + 58, + 49, + 49, + 43, + 48, + 48, + 58, + 48, + 48, + 34, + 44, + 34, + 105, + 110, + 100, + 105, + 99, + 97, + 116, + 105, + 101, + 71, + 101, + 98, + 114, + 117, + 105, + 107, + 115, + 114, + 101, + 99, + 104, + 116, + 34, + 58, + 110, + 117, + 108, + 108, + 125 + ] + }, + "cookie": [], + "responseTime": 202, + "responseSize": 820 + }, + "id": "e140242a-09d1-43f4-964c-a0330d27dc69" + }, + { + "cursor": { + "ref": "370bfa32-fb8b-4d1d-aeef-dc18e3ccbc9b", + "length": 313, + "cycles": 1, + "position": 277, + "iteration": 0, + "httpRequestId": "d5df0258-c0a9-49d8-bbac-a3058cf19474" + }, + "item": { + "id": "ce7cff37-dde0-4957-8eed-414245a42660", + "name": "(zrc-022d) Zaak bijwerken archiefstatus niet nog_te_archiveren is onmogelijk als archiefnominatie niet gezet", + "request": { + "url": { + "host": [ + "{{created_zaak_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Accept-Crs", + "value": "EPSG:4326" + }, + { + "key": "Content-Crs", + "value": "EPSG:4326" + } + ], + "method": "PUT", + "body": { + "mode": "raw", + "raw": "{\r\n \"bronorganisatie\": \"000000000\",\r\n \"omschrijving\": \"string\",\r\n \"toelichting\": \"string\",\r\n \"registratiedatum\": \"2019-04-09\",\r\n \"verantwoordelijkeOrganisatie\": \"000000000\",\r\n \"zaaktype\": \"{{zaaktype_url}}\",\r\n \"startdatum\": \"2019-04-09\",\r\n \"einddatumGepland\": \"2019-04-20\",\r\n \"uiterlijkeEinddatumAfdoening\": \"2019-04-09\",\r\n \"publicatiedatum\": \"2019-04-09\",\r\n \"vertrouwelijkheidaanduiding\": \"openbaar\",\r\n \"betalingsindicatie\": \"geheel\",\r\n \"laatsteBetaalDatum\": \"2019-01-01\",\r\n \"zaakgeometrie\": {\r\n \"type\": \"Point\",\r\n \"coordinates\": [\r\n 53,\r\n 5\r\n ]\r\n },\r\n \"opschorting\": {\r\n \"indicatie\": true,\r\n \"reden\": \"string\"\r\n },\r\n \"selectielijstklasse\": \"{{selectielijstklasse_url}}\",\r\n \"archiefstatus\": \"gearchiveerd\",\r\n \"deelzaaktypen\" : [\"{{deelzaaktype_url}}\"]\r\n}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "ef6b575d-a900-4463-b9ec-e3deb1a220e8", + "type": "text/javascript", + "packages": {}, + "exec": [ + "pm.test(\"Zaak bijwerken archiefstatus zetten op niet nog_te_archiveren zonder waarde voor archiefnominatie geeft 400\", function() {", + " pm.response.to.have.status(400);", + " ", + " var error = pm.response.json()[\"invalidParams\"][0];", + " pm.expect(error.name).to.be.equal(\"archiefnominatie\");", + " pm.expect(error.code).to.be.equal(\"archiefnominatie-not-set\");", + "});" + ], + "_lastExecutionId": "263e6b70-8bb9-44ef-90da-81dc42193618" + } + }, + { + "listen": "prerequest", + "script": { + "id": "4675affa-b2f9-459d-ae11-457441b41173", + "type": "text/javascript", + "packages": {}, + "exec": [ + "" + ], + "_lastExecutionId": "f84f1f33-38b6-40cb-a640-e300917ccfa5" + } + } + ] + }, + "request": { + "url": { + "protocol": "http", + "port": "8080", + "path": [ + "index.php", + "apps", + "procest", + "api", + "zgw", + "zaken", + "v1", + "zaken", + "859464a1-c3e5-43c2-9132-60399b191383" + ], + "host": [ + "localhost" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Accept-Crs", + "value": "EPSG:4326" + }, + { + "key": "Content-Crs", + "value": "EPSG:4326" + }, + { + "key": "Authorization", + "value": "Bearer eyJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJwcm9jZXN0LWFkbWluIiwiY2xpZW50X2lkIjoicHJvY2VzdC1hZG1pbiIsImlhdCI6IjE3NzMxNDUyMTMiLCJ1c2VyX2lkIjoicHJvY2VzdC1hZG1pbiIsInVzZXJfcmVwcmVzZW50YXRpb24iOiIifQ.wDGvXBQjTr266ImTSyykgT655xhiH02I-3msC09c8HI", + "system": true + }, + { + "key": "User-Agent", + "value": "PostmanRuntime/7.39.1", + "system": true + }, + { + "key": "Accept", + "value": "*/*", + "system": true + }, + { + "key": "Cache-Control", + "value": "no-cache", + "system": true + }, + { + "key": "Postman-Token", + "value": "403a8489-7221-45dd-9334-c17e23474caa", + "system": true + }, + { + "key": "Host", + "value": "localhost:8080", + "system": true + }, + { + "key": "Accept-Encoding", + "value": "gzip, deflate, br", + "system": true + }, + { + "key": "Connection", + "value": "keep-alive", + "system": true + }, + { + "key": "Content-Length", + "value": "1119", + "system": true + }, + { + "key": "Cookie", + "value": "ocvp3112b4wg=21e9ec64eb1bd2d04f1abf4a0eaa5efd; oc_sessionPassphrase=LBNdKxRzA0iqoULIruNxDDh2BK3O%2BrCIU8aUmiUcOFvy5Xw1YfjwQNlmBW2IkGwJYtxXh9%2BwDN6vYuGNX07tXzkBtjQJUWTGdzf8AIOUIVxVx5DfyWAQZ7nmYmQv6XSE; nc_sameSiteCookielax=true; nc_sameSiteCookiestrict=true", + "system": true + } + ], + "method": "PUT", + "body": { + "mode": "raw", + "raw": "{\r\n \"bronorganisatie\": \"000000000\",\r\n \"omschrijving\": \"string\",\r\n \"toelichting\": \"string\",\r\n \"registratiedatum\": \"2019-04-09\",\r\n \"verantwoordelijkeOrganisatie\": \"000000000\",\r\n \"zaaktype\": \"http://localhost:8080/index.php/apps/procest/api/zgw/catalogi/v1/zaaktypen/4b51b099-a934-4ca7-b94d-0b97de9d75c2\",\r\n \"startdatum\": \"2019-04-09\",\r\n \"einddatumGepland\": \"2019-04-20\",\r\n \"uiterlijkeEinddatumAfdoening\": \"2019-04-09\",\r\n \"publicatiedatum\": \"2019-04-09\",\r\n \"vertrouwelijkheidaanduiding\": \"openbaar\",\r\n \"betalingsindicatie\": \"geheel\",\r\n \"laatsteBetaalDatum\": \"2019-01-01\",\r\n \"zaakgeometrie\": {\r\n \"type\": \"Point\",\r\n \"coordinates\": [\r\n 53,\r\n 5\r\n ]\r\n },\r\n \"opschorting\": {\r\n \"indicatie\": true,\r\n \"reden\": \"string\"\r\n },\r\n \"selectielijstklasse\": \"https://selectielijst.openzaak.nl/api/v1/resultaten/0eb8f19f-d55e-4a15-8b5f-26cdf07482c1\",\r\n \"archiefstatus\": \"gearchiveerd\",\r\n \"deelzaaktypen\" : [\"http://localhost:8080/index.php/apps/procest/api/zgw/catalogi/v1/zaaktypen/7571bffe-5579-4295-9fac-87a9a6b6c5ac\"]\r\n}" + }, + "auth": { + "type": "jwt", + "jwt": [ + { + "type": "string", + "value": "{\r\n \"iss\": \"procest-admin\",\r\n \"client_id\": \"procest-admin\",\r\n \"iat\": \"1773145213\",\r\n \"user_id\": \"procest-admin\",\r\n \"user_representation\": \"\"\r\n}", + "key": "payload" + }, + { + "type": "string", + "value": "procest-admin-secret-key-for-testing", + "key": "secret" + }, + { + "type": "string", + "value": "HS256", + "key": "algorithm" + }, + { + "type": "boolean", + "value": false, + "key": "isSecretBase64Encoded" + }, + { + "type": "string", + "value": "header", + "key": "addTokenTo" + }, + { + "type": "string", + "value": "Bearer", + "key": "headerPrefix" + }, + { + "type": "string", + "value": "token", + "key": "queryParamKey" + }, + { + "type": "string", + "value": "{}", + "key": "header" + } + ] + } + }, + "response": { + "id": "83ff54c6-f5c4-47a1-9fe6-ecf6718bfdc3", + "status": "Bad request", + "code": 400, + "header": [ + { + "key": "Date", + "value": "Tue, 10 Mar 2026 12:20:12 GMT" + }, + { + "key": "Server", + "value": "Apache/2.4.66 (Debian)" + }, + { + "key": "X-Content-Type-Options", + "value": "nosniff" + }, + { + "key": "X-Frame-Options", + "value": "SAMEORIGIN" + }, + { + "key": "X-Permitted-Cross-Domain-Policies", + "value": "none" + }, + { + "key": "X-Robots-Tag", + "value": "noindex, nofollow" + }, + { + "key": "Referrer-Policy", + "value": "no-referrer" + }, + { + "key": "X-Powered-By", + "value": "PHP/8.3.30" + }, + { + "key": "Content-Security-Policy", + "value": "default-src 'none';base-uri 'none';manifest-src 'self';frame-ancestors 'none'" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=21e9ec64eb1bd2d04f1abf4a0eaa5efd; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=21e9ec64eb1bd2d04f1abf4a0eaa5efd; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=21e9ec64eb1bd2d04f1abf4a0eaa5efd; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=21e9ec64eb1bd2d04f1abf4a0eaa5efd; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=21e9ec64eb1bd2d04f1abf4a0eaa5efd; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=4de51294b35ecf137f15d32d122888b2; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=4de51294b35ecf137f15d32d122888b2; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=4de51294b35ecf137f15d32d122888b2; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=4de51294b35ecf137f15d32d122888b2; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=4de51294b35ecf137f15d32d122888b2; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "X-Request-Id", + "value": "abUwMjnznaCyyyiUL2hD" + }, + { + "key": "Cache-Control", + "value": "no-cache, no-store, must-revalidate" + }, + { + "key": "Feature-Policy", + "value": "autoplay 'none';camera 'none';fullscreen 'none';geolocation 'none';microphone 'none';payment 'none'" + }, + { + "key": "X-User-Id", + "value": "admin" + }, + { + "key": "Content-Length", + "value": "189" + }, + { + "key": "Connection", + "value": "close" + }, + { + "key": "Content-Type", + "value": "application/json; charset=utf-8" + } + ], + "stream": { + "type": "Buffer", + "data": [ + 123, + 34, + 100, + 101, + 116, + 97, + 105, + 108, + 34, + 58, + 34, + 97, + 114, + 99, + 104, + 105, + 101, + 102, + 110, + 111, + 109, + 105, + 110, + 97, + 116, + 105, + 101, + 32, + 105, + 115, + 32, + 118, + 101, + 114, + 101, + 105, + 115, + 116, + 32, + 97, + 108, + 115, + 32, + 97, + 114, + 99, + 104, + 105, + 101, + 102, + 115, + 116, + 97, + 116, + 117, + 115, + 32, + 110, + 105, + 101, + 116, + 32, + 92, + 34, + 110, + 111, + 103, + 95, + 116, + 101, + 95, + 97, + 114, + 99, + 104, + 105, + 118, + 101, + 114, + 101, + 110, + 92, + 34, + 32, + 105, + 115, + 46, + 34, + 44, + 34, + 105, + 110, + 118, + 97, + 108, + 105, + 100, + 80, + 97, + 114, + 97, + 109, + 115, + 34, + 58, + 91, + 123, + 34, + 110, + 97, + 109, + 101, + 34, + 58, + 34, + 97, + 114, + 99, + 104, + 105, + 101, + 102, + 110, + 111, + 109, + 105, + 110, + 97, + 116, + 105, + 101, + 34, + 44, + 34, + 99, + 111, + 100, + 101, + 34, + 58, + 34, + 97, + 114, + 99, + 104, + 105, + 101, + 102, + 110, + 111, + 109, + 105, + 110, + 97, + 116, + 105, + 101, + 45, + 110, + 111, + 116, + 45, + 115, + 101, + 116, + 34, + 44, + 34, + 114, + 101, + 97, + 115, + 111, + 110, + 34, + 58, + 34, + 86, + 101, + 114, + 101, + 105, + 115, + 116, + 46, + 34, + 125, + 93, + 125 + ] + }, + "cookie": [], + "responseTime": 115, + "responseSize": 189 + }, + "id": "ce7cff37-dde0-4957-8eed-414245a42660", + "assertions": [ + { + "assertion": "Zaak bijwerken archiefstatus zetten op niet nog_te_archiveren zonder waarde voor archiefnominatie geeft 400", + "skipped": false + } + ] + }, + { + "cursor": { + "ref": "75c4b1b9-1801-43fc-88f4-fd969618b31b", + "length": 313, + "cycles": 1, + "position": 278, + "iteration": 0, + "httpRequestId": "e07bcd1c-02b2-4f80-9f82-6f75de79815c" + }, + "item": { + "id": "044a6ed0-60ff-4f9c-a091-bdf822fb1518", + "name": "(zrc-022e) Zaak deels bijwerken archiefstatus niet nog_te_archiveren is onmogelijk als archiefnominatie niet gezet", + "request": { + "url": { + "host": [ + "{{created_zaak_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Accept-Crs", + "value": "EPSG:4326" + }, + { + "key": "Content-Crs", + "value": "EPSG:4326" + } + ], + "method": "PATCH", + "body": { + "mode": "raw", + "raw": "{\n\t\"archiefstatus\": \"gearchiveerd\"\n}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "de75f2e5-4bce-40c5-a59f-c52d399989c1", + "type": "text/javascript", + "packages": {}, + "exec": [ + "pm.test(\"Zaak bijwerken archiefstatus zetten op niet nog_te_archiveren zonder waarde voor archiefnominatie geeft 400\", function() {", + " pm.response.to.have.status(400);", + " ", + " var error = pm.response.json()[\"invalidParams\"][0];", + " pm.expect(error.name).to.be.equal(\"archiefnominatie\");", + " pm.expect(error.code).to.be.equal(\"archiefnominatie-not-set\");", + "});" + ], + "_lastExecutionId": "cc553994-5e55-4ad6-8f33-19bad3c533ad" + } + }, + { + "listen": "prerequest", + "script": { + "id": "a6884f39-d180-4c37-9a35-cb7fa559aca0", + "type": "text/javascript", + "packages": {}, + "exec": [ + "" + ], + "_lastExecutionId": "ced34ce5-ad89-4eee-9f24-7afbe763f377" + } + } + ] + }, + "request": { + "url": { + "protocol": "http", + "port": "8080", + "path": [ + "index.php", + "apps", + "procest", + "api", + "zgw", + "zaken", + "v1", + "zaken", + "859464a1-c3e5-43c2-9132-60399b191383" + ], + "host": [ + "localhost" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Accept-Crs", + "value": "EPSG:4326" + }, + { + "key": "Content-Crs", + "value": "EPSG:4326" + }, + { + "key": "Authorization", + "value": "Bearer eyJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJwcm9jZXN0LWFkbWluIiwiY2xpZW50X2lkIjoicHJvY2VzdC1hZG1pbiIsImlhdCI6IjE3NzMxNDUyMTMiLCJ1c2VyX2lkIjoicHJvY2VzdC1hZG1pbiIsInVzZXJfcmVwcmVzZW50YXRpb24iOiIifQ.wDGvXBQjTr266ImTSyykgT655xhiH02I-3msC09c8HI", + "system": true + }, + { + "key": "User-Agent", + "value": "PostmanRuntime/7.39.1", + "system": true + }, + { + "key": "Accept", + "value": "*/*", + "system": true + }, + { + "key": "Cache-Control", + "value": "no-cache", + "system": true + }, + { + "key": "Postman-Token", + "value": "a9a1f842-294f-4a1b-b019-99732725e76c", + "system": true + }, + { + "key": "Host", + "value": "localhost:8080", + "system": true + }, + { + "key": "Accept-Encoding", + "value": "gzip, deflate, br", + "system": true + }, + { + "key": "Connection", + "value": "keep-alive", + "system": true + }, + { + "key": "Content-Length", + "value": "36", + "system": true + }, + { + "key": "Cookie", + "value": "ocvp3112b4wg=4de51294b35ecf137f15d32d122888b2; oc_sessionPassphrase=LBNdKxRzA0iqoULIruNxDDh2BK3O%2BrCIU8aUmiUcOFvy5Xw1YfjwQNlmBW2IkGwJYtxXh9%2BwDN6vYuGNX07tXzkBtjQJUWTGdzf8AIOUIVxVx5DfyWAQZ7nmYmQv6XSE; nc_sameSiteCookielax=true; nc_sameSiteCookiestrict=true", + "system": true + } + ], + "method": "PATCH", + "body": { + "mode": "raw", + "raw": "{\n\t\"archiefstatus\": \"gearchiveerd\"\n}" + }, + "auth": { + "type": "jwt", + "jwt": [ + { + "type": "string", + "value": "{\r\n \"iss\": \"procest-admin\",\r\n \"client_id\": \"procest-admin\",\r\n \"iat\": \"1773145213\",\r\n \"user_id\": \"procest-admin\",\r\n \"user_representation\": \"\"\r\n}", + "key": "payload" + }, + { + "type": "string", + "value": "procest-admin-secret-key-for-testing", + "key": "secret" + }, + { + "type": "string", + "value": "HS256", + "key": "algorithm" + }, + { + "type": "boolean", + "value": false, + "key": "isSecretBase64Encoded" + }, + { + "type": "string", + "value": "header", + "key": "addTokenTo" + }, + { + "type": "string", + "value": "Bearer", + "key": "headerPrefix" + }, + { + "type": "string", + "value": "token", + "key": "queryParamKey" + }, + { + "type": "string", + "value": "{}", + "key": "header" + } + ] + } + }, + "response": { + "id": "af6c5558-dce3-4e3f-a3b6-30c886d36b63", + "status": "Bad request", + "code": 400, + "header": [ + { + "key": "Date", + "value": "Tue, 10 Mar 2026 12:20:12 GMT" + }, + { + "key": "Server", + "value": "Apache/2.4.66 (Debian)" + }, + { + "key": "X-Content-Type-Options", + "value": "nosniff" + }, + { + "key": "X-Frame-Options", + "value": "SAMEORIGIN" + }, + { + "key": "X-Permitted-Cross-Domain-Policies", + "value": "none" + }, + { + "key": "X-Robots-Tag", + "value": "noindex, nofollow" + }, + { + "key": "Referrer-Policy", + "value": "no-referrer" + }, + { + "key": "X-Powered-By", + "value": "PHP/8.3.30" + }, + { + "key": "Content-Security-Policy", + "value": "default-src 'none';base-uri 'none';manifest-src 'self';frame-ancestors 'none'" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=4de51294b35ecf137f15d32d122888b2; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=4de51294b35ecf137f15d32d122888b2; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=4de51294b35ecf137f15d32d122888b2; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=4de51294b35ecf137f15d32d122888b2; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=4de51294b35ecf137f15d32d122888b2; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=c211692707119b6685bec8afc9e62a7a; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=c211692707119b6685bec8afc9e62a7a; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=c211692707119b6685bec8afc9e62a7a; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=c211692707119b6685bec8afc9e62a7a; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=c211692707119b6685bec8afc9e62a7a; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "X-Request-Id", + "value": "1DOsrNYKK7Fwynhvka9Y" + }, + { + "key": "Cache-Control", + "value": "no-cache, no-store, must-revalidate" + }, + { + "key": "Feature-Policy", + "value": "autoplay 'none';camera 'none';fullscreen 'none';geolocation 'none';microphone 'none';payment 'none'" + }, + { + "key": "X-User-Id", + "value": "admin" + }, + { + "key": "Content-Length", + "value": "189" + }, + { + "key": "Connection", + "value": "close" + }, + { + "key": "Content-Type", + "value": "application/json; charset=utf-8" + } + ], + "stream": { + "type": "Buffer", + "data": [ + 123, + 34, + 100, + 101, + 116, + 97, + 105, + 108, + 34, + 58, + 34, + 97, + 114, + 99, + 104, + 105, + 101, + 102, + 110, + 111, + 109, + 105, + 110, + 97, + 116, + 105, + 101, + 32, + 105, + 115, + 32, + 118, + 101, + 114, + 101, + 105, + 115, + 116, + 32, + 97, + 108, + 115, + 32, + 97, + 114, + 99, + 104, + 105, + 101, + 102, + 115, + 116, + 97, + 116, + 117, + 115, + 32, + 110, + 105, + 101, + 116, + 32, + 92, + 34, + 110, + 111, + 103, + 95, + 116, + 101, + 95, + 97, + 114, + 99, + 104, + 105, + 118, + 101, + 114, + 101, + 110, + 92, + 34, + 32, + 105, + 115, + 46, + 34, + 44, + 34, + 105, + 110, + 118, + 97, + 108, + 105, + 100, + 80, + 97, + 114, + 97, + 109, + 115, + 34, + 58, + 91, + 123, + 34, + 110, + 97, + 109, + 101, + 34, + 58, + 34, + 97, + 114, + 99, + 104, + 105, + 101, + 102, + 110, + 111, + 109, + 105, + 110, + 97, + 116, + 105, + 101, + 34, + 44, + 34, + 99, + 111, + 100, + 101, + 34, + 58, + 34, + 97, + 114, + 99, + 104, + 105, + 101, + 102, + 110, + 111, + 109, + 105, + 110, + 97, + 116, + 105, + 101, + 45, + 110, + 111, + 116, + 45, + 115, + 101, + 116, + 34, + 44, + 34, + 114, + 101, + 97, + 115, + 111, + 110, + 34, + 58, + 34, + 86, + 101, + 114, + 101, + 105, + 115, + 116, + 46, + 34, + 125, + 93, + 125 + ] + }, + "cookie": [], + "responseTime": 129, + "responseSize": 189 + }, + "id": "044a6ed0-60ff-4f9c-a091-bdf822fb1518", + "assertions": [ + { + "assertion": "Zaak bijwerken archiefstatus zetten op niet nog_te_archiveren zonder waarde voor archiefnominatie geeft 400", + "skipped": false + } + ] + }, + { + "cursor": { + "ref": "94de370e-050a-4bc0-9bc8-6a1bbeb0dee0", + "length": 313, + "cycles": 1, + "position": 279, + "iteration": 0, + "httpRequestId": "9e8102b6-221c-445f-8c57-7f7dd4a7fb2c" + }, + "item": { + "id": "c9d75eea-1a6e-4734-b9aa-3256fb49633e", + "name": "(zrc-022f) Zaak bijwerken archiefstatus niet nog_te_archiveren is onmogelijk als archiefactiedatum niet gezet", + "request": { + "url": { + "host": [ + "{{created_zaak_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Accept-Crs", + "value": "EPSG:4326" + }, + { + "key": "Content-Crs", + "value": "EPSG:4326" + } + ], + "method": "PUT", + "body": { + "mode": "raw", + "raw": "{\r\n \"bronorganisatie\": \"000000000\",\r\n \"omschrijving\": \"string\",\r\n \"toelichting\": \"string\",\r\n \"registratiedatum\": \"2019-04-09\",\r\n \"verantwoordelijkeOrganisatie\": \"000000000\",\r\n \"zaaktype\": \"{{zaaktype_url}}\",\r\n \"startdatum\": \"2019-04-09\",\r\n \"einddatumGepland\": \"2019-04-20\",\r\n \"uiterlijkeEinddatumAfdoening\": \"2019-04-09\",\r\n \"publicatiedatum\": \"2019-04-09\",\r\n \"vertrouwelijkheidaanduiding\": \"openbaar\",\r\n \"betalingsindicatie\": \"geheel\",\r\n \"laatsteBetaalDatum\": \"2019-01-01\",\r\n \"zaakgeometrie\": {\r\n \"type\": \"Point\",\r\n \"coordinates\": [\r\n 53,\r\n 5\r\n ]\r\n },\r\n \"opschorting\": {\r\n \"indicatie\": true,\r\n \"reden\": \"string\"\r\n },\r\n \"selectielijstklasse\": \"{{selectielijstklasse_url}}\",\r\n \"archiefstatus\": \"gearchiveerd\",\r\n \"archiefnominatie\": \"blijvend_bewaren\",\r\n \"deelzaaktypen\" : [\"{{deelzaaktype_url}}\"]\r\n}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "60e56cce-23be-41dc-ba0c-dcc465c9c088", + "type": "text/javascript", + "packages": {}, + "exec": [ + "pm.test(\"Zaak bijwerken archiefstatus zetten op niet nog_te_archiveren zonder waarde voor archiefactiedatum geeft 400\", function() {", + " pm.response.to.have.status(400);", + " ", + " var error = pm.response.json()[\"invalidParams\"][0];", + " pm.expect(error.name).to.be.equal(\"archiefactiedatum\");", + " pm.expect(error.code).to.be.equal(\"archiefactiedatum-not-set\");", + "});" + ], + "_lastExecutionId": "c1752598-4e0c-4ea1-82b7-b4f50e659ecc" + } + }, + { + "listen": "prerequest", + "script": { + "id": "7c9f5cda-dfd7-46e2-b976-e04434b7050e", + "type": "text/javascript", + "packages": {}, + "exec": [ + "" + ], + "_lastExecutionId": "f7924573-ad0c-4297-b833-aaf75b9b2a01" + } + } + ] + }, + "request": { + "url": { + "protocol": "http", + "port": "8080", + "path": [ + "index.php", + "apps", + "procest", + "api", + "zgw", + "zaken", + "v1", + "zaken", + "859464a1-c3e5-43c2-9132-60399b191383" + ], + "host": [ + "localhost" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Accept-Crs", + "value": "EPSG:4326" + }, + { + "key": "Content-Crs", + "value": "EPSG:4326" + }, + { + "key": "Authorization", + "value": "Bearer eyJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJwcm9jZXN0LWFkbWluIiwiY2xpZW50X2lkIjoicHJvY2VzdC1hZG1pbiIsImlhdCI6IjE3NzMxNDUyMTMiLCJ1c2VyX2lkIjoicHJvY2VzdC1hZG1pbiIsInVzZXJfcmVwcmVzZW50YXRpb24iOiIifQ.wDGvXBQjTr266ImTSyykgT655xhiH02I-3msC09c8HI", + "system": true + }, + { + "key": "User-Agent", + "value": "PostmanRuntime/7.39.1", + "system": true + }, + { + "key": "Accept", + "value": "*/*", + "system": true + }, + { + "key": "Cache-Control", + "value": "no-cache", + "system": true + }, + { + "key": "Postman-Token", + "value": "eeffe602-0f59-4cbb-afaa-d12d524cf604", + "system": true + }, + { + "key": "Host", + "value": "localhost:8080", + "system": true + }, + { + "key": "Accept-Encoding", + "value": "gzip, deflate, br", + "system": true + }, + { + "key": "Connection", + "value": "keep-alive", + "system": true + }, + { + "key": "Content-Length", + "value": "1164", + "system": true + }, + { + "key": "Cookie", + "value": "ocvp3112b4wg=c211692707119b6685bec8afc9e62a7a; oc_sessionPassphrase=LBNdKxRzA0iqoULIruNxDDh2BK3O%2BrCIU8aUmiUcOFvy5Xw1YfjwQNlmBW2IkGwJYtxXh9%2BwDN6vYuGNX07tXzkBtjQJUWTGdzf8AIOUIVxVx5DfyWAQZ7nmYmQv6XSE; nc_sameSiteCookielax=true; nc_sameSiteCookiestrict=true", + "system": true + } + ], + "method": "PUT", + "body": { + "mode": "raw", + "raw": "{\r\n \"bronorganisatie\": \"000000000\",\r\n \"omschrijving\": \"string\",\r\n \"toelichting\": \"string\",\r\n \"registratiedatum\": \"2019-04-09\",\r\n \"verantwoordelijkeOrganisatie\": \"000000000\",\r\n \"zaaktype\": \"http://localhost:8080/index.php/apps/procest/api/zgw/catalogi/v1/zaaktypen/4b51b099-a934-4ca7-b94d-0b97de9d75c2\",\r\n \"startdatum\": \"2019-04-09\",\r\n \"einddatumGepland\": \"2019-04-20\",\r\n \"uiterlijkeEinddatumAfdoening\": \"2019-04-09\",\r\n \"publicatiedatum\": \"2019-04-09\",\r\n \"vertrouwelijkheidaanduiding\": \"openbaar\",\r\n \"betalingsindicatie\": \"geheel\",\r\n \"laatsteBetaalDatum\": \"2019-01-01\",\r\n \"zaakgeometrie\": {\r\n \"type\": \"Point\",\r\n \"coordinates\": [\r\n 53,\r\n 5\r\n ]\r\n },\r\n \"opschorting\": {\r\n \"indicatie\": true,\r\n \"reden\": \"string\"\r\n },\r\n \"selectielijstklasse\": \"https://selectielijst.openzaak.nl/api/v1/resultaten/0eb8f19f-d55e-4a15-8b5f-26cdf07482c1\",\r\n \"archiefstatus\": \"gearchiveerd\",\r\n \"archiefnominatie\": \"blijvend_bewaren\",\r\n \"deelzaaktypen\" : [\"http://localhost:8080/index.php/apps/procest/api/zgw/catalogi/v1/zaaktypen/7571bffe-5579-4295-9fac-87a9a6b6c5ac\"]\r\n}" + }, + "auth": { + "type": "jwt", + "jwt": [ + { + "type": "string", + "value": "{\r\n \"iss\": \"procest-admin\",\r\n \"client_id\": \"procest-admin\",\r\n \"iat\": \"1773145213\",\r\n \"user_id\": \"procest-admin\",\r\n \"user_representation\": \"\"\r\n}", + "key": "payload" + }, + { + "type": "string", + "value": "procest-admin-secret-key-for-testing", + "key": "secret" + }, + { + "type": "string", + "value": "HS256", + "key": "algorithm" + }, + { + "type": "boolean", + "value": false, + "key": "isSecretBase64Encoded" + }, + { + "type": "string", + "value": "header", + "key": "addTokenTo" + }, + { + "type": "string", + "value": "Bearer", + "key": "headerPrefix" + }, + { + "type": "string", + "value": "token", + "key": "queryParamKey" + }, + { + "type": "string", + "value": "{}", + "key": "header" + } + ] + } + }, + "response": { + "id": "317bb589-328f-4fd9-9d86-f1d95d8cfddd", + "status": "Bad request", + "code": 400, + "header": [ + { + "key": "Date", + "value": "Tue, 10 Mar 2026 12:20:12 GMT" + }, + { + "key": "Server", + "value": "Apache/2.4.66 (Debian)" + }, + { + "key": "X-Content-Type-Options", + "value": "nosniff" + }, + { + "key": "X-Frame-Options", + "value": "SAMEORIGIN" + }, + { + "key": "X-Permitted-Cross-Domain-Policies", + "value": "none" + }, + { + "key": "X-Robots-Tag", + "value": "noindex, nofollow" + }, + { + "key": "Referrer-Policy", + "value": "no-referrer" + }, + { + "key": "X-Powered-By", + "value": "PHP/8.3.30" + }, + { + "key": "Content-Security-Policy", + "value": "default-src 'none';base-uri 'none';manifest-src 'self';frame-ancestors 'none'" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=c211692707119b6685bec8afc9e62a7a; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=c211692707119b6685bec8afc9e62a7a; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=c211692707119b6685bec8afc9e62a7a; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=c211692707119b6685bec8afc9e62a7a; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=c211692707119b6685bec8afc9e62a7a; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=77d1114c2aa877a803bd220352ba6277; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=77d1114c2aa877a803bd220352ba6277; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=77d1114c2aa877a803bd220352ba6277; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=77d1114c2aa877a803bd220352ba6277; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=77d1114c2aa877a803bd220352ba6277; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "X-Request-Id", + "value": "cTMQ7m6RRpSi91HvRSXu" + }, + { + "key": "Cache-Control", + "value": "no-cache, no-store, must-revalidate" + }, + { + "key": "Feature-Policy", + "value": "autoplay 'none';camera 'none';fullscreen 'none';geolocation 'none';microphone 'none';payment 'none'" + }, + { + "key": "X-User-Id", + "value": "admin" + }, + { + "key": "Content-Length", + "value": "192" + }, + { + "key": "Connection", + "value": "close" + }, + { + "key": "Content-Type", + "value": "application/json; charset=utf-8" + } + ], + "stream": { + "type": "Buffer", + "data": [ + 123, + 34, + 100, + 101, + 116, + 97, + 105, + 108, + 34, + 58, + 34, + 97, + 114, + 99, + 104, + 105, + 101, + 102, + 97, + 99, + 116, + 105, + 101, + 100, + 97, + 116, + 117, + 109, + 32, + 105, + 115, + 32, + 118, + 101, + 114, + 101, + 105, + 115, + 116, + 32, + 97, + 108, + 115, + 32, + 97, + 114, + 99, + 104, + 105, + 101, + 102, + 115, + 116, + 97, + 116, + 117, + 115, + 32, + 110, + 105, + 101, + 116, + 32, + 92, + 34, + 110, + 111, + 103, + 95, + 116, + 101, + 95, + 97, + 114, + 99, + 104, + 105, + 118, + 101, + 114, + 101, + 110, + 92, + 34, + 32, + 105, + 115, + 46, + 34, + 44, + 34, + 105, + 110, + 118, + 97, + 108, + 105, + 100, + 80, + 97, + 114, + 97, + 109, + 115, + 34, + 58, + 91, + 123, + 34, + 110, + 97, + 109, + 101, + 34, + 58, + 34, + 97, + 114, + 99, + 104, + 105, + 101, + 102, + 97, + 99, + 116, + 105, + 101, + 100, + 97, + 116, + 117, + 109, + 34, + 44, + 34, + 99, + 111, + 100, + 101, + 34, + 58, + 34, + 97, + 114, + 99, + 104, + 105, + 101, + 102, + 97, + 99, + 116, + 105, + 101, + 100, + 97, + 116, + 117, + 109, + 45, + 110, + 111, + 116, + 45, + 115, + 101, + 116, + 34, + 44, + 34, + 114, + 101, + 97, + 115, + 111, + 110, + 34, + 58, + 34, + 86, + 101, + 114, + 101, + 105, + 115, + 116, + 46, + 34, + 125, + 93, + 125 + ] + }, + "cookie": [], + "responseTime": 117, + "responseSize": 192 + }, + "id": "c9d75eea-1a6e-4734-b9aa-3256fb49633e", + "assertions": [ + { + "assertion": "Zaak bijwerken archiefstatus zetten op niet nog_te_archiveren zonder waarde voor archiefactiedatum geeft 400", + "skipped": false + } + ] + }, + { + "cursor": { + "ref": "cac777f9-0df7-4a4a-9fa4-1569aa440740", + "length": 313, + "cycles": 1, + "position": 280, + "iteration": 0, + "httpRequestId": "68291005-b297-4d0d-abbb-1ee989b73454" + }, + "item": { + "id": "e44b8bfe-e16d-4ff5-b82a-57506979ccd6", + "name": "(zrc-022g) Zaak deels bijwerken archiefstatus niet nog_te_archiveren is onmogelijk als archiefactiedatum niet gezet", + "request": { + "url": { + "host": [ + "{{created_zaak_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Accept-Crs", + "value": "EPSG:4326" + }, + { + "key": "Content-Crs", + "value": "EPSG:4326" + } + ], + "method": "PATCH", + "body": { + "mode": "raw", + "raw": "{\n\t\"archiefstatus\": \"gearchiveerd\",\n\t\"archiefnominatie\": \"blijvend_bewaren\"\n}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "6eb56452-c68a-4c72-b0cb-8fbe09bcaad4", + "type": "text/javascript", + "packages": {}, + "exec": [ + "pm.test(\"Zaak deels bijwerken archiefstatus zetten op niet nog_te_archiveren zonder waarde voor archiefactiedatum geeft 400\", function() {", + " pm.response.to.have.status(400);", + " ", + " var error = pm.response.json()[\"invalidParams\"][0];", + " pm.expect(error.name).to.be.equal(\"archiefactiedatum\");", + " pm.expect(error.code).to.be.equal(\"archiefactiedatum-not-set\");", + "});" + ], + "_lastExecutionId": "2f8d0ac4-8de1-4688-90d1-2e35510da684" + } + }, + { + "listen": "prerequest", + "script": { + "id": "742e3f08-0d71-49a3-ae72-98fcd6838124", + "type": "text/javascript", + "packages": {}, + "exec": [ + "" + ], + "_lastExecutionId": "191582d7-bd05-4d0a-9f5e-0644dd6f7e1a" + } + } + ] + }, + "request": { + "url": { + "protocol": "http", + "port": "8080", + "path": [ + "index.php", + "apps", + "procest", + "api", + "zgw", + "zaken", + "v1", + "zaken", + "859464a1-c3e5-43c2-9132-60399b191383" + ], + "host": [ + "localhost" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Accept-Crs", + "value": "EPSG:4326" + }, + { + "key": "Content-Crs", + "value": "EPSG:4326" + }, + { + "key": "Authorization", + "value": "Bearer eyJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJwcm9jZXN0LWFkbWluIiwiY2xpZW50X2lkIjoicHJvY2VzdC1hZG1pbiIsImlhdCI6IjE3NzMxNDUyMTMiLCJ1c2VyX2lkIjoicHJvY2VzdC1hZG1pbiIsInVzZXJfcmVwcmVzZW50YXRpb24iOiIifQ.wDGvXBQjTr266ImTSyykgT655xhiH02I-3msC09c8HI", + "system": true + }, + { + "key": "User-Agent", + "value": "PostmanRuntime/7.39.1", + "system": true + }, + { + "key": "Accept", + "value": "*/*", + "system": true + }, + { + "key": "Cache-Control", + "value": "no-cache", + "system": true + }, + { + "key": "Postman-Token", + "value": "e4abd5d1-3564-42cd-a1ef-57166faa8e02", + "system": true + }, + { + "key": "Host", + "value": "localhost:8080", + "system": true + }, + { + "key": "Accept-Encoding", + "value": "gzip, deflate, br", + "system": true + }, + { + "key": "Connection", + "value": "keep-alive", + "system": true + }, + { + "key": "Content-Length", + "value": "77", + "system": true + }, + { + "key": "Cookie", + "value": "ocvp3112b4wg=77d1114c2aa877a803bd220352ba6277; oc_sessionPassphrase=LBNdKxRzA0iqoULIruNxDDh2BK3O%2BrCIU8aUmiUcOFvy5Xw1YfjwQNlmBW2IkGwJYtxXh9%2BwDN6vYuGNX07tXzkBtjQJUWTGdzf8AIOUIVxVx5DfyWAQZ7nmYmQv6XSE; nc_sameSiteCookielax=true; nc_sameSiteCookiestrict=true", + "system": true + } + ], + "method": "PATCH", + "body": { + "mode": "raw", + "raw": "{\n\t\"archiefstatus\": \"gearchiveerd\",\n\t\"archiefnominatie\": \"blijvend_bewaren\"\n}" + }, + "auth": { + "type": "jwt", + "jwt": [ + { + "type": "string", + "value": "{\r\n \"iss\": \"procest-admin\",\r\n \"client_id\": \"procest-admin\",\r\n \"iat\": \"1773145213\",\r\n \"user_id\": \"procest-admin\",\r\n \"user_representation\": \"\"\r\n}", + "key": "payload" + }, + { + "type": "string", + "value": "procest-admin-secret-key-for-testing", + "key": "secret" + }, + { + "type": "string", + "value": "HS256", + "key": "algorithm" + }, + { + "type": "boolean", + "value": false, + "key": "isSecretBase64Encoded" + }, + { + "type": "string", + "value": "header", + "key": "addTokenTo" + }, + { + "type": "string", + "value": "Bearer", + "key": "headerPrefix" + }, + { + "type": "string", + "value": "token", + "key": "queryParamKey" + }, + { + "type": "string", + "value": "{}", + "key": "header" + } + ] + } + }, + "response": { + "id": "18f10b9f-3a93-47a0-aa0f-8bbaed352730", + "status": "Bad request", + "code": 400, + "header": [ + { + "key": "Date", + "value": "Tue, 10 Mar 2026 12:20:13 GMT" + }, + { + "key": "Server", + "value": "Apache/2.4.66 (Debian)" + }, + { + "key": "X-Content-Type-Options", + "value": "nosniff" + }, + { + "key": "X-Frame-Options", + "value": "SAMEORIGIN" + }, + { + "key": "X-Permitted-Cross-Domain-Policies", + "value": "none" + }, + { + "key": "X-Robots-Tag", + "value": "noindex, nofollow" + }, + { + "key": "Referrer-Policy", + "value": "no-referrer" + }, + { + "key": "X-Powered-By", + "value": "PHP/8.3.30" + }, + { + "key": "Content-Security-Policy", + "value": "default-src 'none';base-uri 'none';manifest-src 'self';frame-ancestors 'none'" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=77d1114c2aa877a803bd220352ba6277; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=77d1114c2aa877a803bd220352ba6277; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=77d1114c2aa877a803bd220352ba6277; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=77d1114c2aa877a803bd220352ba6277; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=77d1114c2aa877a803bd220352ba6277; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=80d09b2f0233857aeca02a64989723da; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=80d09b2f0233857aeca02a64989723da; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=80d09b2f0233857aeca02a64989723da; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=80d09b2f0233857aeca02a64989723da; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=80d09b2f0233857aeca02a64989723da; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "X-Request-Id", + "value": "UXiLaJMAFSDZ9frn1ahM" + }, + { + "key": "Cache-Control", + "value": "no-cache, no-store, must-revalidate" + }, + { + "key": "Feature-Policy", + "value": "autoplay 'none';camera 'none';fullscreen 'none';geolocation 'none';microphone 'none';payment 'none'" + }, + { + "key": "X-User-Id", + "value": "admin" + }, + { + "key": "Content-Length", + "value": "192" + }, + { + "key": "Connection", + "value": "close" + }, + { + "key": "Content-Type", + "value": "application/json; charset=utf-8" + } + ], + "stream": { + "type": "Buffer", + "data": [ + 123, + 34, + 100, + 101, + 116, + 97, + 105, + 108, + 34, + 58, + 34, + 97, + 114, + 99, + 104, + 105, + 101, + 102, + 97, + 99, + 116, + 105, + 101, + 100, + 97, + 116, + 117, + 109, + 32, + 105, + 115, + 32, + 118, + 101, + 114, + 101, + 105, + 115, + 116, + 32, + 97, + 108, + 115, + 32, + 97, + 114, + 99, + 104, + 105, + 101, + 102, + 115, + 116, + 97, + 116, + 117, + 115, + 32, + 110, + 105, + 101, + 116, + 32, + 92, + 34, + 110, + 111, + 103, + 95, + 116, + 101, + 95, + 97, + 114, + 99, + 104, + 105, + 118, + 101, + 114, + 101, + 110, + 92, + 34, + 32, + 105, + 115, + 46, + 34, + 44, + 34, + 105, + 110, + 118, + 97, + 108, + 105, + 100, + 80, + 97, + 114, + 97, + 109, + 115, + 34, + 58, + 91, + 123, + 34, + 110, + 97, + 109, + 101, + 34, + 58, + 34, + 97, + 114, + 99, + 104, + 105, + 101, + 102, + 97, + 99, + 116, + 105, + 101, + 100, + 97, + 116, + 117, + 109, + 34, + 44, + 34, + 99, + 111, + 100, + 101, + 34, + 58, + 34, + 97, + 114, + 99, + 104, + 105, + 101, + 102, + 97, + 99, + 116, + 105, + 101, + 100, + 97, + 116, + 117, + 109, + 45, + 110, + 111, + 116, + 45, + 115, + 101, + 116, + 34, + 44, + 34, + 114, + 101, + 97, + 115, + 111, + 110, + 34, + 58, + 34, + 86, + 101, + 114, + 101, + 105, + 115, + 116, + 46, + 34, + 125, + 93, + 125 + ] + }, + "cookie": [], + "responseTime": 134, + "responseSize": 192 + }, + "id": "e44b8bfe-e16d-4ff5-b82a-57506979ccd6", + "assertions": [ + { + "assertion": "Zaak deels bijwerken archiefstatus zetten op niet nog_te_archiveren zonder waarde voor archiefactiedatum geeft 400", + "skipped": false + } + ] + }, + { + "cursor": { + "ref": "683bb8a6-58a9-44ce-91ca-8e8333619ecf", + "length": 313, + "cycles": 1, + "position": 281, + "iteration": 0, + "httpRequestId": "bf9801ff-6801-4fa0-a070-69cb31985caf" + }, + "item": { + "id": "c7424392-ea43-4411-bd82-f6d4f4166d1c", + "name": "(zrc-022h) Zaak bijwerken archiefstatus niet nog_te_archiveren is mogelijk", + "request": { + "url": { + "host": [ + "{{created_zaak_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Accept-Crs", + "value": "EPSG:4326" + }, + { + "key": "Content-Crs", + "value": "EPSG:4326" + } + ], + "method": "PUT", + "body": { + "mode": "raw", + "raw": "{\r\n \"bronorganisatie\": \"000000000\",\r\n \"omschrijving\": \"string\",\r\n \"toelichting\": \"string\",\r\n \"registratiedatum\": \"2019-04-09\",\r\n \"verantwoordelijkeOrganisatie\": \"000000000\",\r\n \"zaaktype\": \"{{zaaktype_url}}\",\r\n \"startdatum\": \"2019-04-09\",\r\n \"einddatumGepland\": \"2019-04-20\",\r\n \"uiterlijkeEinddatumAfdoening\": \"2019-04-09\",\r\n \"publicatiedatum\": \"2019-04-09\",\r\n \"vertrouwelijkheidaanduiding\": \"openbaar\",\r\n \"betalingsindicatie\": \"geheel\",\r\n \"laatsteBetaalDatum\": \"2019-01-01\",\r\n \"zaakgeometrie\": {\r\n \"type\": \"Point\",\r\n \"coordinates\": [\r\n 53,\r\n 5\r\n ]\r\n },\r\n \"opschorting\": {\r\n \"indicatie\": true,\r\n \"reden\": \"string\"\r\n },\r\n \"selectielijstklasse\": \"{{selectielijstklasse_url}}\",\r\n \"archiefstatus\": \"gearchiveerd\",\r\n \"archiefnominatie\": \"blijvend_bewaren\",\r\n \"archiefactiedatum\": \"2020-01-01\",\r\n \"deelzaaktypen\": [\r\n \"{{deelzaaktype_url}}\"\r\n ]\r\n}" + } + }, + "response": [], + "event": [ + { + "listen": "prerequest", + "script": { + "id": "e64d5643-2a93-42da-b671-3b955a17da7a", + "type": "text/javascript", + "packages": {}, + "exec": [ + "" + ], + "_lastExecutionId": "d922aa95-879d-47c1-8f74-209d2b67d84c" + } + }, + { + "listen": "test", + "script": { + "id": "7a91d266-8998-4a99-9927-efcedc595087", + "type": "text/javascript", + "packages": {}, + "exec": [ + "pm.test(\"Zaak bijwerken archiefstatus zetten op niet nog_te_archiveren met archiefactiedatum en archiefnominatie gezet geef 200\", function() {", + " pm.response.to.have.status(200);", + " pm.expect(pm.response.json().archiefstatus).to.be.equal(\"gearchiveerd\");", + "});", + "", + "" + ], + "_lastExecutionId": "60ea973d-28d4-466b-96e0-6ec824ac82bb" + } + } + ] + }, + "request": { + "url": { + "protocol": "http", + "port": "8080", + "path": [ + "index.php", + "apps", + "procest", + "api", + "zgw", + "zaken", + "v1", + "zaken", + "859464a1-c3e5-43c2-9132-60399b191383" + ], + "host": [ + "localhost" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Accept-Crs", + "value": "EPSG:4326" + }, + { + "key": "Content-Crs", + "value": "EPSG:4326" + }, + { + "key": "Authorization", + "value": "Bearer eyJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJwcm9jZXN0LWFkbWluIiwiY2xpZW50X2lkIjoicHJvY2VzdC1hZG1pbiIsImlhdCI6IjE3NzMxNDUyMTMiLCJ1c2VyX2lkIjoicHJvY2VzdC1hZG1pbiIsInVzZXJfcmVwcmVzZW50YXRpb24iOiIifQ.wDGvXBQjTr266ImTSyykgT655xhiH02I-3msC09c8HI", + "system": true + }, + { + "key": "User-Agent", + "value": "PostmanRuntime/7.39.1", + "system": true + }, + { + "key": "Accept", + "value": "*/*", + "system": true + }, + { + "key": "Cache-Control", + "value": "no-cache", + "system": true + }, + { + "key": "Postman-Token", + "value": "cf34be6a-634d-4d9b-93d3-912baceec5bd", + "system": true + }, + { + "key": "Host", + "value": "localhost:8080", + "system": true + }, + { + "key": "Accept-Encoding", + "value": "gzip, deflate, br", + "system": true + }, + { + "key": "Connection", + "value": "keep-alive", + "system": true + }, + { + "key": "Content-Length", + "value": "1219", + "system": true + }, + { + "key": "Cookie", + "value": "ocvp3112b4wg=80d09b2f0233857aeca02a64989723da; oc_sessionPassphrase=LBNdKxRzA0iqoULIruNxDDh2BK3O%2BrCIU8aUmiUcOFvy5Xw1YfjwQNlmBW2IkGwJYtxXh9%2BwDN6vYuGNX07tXzkBtjQJUWTGdzf8AIOUIVxVx5DfyWAQZ7nmYmQv6XSE; nc_sameSiteCookielax=true; nc_sameSiteCookiestrict=true", + "system": true + } + ], + "method": "PUT", + "body": { + "mode": "raw", + "raw": "{\r\n \"bronorganisatie\": \"000000000\",\r\n \"omschrijving\": \"string\",\r\n \"toelichting\": \"string\",\r\n \"registratiedatum\": \"2019-04-09\",\r\n \"verantwoordelijkeOrganisatie\": \"000000000\",\r\n \"zaaktype\": \"http://localhost:8080/index.php/apps/procest/api/zgw/catalogi/v1/zaaktypen/4b51b099-a934-4ca7-b94d-0b97de9d75c2\",\r\n \"startdatum\": \"2019-04-09\",\r\n \"einddatumGepland\": \"2019-04-20\",\r\n \"uiterlijkeEinddatumAfdoening\": \"2019-04-09\",\r\n \"publicatiedatum\": \"2019-04-09\",\r\n \"vertrouwelijkheidaanduiding\": \"openbaar\",\r\n \"betalingsindicatie\": \"geheel\",\r\n \"laatsteBetaalDatum\": \"2019-01-01\",\r\n \"zaakgeometrie\": {\r\n \"type\": \"Point\",\r\n \"coordinates\": [\r\n 53,\r\n 5\r\n ]\r\n },\r\n \"opschorting\": {\r\n \"indicatie\": true,\r\n \"reden\": \"string\"\r\n },\r\n \"selectielijstklasse\": \"https://selectielijst.openzaak.nl/api/v1/resultaten/0eb8f19f-d55e-4a15-8b5f-26cdf07482c1\",\r\n \"archiefstatus\": \"gearchiveerd\",\r\n \"archiefnominatie\": \"blijvend_bewaren\",\r\n \"archiefactiedatum\": \"2020-01-01\",\r\n \"deelzaaktypen\": [\r\n \"http://localhost:8080/index.php/apps/procest/api/zgw/catalogi/v1/zaaktypen/7571bffe-5579-4295-9fac-87a9a6b6c5ac\"\r\n ]\r\n}" + }, + "auth": { + "type": "jwt", + "jwt": [ + { + "type": "string", + "value": "{\r\n \"iss\": \"procest-admin\",\r\n \"client_id\": \"procest-admin\",\r\n \"iat\": \"1773145213\",\r\n \"user_id\": \"procest-admin\",\r\n \"user_representation\": \"\"\r\n}", + "key": "payload" + }, + { + "type": "string", + "value": "procest-admin-secret-key-for-testing", + "key": "secret" + }, + { + "type": "string", + "value": "HS256", + "key": "algorithm" + }, + { + "type": "boolean", + "value": false, + "key": "isSecretBase64Encoded" + }, + { + "type": "string", + "value": "header", + "key": "addTokenTo" + }, + { + "type": "string", + "value": "Bearer", + "key": "headerPrefix" + }, + { + "type": "string", + "value": "token", + "key": "queryParamKey" + }, + { + "type": "string", + "value": "{}", + "key": "header" + } + ] + } + }, + "response": { + "id": "e1fa56db-493b-4d8c-ae2a-87745176da7b", + "status": "OK", + "code": 200, + "header": [ + { + "key": "Date", + "value": "Tue, 10 Mar 2026 12:20:13 GMT" + }, + { + "key": "Server", + "value": "Apache/2.4.66 (Debian)" + }, + { + "key": "X-Content-Type-Options", + "value": "nosniff" + }, + { + "key": "X-Frame-Options", + "value": "SAMEORIGIN" + }, + { + "key": "X-Permitted-Cross-Domain-Policies", + "value": "none" + }, + { + "key": "X-Robots-Tag", + "value": "noindex, nofollow" + }, + { + "key": "Referrer-Policy", + "value": "no-referrer" + }, + { + "key": "X-Powered-By", + "value": "PHP/8.3.30" + }, + { + "key": "Content-Security-Policy", + "value": "default-src 'none';base-uri 'none';manifest-src 'self';frame-ancestors 'none'" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=80d09b2f0233857aeca02a64989723da; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=80d09b2f0233857aeca02a64989723da; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=80d09b2f0233857aeca02a64989723da; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=80d09b2f0233857aeca02a64989723da; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=80d09b2f0233857aeca02a64989723da; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=faf4c82abc4caa20803a4003eba349a3; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=faf4c82abc4caa20803a4003eba349a3; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=faf4c82abc4caa20803a4003eba349a3; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=faf4c82abc4caa20803a4003eba349a3; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=faf4c82abc4caa20803a4003eba349a3; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "X-Request-Id", + "value": "RdH1U06GniC3xnUwA0yz" + }, + { + "key": "Cache-Control", + "value": "no-cache, no-store, must-revalidate" + }, + { + "key": "Feature-Policy", + "value": "autoplay 'none';camera 'none';fullscreen 'none';geolocation 'none';microphone 'none';payment 'none'" + }, + { + "key": "X-User-Id", + "value": "admin" + }, + { + "key": "Content-Encoding", + "value": "gzip" + }, + { + "key": "Content-Length", + "value": "431" + }, + { + "key": "Keep-Alive", + "value": "timeout=5, max=100" + }, + { + "key": "Connection", + "value": "Keep-Alive" + }, + { + "key": "Content-Type", + "value": "application/json; charset=utf-8" + } + ], + "stream": { + "type": "Buffer", + "data": [ + 123, + 34, + 117, + 114, + 108, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 122, + 97, + 107, + 101, + 110, + 92, + 47, + 118, + 49, + 92, + 47, + 122, + 97, + 107, + 101, + 110, + 92, + 47, + 56, + 53, + 57, + 52, + 54, + 52, + 97, + 49, + 45, + 99, + 51, + 101, + 53, + 45, + 52, + 51, + 99, + 50, + 45, + 57, + 49, + 51, + 50, + 45, + 54, + 48, + 51, + 57, + 57, + 98, + 49, + 57, + 49, + 51, + 56, + 51, + 34, + 44, + 34, + 117, + 117, + 105, + 100, + 34, + 58, + 34, + 56, + 53, + 57, + 52, + 54, + 52, + 97, + 49, + 45, + 99, + 51, + 101, + 53, + 45, + 52, + 51, + 99, + 50, + 45, + 57, + 49, + 51, + 50, + 45, + 54, + 48, + 51, + 57, + 57, + 98, + 49, + 57, + 49, + 51, + 56, + 51, + 34, + 44, + 34, + 105, + 100, + 101, + 110, + 116, + 105, + 102, + 105, + 99, + 97, + 116, + 105, + 101, + 34, + 58, + 34, + 34, + 44, + 34, + 111, + 109, + 115, + 99, + 104, + 114, + 105, + 106, + 118, + 105, + 110, + 103, + 34, + 58, + 34, + 115, + 116, + 114, + 105, + 110, + 103, + 34, + 44, + 34, + 116, + 111, + 101, + 108, + 105, + 99, + 104, + 116, + 105, + 110, + 103, + 34, + 58, + 34, + 115, + 116, + 114, + 105, + 110, + 103, + 34, + 44, + 34, + 122, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 105, + 92, + 47, + 118, + 49, + 92, + 47, + 122, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 110, + 92, + 47, + 52, + 98, + 53, + 49, + 98, + 48, + 57, + 57, + 45, + 97, + 57, + 51, + 52, + 45, + 52, + 99, + 97, + 55, + 45, + 98, + 57, + 52, + 100, + 45, + 48, + 98, + 57, + 55, + 100, + 101, + 57, + 100, + 55, + 53, + 99, + 50, + 34, + 44, + 34, + 114, + 101, + 103, + 105, + 115, + 116, + 114, + 97, + 116, + 105, + 101, + 100, + 97, + 116, + 117, + 109, + 34, + 58, + 34, + 50, + 48, + 50, + 54, + 45, + 48, + 51, + 45, + 49, + 48, + 84, + 49, + 50, + 58, + 50, + 48, + 58, + 49, + 48, + 43, + 48, + 48, + 58, + 48, + 48, + 34, + 44, + 34, + 115, + 116, + 97, + 114, + 116, + 100, + 97, + 116, + 117, + 109, + 34, + 58, + 34, + 50, + 48, + 49, + 57, + 45, + 48, + 52, + 45, + 48, + 57, + 34, + 44, + 34, + 101, + 105, + 110, + 100, + 100, + 97, + 116, + 117, + 109, + 34, + 58, + 110, + 117, + 108, + 108, + 44, + 34, + 101, + 105, + 110, + 100, + 100, + 97, + 116, + 117, + 109, + 71, + 101, + 112, + 108, + 97, + 110, + 100, + 34, + 58, + 34, + 50, + 48, + 49, + 57, + 45, + 48, + 52, + 45, + 50, + 48, + 34, + 44, + 34, + 117, + 105, + 116, + 101, + 114, + 108, + 105, + 106, + 107, + 101, + 69, + 105, + 110, + 100, + 100, + 97, + 116, + 117, + 109, + 65, + 102, + 100, + 111, + 101, + 110, + 105, + 110, + 103, + 34, + 58, + 34, + 50, + 48, + 49, + 57, + 45, + 48, + 52, + 45, + 48, + 57, + 34, + 44, + 34, + 118, + 101, + 114, + 116, + 114, + 111, + 117, + 119, + 101, + 108, + 105, + 106, + 107, + 104, + 101, + 105, + 100, + 97, + 97, + 110, + 100, + 117, + 105, + 100, + 105, + 110, + 103, + 34, + 58, + 34, + 111, + 112, + 101, + 110, + 98, + 97, + 97, + 114, + 34, + 44, + 34, + 118, + 101, + 114, + 97, + 110, + 116, + 119, + 111, + 111, + 114, + 100, + 101, + 108, + 105, + 106, + 107, + 101, + 79, + 114, + 103, + 97, + 110, + 105, + 115, + 97, + 116, + 105, + 101, + 34, + 58, + 34, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 34, + 44, + 34, + 97, + 114, + 99, + 104, + 105, + 101, + 102, + 110, + 111, + 109, + 105, + 110, + 97, + 116, + 105, + 101, + 34, + 58, + 34, + 98, + 108, + 105, + 106, + 118, + 101, + 110, + 100, + 95, + 98, + 101, + 119, + 97, + 114, + 101, + 110, + 34, + 44, + 34, + 97, + 114, + 99, + 104, + 105, + 101, + 102, + 97, + 99, + 116, + 105, + 101, + 100, + 97, + 116, + 117, + 109, + 34, + 58, + 34, + 50, + 48, + 50, + 48, + 45, + 48, + 49, + 45, + 48, + 49, + 34, + 44, + 34, + 97, + 114, + 99, + 104, + 105, + 101, + 102, + 115, + 116, + 97, + 116, + 117, + 115, + 34, + 58, + 34, + 103, + 101, + 97, + 114, + 99, + 104, + 105, + 118, + 101, + 101, + 114, + 100, + 34, + 44, + 34, + 98, + 101, + 116, + 97, + 108, + 105, + 110, + 103, + 115, + 105, + 110, + 100, + 105, + 99, + 97, + 116, + 105, + 101, + 34, + 58, + 34, + 103, + 101, + 104, + 101, + 101, + 108, + 34, + 44, + 34, + 108, + 97, + 97, + 116, + 115, + 116, + 101, + 66, + 101, + 116, + 97, + 97, + 108, + 100, + 97, + 116, + 117, + 109, + 34, + 58, + 110, + 117, + 108, + 108, + 44, + 34, + 104, + 111, + 111, + 102, + 100, + 122, + 97, + 97, + 107, + 34, + 58, + 110, + 117, + 108, + 108, + 125 + ] + }, + "cookie": [], + "responseTime": 181, + "responseSize": 798 + }, + "id": "c7424392-ea43-4411-bd82-f6d4f4166d1c", + "assertions": [ + { + "assertion": "Zaak bijwerken archiefstatus zetten op niet nog_te_archiveren met archiefactiedatum en archiefnominatie gezet geef 200", + "skipped": false + } + ] + }, + { + "cursor": { + "ref": "0aa5a2db-1bf1-4022-a39b-4e4ec2d6769b", + "length": 313, + "cycles": 1, + "position": 282, + "iteration": 0, + "httpRequestId": "9d8f78ed-3a72-4e4a-8679-92d5be6ada4d" + }, + "item": { + "id": "75dd0e70-0157-43f8-99f3-963b25aa3aa0", + "name": "Create InformatieObjecttype Copy", + "request": { + "url": { + "path": [ + "informatieobjecttypen" + ], + "host": [ + "{{ztc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n\t\"catalogus\": \"{{catalogus_url}}\",\n\t\"omschrijving\": \"{{informatieobject_omschrijving}}\",\n\t\"vertrouwelijkheidaanduiding\": \"openbaar\",\n\t\"beginGeldigheid\": \"2019-01-01\",\n\t\"informatieobjectcategorie\": \"document\"\n}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "90fcb3e9-03db-4a09-b2e9-54c9ff89bd01", + "type": "text/javascript", + "packages": {}, + "exec": [ + "if(pm.response.code == 201) {\r", + " pm.environment.set(\"informatieobjecttype_url\", pm.response.json().url);\r", + "}" + ], + "_lastExecutionId": "6e32b2d2-465f-42ef-8da0-85458332a158" + } + }, + { + "listen": "prerequest", + "script": { + "id": "755a120b-ceb5-4e65-85e7-857659116cac", + "type": "text/javascript", + "packages": {}, + "exec": [ + "var uuid = require('uuid');\r", + "var myUUID = uuid.v4(); \r", + "pm.environment.set(\"informatieobject_omschrijving\", myUUID);" + ], + "_lastExecutionId": "5191ef1d-52d7-456c-a0fc-ac32d03a827d" + } + } + ] + }, + "request": { + "url": { + "protocol": "http", + "port": "8080", + "path": [ + "index.php", + "apps", + "procest", + "api", + "zgw", + "catalogi", + "v1", + "informatieobjecttypen" + ], + "host": [ + "localhost" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Authorization", + "value": "Bearer eyJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJwcm9jZXN0LWFkbWluIiwiY2xpZW50X2lkIjoicHJvY2VzdC1hZG1pbiIsImlhdCI6IjE3NzMxNDUyMTMiLCJ1c2VyX2lkIjoicHJvY2VzdC1hZG1pbiIsInVzZXJfcmVwcmVzZW50YXRpb24iOiIifQ.wDGvXBQjTr266ImTSyykgT655xhiH02I-3msC09c8HI", + "system": true + }, + { + "key": "User-Agent", + "value": "PostmanRuntime/7.39.1", + "system": true + }, + { + "key": "Accept", + "value": "*/*", + "system": true + }, + { + "key": "Cache-Control", + "value": "no-cache", + "system": true + }, + { + "key": "Postman-Token", + "value": "c82b28d4-3406-445f-82a5-1b1556a2c326", + "system": true + }, + { + "key": "Host", + "value": "localhost:8080", + "system": true + }, + { + "key": "Accept-Encoding", + "value": "gzip, deflate, br", + "system": true + }, + { + "key": "Connection", + "value": "keep-alive", + "system": true + }, + { + "key": "Content-Length", + "value": "311", + "system": true + }, + { + "key": "Cookie", + "value": "ocvp3112b4wg=faf4c82abc4caa20803a4003eba349a3; oc_sessionPassphrase=LBNdKxRzA0iqoULIruNxDDh2BK3O%2BrCIU8aUmiUcOFvy5Xw1YfjwQNlmBW2IkGwJYtxXh9%2BwDN6vYuGNX07tXzkBtjQJUWTGdzf8AIOUIVxVx5DfyWAQZ7nmYmQv6XSE; nc_sameSiteCookielax=true; nc_sameSiteCookiestrict=true", + "system": true + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n\t\"catalogus\": \"http://localhost:8080/index.php/apps/procest/api/zgw/catalogi/v1/catalogussen/5057408f-fd76-469e-8646-bcc4ba2efa8d\",\n\t\"omschrijving\": \"f779ebbe-9444-4ddc-8604-4d7cdabb78fe\",\n\t\"vertrouwelijkheidaanduiding\": \"openbaar\",\n\t\"beginGeldigheid\": \"2019-01-01\",\n\t\"informatieobjectcategorie\": \"document\"\n}" + }, + "auth": { + "type": "jwt", + "jwt": [ + { + "type": "string", + "value": "{\r\n \"iss\": \"procest-admin\",\r\n \"client_id\": \"procest-admin\",\r\n \"iat\": \"1773145213\",\r\n \"user_id\": \"procest-admin\",\r\n \"user_representation\": \"\"\r\n}", + "key": "payload" + }, + { + "type": "string", + "value": "procest-admin-secret-key-for-testing", + "key": "secret" + }, + { + "type": "string", + "value": "HS256", + "key": "algorithm" + }, + { + "type": "boolean", + "value": false, + "key": "isSecretBase64Encoded" + }, + { + "type": "string", + "value": "header", + "key": "addTokenTo" + }, + { + "type": "string", + "value": "Bearer", + "key": "headerPrefix" + }, + { + "type": "string", + "value": "token", + "key": "queryParamKey" + }, + { + "type": "string", + "value": "{}", + "key": "header" + } + ] + } + }, + "response": { + "id": "a1fe6405-7714-407a-a864-a37c7fdab71c", + "status": "Created", + "code": 201, + "header": [ + { + "key": "Date", + "value": "Tue, 10 Mar 2026 12:20:13 GMT" + }, + { + "key": "Server", + "value": "Apache/2.4.66 (Debian)" + }, + { + "key": "X-Content-Type-Options", + "value": "nosniff" + }, + { + "key": "X-Frame-Options", + "value": "SAMEORIGIN" + }, + { + "key": "X-Permitted-Cross-Domain-Policies", + "value": "none" + }, + { + "key": "X-Robots-Tag", + "value": "noindex, nofollow" + }, + { + "key": "Referrer-Policy", + "value": "no-referrer" + }, + { + "key": "X-Powered-By", + "value": "PHP/8.3.30" + }, + { + "key": "Content-Security-Policy", + "value": "default-src 'none';base-uri 'none';manifest-src 'self';frame-ancestors 'none'" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=faf4c82abc4caa20803a4003eba349a3; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=faf4c82abc4caa20803a4003eba349a3; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=faf4c82abc4caa20803a4003eba349a3; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=faf4c82abc4caa20803a4003eba349a3; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=faf4c82abc4caa20803a4003eba349a3; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=118b12de26cbe8596d115b070161a0e6; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=118b12de26cbe8596d115b070161a0e6; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=118b12de26cbe8596d115b070161a0e6; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=118b12de26cbe8596d115b070161a0e6; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=118b12de26cbe8596d115b070161a0e6; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "X-Request-Id", + "value": "sr1dEbFN58ElnY8nI5UP" + }, + { + "key": "Cache-Control", + "value": "no-cache, no-store, must-revalidate" + }, + { + "key": "Feature-Policy", + "value": "autoplay 'none';camera 'none';fullscreen 'none';geolocation 'none';microphone 'none';payment 'none'" + }, + { + "key": "X-User-Id", + "value": "admin" + }, + { + "key": "Content-Length", + "value": "576" + }, + { + "key": "Keep-Alive", + "value": "timeout=5, max=99" + }, + { + "key": "Connection", + "value": "Keep-Alive" + }, + { + "key": "Content-Type", + "value": "application/json; charset=utf-8" + } + ], + "stream": { + "type": "Buffer", + "data": [ + 123, + 34, + 117, + 114, + 108, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 105, + 92, + 47, + 118, + 49, + 92, + 47, + 105, + 110, + 102, + 111, + 114, + 109, + 97, + 116, + 105, + 101, + 111, + 98, + 106, + 101, + 99, + 116, + 116, + 121, + 112, + 101, + 110, + 92, + 47, + 56, + 53, + 57, + 102, + 57, + 50, + 99, + 102, + 45, + 51, + 54, + 102, + 56, + 45, + 52, + 55, + 97, + 54, + 45, + 97, + 55, + 52, + 99, + 45, + 102, + 50, + 53, + 56, + 102, + 48, + 57, + 102, + 97, + 100, + 97, + 56, + 34, + 44, + 34, + 117, + 117, + 105, + 100, + 34, + 58, + 34, + 56, + 53, + 57, + 102, + 57, + 50, + 99, + 102, + 45, + 51, + 54, + 102, + 56, + 45, + 52, + 55, + 97, + 54, + 45, + 97, + 55, + 52, + 99, + 45, + 102, + 50, + 53, + 56, + 102, + 48, + 57, + 102, + 97, + 100, + 97, + 56, + 34, + 44, + 34, + 111, + 109, + 115, + 99, + 104, + 114, + 105, + 106, + 118, + 105, + 110, + 103, + 34, + 58, + 34, + 102, + 55, + 55, + 57, + 101, + 98, + 98, + 101, + 45, + 57, + 52, + 52, + 52, + 45, + 52, + 100, + 100, + 99, + 45, + 56, + 54, + 48, + 52, + 45, + 52, + 100, + 55, + 99, + 100, + 97, + 98, + 98, + 55, + 56, + 102, + 101, + 34, + 44, + 34, + 116, + 111, + 101, + 108, + 105, + 99, + 104, + 116, + 105, + 110, + 103, + 34, + 58, + 34, + 34, + 44, + 34, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 117, + 115, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 105, + 92, + 47, + 118, + 49, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 117, + 115, + 115, + 101, + 110, + 92, + 47, + 53, + 48, + 53, + 55, + 52, + 48, + 56, + 102, + 45, + 102, + 100, + 55, + 54, + 45, + 52, + 54, + 57, + 101, + 45, + 56, + 54, + 52, + 54, + 45, + 98, + 99, + 99, + 52, + 98, + 97, + 50, + 101, + 102, + 97, + 56, + 100, + 34, + 44, + 34, + 99, + 111, + 110, + 99, + 101, + 112, + 116, + 34, + 58, + 116, + 114, + 117, + 101, + 44, + 34, + 118, + 101, + 114, + 116, + 114, + 111, + 117, + 119, + 101, + 108, + 105, + 106, + 107, + 104, + 101, + 105, + 100, + 97, + 97, + 110, + 100, + 117, + 105, + 100, + 105, + 110, + 103, + 34, + 58, + 34, + 111, + 112, + 101, + 110, + 98, + 97, + 97, + 114, + 34, + 44, + 34, + 105, + 110, + 102, + 111, + 114, + 109, + 97, + 116, + 105, + 101, + 111, + 98, + 106, + 101, + 99, + 116, + 99, + 97, + 116, + 101, + 103, + 111, + 114, + 105, + 101, + 34, + 58, + 34, + 100, + 111, + 99, + 117, + 109, + 101, + 110, + 116, + 34, + 44, + 34, + 98, + 101, + 103, + 105, + 110, + 71, + 101, + 108, + 100, + 105, + 103, + 104, + 101, + 105, + 100, + 34, + 58, + 34, + 50, + 48, + 49, + 57, + 45, + 48, + 49, + 45, + 48, + 49, + 34, + 44, + 34, + 101, + 105, + 110, + 100, + 101, + 71, + 101, + 108, + 100, + 105, + 103, + 104, + 101, + 105, + 100, + 34, + 58, + 34, + 50, + 48, + 50, + 54, + 45, + 48, + 51, + 45, + 49, + 48, + 34, + 44, + 34, + 118, + 101, + 114, + 112, + 108, + 105, + 99, + 104, + 116, + 34, + 58, + 102, + 97, + 108, + 115, + 101, + 125 + ] + }, + "cookie": [], + "responseTime": 163, + "responseSize": 576 + }, + "id": "75dd0e70-0157-43f8-99f3-963b25aa3aa0" + }, + { + "cursor": { + "ref": "61bd5cea-f1a0-4ca2-a960-6d0a998631a4", + "length": 313, + "cycles": 1, + "position": 283, + "iteration": 0, + "httpRequestId": "b1eb5be0-05a4-48b9-a5a5-5310970e8a8f" + }, + "item": { + "id": "f0d6e1e8-697a-405f-a1d0-2d1617dfe329", + "name": "Create Zaaktype Copy", + "request": { + "url": { + "path": [ + "zaaktypen" + ], + "host": [ + "{{ztc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n\t\"identificatie\": \"{{random_identificatie}}\",\n \"omschrijving\": \"zrc_tests_1\",\n \"vertrouwelijkheidaanduiding\": \"openbaar\",\n \"doel\": \"test doel\",\n \"verantwoordelijke\":\"X\",\n \"aanleiding\": \"test aanleiding\",\n \"indicatieInternOfExtern\": \"extern\",\n \"handelingInitiator\": \"indienen\",\n \"onderwerp\": \"openbare ruimte\",\n \"handelingBehandelaar\": \"behandelen\",\n \"doorlooptijd\": \"P10D\",\n \"opschortingEnAanhoudingMogelijk\": false,\n \"verlengingMogelijk\": true,\n \"publicatieIndicatie\": false,\n \"productenOfDiensten\": [\n \"https://ref.tst.vng.cloud/standaard/\"\n ],\n \"selectielijstProcestype\": \"{{procestype_procestermijn_nihil_url}}\",\n \"referentieproces\": {\n \"naam\": \"test\",\n \"link\": \"\"\n },\n \"deelzaaktypen\": [\n \"{{deelzaaktype_identificatie}}\"\n ],\n \"catalogus\": \"{{catalogus_url}}\",\n \"statustypen\": [\n \n ],\n \"resultaattypen\": [\n ],\n \"eigenschappen\": [\n ],\n \"informatieobjecttypen\": [],\n \"besluittypen\": [\n \"{{besluit_omschrijving}}\"\n ],\n \"gerelateerdeZaaktypen\": [],\n \"beginGeldigheid\": \"2019-01-01\",\n \"versiedatum\": \"2019-01-01\",\n \"concept\": true,\n \"verlengingstermijn\": \"P5D\"\n}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "9efefa91-f5fb-431f-adc1-fa5132a69389", + "type": "text/javascript", + "packages": {}, + "exec": [ + "if(pm.response.code == 201) {", + " var res = pm.response.json();", + "pm.environment.set(\"zaaktype_url\", res.url);", + "pm.environment.set(\"zaaktype_vertrouwelijkheid\", res.vertrouwelijkheidaanduiding);", + "pm.environment.set(\"zaaktype_productenOfDiensten\", res.productenOfDiensten);", + "pm.environment.set(\"zaaktype_resultaattypen\", res.resultaattypen);", + "pm.environment.set(\"zaaktype_eigenschap\", res.eigenschappen[0]);", + "pm.environment.set(\"zaaktype_body\", pm.request.body.raw);", + "}" + ], + "_lastExecutionId": "5f750807-0d10-4a43-a2d8-0eb6211aae77" + } + }, + { + "listen": "prerequest", + "script": { + "id": "7be4e83e-dd9d-4113-9cdc-2551e9ba1af3", + "type": "text/javascript", + "packages": {}, + "exec": [ + "var uuid = require('uuid');", + "var myUUID = uuid.v4(); ", + "pm.environment.set(\"random_identificatie\", myUUID);", + "" + ], + "_lastExecutionId": "c40e72bc-cdb7-444c-913a-f13a9f43f4e6" + } + } + ] + }, + "request": { + "url": { + "protocol": "http", + "port": "8080", + "path": [ + "index.php", + "apps", + "procest", + "api", + "zgw", + "catalogi", + "v1", + "zaaktypen" + ], + "host": [ + "localhost" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Authorization", + "value": "Bearer eyJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJwcm9jZXN0LWFkbWluIiwiY2xpZW50X2lkIjoicHJvY2VzdC1hZG1pbiIsImlhdCI6IjE3NzMxNDUyMTQiLCJ1c2VyX2lkIjoicHJvY2VzdC1hZG1pbiIsInVzZXJfcmVwcmVzZW50YXRpb24iOiIifQ.NJF9psSecyp68XmS80WzEmO5hp7YfatX1Bt-uYTl8CY", + "system": true + }, + { + "key": "User-Agent", + "value": "PostmanRuntime/7.39.1", + "system": true + }, + { + "key": "Accept", + "value": "*/*", + "system": true + }, + { + "key": "Cache-Control", + "value": "no-cache", + "system": true + }, + { + "key": "Postman-Token", + "value": "99de0206-4cb0-4dd4-819b-f4cb2829fa01", + "system": true + }, + { + "key": "Host", + "value": "localhost:8080", + "system": true + }, + { + "key": "Accept-Encoding", + "value": "gzip, deflate, br", + "system": true + }, + { + "key": "Connection", + "value": "keep-alive", + "system": true + }, + { + "key": "Content-Length", + "value": "1388", + "system": true + }, + { + "key": "Cookie", + "value": "ocvp3112b4wg=118b12de26cbe8596d115b070161a0e6; oc_sessionPassphrase=LBNdKxRzA0iqoULIruNxDDh2BK3O%2BrCIU8aUmiUcOFvy5Xw1YfjwQNlmBW2IkGwJYtxXh9%2BwDN6vYuGNX07tXzkBtjQJUWTGdzf8AIOUIVxVx5DfyWAQZ7nmYmQv6XSE; nc_sameSiteCookielax=true; nc_sameSiteCookiestrict=true", + "system": true + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n\t\"identificatie\": \"fe8bed94-afee-44a0-b69c-50cbe532d858\",\n \"omschrijving\": \"zrc_tests_1\",\n \"vertrouwelijkheidaanduiding\": \"openbaar\",\n \"doel\": \"test doel\",\n \"verantwoordelijke\":\"X\",\n \"aanleiding\": \"test aanleiding\",\n \"indicatieInternOfExtern\": \"extern\",\n \"handelingInitiator\": \"indienen\",\n \"onderwerp\": \"openbare ruimte\",\n \"handelingBehandelaar\": \"behandelen\",\n \"doorlooptijd\": \"P10D\",\n \"opschortingEnAanhoudingMogelijk\": false,\n \"verlengingMogelijk\": true,\n \"publicatieIndicatie\": false,\n \"productenOfDiensten\": [\n \"https://ref.tst.vng.cloud/standaard/\"\n ],\n \"selectielijstProcestype\": \"https://selectielijst.openzaak.nl/api/v1/procestypen/838e405a-9b12-43c4-a985-d7a7490d422e\",\n \"referentieproces\": {\n \"naam\": \"test\",\n \"link\": \"\"\n },\n \"deelzaaktypen\": [\n \"cae6f26a-1321-4bff-b314-421ddf7775b9\"\n ],\n \"catalogus\": \"http://localhost:8080/index.php/apps/procest/api/zgw/catalogi/v1/catalogussen/5057408f-fd76-469e-8646-bcc4ba2efa8d\",\n \"statustypen\": [\n \n ],\n \"resultaattypen\": [\n ],\n \"eigenschappen\": [\n ],\n \"informatieobjecttypen\": [],\n \"besluittypen\": [\n \"c7e4cd3e-1645-4c0a-8bc4-0aa1847f6946\"\n ],\n \"gerelateerdeZaaktypen\": [],\n \"beginGeldigheid\": \"2019-01-01\",\n \"versiedatum\": \"2019-01-01\",\n \"concept\": true,\n \"verlengingstermijn\": \"P5D\"\n}" + }, + "auth": { + "type": "jwt", + "jwt": [ + { + "type": "string", + "value": "{\r\n \"iss\": \"procest-admin\",\r\n \"client_id\": \"procest-admin\",\r\n \"iat\": \"1773145214\",\r\n \"user_id\": \"procest-admin\",\r\n \"user_representation\": \"\"\r\n}", + "key": "payload" + }, + { + "type": "string", + "value": "procest-admin-secret-key-for-testing", + "key": "secret" + }, + { + "type": "string", + "value": "HS256", + "key": "algorithm" + }, + { + "type": "boolean", + "value": false, + "key": "isSecretBase64Encoded" + }, + { + "type": "string", + "value": "header", + "key": "addTokenTo" + }, + { + "type": "string", + "value": "Bearer", + "key": "headerPrefix" + }, + { + "type": "string", + "value": "token", + "key": "queryParamKey" + }, + { + "type": "string", + "value": "{}", + "key": "header" + } + ] + } + }, + "response": { + "id": "ab66f25a-5a35-4e83-80b1-a8565b59dc42", + "status": "Created", + "code": 201, + "header": [ + { + "key": "Date", + "value": "Tue, 10 Mar 2026 12:20:13 GMT" + }, + { + "key": "Server", + "value": "Apache/2.4.66 (Debian)" + }, + { + "key": "X-Content-Type-Options", + "value": "nosniff" + }, + { + "key": "X-Frame-Options", + "value": "SAMEORIGIN" + }, + { + "key": "X-Permitted-Cross-Domain-Policies", + "value": "none" + }, + { + "key": "X-Robots-Tag", + "value": "noindex, nofollow" + }, + { + "key": "Referrer-Policy", + "value": "no-referrer" + }, + { + "key": "X-Powered-By", + "value": "PHP/8.3.30" + }, + { + "key": "Content-Security-Policy", + "value": "default-src 'none';base-uri 'none';manifest-src 'self';frame-ancestors 'none'" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=118b12de26cbe8596d115b070161a0e6; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=118b12de26cbe8596d115b070161a0e6; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=118b12de26cbe8596d115b070161a0e6; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=118b12de26cbe8596d115b070161a0e6; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=118b12de26cbe8596d115b070161a0e6; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=9e13e51265812d748051942601b6ae79; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=9e13e51265812d748051942601b6ae79; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=9e13e51265812d748051942601b6ae79; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=9e13e51265812d748051942601b6ae79; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=9e13e51265812d748051942601b6ae79; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "X-Request-Id", + "value": "Tp5XkLGxCJBBOws4xZcQ" + }, + { + "key": "Cache-Control", + "value": "no-cache, no-store, must-revalidate" + }, + { + "key": "Feature-Policy", + "value": "autoplay 'none';camera 'none';fullscreen 'none';geolocation 'none';microphone 'none';payment 'none'" + }, + { + "key": "X-User-Id", + "value": "admin" + }, + { + "key": "Content-Length", + "value": "1464" + }, + { + "key": "Keep-Alive", + "value": "timeout=5, max=98" + }, + { + "key": "Connection", + "value": "Keep-Alive" + }, + { + "key": "Content-Type", + "value": "application/json; charset=utf-8" + } + ], + "stream": { + "type": "Buffer", + "data": [ + 123, + 34, + 117, + 114, + 108, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 105, + 92, + 47, + 118, + 49, + 92, + 47, + 122, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 110, + 92, + 47, + 49, + 53, + 98, + 52, + 54, + 55, + 100, + 52, + 45, + 101, + 49, + 49, + 98, + 45, + 52, + 48, + 99, + 56, + 45, + 97, + 53, + 101, + 49, + 45, + 102, + 54, + 99, + 97, + 54, + 98, + 53, + 53, + 99, + 97, + 55, + 99, + 34, + 44, + 34, + 117, + 117, + 105, + 100, + 34, + 58, + 34, + 49, + 53, + 98, + 52, + 54, + 55, + 100, + 52, + 45, + 101, + 49, + 49, + 98, + 45, + 52, + 48, + 99, + 56, + 45, + 97, + 53, + 101, + 49, + 45, + 102, + 54, + 99, + 97, + 54, + 98, + 53, + 53, + 99, + 97, + 55, + 99, + 34, + 44, + 34, + 105, + 100, + 101, + 110, + 116, + 105, + 102, + 105, + 99, + 97, + 116, + 105, + 101, + 34, + 58, + 34, + 102, + 101, + 56, + 98, + 101, + 100, + 57, + 52, + 45, + 97, + 102, + 101, + 101, + 45, + 52, + 52, + 97, + 48, + 45, + 98, + 54, + 57, + 99, + 45, + 53, + 48, + 99, + 98, + 101, + 53, + 51, + 50, + 100, + 56, + 53, + 56, + 34, + 44, + 34, + 111, + 109, + 115, + 99, + 104, + 114, + 105, + 106, + 118, + 105, + 110, + 103, + 34, + 58, + 34, + 122, + 114, + 99, + 95, + 116, + 101, + 115, + 116, + 115, + 95, + 49, + 34, + 44, + 34, + 111, + 109, + 115, + 99, + 104, + 114, + 105, + 106, + 118, + 105, + 110, + 103, + 71, + 101, + 110, + 101, + 114, + 105, + 101, + 107, + 34, + 58, + 34, + 34, + 44, + 34, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 117, + 115, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 105, + 92, + 47, + 118, + 49, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 117, + 115, + 115, + 101, + 110, + 92, + 47, + 53, + 48, + 53, + 55, + 52, + 48, + 56, + 102, + 45, + 102, + 100, + 55, + 54, + 45, + 52, + 54, + 57, + 101, + 45, + 56, + 54, + 52, + 54, + 45, + 98, + 99, + 99, + 52, + 98, + 97, + 50, + 101, + 102, + 97, + 56, + 100, + 34, + 44, + 34, + 100, + 111, + 101, + 108, + 34, + 58, + 34, + 116, + 101, + 115, + 116, + 32, + 100, + 111, + 101, + 108, + 34, + 44, + 34, + 97, + 97, + 110, + 108, + 101, + 105, + 100, + 105, + 110, + 103, + 34, + 58, + 34, + 116, + 101, + 115, + 116, + 32, + 97, + 97, + 110, + 108, + 101, + 105, + 100, + 105, + 110, + 103, + 34, + 44, + 34, + 111, + 110, + 100, + 101, + 114, + 119, + 101, + 114, + 112, + 34, + 58, + 34, + 111, + 112, + 101, + 110, + 98, + 97, + 114, + 101, + 32, + 114, + 117, + 105, + 109, + 116, + 101, + 34, + 44, + 34, + 100, + 111, + 111, + 114, + 108, + 111, + 111, + 112, + 116, + 105, + 106, + 100, + 34, + 58, + 34, + 80, + 49, + 48, + 68, + 34, + 44, + 34, + 118, + 101, + 114, + 116, + 114, + 111, + 117, + 119, + 101, + 108, + 105, + 106, + 107, + 104, + 101, + 105, + 100, + 97, + 97, + 110, + 100, + 117, + 105, + 100, + 105, + 110, + 103, + 34, + 58, + 34, + 111, + 112, + 101, + 110, + 98, + 97, + 97, + 114, + 34, + 44, + 34, + 99, + 111, + 110, + 99, + 101, + 112, + 116, + 34, + 58, + 116, + 114, + 117, + 101, + 44, + 34, + 98, + 101, + 103, + 105, + 110, + 71, + 101, + 108, + 100, + 105, + 103, + 104, + 101, + 105, + 100, + 34, + 58, + 34, + 50, + 48, + 49, + 57, + 45, + 48, + 49, + 45, + 48, + 49, + 34, + 44, + 34, + 101, + 105, + 110, + 100, + 101, + 71, + 101, + 108, + 100, + 105, + 103, + 104, + 101, + 105, + 100, + 34, + 58, + 34, + 50, + 48, + 50, + 54, + 45, + 48, + 51, + 45, + 49, + 48, + 34, + 44, + 34, + 104, + 97, + 110, + 100, + 101, + 108, + 105, + 110, + 103, + 73, + 110, + 105, + 116, + 105, + 97, + 116, + 111, + 114, + 34, + 58, + 34, + 105, + 110, + 100, + 105, + 101, + 110, + 101, + 110, + 34, + 44, + 34, + 105, + 110, + 100, + 105, + 99, + 97, + 116, + 105, + 101, + 73, + 110, + 116, + 101, + 114, + 110, + 79, + 102, + 69, + 120, + 116, + 101, + 114, + 110, + 34, + 58, + 34, + 101, + 120, + 116, + 101, + 114, + 110, + 34, + 44, + 34, + 104, + 97, + 110, + 100, + 101, + 108, + 105, + 110, + 103, + 66, + 101, + 104, + 97, + 110, + 100, + 101, + 108, + 97, + 97, + 114, + 34, + 58, + 34, + 98, + 101, + 104, + 97, + 110, + 100, + 101, + 108, + 101, + 110, + 34, + 44, + 34, + 111, + 112, + 115, + 99, + 104, + 111, + 114, + 116, + 105, + 110, + 103, + 69, + 110, + 65, + 97, + 110, + 104, + 111, + 117, + 100, + 105, + 110, + 103, + 77, + 111, + 103, + 101, + 108, + 105, + 106, + 107, + 34, + 58, + 102, + 97, + 108, + 115, + 101, + 44, + 34, + 118, + 101, + 114, + 108, + 101, + 110, + 103, + 105, + 110, + 103, + 77, + 111, + 103, + 101, + 108, + 105, + 106, + 107, + 34, + 58, + 116, + 114, + 117, + 101, + 44, + 34, + 118, + 101, + 114, + 108, + 101, + 110, + 103, + 105, + 110, + 103, + 115, + 116, + 101, + 114, + 109, + 105, + 106, + 110, + 34, + 58, + 34, + 80, + 53, + 68, + 34, + 44, + 34, + 112, + 117, + 98, + 108, + 105, + 99, + 97, + 116, + 105, + 101, + 73, + 110, + 100, + 105, + 99, + 97, + 116, + 105, + 101, + 34, + 58, + 102, + 97, + 108, + 115, + 101, + 44, + 34, + 112, + 114, + 111, + 100, + 117, + 99, + 116, + 101, + 110, + 79, + 102, + 68, + 105, + 101, + 110, + 115, + 116, + 101, + 110, + 34, + 58, + 91, + 34, + 104, + 116, + 116, + 112, + 115, + 58, + 92, + 47, + 92, + 47, + 114, + 101, + 102, + 46, + 116, + 115, + 116, + 46, + 118, + 110, + 103, + 46, + 99, + 108, + 111, + 117, + 100, + 92, + 47, + 115, + 116, + 97, + 110, + 100, + 97, + 97, + 114, + 100, + 92, + 47, + 34, + 93, + 44, + 34, + 115, + 101, + 108, + 101, + 99, + 116, + 105, + 101, + 108, + 105, + 106, + 115, + 116, + 80, + 114, + 111, + 99, + 101, + 115, + 116, + 121, + 112, + 101, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 115, + 58, + 92, + 47, + 92, + 47, + 115, + 101, + 108, + 101, + 99, + 116, + 105, + 101, + 108, + 105, + 106, + 115, + 116, + 46, + 111, + 112, + 101, + 110, + 122, + 97, + 97, + 107, + 46, + 110, + 108, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 118, + 49, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 121, + 112, + 101, + 110, + 92, + 47, + 56, + 51, + 56, + 101, + 52, + 48, + 53, + 97, + 45, + 57, + 98, + 49, + 50, + 45, + 52, + 51, + 99, + 52, + 45, + 97, + 57, + 56, + 53, + 45, + 100, + 55, + 97, + 55, + 52, + 57, + 48, + 100, + 52, + 50, + 50, + 101, + 34, + 44, + 34, + 114, + 101, + 102, + 101, + 114, + 101, + 110, + 116, + 105, + 101, + 112, + 114, + 111, + 99, + 101, + 115, + 34, + 58, + 123, + 34, + 108, + 105, + 110, + 107, + 34, + 58, + 34, + 34, + 44, + 34, + 110, + 97, + 97, + 109, + 34, + 58, + 34, + 116, + 101, + 115, + 116, + 34, + 125, + 44, + 34, + 118, + 101, + 114, + 97, + 110, + 116, + 119, + 111, + 111, + 114, + 100, + 101, + 108, + 105, + 106, + 107, + 101, + 34, + 58, + 34, + 88, + 34, + 44, + 34, + 103, + 101, + 114, + 101, + 108, + 97, + 116, + 101, + 101, + 114, + 100, + 101, + 90, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 98, + 101, + 115, + 108, + 117, + 105, + 116, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 105, + 92, + 47, + 118, + 49, + 92, + 47, + 98, + 101, + 115, + 108, + 117, + 105, + 116, + 116, + 121, + 112, + 101, + 110, + 92, + 47, + 48, + 98, + 50, + 50, + 48, + 100, + 50, + 55, + 45, + 101, + 50, + 53, + 49, + 45, + 52, + 99, + 52, + 55, + 45, + 98, + 48, + 100, + 102, + 45, + 48, + 49, + 52, + 99, + 50, + 101, + 52, + 99, + 97, + 97, + 54, + 49, + 34, + 93, + 44, + 34, + 105, + 110, + 102, + 111, + 114, + 109, + 97, + 116, + 105, + 101, + 111, + 98, + 106, + 101, + 99, + 116, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 100, + 101, + 101, + 108, + 122, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 116, + 111, + 101, + 108, + 105, + 99, + 104, + 116, + 105, + 110, + 103, + 34, + 58, + 34, + 34, + 44, + 34, + 118, + 101, + 114, + 115, + 105, + 101, + 100, + 97, + 116, + 117, + 109, + 34, + 58, + 34, + 50, + 48, + 49, + 57, + 45, + 48, + 49, + 45, + 48, + 49, + 34, + 44, + 34, + 101, + 105, + 103, + 101, + 110, + 115, + 99, + 104, + 97, + 112, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 115, + 116, + 97, + 116, + 117, + 115, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 114, + 101, + 115, + 117, + 108, + 116, + 97, + 97, + 116, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 114, + 111, + 108, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 125 + ] + }, + "cookie": [], + "responseTime": 317, + "responseSize": 1464 + }, + "id": "f0d6e1e8-697a-405f-a1d0-2d1617dfe329" + }, + { + "cursor": { + "ref": "6768417a-49ef-4e80-9207-9c61bd214007", + "length": 313, + "cycles": 1, + "position": 284, + "iteration": 0, + "httpRequestId": "74fe63c7-24a4-42fc-8e43-880fcecc4f17" + }, + "item": { + "id": "7e0e4708-1e79-41f9-802b-b39c9efd3edb", + "name": "Create Eigenschap Copy", + "request": { + "url": { + "path": [ + "eigenschappen" + ], + "host": [ + "{{ztc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n\t\"naam\": \"test eigenschap\",\n\t\"definitie\": \"for test\",\n\t\"zaaktype\": \"{{zaaktype_url}}\",\n \"specificatie\": {\n \"formaat\": \"tekst\",\n \"lengte\": \"5\",\n \"kardinaliteit\": \"1\",\n \"waardenverzameling\": [\"test\"]\n }\n}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "4522f3d6-b1f4-4c01-b9b8-10cd7a57a732", + "type": "text/javascript", + "packages": {}, + "exec": [ + "if(pm.response.code == 201) {\r", + " pm.environment.set(\"zaaktype_eigenschap\", pm.response.json().url);\r", + "}" + ], + "_lastExecutionId": "7413fc68-45c9-4c10-b07f-2c6d97c761ff" + } + } + ] + }, + "request": { + "url": { + "protocol": "http", + "port": "8080", + "path": [ + "index.php", + "apps", + "procest", + "api", + "zgw", + "catalogi", + "v1", + "eigenschappen" + ], + "host": [ + "localhost" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Authorization", + "value": "Bearer eyJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJwcm9jZXN0LWFkbWluIiwiY2xpZW50X2lkIjoicHJvY2VzdC1hZG1pbiIsImlhdCI6IjE3NzMxNDUyMTQiLCJ1c2VyX2lkIjoicHJvY2VzdC1hZG1pbiIsInVzZXJfcmVwcmVzZW50YXRpb24iOiIifQ.NJF9psSecyp68XmS80WzEmO5hp7YfatX1Bt-uYTl8CY", + "system": true + }, + { + "key": "User-Agent", + "value": "PostmanRuntime/7.39.1", + "system": true + }, + { + "key": "Accept", + "value": "*/*", + "system": true + }, + { + "key": "Cache-Control", + "value": "no-cache", + "system": true + }, + { + "key": "Postman-Token", + "value": "2c7c693b-ba9c-44f9-af02-66c7bf0908f0", + "system": true + }, + { + "key": "Host", + "value": "localhost:8080", + "system": true + }, + { + "key": "Accept-Encoding", + "value": "gzip, deflate, br", + "system": true + }, + { + "key": "Connection", + "value": "keep-alive", + "system": true + }, + { + "key": "Content-Length", + "value": "333", + "system": true + }, + { + "key": "Cookie", + "value": "ocvp3112b4wg=9e13e51265812d748051942601b6ae79; oc_sessionPassphrase=LBNdKxRzA0iqoULIruNxDDh2BK3O%2BrCIU8aUmiUcOFvy5Xw1YfjwQNlmBW2IkGwJYtxXh9%2BwDN6vYuGNX07tXzkBtjQJUWTGdzf8AIOUIVxVx5DfyWAQZ7nmYmQv6XSE; nc_sameSiteCookielax=true; nc_sameSiteCookiestrict=true", + "system": true + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n\t\"naam\": \"test eigenschap\",\n\t\"definitie\": \"for test\",\n\t\"zaaktype\": \"http://localhost:8080/index.php/apps/procest/api/zgw/catalogi/v1/zaaktypen/15b467d4-e11b-40c8-a5e1-f6ca6b55ca7c\",\n \"specificatie\": {\n \"formaat\": \"tekst\",\n \"lengte\": \"5\",\n \"kardinaliteit\": \"1\",\n \"waardenverzameling\": [\"test\"]\n }\n}" + }, + "auth": { + "type": "jwt", + "jwt": [ + { + "type": "string", + "value": "{\r\n \"iss\": \"procest-admin\",\r\n \"client_id\": \"procest-admin\",\r\n \"iat\": \"1773145214\",\r\n \"user_id\": \"procest-admin\",\r\n \"user_representation\": \"\"\r\n}", + "key": "payload" + }, + { + "type": "string", + "value": "procest-admin-secret-key-for-testing", + "key": "secret" + }, + { + "type": "string", + "value": "HS256", + "key": "algorithm" + }, + { + "type": "boolean", + "value": false, + "key": "isSecretBase64Encoded" + }, + { + "type": "string", + "value": "header", + "key": "addTokenTo" + }, + { + "type": "string", + "value": "Bearer", + "key": "headerPrefix" + }, + { + "type": "string", + "value": "token", + "key": "queryParamKey" + }, + { + "type": "string", + "value": "{}", + "key": "header" + } + ] + } + }, + "response": { + "id": "0d2ed7d8-5518-42f9-ad86-d36e4ae0f85e", + "status": "Created", + "code": 201, + "header": [ + { + "key": "Date", + "value": "Tue, 10 Mar 2026 12:20:14 GMT" + }, + { + "key": "Server", + "value": "Apache/2.4.66 (Debian)" + }, + { + "key": "X-Content-Type-Options", + "value": "nosniff" + }, + { + "key": "X-Frame-Options", + "value": "SAMEORIGIN" + }, + { + "key": "X-Permitted-Cross-Domain-Policies", + "value": "none" + }, + { + "key": "X-Robots-Tag", + "value": "noindex, nofollow" + }, + { + "key": "Referrer-Policy", + "value": "no-referrer" + }, + { + "key": "X-Powered-By", + "value": "PHP/8.3.30" + }, + { + "key": "Content-Security-Policy", + "value": "default-src 'none';base-uri 'none';manifest-src 'self';frame-ancestors 'none'" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=9e13e51265812d748051942601b6ae79; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=9e13e51265812d748051942601b6ae79; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=9e13e51265812d748051942601b6ae79; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=9e13e51265812d748051942601b6ae79; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=9e13e51265812d748051942601b6ae79; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=3b9d3040c41263f883d568f96829eb7e; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=3b9d3040c41263f883d568f96829eb7e; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=3b9d3040c41263f883d568f96829eb7e; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=3b9d3040c41263f883d568f96829eb7e; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=3b9d3040c41263f883d568f96829eb7e; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "X-Request-Id", + "value": "Xa8YdF2Xp2aVenFyZAp6" + }, + { + "key": "Cache-Control", + "value": "no-cache, no-store, must-revalidate" + }, + { + "key": "Feature-Policy", + "value": "autoplay 'none';camera 'none';fullscreen 'none';geolocation 'none';microphone 'none';payment 'none'" + }, + { + "key": "X-User-Id", + "value": "admin" + }, + { + "key": "Content-Length", + "value": "424" + }, + { + "key": "Keep-Alive", + "value": "timeout=5, max=97" + }, + { + "key": "Connection", + "value": "Keep-Alive" + }, + { + "key": "Content-Type", + "value": "application/json; charset=utf-8" + } + ], + "stream": { + "type": "Buffer", + "data": [ + 123, + 34, + 117, + 114, + 108, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 105, + 92, + 47, + 118, + 49, + 92, + 47, + 101, + 105, + 103, + 101, + 110, + 115, + 99, + 104, + 97, + 112, + 112, + 101, + 110, + 92, + 47, + 53, + 48, + 51, + 53, + 51, + 51, + 55, + 56, + 45, + 100, + 102, + 52, + 56, + 45, + 52, + 100, + 98, + 51, + 45, + 97, + 56, + 98, + 99, + 45, + 101, + 97, + 100, + 56, + 100, + 56, + 100, + 55, + 99, + 54, + 97, + 98, + 34, + 44, + 34, + 117, + 117, + 105, + 100, + 34, + 58, + 34, + 53, + 48, + 51, + 53, + 51, + 51, + 55, + 56, + 45, + 100, + 102, + 52, + 56, + 45, + 52, + 100, + 98, + 51, + 45, + 97, + 56, + 98, + 99, + 45, + 101, + 97, + 100, + 56, + 100, + 56, + 100, + 55, + 99, + 54, + 97, + 98, + 34, + 44, + 34, + 110, + 97, + 97, + 109, + 34, + 58, + 34, + 116, + 101, + 115, + 116, + 32, + 101, + 105, + 103, + 101, + 110, + 115, + 99, + 104, + 97, + 112, + 34, + 44, + 34, + 100, + 101, + 102, + 105, + 110, + 105, + 116, + 105, + 101, + 34, + 58, + 34, + 102, + 111, + 114, + 32, + 116, + 101, + 115, + 116, + 34, + 44, + 34, + 116, + 111, + 101, + 108, + 105, + 99, + 104, + 116, + 105, + 110, + 103, + 34, + 58, + 34, + 34, + 44, + 34, + 122, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 105, + 92, + 47, + 118, + 49, + 92, + 47, + 122, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 110, + 92, + 47, + 49, + 53, + 98, + 52, + 54, + 55, + 100, + 52, + 45, + 101, + 49, + 49, + 98, + 45, + 52, + 48, + 99, + 56, + 45, + 97, + 53, + 101, + 49, + 45, + 102, + 54, + 99, + 97, + 54, + 98, + 53, + 53, + 99, + 97, + 55, + 99, + 34, + 44, + 34, + 115, + 112, + 101, + 99, + 105, + 102, + 105, + 99, + 97, + 116, + 105, + 101, + 34, + 58, + 34, + 123, + 92, + 34, + 102, + 111, + 114, + 109, + 97, + 97, + 116, + 92, + 34, + 58, + 92, + 34, + 116, + 101, + 107, + 115, + 116, + 92, + 34, + 125, + 34, + 125 + ] + }, + "cookie": [], + "responseTime": 166, + "responseSize": 424 + }, + "id": "7e0e4708-1e79-41f9-802b-b39c9efd3edb" + }, + { + "cursor": { + "ref": "533455ec-7bdc-44a2-8e8c-4fa28b955402", + "length": 313, + "cycles": 1, + "position": 285, + "iteration": 0, + "httpRequestId": "cc39c508-c236-47e2-a564-8f75af1c6805" + }, + "item": { + "id": "6b3995e4-0d6d-4a1c-8fb0-5ba6572420a3", + "name": "Create Zaaktype-InformatieObjectType relation Copy", + "request": { + "url": { + "path": [ + "zaaktype-informatieobjecttypen" + ], + "host": [ + "{{ztc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n\t\"zaaktype\": \"{{zaaktype_url}}\",\n\t\"informatieobjecttype\": \"{{informatieobject_omschrijving}}\",\n\t\"volgnummer\": 1,\n\t\"richting\": \"inkomend\"\n}" + } + }, + "response": [], + "event": [] + }, + "request": { + "url": { + "protocol": "http", + "port": "8080", + "path": [ + "index.php", + "apps", + "procest", + "api", + "zgw", + "catalogi", + "v1", + "zaaktype-informatieobjecttypen" + ], + "host": [ + "localhost" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Authorization", + "value": "Bearer eyJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJwcm9jZXN0LWFkbWluIiwiY2xpZW50X2lkIjoicHJvY2VzdC1hZG1pbiIsImlhdCI6IjE3NzMxNDUyMTQiLCJ1c2VyX2lkIjoicHJvY2VzdC1hZG1pbiIsInVzZXJfcmVwcmVzZW50YXRpb24iOiIifQ.NJF9psSecyp68XmS80WzEmO5hp7YfatX1Bt-uYTl8CY", + "system": true + }, + { + "key": "User-Agent", + "value": "PostmanRuntime/7.39.1", + "system": true + }, + { + "key": "Accept", + "value": "*/*", + "system": true + }, + { + "key": "Cache-Control", + "value": "no-cache", + "system": true + }, + { + "key": "Postman-Token", + "value": "d3196501-06d7-4efe-9a41-3d3cac96b155", + "system": true + }, + { + "key": "Host", + "value": "localhost:8080", + "system": true + }, + { + "key": "Accept-Encoding", + "value": "gzip, deflate, br", + "system": true + }, + { + "key": "Connection", + "value": "keep-alive", + "system": true + }, + { + "key": "Content-Length", + "value": "238", + "system": true + }, + { + "key": "Cookie", + "value": "ocvp3112b4wg=3b9d3040c41263f883d568f96829eb7e; oc_sessionPassphrase=LBNdKxRzA0iqoULIruNxDDh2BK3O%2BrCIU8aUmiUcOFvy5Xw1YfjwQNlmBW2IkGwJYtxXh9%2BwDN6vYuGNX07tXzkBtjQJUWTGdzf8AIOUIVxVx5DfyWAQZ7nmYmQv6XSE; nc_sameSiteCookielax=true; nc_sameSiteCookiestrict=true", + "system": true + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n\t\"zaaktype\": \"http://localhost:8080/index.php/apps/procest/api/zgw/catalogi/v1/zaaktypen/15b467d4-e11b-40c8-a5e1-f6ca6b55ca7c\",\n\t\"informatieobjecttype\": \"f779ebbe-9444-4ddc-8604-4d7cdabb78fe\",\n\t\"volgnummer\": 1,\n\t\"richting\": \"inkomend\"\n}" + }, + "auth": { + "type": "jwt", + "jwt": [ + { + "type": "string", + "value": "{\r\n \"iss\": \"procest-admin\",\r\n \"client_id\": \"procest-admin\",\r\n \"iat\": \"1773145214\",\r\n \"user_id\": \"procest-admin\",\r\n \"user_representation\": \"\"\r\n}", + "key": "payload" + }, + { + "type": "string", + "value": "procest-admin-secret-key-for-testing", + "key": "secret" + }, + { + "type": "string", + "value": "HS256", + "key": "algorithm" + }, + { + "type": "boolean", + "value": false, + "key": "isSecretBase64Encoded" + }, + { + "type": "string", + "value": "header", + "key": "addTokenTo" + }, + { + "type": "string", + "value": "Bearer", + "key": "headerPrefix" + }, + { + "type": "string", + "value": "token", + "key": "queryParamKey" + }, + { + "type": "string", + "value": "{}", + "key": "header" + } + ] + } + }, + "response": { + "id": "c0963e90-e6f5-4351-b1cf-ba7ad0e1dae1", + "status": "Created", + "code": 201, + "header": [ + { + "key": "Date", + "value": "Tue, 10 Mar 2026 12:20:14 GMT" + }, + { + "key": "Server", + "value": "Apache/2.4.66 (Debian)" + }, + { + "key": "X-Content-Type-Options", + "value": "nosniff" + }, + { + "key": "X-Frame-Options", + "value": "SAMEORIGIN" + }, + { + "key": "X-Permitted-Cross-Domain-Policies", + "value": "none" + }, + { + "key": "X-Robots-Tag", + "value": "noindex, nofollow" + }, + { + "key": "Referrer-Policy", + "value": "no-referrer" + }, + { + "key": "X-Powered-By", + "value": "PHP/8.3.30" + }, + { + "key": "Content-Security-Policy", + "value": "default-src 'none';base-uri 'none';manifest-src 'self';frame-ancestors 'none'" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=3b9d3040c41263f883d568f96829eb7e; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=3b9d3040c41263f883d568f96829eb7e; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=3b9d3040c41263f883d568f96829eb7e; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=3b9d3040c41263f883d568f96829eb7e; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=3b9d3040c41263f883d568f96829eb7e; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=941ff47c813e61c0e406a2dbdfc1c000; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=941ff47c813e61c0e406a2dbdfc1c000; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=941ff47c813e61c0e406a2dbdfc1c000; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=941ff47c813e61c0e406a2dbdfc1c000; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=941ff47c813e61c0e406a2dbdfc1c000; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "X-Request-Id", + "value": "EOKG7Z0ZYgUnhc6I0UYY" + }, + { + "key": "Cache-Control", + "value": "no-cache, no-store, must-revalidate" + }, + { + "key": "Feature-Policy", + "value": "autoplay 'none';camera 'none';fullscreen 'none';geolocation 'none';microphone 'none';payment 'none'" + }, + { + "key": "X-User-Id", + "value": "admin" + }, + { + "key": "Content-Length", + "value": "548" + }, + { + "key": "Keep-Alive", + "value": "timeout=5, max=96" + }, + { + "key": "Connection", + "value": "Keep-Alive" + }, + { + "key": "Content-Type", + "value": "application/json; charset=utf-8" + } + ], + "stream": { + "type": "Buffer", + "data": [ + 123, + 34, + 117, + 114, + 108, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 105, + 92, + 47, + 118, + 49, + 92, + 47, + 122, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 45, + 105, + 110, + 102, + 111, + 114, + 109, + 97, + 116, + 105, + 101, + 111, + 98, + 106, + 101, + 99, + 116, + 116, + 121, + 112, + 101, + 110, + 92, + 47, + 57, + 101, + 54, + 49, + 50, + 102, + 98, + 100, + 45, + 49, + 56, + 54, + 102, + 45, + 52, + 102, + 53, + 102, + 45, + 98, + 56, + 51, + 57, + 45, + 52, + 50, + 100, + 57, + 100, + 55, + 51, + 99, + 55, + 57, + 54, + 97, + 34, + 44, + 34, + 117, + 117, + 105, + 100, + 34, + 58, + 34, + 57, + 101, + 54, + 49, + 50, + 102, + 98, + 100, + 45, + 49, + 56, + 54, + 102, + 45, + 52, + 102, + 53, + 102, + 45, + 98, + 56, + 51, + 57, + 45, + 52, + 50, + 100, + 57, + 100, + 55, + 51, + 99, + 55, + 57, + 54, + 97, + 34, + 44, + 34, + 122, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 105, + 92, + 47, + 118, + 49, + 92, + 47, + 122, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 110, + 92, + 47, + 49, + 53, + 98, + 52, + 54, + 55, + 100, + 52, + 45, + 101, + 49, + 49, + 98, + 45, + 52, + 48, + 99, + 56, + 45, + 97, + 53, + 101, + 49, + 45, + 102, + 54, + 99, + 97, + 54, + 98, + 53, + 53, + 99, + 97, + 55, + 99, + 34, + 44, + 34, + 105, + 110, + 102, + 111, + 114, + 109, + 97, + 116, + 105, + 101, + 111, + 98, + 106, + 101, + 99, + 116, + 116, + 121, + 112, + 101, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 105, + 92, + 47, + 118, + 49, + 92, + 47, + 105, + 110, + 102, + 111, + 114, + 109, + 97, + 116, + 105, + 101, + 111, + 98, + 106, + 101, + 99, + 116, + 116, + 121, + 112, + 101, + 110, + 92, + 47, + 56, + 53, + 57, + 102, + 57, + 50, + 99, + 102, + 45, + 51, + 54, + 102, + 56, + 45, + 52, + 55, + 97, + 54, + 45, + 97, + 55, + 52, + 99, + 45, + 102, + 50, + 53, + 56, + 102, + 48, + 57, + 102, + 97, + 100, + 97, + 56, + 34, + 44, + 34, + 118, + 111, + 108, + 103, + 110, + 117, + 109, + 109, + 101, + 114, + 34, + 58, + 49, + 44, + 34, + 114, + 105, + 99, + 104, + 116, + 105, + 110, + 103, + 34, + 58, + 34, + 105, + 110, + 107, + 111, + 109, + 101, + 110, + 100, + 34, + 44, + 34, + 115, + 116, + 97, + 116, + 117, + 115, + 116, + 121, + 112, + 101, + 34, + 58, + 34, + 34, + 125 + ] + }, + "cookie": [], + "responseTime": 188, + "responseSize": 548 + }, + "id": "6b3995e4-0d6d-4a1c-8fb0-5ba6572420a3" + }, + { + "cursor": { + "ref": "7fa26161-cfea-4107-a2bf-4e17f3082e97", + "length": 313, + "cycles": 1, + "position": 286, + "iteration": 0, + "httpRequestId": "29fa21d3-1794-4cec-87b7-b2b49d00c9bf" + }, + "item": { + "id": "1f65b6c4-137e-4486-8038-4cf1496212ec", + "name": "Publish Informatieobjecttype Copy", + "request": { + "url": { + "path": [ + "publish" + ], + "host": [ + "{{informatieobjecttype_url}}" + ], + "query": [], + "variable": [] + }, + "method": "POST" + }, + "response": [], + "event": [] + }, + "request": { + "url": { + "protocol": "http", + "port": "8080", + "path": [ + "index.php", + "apps", + "procest", + "api", + "zgw", + "catalogi", + "v1", + "informatieobjecttypen", + "859f92cf-36f8-47a6-a74c-f258f09fada8", + "publish" + ], + "host": [ + "localhost" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Authorization", + "value": "Bearer eyJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJwcm9jZXN0LWFkbWluIiwiY2xpZW50X2lkIjoicHJvY2VzdC1hZG1pbiIsImlhdCI6IjE3NzMxNDUyMTUiLCJ1c2VyX2lkIjoicHJvY2VzdC1hZG1pbiIsInVzZXJfcmVwcmVzZW50YXRpb24iOiIifQ.Hr8wFX_o19opwU1lU6w7uiqopw-9Lm5Xh7bK45k2SGQ", + "system": true + }, + { + "key": "User-Agent", + "value": "PostmanRuntime/7.39.1", + "system": true + }, + { + "key": "Accept", + "value": "*/*", + "system": true + }, + { + "key": "Cache-Control", + "value": "no-cache", + "system": true + }, + { + "key": "Postman-Token", + "value": "9b9fa967-4d67-454a-bcc1-d3557e8830a8", + "system": true + }, + { + "key": "Host", + "value": "localhost:8080", + "system": true + }, + { + "key": "Accept-Encoding", + "value": "gzip, deflate, br", + "system": true + }, + { + "key": "Connection", + "value": "keep-alive", + "system": true + }, + { + "key": "Cookie", + "value": "ocvp3112b4wg=941ff47c813e61c0e406a2dbdfc1c000; oc_sessionPassphrase=LBNdKxRzA0iqoULIruNxDDh2BK3O%2BrCIU8aUmiUcOFvy5Xw1YfjwQNlmBW2IkGwJYtxXh9%2BwDN6vYuGNX07tXzkBtjQJUWTGdzf8AIOUIVxVx5DfyWAQZ7nmYmQv6XSE; nc_sameSiteCookielax=true; nc_sameSiteCookiestrict=true", + "system": true + }, + { + "key": "Content-Length", + "value": "0", + "system": true + } + ], + "method": "POST", + "auth": { + "type": "jwt", + "jwt": [ + { + "type": "string", + "value": "{\r\n \"iss\": \"procest-admin\",\r\n \"client_id\": \"procest-admin\",\r\n \"iat\": \"1773145215\",\r\n \"user_id\": \"procest-admin\",\r\n \"user_representation\": \"\"\r\n}", + "key": "payload" + }, + { + "type": "string", + "value": "procest-admin-secret-key-for-testing", + "key": "secret" + }, + { + "type": "string", + "value": "HS256", + "key": "algorithm" + }, + { + "type": "boolean", + "value": false, + "key": "isSecretBase64Encoded" + }, + { + "type": "string", + "value": "header", + "key": "addTokenTo" + }, + { + "type": "string", + "value": "Bearer", + "key": "headerPrefix" + }, + { + "type": "string", + "value": "token", + "key": "queryParamKey" + }, + { + "type": "string", + "value": "{}", + "key": "header" + } + ] + } + }, + "response": { + "id": "79e71596-3948-4287-ae7e-299754ffd0fb", + "status": "OK", + "code": 200, + "header": [ + { + "key": "Date", + "value": "Tue, 10 Mar 2026 12:20:14 GMT" + }, + { + "key": "Server", + "value": "Apache/2.4.66 (Debian)" + }, + { + "key": "X-Content-Type-Options", + "value": "nosniff" + }, + { + "key": "X-Frame-Options", + "value": "SAMEORIGIN" + }, + { + "key": "X-Permitted-Cross-Domain-Policies", + "value": "none" + }, + { + "key": "X-Robots-Tag", + "value": "noindex, nofollow" + }, + { + "key": "Referrer-Policy", + "value": "no-referrer" + }, + { + "key": "X-Powered-By", + "value": "PHP/8.3.30" + }, + { + "key": "Content-Security-Policy", + "value": "default-src 'none';base-uri 'none';manifest-src 'self';frame-ancestors 'none'" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=941ff47c813e61c0e406a2dbdfc1c000; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=941ff47c813e61c0e406a2dbdfc1c000; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=941ff47c813e61c0e406a2dbdfc1c000; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=941ff47c813e61c0e406a2dbdfc1c000; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=941ff47c813e61c0e406a2dbdfc1c000; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=0eb4fe0cff2ac23065e197d99daa71ae; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=0eb4fe0cff2ac23065e197d99daa71ae; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=0eb4fe0cff2ac23065e197d99daa71ae; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=0eb4fe0cff2ac23065e197d99daa71ae; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=0eb4fe0cff2ac23065e197d99daa71ae; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "X-Request-Id", + "value": "jyXX9QGjTokt9715ztzP" + }, + { + "key": "Cache-Control", + "value": "no-cache, no-store, must-revalidate" + }, + { + "key": "Feature-Policy", + "value": "autoplay 'none';camera 'none';fullscreen 'none';geolocation 'none';microphone 'none';payment 'none'" + }, + { + "key": "X-User-Id", + "value": "admin" + }, + { + "key": "Content-Encoding", + "value": "gzip" + }, + { + "key": "Content-Length", + "value": "329" + }, + { + "key": "Keep-Alive", + "value": "timeout=5, max=95" + }, + { + "key": "Connection", + "value": "Keep-Alive" + }, + { + "key": "Content-Type", + "value": "application/json; charset=utf-8" + } + ], + "stream": { + "type": "Buffer", + "data": [ + 123, + 34, + 117, + 114, + 108, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 105, + 92, + 47, + 118, + 49, + 92, + 47, + 105, + 110, + 102, + 111, + 114, + 109, + 97, + 116, + 105, + 101, + 111, + 98, + 106, + 101, + 99, + 116, + 116, + 121, + 112, + 101, + 110, + 92, + 47, + 56, + 53, + 57, + 102, + 57, + 50, + 99, + 102, + 45, + 51, + 54, + 102, + 56, + 45, + 52, + 55, + 97, + 54, + 45, + 97, + 55, + 52, + 99, + 45, + 102, + 50, + 53, + 56, + 102, + 48, + 57, + 102, + 97, + 100, + 97, + 56, + 34, + 44, + 34, + 117, + 117, + 105, + 100, + 34, + 58, + 34, + 56, + 53, + 57, + 102, + 57, + 50, + 99, + 102, + 45, + 51, + 54, + 102, + 56, + 45, + 52, + 55, + 97, + 54, + 45, + 97, + 55, + 52, + 99, + 45, + 102, + 50, + 53, + 56, + 102, + 48, + 57, + 102, + 97, + 100, + 97, + 56, + 34, + 44, + 34, + 111, + 109, + 115, + 99, + 104, + 114, + 105, + 106, + 118, + 105, + 110, + 103, + 34, + 58, + 34, + 102, + 55, + 55, + 57, + 101, + 98, + 98, + 101, + 45, + 57, + 52, + 52, + 52, + 45, + 52, + 100, + 100, + 99, + 45, + 56, + 54, + 48, + 52, + 45, + 52, + 100, + 55, + 99, + 100, + 97, + 98, + 98, + 55, + 56, + 102, + 101, + 34, + 44, + 34, + 116, + 111, + 101, + 108, + 105, + 99, + 104, + 116, + 105, + 110, + 103, + 34, + 58, + 34, + 34, + 44, + 34, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 117, + 115, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 105, + 92, + 47, + 118, + 49, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 117, + 115, + 115, + 101, + 110, + 92, + 47, + 53, + 48, + 53, + 55, + 52, + 48, + 56, + 102, + 45, + 102, + 100, + 55, + 54, + 45, + 52, + 54, + 57, + 101, + 45, + 56, + 54, + 52, + 54, + 45, + 98, + 99, + 99, + 52, + 98, + 97, + 50, + 101, + 102, + 97, + 56, + 100, + 34, + 44, + 34, + 99, + 111, + 110, + 99, + 101, + 112, + 116, + 34, + 58, + 102, + 97, + 108, + 115, + 101, + 44, + 34, + 118, + 101, + 114, + 116, + 114, + 111, + 117, + 119, + 101, + 108, + 105, + 106, + 107, + 104, + 101, + 105, + 100, + 97, + 97, + 110, + 100, + 117, + 105, + 100, + 105, + 110, + 103, + 34, + 58, + 34, + 111, + 112, + 101, + 110, + 98, + 97, + 97, + 114, + 34, + 44, + 34, + 105, + 110, + 102, + 111, + 114, + 109, + 97, + 116, + 105, + 101, + 111, + 98, + 106, + 101, + 99, + 116, + 99, + 97, + 116, + 101, + 103, + 111, + 114, + 105, + 101, + 34, + 58, + 34, + 100, + 111, + 99, + 117, + 109, + 101, + 110, + 116, + 34, + 44, + 34, + 98, + 101, + 103, + 105, + 110, + 71, + 101, + 108, + 100, + 105, + 103, + 104, + 101, + 105, + 100, + 34, + 58, + 34, + 50, + 48, + 49, + 57, + 45, + 48, + 49, + 45, + 48, + 49, + 34, + 44, + 34, + 101, + 105, + 110, + 100, + 101, + 71, + 101, + 108, + 100, + 105, + 103, + 104, + 101, + 105, + 100, + 34, + 58, + 34, + 50, + 48, + 50, + 54, + 45, + 48, + 51, + 45, + 49, + 48, + 34, + 44, + 34, + 118, + 101, + 114, + 112, + 108, + 105, + 99, + 104, + 116, + 34, + 58, + 102, + 97, + 108, + 115, + 101, + 125 + ] + }, + "cookie": [], + "responseTime": 167, + "responseSize": 577 + }, + "id": "1f65b6c4-137e-4486-8038-4cf1496212ec" + }, + { + "cursor": { + "ref": "a805a70a-48ba-400d-a2d0-c113579662bd", + "length": 313, + "cycles": 1, + "position": 287, + "iteration": 0, + "httpRequestId": "0b0766a5-36d7-4c7d-be19-ef2cbaa7d3a5" + }, + "item": { + "id": "94c2636a-813f-4e72-b1af-772ad961f5dc", + "name": "Create Resultaattype afleidingswijze afgehandeld", + "request": { + "url": { + "path": [ + "resultaattypen" + ], + "host": [ + "{{ztc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n\t\"zaaktype\": \"{{zaaktype_url}}\",\n\t\"omschrijving\": \"Klaar\",\n\t\"resultaattypeomschrijving\": \"{{resultaattypeomschrijving_url}}\",\n\t\"selectielijstklasse\": \"{{selectielijstklasse_procestermijn_nihil_url}}\",\n\t\"besluittypen\": [],\n \"brondatumArchiefprocedure\": {\n\t\t\"afleidingswijze\": \"afgehandeld\",\n\t\t\"procestermijn\": null,\n\t\t\"datumkenmerk\": \"\",\n\t\t\"einddatumBekend\": false,\n\t\t\"objecttype\": \"\",\n\t\t\"registratie\": \"\"\n\t}\n}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "97b135ec-a8e0-4719-852f-e3cf38b33002", + "type": "text/javascript", + "packages": {}, + "exec": [ + "if(pm.response.code == 201) {\r", + " pm.environment.set(\"resultaattype_url\", pm.response.json().url);\r", + "}" + ], + "_lastExecutionId": "bb0cf38e-af62-45aa-8823-e24dfac32101" + } + } + ] + }, + "request": { + "url": { + "protocol": "http", + "port": "8080", + "path": [ + "index.php", + "apps", + "procest", + "api", + "zgw", + "catalogi", + "v1", + "resultaattypen" + ], + "host": [ + "localhost" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Authorization", + "value": "Bearer eyJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJwcm9jZXN0LWFkbWluIiwiY2xpZW50X2lkIjoicHJvY2VzdC1hZG1pbiIsImlhdCI6IjE3NzMxNDUyMTUiLCJ1c2VyX2lkIjoicHJvY2VzdC1hZG1pbiIsInVzZXJfcmVwcmVzZW50YXRpb24iOiIifQ.Hr8wFX_o19opwU1lU6w7uiqopw-9Lm5Xh7bK45k2SGQ", + "system": true + }, + { + "key": "User-Agent", + "value": "PostmanRuntime/7.39.1", + "system": true + }, + { + "key": "Accept", + "value": "*/*", + "system": true + }, + { + "key": "Cache-Control", + "value": "no-cache", + "system": true + }, + { + "key": "Postman-Token", + "value": "f365262d-8d98-4eaa-a1bd-c8d837dc7f3b", + "system": true + }, + { + "key": "Host", + "value": "localhost:8080", + "system": true + }, + { + "key": "Accept-Encoding", + "value": "gzip, deflate, br", + "system": true + }, + { + "key": "Connection", + "value": "keep-alive", + "system": true + }, + { + "key": "Content-Length", + "value": "622", + "system": true + }, + { + "key": "Cookie", + "value": "ocvp3112b4wg=0eb4fe0cff2ac23065e197d99daa71ae; oc_sessionPassphrase=LBNdKxRzA0iqoULIruNxDDh2BK3O%2BrCIU8aUmiUcOFvy5Xw1YfjwQNlmBW2IkGwJYtxXh9%2BwDN6vYuGNX07tXzkBtjQJUWTGdzf8AIOUIVxVx5DfyWAQZ7nmYmQv6XSE; nc_sameSiteCookielax=true; nc_sameSiteCookiestrict=true", + "system": true + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n\t\"zaaktype\": \"http://localhost:8080/index.php/apps/procest/api/zgw/catalogi/v1/zaaktypen/15b467d4-e11b-40c8-a5e1-f6ca6b55ca7c\",\n\t\"omschrijving\": \"Klaar\",\n\t\"resultaattypeomschrijving\": \"https://selectielijst.openzaak.nl/api/v1/resultaattypeomschrijvingen/ce8cf476-0b59-496f-8eee-957a7c6e2506\",\n\t\"selectielijstklasse\": \"https://selectielijst.openzaak.nl/api/v1/resultaten/3fc7002b-31b6-4abe-82af-b6d46a9a1736\",\n\t\"besluittypen\": [],\n \"brondatumArchiefprocedure\": {\n\t\t\"afleidingswijze\": \"afgehandeld\",\n\t\t\"procestermijn\": null,\n\t\t\"datumkenmerk\": \"\",\n\t\t\"einddatumBekend\": false,\n\t\t\"objecttype\": \"\",\n\t\t\"registratie\": \"\"\n\t}\n}" + }, + "auth": { + "type": "jwt", + "jwt": [ + { + "type": "string", + "value": "{\r\n \"iss\": \"procest-admin\",\r\n \"client_id\": \"procest-admin\",\r\n \"iat\": \"1773145215\",\r\n \"user_id\": \"procest-admin\",\r\n \"user_representation\": \"\"\r\n}", + "key": "payload" + }, + { + "type": "string", + "value": "procest-admin-secret-key-for-testing", + "key": "secret" + }, + { + "type": "string", + "value": "HS256", + "key": "algorithm" + }, + { + "type": "boolean", + "value": false, + "key": "isSecretBase64Encoded" + }, + { + "type": "string", + "value": "header", + "key": "addTokenTo" + }, + { + "type": "string", + "value": "Bearer", + "key": "headerPrefix" + }, + { + "type": "string", + "value": "token", + "key": "queryParamKey" + }, + { + "type": "string", + "value": "{}", + "key": "header" + } + ] + } + }, + "response": { + "id": "124629f9-75df-473a-a0b7-870e5fa01c47", + "status": "Created", + "code": 201, + "header": [ + { + "key": "Date", + "value": "Tue, 10 Mar 2026 12:20:14 GMT" + }, + { + "key": "Server", + "value": "Apache/2.4.66 (Debian)" + }, + { + "key": "X-Content-Type-Options", + "value": "nosniff" + }, + { + "key": "X-Frame-Options", + "value": "SAMEORIGIN" + }, + { + "key": "X-Permitted-Cross-Domain-Policies", + "value": "none" + }, + { + "key": "X-Robots-Tag", + "value": "noindex, nofollow" + }, + { + "key": "Referrer-Policy", + "value": "no-referrer" + }, + { + "key": "X-Powered-By", + "value": "PHP/8.3.30" + }, + { + "key": "Content-Security-Policy", + "value": "default-src 'none';base-uri 'none';manifest-src 'self';frame-ancestors 'none'" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=0eb4fe0cff2ac23065e197d99daa71ae; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=0eb4fe0cff2ac23065e197d99daa71ae; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=0eb4fe0cff2ac23065e197d99daa71ae; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=0eb4fe0cff2ac23065e197d99daa71ae; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=0eb4fe0cff2ac23065e197d99daa71ae; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=2d135200df7de76c532c018f96d3eff9; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=2d135200df7de76c532c018f96d3eff9; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=2d135200df7de76c532c018f96d3eff9; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=2d135200df7de76c532c018f96d3eff9; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=2d135200df7de76c532c018f96d3eff9; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "X-Request-Id", + "value": "NsShvbbSsivy8vlsIxZ9" + }, + { + "key": "Cache-Control", + "value": "no-cache, no-store, must-revalidate" + }, + { + "key": "Feature-Policy", + "value": "autoplay 'none';camera 'none';fullscreen 'none';geolocation 'none';microphone 'none';payment 'none'" + }, + { + "key": "X-User-Id", + "value": "admin" + }, + { + "key": "Content-Length", + "value": "755" + }, + { + "key": "Keep-Alive", + "value": "timeout=5, max=94" + }, + { + "key": "Connection", + "value": "Keep-Alive" + }, + { + "key": "Content-Type", + "value": "application/json; charset=utf-8" + } + ], + "stream": { + "type": "Buffer", + "data": [ + 123, + 34, + 117, + 114, + 108, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 105, + 92, + 47, + 118, + 49, + 92, + 47, + 114, + 101, + 115, + 117, + 108, + 116, + 97, + 97, + 116, + 116, + 121, + 112, + 101, + 110, + 92, + 47, + 52, + 54, + 98, + 97, + 101, + 48, + 55, + 50, + 45, + 57, + 102, + 99, + 101, + 45, + 52, + 98, + 55, + 49, + 45, + 56, + 97, + 101, + 99, + 45, + 54, + 102, + 57, + 51, + 54, + 48, + 102, + 55, + 98, + 55, + 49, + 55, + 34, + 44, + 34, + 117, + 117, + 105, + 100, + 34, + 58, + 34, + 52, + 54, + 98, + 97, + 101, + 48, + 55, + 50, + 45, + 57, + 102, + 99, + 101, + 45, + 52, + 98, + 55, + 49, + 45, + 56, + 97, + 101, + 99, + 45, + 54, + 102, + 57, + 51, + 54, + 48, + 102, + 55, + 98, + 55, + 49, + 55, + 34, + 44, + 34, + 111, + 109, + 115, + 99, + 104, + 114, + 105, + 106, + 118, + 105, + 110, + 103, + 34, + 58, + 34, + 75, + 108, + 97, + 97, + 114, + 34, + 44, + 34, + 111, + 109, + 115, + 99, + 104, + 114, + 105, + 106, + 118, + 105, + 110, + 103, + 71, + 101, + 110, + 101, + 114, + 105, + 101, + 107, + 34, + 58, + 34, + 65, + 102, + 103, + 101, + 98, + 114, + 111, + 107, + 101, + 110, + 34, + 44, + 34, + 116, + 111, + 101, + 108, + 105, + 99, + 104, + 116, + 105, + 110, + 103, + 34, + 58, + 34, + 34, + 44, + 34, + 122, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 105, + 92, + 47, + 118, + 49, + 92, + 47, + 122, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 110, + 92, + 47, + 49, + 53, + 98, + 52, + 54, + 55, + 100, + 52, + 45, + 101, + 49, + 49, + 98, + 45, + 52, + 48, + 99, + 56, + 45, + 97, + 53, + 101, + 49, + 45, + 102, + 54, + 99, + 97, + 54, + 98, + 53, + 53, + 99, + 97, + 55, + 99, + 34, + 44, + 34, + 97, + 114, + 99, + 104, + 105, + 101, + 102, + 110, + 111, + 109, + 105, + 110, + 97, + 116, + 105, + 101, + 34, + 58, + 34, + 118, + 101, + 114, + 110, + 105, + 101, + 116, + 105, + 103, + 101, + 110, + 34, + 44, + 34, + 97, + 114, + 99, + 104, + 105, + 101, + 102, + 97, + 99, + 116, + 105, + 101, + 116, + 101, + 114, + 109, + 105, + 106, + 110, + 34, + 58, + 34, + 80, + 53, + 89, + 34, + 44, + 34, + 98, + 114, + 111, + 110, + 100, + 97, + 116, + 117, + 109, + 65, + 114, + 99, + 104, + 105, + 101, + 102, + 112, + 114, + 111, + 99, + 101, + 100, + 117, + 114, + 101, + 34, + 58, + 34, + 123, + 92, + 34, + 97, + 102, + 108, + 101, + 105, + 100, + 105, + 110, + 103, + 115, + 119, + 105, + 106, + 122, + 101, + 92, + 34, + 58, + 92, + 34, + 97, + 102, + 103, + 101, + 104, + 97, + 110, + 100, + 101, + 108, + 100, + 92, + 34, + 44, + 92, + 34, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 101, + 114, + 109, + 105, + 106, + 110, + 92, + 34, + 58, + 110, + 117, + 108, + 108, + 44, + 92, + 34, + 100, + 97, + 116, + 117, + 109, + 107, + 101, + 110, + 109, + 101, + 114, + 107, + 92, + 34, + 58, + 92, + 34, + 92, + 34, + 44, + 92, + 34, + 101, + 105, + 110, + 100, + 100, + 97, + 116, + 117, + 109, + 66, + 101, + 107, + 101, + 110, + 100, + 92, + 34, + 58, + 102, + 97, + 108, + 115, + 101, + 44, + 92, + 34, + 111, + 98, + 106, + 101, + 99, + 116, + 116, + 121, + 112, + 101, + 92, + 34, + 58, + 92, + 34, + 92, + 34, + 44, + 92, + 34, + 114, + 101, + 103, + 105, + 115, + 116, + 114, + 97, + 116, + 105, + 101, + 92, + 34, + 58, + 92, + 34, + 92, + 34, + 125, + 34, + 44, + 34, + 115, + 101, + 108, + 101, + 99, + 116, + 105, + 101, + 108, + 105, + 106, + 115, + 116, + 107, + 108, + 97, + 115, + 115, + 101, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 115, + 58, + 92, + 47, + 92, + 47, + 115, + 101, + 108, + 101, + 99, + 116, + 105, + 101, + 108, + 105, + 106, + 115, + 116, + 46, + 111, + 112, + 101, + 110, + 122, + 97, + 97, + 107, + 46, + 110, + 108, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 118, + 49, + 92, + 47, + 114, + 101, + 115, + 117, + 108, + 116, + 97, + 116, + 101, + 110, + 92, + 47, + 51, + 102, + 99, + 55, + 48, + 48, + 50, + 98, + 45, + 51, + 49, + 98, + 54, + 45, + 52, + 97, + 98, + 101, + 45, + 56, + 50, + 97, + 102, + 45, + 98, + 54, + 100, + 52, + 54, + 97, + 57, + 97, + 49, + 55, + 51, + 54, + 34, + 125 + ] + }, + "cookie": [], + "responseTime": 462, + "responseSize": 755 + }, + "id": "94c2636a-813f-4e72-b1af-772ad961f5dc" + }, + { + "cursor": { + "ref": "774d737e-0d63-4ec6-8563-9645bd2c3cf6", + "length": 313, + "cycles": 1, + "position": 288, + "iteration": 0, + "httpRequestId": "89d7d20e-6641-4cdc-a59e-ea72bee17175" + }, + "item": { + "id": "f266b172-d69b-4621-a0ee-db1f3fb1c348", + "name": "Create begin Statustype", + "request": { + "url": { + "path": [ + "statustypen" + ], + "host": [ + "{{ztc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n\t\"omschrijving\": \"Begin\",\n\t\"zaaktype\": \"{{zaaktype_url}}\",\n\t\"volgnummer\": 1\n}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "cad11fce-abc0-479b-8bd7-05c278d91ea2", + "type": "text/javascript", + "exec": [ + "pm.environment.set(\"non_eindstatustype\", pm.response.json().url);" + ], + "_lastExecutionId": "37ea66ea-12a9-4a43-b753-06177dd74a16" + } + } + ] + }, + "request": { + "url": { + "protocol": "http", + "port": "8080", + "path": [ + "index.php", + "apps", + "procest", + "api", + "zgw", + "catalogi", + "v1", + "statustypen" + ], + "host": [ + "localhost" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Authorization", + "value": "Bearer eyJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJwcm9jZXN0LWFkbWluIiwiY2xpZW50X2lkIjoicHJvY2VzdC1hZG1pbiIsImlhdCI6IjE3NzMxNDUyMTUiLCJ1c2VyX2lkIjoicHJvY2VzdC1hZG1pbiIsInVzZXJfcmVwcmVzZW50YXRpb24iOiIifQ.Hr8wFX_o19opwU1lU6w7uiqopw-9Lm5Xh7bK45k2SGQ", + "system": true + }, + { + "key": "User-Agent", + "value": "PostmanRuntime/7.39.1", + "system": true + }, + { + "key": "Accept", + "value": "*/*", + "system": true + }, + { + "key": "Cache-Control", + "value": "no-cache", + "system": true + }, + { + "key": "Postman-Token", + "value": "d62837bc-c239-458c-b278-02941224fa1e", + "system": true + }, + { + "key": "Host", + "value": "localhost:8080", + "system": true + }, + { + "key": "Accept-Encoding", + "value": "gzip, deflate, br", + "system": true + }, + { + "key": "Connection", + "value": "keep-alive", + "system": true + }, + { + "key": "Content-Length", + "value": "174", + "system": true + }, + { + "key": "Cookie", + "value": "ocvp3112b4wg=2d135200df7de76c532c018f96d3eff9; oc_sessionPassphrase=LBNdKxRzA0iqoULIruNxDDh2BK3O%2BrCIU8aUmiUcOFvy5Xw1YfjwQNlmBW2IkGwJYtxXh9%2BwDN6vYuGNX07tXzkBtjQJUWTGdzf8AIOUIVxVx5DfyWAQZ7nmYmQv6XSE; nc_sameSiteCookielax=true; nc_sameSiteCookiestrict=true", + "system": true + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n\t\"omschrijving\": \"Begin\",\n\t\"zaaktype\": \"http://localhost:8080/index.php/apps/procest/api/zgw/catalogi/v1/zaaktypen/15b467d4-e11b-40c8-a5e1-f6ca6b55ca7c\",\n\t\"volgnummer\": 1\n}" + }, + "auth": { + "type": "jwt", + "jwt": [ + { + "type": "string", + "value": "{\r\n \"iss\": \"procest-admin\",\r\n \"client_id\": \"procest-admin\",\r\n \"iat\": \"1773145215\",\r\n \"user_id\": \"procest-admin\",\r\n \"user_representation\": \"\"\r\n}", + "key": "payload" + }, + { + "type": "string", + "value": "procest-admin-secret-key-for-testing", + "key": "secret" + }, + { + "type": "string", + "value": "HS256", + "key": "algorithm" + }, + { + "type": "boolean", + "value": false, + "key": "isSecretBase64Encoded" + }, + { + "type": "string", + "value": "header", + "key": "addTokenTo" + }, + { + "type": "string", + "value": "Bearer", + "key": "headerPrefix" + }, + { + "type": "string", + "value": "token", + "key": "queryParamKey" + }, + { + "type": "string", + "value": "{}", + "key": "header" + } + ] + } + }, + "response": { + "id": "f9e0022d-0345-44b0-84ce-482f9f3ba51f", + "status": "Created", + "code": 201, + "header": [ + { + "key": "Date", + "value": "Tue, 10 Mar 2026 12:20:15 GMT" + }, + { + "key": "Server", + "value": "Apache/2.4.66 (Debian)" + }, + { + "key": "X-Content-Type-Options", + "value": "nosniff" + }, + { + "key": "X-Frame-Options", + "value": "SAMEORIGIN" + }, + { + "key": "X-Permitted-Cross-Domain-Policies", + "value": "none" + }, + { + "key": "X-Robots-Tag", + "value": "noindex, nofollow" + }, + { + "key": "Referrer-Policy", + "value": "no-referrer" + }, + { + "key": "X-Powered-By", + "value": "PHP/8.3.30" + }, + { + "key": "Content-Security-Policy", + "value": "default-src 'none';base-uri 'none';manifest-src 'self';frame-ancestors 'none'" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=2d135200df7de76c532c018f96d3eff9; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=2d135200df7de76c532c018f96d3eff9; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=2d135200df7de76c532c018f96d3eff9; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=2d135200df7de76c532c018f96d3eff9; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=2d135200df7de76c532c018f96d3eff9; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=97a177939847b1b3eda08df219563b7f; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=97a177939847b1b3eda08df219563b7f; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=97a177939847b1b3eda08df219563b7f; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=97a177939847b1b3eda08df219563b7f; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=97a177939847b1b3eda08df219563b7f; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "X-Request-Id", + "value": "u4PXxZhmrK8kjjfmLWNW" + }, + { + "key": "Cache-Control", + "value": "no-cache, no-store, must-revalidate" + }, + { + "key": "Feature-Policy", + "value": "autoplay 'none';camera 'none';fullscreen 'none';geolocation 'none';microphone 'none';payment 'none'" + }, + { + "key": "X-User-Id", + "value": "admin" + }, + { + "key": "Content-Length", + "value": "401" + }, + { + "key": "Keep-Alive", + "value": "timeout=5, max=93" + }, + { + "key": "Connection", + "value": "Keep-Alive" + }, + { + "key": "Content-Type", + "value": "application/json; charset=utf-8" + } + ], + "stream": { + "type": "Buffer", + "data": [ + 123, + 34, + 117, + 114, + 108, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 105, + 92, + 47, + 118, + 49, + 92, + 47, + 115, + 116, + 97, + 116, + 117, + 115, + 116, + 121, + 112, + 101, + 110, + 92, + 47, + 100, + 55, + 54, + 57, + 100, + 54, + 56, + 54, + 45, + 101, + 48, + 98, + 49, + 45, + 52, + 98, + 53, + 55, + 45, + 97, + 53, + 49, + 55, + 45, + 56, + 99, + 55, + 98, + 53, + 53, + 48, + 51, + 56, + 102, + 57, + 98, + 34, + 44, + 34, + 117, + 117, + 105, + 100, + 34, + 58, + 34, + 100, + 55, + 54, + 57, + 100, + 54, + 56, + 54, + 45, + 101, + 48, + 98, + 49, + 45, + 52, + 98, + 53, + 55, + 45, + 97, + 53, + 49, + 55, + 45, + 56, + 99, + 55, + 98, + 53, + 53, + 48, + 51, + 56, + 102, + 57, + 98, + 34, + 44, + 34, + 111, + 109, + 115, + 99, + 104, + 114, + 105, + 106, + 118, + 105, + 110, + 103, + 34, + 58, + 34, + 66, + 101, + 103, + 105, + 110, + 34, + 44, + 34, + 111, + 109, + 115, + 99, + 104, + 114, + 105, + 106, + 118, + 105, + 110, + 103, + 71, + 101, + 110, + 101, + 114, + 105, + 101, + 107, + 34, + 58, + 34, + 34, + 44, + 34, + 122, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 105, + 92, + 47, + 118, + 49, + 92, + 47, + 122, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 110, + 92, + 47, + 49, + 53, + 98, + 52, + 54, + 55, + 100, + 52, + 45, + 101, + 49, + 49, + 98, + 45, + 52, + 48, + 99, + 56, + 45, + 97, + 53, + 101, + 49, + 45, + 102, + 54, + 99, + 97, + 54, + 98, + 53, + 53, + 99, + 97, + 55, + 99, + 34, + 44, + 34, + 118, + 111, + 108, + 103, + 110, + 117, + 109, + 109, + 101, + 114, + 34, + 58, + 49, + 44, + 34, + 105, + 115, + 69, + 105, + 110, + 100, + 115, + 116, + 97, + 116, + 117, + 115, + 34, + 58, + 102, + 97, + 108, + 115, + 101, + 125 + ] + }, + "cookie": [], + "responseTime": 352, + "responseSize": 401 + }, + "id": "f266b172-d69b-4621-a0ee-db1f3fb1c348" + }, + { + "cursor": { + "ref": "fe48b3c9-b8b4-44a7-bcff-ec5e8b334622", + "length": 313, + "cycles": 1, + "position": 289, + "iteration": 0, + "httpRequestId": "cfa48f83-56ab-47b5-80a2-ef9929015e80" + }, + "item": { + "id": "caab5a23-c06a-4f6f-b7b4-819449d79c8e", + "name": "Create eind Statustype", + "request": { + "url": { + "path": [ + "statustypen" + ], + "host": [ + "{{ztc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n\t\"omschrijving\": \"Eind\",\n\t\"zaaktype\": \"{{zaaktype_url}}\",\n\t\"volgnummer\": 2\n}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "c3cd71fa-63ce-4b8e-ab79-cbfac8d85b84", + "type": "text/javascript", + "exec": [ + "pm.environment.set(\"eindstatustype\", pm.response.json().url);" + ], + "_lastExecutionId": "ddd2c636-6921-42db-a3a4-6c54573d1284" + } + } + ] + }, + "request": { + "url": { + "protocol": "http", + "port": "8080", + "path": [ + "index.php", + "apps", + "procest", + "api", + "zgw", + "catalogi", + "v1", + "statustypen" + ], + "host": [ + "localhost" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Authorization", + "value": "Bearer eyJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJwcm9jZXN0LWFkbWluIiwiY2xpZW50X2lkIjoicHJvY2VzdC1hZG1pbiIsImlhdCI6IjE3NzMxNDUyMTYiLCJ1c2VyX2lkIjoicHJvY2VzdC1hZG1pbiIsInVzZXJfcmVwcmVzZW50YXRpb24iOiIifQ.hmoQts0zKE4nylYpfAfJ_c-HtrDWXsj7Oiyqo3x-5xI", + "system": true + }, + { + "key": "User-Agent", + "value": "PostmanRuntime/7.39.1", + "system": true + }, + { + "key": "Accept", + "value": "*/*", + "system": true + }, + { + "key": "Cache-Control", + "value": "no-cache", + "system": true + }, + { + "key": "Postman-Token", + "value": "90bb1273-ae33-46a8-ab24-e046819093ae", + "system": true + }, + { + "key": "Host", + "value": "localhost:8080", + "system": true + }, + { + "key": "Accept-Encoding", + "value": "gzip, deflate, br", + "system": true + }, + { + "key": "Connection", + "value": "keep-alive", + "system": true + }, + { + "key": "Content-Length", + "value": "173", + "system": true + }, + { + "key": "Cookie", + "value": "ocvp3112b4wg=97a177939847b1b3eda08df219563b7f; oc_sessionPassphrase=LBNdKxRzA0iqoULIruNxDDh2BK3O%2BrCIU8aUmiUcOFvy5Xw1YfjwQNlmBW2IkGwJYtxXh9%2BwDN6vYuGNX07tXzkBtjQJUWTGdzf8AIOUIVxVx5DfyWAQZ7nmYmQv6XSE; nc_sameSiteCookielax=true; nc_sameSiteCookiestrict=true", + "system": true + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n\t\"omschrijving\": \"Eind\",\n\t\"zaaktype\": \"http://localhost:8080/index.php/apps/procest/api/zgw/catalogi/v1/zaaktypen/15b467d4-e11b-40c8-a5e1-f6ca6b55ca7c\",\n\t\"volgnummer\": 2\n}" + }, + "auth": { + "type": "jwt", + "jwt": [ + { + "type": "string", + "value": "{\r\n \"iss\": \"procest-admin\",\r\n \"client_id\": \"procest-admin\",\r\n \"iat\": \"1773145216\",\r\n \"user_id\": \"procest-admin\",\r\n \"user_representation\": \"\"\r\n}", + "key": "payload" + }, + { + "type": "string", + "value": "procest-admin-secret-key-for-testing", + "key": "secret" + }, + { + "type": "string", + "value": "HS256", + "key": "algorithm" + }, + { + "type": "boolean", + "value": false, + "key": "isSecretBase64Encoded" + }, + { + "type": "string", + "value": "header", + "key": "addTokenTo" + }, + { + "type": "string", + "value": "Bearer", + "key": "headerPrefix" + }, + { + "type": "string", + "value": "token", + "key": "queryParamKey" + }, + { + "type": "string", + "value": "{}", + "key": "header" + } + ] + } + }, + "response": { + "id": "aeb1e2fb-cd40-4a38-9ce0-da097489b384", + "status": "Created", + "code": 201, + "header": [ + { + "key": "Date", + "value": "Tue, 10 Mar 2026 12:20:15 GMT" + }, + { + "key": "Server", + "value": "Apache/2.4.66 (Debian)" + }, + { + "key": "X-Content-Type-Options", + "value": "nosniff" + }, + { + "key": "X-Frame-Options", + "value": "SAMEORIGIN" + }, + { + "key": "X-Permitted-Cross-Domain-Policies", + "value": "none" + }, + { + "key": "X-Robots-Tag", + "value": "noindex, nofollow" + }, + { + "key": "Referrer-Policy", + "value": "no-referrer" + }, + { + "key": "X-Powered-By", + "value": "PHP/8.3.30" + }, + { + "key": "Content-Security-Policy", + "value": "default-src 'none';base-uri 'none';manifest-src 'self';frame-ancestors 'none'" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=97a177939847b1b3eda08df219563b7f; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=97a177939847b1b3eda08df219563b7f; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=97a177939847b1b3eda08df219563b7f; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=97a177939847b1b3eda08df219563b7f; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=97a177939847b1b3eda08df219563b7f; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=ace871275db66466ba33e42e832e796c; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=ace871275db66466ba33e42e832e796c; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=ace871275db66466ba33e42e832e796c; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=ace871275db66466ba33e42e832e796c; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=ace871275db66466ba33e42e832e796c; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "X-Request-Id", + "value": "2HWRrtEOo4Ml2M2OZWKB" + }, + { + "key": "Cache-Control", + "value": "no-cache, no-store, must-revalidate" + }, + { + "key": "Feature-Policy", + "value": "autoplay 'none';camera 'none';fullscreen 'none';geolocation 'none';microphone 'none';payment 'none'" + }, + { + "key": "X-User-Id", + "value": "admin" + }, + { + "key": "Content-Length", + "value": "400" + }, + { + "key": "Keep-Alive", + "value": "timeout=5, max=92" + }, + { + "key": "Connection", + "value": "Keep-Alive" + }, + { + "key": "Content-Type", + "value": "application/json; charset=utf-8" + } + ], + "stream": { + "type": "Buffer", + "data": [ + 123, + 34, + 117, + 114, + 108, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 105, + 92, + 47, + 118, + 49, + 92, + 47, + 115, + 116, + 97, + 116, + 117, + 115, + 116, + 121, + 112, + 101, + 110, + 92, + 47, + 49, + 99, + 99, + 100, + 102, + 102, + 53, + 97, + 45, + 48, + 56, + 57, + 52, + 45, + 52, + 57, + 97, + 56, + 45, + 56, + 55, + 53, + 101, + 45, + 97, + 57, + 51, + 55, + 48, + 54, + 100, + 52, + 50, + 98, + 48, + 51, + 34, + 44, + 34, + 117, + 117, + 105, + 100, + 34, + 58, + 34, + 49, + 99, + 99, + 100, + 102, + 102, + 53, + 97, + 45, + 48, + 56, + 57, + 52, + 45, + 52, + 57, + 97, + 56, + 45, + 56, + 55, + 53, + 101, + 45, + 97, + 57, + 51, + 55, + 48, + 54, + 100, + 52, + 50, + 98, + 48, + 51, + 34, + 44, + 34, + 111, + 109, + 115, + 99, + 104, + 114, + 105, + 106, + 118, + 105, + 110, + 103, + 34, + 58, + 34, + 69, + 105, + 110, + 100, + 34, + 44, + 34, + 111, + 109, + 115, + 99, + 104, + 114, + 105, + 106, + 118, + 105, + 110, + 103, + 71, + 101, + 110, + 101, + 114, + 105, + 101, + 107, + 34, + 58, + 34, + 34, + 44, + 34, + 122, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 105, + 92, + 47, + 118, + 49, + 92, + 47, + 122, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 110, + 92, + 47, + 49, + 53, + 98, + 52, + 54, + 55, + 100, + 52, + 45, + 101, + 49, + 49, + 98, + 45, + 52, + 48, + 99, + 56, + 45, + 97, + 53, + 101, + 49, + 45, + 102, + 54, + 99, + 97, + 54, + 98, + 53, + 53, + 99, + 97, + 55, + 99, + 34, + 44, + 34, + 118, + 111, + 108, + 103, + 110, + 117, + 109, + 109, + 101, + 114, + 34, + 58, + 50, + 44, + 34, + 105, + 115, + 69, + 105, + 110, + 100, + 115, + 116, + 97, + 116, + 117, + 115, + 34, + 58, + 102, + 97, + 108, + 115, + 101, + 125 + ] + }, + "cookie": [], + "responseTime": 244, + "responseSize": 400 + }, + "id": "caab5a23-c06a-4f6f-b7b4-819449d79c8e" + }, + { + "cursor": { + "ref": "3820288c-6a9c-4cae-b6fe-859876907691", + "length": 313, + "cycles": 1, + "position": 290, + "iteration": 0, + "httpRequestId": "65b6b4ab-d0f5-4606-86dd-4d6df3930c7f" + }, + "item": { + "id": "597bd192-dbd2-4af3-8748-93fa852d742b", + "name": "Create Roltype", + "request": { + "url": { + "path": [ + "roltypen" + ], + "host": [ + "{{ztc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n\t\"zaaktype\": \"{{zaaktype_url}}\",\n\t\"omschrijving\": \"test\",\n\t\"omschrijvingGeneriek\": \"adviseur\"\n}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "37182bee-53bb-4ba3-aaea-390e3f760945", + "type": "text/javascript", + "exec": [ + "pm.environment.set(\"roltype_url\", pm.response.json().url);" + ], + "_lastExecutionId": "94e3afd7-9f15-4f61-b625-a45380ed7daa" + } + } + ] + }, + "request": { + "url": { + "protocol": "http", + "port": "8080", + "path": [ + "index.php", + "apps", + "procest", + "api", + "zgw", + "catalogi", + "v1", + "roltypen" + ], + "host": [ + "localhost" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Authorization", + "value": "Bearer eyJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJwcm9jZXN0LWFkbWluIiwiY2xpZW50X2lkIjoicHJvY2VzdC1hZG1pbiIsImlhdCI6IjE3NzMxNDUyMTYiLCJ1c2VyX2lkIjoicHJvY2VzdC1hZG1pbiIsInVzZXJfcmVwcmVzZW50YXRpb24iOiIifQ.hmoQts0zKE4nylYpfAfJ_c-HtrDWXsj7Oiyqo3x-5xI", + "system": true + }, + { + "key": "User-Agent", + "value": "PostmanRuntime/7.39.1", + "system": true + }, + { + "key": "Accept", + "value": "*/*", + "system": true + }, + { + "key": "Cache-Control", + "value": "no-cache", + "system": true + }, + { + "key": "Postman-Token", + "value": "7eb3fbbb-ee45-4041-9d4a-4c70373e4c90", + "system": true + }, + { + "key": "Host", + "value": "localhost:8080", + "system": true + }, + { + "key": "Accept-Encoding", + "value": "gzip, deflate, br", + "system": true + }, + { + "key": "Connection", + "value": "keep-alive", + "system": true + }, + { + "key": "Content-Length", + "value": "192", + "system": true + }, + { + "key": "Cookie", + "value": "ocvp3112b4wg=ace871275db66466ba33e42e832e796c; oc_sessionPassphrase=LBNdKxRzA0iqoULIruNxDDh2BK3O%2BrCIU8aUmiUcOFvy5Xw1YfjwQNlmBW2IkGwJYtxXh9%2BwDN6vYuGNX07tXzkBtjQJUWTGdzf8AIOUIVxVx5DfyWAQZ7nmYmQv6XSE; nc_sameSiteCookielax=true; nc_sameSiteCookiestrict=true", + "system": true + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n\t\"zaaktype\": \"http://localhost:8080/index.php/apps/procest/api/zgw/catalogi/v1/zaaktypen/15b467d4-e11b-40c8-a5e1-f6ca6b55ca7c\",\n\t\"omschrijving\": \"test\",\n\t\"omschrijvingGeneriek\": \"adviseur\"\n}" + }, + "auth": { + "type": "jwt", + "jwt": [ + { + "type": "string", + "value": "{\r\n \"iss\": \"procest-admin\",\r\n \"client_id\": \"procest-admin\",\r\n \"iat\": \"1773145216\",\r\n \"user_id\": \"procest-admin\",\r\n \"user_representation\": \"\"\r\n}", + "key": "payload" + }, + { + "type": "string", + "value": "procest-admin-secret-key-for-testing", + "key": "secret" + }, + { + "type": "string", + "value": "HS256", + "key": "algorithm" + }, + { + "type": "boolean", + "value": false, + "key": "isSecretBase64Encoded" + }, + { + "type": "string", + "value": "header", + "key": "addTokenTo" + }, + { + "type": "string", + "value": "Bearer", + "key": "headerPrefix" + }, + { + "type": "string", + "value": "token", + "key": "queryParamKey" + }, + { + "type": "string", + "value": "{}", + "key": "header" + } + ] + } + }, + "response": { + "id": "11e4b3ea-8fdf-4c65-b248-4ef37f9bc901", + "status": "Created", + "code": 201, + "header": [ + { + "key": "Date", + "value": "Tue, 10 Mar 2026 12:20:15 GMT" + }, + { + "key": "Server", + "value": "Apache/2.4.66 (Debian)" + }, + { + "key": "X-Content-Type-Options", + "value": "nosniff" + }, + { + "key": "X-Frame-Options", + "value": "SAMEORIGIN" + }, + { + "key": "X-Permitted-Cross-Domain-Policies", + "value": "none" + }, + { + "key": "X-Robots-Tag", + "value": "noindex, nofollow" + }, + { + "key": "Referrer-Policy", + "value": "no-referrer" + }, + { + "key": "X-Powered-By", + "value": "PHP/8.3.30" + }, + { + "key": "Content-Security-Policy", + "value": "default-src 'none';base-uri 'none';manifest-src 'self';frame-ancestors 'none'" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=ace871275db66466ba33e42e832e796c; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=ace871275db66466ba33e42e832e796c; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=ace871275db66466ba33e42e832e796c; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=ace871275db66466ba33e42e832e796c; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=ace871275db66466ba33e42e832e796c; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=06c5d44729d8e7e507cfd9d9d4470045; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=06c5d44729d8e7e507cfd9d9d4470045; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=06c5d44729d8e7e507cfd9d9d4470045; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=06c5d44729d8e7e507cfd9d9d4470045; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=06c5d44729d8e7e507cfd9d9d4470045; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "X-Request-Id", + "value": "QPiuFWbisrwzdngXvAGP" + }, + { + "key": "Cache-Control", + "value": "no-cache, no-store, must-revalidate" + }, + { + "key": "Feature-Policy", + "value": "autoplay 'none';camera 'none';fullscreen 'none';geolocation 'none';microphone 'none';payment 'none'" + }, + { + "key": "X-User-Id", + "value": "admin" + }, + { + "key": "Content-Length", + "value": "369" + }, + { + "key": "Keep-Alive", + "value": "timeout=5, max=91" + }, + { + "key": "Connection", + "value": "Keep-Alive" + }, + { + "key": "Content-Type", + "value": "application/json; charset=utf-8" + } + ], + "stream": { + "type": "Buffer", + "data": [ + 123, + 34, + 117, + 114, + 108, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 105, + 92, + 47, + 118, + 49, + 92, + 47, + 114, + 111, + 108, + 116, + 121, + 112, + 101, + 110, + 92, + 47, + 52, + 98, + 54, + 49, + 54, + 53, + 99, + 100, + 45, + 55, + 100, + 55, + 51, + 45, + 52, + 50, + 49, + 53, + 45, + 56, + 102, + 56, + 102, + 45, + 48, + 51, + 55, + 51, + 100, + 53, + 51, + 102, + 53, + 52, + 55, + 49, + 34, + 44, + 34, + 117, + 117, + 105, + 100, + 34, + 58, + 34, + 52, + 98, + 54, + 49, + 54, + 53, + 99, + 100, + 45, + 55, + 100, + 55, + 51, + 45, + 52, + 50, + 49, + 53, + 45, + 56, + 102, + 56, + 102, + 45, + 48, + 51, + 55, + 51, + 100, + 53, + 51, + 102, + 53, + 52, + 55, + 49, + 34, + 44, + 34, + 111, + 109, + 115, + 99, + 104, + 114, + 105, + 106, + 118, + 105, + 110, + 103, + 34, + 58, + 34, + 116, + 101, + 115, + 116, + 34, + 44, + 34, + 111, + 109, + 115, + 99, + 104, + 114, + 105, + 106, + 118, + 105, + 110, + 103, + 71, + 101, + 110, + 101, + 114, + 105, + 101, + 107, + 34, + 58, + 34, + 97, + 100, + 118, + 105, + 115, + 101, + 117, + 114, + 34, + 44, + 34, + 122, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 105, + 92, + 47, + 118, + 49, + 92, + 47, + 122, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 110, + 92, + 47, + 49, + 53, + 98, + 52, + 54, + 55, + 100, + 52, + 45, + 101, + 49, + 49, + 98, + 45, + 52, + 48, + 99, + 56, + 45, + 97, + 53, + 101, + 49, + 45, + 102, + 54, + 99, + 97, + 54, + 98, + 53, + 53, + 99, + 97, + 55, + 99, + 34, + 125 + ] + }, + "cookie": [], + "responseTime": 257, + "responseSize": 369 + }, + "id": "597bd192-dbd2-4af3-8748-93fa852d742b" + }, + { + "cursor": { + "ref": "250e07b6-9180-48d0-80c5-686cb90fad39", + "length": 313, + "cycles": 1, + "position": 291, + "iteration": 0, + "httpRequestId": "4bbe2bce-be61-46f4-a3fe-392b6436e111" + }, + "item": { + "id": "b57d71c4-6778-43f2-9324-6c00e2d6b4fd", + "name": "Publish Zaaktype Copy", + "request": { + "url": { + "path": [ + "publish" + ], + "host": [ + "{{zaaktype_url}}" + ], + "query": [], + "variable": [] + }, + "method": "POST" + }, + "response": [], + "event": [] + }, + "request": { + "url": { + "protocol": "http", + "port": "8080", + "path": [ + "index.php", + "apps", + "procest", + "api", + "zgw", + "catalogi", + "v1", + "zaaktypen", + "15b467d4-e11b-40c8-a5e1-f6ca6b55ca7c", + "publish" + ], + "host": [ + "localhost" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Authorization", + "value": "Bearer eyJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJwcm9jZXN0LWFkbWluIiwiY2xpZW50X2lkIjoicHJvY2VzdC1hZG1pbiIsImlhdCI6IjE3NzMxNDUyMTYiLCJ1c2VyX2lkIjoicHJvY2VzdC1hZG1pbiIsInVzZXJfcmVwcmVzZW50YXRpb24iOiIifQ.hmoQts0zKE4nylYpfAfJ_c-HtrDWXsj7Oiyqo3x-5xI", + "system": true + }, + { + "key": "User-Agent", + "value": "PostmanRuntime/7.39.1", + "system": true + }, + { + "key": "Accept", + "value": "*/*", + "system": true + }, + { + "key": "Cache-Control", + "value": "no-cache", + "system": true + }, + { + "key": "Postman-Token", + "value": "9126657a-4033-414d-9d00-a39fe977fdbe", + "system": true + }, + { + "key": "Host", + "value": "localhost:8080", + "system": true + }, + { + "key": "Accept-Encoding", + "value": "gzip, deflate, br", + "system": true + }, + { + "key": "Connection", + "value": "keep-alive", + "system": true + }, + { + "key": "Cookie", + "value": "ocvp3112b4wg=06c5d44729d8e7e507cfd9d9d4470045; oc_sessionPassphrase=LBNdKxRzA0iqoULIruNxDDh2BK3O%2BrCIU8aUmiUcOFvy5Xw1YfjwQNlmBW2IkGwJYtxXh9%2BwDN6vYuGNX07tXzkBtjQJUWTGdzf8AIOUIVxVx5DfyWAQZ7nmYmQv6XSE; nc_sameSiteCookielax=true; nc_sameSiteCookiestrict=true", + "system": true + }, + { + "key": "Content-Length", + "value": "0", + "system": true + } + ], + "method": "POST", + "auth": { + "type": "jwt", + "jwt": [ + { + "type": "string", + "value": "{\r\n \"iss\": \"procest-admin\",\r\n \"client_id\": \"procest-admin\",\r\n \"iat\": \"1773145216\",\r\n \"user_id\": \"procest-admin\",\r\n \"user_representation\": \"\"\r\n}", + "key": "payload" + }, + { + "type": "string", + "value": "procest-admin-secret-key-for-testing", + "key": "secret" + }, + { + "type": "string", + "value": "HS256", + "key": "algorithm" + }, + { + "type": "boolean", + "value": false, + "key": "isSecretBase64Encoded" + }, + { + "type": "string", + "value": "header", + "key": "addTokenTo" + }, + { + "type": "string", + "value": "Bearer", + "key": "headerPrefix" + }, + { + "type": "string", + "value": "token", + "key": "queryParamKey" + }, + { + "type": "string", + "value": "{}", + "key": "header" + } + ] + } + }, + "response": { + "id": "ffe55433-7bc0-4f28-b28c-d5a7d41431bf", + "status": "OK", + "code": 200, + "header": [ + { + "key": "Date", + "value": "Tue, 10 Mar 2026 12:20:16 GMT" + }, + { + "key": "Server", + "value": "Apache/2.4.66 (Debian)" + }, + { + "key": "X-Content-Type-Options", + "value": "nosniff" + }, + { + "key": "X-Frame-Options", + "value": "SAMEORIGIN" + }, + { + "key": "X-Permitted-Cross-Domain-Policies", + "value": "none" + }, + { + "key": "X-Robots-Tag", + "value": "noindex, nofollow" + }, + { + "key": "Referrer-Policy", + "value": "no-referrer" + }, + { + "key": "X-Powered-By", + "value": "PHP/8.3.30" + }, + { + "key": "Content-Security-Policy", + "value": "default-src 'none';base-uri 'none';manifest-src 'self';frame-ancestors 'none'" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=06c5d44729d8e7e507cfd9d9d4470045; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=06c5d44729d8e7e507cfd9d9d4470045; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=06c5d44729d8e7e507cfd9d9d4470045; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=06c5d44729d8e7e507cfd9d9d4470045; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=06c5d44729d8e7e507cfd9d9d4470045; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=938518fbd25d283539ab00849bbaa073; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=938518fbd25d283539ab00849bbaa073; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=938518fbd25d283539ab00849bbaa073; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=938518fbd25d283539ab00849bbaa073; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=938518fbd25d283539ab00849bbaa073; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "X-Request-Id", + "value": "KTymJxpvjLI5pDSroxZz" + }, + { + "key": "Cache-Control", + "value": "no-cache, no-store, must-revalidate" + }, + { + "key": "Feature-Policy", + "value": "autoplay 'none';camera 'none';fullscreen 'none';geolocation 'none';microphone 'none';payment 'none'" + }, + { + "key": "X-User-Id", + "value": "admin" + }, + { + "key": "Content-Encoding", + "value": "gzip" + }, + { + "key": "Content-Length", + "value": "708" + }, + { + "key": "Keep-Alive", + "value": "timeout=5, max=90" + }, + { + "key": "Connection", + "value": "Keep-Alive" + }, + { + "key": "Content-Type", + "value": "application/json; charset=utf-8" + } + ], + "stream": { + "type": "Buffer", + "data": [ + 123, + 34, + 117, + 114, + 108, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 105, + 92, + 47, + 118, + 49, + 92, + 47, + 122, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 110, + 92, + 47, + 49, + 53, + 98, + 52, + 54, + 55, + 100, + 52, + 45, + 101, + 49, + 49, + 98, + 45, + 52, + 48, + 99, + 56, + 45, + 97, + 53, + 101, + 49, + 45, + 102, + 54, + 99, + 97, + 54, + 98, + 53, + 53, + 99, + 97, + 55, + 99, + 34, + 44, + 34, + 117, + 117, + 105, + 100, + 34, + 58, + 34, + 49, + 53, + 98, + 52, + 54, + 55, + 100, + 52, + 45, + 101, + 49, + 49, + 98, + 45, + 52, + 48, + 99, + 56, + 45, + 97, + 53, + 101, + 49, + 45, + 102, + 54, + 99, + 97, + 54, + 98, + 53, + 53, + 99, + 97, + 55, + 99, + 34, + 44, + 34, + 105, + 100, + 101, + 110, + 116, + 105, + 102, + 105, + 99, + 97, + 116, + 105, + 101, + 34, + 58, + 34, + 102, + 101, + 56, + 98, + 101, + 100, + 57, + 52, + 45, + 97, + 102, + 101, + 101, + 45, + 52, + 52, + 97, + 48, + 45, + 98, + 54, + 57, + 99, + 45, + 53, + 48, + 99, + 98, + 101, + 53, + 51, + 50, + 100, + 56, + 53, + 56, + 34, + 44, + 34, + 111, + 109, + 115, + 99, + 104, + 114, + 105, + 106, + 118, + 105, + 110, + 103, + 34, + 58, + 34, + 122, + 114, + 99, + 95, + 116, + 101, + 115, + 116, + 115, + 95, + 49, + 34, + 44, + 34, + 111, + 109, + 115, + 99, + 104, + 114, + 105, + 106, + 118, + 105, + 110, + 103, + 71, + 101, + 110, + 101, + 114, + 105, + 101, + 107, + 34, + 58, + 34, + 34, + 44, + 34, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 117, + 115, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 105, + 92, + 47, + 118, + 49, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 117, + 115, + 115, + 101, + 110, + 92, + 47, + 53, + 48, + 53, + 55, + 52, + 48, + 56, + 102, + 45, + 102, + 100, + 55, + 54, + 45, + 52, + 54, + 57, + 101, + 45, + 56, + 54, + 52, + 54, + 45, + 98, + 99, + 99, + 52, + 98, + 97, + 50, + 101, + 102, + 97, + 56, + 100, + 34, + 44, + 34, + 100, + 111, + 101, + 108, + 34, + 58, + 34, + 116, + 101, + 115, + 116, + 32, + 100, + 111, + 101, + 108, + 34, + 44, + 34, + 97, + 97, + 110, + 108, + 101, + 105, + 100, + 105, + 110, + 103, + 34, + 58, + 34, + 116, + 101, + 115, + 116, + 32, + 97, + 97, + 110, + 108, + 101, + 105, + 100, + 105, + 110, + 103, + 34, + 44, + 34, + 111, + 110, + 100, + 101, + 114, + 119, + 101, + 114, + 112, + 34, + 58, + 34, + 111, + 112, + 101, + 110, + 98, + 97, + 114, + 101, + 32, + 114, + 117, + 105, + 109, + 116, + 101, + 34, + 44, + 34, + 100, + 111, + 111, + 114, + 108, + 111, + 111, + 112, + 116, + 105, + 106, + 100, + 34, + 58, + 34, + 80, + 49, + 48, + 68, + 34, + 44, + 34, + 118, + 101, + 114, + 116, + 114, + 111, + 117, + 119, + 101, + 108, + 105, + 106, + 107, + 104, + 101, + 105, + 100, + 97, + 97, + 110, + 100, + 117, + 105, + 100, + 105, + 110, + 103, + 34, + 58, + 34, + 111, + 112, + 101, + 110, + 98, + 97, + 97, + 114, + 34, + 44, + 34, + 99, + 111, + 110, + 99, + 101, + 112, + 116, + 34, + 58, + 102, + 97, + 108, + 115, + 101, + 44, + 34, + 98, + 101, + 103, + 105, + 110, + 71, + 101, + 108, + 100, + 105, + 103, + 104, + 101, + 105, + 100, + 34, + 58, + 34, + 50, + 48, + 49, + 57, + 45, + 48, + 49, + 45, + 48, + 49, + 34, + 44, + 34, + 101, + 105, + 110, + 100, + 101, + 71, + 101, + 108, + 100, + 105, + 103, + 104, + 101, + 105, + 100, + 34, + 58, + 34, + 50, + 48, + 50, + 54, + 45, + 48, + 51, + 45, + 49, + 48, + 34, + 44, + 34, + 104, + 97, + 110, + 100, + 101, + 108, + 105, + 110, + 103, + 73, + 110, + 105, + 116, + 105, + 97, + 116, + 111, + 114, + 34, + 58, + 34, + 105, + 110, + 100, + 105, + 101, + 110, + 101, + 110, + 34, + 44, + 34, + 105, + 110, + 100, + 105, + 99, + 97, + 116, + 105, + 101, + 73, + 110, + 116, + 101, + 114, + 110, + 79, + 102, + 69, + 120, + 116, + 101, + 114, + 110, + 34, + 58, + 34, + 101, + 120, + 116, + 101, + 114, + 110, + 34, + 44, + 34, + 104, + 97, + 110, + 100, + 101, + 108, + 105, + 110, + 103, + 66, + 101, + 104, + 97, + 110, + 100, + 101, + 108, + 97, + 97, + 114, + 34, + 58, + 34, + 98, + 101, + 104, + 97, + 110, + 100, + 101, + 108, + 101, + 110, + 34, + 44, + 34, + 111, + 112, + 115, + 99, + 104, + 111, + 114, + 116, + 105, + 110, + 103, + 69, + 110, + 65, + 97, + 110, + 104, + 111, + 117, + 100, + 105, + 110, + 103, + 77, + 111, + 103, + 101, + 108, + 105, + 106, + 107, + 34, + 58, + 102, + 97, + 108, + 115, + 101, + 44, + 34, + 118, + 101, + 114, + 108, + 101, + 110, + 103, + 105, + 110, + 103, + 77, + 111, + 103, + 101, + 108, + 105, + 106, + 107, + 34, + 58, + 116, + 114, + 117, + 101, + 44, + 34, + 118, + 101, + 114, + 108, + 101, + 110, + 103, + 105, + 110, + 103, + 115, + 116, + 101, + 114, + 109, + 105, + 106, + 110, + 34, + 58, + 34, + 80, + 53, + 68, + 34, + 44, + 34, + 112, + 117, + 98, + 108, + 105, + 99, + 97, + 116, + 105, + 101, + 73, + 110, + 100, + 105, + 99, + 97, + 116, + 105, + 101, + 34, + 58, + 102, + 97, + 108, + 115, + 101, + 44, + 34, + 112, + 114, + 111, + 100, + 117, + 99, + 116, + 101, + 110, + 79, + 102, + 68, + 105, + 101, + 110, + 115, + 116, + 101, + 110, + 34, + 58, + 91, + 34, + 104, + 116, + 116, + 112, + 115, + 58, + 92, + 47, + 92, + 47, + 114, + 101, + 102, + 46, + 116, + 115, + 116, + 46, + 118, + 110, + 103, + 46, + 99, + 108, + 111, + 117, + 100, + 92, + 47, + 115, + 116, + 97, + 110, + 100, + 97, + 97, + 114, + 100, + 92, + 47, + 34, + 93, + 44, + 34, + 115, + 101, + 108, + 101, + 99, + 116, + 105, + 101, + 108, + 105, + 106, + 115, + 116, + 80, + 114, + 111, + 99, + 101, + 115, + 116, + 121, + 112, + 101, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 115, + 58, + 92, + 47, + 92, + 47, + 115, + 101, + 108, + 101, + 99, + 116, + 105, + 101, + 108, + 105, + 106, + 115, + 116, + 46, + 111, + 112, + 101, + 110, + 122, + 97, + 97, + 107, + 46, + 110, + 108, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 118, + 49, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 121, + 112, + 101, + 110, + 92, + 47, + 56, + 51, + 56, + 101, + 52, + 48, + 53, + 97, + 45, + 57, + 98, + 49, + 50, + 45, + 52, + 51, + 99, + 52, + 45, + 97, + 57, + 56, + 53, + 45, + 100, + 55, + 97, + 55, + 52, + 57, + 48, + 100, + 52, + 50, + 50, + 101, + 34, + 44, + 34, + 114, + 101, + 102, + 101, + 114, + 101, + 110, + 116, + 105, + 101, + 112, + 114, + 111, + 99, + 101, + 115, + 34, + 58, + 123, + 34, + 108, + 105, + 110, + 107, + 34, + 58, + 34, + 34, + 44, + 34, + 110, + 97, + 97, + 109, + 34, + 58, + 34, + 116, + 101, + 115, + 116, + 34, + 125, + 44, + 34, + 118, + 101, + 114, + 97, + 110, + 116, + 119, + 111, + 111, + 114, + 100, + 101, + 108, + 105, + 106, + 107, + 101, + 34, + 58, + 34, + 88, + 34, + 44, + 34, + 103, + 101, + 114, + 101, + 108, + 97, + 116, + 101, + 101, + 114, + 100, + 101, + 90, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 98, + 101, + 115, + 108, + 117, + 105, + 116, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 34, + 48, + 98, + 50, + 50, + 48, + 100, + 50, + 55, + 45, + 101, + 50, + 53, + 49, + 45, + 52, + 99, + 52, + 55, + 45, + 98, + 48, + 100, + 102, + 45, + 48, + 49, + 52, + 99, + 50, + 101, + 52, + 99, + 97, + 97, + 54, + 49, + 34, + 93, + 44, + 34, + 105, + 110, + 102, + 111, + 114, + 109, + 97, + 116, + 105, + 101, + 111, + 98, + 106, + 101, + 99, + 116, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 100, + 101, + 101, + 108, + 122, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 110, + 34, + 58, + 91, + 93, + 44, + 34, + 116, + 111, + 101, + 108, + 105, + 99, + 104, + 116, + 105, + 110, + 103, + 34, + 58, + 34, + 34, + 44, + 34, + 118, + 101, + 114, + 115, + 105, + 101, + 100, + 97, + 116, + 117, + 109, + 34, + 58, + 34, + 50, + 48, + 49, + 57, + 45, + 48, + 49, + 45, + 48, + 49, + 34, + 125 + ] + }, + "cookie": [], + "responseTime": 267, + "responseSize": 1306 + }, + "id": "b57d71c4-6778-43f2-9324-6c00e2d6b4fd" + }, + { + "cursor": { + "ref": "ae1fda90-6e76-4fc8-97ca-e1db87ed3d9a", + "length": 313, + "cycles": 1, + "position": 292, + "iteration": 0, + "httpRequestId": "c25e2c29-d3c5-4395-8ec7-22871b6ed275" + }, + "item": { + "id": "10e126f4-28a2-48ef-ba1d-142459a424f9", + "name": "Create Zaak", + "request": { + "url": { + "path": [ + "zaken" + ], + "host": [ + "{{zrc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Accept-Crs", + "value": "EPSG:4326" + }, + { + "key": "Content-Crs", + "value": "EPSG:4326" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\r\n \"bronorganisatie\": \"000000000\",\r\n \"omschrijving\": \"string\",\r\n \"toelichting\": \"string\",\r\n \"registratiedatum\": \"2019-04-09\",\r\n \"verantwoordelijkeOrganisatie\": \"000000000\",\r\n \"zaaktype\": \"{{zaaktype_url}}\",\r\n \"startdatum\": \"2019-04-09\",\r\n \"einddatumGepland\": \"2019-04-20\",\r\n \"uiterlijkeEinddatumAfdoening\": \"2019-04-09\",\r\n \"publicatiedatum\": \"2019-04-09\",\r\n \"vertrouwelijkheidaanduiding\": \"openbaar\",\r\n \"betalingsindicatie\": \"geheel\",\r\n \"laatsteBetaalDatum\": \"2019-01-01\",\r\n \"zaakgeometrie\": {\r\n \"type\": \"Point\",\r\n \"coordinates\": [\r\n 53,\r\n 5\r\n ]\r\n },\r\n \"opschorting\": {\r\n \"indicatie\": true,\r\n \"reden\": \"string\"\r\n },\r\n \"selectielijstklasse\": \"{{selectielijstklasse_url}}\",\r\n \"archiefstatus\": \"nog_te_archiveren\",\r\n \"deelzaaktypen\" : [\"{{deelzaaktype_url}}\"]\r\n}" + } + }, + "response": [], + "event": [ + { + "listen": "prerequest", + "script": { + "id": "0283319e-f1bf-4316-b813-dc4cf84c9ef0", + "type": "text/javascript", + "packages": {}, + "exec": [ + "" + ], + "_lastExecutionId": "c55806d1-a1b0-40a8-83cb-309222ac8b52" + } + }, + { + "listen": "test", + "script": { + "id": "ef57f645-eb73-4ddc-a36a-16ad8662d22e", + "type": "text/javascript", + "packages": {}, + "exec": [ + "pm.environment.set(\"created_zaak_url\", pm.response.json().url);", + "", + "" + ], + "_lastExecutionId": "443f1272-4fa9-477b-8c01-f717adfc2f9d" + } + } + ] + }, + "request": { + "url": { + "protocol": "http", + "port": "8080", + "path": [ + "index.php", + "apps", + "procest", + "api", + "zgw", + "zaken", + "v1", + "zaken" + ], + "host": [ + "localhost" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Accept-Crs", + "value": "EPSG:4326" + }, + { + "key": "Content-Crs", + "value": "EPSG:4326" + }, + { + "key": "Authorization", + "value": "Bearer eyJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJwcm9jZXN0LWFkbWluIiwiY2xpZW50X2lkIjoicHJvY2VzdC1hZG1pbiIsImlhdCI6IjE3NzMxNDUyMTciLCJ1c2VyX2lkIjoicHJvY2VzdC1hZG1pbiIsInVzZXJfcmVwcmVzZW50YXRpb24iOiIifQ.eHAK4b_z4mRSAPaeRCr2kMrl0HY_1jgkHQzZjo8UoAQ", + "system": true + }, + { + "key": "User-Agent", + "value": "PostmanRuntime/7.39.1", + "system": true + }, + { + "key": "Accept", + "value": "*/*", + "system": true + }, + { + "key": "Cache-Control", + "value": "no-cache", + "system": true + }, + { + "key": "Postman-Token", + "value": "5aea3cec-eb29-4b63-9feb-faab67c10780", + "system": true + }, + { + "key": "Host", + "value": "localhost:8080", + "system": true + }, + { + "key": "Accept-Encoding", + "value": "gzip, deflate, br", + "system": true + }, + { + "key": "Connection", + "value": "keep-alive", + "system": true + }, + { + "key": "Content-Length", + "value": "1124", + "system": true + }, + { + "key": "Cookie", + "value": "ocvp3112b4wg=938518fbd25d283539ab00849bbaa073; oc_sessionPassphrase=LBNdKxRzA0iqoULIruNxDDh2BK3O%2BrCIU8aUmiUcOFvy5Xw1YfjwQNlmBW2IkGwJYtxXh9%2BwDN6vYuGNX07tXzkBtjQJUWTGdzf8AIOUIVxVx5DfyWAQZ7nmYmQv6XSE; nc_sameSiteCookielax=true; nc_sameSiteCookiestrict=true", + "system": true + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\r\n \"bronorganisatie\": \"000000000\",\r\n \"omschrijving\": \"string\",\r\n \"toelichting\": \"string\",\r\n \"registratiedatum\": \"2019-04-09\",\r\n \"verantwoordelijkeOrganisatie\": \"000000000\",\r\n \"zaaktype\": \"http://localhost:8080/index.php/apps/procest/api/zgw/catalogi/v1/zaaktypen/15b467d4-e11b-40c8-a5e1-f6ca6b55ca7c\",\r\n \"startdatum\": \"2019-04-09\",\r\n \"einddatumGepland\": \"2019-04-20\",\r\n \"uiterlijkeEinddatumAfdoening\": \"2019-04-09\",\r\n \"publicatiedatum\": \"2019-04-09\",\r\n \"vertrouwelijkheidaanduiding\": \"openbaar\",\r\n \"betalingsindicatie\": \"geheel\",\r\n \"laatsteBetaalDatum\": \"2019-01-01\",\r\n \"zaakgeometrie\": {\r\n \"type\": \"Point\",\r\n \"coordinates\": [\r\n 53,\r\n 5\r\n ]\r\n },\r\n \"opschorting\": {\r\n \"indicatie\": true,\r\n \"reden\": \"string\"\r\n },\r\n \"selectielijstklasse\": \"https://selectielijst.openzaak.nl/api/v1/resultaten/0eb8f19f-d55e-4a15-8b5f-26cdf07482c1\",\r\n \"archiefstatus\": \"nog_te_archiveren\",\r\n \"deelzaaktypen\" : [\"http://localhost:8080/index.php/apps/procest/api/zgw/catalogi/v1/zaaktypen/7571bffe-5579-4295-9fac-87a9a6b6c5ac\"]\r\n}" + }, + "auth": { + "type": "jwt", + "jwt": [ + { + "type": "string", + "value": "{\r\n \"iss\": \"procest-admin\",\r\n \"client_id\": \"procest-admin\",\r\n \"iat\": \"1773145217\",\r\n \"user_id\": \"procest-admin\",\r\n \"user_representation\": \"\"\r\n}", + "key": "payload" + }, + { + "type": "string", + "value": "procest-admin-secret-key-for-testing", + "key": "secret" + }, + { + "type": "string", + "value": "HS256", + "key": "algorithm" + }, + { + "type": "boolean", + "value": false, + "key": "isSecretBase64Encoded" + }, + { + "type": "string", + "value": "header", + "key": "addTokenTo" + }, + { + "type": "string", + "value": "Bearer", + "key": "headerPrefix" + }, + { + "type": "string", + "value": "token", + "key": "queryParamKey" + }, + { + "type": "string", + "value": "{}", + "key": "header" + } + ] + } + }, + "response": { + "id": "55ca41a7-7056-492c-a020-2cc8543ac9a2", + "status": "Created", + "code": 201, + "header": [ + { + "key": "Date", + "value": "Tue, 10 Mar 2026 12:20:16 GMT" + }, + { + "key": "Server", + "value": "Apache/2.4.66 (Debian)" + }, + { + "key": "X-Content-Type-Options", + "value": "nosniff" + }, + { + "key": "X-Frame-Options", + "value": "SAMEORIGIN" + }, + { + "key": "X-Permitted-Cross-Domain-Policies", + "value": "none" + }, + { + "key": "X-Robots-Tag", + "value": "noindex, nofollow" + }, + { + "key": "Referrer-Policy", + "value": "no-referrer" + }, + { + "key": "X-Powered-By", + "value": "PHP/8.3.30" + }, + { + "key": "Content-Security-Policy", + "value": "default-src 'none';base-uri 'none';manifest-src 'self';frame-ancestors 'none'" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=938518fbd25d283539ab00849bbaa073; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=938518fbd25d283539ab00849bbaa073; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=938518fbd25d283539ab00849bbaa073; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=938518fbd25d283539ab00849bbaa073; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=938518fbd25d283539ab00849bbaa073; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=9989602024dbdeeb1ea987acebf8de8c; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=9989602024dbdeeb1ea987acebf8de8c; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=9989602024dbdeeb1ea987acebf8de8c; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=9989602024dbdeeb1ea987acebf8de8c; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=9989602024dbdeeb1ea987acebf8de8c; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "X-Request-Id", + "value": "jJ3N7llwb6oSBaoFAZZ6" + }, + { + "key": "Cache-Control", + "value": "no-cache, no-store, must-revalidate" + }, + { + "key": "Feature-Policy", + "value": "autoplay 'none';camera 'none';fullscreen 'none';geolocation 'none';microphone 'none';payment 'none'" + }, + { + "key": "X-User-Id", + "value": "admin" + }, + { + "key": "Content-Length", + "value": "799" + }, + { + "key": "Keep-Alive", + "value": "timeout=5, max=89" + }, + { + "key": "Connection", + "value": "Keep-Alive" + }, + { + "key": "Content-Type", + "value": "application/json; charset=utf-8" + } + ], + "stream": { + "type": "Buffer", + "data": [ + 123, + 34, + 117, + 114, + 108, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 122, + 97, + 107, + 101, + 110, + 92, + 47, + 118, + 49, + 92, + 47, + 122, + 97, + 107, + 101, + 110, + 92, + 47, + 50, + 54, + 99, + 54, + 102, + 48, + 53, + 54, + 45, + 100, + 56, + 98, + 50, + 45, + 52, + 102, + 57, + 54, + 45, + 97, + 55, + 56, + 51, + 45, + 97, + 57, + 53, + 57, + 49, + 55, + 50, + 51, + 99, + 51, + 56, + 54, + 34, + 44, + 34, + 117, + 117, + 105, + 100, + 34, + 58, + 34, + 50, + 54, + 99, + 54, + 102, + 48, + 53, + 54, + 45, + 100, + 56, + 98, + 50, + 45, + 52, + 102, + 57, + 54, + 45, + 97, + 55, + 56, + 51, + 45, + 97, + 57, + 53, + 57, + 49, + 55, + 50, + 51, + 99, + 51, + 56, + 54, + 34, + 44, + 34, + 105, + 100, + 101, + 110, + 116, + 105, + 102, + 105, + 99, + 97, + 116, + 105, + 101, + 34, + 58, + 34, + 90, + 65, + 65, + 75, + 45, + 84, + 66, + 79, + 78, + 76, + 83, + 45, + 55, + 49, + 53, + 56, + 53, + 69, + 34, + 44, + 34, + 111, + 109, + 115, + 99, + 104, + 114, + 105, + 106, + 118, + 105, + 110, + 103, + 34, + 58, + 34, + 115, + 116, + 114, + 105, + 110, + 103, + 34, + 44, + 34, + 116, + 111, + 101, + 108, + 105, + 99, + 104, + 116, + 105, + 110, + 103, + 34, + 58, + 34, + 115, + 116, + 114, + 105, + 110, + 103, + 34, + 44, + 34, + 122, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 105, + 92, + 47, + 118, + 49, + 92, + 47, + 122, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 110, + 92, + 47, + 49, + 53, + 98, + 52, + 54, + 55, + 100, + 52, + 45, + 101, + 49, + 49, + 98, + 45, + 52, + 48, + 99, + 56, + 45, + 97, + 53, + 101, + 49, + 45, + 102, + 54, + 99, + 97, + 54, + 98, + 53, + 53, + 99, + 97, + 55, + 99, + 34, + 44, + 34, + 114, + 101, + 103, + 105, + 115, + 116, + 114, + 97, + 116, + 105, + 101, + 100, + 97, + 116, + 117, + 109, + 34, + 58, + 34, + 50, + 48, + 50, + 54, + 45, + 48, + 51, + 45, + 49, + 48, + 84, + 49, + 50, + 58, + 50, + 48, + 58, + 49, + 54, + 43, + 48, + 48, + 58, + 48, + 48, + 34, + 44, + 34, + 115, + 116, + 97, + 114, + 116, + 100, + 97, + 116, + 117, + 109, + 34, + 58, + 34, + 50, + 48, + 49, + 57, + 45, + 48, + 52, + 45, + 48, + 57, + 34, + 44, + 34, + 101, + 105, + 110, + 100, + 100, + 97, + 116, + 117, + 109, + 34, + 58, + 110, + 117, + 108, + 108, + 44, + 34, + 101, + 105, + 110, + 100, + 100, + 97, + 116, + 117, + 109, + 71, + 101, + 112, + 108, + 97, + 110, + 100, + 34, + 58, + 34, + 50, + 48, + 49, + 57, + 45, + 48, + 52, + 45, + 50, + 48, + 34, + 44, + 34, + 117, + 105, + 116, + 101, + 114, + 108, + 105, + 106, + 107, + 101, + 69, + 105, + 110, + 100, + 100, + 97, + 116, + 117, + 109, + 65, + 102, + 100, + 111, + 101, + 110, + 105, + 110, + 103, + 34, + 58, + 34, + 50, + 48, + 49, + 57, + 45, + 48, + 52, + 45, + 48, + 57, + 34, + 44, + 34, + 118, + 101, + 114, + 116, + 114, + 111, + 117, + 119, + 101, + 108, + 105, + 106, + 107, + 104, + 101, + 105, + 100, + 97, + 97, + 110, + 100, + 117, + 105, + 100, + 105, + 110, + 103, + 34, + 58, + 34, + 111, + 112, + 101, + 110, + 98, + 97, + 97, + 114, + 34, + 44, + 34, + 118, + 101, + 114, + 97, + 110, + 116, + 119, + 111, + 111, + 114, + 100, + 101, + 108, + 105, + 106, + 107, + 101, + 79, + 114, + 103, + 97, + 110, + 105, + 115, + 97, + 116, + 105, + 101, + 34, + 58, + 34, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 34, + 44, + 34, + 97, + 114, + 99, + 104, + 105, + 101, + 102, + 110, + 111, + 109, + 105, + 110, + 97, + 116, + 105, + 101, + 34, + 58, + 110, + 117, + 108, + 108, + 44, + 34, + 97, + 114, + 99, + 104, + 105, + 101, + 102, + 97, + 99, + 116, + 105, + 101, + 100, + 97, + 116, + 117, + 109, + 34, + 58, + 110, + 117, + 108, + 108, + 44, + 34, + 97, + 114, + 99, + 104, + 105, + 101, + 102, + 115, + 116, + 97, + 116, + 117, + 115, + 34, + 58, + 34, + 110, + 111, + 103, + 95, + 116, + 101, + 95, + 97, + 114, + 99, + 104, + 105, + 118, + 101, + 114, + 101, + 110, + 34, + 44, + 34, + 98, + 101, + 116, + 97, + 108, + 105, + 110, + 103, + 115, + 105, + 110, + 100, + 105, + 99, + 97, + 116, + 105, + 101, + 34, + 58, + 34, + 103, + 101, + 104, + 101, + 101, + 108, + 34, + 44, + 34, + 108, + 97, + 97, + 116, + 115, + 116, + 101, + 66, + 101, + 116, + 97, + 97, + 108, + 100, + 97, + 116, + 117, + 109, + 34, + 58, + 110, + 117, + 108, + 108, + 44, + 34, + 104, + 111, + 111, + 102, + 100, + 122, + 97, + 97, + 107, + 34, + 58, + 110, + 117, + 108, + 108, + 125 + ] + }, + "cookie": [], + "responseTime": 296, + "responseSize": 799 + }, + "id": "10e126f4-28a2-48ef-ba1d-142459a424f9" + }, + { + "cursor": { + "ref": "919d3c6a-fd0b-4cb3-a29e-9e29832f0704", + "length": 313, + "cycles": 1, + "position": 293, + "iteration": 0, + "httpRequestId": "06032ed3-f23c-4fb6-a9a2-0e47fef3d305" + }, + "item": { + "id": "320e45f5-5eaa-4472-a03b-e8d72ff4ee71", + "name": "Add Deelzaak to Zaak", + "request": { + "url": { + "path": [ + "zaken" + ], + "host": [ + "{{zrc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Accept-Crs", + "value": "EPSG:4326" + }, + { + "key": "Content-Crs", + "value": "EPSG:4326" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\r\n \"bronorganisatie\": \"000000000\",\r\n \"omschrijving\": \"string\",\r\n \"toelichting\": \"string\",\r\n \"zaaktype\": \"{{deelzaaktype_url}}\",\r\n \"registratiedatum\": \"2019-04-09\",\r\n \"verantwoordelijkeOrganisatie\": \"000000000\",\r\n \"startdatum\": \"2019-04-09\",\r\n \"einddatum\": null,\r\n \"einddatumGepland\": \"2019-04-20\",\r\n \"uiterlijkeEinddatumAfdoening\": \"2019-04-09\",\r\n \"publicatiedatum\": \"2019-04-09\",\r\n \"communicatiekanaal\": \"\",\r\n \"productenOfDiensten\": [],\r\n \"vertrouwelijkheidaanduiding\": \"geheim\",\r\n \"betalingsindicatie\": \"geheel\",\r\n \"betalingsindicatieWeergave\": null,\r\n \"laatsteBetaaldatum\": \"2019-01-01T00:00:00Z\",\r\n \"zaakgeometrie\": {\r\n \"type\": \"Point\",\r\n \"coordinates\": [\r\n 53.0,\r\n 5.0\r\n ]\r\n },\r\n \"verlenging\": null,\r\n \"opschorting\": null,\r\n \"selectielijstklasse\": \"https://referentielijsten.roxit.nl/api/v1/resultaten/0fe71ce3-b1e1-48eb-9070-be2756fc71b5\",\r\n \"hoofdzaak\": \"{{created_zaak_url}}\",\r\n \"deelzaken\": [],\r\n \"relevanteAndereZaken\": [],\r\n \"eigenschappen\": [],\r\n \"rollen\": [],\r\n \"status\": null,\r\n \"zaakinformatieobjecten\": [],\r\n \"zaakobjecten\": [],\r\n \"resultaat\": null,\r\n \"kenmerken\": [],\r\n \"archiefnominatie\": null,\r\n \"archiefstatus\": \"nog_te_archiveren\",\r\n \"archiefactiedatum\": null,\r\n \"opdrachtgevendeOrganisatie\": null,\r\n \"processobjectaard\": null,\r\n \"startdatumBewaartermijn\": null,\r\n \"processobject\": null\r\n}" + } + }, + "response": [], + "event": [ + { + "listen": "prerequest", + "script": { + "id": "3836814e-0334-427d-8b06-28dbcf649127", + "type": "text/javascript", + "packages": {}, + "exec": [ + "" + ], + "_lastExecutionId": "6e8e80c1-8a48-417d-ada9-db6c5fdd63cc" + } + }, + { + "listen": "test", + "script": { + "id": "011f9981-1f21-4fc5-96cc-bb3481ed119e", + "type": "text/javascript", + "packages": {}, + "exec": [ + "pm.environment.set(\"deelzaak_url\", pm.response.json().url);" + ], + "_lastExecutionId": "ec2e44f2-5936-4049-ba48-48ff7b574c76" + } + } + ] + }, + "request": { + "url": { + "protocol": "http", + "port": "8080", + "path": [ + "index.php", + "apps", + "procest", + "api", + "zgw", + "zaken", + "v1", + "zaken" + ], + "host": [ + "localhost" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Accept-Crs", + "value": "EPSG:4326" + }, + { + "key": "Content-Crs", + "value": "EPSG:4326" + }, + { + "key": "Authorization", + "value": "Bearer eyJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJwcm9jZXN0LWFkbWluIiwiY2xpZW50X2lkIjoicHJvY2VzdC1hZG1pbiIsImlhdCI6IjE3NzMxNDUyMTciLCJ1c2VyX2lkIjoicHJvY2VzdC1hZG1pbiIsInVzZXJfcmVwcmVzZW50YXRpb24iOiIifQ.eHAK4b_z4mRSAPaeRCr2kMrl0HY_1jgkHQzZjo8UoAQ", + "system": true + }, + { + "key": "User-Agent", + "value": "PostmanRuntime/7.39.1", + "system": true + }, + { + "key": "Accept", + "value": "*/*", + "system": true + }, + { + "key": "Cache-Control", + "value": "no-cache", + "system": true + }, + { + "key": "Postman-Token", + "value": "e14ee090-8f63-4454-866f-c99a1a40dfde", + "system": true + }, + { + "key": "Host", + "value": "localhost:8080", + "system": true + }, + { + "key": "Accept-Encoding", + "value": "gzip, deflate, br", + "system": true + }, + { + "key": "Connection", + "value": "keep-alive", + "system": true + }, + { + "key": "Content-Length", + "value": "1646", + "system": true + }, + { + "key": "Cookie", + "value": "ocvp3112b4wg=9989602024dbdeeb1ea987acebf8de8c; oc_sessionPassphrase=LBNdKxRzA0iqoULIruNxDDh2BK3O%2BrCIU8aUmiUcOFvy5Xw1YfjwQNlmBW2IkGwJYtxXh9%2BwDN6vYuGNX07tXzkBtjQJUWTGdzf8AIOUIVxVx5DfyWAQZ7nmYmQv6XSE; nc_sameSiteCookielax=true; nc_sameSiteCookiestrict=true", + "system": true + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\r\n \"bronorganisatie\": \"000000000\",\r\n \"omschrijving\": \"string\",\r\n \"toelichting\": \"string\",\r\n \"zaaktype\": \"http://localhost:8080/index.php/apps/procest/api/zgw/catalogi/v1/zaaktypen/7571bffe-5579-4295-9fac-87a9a6b6c5ac\",\r\n \"registratiedatum\": \"2019-04-09\",\r\n \"verantwoordelijkeOrganisatie\": \"000000000\",\r\n \"startdatum\": \"2019-04-09\",\r\n \"einddatum\": null,\r\n \"einddatumGepland\": \"2019-04-20\",\r\n \"uiterlijkeEinddatumAfdoening\": \"2019-04-09\",\r\n \"publicatiedatum\": \"2019-04-09\",\r\n \"communicatiekanaal\": \"\",\r\n \"productenOfDiensten\": [],\r\n \"vertrouwelijkheidaanduiding\": \"geheim\",\r\n \"betalingsindicatie\": \"geheel\",\r\n \"betalingsindicatieWeergave\": null,\r\n \"laatsteBetaaldatum\": \"2019-01-01T00:00:00Z\",\r\n \"zaakgeometrie\": {\r\n \"type\": \"Point\",\r\n \"coordinates\": [\r\n 53.0,\r\n 5.0\r\n ]\r\n },\r\n \"verlenging\": null,\r\n \"opschorting\": null,\r\n \"selectielijstklasse\": \"https://referentielijsten.roxit.nl/api/v1/resultaten/0fe71ce3-b1e1-48eb-9070-be2756fc71b5\",\r\n \"hoofdzaak\": \"http://localhost:8080/index.php/apps/procest/api/zgw/zaken/v1/zaken/26c6f056-d8b2-4f96-a783-a9591723c386\",\r\n \"deelzaken\": [],\r\n \"relevanteAndereZaken\": [],\r\n \"eigenschappen\": [],\r\n \"rollen\": [],\r\n \"status\": null,\r\n \"zaakinformatieobjecten\": [],\r\n \"zaakobjecten\": [],\r\n \"resultaat\": null,\r\n \"kenmerken\": [],\r\n \"archiefnominatie\": null,\r\n \"archiefstatus\": \"nog_te_archiveren\",\r\n \"archiefactiedatum\": null,\r\n \"opdrachtgevendeOrganisatie\": null,\r\n \"processobjectaard\": null,\r\n \"startdatumBewaartermijn\": null,\r\n \"processobject\": null\r\n}" + }, + "auth": { + "type": "jwt", + "jwt": [ + { + "type": "string", + "value": "{\r\n \"iss\": \"procest-admin\",\r\n \"client_id\": \"procest-admin\",\r\n \"iat\": \"1773145217\",\r\n \"user_id\": \"procest-admin\",\r\n \"user_representation\": \"\"\r\n}", + "key": "payload" + }, + { + "type": "string", + "value": "procest-admin-secret-key-for-testing", + "key": "secret" + }, + { + "type": "string", + "value": "HS256", + "key": "algorithm" + }, + { + "type": "boolean", + "value": false, + "key": "isSecretBase64Encoded" + }, + { + "type": "string", + "value": "header", + "key": "addTokenTo" + }, + { + "type": "string", + "value": "Bearer", + "key": "headerPrefix" + }, + { + "type": "string", + "value": "token", + "key": "queryParamKey" + }, + { + "type": "string", + "value": "{}", + "key": "header" + } + ] + } + }, + "response": { + "id": "18d3011f-4fb0-49cc-a4f1-4a0fe3339aae", + "status": "Created", + "code": 201, + "header": [ + { + "key": "Date", + "value": "Tue, 10 Mar 2026 12:20:16 GMT" + }, + { + "key": "Server", + "value": "Apache/2.4.66 (Debian)" + }, + { + "key": "X-Content-Type-Options", + "value": "nosniff" + }, + { + "key": "X-Frame-Options", + "value": "SAMEORIGIN" + }, + { + "key": "X-Permitted-Cross-Domain-Policies", + "value": "none" + }, + { + "key": "X-Robots-Tag", + "value": "noindex, nofollow" + }, + { + "key": "Referrer-Policy", + "value": "no-referrer" + }, + { + "key": "X-Powered-By", + "value": "PHP/8.3.30" + }, + { + "key": "Content-Security-Policy", + "value": "default-src 'none';base-uri 'none';manifest-src 'self';frame-ancestors 'none'" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=9989602024dbdeeb1ea987acebf8de8c; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=9989602024dbdeeb1ea987acebf8de8c; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=9989602024dbdeeb1ea987acebf8de8c; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=9989602024dbdeeb1ea987acebf8de8c; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=9989602024dbdeeb1ea987acebf8de8c; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=a1b79f847a1056517d38faab4a51215b; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=a1b79f847a1056517d38faab4a51215b; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=a1b79f847a1056517d38faab4a51215b; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=a1b79f847a1056517d38faab4a51215b; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=a1b79f847a1056517d38faab4a51215b; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "X-Request-Id", + "value": "PlwXrKooA7YgnbZOgW1x" + }, + { + "key": "Cache-Control", + "value": "no-cache, no-store, must-revalidate" + }, + { + "key": "Feature-Policy", + "value": "autoplay 'none';camera 'none';fullscreen 'none';geolocation 'none';microphone 'none';payment 'none'" + }, + { + "key": "X-User-Id", + "value": "admin" + }, + { + "key": "Content-Length", + "value": "918" + }, + { + "key": "Keep-Alive", + "value": "timeout=5, max=88" + }, + { + "key": "Connection", + "value": "Keep-Alive" + }, + { + "key": "Content-Type", + "value": "application/json; charset=utf-8" + } + ], + "stream": { + "type": "Buffer", + "data": [ + 123, + 34, + 117, + 114, + 108, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 122, + 97, + 107, + 101, + 110, + 92, + 47, + 118, + 49, + 92, + 47, + 122, + 97, + 107, + 101, + 110, + 92, + 47, + 49, + 49, + 99, + 51, + 97, + 57, + 97, + 98, + 45, + 53, + 53, + 52, + 51, + 45, + 52, + 99, + 56, + 48, + 45, + 56, + 102, + 98, + 99, + 45, + 57, + 53, + 48, + 56, + 53, + 53, + 53, + 55, + 97, + 56, + 57, + 52, + 34, + 44, + 34, + 117, + 117, + 105, + 100, + 34, + 58, + 34, + 49, + 49, + 99, + 51, + 97, + 57, + 97, + 98, + 45, + 53, + 53, + 52, + 51, + 45, + 52, + 99, + 56, + 48, + 45, + 56, + 102, + 98, + 99, + 45, + 57, + 53, + 48, + 56, + 53, + 53, + 53, + 55, + 97, + 56, + 57, + 52, + 34, + 44, + 34, + 105, + 100, + 101, + 110, + 116, + 105, + 102, + 105, + 99, + 97, + 116, + 105, + 101, + 34, + 58, + 34, + 90, + 65, + 65, + 75, + 45, + 84, + 66, + 79, + 78, + 76, + 84, + 45, + 69, + 52, + 48, + 65, + 70, + 55, + 34, + 44, + 34, + 111, + 109, + 115, + 99, + 104, + 114, + 105, + 106, + 118, + 105, + 110, + 103, + 34, + 58, + 34, + 115, + 116, + 114, + 105, + 110, + 103, + 34, + 44, + 34, + 116, + 111, + 101, + 108, + 105, + 99, + 104, + 116, + 105, + 110, + 103, + 34, + 58, + 34, + 115, + 116, + 114, + 105, + 110, + 103, + 34, + 44, + 34, + 122, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 105, + 92, + 47, + 118, + 49, + 92, + 47, + 122, + 97, + 97, + 107, + 116, + 121, + 112, + 101, + 110, + 92, + 47, + 55, + 53, + 55, + 49, + 98, + 102, + 102, + 101, + 45, + 53, + 53, + 55, + 57, + 45, + 52, + 50, + 57, + 53, + 45, + 57, + 102, + 97, + 99, + 45, + 56, + 55, + 97, + 57, + 97, + 54, + 98, + 54, + 99, + 53, + 97, + 99, + 34, + 44, + 34, + 114, + 101, + 103, + 105, + 115, + 116, + 114, + 97, + 116, + 105, + 101, + 100, + 97, + 116, + 117, + 109, + 34, + 58, + 34, + 50, + 48, + 50, + 54, + 45, + 48, + 51, + 45, + 49, + 48, + 84, + 49, + 50, + 58, + 50, + 48, + 58, + 49, + 55, + 43, + 48, + 48, + 58, + 48, + 48, + 34, + 44, + 34, + 115, + 116, + 97, + 114, + 116, + 100, + 97, + 116, + 117, + 109, + 34, + 58, + 34, + 50, + 48, + 49, + 57, + 45, + 48, + 52, + 45, + 48, + 57, + 34, + 44, + 34, + 101, + 105, + 110, + 100, + 100, + 97, + 116, + 117, + 109, + 34, + 58, + 110, + 117, + 108, + 108, + 44, + 34, + 101, + 105, + 110, + 100, + 100, + 97, + 116, + 117, + 109, + 71, + 101, + 112, + 108, + 97, + 110, + 100, + 34, + 58, + 34, + 50, + 48, + 49, + 57, + 45, + 48, + 52, + 45, + 50, + 48, + 34, + 44, + 34, + 117, + 105, + 116, + 101, + 114, + 108, + 105, + 106, + 107, + 101, + 69, + 105, + 110, + 100, + 100, + 97, + 116, + 117, + 109, + 65, + 102, + 100, + 111, + 101, + 110, + 105, + 110, + 103, + 34, + 58, + 34, + 50, + 48, + 49, + 57, + 45, + 48, + 52, + 45, + 48, + 57, + 34, + 44, + 34, + 118, + 101, + 114, + 116, + 114, + 111, + 117, + 119, + 101, + 108, + 105, + 106, + 107, + 104, + 101, + 105, + 100, + 97, + 97, + 110, + 100, + 117, + 105, + 100, + 105, + 110, + 103, + 34, + 58, + 34, + 103, + 101, + 104, + 101, + 105, + 109, + 34, + 44, + 34, + 118, + 101, + 114, + 97, + 110, + 116, + 119, + 111, + 111, + 114, + 100, + 101, + 108, + 105, + 106, + 107, + 101, + 79, + 114, + 103, + 97, + 110, + 105, + 115, + 97, + 116, + 105, + 101, + 34, + 58, + 34, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 34, + 44, + 34, + 97, + 114, + 99, + 104, + 105, + 101, + 102, + 110, + 111, + 109, + 105, + 110, + 97, + 116, + 105, + 101, + 34, + 58, + 110, + 117, + 108, + 108, + 44, + 34, + 97, + 114, + 99, + 104, + 105, + 101, + 102, + 97, + 99, + 116, + 105, + 101, + 100, + 97, + 116, + 117, + 109, + 34, + 58, + 110, + 117, + 108, + 108, + 44, + 34, + 97, + 114, + 99, + 104, + 105, + 101, + 102, + 115, + 116, + 97, + 116, + 117, + 115, + 34, + 58, + 34, + 110, + 111, + 103, + 95, + 116, + 101, + 95, + 97, + 114, + 99, + 104, + 105, + 118, + 101, + 114, + 101, + 110, + 34, + 44, + 34, + 98, + 101, + 116, + 97, + 108, + 105, + 110, + 103, + 115, + 105, + 110, + 100, + 105, + 99, + 97, + 116, + 105, + 101, + 34, + 58, + 34, + 103, + 101, + 104, + 101, + 101, + 108, + 34, + 44, + 34, + 108, + 97, + 97, + 116, + 115, + 116, + 101, + 66, + 101, + 116, + 97, + 97, + 108, + 100, + 97, + 116, + 117, + 109, + 34, + 58, + 34, + 50, + 48, + 49, + 57, + 45, + 48, + 49, + 45, + 48, + 49, + 34, + 44, + 34, + 104, + 111, + 111, + 102, + 100, + 122, + 97, + 97, + 107, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 122, + 97, + 107, + 101, + 110, + 92, + 47, + 118, + 49, + 92, + 47, + 122, + 97, + 107, + 101, + 110, + 92, + 47, + 50, + 54, + 99, + 54, + 102, + 48, + 53, + 54, + 45, + 100, + 56, + 98, + 50, + 45, + 52, + 102, + 57, + 54, + 45, + 97, + 55, + 56, + 51, + 45, + 97, + 57, + 53, + 57, + 49, + 55, + 50, + 51, + 99, + 51, + 56, + 54, + 34, + 125 + ] + }, + "cookie": [], + "responseTime": 300, + "responseSize": 918 + }, + "id": "320e45f5-5eaa-4472-a03b-e8d72ff4ee71" + }, + { + "cursor": { + "ref": "fcd68446-afbd-4ba4-91f3-e5e0790a1432", + "length": 313, + "cycles": 1, + "position": 294, + "iteration": 0, + "httpRequestId": "efcdd9d2-d640-417e-a81e-5ae6391e847d" + }, + "item": { + "id": "d4c5d7d7-4acd-4b9f-8380-1878b9c0164f", + "name": "Add Resultaat to Zaak", + "request": { + "url": { + "path": [ + "resultaten" + ], + "host": [ + "{{zrc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n\t\"zaak\": \"{{created_zaak_url}}\",\n\t\"resultaattype\": \"{{resultaattype_url}}\"\n}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "5ccd4163-d77c-438a-8c07-a8da6804c847", + "type": "text/javascript", + "exec": [ + "pm.environment.set(\"resultaat_url\", pm.response.json().url);" + ], + "_lastExecutionId": "f29dbf47-8fd1-46f1-bf18-0370c3ffd94d" + } + }, + { + "listen": "prerequest", + "script": { + "id": "77fe7db8-0cc4-4a98-a557-0fa65fc81af5", + "type": "text/javascript", + "exec": [ + "pm.environment.set(\"resultaattype\", pm.environment.get(\"zaaktype_resultaattypen\")[0]);" + ], + "_lastExecutionId": "02ffa4f6-41df-4aa6-939d-a8ff0ef4307d" + } + } + ] + }, + "request": { + "url": { + "protocol": "http", + "port": "8080", + "path": [ + "index.php", + "apps", + "procest", + "api", + "zgw", + "zaken", + "v1", + "resultaten" + ], + "host": [ + "localhost" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Authorization", + "value": "Bearer eyJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJwcm9jZXN0LWFkbWluIiwiY2xpZW50X2lkIjoicHJvY2VzdC1hZG1pbiIsImlhdCI6IjE3NzMxNDUyMTciLCJ1c2VyX2lkIjoicHJvY2VzdC1hZG1pbiIsInVzZXJfcmVwcmVzZW50YXRpb24iOiIifQ.eHAK4b_z4mRSAPaeRCr2kMrl0HY_1jgkHQzZjo8UoAQ", + "system": true + }, + { + "key": "User-Agent", + "value": "PostmanRuntime/7.39.1", + "system": true + }, + { + "key": "Accept", + "value": "*/*", + "system": true + }, + { + "key": "Cache-Control", + "value": "no-cache", + "system": true + }, + { + "key": "Postman-Token", + "value": "0e6e2cbe-3774-43ea-85bc-cc0fd2e038d7", + "system": true + }, + { + "key": "Host", + "value": "localhost:8080", + "system": true + }, + { + "key": "Accept-Encoding", + "value": "gzip, deflate, br", + "system": true + }, + { + "key": "Connection", + "value": "keep-alive", + "system": true + }, + { + "key": "Content-Length", + "value": "257", + "system": true + }, + { + "key": "Cookie", + "value": "ocvp3112b4wg=a1b79f847a1056517d38faab4a51215b; oc_sessionPassphrase=LBNdKxRzA0iqoULIruNxDDh2BK3O%2BrCIU8aUmiUcOFvy5Xw1YfjwQNlmBW2IkGwJYtxXh9%2BwDN6vYuGNX07tXzkBtjQJUWTGdzf8AIOUIVxVx5DfyWAQZ7nmYmQv6XSE; nc_sameSiteCookielax=true; nc_sameSiteCookiestrict=true", + "system": true + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n\t\"zaak\": \"http://localhost:8080/index.php/apps/procest/api/zgw/zaken/v1/zaken/26c6f056-d8b2-4f96-a783-a9591723c386\",\n\t\"resultaattype\": \"http://localhost:8080/index.php/apps/procest/api/zgw/catalogi/v1/resultaattypen/46bae072-9fce-4b71-8aec-6f9360f7b717\"\n}" + }, + "auth": { + "type": "jwt", + "jwt": [ + { + "type": "string", + "value": "{\r\n \"iss\": \"procest-admin\",\r\n \"client_id\": \"procest-admin\",\r\n \"iat\": \"1773145217\",\r\n \"user_id\": \"procest-admin\",\r\n \"user_representation\": \"\"\r\n}", + "key": "payload" + }, + { + "type": "string", + "value": "procest-admin-secret-key-for-testing", + "key": "secret" + }, + { + "type": "string", + "value": "HS256", + "key": "algorithm" + }, + { + "type": "boolean", + "value": false, + "key": "isSecretBase64Encoded" + }, + { + "type": "string", + "value": "header", + "key": "addTokenTo" + }, + { + "type": "string", + "value": "Bearer", + "key": "headerPrefix" + }, + { + "type": "string", + "value": "token", + "key": "queryParamKey" + }, + { + "type": "string", + "value": "{}", + "key": "header" + } + ] + } + }, + "response": { + "id": "a53e4d16-7540-4f44-81fd-33eb001f7385", + "status": "Created", + "code": 201, + "header": [ + { + "key": "Date", + "value": "Tue, 10 Mar 2026 12:20:17 GMT" + }, + { + "key": "Server", + "value": "Apache/2.4.66 (Debian)" + }, + { + "key": "X-Content-Type-Options", + "value": "nosniff" + }, + { + "key": "X-Frame-Options", + "value": "SAMEORIGIN" + }, + { + "key": "X-Permitted-Cross-Domain-Policies", + "value": "none" + }, + { + "key": "X-Robots-Tag", + "value": "noindex, nofollow" + }, + { + "key": "Referrer-Policy", + "value": "no-referrer" + }, + { + "key": "X-Powered-By", + "value": "PHP/8.3.30" + }, + { + "key": "Content-Security-Policy", + "value": "default-src 'none';base-uri 'none';manifest-src 'self';frame-ancestors 'none'" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=a1b79f847a1056517d38faab4a51215b; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=a1b79f847a1056517d38faab4a51215b; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=a1b79f847a1056517d38faab4a51215b; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=a1b79f847a1056517d38faab4a51215b; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=a1b79f847a1056517d38faab4a51215b; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=e9932c62f18e86bec6c562000f6e6998; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=e9932c62f18e86bec6c562000f6e6998; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=e9932c62f18e86bec6c562000f6e6998; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=e9932c62f18e86bec6c562000f6e6998; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=e9932c62f18e86bec6c562000f6e6998; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "X-Request-Id", + "value": "2wUCk9wbtXXj9SrtR3y5" + }, + { + "key": "Cache-Control", + "value": "no-cache, no-store, must-revalidate" + }, + { + "key": "Feature-Policy", + "value": "autoplay 'none';camera 'none';fullscreen 'none';geolocation 'none';microphone 'none';payment 'none'" + }, + { + "key": "X-User-Id", + "value": "admin" + }, + { + "key": "Content-Length", + "value": "464" + }, + { + "key": "Keep-Alive", + "value": "timeout=5, max=87" + }, + { + "key": "Connection", + "value": "Keep-Alive" + }, + { + "key": "Content-Type", + "value": "application/json; charset=utf-8" + } + ], + "stream": { + "type": "Buffer", + "data": [ + 123, + 34, + 117, + 114, + 108, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 122, + 97, + 107, + 101, + 110, + 92, + 47, + 118, + 49, + 92, + 47, + 114, + 101, + 115, + 117, + 108, + 116, + 97, + 116, + 101, + 110, + 92, + 47, + 98, + 57, + 57, + 100, + 100, + 50, + 97, + 54, + 45, + 49, + 53, + 101, + 101, + 45, + 52, + 97, + 56, + 53, + 45, + 98, + 57, + 57, + 101, + 45, + 49, + 57, + 55, + 49, + 53, + 99, + 51, + 49, + 97, + 49, + 99, + 49, + 34, + 44, + 34, + 117, + 117, + 105, + 100, + 34, + 58, + 34, + 98, + 57, + 57, + 100, + 100, + 50, + 97, + 54, + 45, + 49, + 53, + 101, + 101, + 45, + 52, + 97, + 56, + 53, + 45, + 98, + 57, + 57, + 101, + 45, + 49, + 57, + 55, + 49, + 53, + 99, + 51, + 49, + 97, + 49, + 99, + 49, + 34, + 44, + 34, + 122, + 97, + 97, + 107, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 122, + 97, + 107, + 101, + 110, + 92, + 47, + 118, + 49, + 92, + 47, + 122, + 97, + 107, + 101, + 110, + 92, + 47, + 50, + 54, + 99, + 54, + 102, + 48, + 53, + 54, + 45, + 100, + 56, + 98, + 50, + 45, + 52, + 102, + 57, + 54, + 45, + 97, + 55, + 56, + 51, + 45, + 97, + 57, + 53, + 57, + 49, + 55, + 50, + 51, + 99, + 51, + 56, + 54, + 34, + 44, + 34, + 114, + 101, + 115, + 117, + 108, + 116, + 97, + 97, + 116, + 116, + 121, + 112, + 101, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 105, + 92, + 47, + 118, + 49, + 92, + 47, + 114, + 101, + 115, + 117, + 108, + 116, + 97, + 97, + 116, + 116, + 121, + 112, + 101, + 110, + 92, + 47, + 52, + 54, + 98, + 97, + 101, + 48, + 55, + 50, + 45, + 57, + 102, + 99, + 101, + 45, + 52, + 98, + 55, + 49, + 45, + 56, + 97, + 101, + 99, + 45, + 54, + 102, + 57, + 51, + 54, + 48, + 102, + 55, + 98, + 55, + 49, + 55, + 34, + 44, + 34, + 116, + 111, + 101, + 108, + 105, + 99, + 104, + 116, + 105, + 110, + 103, + 34, + 58, + 34, + 34, + 125 + ] + }, + "cookie": [], + "responseTime": 313, + "responseSize": 464 + }, + "id": "d4c5d7d7-4acd-4b9f-8380-1878b9c0164f" + }, + { + "cursor": { + "ref": "1073a74f-ad0c-41d6-b106-bbce6e87e185", + "length": 313, + "cycles": 1, + "position": 295, + "iteration": 0, + "httpRequestId": "9dd85493-6ee5-4906-8b52-a272f2110abe" + }, + "item": { + "id": "630edbb3-b204-499a-b54f-8d7cf66cd38c", + "name": "Add Status to Zaak", + "request": { + "url": { + "path": [ + "statussen" + ], + "host": [ + "{{zrc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n\t\"zaak\": \"{{created_zaak_url}}\",\n\t\"statustype\": \"{{non_eindstatustype}}\",\n\t\"datumStatusGezet\": \"2018-04-20T13:37:00\"\n}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "9474a79f-70fb-4a21-b9fa-d695228d387b", + "type": "text/javascript", + "exec": [ + "pm.environment.set(\"status_url\", pm.response.json().url);" + ], + "_lastExecutionId": "ee2c8b3a-7f2d-46bc-8f02-c62927dcffcd" + } + }, + { + "listen": "prerequest", + "script": { + "id": "eba85345-cad5-49c5-80b7-37b3aaddde57", + "type": "text/javascript", + "exec": [ + "" + ], + "_lastExecutionId": "dce74d19-9737-4f10-b712-8906ff7504bd" + } + } + ] + }, + "request": { + "url": { + "protocol": "http", + "port": "8080", + "path": [ + "index.php", + "apps", + "procest", + "api", + "zgw", + "zaken", + "v1", + "statussen" + ], + "host": [ + "localhost" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Authorization", + "value": "Bearer eyJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJwcm9jZXN0LWFkbWluIiwiY2xpZW50X2lkIjoicHJvY2VzdC1hZG1pbiIsImlhdCI6IjE3NzMxNDUyMTgiLCJ1c2VyX2lkIjoicHJvY2VzdC1hZG1pbiIsInVzZXJfcmVwcmVzZW50YXRpb24iOiIifQ.wDlTlectIeqyhqVmFjRgEva5zomNpb3mYS7SdDZOUyc", + "system": true + }, + { + "key": "User-Agent", + "value": "PostmanRuntime/7.39.1", + "system": true + }, + { + "key": "Accept", + "value": "*/*", + "system": true + }, + { + "key": "Cache-Control", + "value": "no-cache", + "system": true + }, + { + "key": "Postman-Token", + "value": "8bf12e4e-1139-43ff-a144-32d256c9baad", + "system": true + }, + { + "key": "Host", + "value": "localhost:8080", + "system": true + }, + { + "key": "Accept-Encoding", + "value": "gzip, deflate, br", + "system": true + }, + { + "key": "Connection", + "value": "keep-alive", + "system": true + }, + { + "key": "Content-Length", + "value": "295", + "system": true + }, + { + "key": "Cookie", + "value": "ocvp3112b4wg=e9932c62f18e86bec6c562000f6e6998; oc_sessionPassphrase=LBNdKxRzA0iqoULIruNxDDh2BK3O%2BrCIU8aUmiUcOFvy5Xw1YfjwQNlmBW2IkGwJYtxXh9%2BwDN6vYuGNX07tXzkBtjQJUWTGdzf8AIOUIVxVx5DfyWAQZ7nmYmQv6XSE; nc_sameSiteCookielax=true; nc_sameSiteCookiestrict=true", + "system": true + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n\t\"zaak\": \"http://localhost:8080/index.php/apps/procest/api/zgw/zaken/v1/zaken/26c6f056-d8b2-4f96-a783-a9591723c386\",\n\t\"statustype\": \"http://localhost:8080/index.php/apps/procest/api/zgw/catalogi/v1/statustypen/d769d686-e0b1-4b57-a517-8c7b55038f9b\",\n\t\"datumStatusGezet\": \"2018-04-20T13:37:00\"\n}" + }, + "auth": { + "type": "jwt", + "jwt": [ + { + "type": "string", + "value": "{\r\n \"iss\": \"procest-admin\",\r\n \"client_id\": \"procest-admin\",\r\n \"iat\": \"1773145218\",\r\n \"user_id\": \"procest-admin\",\r\n \"user_representation\": \"\"\r\n}", + "key": "payload" + }, + { + "type": "string", + "value": "procest-admin-secret-key-for-testing", + "key": "secret" + }, + { + "type": "string", + "value": "HS256", + "key": "algorithm" + }, + { + "type": "boolean", + "value": false, + "key": "isSecretBase64Encoded" + }, + { + "type": "string", + "value": "header", + "key": "addTokenTo" + }, + { + "type": "string", + "value": "Bearer", + "key": "headerPrefix" + }, + { + "type": "string", + "value": "token", + "key": "queryParamKey" + }, + { + "type": "string", + "value": "{}", + "key": "header" + } + ] + } + }, + "response": { + "id": "a3ed779d-5ecf-4865-8d69-777a83e33203", + "status": "Created", + "code": 201, + "header": [ + { + "key": "Date", + "value": "Tue, 10 Mar 2026 12:20:17 GMT" + }, + { + "key": "Server", + "value": "Apache/2.4.66 (Debian)" + }, + { + "key": "X-Content-Type-Options", + "value": "nosniff" + }, + { + "key": "X-Frame-Options", + "value": "SAMEORIGIN" + }, + { + "key": "X-Permitted-Cross-Domain-Policies", + "value": "none" + }, + { + "key": "X-Robots-Tag", + "value": "noindex, nofollow" + }, + { + "key": "Referrer-Policy", + "value": "no-referrer" + }, + { + "key": "X-Powered-By", + "value": "PHP/8.3.30" + }, + { + "key": "Content-Security-Policy", + "value": "default-src 'none';base-uri 'none';manifest-src 'self';frame-ancestors 'none'" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=e9932c62f18e86bec6c562000f6e6998; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=e9932c62f18e86bec6c562000f6e6998; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=e9932c62f18e86bec6c562000f6e6998; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=e9932c62f18e86bec6c562000f6e6998; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=e9932c62f18e86bec6c562000f6e6998; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=96f3ed21c4016e23b5a77c3d95218982; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=96f3ed21c4016e23b5a77c3d95218982; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=96f3ed21c4016e23b5a77c3d95218982; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=96f3ed21c4016e23b5a77c3d95218982; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=96f3ed21c4016e23b5a77c3d95218982; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "X-Request-Id", + "value": "DFx9tZwgSM7HiuZyOHON" + }, + { + "key": "Cache-Control", + "value": "no-cache, no-store, must-revalidate" + }, + { + "key": "Feature-Policy", + "value": "autoplay 'none';camera 'none';fullscreen 'none';geolocation 'none';microphone 'none';payment 'none'" + }, + { + "key": "X-User-Id", + "value": "admin" + }, + { + "key": "Content-Length", + "value": "510" + }, + { + "key": "Keep-Alive", + "value": "timeout=5, max=86" + }, + { + "key": "Connection", + "value": "Keep-Alive" + }, + { + "key": "Content-Type", + "value": "application/json; charset=utf-8" + } + ], + "stream": { + "type": "Buffer", + "data": [ + 123, + 34, + 117, + 114, + 108, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 122, + 97, + 107, + 101, + 110, + 92, + 47, + 118, + 49, + 92, + 47, + 115, + 116, + 97, + 116, + 117, + 115, + 115, + 101, + 110, + 92, + 47, + 100, + 98, + 57, + 101, + 101, + 48, + 48, + 57, + 45, + 48, + 55, + 52, + 101, + 45, + 52, + 50, + 98, + 100, + 45, + 56, + 102, + 50, + 101, + 45, + 56, + 100, + 54, + 55, + 53, + 49, + 52, + 55, + 101, + 50, + 54, + 53, + 34, + 44, + 34, + 117, + 117, + 105, + 100, + 34, + 58, + 34, + 100, + 98, + 57, + 101, + 101, + 48, + 48, + 57, + 45, + 48, + 55, + 52, + 101, + 45, + 52, + 50, + 98, + 100, + 45, + 56, + 102, + 50, + 101, + 45, + 56, + 100, + 54, + 55, + 53, + 49, + 52, + 55, + 101, + 50, + 54, + 53, + 34, + 44, + 34, + 122, + 97, + 97, + 107, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 122, + 97, + 107, + 101, + 110, + 92, + 47, + 118, + 49, + 92, + 47, + 122, + 97, + 107, + 101, + 110, + 92, + 47, + 50, + 54, + 99, + 54, + 102, + 48, + 53, + 54, + 45, + 100, + 56, + 98, + 50, + 45, + 52, + 102, + 57, + 54, + 45, + 97, + 55, + 56, + 51, + 45, + 97, + 57, + 53, + 57, + 49, + 55, + 50, + 51, + 99, + 51, + 56, + 54, + 34, + 44, + 34, + 115, + 116, + 97, + 116, + 117, + 115, + 116, + 121, + 112, + 101, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 105, + 92, + 47, + 118, + 49, + 92, + 47, + 115, + 116, + 97, + 116, + 117, + 115, + 116, + 121, + 112, + 101, + 110, + 92, + 47, + 100, + 55, + 54, + 57, + 100, + 54, + 56, + 54, + 45, + 101, + 48, + 98, + 49, + 45, + 52, + 98, + 53, + 55, + 45, + 97, + 53, + 49, + 55, + 45, + 56, + 99, + 55, + 98, + 53, + 53, + 48, + 51, + 56, + 102, + 57, + 98, + 34, + 44, + 34, + 100, + 97, + 116, + 117, + 109, + 83, + 116, + 97, + 116, + 117, + 115, + 71, + 101, + 122, + 101, + 116, + 34, + 58, + 34, + 50, + 48, + 50, + 54, + 45, + 48, + 51, + 45, + 49, + 48, + 84, + 49, + 50, + 58, + 50, + 48, + 58, + 49, + 55, + 43, + 48, + 48, + 58, + 48, + 48, + 34, + 44, + 34, + 115, + 116, + 97, + 116, + 117, + 115, + 116, + 111, + 101, + 108, + 105, + 99, + 104, + 116, + 105, + 110, + 103, + 34, + 58, + 34, + 34, + 125 + ] + }, + "cookie": [], + "responseTime": 230, + "responseSize": 510 + }, + "id": "630edbb3-b204-499a-b54f-8d7cf66cd38c" + }, + { + "cursor": { + "ref": "be358d7f-5907-4905-ad7c-c5272860e5f7", + "length": 313, + "cycles": 1, + "position": 296, + "iteration": 0, + "httpRequestId": "99ecf9de-b1da-4947-95dc-742c87350669" + }, + "item": { + "id": "854100b1-2947-4b6b-8e72-80c32ff6e59b", + "name": "Add Rol to Zaak", + "request": { + "url": { + "path": [ + "rollen" + ], + "host": [ + "{{zrc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n\t\"zaak\": \"{{created_zaak_url}}\",\n\t\"betrokkene\": \"http://example.com/2d0815580af94ee0a15aa677aa646e1a\",\n\t\"betrokkeneType\": \"natuurlijk_persoon\",\n\t\"rolomschrijving\": \"behandelaar\",\n\t\"roltoelichting\": \"testrol\",\n\t\"roltype\": \"{{roltype_url}}\"\n}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "02598bb9-75cb-42ac-a0a9-5da7eb75e9ea", + "type": "text/javascript", + "exec": [ + "pm.environment.set(\"rol_url\", pm.response.json().url);" + ], + "_lastExecutionId": "f104361d-4dc7-4f8b-a967-56f1c2ac4e0b" + } + }, + { + "listen": "prerequest", + "script": { + "id": "ca96583e-6054-4aa1-a769-f6150487e7cd", + "type": "text/javascript", + "exec": [ + "" + ], + "_lastExecutionId": "f4f39d99-9c56-4f80-90f2-fff6aa3bec70" + } + } + ] + }, + "request": { + "url": { + "protocol": "http", + "port": "8080", + "path": [ + "index.php", + "apps", + "procest", + "api", + "zgw", + "zaken", + "v1", + "rollen" + ], + "host": [ + "localhost" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Authorization", + "value": "Bearer eyJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJwcm9jZXN0LWFkbWluIiwiY2xpZW50X2lkIjoicHJvY2VzdC1hZG1pbiIsImlhdCI6IjE3NzMxNDUyMTgiLCJ1c2VyX2lkIjoicHJvY2VzdC1hZG1pbiIsInVzZXJfcmVwcmVzZW50YXRpb24iOiIifQ.wDlTlectIeqyhqVmFjRgEva5zomNpb3mYS7SdDZOUyc", + "system": true + }, + { + "key": "User-Agent", + "value": "PostmanRuntime/7.39.1", + "system": true + }, + { + "key": "Accept", + "value": "*/*", + "system": true + }, + { + "key": "Cache-Control", + "value": "no-cache", + "system": true + }, + { + "key": "Postman-Token", + "value": "c8564cd3-23fe-4d78-b147-34418e195f57", + "system": true + }, + { + "key": "Host", + "value": "localhost:8080", + "system": true + }, + { + "key": "Accept-Encoding", + "value": "gzip, deflate, br", + "system": true + }, + { + "key": "Connection", + "value": "keep-alive", + "system": true + }, + { + "key": "Content-Length", + "value": "421", + "system": true + }, + { + "key": "Cookie", + "value": "ocvp3112b4wg=96f3ed21c4016e23b5a77c3d95218982; oc_sessionPassphrase=LBNdKxRzA0iqoULIruNxDDh2BK3O%2BrCIU8aUmiUcOFvy5Xw1YfjwQNlmBW2IkGwJYtxXh9%2BwDN6vYuGNX07tXzkBtjQJUWTGdzf8AIOUIVxVx5DfyWAQZ7nmYmQv6XSE; nc_sameSiteCookielax=true; nc_sameSiteCookiestrict=true", + "system": true + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n\t\"zaak\": \"http://localhost:8080/index.php/apps/procest/api/zgw/zaken/v1/zaken/26c6f056-d8b2-4f96-a783-a9591723c386\",\n\t\"betrokkene\": \"http://example.com/2d0815580af94ee0a15aa677aa646e1a\",\n\t\"betrokkeneType\": \"natuurlijk_persoon\",\n\t\"rolomschrijving\": \"behandelaar\",\n\t\"roltoelichting\": \"testrol\",\n\t\"roltype\": \"http://localhost:8080/index.php/apps/procest/api/zgw/catalogi/v1/roltypen/4b6165cd-7d73-4215-8f8f-0373d53f5471\"\n}" + }, + "auth": { + "type": "jwt", + "jwt": [ + { + "type": "string", + "value": "{\r\n \"iss\": \"procest-admin\",\r\n \"client_id\": \"procest-admin\",\r\n \"iat\": \"1773145218\",\r\n \"user_id\": \"procest-admin\",\r\n \"user_representation\": \"\"\r\n}", + "key": "payload" + }, + { + "type": "string", + "value": "procest-admin-secret-key-for-testing", + "key": "secret" + }, + { + "type": "string", + "value": "HS256", + "key": "algorithm" + }, + { + "type": "boolean", + "value": false, + "key": "isSecretBase64Encoded" + }, + { + "type": "string", + "value": "header", + "key": "addTokenTo" + }, + { + "type": "string", + "value": "Bearer", + "key": "headerPrefix" + }, + { + "type": "string", + "value": "token", + "key": "queryParamKey" + }, + { + "type": "string", + "value": "{}", + "key": "header" + } + ] + } + }, + "response": { + "id": "04049c48-7361-4d9c-a034-00fd5ec2809c", + "status": "Created", + "code": 201, + "header": [ + { + "key": "Date", + "value": "Tue, 10 Mar 2026 12:20:17 GMT" + }, + { + "key": "Server", + "value": "Apache/2.4.66 (Debian)" + }, + { + "key": "X-Content-Type-Options", + "value": "nosniff" + }, + { + "key": "X-Frame-Options", + "value": "SAMEORIGIN" + }, + { + "key": "X-Permitted-Cross-Domain-Policies", + "value": "none" + }, + { + "key": "X-Robots-Tag", + "value": "noindex, nofollow" + }, + { + "key": "Referrer-Policy", + "value": "no-referrer" + }, + { + "key": "X-Powered-By", + "value": "PHP/8.3.30" + }, + { + "key": "Content-Security-Policy", + "value": "default-src 'none';base-uri 'none';manifest-src 'self';frame-ancestors 'none'" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=96f3ed21c4016e23b5a77c3d95218982; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=96f3ed21c4016e23b5a77c3d95218982; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=96f3ed21c4016e23b5a77c3d95218982; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=96f3ed21c4016e23b5a77c3d95218982; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=96f3ed21c4016e23b5a77c3d95218982; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=50d8398b2171a19107fc2d665641792c; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=50d8398b2171a19107fc2d665641792c; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=50d8398b2171a19107fc2d665641792c; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=50d8398b2171a19107fc2d665641792c; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=50d8398b2171a19107fc2d665641792c; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "X-Request-Id", + "value": "SbU1E39A6zBpKFKZkuVi" + }, + { + "key": "Cache-Control", + "value": "no-cache, no-store, must-revalidate" + }, + { + "key": "Feature-Policy", + "value": "autoplay 'none';camera 'none';fullscreen 'none';geolocation 'none';microphone 'none';payment 'none'" + }, + { + "key": "X-User-Id", + "value": "admin" + }, + { + "key": "Content-Length", + "value": "504" + }, + { + "key": "Keep-Alive", + "value": "timeout=5, max=85" + }, + { + "key": "Connection", + "value": "Keep-Alive" + }, + { + "key": "Content-Type", + "value": "application/json; charset=utf-8" + } + ], + "stream": { + "type": "Buffer", + "data": [ + 123, + 34, + 117, + 114, + 108, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 122, + 97, + 107, + 101, + 110, + 92, + 47, + 118, + 49, + 92, + 47, + 114, + 111, + 108, + 108, + 101, + 110, + 92, + 47, + 101, + 54, + 99, + 56, + 98, + 98, + 50, + 53, + 45, + 57, + 55, + 48, + 101, + 45, + 52, + 100, + 50, + 55, + 45, + 57, + 54, + 49, + 56, + 45, + 97, + 48, + 97, + 56, + 53, + 50, + 102, + 51, + 55, + 53, + 48, + 99, + 34, + 44, + 34, + 117, + 117, + 105, + 100, + 34, + 58, + 34, + 101, + 54, + 99, + 56, + 98, + 98, + 50, + 53, + 45, + 57, + 55, + 48, + 101, + 45, + 52, + 100, + 50, + 55, + 45, + 57, + 54, + 49, + 56, + 45, + 97, + 48, + 97, + 56, + 53, + 50, + 102, + 51, + 55, + 53, + 48, + 99, + 34, + 44, + 34, + 122, + 97, + 97, + 107, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 122, + 97, + 107, + 101, + 110, + 92, + 47, + 118, + 49, + 92, + 47, + 122, + 97, + 107, + 101, + 110, + 92, + 47, + 50, + 54, + 99, + 54, + 102, + 48, + 53, + 54, + 45, + 100, + 56, + 98, + 50, + 45, + 52, + 102, + 57, + 54, + 45, + 97, + 55, + 56, + 51, + 45, + 97, + 57, + 53, + 57, + 49, + 55, + 50, + 51, + 99, + 51, + 56, + 54, + 34, + 44, + 34, + 114, + 111, + 108, + 116, + 121, + 112, + 101, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 105, + 92, + 47, + 118, + 49, + 92, + 47, + 114, + 111, + 108, + 116, + 121, + 112, + 101, + 110, + 92, + 47, + 52, + 98, + 54, + 49, + 54, + 53, + 99, + 100, + 45, + 55, + 100, + 55, + 51, + 45, + 52, + 50, + 49, + 53, + 45, + 56, + 102, + 56, + 102, + 45, + 48, + 51, + 55, + 51, + 100, + 53, + 51, + 102, + 53, + 52, + 55, + 49, + 34, + 44, + 34, + 111, + 109, + 115, + 99, + 104, + 114, + 105, + 106, + 118, + 105, + 110, + 103, + 34, + 58, + 34, + 34, + 44, + 34, + 111, + 109, + 115, + 99, + 104, + 114, + 105, + 106, + 118, + 105, + 110, + 103, + 71, + 101, + 110, + 101, + 114, + 105, + 101, + 107, + 34, + 58, + 34, + 34, + 44, + 34, + 98, + 101, + 116, + 114, + 111, + 107, + 107, + 101, + 110, + 101, + 73, + 100, + 101, + 110, + 116, + 105, + 102, + 105, + 99, + 97, + 116, + 105, + 101, + 34, + 58, + 34, + 34, + 125 + ] + }, + "cookie": [], + "responseTime": 222, + "responseSize": 504 + }, + "id": "854100b1-2947-4b6b-8e72-80c32ff6e59b" + }, + { + "cursor": { + "ref": "3a751d22-aa7b-4c61-88be-e83182d06de2", + "length": 313, + "cycles": 1, + "position": 297, + "iteration": 0, + "httpRequestId": "6d61122c-12a7-40d3-b517-e5c3df6850e4" + }, + "item": { + "id": "e9685c80-da33-4fb3-8ad0-8d0336ff8857", + "name": "Create Zaakobject", + "request": { + "url": { + "path": [ + "zaakobjecten" + ], + "host": [ + "{{zrc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n\t\"zaak\": \"{{created_zaak_url}}\",\n\t\"objectType\": \"pand\",\n\t\"objectIdentificatie\": {\n\t\t\"identificatie\": \"test\"\n\t}\n}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "bbf7fe1d-7e73-4739-b41c-b5dd87c21a62", + "type": "text/javascript", + "exec": [ + "pm.environment.set(\"zaakobject_url\", pm.response.json().url);" + ], + "_lastExecutionId": "591950a1-590f-47a9-b3a0-ef13930c731d" + } + } + ] + }, + "request": { + "url": { + "protocol": "http", + "port": "8080", + "path": [ + "index.php", + "apps", + "procest", + "api", + "zgw", + "zaken", + "v1", + "zaakobjecten" + ], + "host": [ + "localhost" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Authorization", + "value": "Bearer eyJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJwcm9jZXN0LWFkbWluIiwiY2xpZW50X2lkIjoicHJvY2VzdC1hZG1pbiIsImlhdCI6IjE3NzMxNDUyMTgiLCJ1c2VyX2lkIjoicHJvY2VzdC1hZG1pbiIsInVzZXJfcmVwcmVzZW50YXRpb24iOiIifQ.wDlTlectIeqyhqVmFjRgEva5zomNpb3mYS7SdDZOUyc", + "system": true + }, + { + "key": "User-Agent", + "value": "PostmanRuntime/7.39.1", + "system": true + }, + { + "key": "Accept", + "value": "*/*", + "system": true + }, + { + "key": "Cache-Control", + "value": "no-cache", + "system": true + }, + { + "key": "Postman-Token", + "value": "6828113d-7755-4df2-a3b8-2ef0a1c494e2", + "system": true + }, + { + "key": "Host", + "value": "localhost:8080", + "system": true + }, + { + "key": "Accept-Encoding", + "value": "gzip, deflate, br", + "system": true + }, + { + "key": "Connection", + "value": "keep-alive", + "system": true + }, + { + "key": "Content-Length", + "value": "198", + "system": true + }, + { + "key": "Cookie", + "value": "ocvp3112b4wg=50d8398b2171a19107fc2d665641792c; oc_sessionPassphrase=LBNdKxRzA0iqoULIruNxDDh2BK3O%2BrCIU8aUmiUcOFvy5Xw1YfjwQNlmBW2IkGwJYtxXh9%2BwDN6vYuGNX07tXzkBtjQJUWTGdzf8AIOUIVxVx5DfyWAQZ7nmYmQv6XSE; nc_sameSiteCookielax=true; nc_sameSiteCookiestrict=true", + "system": true + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n\t\"zaak\": \"http://localhost:8080/index.php/apps/procest/api/zgw/zaken/v1/zaken/26c6f056-d8b2-4f96-a783-a9591723c386\",\n\t\"objectType\": \"pand\",\n\t\"objectIdentificatie\": {\n\t\t\"identificatie\": \"test\"\n\t}\n}" + }, + "auth": { + "type": "jwt", + "jwt": [ + { + "type": "string", + "value": "{\r\n \"iss\": \"procest-admin\",\r\n \"client_id\": \"procest-admin\",\r\n \"iat\": \"1773145218\",\r\n \"user_id\": \"procest-admin\",\r\n \"user_representation\": \"\"\r\n}", + "key": "payload" + }, + { + "type": "string", + "value": "procest-admin-secret-key-for-testing", + "key": "secret" + }, + { + "type": "string", + "value": "HS256", + "key": "algorithm" + }, + { + "type": "boolean", + "value": false, + "key": "isSecretBase64Encoded" + }, + { + "type": "string", + "value": "header", + "key": "addTokenTo" + }, + { + "type": "string", + "value": "Bearer", + "key": "headerPrefix" + }, + { + "type": "string", + "value": "token", + "key": "queryParamKey" + }, + { + "type": "string", + "value": "{}", + "key": "header" + } + ] + } + }, + "response": { + "id": "a24ffaf4-36c3-4be1-a457-f9213937dbce", + "status": "Created", + "code": 201, + "header": [ + { + "key": "Date", + "value": "Tue, 10 Mar 2026 12:20:18 GMT" + }, + { + "key": "Server", + "value": "Apache/2.4.66 (Debian)" + }, + { + "key": "X-Content-Type-Options", + "value": "nosniff" + }, + { + "key": "X-Frame-Options", + "value": "SAMEORIGIN" + }, + { + "key": "X-Permitted-Cross-Domain-Policies", + "value": "none" + }, + { + "key": "X-Robots-Tag", + "value": "noindex, nofollow" + }, + { + "key": "Referrer-Policy", + "value": "no-referrer" + }, + { + "key": "X-Powered-By", + "value": "PHP/8.3.30" + }, + { + "key": "Content-Security-Policy", + "value": "default-src 'none';base-uri 'none';manifest-src 'self';frame-ancestors 'none'" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=50d8398b2171a19107fc2d665641792c; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=50d8398b2171a19107fc2d665641792c; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=50d8398b2171a19107fc2d665641792c; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=50d8398b2171a19107fc2d665641792c; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=50d8398b2171a19107fc2d665641792c; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=0f7bd929820614f6fe846b4d4243c739; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=0f7bd929820614f6fe846b4d4243c739; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=0f7bd929820614f6fe846b4d4243c739; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=0f7bd929820614f6fe846b4d4243c739; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=0f7bd929820614f6fe846b4d4243c739; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "X-Request-Id", + "value": "v78RRtdsKlLRxl7ENTkU" + }, + { + "key": "Cache-Control", + "value": "no-cache, no-store, must-revalidate" + }, + { + "key": "Feature-Policy", + "value": "autoplay 'none';camera 'none';fullscreen 'none';geolocation 'none';microphone 'none';payment 'none'" + }, + { + "key": "X-User-Id", + "value": "admin" + }, + { + "key": "Content-Length", + "value": "387" + }, + { + "key": "Keep-Alive", + "value": "timeout=5, max=84" + }, + { + "key": "Connection", + "value": "Keep-Alive" + }, + { + "key": "Content-Type", + "value": "application/json; charset=utf-8" + } + ], + "stream": { + "type": "Buffer", + "data": [ + 123, + 34, + 117, + 114, + 108, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 122, + 97, + 107, + 101, + 110, + 92, + 47, + 118, + 49, + 92, + 47, + 122, + 97, + 97, + 107, + 111, + 98, + 106, + 101, + 99, + 116, + 101, + 110, + 92, + 47, + 55, + 49, + 52, + 48, + 101, + 57, + 101, + 53, + 45, + 57, + 53, + 53, + 99, + 45, + 52, + 54, + 54, + 48, + 45, + 56, + 55, + 50, + 98, + 45, + 48, + 54, + 50, + 97, + 100, + 100, + 54, + 97, + 57, + 55, + 99, + 50, + 34, + 44, + 34, + 117, + 117, + 105, + 100, + 34, + 58, + 34, + 55, + 49, + 52, + 48, + 101, + 57, + 101, + 53, + 45, + 57, + 53, + 53, + 99, + 45, + 52, + 54, + 54, + 48, + 45, + 56, + 55, + 50, + 98, + 45, + 48, + 54, + 50, + 97, + 100, + 100, + 54, + 97, + 57, + 55, + 99, + 50, + 34, + 44, + 34, + 122, + 97, + 97, + 107, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 122, + 97, + 107, + 101, + 110, + 92, + 47, + 118, + 49, + 92, + 47, + 122, + 97, + 107, + 101, + 110, + 92, + 47, + 50, + 54, + 99, + 54, + 102, + 48, + 53, + 54, + 45, + 100, + 56, + 98, + 50, + 45, + 52, + 102, + 57, + 54, + 45, + 97, + 55, + 56, + 51, + 45, + 97, + 57, + 53, + 57, + 49, + 55, + 50, + 51, + 99, + 51, + 56, + 54, + 34, + 44, + 34, + 111, + 98, + 106, + 101, + 99, + 116, + 34, + 58, + 34, + 34, + 44, + 34, + 111, + 98, + 106, + 101, + 99, + 116, + 84, + 121, + 112, + 101, + 34, + 58, + 34, + 112, + 97, + 110, + 100, + 34, + 44, + 34, + 111, + 98, + 106, + 101, + 99, + 116, + 73, + 100, + 101, + 110, + 116, + 105, + 102, + 105, + 99, + 97, + 116, + 105, + 101, + 34, + 58, + 110, + 117, + 108, + 108, + 44, + 34, + 114, + 101, + 108, + 97, + 116, + 105, + 101, + 111, + 109, + 115, + 99, + 104, + 114, + 105, + 106, + 118, + 105, + 110, + 103, + 34, + 58, + 34, + 34, + 125 + ] + }, + "cookie": [], + "responseTime": 189, + "responseSize": 387 + }, + "id": "e9685c80-da33-4fb3-8ad0-8d0336ff8857" + }, + { + "cursor": { + "ref": "f842e04e-24b4-4247-b210-989176498340", + "length": 313, + "cycles": 1, + "position": 298, + "iteration": 0, + "httpRequestId": "3ebc73ca-3e07-4720-8733-b885777cf6bd" + }, + "item": { + "id": "d2312f10-4728-4a0c-b2d5-26212b1d81a1", + "name": "Add Zaakeigenschap to Zaak", + "request": { + "url": { + "path": [ + "zaakeigenschappen" + ], + "host": [ + "{{created_zaak_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n\t\"zaak\": \"{{created_zaak_url}}\",\n\t\"eigenschap\": \"{{zaaktype_eigenschap}}\",\n\t\"waarde\": \"test\"\n}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "6dcfe42b-1334-4473-abfb-3c3aa462f7b6", + "type": "text/javascript", + "exec": [ + "pm.environment.set(\"zaakeigenschap_url\", pm.response.json().url);" + ], + "_lastExecutionId": "b2f371df-1bfc-4a5b-9f42-9e6cc689412f" + } + }, + { + "listen": "prerequest", + "script": { + "id": "9278a5f0-c004-4742-8a1c-972e85379c72", + "type": "text/javascript", + "exec": [ + "" + ], + "_lastExecutionId": "16375c1c-ef7d-4d77-a8df-881884a919e3" + } + } + ] + }, + "request": { + "url": { + "protocol": "http", + "port": "8080", + "path": [ + "index.php", + "apps", + "procest", + "api", + "zgw", + "zaken", + "v1", + "zaken", + "26c6f056-d8b2-4f96-a783-a9591723c386", + "zaakeigenschappen" + ], + "host": [ + "localhost" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Authorization", + "value": "Bearer eyJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJwcm9jZXN0LWFkbWluIiwiY2xpZW50X2lkIjoicHJvY2VzdC1hZG1pbiIsImlhdCI6IjE3NzMxNDUyMTkiLCJ1c2VyX2lkIjoicHJvY2VzdC1hZG1pbiIsInVzZXJfcmVwcmVzZW50YXRpb24iOiIifQ.C8mWxirynI1d-NYG0IVVWvoXv_CdN8Rqd-_sjiwagPE", + "system": true + }, + { + "key": "User-Agent", + "value": "PostmanRuntime/7.39.1", + "system": true + }, + { + "key": "Accept", + "value": "*/*", + "system": true + }, + { + "key": "Cache-Control", + "value": "no-cache", + "system": true + }, + { + "key": "Postman-Token", + "value": "0abecbbd-5149-4bf5-bdc9-d767642c2dbf", + "system": true + }, + { + "key": "Host", + "value": "localhost:8080", + "system": true + }, + { + "key": "Accept-Encoding", + "value": "gzip, deflate, br", + "system": true + }, + { + "key": "Connection", + "value": "keep-alive", + "system": true + }, + { + "key": "Content-Length", + "value": "272", + "system": true + }, + { + "key": "Cookie", + "value": "ocvp3112b4wg=0f7bd929820614f6fe846b4d4243c739; oc_sessionPassphrase=LBNdKxRzA0iqoULIruNxDDh2BK3O%2BrCIU8aUmiUcOFvy5Xw1YfjwQNlmBW2IkGwJYtxXh9%2BwDN6vYuGNX07tXzkBtjQJUWTGdzf8AIOUIVxVx5DfyWAQZ7nmYmQv6XSE; nc_sameSiteCookielax=true; nc_sameSiteCookiestrict=true", + "system": true + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n\t\"zaak\": \"http://localhost:8080/index.php/apps/procest/api/zgw/zaken/v1/zaken/26c6f056-d8b2-4f96-a783-a9591723c386\",\n\t\"eigenschap\": \"http://localhost:8080/index.php/apps/procest/api/zgw/catalogi/v1/eigenschappen/50353378-df48-4db3-a8bc-ead8d8d7c6ab\",\n\t\"waarde\": \"test\"\n}" + }, + "auth": { + "type": "jwt", + "jwt": [ + { + "type": "string", + "value": "{\r\n \"iss\": \"procest-admin\",\r\n \"client_id\": \"procest-admin\",\r\n \"iat\": \"1773145219\",\r\n \"user_id\": \"procest-admin\",\r\n \"user_representation\": \"\"\r\n}", + "key": "payload" + }, + { + "type": "string", + "value": "procest-admin-secret-key-for-testing", + "key": "secret" + }, + { + "type": "string", + "value": "HS256", + "key": "algorithm" + }, + { + "type": "boolean", + "value": false, + "key": "isSecretBase64Encoded" + }, + { + "type": "string", + "value": "header", + "key": "addTokenTo" + }, + { + "type": "string", + "value": "Bearer", + "key": "headerPrefix" + }, + { + "type": "string", + "value": "token", + "key": "queryParamKey" + }, + { + "type": "string", + "value": "{}", + "key": "header" + } + ] + } + }, + "response": { + "id": "571674b7-7221-4720-ae32-135c32377d91", + "status": "Created", + "code": 201, + "header": [ + { + "key": "Date", + "value": "Tue, 10 Mar 2026 12:20:18 GMT" + }, + { + "key": "Server", + "value": "Apache/2.4.66 (Debian)" + }, + { + "key": "X-Content-Type-Options", + "value": "nosniff" + }, + { + "key": "X-Frame-Options", + "value": "SAMEORIGIN" + }, + { + "key": "X-Permitted-Cross-Domain-Policies", + "value": "none" + }, + { + "key": "X-Robots-Tag", + "value": "noindex, nofollow" + }, + { + "key": "Referrer-Policy", + "value": "no-referrer" + }, + { + "key": "X-Powered-By", + "value": "PHP/8.3.30" + }, + { + "key": "Content-Security-Policy", + "value": "default-src 'none';base-uri 'none';manifest-src 'self';frame-ancestors 'none'" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=0f7bd929820614f6fe846b4d4243c739; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=0f7bd929820614f6fe846b4d4243c739; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=0f7bd929820614f6fe846b4d4243c739; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=0f7bd929820614f6fe846b4d4243c739; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=0f7bd929820614f6fe846b4d4243c739; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=1b4a73fcae8f9a216ad8c880fd087b75; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=1b4a73fcae8f9a216ad8c880fd087b75; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=1b4a73fcae8f9a216ad8c880fd087b75; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=1b4a73fcae8f9a216ad8c880fd087b75; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=1b4a73fcae8f9a216ad8c880fd087b75; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "X-Request-Id", + "value": "DqOgx8cxjWu5ChA2DnHr" + }, + { + "key": "Cache-Control", + "value": "no-cache, no-store, must-revalidate" + }, + { + "key": "Feature-Policy", + "value": "autoplay 'none';camera 'none';fullscreen 'none';geolocation 'none';microphone 'none';payment 'none'" + }, + { + "key": "X-User-Id", + "value": "admin" + }, + { + "key": "Content-Length", + "value": "466" + }, + { + "key": "Keep-Alive", + "value": "timeout=5, max=83" + }, + { + "key": "Connection", + "value": "Keep-Alive" + }, + { + "key": "Content-Type", + "value": "application/json; charset=utf-8" + } + ], + "stream": { + "type": "Buffer", + "data": [ + 123, + 34, + 117, + 114, + 108, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 122, + 97, + 107, + 101, + 110, + 92, + 47, + 118, + 49, + 92, + 47, + 122, + 97, + 97, + 107, + 101, + 105, + 103, + 101, + 110, + 115, + 99, + 104, + 97, + 112, + 112, + 101, + 110, + 92, + 47, + 99, + 56, + 54, + 53, + 49, + 101, + 99, + 56, + 45, + 48, + 52, + 52, + 56, + 45, + 52, + 52, + 49, + 55, + 45, + 57, + 98, + 49, + 98, + 45, + 55, + 101, + 48, + 101, + 51, + 99, + 50, + 49, + 101, + 99, + 98, + 55, + 34, + 44, + 34, + 117, + 117, + 105, + 100, + 34, + 58, + 34, + 99, + 56, + 54, + 53, + 49, + 101, + 99, + 56, + 45, + 48, + 52, + 52, + 56, + 45, + 52, + 52, + 49, + 55, + 45, + 57, + 98, + 49, + 98, + 45, + 55, + 101, + 48, + 101, + 51, + 99, + 50, + 49, + 101, + 99, + 98, + 55, + 34, + 44, + 34, + 122, + 97, + 97, + 107, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 122, + 97, + 107, + 101, + 110, + 92, + 47, + 118, + 49, + 92, + 47, + 122, + 97, + 107, + 101, + 110, + 92, + 47, + 50, + 54, + 99, + 54, + 102, + 48, + 53, + 54, + 45, + 100, + 56, + 98, + 50, + 45, + 52, + 102, + 57, + 54, + 45, + 97, + 55, + 56, + 51, + 45, + 97, + 57, + 53, + 57, + 49, + 55, + 50, + 51, + 99, + 51, + 56, + 54, + 34, + 44, + 34, + 101, + 105, + 103, + 101, + 110, + 115, + 99, + 104, + 97, + 112, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 105, + 92, + 47, + 118, + 49, + 92, + 47, + 101, + 105, + 103, + 101, + 110, + 115, + 99, + 104, + 97, + 112, + 112, + 101, + 110, + 92, + 47, + 53, + 48, + 51, + 53, + 51, + 51, + 55, + 56, + 45, + 100, + 102, + 52, + 56, + 45, + 52, + 100, + 98, + 51, + 45, + 97, + 56, + 98, + 99, + 45, + 101, + 97, + 100, + 56, + 100, + 56, + 100, + 55, + 99, + 54, + 97, + 98, + 34, + 44, + 34, + 119, + 97, + 97, + 114, + 100, + 101, + 34, + 58, + 34, + 116, + 101, + 115, + 116, + 34, + 125 + ] + }, + "cookie": [], + "responseTime": 219, + "responseSize": 466 + }, + "id": "d2312f10-4728-4a0c-b2d5-26212b1d81a1" + }, + { + "cursor": { + "ref": "6b47bf89-878c-4ad1-9d15-3fde9ad3ad99", + "length": 313, + "cycles": 1, + "position": 299, + "iteration": 0, + "httpRequestId": "a34b2be4-1be7-4e2b-9a3d-bc448366a3d5" + }, + "item": { + "id": "c9c38fc6-f5bd-4d96-a767-3a373edb731e", + "name": "(DRC) Create EnkelvoudigInformatieObject Copy", + "request": { + "url": { + "path": [ + "enkelvoudiginformatieobjecten" + ], + "host": [ + "{{drc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n \"bronorganisatie\": \"000000000\",\n \"creatiedatum\": \"2019-01-01\",\n \"titel\": \"testobject\",\n \"auteur\": \"testauteur\",\n \"taal\": \"eng\",\n \"inhoud\": \"{{object_inhoud}}\",\n \"informatieobjecttype\": \"{{informatieobjecttype_url}}\",\n \"indicatieGebruiksrecht\": false,\n \"status\": \"in_bewerking\",\n \"bestandsnaam\": \"iets.pdf\",\n \"bestandsomvang\": 6\n}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "19e5b11e-6316-4a71-a43c-7476c85b3dbd", + "type": "text/javascript", + "packages": {}, + "exec": [ + "pm.environment.set(\"informatieobject_url\", pm.response.json().url);" + ], + "_lastExecutionId": "c2c2825e-eccd-44e1-96e8-b77cc822ee84" + } + }, + { + "listen": "prerequest", + "script": { + "id": "1e6b82b9-827b-4f67-b821-a000761f8b64", + "type": "text/javascript", + "packages": {}, + "exec": [ + "pm.environment.set(\"object_inhoud\", btoa(\"string\"))" + ], + "_lastExecutionId": "4307f0b1-3b7c-4e98-9173-92667f171bd7" + } + } + ] + }, + "request": { + "url": { + "protocol": "http", + "port": "8080", + "path": [ + "index.php", + "apps", + "procest", + "api", + "zgw", + "documenten", + "v1", + "enkelvoudiginformatieobjecten" + ], + "host": [ + "localhost" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Authorization", + "value": "Bearer eyJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJwcm9jZXN0LWFkbWluIiwiY2xpZW50X2lkIjoicHJvY2VzdC1hZG1pbiIsImlhdCI6IjE3NzMxNDUyMTkiLCJ1c2VyX2lkIjoicHJvY2VzdC1hZG1pbiIsInVzZXJfcmVwcmVzZW50YXRpb24iOiIifQ.C8mWxirynI1d-NYG0IVVWvoXv_CdN8Rqd-_sjiwagPE", + "system": true + }, + { + "key": "User-Agent", + "value": "PostmanRuntime/7.39.1", + "system": true + }, + { + "key": "Accept", + "value": "*/*", + "system": true + }, + { + "key": "Cache-Control", + "value": "no-cache", + "system": true + }, + { + "key": "Postman-Token", + "value": "66ea6d39-8aed-4ccd-b9fd-879deff6eb13", + "system": true + }, + { + "key": "Host", + "value": "localhost:8080", + "system": true + }, + { + "key": "Accept-Encoding", + "value": "gzip, deflate, br", + "system": true + }, + { + "key": "Connection", + "value": "keep-alive", + "system": true + }, + { + "key": "Content-Length", + "value": "459", + "system": true + }, + { + "key": "Cookie", + "value": "ocvp3112b4wg=1b4a73fcae8f9a216ad8c880fd087b75; oc_sessionPassphrase=LBNdKxRzA0iqoULIruNxDDh2BK3O%2BrCIU8aUmiUcOFvy5Xw1YfjwQNlmBW2IkGwJYtxXh9%2BwDN6vYuGNX07tXzkBtjQJUWTGdzf8AIOUIVxVx5DfyWAQZ7nmYmQv6XSE; nc_sameSiteCookielax=true; nc_sameSiteCookiestrict=true", + "system": true + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n \"bronorganisatie\": \"000000000\",\n \"creatiedatum\": \"2019-01-01\",\n \"titel\": \"testobject\",\n \"auteur\": \"testauteur\",\n \"taal\": \"eng\",\n \"inhoud\": \"c3RyaW5n\",\n \"informatieobjecttype\": \"http://localhost:8080/index.php/apps/procest/api/zgw/catalogi/v1/informatieobjecttypen/859f92cf-36f8-47a6-a74c-f258f09fada8\",\n \"indicatieGebruiksrecht\": false,\n \"status\": \"in_bewerking\",\n \"bestandsnaam\": \"iets.pdf\",\n \"bestandsomvang\": 6\n}" + }, + "auth": { + "type": "jwt", + "jwt": [ + { + "type": "string", + "value": "{\r\n \"iss\": \"procest-admin\",\r\n \"client_id\": \"procest-admin\",\r\n \"iat\": \"1773145219\",\r\n \"user_id\": \"procest-admin\",\r\n \"user_representation\": \"\"\r\n}", + "key": "payload" + }, + { + "type": "string", + "value": "procest-admin-secret-key-for-testing", + "key": "secret" + }, + { + "type": "string", + "value": "HS256", + "key": "algorithm" + }, + { + "type": "boolean", + "value": false, + "key": "isSecretBase64Encoded" + }, + { + "type": "string", + "value": "header", + "key": "addTokenTo" + }, + { + "type": "string", + "value": "Bearer", + "key": "headerPrefix" + }, + { + "type": "string", + "value": "token", + "key": "queryParamKey" + }, + { + "type": "string", + "value": "{}", + "key": "header" + } + ] + } + }, + "response": { + "id": "f40ae2da-acff-4c28-853c-4e53704e5f44", + "status": "Created", + "code": 201, + "header": [ + { + "key": "Date", + "value": "Tue, 10 Mar 2026 12:20:18 GMT" + }, + { + "key": "Server", + "value": "Apache/2.4.66 (Debian)" + }, + { + "key": "X-Content-Type-Options", + "value": "nosniff" + }, + { + "key": "X-Frame-Options", + "value": "SAMEORIGIN" + }, + { + "key": "X-Permitted-Cross-Domain-Policies", + "value": "none" + }, + { + "key": "X-Robots-Tag", + "value": "noindex, nofollow" + }, + { + "key": "Referrer-Policy", + "value": "no-referrer" + }, + { + "key": "X-Powered-By", + "value": "PHP/8.3.30" + }, + { + "key": "Content-Security-Policy", + "value": "default-src 'none';base-uri 'none';manifest-src 'self';frame-ancestors 'none'" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=1b4a73fcae8f9a216ad8c880fd087b75; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=1b4a73fcae8f9a216ad8c880fd087b75; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=1b4a73fcae8f9a216ad8c880fd087b75; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=1b4a73fcae8f9a216ad8c880fd087b75; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=1b4a73fcae8f9a216ad8c880fd087b75; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=506cc4064a7edc5b97c1ae032ece04f1; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=506cc4064a7edc5b97c1ae032ece04f1; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=506cc4064a7edc5b97c1ae032ece04f1; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=506cc4064a7edc5b97c1ae032ece04f1; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=506cc4064a7edc5b97c1ae032ece04f1; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "X-Request-Id", + "value": "5h6zTcW5GnfrvOKZZQqT" + }, + { + "key": "Cache-Control", + "value": "no-cache, no-store, must-revalidate" + }, + { + "key": "Feature-Policy", + "value": "autoplay 'none';camera 'none';fullscreen 'none';geolocation 'none';microphone 'none';payment 'none'" + }, + { + "key": "X-User-Id", + "value": "admin" + }, + { + "key": "Content-Length", + "value": "924" + }, + { + "key": "Keep-Alive", + "value": "timeout=5, max=82" + }, + { + "key": "Connection", + "value": "Keep-Alive" + }, + { + "key": "Content-Type", + "value": "application/json; charset=utf-8" + } + ], + "stream": { + "type": "Buffer", + "data": [ + 123, + 34, + 117, + 114, + 108, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 100, + 111, + 99, + 117, + 109, + 101, + 110, + 116, + 101, + 110, + 92, + 47, + 118, + 49, + 92, + 47, + 101, + 110, + 107, + 101, + 108, + 118, + 111, + 117, + 100, + 105, + 103, + 105, + 110, + 102, + 111, + 114, + 109, + 97, + 116, + 105, + 101, + 111, + 98, + 106, + 101, + 99, + 116, + 101, + 110, + 92, + 47, + 102, + 98, + 54, + 55, + 99, + 51, + 50, + 101, + 45, + 102, + 50, + 97, + 54, + 45, + 52, + 49, + 51, + 99, + 45, + 98, + 52, + 49, + 97, + 45, + 54, + 56, + 53, + 100, + 52, + 52, + 98, + 50, + 99, + 57, + 100, + 99, + 34, + 44, + 34, + 117, + 117, + 105, + 100, + 34, + 58, + 34, + 102, + 98, + 54, + 55, + 99, + 51, + 50, + 101, + 45, + 102, + 50, + 97, + 54, + 45, + 52, + 49, + 51, + 99, + 45, + 98, + 52, + 49, + 97, + 45, + 54, + 56, + 53, + 100, + 52, + 52, + 98, + 50, + 99, + 57, + 100, + 99, + 34, + 44, + 34, + 105, + 100, + 101, + 110, + 116, + 105, + 102, + 105, + 99, + 97, + 116, + 105, + 101, + 34, + 58, + 34, + 68, + 79, + 67, + 85, + 77, + 69, + 78, + 84, + 45, + 84, + 66, + 79, + 78, + 76, + 85, + 45, + 53, + 66, + 52, + 56, + 51, + 68, + 34, + 44, + 34, + 98, + 114, + 111, + 110, + 111, + 114, + 103, + 97, + 110, + 105, + 115, + 97, + 116, + 105, + 101, + 34, + 58, + 34, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 34, + 44, + 34, + 99, + 114, + 101, + 97, + 116, + 105, + 101, + 100, + 97, + 116, + 117, + 109, + 34, + 58, + 34, + 50, + 48, + 49, + 57, + 45, + 48, + 49, + 45, + 48, + 49, + 34, + 44, + 34, + 116, + 105, + 116, + 101, + 108, + 34, + 58, + 34, + 116, + 101, + 115, + 116, + 111, + 98, + 106, + 101, + 99, + 116, + 34, + 44, + 34, + 118, + 101, + 114, + 116, + 114, + 111, + 117, + 119, + 101, + 108, + 105, + 106, + 107, + 104, + 101, + 105, + 100, + 97, + 97, + 110, + 100, + 117, + 105, + 100, + 105, + 110, + 103, + 34, + 58, + 34, + 111, + 112, + 101, + 110, + 98, + 97, + 97, + 114, + 34, + 44, + 34, + 97, + 117, + 116, + 101, + 117, + 114, + 34, + 58, + 34, + 116, + 101, + 115, + 116, + 97, + 117, + 116, + 101, + 117, + 114, + 34, + 44, + 34, + 115, + 116, + 97, + 116, + 117, + 115, + 34, + 58, + 34, + 105, + 110, + 95, + 98, + 101, + 119, + 101, + 114, + 107, + 105, + 110, + 103, + 34, + 44, + 34, + 102, + 111, + 114, + 109, + 97, + 97, + 116, + 34, + 58, + 34, + 34, + 44, + 34, + 116, + 97, + 97, + 108, + 34, + 58, + 34, + 101, + 110, + 103, + 34, + 44, + 34, + 98, + 101, + 115, + 116, + 97, + 110, + 100, + 115, + 110, + 97, + 97, + 109, + 34, + 58, + 34, + 105, + 101, + 116, + 115, + 46, + 112, + 100, + 102, + 34, + 44, + 34, + 98, + 101, + 115, + 116, + 97, + 110, + 100, + 115, + 111, + 109, + 118, + 97, + 110, + 103, + 34, + 58, + 54, + 44, + 34, + 105, + 110, + 104, + 111, + 117, + 100, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 100, + 111, + 99, + 117, + 109, + 101, + 110, + 116, + 101, + 110, + 92, + 47, + 118, + 49, + 92, + 47, + 101, + 110, + 107, + 101, + 108, + 118, + 111, + 117, + 100, + 105, + 103, + 105, + 110, + 102, + 111, + 114, + 109, + 97, + 116, + 105, + 101, + 111, + 98, + 106, + 101, + 99, + 116, + 101, + 110, + 92, + 47, + 102, + 98, + 54, + 55, + 99, + 51, + 50, + 101, + 45, + 102, + 50, + 97, + 54, + 45, + 52, + 49, + 51, + 99, + 45, + 98, + 52, + 49, + 97, + 45, + 54, + 56, + 53, + 100, + 52, + 52, + 98, + 50, + 99, + 57, + 100, + 99, + 92, + 47, + 100, + 111, + 119, + 110, + 108, + 111, + 97, + 100, + 34, + 44, + 34, + 108, + 105, + 110, + 107, + 34, + 58, + 34, + 34, + 44, + 34, + 98, + 101, + 115, + 99, + 104, + 114, + 105, + 106, + 118, + 105, + 110, + 103, + 34, + 58, + 34, + 34, + 44, + 34, + 105, + 110, + 102, + 111, + 114, + 109, + 97, + 116, + 105, + 101, + 111, + 98, + 106, + 101, + 99, + 116, + 116, + 121, + 112, + 101, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 99, + 97, + 116, + 97, + 108, + 111, + 103, + 105, + 92, + 47, + 118, + 49, + 92, + 47, + 105, + 110, + 102, + 111, + 114, + 109, + 97, + 116, + 105, + 101, + 111, + 98, + 106, + 101, + 99, + 116, + 116, + 121, + 112, + 101, + 110, + 92, + 47, + 56, + 53, + 57, + 102, + 57, + 50, + 99, + 102, + 45, + 51, + 54, + 102, + 56, + 45, + 52, + 55, + 97, + 54, + 45, + 97, + 55, + 52, + 99, + 45, + 102, + 50, + 53, + 56, + 102, + 48, + 57, + 102, + 97, + 100, + 97, + 56, + 34, + 44, + 34, + 108, + 111, + 99, + 107, + 101, + 100, + 34, + 58, + 102, + 97, + 108, + 115, + 101, + 44, + 34, + 114, + 101, + 103, + 105, + 115, + 116, + 114, + 97, + 116, + 105, + 101, + 100, + 97, + 116, + 117, + 109, + 34, + 58, + 34, + 50, + 48, + 50, + 54, + 45, + 48, + 51, + 45, + 49, + 48, + 84, + 49, + 50, + 58, + 50, + 48, + 58, + 49, + 56, + 43, + 48, + 48, + 58, + 48, + 48, + 34, + 44, + 34, + 105, + 110, + 100, + 105, + 99, + 97, + 116, + 105, + 101, + 71, + 101, + 98, + 114, + 117, + 105, + 107, + 115, + 114, + 101, + 99, + 104, + 116, + 34, + 58, + 110, + 117, + 108, + 108, + 125 + ] + }, + "cookie": [], + "responseTime": 498, + "responseSize": 924 + }, + "id": "c9c38fc6-f5bd-4d96-a767-3a373edb731e" + }, + { + "cursor": { + "ref": "29b04cdf-4fb8-44c9-9b5a-a834d99188e8", + "length": 313, + "cycles": 1, + "position": 300, + "iteration": 0, + "httpRequestId": "be779d50-27cf-404c-b4ea-8be33f90da6b" + }, + "item": { + "id": "1354c1f1-6dde-400c-aaea-be548d693951", + "name": "Create relation between Zaak and Informatieobject", + "request": { + "url": { + "path": [ + "zaakinformatieobjecten" + ], + "host": [ + "{{zrc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n \"informatieobject\": \"{{informatieobject_url}}\",\n \"zaak\": \"{{created_zaak_url}}\",\n\t\"titel\": \"\",\n\t\"beschrijving\": \"\"\n}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "0aa89f30-f402-4b6d-acf0-75100f2d63ff", + "type": "text/javascript", + "exec": [ + "pm.environment.set(\"created_zaakinformatieobject_url\", pm.response.json().url);" + ], + "_lastExecutionId": "9243c3b4-4397-4b16-b67a-07595a3ddff5" + } + }, + { + "listen": "prerequest", + "script": { + "id": "d4aef734-7211-4f7f-84d7-df5f8fdf5845", + "type": "text/javascript", + "exec": [ + "" + ], + "_lastExecutionId": "490c47d3-b1e6-4e7f-872a-c012f0b901d8" + } + } + ] + }, + "request": { + "url": { + "protocol": "http", + "port": "8080", + "path": [ + "index.php", + "apps", + "procest", + "api", + "zgw", + "zaken", + "v1", + "zaakinformatieobjecten" + ], + "host": [ + "localhost" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Authorization", + "value": "Bearer eyJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJwcm9jZXN0LWFkbWluIiwiY2xpZW50X2lkIjoicHJvY2VzdC1hZG1pbiIsImlhdCI6IjE3NzMxNDUyMTkiLCJ1c2VyX2lkIjoicHJvY2VzdC1hZG1pbiIsInVzZXJfcmVwcmVzZW50YXRpb24iOiIifQ.C8mWxirynI1d-NYG0IVVWvoXv_CdN8Rqd-_sjiwagPE", + "system": true + }, + { + "key": "User-Agent", + "value": "PostmanRuntime/7.39.1", + "system": true + }, + { + "key": "Accept", + "value": "*/*", + "system": true + }, + { + "key": "Cache-Control", + "value": "no-cache", + "system": true + }, + { + "key": "Postman-Token", + "value": "a7c32dda-1c7b-48e1-bfe9-3bfdc404b712", + "system": true + }, + { + "key": "Host", + "value": "localhost:8080", + "system": true + }, + { + "key": "Accept-Encoding", + "value": "gzip, deflate, br", + "system": true + }, + { + "key": "Connection", + "value": "keep-alive", + "system": true + }, + { + "key": "Content-Length", + "value": "318", + "system": true + }, + { + "key": "Cookie", + "value": "ocvp3112b4wg=506cc4064a7edc5b97c1ae032ece04f1; oc_sessionPassphrase=LBNdKxRzA0iqoULIruNxDDh2BK3O%2BrCIU8aUmiUcOFvy5Xw1YfjwQNlmBW2IkGwJYtxXh9%2BwDN6vYuGNX07tXzkBtjQJUWTGdzf8AIOUIVxVx5DfyWAQZ7nmYmQv6XSE; nc_sameSiteCookielax=true; nc_sameSiteCookiestrict=true", + "system": true + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n \"informatieobject\": \"http://localhost:8080/index.php/apps/procest/api/zgw/documenten/v1/enkelvoudiginformatieobjecten/fb67c32e-f2a6-413c-b41a-685d44b2c9dc\",\n \"zaak\": \"http://localhost:8080/index.php/apps/procest/api/zgw/zaken/v1/zaken/26c6f056-d8b2-4f96-a783-a9591723c386\",\n\t\"titel\": \"\",\n\t\"beschrijving\": \"\"\n}" + }, + "auth": { + "type": "jwt", + "jwt": [ + { + "type": "string", + "value": "{\r\n \"iss\": \"procest-admin\",\r\n \"client_id\": \"procest-admin\",\r\n \"iat\": \"1773145219\",\r\n \"user_id\": \"procest-admin\",\r\n \"user_representation\": \"\"\r\n}", + "key": "payload" + }, + { + "type": "string", + "value": "procest-admin-secret-key-for-testing", + "key": "secret" + }, + { + "type": "string", + "value": "HS256", + "key": "algorithm" + }, + { + "type": "boolean", + "value": false, + "key": "isSecretBase64Encoded" + }, + { + "type": "string", + "value": "header", + "key": "addTokenTo" + }, + { + "type": "string", + "value": "Bearer", + "key": "headerPrefix" + }, + { + "type": "string", + "value": "token", + "key": "queryParamKey" + }, + { + "type": "string", + "value": "{}", + "key": "header" + } + ] + } + }, + "response": { + "id": "8d722a83-6048-47a8-aeee-e586c739ed1a", + "status": "Created", + "code": 201, + "header": [ + { + "key": "Date", + "value": "Tue, 10 Mar 2026 12:20:19 GMT" + }, + { + "key": "Server", + "value": "Apache/2.4.66 (Debian)" + }, + { + "key": "X-Content-Type-Options", + "value": "nosniff" + }, + { + "key": "X-Frame-Options", + "value": "SAMEORIGIN" + }, + { + "key": "X-Permitted-Cross-Domain-Policies", + "value": "none" + }, + { + "key": "X-Robots-Tag", + "value": "noindex, nofollow" + }, + { + "key": "Referrer-Policy", + "value": "no-referrer" + }, + { + "key": "X-Powered-By", + "value": "PHP/8.3.30" + }, + { + "key": "Content-Security-Policy", + "value": "default-src 'none';base-uri 'none';manifest-src 'self';frame-ancestors 'none'" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=506cc4064a7edc5b97c1ae032ece04f1; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=506cc4064a7edc5b97c1ae032ece04f1; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=506cc4064a7edc5b97c1ae032ece04f1; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=506cc4064a7edc5b97c1ae032ece04f1; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=506cc4064a7edc5b97c1ae032ece04f1; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=0d8920c1409a7e0d35bfc2c39ff3cfde; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=0d8920c1409a7e0d35bfc2c39ff3cfde; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=0d8920c1409a7e0d35bfc2c39ff3cfde; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=0d8920c1409a7e0d35bfc2c39ff3cfde; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=0d8920c1409a7e0d35bfc2c39ff3cfde; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "X-Request-Id", + "value": "36Z18zImPeGr0avYZ1mH" + }, + { + "key": "Cache-Control", + "value": "no-cache, no-store, must-revalidate" + }, + { + "key": "Feature-Policy", + "value": "autoplay 'none';camera 'none';fullscreen 'none';geolocation 'none';microphone 'none';payment 'none'" + }, + { + "key": "X-User-Id", + "value": "admin" + }, + { + "key": "Content-Length", + "value": "591" + }, + { + "key": "Keep-Alive", + "value": "timeout=5, max=81" + }, + { + "key": "Connection", + "value": "Keep-Alive" + }, + { + "key": "Content-Type", + "value": "application/json; charset=utf-8" + } + ], + "stream": { + "type": "Buffer", + "data": [ + 123, + 34, + 117, + 114, + 108, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 122, + 97, + 107, + 101, + 110, + 92, + 47, + 118, + 49, + 92, + 47, + 122, + 97, + 97, + 107, + 105, + 110, + 102, + 111, + 114, + 109, + 97, + 116, + 105, + 101, + 111, + 98, + 106, + 101, + 99, + 116, + 101, + 110, + 92, + 47, + 97, + 102, + 101, + 57, + 100, + 56, + 99, + 102, + 45, + 50, + 52, + 53, + 50, + 45, + 52, + 52, + 98, + 54, + 45, + 57, + 101, + 97, + 101, + 45, + 102, + 100, + 53, + 56, + 54, + 102, + 98, + 55, + 52, + 56, + 98, + 50, + 34, + 44, + 34, + 117, + 117, + 105, + 100, + 34, + 58, + 34, + 97, + 102, + 101, + 57, + 100, + 56, + 99, + 102, + 45, + 50, + 52, + 53, + 50, + 45, + 52, + 52, + 98, + 54, + 45, + 57, + 101, + 97, + 101, + 45, + 102, + 100, + 53, + 56, + 54, + 102, + 98, + 55, + 52, + 56, + 98, + 50, + 34, + 44, + 34, + 122, + 97, + 97, + 107, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 122, + 97, + 107, + 101, + 110, + 92, + 47, + 118, + 49, + 92, + 47, + 122, + 97, + 107, + 101, + 110, + 92, + 47, + 50, + 54, + 99, + 54, + 102, + 48, + 53, + 54, + 45, + 100, + 56, + 98, + 50, + 45, + 52, + 102, + 57, + 54, + 45, + 97, + 55, + 56, + 51, + 45, + 97, + 57, + 53, + 57, + 49, + 55, + 50, + 51, + 99, + 51, + 56, + 54, + 34, + 44, + 34, + 105, + 110, + 102, + 111, + 114, + 109, + 97, + 116, + 105, + 101, + 111, + 98, + 106, + 101, + 99, + 116, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 100, + 111, + 99, + 117, + 109, + 101, + 110, + 116, + 101, + 110, + 92, + 47, + 118, + 49, + 92, + 47, + 101, + 110, + 107, + 101, + 108, + 118, + 111, + 117, + 100, + 105, + 103, + 105, + 110, + 102, + 111, + 114, + 109, + 97, + 116, + 105, + 101, + 111, + 98, + 106, + 101, + 99, + 116, + 101, + 110, + 92, + 47, + 102, + 98, + 54, + 55, + 99, + 51, + 50, + 101, + 45, + 102, + 50, + 97, + 54, + 45, + 52, + 49, + 51, + 99, + 45, + 98, + 52, + 49, + 97, + 45, + 54, + 56, + 53, + 100, + 52, + 52, + 98, + 50, + 99, + 57, + 100, + 99, + 34, + 44, + 34, + 116, + 105, + 116, + 101, + 108, + 34, + 58, + 34, + 34, + 44, + 34, + 98, + 101, + 115, + 99, + 104, + 114, + 105, + 106, + 118, + 105, + 110, + 103, + 34, + 58, + 34, + 34, + 44, + 34, + 114, + 101, + 103, + 105, + 115, + 116, + 114, + 97, + 116, + 105, + 101, + 100, + 97, + 116, + 117, + 109, + 34, + 58, + 34, + 50, + 48, + 50, + 54, + 45, + 48, + 51, + 45, + 49, + 48, + 34, + 44, + 34, + 97, + 97, + 114, + 100, + 82, + 101, + 108, + 97, + 116, + 105, + 101, + 87, + 101, + 101, + 114, + 103, + 97, + 118, + 101, + 34, + 58, + 34, + 72, + 111, + 111, + 114, + 116, + 32, + 98, + 105, + 106, + 44, + 32, + 111, + 109, + 103, + 101, + 107, + 101, + 101, + 114, + 100, + 58, + 32, + 107, + 101, + 110, + 116, + 34, + 125 + ] + }, + "cookie": [], + "responseTime": 403, + "responseSize": 591 + }, + "id": "1354c1f1-6dde-400c-aaea-be548d693951" + }, + { + "cursor": { + "ref": "7067c1de-d6e7-435d-b938-cb3782a26f45", + "length": 313, + "cycles": 1, + "position": 301, + "iteration": 0, + "httpRequestId": "cf8f5576-1e9e-44b8-808d-37e1554cfb20" + }, + "item": { + "id": "76b36b25-df6a-4a44-942f-f24050d2ab65", + "name": "Retrieve ObjectInformatieObject url", + "request": { + "url": { + "path": [ + "objectinformatieobjecten" + ], + "host": [ + "{{drc_url}}" + ], + "query": [ + { + "disabled": true, + "key": "object", + "value": "{{created_zaak_url}}" + }, + { + "key": "informatieobject", + "value": "{{informatieobject_url}}" + } + ], + "variable": [] + }, + "method": "GET" + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "7da34cab-8696-441f-b660-3eff3736f04d", + "type": "text/javascript", + "packages": {}, + "exec": [ + "pm.environment.set(\"objectinformatieobject_url\", pm.response.json()[0].url);" + ], + "_lastExecutionId": "2e7c3ae2-c98d-442d-810c-dbf65d133d16" + } + } + ] + }, + "request": { + "url": { + "protocol": "http", + "port": "8080", + "path": [ + "index.php", + "apps", + "procest", + "api", + "zgw", + "documenten", + "v1", + "objectinformatieobjecten" + ], + "host": [ + "localhost" + ], + "query": [ + { + "key": "informatieobject", + "value": "http://localhost:8080/index.php/apps/procest/api/zgw/documenten/v1/enkelvoudiginformatieobjecten/fb67c32e-f2a6-413c-b41a-685d44b2c9dc" + } + ], + "variable": [] + }, + "header": [ + { + "key": "Authorization", + "value": "Bearer eyJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJwcm9jZXN0LWFkbWluIiwiY2xpZW50X2lkIjoicHJvY2VzdC1hZG1pbiIsImlhdCI6IjE3NzMxNDUyMjAiLCJ1c2VyX2lkIjoicHJvY2VzdC1hZG1pbiIsInVzZXJfcmVwcmVzZW50YXRpb24iOiIifQ.-ogEVDevMoxaDwwyj-YwuRo-Cd270Dx50o7L_y5fi-A", + "system": true + }, + { + "key": "User-Agent", + "value": "PostmanRuntime/7.39.1", + "system": true + }, + { + "key": "Accept", + "value": "*/*", + "system": true + }, + { + "key": "Cache-Control", + "value": "no-cache", + "system": true + }, + { + "key": "Postman-Token", + "value": "d92d4ac3-b0d7-4488-967b-9df0226931dd", + "system": true + }, + { + "key": "Host", + "value": "localhost:8080", + "system": true + }, + { + "key": "Accept-Encoding", + "value": "gzip, deflate, br", + "system": true + }, + { + "key": "Connection", + "value": "keep-alive", + "system": true + }, + { + "key": "Cookie", + "value": "ocvp3112b4wg=0d8920c1409a7e0d35bfc2c39ff3cfde; oc_sessionPassphrase=LBNdKxRzA0iqoULIruNxDDh2BK3O%2BrCIU8aUmiUcOFvy5Xw1YfjwQNlmBW2IkGwJYtxXh9%2BwDN6vYuGNX07tXzkBtjQJUWTGdzf8AIOUIVxVx5DfyWAQZ7nmYmQv6XSE; nc_sameSiteCookielax=true; nc_sameSiteCookiestrict=true", + "system": true + } + ], + "method": "GET", + "auth": { + "type": "jwt", + "jwt": [ + { + "type": "string", + "value": "{\r\n \"iss\": \"procest-admin\",\r\n \"client_id\": \"procest-admin\",\r\n \"iat\": \"1773145220\",\r\n \"user_id\": \"procest-admin\",\r\n \"user_representation\": \"\"\r\n}", + "key": "payload" + }, + { + "type": "string", + "value": "procest-admin-secret-key-for-testing", + "key": "secret" + }, + { + "type": "string", + "value": "HS256", + "key": "algorithm" + }, + { + "type": "boolean", + "value": false, + "key": "isSecretBase64Encoded" + }, + { + "type": "string", + "value": "header", + "key": "addTokenTo" + }, + { + "type": "string", + "value": "Bearer", + "key": "headerPrefix" + }, + { + "type": "string", + "value": "token", + "key": "queryParamKey" + }, + { + "type": "string", + "value": "{}", + "key": "header" + } + ] + } + }, + "response": { + "id": "7abdaa29-85b3-47b5-8fdf-554ae52e5a26", + "status": "OK", + "code": 200, + "header": [ + { + "key": "Date", + "value": "Tue, 10 Mar 2026 12:20:19 GMT" + }, + { + "key": "Server", + "value": "Apache/2.4.66 (Debian)" + }, + { + "key": "X-Content-Type-Options", + "value": "nosniff" + }, + { + "key": "X-Frame-Options", + "value": "SAMEORIGIN" + }, + { + "key": "X-Permitted-Cross-Domain-Policies", + "value": "none" + }, + { + "key": "X-Robots-Tag", + "value": "noindex, nofollow" + }, + { + "key": "Referrer-Policy", + "value": "no-referrer" + }, + { + "key": "X-Powered-By", + "value": "PHP/8.3.30" + }, + { + "key": "Content-Security-Policy", + "value": "default-src 'none';base-uri 'none';manifest-src 'self';frame-ancestors 'none'" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=0d8920c1409a7e0d35bfc2c39ff3cfde; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=0d8920c1409a7e0d35bfc2c39ff3cfde; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=0d8920c1409a7e0d35bfc2c39ff3cfde; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=0d8920c1409a7e0d35bfc2c39ff3cfde; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=0d8920c1409a7e0d35bfc2c39ff3cfde; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=c6dca5469e7b600f19319e050bd2b7b1; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=c6dca5469e7b600f19319e050bd2b7b1; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=c6dca5469e7b600f19319e050bd2b7b1; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=c6dca5469e7b600f19319e050bd2b7b1; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=c6dca5469e7b600f19319e050bd2b7b1; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "X-Request-Id", + "value": "xXyf9QfW3mNbfhokRmmR" + }, + { + "key": "Cache-Control", + "value": "no-cache, no-store, must-revalidate" + }, + { + "key": "Feature-Policy", + "value": "autoplay 'none';camera 'none';fullscreen 'none';geolocation 'none';microphone 'none';payment 'none'" + }, + { + "key": "X-User-Id", + "value": "admin" + }, + { + "key": "Content-Encoding", + "value": "gzip" + }, + { + "key": "Content-Length", + "value": "249" + }, + { + "key": "Keep-Alive", + "value": "timeout=5, max=80" + }, + { + "key": "Connection", + "value": "Keep-Alive" + }, + { + "key": "Content-Type", + "value": "application/json; charset=utf-8" + } + ], + "stream": { + "type": "Buffer", + "data": [ + 91, + 123, + 34, + 117, + 114, + 108, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 100, + 111, + 99, + 117, + 109, + 101, + 110, + 116, + 101, + 110, + 92, + 47, + 118, + 49, + 92, + 47, + 111, + 98, + 106, + 101, + 99, + 116, + 105, + 110, + 102, + 111, + 114, + 109, + 97, + 116, + 105, + 101, + 111, + 98, + 106, + 101, + 99, + 116, + 101, + 110, + 92, + 47, + 48, + 48, + 52, + 50, + 50, + 57, + 98, + 98, + 45, + 98, + 52, + 101, + 53, + 45, + 52, + 99, + 49, + 55, + 45, + 56, + 98, + 53, + 53, + 45, + 48, + 57, + 51, + 101, + 52, + 51, + 49, + 49, + 52, + 52, + 48, + 102, + 34, + 44, + 34, + 117, + 117, + 105, + 100, + 34, + 58, + 34, + 48, + 48, + 52, + 50, + 50, + 57, + 98, + 98, + 45, + 98, + 52, + 101, + 53, + 45, + 52, + 99, + 49, + 55, + 45, + 56, + 98, + 53, + 53, + 45, + 48, + 57, + 51, + 101, + 52, + 51, + 49, + 49, + 52, + 52, + 48, + 102, + 34, + 44, + 34, + 105, + 110, + 102, + 111, + 114, + 109, + 97, + 116, + 105, + 101, + 111, + 98, + 106, + 101, + 99, + 116, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 100, + 111, + 99, + 117, + 109, + 101, + 110, + 116, + 101, + 110, + 92, + 47, + 118, + 49, + 92, + 47, + 101, + 110, + 107, + 101, + 108, + 118, + 111, + 117, + 100, + 105, + 103, + 105, + 110, + 102, + 111, + 114, + 109, + 97, + 116, + 105, + 101, + 111, + 98, + 106, + 101, + 99, + 116, + 101, + 110, + 92, + 47, + 102, + 98, + 54, + 55, + 99, + 51, + 50, + 101, + 45, + 102, + 50, + 97, + 54, + 45, + 52, + 49, + 51, + 99, + 45, + 98, + 52, + 49, + 97, + 45, + 54, + 56, + 53, + 100, + 52, + 52, + 98, + 50, + 99, + 57, + 100, + 99, + 34, + 44, + 34, + 111, + 98, + 106, + 101, + 99, + 116, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 122, + 97, + 107, + 101, + 110, + 92, + 47, + 118, + 49, + 92, + 47, + 122, + 97, + 107, + 101, + 110, + 92, + 47, + 50, + 54, + 99, + 54, + 102, + 48, + 53, + 54, + 45, + 100, + 56, + 98, + 50, + 45, + 52, + 102, + 57, + 54, + 45, + 97, + 55, + 56, + 51, + 45, + 97, + 57, + 53, + 57, + 49, + 55, + 50, + 51, + 99, + 51, + 56, + 54, + 34, + 44, + 34, + 111, + 98, + 106, + 101, + 99, + 116, + 84, + 121, + 112, + 101, + 34, + 58, + 34, + 122, + 97, + 97, + 107, + 34, + 125, + 93 + ] + }, + "cookie": [], + "responseTime": 120, + "responseSize": 510 + }, + "id": "76b36b25-df6a-4a44-942f-f24050d2ab65" + }, + { + "cursor": { + "ref": "53351784-52c6-4f27-a7b4-ee558ddb4f44", + "length": 313, + "cycles": 1, + "position": 302, + "iteration": 0, + "httpRequestId": "405fcfac-a1ac-4231-9baa-8c40bbe19535" + }, + "item": { + "id": "67a7faac-2197-4d1c-a776-4b448d9c063a", + "name": "Add Klantcontact to Zaak", + "request": { + "url": { + "path": [ + "klantcontacten" + ], + "host": [ + "{{zrc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n\t\"zaak\": \"{{created_zaak_url}}\",\n\t\"datumtijd\": \"2019-02-20T00:00:00\"\n}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "f78a7e66-a1ae-47f7-93b8-471ae8a86e9c", + "type": "text/javascript", + "exec": [ + "pm.environment.set(\"klantcontact_url\", pm.response.json().url);" + ], + "_lastExecutionId": "8e1e5025-93fb-4ae2-ad53-e92f075ccd6e" + } + }, + { + "listen": "prerequest", + "script": { + "id": "a7a082ae-0443-4c10-b486-fb9801595b4f", + "type": "text/javascript", + "exec": [ + "" + ], + "_lastExecutionId": "4c2e505f-3176-4048-9241-2eca5be6fb1f" + } + } + ] + }, + "request": { + "url": { + "protocol": "http", + "port": "8080", + "path": [ + "index.php", + "apps", + "procest", + "api", + "zgw", + "zaken", + "v1", + "klantcontacten" + ], + "host": [ + "localhost" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Authorization", + "value": "Bearer eyJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJwcm9jZXN0LWFkbWluIiwiY2xpZW50X2lkIjoicHJvY2VzdC1hZG1pbiIsImlhdCI6IjE3NzMxNDUyMjAiLCJ1c2VyX2lkIjoicHJvY2VzdC1hZG1pbiIsInVzZXJfcmVwcmVzZW50YXRpb24iOiIifQ.-ogEVDevMoxaDwwyj-YwuRo-Cd270Dx50o7L_y5fi-A", + "system": true + }, + { + "key": "User-Agent", + "value": "PostmanRuntime/7.39.1", + "system": true + }, + { + "key": "Accept", + "value": "*/*", + "system": true + }, + { + "key": "Cache-Control", + "value": "no-cache", + "system": true + }, + { + "key": "Postman-Token", + "value": "a1c3db79-c5ce-4c24-b8aa-d9ab4bf94a13", + "system": true + }, + { + "key": "Host", + "value": "localhost:8080", + "system": true + }, + { + "key": "Accept-Encoding", + "value": "gzip, deflate, br", + "system": true + }, + { + "key": "Connection", + "value": "keep-alive", + "system": true + }, + { + "key": "Content-Length", + "value": "156", + "system": true + }, + { + "key": "Cookie", + "value": "ocvp3112b4wg=c6dca5469e7b600f19319e050bd2b7b1; oc_sessionPassphrase=LBNdKxRzA0iqoULIruNxDDh2BK3O%2BrCIU8aUmiUcOFvy5Xw1YfjwQNlmBW2IkGwJYtxXh9%2BwDN6vYuGNX07tXzkBtjQJUWTGdzf8AIOUIVxVx5DfyWAQZ7nmYmQv6XSE; nc_sameSiteCookielax=true; nc_sameSiteCookiestrict=true", + "system": true + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n\t\"zaak\": \"http://localhost:8080/index.php/apps/procest/api/zgw/zaken/v1/zaken/26c6f056-d8b2-4f96-a783-a9591723c386\",\n\t\"datumtijd\": \"2019-02-20T00:00:00\"\n}" + }, + "auth": { + "type": "jwt", + "jwt": [ + { + "type": "string", + "value": "{\r\n \"iss\": \"procest-admin\",\r\n \"client_id\": \"procest-admin\",\r\n \"iat\": \"1773145220\",\r\n \"user_id\": \"procest-admin\",\r\n \"user_representation\": \"\"\r\n}", + "key": "payload" + }, + { + "type": "string", + "value": "procest-admin-secret-key-for-testing", + "key": "secret" + }, + { + "type": "string", + "value": "HS256", + "key": "algorithm" + }, + { + "type": "boolean", + "value": false, + "key": "isSecretBase64Encoded" + }, + { + "type": "string", + "value": "header", + "key": "addTokenTo" + }, + { + "type": "string", + "value": "Bearer", + "key": "headerPrefix" + }, + { + "type": "string", + "value": "token", + "key": "queryParamKey" + }, + { + "type": "string", + "value": "{}", + "key": "header" + } + ] + } + }, + "response": { + "id": "868adcd5-79b1-4765-8774-096b85807c65", + "status": "Created", + "code": 201, + "header": [ + { + "key": "Date", + "value": "Tue, 10 Mar 2026 12:20:19 GMT" + }, + { + "key": "Server", + "value": "Apache/2.4.66 (Debian)" + }, + { + "key": "X-Content-Type-Options", + "value": "nosniff" + }, + { + "key": "X-Frame-Options", + "value": "SAMEORIGIN" + }, + { + "key": "X-Permitted-Cross-Domain-Policies", + "value": "none" + }, + { + "key": "X-Robots-Tag", + "value": "noindex, nofollow" + }, + { + "key": "Referrer-Policy", + "value": "no-referrer" + }, + { + "key": "X-Powered-By", + "value": "PHP/8.3.30" + }, + { + "key": "Content-Security-Policy", + "value": "default-src 'none';base-uri 'none';manifest-src 'self';frame-ancestors 'none'" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=c6dca5469e7b600f19319e050bd2b7b1; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=c6dca5469e7b600f19319e050bd2b7b1; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=c6dca5469e7b600f19319e050bd2b7b1; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=c6dca5469e7b600f19319e050bd2b7b1; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=c6dca5469e7b600f19319e050bd2b7b1; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=4409a61fcfb864bd285a0b1d6a8d2aeb; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=4409a61fcfb864bd285a0b1d6a8d2aeb; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=4409a61fcfb864bd285a0b1d6a8d2aeb; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=4409a61fcfb864bd285a0b1d6a8d2aeb; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=4409a61fcfb864bd285a0b1d6a8d2aeb; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "X-Request-Id", + "value": "R65O0cXF8h54UVAZFThn" + }, + { + "key": "Cache-Control", + "value": "no-cache, no-store, must-revalidate" + }, + { + "key": "Feature-Policy", + "value": "autoplay 'none';camera 'none';fullscreen 'none';geolocation 'none';microphone 'none';payment 'none'" + }, + { + "key": "X-User-Id", + "value": "admin" + }, + { + "key": "Content-Length", + "value": "387" + }, + { + "key": "Keep-Alive", + "value": "timeout=5, max=79" + }, + { + "key": "Connection", + "value": "Keep-Alive" + }, + { + "key": "Content-Type", + "value": "application/json; charset=utf-8" + } + ], + "stream": { + "type": "Buffer", + "data": [ + 123, + 34, + 117, + 114, + 108, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 122, + 97, + 107, + 101, + 110, + 92, + 47, + 118, + 49, + 92, + 47, + 107, + 108, + 97, + 110, + 116, + 99, + 111, + 110, + 116, + 97, + 99, + 116, + 101, + 110, + 92, + 47, + 54, + 51, + 57, + 57, + 54, + 51, + 48, + 100, + 45, + 100, + 57, + 55, + 98, + 45, + 52, + 102, + 55, + 101, + 45, + 97, + 50, + 56, + 97, + 45, + 99, + 57, + 52, + 57, + 102, + 55, + 53, + 49, + 57, + 56, + 101, + 55, + 34, + 44, + 34, + 117, + 117, + 105, + 100, + 34, + 58, + 34, + 54, + 51, + 57, + 57, + 54, + 51, + 48, + 100, + 45, + 100, + 57, + 55, + 98, + 45, + 52, + 102, + 55, + 101, + 45, + 97, + 50, + 56, + 97, + 45, + 99, + 57, + 52, + 57, + 102, + 55, + 53, + 49, + 57, + 56, + 101, + 55, + 34, + 44, + 34, + 122, + 97, + 97, + 107, + 34, + 58, + 34, + 104, + 116, + 116, + 112, + 58, + 92, + 47, + 92, + 47, + 108, + 111, + 99, + 97, + 108, + 104, + 111, + 115, + 116, + 58, + 56, + 48, + 56, + 48, + 92, + 47, + 105, + 110, + 100, + 101, + 120, + 46, + 112, + 104, + 112, + 92, + 47, + 97, + 112, + 112, + 115, + 92, + 47, + 112, + 114, + 111, + 99, + 101, + 115, + 116, + 92, + 47, + 97, + 112, + 105, + 92, + 47, + 122, + 103, + 119, + 92, + 47, + 122, + 97, + 107, + 101, + 110, + 92, + 47, + 118, + 49, + 92, + 47, + 122, + 97, + 107, + 101, + 110, + 92, + 47, + 50, + 54, + 99, + 54, + 102, + 48, + 53, + 54, + 45, + 100, + 56, + 98, + 50, + 45, + 52, + 102, + 57, + 54, + 45, + 97, + 55, + 56, + 51, + 45, + 97, + 57, + 53, + 57, + 49, + 55, + 50, + 51, + 99, + 51, + 56, + 54, + 34, + 44, + 34, + 100, + 97, + 116, + 117, + 109, + 116, + 105, + 106, + 100, + 34, + 58, + 34, + 50, + 48, + 49, + 57, + 45, + 48, + 50, + 45, + 50, + 48, + 84, + 48, + 48, + 58, + 48, + 48, + 58, + 48, + 48, + 43, + 48, + 48, + 58, + 48, + 48, + 34, + 44, + 34, + 107, + 97, + 110, + 97, + 97, + 108, + 34, + 58, + 34, + 34, + 44, + 34, + 111, + 110, + 100, + 101, + 114, + 119, + 101, + 114, + 112, + 34, + 58, + 34, + 34, + 44, + 34, + 105, + 110, + 105, + 116, + 105, + 97, + 116, + 111, + 114, + 34, + 58, + 34, + 34, + 125 + ] + }, + "cookie": [], + "responseTime": 180, + "responseSize": 387 + }, + "id": "67a7faac-2197-4d1c-a776-4b448d9c063a" + }, + { + "cursor": { + "ref": "ef87d0b4-82cd-43da-85e2-719aae13aaf4", + "length": 313, + "cycles": 1, + "position": 303, + "iteration": 0, + "httpRequestId": "6e25c725-e942-4883-ad09-cd65c1550f83" + }, + "item": { + "id": "49fefcef-b21f-4d58-b332-6bd4bbd80c42", + "name": "(zrc-023a) Zaak verwijderen is mogelijk", + "request": { + "url": { + "host": [ + "{{created_zaak_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Accept-Crs", + "value": "EPSG:4326" + } + ], + "method": "DELETE", + "body": { + "mode": "raw", + "raw": "" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "0fb26273-09fc-4f03-b5a9-55d7aef2020e", + "type": "text/javascript", + "exec": [ + "pm.test(\"Zaak verwijderen geeft 204\", function() {", + " pm.response.to.have.status(204);", + "});" + ], + "_lastExecutionId": "cb8a15e4-bfd3-4bef-8649-3eb4a2f719df" + } + } + ] + }, + "request": { + "url": { + "protocol": "http", + "port": "8080", + "path": [ + "index.php", + "apps", + "procest", + "api", + "zgw", + "zaken", + "v1", + "zaken", + "26c6f056-d8b2-4f96-a783-a9591723c386" + ], + "host": [ + "localhost" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Accept-Crs", + "value": "EPSG:4326" + }, + { + "key": "Authorization", + "value": "Bearer eyJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJwcm9jZXN0LWFkbWluIiwiY2xpZW50X2lkIjoicHJvY2VzdC1hZG1pbiIsImlhdCI6IjE3NzMxNDUyMjAiLCJ1c2VyX2lkIjoicHJvY2VzdC1hZG1pbiIsInVzZXJfcmVwcmVzZW50YXRpb24iOiIifQ.-ogEVDevMoxaDwwyj-YwuRo-Cd270Dx50o7L_y5fi-A", + "system": true + }, + { + "key": "User-Agent", + "value": "PostmanRuntime/7.39.1", + "system": true + }, + { + "key": "Accept", + "value": "*/*", + "system": true + }, + { + "key": "Cache-Control", + "value": "no-cache", + "system": true + }, + { + "key": "Postman-Token", + "value": "bac15909-718d-49b3-be2c-30e60f3868bc", + "system": true + }, + { + "key": "Host", + "value": "localhost:8080", + "system": true + }, + { + "key": "Accept-Encoding", + "value": "gzip, deflate, br", + "system": true + }, + { + "key": "Connection", + "value": "keep-alive", + "system": true + }, + { + "key": "Cookie", + "value": "ocvp3112b4wg=4409a61fcfb864bd285a0b1d6a8d2aeb; oc_sessionPassphrase=LBNdKxRzA0iqoULIruNxDDh2BK3O%2BrCIU8aUmiUcOFvy5Xw1YfjwQNlmBW2IkGwJYtxXh9%2BwDN6vYuGNX07tXzkBtjQJUWTGdzf8AIOUIVxVx5DfyWAQZ7nmYmQv6XSE; nc_sameSiteCookielax=true; nc_sameSiteCookiestrict=true", + "system": true + } + ], + "method": "DELETE", + "body": { + "mode": "raw", + "raw": "" + }, + "auth": { + "type": "jwt", + "jwt": [ + { + "type": "string", + "value": "{\r\n \"iss\": \"procest-admin\",\r\n \"client_id\": \"procest-admin\",\r\n \"iat\": \"1773145220\",\r\n \"user_id\": \"procest-admin\",\r\n \"user_representation\": \"\"\r\n}", + "key": "payload" + }, + { + "type": "string", + "value": "procest-admin-secret-key-for-testing", + "key": "secret" + }, + { + "type": "string", + "value": "HS256", + "key": "algorithm" + }, + { + "type": "boolean", + "value": false, + "key": "isSecretBase64Encoded" + }, + { + "type": "string", + "value": "header", + "key": "addTokenTo" + }, + { + "type": "string", + "value": "Bearer", + "key": "headerPrefix" + }, + { + "type": "string", + "value": "token", + "key": "queryParamKey" + }, + { + "type": "string", + "value": "{}", + "key": "header" + } + ] + } + }, + "response": { + "id": "6622b459-f516-4b2a-ad6c-247ebb300234", + "status": "No Content", + "code": 204, + "header": [ + { + "key": "Date", + "value": "Tue, 10 Mar 2026 12:20:20 GMT" + }, + { + "key": "Server", + "value": "Apache/2.4.66 (Debian)" + }, + { + "key": "X-Content-Type-Options", + "value": "nosniff" + }, + { + "key": "X-Frame-Options", + "value": "SAMEORIGIN" + }, + { + "key": "X-Permitted-Cross-Domain-Policies", + "value": "none" + }, + { + "key": "X-Robots-Tag", + "value": "noindex, nofollow" + }, + { + "key": "Referrer-Policy", + "value": "no-referrer" + }, + { + "key": "X-Powered-By", + "value": "PHP/8.3.30" + }, + { + "key": "Content-Security-Policy", + "value": "default-src 'none';base-uri 'none';manifest-src 'self';frame-ancestors 'none'" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=4409a61fcfb864bd285a0b1d6a8d2aeb; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=4409a61fcfb864bd285a0b1d6a8d2aeb; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=4409a61fcfb864bd285a0b1d6a8d2aeb; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=4409a61fcfb864bd285a0b1d6a8d2aeb; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=4409a61fcfb864bd285a0b1d6a8d2aeb; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=b17e5b022a6b1b9d7bc4e279620f3cf2; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=b17e5b022a6b1b9d7bc4e279620f3cf2; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=b17e5b022a6b1b9d7bc4e279620f3cf2; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=b17e5b022a6b1b9d7bc4e279620f3cf2; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=b17e5b022a6b1b9d7bc4e279620f3cf2; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "X-Request-Id", + "value": "9gTinvcSli0xn327C6LZ" + }, + { + "key": "Cache-Control", + "value": "no-cache, no-store, must-revalidate" + }, + { + "key": "Feature-Policy", + "value": "autoplay 'none';camera 'none';fullscreen 'none';geolocation 'none';microphone 'none';payment 'none'" + }, + { + "key": "X-User-Id", + "value": "admin" + }, + { + "key": "Keep-Alive", + "value": "timeout=5, max=78" + }, + { + "key": "Connection", + "value": "Keep-Alive" + } + ], + "stream": { + "type": "Buffer", + "data": [] + }, + "cookie": [], + "responseTime": 944, + "responseSize": 0 + }, + "id": "49fefcef-b21f-4d58-b332-6bd4bbd80c42", + "assertions": [ + { + "assertion": "Zaak verwijderen geeft 204", + "skipped": false + } + ] + }, + { + "cursor": { + "ref": "27b6e4be-d8cf-435e-93d5-79103515e04d", + "length": 313, + "cycles": 1, + "position": 304, + "iteration": 0, + "httpRequestId": "89da0f46-6ec2-4d84-a7da-d15b8c910fde" + }, + "item": { + "id": "babc0389-ff49-48e7-9087-52c7549cc104", + "name": "(zrc-023b) Zaak verdwijnt uit zrc na verwijdering", + "request": { + "url": { + "host": [ + "{{created_zaak_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Accept-Crs", + "value": "EPSG:4326" + } + ], + "method": "GET" + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "e7acee39-bdc3-4838-a4e3-d91f46eb1eef", + "type": "text/javascript", + "exec": [ + "pm.test(\"Zaak ophalen uit zrc na verwijdering geeft 404\", function() {", + " pm.response.to.have.status(404); ", + "});", + "", + "pm.environment.unset(\"created_zaak_url\");" + ], + "_lastExecutionId": "a4bfe563-a0de-4f3e-b7a5-e36398b1b304" + } + } + ] + }, + "request": { + "url": { + "protocol": "http", + "port": "8080", + "path": [ + "index.php", + "apps", + "procest", + "api", + "zgw", + "zaken", + "v1", + "zaken", + "26c6f056-d8b2-4f96-a783-a9591723c386" + ], + "host": [ + "localhost" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Accept-Crs", + "value": "EPSG:4326" + }, + { + "key": "Authorization", + "value": "Bearer eyJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJwcm9jZXN0LWFkbWluIiwiY2xpZW50X2lkIjoicHJvY2VzdC1hZG1pbiIsImlhdCI6IjE3NzMxNDUyMjEiLCJ1c2VyX2lkIjoicHJvY2VzdC1hZG1pbiIsInVzZXJfcmVwcmVzZW50YXRpb24iOiIifQ.AkX9lqLvAbn8EeLgR-5foTktWUxeXlcbIlbylLwMR4E", + "system": true + }, + { + "key": "User-Agent", + "value": "PostmanRuntime/7.39.1", + "system": true + }, + { + "key": "Accept", + "value": "*/*", + "system": true + }, + { + "key": "Cache-Control", + "value": "no-cache", + "system": true + }, + { + "key": "Postman-Token", + "value": "070dd211-9873-4029-866b-c3a0fa18b650", + "system": true + }, + { + "key": "Host", + "value": "localhost:8080", + "system": true + }, + { + "key": "Accept-Encoding", + "value": "gzip, deflate, br", + "system": true + }, + { + "key": "Connection", + "value": "keep-alive", + "system": true + }, + { + "key": "Cookie", + "value": "ocvp3112b4wg=b17e5b022a6b1b9d7bc4e279620f3cf2; oc_sessionPassphrase=LBNdKxRzA0iqoULIruNxDDh2BK3O%2BrCIU8aUmiUcOFvy5Xw1YfjwQNlmBW2IkGwJYtxXh9%2BwDN6vYuGNX07tXzkBtjQJUWTGdzf8AIOUIVxVx5DfyWAQZ7nmYmQv6XSE; nc_sameSiteCookielax=true; nc_sameSiteCookiestrict=true", + "system": true + } + ], + "method": "GET", + "auth": { + "type": "jwt", + "jwt": [ + { + "type": "string", + "value": "{\r\n \"iss\": \"procest-admin\",\r\n \"client_id\": \"procest-admin\",\r\n \"iat\": \"1773145221\",\r\n \"user_id\": \"procest-admin\",\r\n \"user_representation\": \"\"\r\n}", + "key": "payload" + }, + { + "type": "string", + "value": "procest-admin-secret-key-for-testing", + "key": "secret" + }, + { + "type": "string", + "value": "HS256", + "key": "algorithm" + }, + { + "type": "boolean", + "value": false, + "key": "isSecretBase64Encoded" + }, + { + "type": "string", + "value": "header", + "key": "addTokenTo" + }, + { + "type": "string", + "value": "Bearer", + "key": "headerPrefix" + }, + { + "type": "string", + "value": "token", + "key": "queryParamKey" + }, + { + "type": "string", + "value": "{}", + "key": "header" + } + ] + } + }, + "response": { + "id": "296e3d53-2546-4996-9ef2-f1560f2cde3f", + "status": "Not Found", + "code": 404, + "header": [ + { + "key": "Date", + "value": "Tue, 10 Mar 2026 12:20:21 GMT" + }, + { + "key": "Server", + "value": "Apache/2.4.66 (Debian)" + }, + { + "key": "X-Content-Type-Options", + "value": "nosniff" + }, + { + "key": "X-Frame-Options", + "value": "SAMEORIGIN" + }, + { + "key": "X-Permitted-Cross-Domain-Policies", + "value": "none" + }, + { + "key": "X-Robots-Tag", + "value": "noindex, nofollow" + }, + { + "key": "Referrer-Policy", + "value": "no-referrer" + }, + { + "key": "X-Powered-By", + "value": "PHP/8.3.30" + }, + { + "key": "Content-Security-Policy", + "value": "default-src 'none';base-uri 'none';manifest-src 'self';frame-ancestors 'none'" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=b17e5b022a6b1b9d7bc4e279620f3cf2; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=b17e5b022a6b1b9d7bc4e279620f3cf2; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=b17e5b022a6b1b9d7bc4e279620f3cf2; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=b17e5b022a6b1b9d7bc4e279620f3cf2; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=b17e5b022a6b1b9d7bc4e279620f3cf2; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=73ae530f9d446099f425adbae1c728de; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=73ae530f9d446099f425adbae1c728de; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=73ae530f9d446099f425adbae1c728de; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "X-Request-Id", + "value": "F5yTDB9IxKe7pv8I3f0A" + }, + { + "key": "Cache-Control", + "value": "no-cache, no-store, must-revalidate" + }, + { + "key": "Feature-Policy", + "value": "autoplay 'none';camera 'none';fullscreen 'none';geolocation 'none';microphone 'none';payment 'none'" + }, + { + "key": "X-User-Id", + "value": "admin" + }, + { + "key": "Content-Length", + "value": "22" + }, + { + "key": "Keep-Alive", + "value": "timeout=5, max=77" + }, + { + "key": "Connection", + "value": "Keep-Alive" + }, + { + "key": "Content-Type", + "value": "application/json; charset=utf-8" + } + ], + "stream": { + "type": "Buffer", + "data": [ + 123, + 34, + 100, + 101, + 116, + 97, + 105, + 108, + 34, + 58, + 34, + 78, + 111, + 116, + 32, + 102, + 111, + 117, + 110, + 100, + 34, + 125 + ] + }, + "cookie": [], + "responseTime": 115, + "responseSize": 22 + }, + "id": "babc0389-ff49-48e7-9087-52c7549cc104", + "assertions": [ + { + "assertion": "Zaak ophalen uit zrc na verwijdering geeft 404", + "skipped": false + } + ] + }, + { + "cursor": { + "ref": "c7494969-512c-4f37-89a9-97897797a494", + "length": 313, + "cycles": 1, + "position": 305, + "iteration": 0, + "httpRequestId": "62f15b27-0762-4e17-81d4-3aaf67e9badd" + }, + "item": { + "id": "df3fa2c8-c8c5-4433-8ab5-dc9206083dae", + "name": "(zrc-023c) Resultaat verdwijnt uit zrc na Zaak verwijdering", + "request": { + "url": { + "host": [ + "{{resultaat_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Accept-Crs", + "value": "EPSG:4326" + } + ], + "method": "GET" + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "0aed95fa-b4ae-46c0-9c96-6cf5bb667bf4", + "type": "text/javascript", + "exec": [ + "pm.test(\"Resultaat ophalen uit zrc na Zaak verwijdering geeft 404\", function() {", + " pm.response.to.have.status(404); ", + "});" + ], + "_lastExecutionId": "f98a6fc9-ec78-4019-9fb4-9be7f889feb8" + } + } + ] + }, + "request": { + "url": { + "protocol": "http", + "port": "8080", + "path": [ + "index.php", + "apps", + "procest", + "api", + "zgw", + "zaken", + "v1", + "resultaten", + "b99dd2a6-15ee-4a85-b99e-19715c31a1c1" + ], + "host": [ + "localhost" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Accept-Crs", + "value": "EPSG:4326" + }, + { + "key": "Authorization", + "value": "Bearer eyJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJwcm9jZXN0LWFkbWluIiwiY2xpZW50X2lkIjoicHJvY2VzdC1hZG1pbiIsImlhdCI6IjE3NzMxNDUyMjEiLCJ1c2VyX2lkIjoicHJvY2VzdC1hZG1pbiIsInVzZXJfcmVwcmVzZW50YXRpb24iOiIifQ.AkX9lqLvAbn8EeLgR-5foTktWUxeXlcbIlbylLwMR4E", + "system": true + }, + { + "key": "User-Agent", + "value": "PostmanRuntime/7.39.1", + "system": true + }, + { + "key": "Accept", + "value": "*/*", + "system": true + }, + { + "key": "Cache-Control", + "value": "no-cache", + "system": true + }, + { + "key": "Postman-Token", + "value": "5b31ab65-cdd4-4cf0-875b-3666aa8eca01", + "system": true + }, + { + "key": "Host", + "value": "localhost:8080", + "system": true + }, + { + "key": "Accept-Encoding", + "value": "gzip, deflate, br", + "system": true + }, + { + "key": "Connection", + "value": "keep-alive", + "system": true + }, + { + "key": "Cookie", + "value": "ocvp3112b4wg=73ae530f9d446099f425adbae1c728de; oc_sessionPassphrase=LBNdKxRzA0iqoULIruNxDDh2BK3O%2BrCIU8aUmiUcOFvy5Xw1YfjwQNlmBW2IkGwJYtxXh9%2BwDN6vYuGNX07tXzkBtjQJUWTGdzf8AIOUIVxVx5DfyWAQZ7nmYmQv6XSE; nc_sameSiteCookielax=true; nc_sameSiteCookiestrict=true", + "system": true + } + ], + "method": "GET", + "auth": { + "type": "jwt", + "jwt": [ + { + "type": "string", + "value": "{\r\n \"iss\": \"procest-admin\",\r\n \"client_id\": \"procest-admin\",\r\n \"iat\": \"1773145221\",\r\n \"user_id\": \"procest-admin\",\r\n \"user_representation\": \"\"\r\n}", + "key": "payload" + }, + { + "type": "string", + "value": "procest-admin-secret-key-for-testing", + "key": "secret" + }, + { + "type": "string", + "value": "HS256", + "key": "algorithm" + }, + { + "type": "boolean", + "value": false, + "key": "isSecretBase64Encoded" + }, + { + "type": "string", + "value": "header", + "key": "addTokenTo" + }, + { + "type": "string", + "value": "Bearer", + "key": "headerPrefix" + }, + { + "type": "string", + "value": "token", + "key": "queryParamKey" + }, + { + "type": "string", + "value": "{}", + "key": "header" + } + ] + } + }, + "response": { + "id": "366d73e4-2afc-4aaf-96f6-e358aa5ac788", + "status": "Not Found", + "code": 404, + "header": [ + { + "key": "Date", + "value": "Tue, 10 Mar 2026 12:20:21 GMT" + }, + { + "key": "Server", + "value": "Apache/2.4.66 (Debian)" + }, + { + "key": "X-Content-Type-Options", + "value": "nosniff" + }, + { + "key": "X-Frame-Options", + "value": "SAMEORIGIN" + }, + { + "key": "X-Permitted-Cross-Domain-Policies", + "value": "none" + }, + { + "key": "X-Robots-Tag", + "value": "noindex, nofollow" + }, + { + "key": "Referrer-Policy", + "value": "no-referrer" + }, + { + "key": "X-Powered-By", + "value": "PHP/8.3.30" + }, + { + "key": "Content-Security-Policy", + "value": "default-src 'none';base-uri 'none';manifest-src 'self';frame-ancestors 'none'" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=73ae530f9d446099f425adbae1c728de; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=73ae530f9d446099f425adbae1c728de; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=73ae530f9d446099f425adbae1c728de; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=73ae530f9d446099f425adbae1c728de; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=73ae530f9d446099f425adbae1c728de; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=656d17800c5182f70644aec113e88eda; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=656d17800c5182f70644aec113e88eda; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "X-Request-Id", + "value": "E5vZ6lKKmEOQdLMOi4p3" + }, + { + "key": "Cache-Control", + "value": "no-cache, no-store, must-revalidate" + }, + { + "key": "Feature-Policy", + "value": "autoplay 'none';camera 'none';fullscreen 'none';geolocation 'none';microphone 'none';payment 'none'" + }, + { + "key": "Content-Length", + "value": "22" + }, + { + "key": "Keep-Alive", + "value": "timeout=5, max=76" + }, + { + "key": "Connection", + "value": "Keep-Alive" + }, + { + "key": "Content-Type", + "value": "application/json; charset=utf-8" + } + ], + "stream": { + "type": "Buffer", + "data": [ + 123, + 34, + 100, + 101, + 116, + 97, + 105, + 108, + 34, + 58, + 34, + 78, + 111, + 116, + 32, + 102, + 111, + 117, + 110, + 100, + 34, + 125 + ] + }, + "cookie": [], + "responseTime": 97, + "responseSize": 22 + }, + "id": "df3fa2c8-c8c5-4433-8ab5-dc9206083dae", + "assertions": [ + { + "assertion": "Resultaat ophalen uit zrc na Zaak verwijdering geeft 404", + "skipped": false + } + ] + }, + { + "cursor": { + "ref": "a2217796-42e1-454d-b495-72806c6561cf", + "length": 313, + "cycles": 1, + "position": 306, + "iteration": 0, + "httpRequestId": "1eb410d2-e151-4d0b-a785-e5dd7e35b5b7" + }, + "item": { + "id": "cf2698de-4bf2-4daf-920b-efd2208b3b50", + "name": "(zrc-023d) Status verdwijnt uit zrc na Zaak verwijdering", + "request": { + "url": { + "host": [ + "{{status_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Accept-Crs", + "value": "EPSG:4326" + } + ], + "method": "GET" + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "a01ae063-18eb-475a-bbdb-f6ceaf744f4f", + "type": "text/javascript", + "exec": [ + "pm.test(\"Status ophalen uit zrc na Zaak verwijdering geeft 404\", function() {", + " pm.response.to.have.status(404); ", + "});" + ], + "_lastExecutionId": "792ab686-77c3-4898-999b-4af46c895db8" + } + } + ] + }, + "request": { + "url": { + "protocol": "http", + "port": "8080", + "path": [ + "index.php", + "apps", + "procest", + "api", + "zgw", + "zaken", + "v1", + "statussen", + "db9ee009-074e-42bd-8f2e-8d675147e265" + ], + "host": [ + "localhost" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Accept-Crs", + "value": "EPSG:4326" + }, + { + "key": "Authorization", + "value": "Bearer eyJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJwcm9jZXN0LWFkbWluIiwiY2xpZW50X2lkIjoicHJvY2VzdC1hZG1pbiIsImlhdCI6IjE3NzMxNDUyMjIiLCJ1c2VyX2lkIjoicHJvY2VzdC1hZG1pbiIsInVzZXJfcmVwcmVzZW50YXRpb24iOiIifQ.K4aepJYeJLEiUGoxE2PWSluDfou9S7VSGRwEJ37JpoA", + "system": true + }, + { + "key": "User-Agent", + "value": "PostmanRuntime/7.39.1", + "system": true + }, + { + "key": "Accept", + "value": "*/*", + "system": true + }, + { + "key": "Cache-Control", + "value": "no-cache", + "system": true + }, + { + "key": "Postman-Token", + "value": "4f977b85-ebd0-42a2-b69b-f1a6e961e0e3", + "system": true + }, + { + "key": "Host", + "value": "localhost:8080", + "system": true + }, + { + "key": "Accept-Encoding", + "value": "gzip, deflate, br", + "system": true + }, + { + "key": "Connection", + "value": "keep-alive", + "system": true + }, + { + "key": "Cookie", + "value": "ocvp3112b4wg=656d17800c5182f70644aec113e88eda; oc_sessionPassphrase=LBNdKxRzA0iqoULIruNxDDh2BK3O%2BrCIU8aUmiUcOFvy5Xw1YfjwQNlmBW2IkGwJYtxXh9%2BwDN6vYuGNX07tXzkBtjQJUWTGdzf8AIOUIVxVx5DfyWAQZ7nmYmQv6XSE; nc_sameSiteCookielax=true; nc_sameSiteCookiestrict=true", + "system": true + } + ], + "method": "GET", + "auth": { + "type": "jwt", + "jwt": [ + { + "type": "string", + "value": "{\r\n \"iss\": \"procest-admin\",\r\n \"client_id\": \"procest-admin\",\r\n \"iat\": \"1773145222\",\r\n \"user_id\": \"procest-admin\",\r\n \"user_representation\": \"\"\r\n}", + "key": "payload" + }, + { + "type": "string", + "value": "procest-admin-secret-key-for-testing", + "key": "secret" + }, + { + "type": "string", + "value": "HS256", + "key": "algorithm" + }, + { + "type": "boolean", + "value": false, + "key": "isSecretBase64Encoded" + }, + { + "type": "string", + "value": "header", + "key": "addTokenTo" + }, + { + "type": "string", + "value": "Bearer", + "key": "headerPrefix" + }, + { + "type": "string", + "value": "token", + "key": "queryParamKey" + }, + { + "type": "string", + "value": "{}", + "key": "header" + } + ] + } + }, + "response": { + "id": "37950748-2091-47e7-b7d0-5961da38b681", + "status": "Not Found", + "code": 404, + "header": [ + { + "key": "Date", + "value": "Tue, 10 Mar 2026 12:20:21 GMT" + }, + { + "key": "Server", + "value": "Apache/2.4.66 (Debian)" + }, + { + "key": "X-Content-Type-Options", + "value": "nosniff" + }, + { + "key": "X-Frame-Options", + "value": "SAMEORIGIN" + }, + { + "key": "X-Permitted-Cross-Domain-Policies", + "value": "none" + }, + { + "key": "X-Robots-Tag", + "value": "noindex, nofollow" + }, + { + "key": "Referrer-Policy", + "value": "no-referrer" + }, + { + "key": "X-Powered-By", + "value": "PHP/8.3.30" + }, + { + "key": "Content-Security-Policy", + "value": "default-src 'none';base-uri 'none';manifest-src 'self';frame-ancestors 'none'" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=656d17800c5182f70644aec113e88eda; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "X-Request-Id", + "value": "8VY2pfDY3lMXenG0m0PQ" + }, + { + "key": "Cache-Control", + "value": "no-cache, no-store, must-revalidate" + }, + { + "key": "Feature-Policy", + "value": "autoplay 'none';camera 'none';fullscreen 'none';geolocation 'none';microphone 'none';payment 'none'" + }, + { + "key": "Content-Length", + "value": "22" + }, + { + "key": "Keep-Alive", + "value": "timeout=5, max=75" + }, + { + "key": "Connection", + "value": "Keep-Alive" + }, + { + "key": "Content-Type", + "value": "application/json; charset=utf-8" + } + ], + "stream": { + "type": "Buffer", + "data": [ + 123, + 34, + 100, + 101, + 116, + 97, + 105, + 108, + 34, + 58, + 34, + 78, + 111, + 116, + 32, + 102, + 111, + 117, + 110, + 100, + 34, + 125 + ] + }, + "cookie": [], + "responseTime": 108, + "responseSize": 22 + }, + "id": "cf2698de-4bf2-4daf-920b-efd2208b3b50", + "assertions": [ + { + "assertion": "Status ophalen uit zrc na Zaak verwijdering geeft 404", + "skipped": false + } + ] + }, + { + "cursor": { + "ref": "bdc21058-3e8d-4510-9a02-fe2d57997e90", + "length": 313, + "cycles": 1, + "position": 307, + "iteration": 0, + "httpRequestId": "28027440-8e68-4e5e-b2c5-541670841798" + }, + "item": { + "id": "cb0eb1f5-06cd-4787-9a85-f4dfa977730b", + "name": "(zrc-023e) Rol verdwijnt uit zrc na Zaak verwijdering", + "request": { + "url": { + "host": [ + "{{rol_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Accept-Crs", + "value": "EPSG:4326" + } + ], + "method": "GET" + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "4c18d7ef-9f35-47d9-88b9-f9a879815a33", + "type": "text/javascript", + "exec": [ + "pm.test(\"Rol ophalen uit zrc na Zaak verwijdering geeft 404\", function() {", + " pm.response.to.have.status(404); ", + "});" + ], + "_lastExecutionId": "9cd7244e-63ee-4e0c-8269-fac7ff74e6e6" + } + } + ] + }, + "request": { + "url": { + "protocol": "http", + "port": "8080", + "path": [ + "index.php", + "apps", + "procest", + "api", + "zgw", + "zaken", + "v1", + "rollen", + "e6c8bb25-970e-4d27-9618-a0a852f3750c" + ], + "host": [ + "localhost" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Accept-Crs", + "value": "EPSG:4326" + }, + { + "key": "Authorization", + "value": "Bearer eyJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJwcm9jZXN0LWFkbWluIiwiY2xpZW50X2lkIjoicHJvY2VzdC1hZG1pbiIsImlhdCI6IjE3NzMxNDUyMjIiLCJ1c2VyX2lkIjoicHJvY2VzdC1hZG1pbiIsInVzZXJfcmVwcmVzZW50YXRpb24iOiIifQ.K4aepJYeJLEiUGoxE2PWSluDfou9S7VSGRwEJ37JpoA", + "system": true + }, + { + "key": "User-Agent", + "value": "PostmanRuntime/7.39.1", + "system": true + }, + { + "key": "Accept", + "value": "*/*", + "system": true + }, + { + "key": "Cache-Control", + "value": "no-cache", + "system": true + }, + { + "key": "Postman-Token", + "value": "9e97795a-0ca1-4a16-8d25-dbb8043f955c", + "system": true + }, + { + "key": "Host", + "value": "localhost:8080", + "system": true + }, + { + "key": "Accept-Encoding", + "value": "gzip, deflate, br", + "system": true + }, + { + "key": "Connection", + "value": "keep-alive", + "system": true + }, + { + "key": "Cookie", + "value": "ocvp3112b4wg=656d17800c5182f70644aec113e88eda; oc_sessionPassphrase=LBNdKxRzA0iqoULIruNxDDh2BK3O%2BrCIU8aUmiUcOFvy5Xw1YfjwQNlmBW2IkGwJYtxXh9%2BwDN6vYuGNX07tXzkBtjQJUWTGdzf8AIOUIVxVx5DfyWAQZ7nmYmQv6XSE; nc_sameSiteCookielax=true; nc_sameSiteCookiestrict=true", + "system": true + } + ], + "method": "GET", + "auth": { + "type": "jwt", + "jwt": [ + { + "type": "string", + "value": "{\r\n \"iss\": \"procest-admin\",\r\n \"client_id\": \"procest-admin\",\r\n \"iat\": \"1773145222\",\r\n \"user_id\": \"procest-admin\",\r\n \"user_representation\": \"\"\r\n}", + "key": "payload" + }, + { + "type": "string", + "value": "procest-admin-secret-key-for-testing", + "key": "secret" + }, + { + "type": "string", + "value": "HS256", + "key": "algorithm" + }, + { + "type": "boolean", + "value": false, + "key": "isSecretBase64Encoded" + }, + { + "type": "string", + "value": "header", + "key": "addTokenTo" + }, + { + "type": "string", + "value": "Bearer", + "key": "headerPrefix" + }, + { + "type": "string", + "value": "token", + "key": "queryParamKey" + }, + { + "type": "string", + "value": "{}", + "key": "header" + } + ] + } + }, + "response": { + "id": "85e22629-20dd-45e0-a26c-94d089868227", + "status": "Not Found", + "code": 404, + "header": [ + { + "key": "Date", + "value": "Tue, 10 Mar 2026 12:20:21 GMT" + }, + { + "key": "Server", + "value": "Apache/2.4.66 (Debian)" + }, + { + "key": "X-Content-Type-Options", + "value": "nosniff" + }, + { + "key": "X-Frame-Options", + "value": "SAMEORIGIN" + }, + { + "key": "X-Permitted-Cross-Domain-Policies", + "value": "none" + }, + { + "key": "X-Robots-Tag", + "value": "noindex, nofollow" + }, + { + "key": "Referrer-Policy", + "value": "no-referrer" + }, + { + "key": "X-Powered-By", + "value": "PHP/8.3.30" + }, + { + "key": "Content-Security-Policy", + "value": "default-src 'none';base-uri 'none';manifest-src 'self';frame-ancestors 'none'" + }, + { + "key": "X-Request-Id", + "value": "HJnfbU557Y0nuy9qTEFw" + }, + { + "key": "Cache-Control", + "value": "no-cache, no-store, must-revalidate" + }, + { + "key": "Feature-Policy", + "value": "autoplay 'none';camera 'none';fullscreen 'none';geolocation 'none';microphone 'none';payment 'none'" + }, + { + "key": "Content-Length", + "value": "22" + }, + { + "key": "Keep-Alive", + "value": "timeout=5, max=74" + }, + { + "key": "Connection", + "value": "Keep-Alive" + }, + { + "key": "Content-Type", + "value": "application/json; charset=utf-8" + } + ], + "stream": { + "type": "Buffer", + "data": [ + 123, + 34, + 100, + 101, + 116, + 97, + 105, + 108, + 34, + 58, + 34, + 78, + 111, + 116, + 32, + 102, + 111, + 117, + 110, + 100, + 34, + 125 + ] + }, + "cookie": [], + "responseTime": 105, + "responseSize": 22 + }, + "id": "cb0eb1f5-06cd-4787-9a85-f4dfa977730b", + "assertions": [ + { + "assertion": "Rol ophalen uit zrc na Zaak verwijdering geeft 404", + "skipped": false + } + ] + }, + { + "cursor": { + "ref": "60f7894d-63e8-4280-af33-6ef96d2a82f9", + "length": 313, + "cycles": 1, + "position": 308, + "iteration": 0, + "httpRequestId": "053ccc68-2527-4706-8e8a-92e7605a608c" + }, + "item": { + "id": "3e2acab8-2b78-40a6-ab72-100423b0f36b", + "name": "(zrc-023f) Zaakobject verdwijnt uit zrc na Zaak verwijdering", + "request": { + "url": { + "host": [ + "{{zaakobject_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Accept-Crs", + "value": "EPSG:4326" + } + ], + "method": "GET" + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "66b2ff10-d4c4-48a7-8309-058f0dd52005", + "type": "text/javascript", + "exec": [ + "pm.test(\"Zaakobject ophalen uit zrc na Zaak verwijdering geeft 404\", function() {", + " pm.response.to.have.status(404); ", + "});" + ], + "_lastExecutionId": "27473f9c-026f-4bd1-be5b-c4633511b7f3" + } + } + ] + }, + "request": { + "url": { + "protocol": "http", + "port": "8080", + "path": [ + "index.php", + "apps", + "procest", + "api", + "zgw", + "zaken", + "v1", + "zaakobjecten", + "7140e9e5-955c-4660-872b-062add6a97c2" + ], + "host": [ + "localhost" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Accept-Crs", + "value": "EPSG:4326" + }, + { + "key": "Authorization", + "value": "Bearer eyJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJwcm9jZXN0LWFkbWluIiwiY2xpZW50X2lkIjoicHJvY2VzdC1hZG1pbiIsImlhdCI6IjE3NzMxNDUyMjIiLCJ1c2VyX2lkIjoicHJvY2VzdC1hZG1pbiIsInVzZXJfcmVwcmVzZW50YXRpb24iOiIifQ.K4aepJYeJLEiUGoxE2PWSluDfou9S7VSGRwEJ37JpoA", + "system": true + }, + { + "key": "User-Agent", + "value": "PostmanRuntime/7.39.1", + "system": true + }, + { + "key": "Accept", + "value": "*/*", + "system": true + }, + { + "key": "Cache-Control", + "value": "no-cache", + "system": true + }, + { + "key": "Postman-Token", + "value": "818088ac-806b-43e8-ae8f-12b1bb9caa6d", + "system": true + }, + { + "key": "Host", + "value": "localhost:8080", + "system": true + }, + { + "key": "Accept-Encoding", + "value": "gzip, deflate, br", + "system": true + }, + { + "key": "Connection", + "value": "keep-alive", + "system": true + }, + { + "key": "Cookie", + "value": "ocvp3112b4wg=656d17800c5182f70644aec113e88eda; oc_sessionPassphrase=LBNdKxRzA0iqoULIruNxDDh2BK3O%2BrCIU8aUmiUcOFvy5Xw1YfjwQNlmBW2IkGwJYtxXh9%2BwDN6vYuGNX07tXzkBtjQJUWTGdzf8AIOUIVxVx5DfyWAQZ7nmYmQv6XSE; nc_sameSiteCookielax=true; nc_sameSiteCookiestrict=true", + "system": true + } + ], + "method": "GET", + "auth": { + "type": "jwt", + "jwt": [ + { + "type": "string", + "value": "{\r\n \"iss\": \"procest-admin\",\r\n \"client_id\": \"procest-admin\",\r\n \"iat\": \"1773145222\",\r\n \"user_id\": \"procest-admin\",\r\n \"user_representation\": \"\"\r\n}", + "key": "payload" + }, + { + "type": "string", + "value": "procest-admin-secret-key-for-testing", + "key": "secret" + }, + { + "type": "string", + "value": "HS256", + "key": "algorithm" + }, + { + "type": "boolean", + "value": false, + "key": "isSecretBase64Encoded" + }, + { + "type": "string", + "value": "header", + "key": "addTokenTo" + }, + { + "type": "string", + "value": "Bearer", + "key": "headerPrefix" + }, + { + "type": "string", + "value": "token", + "key": "queryParamKey" + }, + { + "type": "string", + "value": "{}", + "key": "header" + } + ] + } + }, + "response": { + "id": "be948d3c-b347-4193-8a79-9202f44d4c78", + "status": "Not Found", + "code": 404, + "header": [ + { + "key": "Date", + "value": "Tue, 10 Mar 2026 12:20:21 GMT" + }, + { + "key": "Server", + "value": "Apache/2.4.66 (Debian)" + }, + { + "key": "X-Content-Type-Options", + "value": "nosniff" + }, + { + "key": "X-Frame-Options", + "value": "SAMEORIGIN" + }, + { + "key": "X-Permitted-Cross-Domain-Policies", + "value": "none" + }, + { + "key": "X-Robots-Tag", + "value": "noindex, nofollow" + }, + { + "key": "Referrer-Policy", + "value": "no-referrer" + }, + { + "key": "X-Powered-By", + "value": "PHP/8.3.30" + }, + { + "key": "Content-Security-Policy", + "value": "default-src 'none';base-uri 'none';manifest-src 'self';frame-ancestors 'none'" + }, + { + "key": "X-Request-Id", + "value": "tJ1Pc6jH16pc8Pe9zGZ6" + }, + { + "key": "Cache-Control", + "value": "no-cache, no-store, must-revalidate" + }, + { + "key": "Feature-Policy", + "value": "autoplay 'none';camera 'none';fullscreen 'none';geolocation 'none';microphone 'none';payment 'none'" + }, + { + "key": "Content-Length", + "value": "22" + }, + { + "key": "Keep-Alive", + "value": "timeout=5, max=73" + }, + { + "key": "Connection", + "value": "Keep-Alive" + }, + { + "key": "Content-Type", + "value": "application/json; charset=utf-8" + } + ], + "stream": { + "type": "Buffer", + "data": [ + 123, + 34, + 100, + 101, + 116, + 97, + 105, + 108, + 34, + 58, + 34, + 78, + 111, + 116, + 32, + 102, + 111, + 117, + 110, + 100, + 34, + 125 + ] + }, + "cookie": [], + "responseTime": 105, + "responseSize": 22 + }, + "id": "3e2acab8-2b78-40a6-ab72-100423b0f36b", + "assertions": [ + { + "assertion": "Zaakobject ophalen uit zrc na Zaak verwijdering geeft 404", + "skipped": false + } + ] + }, + { + "cursor": { + "ref": "0ffebae5-ba7e-4df2-bd1b-3a862d20ab88", + "length": 313, + "cycles": 1, + "position": 309, + "iteration": 0, + "httpRequestId": "a6ac9719-67fd-44da-ae56-f48b32f8be73" + }, + "item": { + "id": "8fc1fe4b-4e42-4423-a629-fc4fc0539df2", + "name": "(zrc-023g) Zaakeigenschap verdwijnt uit zrc na Zaak verwijdering", + "request": { + "url": { + "host": [ + "{{zaakeigenschap_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Accept-Crs", + "value": "EPSG:4326" + } + ], + "method": "GET" + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "17fd71c5-d521-4a4a-85c7-ab71e252e4bf", + "type": "text/javascript", + "exec": [ + "pm.test(\"Zaakeigenschap ophalen uit zrc na Zaak verwijdering geeft 404\", function() {", + " pm.response.to.have.status(404); ", + "});" + ], + "_lastExecutionId": "81514715-708a-47cc-be0c-7d37e0b4dd02" + } + } + ] + }, + "request": { + "url": { + "protocol": "http", + "port": "8080", + "path": [ + "index.php", + "apps", + "procest", + "api", + "zgw", + "zaken", + "v1", + "zaakeigenschappen", + "c8651ec8-0448-4417-9b1b-7e0e3c21ecb7" + ], + "host": [ + "localhost" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Accept-Crs", + "value": "EPSG:4326" + }, + { + "key": "Authorization", + "value": "Bearer eyJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJwcm9jZXN0LWFkbWluIiwiY2xpZW50X2lkIjoicHJvY2VzdC1hZG1pbiIsImlhdCI6IjE3NzMxNDUyMjIiLCJ1c2VyX2lkIjoicHJvY2VzdC1hZG1pbiIsInVzZXJfcmVwcmVzZW50YXRpb24iOiIifQ.K4aepJYeJLEiUGoxE2PWSluDfou9S7VSGRwEJ37JpoA", + "system": true + }, + { + "key": "User-Agent", + "value": "PostmanRuntime/7.39.1", + "system": true + }, + { + "key": "Accept", + "value": "*/*", + "system": true + }, + { + "key": "Cache-Control", + "value": "no-cache", + "system": true + }, + { + "key": "Postman-Token", + "value": "c46398db-3a0e-4561-af99-a1a939b77ae9", + "system": true + }, + { + "key": "Host", + "value": "localhost:8080", + "system": true + }, + { + "key": "Accept-Encoding", + "value": "gzip, deflate, br", + "system": true + }, + { + "key": "Connection", + "value": "keep-alive", + "system": true + }, + { + "key": "Cookie", + "value": "ocvp3112b4wg=656d17800c5182f70644aec113e88eda; oc_sessionPassphrase=LBNdKxRzA0iqoULIruNxDDh2BK3O%2BrCIU8aUmiUcOFvy5Xw1YfjwQNlmBW2IkGwJYtxXh9%2BwDN6vYuGNX07tXzkBtjQJUWTGdzf8AIOUIVxVx5DfyWAQZ7nmYmQv6XSE; nc_sameSiteCookielax=true; nc_sameSiteCookiestrict=true", + "system": true + } + ], + "method": "GET", + "auth": { + "type": "jwt", + "jwt": [ + { + "type": "string", + "value": "{\r\n \"iss\": \"procest-admin\",\r\n \"client_id\": \"procest-admin\",\r\n \"iat\": \"1773145222\",\r\n \"user_id\": \"procest-admin\",\r\n \"user_representation\": \"\"\r\n}", + "key": "payload" + }, + { + "type": "string", + "value": "procest-admin-secret-key-for-testing", + "key": "secret" + }, + { + "type": "string", + "value": "HS256", + "key": "algorithm" + }, + { + "type": "boolean", + "value": false, + "key": "isSecretBase64Encoded" + }, + { + "type": "string", + "value": "header", + "key": "addTokenTo" + }, + { + "type": "string", + "value": "Bearer", + "key": "headerPrefix" + }, + { + "type": "string", + "value": "token", + "key": "queryParamKey" + }, + { + "type": "string", + "value": "{}", + "key": "header" + } + ] + } + }, + "response": { + "id": "37535599-d447-4d34-9602-222c501df3bd", + "status": "Not Found", + "code": 404, + "header": [ + { + "key": "Date", + "value": "Tue, 10 Mar 2026 12:20:22 GMT" + }, + { + "key": "Server", + "value": "Apache/2.4.66 (Debian)" + }, + { + "key": "X-Content-Type-Options", + "value": "nosniff" + }, + { + "key": "X-Frame-Options", + "value": "SAMEORIGIN" + }, + { + "key": "X-Permitted-Cross-Domain-Policies", + "value": "none" + }, + { + "key": "X-Robots-Tag", + "value": "noindex, nofollow" + }, + { + "key": "Referrer-Policy", + "value": "no-referrer" + }, + { + "key": "X-Powered-By", + "value": "PHP/8.3.30" + }, + { + "key": "Content-Security-Policy", + "value": "default-src 'none';base-uri 'none';manifest-src 'self';frame-ancestors 'none'" + }, + { + "key": "X-Request-Id", + "value": "8MGfeF1FjnbbLzxOiEeZ" + }, + { + "key": "Cache-Control", + "value": "no-cache, no-store, must-revalidate" + }, + { + "key": "Feature-Policy", + "value": "autoplay 'none';camera 'none';fullscreen 'none';geolocation 'none';microphone 'none';payment 'none'" + }, + { + "key": "Content-Length", + "value": "22" + }, + { + "key": "Keep-Alive", + "value": "timeout=5, max=72" + }, + { + "key": "Connection", + "value": "Keep-Alive" + }, + { + "key": "Content-Type", + "value": "application/json; charset=utf-8" + } + ], + "stream": { + "type": "Buffer", + "data": [ + 123, + 34, + 100, + 101, + 116, + 97, + 105, + 108, + 34, + 58, + 34, + 78, + 111, + 116, + 32, + 102, + 111, + 117, + 110, + 100, + 34, + 125 + ] + }, + "cookie": [], + "responseTime": 96, + "responseSize": 22 + }, + "id": "8fc1fe4b-4e42-4423-a629-fc4fc0539df2", + "assertions": [ + { + "assertion": "Zaakeigenschap ophalen uit zrc na Zaak verwijdering geeft 404", + "skipped": false + } + ] + }, + { + "cursor": { + "ref": "62cdd268-2d80-4b64-a2d3-c033c6add880", + "length": 313, + "cycles": 1, + "position": 310, + "iteration": 0, + "httpRequestId": "3bbbb709-9620-4b37-bc00-b941ef261d4e" + }, + "item": { + "id": "bd0c24c7-e8d9-4665-8da2-68549285d111", + "name": "(zrc-023h) ObjectInformatieObject verdwijnt uit drc na Zaak verwijdering", + "request": { + "url": { + "host": [ + "{{objectinformatieobject_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Accept-Crs", + "value": "EPSG:4326" + } + ], + "method": "GET" + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "fc92b161-7037-4a75-b672-e695b3319071", + "type": "text/javascript", + "exec": [ + "pm.test(\"ObjectInformatieObject ophalen uit drc na Zaak verwijdering geeft 404\", function() {", + " pm.response.to.have.status(404); ", + "});" + ], + "_lastExecutionId": "f28bb4de-4eb1-48ca-a86c-e75828719804" + } + } + ] + }, + "request": { + "url": { + "protocol": "http", + "port": "8080", + "path": [ + "index.php", + "apps", + "procest", + "api", + "zgw", + "documenten", + "v1", + "objectinformatieobjecten", + "004229bb-b4e5-4c17-8b55-093e4311440f" + ], + "host": [ + "localhost" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Accept-Crs", + "value": "EPSG:4326" + }, + { + "key": "Authorization", + "value": "Bearer eyJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJwcm9jZXN0LWFkbWluIiwiY2xpZW50X2lkIjoicHJvY2VzdC1hZG1pbiIsImlhdCI6IjE3NzMxNDUyMjIiLCJ1c2VyX2lkIjoicHJvY2VzdC1hZG1pbiIsInVzZXJfcmVwcmVzZW50YXRpb24iOiIifQ.K4aepJYeJLEiUGoxE2PWSluDfou9S7VSGRwEJ37JpoA", + "system": true + }, + { + "key": "User-Agent", + "value": "PostmanRuntime/7.39.1", + "system": true + }, + { + "key": "Accept", + "value": "*/*", + "system": true + }, + { + "key": "Cache-Control", + "value": "no-cache", + "system": true + }, + { + "key": "Postman-Token", + "value": "752712ca-0eeb-428a-8630-42aaf79ad99c", + "system": true + }, + { + "key": "Host", + "value": "localhost:8080", + "system": true + }, + { + "key": "Accept-Encoding", + "value": "gzip, deflate, br", + "system": true + }, + { + "key": "Connection", + "value": "keep-alive", + "system": true + }, + { + "key": "Cookie", + "value": "ocvp3112b4wg=656d17800c5182f70644aec113e88eda; oc_sessionPassphrase=LBNdKxRzA0iqoULIruNxDDh2BK3O%2BrCIU8aUmiUcOFvy5Xw1YfjwQNlmBW2IkGwJYtxXh9%2BwDN6vYuGNX07tXzkBtjQJUWTGdzf8AIOUIVxVx5DfyWAQZ7nmYmQv6XSE; nc_sameSiteCookielax=true; nc_sameSiteCookiestrict=true", + "system": true + } + ], + "method": "GET", + "auth": { + "type": "jwt", + "jwt": [ + { + "type": "string", + "value": "{\r\n \"iss\": \"procest-admin\",\r\n \"client_id\": \"procest-admin\",\r\n \"iat\": \"1773145222\",\r\n \"user_id\": \"procest-admin\",\r\n \"user_representation\": \"\"\r\n}", + "key": "payload" + }, + { + "type": "string", + "value": "procest-admin-secret-key-for-testing", + "key": "secret" + }, + { + "type": "string", + "value": "HS256", + "key": "algorithm" + }, + { + "type": "boolean", + "value": false, + "key": "isSecretBase64Encoded" + }, + { + "type": "string", + "value": "header", + "key": "addTokenTo" + }, + { + "type": "string", + "value": "Bearer", + "key": "headerPrefix" + }, + { + "type": "string", + "value": "token", + "key": "queryParamKey" + }, + { + "type": "string", + "value": "{}", + "key": "header" + } + ] + } + }, + "response": { + "id": "75024b85-9f89-4441-a606-1c54694a4635", + "status": "Not Found", + "code": 404, + "header": [ + { + "key": "Date", + "value": "Tue, 10 Mar 2026 12:20:22 GMT" + }, + { + "key": "Server", + "value": "Apache/2.4.66 (Debian)" + }, + { + "key": "X-Content-Type-Options", + "value": "nosniff" + }, + { + "key": "X-Frame-Options", + "value": "SAMEORIGIN" + }, + { + "key": "X-Permitted-Cross-Domain-Policies", + "value": "none" + }, + { + "key": "X-Robots-Tag", + "value": "noindex, nofollow" + }, + { + "key": "Referrer-Policy", + "value": "no-referrer" + }, + { + "key": "X-Powered-By", + "value": "PHP/8.3.30" + }, + { + "key": "Content-Security-Policy", + "value": "default-src 'none';base-uri 'none';manifest-src 'self';frame-ancestors 'none'" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=656d17800c5182f70644aec113e88eda; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "X-Request-Id", + "value": "i7hulj2rVnfsS2jzMdPL" + }, + { + "key": "Cache-Control", + "value": "no-cache, no-store, must-revalidate" + }, + { + "key": "Feature-Policy", + "value": "autoplay 'none';camera 'none';fullscreen 'none';geolocation 'none';microphone 'none';payment 'none'" + }, + { + "key": "X-User-Id", + "value": "admin" + }, + { + "key": "Content-Length", + "value": "22" + }, + { + "key": "Keep-Alive", + "value": "timeout=5, max=71" + }, + { + "key": "Connection", + "value": "Keep-Alive" + }, + { + "key": "Content-Type", + "value": "application/json; charset=utf-8" + } + ], + "stream": { + "type": "Buffer", + "data": [ + 123, + 34, + 100, + 101, + 116, + 97, + 105, + 108, + 34, + 58, + 34, + 78, + 111, + 116, + 32, + 102, + 111, + 117, + 110, + 100, + 34, + 125 + ] + }, + "cookie": [], + "responseTime": 85, + "responseSize": 22 + }, + "id": "bd0c24c7-e8d9-4665-8da2-68549285d111", + "assertions": [ + { + "assertion": "ObjectInformatieObject ophalen uit drc na Zaak verwijdering geeft 404", + "skipped": false + } + ] + }, + { + "cursor": { + "ref": "a7cbd819-e823-4eaf-ab5f-f55fa04c0162", + "length": 313, + "cycles": 1, + "position": 311, + "iteration": 0, + "httpRequestId": "d358d005-162b-4d9c-a825-a168af876a46" + }, + "item": { + "id": "030d8eb0-a8a0-4cca-86b3-46f49f85919f", + "name": "(zrc-023i) ZaakInformatieObject verdwijnt uit zrc na Zaak verwijdering", + "request": { + "url": { + "host": [ + "{{created_zaakinformatieobject_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Accept-Crs", + "value": "EPSG:4326" + } + ], + "method": "GET" + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "879c7c7e-65af-49b0-9b74-3c68c32958b1", + "type": "text/javascript", + "exec": [ + "pm.test(\"ZaakInformatieObject ophalen uit zrc na Zaak verwijdering geeft 404\", function() {", + " pm.response.to.have.status(404); ", + "});" + ], + "_lastExecutionId": "ecada1a9-0561-486d-a6d6-ca700d8daa5b" + } + } + ] + }, + "request": { + "url": { + "protocol": "http", + "port": "8080", + "path": [ + "index.php", + "apps", + "procest", + "api", + "zgw", + "zaken", + "v1", + "zaakinformatieobjecten", + "afe9d8cf-2452-44b6-9eae-fd586fb748b2" + ], + "host": [ + "localhost" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Accept-Crs", + "value": "EPSG:4326" + }, + { + "key": "Authorization", + "value": "Bearer eyJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJwcm9jZXN0LWFkbWluIiwiY2xpZW50X2lkIjoicHJvY2VzdC1hZG1pbiIsImlhdCI6IjE3NzMxNDUyMjIiLCJ1c2VyX2lkIjoicHJvY2VzdC1hZG1pbiIsInVzZXJfcmVwcmVzZW50YXRpb24iOiIifQ.K4aepJYeJLEiUGoxE2PWSluDfou9S7VSGRwEJ37JpoA", + "system": true + }, + { + "key": "User-Agent", + "value": "PostmanRuntime/7.39.1", + "system": true + }, + { + "key": "Accept", + "value": "*/*", + "system": true + }, + { + "key": "Cache-Control", + "value": "no-cache", + "system": true + }, + { + "key": "Postman-Token", + "value": "0e74f211-0cd8-45f4-a607-e9b7f73f9cf0", + "system": true + }, + { + "key": "Host", + "value": "localhost:8080", + "system": true + }, + { + "key": "Accept-Encoding", + "value": "gzip, deflate, br", + "system": true + }, + { + "key": "Connection", + "value": "keep-alive", + "system": true + }, + { + "key": "Cookie", + "value": "ocvp3112b4wg=656d17800c5182f70644aec113e88eda; oc_sessionPassphrase=LBNdKxRzA0iqoULIruNxDDh2BK3O%2BrCIU8aUmiUcOFvy5Xw1YfjwQNlmBW2IkGwJYtxXh9%2BwDN6vYuGNX07tXzkBtjQJUWTGdzf8AIOUIVxVx5DfyWAQZ7nmYmQv6XSE; nc_sameSiteCookielax=true; nc_sameSiteCookiestrict=true", + "system": true + } + ], + "method": "GET", + "auth": { + "type": "jwt", + "jwt": [ + { + "type": "string", + "value": "{\r\n \"iss\": \"procest-admin\",\r\n \"client_id\": \"procest-admin\",\r\n \"iat\": \"1773145222\",\r\n \"user_id\": \"procest-admin\",\r\n \"user_representation\": \"\"\r\n}", + "key": "payload" + }, + { + "type": "string", + "value": "procest-admin-secret-key-for-testing", + "key": "secret" + }, + { + "type": "string", + "value": "HS256", + "key": "algorithm" + }, + { + "type": "boolean", + "value": false, + "key": "isSecretBase64Encoded" + }, + { + "type": "string", + "value": "header", + "key": "addTokenTo" + }, + { + "type": "string", + "value": "Bearer", + "key": "headerPrefix" + }, + { + "type": "string", + "value": "token", + "key": "queryParamKey" + }, + { + "type": "string", + "value": "{}", + "key": "header" + } + ] + } + }, + "response": { + "id": "0772284f-ed7a-40cc-b0ab-7d22f3e432e7", + "status": "Not Found", + "code": 404, + "header": [ + { + "key": "Date", + "value": "Tue, 10 Mar 2026 12:20:22 GMT" + }, + { + "key": "Server", + "value": "Apache/2.4.66 (Debian)" + }, + { + "key": "X-Content-Type-Options", + "value": "nosniff" + }, + { + "key": "X-Frame-Options", + "value": "SAMEORIGIN" + }, + { + "key": "X-Permitted-Cross-Domain-Policies", + "value": "none" + }, + { + "key": "X-Robots-Tag", + "value": "noindex, nofollow" + }, + { + "key": "Referrer-Policy", + "value": "no-referrer" + }, + { + "key": "X-Powered-By", + "value": "PHP/8.3.30" + }, + { + "key": "Content-Security-Policy", + "value": "default-src 'none';base-uri 'none';manifest-src 'self';frame-ancestors 'none'" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=656d17800c5182f70644aec113e88eda; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=656d17800c5182f70644aec113e88eda; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=656d17800c5182f70644aec113e88eda; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=656d17800c5182f70644aec113e88eda; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=ceaa6d1f2babd1bf4cdbedc5b0608daf; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=ceaa6d1f2babd1bf4cdbedc5b0608daf; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "X-Request-Id", + "value": "rk8ckVUZ0inEtAlG7ZfQ" + }, + { + "key": "Cache-Control", + "value": "no-cache, no-store, must-revalidate" + }, + { + "key": "Feature-Policy", + "value": "autoplay 'none';camera 'none';fullscreen 'none';geolocation 'none';microphone 'none';payment 'none'" + }, + { + "key": "Content-Length", + "value": "22" + }, + { + "key": "Keep-Alive", + "value": "timeout=5, max=70" + }, + { + "key": "Connection", + "value": "Keep-Alive" + }, + { + "key": "Content-Type", + "value": "application/json; charset=utf-8" + } + ], + "stream": { + "type": "Buffer", + "data": [ + 123, + 34, + 100, + 101, + 116, + 97, + 105, + 108, + 34, + 58, + 34, + 78, + 111, + 116, + 32, + 102, + 111, + 117, + 110, + 100, + 34, + 125 + ] + }, + "cookie": [], + "responseTime": 102, + "responseSize": 22 + }, + "id": "030d8eb0-a8a0-4cca-86b3-46f49f85919f", + "assertions": [ + { + "assertion": "ZaakInformatieObject ophalen uit zrc na Zaak verwijdering geeft 404", + "skipped": false + } + ] + }, + { + "cursor": { + "ref": "b0e6557b-6b7d-4894-a171-aaa01c00b9d7", + "length": 313, + "cycles": 1, + "position": 312, + "iteration": 0, + "httpRequestId": "68ec8a1b-a204-486e-a162-4c7823f5c7bf" + }, + "item": { + "id": "67772a60-cb02-4e95-b32e-e3ee74cf9a30", + "name": "(zrc-023j) Klantcontact verdwijnt uit zrc na Zaak verwijdering", + "request": { + "url": { + "host": [ + "{{klantcontact_url}}" + ], + "query": [], + "variable": [] + }, + "method": "GET" + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "a765e7cf-f9c4-4f80-b8e2-cbfdb32bcf6a", + "type": "text/javascript", + "exec": [ + "pm.test(\"Klantcontact ophalen uit zrc na Zaak verwijdering geeft 404\", function() {", + " pm.response.to.have.status(404); ", + "});" + ], + "_lastExecutionId": "aab0b00b-e982-44e8-8dbc-3d2e37c256e1" + } + } + ] + }, + "request": { + "url": { + "protocol": "http", + "port": "8080", + "path": [ + "index.php", + "apps", + "procest", + "api", + "zgw", + "zaken", + "v1", + "klantcontacten", + "6399630d-d97b-4f7e-a28a-c949f75198e7" + ], + "host": [ + "localhost" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Authorization", + "value": "Bearer eyJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJwcm9jZXN0LWFkbWluIiwiY2xpZW50X2lkIjoicHJvY2VzdC1hZG1pbiIsImlhdCI6IjE3NzMxNDUyMjIiLCJ1c2VyX2lkIjoicHJvY2VzdC1hZG1pbiIsInVzZXJfcmVwcmVzZW50YXRpb24iOiIifQ.K4aepJYeJLEiUGoxE2PWSluDfou9S7VSGRwEJ37JpoA", + "system": true + }, + { + "key": "User-Agent", + "value": "PostmanRuntime/7.39.1", + "system": true + }, + { + "key": "Accept", + "value": "*/*", + "system": true + }, + { + "key": "Cache-Control", + "value": "no-cache", + "system": true + }, + { + "key": "Postman-Token", + "value": "d30d8334-8a19-4d0e-9c19-b641fe1fb108", + "system": true + }, + { + "key": "Host", + "value": "localhost:8080", + "system": true + }, + { + "key": "Accept-Encoding", + "value": "gzip, deflate, br", + "system": true + }, + { + "key": "Connection", + "value": "keep-alive", + "system": true + }, + { + "key": "Cookie", + "value": "ocvp3112b4wg=ceaa6d1f2babd1bf4cdbedc5b0608daf; oc_sessionPassphrase=LBNdKxRzA0iqoULIruNxDDh2BK3O%2BrCIU8aUmiUcOFvy5Xw1YfjwQNlmBW2IkGwJYtxXh9%2BwDN6vYuGNX07tXzkBtjQJUWTGdzf8AIOUIVxVx5DfyWAQZ7nmYmQv6XSE; nc_sameSiteCookielax=true; nc_sameSiteCookiestrict=true", + "system": true + } + ], + "method": "GET", + "auth": { + "type": "jwt", + "jwt": [ + { + "type": "string", + "value": "{\r\n \"iss\": \"procest-admin\",\r\n \"client_id\": \"procest-admin\",\r\n \"iat\": \"1773145222\",\r\n \"user_id\": \"procest-admin\",\r\n \"user_representation\": \"\"\r\n}", + "key": "payload" + }, + { + "type": "string", + "value": "procest-admin-secret-key-for-testing", + "key": "secret" + }, + { + "type": "string", + "value": "HS256", + "key": "algorithm" + }, + { + "type": "boolean", + "value": false, + "key": "isSecretBase64Encoded" + }, + { + "type": "string", + "value": "header", + "key": "addTokenTo" + }, + { + "type": "string", + "value": "Bearer", + "key": "headerPrefix" + }, + { + "type": "string", + "value": "token", + "key": "queryParamKey" + }, + { + "type": "string", + "value": "{}", + "key": "header" + } + ] + } + }, + "response": { + "id": "27e44361-1709-4780-8458-75d8c90c57e9", + "status": "Not Found", + "code": 404, + "header": [ + { + "key": "Date", + "value": "Tue, 10 Mar 2026 12:20:22 GMT" + }, + { + "key": "Server", + "value": "Apache/2.4.66 (Debian)" + }, + { + "key": "X-Content-Type-Options", + "value": "nosniff" + }, + { + "key": "X-Frame-Options", + "value": "SAMEORIGIN" + }, + { + "key": "X-Permitted-Cross-Domain-Policies", + "value": "none" + }, + { + "key": "X-Robots-Tag", + "value": "noindex, nofollow" + }, + { + "key": "Referrer-Policy", + "value": "no-referrer" + }, + { + "key": "X-Powered-By", + "value": "PHP/8.3.30" + }, + { + "key": "Content-Security-Policy", + "value": "default-src 'none';base-uri 'none';manifest-src 'self';frame-ancestors 'none'" + }, + { + "key": "Set-Cookie", + "value": "ocvp3112b4wg=ceaa6d1f2babd1bf4cdbedc5b0608daf; path=/; HttpOnly; SameSite=Lax" + }, + { + "key": "X-Request-Id", + "value": "VMLFjWI8Tzp0ylleQL51" + }, + { + "key": "Cache-Control", + "value": "no-cache, no-store, must-revalidate" + }, + { + "key": "Feature-Policy", + "value": "autoplay 'none';camera 'none';fullscreen 'none';geolocation 'none';microphone 'none';payment 'none'" + }, + { + "key": "Content-Length", + "value": "22" + }, + { + "key": "Keep-Alive", + "value": "timeout=5, max=69" + }, + { + "key": "Connection", + "value": "Keep-Alive" + }, + { + "key": "Content-Type", + "value": "application/json; charset=utf-8" + } + ], + "stream": { + "type": "Buffer", + "data": [ + 123, + 34, + 100, + 101, + 116, + 97, + 105, + 108, + 34, + 58, + 34, + 78, + 111, + 116, + 32, + 102, + 111, + 117, + 110, + 100, + 34, + 125 + ] + }, + "cookie": [], + "responseTime": 85, + "responseSize": 22 + }, + "id": "67772a60-cb02-4e95-b32e-e3ee74cf9a30", + "assertions": [ + { + "assertion": "Klantcontact ophalen uit zrc na Zaak verwijdering geeft 404", + "skipped": false + } + ] + } + ], + "transfers": { + "responseTotal": 161223 + }, + "failures": [ + { + "error": { + "name": "AssertionError", + "index": 0, + "test": "Zaak aanmaken met bestaande combinatie bronorganisatie en identificatie geeft 400", + "message": "expected response to have status code 400 but got 201", + "stack": "AssertionError: expected response to have status code 400 but got 201\n at Object.eval sandbox-script.js:1:29)", + "checksum": "a675f7027d2553c33fe768792db766c0", + "id": "8a0324fa-bea5-45a2-96d8-30589f6d3dd9", + "timestamp": 1773145146443, + "stacktrace": [ + { + "fileName": "sandbox-script.js", + "lineNumber": 1, + "functionName": "Object.eval", + "typeName": "Object", + "methodName": "eval", + "columnNumber": 29, + "native": false + } + ] + }, + "at": "assertion:0 in test-script", + "source": { + "id": "0663f76a-3804-490d-b26f-37366529844f", + "name": "(zrc-002a) Zaak aanmaken met bestaande combinatie identificatie en bronorganisatie is onmogelijk", + "request": { + "url": { + "path": [ + "zaken" + ], + "host": [ + "{{zrc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Accept-Crs", + "value": "EPSG:4326" + }, + { + "key": "Content-Crs", + "value": "EPSG:4326" + }, + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\r\n \"bronorganisatie\": \"000000000\",\r\n \"identificatie\": \"{{zaakidentificatie}}\",\r\n \"omschrijving\": \"string\",\r\n \"toelichting\": \"string\",\r\n \"registratiedatum\": \"2019-04-09\",\r\n \"verantwoordelijkeOrganisatie\": \"000000000\",\r\n \"zaaktype\": \"{{zaaktype_url}}\",\r\n \"startdatum\": \"2019-04-09\",\r\n \"einddatumGepland\": \"2019-04-20\",\r\n \"uiterlijkeEinddatumAfdoening\": \"2019-04-09\",\r\n \"publicatiedatum\": \"2019-04-09\",\r\n \"vertrouwelijkheidaanduiding\": \"openbaar\",\r\n \"betalingsindicatie\": \"geheel\",\r\n \"laatsteBetaalDatum\": \"2019-01-01\",\r\n \"zaakgeometrie\": {\r\n \"type\": \"Point\",\r\n \"coordinates\": [\r\n 53,\r\n 5\r\n ]\r\n },\r\n \"opschorting\": {\r\n \"indicatie\": true,\r\n \"reden\": \"string\"\r\n },\r\n \"selectielijstklasse\": \"{{selectielijstklasse_url}}\",\r\n \"archiefstatus\": \"nog_te_archiveren\",\r\n \"deelzaaktypen\" : [\"{{deelzaaktype_url}}\"]\r\n}" + } + }, + "response": [], + "event": [ + { + "listen": "prerequest", + "script": { + "id": "6af56eef-1c1f-4657-9453-aa290a5995a0", + "type": "text/javascript", + "packages": {}, + "exec": [ + "" + ], + "_lastExecutionId": "6549264d-b3a8-42c8-9994-885c054ee690" + } + }, + { + "listen": "test", + "script": { + "id": "f6a2024d-30fc-4b00-ae0c-cccb429fc801", + "type": "text/javascript", + "packages": {}, + "exec": [ + "pm.test(\"Zaak aanmaken met bestaande combinatie bronorganisatie en identificatie geeft 400\", function() {", + " pm.response.to.have.status(400);", + " ", + " var error = pm.response.json()[\"invalidParams\"][0];", + " pm.expect(error.name).to.be.equal(\"identificatie\");", + " pm.expect(error.code).to.be.equal(\"identificatie-niet-uniek\");", + "});", + "", + "// If the test failed and the Zaak was created, delete it", + "if(pm.response.code == 201) {", + " pm.environment.set(\"created_zaak_url\", pm.response.json().url);", + "", + "}" + ], + "_lastExecutionId": "7e60ac12-fe28-4249-8d42-76da16e13f46" + } + } + ] + }, + "parent": { + "id": "8569e799-6fd2-4586-8464-75c46009aa70", + "name": "zrc-002", + "item": [ + { + "id": "0663f76a-3804-490d-b26f-37366529844f", + "name": "(zrc-002a) Zaak aanmaken met bestaande combinatie identificatie en bronorganisatie is onmogelijk", + "request": { + "url": { + "path": [ + "zaken" + ], + "host": [ + "{{zrc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Accept-Crs", + "value": "EPSG:4326" + }, + { + "key": "Content-Crs", + "value": "EPSG:4326" + }, + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\r\n \"bronorganisatie\": \"000000000\",\r\n \"identificatie\": \"{{zaakidentificatie}}\",\r\n \"omschrijving\": \"string\",\r\n \"toelichting\": \"string\",\r\n \"registratiedatum\": \"2019-04-09\",\r\n \"verantwoordelijkeOrganisatie\": \"000000000\",\r\n \"zaaktype\": \"{{zaaktype_url}}\",\r\n \"startdatum\": \"2019-04-09\",\r\n \"einddatumGepland\": \"2019-04-20\",\r\n \"uiterlijkeEinddatumAfdoening\": \"2019-04-09\",\r\n \"publicatiedatum\": \"2019-04-09\",\r\n \"vertrouwelijkheidaanduiding\": \"openbaar\",\r\n \"betalingsindicatie\": \"geheel\",\r\n \"laatsteBetaalDatum\": \"2019-01-01\",\r\n \"zaakgeometrie\": {\r\n \"type\": \"Point\",\r\n \"coordinates\": [\r\n 53,\r\n 5\r\n ]\r\n },\r\n \"opschorting\": {\r\n \"indicatie\": true,\r\n \"reden\": \"string\"\r\n },\r\n \"selectielijstklasse\": \"{{selectielijstklasse_url}}\",\r\n \"archiefstatus\": \"nog_te_archiveren\",\r\n \"deelzaaktypen\" : [\"{{deelzaaktype_url}}\"]\r\n}" + } + }, + "response": [], + "event": [ + { + "listen": "prerequest", + "script": { + "id": "6af56eef-1c1f-4657-9453-aa290a5995a0", + "type": "text/javascript", + "packages": {}, + "exec": [ + "" + ], + "_lastExecutionId": "6549264d-b3a8-42c8-9994-885c054ee690" + } + }, + { + "listen": "test", + "script": { + "id": "f6a2024d-30fc-4b00-ae0c-cccb429fc801", + "type": "text/javascript", + "packages": {}, + "exec": [ + "pm.test(\"Zaak aanmaken met bestaande combinatie bronorganisatie en identificatie geeft 400\", function() {", + " pm.response.to.have.status(400);", + " ", + " var error = pm.response.json()[\"invalidParams\"][0];", + " pm.expect(error.name).to.be.equal(\"identificatie\");", + " pm.expect(error.code).to.be.equal(\"identificatie-niet-uniek\");", + "});", + "", + "// If the test failed and the Zaak was created, delete it", + "if(pm.response.code == 201) {", + " pm.environment.set(\"created_zaak_url\", pm.response.json().url);", + "", + "}" + ], + "_lastExecutionId": "7e60ac12-fe28-4249-8d42-76da16e13f46" + } + } + ] + }, + { + "id": "9c2eb4d9-143f-4283-8486-adb661de0142", + "name": "Create Zaak with unique identificatie and bronorganisatie", + "request": { + "description": { + "content": "Maakt een Zaak aan die gebruikt zal worden in de tests, deze zaak wordt na de tests weer verwijderd.\n\nDe body van deze Zaak zal ook als variabele opgeslagen worden en gebruikt worden (met kleine aanpassingen iedere keer) in de requests voor de validatie tests, om te voorkomen dat telkens hetzelfde body gekopieerd moet worden.", + "type": "text/plain" + }, + "url": { + "path": [ + "zaken" + ], + "host": [ + "{{zrc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Content-Crs", + "value": "EPSG:4326" + }, + { + "key": "Accept-Crs", + "value": "EPSG:4326" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\r\n \"bronorganisatie\": \"000000000\",\r\n \"omschrijving\": \"string\",\r\n \"toelichting\": \"string\",\r\n \"registratiedatum\": \"2019-04-09\",\r\n \"verantwoordelijkeOrganisatie\": \"000000000\",\r\n \"zaaktype\": \"{{zaaktype_url}}\",\r\n \"startdatum\": \"2019-04-09\",\r\n \"einddatumGepland\": \"2019-04-20\",\r\n \"uiterlijkeEinddatumAfdoening\": \"2019-04-09\",\r\n \"publicatiedatum\": \"2019-04-09\",\r\n \"vertrouwelijkheidaanduiding\": \"openbaar\",\r\n \"betalingsindicatie\": \"geheel\",\r\n \"laatsteBetaalDatum\": \"2019-01-01\",\r\n \"zaakgeometrie\": {\r\n \"type\": \"Point\",\r\n \"coordinates\": [\r\n 53,\r\n 5\r\n ]\r\n },\r\n \"opschorting\": {\r\n \"indicatie\": true,\r\n \"reden\": \"string\"\r\n },\r\n \"selectielijstklasse\": \"{{selectielijstklasse_url}}\",\r\n \"archiefstatus\": \"nog_te_archiveren\",\r\n \"deelzaaktypen\" : [\"{{deelzaaktype_url}}\"]\r\n}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "96a96107-1b70-45e8-bbf8-36d379b16bb6", + "type": "text/javascript", + "packages": {}, + "exec": [ + "pm.environment.set(\"created_zaak_url\", pm.response.json().url);" + ], + "_lastExecutionId": "30c3f79b-57bb-4807-aeda-4dd7968da3b3" + } + }, + { + "listen": "prerequest", + "script": { + "id": "ec3aa097-42cd-498e-ad17-81e5fd28fc4d", + "type": "text/javascript", + "packages": {}, + "exec": [], + "_lastExecutionId": "f9371a23-de71-49fb-ab75-a02c6f16d6ea" + } + } + ] + }, + { + "id": "194bf2c6-ee8b-4510-ba72-08f7ae2da89c", + "name": "(zrc-002b) Zaak bijwerken met bestaande combinatie identificatie en bronorganisatie is onmogelijk", + "request": { + "url": { + "host": [ + "{{created_zaak_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Accept-Crs", + "value": "EPSG:4326" + }, + { + "key": "Content-Crs", + "value": "EPSG:4326" + }, + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "PUT", + "body": { + "mode": "raw", + "raw": "{\r\n \"bronorganisatie\": \"000000000\",\r\n \"identificatie\": \"{{zaakidentificatie}}\",\r\n \"omschrijving\": \"string\",\r\n \"toelichting\": \"string\",\r\n \"registratiedatum\": \"2019-04-09\",\r\n \"verantwoordelijkeOrganisatie\": \"000000000\",\r\n \"zaaktype\": \"{{zaaktype_url}}\",\r\n \"startdatum\": \"2019-04-09\",\r\n \"einddatumGepland\": \"2019-04-20\",\r\n \"uiterlijkeEinddatumAfdoening\": \"2019-04-09\",\r\n \"publicatiedatum\": \"2019-04-09\",\r\n \"vertrouwelijkheidaanduiding\": \"openbaar\",\r\n \"betalingsindicatie\": \"geheel\",\r\n \"laatsteBetaalDatum\": \"2019-01-01\",\r\n \"zaakgeometrie\": {\r\n \"type\": \"Point\",\r\n \"coordinates\": [\r\n 53,\r\n 5\r\n ]\r\n },\r\n \"opschorting\": {\r\n \"indicatie\": true,\r\n \"reden\": \"string\"\r\n },\r\n \"selectielijstklasse\": \"{{selectielijstklasse_url}}\",\r\n \"archiefstatus\": \"nog_te_archiveren\",\r\n \"deelzaaktypen\" : [\"{{deelzaaktype_url}}\"]\r\n}" + } + }, + "response": [], + "event": [ + { + "listen": "prerequest", + "script": { + "id": "241f49b0-115f-45ee-8085-8175b389021c", + "type": "text/javascript", + "packages": {}, + "exec": [ + "" + ], + "_lastExecutionId": "75d00ee1-fc7f-4245-9cb8-b1e87442b920" + } + }, + { + "listen": "test", + "script": { + "id": "011796aa-9580-4715-a6eb-12225801be15", + "type": "text/javascript", + "packages": {}, + "exec": [ + "pm.test(\"Zaak aanmaken met bestaande combinatie bronorganisatie en identificatie geeft 400\", function() {", + " pm.response.to.have.status(400);", + " ", + " var error = pm.response.json()[\"invalidParams\"][0];", + " pm.expect(error.name).to.be.equal(\"identificatie\");", + " pm.expect(error.code).to.be.equal(\"wijzigen-niet-toegelaten\");", + "});" + ], + "_lastExecutionId": "a306fe1a-eb36-468c-b0ac-dff34982737d" + } + } + ] + }, + { + "id": "5de9a8b9-e6ac-4c31-954c-8e8894bb1567", + "name": "(zrc-002c) Zaak deels bijwerken met bestaande combinatie identificatie en bronorganisatie is onmogelijk", + "request": { + "url": { + "host": [ + "{{created_zaak_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Accept-Crs", + "value": "EPSG:4326" + }, + { + "key": "Content-Crs", + "value": "EPSG:4326" + }, + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "PATCH", + "body": { + "mode": "raw", + "raw": "{\n\t\"identificatie\": \"{{zaakidentificatie}}\",\n\t\"bronorganisatie\": \"000000000\"\n}" + } + }, + "response": [], + "event": [ + { + "listen": "prerequest", + "script": { + "id": "fb9f65f1-90c4-4b1f-a01a-6c07f8ee6e2b", + "type": "text/javascript", + "packages": {}, + "exec": [ + "" + ], + "_lastExecutionId": "0ec961e6-a69b-48b8-913f-70308c3e8c44" + } + }, + { + "listen": "test", + "script": { + "id": "dd119163-c14a-457c-a7f5-82715d89b69d", + "type": "text/javascript", + "packages": {}, + "exec": [ + "pm.test(\"Zaak aanmaken met bestaande combinatie bronorganisatie en identificatie geeft 400\", function() {", + " pm.response.to.have.status(400);", + " ", + " var error = pm.response.json()[\"invalidParams\"][0];", + " pm.expect(error.name).to.be.equal(\"identificatie\");", + " pm.expect(error.code).to.be.equal(\"wijzigen-niet-toegelaten\");", + "});", + "", + "" + ], + "_lastExecutionId": "df0c7f29-3a55-4f99-ba2d-592f1c4a13e4" + } + } + ] + }, + { + "id": "4bd4a012-706d-4f8f-9124-d9874ac5ba8f", + "name": "Retrieve Zaken for bronorganisatie", + "request": { + "url": { + "path": [ + "zaken" + ], + "host": [ + "{{zrc_url}}" + ], + "query": [ + { + "key": "bronorganisatie", + "value": "{{zaak_bronorganisatie}}" + } + ], + "variable": [] + }, + "header": [ + { + "key": "Accept-Crs", + "value": "EPSG:4326" + } + ], + "method": "GET" + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "e3591afc-5f8f-4a76-8cbb-b22f3f713431", + "type": "text/javascript", + "exec": [ + "pm.environment.set(\"zaken_for_bronorganisatie\", pm.response.json().results);" + ], + "_lastExecutionId": "c897cc0f-ea0e-44a8-962a-3c68d938069b" + } + } + ] + }, + { + "id": "07a372b4-a5ac-4fd5-9d75-c064e851ee98", + "name": "Genereer unieke identificatie voor Zaak onder bronorganisatie", + "request": { + "url": { + "path": [ + "zaken" + ], + "host": [ + "{{zrc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Accept-Crs", + "value": "EPSG:4326" + }, + { + "key": "Content-Crs", + "value": "EPSG:4326" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\r\n \"bronorganisatie\": \"000000000\",\r\n \"omschrijving\": \"string\",\r\n \"toelichting\": \"string\",\r\n \"registratiedatum\": \"2019-04-09\",\r\n \"verantwoordelijkeOrganisatie\": \"000000000\",\r\n \"zaaktype\": \"{{zaaktype_url}}\",\r\n \"startdatum\": \"2019-04-09\",\r\n \"einddatumGepland\": \"2019-04-20\",\r\n \"uiterlijkeEinddatumAfdoening\": \"2019-04-09\",\r\n \"publicatiedatum\": \"2019-04-09\",\r\n \"vertrouwelijkheidaanduiding\": \"openbaar\",\r\n \"betalingsindicatie\": \"geheel\",\r\n \"laatsteBetaalDatum\": \"2019-01-01\",\r\n \"zaakgeometrie\": {\r\n \"type\": \"Point\",\r\n \"coordinates\": [\r\n 53,\r\n 5\r\n ]\r\n },\r\n \"opschorting\": {\r\n \"indicatie\": true,\r\n \"reden\": \"string\"\r\n },\r\n \"selectielijstklasse\": \"{{selectielijstklasse_url}}\",\r\n \"archiefstatus\": \"nog_te_archiveren\",\r\n \"deelzaaktypen\" : [\"{{deelzaaktype_url}}\"]\r\n}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "9ca0e4e7-b089-41ea-b034-9b9f5d67d98d", + "type": "text/javascript", + "packages": {}, + "exec": [ + "if (pm.response.code==201){", + "", + " pm.environment.set(\"unieke_zaak_identificatie\", pm.response.json().identificatie);", + "}" + ], + "_lastExecutionId": "f561ed94-fffc-48cd-b849-b182b45a77b1" + } + }, + { + "listen": "prerequest", + "script": { + "id": "8a354cf0-1dae-4c7f-ac6b-d81a7e1b6ea1", + "type": "text/javascript", + "packages": {}, + "exec": [ + "" + ], + "_lastExecutionId": "c562c7a7-549f-49fc-a171-baa25491d9bb" + } + } + ] + }, + { + "id": "f40999a5-8402-45e8-842a-f99f6ac2df76", + "name": "(zrc-002d) is identificatie uniek", + "request": { + "url": { + "path": [ + "zaken" + ], + "host": [ + "{{zrc_url}}" + ], + "query": [ + { + "key": "identificatie", + "value": "{{unieke_zaak_identificatie}}" + } + ], + "variable": [] + }, + "header": [ + { + "key": "Accept-Crs", + "value": "EPSG:4326" + } + ], + "method": "GET" + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "4cae067d-da8b-4ea2-9c6b-544a37ad025f", + "type": "text/javascript", + "packages": {}, + "exec": [ + "pm.test(\"zrc-002d gegenereerde identificatie is uniek\", function() {\r", + " pm.expect(pm.response.json().count).to.be.equal(1);\r", + "})" + ], + "_lastExecutionId": "4487cf0c-f5bc-4a8f-b0f1-8e795f841722" + } + } + ] + } + ], + "event": [ + { + "listen": "prerequest", + "script": { + "id": "2ad9a5bc-6cbd-4761-9f3c-f61694816177", + "type": "text/javascript", + "exec": [ + "" + ], + "_lastExecutionId": "41fd840b-2ecf-4954-99d8-138007d0804e" + } + }, + { + "listen": "test", + "script": { + "id": "6534532d-6435-4671-8f3f-03674ba7f192", + "type": "text/javascript", + "exec": [ + "" + ], + "_lastExecutionId": "c25acc89-e12c-431f-a5a2-6dd33fff8963" + } + } + ] + }, + "cursor": { + "ref": "2e9d4feb-09a3-4335-aae9-1fcf3aba9e8a", + "length": 313, + "cycles": 1, + "position": 28, + "iteration": 0, + "httpRequestId": "e4bc9398-09e1-4899-be3a-7036c0b7822b", + "scriptId": "f6a2024d-30fc-4b00-ae0c-cccb429fc801", + "execution": "7e60ac12-fe28-4249-8d42-76da16e13f46" + } + }, + { + "error": { + "name": "AssertionError", + "index": 0, + "test": "zrc-006a 1 van de 2 zaken wordt geretourneerd", + "message": "expected 2 to equal 1", + "stack": "AssertionError: expected 2 to equal 1\n at Object.eval sandbox-script.js:1:64)", + "checksum": "69eb1230fc290df7988cedb3a95b8f4f", + "id": "11b493be-91d1-4a59-8fac-7a2ad74a7281", + "timestamp": 1773145155769, + "stacktrace": [ + { + "fileName": "sandbox-script.js", + "lineNumber": 1, + "functionName": "Object.eval", + "typeName": "Object", + "methodName": "eval", + "columnNumber": 64, + "native": false + } + ] + }, + "at": "assertion:0 in test-script", + "source": { + "id": "762e5a83-1b78-4f9a-a470-9c5bd0af667f", + "name": "(zrc-006a) Zaken lijst ontsluit zaken op basis van autorisaties van consumer", + "request": { + "url": { + "path": [ + "zaken" + ], + "host": [ + "{{zrc_url}}" + ], + "query": [ + { + "key": "zaaktype", + "value": "{{zaaktype_for_auth_url}}" + } + ], + "variable": [] + }, + "header": [ + { + "key": "Accept-Crs", + "value": "EPSG:4326" + } + ], + "method": "GET", + "auth": { + "type": "bearer", + "bearer": [ + { + "type": "string", + "value": "{{jwt-zrc-006}}", + "key": "token" + } + ] + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "facf13a2-eb27-45b3-ae8c-fc9ce51a42ee", + "type": "text/javascript", + "packages": {}, + "exec": [ + "pm.test(\"zrc-006a 1 van de 2 zaken wordt geretourneerd\", function () {", + "", + " pm.expect(pm.response.json().count).to.equal(1);", + "});" + ], + "_lastExecutionId": "21cc405a-893e-466a-8f28-d5c90ff8d399" + } + }, + { + "listen": "prerequest", + "script": { + "id": "abaf5622-c0bf-4039-bc00-5109b3424193", + "type": "text/javascript", + "packages": {}, + "exec": [], + "_lastExecutionId": "5e5e8c04-b3ab-4875-9ee3-8dbff4b3110c" + } + } + ] + }, + "parent": { + "id": "ca08abb9-f66e-42d8-8a8a-e51e99aa46eb", + "name": "zrc-006", + "item": [ + { + "id": "4f2b999c-7637-4d53-a9ec-c564d842a392", + "name": "set full token", + "request": { + "url": { + "path": [ + "catalogussen" + ], + "host": [ + "{{ztc_url}}" + ], + "query": [], + "variable": [] + }, + "method": "GET" + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "b17d98c8-d0bf-43d6-8d4d-8ddf1a07e6eb", + "type": "text/javascript", + "packages": {}, + "exec": [ + "pm.environment.set(\"jwt_token\", pm.environment.get(\"jwt_full\"));", + " var origId = pm.environment.get(\"_original_client_id\");", + " var origSecret = pm.environment.get(\"_original_secret\");", + " if (origId) { pm.environment.set(\"client_id\", origId); }", + " if (origSecret) { pm.environment.set(\"secret\", origSecret); }", + " pm.environment.set(\"secret\", pm.environment.get(\"secret\") || \"procest-admin-secret-key-for-testing\");" + ], + "_lastExecutionId": "88db0f06-83ad-4e78-a86b-366212f1fb53" + } + } + ] + }, + { + "id": "bf940bfe-9729-43a9-b0a7-12d78bd305a6", + "name": "Create ZT", + "request": { + "url": { + "path": [ + "zaaktypen" + ], + "host": [ + "{{ztc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\r\n\t\"identificatie\": \"{{random_identificatie-ztc-01}}\",\r\n \"omschrijving\": \"Melding Openbare Ruimte\",\r\n \"vertrouwelijkheidaanduiding\": \"openbaar\",\r\n \"doel\": \"test doel\",\r\n \"verantwoordelijke\":\"X\",\r\n \"aanleiding\": \"test aanleiding\",\r\n \"indicatieInternOfExtern\": \"extern\",\r\n \"handelingInitiator\": \"indienen\",\r\n \"onderwerp\": \"openbare ruimte\",\r\n \"handelingBehandelaar\": \"behandelen\",\r\n \"doorlooptijd\": \"P10D\",\r\n \"opschortingEnAanhoudingMogelijk\": false,\r\n \"verlengingMogelijk\": false,\r\n \"publicatieIndicatie\": false,\r\n \"productenOfDiensten\": [\r\n \"https://ref.tst.vng.cloud/standaard/\"\r\n ],\r\n \"selectielijstProcestype\": \"{{procestype_url}}\",\r\n \"referentieproces\": {\r\n \"naam\": \"test\",\r\n \"link\": \"\"\r\n },\r\n \"catalogus\": \"{{catalogus_url}}\",\r\n \"deelzaaktypen\": [],\r\n \"statustypen\": [],\r\n \"resultaattypen\": [],\r\n \"eigenschappen\": [],\r\n \"informatieobjecttypen\": [],\r\n \"besluittypen\": [],\r\n \"gerelateerdeZaaktypen\": [],\r\n \"beginGeldigheid\": \"2005-01-01\",\r\n \"eindeGeldigheid\": \"2012-01-01\",\r\n \"versiedatum\": \"2012-01-01\",\r\n \"concept\": true\r\n}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "18a57e83-76ae-42c8-b032-2eff95811135", + "type": "text/javascript", + "packages": {}, + "exec": [ + "if(pm.response.code == 201) {", + " pm.environment.set(\"zaaktype_for_auth_url\", pm.response.json().url);", + "}", + "", + "" + ], + "_lastExecutionId": "22ae9a64-be48-4d8e-a2d4-8b09a877e624" + } + }, + { + "listen": "prerequest", + "script": { + "id": "4036ae22-4587-47c7-91be-5c2c0003c5b7", + "type": "text/javascript", + "packages": {}, + "exec": [ + "var uuid = require('uuid');", + "var myUUID = uuid.v4(); ", + "pm.environment.set(\"random_identificatie-ztc-01\", myUUID);" + ], + "_lastExecutionId": "119e45a0-2c8d-4b6b-82ab-f5a694cc2d1c" + } + } + ] + }, + { + "id": "0a0f25ce-aabe-4fb5-882c-956ffbae4ae8", + "name": "Publish ZT", + "request": { + "url": { + "path": [ + "publish" + ], + "host": [ + "{{zaaktype_for_auth_url}}" + ], + "query": [], + "variable": [] + }, + "method": "POST" + }, + "response": [], + "event": [] + }, + { + "id": "72429566-51b9-4f21-bdff-27b58e0c3329", + "name": "Zaak openbaar", + "request": { + "url": { + "path": [ + "zaken" + ], + "host": [ + "{{zrc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Crs", + "value": "EPSG:4326" + }, + { + "key": "Accept-Crs", + "value": "EPSG:4326" + }, + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n \"bronorganisatie\": \"000000000\",\n \"omschrijving\": \"string\",\n \"toelichting\": \"string\",\n \"registratiedatum\": \"2019-04-09\",\n \"verantwoordelijkeOrganisatie\": \"000000000\",\n \"zaaktype\": \"{{zaaktype_for_auth_url}}\",\n \"startdatum\": \"2019-04-09\",\n \"einddatumGepland\": \"2019-04-20\",\n \"uiterlijkeEinddatumAfdoening\": \"2019-04-09\",\n \"publicatiedatum\": \"2019-04-09\",\n \"vertrouwelijkheidaanduiding\": \"openbaar\",\n \"betalingsindicatie\": \"geheel\",\n \"laatsteBetaalDatum\": \"2019-01-01\",\n \"zaakgeometrie\": {\n \"type\": \"Point\",\n \"coordinates\": [\n 53,\n 5\n ]\n },\n \"opschorting\": {\n \"indicatie\": true,\n \"reden\": \"string\"\n },\n \"selectielijstklasse\": \"{{selectielijstklasse_url}}\",\n \"archiefstatus\": \"nog_te_archiveren\",\n \"deelzaaktypen\" : [\"{{deelzaaktype_url}}\"]\n}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "c130145f-577c-484d-8f7b-ba3683a97fe2", + "type": "text/javascript", + "packages": {}, + "exec": [ + "if(pm.response.code == 201) {", + " var zaak = pm.response.json();", + " pm.environment.set(\"openbare_zaak_url\", pm.response.json().url);", + "}" + ], + "_lastExecutionId": "17d7d44a-99f4-42ba-b23e-0d4330394298" + } + }, + { + "listen": "prerequest", + "script": { + "id": "23efe648-b696-4dc4-aa6b-37ed710bc2f5", + "type": "text/javascript", + "packages": {}, + "exec": [ + "" + ], + "_lastExecutionId": "66d6e4b7-4e24-43f5-8240-12086ddbfb8b" + } + } + ] + }, + { + "id": "b9060729-3d7b-4d80-979f-7322be84c103", + "name": "Zaak geheim", + "request": { + "url": { + "path": [ + "zaken" + ], + "host": [ + "{{zrc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Crs", + "value": "EPSG:4326" + }, + { + "key": "Accept-Crs", + "value": "EPSG:4326" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\r\n \"bronorganisatie\": \"000000000\",\r\n \"omschrijving\": \"string\",\r\n \"toelichting\": \"string\",\r\n \"registratiedatum\": \"2019-04-09\",\r\n \"verantwoordelijkeOrganisatie\": \"000000000\",\r\n \"zaaktype\": \"{{zaaktype_for_auth_url}}\",\r\n \"startdatum\": \"2019-04-09\",\r\n \"einddatumGepland\": \"2019-04-20\",\r\n \"uiterlijkeEinddatumAfdoening\": \"2019-04-09\",\r\n \"publicatiedatum\": \"2019-04-09\",\r\n \"vertrouwelijkheidaanduiding\": \"geheim\",\r\n \"betalingsindicatie\": \"geheel\",\r\n \"laatsteBetaalDatum\": \"2019-01-01\",\r\n \"zaakgeometrie\": {\r\n \"type\": \"Point\",\r\n \"coordinates\": [\r\n 53,\r\n 5\r\n ]\r\n },\r\n \"opschorting\": {\r\n \"indicatie\": true,\r\n \"reden\": \"string\"\r\n },\r\n \"selectielijstklasse\": \"{{selectielijstklasse_url}}\",\r\n \"archiefstatus\": \"nog_te_archiveren\",\r\n \"deelzaaktypen\" : [\"{{deelzaaktype_url}}\"]\r\n}", + "options": { + "raw": { + "language": "json" + } + } + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "777e04b0-8d65-4eaf-8caf-36300f8ebf59", + "type": "text/javascript", + "packages": {}, + "exec": [ + "if(pm.response.code == 201) {\r", + " var zaak = pm.response.json();\r", + " pm.environment.set(\"geheime_zaak_url\", pm.response.json().url);\r", + "}" + ], + "_lastExecutionId": "74febb73-de61-4b45-952d-cb33de857d9a" + } + } + ] + }, + { + "id": "ae09b0d3-8f17-478f-a72f-61a419ee6948", + "name": "set restricted token", + "request": { + "url": { + "path": [ + "catalogussen" + ], + "host": [ + "{{ztc_url}}" + ], + "query": [], + "variable": [] + }, + "method": "GET" + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "90a8142b-ab75-47d1-8d00-a6732aa4af5b", + "type": "text/javascript", + "packages": {}, + "exec": [ + "" + ], + "_lastExecutionId": "f9cd22d0-4d11-472f-8597-777e37c7db28" + } + }, + { + "listen": "prerequest", + "script": { + "id": "c61b57d9-e431-4b75-83f6-4f16f50af4ce", + "type": "text/javascript", + "packages": {}, + "exec": [ + " pm.environment.set(\"jwt_token\", pm.environment.get(\"jwt-limited\"));\r", + " pm.environment.set(\"_original_client_id\", pm.environment.get(\"client_id\"));", + " pm.environment.set(\"_original_secret\", pm.environment.get(\"secret\"));", + " pm.environment.set(\"client_id\", pm.environment.get(\"client_id_limited\"));", + " pm.environment.set(\"secret\", pm.environment.get(\"secret_limited\"));", + " pm.environment.set(\"client_id\", pm.environment.get(\"client_id_limited\"));", + " pm.environment.set(\"secret\", pm.environment.get(\"secret_limited\"));", + " " + ], + "_lastExecutionId": "77b84a21-6cd9-4133-812b-93869cef6b89" + } + } + ] + }, + { + "id": "762e5a83-1b78-4f9a-a470-9c5bd0af667f", + "name": "(zrc-006a) Zaken lijst ontsluit zaken op basis van autorisaties van consumer", + "request": { + "url": { + "path": [ + "zaken" + ], + "host": [ + "{{zrc_url}}" + ], + "query": [ + { + "key": "zaaktype", + "value": "{{zaaktype_for_auth_url}}" + } + ], + "variable": [] + }, + "header": [ + { + "key": "Accept-Crs", + "value": "EPSG:4326" + } + ], + "method": "GET", + "auth": { + "type": "bearer", + "bearer": [ + { + "type": "string", + "value": "{{jwt-zrc-006}}", + "key": "token" + } + ] + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "facf13a2-eb27-45b3-ae8c-fc9ce51a42ee", + "type": "text/javascript", + "packages": {}, + "exec": [ + "pm.test(\"zrc-006a 1 van de 2 zaken wordt geretourneerd\", function () {", + "", + " pm.expect(pm.response.json().count).to.equal(1);", + "});" + ], + "_lastExecutionId": "21cc405a-893e-466a-8f28-d5c90ff8d399" + } + }, + { + "listen": "prerequest", + "script": { + "id": "abaf5622-c0bf-4039-bc00-5109b3424193", + "type": "text/javascript", + "packages": {}, + "exec": [], + "_lastExecutionId": "5e5e8c04-b3ab-4875-9ee3-8dbff4b3110c" + } + } + ] + }, + { + "id": "601fc521-b732-4d4c-805b-237b51c7dfc6", + "name": "(zrc-006b) Zaken lezen zonder verplichte scope in autorisatie niet toegestaan", + "request": { + "url": { + "host": [ + "{{geheime_zaak_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Accept-Crs", + "value": "EPSG:4326" + }, + { + "key": "Content-Crs", + "value": "EPSG:4326" + } + ], + "method": "GET", + "body": { + "mode": "raw", + "raw": "" + }, + "auth": { + "type": "bearer", + "bearer": [ + { + "type": "string", + "value": "{{jwt-zrc-006}}", + "key": "token" + } + ] + } + }, + "response": [], + "event": [ + { + "listen": "prerequest", + "script": { + "id": "0b691897-6ed7-41e2-a472-cc5f0c113393", + "type": "text/javascript", + "packages": {}, + "exec": [ + "" + ], + "_lastExecutionId": "50dcea51-9e85-4597-add4-b2743695bcf3" + } + }, + { + "listen": "test", + "script": { + "id": "083dedaa-449b-4dee-95fd-cdc642303ecf", + "type": "text/javascript", + "packages": {}, + "exec": [ + "pm.test(\"Zaken lezen zonder applicatie met zaken.lezen in autorisatie scopes geeft 403\", function() {", + " pm.response.to.have.status(403);", + " pm.expect(pm.response.json().code).to.be.equal(\"permission_denied\");", + "});" + ], + "_lastExecutionId": "a714bb14-ffb3-42c3-aab5-15349fec8204" + } + } + ], + "protocolProfileBehavior": { + "disableBodyPruning": true + } + }, + { + "id": "734cc560-30be-4834-9c7d-20ae6db4fdfc", + "name": "(zrc-006c) Zaak aanmaken zonder verplichte scope in autorisatie niet toegestaan", + "request": { + "url": { + "path": [ + "zaken" + ], + "host": [ + "{{zrc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Accept-Crs", + "value": "EPSG:4326" + }, + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Content-Crs", + "value": "EPSG:4326" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\r\n \"url\": \"https://zaken.spt-rx-services.nl/api/v1/zaken/cba40feb-2b38-4490-b12d-84a39e8df361\",\r\n \"uuid\": \"cba40feb-2b38-4490-b12d-84a39e8df361\",\r\n \"identificatie\": \"Z2024-00000038\",\r\n \"bronorganisatie\": \"000000000\",\r\n \"omschrijving\": \"string\",\r\n \"toelichting\": \"string\",\r\n \"zaaktype\": \"https://catalogi.spt-rx-services.nl/api/v1/zaaktypen/be24fd63-1663-46dc-8ea9-9c153642d4f9\",\r\n \"registratiedatum\": \"2019-04-09\",\r\n \"verantwoordelijkeOrganisatie\": \"000000000\",\r\n \"startdatum\": \"2019-04-09\",\r\n \"einddatum\": null,\r\n \"einddatumGepland\": \"2019-04-20\",\r\n \"uiterlijkeEinddatumAfdoening\": \"2019-04-09\",\r\n \"publicatiedatum\": \"2019-04-09\",\r\n \"communicatiekanaal\": \"\",\r\n \"productenOfDiensten\": [],\r\n \"vertrouwelijkheidaanduiding\": \"geheim\",\r\n \"betalingsindicatie\": \"geheel\",\r\n \"betalingsindicatieWeergave\": null,\r\n \"laatsteBetaaldatum\": \"2019-01-01T00:00:00Z\",\r\n \"zaakgeometrie\": {\r\n \"type\": \"Point\",\r\n \"coordinates\": [\r\n 53.0,\r\n 5.0\r\n ]\r\n },\r\n \"verlenging\": null,\r\n \"opschorting\": {\r\n \"indicatie\": true,\r\n \"reden\": \"string\"\r\n },\r\n \"selectielijstklasse\": \"https://referentielijsten.roxit.nl/api/v1/resultaten/0fe71ce3-b1e1-48eb-9070-be2756fc71b5\",\r\n \"hoofdzaak\": null,\r\n \"deelzaken\": [],\r\n \"relevanteAndereZaken\": [],\r\n \"eigenschappen\": [],\r\n \"rollen\": [],\r\n \"status\": null,\r\n \"zaakinformatieobjecten\": [],\r\n \"zaakobjecten\": [],\r\n \"resultaat\": null,\r\n \"kenmerken\": [],\r\n \"archiefnominatie\": null,\r\n \"archiefstatus\": \"nog_te_archiveren\",\r\n \"archiefactiedatum\": null,\r\n \"opdrachtgevendeOrganisatie\": null,\r\n \"processobjectaard\": null,\r\n \"startdatumBewaartermijn\": null,\r\n \"processobject\": null\r\n}" + }, + "auth": { + "type": "bearer", + "bearer": [ + { + "type": "string", + "value": "{{jwt-zrc-006}}", + "key": "token" + } + ] + } + }, + "response": [], + "event": [ + { + "listen": "prerequest", + "script": { + "id": "462bbd32-e44e-426f-a719-5fa45702bc97", + "type": "text/javascript", + "packages": {}, + "exec": [ + "" + ], + "_lastExecutionId": "8a324196-56ba-43c1-85af-5c6473176745" + } + }, + { + "listen": "test", + "script": { + "id": "15427432-3cea-4842-a68e-f5185416c88b", + "type": "text/javascript", + "packages": {}, + "exec": [ + "pm.test(\"Zaak aanmaken met applicatie zonder zaken.aanmaken in autorisatie scopes niet toegestaan\", function() {", + " pm.response.to.have.status(403);", + " pm.expect(pm.response.json().code).to.be.equal(\"permission_denied\");", + "});", + "", + "var next_requests = [];", + "", + "if(pm.response.code == 201) {", + " pm.environment.set(\"created_zaak_url\", pm.response.json().url);", + "", + "}" + ], + "_lastExecutionId": "b4ff33ce-1f17-4b3f-93a8-4e797a46a3d5" + } + } + ] + } + ], + "event": [ + { + "listen": "prerequest", + "script": { + "id": "7844a268-d490-47f1-8ece-e0b13c56db92", + "type": "text/javascript", + "exec": [ + "" + ], + "_lastExecutionId": "72064087-1ac6-41d2-b584-fd902c4edff1" + } + }, + { + "listen": "test", + "script": { + "id": "0ec57b65-8edd-48a7-8ac6-78f956695058", + "type": "text/javascript", + "exec": [ + "" + ], + "_lastExecutionId": "c889cab1-70cb-4a60-85f2-9a434cbd99a2" + } + } + ] + }, + "cursor": { + "ref": "5a8332e2-9931-487a-83ba-2494599776a1", + "length": 313, + "cycles": 1, + "position": 63, + "iteration": 0, + "httpRequestId": "10d82b91-73bb-490a-b763-1196c9ed29ad", + "scriptId": "facf13a2-eb27-45b3-ae8c-fc9ce51a42ee", + "execution": "21cc405a-893e-466a-8f28-d5c90ff8d399" + } + }, + { + "error": { + "name": "AssertionError", + "index": 0, + "test": "Zaken lezen zonder applicatie met zaken.lezen in autorisatie scopes geeft 403", + "message": "expected 'not_authenticated' to equal 'permission_denied'", + "stack": "AssertionError: expected 'not_authenticated' to equal 'permission_denied'\n at Object.eval sandbox-script.js:1:65)", + "checksum": "038deaf54158de06d30de9af247882a9", + "id": "889c91e9-a91f-41d9-94dd-fee096e69f5c", + "timestamp": 1773145155920, + "stacktrace": [ + { + "fileName": "sandbox-script.js", + "lineNumber": 1, + "functionName": "Object.eval", + "typeName": "Object", + "methodName": "eval", + "columnNumber": 65, + "native": false + } + ] + }, + "at": "assertion:0 in test-script", + "source": { + "id": "601fc521-b732-4d4c-805b-237b51c7dfc6", + "name": "(zrc-006b) Zaken lezen zonder verplichte scope in autorisatie niet toegestaan", + "request": { + "url": { + "host": [ + "{{geheime_zaak_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Accept-Crs", + "value": "EPSG:4326" + }, + { + "key": "Content-Crs", + "value": "EPSG:4326" + } + ], + "method": "GET", + "body": { + "mode": "raw", + "raw": "" + }, + "auth": { + "type": "bearer", + "bearer": [ + { + "type": "string", + "value": "{{jwt-zrc-006}}", + "key": "token" + } + ] + } + }, + "response": [], + "event": [ + { + "listen": "prerequest", + "script": { + "id": "0b691897-6ed7-41e2-a472-cc5f0c113393", + "type": "text/javascript", + "packages": {}, + "exec": [ + "" + ], + "_lastExecutionId": "50dcea51-9e85-4597-add4-b2743695bcf3" + } + }, + { + "listen": "test", + "script": { + "id": "083dedaa-449b-4dee-95fd-cdc642303ecf", + "type": "text/javascript", + "packages": {}, + "exec": [ + "pm.test(\"Zaken lezen zonder applicatie met zaken.lezen in autorisatie scopes geeft 403\", function() {", + " pm.response.to.have.status(403);", + " pm.expect(pm.response.json().code).to.be.equal(\"permission_denied\");", + "});" + ], + "_lastExecutionId": "a714bb14-ffb3-42c3-aab5-15349fec8204" + } + } + ], + "protocolProfileBehavior": { + "disableBodyPruning": true + } + }, + "parent": { + "id": "ca08abb9-f66e-42d8-8a8a-e51e99aa46eb", + "name": "zrc-006", + "item": [ + { + "id": "4f2b999c-7637-4d53-a9ec-c564d842a392", + "name": "set full token", + "request": { + "url": { + "path": [ + "catalogussen" + ], + "host": [ + "{{ztc_url}}" + ], + "query": [], + "variable": [] + }, + "method": "GET" + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "b17d98c8-d0bf-43d6-8d4d-8ddf1a07e6eb", + "type": "text/javascript", + "packages": {}, + "exec": [ + "pm.environment.set(\"jwt_token\", pm.environment.get(\"jwt_full\"));", + " var origId = pm.environment.get(\"_original_client_id\");", + " var origSecret = pm.environment.get(\"_original_secret\");", + " if (origId) { pm.environment.set(\"client_id\", origId); }", + " if (origSecret) { pm.environment.set(\"secret\", origSecret); }", + " pm.environment.set(\"secret\", pm.environment.get(\"secret\") || \"procest-admin-secret-key-for-testing\");" + ], + "_lastExecutionId": "88db0f06-83ad-4e78-a86b-366212f1fb53" + } + } + ] + }, + { + "id": "bf940bfe-9729-43a9-b0a7-12d78bd305a6", + "name": "Create ZT", + "request": { + "url": { + "path": [ + "zaaktypen" + ], + "host": [ + "{{ztc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\r\n\t\"identificatie\": \"{{random_identificatie-ztc-01}}\",\r\n \"omschrijving\": \"Melding Openbare Ruimte\",\r\n \"vertrouwelijkheidaanduiding\": \"openbaar\",\r\n \"doel\": \"test doel\",\r\n \"verantwoordelijke\":\"X\",\r\n \"aanleiding\": \"test aanleiding\",\r\n \"indicatieInternOfExtern\": \"extern\",\r\n \"handelingInitiator\": \"indienen\",\r\n \"onderwerp\": \"openbare ruimte\",\r\n \"handelingBehandelaar\": \"behandelen\",\r\n \"doorlooptijd\": \"P10D\",\r\n \"opschortingEnAanhoudingMogelijk\": false,\r\n \"verlengingMogelijk\": false,\r\n \"publicatieIndicatie\": false,\r\n \"productenOfDiensten\": [\r\n \"https://ref.tst.vng.cloud/standaard/\"\r\n ],\r\n \"selectielijstProcestype\": \"{{procestype_url}}\",\r\n \"referentieproces\": {\r\n \"naam\": \"test\",\r\n \"link\": \"\"\r\n },\r\n \"catalogus\": \"{{catalogus_url}}\",\r\n \"deelzaaktypen\": [],\r\n \"statustypen\": [],\r\n \"resultaattypen\": [],\r\n \"eigenschappen\": [],\r\n \"informatieobjecttypen\": [],\r\n \"besluittypen\": [],\r\n \"gerelateerdeZaaktypen\": [],\r\n \"beginGeldigheid\": \"2005-01-01\",\r\n \"eindeGeldigheid\": \"2012-01-01\",\r\n \"versiedatum\": \"2012-01-01\",\r\n \"concept\": true\r\n}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "18a57e83-76ae-42c8-b032-2eff95811135", + "type": "text/javascript", + "packages": {}, + "exec": [ + "if(pm.response.code == 201) {", + " pm.environment.set(\"zaaktype_for_auth_url\", pm.response.json().url);", + "}", + "", + "" + ], + "_lastExecutionId": "22ae9a64-be48-4d8e-a2d4-8b09a877e624" + } + }, + { + "listen": "prerequest", + "script": { + "id": "4036ae22-4587-47c7-91be-5c2c0003c5b7", + "type": "text/javascript", + "packages": {}, + "exec": [ + "var uuid = require('uuid');", + "var myUUID = uuid.v4(); ", + "pm.environment.set(\"random_identificatie-ztc-01\", myUUID);" + ], + "_lastExecutionId": "119e45a0-2c8d-4b6b-82ab-f5a694cc2d1c" + } + } + ] + }, + { + "id": "0a0f25ce-aabe-4fb5-882c-956ffbae4ae8", + "name": "Publish ZT", + "request": { + "url": { + "path": [ + "publish" + ], + "host": [ + "{{zaaktype_for_auth_url}}" + ], + "query": [], + "variable": [] + }, + "method": "POST" + }, + "response": [], + "event": [] + }, + { + "id": "72429566-51b9-4f21-bdff-27b58e0c3329", + "name": "Zaak openbaar", + "request": { + "url": { + "path": [ + "zaken" + ], + "host": [ + "{{zrc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Crs", + "value": "EPSG:4326" + }, + { + "key": "Accept-Crs", + "value": "EPSG:4326" + }, + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n \"bronorganisatie\": \"000000000\",\n \"omschrijving\": \"string\",\n \"toelichting\": \"string\",\n \"registratiedatum\": \"2019-04-09\",\n \"verantwoordelijkeOrganisatie\": \"000000000\",\n \"zaaktype\": \"{{zaaktype_for_auth_url}}\",\n \"startdatum\": \"2019-04-09\",\n \"einddatumGepland\": \"2019-04-20\",\n \"uiterlijkeEinddatumAfdoening\": \"2019-04-09\",\n \"publicatiedatum\": \"2019-04-09\",\n \"vertrouwelijkheidaanduiding\": \"openbaar\",\n \"betalingsindicatie\": \"geheel\",\n \"laatsteBetaalDatum\": \"2019-01-01\",\n \"zaakgeometrie\": {\n \"type\": \"Point\",\n \"coordinates\": [\n 53,\n 5\n ]\n },\n \"opschorting\": {\n \"indicatie\": true,\n \"reden\": \"string\"\n },\n \"selectielijstklasse\": \"{{selectielijstklasse_url}}\",\n \"archiefstatus\": \"nog_te_archiveren\",\n \"deelzaaktypen\" : [\"{{deelzaaktype_url}}\"]\n}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "c130145f-577c-484d-8f7b-ba3683a97fe2", + "type": "text/javascript", + "packages": {}, + "exec": [ + "if(pm.response.code == 201) {", + " var zaak = pm.response.json();", + " pm.environment.set(\"openbare_zaak_url\", pm.response.json().url);", + "}" + ], + "_lastExecutionId": "17d7d44a-99f4-42ba-b23e-0d4330394298" + } + }, + { + "listen": "prerequest", + "script": { + "id": "23efe648-b696-4dc4-aa6b-37ed710bc2f5", + "type": "text/javascript", + "packages": {}, + "exec": [ + "" + ], + "_lastExecutionId": "66d6e4b7-4e24-43f5-8240-12086ddbfb8b" + } + } + ] + }, + { + "id": "b9060729-3d7b-4d80-979f-7322be84c103", + "name": "Zaak geheim", + "request": { + "url": { + "path": [ + "zaken" + ], + "host": [ + "{{zrc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Crs", + "value": "EPSG:4326" + }, + { + "key": "Accept-Crs", + "value": "EPSG:4326" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\r\n \"bronorganisatie\": \"000000000\",\r\n \"omschrijving\": \"string\",\r\n \"toelichting\": \"string\",\r\n \"registratiedatum\": \"2019-04-09\",\r\n \"verantwoordelijkeOrganisatie\": \"000000000\",\r\n \"zaaktype\": \"{{zaaktype_for_auth_url}}\",\r\n \"startdatum\": \"2019-04-09\",\r\n \"einddatumGepland\": \"2019-04-20\",\r\n \"uiterlijkeEinddatumAfdoening\": \"2019-04-09\",\r\n \"publicatiedatum\": \"2019-04-09\",\r\n \"vertrouwelijkheidaanduiding\": \"geheim\",\r\n \"betalingsindicatie\": \"geheel\",\r\n \"laatsteBetaalDatum\": \"2019-01-01\",\r\n \"zaakgeometrie\": {\r\n \"type\": \"Point\",\r\n \"coordinates\": [\r\n 53,\r\n 5\r\n ]\r\n },\r\n \"opschorting\": {\r\n \"indicatie\": true,\r\n \"reden\": \"string\"\r\n },\r\n \"selectielijstklasse\": \"{{selectielijstklasse_url}}\",\r\n \"archiefstatus\": \"nog_te_archiveren\",\r\n \"deelzaaktypen\" : [\"{{deelzaaktype_url}}\"]\r\n}", + "options": { + "raw": { + "language": "json" + } + } + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "777e04b0-8d65-4eaf-8caf-36300f8ebf59", + "type": "text/javascript", + "packages": {}, + "exec": [ + "if(pm.response.code == 201) {\r", + " var zaak = pm.response.json();\r", + " pm.environment.set(\"geheime_zaak_url\", pm.response.json().url);\r", + "}" + ], + "_lastExecutionId": "74febb73-de61-4b45-952d-cb33de857d9a" + } + } + ] + }, + { + "id": "ae09b0d3-8f17-478f-a72f-61a419ee6948", + "name": "set restricted token", + "request": { + "url": { + "path": [ + "catalogussen" + ], + "host": [ + "{{ztc_url}}" + ], + "query": [], + "variable": [] + }, + "method": "GET" + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "90a8142b-ab75-47d1-8d00-a6732aa4af5b", + "type": "text/javascript", + "packages": {}, + "exec": [ + "" + ], + "_lastExecutionId": "f9cd22d0-4d11-472f-8597-777e37c7db28" + } + }, + { + "listen": "prerequest", + "script": { + "id": "c61b57d9-e431-4b75-83f6-4f16f50af4ce", + "type": "text/javascript", + "packages": {}, + "exec": [ + " pm.environment.set(\"jwt_token\", pm.environment.get(\"jwt-limited\"));\r", + " pm.environment.set(\"_original_client_id\", pm.environment.get(\"client_id\"));", + " pm.environment.set(\"_original_secret\", pm.environment.get(\"secret\"));", + " pm.environment.set(\"client_id\", pm.environment.get(\"client_id_limited\"));", + " pm.environment.set(\"secret\", pm.environment.get(\"secret_limited\"));", + " pm.environment.set(\"client_id\", pm.environment.get(\"client_id_limited\"));", + " pm.environment.set(\"secret\", pm.environment.get(\"secret_limited\"));", + " " + ], + "_lastExecutionId": "77b84a21-6cd9-4133-812b-93869cef6b89" + } + } + ] + }, + { + "id": "762e5a83-1b78-4f9a-a470-9c5bd0af667f", + "name": "(zrc-006a) Zaken lijst ontsluit zaken op basis van autorisaties van consumer", + "request": { + "url": { + "path": [ + "zaken" + ], + "host": [ + "{{zrc_url}}" + ], + "query": [ + { + "key": "zaaktype", + "value": "{{zaaktype_for_auth_url}}" + } + ], + "variable": [] + }, + "header": [ + { + "key": "Accept-Crs", + "value": "EPSG:4326" + } + ], + "method": "GET", + "auth": { + "type": "bearer", + "bearer": [ + { + "type": "string", + "value": "{{jwt-zrc-006}}", + "key": "token" + } + ] + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "facf13a2-eb27-45b3-ae8c-fc9ce51a42ee", + "type": "text/javascript", + "packages": {}, + "exec": [ + "pm.test(\"zrc-006a 1 van de 2 zaken wordt geretourneerd\", function () {", + "", + " pm.expect(pm.response.json().count).to.equal(1);", + "});" + ], + "_lastExecutionId": "21cc405a-893e-466a-8f28-d5c90ff8d399" + } + }, + { + "listen": "prerequest", + "script": { + "id": "abaf5622-c0bf-4039-bc00-5109b3424193", + "type": "text/javascript", + "packages": {}, + "exec": [], + "_lastExecutionId": "5e5e8c04-b3ab-4875-9ee3-8dbff4b3110c" + } + } + ] + }, + { + "id": "601fc521-b732-4d4c-805b-237b51c7dfc6", + "name": "(zrc-006b) Zaken lezen zonder verplichte scope in autorisatie niet toegestaan", + "request": { + "url": { + "host": [ + "{{geheime_zaak_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Accept-Crs", + "value": "EPSG:4326" + }, + { + "key": "Content-Crs", + "value": "EPSG:4326" + } + ], + "method": "GET", + "body": { + "mode": "raw", + "raw": "" + }, + "auth": { + "type": "bearer", + "bearer": [ + { + "type": "string", + "value": "{{jwt-zrc-006}}", + "key": "token" + } + ] + } + }, + "response": [], + "event": [ + { + "listen": "prerequest", + "script": { + "id": "0b691897-6ed7-41e2-a472-cc5f0c113393", + "type": "text/javascript", + "packages": {}, + "exec": [ + "" + ], + "_lastExecutionId": "50dcea51-9e85-4597-add4-b2743695bcf3" + } + }, + { + "listen": "test", + "script": { + "id": "083dedaa-449b-4dee-95fd-cdc642303ecf", + "type": "text/javascript", + "packages": {}, + "exec": [ + "pm.test(\"Zaken lezen zonder applicatie met zaken.lezen in autorisatie scopes geeft 403\", function() {", + " pm.response.to.have.status(403);", + " pm.expect(pm.response.json().code).to.be.equal(\"permission_denied\");", + "});" + ], + "_lastExecutionId": "a714bb14-ffb3-42c3-aab5-15349fec8204" + } + } + ], + "protocolProfileBehavior": { + "disableBodyPruning": true + } + }, + { + "id": "734cc560-30be-4834-9c7d-20ae6db4fdfc", + "name": "(zrc-006c) Zaak aanmaken zonder verplichte scope in autorisatie niet toegestaan", + "request": { + "url": { + "path": [ + "zaken" + ], + "host": [ + "{{zrc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Accept-Crs", + "value": "EPSG:4326" + }, + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Content-Crs", + "value": "EPSG:4326" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\r\n \"url\": \"https://zaken.spt-rx-services.nl/api/v1/zaken/cba40feb-2b38-4490-b12d-84a39e8df361\",\r\n \"uuid\": \"cba40feb-2b38-4490-b12d-84a39e8df361\",\r\n \"identificatie\": \"Z2024-00000038\",\r\n \"bronorganisatie\": \"000000000\",\r\n \"omschrijving\": \"string\",\r\n \"toelichting\": \"string\",\r\n \"zaaktype\": \"https://catalogi.spt-rx-services.nl/api/v1/zaaktypen/be24fd63-1663-46dc-8ea9-9c153642d4f9\",\r\n \"registratiedatum\": \"2019-04-09\",\r\n \"verantwoordelijkeOrganisatie\": \"000000000\",\r\n \"startdatum\": \"2019-04-09\",\r\n \"einddatum\": null,\r\n \"einddatumGepland\": \"2019-04-20\",\r\n \"uiterlijkeEinddatumAfdoening\": \"2019-04-09\",\r\n \"publicatiedatum\": \"2019-04-09\",\r\n \"communicatiekanaal\": \"\",\r\n \"productenOfDiensten\": [],\r\n \"vertrouwelijkheidaanduiding\": \"geheim\",\r\n \"betalingsindicatie\": \"geheel\",\r\n \"betalingsindicatieWeergave\": null,\r\n \"laatsteBetaaldatum\": \"2019-01-01T00:00:00Z\",\r\n \"zaakgeometrie\": {\r\n \"type\": \"Point\",\r\n \"coordinates\": [\r\n 53.0,\r\n 5.0\r\n ]\r\n },\r\n \"verlenging\": null,\r\n \"opschorting\": {\r\n \"indicatie\": true,\r\n \"reden\": \"string\"\r\n },\r\n \"selectielijstklasse\": \"https://referentielijsten.roxit.nl/api/v1/resultaten/0fe71ce3-b1e1-48eb-9070-be2756fc71b5\",\r\n \"hoofdzaak\": null,\r\n \"deelzaken\": [],\r\n \"relevanteAndereZaken\": [],\r\n \"eigenschappen\": [],\r\n \"rollen\": [],\r\n \"status\": null,\r\n \"zaakinformatieobjecten\": [],\r\n \"zaakobjecten\": [],\r\n \"resultaat\": null,\r\n \"kenmerken\": [],\r\n \"archiefnominatie\": null,\r\n \"archiefstatus\": \"nog_te_archiveren\",\r\n \"archiefactiedatum\": null,\r\n \"opdrachtgevendeOrganisatie\": null,\r\n \"processobjectaard\": null,\r\n \"startdatumBewaartermijn\": null,\r\n \"processobject\": null\r\n}" + }, + "auth": { + "type": "bearer", + "bearer": [ + { + "type": "string", + "value": "{{jwt-zrc-006}}", + "key": "token" + } + ] + } + }, + "response": [], + "event": [ + { + "listen": "prerequest", + "script": { + "id": "462bbd32-e44e-426f-a719-5fa45702bc97", + "type": "text/javascript", + "packages": {}, + "exec": [ + "" + ], + "_lastExecutionId": "8a324196-56ba-43c1-85af-5c6473176745" + } + }, + { + "listen": "test", + "script": { + "id": "15427432-3cea-4842-a68e-f5185416c88b", + "type": "text/javascript", + "packages": {}, + "exec": [ + "pm.test(\"Zaak aanmaken met applicatie zonder zaken.aanmaken in autorisatie scopes niet toegestaan\", function() {", + " pm.response.to.have.status(403);", + " pm.expect(pm.response.json().code).to.be.equal(\"permission_denied\");", + "});", + "", + "var next_requests = [];", + "", + "if(pm.response.code == 201) {", + " pm.environment.set(\"created_zaak_url\", pm.response.json().url);", + "", + "}" + ], + "_lastExecutionId": "b4ff33ce-1f17-4b3f-93a8-4e797a46a3d5" + } + } + ] + } + ], + "event": [ + { + "listen": "prerequest", + "script": { + "id": "7844a268-d490-47f1-8ece-e0b13c56db92", + "type": "text/javascript", + "exec": [ + "" + ], + "_lastExecutionId": "72064087-1ac6-41d2-b584-fd902c4edff1" + } + }, + { + "listen": "test", + "script": { + "id": "0ec57b65-8edd-48a7-8ac6-78f956695058", + "type": "text/javascript", + "exec": [ + "" + ], + "_lastExecutionId": "c889cab1-70cb-4a60-85f2-9a434cbd99a2" + } + } + ] + }, + "cursor": { + "ref": "c69ac4c8-9da3-4436-916d-64f851dfa6f9", + "length": 313, + "cycles": 1, + "position": 64, + "iteration": 0, + "httpRequestId": "f1d9af7e-0b0d-4a47-9f47-d2e6047c44cc", + "scriptId": "083dedaa-449b-4dee-95fd-cdc642303ecf", + "execution": "a714bb14-ffb3-42c3-aab5-15349fec8204" + } + }, + { + "error": { + "name": "AssertionError", + "index": 0, + "test": "Zaak aanmaken met applicatie zonder zaken.aanmaken in autorisatie scopes niet toegestaan", + "message": "expected 'not_authenticated' to equal 'permission_denied'", + "stack": "AssertionError: expected 'not_authenticated' to equal 'permission_denied'\n at Object.eval sandbox-script.js:1:66)", + "checksum": "522d568a02948c4a769bff0422d6a465", + "id": "a7c8d344-6552-494e-b106-4062d9d2e861", + "timestamp": 1773145156049, + "stacktrace": [ + { + "fileName": "sandbox-script.js", + "lineNumber": 1, + "functionName": "Object.eval", + "typeName": "Object", + "methodName": "eval", + "columnNumber": 66, + "native": false + } + ] + }, + "at": "assertion:0 in test-script", + "source": { + "id": "734cc560-30be-4834-9c7d-20ae6db4fdfc", + "name": "(zrc-006c) Zaak aanmaken zonder verplichte scope in autorisatie niet toegestaan", + "request": { + "url": { + "path": [ + "zaken" + ], + "host": [ + "{{zrc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Accept-Crs", + "value": "EPSG:4326" + }, + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Content-Crs", + "value": "EPSG:4326" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\r\n \"url\": \"https://zaken.spt-rx-services.nl/api/v1/zaken/cba40feb-2b38-4490-b12d-84a39e8df361\",\r\n \"uuid\": \"cba40feb-2b38-4490-b12d-84a39e8df361\",\r\n \"identificatie\": \"Z2024-00000038\",\r\n \"bronorganisatie\": \"000000000\",\r\n \"omschrijving\": \"string\",\r\n \"toelichting\": \"string\",\r\n \"zaaktype\": \"https://catalogi.spt-rx-services.nl/api/v1/zaaktypen/be24fd63-1663-46dc-8ea9-9c153642d4f9\",\r\n \"registratiedatum\": \"2019-04-09\",\r\n \"verantwoordelijkeOrganisatie\": \"000000000\",\r\n \"startdatum\": \"2019-04-09\",\r\n \"einddatum\": null,\r\n \"einddatumGepland\": \"2019-04-20\",\r\n \"uiterlijkeEinddatumAfdoening\": \"2019-04-09\",\r\n \"publicatiedatum\": \"2019-04-09\",\r\n \"communicatiekanaal\": \"\",\r\n \"productenOfDiensten\": [],\r\n \"vertrouwelijkheidaanduiding\": \"geheim\",\r\n \"betalingsindicatie\": \"geheel\",\r\n \"betalingsindicatieWeergave\": null,\r\n \"laatsteBetaaldatum\": \"2019-01-01T00:00:00Z\",\r\n \"zaakgeometrie\": {\r\n \"type\": \"Point\",\r\n \"coordinates\": [\r\n 53.0,\r\n 5.0\r\n ]\r\n },\r\n \"verlenging\": null,\r\n \"opschorting\": {\r\n \"indicatie\": true,\r\n \"reden\": \"string\"\r\n },\r\n \"selectielijstklasse\": \"https://referentielijsten.roxit.nl/api/v1/resultaten/0fe71ce3-b1e1-48eb-9070-be2756fc71b5\",\r\n \"hoofdzaak\": null,\r\n \"deelzaken\": [],\r\n \"relevanteAndereZaken\": [],\r\n \"eigenschappen\": [],\r\n \"rollen\": [],\r\n \"status\": null,\r\n \"zaakinformatieobjecten\": [],\r\n \"zaakobjecten\": [],\r\n \"resultaat\": null,\r\n \"kenmerken\": [],\r\n \"archiefnominatie\": null,\r\n \"archiefstatus\": \"nog_te_archiveren\",\r\n \"archiefactiedatum\": null,\r\n \"opdrachtgevendeOrganisatie\": null,\r\n \"processobjectaard\": null,\r\n \"startdatumBewaartermijn\": null,\r\n \"processobject\": null\r\n}" + }, + "auth": { + "type": "bearer", + "bearer": [ + { + "type": "string", + "value": "{{jwt-zrc-006}}", + "key": "token" + } + ] + } + }, + "response": [], + "event": [ + { + "listen": "prerequest", + "script": { + "id": "462bbd32-e44e-426f-a719-5fa45702bc97", + "type": "text/javascript", + "packages": {}, + "exec": [ + "" + ], + "_lastExecutionId": "8a324196-56ba-43c1-85af-5c6473176745" + } + }, + { + "listen": "test", + "script": { + "id": "15427432-3cea-4842-a68e-f5185416c88b", + "type": "text/javascript", + "packages": {}, + "exec": [ + "pm.test(\"Zaak aanmaken met applicatie zonder zaken.aanmaken in autorisatie scopes niet toegestaan\", function() {", + " pm.response.to.have.status(403);", + " pm.expect(pm.response.json().code).to.be.equal(\"permission_denied\");", + "});", + "", + "var next_requests = [];", + "", + "if(pm.response.code == 201) {", + " pm.environment.set(\"created_zaak_url\", pm.response.json().url);", + "", + "}" + ], + "_lastExecutionId": "b4ff33ce-1f17-4b3f-93a8-4e797a46a3d5" + } + } + ] + }, + "parent": { + "id": "ca08abb9-f66e-42d8-8a8a-e51e99aa46eb", + "name": "zrc-006", + "item": [ + { + "id": "4f2b999c-7637-4d53-a9ec-c564d842a392", + "name": "set full token", + "request": { + "url": { + "path": [ + "catalogussen" + ], + "host": [ + "{{ztc_url}}" + ], + "query": [], + "variable": [] + }, + "method": "GET" + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "b17d98c8-d0bf-43d6-8d4d-8ddf1a07e6eb", + "type": "text/javascript", + "packages": {}, + "exec": [ + "pm.environment.set(\"jwt_token\", pm.environment.get(\"jwt_full\"));", + " var origId = pm.environment.get(\"_original_client_id\");", + " var origSecret = pm.environment.get(\"_original_secret\");", + " if (origId) { pm.environment.set(\"client_id\", origId); }", + " if (origSecret) { pm.environment.set(\"secret\", origSecret); }", + " pm.environment.set(\"secret\", pm.environment.get(\"secret\") || \"procest-admin-secret-key-for-testing\");" + ], + "_lastExecutionId": "88db0f06-83ad-4e78-a86b-366212f1fb53" + } + } + ] + }, + { + "id": "bf940bfe-9729-43a9-b0a7-12d78bd305a6", + "name": "Create ZT", + "request": { + "url": { + "path": [ + "zaaktypen" + ], + "host": [ + "{{ztc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\r\n\t\"identificatie\": \"{{random_identificatie-ztc-01}}\",\r\n \"omschrijving\": \"Melding Openbare Ruimte\",\r\n \"vertrouwelijkheidaanduiding\": \"openbaar\",\r\n \"doel\": \"test doel\",\r\n \"verantwoordelijke\":\"X\",\r\n \"aanleiding\": \"test aanleiding\",\r\n \"indicatieInternOfExtern\": \"extern\",\r\n \"handelingInitiator\": \"indienen\",\r\n \"onderwerp\": \"openbare ruimte\",\r\n \"handelingBehandelaar\": \"behandelen\",\r\n \"doorlooptijd\": \"P10D\",\r\n \"opschortingEnAanhoudingMogelijk\": false,\r\n \"verlengingMogelijk\": false,\r\n \"publicatieIndicatie\": false,\r\n \"productenOfDiensten\": [\r\n \"https://ref.tst.vng.cloud/standaard/\"\r\n ],\r\n \"selectielijstProcestype\": \"{{procestype_url}}\",\r\n \"referentieproces\": {\r\n \"naam\": \"test\",\r\n \"link\": \"\"\r\n },\r\n \"catalogus\": \"{{catalogus_url}}\",\r\n \"deelzaaktypen\": [],\r\n \"statustypen\": [],\r\n \"resultaattypen\": [],\r\n \"eigenschappen\": [],\r\n \"informatieobjecttypen\": [],\r\n \"besluittypen\": [],\r\n \"gerelateerdeZaaktypen\": [],\r\n \"beginGeldigheid\": \"2005-01-01\",\r\n \"eindeGeldigheid\": \"2012-01-01\",\r\n \"versiedatum\": \"2012-01-01\",\r\n \"concept\": true\r\n}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "18a57e83-76ae-42c8-b032-2eff95811135", + "type": "text/javascript", + "packages": {}, + "exec": [ + "if(pm.response.code == 201) {", + " pm.environment.set(\"zaaktype_for_auth_url\", pm.response.json().url);", + "}", + "", + "" + ], + "_lastExecutionId": "22ae9a64-be48-4d8e-a2d4-8b09a877e624" + } + }, + { + "listen": "prerequest", + "script": { + "id": "4036ae22-4587-47c7-91be-5c2c0003c5b7", + "type": "text/javascript", + "packages": {}, + "exec": [ + "var uuid = require('uuid');", + "var myUUID = uuid.v4(); ", + "pm.environment.set(\"random_identificatie-ztc-01\", myUUID);" + ], + "_lastExecutionId": "119e45a0-2c8d-4b6b-82ab-f5a694cc2d1c" + } + } + ] + }, + { + "id": "0a0f25ce-aabe-4fb5-882c-956ffbae4ae8", + "name": "Publish ZT", + "request": { + "url": { + "path": [ + "publish" + ], + "host": [ + "{{zaaktype_for_auth_url}}" + ], + "query": [], + "variable": [] + }, + "method": "POST" + }, + "response": [], + "event": [] + }, + { + "id": "72429566-51b9-4f21-bdff-27b58e0c3329", + "name": "Zaak openbaar", + "request": { + "url": { + "path": [ + "zaken" + ], + "host": [ + "{{zrc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Crs", + "value": "EPSG:4326" + }, + { + "key": "Accept-Crs", + "value": "EPSG:4326" + }, + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n \"bronorganisatie\": \"000000000\",\n \"omschrijving\": \"string\",\n \"toelichting\": \"string\",\n \"registratiedatum\": \"2019-04-09\",\n \"verantwoordelijkeOrganisatie\": \"000000000\",\n \"zaaktype\": \"{{zaaktype_for_auth_url}}\",\n \"startdatum\": \"2019-04-09\",\n \"einddatumGepland\": \"2019-04-20\",\n \"uiterlijkeEinddatumAfdoening\": \"2019-04-09\",\n \"publicatiedatum\": \"2019-04-09\",\n \"vertrouwelijkheidaanduiding\": \"openbaar\",\n \"betalingsindicatie\": \"geheel\",\n \"laatsteBetaalDatum\": \"2019-01-01\",\n \"zaakgeometrie\": {\n \"type\": \"Point\",\n \"coordinates\": [\n 53,\n 5\n ]\n },\n \"opschorting\": {\n \"indicatie\": true,\n \"reden\": \"string\"\n },\n \"selectielijstklasse\": \"{{selectielijstklasse_url}}\",\n \"archiefstatus\": \"nog_te_archiveren\",\n \"deelzaaktypen\" : [\"{{deelzaaktype_url}}\"]\n}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "c130145f-577c-484d-8f7b-ba3683a97fe2", + "type": "text/javascript", + "packages": {}, + "exec": [ + "if(pm.response.code == 201) {", + " var zaak = pm.response.json();", + " pm.environment.set(\"openbare_zaak_url\", pm.response.json().url);", + "}" + ], + "_lastExecutionId": "17d7d44a-99f4-42ba-b23e-0d4330394298" + } + }, + { + "listen": "prerequest", + "script": { + "id": "23efe648-b696-4dc4-aa6b-37ed710bc2f5", + "type": "text/javascript", + "packages": {}, + "exec": [ + "" + ], + "_lastExecutionId": "66d6e4b7-4e24-43f5-8240-12086ddbfb8b" + } + } + ] + }, + { + "id": "b9060729-3d7b-4d80-979f-7322be84c103", + "name": "Zaak geheim", + "request": { + "url": { + "path": [ + "zaken" + ], + "host": [ + "{{zrc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Crs", + "value": "EPSG:4326" + }, + { + "key": "Accept-Crs", + "value": "EPSG:4326" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\r\n \"bronorganisatie\": \"000000000\",\r\n \"omschrijving\": \"string\",\r\n \"toelichting\": \"string\",\r\n \"registratiedatum\": \"2019-04-09\",\r\n \"verantwoordelijkeOrganisatie\": \"000000000\",\r\n \"zaaktype\": \"{{zaaktype_for_auth_url}}\",\r\n \"startdatum\": \"2019-04-09\",\r\n \"einddatumGepland\": \"2019-04-20\",\r\n \"uiterlijkeEinddatumAfdoening\": \"2019-04-09\",\r\n \"publicatiedatum\": \"2019-04-09\",\r\n \"vertrouwelijkheidaanduiding\": \"geheim\",\r\n \"betalingsindicatie\": \"geheel\",\r\n \"laatsteBetaalDatum\": \"2019-01-01\",\r\n \"zaakgeometrie\": {\r\n \"type\": \"Point\",\r\n \"coordinates\": [\r\n 53,\r\n 5\r\n ]\r\n },\r\n \"opschorting\": {\r\n \"indicatie\": true,\r\n \"reden\": \"string\"\r\n },\r\n \"selectielijstklasse\": \"{{selectielijstklasse_url}}\",\r\n \"archiefstatus\": \"nog_te_archiveren\",\r\n \"deelzaaktypen\" : [\"{{deelzaaktype_url}}\"]\r\n}", + "options": { + "raw": { + "language": "json" + } + } + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "777e04b0-8d65-4eaf-8caf-36300f8ebf59", + "type": "text/javascript", + "packages": {}, + "exec": [ + "if(pm.response.code == 201) {\r", + " var zaak = pm.response.json();\r", + " pm.environment.set(\"geheime_zaak_url\", pm.response.json().url);\r", + "}" + ], + "_lastExecutionId": "74febb73-de61-4b45-952d-cb33de857d9a" + } + } + ] + }, + { + "id": "ae09b0d3-8f17-478f-a72f-61a419ee6948", + "name": "set restricted token", + "request": { + "url": { + "path": [ + "catalogussen" + ], + "host": [ + "{{ztc_url}}" + ], + "query": [], + "variable": [] + }, + "method": "GET" + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "90a8142b-ab75-47d1-8d00-a6732aa4af5b", + "type": "text/javascript", + "packages": {}, + "exec": [ + "" + ], + "_lastExecutionId": "f9cd22d0-4d11-472f-8597-777e37c7db28" + } + }, + { + "listen": "prerequest", + "script": { + "id": "c61b57d9-e431-4b75-83f6-4f16f50af4ce", + "type": "text/javascript", + "packages": {}, + "exec": [ + " pm.environment.set(\"jwt_token\", pm.environment.get(\"jwt-limited\"));\r", + " pm.environment.set(\"_original_client_id\", pm.environment.get(\"client_id\"));", + " pm.environment.set(\"_original_secret\", pm.environment.get(\"secret\"));", + " pm.environment.set(\"client_id\", pm.environment.get(\"client_id_limited\"));", + " pm.environment.set(\"secret\", pm.environment.get(\"secret_limited\"));", + " pm.environment.set(\"client_id\", pm.environment.get(\"client_id_limited\"));", + " pm.environment.set(\"secret\", pm.environment.get(\"secret_limited\"));", + " " + ], + "_lastExecutionId": "77b84a21-6cd9-4133-812b-93869cef6b89" + } + } + ] + }, + { + "id": "762e5a83-1b78-4f9a-a470-9c5bd0af667f", + "name": "(zrc-006a) Zaken lijst ontsluit zaken op basis van autorisaties van consumer", + "request": { + "url": { + "path": [ + "zaken" + ], + "host": [ + "{{zrc_url}}" + ], + "query": [ + { + "key": "zaaktype", + "value": "{{zaaktype_for_auth_url}}" + } + ], + "variable": [] + }, + "header": [ + { + "key": "Accept-Crs", + "value": "EPSG:4326" + } + ], + "method": "GET", + "auth": { + "type": "bearer", + "bearer": [ + { + "type": "string", + "value": "{{jwt-zrc-006}}", + "key": "token" + } + ] + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "facf13a2-eb27-45b3-ae8c-fc9ce51a42ee", + "type": "text/javascript", + "packages": {}, + "exec": [ + "pm.test(\"zrc-006a 1 van de 2 zaken wordt geretourneerd\", function () {", + "", + " pm.expect(pm.response.json().count).to.equal(1);", + "});" + ], + "_lastExecutionId": "21cc405a-893e-466a-8f28-d5c90ff8d399" + } + }, + { + "listen": "prerequest", + "script": { + "id": "abaf5622-c0bf-4039-bc00-5109b3424193", + "type": "text/javascript", + "packages": {}, + "exec": [], + "_lastExecutionId": "5e5e8c04-b3ab-4875-9ee3-8dbff4b3110c" + } + } + ] + }, + { + "id": "601fc521-b732-4d4c-805b-237b51c7dfc6", + "name": "(zrc-006b) Zaken lezen zonder verplichte scope in autorisatie niet toegestaan", + "request": { + "url": { + "host": [ + "{{geheime_zaak_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Accept-Crs", + "value": "EPSG:4326" + }, + { + "key": "Content-Crs", + "value": "EPSG:4326" + } + ], + "method": "GET", + "body": { + "mode": "raw", + "raw": "" + }, + "auth": { + "type": "bearer", + "bearer": [ + { + "type": "string", + "value": "{{jwt-zrc-006}}", + "key": "token" + } + ] + } + }, + "response": [], + "event": [ + { + "listen": "prerequest", + "script": { + "id": "0b691897-6ed7-41e2-a472-cc5f0c113393", + "type": "text/javascript", + "packages": {}, + "exec": [ + "" + ], + "_lastExecutionId": "50dcea51-9e85-4597-add4-b2743695bcf3" + } + }, + { + "listen": "test", + "script": { + "id": "083dedaa-449b-4dee-95fd-cdc642303ecf", + "type": "text/javascript", + "packages": {}, + "exec": [ + "pm.test(\"Zaken lezen zonder applicatie met zaken.lezen in autorisatie scopes geeft 403\", function() {", + " pm.response.to.have.status(403);", + " pm.expect(pm.response.json().code).to.be.equal(\"permission_denied\");", + "});" + ], + "_lastExecutionId": "a714bb14-ffb3-42c3-aab5-15349fec8204" + } + } + ], + "protocolProfileBehavior": { + "disableBodyPruning": true + } + }, + { + "id": "734cc560-30be-4834-9c7d-20ae6db4fdfc", + "name": "(zrc-006c) Zaak aanmaken zonder verplichte scope in autorisatie niet toegestaan", + "request": { + "url": { + "path": [ + "zaken" + ], + "host": [ + "{{zrc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Accept-Crs", + "value": "EPSG:4326" + }, + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Content-Crs", + "value": "EPSG:4326" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\r\n \"url\": \"https://zaken.spt-rx-services.nl/api/v1/zaken/cba40feb-2b38-4490-b12d-84a39e8df361\",\r\n \"uuid\": \"cba40feb-2b38-4490-b12d-84a39e8df361\",\r\n \"identificatie\": \"Z2024-00000038\",\r\n \"bronorganisatie\": \"000000000\",\r\n \"omschrijving\": \"string\",\r\n \"toelichting\": \"string\",\r\n \"zaaktype\": \"https://catalogi.spt-rx-services.nl/api/v1/zaaktypen/be24fd63-1663-46dc-8ea9-9c153642d4f9\",\r\n \"registratiedatum\": \"2019-04-09\",\r\n \"verantwoordelijkeOrganisatie\": \"000000000\",\r\n \"startdatum\": \"2019-04-09\",\r\n \"einddatum\": null,\r\n \"einddatumGepland\": \"2019-04-20\",\r\n \"uiterlijkeEinddatumAfdoening\": \"2019-04-09\",\r\n \"publicatiedatum\": \"2019-04-09\",\r\n \"communicatiekanaal\": \"\",\r\n \"productenOfDiensten\": [],\r\n \"vertrouwelijkheidaanduiding\": \"geheim\",\r\n \"betalingsindicatie\": \"geheel\",\r\n \"betalingsindicatieWeergave\": null,\r\n \"laatsteBetaaldatum\": \"2019-01-01T00:00:00Z\",\r\n \"zaakgeometrie\": {\r\n \"type\": \"Point\",\r\n \"coordinates\": [\r\n 53.0,\r\n 5.0\r\n ]\r\n },\r\n \"verlenging\": null,\r\n \"opschorting\": {\r\n \"indicatie\": true,\r\n \"reden\": \"string\"\r\n },\r\n \"selectielijstklasse\": \"https://referentielijsten.roxit.nl/api/v1/resultaten/0fe71ce3-b1e1-48eb-9070-be2756fc71b5\",\r\n \"hoofdzaak\": null,\r\n \"deelzaken\": [],\r\n \"relevanteAndereZaken\": [],\r\n \"eigenschappen\": [],\r\n \"rollen\": [],\r\n \"status\": null,\r\n \"zaakinformatieobjecten\": [],\r\n \"zaakobjecten\": [],\r\n \"resultaat\": null,\r\n \"kenmerken\": [],\r\n \"archiefnominatie\": null,\r\n \"archiefstatus\": \"nog_te_archiveren\",\r\n \"archiefactiedatum\": null,\r\n \"opdrachtgevendeOrganisatie\": null,\r\n \"processobjectaard\": null,\r\n \"startdatumBewaartermijn\": null,\r\n \"processobject\": null\r\n}" + }, + "auth": { + "type": "bearer", + "bearer": [ + { + "type": "string", + "value": "{{jwt-zrc-006}}", + "key": "token" + } + ] + } + }, + "response": [], + "event": [ + { + "listen": "prerequest", + "script": { + "id": "462bbd32-e44e-426f-a719-5fa45702bc97", + "type": "text/javascript", + "packages": {}, + "exec": [ + "" + ], + "_lastExecutionId": "8a324196-56ba-43c1-85af-5c6473176745" + } + }, + { + "listen": "test", + "script": { + "id": "15427432-3cea-4842-a68e-f5185416c88b", + "type": "text/javascript", + "packages": {}, + "exec": [ + "pm.test(\"Zaak aanmaken met applicatie zonder zaken.aanmaken in autorisatie scopes niet toegestaan\", function() {", + " pm.response.to.have.status(403);", + " pm.expect(pm.response.json().code).to.be.equal(\"permission_denied\");", + "});", + "", + "var next_requests = [];", + "", + "if(pm.response.code == 201) {", + " pm.environment.set(\"created_zaak_url\", pm.response.json().url);", + "", + "}" + ], + "_lastExecutionId": "b4ff33ce-1f17-4b3f-93a8-4e797a46a3d5" + } + } + ] + } + ], + "event": [ + { + "listen": "prerequest", + "script": { + "id": "7844a268-d490-47f1-8ece-e0b13c56db92", + "type": "text/javascript", + "exec": [ + "" + ], + "_lastExecutionId": "72064087-1ac6-41d2-b584-fd902c4edff1" + } + }, + { + "listen": "test", + "script": { + "id": "0ec57b65-8edd-48a7-8ac6-78f956695058", + "type": "text/javascript", + "exec": [ + "" + ], + "_lastExecutionId": "c889cab1-70cb-4a60-85f2-9a434cbd99a2" + } + } + ] + }, + "cursor": { + "ref": "4a1def06-d486-43ed-bc20-b996e879b628", + "length": 313, + "cycles": 1, + "position": 65, + "iteration": 0, + "httpRequestId": "fc4fb9bb-fab4-4ca6-8e06-e57e3bca4164", + "scriptId": "15427432-3cea-4842-a68e-f5185416c88b", + "execution": "b4ff33ce-1f17-4b3f-93a8-4e797a46a3d5" + } + }, + { + "error": { + "name": "AssertionError", + "index": 0, + "test": "Afsluiten Zaak betekent Informatieobject.indicatieGebruiksrecht gezet voor alle gerelateerde objecten", + "message": "expected null to not equal null", + "stack": "AssertionError: expected null to not equal null\n at Object.eval sandbox-script.js:1:78)", + "checksum": "c21db5215d57a0c74c4bec4c78f0e69f", + "id": "39e2e154-2295-43e1-8f2c-ad24d1044b8d", + "timestamp": 1773145159555, + "stacktrace": [ + { + "fileName": "sandbox-script.js", + "lineNumber": 1, + "functionName": "Object.eval", + "typeName": "Object", + "methodName": "eval", + "columnNumber": 78, + "native": false + } + ] + }, + "at": "assertion:0 in test-script", + "source": { + "id": "98e2897f-fcc9-40fb-9327-a839f5ba15e1", + "name": "(zrc-007b) Informatieobject.indicatieGebruikersrecht niet null bij afsluiten zaak", + "request": { + "url": { + "host": [ + "{{informatieobject_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Accept-Crs", + "value": "EPSG:4326" + } + ], + "method": "GET" + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "4c865327-01d4-41d1-b251-0ba1d2390640", + "type": "text/javascript", + "packages": {}, + "exec": [ + "pm.test(\"Afsluiten Zaak betekent Informatieobject.indicatieGebruiksrecht gezet voor alle gerelateerde objecten\", function(){", + " pm.response.to.have.status(200);", + " pm.expect(pm.response.json().indicatieGebruiksrecht).to.not.be.equal(null);", + "});", + "", + "" + ], + "_lastExecutionId": "33d0ac3d-fbad-4359-81bc-b37d1c9064d0" + } + }, + { + "listen": "prerequest", + "script": { + "id": "c578fdc6-8fbc-4913-bb60-e0e413b2e26b", + "type": "text/javascript", + "packages": {}, + "exec": [ + "" + ], + "_lastExecutionId": "fed51f54-ab25-48ec-a4c4-288c9d601d92" + } + } + ] + }, + "parent": { + "id": "404c4090-2247-454b-9abc-152f1f43ee65", + "name": "zrc-007", + "item": [ + { + "id": "0e70db12-d123-4d04-99cb-c6325ac685ba", + "name": "set full token", + "request": { + "url": { + "path": [ + "catalogussen" + ], + "host": [ + "{{ztc_url}}" + ], + "query": [], + "variable": [] + }, + "method": "GET" + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "de2e18b7-bdfb-440f-8e23-e36e909ea85b", + "type": "text/javascript", + "packages": {}, + "exec": [ + "" + ], + "_lastExecutionId": "a7acb14b-14e4-4cb3-b1e2-066d7755f1d7" + } + }, + { + "listen": "prerequest", + "script": { + "id": "ce9dfa44-a760-408a-8576-5c22759d91dc", + "type": "text/javascript", + "packages": {}, + "exec": [ + "pm.environment.set(\"jwt_token\", pm.environment.get(\"jwt_full\"));", + " var origId = pm.environment.get(\"_original_client_id\");", + " var origSecret = pm.environment.get(\"_original_secret\");", + " if (origId) { pm.environment.set(\"client_id\", origId); }", + " if (origSecret) { pm.environment.set(\"secret\", origSecret); }", + " pm.environment.set(\"secret\", pm.environment.get(\"secret\") || \"procest-admin-secret-key-for-testing\");" + ], + "_lastExecutionId": "d6821698-b9a1-42dd-b58a-8915b6b5c7a3" + } + } + ] + }, + { + "id": "c0805db0-b908-42e8-ac42-38292d5e0fa1", + "name": "zaak", + "request": { + "url": { + "path": [ + "zaken" + ], + "host": [ + "{{zrc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Accept-Crs", + "value": "EPSG:4326" + }, + { + "key": "Content-Crs", + "value": "EPSG:4326" + }, + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\r\n\r\n \"bronorganisatie\": \"000000000\",\r\n \"omschrijving\": \"string\",\r\n \"toelichting\": \"string\",\r\n \"zaaktype\": \"{{zaaktype_url}}\",\r\n \"registratiedatum\": \"2019-04-09\",\r\n \"verantwoordelijkeOrganisatie\": \"000000000\",\r\n \"startdatum\": \"2019-04-09\",\r\n \"einddatum\": null,\r\n \"einddatumGepland\": \"2019-04-20\",\r\n \"uiterlijkeEinddatumAfdoening\": \"2019-04-09\",\r\n \"publicatiedatum\": \"2019-04-09\",\r\n \"communicatiekanaal\": \"\",\r\n \"productenOfDiensten\": [],\r\n \"vertrouwelijkheidaanduiding\": \"geheim\",\r\n \"betalingsindicatie\": \"geheel\",\r\n \"betalingsindicatieWeergave\": null,\r\n \"laatsteBetaaldatum\": \"2019-01-01T00:00:00Z\",\r\n \"zaakgeometrie\": {\r\n \"type\": \"Point\",\r\n \"coordinates\": [\r\n 53.0,\r\n 5.0\r\n ]\r\n },\r\n \"verlenging\": null,\r\n \"opschorting\": {\r\n \"indicatie\": true,\r\n \"reden\": \"string\"\r\n },\r\n \"selectielijstklasse\": \"https://referentielijsten.roxit.nl/api/v1/resultaten/0fe71ce3-b1e1-48eb-9070-be2756fc71b5\",\r\n \"hoofdzaak\": null,\r\n \"deelzaken\": [],\r\n \"relevanteAndereZaken\": [],\r\n \"eigenschappen\": [],\r\n \"rollen\": [],\r\n \"status\": null,\r\n \"zaakinformatieobjecten\": [],\r\n \"zaakobjecten\": [],\r\n \"resultaat\": null,\r\n \"kenmerken\": [],\r\n \"archiefnominatie\": null,\r\n \"archiefstatus\": \"nog_te_archiveren\",\r\n \"archiefactiedatum\": null,\r\n \"opdrachtgevendeOrganisatie\": null,\r\n \"processobjectaard\": null,\r\n \"startdatumBewaartermijn\": null,\r\n \"processobject\": null\r\n}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "38243872-a733-4daa-b03f-99eff519e2ca", + "type": "text/javascript", + "packages": {}, + "exec": [ + "pm.environment.set(\"created_zaak_url\", pm.response.json().url);" + ], + "_lastExecutionId": "77be1497-5818-494d-8843-3ea9f0639dfc" + } + }, + { + "listen": "prerequest", + "script": { + "id": "135c8be0-caea-450f-a589-4344c7d23d54", + "type": "text/javascript", + "packages": {}, + "exec": [ + "" + ], + "_lastExecutionId": "073abcc9-f528-4458-90c5-e2111284fa0c" + } + } + ] + }, + { + "id": "ed6480ef-f3ed-4ecb-af29-d467eccdbf89", + "name": "(DRC) Create EnkelvoudigInformatieObject", + "request": { + "url": { + "path": [ + "enkelvoudiginformatieobjecten" + ], + "host": [ + "{{drc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n\t\"bronorganisatie\": \"000000000\",\n\t\"creatiedatum\": \"2019-01-01\",\n\t\"titel\": \"testobject\",\n\t\"auteur\": \"testauteur\",\n \"formaat\": \"application/pdf\",\n \"taal\": \"nld\",\n \"bestandsnaam\": \"test 3.pdf\",\n\t\"inhoud\": \"c3RyaW5n\",\n\t\"informatieobjecttype\": \"{{informatieobjecttype_url}}\",\n \"indicatieGebruiksrecht\": false,\n \"status\": \"gearchiveerd\",\n\t\"bestandsomvang\": 6\n}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "730783c6-9089-4ef4-8399-d724301e51d2", + "type": "text/javascript", + "packages": {}, + "exec": [ + "pm.environment.set(\"informatieobject_url\", pm.response.json().url);" + ], + "_lastExecutionId": "cc272502-acdc-4e4b-90b3-eea4a2a8ece8" + } + }, + { + "listen": "prerequest", + "script": { + "id": "ab08a94d-6181-43d6-8dcc-df24ff00013b", + "type": "text/javascript", + "packages": {}, + "exec": [ + "" + ], + "_lastExecutionId": "50e95c7a-861b-493f-a016-bbccf0065df7" + } + } + ] + }, + { + "id": "027f3961-e796-4498-ac61-e532ef58d61e", + "name": "Create relation between Zaak and Informatieobject with gebruiksrecht not null", + "request": { + "url": { + "path": [ + "zaakinformatieobjecten" + ], + "host": [ + "{{zrc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n \"informatieobject\": \"{{informatieobject_url}}\",\n \"zaak\": \"{{created_zaak_url}}\"\n}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "10810642-cfc5-45d1-85ab-4a240b51a23e", + "type": "text/javascript", + "exec": [ + "pm.environment.set(\"created_zaakinformatieobject_url\", pm.response.json().url);" + ], + "_lastExecutionId": "4aca2b6d-edcc-40d8-81cf-8c067777cb5f" + } + }, + { + "listen": "prerequest", + "script": { + "id": "ffce582e-a875-474f-82aa-fcc81a809086", + "type": "text/javascript", + "exec": [ + "" + ], + "_lastExecutionId": "d265c7ef-d62d-4ea9-a6ec-33a388eefef6" + } + } + ] + }, + { + "id": "c8c704b1-2bc5-4c4e-bf80-c5147c3a5a3b", + "name": "Add Resultaat to Zaak", + "request": { + "url": { + "path": [ + "resultaten" + ], + "host": [ + "{{zrc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n\t\"zaak\": \"{{created_zaak_url}}\",\n\t\"resultaattype\": \"{{resultaattype_url}}\"\n}" + } + }, + "response": [], + "event": [ + { + "listen": "prerequest", + "script": { + "id": "5fd1c2ba-485a-4ea4-b06a-543e381fb452", + "type": "text/javascript", + "packages": {}, + "exec": [ + "" + ], + "_lastExecutionId": "932f6758-91df-4c3a-a1b3-142d28f07d65" + } + }, + { + "listen": "test", + "script": { + "id": "c5a66cb3-b26c-4b8c-bad4-4aa17e0490c0", + "type": "text/javascript", + "packages": {}, + "exec": [ + "pm.environment.set(\"zaak_resultaat_url\", pm.response.json().url);" + ], + "_lastExecutionId": "75bbede4-5254-4012-94b5-c31341965b59" + } + } + ] + }, + { + "id": "7c8e6633-c69e-4121-a6ae-afe856c07691", + "name": "Add Eindstatus to Zaak", + "request": { + "url": { + "path": [ + "statussen" + ], + "host": [ + "{{zrc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n\t\"zaak\": \"{{created_zaak_url}}\",\n\t\"statustype\": \"{{eindstatustype}}\",\n\t\"datumStatusGezet\": \"2018-04-20T13:37:00\"\n}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "06f94dc1-df1c-47c1-9178-7370a4910c95", + "type": "text/javascript", + "packages": {}, + "exec": [ + "pm.environment.set(\"eindstatus_datumStatusGezet\", pm.response.json().datumStatusGezet);", + "pm.environment.set(\"eindstatus_url\", pm.response.json().url);" + ], + "_lastExecutionId": "73d2bfac-343c-4a36-ab97-3de5b535edf7" + } + }, + { + "listen": "prerequest", + "script": { + "id": "62329597-5b87-4c48-9f27-7db4d49a967e", + "type": "text/javascript", + "packages": {}, + "exec": [ + "" + ], + "_lastExecutionId": "ab5a4227-3197-48bf-a640-e5d355b98cf6" + } + } + ] + }, + { + "id": "aa3115ac-afea-41cf-91c0-fe35acfbe5af", + "name": "Add Klantcontact to Zaak", + "request": { + "url": { + "path": [ + "klantcontacten" + ], + "host": [ + "{{zrc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n\t\"zaak\": \"{{created_zaak_url}}\",\n\t\"datumtijd\": \"2019-02-20T00:00:00\"\n}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "d22e362b-62ea-47b3-bbbe-91a7e73c4f02", + "type": "text/javascript", + "exec": [ + "pm.environment.set(\"klantcontact_url\", pm.response.json().url);" + ], + "_lastExecutionId": "fd0dd654-4ffb-4fc1-9db9-e24ba4def685" + } + }, + { + "listen": "prerequest", + "script": { + "id": "09aeec9b-a1ee-4665-8935-85154ee6c278", + "type": "text/javascript", + "exec": [ + "" + ], + "_lastExecutionId": "4969fa7b-c94f-42b9-8b69-764fa6d6de36" + } + } + ] + }, + { + "id": "e2684c1a-3b34-4013-803a-4a04ff2e88ac", + "name": "Add Rol to Zaak", + "request": { + "url": { + "path": [ + "rollen" + ], + "host": [ + "{{zrc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n\t\"zaak\": \"{{created_zaak_url}}\",\n\t\"betrokkene\": \"http://example.com/2d0815580af94ee0a15aa677aa646e1a\",\n\t\"betrokkeneType\": \"natuurlijk_persoon\",\n\t\"rolomschrijving\": \"behandelaar\",\n\t\"roltoelichting\": \"testrol\",\n\t\"roltype\": \"{{roltype_url}}\"\n}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "c3f6cc6e-370c-4d44-8223-4035129ab83e", + "type": "text/javascript", + "exec": [ + "pm.environment.set(\"rol_url\", pm.response.json().url);" + ], + "_lastExecutionId": "55fbef81-9461-4352-9b10-5f64339f7b92" + } + }, + { + "listen": "prerequest", + "script": { + "id": "5a8a311a-e53f-4fc4-a2a6-b681e0b1cf9e", + "type": "text/javascript", + "exec": [ + "" + ], + "_lastExecutionId": "31fb93c0-d2c2-4750-9cc9-2535b26e2ce3" + } + } + ] + }, + { + "id": "24d66ca5-6dca-467b-a2b8-415a0c0961b1", + "name": "Create Zaakobject", + "request": { + "url": { + "path": [ + "zaakobjecten" + ], + "host": [ + "{{zrc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n\t\"zaak\": \"{{created_zaak_url}}\",\n\t\"objectType\": \"pand\",\n\t\"objectIdentificatie\": {\n\t\t\"identificatie\": \"test\"\n\t}\n}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "e4fda35d-6747-4773-8ada-391665089583", + "type": "text/javascript", + "exec": [ + "pm.environment.set(\"zaakobject_url\", pm.response.json().url);" + ], + "_lastExecutionId": "8175f85f-da36-4dcf-8138-ded8509e31f6" + } + } + ] + }, + { + "id": "f71db5d0-1b97-416d-ac45-b7f639fc88f5", + "name": "Add Zaakeigenschap to Zaak", + "request": { + "url": { + "path": [ + "zaakeigenschappen" + ], + "host": [ + "{{created_zaak_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n\t\"zaak\": \"{{created_zaak_url}}\",\n\t\"eigenschap\": \"{{zaaktype_eigenschap}}\",\n\t\"waarde\": \"test\"\n}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "404d21f0-7fe3-424e-a8b6-bf1856253ad9", + "type": "text/javascript", + "exec": [ + "pm.environment.set(\"zaakeigenschap_url\", pm.response.json().url);" + ], + "_lastExecutionId": "939764cd-7964-486e-b436-d311c1bde014" + } + }, + { + "listen": "prerequest", + "script": { + "id": "96b30948-7f74-4175-9490-20b51b9c85fc", + "type": "text/javascript", + "exec": [ + "" + ], + "_lastExecutionId": "131815be-7a9c-4523-b42d-bdb6f98b9b62" + } + } + ] + }, + { + "id": "894e375d-ee49-4226-b420-be0522ec6bf5", + "name": "(zrc-007a) Zaak.einddatum volgt logisch uit eindstatus", + "request": { + "url": { + "host": [ + "{{created_zaak_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Accept-Crs", + "value": "EPSG:4326" + }, + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "GET", + "body": { + "mode": "raw", + "raw": "" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "23516296-e939-4d3a-a28b-14438a2562d7", + "type": "text/javascript", + "packages": {}, + "exec": [ + "pm.test(\"Toevoegen eindstatus aan Zaak laat Zaak.einddatum afleiden uit status.datumStatusGezet\", function(){", + " pm.response.to.have.status(200);", + " ", + "", + " pm.expect(pm.response.json().einddatum).equals('2018-04-20');", + "});" + ], + "_lastExecutionId": "226a501f-d391-4bb9-a401-9e4ed7da475b" + } + }, + { + "listen": "prerequest", + "script": { + "id": "d3691dc7-9e04-49f0-9118-0277aacb4b96", + "type": "text/javascript", + "packages": {}, + "exec": [ + "" + ], + "_lastExecutionId": "3a9b2fd3-8a11-40a0-aa53-84cc971c148e" + } + } + ], + "protocolProfileBehavior": { + "disableBodyPruning": true + } + }, + { + "id": "98e2897f-fcc9-40fb-9327-a839f5ba15e1", + "name": "(zrc-007b) Informatieobject.indicatieGebruikersrecht niet null bij afsluiten zaak", + "request": { + "url": { + "host": [ + "{{informatieobject_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Accept-Crs", + "value": "EPSG:4326" + } + ], + "method": "GET" + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "4c865327-01d4-41d1-b251-0ba1d2390640", + "type": "text/javascript", + "packages": {}, + "exec": [ + "pm.test(\"Afsluiten Zaak betekent Informatieobject.indicatieGebruiksrecht gezet voor alle gerelateerde objecten\", function(){", + " pm.response.to.have.status(200);", + " pm.expect(pm.response.json().indicatieGebruiksrecht).to.not.be.equal(null);", + "});", + "", + "" + ], + "_lastExecutionId": "33d0ac3d-fbad-4359-81bc-b37d1c9064d0" + } + }, + { + "listen": "prerequest", + "script": { + "id": "c578fdc6-8fbc-4913-bb60-e0e413b2e26b", + "type": "text/javascript", + "packages": {}, + "exec": [ + "" + ], + "_lastExecutionId": "fed51f54-ab25-48ec-a4c4-288c9d601d92" + } + } + ] + }, + { + "id": "09252b82-893e-4608-9045-a602e48e30ab", + "name": "set restricted token", + "request": { + "url": { + "path": [ + "catalogussen" + ], + "host": [ + "{{ztc_url}}" + ], + "query": [], + "variable": [] + }, + "method": "GET" + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "3b9c584b-f1a5-4184-9ce9-4975f64a31cb", + "type": "text/javascript", + "packages": {}, + "exec": [ + "pm.environment.set(\"jwt_token\", pm.environment.get(\"jwt-limited\"));", + " pm.environment.set(\"_original_client_id\", pm.environment.get(\"client_id\"));", + " pm.environment.set(\"_original_secret\", pm.environment.get(\"secret\"));", + " pm.environment.set(\"client_id\", pm.environment.get(\"client_id_limited\"));", + " pm.environment.set(\"secret\", pm.environment.get(\"secret_limited\"));", + " pm.environment.set(\"client_id\", pm.environment.get(\"client_id_limited\"));", + " pm.environment.set(\"secret\", pm.environment.get(\"secret_limited\"));" + ], + "_lastExecutionId": "512a7852-60c1-48ba-b558-3a90562fd479" + } + } + ] + }, + { + "id": "2833abca-7d9b-4c59-b2e2-fc08b542633f", + "name": "(zrc-007c) Afgesloten zaak bijwerken is niet toegestaan zonder scope zaken.geforceerd-bijwerken", + "request": { + "url": { + "host": [ + "{{created_zaak_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Accept-Crs", + "value": "EPSG:4326" + }, + { + "key": "Content-Crs", + "value": "EPSG:4326" + } + ], + "method": "PUT", + "body": { + "mode": "raw", + "raw": "{\r\n\r\n \"bronorganisatie\": \"000000000\",\r\n \"omschrijving\": \"string\",\r\n \"toelichting\": \"string\",\r\n \"zaaktype\": \"{{zaaktype_url}}\",\r\n \"registratiedatum\": \"2019-04-09\",\r\n \"verantwoordelijkeOrganisatie\": \"000000000\",\r\n \"startdatum\": \"2019-04-09\",\r\n \"einddatum\": null,\r\n \"einddatumGepland\": \"2019-04-20\",\r\n \"uiterlijkeEinddatumAfdoening\": \"2019-04-09\",\r\n \"publicatiedatum\": \"2019-04-09\",\r\n \"communicatiekanaal\": \"\",\r\n \"productenOfDiensten\": [],\r\n \"vertrouwelijkheidaanduiding\": \"geheim\",\r\n \"betalingsindicatie\": \"geheel\",\r\n \"betalingsindicatieWeergave\": null,\r\n \"laatsteBetaaldatum\": \"2019-01-01T00:00:00Z\",\r\n \"zaakgeometrie\": {\r\n \"type\": \"Point\",\r\n \"coordinates\": [\r\n 53.0,\r\n 5.0\r\n ]\r\n },\r\n \"verlenging\": null,\r\n \"opschorting\": {\r\n \"indicatie\": true,\r\n \"reden\": \"string\"\r\n },\r\n \"selectielijstklasse\": \"https://referentielijsten.roxit.nl/api/v1/resultaten/0fe71ce3-b1e1-48eb-9070-be2756fc71b5\",\r\n \"hoofdzaak\": null,\r\n \"deelzaken\": [],\r\n \"relevanteAndereZaken\": [],\r\n \"eigenschappen\": [],\r\n \"rollen\": [],\r\n \"status\": null,\r\n \"zaakinformatieobjecten\": [],\r\n \"zaakobjecten\": [],\r\n \"resultaat\": null,\r\n \"kenmerken\": [],\r\n \"archiefnominatie\": null,\r\n \"archiefstatus\": \"nog_te_archiveren\",\r\n \"archiefactiedatum\": null,\r\n \"opdrachtgevendeOrganisatie\": null,\r\n \"processobjectaard\": null,\r\n \"startdatumBewaartermijn\": null,\r\n \"processobject\": null\r\n}" + } + }, + "response": [], + "event": [ + { + "listen": "prerequest", + "script": { + "id": "e7e48489-21d4-459f-825b-4d49e6de4a2b", + "type": "text/javascript", + "packages": {}, + "exec": [ + "" + ], + "_lastExecutionId": "57461603-9058-4e64-8025-8d7d57aabd73" + } + }, + { + "listen": "test", + "script": { + "id": "c4f3928b-c90d-48eb-9725-bab8747b4ff8", + "type": "text/javascript", + "packages": {}, + "exec": [ + "pm.test(\"Afgesloten Zaak bijwerken zonder scope zaken.geforceerd-bijwerken geeft 403\", function() {", + " pm.response.to.have.status(403);", + " pm.expect(pm.response.json().code).to.be.equal(\"permission_denied\");", + "});" + ], + "_lastExecutionId": "7f93a35a-768e-4413-8752-835d35ec11b1" + } + } + ] + }, + { + "id": "df799216-40bf-448e-a067-b7a129c2dcee", + "name": "(zrc-007c) Afgesloten zaak deels bijwerken is niet toegestaan zonder scope zaken.geforceerd-bijwerken", + "request": { + "url": { + "host": [ + "{{created_zaak_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Accept-Crs", + "value": "EPSG:4326" + }, + { + "key": "Content-Crs", + "value": "EPSG:4326" + } + ], + "method": "PATCH", + "body": { + "mode": "raw", + "raw": "{\n\t\"omschrijving\": \"aangepast\"\n}" + } + }, + "response": [], + "event": [ + { + "listen": "prerequest", + "script": { + "id": "198e2b21-4081-4ac8-8c81-3589f1b5e374", + "type": "text/javascript", + "packages": {}, + "exec": [ + "" + ], + "_lastExecutionId": "8aec6e50-5c9e-47a0-9d00-a9de552d0e51" + } + }, + { + "listen": "test", + "script": { + "id": "cc50f9cf-8000-4cc9-b8b1-fb9f79bcf272", + "type": "text/javascript", + "packages": {}, + "exec": [ + "pm.test(\"Afgesloten Zaak deels bijwerken zonder scope zaken.geforceerd-bijwerken geeft 403\", function() {", + " pm.response.to.have.status(403);", + " pm.expect(pm.response.json().code).to.be.equal(\"permission_denied\");", + "});", + "", + "" + ], + "_lastExecutionId": "2db52502-8f35-4163-a274-ba7cb4af901b" + } + } + ] + }, + { + "id": "ed66fc2f-1ddb-44e6-a98e-ffc5d7075127", + "name": "(zrc-007d) Klantcontact bij gesloten Zaak aanmaken niet toegestaan zonder scope zaken.geforceerd-bijwerken", + "request": { + "url": { + "path": [ + "klantcontacten" + ], + "host": [ + "{{zrc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n\t\"zaak\": \"{{created_zaak_url}}\",\n\t\"datumtijd\": \"2019-02-22T00:00:00\"\n}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "c6d35df5-0006-46a4-9544-764cfee5eeaf", + "type": "text/javascript", + "packages": {}, + "exec": [ + "pm.test(\"Klantcontact aanmaken bij gesloten Zaak zonder scope zaken.geforceerd-bijwerken geeft 403\", function() {", + " pm.response.to.have.status(403);", + " pm.expect(pm.response.json().code).to.be.equal(\"permission_denied\");", + "});" + ], + "_lastExecutionId": "daea07be-91a1-4c0e-9d95-0748a3d84614" + } + }, + { + "listen": "prerequest", + "script": { + "id": "1c878e09-09af-4430-8ace-e6be117c88d2", + "type": "text/javascript", + "packages": {}, + "exec": [ + "" + ], + "_lastExecutionId": "cedb69a9-587c-4825-9d26-beb259c2616c" + } + } + ] + }, + { + "id": "5b1f5f1f-d5e6-4ea2-9074-b09288d31162", + "name": "(zrc-007e) Resultaat bij gesloten Zaak aanmaken niet toegestaan zonder scope zaken.geforceerd-bijwerken", + "request": { + "url": { + "path": [ + "resultaten" + ], + "host": [ + "{{zrc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n\t\"zaak\": \"{{created_zaak_url}}\",\n\t\"resultaattype\": \"{{resultaattype_url}}\"\n}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "ce490eb7-2366-4cdd-bea5-ed94947888ab", + "type": "text/javascript", + "packages": {}, + "exec": [ + "pm.test(\"Resultaat aanmaken bij gesloten Zaak zonder scope zaken.geforceerd-bijwerken geeft 403\", function() {", + " pm.response.to.have.status(403);", + " pm.expect(pm.response.json().code).to.be.equal(\"permission_denied\");", + "});" + ], + "_lastExecutionId": "a5b1ac20-5ad6-4051-a429-269ea6d9bed3" + } + }, + { + "listen": "prerequest", + "script": { + "id": "932bb2b3-b466-47ee-8c8b-50cf843d12c4", + "type": "text/javascript", + "packages": {}, + "exec": [ + "" + ], + "_lastExecutionId": "250171a9-ce45-4ee1-bd97-2f1ec8802c1f" + } + } + ] + }, + { + "id": "3f76b406-bf4d-49b8-afa9-25b1ee114f45", + "name": "(zrc-007e) Resultaat bij gesloten Zaak bijwerken niet toegestaan zonder scope zaken.geforceerd-bijwerken", + "request": { + "url": { + "host": [ + "{{zaak_resultaat_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "PUT", + "body": { + "mode": "raw", + "raw": "{\n\t\"zaak\": \"{{created_zaak_url}}\",\n\t\"resultaattype\": \"{{resultaattype_url}}\"\n}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "d71b10c1-1e83-4444-aa48-de00cfd42c32", + "type": "text/javascript", + "packages": {}, + "exec": [ + "pm.test(\"Resultaat bijwerken bij gesloten Zaak zonder scope zaken.geforceerd-bijwerken geeft 403\", function() {", + " pm.response.to.have.status(403);", + " pm.expect(pm.response.json().code).to.be.equal(\"permission_denied\");", + "});" + ], + "_lastExecutionId": "439af762-db93-4ca7-9e10-aee3c3c2409f" + } + }, + { + "listen": "prerequest", + "script": { + "id": "ed5ba4d7-09c0-4ef3-b2d0-73b3115109a8", + "type": "text/javascript", + "packages": {}, + "exec": [ + "" + ], + "_lastExecutionId": "081380d4-addd-44e7-bf94-9ac527d933b6" + } + } + ] + }, + { + "id": "4bd71676-2144-4846-950f-1380118563cb", + "name": "(zrc-007e) Resultaat bij gesloten Zaak deels bijwerken niet toegestaan zonder scope zaken.geforceerd-bijwerken", + "request": { + "url": { + "host": [ + "{{zaak_resultaat_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "PATCH", + "body": { + "mode": "raw", + "raw": "{\n\t\"zaak\": \"{{created_zaak_url}}\",\n\t\"resultaattype\": \"{{resultaattype_url}}\"\n}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "f0a177c1-9f84-4b58-afe1-53b5c1d4bc7f", + "type": "text/javascript", + "packages": {}, + "exec": [ + "pm.test(\"Resultaat deels bijwerken bij gesloten Zaak zonder scope zaken.geforceerd-bijwerken geeft 403\", function() {", + " pm.response.to.have.status(403);", + " pm.expect(pm.response.json().code).to.be.equal(\"permission_denied\");", + "});" + ], + "_lastExecutionId": "4c230604-baba-458f-98e3-715c37fae4ba" + } + }, + { + "listen": "prerequest", + "script": { + "id": "d5be5f05-91d9-47fe-aea6-649045bca588", + "type": "text/javascript", + "packages": {}, + "exec": [ + "" + ], + "_lastExecutionId": "21aaf3ad-3e26-4086-a792-748fd6d9341b" + } + } + ] + }, + { + "id": "10b0b6fc-6ba1-4a71-b269-fc9e618810af", + "name": "(zrc-007e) Resultaat bij gesloten Zaak verwijderen niet toegestaan zonder scope zaken.geforceerd-bijwerken", + "request": { + "url": { + "host": [ + "{{zaak_resultaat_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "DELETE" + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "94318c8f-b4a7-4ad5-8b2a-407d38f3aac6", + "type": "text/javascript", + "packages": {}, + "exec": [ + "pm.test(\"Resultaat verwijderen bij gesloten Zaak zonder scope zaken.geforceerd-bijwerken geeft 403\", function() {", + " pm.response.to.have.status(403);", + " pm.expect(pm.response.json().code).to.be.equal(\"permission_denied\");", + "});" + ], + "_lastExecutionId": "a7daf9aa-ccce-41fd-8fdb-9bec3d3240d0" + } + }, + { + "listen": "prerequest", + "script": { + "id": "ff47ff7f-3321-4060-8828-e7bacf56ad35", + "type": "text/javascript", + "packages": {}, + "exec": [ + "" + ], + "_lastExecutionId": "5e3145cf-2985-4128-8a57-9402d88515c5" + } + } + ] + }, + { + "id": "24e55e60-1433-4f20-a2a4-6443e34d5b64", + "name": "(zrc-007f) Rol bij gesloten Zaak aanmaken niet toegestaan zonder scope zaken.geforceerd-bijwerken", + "request": { + "url": { + "path": [ + "rollen" + ], + "host": [ + "{{zrc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n\t\"zaak\": \"{{created_zaak_url}}\",\n\t\"betrokkene\": \"http://example.com/2d0815580af94ee0a15aa677aa646e1a\",\n\t\"betrokkeneType\": \"natuurlijk_persoon\",\n\t\"rolomschrijving\": \"behandelaar\",\n\t\"roltoelichting\": \"testrol\",\n\t\"roltype\": \"{{roltype_url}}\"\n}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "9148221a-4e62-406f-94b4-7f20b8db9371", + "type": "text/javascript", + "packages": {}, + "exec": [ + "pm.test(\"Rol aanmaken bij gesloten Zaak zonder scope zaken.geforceerd-bijwerken geeft 403\", function() {", + " pm.response.to.have.status(403);", + " pm.expect(pm.response.json().code).to.be.equal(\"permission_denied\");", + "});" + ], + "_lastExecutionId": "b09cc1ca-19cd-4d24-9d5d-b3d397d5bb6d" + } + }, + { + "listen": "prerequest", + "script": { + "id": "f2a1f393-8ba0-40ab-bf19-ae2756e911e0", + "type": "text/javascript", + "packages": {}, + "exec": [ + "" + ], + "_lastExecutionId": "5e20cd93-2624-45e9-882f-f57d4c1280d5" + } + } + ] + }, + { + "id": "cb6b8d00-8678-49e6-bba2-8b5aa8bc6cfa", + "name": "(zrc-007f) Rol bij gesloten Zaak verwijderen niet toegestaan zonder scope zaken.geforceerd-bijwerken", + "request": { + "url": { + "host": [ + "{{rol_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "DELETE" + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "74d0244b-d7d9-4c34-8c14-34d1c4848a44", + "type": "text/javascript", + "packages": {}, + "exec": [ + "pm.test(\"Rol verwijderen bij gesloten Zaak zonder scope zaken.geforceerd-bijwerken geeft 403\", function() {", + " pm.response.to.have.status(403);", + " pm.expect(pm.response.json().code).to.be.equal(\"permission_denied\");", + "});" + ], + "_lastExecutionId": "a1225580-037f-43dc-b82d-e4230bc3f91e" + } + }, + { + "listen": "prerequest", + "script": { + "id": "9095fc8a-d56b-49e0-8c3e-170961acdfc2", + "type": "text/javascript", + "packages": {}, + "exec": [ + "" + ], + "_lastExecutionId": "4f26a03a-acf6-464f-afd4-2e6d2ec6c7b2" + } + } + ] + }, + { + "id": "cac2d49e-6529-44ee-ba7f-8c6a82cb21bf", + "name": "(zrc-007g) Status toevoegen bij gesloten Zaak is niet toegestaan zonder scope zaken.geforceerd-bijwerken", + "request": { + "url": { + "path": [ + "statussen" + ], + "host": [ + "{{zrc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n\t\"zaak\": \"{{created_zaak_url}}\",\n\t\"statustype\": \"{{eindstatustype}}\",\n\t\"datumStatusGezet\": \"2018-04-22T13:37:00\"\n}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "40d1ffcb-5b3c-497e-a255-e6344fde4282", + "type": "text/javascript", + "packages": {}, + "exec": [ + "pm.test(\"Status aanmaken bij gesloten Zaak zonder scope zaken.geforceerd-bijwerken geeft 403\", function() {", + " pm.response.to.have.status(403);", + " pm.expect(pm.response.json().code).to.be.equal(\"permission_denied\");", + "});" + ], + "_lastExecutionId": "1455dded-9f11-4f85-81a9-5cfb50264557" + } + }, + { + "listen": "prerequest", + "script": { + "id": "df5d3734-c3d5-44f9-9b8f-7c1d8e0d280b", + "type": "text/javascript", + "packages": {}, + "exec": [ + "" + ], + "_lastExecutionId": "a34ecaf5-4070-406c-a980-f862c2c1f37f" + } + } + ] + }, + { + "id": "760e1057-c285-48ba-85be-5314f6021452", + "name": "(zrc-007h) ZaakInformatieObject toevoegen bij gesloten Zaak is niet toegestaan zonder scope zaken.geforceerd-bijwerken", + "request": { + "url": { + "path": [ + "zaakinformatieobjecten" + ], + "host": [ + "{{zrc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n \"informatieobject\": \"{{informatieobject_gebruiksrecht_null_url}}\",\n \"zaak\": \"{{created_zaak_url}}\"\n}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "917acc3f-245a-4920-9aa5-2bdc099219da", + "type": "text/javascript", + "packages": {}, + "exec": [ + "pm.test(\"ZaakInformatieObject aanmaken bij gesloten Zaak zonder scope zaken.geforceerd-bijwerken geeft 403\", function() {", + " pm.response.to.have.status(403);", + " pm.expect(pm.response.json().code).to.be.equal(\"permission_denied\");", + "});" + ], + "_lastExecutionId": "4e3f0dde-1cdf-4b24-99a0-50172a3943a8" + } + }, + { + "listen": "prerequest", + "script": { + "id": "e9cadfca-c454-48ab-800b-198d4d01384b", + "type": "text/javascript", + "packages": {}, + "exec": [ + "" + ], + "_lastExecutionId": "42aab2cd-6dfd-4e70-9a5e-c831f934faed" + } + } + ] + }, + { + "id": "69331cdf-304f-40a2-9500-5d6c17118330", + "name": "(zrc-007h) ZaakInformatieObject bijwerken bij gesloten Zaak is niet toegestaan zonder scope zaken.geforceerd-bijwerken", + "request": { + "url": { + "host": [ + "{{created_zaakinformatieobject_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "PUT", + "body": { + "mode": "raw", + "raw": "{\n \"informatieobject\": \"{{informatieobject_url}}\",\n \"zaak\": \"{{created_zaak_url}}\",\n \"titel\": \"bla\"\n}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "18638837-ec24-419a-b85f-91a5cff15d2a", + "type": "text/javascript", + "packages": {}, + "exec": [ + "pm.test(\"ZaakInformatieObject bijwerken bij gesloten Zaak zonder scope zaken.geforceerd-bijwerken geeft 403\", function() {", + " pm.response.to.have.status(403);", + " pm.expect(pm.response.json().code).to.be.equal(\"permission_denied\");", + "});" + ], + "_lastExecutionId": "49fd333b-2713-4637-aad0-87edbe19eb43" + } + }, + { + "listen": "prerequest", + "script": { + "id": "656623a9-6355-42b3-9b56-5290240125dd", + "type": "text/javascript", + "packages": {}, + "exec": [ + "" + ], + "_lastExecutionId": "4accd4d0-4922-4758-b70d-665720ee57a4" + } + } + ] + }, + { + "id": "28b42a39-118f-47fb-988c-c553c13ad36e", + "name": "(zrc-007h) ZaakInformatieObject deels bijwerken bij gesloten Zaak is niet toegestaan zonder scope zaken.geforceerd-bijwerken", + "request": { + "url": { + "host": [ + "{{created_zaakinformatieobject_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "PATCH", + "body": { + "mode": "raw", + "raw": "{\n \"informatieobject\": \"{{informatieobject_url}}\",\n \"zaak\": \"{{created_zaak_url}}\",\n \"titel\": \"bla\"\n}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "a7f50240-b433-48fc-8855-f573aec36a7e", + "type": "text/javascript", + "packages": {}, + "exec": [ + "pm.test(\"ZaakInformatieObject deels bijwerken bij gesloten Zaak zonder scope zaken.geforceerd-bijwerken geeft 403\", function() {", + " pm.response.to.have.status(403);", + " pm.expect(pm.response.json().code).to.be.equal(\"permission_denied\");", + "});" + ], + "_lastExecutionId": "ba81d1bd-50c4-4e28-89e0-75a0836de728" + } + }, + { + "listen": "prerequest", + "script": { + "id": "a7294ec2-5558-43bc-9b6a-6b65a6f3f780", + "type": "text/javascript", + "packages": {}, + "exec": [ + "" + ], + "_lastExecutionId": "cc4dea11-729d-4129-a79b-4d57b6d6cf21" + } + } + ] + }, + { + "id": "95a2e022-3bc3-4fd2-8f54-39aeb33deb77", + "name": "(zrc-007h) ZaakInformatieObject verwijderen bij gesloten Zaak is niet toegestaan zonder scope zaken.geforceerd-bijwerken", + "request": { + "url": { + "host": [ + "{{created_zaakinformatieobject_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "DELETE" + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "2f473fe1-aa5a-4fd8-8469-3b7ecbffcb06", + "type": "text/javascript", + "packages": {}, + "exec": [ + "pm.test(\"ZaakInformatieObject verwijderen bij gesloten Zaak zonder scope zaken.geforceerd-bijwerken geeft 403\", function() {", + " pm.response.to.have.status(403);", + " pm.expect(pm.response.json().code).to.be.equal(\"permission_denied\");", + "});" + ], + "_lastExecutionId": "5fb1899c-3338-4139-be3e-25e3c4f4e9a4" + } + }, + { + "listen": "prerequest", + "script": { + "id": "ba508967-96bf-4152-852a-e5cc77902180", + "type": "text/javascript", + "packages": {}, + "exec": [ + "" + ], + "_lastExecutionId": "b2da6d2a-96ba-4a61-bb4f-c3f3af349dae" + } + } + ] + }, + { + "id": "788534b9-736a-4345-9d0c-3b36eca8f341", + "name": "(zrc-007i) ZaakObject toevoegen bij gesloten Zaak is niet toegestaan zonder scope zaken.geforceerd-bijwerken", + "request": { + "url": { + "path": [ + "zaakobjecten" + ], + "host": [ + "{{zrc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n\t\"zaak\": \"{{created_zaak_url}}\",\n\t\"objectType\": \"pand\",\n\t\"objectIdentificatie\": {\n\t\t\"identificatie\": \"test\"\n\t}\n}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "d40493f1-0273-45db-9ac4-85aca7f3a073", + "type": "text/javascript", + "packages": {}, + "exec": [ + "pm.test(\"ZaakObject aanmaken bij gesloten Zaak zonder scope zaken.geforceerd-bijwerken geeft 403\", function() {", + " pm.response.to.have.status(403);", + " pm.expect(pm.response.json().code).to.be.equal(\"permission_denied\");", + "});" + ], + "_lastExecutionId": "a687f291-bdf3-42f5-8e83-1ce3c65afd04" + } + }, + { + "listen": "prerequest", + "script": { + "id": "9f6a05c7-98d3-4f40-9e8b-310cc05e290a", + "type": "text/javascript", + "packages": {}, + "exec": [ + "" + ], + "_lastExecutionId": "e9677e02-1e4d-415c-b64f-14453ca2ace4" + } + } + ] + }, + { + "id": "d2f56f4e-c6a4-4a98-a0e4-8c0546e2aa9b", + "name": "(zrc-007k) ZaakEigenschap toevoegen bij gesloten Zaak is niet toegestaan zonder scope zaken.geforceerd-bijwerken", + "request": { + "url": { + "path": [ + "zaakeigenschappen" + ], + "host": [ + "{{created_zaak_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n\t\"zaak\": \"{{created_zaak_url}}\",\n\t\"eigenschap\": \"{{zaaktype_eigenschap}}\",\n\t\"waarde\": \"test\"\n}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "e23c2bd5-db14-4345-bb91-3d08cdae1dbf", + "type": "text/javascript", + "packages": {}, + "exec": [ + "pm.test(\"Zaakeigenschap aanmaken bij gesloten Zaak zonder scope zaken.geforceerd-bijwerken geeft 403\", function() {", + " pm.response.to.have.status(403);", + " pm.expect(pm.response.json().code).to.be.equal(\"permission_denied\");", + "});" + ], + "_lastExecutionId": "7e6c8385-d3b9-4bd9-8d9c-1b9d20f15181" + } + }, + { + "listen": "prerequest", + "script": { + "id": "617c55a5-0a9e-43b7-9524-d7e4557bf541", + "type": "text/javascript", + "packages": {}, + "exec": [ + "" + ], + "_lastExecutionId": "a7a6cda4-339a-4bc3-a999-fb5d92f87dd1" + } + } + ] + }, + { + "id": "99f52437-aba8-4552-b761-25b16cfb95d5", + "name": "set full token Copy", + "request": { + "url": { + "path": [ + "catalogussen" + ], + "host": [ + "{{ztc_url}}" + ], + "query": [], + "variable": [] + }, + "method": "GET" + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "79d89f68-0c8f-40a4-bab6-0a905e84289a", + "type": "text/javascript", + "packages": {}, + "exec": [ + "" + ], + "_lastExecutionId": "602fc6a2-da7b-4273-87fd-5a7d75c997c0" + } + }, + { + "listen": "prerequest", + "script": { + "id": "03295b54-11bb-4245-bdb1-5a33c1079682", + "type": "text/javascript", + "packages": {}, + "exec": [ + "pm.environment.set(\"jwt_token\", pm.environment.get(\"jwt_full\"));", + " var origId = pm.environment.get(\"_original_client_id\");", + " var origSecret = pm.environment.get(\"_original_secret\");", + " if (origId) { pm.environment.set(\"client_id\", origId); }", + " if (origSecret) { pm.environment.set(\"secret\", origSecret); }", + " pm.environment.set(\"secret\", pm.environment.get(\"secret\") || \"procest-admin-secret-key-for-testing\");" + ], + "_lastExecutionId": "92ba0532-9aba-45f6-959c-b2e859750135" + } + } + ] + }, + { + "id": "368b2a01-1aef-40d9-8871-de5da2277646", + "name": "(zrc-007i) Afgesloten zaak bijwerken is toegestaan met scope zaken.geforceerd-bijwerken", + "request": { + "url": { + "host": [ + "{{created_zaak_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Accept-Crs", + "value": "EPSG:4326" + }, + { + "key": "Content-Crs", + "value": "EPSG:4326" + } + ], + "method": "PUT", + "body": { + "mode": "raw", + "raw": "{\r\n \"url\": \"https://zaken.spt-rx-services.nl/api/v1/zaken/cba40feb-2b38-4490-b12d-84a39e8df361\",\r\n \"uuid\": \"cba40feb-2b38-4490-b12d-84a39e8df361\",\r\n \"bronorganisatie\": \"000000000\",\r\n \"omschrijving\": \"string 2\",\r\n \"toelichting\": \"string\",\r\n \"zaaktype\": \"{{zaaktype_url}}\",\r\n \"registratiedatum\": \"2019-04-09\",\r\n \"verantwoordelijkeOrganisatie\": \"000000000\",\r\n \"startdatum\": \"2019-04-09\",\r\n \"einddatum\": null,\r\n \"einddatumGepland\": \"2019-04-20\",\r\n \"uiterlijkeEinddatumAfdoening\": \"2019-04-09\",\r\n \"publicatiedatum\": \"2019-04-09\",\r\n \"communicatiekanaal\": \"\",\r\n \"productenOfDiensten\": [],\r\n \"vertrouwelijkheidaanduiding\": \"geheim\",\r\n \"betalingsindicatie\": \"geheel\",\r\n \"betalingsindicatieWeergave\": null,\r\n \"laatsteBetaaldatum\": \"2019-01-01T00:00:00Z\",\r\n \"zaakgeometrie\": {\r\n \"type\": \"Point\",\r\n \"coordinates\": [\r\n 53.0,\r\n 5.0\r\n ]\r\n },\r\n \"verlenging\": null,\r\n \"opschorting\": {\r\n \"indicatie\": true,\r\n \"reden\": \"string\"\r\n },\r\n \"selectielijstklasse\": \"https://referentielijsten.roxit.nl/api/v1/resultaten/0fe71ce3-b1e1-48eb-9070-be2756fc71b5\",\r\n \"hoofdzaak\": null,\r\n \"deelzaken\": [],\r\n \"relevanteAndereZaken\": [],\r\n \"eigenschappen\": [],\r\n \"rollen\": [],\r\n \"status\": null,\r\n \"zaakinformatieobjecten\": [],\r\n \"zaakobjecten\": [],\r\n \"resultaat\": null,\r\n \"kenmerken\": [],\r\n \"archiefnominatie\": null,\r\n \"archiefstatus\": \"nog_te_archiveren\",\r\n \"archiefactiedatum\": null,\r\n \"opdrachtgevendeOrganisatie\": null,\r\n \"processobjectaard\": null,\r\n \"startdatumBewaartermijn\": null,\r\n \"processobject\": null\r\n}" + } + }, + "response": [], + "event": [ + { + "listen": "prerequest", + "script": { + "id": "5904beb0-e34e-4264-868c-64ebd0e5f6ee", + "type": "text/javascript", + "packages": {}, + "exec": [ + "" + ], + "_lastExecutionId": "bdeccfe8-ed43-49d9-a6df-c9d7fa1b64d7" + } + }, + { + "listen": "test", + "script": { + "id": "103ed717-a9ae-46c0-b9d3-d315457c87db", + "type": "text/javascript", + "packages": {}, + "exec": [ + "pm.test(\"Afgesloten Zaak bijwerken met scope zaken.geforceerd-bijwerken geeft 200\", function() {", + " pm.response.to.have.status(200);", + " pm.expect(pm.response.json().omschrijving).to.be.equal(\"string 2\");", + "});" + ], + "_lastExecutionId": "ca4b1b0a-7c0c-408c-86ec-a951c957e68b" + } + } + ] + }, + { + "id": "06b7cc33-bac4-48c2-b3c3-612615b10a60", + "name": "(zrc-007i) Afgesloten zaak deels bijwerken is toegestaan met scope zaken.geforceerd-bijwerken", + "request": { + "url": { + "host": [ + "{{created_zaak_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Accept-Crs", + "value": "EPSG:4326" + }, + { + "key": "Content-Crs", + "value": "EPSG:4326" + } + ], + "method": "PATCH", + "body": { + "mode": "raw", + "raw": "{\n\t\"omschrijving\": \"aangepast\"\n}" + } + }, + "response": [], + "event": [ + { + "listen": "prerequest", + "script": { + "id": "b20a3dc6-1d90-4e6a-8fa3-35b132eb2b64", + "type": "text/javascript", + "packages": {}, + "exec": [ + "" + ], + "_lastExecutionId": "1497e0fb-08d4-4e6a-b549-14039f0058e9" + } + }, + { + "listen": "test", + "script": { + "id": "a1967b7a-91ab-4905-918d-49a64e28753c", + "type": "text/javascript", + "packages": {}, + "exec": [ + "pm.test(\"Afgesloten Zaak deels bijwerken zonder scope zaken.geforceerd-bijwerken geeft 200\", function() {", + " pm.response.to.have.status(200);", + " pm.expect(pm.response.json().omschrijving).to.be.equal(\"aangepast\");", + "});", + "", + "" + ], + "_lastExecutionId": "1145c413-b1ee-4eb1-ab3b-6980c577d96e" + } + } + ] + }, + { + "id": "d17629da-db16-4b39-ae62-81c3e40aaf52", + "name": "(zrc-007j) Klantcontact bij gesloten Zaak aanmaken toegestaan met scope zaken.geforceerd-bijwerken", + "request": { + "url": { + "path": [ + "klantcontacten" + ], + "host": [ + "{{zrc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n\t\"zaak\": \"{{created_zaak_url}}\",\n\t\"datumtijd\": \"2019-02-22T00:00:00\"\n}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "b3396ace-a231-48e6-a3c3-91dbcf00a5b0", + "type": "text/javascript", + "exec": [ + "pm.test(\"Klantcontact aanmaken bij gesloten Zaak met scope zaken.geforceerd-bijwerken geeft 201\", function() {", + " pm.response.to.have.status(201);", + "});" + ], + "_lastExecutionId": "42e3445b-bdb5-4dce-8460-15cdcbdd26f7" + } + }, + { + "listen": "prerequest", + "script": { + "id": "eccdbd08-2229-42ad-8814-87be88820965", + "type": "text/javascript", + "exec": [ + "" + ], + "_lastExecutionId": "eb8ed4c4-77b6-4952-8214-5154330f97d9" + } + } + ] + }, + { + "id": "9a4d310f-f95b-4262-8644-f893bfc85d90", + "name": "(zrc-007k) Resultaat bij gesloten Zaak verwijderen toegestaan met scope zaken.geforceerd-bijwerken", + "request": { + "url": { + "host": [ + "{{zaak_resultaat_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "DELETE" + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "b4b29bd0-d25d-4d4c-9a9a-f5937d658eb7", + "type": "text/javascript", + "exec": [ + "pm.test(\"Resultaat verwijderen bij gesloten Zaak zonder scope zaken.geforceerd-bijwerken geeft 204\", function() {", + " pm.response.to.have.status(204);", + "});" + ], + "_lastExecutionId": "90a9345e-553d-4036-9280-aa30e94dfd24" + } + }, + { + "listen": "prerequest", + "script": { + "id": "d037159a-6b4c-4cc7-b311-e572c0f1f7f2", + "type": "text/javascript", + "exec": [ + "" + ], + "_lastExecutionId": "79d58d8c-f5e5-4a73-9956-538e63e2c882" + } + } + ] + }, + { + "id": "1d011d3e-2bb3-42ae-b404-48d679cfa858", + "name": "(zrc-007k) Resultaat bij gesloten Zaak aanmaken toegestaan met scope zaken.geforceerd-bijwerken", + "request": { + "url": { + "path": [ + "resultaten" + ], + "host": [ + "{{zrc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n\t\"zaak\": \"{{created_zaak_url}}\",\n\t\"resultaattype\": \"{{resultaattype_url}}\"\n}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "a81ccd67-698e-4755-a567-b21b72496d1b", + "type": "text/javascript", + "exec": [ + "pm.test(\"Resultaat aanmaken bij gesloten Zaak met scope zaken.geforceerd-bijwerken geeft 201\", function() {", + " pm.response.to.have.status(201);", + "});", + "", + "pm.environment.set(\"zaak_resultaat_url\", pm.response.json().url);" + ], + "_lastExecutionId": "aa7b5b73-bd9e-431e-a17f-621cb36a9a94" + } + }, + { + "listen": "prerequest", + "script": { + "id": "585a86be-0e8d-45a5-8d5c-692a9b310924", + "type": "text/javascript", + "exec": [ + "" + ], + "_lastExecutionId": "258c5b83-4f8f-4e98-86c0-f31d67e1df53" + } + } + ] + }, + { + "id": "be899dca-832f-44b3-88f1-8030fde875d8", + "name": "(zrc-007k) Resultaat bij gesloten Zaak bijwerken toegestaan met scope zaken.geforceerd-bijwerken", + "request": { + "url": { + "host": [ + "{{zaak_resultaat_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "PUT", + "body": { + "mode": "raw", + "raw": "{\n\t\"zaak\": \"{{created_zaak_url}}\",\n\t\"resultaattype\": \"{{resultaattype_url}}\",\n\t\"toelichting\": \"some stuff\"\n}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "2c3fd1c8-73fe-4be8-a0e1-b6d5ad82dfc5", + "type": "text/javascript", + "exec": [ + "pm.test(\"Resultaat bijwerken bij gesloten Zaak met scope zaken.geforceerd-bijwerken geeft 200\", function() {", + " pm.response.to.have.status(200);", + " pm.expect(pm.response.json().toelichting).to.be.equal(\"some stuff\");", + "});" + ], + "_lastExecutionId": "eef33a31-1661-4360-8b01-dd5d5397a320" + } + }, + { + "listen": "prerequest", + "script": { + "id": "59220991-d9ca-422d-9e42-96f5ded1cce9", + "type": "text/javascript", + "exec": [ + "" + ], + "_lastExecutionId": "a66d08dd-3923-479b-954e-23b76b5e9b7f" + } + } + ] + }, + { + "id": "23630480-f094-4295-a41a-c7b2b68e75bf", + "name": "(zrc-007k) Resultaat bij gesloten Zaak deels bijwerken toegestaan met scope zaken.geforceerd-bijwerken", + "request": { + "url": { + "host": [ + "{{zaak_resultaat_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "PATCH", + "body": { + "mode": "raw", + "raw": "{\n\t\"zaak\": \"{{created_zaak_url}}\",\n\t\"resultaattype\": \"{{resultaattype_url}}\",\n\t\"toelichting\": \"some more stuff\"\n}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "95bd7d03-3891-4915-b856-6f1d8db0e8d7", + "type": "text/javascript", + "exec": [ + "pm.test(\"Resultaat deels bijwerken bij gesloten Zaak met scope zaken.geforceerd-bijwerken geeft 200\", function() {", + " pm.response.to.have.status(200);", + " pm.expect(pm.response.json().toelichting).to.be.equal(\"some more stuff\");", + "});" + ], + "_lastExecutionId": "ba8f2b42-6879-4ec1-aede-a9b72f1258dd" + } + }, + { + "listen": "prerequest", + "script": { + "id": "adcacd22-170a-4ae4-9ffc-a2683ada14cf", + "type": "text/javascript", + "exec": [ + "" + ], + "_lastExecutionId": "20c4dc7b-896a-4e57-869d-0b871fdf533e" + } + } + ] + }, + { + "id": "bd980c0d-16d9-48ed-a30b-628443172fd1", + "name": "(zrc-007l) Rol bij gesloten Zaak aanmaken toegestaan toegestaan scope zaken.geforceerd-bijwerken", + "request": { + "url": { + "path": [ + "rollen" + ], + "host": [ + "{{zrc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n\t\"zaak\": \"{{created_zaak_url}}\",\n\t\"betrokkene\": \"http://example.com/2d0815580af94ee0a15aa677aa646e1a\",\n\t\"betrokkeneType\": \"natuurlijk_persoon\",\n\t\"rolomschrijving\": \"behandelaar\",\n\t\"roltoelichting\": \"same\",\n\t\"roltype\": \"{{roltype_url}}\"\n}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "555c960e-9284-46c4-949b-a11d74c1fd3b", + "type": "text/javascript", + "exec": [ + "pm.test(\"Rol aanmaken bij gesloten Zaak zonder scope zaken.geforceerd-bijwerken geeft 201\", function() {", + " pm.response.to.have.status(201);", + "});" + ], + "_lastExecutionId": "1b0374b1-c89b-4ffa-a147-1373db9d67f5" + } + }, + { + "listen": "prerequest", + "script": { + "id": "849d6112-f38c-4dc3-9147-9cdd7a666068", + "type": "text/javascript", + "exec": [ + "" + ], + "_lastExecutionId": "3ddd62b1-d44f-4211-b9e3-1f828b76b682" + } + } + ] + }, + { + "id": "2addca21-7f0c-4b41-9ba7-a1a3e6e5bf44", + "name": "(zrc-007l) Rol bij gesloten Zaak verwijderen niet toegestaan zonder scope zaken.geforceerd-bijwerken Copy", + "request": { + "url": { + "host": [ + "{{rol_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "DELETE" + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "a2fb1008-c8e5-4672-bb57-5a498e51fa50", + "type": "text/javascript", + "exec": [ + "pm.test(\"Rol verwijderen bij gesloten Zaak met scope zaken.geforceerd-bijwerken geeft 204\", function() {", + " pm.response.to.have.status(204);", + "});" + ], + "_lastExecutionId": "6a67a3b0-b339-43c0-8752-18aa4d012dac" + } + }, + { + "listen": "prerequest", + "script": { + "id": "fa73ba88-1793-4973-9d03-890ea199dae4", + "type": "text/javascript", + "exec": [ + "" + ], + "_lastExecutionId": "55b19845-45ef-4605-9c5e-d7c88653449e" + } + } + ] + }, + { + "id": "72e9008a-6c99-453c-b570-26158bc6daba", + "name": "(zrc-007m) Status toevoegen bij gesloten Zaak is toegestaan met scope zaken.geforceerd-bijwerken", + "request": { + "url": { + "path": [ + "statussen" + ], + "host": [ + "{{zrc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n\t\"zaak\": \"{{created_zaak_url}}\",\n\t\"statustype\": \"{{eindstatustype}}\",\n\t\"datumStatusGezet\": \"2018-04-22T13:37:00\"\n}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "c21e74e8-d5e0-4b40-8c21-e1264c196b5b", + "type": "text/javascript", + "exec": [ + "pm.test(\"Status aanmaken bij gesloten Zaak met scope zaken.geforceerd-bijwerken geeft 201\", function() {", + " pm.response.to.have.status(201);", + "});" + ], + "_lastExecutionId": "cea6c852-7b53-4dca-a11a-8f515097b36a" + } + }, + { + "listen": "prerequest", + "script": { + "id": "8f71bce8-cb06-4bc1-8956-3dfac00b1d22", + "type": "text/javascript", + "exec": [ + "" + ], + "_lastExecutionId": "d020d0ab-6076-4090-b98d-ecd3ef9f8cdb" + } + } + ] + }, + { + "id": "a82b8a3e-1164-479a-a9b1-bf7dc60c0a11", + "name": "(zrc-007n) ZaakInformatieObject verwijderen bij gesloten Zaak is toegestaan met scope zaken.geforceerd-bijwerken", + "request": { + "url": { + "host": [ + "{{created_zaakinformatieobject_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "DELETE" + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "805b75f2-6c8d-4ff7-a267-e36dc5b0621b", + "type": "text/javascript", + "exec": [ + "pm.test(\"ZaakInformatieObject verwijderen bij gesloten Zaak met scope zaken.geforceerd-bijwerken geeft 204\", function() {", + " pm.response.to.have.status(204);", + "});" + ], + "_lastExecutionId": "685e2f7d-748c-46b3-a8aa-24d4000e37aa" + } + }, + { + "listen": "prerequest", + "script": { + "id": "6d12f877-ffcc-4a2f-afe4-58f74164e54f", + "type": "text/javascript", + "exec": [ + "" + ], + "_lastExecutionId": "b5769c04-bdff-4849-8dab-d92b13a84ca1" + } + } + ] + }, + { + "id": "215ff014-7201-4c94-8870-06716fb41767", + "name": "(zrc-007n) ZaakInformatieObject toevoegen bij gesloten Zaak is toegestaan met scope zaken.geforceerd-bijwerken", + "request": { + "url": { + "path": [ + "zaakinformatieobjecten" + ], + "host": [ + "{{zrc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n \"informatieobject\": \"{{informatieobject_url}}\",\n \"zaak\": \"{{created_zaak_url}}\"\n}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "361004da-b08f-442c-a57e-9f0f9c55fb74", + "type": "text/javascript", + "exec": [ + "pm.test(\"ZaakInformatieObject aanmaken bij gesloten Zaak met scope zaken.geforceerd-bijwerken geeft 201\", function() {", + " pm.response.to.have.status(201);", + "});", + "", + "pm.environment.set(\"created_zaakinformatieobject_url\", pm.response.json().url);" + ], + "_lastExecutionId": "3daaceb9-61a1-4697-8451-065dbc5d83eb" + } + }, + { + "listen": "prerequest", + "script": { + "id": "8def31b7-7f04-4939-a830-35af7b4d0754", + "type": "text/javascript", + "exec": [ + "" + ], + "_lastExecutionId": "082dfa15-0c66-4d06-b5ac-f62daf71a10d" + } + } + ] + }, + { + "id": "3f4bb806-e356-4e47-b0b7-5de805cbc2c1", + "name": "(zrc-007n) ZaakInformatieObject bijwerken bij gesloten Zaak is toegestaan scope zaken.geforceerd-bijwerken", + "request": { + "url": { + "host": [ + "{{created_zaakinformatieobject_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "PUT", + "body": { + "mode": "raw", + "raw": "{\n \"informatieobject\": \"{{informatieobject_url}}\",\n \"zaak\": \"{{created_zaak_url}}\",\n \"titel\": \"aangepast\"\n}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "6e714101-981f-48da-9244-e3d6d4ed5da3", + "type": "text/javascript", + "exec": [ + "pm.test(\"ZaakInformatieObject bijwerken bij gesloten Zaak met scope zaken.geforceerd-bijwerken geeft 200\", function() {", + " pm.response.to.have.status(200);", + " pm.expect(pm.response.json().titel).to.be.equal(\"aangepast\");", + "});" + ], + "_lastExecutionId": "775fa45c-8dfe-4d32-a315-712c1813ddac" + } + }, + { + "listen": "prerequest", + "script": { + "id": "ab5a76b0-849e-4d51-ba53-954fea7503d0", + "type": "text/javascript", + "exec": [ + "" + ], + "_lastExecutionId": "4b238e01-369a-475f-a38c-4cc71fe47326" + } + } + ] + }, + { + "id": "8129ef2a-d571-4c67-8ec7-41eadfb921be", + "name": "(zrc-007n) ZaakInformatieObject deels bijwerken bij gesloten Zaak is toegestaan met scope zaken.geforceerd-bijwerken", + "request": { + "url": { + "host": [ + "{{created_zaakinformatieobject_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "PATCH", + "body": { + "mode": "raw", + "raw": "{\n \"informatieobject\": \"{{informatieobject_url}}\",\n \"zaak\": \"{{created_zaak_url}}\",\n \"titel\": \"en nog een keer\"\n}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "5a79a7a5-517d-4c16-8e33-2b3208640f3d", + "type": "text/javascript", + "exec": [ + "pm.test(\"ZaakInformatieObject deels bijwerken bij gesloten Zaak met scope zaken.geforceerd-bijwerken geeft 200\", function() {", + " pm.response.to.have.status(200);", + " pm.expect(pm.response.json().titel).to.be.equal(\"en nog een keer\");", + "});" + ], + "_lastExecutionId": "a9269921-ba3d-4cad-b711-a45be7f048e2" + } + }, + { + "listen": "prerequest", + "script": { + "id": "d5029c96-9ce1-4aa1-85b0-bf9c469ed3ef", + "type": "text/javascript", + "exec": [ + "" + ], + "_lastExecutionId": "031f3846-0914-498d-bf62-3a1fd6ea281f" + } + } + ] + }, + { + "id": "f65bf9ad-0761-4636-ac28-695932e8950c", + "name": "(zrc-007o) ZaakObject toevoegen bij gesloten Zaak is toegestaan met scope zaken.geforceerd-bijwerken", + "request": { + "url": { + "path": [ + "zaakobjecten" + ], + "host": [ + "{{zrc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n\t\"zaak\": \"{{created_zaak_url}}\",\n\t\"objectType\": \"pand\",\n\t\"objectIdentificatie\": {\n\t\t\"identificatie\": \"test\"\n\t}\n}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "2b439fd3-4713-450b-9619-5da89f498dab", + "type": "text/javascript", + "exec": [ + "pm.test(\"ZaakObject aanmaken bij gesloten Zaak met scope zaken.geforceerd-bijwerken geeft 201\", function() {", + " pm.response.to.have.status(201);", + "});" + ], + "_lastExecutionId": "b205e114-4621-477e-b8ca-fe745aa9b836" + } + }, + { + "listen": "prerequest", + "script": { + "id": "f02d39fa-b344-4043-b8ea-96642f2bd124", + "type": "text/javascript", + "exec": [ + "" + ], + "_lastExecutionId": "7df46f16-cfcf-4a4e-8bfc-2e7f79353c76" + } + } + ] + }, + { + "id": "2cff76d3-6fa8-4ffc-9856-7f7c7d216b04", + "name": "(zrc-007p) ZaakEigenschap toevoegen bij gesloten Zaak is toegestaan met scope zaken.geforceerd-bijwerken", + "request": { + "url": { + "path": [ + "zaakeigenschappen" + ], + "host": [ + "{{created_zaak_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n\t\"zaak\": \"{{created_zaak_url}}\",\n\t\"eigenschap\": \"{{zaaktype_eigenschap}}\",\n\t\"waarde\": \"test\"\n}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "300535c3-065e-4a2c-aa89-02bdd1f954f3", + "type": "text/javascript", + "packages": {}, + "exec": [ + "pm.test(\"Zaakeigenschap aanmaken bij gesloten Zaak met scope zaken.geforceerd-bijwerken geeft 201\", function() {", + " pm.response.to.have.status(201);", + "});", + "", + "" + ], + "_lastExecutionId": "b69bf103-0afc-4dd9-ad05-8c24aea95e10" + } + }, + { + "listen": "prerequest", + "script": { + "id": "629db568-370a-48e8-b6f0-84f5a70d9e25", + "type": "text/javascript", + "packages": {}, + "exec": [ + "" + ], + "_lastExecutionId": "17c72de0-209c-4ecf-ba92-9b121e823349" + } + } + ] + }, + { + "id": "a893a5ec-c924-4b15-9463-280cfc5ec79e", + "name": "Create relation between Zaak and Informatieobject with gebruiksrecht null", + "request": { + "url": { + "path": [ + "zaakinformatieobjecten" + ], + "host": [ + "{{zrc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n \"informatieobject\": \"{{informatieobject_gebruiksrecht_null_url}}\",\n \"zaak\": \"{{created_zaak_url}}\"\n}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "6f979ae5-069b-4e3c-97a4-d8bb1027ec0f", + "type": "text/javascript", + "exec": [ + "pm.environment.set(\"created_zaakinformatieobject_url\", pm.response.json().url)" + ], + "_lastExecutionId": "d8eb75ed-8553-4db1-96e7-30835d35a47f" + } + }, + { + "listen": "prerequest", + "script": { + "id": "54ac8d93-589d-4d24-a71b-cb00d3c532ab", + "type": "text/javascript", + "exec": [ + "" + ], + "_lastExecutionId": "9924c7c2-a4fd-499e-8ec9-904368e64659" + } + } + ] + }, + { + "id": "f928ad11-3b56-432c-b783-5d80faf62f9e", + "name": "(zrc-007q) Eindstatus toevoegen aan Zaak met Informatieobject.indicatieGebruiksrecht null", + "request": { + "url": { + "path": [ + "statussen" + ], + "host": [ + "{{zrc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Accept-Crs", + "value": "EPSG:4326" + }, + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n\t\"zaak\": \"{{created_zaak_url}}\",\n\t\"statustype\": \"{{eindstatustype}}\",\n\t\"datumStatusGezet\": \"2018-04-22T13:37:01\"\n}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "74b1a2c2-ca75-4daa-8e32-c87fd8b4c8a5", + "type": "text/javascript", + "packages": {}, + "exec": [ + "pm.test(\"Eindstatus toevoegen aan Zaak met gerelateerd Informatieobject met indicatieGebruiksrecht null geeft 400\", function() {", + " pm.response.to.have.status(400);", + " ", + " var error = pm.response.json()['invalidParams'][0];", + " pm.expect(error.name).to.be.equal(\"nonFieldErrors\");", + " pm.expect(error.code).to.be.equal(\"indicatiegebruiksrecht-unset\");", + "});", + "", + "" + ], + "_lastExecutionId": "33db753c-0569-4ea7-847b-519782cf13ba" + } + }, + { + "listen": "prerequest", + "script": { + "id": "9998cd7a-e758-4518-aef4-15658b91b56c", + "type": "text/javascript", + "packages": {}, + "exec": [ + "" + ], + "_lastExecutionId": "5b2e6cec-1e96-4b8c-a632-d84ca8645dc1" + } + } + ] + }, + { + "id": "dbc24314-59e6-40d0-b696-516fbbcaaf95", + "name": "Add non-Eindstatus to Zaak", + "request": { + "url": { + "path": [ + "statussen" + ], + "host": [ + "{{zrc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n\t\"zaak\": \"{{created_zaak_url}}\",\n\t\"statustype\": \"{{non_eindstatustype}}\",\n\t\"datumStatusGezet\": \"2018-04-22T13:39:00\"\n}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "c45f7300-b5b4-4288-85bc-dadf1fab7c76", + "type": "text/javascript", + "exec": [ + "" + ], + "_lastExecutionId": "beac80a8-bdab-422d-9e40-0988c9c11fb6" + } + }, + { + "listen": "prerequest", + "script": { + "id": "cea116b5-1908-4dc4-9067-b4bc8c3125b0", + "type": "text/javascript", + "exec": [ + "" + ], + "_lastExecutionId": "0617b2bf-6729-42b2-ad6d-574bf2ce679d" + } + } + ] + }, + { + "id": "1442dcda-2e3d-467a-a9d3-644c1330747b", + "name": "(zrc-007r) Zaak.einddatum leeg als geen eindstatus gezet", + "request": { + "url": { + "host": [ + "{{created_zaak_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Accept-Crs", + "value": "EPSG:4326" + }, + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "GET" + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "9e19ffbe-655e-4e30-8752-8f89338cb86c", + "type": "text/javascript", + "packages": {}, + "exec": [ + "pm.test(\"Toevoegen status die geen eindstatus is aan Zaak betekent Zaak.einddatum leeg\", function(){", + " pm.response.to.have.status(200);", + " ", + " var einddatum = pm.response.json().einddatum;", + " pm.expect(einddatum).to.be.equal(null);", + "});", + "", + "" + ], + "_lastExecutionId": "10995ccc-2aef-44a8-8dfb-30fdf07ac921" + } + }, + { + "listen": "prerequest", + "script": { + "id": "5928bd2d-f9f3-4af0-87f7-0b2a8c9af307", + "type": "text/javascript", + "packages": {}, + "exec": [ + "" + ], + "_lastExecutionId": "3905c79f-865f-43f7-9544-ab21a9ece26e" + } + } + ] + } + ], + "event": [ + { + "listen": "prerequest", + "script": { + "id": "5d8c75b7-496a-4d14-b59e-d1123fd8c2fa", + "type": "text/javascript", + "exec": [ + "" + ], + "_lastExecutionId": "947b3175-ec37-4415-9107-eb222e178b31" + } + }, + { + "listen": "test", + "script": { + "id": "83c66e0d-4380-4187-b10f-d51e9da8f2b2", + "type": "text/javascript", + "exec": [ + "" + ], + "_lastExecutionId": "cc1967f6-8bc9-4d35-80df-de7101fe3150" + } + } + ] + }, + "cursor": { + "ref": "22b2b558-a634-470d-a501-96df1c446b00", + "length": 313, + "cycles": 1, + "position": 77, + "iteration": 0, + "httpRequestId": "f7777681-8e09-48ba-91b4-4ae880ff0f70", + "scriptId": "4c865327-01d4-41d1-b251-0ba1d2390640", + "execution": "33d0ac3d-fbad-4359-81bc-b37d1c9064d0" + } + }, + { + "error": { + "name": "AssertionError", + "index": 0, + "test": "Afgesloten Zaak bijwerken met scope zaken.geforceerd-bijwerken geeft 200", + "message": "expected response to have status code 200 but got 400", + "stack": "AssertionError: expected response to have status code 200 but got 400\n at Object.eval sandbox-script.js:1:97)", + "checksum": "a95f65d34a7d3b2423143545752a523f", + "id": "67839565-8ea4-4e27-8dbd-253ce259661b", + "timestamp": 1773145162692, + "stacktrace": [ + { + "fileName": "sandbox-script.js", + "lineNumber": 1, + "functionName": "Object.eval", + "typeName": "Object", + "methodName": "eval", + "columnNumber": 97, + "native": false + } + ] + }, + "at": "assertion:0 in test-script", + "source": { + "id": "368b2a01-1aef-40d9-8871-de5da2277646", + "name": "(zrc-007i) Afgesloten zaak bijwerken is toegestaan met scope zaken.geforceerd-bijwerken", + "request": { + "url": { + "host": [ + "{{created_zaak_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Accept-Crs", + "value": "EPSG:4326" + }, + { + "key": "Content-Crs", + "value": "EPSG:4326" + } + ], + "method": "PUT", + "body": { + "mode": "raw", + "raw": "{\r\n \"url\": \"https://zaken.spt-rx-services.nl/api/v1/zaken/cba40feb-2b38-4490-b12d-84a39e8df361\",\r\n \"uuid\": \"cba40feb-2b38-4490-b12d-84a39e8df361\",\r\n \"bronorganisatie\": \"000000000\",\r\n \"omschrijving\": \"string 2\",\r\n \"toelichting\": \"string\",\r\n \"zaaktype\": \"{{zaaktype_url}}\",\r\n \"registratiedatum\": \"2019-04-09\",\r\n \"verantwoordelijkeOrganisatie\": \"000000000\",\r\n \"startdatum\": \"2019-04-09\",\r\n \"einddatum\": null,\r\n \"einddatumGepland\": \"2019-04-20\",\r\n \"uiterlijkeEinddatumAfdoening\": \"2019-04-09\",\r\n \"publicatiedatum\": \"2019-04-09\",\r\n \"communicatiekanaal\": \"\",\r\n \"productenOfDiensten\": [],\r\n \"vertrouwelijkheidaanduiding\": \"geheim\",\r\n \"betalingsindicatie\": \"geheel\",\r\n \"betalingsindicatieWeergave\": null,\r\n \"laatsteBetaaldatum\": \"2019-01-01T00:00:00Z\",\r\n \"zaakgeometrie\": {\r\n \"type\": \"Point\",\r\n \"coordinates\": [\r\n 53.0,\r\n 5.0\r\n ]\r\n },\r\n \"verlenging\": null,\r\n \"opschorting\": {\r\n \"indicatie\": true,\r\n \"reden\": \"string\"\r\n },\r\n \"selectielijstklasse\": \"https://referentielijsten.roxit.nl/api/v1/resultaten/0fe71ce3-b1e1-48eb-9070-be2756fc71b5\",\r\n \"hoofdzaak\": null,\r\n \"deelzaken\": [],\r\n \"relevanteAndereZaken\": [],\r\n \"eigenschappen\": [],\r\n \"rollen\": [],\r\n \"status\": null,\r\n \"zaakinformatieobjecten\": [],\r\n \"zaakobjecten\": [],\r\n \"resultaat\": null,\r\n \"kenmerken\": [],\r\n \"archiefnominatie\": null,\r\n \"archiefstatus\": \"nog_te_archiveren\",\r\n \"archiefactiedatum\": null,\r\n \"opdrachtgevendeOrganisatie\": null,\r\n \"processobjectaard\": null,\r\n \"startdatumBewaartermijn\": null,\r\n \"processobject\": null\r\n}" + } + }, + "response": [], + "event": [ + { + "listen": "prerequest", + "script": { + "id": "5904beb0-e34e-4264-868c-64ebd0e5f6ee", + "type": "text/javascript", + "packages": {}, + "exec": [ + "" + ], + "_lastExecutionId": "bdeccfe8-ed43-49d9-a6df-c9d7fa1b64d7" + } + }, + { + "listen": "test", + "script": { + "id": "103ed717-a9ae-46c0-b9d3-d315457c87db", + "type": "text/javascript", + "packages": {}, + "exec": [ + "pm.test(\"Afgesloten Zaak bijwerken met scope zaken.geforceerd-bijwerken geeft 200\", function() {", + " pm.response.to.have.status(200);", + " pm.expect(pm.response.json().omschrijving).to.be.equal(\"string 2\");", + "});" + ], + "_lastExecutionId": "ca4b1b0a-7c0c-408c-86ec-a951c957e68b" + } + } + ] + }, + "parent": { + "id": "404c4090-2247-454b-9abc-152f1f43ee65", + "name": "zrc-007", + "item": [ + { + "id": "0e70db12-d123-4d04-99cb-c6325ac685ba", + "name": "set full token", + "request": { + "url": { + "path": [ + "catalogussen" + ], + "host": [ + "{{ztc_url}}" + ], + "query": [], + "variable": [] + }, + "method": "GET" + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "de2e18b7-bdfb-440f-8e23-e36e909ea85b", + "type": "text/javascript", + "packages": {}, + "exec": [ + "" + ], + "_lastExecutionId": "a7acb14b-14e4-4cb3-b1e2-066d7755f1d7" + } + }, + { + "listen": "prerequest", + "script": { + "id": "ce9dfa44-a760-408a-8576-5c22759d91dc", + "type": "text/javascript", + "packages": {}, + "exec": [ + "pm.environment.set(\"jwt_token\", pm.environment.get(\"jwt_full\"));", + " var origId = pm.environment.get(\"_original_client_id\");", + " var origSecret = pm.environment.get(\"_original_secret\");", + " if (origId) { pm.environment.set(\"client_id\", origId); }", + " if (origSecret) { pm.environment.set(\"secret\", origSecret); }", + " pm.environment.set(\"secret\", pm.environment.get(\"secret\") || \"procest-admin-secret-key-for-testing\");" + ], + "_lastExecutionId": "d6821698-b9a1-42dd-b58a-8915b6b5c7a3" + } + } + ] + }, + { + "id": "c0805db0-b908-42e8-ac42-38292d5e0fa1", + "name": "zaak", + "request": { + "url": { + "path": [ + "zaken" + ], + "host": [ + "{{zrc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Accept-Crs", + "value": "EPSG:4326" + }, + { + "key": "Content-Crs", + "value": "EPSG:4326" + }, + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\r\n\r\n \"bronorganisatie\": \"000000000\",\r\n \"omschrijving\": \"string\",\r\n \"toelichting\": \"string\",\r\n \"zaaktype\": \"{{zaaktype_url}}\",\r\n \"registratiedatum\": \"2019-04-09\",\r\n \"verantwoordelijkeOrganisatie\": \"000000000\",\r\n \"startdatum\": \"2019-04-09\",\r\n \"einddatum\": null,\r\n \"einddatumGepland\": \"2019-04-20\",\r\n \"uiterlijkeEinddatumAfdoening\": \"2019-04-09\",\r\n \"publicatiedatum\": \"2019-04-09\",\r\n \"communicatiekanaal\": \"\",\r\n \"productenOfDiensten\": [],\r\n \"vertrouwelijkheidaanduiding\": \"geheim\",\r\n \"betalingsindicatie\": \"geheel\",\r\n \"betalingsindicatieWeergave\": null,\r\n \"laatsteBetaaldatum\": \"2019-01-01T00:00:00Z\",\r\n \"zaakgeometrie\": {\r\n \"type\": \"Point\",\r\n \"coordinates\": [\r\n 53.0,\r\n 5.0\r\n ]\r\n },\r\n \"verlenging\": null,\r\n \"opschorting\": {\r\n \"indicatie\": true,\r\n \"reden\": \"string\"\r\n },\r\n \"selectielijstklasse\": \"https://referentielijsten.roxit.nl/api/v1/resultaten/0fe71ce3-b1e1-48eb-9070-be2756fc71b5\",\r\n \"hoofdzaak\": null,\r\n \"deelzaken\": [],\r\n \"relevanteAndereZaken\": [],\r\n \"eigenschappen\": [],\r\n \"rollen\": [],\r\n \"status\": null,\r\n \"zaakinformatieobjecten\": [],\r\n \"zaakobjecten\": [],\r\n \"resultaat\": null,\r\n \"kenmerken\": [],\r\n \"archiefnominatie\": null,\r\n \"archiefstatus\": \"nog_te_archiveren\",\r\n \"archiefactiedatum\": null,\r\n \"opdrachtgevendeOrganisatie\": null,\r\n \"processobjectaard\": null,\r\n \"startdatumBewaartermijn\": null,\r\n \"processobject\": null\r\n}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "38243872-a733-4daa-b03f-99eff519e2ca", + "type": "text/javascript", + "packages": {}, + "exec": [ + "pm.environment.set(\"created_zaak_url\", pm.response.json().url);" + ], + "_lastExecutionId": "77be1497-5818-494d-8843-3ea9f0639dfc" + } + }, + { + "listen": "prerequest", + "script": { + "id": "135c8be0-caea-450f-a589-4344c7d23d54", + "type": "text/javascript", + "packages": {}, + "exec": [ + "" + ], + "_lastExecutionId": "073abcc9-f528-4458-90c5-e2111284fa0c" + } + } + ] + }, + { + "id": "ed6480ef-f3ed-4ecb-af29-d467eccdbf89", + "name": "(DRC) Create EnkelvoudigInformatieObject", + "request": { + "url": { + "path": [ + "enkelvoudiginformatieobjecten" + ], + "host": [ + "{{drc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n\t\"bronorganisatie\": \"000000000\",\n\t\"creatiedatum\": \"2019-01-01\",\n\t\"titel\": \"testobject\",\n\t\"auteur\": \"testauteur\",\n \"formaat\": \"application/pdf\",\n \"taal\": \"nld\",\n \"bestandsnaam\": \"test 3.pdf\",\n\t\"inhoud\": \"c3RyaW5n\",\n\t\"informatieobjecttype\": \"{{informatieobjecttype_url}}\",\n \"indicatieGebruiksrecht\": false,\n \"status\": \"gearchiveerd\",\n\t\"bestandsomvang\": 6\n}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "730783c6-9089-4ef4-8399-d724301e51d2", + "type": "text/javascript", + "packages": {}, + "exec": [ + "pm.environment.set(\"informatieobject_url\", pm.response.json().url);" + ], + "_lastExecutionId": "cc272502-acdc-4e4b-90b3-eea4a2a8ece8" + } + }, + { + "listen": "prerequest", + "script": { + "id": "ab08a94d-6181-43d6-8dcc-df24ff00013b", + "type": "text/javascript", + "packages": {}, + "exec": [ + "" + ], + "_lastExecutionId": "50e95c7a-861b-493f-a016-bbccf0065df7" + } + } + ] + }, + { + "id": "027f3961-e796-4498-ac61-e532ef58d61e", + "name": "Create relation between Zaak and Informatieobject with gebruiksrecht not null", + "request": { + "url": { + "path": [ + "zaakinformatieobjecten" + ], + "host": [ + "{{zrc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n \"informatieobject\": \"{{informatieobject_url}}\",\n \"zaak\": \"{{created_zaak_url}}\"\n}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "10810642-cfc5-45d1-85ab-4a240b51a23e", + "type": "text/javascript", + "exec": [ + "pm.environment.set(\"created_zaakinformatieobject_url\", pm.response.json().url);" + ], + "_lastExecutionId": "4aca2b6d-edcc-40d8-81cf-8c067777cb5f" + } + }, + { + "listen": "prerequest", + "script": { + "id": "ffce582e-a875-474f-82aa-fcc81a809086", + "type": "text/javascript", + "exec": [ + "" + ], + "_lastExecutionId": "d265c7ef-d62d-4ea9-a6ec-33a388eefef6" + } + } + ] + }, + { + "id": "c8c704b1-2bc5-4c4e-bf80-c5147c3a5a3b", + "name": "Add Resultaat to Zaak", + "request": { + "url": { + "path": [ + "resultaten" + ], + "host": [ + "{{zrc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n\t\"zaak\": \"{{created_zaak_url}}\",\n\t\"resultaattype\": \"{{resultaattype_url}}\"\n}" + } + }, + "response": [], + "event": [ + { + "listen": "prerequest", + "script": { + "id": "5fd1c2ba-485a-4ea4-b06a-543e381fb452", + "type": "text/javascript", + "packages": {}, + "exec": [ + "" + ], + "_lastExecutionId": "932f6758-91df-4c3a-a1b3-142d28f07d65" + } + }, + { + "listen": "test", + "script": { + "id": "c5a66cb3-b26c-4b8c-bad4-4aa17e0490c0", + "type": "text/javascript", + "packages": {}, + "exec": [ + "pm.environment.set(\"zaak_resultaat_url\", pm.response.json().url);" + ], + "_lastExecutionId": "75bbede4-5254-4012-94b5-c31341965b59" + } + } + ] + }, + { + "id": "7c8e6633-c69e-4121-a6ae-afe856c07691", + "name": "Add Eindstatus to Zaak", + "request": { + "url": { + "path": [ + "statussen" + ], + "host": [ + "{{zrc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n\t\"zaak\": \"{{created_zaak_url}}\",\n\t\"statustype\": \"{{eindstatustype}}\",\n\t\"datumStatusGezet\": \"2018-04-20T13:37:00\"\n}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "06f94dc1-df1c-47c1-9178-7370a4910c95", + "type": "text/javascript", + "packages": {}, + "exec": [ + "pm.environment.set(\"eindstatus_datumStatusGezet\", pm.response.json().datumStatusGezet);", + "pm.environment.set(\"eindstatus_url\", pm.response.json().url);" + ], + "_lastExecutionId": "73d2bfac-343c-4a36-ab97-3de5b535edf7" + } + }, + { + "listen": "prerequest", + "script": { + "id": "62329597-5b87-4c48-9f27-7db4d49a967e", + "type": "text/javascript", + "packages": {}, + "exec": [ + "" + ], + "_lastExecutionId": "ab5a4227-3197-48bf-a640-e5d355b98cf6" + } + } + ] + }, + { + "id": "aa3115ac-afea-41cf-91c0-fe35acfbe5af", + "name": "Add Klantcontact to Zaak", + "request": { + "url": { + "path": [ + "klantcontacten" + ], + "host": [ + "{{zrc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n\t\"zaak\": \"{{created_zaak_url}}\",\n\t\"datumtijd\": \"2019-02-20T00:00:00\"\n}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "d22e362b-62ea-47b3-bbbe-91a7e73c4f02", + "type": "text/javascript", + "exec": [ + "pm.environment.set(\"klantcontact_url\", pm.response.json().url);" + ], + "_lastExecutionId": "fd0dd654-4ffb-4fc1-9db9-e24ba4def685" + } + }, + { + "listen": "prerequest", + "script": { + "id": "09aeec9b-a1ee-4665-8935-85154ee6c278", + "type": "text/javascript", + "exec": [ + "" + ], + "_lastExecutionId": "4969fa7b-c94f-42b9-8b69-764fa6d6de36" + } + } + ] + }, + { + "id": "e2684c1a-3b34-4013-803a-4a04ff2e88ac", + "name": "Add Rol to Zaak", + "request": { + "url": { + "path": [ + "rollen" + ], + "host": [ + "{{zrc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n\t\"zaak\": \"{{created_zaak_url}}\",\n\t\"betrokkene\": \"http://example.com/2d0815580af94ee0a15aa677aa646e1a\",\n\t\"betrokkeneType\": \"natuurlijk_persoon\",\n\t\"rolomschrijving\": \"behandelaar\",\n\t\"roltoelichting\": \"testrol\",\n\t\"roltype\": \"{{roltype_url}}\"\n}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "c3f6cc6e-370c-4d44-8223-4035129ab83e", + "type": "text/javascript", + "exec": [ + "pm.environment.set(\"rol_url\", pm.response.json().url);" + ], + "_lastExecutionId": "55fbef81-9461-4352-9b10-5f64339f7b92" + } + }, + { + "listen": "prerequest", + "script": { + "id": "5a8a311a-e53f-4fc4-a2a6-b681e0b1cf9e", + "type": "text/javascript", + "exec": [ + "" + ], + "_lastExecutionId": "31fb93c0-d2c2-4750-9cc9-2535b26e2ce3" + } + } + ] + }, + { + "id": "24d66ca5-6dca-467b-a2b8-415a0c0961b1", + "name": "Create Zaakobject", + "request": { + "url": { + "path": [ + "zaakobjecten" + ], + "host": [ + "{{zrc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n\t\"zaak\": \"{{created_zaak_url}}\",\n\t\"objectType\": \"pand\",\n\t\"objectIdentificatie\": {\n\t\t\"identificatie\": \"test\"\n\t}\n}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "e4fda35d-6747-4773-8ada-391665089583", + "type": "text/javascript", + "exec": [ + "pm.environment.set(\"zaakobject_url\", pm.response.json().url);" + ], + "_lastExecutionId": "8175f85f-da36-4dcf-8138-ded8509e31f6" + } + } + ] + }, + { + "id": "f71db5d0-1b97-416d-ac45-b7f639fc88f5", + "name": "Add Zaakeigenschap to Zaak", + "request": { + "url": { + "path": [ + "zaakeigenschappen" + ], + "host": [ + "{{created_zaak_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n\t\"zaak\": \"{{created_zaak_url}}\",\n\t\"eigenschap\": \"{{zaaktype_eigenschap}}\",\n\t\"waarde\": \"test\"\n}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "404d21f0-7fe3-424e-a8b6-bf1856253ad9", + "type": "text/javascript", + "exec": [ + "pm.environment.set(\"zaakeigenschap_url\", pm.response.json().url);" + ], + "_lastExecutionId": "939764cd-7964-486e-b436-d311c1bde014" + } + }, + { + "listen": "prerequest", + "script": { + "id": "96b30948-7f74-4175-9490-20b51b9c85fc", + "type": "text/javascript", + "exec": [ + "" + ], + "_lastExecutionId": "131815be-7a9c-4523-b42d-bdb6f98b9b62" + } + } + ] + }, + { + "id": "894e375d-ee49-4226-b420-be0522ec6bf5", + "name": "(zrc-007a) Zaak.einddatum volgt logisch uit eindstatus", + "request": { + "url": { + "host": [ + "{{created_zaak_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Accept-Crs", + "value": "EPSG:4326" + }, + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "GET", + "body": { + "mode": "raw", + "raw": "" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "23516296-e939-4d3a-a28b-14438a2562d7", + "type": "text/javascript", + "packages": {}, + "exec": [ + "pm.test(\"Toevoegen eindstatus aan Zaak laat Zaak.einddatum afleiden uit status.datumStatusGezet\", function(){", + " pm.response.to.have.status(200);", + " ", + "", + " pm.expect(pm.response.json().einddatum).equals('2018-04-20');", + "});" + ], + "_lastExecutionId": "226a501f-d391-4bb9-a401-9e4ed7da475b" + } + }, + { + "listen": "prerequest", + "script": { + "id": "d3691dc7-9e04-49f0-9118-0277aacb4b96", + "type": "text/javascript", + "packages": {}, + "exec": [ + "" + ], + "_lastExecutionId": "3a9b2fd3-8a11-40a0-aa53-84cc971c148e" + } + } + ], + "protocolProfileBehavior": { + "disableBodyPruning": true + } + }, + { + "id": "98e2897f-fcc9-40fb-9327-a839f5ba15e1", + "name": "(zrc-007b) Informatieobject.indicatieGebruikersrecht niet null bij afsluiten zaak", + "request": { + "url": { + "host": [ + "{{informatieobject_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Accept-Crs", + "value": "EPSG:4326" + } + ], + "method": "GET" + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "4c865327-01d4-41d1-b251-0ba1d2390640", + "type": "text/javascript", + "packages": {}, + "exec": [ + "pm.test(\"Afsluiten Zaak betekent Informatieobject.indicatieGebruiksrecht gezet voor alle gerelateerde objecten\", function(){", + " pm.response.to.have.status(200);", + " pm.expect(pm.response.json().indicatieGebruiksrecht).to.not.be.equal(null);", + "});", + "", + "" + ], + "_lastExecutionId": "33d0ac3d-fbad-4359-81bc-b37d1c9064d0" + } + }, + { + "listen": "prerequest", + "script": { + "id": "c578fdc6-8fbc-4913-bb60-e0e413b2e26b", + "type": "text/javascript", + "packages": {}, + "exec": [ + "" + ], + "_lastExecutionId": "fed51f54-ab25-48ec-a4c4-288c9d601d92" + } + } + ] + }, + { + "id": "09252b82-893e-4608-9045-a602e48e30ab", + "name": "set restricted token", + "request": { + "url": { + "path": [ + "catalogussen" + ], + "host": [ + "{{ztc_url}}" + ], + "query": [], + "variable": [] + }, + "method": "GET" + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "3b9c584b-f1a5-4184-9ce9-4975f64a31cb", + "type": "text/javascript", + "packages": {}, + "exec": [ + "pm.environment.set(\"jwt_token\", pm.environment.get(\"jwt-limited\"));", + " pm.environment.set(\"_original_client_id\", pm.environment.get(\"client_id\"));", + " pm.environment.set(\"_original_secret\", pm.environment.get(\"secret\"));", + " pm.environment.set(\"client_id\", pm.environment.get(\"client_id_limited\"));", + " pm.environment.set(\"secret\", pm.environment.get(\"secret_limited\"));", + " pm.environment.set(\"client_id\", pm.environment.get(\"client_id_limited\"));", + " pm.environment.set(\"secret\", pm.environment.get(\"secret_limited\"));" + ], + "_lastExecutionId": "512a7852-60c1-48ba-b558-3a90562fd479" + } + } + ] + }, + { + "id": "2833abca-7d9b-4c59-b2e2-fc08b542633f", + "name": "(zrc-007c) Afgesloten zaak bijwerken is niet toegestaan zonder scope zaken.geforceerd-bijwerken", + "request": { + "url": { + "host": [ + "{{created_zaak_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Accept-Crs", + "value": "EPSG:4326" + }, + { + "key": "Content-Crs", + "value": "EPSG:4326" + } + ], + "method": "PUT", + "body": { + "mode": "raw", + "raw": "{\r\n\r\n \"bronorganisatie\": \"000000000\",\r\n \"omschrijving\": \"string\",\r\n \"toelichting\": \"string\",\r\n \"zaaktype\": \"{{zaaktype_url}}\",\r\n \"registratiedatum\": \"2019-04-09\",\r\n \"verantwoordelijkeOrganisatie\": \"000000000\",\r\n \"startdatum\": \"2019-04-09\",\r\n \"einddatum\": null,\r\n \"einddatumGepland\": \"2019-04-20\",\r\n \"uiterlijkeEinddatumAfdoening\": \"2019-04-09\",\r\n \"publicatiedatum\": \"2019-04-09\",\r\n \"communicatiekanaal\": \"\",\r\n \"productenOfDiensten\": [],\r\n \"vertrouwelijkheidaanduiding\": \"geheim\",\r\n \"betalingsindicatie\": \"geheel\",\r\n \"betalingsindicatieWeergave\": null,\r\n \"laatsteBetaaldatum\": \"2019-01-01T00:00:00Z\",\r\n \"zaakgeometrie\": {\r\n \"type\": \"Point\",\r\n \"coordinates\": [\r\n 53.0,\r\n 5.0\r\n ]\r\n },\r\n \"verlenging\": null,\r\n \"opschorting\": {\r\n \"indicatie\": true,\r\n \"reden\": \"string\"\r\n },\r\n \"selectielijstklasse\": \"https://referentielijsten.roxit.nl/api/v1/resultaten/0fe71ce3-b1e1-48eb-9070-be2756fc71b5\",\r\n \"hoofdzaak\": null,\r\n \"deelzaken\": [],\r\n \"relevanteAndereZaken\": [],\r\n \"eigenschappen\": [],\r\n \"rollen\": [],\r\n \"status\": null,\r\n \"zaakinformatieobjecten\": [],\r\n \"zaakobjecten\": [],\r\n \"resultaat\": null,\r\n \"kenmerken\": [],\r\n \"archiefnominatie\": null,\r\n \"archiefstatus\": \"nog_te_archiveren\",\r\n \"archiefactiedatum\": null,\r\n \"opdrachtgevendeOrganisatie\": null,\r\n \"processobjectaard\": null,\r\n \"startdatumBewaartermijn\": null,\r\n \"processobject\": null\r\n}" + } + }, + "response": [], + "event": [ + { + "listen": "prerequest", + "script": { + "id": "e7e48489-21d4-459f-825b-4d49e6de4a2b", + "type": "text/javascript", + "packages": {}, + "exec": [ + "" + ], + "_lastExecutionId": "57461603-9058-4e64-8025-8d7d57aabd73" + } + }, + { + "listen": "test", + "script": { + "id": "c4f3928b-c90d-48eb-9725-bab8747b4ff8", + "type": "text/javascript", + "packages": {}, + "exec": [ + "pm.test(\"Afgesloten Zaak bijwerken zonder scope zaken.geforceerd-bijwerken geeft 403\", function() {", + " pm.response.to.have.status(403);", + " pm.expect(pm.response.json().code).to.be.equal(\"permission_denied\");", + "});" + ], + "_lastExecutionId": "7f93a35a-768e-4413-8752-835d35ec11b1" + } + } + ] + }, + { + "id": "df799216-40bf-448e-a067-b7a129c2dcee", + "name": "(zrc-007c) Afgesloten zaak deels bijwerken is niet toegestaan zonder scope zaken.geforceerd-bijwerken", + "request": { + "url": { + "host": [ + "{{created_zaak_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Accept-Crs", + "value": "EPSG:4326" + }, + { + "key": "Content-Crs", + "value": "EPSG:4326" + } + ], + "method": "PATCH", + "body": { + "mode": "raw", + "raw": "{\n\t\"omschrijving\": \"aangepast\"\n}" + } + }, + "response": [], + "event": [ + { + "listen": "prerequest", + "script": { + "id": "198e2b21-4081-4ac8-8c81-3589f1b5e374", + "type": "text/javascript", + "packages": {}, + "exec": [ + "" + ], + "_lastExecutionId": "8aec6e50-5c9e-47a0-9d00-a9de552d0e51" + } + }, + { + "listen": "test", + "script": { + "id": "cc50f9cf-8000-4cc9-b8b1-fb9f79bcf272", + "type": "text/javascript", + "packages": {}, + "exec": [ + "pm.test(\"Afgesloten Zaak deels bijwerken zonder scope zaken.geforceerd-bijwerken geeft 403\", function() {", + " pm.response.to.have.status(403);", + " pm.expect(pm.response.json().code).to.be.equal(\"permission_denied\");", + "});", + "", + "" + ], + "_lastExecutionId": "2db52502-8f35-4163-a274-ba7cb4af901b" + } + } + ] + }, + { + "id": "ed66fc2f-1ddb-44e6-a98e-ffc5d7075127", + "name": "(zrc-007d) Klantcontact bij gesloten Zaak aanmaken niet toegestaan zonder scope zaken.geforceerd-bijwerken", + "request": { + "url": { + "path": [ + "klantcontacten" + ], + "host": [ + "{{zrc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n\t\"zaak\": \"{{created_zaak_url}}\",\n\t\"datumtijd\": \"2019-02-22T00:00:00\"\n}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "c6d35df5-0006-46a4-9544-764cfee5eeaf", + "type": "text/javascript", + "packages": {}, + "exec": [ + "pm.test(\"Klantcontact aanmaken bij gesloten Zaak zonder scope zaken.geforceerd-bijwerken geeft 403\", function() {", + " pm.response.to.have.status(403);", + " pm.expect(pm.response.json().code).to.be.equal(\"permission_denied\");", + "});" + ], + "_lastExecutionId": "daea07be-91a1-4c0e-9d95-0748a3d84614" + } + }, + { + "listen": "prerequest", + "script": { + "id": "1c878e09-09af-4430-8ace-e6be117c88d2", + "type": "text/javascript", + "packages": {}, + "exec": [ + "" + ], + "_lastExecutionId": "cedb69a9-587c-4825-9d26-beb259c2616c" + } + } + ] + }, + { + "id": "5b1f5f1f-d5e6-4ea2-9074-b09288d31162", + "name": "(zrc-007e) Resultaat bij gesloten Zaak aanmaken niet toegestaan zonder scope zaken.geforceerd-bijwerken", + "request": { + "url": { + "path": [ + "resultaten" + ], + "host": [ + "{{zrc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n\t\"zaak\": \"{{created_zaak_url}}\",\n\t\"resultaattype\": \"{{resultaattype_url}}\"\n}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "ce490eb7-2366-4cdd-bea5-ed94947888ab", + "type": "text/javascript", + "packages": {}, + "exec": [ + "pm.test(\"Resultaat aanmaken bij gesloten Zaak zonder scope zaken.geforceerd-bijwerken geeft 403\", function() {", + " pm.response.to.have.status(403);", + " pm.expect(pm.response.json().code).to.be.equal(\"permission_denied\");", + "});" + ], + "_lastExecutionId": "a5b1ac20-5ad6-4051-a429-269ea6d9bed3" + } + }, + { + "listen": "prerequest", + "script": { + "id": "932bb2b3-b466-47ee-8c8b-50cf843d12c4", + "type": "text/javascript", + "packages": {}, + "exec": [ + "" + ], + "_lastExecutionId": "250171a9-ce45-4ee1-bd97-2f1ec8802c1f" + } + } + ] + }, + { + "id": "3f76b406-bf4d-49b8-afa9-25b1ee114f45", + "name": "(zrc-007e) Resultaat bij gesloten Zaak bijwerken niet toegestaan zonder scope zaken.geforceerd-bijwerken", + "request": { + "url": { + "host": [ + "{{zaak_resultaat_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "PUT", + "body": { + "mode": "raw", + "raw": "{\n\t\"zaak\": \"{{created_zaak_url}}\",\n\t\"resultaattype\": \"{{resultaattype_url}}\"\n}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "d71b10c1-1e83-4444-aa48-de00cfd42c32", + "type": "text/javascript", + "packages": {}, + "exec": [ + "pm.test(\"Resultaat bijwerken bij gesloten Zaak zonder scope zaken.geforceerd-bijwerken geeft 403\", function() {", + " pm.response.to.have.status(403);", + " pm.expect(pm.response.json().code).to.be.equal(\"permission_denied\");", + "});" + ], + "_lastExecutionId": "439af762-db93-4ca7-9e10-aee3c3c2409f" + } + }, + { + "listen": "prerequest", + "script": { + "id": "ed5ba4d7-09c0-4ef3-b2d0-73b3115109a8", + "type": "text/javascript", + "packages": {}, + "exec": [ + "" + ], + "_lastExecutionId": "081380d4-addd-44e7-bf94-9ac527d933b6" + } + } + ] + }, + { + "id": "4bd71676-2144-4846-950f-1380118563cb", + "name": "(zrc-007e) Resultaat bij gesloten Zaak deels bijwerken niet toegestaan zonder scope zaken.geforceerd-bijwerken", + "request": { + "url": { + "host": [ + "{{zaak_resultaat_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "PATCH", + "body": { + "mode": "raw", + "raw": "{\n\t\"zaak\": \"{{created_zaak_url}}\",\n\t\"resultaattype\": \"{{resultaattype_url}}\"\n}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "f0a177c1-9f84-4b58-afe1-53b5c1d4bc7f", + "type": "text/javascript", + "packages": {}, + "exec": [ + "pm.test(\"Resultaat deels bijwerken bij gesloten Zaak zonder scope zaken.geforceerd-bijwerken geeft 403\", function() {", + " pm.response.to.have.status(403);", + " pm.expect(pm.response.json().code).to.be.equal(\"permission_denied\");", + "});" + ], + "_lastExecutionId": "4c230604-baba-458f-98e3-715c37fae4ba" + } + }, + { + "listen": "prerequest", + "script": { + "id": "d5be5f05-91d9-47fe-aea6-649045bca588", + "type": "text/javascript", + "packages": {}, + "exec": [ + "" + ], + "_lastExecutionId": "21aaf3ad-3e26-4086-a792-748fd6d9341b" + } + } + ] + }, + { + "id": "10b0b6fc-6ba1-4a71-b269-fc9e618810af", + "name": "(zrc-007e) Resultaat bij gesloten Zaak verwijderen niet toegestaan zonder scope zaken.geforceerd-bijwerken", + "request": { + "url": { + "host": [ + "{{zaak_resultaat_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "DELETE" + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "94318c8f-b4a7-4ad5-8b2a-407d38f3aac6", + "type": "text/javascript", + "packages": {}, + "exec": [ + "pm.test(\"Resultaat verwijderen bij gesloten Zaak zonder scope zaken.geforceerd-bijwerken geeft 403\", function() {", + " pm.response.to.have.status(403);", + " pm.expect(pm.response.json().code).to.be.equal(\"permission_denied\");", + "});" + ], + "_lastExecutionId": "a7daf9aa-ccce-41fd-8fdb-9bec3d3240d0" + } + }, + { + "listen": "prerequest", + "script": { + "id": "ff47ff7f-3321-4060-8828-e7bacf56ad35", + "type": "text/javascript", + "packages": {}, + "exec": [ + "" + ], + "_lastExecutionId": "5e3145cf-2985-4128-8a57-9402d88515c5" + } + } + ] + }, + { + "id": "24e55e60-1433-4f20-a2a4-6443e34d5b64", + "name": "(zrc-007f) Rol bij gesloten Zaak aanmaken niet toegestaan zonder scope zaken.geforceerd-bijwerken", + "request": { + "url": { + "path": [ + "rollen" + ], + "host": [ + "{{zrc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n\t\"zaak\": \"{{created_zaak_url}}\",\n\t\"betrokkene\": \"http://example.com/2d0815580af94ee0a15aa677aa646e1a\",\n\t\"betrokkeneType\": \"natuurlijk_persoon\",\n\t\"rolomschrijving\": \"behandelaar\",\n\t\"roltoelichting\": \"testrol\",\n\t\"roltype\": \"{{roltype_url}}\"\n}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "9148221a-4e62-406f-94b4-7f20b8db9371", + "type": "text/javascript", + "packages": {}, + "exec": [ + "pm.test(\"Rol aanmaken bij gesloten Zaak zonder scope zaken.geforceerd-bijwerken geeft 403\", function() {", + " pm.response.to.have.status(403);", + " pm.expect(pm.response.json().code).to.be.equal(\"permission_denied\");", + "});" + ], + "_lastExecutionId": "b09cc1ca-19cd-4d24-9d5d-b3d397d5bb6d" + } + }, + { + "listen": "prerequest", + "script": { + "id": "f2a1f393-8ba0-40ab-bf19-ae2756e911e0", + "type": "text/javascript", + "packages": {}, + "exec": [ + "" + ], + "_lastExecutionId": "5e20cd93-2624-45e9-882f-f57d4c1280d5" + } + } + ] + }, + { + "id": "cb6b8d00-8678-49e6-bba2-8b5aa8bc6cfa", + "name": "(zrc-007f) Rol bij gesloten Zaak verwijderen niet toegestaan zonder scope zaken.geforceerd-bijwerken", + "request": { + "url": { + "host": [ + "{{rol_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "DELETE" + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "74d0244b-d7d9-4c34-8c14-34d1c4848a44", + "type": "text/javascript", + "packages": {}, + "exec": [ + "pm.test(\"Rol verwijderen bij gesloten Zaak zonder scope zaken.geforceerd-bijwerken geeft 403\", function() {", + " pm.response.to.have.status(403);", + " pm.expect(pm.response.json().code).to.be.equal(\"permission_denied\");", + "});" + ], + "_lastExecutionId": "a1225580-037f-43dc-b82d-e4230bc3f91e" + } + }, + { + "listen": "prerequest", + "script": { + "id": "9095fc8a-d56b-49e0-8c3e-170961acdfc2", + "type": "text/javascript", + "packages": {}, + "exec": [ + "" + ], + "_lastExecutionId": "4f26a03a-acf6-464f-afd4-2e6d2ec6c7b2" + } + } + ] + }, + { + "id": "cac2d49e-6529-44ee-ba7f-8c6a82cb21bf", + "name": "(zrc-007g) Status toevoegen bij gesloten Zaak is niet toegestaan zonder scope zaken.geforceerd-bijwerken", + "request": { + "url": { + "path": [ + "statussen" + ], + "host": [ + "{{zrc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n\t\"zaak\": \"{{created_zaak_url}}\",\n\t\"statustype\": \"{{eindstatustype}}\",\n\t\"datumStatusGezet\": \"2018-04-22T13:37:00\"\n}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "40d1ffcb-5b3c-497e-a255-e6344fde4282", + "type": "text/javascript", + "packages": {}, + "exec": [ + "pm.test(\"Status aanmaken bij gesloten Zaak zonder scope zaken.geforceerd-bijwerken geeft 403\", function() {", + " pm.response.to.have.status(403);", + " pm.expect(pm.response.json().code).to.be.equal(\"permission_denied\");", + "});" + ], + "_lastExecutionId": "1455dded-9f11-4f85-81a9-5cfb50264557" + } + }, + { + "listen": "prerequest", + "script": { + "id": "df5d3734-c3d5-44f9-9b8f-7c1d8e0d280b", + "type": "text/javascript", + "packages": {}, + "exec": [ + "" + ], + "_lastExecutionId": "a34ecaf5-4070-406c-a980-f862c2c1f37f" + } + } + ] + }, + { + "id": "760e1057-c285-48ba-85be-5314f6021452", + "name": "(zrc-007h) ZaakInformatieObject toevoegen bij gesloten Zaak is niet toegestaan zonder scope zaken.geforceerd-bijwerken", + "request": { + "url": { + "path": [ + "zaakinformatieobjecten" + ], + "host": [ + "{{zrc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n \"informatieobject\": \"{{informatieobject_gebruiksrecht_null_url}}\",\n \"zaak\": \"{{created_zaak_url}}\"\n}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "917acc3f-245a-4920-9aa5-2bdc099219da", + "type": "text/javascript", + "packages": {}, + "exec": [ + "pm.test(\"ZaakInformatieObject aanmaken bij gesloten Zaak zonder scope zaken.geforceerd-bijwerken geeft 403\", function() {", + " pm.response.to.have.status(403);", + " pm.expect(pm.response.json().code).to.be.equal(\"permission_denied\");", + "});" + ], + "_lastExecutionId": "4e3f0dde-1cdf-4b24-99a0-50172a3943a8" + } + }, + { + "listen": "prerequest", + "script": { + "id": "e9cadfca-c454-48ab-800b-198d4d01384b", + "type": "text/javascript", + "packages": {}, + "exec": [ + "" + ], + "_lastExecutionId": "42aab2cd-6dfd-4e70-9a5e-c831f934faed" + } + } + ] + }, + { + "id": "69331cdf-304f-40a2-9500-5d6c17118330", + "name": "(zrc-007h) ZaakInformatieObject bijwerken bij gesloten Zaak is niet toegestaan zonder scope zaken.geforceerd-bijwerken", + "request": { + "url": { + "host": [ + "{{created_zaakinformatieobject_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "PUT", + "body": { + "mode": "raw", + "raw": "{\n \"informatieobject\": \"{{informatieobject_url}}\",\n \"zaak\": \"{{created_zaak_url}}\",\n \"titel\": \"bla\"\n}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "18638837-ec24-419a-b85f-91a5cff15d2a", + "type": "text/javascript", + "packages": {}, + "exec": [ + "pm.test(\"ZaakInformatieObject bijwerken bij gesloten Zaak zonder scope zaken.geforceerd-bijwerken geeft 403\", function() {", + " pm.response.to.have.status(403);", + " pm.expect(pm.response.json().code).to.be.equal(\"permission_denied\");", + "});" + ], + "_lastExecutionId": "49fd333b-2713-4637-aad0-87edbe19eb43" + } + }, + { + "listen": "prerequest", + "script": { + "id": "656623a9-6355-42b3-9b56-5290240125dd", + "type": "text/javascript", + "packages": {}, + "exec": [ + "" + ], + "_lastExecutionId": "4accd4d0-4922-4758-b70d-665720ee57a4" + } + } + ] + }, + { + "id": "28b42a39-118f-47fb-988c-c553c13ad36e", + "name": "(zrc-007h) ZaakInformatieObject deels bijwerken bij gesloten Zaak is niet toegestaan zonder scope zaken.geforceerd-bijwerken", + "request": { + "url": { + "host": [ + "{{created_zaakinformatieobject_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "PATCH", + "body": { + "mode": "raw", + "raw": "{\n \"informatieobject\": \"{{informatieobject_url}}\",\n \"zaak\": \"{{created_zaak_url}}\",\n \"titel\": \"bla\"\n}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "a7f50240-b433-48fc-8855-f573aec36a7e", + "type": "text/javascript", + "packages": {}, + "exec": [ + "pm.test(\"ZaakInformatieObject deels bijwerken bij gesloten Zaak zonder scope zaken.geforceerd-bijwerken geeft 403\", function() {", + " pm.response.to.have.status(403);", + " pm.expect(pm.response.json().code).to.be.equal(\"permission_denied\");", + "});" + ], + "_lastExecutionId": "ba81d1bd-50c4-4e28-89e0-75a0836de728" + } + }, + { + "listen": "prerequest", + "script": { + "id": "a7294ec2-5558-43bc-9b6a-6b65a6f3f780", + "type": "text/javascript", + "packages": {}, + "exec": [ + "" + ], + "_lastExecutionId": "cc4dea11-729d-4129-a79b-4d57b6d6cf21" + } + } + ] + }, + { + "id": "95a2e022-3bc3-4fd2-8f54-39aeb33deb77", + "name": "(zrc-007h) ZaakInformatieObject verwijderen bij gesloten Zaak is niet toegestaan zonder scope zaken.geforceerd-bijwerken", + "request": { + "url": { + "host": [ + "{{created_zaakinformatieobject_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "DELETE" + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "2f473fe1-aa5a-4fd8-8469-3b7ecbffcb06", + "type": "text/javascript", + "packages": {}, + "exec": [ + "pm.test(\"ZaakInformatieObject verwijderen bij gesloten Zaak zonder scope zaken.geforceerd-bijwerken geeft 403\", function() {", + " pm.response.to.have.status(403);", + " pm.expect(pm.response.json().code).to.be.equal(\"permission_denied\");", + "});" + ], + "_lastExecutionId": "5fb1899c-3338-4139-be3e-25e3c4f4e9a4" + } + }, + { + "listen": "prerequest", + "script": { + "id": "ba508967-96bf-4152-852a-e5cc77902180", + "type": "text/javascript", + "packages": {}, + "exec": [ + "" + ], + "_lastExecutionId": "b2da6d2a-96ba-4a61-bb4f-c3f3af349dae" + } + } + ] + }, + { + "id": "788534b9-736a-4345-9d0c-3b36eca8f341", + "name": "(zrc-007i) ZaakObject toevoegen bij gesloten Zaak is niet toegestaan zonder scope zaken.geforceerd-bijwerken", + "request": { + "url": { + "path": [ + "zaakobjecten" + ], + "host": [ + "{{zrc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n\t\"zaak\": \"{{created_zaak_url}}\",\n\t\"objectType\": \"pand\",\n\t\"objectIdentificatie\": {\n\t\t\"identificatie\": \"test\"\n\t}\n}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "d40493f1-0273-45db-9ac4-85aca7f3a073", + "type": "text/javascript", + "packages": {}, + "exec": [ + "pm.test(\"ZaakObject aanmaken bij gesloten Zaak zonder scope zaken.geforceerd-bijwerken geeft 403\", function() {", + " pm.response.to.have.status(403);", + " pm.expect(pm.response.json().code).to.be.equal(\"permission_denied\");", + "});" + ], + "_lastExecutionId": "a687f291-bdf3-42f5-8e83-1ce3c65afd04" + } + }, + { + "listen": "prerequest", + "script": { + "id": "9f6a05c7-98d3-4f40-9e8b-310cc05e290a", + "type": "text/javascript", + "packages": {}, + "exec": [ + "" + ], + "_lastExecutionId": "e9677e02-1e4d-415c-b64f-14453ca2ace4" + } + } + ] + }, + { + "id": "d2f56f4e-c6a4-4a98-a0e4-8c0546e2aa9b", + "name": "(zrc-007k) ZaakEigenschap toevoegen bij gesloten Zaak is niet toegestaan zonder scope zaken.geforceerd-bijwerken", + "request": { + "url": { + "path": [ + "zaakeigenschappen" + ], + "host": [ + "{{created_zaak_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n\t\"zaak\": \"{{created_zaak_url}}\",\n\t\"eigenschap\": \"{{zaaktype_eigenschap}}\",\n\t\"waarde\": \"test\"\n}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "e23c2bd5-db14-4345-bb91-3d08cdae1dbf", + "type": "text/javascript", + "packages": {}, + "exec": [ + "pm.test(\"Zaakeigenschap aanmaken bij gesloten Zaak zonder scope zaken.geforceerd-bijwerken geeft 403\", function() {", + " pm.response.to.have.status(403);", + " pm.expect(pm.response.json().code).to.be.equal(\"permission_denied\");", + "});" + ], + "_lastExecutionId": "7e6c8385-d3b9-4bd9-8d9c-1b9d20f15181" + } + }, + { + "listen": "prerequest", + "script": { + "id": "617c55a5-0a9e-43b7-9524-d7e4557bf541", + "type": "text/javascript", + "packages": {}, + "exec": [ + "" + ], + "_lastExecutionId": "a7a6cda4-339a-4bc3-a999-fb5d92f87dd1" + } + } + ] + }, + { + "id": "99f52437-aba8-4552-b761-25b16cfb95d5", + "name": "set full token Copy", + "request": { + "url": { + "path": [ + "catalogussen" + ], + "host": [ + "{{ztc_url}}" + ], + "query": [], + "variable": [] + }, + "method": "GET" + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "79d89f68-0c8f-40a4-bab6-0a905e84289a", + "type": "text/javascript", + "packages": {}, + "exec": [ + "" + ], + "_lastExecutionId": "602fc6a2-da7b-4273-87fd-5a7d75c997c0" + } + }, + { + "listen": "prerequest", + "script": { + "id": "03295b54-11bb-4245-bdb1-5a33c1079682", + "type": "text/javascript", + "packages": {}, + "exec": [ + "pm.environment.set(\"jwt_token\", pm.environment.get(\"jwt_full\"));", + " var origId = pm.environment.get(\"_original_client_id\");", + " var origSecret = pm.environment.get(\"_original_secret\");", + " if (origId) { pm.environment.set(\"client_id\", origId); }", + " if (origSecret) { pm.environment.set(\"secret\", origSecret); }", + " pm.environment.set(\"secret\", pm.environment.get(\"secret\") || \"procest-admin-secret-key-for-testing\");" + ], + "_lastExecutionId": "92ba0532-9aba-45f6-959c-b2e859750135" + } + } + ] + }, + { + "id": "368b2a01-1aef-40d9-8871-de5da2277646", + "name": "(zrc-007i) Afgesloten zaak bijwerken is toegestaan met scope zaken.geforceerd-bijwerken", + "request": { + "url": { + "host": [ + "{{created_zaak_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Accept-Crs", + "value": "EPSG:4326" + }, + { + "key": "Content-Crs", + "value": "EPSG:4326" + } + ], + "method": "PUT", + "body": { + "mode": "raw", + "raw": "{\r\n \"url\": \"https://zaken.spt-rx-services.nl/api/v1/zaken/cba40feb-2b38-4490-b12d-84a39e8df361\",\r\n \"uuid\": \"cba40feb-2b38-4490-b12d-84a39e8df361\",\r\n \"bronorganisatie\": \"000000000\",\r\n \"omschrijving\": \"string 2\",\r\n \"toelichting\": \"string\",\r\n \"zaaktype\": \"{{zaaktype_url}}\",\r\n \"registratiedatum\": \"2019-04-09\",\r\n \"verantwoordelijkeOrganisatie\": \"000000000\",\r\n \"startdatum\": \"2019-04-09\",\r\n \"einddatum\": null,\r\n \"einddatumGepland\": \"2019-04-20\",\r\n \"uiterlijkeEinddatumAfdoening\": \"2019-04-09\",\r\n \"publicatiedatum\": \"2019-04-09\",\r\n \"communicatiekanaal\": \"\",\r\n \"productenOfDiensten\": [],\r\n \"vertrouwelijkheidaanduiding\": \"geheim\",\r\n \"betalingsindicatie\": \"geheel\",\r\n \"betalingsindicatieWeergave\": null,\r\n \"laatsteBetaaldatum\": \"2019-01-01T00:00:00Z\",\r\n \"zaakgeometrie\": {\r\n \"type\": \"Point\",\r\n \"coordinates\": [\r\n 53.0,\r\n 5.0\r\n ]\r\n },\r\n \"verlenging\": null,\r\n \"opschorting\": {\r\n \"indicatie\": true,\r\n \"reden\": \"string\"\r\n },\r\n \"selectielijstklasse\": \"https://referentielijsten.roxit.nl/api/v1/resultaten/0fe71ce3-b1e1-48eb-9070-be2756fc71b5\",\r\n \"hoofdzaak\": null,\r\n \"deelzaken\": [],\r\n \"relevanteAndereZaken\": [],\r\n \"eigenschappen\": [],\r\n \"rollen\": [],\r\n \"status\": null,\r\n \"zaakinformatieobjecten\": [],\r\n \"zaakobjecten\": [],\r\n \"resultaat\": null,\r\n \"kenmerken\": [],\r\n \"archiefnominatie\": null,\r\n \"archiefstatus\": \"nog_te_archiveren\",\r\n \"archiefactiedatum\": null,\r\n \"opdrachtgevendeOrganisatie\": null,\r\n \"processobjectaard\": null,\r\n \"startdatumBewaartermijn\": null,\r\n \"processobject\": null\r\n}" + } + }, + "response": [], + "event": [ + { + "listen": "prerequest", + "script": { + "id": "5904beb0-e34e-4264-868c-64ebd0e5f6ee", + "type": "text/javascript", + "packages": {}, + "exec": [ + "" + ], + "_lastExecutionId": "bdeccfe8-ed43-49d9-a6df-c9d7fa1b64d7" + } + }, + { + "listen": "test", + "script": { + "id": "103ed717-a9ae-46c0-b9d3-d315457c87db", + "type": "text/javascript", + "packages": {}, + "exec": [ + "pm.test(\"Afgesloten Zaak bijwerken met scope zaken.geforceerd-bijwerken geeft 200\", function() {", + " pm.response.to.have.status(200);", + " pm.expect(pm.response.json().omschrijving).to.be.equal(\"string 2\");", + "});" + ], + "_lastExecutionId": "ca4b1b0a-7c0c-408c-86ec-a951c957e68b" + } + } + ] + }, + { + "id": "06b7cc33-bac4-48c2-b3c3-612615b10a60", + "name": "(zrc-007i) Afgesloten zaak deels bijwerken is toegestaan met scope zaken.geforceerd-bijwerken", + "request": { + "url": { + "host": [ + "{{created_zaak_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Accept-Crs", + "value": "EPSG:4326" + }, + { + "key": "Content-Crs", + "value": "EPSG:4326" + } + ], + "method": "PATCH", + "body": { + "mode": "raw", + "raw": "{\n\t\"omschrijving\": \"aangepast\"\n}" + } + }, + "response": [], + "event": [ + { + "listen": "prerequest", + "script": { + "id": "b20a3dc6-1d90-4e6a-8fa3-35b132eb2b64", + "type": "text/javascript", + "packages": {}, + "exec": [ + "" + ], + "_lastExecutionId": "1497e0fb-08d4-4e6a-b549-14039f0058e9" + } + }, + { + "listen": "test", + "script": { + "id": "a1967b7a-91ab-4905-918d-49a64e28753c", + "type": "text/javascript", + "packages": {}, + "exec": [ + "pm.test(\"Afgesloten Zaak deels bijwerken zonder scope zaken.geforceerd-bijwerken geeft 200\", function() {", + " pm.response.to.have.status(200);", + " pm.expect(pm.response.json().omschrijving).to.be.equal(\"aangepast\");", + "});", + "", + "" + ], + "_lastExecutionId": "1145c413-b1ee-4eb1-ab3b-6980c577d96e" + } + } + ] + }, + { + "id": "d17629da-db16-4b39-ae62-81c3e40aaf52", + "name": "(zrc-007j) Klantcontact bij gesloten Zaak aanmaken toegestaan met scope zaken.geforceerd-bijwerken", + "request": { + "url": { + "path": [ + "klantcontacten" + ], + "host": [ + "{{zrc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n\t\"zaak\": \"{{created_zaak_url}}\",\n\t\"datumtijd\": \"2019-02-22T00:00:00\"\n}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "b3396ace-a231-48e6-a3c3-91dbcf00a5b0", + "type": "text/javascript", + "exec": [ + "pm.test(\"Klantcontact aanmaken bij gesloten Zaak met scope zaken.geforceerd-bijwerken geeft 201\", function() {", + " pm.response.to.have.status(201);", + "});" + ], + "_lastExecutionId": "42e3445b-bdb5-4dce-8460-15cdcbdd26f7" + } + }, + { + "listen": "prerequest", + "script": { + "id": "eccdbd08-2229-42ad-8814-87be88820965", + "type": "text/javascript", + "exec": [ + "" + ], + "_lastExecutionId": "eb8ed4c4-77b6-4952-8214-5154330f97d9" + } + } + ] + }, + { + "id": "9a4d310f-f95b-4262-8644-f893bfc85d90", + "name": "(zrc-007k) Resultaat bij gesloten Zaak verwijderen toegestaan met scope zaken.geforceerd-bijwerken", + "request": { + "url": { + "host": [ + "{{zaak_resultaat_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "DELETE" + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "b4b29bd0-d25d-4d4c-9a9a-f5937d658eb7", + "type": "text/javascript", + "exec": [ + "pm.test(\"Resultaat verwijderen bij gesloten Zaak zonder scope zaken.geforceerd-bijwerken geeft 204\", function() {", + " pm.response.to.have.status(204);", + "});" + ], + "_lastExecutionId": "90a9345e-553d-4036-9280-aa30e94dfd24" + } + }, + { + "listen": "prerequest", + "script": { + "id": "d037159a-6b4c-4cc7-b311-e572c0f1f7f2", + "type": "text/javascript", + "exec": [ + "" + ], + "_lastExecutionId": "79d58d8c-f5e5-4a73-9956-538e63e2c882" + } + } + ] + }, + { + "id": "1d011d3e-2bb3-42ae-b404-48d679cfa858", + "name": "(zrc-007k) Resultaat bij gesloten Zaak aanmaken toegestaan met scope zaken.geforceerd-bijwerken", + "request": { + "url": { + "path": [ + "resultaten" + ], + "host": [ + "{{zrc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n\t\"zaak\": \"{{created_zaak_url}}\",\n\t\"resultaattype\": \"{{resultaattype_url}}\"\n}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "a81ccd67-698e-4755-a567-b21b72496d1b", + "type": "text/javascript", + "exec": [ + "pm.test(\"Resultaat aanmaken bij gesloten Zaak met scope zaken.geforceerd-bijwerken geeft 201\", function() {", + " pm.response.to.have.status(201);", + "});", + "", + "pm.environment.set(\"zaak_resultaat_url\", pm.response.json().url);" + ], + "_lastExecutionId": "aa7b5b73-bd9e-431e-a17f-621cb36a9a94" + } + }, + { + "listen": "prerequest", + "script": { + "id": "585a86be-0e8d-45a5-8d5c-692a9b310924", + "type": "text/javascript", + "exec": [ + "" + ], + "_lastExecutionId": "258c5b83-4f8f-4e98-86c0-f31d67e1df53" + } + } + ] + }, + { + "id": "be899dca-832f-44b3-88f1-8030fde875d8", + "name": "(zrc-007k) Resultaat bij gesloten Zaak bijwerken toegestaan met scope zaken.geforceerd-bijwerken", + "request": { + "url": { + "host": [ + "{{zaak_resultaat_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "PUT", + "body": { + "mode": "raw", + "raw": "{\n\t\"zaak\": \"{{created_zaak_url}}\",\n\t\"resultaattype\": \"{{resultaattype_url}}\",\n\t\"toelichting\": \"some stuff\"\n}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "2c3fd1c8-73fe-4be8-a0e1-b6d5ad82dfc5", + "type": "text/javascript", + "exec": [ + "pm.test(\"Resultaat bijwerken bij gesloten Zaak met scope zaken.geforceerd-bijwerken geeft 200\", function() {", + " pm.response.to.have.status(200);", + " pm.expect(pm.response.json().toelichting).to.be.equal(\"some stuff\");", + "});" + ], + "_lastExecutionId": "eef33a31-1661-4360-8b01-dd5d5397a320" + } + }, + { + "listen": "prerequest", + "script": { + "id": "59220991-d9ca-422d-9e42-96f5ded1cce9", + "type": "text/javascript", + "exec": [ + "" + ], + "_lastExecutionId": "a66d08dd-3923-479b-954e-23b76b5e9b7f" + } + } + ] + }, + { + "id": "23630480-f094-4295-a41a-c7b2b68e75bf", + "name": "(zrc-007k) Resultaat bij gesloten Zaak deels bijwerken toegestaan met scope zaken.geforceerd-bijwerken", + "request": { + "url": { + "host": [ + "{{zaak_resultaat_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "PATCH", + "body": { + "mode": "raw", + "raw": "{\n\t\"zaak\": \"{{created_zaak_url}}\",\n\t\"resultaattype\": \"{{resultaattype_url}}\",\n\t\"toelichting\": \"some more stuff\"\n}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "95bd7d03-3891-4915-b856-6f1d8db0e8d7", + "type": "text/javascript", + "exec": [ + "pm.test(\"Resultaat deels bijwerken bij gesloten Zaak met scope zaken.geforceerd-bijwerken geeft 200\", function() {", + " pm.response.to.have.status(200);", + " pm.expect(pm.response.json().toelichting).to.be.equal(\"some more stuff\");", + "});" + ], + "_lastExecutionId": "ba8f2b42-6879-4ec1-aede-a9b72f1258dd" + } + }, + { + "listen": "prerequest", + "script": { + "id": "adcacd22-170a-4ae4-9ffc-a2683ada14cf", + "type": "text/javascript", + "exec": [ + "" + ], + "_lastExecutionId": "20c4dc7b-896a-4e57-869d-0b871fdf533e" + } + } + ] + }, + { + "id": "bd980c0d-16d9-48ed-a30b-628443172fd1", + "name": "(zrc-007l) Rol bij gesloten Zaak aanmaken toegestaan toegestaan scope zaken.geforceerd-bijwerken", + "request": { + "url": { + "path": [ + "rollen" + ], + "host": [ + "{{zrc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n\t\"zaak\": \"{{created_zaak_url}}\",\n\t\"betrokkene\": \"http://example.com/2d0815580af94ee0a15aa677aa646e1a\",\n\t\"betrokkeneType\": \"natuurlijk_persoon\",\n\t\"rolomschrijving\": \"behandelaar\",\n\t\"roltoelichting\": \"same\",\n\t\"roltype\": \"{{roltype_url}}\"\n}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "555c960e-9284-46c4-949b-a11d74c1fd3b", + "type": "text/javascript", + "exec": [ + "pm.test(\"Rol aanmaken bij gesloten Zaak zonder scope zaken.geforceerd-bijwerken geeft 201\", function() {", + " pm.response.to.have.status(201);", + "});" + ], + "_lastExecutionId": "1b0374b1-c89b-4ffa-a147-1373db9d67f5" + } + }, + { + "listen": "prerequest", + "script": { + "id": "849d6112-f38c-4dc3-9147-9cdd7a666068", + "type": "text/javascript", + "exec": [ + "" + ], + "_lastExecutionId": "3ddd62b1-d44f-4211-b9e3-1f828b76b682" + } + } + ] + }, + { + "id": "2addca21-7f0c-4b41-9ba7-a1a3e6e5bf44", + "name": "(zrc-007l) Rol bij gesloten Zaak verwijderen niet toegestaan zonder scope zaken.geforceerd-bijwerken Copy", + "request": { + "url": { + "host": [ + "{{rol_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "DELETE" + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "a2fb1008-c8e5-4672-bb57-5a498e51fa50", + "type": "text/javascript", + "exec": [ + "pm.test(\"Rol verwijderen bij gesloten Zaak met scope zaken.geforceerd-bijwerken geeft 204\", function() {", + " pm.response.to.have.status(204);", + "});" + ], + "_lastExecutionId": "6a67a3b0-b339-43c0-8752-18aa4d012dac" + } + }, + { + "listen": "prerequest", + "script": { + "id": "fa73ba88-1793-4973-9d03-890ea199dae4", + "type": "text/javascript", + "exec": [ + "" + ], + "_lastExecutionId": "55b19845-45ef-4605-9c5e-d7c88653449e" + } + } + ] + }, + { + "id": "72e9008a-6c99-453c-b570-26158bc6daba", + "name": "(zrc-007m) Status toevoegen bij gesloten Zaak is toegestaan met scope zaken.geforceerd-bijwerken", + "request": { + "url": { + "path": [ + "statussen" + ], + "host": [ + "{{zrc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n\t\"zaak\": \"{{created_zaak_url}}\",\n\t\"statustype\": \"{{eindstatustype}}\",\n\t\"datumStatusGezet\": \"2018-04-22T13:37:00\"\n}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "c21e74e8-d5e0-4b40-8c21-e1264c196b5b", + "type": "text/javascript", + "exec": [ + "pm.test(\"Status aanmaken bij gesloten Zaak met scope zaken.geforceerd-bijwerken geeft 201\", function() {", + " pm.response.to.have.status(201);", + "});" + ], + "_lastExecutionId": "cea6c852-7b53-4dca-a11a-8f515097b36a" + } + }, + { + "listen": "prerequest", + "script": { + "id": "8f71bce8-cb06-4bc1-8956-3dfac00b1d22", + "type": "text/javascript", + "exec": [ + "" + ], + "_lastExecutionId": "d020d0ab-6076-4090-b98d-ecd3ef9f8cdb" + } + } + ] + }, + { + "id": "a82b8a3e-1164-479a-a9b1-bf7dc60c0a11", + "name": "(zrc-007n) ZaakInformatieObject verwijderen bij gesloten Zaak is toegestaan met scope zaken.geforceerd-bijwerken", + "request": { + "url": { + "host": [ + "{{created_zaakinformatieobject_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "DELETE" + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "805b75f2-6c8d-4ff7-a267-e36dc5b0621b", + "type": "text/javascript", + "exec": [ + "pm.test(\"ZaakInformatieObject verwijderen bij gesloten Zaak met scope zaken.geforceerd-bijwerken geeft 204\", function() {", + " pm.response.to.have.status(204);", + "});" + ], + "_lastExecutionId": "685e2f7d-748c-46b3-a8aa-24d4000e37aa" + } + }, + { + "listen": "prerequest", + "script": { + "id": "6d12f877-ffcc-4a2f-afe4-58f74164e54f", + "type": "text/javascript", + "exec": [ + "" + ], + "_lastExecutionId": "b5769c04-bdff-4849-8dab-d92b13a84ca1" + } + } + ] + }, + { + "id": "215ff014-7201-4c94-8870-06716fb41767", + "name": "(zrc-007n) ZaakInformatieObject toevoegen bij gesloten Zaak is toegestaan met scope zaken.geforceerd-bijwerken", + "request": { + "url": { + "path": [ + "zaakinformatieobjecten" + ], + "host": [ + "{{zrc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n \"informatieobject\": \"{{informatieobject_url}}\",\n \"zaak\": \"{{created_zaak_url}}\"\n}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "361004da-b08f-442c-a57e-9f0f9c55fb74", + "type": "text/javascript", + "exec": [ + "pm.test(\"ZaakInformatieObject aanmaken bij gesloten Zaak met scope zaken.geforceerd-bijwerken geeft 201\", function() {", + " pm.response.to.have.status(201);", + "});", + "", + "pm.environment.set(\"created_zaakinformatieobject_url\", pm.response.json().url);" + ], + "_lastExecutionId": "3daaceb9-61a1-4697-8451-065dbc5d83eb" + } + }, + { + "listen": "prerequest", + "script": { + "id": "8def31b7-7f04-4939-a830-35af7b4d0754", + "type": "text/javascript", + "exec": [ + "" + ], + "_lastExecutionId": "082dfa15-0c66-4d06-b5ac-f62daf71a10d" + } + } + ] + }, + { + "id": "3f4bb806-e356-4e47-b0b7-5de805cbc2c1", + "name": "(zrc-007n) ZaakInformatieObject bijwerken bij gesloten Zaak is toegestaan scope zaken.geforceerd-bijwerken", + "request": { + "url": { + "host": [ + "{{created_zaakinformatieobject_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "PUT", + "body": { + "mode": "raw", + "raw": "{\n \"informatieobject\": \"{{informatieobject_url}}\",\n \"zaak\": \"{{created_zaak_url}}\",\n \"titel\": \"aangepast\"\n}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "6e714101-981f-48da-9244-e3d6d4ed5da3", + "type": "text/javascript", + "exec": [ + "pm.test(\"ZaakInformatieObject bijwerken bij gesloten Zaak met scope zaken.geforceerd-bijwerken geeft 200\", function() {", + " pm.response.to.have.status(200);", + " pm.expect(pm.response.json().titel).to.be.equal(\"aangepast\");", + "});" + ], + "_lastExecutionId": "775fa45c-8dfe-4d32-a315-712c1813ddac" + } + }, + { + "listen": "prerequest", + "script": { + "id": "ab5a76b0-849e-4d51-ba53-954fea7503d0", + "type": "text/javascript", + "exec": [ + "" + ], + "_lastExecutionId": "4b238e01-369a-475f-a38c-4cc71fe47326" + } + } + ] + }, + { + "id": "8129ef2a-d571-4c67-8ec7-41eadfb921be", + "name": "(zrc-007n) ZaakInformatieObject deels bijwerken bij gesloten Zaak is toegestaan met scope zaken.geforceerd-bijwerken", + "request": { + "url": { + "host": [ + "{{created_zaakinformatieobject_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "PATCH", + "body": { + "mode": "raw", + "raw": "{\n \"informatieobject\": \"{{informatieobject_url}}\",\n \"zaak\": \"{{created_zaak_url}}\",\n \"titel\": \"en nog een keer\"\n}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "5a79a7a5-517d-4c16-8e33-2b3208640f3d", + "type": "text/javascript", + "exec": [ + "pm.test(\"ZaakInformatieObject deels bijwerken bij gesloten Zaak met scope zaken.geforceerd-bijwerken geeft 200\", function() {", + " pm.response.to.have.status(200);", + " pm.expect(pm.response.json().titel).to.be.equal(\"en nog een keer\");", + "});" + ], + "_lastExecutionId": "a9269921-ba3d-4cad-b711-a45be7f048e2" + } + }, + { + "listen": "prerequest", + "script": { + "id": "d5029c96-9ce1-4aa1-85b0-bf9c469ed3ef", + "type": "text/javascript", + "exec": [ + "" + ], + "_lastExecutionId": "031f3846-0914-498d-bf62-3a1fd6ea281f" + } + } + ] + }, + { + "id": "f65bf9ad-0761-4636-ac28-695932e8950c", + "name": "(zrc-007o) ZaakObject toevoegen bij gesloten Zaak is toegestaan met scope zaken.geforceerd-bijwerken", + "request": { + "url": { + "path": [ + "zaakobjecten" + ], + "host": [ + "{{zrc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n\t\"zaak\": \"{{created_zaak_url}}\",\n\t\"objectType\": \"pand\",\n\t\"objectIdentificatie\": {\n\t\t\"identificatie\": \"test\"\n\t}\n}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "2b439fd3-4713-450b-9619-5da89f498dab", + "type": "text/javascript", + "exec": [ + "pm.test(\"ZaakObject aanmaken bij gesloten Zaak met scope zaken.geforceerd-bijwerken geeft 201\", function() {", + " pm.response.to.have.status(201);", + "});" + ], + "_lastExecutionId": "b205e114-4621-477e-b8ca-fe745aa9b836" + } + }, + { + "listen": "prerequest", + "script": { + "id": "f02d39fa-b344-4043-b8ea-96642f2bd124", + "type": "text/javascript", + "exec": [ + "" + ], + "_lastExecutionId": "7df46f16-cfcf-4a4e-8bfc-2e7f79353c76" + } + } + ] + }, + { + "id": "2cff76d3-6fa8-4ffc-9856-7f7c7d216b04", + "name": "(zrc-007p) ZaakEigenschap toevoegen bij gesloten Zaak is toegestaan met scope zaken.geforceerd-bijwerken", + "request": { + "url": { + "path": [ + "zaakeigenschappen" + ], + "host": [ + "{{created_zaak_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n\t\"zaak\": \"{{created_zaak_url}}\",\n\t\"eigenschap\": \"{{zaaktype_eigenschap}}\",\n\t\"waarde\": \"test\"\n}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "300535c3-065e-4a2c-aa89-02bdd1f954f3", + "type": "text/javascript", + "packages": {}, + "exec": [ + "pm.test(\"Zaakeigenschap aanmaken bij gesloten Zaak met scope zaken.geforceerd-bijwerken geeft 201\", function() {", + " pm.response.to.have.status(201);", + "});", + "", + "" + ], + "_lastExecutionId": "b69bf103-0afc-4dd9-ad05-8c24aea95e10" + } + }, + { + "listen": "prerequest", + "script": { + "id": "629db568-370a-48e8-b6f0-84f5a70d9e25", + "type": "text/javascript", + "packages": {}, + "exec": [ + "" + ], + "_lastExecutionId": "17c72de0-209c-4ecf-ba92-9b121e823349" + } + } + ] + }, + { + "id": "a893a5ec-c924-4b15-9463-280cfc5ec79e", + "name": "Create relation between Zaak and Informatieobject with gebruiksrecht null", + "request": { + "url": { + "path": [ + "zaakinformatieobjecten" + ], + "host": [ + "{{zrc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n \"informatieobject\": \"{{informatieobject_gebruiksrecht_null_url}}\",\n \"zaak\": \"{{created_zaak_url}}\"\n}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "6f979ae5-069b-4e3c-97a4-d8bb1027ec0f", + "type": "text/javascript", + "exec": [ + "pm.environment.set(\"created_zaakinformatieobject_url\", pm.response.json().url)" + ], + "_lastExecutionId": "d8eb75ed-8553-4db1-96e7-30835d35a47f" + } + }, + { + "listen": "prerequest", + "script": { + "id": "54ac8d93-589d-4d24-a71b-cb00d3c532ab", + "type": "text/javascript", + "exec": [ + "" + ], + "_lastExecutionId": "9924c7c2-a4fd-499e-8ec9-904368e64659" + } + } + ] + }, + { + "id": "f928ad11-3b56-432c-b783-5d80faf62f9e", + "name": "(zrc-007q) Eindstatus toevoegen aan Zaak met Informatieobject.indicatieGebruiksrecht null", + "request": { + "url": { + "path": [ + "statussen" + ], + "host": [ + "{{zrc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Accept-Crs", + "value": "EPSG:4326" + }, + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n\t\"zaak\": \"{{created_zaak_url}}\",\n\t\"statustype\": \"{{eindstatustype}}\",\n\t\"datumStatusGezet\": \"2018-04-22T13:37:01\"\n}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "74b1a2c2-ca75-4daa-8e32-c87fd8b4c8a5", + "type": "text/javascript", + "packages": {}, + "exec": [ + "pm.test(\"Eindstatus toevoegen aan Zaak met gerelateerd Informatieobject met indicatieGebruiksrecht null geeft 400\", function() {", + " pm.response.to.have.status(400);", + " ", + " var error = pm.response.json()['invalidParams'][0];", + " pm.expect(error.name).to.be.equal(\"nonFieldErrors\");", + " pm.expect(error.code).to.be.equal(\"indicatiegebruiksrecht-unset\");", + "});", + "", + "" + ], + "_lastExecutionId": "33db753c-0569-4ea7-847b-519782cf13ba" + } + }, + { + "listen": "prerequest", + "script": { + "id": "9998cd7a-e758-4518-aef4-15658b91b56c", + "type": "text/javascript", + "packages": {}, + "exec": [ + "" + ], + "_lastExecutionId": "5b2e6cec-1e96-4b8c-a632-d84ca8645dc1" + } + } + ] + }, + { + "id": "dbc24314-59e6-40d0-b696-516fbbcaaf95", + "name": "Add non-Eindstatus to Zaak", + "request": { + "url": { + "path": [ + "statussen" + ], + "host": [ + "{{zrc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n\t\"zaak\": \"{{created_zaak_url}}\",\n\t\"statustype\": \"{{non_eindstatustype}}\",\n\t\"datumStatusGezet\": \"2018-04-22T13:39:00\"\n}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "c45f7300-b5b4-4288-85bc-dadf1fab7c76", + "type": "text/javascript", + "exec": [ + "" + ], + "_lastExecutionId": "beac80a8-bdab-422d-9e40-0988c9c11fb6" + } + }, + { + "listen": "prerequest", + "script": { + "id": "cea116b5-1908-4dc4-9067-b4bc8c3125b0", + "type": "text/javascript", + "exec": [ + "" + ], + "_lastExecutionId": "0617b2bf-6729-42b2-ad6d-574bf2ce679d" + } + } + ] + }, + { + "id": "1442dcda-2e3d-467a-a9d3-644c1330747b", + "name": "(zrc-007r) Zaak.einddatum leeg als geen eindstatus gezet", + "request": { + "url": { + "host": [ + "{{created_zaak_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Accept-Crs", + "value": "EPSG:4326" + }, + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "GET" + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "9e19ffbe-655e-4e30-8752-8f89338cb86c", + "type": "text/javascript", + "packages": {}, + "exec": [ + "pm.test(\"Toevoegen status die geen eindstatus is aan Zaak betekent Zaak.einddatum leeg\", function(){", + " pm.response.to.have.status(200);", + " ", + " var einddatum = pm.response.json().einddatum;", + " pm.expect(einddatum).to.be.equal(null);", + "});", + "", + "" + ], + "_lastExecutionId": "10995ccc-2aef-44a8-8dfb-30fdf07ac921" + } + }, + { + "listen": "prerequest", + "script": { + "id": "5928bd2d-f9f3-4af0-87f7-0b2a8c9af307", + "type": "text/javascript", + "packages": {}, + "exec": [ + "" + ], + "_lastExecutionId": "3905c79f-865f-43f7-9544-ab21a9ece26e" + } + } + ] + } + ], + "event": [ + { + "listen": "prerequest", + "script": { + "id": "5d8c75b7-496a-4d14-b59e-d1123fd8c2fa", + "type": "text/javascript", + "exec": [ + "" + ], + "_lastExecutionId": "947b3175-ec37-4415-9107-eb222e178b31" + } + }, + { + "listen": "test", + "script": { + "id": "83c66e0d-4380-4187-b10f-d51e9da8f2b2", + "type": "text/javascript", + "exec": [ + "" + ], + "_lastExecutionId": "cc1967f6-8bc9-4d35-80df-de7101fe3150" + } + } + ] + }, + "cursor": { + "ref": "41f02d07-b2b6-429d-b8e9-9627af4cbb14", + "length": 313, + "cycles": 1, + "position": 96, + "iteration": 0, + "httpRequestId": "7c8bf6ed-22ea-460d-9560-b9c8a9fac8f4", + "scriptId": "103ed717-a9ae-46c0-b9d3-d315457c87db", + "execution": "ca4b1b0a-7c0c-408c-86ec-a951c957e68b" + } + }, + { + "error": { + "name": "AssertionError", + "index": 0, + "test": "Zaak heropenen zonder scope zaken.heropenen in Applicatie geeft 403", + "message": "expected 'not_authenticated' to equal 'permission_denied'", + "stack": "AssertionError: expected 'not_authenticated' to equal 'permission_denied'\n at Object.eval sandbox-script.js:1:125)", + "checksum": "529a0cc08c6501967a2ea0d2414553dc", + "id": "aa69b893-09ee-4e43-9152-8acec1259289", + "timestamp": 1773145171514, + "stacktrace": [ + { + "fileName": "sandbox-script.js", + "lineNumber": 1, + "functionName": "Object.eval", + "typeName": "Object", + "methodName": "eval", + "columnNumber": 125, + "native": false + } + ] + }, + "at": "assertion:0 in test-script", + "source": { + "id": "3be2c55b-9e03-4e7e-a9b3-3f8b765e38f9", + "name": "(zrc-008c) Zaak heropenen zonder scope zaken.heropenen in Applicatie is onmogelijk", + "request": { + "url": { + "path": [ + "statussen" + ], + "host": [ + "{{zrc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n\t\"zaak\": \"{{created_zaak_url}}\",\n\t\"statustype\": \"{{non_eindstatustype}}\",\n\t\"datumStatusGezet\": \"2018-04-21T17:37:00\"\n}" + }, + "auth": { + "type": "bearer", + "bearer": [ + { + "type": "string", + "value": "{{jwt-zrc-006}}", + "key": "token" + } + ] + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "3bfcf579-a302-4751-9f53-a1d88403426f", + "type": "text/javascript", + "packages": {}, + "exec": [ + "pm.test(\"Zaak heropenen zonder scope zaken.heropenen in Applicatie geeft 403\", function() {", + " pm.response.to.have.status(403);", + " pm.expect(pm.response.json().code).to.be.equal(\"permission_denied\");", + "});" + ], + "_lastExecutionId": "bb13a9d3-b73f-4986-a9bf-ecfd380b8d7e" + } + } + ] + }, + "parent": { + "id": "f7120f1e-3e39-4656-8c04-c8939f3a1660", + "name": "zrc-008", + "item": [ + { + "id": "49fb6582-797f-416a-9b5e-a1fb156e54c6", + "name": "set full token", + "request": { + "url": { + "path": [ + "catalogussen" + ], + "host": [ + "{{ztc_url}}" + ], + "query": [], + "variable": [] + }, + "method": "GET" + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "84d1c8e5-8038-42e6-9721-b20ac62c18ec", + "type": "text/javascript", + "packages": {}, + "exec": [ + "" + ], + "_lastExecutionId": "1cbce57a-a0dd-4ad9-bbaf-0ca6be14b1ba" + } + }, + { + "listen": "prerequest", + "script": { + "id": "99eb8014-6b6e-400a-9e44-24149ad660b8", + "type": "text/javascript", + "packages": {}, + "exec": [ + "pm.environment.set(\"jwt_token\", pm.environment.get(\"jwt_full\"));", + " var origId = pm.environment.get(\"_original_client_id\");", + " var origSecret = pm.environment.get(\"_original_secret\");", + " if (origId) { pm.environment.set(\"client_id\", origId); }", + " if (origSecret) { pm.environment.set(\"secret\", origSecret); }", + " pm.environment.set(\"secret\", pm.environment.get(\"secret\") || \"procest-admin-secret-key-for-testing\");" + ], + "_lastExecutionId": "aef194d6-cbdf-4854-8896-974a135773d5" + } + } + ] + }, + { + "id": "66fb3429-7977-44ac-b41a-104bde2b6911", + "name": "Create Zaak to close and reopen", + "request": { + "url": { + "path": [ + "zaken" + ], + "host": [ + "{{zrc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Accept-Crs", + "value": "EPSG:4326" + }, + { + "key": "Content-Crs", + "value": "EPSG:4326" + }, + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\r\n \"url\": \"https://zaken.spt-rx-services.nl/api/v1/zaken/cba40feb-2b38-4490-b12d-84a39e8df361\",\r\n \"uuid\": \"cba40feb-2b38-4490-b12d-84a39e8df361\",\r\n \"bronorganisatie\": \"000000000\",\r\n \"omschrijving\": \"string\",\r\n \"toelichting\": \"string\",\r\n \"zaaktype\": \"{{zaaktype_url}}\",\r\n \"registratiedatum\": \"2019-04-09\",\r\n \"verantwoordelijkeOrganisatie\": \"000000000\",\r\n \"startdatum\": \"2019-04-09\",\r\n \"einddatum\": null,\r\n \"einddatumGepland\": \"2019-04-20\",\r\n \"uiterlijkeEinddatumAfdoening\": \"2019-04-09\",\r\n \"publicatiedatum\": \"2019-04-09\",\r\n \"communicatiekanaal\": \"\",\r\n \"productenOfDiensten\": [],\r\n \"vertrouwelijkheidaanduiding\": \"geheim\",\r\n \"betalingsindicatie\": \"geheel\",\r\n \"betalingsindicatieWeergave\": null,\r\n \"laatsteBetaaldatum\": \"2019-01-01T00:00:00Z\",\r\n \"zaakgeometrie\": {\r\n \"type\": \"Point\",\r\n \"coordinates\": [\r\n 53.0,\r\n 5.0\r\n ]\r\n },\r\n \"verlenging\": null,\r\n \"opschorting\": {\r\n \"indicatie\": true,\r\n \"reden\": \"string\"\r\n },\r\n \"selectielijstklasse\": \"https://referentielijsten.roxit.nl/api/v1/resultaten/0fe71ce3-b1e1-48eb-9070-be2756fc71b5\",\r\n \"hoofdzaak\": null,\r\n \"deelzaken\": [],\r\n \"relevanteAndereZaken\": [],\r\n \"eigenschappen\": [],\r\n \"rollen\": [],\r\n \"status\": null,\r\n \"zaakinformatieobjecten\": [],\r\n \"zaakobjecten\": [],\r\n \"resultaat\": null,\r\n \"kenmerken\": [],\r\n \"archiefnominatie\": null,\r\n \"archiefstatus\": \"nog_te_archiveren\",\r\n \"archiefactiedatum\": null,\r\n \"opdrachtgevendeOrganisatie\": null,\r\n \"processobjectaard\": null,\r\n \"startdatumBewaartermijn\": null,\r\n \"processobject\": null\r\n}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "59fca861-e5bb-4f63-ba6f-56fc8c8fc2a4", + "type": "text/javascript", + "packages": {}, + "exec": [ + "pm.environment.set(\"created_zaak_url\", pm.response.json().url);" + ], + "_lastExecutionId": "9a2368e2-0316-438b-ada6-d8ac2b6eefd5" + } + }, + { + "listen": "prerequest", + "script": { + "id": "4d72a9e9-9820-4a0f-87e1-608a20b3c573", + "type": "text/javascript", + "packages": {}, + "exec": [], + "_lastExecutionId": "374e9018-7fe1-4e9c-89f3-b17a2a6e8a56" + } + } + ] + }, + { + "id": "9ec96a9e-1f62-4bd0-b0c6-0c15a2503a4b", + "name": "Add Resultaat to Zaak", + "request": { + "url": { + "path": [ + "resultaten" + ], + "host": [ + "{{zrc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n\t\"zaak\": \"{{created_zaak_url}}\",\n\t\"resultaattype\": \"{{resultaattype_url}}\"\n}" + } + }, + "response": [], + "event": [ + { + "listen": "prerequest", + "script": { + "id": "c630bc2c-edb4-422a-8363-7b4b116118f9", + "type": "text/javascript", + "exec": [ + "pm.environment.set(\"resultaattype\", pm.environment.get(\"zaaktype_resultaattypen\")[0]);" + ], + "_lastExecutionId": "5947db8c-4bd1-428d-b93d-98cbb4366b6b" + } + }, + { + "listen": "test", + "script": { + "id": "43e5010a-2231-443c-a32e-67dfbb19be83", + "type": "text/javascript", + "exec": [ + "pm.environment.set(\"zaak_resultaat_url\", pm.response.json().url);" + ], + "_lastExecutionId": "ea50f4c4-56b9-40e7-b1c1-62862b591534" + } + } + ] + }, + { + "id": "c8c15242-3181-4f07-9ce6-69e2b94d51cb", + "name": "Add Eindstatus to Zaak", + "request": { + "url": { + "path": [ + "statussen" + ], + "host": [ + "{{zrc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n\t\"zaak\": \"{{created_zaak_url}}\",\n\t\"statustype\": \"{{eindstatustype}}\",\n\t\"datumStatusGezet\": \"2018-04-20T13:37:00\"\n}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "7f4c2382-bbd5-44e5-a38c-53a6d14f739b", + "type": "text/javascript", + "exec": [ + "" + ], + "_lastExecutionId": "bfd90ef0-3f5e-41a0-9f4c-1922e186b29f" + } + }, + { + "listen": "prerequest", + "script": { + "id": "a01d171a-ab03-42a7-bea3-f9ec830e8b4a", + "type": "text/javascript", + "exec": [ + "" + ], + "_lastExecutionId": "5461a5b1-2213-4740-9ba1-439054029930" + } + } + ] + }, + { + "id": "3dbf74b7-86a8-4e10-bc44-bfd838032df2", + "name": "(zrc-008a) Zaak heropenen is mogelijk", + "request": { + "url": { + "path": [ + "statussen" + ], + "host": [ + "{{zrc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n\t\"zaak\": \"{{created_zaak_url}}\",\n\t\"statustype\": \"{{non_eindstatustype}}\",\n\t\"datumStatusGezet\": \"2018-04-21T13:37:00\"\n}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "db66f8fb-381b-4f97-8d52-883c5aba0aaa", + "type": "text/javascript", + "exec": [ + "pm.test(\"Non-eindstatus aan gesloten Zaak toevoegen geeft 201\", function() {", + " pm.response.to.have.status(201);", + " ", + " pm.expect(pm.response.json().statustype).to.be.equal(pm.environment.get(\"non_eindstatustype\"));", + "});" + ], + "_lastExecutionId": "206872b6-9d4a-49c5-9408-84a39e71be83" + } + } + ] + }, + { + "id": "2f947848-df6b-4742-9603-cf1db8e6dab1", + "name": "(zrc-008b) Zaak heropenen zet einddatum, archiefactiedatum en archiefnominatie op null", + "request": { + "url": { + "host": [ + "{{created_zaak_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Accept-Crs", + "value": "EPSG:4326" + } + ], + "method": "GET" + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "da11d6fc-c363-4b68-b87e-9070a4641b6b", + "type": "text/javascript", + "exec": [ + "pm.test(\"Zaak heropenen zet einddatum, archiefactiedatum en archiefnominatie op null\", function() {", + " var response = pm.response.json();", + " ", + " pm.expect(response.einddatum).to.be.equal(null);", + " pm.expect(response.archiefactiedatum).to.be.equal(null);", + " pm.expect(response.archiefnominatie).to.be.equal(null); ", + "});" + ], + "_lastExecutionId": "cf71eea5-e0ca-47aa-b236-8a6093b5a90a" + } + } + ] + }, + { + "id": "adf15bfc-2b21-4b62-8cab-09ad75e09c40", + "name": "Add Eindstatus to Zaak again", + "request": { + "url": { + "path": [ + "statussen" + ], + "host": [ + "{{zrc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n\t\"zaak\": \"{{created_zaak_url}}\",\n\t\"statustype\": \"{{eindstatustype}}\",\n\t\"datumStatusGezet\": \"2018-04-22T13:37:00\"\n}" + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "7a309cf7-3e25-4640-a318-bdcf2dc6ed00", + "type": "text/javascript", + "exec": [ + "" + ], + "_lastExecutionId": "bc636142-6253-4c19-9238-00cbcf9edf02" + } + }, + { + "listen": "prerequest", + "script": { + "id": "ca40f462-66c0-47dc-b265-c838ea0b0119", + "type": "text/javascript", + "exec": [ + "" + ], + "_lastExecutionId": "160f9129-e210-43e2-87ea-c4dbead8da5d" + } + } + ] + }, + { + "id": "7d5ab29f-3b09-47ca-a3b1-231533512ca9", + "name": "set restricted token Copy", + "request": { + "url": { + "path": [ + "catalogussen" + ], + "host": [ + "{{ztc_url}}" + ], + "query": [], + "variable": [] + }, + "method": "GET" + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "77a24419-fa94-4342-893d-79a98f382de3", + "type": "text/javascript", + "packages": {}, + "exec": [ + "pm.environment.set(\"jwt_token\", pm.environment.get(\"jwt-limited\"));", + " pm.environment.set(\"_original_client_id\", pm.environment.get(\"client_id\"));", + " pm.environment.set(\"_original_secret\", pm.environment.get(\"secret\"));", + " pm.environment.set(\"client_id\", pm.environment.get(\"client_id_limited\"));", + " pm.environment.set(\"secret\", pm.environment.get(\"secret_limited\"));", + " pm.environment.set(\"client_id\", pm.environment.get(\"client_id_limited\"));", + " pm.environment.set(\"secret\", pm.environment.get(\"secret_limited\"));" + ], + "_lastExecutionId": "f1c1749d-6de2-4a61-b7ca-2e56633f92c9" + } + } + ] + }, + { + "id": "3be2c55b-9e03-4e7e-a9b3-3f8b765e38f9", + "name": "(zrc-008c) Zaak heropenen zonder scope zaken.heropenen in Applicatie is onmogelijk", + "request": { + "url": { + "path": [ + "statussen" + ], + "host": [ + "{{zrc_url}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n\t\"zaak\": \"{{created_zaak_url}}\",\n\t\"statustype\": \"{{non_eindstatustype}}\",\n\t\"datumStatusGezet\": \"2018-04-21T17:37:00\"\n}" + }, + "auth": { + "type": "bearer", + "bearer": [ + { + "type": "string", + "value": "{{jwt-zrc-006}}", + "key": "token" + } + ] + } + }, + "response": [], + "event": [ + { + "listen": "test", + "script": { + "id": "3bfcf579-a302-4751-9f53-a1d88403426f", + "type": "text/javascript", + "packages": {}, + "exec": [ + "pm.test(\"Zaak heropenen zonder scope zaken.heropenen in Applicatie geeft 403\", function() {", + " pm.response.to.have.status(403);", + " pm.expect(pm.response.json().code).to.be.equal(\"permission_denied\");", + "});" + ], + "_lastExecutionId": "bb13a9d3-b73f-4986-a9bf-ecfd380b8d7e" + } + } + ] + } + ], + "event": [ + { + "listen": "prerequest", + "script": { + "id": "2e580a44-e1bd-421a-9fa9-a04c1ec672fc", + "type": "text/javascript", + "exec": [ + "" + ], + "_lastExecutionId": "6853e2ee-19f4-4387-b082-ce475c9ad447" + } + }, + { + "listen": "test", + "script": { + "id": "96d945da-add3-4cd2-b4ae-5420315fde4f", + "type": "text/javascript", + "exec": [ + "" + ], + "_lastExecutionId": "12ff0b32-634f-4e7b-b9f5-c41a17ed83be" + } + } + ] + }, + "cursor": { + "ref": "246befe8-8103-4992-81a4-c0bf1d7d29b2", + "length": 313, + "cycles": 1, + "position": 124, + "iteration": 0, + "httpRequestId": "3a742493-6ea2-4e23-8c67-fb2a67f72eba", + "scriptId": "3bfcf579-a302-4751-9f53-a1d88403426f", + "execution": "bb13a9d3-b73f-4986-a9bf-ecfd380b8d7e" + } + } + ], + "error": null + } +} \ No newline at end of file diff --git a/openspec/changes/admin-settings/design.md b/openspec/changes/admin-settings/design.md new file mode 100644 index 0000000..46e1c06 --- /dev/null +++ b/openspec/changes/admin-settings/design.md @@ -0,0 +1,14 @@ +# Design: admin-settings + +## Architecture + +Three new tab components following the same pattern as StatusesTab.vue: list items, inline edit, add form, delete with confirmation. Each fetches its own data via `useObjectStore().fetchCollection()` filtered by `caseType`. + +## File Changes + +| File | Change | +|------|--------| +| `src/views/settings/tabs/ResultsTab.vue` | New: Result type CRUD with archival rules | +| `src/views/settings/tabs/RolesTab.vue` | New: Role type CRUD with generic role dropdown | +| `src/views/settings/tabs/PropertiesTab.vue` | New: Property definition CRUD with format/requiredAtStatus | +| `src/views/settings/CaseTypeDetail.vue` | Add Results, Roles, Properties tabs | diff --git a/openspec/changes/admin-settings/proposal.md b/openspec/changes/admin-settings/proposal.md new file mode 100644 index 0000000..73817d2 --- /dev/null +++ b/openspec/changes/admin-settings/proposal.md @@ -0,0 +1,28 @@ +# Proposal: admin-settings + +## Summary + +Add V1 tabs (Results, Roles, Properties) to the case type detail view in admin settings. Each tab provides CRUD for its respective type definition linked to the parent case type. + +## Motivation + +The admin-settings spec defines MVP (General + Statuses tabs) as already implemented, and V1 (Results, Roles, Properties, Documents, Decisions tabs) as the next tier. Adding Results, Roles, and Properties tabs enables administrators to fully configure case type behavior including archival rules, participant role definitions, and custom properties. + +## Affected Projects + +- [x] Project: `procest` — Add 3 new tab components, update CaseTypeDetail + +## Scope + +### In Scope (V1) +- **REQ-ADMIN-009**: Results tab with result type CRUD and archival rules +- **REQ-ADMIN-010**: Roles tab with role type CRUD and generic role mapping +- **REQ-ADMIN-011**: Properties tab with property definition CRUD + +### Out of Scope +- Documents tab (REQ-ADMIN-012) — deferred +- Decisions tab (REQ-ADMIN-013) — deferred + +## Approach + +Create three new Vue components: `ResultsTab.vue`, `RolesTab.vue`, `PropertiesTab.vue` in `src/views/settings/tabs/`. Each follows the same pattern as `StatusesTab.vue`: list items, add/edit inline, delete with confirmation. Update `CaseTypeDetail.vue` to include the new tabs. diff --git a/openspec/changes/admin-settings/specs/admin-settings/spec.md b/openspec/changes/admin-settings/specs/admin-settings/spec.md new file mode 100644 index 0000000..ea0886d --- /dev/null +++ b/openspec/changes/admin-settings/specs/admin-settings/spec.md @@ -0,0 +1,24 @@ +# Delta: admin-settings + +## Changes from base spec + +### REQ-ADMIN-009 (IMPLEMENTED) +- Created ResultsTab.vue with result type CRUD +- Archival action (retain/destroy) via radio buttons +- Retention period input in ISO 8601 format +- Human-readable period display (e.g., "20 years") + +### REQ-ADMIN-010 (IMPLEMENTED) +- Created RolesTab.vue with role type CRUD +- Generic role dropdown with 8 options: initiator, handler, advisor, decision_maker, stakeholder, coordinator, contact, co_initiator +- Multiple role types can share the same generic role + +### REQ-ADMIN-011 (IMPLEMENTED) +- Created PropertiesTab.vue with property definition CRUD +- Format dropdown: text, number, date, datetime +- Max length field (number input) +- Required at status dropdown populated from case type's status types +- Optional/required toggle via status selection + +### REQ-ADMIN-004 (ENHANCED) +- CaseTypeDetail tabs expanded from 2 (General, Statuses) to 5 (General, Statuses, Results, Roles, Properties) diff --git a/openspec/changes/admin-settings/tasks.md b/openspec/changes/admin-settings/tasks.md new file mode 100644 index 0000000..e0799bd --- /dev/null +++ b/openspec/changes/admin-settings/tasks.md @@ -0,0 +1,16 @@ +# Tasks: admin-settings + +## Implementation Tasks + +- [x] **T01**: Create ResultsTab.vue with result type CRUD and archival rules (retain/destroy, retention period) +- [x] **T02**: Create RolesTab.vue with role type CRUD and generic role dropdown +- [x] **T03**: Create PropertiesTab.vue with property definition CRUD (format, maxLength, requiredAtStatus) +- [x] **T04**: Update CaseTypeDetail.vue to include Results, Roles, Properties tabs + +## Verification Tasks + +- [x] **V01**: Results tab shows result types with archival action badge and retention period +- [x] **V02**: Roles tab shows role types with generic role label +- [x] **V03**: Properties tab shows property definitions with format, max length, required status +- [x] **V04**: All three tabs support add, edit inline, and delete operations +- [x] **V05**: CaseTypeDetail tabs include General, Statuses, Results, Roles, Properties diff --git a/openspec/changes/ai-assisted-processing/.openspec.yaml b/openspec/changes/ai-assisted-processing/.openspec.yaml new file mode 100644 index 0000000..07c123a --- /dev/null +++ b/openspec/changes/ai-assisted-processing/.openspec.yaml @@ -0,0 +1,2 @@ +status: proposed +created: "2026-03-20" diff --git a/openspec/changes/ai-assisted-processing/design.md b/openspec/changes/ai-assisted-processing/design.md new file mode 100644 index 0000000..873fdff --- /dev/null +++ b/openspec/changes/ai-assisted-processing/design.md @@ -0,0 +1,115 @@ +# Design: ai-assisted-processing + +## Architecture Overview + +AI-assisted processing adds an AI layer to Procest's case management. All AI interactions flow through n8n workflows via MCP, with results surfaced in the Vue frontend for human confirmation. An immutable audit trail records every AI suggestion. + +``` +CaseDetail.vue +├── AiAssistantPanel.vue (sidebar panel for Q&A, suggestions, summaries) +│ ├── AiChatHistory.vue (conversation thread) +│ ├── AiSuggestionCard.vue (accept/reject suggestion) +│ └── AiConfidenceBadge.vue (confidence indicator) +├── AiClassifyDialog.vue (document classification modal) +├── AiExtractDialog.vue (data extraction results modal) +└── AiSummaryPanel.vue (auto-generated case/document summaries) + +AdminRoot.vue +└── AiSettingsTab.vue (AI configuration: toggles, model, health) +``` + +## File Map + +### New Files + +| File | Purpose | +|------|---------| +| `lib/Service/AiService.php` | AI orchestration service — delegates to n8n MCP for classification, extraction, Q&A, summarization; strips PII from prompts; records audit entries | +| `lib/Controller/AiController.php` | API endpoints: classify document, extract data, ask question, summarize, get suggestions, get audit log | +| `src/views/cases/components/AiAssistantPanel.vue` | Collapsible AI assistant panel in case detail sidebar — Q&A input, conversation history, suggestion cards | +| `src/views/cases/components/AiClassifyDialog.vue` | Modal showing classification suggestion with confidence, confirm/modify/reject actions | +| `src/views/cases/components/AiExtractDialog.vue` | Modal showing extracted fields with per-field confidence indicators, bulk/individual confirm | +| `src/views/cases/components/AiSuggestionCard.vue` | Reusable card for displaying an AI suggestion with accept/reject buttons and confidence badge | +| `src/views/cases/components/AiConfidenceBadge.vue` | Visual confidence indicator: high (green, >0.85), medium (orange, 0.60-0.85), low (red, <0.60) | +| `src/views/cases/components/AiSummaryPanel.vue` | Panel showing auto-generated summaries (case, document, timeline) | +| `src/views/settings/tabs/AiSettingsTab.vue` | Admin settings tab: global toggle, per-feature toggles, model config, health check button, DPIA acknowledgement | +| `src/services/aiApi.js` | Frontend API service for AI endpoints | + +### Modified Files + +| File | Changes | +|------|---------| +| `lib/Settings/procest_register.json` | Add `aiAuditEntry` schema | +| `lib/Service/SettingsService.php` | Add AI config keys (`ai_enabled`, `ai_model_type`, `ai_model_url`, `ai_model_name`, `ai_api_key`, `ai_feature_*` toggles, `ai_dpia_acknowledged`) | +| `src/views/cases/CaseDetail.vue` | Import and render AiAssistantPanel in sidebar, add AI action buttons to document list | +| `src/views/settings/AdminRoot.vue` | Add AiSettingsTab to settings tabs | +| `src/router/index.js` | No changes needed (settings route already exists) | +| `appinfo/routes.php` | Add AI API routes | + +## Design Decisions + +### DD-01: n8n MCP for AI Orchestration + +**Decision**: AI model calls go through n8n workflows via the n8n MCP server, not directly from PHP to the LLM API. + +**Rationale**: n8n provides visual workflow editing, retry logic, model switching, and prompt management without code changes. Municipalities can customize AI prompts and add processing steps without developer involvement. + +### DD-02: AI Audit Trail as OpenRegister Objects + +**Decision**: Store AI audit entries as OpenRegister objects with schema `aiAuditEntry`, not in a separate database table. + +**Rationale**: Consistent with the existing data model. OpenRegister provides built-in audit trails, search, and retention management. Audit entries inherit the case's retention policy. + +### DD-03: PII Stripping Before AI Calls + +**Decision**: The `AiService` strips BSN, financial data, and health information from prompts before sending to the AI model. + +**Rationale**: GDPR/AVG data minimization principle. Even for local models, reducing PII in prompts reduces risk. The stripping is configurable (can be disabled for local models via settings). + +### DD-04: Human-in-the-Loop Enforced by UI + +**Decision**: AI suggestions are always presented as proposals requiring explicit user confirmation. No auto-apply. + +**Rationale**: Algoritmeregister compliance requires human oversight for AI-assisted decisions. The UI enforces this by showing modals with confirm/reject actions. + +## OpenRegister Schema: aiAuditEntry + +```json +{ + "slug": "aiAuditEntry", + "title": "AI Audit Entry", + "type": "object", + "required": ["type", "model", "timestamp"], + "properties": { + "type": { "type": "string", "enum": ["classification", "extraction", "qa", "summary", "routing", "decision_support"] }, + "action": { "type": "string", "enum": ["suggested", "accepted", "rejected", "modified"] }, + "caseId": { "type": "string", "description": "Reference to the case" }, + "documentId": { "type": "string", "description": "Reference to the document (if applicable)" }, + "model": { "type": "string", "description": "AI model identifier (e.g., ollama/llama3.1)" }, + "prompt": { "type": "string", "description": "The prompt sent to the AI (for audit)" }, + "suggestion": { "type": "object", "description": "The AI suggestion payload" }, + "confidence": { "type": "number", "description": "Confidence score 0.0-1.0" }, + "userAction": { "type": "string", "description": "What the user did (accepted/rejected/modified)" }, + "actualValue": { "type": "object", "description": "The value actually applied (may differ from suggestion)" }, + "reason": { "type": "string", "description": "User's reason for rejection/modification" }, + "userId": { "type": "string", "description": "Nextcloud user ID" }, + "timestamp": { "type": "string", "format": "date-time" }, + "responseTimeMs": { "type": "integer", "description": "AI model response time in milliseconds" } + } +} +``` + +## API Endpoints + +| Method | URL | Purpose | +|--------|-----|---------| +| POST | `/api/ai/classify` | Classify a document (body: caseId, documentId) | +| POST | `/api/ai/extract` | Extract data from document(s) (body: caseId, documentId?) | +| POST | `/api/ai/ask` | Ask a knowledge base question (body: caseId, question) | +| POST | `/api/ai/summarize` | Generate summary (body: caseId, type: case/document/timeline, documentId?) | +| POST | `/api/ai/suggest-routing` | Get case routing suggestion (body: caseId) | +| POST | `/api/ai/suggest-next` | Get next-step suggestion (body: caseId) | +| GET | `/api/ai/audit` | Get AI audit trail (query: caseId?, type?, limit, offset) | +| GET | `/api/ai/settings` | Get AI settings | +| POST | `/api/ai/settings` | Update AI settings | +| POST | `/api/ai/health` | Test AI model connectivity | diff --git a/openspec/changes/ai-assisted-processing/proposal.md b/openspec/changes/ai-assisted-processing/proposal.md new file mode 100644 index 0000000..8e1536a --- /dev/null +++ b/openspec/changes/ai-assisted-processing/proposal.md @@ -0,0 +1,48 @@ +# Proposal: ai-assisted-processing + +## Summary + +Implement AI-assisted case processing for Procest — document classification, data extraction, knowledge base Q&A (RAG), decision support suggestions, case auto-summarization, AI routing, and a full AI audit trail. All AI operations follow the human-in-the-loop principle: AI suggests, humans confirm. + +## Motivation + +AI-assisted processing is the #1 emerging differentiator in case management tenders. The MCP integration with n8n provides the orchestration foundation, but Procest currently has zero AI-related UI components, services, or schemas. This change implements the V1 foundation: AI settings management (per-feature toggles, model configuration), the AI assistant panel on the case detail view, document classification and data extraction triggers, and a complete audit trail for Algoritmeregister compliance. + +## Affected Projects + +- [ ] Project: `procest` — Add AI services, settings UI, case detail AI panel, audit trail schemas + +## Scope + +### In Scope (V1) + +- **AI Settings** (REQ 8): Global toggle, per-feature toggles (6 features), model configuration (local Ollama / cloud), health monitoring, DPIA acknowledgement +- **Document Classification** (REQ 1): "AI classificeren" button on case documents, confidence scoring, classification suggestion UI with confirm/reject +- **Data Extraction** (REQ 2): "AI extractie" button, extracted field suggestions with confidence indicators (high/medium/low), per-field confirm +- **Knowledge Base Q&A** (REQ 3): AI assistant panel on case detail, question input, answer with source citations, conversation history +- **Decision Support** (REQ 4): Next-step suggestions, deadline warnings, case summarization, similar case detection +- **Auto-Summarization** (REQ 5): Document summary, timeline summary, case overview summary +- **AI Audit Trail** (REQ 6): Immutable audit entries for all AI interactions (suggestions, acceptances, rejections), aggregate reporting +- **AI Routing** (REQ 7): Case worker recommendation based on expertise and workload +- **Privacy** (REQ 9): Data minimization in prompts, BSN/PII stripping, DPIA tracking + +### Out of Scope + +- Auto-classification on upload (background processing — needs queue infrastructure) +- Knowledge base population and RAG indexing (needs Docudesk search integration) +- Workload balancing visualization on team dashboard +- Custom system prompt per zaaktype (admin UI — can use text field in settings) + +## Approach + +1. **Backend**: New `AiService` PHP class that orchestrates AI calls via n8n MCP workflows. New `AiSettingsController` for AI configuration management. AI audit trail stored as OpenRegister objects with schema `aiAuditEntry`. +2. **Frontend**: New `AiAssistantPanel.vue` component on case detail sidebar. New AI settings tab in admin settings. Document and extraction suggestion modals. +3. **Schemas**: Add `aiAuditEntry` schema to `procest_register.json`. Add AI config keys to `SettingsService`. +4. **Integration**: AI features triggered by user action (button click), routed through n8n workflows via MCP, results displayed in UI for human confirmation. + +## Cross-Project Dependencies + +- **n8n MCP server**: Orchestrates AI model calls via workflows +- **OpenRegister MCP**: Provides case data for AI context +- **Ollama / LLM provider**: Model inference (configured in settings) +- **Docudesk**: OCR for scanned documents (REQ 1, Scenario 1.5) diff --git a/openspec/changes/ai-assisted-processing/specs/ai-assisted-processing/spec.md b/openspec/changes/ai-assisted-processing/specs/ai-assisted-processing/spec.md new file mode 100644 index 0000000..a459c45 --- /dev/null +++ b/openspec/changes/ai-assisted-processing/specs/ai-assisted-processing/spec.md @@ -0,0 +1,331 @@ +--- +status: implemented +--- +# ai-assisted-processing Specification + +## Purpose +Enable AI-assisted case processing in Procest using the existing MCP (Model Context Protocol) integration. AI capabilities include document classification and data extraction, knowledge base Q&A (RAG) for case worker support, decision support suggestions, case routing recommendations, and auto-summarization. AI assists human case workers rather than making autonomous decisions -- every AI suggestion requires human confirmation. + +## Context +AI-assisted processing is an emerging capability in modern case management platforms. Flowable's Agentic AI integrates orchestrator, knowledge, document, and utility AI agents directly into the CMMN engine with full audit trails. Our MCP integration with n8n provides the foundation for similar capabilities without requiring a proprietary AI engine -- n8n workflows orchestrate AI model calls while Procest surfaces the results in the case worker UI. This spec defines how AI capabilities surface in Procest, following the human-in-the-loop principle mandated by Dutch government AI governance (Algoritmeregister). + +## Requirements + +### Requirement 1: Document classification with zaaktype and metadata suggestion +When documents are uploaded to a case or arrive unclassified, AI MUST suggest classification with confidence scoring. + +#### Scenario 1.1: Classify incoming document by type +- GIVEN a PDF document uploaded to case `zaak-1` +- WHEN the case worker clicks "AI classificeren" on the document in the case detail view +- THEN the system MUST send the document content to the configured AI model via an n8n workflow triggered through MCP +- AND return a suggested `documentType` (from the case type's configured document types) with a confidence score (0.0-1.0) +- AND return suggested metadata fields (date, sender, subject) extracted from the document content +- AND the case worker MUST confirm or modify the suggestion before it is applied to the `caseDocument` record + +#### Scenario 1.2: Route unclassified document to correct case +- GIVEN a document arrives via OpenConnector without case linkage +- WHEN the case worker triggers "AI routeren" on the document +- THEN the AI MUST analyze the document content and compare it against active cases in the register +- AND return up to 5 candidate cases ranked by relevance score +- AND each candidate MUST show the case title, identifier, zaaktype, and relevance explanation +- AND the case worker MUST select the correct case to link the document + +#### Scenario 1.3: Auto-suggest classification on upload +- GIVEN AI auto-classification is enabled in app settings +- WHEN a document is uploaded to a case +- THEN the system MUST automatically trigger classification in the background +- AND display the suggestion as a dismissable banner on the document: "AI suggests: Bezwaarschrift (87% confidence)" +- AND the suggestion MUST expire after 7 days if not acted upon + +#### Scenario 1.4: Classification model selection per zaaktype +- GIVEN different zaaktypes may benefit from different classification prompts +- WHEN an admin configures AI classification for a specific zaaktype +- THEN they MUST be able to specify a custom system prompt that includes zaaktype-specific document type descriptions +- AND the default prompt MUST use the document type names and descriptions from the zaaktype configuration + +#### Scenario 1.5: Classification handles non-text documents +- GIVEN a scanned image document (TIFF/JPEG) is uploaded +- WHEN the case worker triggers "AI classificeren" +- THEN the system MUST first perform OCR (via Docudesk or the AI model's vision capabilities) +- AND then classify the extracted text +- AND indicate to the case worker that OCR was used with the OCR confidence level + +### Requirement 2: Data extraction from documents to case fields +AI MUST read document content and suggest field values for the case or related objects. + +#### Scenario 2.1: Extract structured data from application document +- GIVEN a permit application PDF attached to case `zaak-1` with zaaktype `omgevingsvergunning` +- WHEN the case worker triggers "AI extractie" +- THEN the system MUST extract key-value pairs from the document content +- AND map them to the case's property definitions (e.g., `applicant_name`, `address`, `requested_activity`) +- AND present the extracted values as pre-filled suggestions in the case form (editable, not auto-saved) +- AND the case worker MUST review and confirm each extracted value before it is saved + +#### Scenario 2.2: Confidence indicators per extracted field +- GIVEN AI extracts 10 fields from a document +- WHEN presenting results to the case worker +- THEN each field MUST show a confidence indicator: high (>0.85), medium (0.60-0.85), low (<0.60) +- AND low-confidence fields MUST be visually highlighted with an orange border for careful review +- AND the case worker MUST explicitly confirm low-confidence fields (not just bulk-accept) + +#### Scenario 2.3: Extraction from multiple documents +- GIVEN a case with 5 uploaded documents +- WHEN the case worker triggers "AI extractie" on the case level (not a single document) +- THEN the AI MUST analyze all documents and merge extracted fields, preferring the highest-confidence value when conflicts occur +- AND conflicting values MUST be flagged for manual resolution with source document references + +#### Scenario 2.4: Extraction template per zaaktype +- GIVEN a zaaktype with specific property definitions +- WHEN AI extraction runs +- THEN the extraction prompt MUST include the zaaktype's property definitions as the target schema +- AND only extract fields that match defined properties (no arbitrary key-value extraction) + +#### Scenario 2.5: Extraction preserves source reference +- GIVEN an extracted field value "Jan de Vries" for property "applicant_name" +- THEN the extraction result MUST include the source document name, page number, and surrounding text snippet +- AND this reference MUST be viewable by the case worker when hovering over the extracted value + +### Requirement 3: Knowledge base Q&A (RAG) for case worker support +RAG-based Q&A MUST allow case workers to ask questions about policies, procedures, and regulations relevant to their case. + +#### Scenario 3.1: Ask a policy question in case context +- GIVEN a case worker handling an `omgevingsvergunning` case +- WHEN they open the AI assistant panel and ask "Wat zijn de maximale bouwhoogtes in zone B?" +- THEN the system MUST search relevant policy documents in the knowledge base via RAG +- AND return an answer with source citations (document name, page/section, direct quote) +- AND the answer MUST be scoped to the municipality's own policy documents first, then national regulations + +#### Scenario 3.2: No answer available -- refuse to hallucinate +- GIVEN a case worker asks a question with no relevant documents in the knowledge base +- THEN the system MUST respond with "Geen relevante informatie gevonden in de kennisbank" +- AND suggest: "Voeg relevante beleidsdocumenten toe aan de kennisbank" +- AND MUST NOT generate a plausible-sounding but unsourced answer + +#### Scenario 3.3: Knowledge base population from case documents +- GIVEN an admin enables "auto-index case documents" for a zaaktype +- WHEN documents are uploaded to cases of that type +- THEN policy documents (beleidsstukken, verordeningen) MUST be automatically indexed in the RAG knowledge base +- AND case-specific documents (citizen applications, personal data) MUST NOT be indexed unless explicitly marked as policy documents + +#### Scenario 3.4: Context-aware answers +- GIVEN a case worker asks "Hoeveel tijd heb ik nog voor een besluit?" +- WHEN the AI assistant has access to the current case's deadline information +- THEN the answer MUST include the specific deadline date and days remaining from the case data +- AND cite the relevant legal basis for the deadline (e.g., WOO Art. 4.4 for WOO cases) + +#### Scenario 3.5: Conversation history within case +- GIVEN a case worker has asked 3 questions in the AI assistant for case `zaak-1` +- WHEN they ask a follow-up question +- THEN the system MUST include the previous questions and answers as conversation context +- AND the conversation history MUST be stored on the case for audit and handover purposes + +### Requirement 4: Decision support and next-action suggestions +AI MUST analyze case state and history to suggest what the case worker should do next. + +#### Scenario 4.1: Suggest next step based on case state +- GIVEN case `zaak-1` has status `intake_complete` and all required documents are uploaded +- WHEN the case worker opens the case +- THEN the AI assistant panel MAY show: "Alle intake documenten zijn aanwezig. Overweeg de zaak naar beoordelingsfase te verplaatsen." +- AND the suggestion MUST be dismissable and non-blocking +- AND the suggestion MUST include a one-click action to execute the suggested step + +#### Scenario 4.2: Flag potential deadline issues +- GIVEN case `zaak-1` has a bezwaartermijn ending in 3 days and no decision recorded +- WHEN the case worker opens the case +- THEN the AI MUST flag: "Bezwaartermijn verloopt over 3 dagen -- besluit is mogelijk nodig" +- AND the flag MUST appear as a prominent warning in the case detail header +- AND link to the relevant deadline information in the `DeadlinePanel` + +#### Scenario 4.3: Summarize case for handover +- GIVEN a case worker requests "AI samenvatting" for case `zaak-1` +- WHEN the AI processes the case data (status history, documents, notes, tasks) +- THEN it MUST generate a structured summary with: current status, key dates, open tasks, recent activity, and recommended next steps +- AND the summary MUST be savable as a case note in the `ActivityTimeline` + +#### Scenario 4.4: Similar case detection +- GIVEN a new case is created with certain properties (zaaktype, subject, applicant) +- WHEN the case worker triggers "Vergelijkbare zaken zoeken" +- THEN the AI MUST search for similar completed cases based on content similarity +- AND return up to 5 similar cases with their outcomes (resultaat) and processing time +- AND the case worker MUST be able to view the similar cases for reference + +#### Scenario 4.5: Workload balancing suggestions +- GIVEN a team has 50 active cases distributed across 5 case workers +- WHEN a manager views the team dashboard +- THEN the AI MAY suggest workload redistribution: "Medewerker A heeft 15 zaken (3 urgent), medewerker B heeft 5. Overweeg herverdeling." +- AND the suggestion MUST be based on case count, urgency, and estimated complexity + +### Requirement 5: Case auto-summarization +AI MUST generate human-readable summaries of case content for quick orientation. + +#### Scenario 5.1: Auto-summary on case open +- GIVEN a case with more than 5 documents and 10 timeline entries +- WHEN the case worker opens the case for the first time (or after 7+ days) +- THEN the system MAY display an auto-generated summary panel at the top of the case detail +- AND the summary MUST cover: what the case is about, current status, key dates, and what needs attention + +#### Scenario 5.2: Document summary +- GIVEN a 25-page policy document attached to a case +- WHEN the case worker clicks "AI samenvatting" on the document +- THEN the system MUST generate a 3-5 sentence summary of the document +- AND display it inline below the document title in the case document list + +#### Scenario 5.3: Timeline summary for long-running cases +- GIVEN a case with 50+ timeline entries spanning 6 months +- WHEN the case worker clicks "Tijdlijn samenvatting" +- THEN the AI MUST generate a chronological summary highlighting key events (status changes, decisions, escalations) +- AND the summary MUST be displayable as a collapsed panel above the full timeline + +### Requirement 6: AI interaction audit trail +Every AI suggestion, acceptance, and rejection MUST be recorded for accountability and Algoritmeregister compliance. + +#### Scenario 6.1: Audit trail for accepted suggestion +- GIVEN AI suggests `documentType: "bezwaarschrift"` for a document with confidence 0.92 +- WHEN the case worker accepts the suggestion +- THEN an audit entry MUST be created in the case's activity log with: + - `type`: `ai.suggestion.accepted` + - `model`: the AI model identifier (e.g., "ollama/llama3.1") + - `suggestion`: the original suggestion payload + - `confidence`: 0.92 + - `user`: the case worker who accepted + - `timestamp`: ISO 8601 datetime + +#### Scenario 6.2: Audit trail for rejected suggestion +- GIVEN AI suggests routing a document to case `zaak-1` +- WHEN the case worker rejects the suggestion and manually assigns to `zaak-2` +- THEN an audit entry MUST record: + - `type`: `ai.suggestion.rejected` + - `suggestion`: `{"case": "zaak-1", "confidence": 0.78}` + - `actual`: `{"case": "zaak-2"}` + - `reason`: optional free-text reason from the case worker + - `user`: the case worker + +#### Scenario 6.3: Audit trail for RAG Q&A +- GIVEN a case worker asks a question via the knowledge base +- THEN an audit entry MUST record the question, the answer, the source documents cited, and the model used +- AND this MUST be queryable for Algoritmeregister reporting + +#### Scenario 6.4: Aggregate AI usage reporting +- GIVEN an admin requests AI usage statistics +- THEN the system MUST provide: total suggestions made, acceptance rate, rejection rate, average confidence scores, most common suggestion types, and per-model usage breakdown + +#### Scenario 6.5: Audit entries are immutable +- GIVEN an AI audit trail entry has been created +- THEN it MUST NOT be editable or deletable by any user +- AND it MUST be retained for at least the case's archival retention period + +### Requirement 7: AI case routing recommendations +AI MUST suggest the best case worker or team for incoming cases based on expertise and workload. + +#### Scenario 7.1: Route new case to specialist +- GIVEN a new WOO case arrives via intake +- WHEN the case is created and AI routing is enabled +- THEN the AI MUST analyze the case subject and recommend a case worker with WOO expertise +- AND the recommendation MUST factor in current workload (number of active cases per worker) +- AND the case worker MUST confirm assignment + +#### Scenario 7.2: Route based on geographic area +- GIVEN a case related to a specific neighborhood or address +- WHEN AI routing analyzes the case +- THEN it MUST consider geographic assignment rules (wijkteam, gebiedsteam) if configured +- AND suggest the case worker responsible for that area + +#### Scenario 7.3: Escalation routing +- GIVEN a case that has been stalled for more than its expected processing time +- WHEN the AI detects the stall during periodic analysis +- THEN it MUST suggest escalation to a senior case worker or manager +- AND include the stall duration and potential reasons in the suggestion + +### Requirement 8: AI features opt-in and configuration +AI features MUST be individually toggleable per municipality, with support for local and cloud AI models. + +#### Scenario 8.1: Disable all AI features +- GIVEN an admin navigates to Procest app settings +- WHEN they toggle "AI-ondersteuning" to disabled +- THEN no AI buttons, panels, or suggestions MUST appear in the case worker UI +- AND no case data MUST be sent to any AI model +- AND the toggle MUST take effect immediately without requiring app restart + +#### Scenario 8.2: Configure local AI model (Ollama) +- GIVEN AI features are enabled +- WHEN an admin configures the AI model as a local Ollama instance (e.g., `http://ollama:11434`) +- THEN all AI requests MUST be routed to the local model +- AND the admin MUST be able to select the specific model (e.g., llama3.1, mistral, qwen2.5) +- AND document content MUST NOT leave the Nextcloud server network + +#### Scenario 8.3: Configure cloud AI model +- GIVEN AI features are enabled +- WHEN an admin configures an external AI model (OpenAI, Azure OpenAI, Anthropic) +- THEN the system MUST display a warning: "Zaakgegevens worden naar een externe dienst verzonden. Zorg dat dit past binnen uw verwerkingsovereenkomst." +- AND the admin MUST explicitly acknowledge the privacy implications +- AND the configuration MUST store the API key securely via Nextcloud's credential store + +#### Scenario 8.4: Feature-level toggles +- GIVEN AI features are globally enabled +- THEN the admin MUST be able to individually toggle: + - Document classification (on/off) + - Data extraction (on/off) + - Knowledge base Q&A (on/off) + - Decision support suggestions (on/off) + - Auto-summarization (on/off) + - Case routing (on/off) +- AND each feature MUST work independently + +#### Scenario 8.5: AI model health monitoring +- GIVEN an AI model is configured +- THEN the settings page MUST show the model connection status (connected/error) +- AND a "Test verbinding" button MUST send a test prompt and display the response time +- AND if the model is unreachable, AI features MUST gracefully degrade (hide AI buttons, show "AI niet beschikbaar" on hover) + +### Requirement 9: Privacy and data protection for AI processing +AI processing MUST comply with AVG/GDPR and BIO requirements for government data. + +#### Scenario 9.1: Data minimization in AI prompts +- GIVEN the system sends case data to an AI model for classification +- THEN only the minimum necessary data MUST be included in the prompt (document content, not full case history) +- AND BSN, financial data, and health information MUST be stripped from prompts unless explicitly required for the task + +#### Scenario 9.2: DPIA requirement tracking +- GIVEN AI features are enabled for the first time +- THEN the system MUST display a warning: "AI-verwerking van zaakgegevens vereist een Data Protection Impact Assessment (DPIA)" +- AND the admin MUST acknowledge this requirement +- AND the acknowledgement MUST be logged + +#### Scenario 9.3: Data retention for AI interactions +- GIVEN AI interaction data (prompts, responses) is stored for audit purposes +- THEN the retention period MUST match the case's archival retention period +- AND when a case is destroyed per retention policy, associated AI audit data MUST also be destroyed + +## Dependencies +- n8n MCP server (for AI workflow orchestration) +- OpenRegister MCP (for case data access) +- Ollama or external LLM provider (for AI model inference) +- Docudesk (for OCR of scanned documents) +- OpenConnector (for document ingestion from external sources) +- Nextcloud AI integration (`OCP\TextProcessing`) as potential alternative backend + +--- + +### Current Implementation Status + +**Not yet implemented.** No AI-related services, controllers, or Vue components exist in the Procest codebase. The MCP integration infrastructure exists at the workspace level (`.mcp.json` with n8n-mcp and OpenRegister MCP), but Procest itself has no AI document classification, data extraction, knowledge base Q&A, or decision support functionality. + +**Foundation available:** +- The n8n MCP server is configured at the workspace level, providing workflow orchestration that could trigger AI pipelines. +- OpenRegister MCP provides data access that AI tools could query. +- The `objectStore` pattern (`src/store/modules/object.js`) with `auditTrailsPlugin` provides the audit infrastructure that AI interaction logging would use. +- `ActivityTimeline.vue` supports activity entries with type, description, user, and date -- extensible for AI audit entries. +- Nextcloud's `OCP\TextProcessing\IManager` provides a native AI abstraction that could serve as an alternative to direct MCP calls. + +**Partial implementations:** None. + +### Standards & References + +- **MCP (Model Context Protocol)**: Anthropic's standard for LLM tool integration -- the foundation for AI features. +- **GDPR / AVG**: AI processing of citizen data requires Data Protection Impact Assessment (DPIA), especially for document classification containing PII. +- **BIO (Baseline Informatiebeveiliging Overheid)**: Government security baseline applies to AI model endpoints and data handling. +- **Algoritmeregister**: Dutch government requirement to register algorithmic decision-making systems. All AI features that influence case outcomes must be registered. +- **Common Ground**: AI services should be deployable as Common Ground components (API-first, layered architecture). +- **WCAG AA**: AI suggestion UI must be accessible, including screen reader announcements for suggestions. +- **Flowable Agentic AI**: Reference architecture for integrating AI agents into CMMN case management (orchestrator, knowledge, document, utility agents). +- **CMMN 1.1**: AI suggestions map to SentryEvents that can trigger case plan items. diff --git a/openspec/changes/ai-assisted-processing/tasks.md b/openspec/changes/ai-assisted-processing/tasks.md new file mode 100644 index 0000000..cd13868 --- /dev/null +++ b/openspec/changes/ai-assisted-processing/tasks.md @@ -0,0 +1,62 @@ +# Tasks: AI-Assisted Processing + +## Implementation Tasks + +### Backend: Schema & Settings + +- [ ] **T01**: Add `aiAuditEntry` schema to `procest_register.json` — Fields: type (enum), action (enum), caseId, documentId, model, prompt, suggestion (object), confidence (number), userAction, actualValue (object), reason, userId, timestamp (datetime), responseTimeMs (integer). Add slug-to-config mapping in `SettingsService.php` for `ai_audit_entry_schema`. + +- [ ] **T02**: Add AI config keys to `SettingsService.php` — Add to `CONFIG_KEYS` array: `ai_enabled`, `ai_model_type` (local/cloud), `ai_model_url`, `ai_model_name`, `ai_api_key`, `ai_feature_classification`, `ai_feature_extraction`, `ai_feature_qa`, `ai_feature_summary`, `ai_feature_routing`, `ai_feature_decision_support`, `ai_dpia_acknowledged`, `ai_pii_stripping`. Add corresponding SLUG_TO_CONFIG_KEY entries for the new schema. + +### Backend: Services & Controllers + +- [ ] **T03**: Create `lib/Service/AiService.php` — Methods: `classifyDocument(string $caseId, string $documentId): array`, `extractData(string $caseId, ?string $documentId): array`, `askQuestion(string $caseId, string $question): array`, `summarize(string $caseId, string $type, ?string $documentId): array`, `suggestRouting(string $caseId): array`, `suggestNextStep(string $caseId): array`, `getAuditLog(array $filters): array`, `testHealth(): array`. Each method: (1) checks if AI is enabled and the specific feature toggle, (2) builds a prompt with case context, (3) strips PII if configured, (4) calls n8n workflow via MCP, (5) records an aiAuditEntry, (6) returns the result. Use `ContainerInterface` to get OpenRegister services. Log all AI calls. + +- [ ] **T04**: Create `lib/Controller/AiController.php` — REST endpoints for all AI operations. Methods: `classify(IRequest)`, `extract(IRequest)`, `ask(IRequest)`, `summarize(IRequest)`, `suggestRouting(IRequest)`, `suggestNext(IRequest)`, `auditIndex(IRequest)`, `getSettings(IRequest)`, `updateSettings(IRequest)`, `healthCheck(IRequest)`. Each method validates input, delegates to `AiService`, returns JSONResponse. Extends `Controller`. Inject `AiService`, `SettingsService`, `LoggerInterface`. + +- [ ] **T05**: Add AI routes to `appinfo/routes.php` — Add 10 routes: POST classify, POST extract, POST ask, POST summarize, POST suggest-routing, POST suggest-next, GET audit, GET ai/settings, POST ai/settings, POST ai/health. + +### Frontend: API Service + +- [ ] **T06**: Create `src/services/aiApi.js` — Export functions: `classifyDocument(caseId, documentId)`, `extractData(caseId, documentId)`, `askQuestion(caseId, question)`, `summarize(caseId, type, documentId)`, `suggestRouting(caseId)`, `suggestNext(caseId)`, `getAuditLog(filters)`, `getAiSettings()`, `updateAiSettings(settings)`, `testAiHealth()`. All use `axios` with `generateUrl('/apps/procest/api/ai/...')`. + +### Frontend: Reusable Components + +- [ ] **T07**: Create `src/views/cases/components/AiConfidenceBadge.vue` — Props: `confidence` (Number, 0.0-1.0), `size` (String, 'small'|'medium', default 'small'). Computed: level (high >0.85, medium 0.60-0.85, low <0.60), color (green/orange/red), label (e.g., "87%"). Renders a colored badge with percentage text. WCAG: includes aria-label "Confidence: 87% (high)". + +- [ ] **T08**: Create `src/views/cases/components/AiSuggestionCard.vue` — Props: `suggestion` (Object: { type, value, confidence, explanation }), `loading` (Boolean), `readonly` (Boolean). Slots: default (suggestion content). Emits: `@accept(suggestion)`, `@reject(suggestion, reason)`, `@modify(suggestion, newValue)`. Template: card with suggestion content, AiConfidenceBadge, explanation text, action buttons (Accept green, Reject red, Modify blue). Reject shows a text input for reason. Uses `CnDetailCard` wrapper. + +### Frontend: AI Dialogs + +- [ ] **T09**: Create `src/views/cases/components/AiClassifyDialog.vue` — Props: `caseId` (String), `documentId` (String), `show` (Boolean). Emits: `@close`, `@applied(classification)`. On open: calls `classifyDocument()`, shows loading spinner, then shows suggestion with: suggested document type (NcSelect to modify), confidence badge, extracted metadata (date, sender, subject as editable fields). Confirm button applies classification to the caseDocument record. Reject button records rejection in audit trail. + +- [ ] **T10**: Create `src/views/cases/components/AiExtractDialog.vue` — Props: `caseId` (String), `documentId` (String, optional), `show` (Boolean). Emits: `@close`, `@applied(fields)`. On open: calls `extractData()`, shows loading. Results: table of extracted fields with columns: field name, extracted value (editable input), confidence badge, source reference (tooltip with document name + page). Low-confidence fields (<0.60) have orange border and require individual confirmation. "Apply selected" button saves confirmed fields to case properties. + +### Frontend: AI Assistant Panel + +- [ ] **T11**: Create `src/views/cases/components/AiAssistantPanel.vue` — Displayed in CaseDetail sidebar when AI is enabled. Sections: (1) Q&A: text input + send button, conversation history (question/answer pairs with source citations), (2) Suggestions: list of AiSuggestionCards for next-step suggestions, deadline warnings, routing recommendations, (3) Summary: collapsible auto-generated case summary. Data: fetches suggestions on mount via `suggestNext()`. Q&A: calls `askQuestion()` on submit, appends to conversation. Conversation stored per-case in component state. + +- [ ] **T12**: Create `src/views/cases/components/AiSummaryPanel.vue` — Props: `caseId` (String), `type` (String: 'case'|'document'|'timeline'), `documentId` (String, optional). On mount or button click: calls `summarize()`. Displays summary text in a collapsible panel. "Opslaan als notitie" button saves summary as a case activity entry. + +### Frontend: Settings + +- [ ] **T13**: Create `src/views/settings/tabs/AiSettingsTab.vue` — Sections: (1) Global toggle: "AI-ondersteuning" switch, (2) Model config: radio (local/cloud), URL input, model name select, API key (password field, only for cloud), (3) Feature toggles: 6 switches (classification, extraction, Q&A, summary, routing, decision support), (4) Privacy: PII stripping toggle, DPIA acknowledgement checkbox with warning text, (5) Health: "Test verbinding" button showing model status (connected/error) and response time. Load settings on mount via `getAiSettings()`, save on change via `updateAiSettings()`. Cloud model shows privacy warning: "Zaakgegevens worden naar een externe dienst verzonden." + +### Integration + +- [ ] **T14**: Integrate AI panel into `CaseDetail.vue` — Import `AiAssistantPanel`, render in sidebar section when AI is enabled (check settings). Add "AI classificeren" button to document list items. Add "AI extractie" button to case header actions. Wire dialog components (AiClassifyDialog, AiExtractDialog) with show/hide state. + +- [ ] **T15**: Integrate AI settings tab into `AdminRoot.vue` — Import `AiSettingsTab`, add as tab in settings navigation. Tab visible to admins only. + +## Verification Tasks + +- [ ] **V01**: AI settings page loads and saves all configuration options +- [ ] **V02**: Per-feature toggles hide/show corresponding AI buttons in case detail +- [ ] **V03**: Document classification returns suggestion with confidence score +- [ ] **V04**: Data extraction shows per-field confidence with color coding +- [ ] **V05**: Q&A returns answers with source citations +- [ ] **V06**: Audit trail records all AI interactions (suggestions, accepts, rejects) +- [ ] **V07**: PII stripping removes BSN patterns from prompts when enabled +- [ ] **V08**: Cloud model configuration shows privacy warning +- [ ] **V09**: Health check button tests model connectivity +- [ ] **V10**: DPIA acknowledgement is required and logged diff --git a/openspec/changes/appointment-scheduling/.openspec.yaml b/openspec/changes/appointment-scheduling/.openspec.yaml new file mode 100644 index 0000000..07c123a --- /dev/null +++ b/openspec/changes/appointment-scheduling/.openspec.yaml @@ -0,0 +1,2 @@ +status: proposed +created: "2026-03-20" diff --git a/openspec/changes/appointment-scheduling/design.md b/openspec/changes/appointment-scheduling/design.md new file mode 100644 index 0000000..e8da1b2 --- /dev/null +++ b/openspec/changes/appointment-scheduling/design.md @@ -0,0 +1,78 @@ +# Design: appointment-scheduling + +## Architecture Overview + +Appointments are OpenRegister objects linked to cases. A plugin interface abstracts the appointment backend. The frontend provides booking UI in case detail and a public booking page. + +``` +CaseDetail.vue +├── AppointmentSection.vue (list appointments, book new) +│ └── AppointmentBookingDialog.vue (product/location/timeslot selection) +└── ActivityTimeline.vue (appointment events) + +Settings +└── AppointmentSettingsTab.vue (backend config, products, locations) + +Public +└── PublicAppointmentPage.vue (citizen cancel/reschedule) +``` + +## File Map + +### New Files + +| File | Purpose | +|------|---------| +| `lib/Service/AppointmentService.php` | Appointment CRUD, backend plugin dispatch, reminder scheduling | +| `lib/Service/AppointmentBackend/AppointmentBackendInterface.php` | Plugin interface for appointment backends | +| `lib/Service/AppointmentBackend/LocalBackend.php` | Local fallback (OpenRegister storage only) | +| `lib/Service/AppointmentBackend/JccBackend.php` | JCC Afspraken API integration | +| `lib/Service/AppointmentBackend/QmaticBackend.php` | Qmatic Orchestra REST API integration | +| `lib/Controller/AppointmentController.php` | Authenticated API for appointment management | +| `lib/Controller/PublicAppointmentController.php` | Public endpoints for citizen self-service | +| `lib/BackgroundJob/AppointmentReminderJob.php` | Daily job for sending appointment reminders | +| `src/views/cases/components/AppointmentSection.vue` | Case detail appointment list and booking trigger | +| `src/views/cases/components/AppointmentBookingDialog.vue` | Product/location/timeslot selection dialog | +| `src/views/settings/tabs/AppointmentSettingsTab.vue` | Admin settings for backend, products, locations | +| `src/views/public/PublicAppointmentPage.vue` | Citizen appointment management page | +| `src/services/appointmentApi.js` | Frontend API service | + +### Modified Files + +| File | Changes | +|------|---------| +| `lib/Settings/procest_register.json` | Add `appointment`, `appointmentProduct`, `appointmentLocation` schemas | +| `lib/Service/SettingsService.php` | Add appointment config keys | +| `appinfo/routes.php` | Add appointment routes | + +## Data Model + +### appointment Schema +- `caseId` (string, UUID) -- Linked case +- `productId` (string) -- Appointment product +- `locationId` (string) -- Physical location +- `dateTime` (string, ISO 8601) -- Appointment datetime +- `duration` (integer, minutes) -- Duration +- `status` (enum: scheduled/confirmed/cancelled/completed/no_show) +- `citizenName` (string) -- Citizen name +- `citizenEmail` (string) -- Citizen email +- `citizenPhone` (string, nullable) -- Citizen phone +- `externalId` (string, nullable) -- External system appointment ID +- `cancelToken` (string) -- Token for self-service cancellation +- `reminderSent` (boolean, default false) +- `notes` (string, nullable) -- Case worker notes + +## API Endpoints + +| Method | URL | Purpose | +|--------|-----|---------| +| GET | `/api/appointments` | List appointments (filtered by caseId) | +| POST | `/api/appointments` | Book an appointment | +| GET | `/api/appointments/{id}` | Get appointment details | +| PUT | `/api/appointments/{id}` | Update appointment | +| DELETE | `/api/appointments/{id}` | Cancel appointment | +| POST | `/api/appointments/{id}/no-show` | Mark as no-show | +| GET | `/api/appointments/timeslots` | Get available timeslots (product + location + date) | +| GET | `/api/public/appointment/{token}` | View appointment (citizen) | +| POST | `/api/public/appointment/{token}/cancel` | Cancel (citizen) | +| POST | `/api/public/appointment/{token}/reschedule` | Reschedule (citizen) | diff --git a/openspec/changes/appointment-scheduling/proposal.md b/openspec/changes/appointment-scheduling/proposal.md new file mode 100644 index 0000000..7f3169b --- /dev/null +++ b/openspec/changes/appointment-scheduling/proposal.md @@ -0,0 +1,33 @@ +# Proposal: Appointment Scheduling + +## Summary + +Integrate appointment scheduling (afsprakenbeheer) into Procest case flows. Citizens book balie appointments as part of case submission. Pluggable backends (JCC, Qmatic) with a local fallback. Self-service cancellation and rescheduling. + +## Problem + +Cases requiring physical service delivery (passport, marriage, permit discussion) currently require manual phone/email appointment coordination. This adds administrative overhead and loses the audit trail connection between the appointment and the case. + +## Scope -- MVP + +**In scope:** +- Appointment entity in OpenRegister with case linkage +- Appointment booking from case detail (case worker) and intake flow (citizen) +- Plugin interface for appointment backends (JCC Afspraken, Qmatic) +- Local fallback when no backend is configured +- Citizen self-service: cancel and reschedule via token link +- Appointment reminders via Nextcloud background jobs +- Appointment events in case timeline +- No-show tracking +- Products and locations configuration in admin settings + +**Out of scope:** +- Nextcloud Calendar integration (V1) +- SMS notifications (email only for MVP) +- Queue management (real-time queue position) + +## Dependencies + +- OpenRegister for appointment storage +- OpenConnector for external backend adapters (JCC, Qmatic) +- NotificatieService for reminders diff --git a/openspec/changes/appointment-scheduling/specs/appointment-scheduling/spec.md b/openspec/changes/appointment-scheduling/specs/appointment-scheduling/spec.md new file mode 100644 index 0000000..6b2bb12 --- /dev/null +++ b/openspec/changes/appointment-scheduling/specs/appointment-scheduling/spec.md @@ -0,0 +1,343 @@ +--- +status: implemented +--- +# appointment-scheduling Specification + +## Purpose +Integrate appointment scheduling (afsprakenbeheer) into Procest case flows for cases that require physical service delivery at a municipal counter (balie). Citizens can book appointments as part of case submission or at any point during case handling. The system integrates with existing municipal appointment backends (Qmatic, JCC Afspraken) via a plugin architecture, and supports self-service cancellation and modification. + +## Context +In Dutch municipalities, balie appointments are standard for services like passport collection, marriage registration, and permit discussions. Open-Formulieren implements appointment scheduling as part of form submissions with integration plugins for JCC and Qmatic -- product/location/timeslot selection during intake with configurable contact details. This is the reference model. Procest extends this by embedding appointments into the case lifecycle, making appointment status visible in case context, and supporting both citizen self-service and case worker-initiated scheduling. + +## Requirements + +### Requirement 1: Appointments bookable as part of case flow +Case workers or citizens MUST be able to create appointments linked to a case at any point during the case lifecycle. + +#### Scenario 1.1: Book appointment during case intake +- GIVEN a citizen is submitting a `paspoort_aanvraag` case +- AND the zaaktype is configured with `requiresAppointment: true` +- WHEN the citizen reaches the appointment step in the intake flow +- THEN the system MUST show: + - Available products (e.g., "Paspoort ophalen", "Rijbewijs ophalen") filtered by zaaktype configuration + - Available locations (e.g., "Stadskantoor", "Wijkkantoor Noord") for the selected product + - Available dates and timeslots for the selected product/location combination +- AND the citizen MUST select a timeslot to proceed with case submission +- AND the appointment MUST be automatically linked to the created case + +#### Scenario 1.2: Book appointment from case detail view +- GIVEN case `zaak-1` is in progress and needs a physical meeting +- WHEN a case worker clicks "Plan afspraak" in the `CaseDetail.vue` header actions +- THEN an appointment booking dialog MUST appear with: + - Product pre-selected based on the zaaktype (editable) + - Location dropdown with configured municipal locations + - Date picker showing available dates + - Timeslot grid for the selected date +- AND the appointment MUST be linked to `zaak-1` after booking +- AND an activity entry MUST appear in the `ActivityTimeline` + +#### Scenario 1.3: Multiple appointments per case +- GIVEN case `zaak-1` already has an appointment for document submission +- WHEN the case worker books a second appointment for document collection +- THEN both appointments MUST be listed in the case's appointment section +- AND each appointment MUST have its own status and lifecycle + +#### Scenario 1.4: Appointment as required task +- GIVEN a zaaktype configured with an appointment required at status "Ophalen" +- WHEN the case reaches the "Ophalen" status +- THEN a task MUST be auto-created: "Plan afspraak voor ophalen" +- AND the case MUST NOT be advanceable to the next status until the appointment is booked + +#### Scenario 1.5: Appointment links to case participants +- GIVEN a case with a linked citizen (role: initiator, with BSN and contact details) +- WHEN booking an appointment +- THEN the citizen's name, phone number, and email MUST be pre-filled from the case role data +- AND the case worker MUST be able to override the contact details (e.g., if someone else will attend) + +### Requirement 2: Pluggable appointment backend architecture +Different municipalities use different appointment systems; the integration MUST be pluggable. + +#### Scenario 2.1: JCC Afspraken integration +- GIVEN the municipality uses JCC Afspraken +- AND the JCC plugin is configured in Procest settings with: API URL, API key, and organization ID +- WHEN a timeslot query is made for product "Paspoort ophalen" at location "Stadskantoor" +- THEN the plugin MUST call the JCC API endpoint `/openapi/v1/beschikbaarheid` to retrieve available slots +- AND booking MUST call JCC's `/openapi/v1/afspraken` to create the appointment +- AND the JCC appointment ID MUST be stored on the Procest appointment record for sync +- AND cancellation MUST call JCC's delete endpoint to cancel in both systems + +#### Scenario 2.2: Qmatic Orchestra integration +- GIVEN the municipality uses Qmatic Orchestra +- AND the Qmatic plugin is configured with: base URL, API key, and branch ID +- WHEN a timeslot query is made +- THEN the plugin MUST call the Qmatic REST API (`/rest/servicepoint/branches/{id}/dates/{date}/times`) +- AND booking MUST create the appointment in Qmatic +- AND the Qmatic appointment reference MUST be stored on the Procest record + +#### Scenario 2.3: Fallback manual scheduling (no backend) +- GIVEN no appointment backend is configured +- WHEN a case worker creates an appointment +- THEN the appointment MUST be stored locally in OpenRegister as an appointment object +- AND a Nextcloud Calendar event MUST be created via `OCP\Calendar\IManager` +- AND the calendar event MUST include the case reference, citizen name, product, and location + +#### Scenario 2.4: Plugin registration via OpenConnector +- GIVEN the plugin architecture uses OpenConnector as the API adapter layer +- WHEN an admin configures a new appointment backend +- THEN they MUST select the backend type (JCC/Qmatic/Custom) and configure the connection via OpenConnector source settings +- AND the system MUST validate the connection with a test call before saving + +#### Scenario 2.5: Backend failover handling +- GIVEN the JCC API returns a 503 Service Unavailable error +- WHEN a case worker attempts to book an appointment +- THEN the system MUST display: "Afsprakensysteem tijdelijk niet beschikbaar. Probeer het later opnieuw." +- AND the error MUST be logged with timestamp and response details +- AND the system MUST NOT fall back to manual scheduling unless explicitly configured + +### Requirement 3: Citizen self-service appointment management +Citizens MUST be able to cancel, reschedule, and view their appointments without contacting the municipality. + +#### Scenario 3.1: Cancel an appointment via confirmation link +- GIVEN citizen has appointment `apt-1` for March 25, 2026 at 10:00 at Stadskantoor +- AND the citizen received a confirmation email with a unique cancellation link +- WHEN the citizen opens the link and clicks "Annuleren" +- THEN a confirmation dialog MUST appear: "Weet u zeker dat u uw afspraak op 25 maart om 10:00 wilt annuleren?" +- AND upon confirmation, the appointment MUST be cancelled in both Procest and the backend system (JCC/Qmatic) +- AND a cancellation confirmation MUST be sent (email and/or SMS based on configuration) +- AND the case `ActivityTimeline` MUST record: "Afspraak geannuleerd door burger" + +#### Scenario 3.2: Reschedule an appointment +- GIVEN citizen has appointment `apt-1` for March 25 at 10:00 +- WHEN the citizen accesses their appointment via the confirmation link and clicks "Verzetten" +- THEN available alternative timeslots MUST be shown for the same product and location +- AND selecting a new slot MUST atomically cancel the old appointment and book the new one +- AND a new confirmation MUST be sent with updated date/time/location + +#### Scenario 3.3: View appointment details +- GIVEN a citizen accesses their appointment link +- THEN the page MUST show: date, time, location (with address and map link), product, what to bring, and the case reference number +- AND provide buttons for "Annuleren" and "Verzetten" +- AND the page MUST NOT require authentication (token-based access) + +#### Scenario 3.4: Cancellation deadline enforcement +- GIVEN the municipality configures a minimum cancellation notice of 24 hours +- WHEN a citizen attempts to cancel appointment `apt-1` that starts in 4 hours +- THEN the system MUST display: "Annuleren is niet meer mogelijk. Neem contact op met de gemeente." +- AND provide a phone number or contact form link + +#### Scenario 3.5: Self-service link expiration +- GIVEN appointment `apt-1` was scheduled for March 25 at 10:00 +- AND today is March 26 (appointment has passed) +- WHEN the citizen accesses the confirmation link +- THEN the page MUST show: "Deze afspraak heeft plaatsgevonden op 25 maart 2026" +- AND cancellation and rescheduling MUST be disabled + +### Requirement 4: Appointment lifecycle and reminder notifications +Appointments MUST track status through their lifecycle with automated reminders to reduce no-shows. + +#### Scenario 4.1: Appointment confirmation notification +- GIVEN a citizen books appointment `apt-1` for March 25 at 10:00 at Stadskantoor +- THEN a confirmation MUST be sent (configurable: email, SMS, or both) containing: + - Date, time, and location with address + - Product name (what the appointment is for) + - What to bring (linked to zaaktype `requiresDocuments` configuration) + - Cancellation/modification link (unique token-based URL) + - Case reference number +- AND the confirmation MUST be sent via an n8n workflow for template flexibility + +#### Scenario 4.2: Reminder notification before appointment +- GIVEN appointment `apt-1` is scheduled for tomorrow at 10:00 +- WHEN the Nextcloud cron job runs the reminder check +- THEN a reminder MUST be sent to the citizen via the configured channel +- AND the reminder interval MUST be configurable per zaaktype (default: 1 day before) +- AND the reminder MUST include a "not able to make it" link for easy cancellation + +#### Scenario 4.3: No-show recording +- GIVEN appointment `apt-1` was scheduled for 10:00 and the citizen did not appear +- WHEN the case worker marks the appointment as "Niet verschenen" (no-show) +- THEN the appointment status MUST change to `niet_verschenen` +- AND the case `ActivityTimeline` MUST record: "Burger niet verschenen bij afspraak" +- AND a follow-up task MUST be auto-created: "Contact opnemen na niet-verschijnen" if configured + +#### Scenario 4.4: Appointment completed +- GIVEN appointment `apt-1` took place +- WHEN the case worker marks it as "Afgerond" (completed) +- THEN the appointment status MUST change to `afgerond` +- AND the case timeline MUST record: "Afspraak gehouden: 25 maart 2026, 10:00, Stadskantoor" +- AND if the zaaktype has a post-appointment status transition configured, the case MUST auto-advance + +#### Scenario 4.5: Appointment status lifecycle +- GIVEN an appointment object in OpenRegister +- THEN it MUST support the following statuses: + - `gepland` (initial, after booking) + - `herinnerd` (after reminder sent) + - `afgerond` (completed successfully) + - `niet_verschenen` (no-show) + - `geannuleerd` (cancelled by citizen or case worker) + - `verzet` (rescheduled -- old appointment gets this status) + +### Requirement 5: Appointment visibility in case context +Appointment data MUST be visible in the case timeline and case detail view. + +#### Scenario 5.1: Appointment section in case detail +- GIVEN case `zaak-1` has one or more appointments +- THEN the case detail view MUST show an "Afspraken" section listing all appointments +- AND each appointment MUST show: date/time, location, product, status, and citizen name +- AND appointments MUST be ordered by date (upcoming first) + +#### Scenario 5.2: Timeline integration +- GIVEN case `zaak-1` has an appointment lifecycle +- WHEN viewing the `ActivityTimeline` component +- THEN the following events MUST appear chronologically: + - "Afspraak gepland: 25 maart 2026, 10:00, Stadskantoor" + - "Herinnering verzonden naar burger" + - "Afspraak gehouden" or "Burger niet verschenen" +- AND each event MUST include an icon appropriate to its type + +#### Scenario 5.3: Appointment in case list overview +- GIVEN the case list view at `CaseList.vue` +- THEN cases with upcoming appointments MUST show a calendar icon with the next appointment date +- AND cases where the citizen was a no-show MUST show a warning indicator + +#### Scenario 5.4: Appointment on dashboard +- GIVEN the Procest dashboard (`Dashboard.vue`) +- THEN a "Komende afspraken" widget MUST list today's and tomorrow's appointments across all cases assigned to the current user +- AND each entry MUST link to the case detail + +### Requirement 6: Real-time timeslot availability +Shown timeslots MUST reflect current availability to prevent double bookings and stale data. + +#### Scenario 6.1: Live availability query +- GIVEN a citizen or case worker is browsing available timeslots +- WHEN they select a date +- THEN the system MUST query the appointment backend in real-time (not cached) for that date +- AND display available slots with capacity indicators (if the backend provides capacity data) + +#### Scenario 6.2: Concurrent booking prevention +- GIVEN two citizens view the same timeslot as available +- WHEN both attempt to book it simultaneously +- THEN only one booking MUST succeed (the backend system handles atomicity) +- AND the other MUST receive: "Dit tijdslot is zojuist geboekt. Kies een ander tijdslot." +- AND the timeslot grid MUST refresh to show updated availability + +#### Scenario 6.3: Timeslot expiration during booking +- GIVEN a citizen has been on the booking page for 15 minutes without completing +- THEN the system MUST display: "Beschikbaarheid kan gewijzigd zijn. Vernieuw de tijdsloten." +- AND provide a refresh button to reload current availability + +#### Scenario 6.4: Availability filtered by capacity +- GIVEN a location has 3 service desks (balies) available +- AND 2 are already booked for the 10:00-10:15 slot +- THEN the slot MUST still show as available (1 remaining) +- AND when all 3 are booked, the slot MUST show as unavailable + +### Requirement 7: Product and location configuration +Administrators MUST be able to configure which products and locations are available for appointment booking. + +#### Scenario 7.1: Configure products per zaaktype +- GIVEN the admin is editing a zaaktype in `CaseTypeDetail.vue` +- THEN a "Products" tab MUST allow adding appointment products +- AND each product MUST have: name, description, estimated duration (minutes), and backend product ID (for JCC/Qmatic mapping) +- AND products MUST be linkable to specific zaaktype statuses (e.g., "Paspoort ophalen" only available at status "Ophalen") + +#### Scenario 7.2: Configure locations +- GIVEN the admin navigates to appointment settings +- THEN they MUST be able to manage locations with: name, address, phone number, opening hours, and backend location ID +- AND locations MUST be filterable by which products they offer + +#### Scenario 7.3: Location-specific availability rules +- GIVEN location "Wijkkantoor Noord" is only open Tuesday through Thursday +- WHEN a citizen selects this location +- THEN only Tuesday, Wednesday, and Thursday dates MUST be shown in the date picker +- AND the opening hours MUST be configured per location in the admin settings + +#### Scenario 7.4: Seasonal closures and holidays +- GIVEN the municipality configures holidays and closure dates +- THEN those dates MUST be excluded from appointment availability +- AND existing appointments on newly added closure dates MUST be flagged for rescheduling + +### Requirement 8: Appointment data model in OpenRegister +Appointments MUST be stored as OpenRegister objects with a defined schema. + +#### Scenario 8.1: Appointment schema definition +- GIVEN the Procest register configuration +- THEN an `appointment` schema MUST be defined with fields: + - `id` (UUID, auto-generated) + - `caseId` (reference to case) + - `citizenName` (string) + - `citizenEmail` (string) + - `citizenPhone` (string) + - `product` (string, from configured products) + - `location` (string, from configured locations) + - `dateTime` (ISO 8601 datetime) + - `duration` (integer, minutes) + - `status` (enum: gepland/herinnerd/afgerond/niet_verschenen/geannuleerd/verzet) + - `externalId` (string, JCC/Qmatic reference) + - `selfServiceToken` (string, unique token for citizen access) + - `notes` (text, case worker notes) + - `bookedBy` (string, user who created the booking) + +#### Scenario 8.2: Appointment linked to case via caseObject +- GIVEN an appointment is created for case `zaak-1` +- THEN a `caseObject` record MUST link the appointment to the case +- AND querying the case's objects MUST include the appointment + +#### Scenario 8.3: Appointment history preserved +- GIVEN appointment `apt-1` is rescheduled from March 25 to March 28 +- THEN the original appointment MUST be preserved with status `verzet` +- AND a new appointment MUST be created with the new date and status `gepland` +- AND both MUST be linked to the same case + +### Requirement 9: Notification channel configuration +Appointment notifications MUST support multiple channels with per-municipality configuration. + +#### Scenario 9.1: Email notifications via n8n +- GIVEN the municipality has email notifications configured +- WHEN an appointment is booked +- THEN the confirmation email MUST be sent via an n8n workflow +- AND the email template MUST be customizable by the municipality (HTML template in n8n) + +#### Scenario 9.2: SMS notifications +- GIVEN the municipality has SMS notifications enabled (via a configured SMS gateway in OpenConnector) +- WHEN an appointment reminder is triggered +- THEN an SMS MUST be sent with a short message: "Herinnering: uw afspraak morgen om 10:00 bij Stadskantoor. Niet kunnen komen? [link]" + +#### Scenario 9.3: Notification preferences per citizen +- GIVEN a citizen has specified their notification preference during booking (email, SMS, or both) +- THEN notifications MUST only be sent via the selected channel(s) +- AND the preference MUST be stored on the appointment record + +## Dependencies +- OpenRegister (for appointment data storage) +- OpenConnector (for JCC/Qmatic API adapters and SMS gateway) +- Nextcloud Calendar (`OCP\Calendar\IManager`) for fallback calendar events +- n8n (for notification workflow orchestration) +- Pipelinq (sister app -- appointments booked during CRM interactions may be linked to cases) +- Mijn Overheid integration (appointment status as case status update) + +--- + +### Current Implementation Status + +**Not yet implemented.** No appointment-related schemas, controllers, services, or Vue components exist in the Procest codebase. The `procest_register.json` configuration does not include an appointment schema. + +**Foundation available:** +- Case detail view (`src/views/cases/CaseDetail.vue`) provides the integration point where a "Plan afspraak" button would be added in the header actions. +- Activity timeline component (`src/views/cases/components/ActivityTimeline.vue`) could display appointment events. +- `DeadlinePanel.vue` shows that date-based tracking UI patterns are established. +- OpenConnector (external dependency) could host JCC/Qmatic API adapters. +- The task management infrastructure (`src/views/tasks/`) could model appointment scheduling as a task type. +- `NotificatieService.php` provides notification infrastructure. +- n8n MCP tools can orchestrate notification workflows. + +**Partial implementations:** None. + +### Standards & References + +- **VNG GEMMA Referentiearchitectuur**: Afsprakenbeheer is a recognized component in the GEMMA zaakgericht werken reference architecture. +- **JCC Afspraken API**: Proprietary API for municipal appointment scheduling (widely used in Dutch municipalities). OpenAPI v1 specification. +- **Qmatic Orchestra REST API**: Standard integration for queue management and appointment booking. +- **Open-Formulieren Appointment Plugin Architecture**: Reference implementation for pluggable appointment backends (JCC, Qmatic) with product/location/timeslot selection model. +- **WCAG AA**: Appointment booking UI must be accessible, including date/time pickers that work with keyboard and screen readers. +- **BRP (Basisregistratie Personen)**: Citizen identification for appointment linking via BSN. +- **Nextcloud Calendar IManager**: OCP interface for creating calendar events as fallback appointment tracking. diff --git a/openspec/changes/appointment-scheduling/tasks.md b/openspec/changes/appointment-scheduling/tasks.md new file mode 100644 index 0000000..c956f91 --- /dev/null +++ b/openspec/changes/appointment-scheduling/tasks.md @@ -0,0 +1,52 @@ +# Tasks: appointment-scheduling + +## Implementation Tasks + +### Schema & Configuration + +- [x] **T01**: Add `appointment`, `appointmentProduct`, `appointmentLocation` schemas to `procest_register.json`. Add config keys to SettingsService: `appointment_schema`, `appointment_product_schema`, `appointment_location_schema`, `appointment_backend`, `appointment_backend_url`, `appointment_backend_api_key`, `appointment_reminder_days`. + +### Backend: Plugin Interface & Backends + +- [x] **T02**: Create `lib/Service/AppointmentBackend/AppointmentBackendInterface.php` -- Interface with methods: `getTimeslots(productId, locationId, date): array`, `bookAppointment(data): array`, `cancelAppointment(externalId): bool`, `rescheduleAppointment(externalId, newDateTime): array`. + +- [x] **T03**: Create `lib/Service/AppointmentBackend/LocalBackend.php` -- Local fallback implementation that stores everything in OpenRegister. Timeslots are generated from configurable business hours. No external API calls. + +- [x] **T04**: Create `lib/Service/AppointmentBackend/JccBackend.php` -- JCC Afspraken API integration. Calls JCC REST API for timeslots, booking, and cancellation. + +- [x] **T05**: Create `lib/Service/AppointmentBackend/QmaticBackend.php` -- Qmatic Orchestra REST API integration. + +### Backend: Service & Controllers + +- [x] **T06**: Create `lib/Service/AppointmentService.php` -- Methods: `getTimeslots(productId, locationId, date)` delegates to configured backend, `bookAppointment(caseId, data)` books via backend + stores in OpenRegister + generates cancel token, `cancelAppointment(appointmentId)` cancels in backend + updates OpenRegister, `rescheduleAppointment(appointmentId, newDateTime)` cancels old + books new, `markNoShow(appointmentId)` updates status, `getAppointmentsForCase(caseId)` queries OpenRegister. Injects configured backend via factory pattern. + +- [x] **T07**: Create `lib/Controller/AppointmentController.php` -- Authenticated endpoints for all appointment operations. + +- [x] **T08**: Create `lib/Controller/PublicAppointmentController.php` -- Public endpoints for citizen self-service (cancel, reschedule via token). + +- [x] **T09**: Create `lib/BackgroundJob/AppointmentReminderJob.php` -- Daily TimedJob that finds appointments scheduled for tomorrow and sends reminder notifications. + +### Routes + +- [x] **T10**: Add appointment routes to `appinfo/routes.php`. + +### Frontend + +- [x] **T11**: Create `src/services/appointmentApi.js` -- Frontend API service for all appointment endpoints. + +- [x] **T12**: Create `src/views/cases/components/AppointmentSection.vue` -- List appointments for the case, "Plan afspraak" button, appointment status badges, no-show marking. + +- [x] **T13**: Create `src/views/cases/components/AppointmentBookingDialog.vue` -- Dialog with product selector, location selector, date picker, available timeslots grid, citizen details form. On submit: books appointment and shows confirmation. + +- [x] **T14**: Create `src/views/settings/tabs/AppointmentSettingsTab.vue` -- Backend configuration (type selector, URL, API key), products management, locations management, reminder settings. + +- [x] **T15**: Create `src/views/public/PublicAppointmentPage.vue` -- Public page for citizen appointment management. Shows appointment details, cancel button, reschedule with new timeslot selection. + +## Verification Tasks + +- [ ] **V01**: Appointment booking creates record in OpenRegister with case linkage +- [ ] **V02**: Timeslot query returns available slots from configured backend +- [ ] **V03**: Cancel token allows citizen to cancel without authentication +- [ ] **V04**: No-show marking updates appointment status +- [ ] **V05**: Reminder job sends notifications for tomorrow's appointments +- [ ] **V06**: Concurrent booking prevention works diff --git a/openspec/changes/archive/2026-02-26-case-types/specs/case-types/spec.md b/openspec/changes/archive/2026-02-26-case-types/specs/case-types/spec.md index 200d072..875e283 100644 --- a/openspec/changes/archive/2026-02-26-case-types/specs/case-types/spec.md +++ b/openspec/changes/archive/2026-02-26-case-types/specs/case-types/spec.md @@ -4,7 +4,7 @@ Implement the MVP tier of the case type system. This delta spec scopes the existing `case-types/spec.md` requirements to what will be built in this change: core CRUD, draft/publish lifecycle, validity periods, status type management, deadline configuration, extension config, default type, validation, General+Statuses tabs, and error scenarios. -## ADDED Requirements +## Requirements _No new requirements added. All requirements below reference existing spec requirements scoped to MVP tier._ diff --git a/openspec/changes/archive/2026-02-26-dashboard-mvp/specs/dashboard/spec.md b/openspec/changes/archive/2026-02-26-dashboard-mvp/specs/dashboard/spec.md index 841569c..6aad68d 100644 --- a/openspec/changes/archive/2026-02-26-dashboard-mvp/specs/dashboard/spec.md +++ b/openspec/changes/archive/2026-02-26-dashboard-mvp/specs/dashboard/spec.md @@ -4,7 +4,7 @@ Implement the MVP tier of the dashboard spec (`openspec/specs/dashboard/spec.md`). This change implements all requirements tagged [MVP] from the main spec without modifications. -## ADDED Requirements +## Requirements All requirements below reference the main spec verbatim. No behavioral changes — this delta confirms the MVP scope being implemented. diff --git a/openspec/changes/archive/2026-02-26-roles-decisions-mvp/.openspec.yaml b/openspec/changes/archive/2026-02-26-roles-decisions-mvp/.openspec.yaml new file mode 100644 index 0000000..85ae75c --- /dev/null +++ b/openspec/changes/archive/2026-02-26-roles-decisions-mvp/.openspec.yaml @@ -0,0 +1,2 @@ +schema: spec-driven +created: 2026-02-26 diff --git a/openspec/changes/archive/2026-02-26-task-management/specs/task-management/spec.md b/openspec/changes/archive/2026-02-26-task-management/specs/task-management/spec.md index 7e68949..0da01b2 100644 --- a/openspec/changes/archive/2026-02-26-task-management/specs/task-management/spec.md +++ b/openspec/changes/archive/2026-02-26-task-management/specs/task-management/spec.md @@ -4,7 +4,7 @@ Implements the MVP tier of the task management capability as defined in `procest/openspec/specs/task-management/spec.md`. This delta spec captures the subset of requirements being implemented in this change and any implementation-specific clarifications. -## ADDED Requirements +## Requirements ### Requirement: MVP Task CRUD Implementation diff --git a/openspec/changes/archive/2026-03-06-create-procest-app/.openspec.yaml b/openspec/changes/archive/2026-03-06-create-procest-app/.openspec.yaml new file mode 100644 index 0000000..0cba84b --- /dev/null +++ b/openspec/changes/archive/2026-03-06-create-procest-app/.openspec.yaml @@ -0,0 +1,2 @@ +schema: conduction +created: 2026-02-18 diff --git a/openspec/changes/archive/2026-03-06-create-procest-app/design.md b/openspec/changes/archive/2026-03-06-create-procest-app/design.md new file mode 100644 index 0000000..e968ffe --- /dev/null +++ b/openspec/changes/archive/2026-03-06-create-procest-app/design.md @@ -0,0 +1,278 @@ +# Design: create-procest-app + +## Architecture Overview + +Both Procest and Pipelinq follow the **softwarecatalog thin-client pattern**: a rich Vue 2 + Pinia frontend that queries OpenRegister directly, with a minimal PHP backend for settings/configuration only. + +``` +┌─────────────────────────────────────────────────┐ +│ Browser │ +│ ┌──────────────┐ ┌──────────────┐ │ +│ │ Procest │ │ Pipelinq │ │ +│ │ Vue SPA │ │ Vue SPA │ │ +│ │ Pinia Store │ │ Pinia Store │ │ +│ └──────┬───────┘ └──────┬───────┘ │ +│ │ fetch() │ fetch() │ +└─────────┼──────────────────────┼─────────────────┘ + │ │ + ▼ ▼ +┌─────────────────────────────────────────────────┐ +│ OpenRegister API │ +│ /api/objects/{register}/{schema} │ +│ CRUD, search, pagination, RBAC │ +│ │ +│ ┌────────────────┐ ┌─────────────────┐ │ +│ │ case-management │ │ client-management│ │ +│ │ register │ │ register │ │ +│ │ │ │ │ │ +│ │ - case │ │ - client │ │ +│ │ - task │ │ - request │ │ +│ │ - status │ │ - contact │ │ +│ │ - role │ │ │ │ +│ │ - result │ │ │ │ +│ │ - decision │ │ │ │ +│ └─────────────────┘ └──────────────────┘ │ +└─────────────────────────────────────────────────┘ +``` + +Each app has a thin PHP backend for: +- Settings management (register/schema IDs) +- Auto-configuration on install (repair step) +- Admin settings page rendering + +No own database tables. No entity CRUD controllers. No backend business logic for domain objects. + +## API Design + +### Procest Backend Endpoints (minimal) + +#### `GET /api/settings` +Returns app configuration (register/schema mappings). + +**Response:** +```json +{ + "success": true, + "config": { + "register": "5", + "case_schema": "30", + "task_schema": "31", + "status_schema": "32", + "role_schema": "33", + "result_schema": "34", + "decision_schema": "35" + } +} +``` + +#### `POST /api/settings` +Saves register/schema configuration. Admin only. + +**Request:** +```json +{ + "register": "5", + "case_schema": "30", + "task_schema": "31" +} +``` + +#### `GET /api/settings/status` +Returns app health status (OpenRegister available, schemas configured, object counts). + +### Pipelinq Backend Endpoints (minimal) + +Same pattern — `GET/POST /api/settings`, `GET /api/settings/status` with client-management register/schema IDs. + +### Frontend → OpenRegister API (direct) + +All data operations go directly to OpenRegister from the frontend: + +``` +GET /apps/openregister/api/objects/{register}/{schema} → List +GET /apps/openregister/api/objects/{register}/{schema}/{id} → Read +POST /apps/openregister/api/objects/{register}/{schema} → Create +PUT /apps/openregister/api/objects/{register}/{schema}/{id} → Update +DELETE /apps/openregister/api/objects/{register}/{schema}/{id} → Delete +``` + +Query parameters: `_limit`, `_offset`, `_order`, `_search`, `_fields`, plus field-level filters. + +## Database Changes + +**None.** Both apps store all data in OpenRegister. No migrations needed. + +Configuration stored via `IAppConfig` (Nextcloud key-value config store). + +## OpenRegister Schema Definitions + +### case-management register (Procest) + +| Schema | Key Fields | Description | +|--------|-----------|-------------| +| `case` | `title`, `description`, `status`, `assignee`, `priority`, `created`, `updated`, `closed` | The core case entity | +| `task` | `title`, `description`, `status`, `assignee`, `case`, `dueDate`, `priority` | Tasks within a case | +| `status` | `name`, `description`, `order`, `isFinal` | Status definitions (configurable workflow) | +| `role` | `name`, `description`, `permissions` | Role definitions for case participants | +| `result` | `name`, `description`, `case` | Case outcome/result | +| `decision` | `title`, `description`, `case`, `decidedBy`, `decidedAt` | Decisions made on a case | + +### client-management register (Pipelinq) + +| Schema | Key Fields | Description | +|--------|-----------|-------------| +| `client` | `name`, `email`, `phone`, `type` (person/organization), `address`, `notes` | Client entity | +| `request` | `title`, `description`, `client`, `status`, `priority`, `requestedAt`, `category` | Request/verzoek — the pre-state of a case | +| `contact` | `name`, `email`, `phone`, `role`, `client` | Contact person linked to a client | + +## Nextcloud Integration + +### Controllers (per app) +- `DashboardController` — serves the main Vue SPA page (`templates/index.php`) +- `SettingsController` — register/schema configuration CRUD + +### Services (per app) +- `SettingsService` — reads/writes config from `IAppConfig` + +### Settings Registration (per app) +- `AdminSettings` — renders the admin settings Vue entry point +- `AdminSection` — registers the section in Nextcloud settings sidebar + +### Repair Steps (per app) +- `InitializeSettings` — auto-detects or creates register/schemas on install + +### DI Registration (`Application.php`) +```php +class Application extends App implements IBootstrap { + const APP_ID = 'procest'; // or 'pipelinq' + + public function register(IRegistrationContext $context): void { + $context->registerService(SettingsService::class, function($c) { + return new SettingsService( + $c->get(IAppConfig::class), + $c->get(LoggerInterface::class) + ); + }); + } + + public function boot(IBootContext $context): void { + // Nothing needed at boot for now + } +} +``` + +## File Structure + +Both apps share the same structure: + +``` +procest/ pipelinq/ +├── appinfo/ ├── appinfo/ +│ ├── info.xml │ ├── info.xml +│ └── routes.php │ └── routes.php +├── lib/ ├── lib/ +│ ├── AppInfo/ │ ├── AppInfo/ +│ │ └── Application.php │ │ └── Application.php +│ ├── Controller/ │ ├── Controller/ +│ │ ├── DashboardController.php │ │ ├── DashboardController.php +│ │ └── SettingsController.php │ │ └── SettingsController.php +│ ├── Service/ │ ├── Service/ +│ │ └── SettingsService.php │ │ └── SettingsService.php +│ ├── Repair/ │ ├── Repair/ +│ │ └── InitializeSettings.php│ │ └── InitializeSettings.php +│ ├── Settings/ │ ├── Settings/ +│ │ ├── AdminSettings.php │ │ ├── AdminSettings.php +│ │ └── AdminSection.php │ │ └── AdminSection.php +│ └── Sections/ │ └── Sections/ +│ └── SettingsSection.php │ └── SettingsSection.php +├── src/ ├── src/ +│ ├── main.js │ ├── main.js +│ ├── settings.js │ ├── settings.js +│ ├── pinia.js │ ├── pinia.js +│ ├── App.vue │ ├── App.vue +│ ├── store/ │ ├── store/ +│ │ ├── store.js │ │ ├── store.js +│ │ └── modules/ │ │ └── modules/ +│ │ ├── object.js │ │ ├── object.js +│ │ ├── navigation.js │ │ ├── navigation.js +│ │ └── settings.js │ │ └── settings.js +│ ├── views/ │ ├── views/ +│ │ ├── Dashboard.vue │ │ ├── Dashboard.vue +│ │ ├── cases/ │ │ ├── clients/ +│ │ │ ├── CaseList.vue │ │ │ ├── ClientList.vue +│ │ │ └── CaseDetail.vue │ │ │ └── ClientDetail.vue +│ │ └── settings/ │ │ ├── requests/ +│ │ └── Settings.vue │ │ │ ├── RequestList.vue +│ │ │ │ │ └── RequestDetail.vue +│ │ │ │ └── settings/ +│ │ │ │ └── Settings.vue +│ ├── navigation/ │ ├── navigation/ +│ │ └── MainMenu.vue │ │ └── MainMenu.vue +│ └── components/ │ └── components/ +│ └── (shared UI) │ └── (shared UI) +├── templates/ ├── templates/ +│ └── index.php │ └── index.php +├── img/ ├── img/ +│ └── app.svg │ └── app.svg +├── l10n/ ├── l10n/ +│ ├── en.json │ ├── en.json +│ └── nl.json │ └── nl.json +├── webpack.config.js ├── webpack.config.js +├── package.json ├── package.json +├── composer.json ├── composer.json +└── .github/ └── .github/ + └── workflows/ └── workflows/ +``` + +## Translation / l10n + +Both apps are multilingual from day one: +- Use `t('procest', 'key')` in Vue templates and `$this->l->t('key')` in PHP +- Provide base translations in `l10n/en.json` (English primary) and `l10n/nl.json` (Dutch) +- All user-facing strings wrapped in translation functions — no hardcoded text +- Nextcloud's Transifex integration handles additional languages + +## Security Considerations + +- **Authentication**: Nextcloud session auth (automatic for logged-in users) +- **CSRF**: Nextcloud `requesttoken` header on all API calls (automatic via `@nextcloud/axios` or manual with `OC.requestToken`) +- **RBAC**: Handled entirely by OpenRegister — no additional access control layer +- **Input validation**: Delegated to OpenRegister schema validation +- **CORS**: Not needed — same-origin requests only (Nextcloud app) + +## NL Design System + +- Use `@nextcloud/vue` components as the base (NcButton, NcSelect, NcModal, etc.) +- Compatible with nldesign app for government-standard theming +- Avoid hardcoded colors — use CSS variables +- Ensure WCAG AA contrast and accessibility + +## Trade-offs + +### Thin client vs. thick client +**Chosen: Thin client (like softwarecatalog)** +- Pro: Much less code, no DB migrations, leverages OpenRegister fully +- Pro: Frontend drives the experience — faster iteration +- Con: Complex business logic harder to implement without backend +- Con: Multiple API calls from frontend (no backend aggregation) +- Mitigation: If business logic grows, add targeted backend services later + +### Two separate apps vs. one combined app +**Chosen: Two separate apps** +- Pro: Clear separation of concerns (cases vs. clients/requests) +- Pro: Can install independently — not everyone needs both +- Pro: Smaller, more focused codebases +- Con: Some code duplication (object store, settings pattern) +- Mitigation: Shared patterns are small and well-understood; copy is fine + +### Vue 2 vs. Vue 3 +**Chosen: Vue 2** +- Nextcloud ecosystem is standardized on Vue 2 +- All `@nextcloud/vue` components are Vue 2 +- Vue 3 migration can follow Nextcloud's timeline + +### Native fetch vs. @nextcloud/axios +**Chosen: Native fetch (following softwarecatalog pattern)** +- Simpler, no extra dependency for API calls +- Manual `requesttoken` header required but straightforward +- Consistent with the existing pattern in the codebase diff --git a/openspec/changes/archive/2026-03-06-create-procest-app/proposal.md b/openspec/changes/archive/2026-03-06-create-procest-app/proposal.md new file mode 100644 index 0000000..836385f --- /dev/null +++ b/openspec/changes/archive/2026-03-06-create-procest-app/proposal.md @@ -0,0 +1,87 @@ +# Proposal: create-procest-app + +## Summary +Create two new Nextcloud apps — **Procest** (case management) and **Pipelinq** (client & request management) — as thin clients on top of OpenRegister. Both follow the softwarecatalog architectural pattern: rich frontend Pinia store, direct OpenRegister API interaction, minimal backend. Procest focuses on cases (the equivalent of "zaken" in zaakafhandelapp). Pipelinq handles clients and "verzoeken" (requests — the pre-state of a case, or a yet-to-be-determined case). Both apps are multilingual from the start using Nextcloud's l10n framework. + +## Motivation +The zaakafhandelapp implements Dutch GEMMA-Zaken standards for case management but is tightly coupled to Dutch terminology and follows a "thick client" pattern with 15+ backend controllers and its own entity abstraction layer. By splitting the functionality into two focused apps and rebuilding as thin clients on OpenRegister, we get: +- **Separation of concerns**: cases (Procest) vs. clients & requests (Pipelinq) +- **Simpler codebase**: no own DB entities, leverages OpenRegister's CRUD, search, pagination, and RBAC +- **International reach**: multilingual from day one, English as primary language +- **Consistency**: same architecture as softwarecatalog — familiar patterns for the team + +## Affected Projects +- [ ] Project: `procest` (NEW) — Case management app +- [ ] Project: `pipelinq` (NEW) — Client & request management app +- [ ] Project: `openregister` — Register and schema definitions for both apps +- [ ] Project: `zaakafhandelapp` — Functional reference only; no changes + +## Scope + +### In Scope + +**Procest (Case Management)** +- New Nextcloud app scaffolding (appinfo, routes, webpack, Vue 2 + Pinia) +- Register: `case-management` with schemas for cases, tasks, statuses, results, roles, decisions +- Pinia-based object store querying OpenRegister directly +- Core views: Dashboard, Cases (list/detail), Tasks, Search +- Minimal backend: SettingsController + auto-configuration service +- Multilingual: Nextcloud l10n with English as primary, Dutch included + +**Pipelinq (Client & Request Management)** +- New Nextcloud app scaffolding (same stack as Procest) +- Register: `client-management` with schemas for clients, requests (verzoeken), contacts +- Same thin-client architecture as Procest +- Core views: Dashboard, Clients (list/detail), Requests (list/detail), Search +- Minimal backend: SettingsController + auto-configuration service +- Multilingual: same approach as Procest + +**GitHub Repositories** +- Create `ConductionNL/procest` repository +- Create `ConductionNL/pipelinq` repository + +**Shared Patterns** +- NL Design System compatible theming +- Dynamic navigation from available schemas (like softwarecatalog's MainMenu) +- RBAC handled entirely by OpenRegister — no additional access control layer + +### Out of Scope +- GEMMA-Zaken API compliance (stays in zaakafhandelapp) +- Own database entities or migrations — all data lives in OpenRegister +- Elasticsearch integration (may be added later) +- Cloud Events / webhooks (may be added later) +- Migration tooling from zaakafhandelapp +- Case-to-request linking between apps (future feature) + +## Approach +1. **Scaffold both apps** with standard Nextcloud app structure (info.xml, routes, webpack, Vue 2 + Pinia, l10n) +2. **Define registers/schemas** in OpenRegister — `case-management` for Procest, `client-management` for Pipelinq +3. **Build shared object store pattern** — Pinia store with actions that construct OpenRegister API URLs, handle pagination, search, and CRUD (same pattern for both apps) +4. **Build views** for each entity type — list/detail pages using Nextcloud Vue components +5. **Minimal backend** — SettingsController for register/schema config, auto-config service per app +6. **Navigation** — Dynamic menu from schemas (like softwarecatalog) +7. **Translations** — Set up l10n from day one with English + Dutch + +## Cross-Project Dependencies +- **OpenRegister** — Must be installed and active; both apps store all data there +- **NL Design** — Optional but recommended for government-standard theming +- **zaakafhandelapp** — No runtime dependency; functional reference only +- **Procest ↔ Pipelinq** — Independent apps, no direct dependency (future linking possible) + +## Rollback Strategy +- Both apps are standalone — disabling either has no impact on other apps +- Data lives in OpenRegister and persists independently +- Simply disable the app in Nextcloud admin to roll back + +## Capabilities + +### New Capabilities +- `procest-app-scaffold` — Nextcloud app scaffolding, build system, l10n setup for Procest +- `procest-case-management` — Case CRUD, task management, statuses, roles, decisions +- `procest-object-store` — Pinia store pattern for OpenRegister interaction +- `pipelinq-app-scaffold` — Nextcloud app scaffolding, build system, l10n setup for Pipelinq +- `pipelinq-client-management` — Client CRUD, request (verzoek) management, contacts +- `pipelinq-object-store` — Pinia store pattern for OpenRegister interaction + +### Modified Capabilities +(none — these are new apps) diff --git a/openspec/changes/archive/2026-03-06-create-procest-app/specs/pipelinq-app-scaffold/spec.md b/openspec/changes/archive/2026-03-06-create-procest-app/specs/pipelinq-app-scaffold/spec.md new file mode 100644 index 0000000..b1eda05 --- /dev/null +++ b/openspec/changes/archive/2026-03-06-create-procest-app/specs/pipelinq-app-scaffold/spec.md @@ -0,0 +1,77 @@ +# pipelinq-app-scaffold Specification + +## Purpose +Define the Nextcloud app scaffolding, build system, translation setup, and admin settings for the Pipelinq client and request management app. Mirrors the Procest scaffold with its own app identity. + +## Requirements + +### Requirement: App MUST be a valid Nextcloud app +The Pipelinq app MUST be installable as a standard Nextcloud app with proper metadata, namespace, and dependency declarations. + +#### Scenario: App registration +- GIVEN the Pipelinq app directory exists in apps-extra +- WHEN Nextcloud scans for available apps +- THEN the app MUST appear in the apps list with id `pipelinq`, name "Pipelinq", and namespace `Pipelinq` +- AND it MUST declare compatibility with Nextcloud 28-33 +- AND it MUST declare PHP 8.1+ as minimum requirement + +#### Scenario: App enable +- GIVEN Nextcloud is running and OpenRegister is installed +- WHEN an admin enables the Pipelinq app +- THEN the app MUST activate without errors +- AND it MUST register a navigation entry in the top bar + +### Requirement: App MUST provide a single-page application entry point +The app MUST serve a Vue 2 SPA from a dashboard controller that mounts to the `#content` element. + +#### Scenario: Dashboard page load +- GIVEN the app is enabled and a user is logged in +- WHEN the user navigates to `/apps/pipelinq/` +- THEN the server MUST return an HTML page with a `#content` mount point +- AND the page MUST load the `pipelinq-main.js` webpack bundle +- AND the Vue app MUST initialize with Pinia state management + +### Requirement: App MUST use webpack build system extending Nextcloud base config +The build system MUST extend `@nextcloud/webpack-vue-config` with two entry points. + +#### Scenario: Build produces correct bundles +- GIVEN the source files exist in `src/` +- WHEN `npm run build` is executed +- THEN it MUST produce `js/pipelinq-main.js` for the dashboard SPA +- AND it MUST produce `js/pipelinq-settings.js` for the admin settings page + +### Requirement: App MUST support multilingual translations +All user-facing strings MUST be wrapped in translation functions with English as the primary language and Dutch included. + +#### Scenario: English translation +- GIVEN a user with English locale +- WHEN viewing the Pipelinq app +- THEN all UI text MUST be displayed in English + +#### Scenario: Dutch translation +- GIVEN a user with Dutch locale +- WHEN viewing the Pipelinq app +- THEN all UI text MUST be displayed in Dutch + +#### Scenario: Translation function usage +- GIVEN any Vue component with user-facing text +- WHEN the component renders +- THEN all strings MUST use `t('pipelinq', 'key')` in templates +- AND all PHP strings MUST use `$this->l->t('key')` + +### Requirement: App MUST provide admin settings page +The app MUST register an admin settings section for register/schema configuration. + +#### Scenario: Settings page access +- GIVEN an admin user +- WHEN navigating to `/settings/admin/pipelinq` +- THEN the admin settings page MUST load with the `pipelinq-settings.js` bundle +- AND it MUST display configuration options for register and schema mappings + +### Requirement: App MUST have a GitHub repository +The app source code MUST be hosted at `ConductionNL/pipelinq` on GitHub. + +#### Scenario: Repository exists +- GIVEN the ConductionNL GitHub organization +- WHEN checking for the pipelinq repository +- THEN `https://github.com/ConductionNL/pipelinq` MUST exist and be public diff --git a/openspec/changes/archive/2026-03-06-create-procest-app/specs/pipelinq-client-management/spec.md b/openspec/changes/archive/2026-03-06-create-procest-app/specs/pipelinq-client-management/spec.md new file mode 100644 index 0000000..b772f1f --- /dev/null +++ b/openspec/changes/archive/2026-03-06-create-procest-app/specs/pipelinq-client-management/spec.md @@ -0,0 +1,133 @@ +# pipelinq-client-management Specification + +## Purpose +Define the client and request management domain for Pipelinq: clients, requests (verzoeken), and contacts. All entities are stored in OpenRegister under the `client-management` register. Requests represent the pre-state of a case — a yet-to-be-determined or incoming case before it enters formal case management in Procest. + +## Requirements + +### Requirement: Client-management register MUST be auto-configured on install +The app MUST create or detect the `client-management` register and its schemas in OpenRegister during app initialization. + +#### Scenario: First install with no existing register +- GIVEN OpenRegister is active and no `client-management` register exists +- WHEN the Pipelinq app is enabled for the first time +- THEN a repair step MUST create the `client-management` register +- AND it MUST create schemas for: client, request, contact +- AND it MUST store the register and schema IDs in app configuration + +#### Scenario: Install with existing register +- GIVEN OpenRegister has a `client-management` register already configured +- WHEN the Pipelinq app is enabled +- THEN the repair step MUST detect and use the existing register +- AND it MUST store the found register/schema IDs in app configuration + +### Requirement: Settings endpoint MUST return register/schema configuration +The backend MUST provide an API endpoint that returns the configured register and schema IDs. + +#### Scenario: Get configuration +- GIVEN the app is configured with register and schema IDs +- WHEN a GET request is made to `/api/settings` +- THEN the response MUST include `register`, `client_schema`, `request_schema`, `contact_schema` +- AND the response status MUST be 200 + +#### Scenario: Save configuration +- GIVEN an admin user +- WHEN a POST request is made to `/api/settings` with register/schema IDs +- THEN the configuration MUST be persisted in app config +- AND the response MUST confirm success + +### Requirement: App MUST provide a clients list view +The frontend MUST display a paginated, searchable list of clients. + +#### Scenario: Clients list page +- GIVEN the user navigates to the clients section +- WHEN the page loads +- THEN the object store MUST fetch clients from OpenRegister using the configured register/schema +- AND the list MUST display client name, type (person/organization), email, and phone +- AND the list MUST support pagination + +#### Scenario: Clients search +- GIVEN the clients list is displayed +- WHEN the user enters a search term +- THEN the object store MUST query OpenRegister with the `_search` parameter +- AND the list MUST update to show matching results + +### Requirement: App MUST provide a client detail view +The frontend MUST display client details with related requests and contacts. + +#### Scenario: Client detail page +- GIVEN the user clicks a client in the list +- WHEN the detail view loads +- THEN the object store MUST fetch the full client object by ID +- AND the view MUST display all client fields (name, type, email, phone, address, notes) +- AND the view MUST list requests associated with this client +- AND the view MUST list contacts associated with this client + +### Requirement: App MUST support client CRUD operations +The frontend MUST allow creating, editing, and deleting clients via OpenRegister. + +#### Scenario: Create client +- GIVEN the user is on the clients list +- WHEN the user clicks "New client" and fills in the form +- THEN the object store MUST POST to OpenRegister with the client data +- AND the new client MUST appear in the list + +#### Scenario: Edit client +- GIVEN the user is viewing a client detail +- WHEN the user modifies fields and saves +- THEN the object store MUST PUT to OpenRegister with the updated data +- AND the detail view MUST reflect the changes + +#### Scenario: Delete client +- GIVEN the user is viewing a client detail +- WHEN the user confirms deletion +- THEN the object store MUST DELETE the client from OpenRegister +- AND the user MUST be navigated back to the list + +### Requirement: App MUST provide a requests list view +The frontend MUST display a paginated, searchable list of requests (verzoeken). + +#### Scenario: Requests list page +- GIVEN the user navigates to the requests section +- WHEN the page loads +- THEN the object store MUST fetch requests from OpenRegister +- AND the list MUST display request title, client name, status, priority, and requested date +- AND the list MUST support pagination + +### Requirement: App MUST provide a request detail view +The frontend MUST display request details with the linked client. + +#### Scenario: Request detail page +- GIVEN the user clicks a request in the list +- WHEN the detail view loads +- THEN the object store MUST fetch the full request object by ID +- AND the view MUST display all request fields (title, description, client, status, priority, category, requestedAt) +- AND the view MUST show a link to the associated client + +### Requirement: App MUST support request CRUD operations +The frontend MUST allow creating, editing, and deleting requests via OpenRegister. + +#### Scenario: Create request +- GIVEN the user is on the requests list or a client detail +- WHEN the user creates a new request +- THEN the request MUST be saved to OpenRegister +- AND if created from a client detail, it MUST include a reference to that client + +#### Scenario: Edit request +- GIVEN the user is viewing a request detail +- WHEN the user modifies fields and saves +- THEN the object store MUST PUT to OpenRegister with the updated data + +#### Scenario: Delete request +- GIVEN the user is viewing a request detail +- WHEN the user confirms deletion +- THEN the object store MUST DELETE the request from OpenRegister + +### Requirement: Navigation MUST include clients and requests menu items +The app navigation MUST show menu items for the primary entity types. + +#### Scenario: Navigation rendering +- GIVEN the user opens the Pipelinq app +- WHEN the navigation loads +- THEN the menu MUST include at minimum "Dashboard", "Clients", and "Requests" items +- AND clicking each item MUST navigate to the corresponding list view diff --git a/openspec/changes/archive/2026-03-06-create-procest-app/specs/pipelinq-object-store/spec.md b/openspec/changes/archive/2026-03-06-create-procest-app/specs/pipelinq-object-store/spec.md new file mode 100644 index 0000000..200c15f --- /dev/null +++ b/openspec/changes/archive/2026-03-06-create-procest-app/specs/pipelinq-object-store/spec.md @@ -0,0 +1,101 @@ +# pipelinq-object-store Specification + +## Purpose +Define the Pinia-based object store that provides the data layer for Pipelinq. Identical pattern to the Procest object store — queries OpenRegister directly from the frontend for all CRUD, search, and pagination operations. + +## Requirements + +### Requirement: Object store MUST use Pinia with dynamic type registration +The store MUST support registering object types at runtime, each mapped to an OpenRegister register/schema pair. + +#### Scenario: Register object type +- GIVEN the app settings have been loaded with register/schema IDs +- WHEN `registerObjectType('client', schemaId, registerId)` is called +- THEN the store MUST record the mapping in `objectTypeRegistry` +- AND subsequent CRUD actions for type `client` MUST use the correct register/schema + +#### Scenario: Unregister object type +- GIVEN an object type is registered +- WHEN `unregisterObjectType('client')` is called +- THEN the type MUST be removed from the registry +- AND its cached data MUST be cleared + +### Requirement: Object store MUST fetch collections from OpenRegister +The store MUST provide a `fetchCollection` action that queries OpenRegister's list endpoint with pagination and search support. + +#### Scenario: Fetch paginated collection +- GIVEN object type `client` is registered with register=6, schema=40 +- WHEN `fetchCollection('client', { _limit: 20, _offset: 0 })` is called +- THEN the store MUST fetch `GET /apps/openregister/api/objects/6/40?_limit=20&_offset=0` +- AND the response results MUST be stored in `collections.client` +- AND pagination metadata MUST be stored in `pagination.client` + +#### Scenario: Fetch with search +- GIVEN the user searches for "Gemeente Amsterdam" +- WHEN `fetchCollection('client', { _search: 'Gemeente Amsterdam' })` is called +- THEN the store MUST include `_search=Gemeente+Amsterdam` in the query +- AND results MUST reflect the search filter + +### Requirement: Object store MUST fetch individual objects +The store MUST provide a `fetchObject` action that retrieves a single object by ID. + +#### Scenario: Fetch single object +- GIVEN object type `client` is registered +- WHEN `fetchObject('client', 'uuid-456')` is called +- THEN the store MUST fetch `GET /apps/openregister/api/objects/6/40/uuid-456` +- AND the object MUST be stored in `objects.client['uuid-456']` + +### Requirement: Object store MUST support create, update, and delete +The store MUST provide actions for full CRUD operations against OpenRegister. + +#### Scenario: Create object +- GIVEN object type `request` is registered +- WHEN `saveObject('request', { title: 'New request', client: 'uuid-456' })` is called with no existing ID +- THEN the store MUST POST to OpenRegister +- AND the created object MUST be added to the store + +#### Scenario: Update object +- GIVEN a client object exists with ID `uuid-456` +- WHEN `saveObject('client', { id: 'uuid-456', name: 'Updated' })` is called +- THEN the store MUST PUT to OpenRegister +- AND the store MUST update `objects.client['uuid-456']` + +#### Scenario: Delete object +- GIVEN a request object exists with ID `uuid-789` +- WHEN `deleteObject('request', 'uuid-789')` is called +- THEN the store MUST DELETE from OpenRegister +- AND the object MUST be removed from the store + +### Requirement: Object store MUST track loading and error states +The store MUST provide reactive loading and error states per object type. + +#### Scenario: Loading state during fetch +- GIVEN a collection fetch is in progress for type `client` +- WHEN a component checks `isLoading('client')` +- THEN it MUST return `true` +- AND when the fetch completes, it MUST return `false` + +#### Scenario: Error state on failure +- GIVEN an API call fails with a network error +- WHEN the store processes the error +- THEN `errors.client` MUST contain the error message +- AND the loading state MUST be set to `false` + +### Requirement: Object store MUST load settings before data operations +The store MUST fetch app settings on initialization before any object type can be registered. + +#### Scenario: Settings initialization +- GIVEN the app is loading for the first time +- WHEN the store initializes +- THEN it MUST fetch `/apps/pipelinq/api/settings` to get register/schema configuration +- AND it MUST register all object types using the returned IDs +- AND data fetching MUST NOT proceed until settings are loaded + +### Requirement: All API calls MUST include Nextcloud authentication headers +Every fetch request to OpenRegister MUST include the CSRF token and OCS header. + +#### Scenario: Authenticated request +- GIVEN a store action makes a fetch call +- WHEN the request is constructed +- THEN it MUST include `requesttoken: OC.requestToken` header +- AND it MUST include `OCS-APIREQUEST: true` header diff --git a/openspec/changes/archive/2026-03-06-create-procest-app/specs/procest-app-scaffold/spec.md b/openspec/changes/archive/2026-03-06-create-procest-app/specs/procest-app-scaffold/spec.md new file mode 100644 index 0000000..7287b66 --- /dev/null +++ b/openspec/changes/archive/2026-03-06-create-procest-app/specs/procest-app-scaffold/spec.md @@ -0,0 +1,77 @@ +# procest-app-scaffold Specification + +## Purpose +Define the Nextcloud app scaffolding, build system, translation setup, and admin settings for the Procest case management app. This capability establishes the foundational structure that all other capabilities build upon. + +## Requirements + +### Requirement: App MUST be a valid Nextcloud app +The Procest app MUST be installable as a standard Nextcloud app with proper metadata, namespace, and dependency declarations. + +#### Scenario: App registration +- GIVEN the Procest app directory exists in apps-extra +- WHEN Nextcloud scans for available apps +- THEN the app MUST appear in the apps list with id `procest`, name "Procest", and namespace `Procest` +- AND it MUST declare compatibility with Nextcloud 28-33 +- AND it MUST declare PHP 8.1+ as minimum requirement + +#### Scenario: App enable +- GIVEN Nextcloud is running and OpenRegister is installed +- WHEN an admin enables the Procest app +- THEN the app MUST activate without errors +- AND it MUST register a navigation entry in the top bar + +### Requirement: App MUST provide a single-page application entry point +The app MUST serve a Vue 2 SPA from a dashboard controller that mounts to the `#content` element. + +#### Scenario: Dashboard page load +- GIVEN the app is enabled and a user is logged in +- WHEN the user navigates to `/apps/procest/` +- THEN the server MUST return an HTML page with a `#content` mount point +- AND the page MUST load the `procest-main.js` webpack bundle +- AND the Vue app MUST initialize with Pinia state management + +### Requirement: App MUST use webpack build system extending Nextcloud base config +The build system MUST extend `@nextcloud/webpack-vue-config` with two entry points. + +#### Scenario: Build produces correct bundles +- GIVEN the source files exist in `src/` +- WHEN `npm run build` is executed +- THEN it MUST produce `js/procest-main.js` for the dashboard SPA +- AND it MUST produce `js/procest-settings.js` for the admin settings page + +### Requirement: App MUST support multilingual translations +All user-facing strings MUST be wrapped in translation functions with English as the primary language and Dutch included. + +#### Scenario: English translation +- GIVEN a user with English locale +- WHEN viewing the Procest app +- THEN all UI text MUST be displayed in English + +#### Scenario: Dutch translation +- GIVEN a user with Dutch locale +- WHEN viewing the Procest app +- THEN all UI text MUST be displayed in Dutch + +#### Scenario: Translation function usage +- GIVEN any Vue component with user-facing text +- WHEN the component renders +- THEN all strings MUST use `t('procest', 'key')` in templates +- AND all PHP strings MUST use `$this->l->t('key')` + +### Requirement: App MUST provide admin settings page +The app MUST register an admin settings section for register/schema configuration. + +#### Scenario: Settings page access +- GIVEN an admin user +- WHEN navigating to `/settings/admin/procest` +- THEN the admin settings page MUST load with the `procest-settings.js` bundle +- AND it MUST display configuration options for register and schema mappings + +### Requirement: App MUST have a GitHub repository +The app source code MUST be hosted at `ConductionNL/procest` on GitHub. + +#### Scenario: Repository exists +- GIVEN the ConductionNL GitHub organization +- WHEN checking for the procest repository +- THEN `https://github.com/ConductionNL/procest` MUST exist and be public diff --git a/openspec/changes/archive/2026-03-06-create-procest-app/specs/procest-case-management/spec.md b/openspec/changes/archive/2026-03-06-create-procest-app/specs/procest-case-management/spec.md new file mode 100644 index 0000000..768e76a --- /dev/null +++ b/openspec/changes/archive/2026-03-06-create-procest-app/specs/procest-case-management/spec.md @@ -0,0 +1,108 @@ +# procest-case-management Specification + +## Purpose +Define the case management domain for Procest: cases, tasks, statuses, roles, results, and decisions. All entities are stored in OpenRegister under the `case-management` register. The frontend provides list and detail views for cases and tasks. + +## Requirements + +### Requirement: Case-management register MUST be auto-configured on install +The app MUST create or detect the `case-management` register and its schemas in OpenRegister during app initialization. + +#### Scenario: First install with no existing register +- GIVEN OpenRegister is active and no `case-management` register exists +- WHEN the Procest app is enabled for the first time +- THEN a repair step MUST create the `case-management` register +- AND it MUST create schemas for: case, task, status, role, result, decision +- AND it MUST store the register and schema IDs in app configuration + +#### Scenario: Install with existing register +- GIVEN OpenRegister has a `case-management` register already configured +- WHEN the Procest app is enabled +- THEN the repair step MUST detect and use the existing register +- AND it MUST store the found register/schema IDs in app configuration + +### Requirement: Settings endpoint MUST return register/schema configuration +The backend MUST provide an API endpoint that returns the configured register and schema IDs. + +#### Scenario: Get configuration +- GIVEN the app is configured with register and schema IDs +- WHEN a GET request is made to `/api/settings` +- THEN the response MUST include `register`, `case_schema`, `task_schema`, `status_schema`, `role_schema`, `result_schema`, `decision_schema` +- AND the response status MUST be 200 + +#### Scenario: Save configuration +- GIVEN an admin user +- WHEN a POST request is made to `/api/settings` with register/schema IDs +- THEN the configuration MUST be persisted in app config +- AND the response MUST confirm success + +### Requirement: App MUST provide a cases list view +The frontend MUST display a paginated, searchable list of cases. + +#### Scenario: Cases list page +- GIVEN the user navigates to the cases section +- WHEN the page loads +- THEN the object store MUST fetch cases from OpenRegister using the configured register/schema +- AND the list MUST display case title, status, assignee, and created date +- AND the list MUST support pagination + +#### Scenario: Cases search +- GIVEN the cases list is displayed +- WHEN the user enters a search term +- THEN the object store MUST query OpenRegister with the `_search` parameter +- AND the list MUST update to show matching results + +### Requirement: App MUST provide a case detail view +The frontend MUST display case details with related tasks. + +#### Scenario: Case detail page +- GIVEN the user clicks a case in the list +- WHEN the detail view loads +- THEN the object store MUST fetch the full case object by ID +- AND the view MUST display all case fields (title, description, status, assignee, priority, dates) +- AND the view MUST list tasks associated with this case + +### Requirement: App MUST support case CRUD operations +The frontend MUST allow creating, editing, and deleting cases via OpenRegister. + +#### Scenario: Create case +- GIVEN the user is on the cases list +- WHEN the user clicks "New case" and fills in the form +- THEN the object store MUST POST to OpenRegister with the case data +- AND the new case MUST appear in the list + +#### Scenario: Edit case +- GIVEN the user is viewing a case detail +- WHEN the user modifies fields and saves +- THEN the object store MUST PUT to OpenRegister with the updated data +- AND the detail view MUST reflect the changes + +#### Scenario: Delete case +- GIVEN the user is viewing a case detail +- WHEN the user confirms deletion +- THEN the object store MUST DELETE the case from OpenRegister +- AND the user MUST be navigated back to the list + +### Requirement: App MUST provide task management within cases +The frontend MUST support creating, editing, and completing tasks linked to a case. + +#### Scenario: Task list within case +- GIVEN the user is viewing a case detail +- WHEN the tasks section loads +- THEN tasks MUST be fetched from OpenRegister filtered by the case ID +- AND each task MUST show title, status, assignee, and due date + +#### Scenario: Create task +- GIVEN the user is viewing a case detail +- WHEN the user creates a new task +- THEN the task MUST be saved to OpenRegister with a reference to the parent case +- AND it MUST appear in the case's task list + +### Requirement: Navigation MUST include cases and tasks menu items +The app navigation MUST show menu items for Cases and optionally Tasks. + +#### Scenario: Navigation rendering +- GIVEN the user opens the Procest app +- WHEN the navigation loads +- THEN the menu MUST include at minimum a "Dashboard" item and a "Cases" item +- AND clicking "Cases" MUST navigate to the cases list view diff --git a/openspec/changes/archive/2026-03-06-create-procest-app/specs/procest-object-store/spec.md b/openspec/changes/archive/2026-03-06-create-procest-app/specs/procest-object-store/spec.md new file mode 100644 index 0000000..3773227 --- /dev/null +++ b/openspec/changes/archive/2026-03-06-create-procest-app/specs/procest-object-store/spec.md @@ -0,0 +1,101 @@ +# procest-object-store Specification + +## Purpose +Define the Pinia-based object store that provides the data layer for Procest. The store queries OpenRegister directly from the frontend for all CRUD, search, and pagination operations — following the softwarecatalog thin-client pattern. + +## Requirements + +### Requirement: Object store MUST use Pinia with dynamic type registration +The store MUST support registering object types at runtime, each mapped to an OpenRegister register/schema pair. + +#### Scenario: Register object type +- GIVEN the app settings have been loaded with register/schema IDs +- WHEN `registerObjectType('case', schemaId, registerId)` is called +- THEN the store MUST record the mapping in `objectTypeRegistry` +- AND subsequent CRUD actions for type `case` MUST use the correct register/schema + +#### Scenario: Unregister object type +- GIVEN an object type is registered +- WHEN `unregisterObjectType('case')` is called +- THEN the type MUST be removed from the registry +- AND its cached data MUST be cleared + +### Requirement: Object store MUST fetch collections from OpenRegister +The store MUST provide a `fetchCollection` action that queries OpenRegister's list endpoint with pagination and search support. + +#### Scenario: Fetch paginated collection +- GIVEN object type `case` is registered with register=5, schema=30 +- WHEN `fetchCollection('case', { _limit: 20, _offset: 0 })` is called +- THEN the store MUST fetch `GET /apps/openregister/api/objects/5/30?_limit=20&_offset=0` +- AND the response results MUST be stored in `collections.case` +- AND pagination metadata MUST be stored in `pagination.case` + +#### Scenario: Fetch with search +- GIVEN the user searches for "building permit" +- WHEN `fetchCollection('case', { _search: 'building permit' })` is called +- THEN the store MUST include `_search=building+permit` in the query +- AND results MUST reflect the search filter + +### Requirement: Object store MUST fetch individual objects +The store MUST provide a `fetchObject` action that retrieves a single object by ID. + +#### Scenario: Fetch single object +- GIVEN object type `case` is registered +- WHEN `fetchObject('case', 'uuid-123')` is called +- THEN the store MUST fetch `GET /apps/openregister/api/objects/5/30/uuid-123` +- AND the object MUST be stored in `objects.case['uuid-123']` + +### Requirement: Object store MUST support create, update, and delete +The store MUST provide actions for full CRUD operations against OpenRegister. + +#### Scenario: Create object +- GIVEN object type `case` is registered +- WHEN `saveObject('case', { title: 'New case', status: 'open' })` is called with no existing ID +- THEN the store MUST POST to `/apps/openregister/api/objects/5/30` +- AND the created object MUST be added to the store + +#### Scenario: Update object +- GIVEN a case object exists with ID `uuid-123` +- WHEN `saveObject('case', { id: 'uuid-123', title: 'Updated' })` is called +- THEN the store MUST PUT to `/apps/openregister/api/objects/5/30/uuid-123` +- AND the store MUST update `objects.case['uuid-123']` + +#### Scenario: Delete object +- GIVEN a case object exists with ID `uuid-123` +- WHEN `deleteObject('case', 'uuid-123')` is called +- THEN the store MUST DELETE `/apps/openregister/api/objects/5/30/uuid-123` +- AND `objects.case['uuid-123']` MUST be removed from the store + +### Requirement: Object store MUST track loading and error states +The store MUST provide reactive loading and error states per object type. + +#### Scenario: Loading state during fetch +- GIVEN a collection fetch is in progress for type `case` +- WHEN a component checks `isLoading('case')` +- THEN it MUST return `true` +- AND when the fetch completes, it MUST return `false` + +#### Scenario: Error state on failure +- GIVEN an API call fails with a network error +- WHEN the store processes the error +- THEN `errors.case` MUST contain the error message +- AND the loading state MUST be set to `false` + +### Requirement: Object store MUST load settings before data operations +The store MUST fetch app settings (register/schema IDs) on initialization before any object type can be registered. + +#### Scenario: Settings initialization +- GIVEN the app is loading for the first time +- WHEN the store initializes +- THEN it MUST fetch `/apps/procest/api/settings` to get register/schema configuration +- AND it MUST register all object types using the returned IDs +- AND data fetching MUST NOT proceed until settings are loaded + +### Requirement: All API calls MUST include Nextcloud authentication headers +Every fetch request to OpenRegister MUST include the CSRF token and OCS header. + +#### Scenario: Authenticated request +- GIVEN a store action makes a fetch call +- WHEN the request is constructed +- THEN it MUST include `requesttoken: OC.requestToken` header +- AND it MUST include `OCS-APIREQUEST: true` header diff --git a/openspec/changes/archive/2026-03-06-create-procest-app/tasks.md b/openspec/changes/archive/2026-03-06-create-procest-app/tasks.md new file mode 100644 index 0000000..db8e73e --- /dev/null +++ b/openspec/changes/archive/2026-03-06-create-procest-app/tasks.md @@ -0,0 +1,321 @@ +# Tasks: create-procest-app + +## 1. Procest App Scaffold + +### Task 1: Create Procest app directory structure and info.xml +- **spec_ref**: `openspec/changes/create-procest-app/specs/procest-app-scaffold/spec.md#requirement-app-must-be-a-valid-nextcloud-app` +- **files**: `procest/appinfo/info.xml`, `procest/composer.json`, `procest/img/app.svg` +- **acceptance_criteria**: + - GIVEN the procest directory exists in apps-extra WHEN Nextcloud scans for apps THEN it MUST appear with id `procest`, name "Procest", namespace `Procest` + - AND it MUST declare compatibility with Nextcloud 28-33 and PHP 8.1+ +- [x] Create `procest/` directory with `appinfo/info.xml`, `composer.json`, `img/app.svg` + +### Task 2: Create Procest PHP backend (Application, Controllers, Services) +- **spec_ref**: `openspec/changes/create-procest-app/specs/procest-app-scaffold/spec.md#requirement-app-must-provide-a-single-page-application-entry-point` +- **files**: `procest/lib/AppInfo/Application.php`, `procest/lib/Controller/DashboardController.php`, `procest/lib/Controller/SettingsController.php`, `procest/lib/Service/SettingsService.php`, `procest/appinfo/routes.php`, `procest/templates/index.php` +- **acceptance_criteria**: + - GIVEN the app is enabled WHEN a user navigates to `/apps/procest/` THEN the server MUST return an HTML page with a `#content` mount point + - GIVEN a GET request to `/api/settings` THEN it MUST return register and schema IDs + - GIVEN an admin POST to `/api/settings` THEN it MUST persist config +- [x] Create Application.php with IBootstrap registration +- [x] Create DashboardController with index action +- [x] Create SettingsController with get/save endpoints +- [x] Create SettingsService for IAppConfig read/write +- [x] Create routes.php and templates/index.php + +### Task 3: Create Procest admin settings page +- **spec_ref**: `openspec/changes/create-procest-app/specs/procest-app-scaffold/spec.md#requirement-app-must-provide-admin-settings-page` +- **files**: `procest/lib/Settings/AdminSettings.php`, `procest/lib/Settings/AdminSection.php`, `procest/lib/Sections/SettingsSection.php` +- **acceptance_criteria**: + - GIVEN an admin user WHEN navigating to `/settings/admin/procest` THEN the admin settings page MUST load with the `procest-settings.js` bundle +- [x] Create AdminSettings and AdminSection classes +- [x] Register settings section in info.xml + +### Task 4: Create Procest repair step for auto-configuration +- **spec_ref**: `openspec/changes/create-procest-app/specs/procest-case-management/spec.md#requirement-case-management-register-must-be-auto-configured-on-install` +- **files**: `procest/lib/Repair/InitializeSettings.php` +- **acceptance_criteria**: + - GIVEN OpenRegister is active and no `case-management` register exists WHEN Procest is enabled THEN a repair step MUST create the register with schemas for case, task, status, role, result, decision + - GIVEN a `case-management` register already exists WHEN Procest is enabled THEN it MUST detect and use the existing register +- [x] Create InitializeSettings repair step +- [x] Register repair step in info.xml + +### Task 5: Create Procest webpack and frontend entry points +- **spec_ref**: `openspec/changes/create-procest-app/specs/procest-app-scaffold/spec.md#requirement-app-must-use-webpack-build-system-extending-nextcloud-base-config` +- **files**: `procest/webpack.config.js`, `procest/package.json`, `procest/src/main.js`, `procest/src/settings.js`, `procest/src/pinia.js`, `procest/src/App.vue` +- **acceptance_criteria**: + - GIVEN source files exist in `src/` WHEN `npm run build` is executed THEN it MUST produce `js/procest-main.js` and `js/procest-settings.js` + - AND the Vue app MUST initialize with Pinia state management +- [x] Create package.json with Nextcloud dependencies +- [x] Create webpack.config.js extending @nextcloud/webpack-vue-config +- [x] Create main.js, settings.js, pinia.js, and App.vue entry points + +### Task 6: Create Procest l10n translations +- **spec_ref**: `openspec/changes/create-procest-app/specs/procest-app-scaffold/spec.md#requirement-app-must-support-multilingual-translations` +- **files**: `procest/l10n/en.json`, `procest/l10n/nl.json` +- **acceptance_criteria**: + - GIVEN a user with English locale WHEN viewing Procest THEN all text MUST be in English + - GIVEN a user with Dutch locale WHEN viewing Procest THEN all text MUST be in Dutch +- [x] Create l10n/en.json and l10n/nl.json with all UI strings + +## 2. Procest Object Store + +### Task 7: Create Procest Pinia object store with type registration +- **spec_ref**: `openspec/changes/create-procest-app/specs/procest-object-store/spec.md#requirement-object-store-must-use-pinia-with-dynamic-type-registration` +- **files**: `procest/src/store/modules/object.js` +- **acceptance_criteria**: + - GIVEN app settings are loaded WHEN `registerObjectType('case', schemaId, registerId)` is called THEN the store MUST record the mapping + - GIVEN an object type is registered WHEN `unregisterObjectType('case')` is called THEN the type MUST be removed and cached data cleared +- [x] Create object store with registerObjectType/unregisterObjectType actions +- [x] Implement objectTypeRegistry state and getters + +### Task 8: Create Procest object store CRUD and collection actions +- **spec_ref**: `openspec/changes/create-procest-app/specs/procest-object-store/spec.md#requirement-object-store-must-fetch-collections-from-openregister` +- **files**: `procest/src/store/modules/object.js` +- **acceptance_criteria**: + - GIVEN type `case` is registered WHEN `fetchCollection('case', { _limit: 20 })` is called THEN it MUST fetch from OpenRegister with correct URL + - GIVEN type `case` is registered WHEN `fetchObject('case', 'uuid-123')` is called THEN it MUST fetch single object by ID + - GIVEN `saveObject('case', { title: 'New' })` is called with no ID THEN it MUST POST to OpenRegister + - GIVEN `saveObject('case', { id: 'uuid-123' })` is called THEN it MUST PUT to OpenRegister + - GIVEN `deleteObject('case', 'uuid-123')` is called THEN it MUST DELETE from OpenRegister +- [x] Implement fetchCollection with pagination and search +- [x] Implement fetchObject for single objects +- [x] Implement saveObject (create/update) and deleteObject +- [x] All requests MUST include requesttoken and OCS-APIREQUEST headers + +### Task 9: Create Procest settings store and initialization +- **spec_ref**: `openspec/changes/create-procest-app/specs/procest-object-store/spec.md#requirement-object-store-must-load-settings-before-data-operations` +- **files**: `procest/src/store/modules/settings.js`, `procest/src/store/store.js` +- **acceptance_criteria**: + - GIVEN the app is loading WHEN the store initializes THEN it MUST fetch `/apps/procest/api/settings` first + - AND it MUST register all object types using the returned IDs + - AND data fetching MUST NOT proceed until settings are loaded +- [x] Create settings store module with fetchSettings action +- [x] Create main store.js that initializes settings then registers types +- [x] Implement loading and error state tracking per object type + +## 3. Procest Case Management Views + +### Task 10: Create Procest navigation and routing +- **spec_ref**: `openspec/changes/create-procest-app/specs/procest-case-management/spec.md#requirement-navigation-must-include-cases-and-tasks-menu-items` +- **files**: `procest/src/navigation/MainMenu.vue`, `procest/src/App.vue` +- **acceptance_criteria**: + - GIVEN the user opens Procest WHEN the navigation loads THEN the menu MUST include "Dashboard" and "Cases" items + - AND clicking each item MUST navigate to the corresponding view +- [x] Create MainMenu.vue with navigation items +- [x] Set up Vue Router in App.vue with routes for dashboard, cases list, case detail + +### Task 11: Create Procest cases list and detail views +- **spec_ref**: `openspec/changes/create-procest-app/specs/procest-case-management/spec.md#requirement-app-must-provide-a-cases-list-view` +- **files**: `procest/src/views/Dashboard.vue`, `procest/src/views/cases/CaseList.vue`, `procest/src/views/cases/CaseDetail.vue` +- **acceptance_criteria**: + - GIVEN the user navigates to cases WHEN the page loads THEN it MUST display case title, status, assignee, and created date with pagination + - GIVEN the user clicks a case WHEN the detail loads THEN it MUST display all case fields and associated tasks + - GIVEN the user searches THEN the list MUST query OpenRegister with `_search` +- [x] Create Dashboard.vue with summary/welcome content +- [x] Create CaseList.vue with paginated list, search, and "New case" button +- [x] Create CaseDetail.vue with full case fields and task list + +### Task 12: Create Procest case and task CRUD forms +- **spec_ref**: `openspec/changes/create-procest-app/specs/procest-case-management/spec.md#requirement-app-must-support-case-crud-operations` +- **files**: `procest/src/views/cases/CaseDetail.vue` +- **acceptance_criteria**: + - GIVEN the user creates a new case THEN the object store MUST POST to OpenRegister + - GIVEN the user edits a case THEN the object store MUST PUT to OpenRegister + - GIVEN the user deletes a case THEN the object store MUST DELETE and navigate back to list + - GIVEN the user creates a task within a case THEN it MUST include a reference to the parent case +- [x] Implement create/edit form in CaseDetail (inline editing mode) +- [x] Implement delete with confirmation +- [x] Implement task creation within case detail + +### Task 13: Create Procest admin settings Vue component +- **spec_ref**: `openspec/changes/create-procest-app/specs/procest-app-scaffold/spec.md#requirement-app-must-provide-admin-settings-page` +- **files**: `procest/src/views/settings/Settings.vue` +- **acceptance_criteria**: + - GIVEN an admin WHEN on the settings page THEN they MUST see configuration options for register and schema mappings +- [x] Create Settings.vue with register/schema ID configuration fields + +## 4. Pipelinq App Scaffold + +### Task 14: Create Pipelinq app directory structure and info.xml +- **spec_ref**: `openspec/changes/create-procest-app/specs/pipelinq-app-scaffold/spec.md#requirement-app-must-be-a-valid-nextcloud-app` +- **files**: `pipelinq/appinfo/info.xml`, `pipelinq/composer.json`, `pipelinq/img/app.svg` +- **acceptance_criteria**: + - GIVEN the pipelinq directory exists in apps-extra WHEN Nextcloud scans for apps THEN it MUST appear with id `pipelinq`, name "Pipelinq", namespace `Pipelinq` + - AND it MUST declare compatibility with Nextcloud 28-33 and PHP 8.1+ +- [x] Create `pipelinq/` directory with `appinfo/info.xml`, `composer.json`, `img/app.svg` + +### Task 15: Create Pipelinq PHP backend (Application, Controllers, Services) +- **spec_ref**: `openspec/changes/create-procest-app/specs/pipelinq-app-scaffold/spec.md#requirement-app-must-provide-a-single-page-application-entry-point` +- **files**: `pipelinq/lib/AppInfo/Application.php`, `pipelinq/lib/Controller/DashboardController.php`, `pipelinq/lib/Controller/SettingsController.php`, `pipelinq/lib/Service/SettingsService.php`, `pipelinq/appinfo/routes.php`, `pipelinq/templates/index.php` +- **acceptance_criteria**: + - GIVEN the app is enabled WHEN a user navigates to `/apps/pipelinq/` THEN the server MUST return an HTML page with a `#content` mount point + - GIVEN a GET request to `/api/settings` THEN it MUST return register and schema IDs (register, client_schema, request_schema, contact_schema) + - GIVEN an admin POST to `/api/settings` THEN it MUST persist config +- [x] Create Application.php with IBootstrap registration +- [x] Create DashboardController with index action +- [x] Create SettingsController with get/save endpoints +- [x] Create SettingsService for IAppConfig read/write +- [x] Create routes.php and templates/index.php + +### Task 16: Create Pipelinq admin settings page +- **spec_ref**: `openspec/changes/create-procest-app/specs/pipelinq-app-scaffold/spec.md#requirement-app-must-provide-admin-settings-page` +- **files**: `pipelinq/lib/Settings/AdminSettings.php`, `pipelinq/lib/Settings/AdminSection.php`, `pipelinq/lib/Sections/SettingsSection.php` +- **acceptance_criteria**: + - GIVEN an admin user WHEN navigating to `/settings/admin/pipelinq` THEN the admin settings page MUST load with the `pipelinq-settings.js` bundle +- [x] Create AdminSettings and AdminSection classes +- [x] Register settings section in info.xml + +### Task 17: Create Pipelinq repair step for auto-configuration +- **spec_ref**: `openspec/changes/create-procest-app/specs/pipelinq-client-management/spec.md#requirement-client-management-register-must-be-auto-configured-on-install` +- **files**: `pipelinq/lib/Repair/InitializeSettings.php` +- **acceptance_criteria**: + - GIVEN OpenRegister is active and no `client-management` register exists WHEN Pipelinq is enabled THEN a repair step MUST create the register with schemas for client, request, contact + - GIVEN a `client-management` register already exists WHEN Pipelinq is enabled THEN it MUST detect and use the existing register +- [x] Create InitializeSettings repair step +- [x] Register repair step in info.xml + +### Task 18: Create Pipelinq webpack and frontend entry points +- **spec_ref**: `openspec/changes/create-procest-app/specs/pipelinq-app-scaffold/spec.md#requirement-app-must-use-webpack-build-system-extending-nextcloud-base-config` +- **files**: `pipelinq/webpack.config.js`, `pipelinq/package.json`, `pipelinq/src/main.js`, `pipelinq/src/settings.js`, `pipelinq/src/pinia.js`, `pipelinq/src/App.vue` +- **acceptance_criteria**: + - GIVEN source files exist in `src/` WHEN `npm run build` is executed THEN it MUST produce `js/pipelinq-main.js` and `js/pipelinq-settings.js` + - AND the Vue app MUST initialize with Pinia state management +- [x] Create package.json with Nextcloud dependencies +- [x] Create webpack.config.js extending @nextcloud/webpack-vue-config +- [x] Create main.js, settings.js, pinia.js, and App.vue entry points + +### Task 19: Create Pipelinq l10n translations +- **spec_ref**: `openspec/changes/create-procest-app/specs/pipelinq-app-scaffold/spec.md#requirement-app-must-support-multilingual-translations` +- **files**: `pipelinq/l10n/en.json`, `pipelinq/l10n/nl.json` +- **acceptance_criteria**: + - GIVEN a user with English locale WHEN viewing Pipelinq THEN all text MUST be in English + - GIVEN a user with Dutch locale WHEN viewing Pipelinq THEN all text MUST be in Dutch +- [x] Create l10n/en.json and l10n/nl.json with all UI strings + +## 5. Pipelinq Object Store + +### Task 20: Create Pipelinq Pinia object store with type registration +- **spec_ref**: `openspec/changes/create-procest-app/specs/pipelinq-object-store/spec.md#requirement-object-store-must-use-pinia-with-dynamic-type-registration` +- **files**: `pipelinq/src/store/modules/object.js` +- **acceptance_criteria**: + - GIVEN app settings are loaded WHEN `registerObjectType('client', schemaId, registerId)` is called THEN the store MUST record the mapping + - GIVEN an object type is registered WHEN `unregisterObjectType('client')` is called THEN the type MUST be removed and cached data cleared +- [x] Create object store with registerObjectType/unregisterObjectType actions +- [x] Implement objectTypeRegistry state and getters + +### Task 21: Create Pipelinq object store CRUD and collection actions +- **spec_ref**: `openspec/changes/create-procest-app/specs/pipelinq-object-store/spec.md#requirement-object-store-must-fetch-collections-from-openregister` +- **files**: `pipelinq/src/store/modules/object.js` +- **acceptance_criteria**: + - GIVEN type `client` is registered WHEN `fetchCollection('client', { _limit: 20 })` is called THEN it MUST fetch from OpenRegister with correct URL + - GIVEN type `client` is registered WHEN `fetchObject('client', 'uuid-456')` is called THEN it MUST fetch single object by ID + - GIVEN `saveObject('request', { title: 'New' })` is called with no ID THEN it MUST POST to OpenRegister + - GIVEN `deleteObject('request', 'uuid-789')` is called THEN it MUST DELETE from OpenRegister +- [x] Implement fetchCollection with pagination and search +- [x] Implement fetchObject for single objects +- [x] Implement saveObject (create/update) and deleteObject +- [x] All requests MUST include requesttoken and OCS-APIREQUEST headers + +### Task 22: Create Pipelinq settings store and initialization +- **spec_ref**: `openspec/changes/create-procest-app/specs/pipelinq-object-store/spec.md#requirement-object-store-must-load-settings-before-data-operations` +- **files**: `pipelinq/src/store/modules/settings.js`, `pipelinq/src/store/store.js` +- **acceptance_criteria**: + - GIVEN the app is loading WHEN the store initializes THEN it MUST fetch `/apps/pipelinq/api/settings` first + - AND it MUST register all object types using the returned IDs + - AND data fetching MUST NOT proceed until settings are loaded +- [x] Create settings store module with fetchSettings action +- [x] Create main store.js that initializes settings then registers types +- [x] Implement loading and error state tracking per object type + +## 6. Pipelinq Client & Request Management Views + +### Task 23: Create Pipelinq navigation and routing +- **spec_ref**: `openspec/changes/create-procest-app/specs/pipelinq-client-management/spec.md#requirement-navigation-must-include-clients-and-requests-menu-items` +- **files**: `pipelinq/src/navigation/MainMenu.vue`, `pipelinq/src/App.vue` +- **acceptance_criteria**: + - GIVEN the user opens Pipelinq WHEN the navigation loads THEN the menu MUST include "Dashboard", "Clients", and "Requests" items + - AND clicking each item MUST navigate to the corresponding view +- [x] Create MainMenu.vue with navigation items +- [x] Set up Vue Router in App.vue with routes for dashboard, clients, requests + +### Task 24: Create Pipelinq clients list and detail views +- **spec_ref**: `openspec/changes/create-procest-app/specs/pipelinq-client-management/spec.md#requirement-app-must-provide-a-clients-list-view` +- **files**: `pipelinq/src/views/Dashboard.vue`, `pipelinq/src/views/clients/ClientList.vue`, `pipelinq/src/views/clients/ClientDetail.vue` +- **acceptance_criteria**: + - GIVEN the user navigates to clients WHEN the page loads THEN it MUST display client name, type, email, and phone with pagination + - GIVEN the user clicks a client WHEN the detail loads THEN it MUST display all client fields, related requests, and contacts + - GIVEN the user searches THEN the list MUST query OpenRegister with `_search` +- [x] Create Dashboard.vue with summary/welcome content +- [x] Create ClientList.vue with paginated list, search, and "New client" button +- [x] Create ClientDetail.vue with full client fields, requests list, and contacts list + +### Task 25: Create Pipelinq client CRUD forms +- **spec_ref**: `openspec/changes/create-procest-app/specs/pipelinq-client-management/spec.md#requirement-app-must-support-client-crud-operations` +- **files**: `pipelinq/src/views/clients/ClientDetail.vue` +- **acceptance_criteria**: + - GIVEN the user creates a new client THEN the object store MUST POST to OpenRegister + - GIVEN the user edits a client THEN the object store MUST PUT to OpenRegister + - GIVEN the user deletes a client THEN the object store MUST DELETE and navigate back to list +- [x] Implement create/edit form in ClientDetail (inline editing mode) +- [x] Implement delete with confirmation + +### Task 26: Create Pipelinq requests list and detail views +- **spec_ref**: `openspec/changes/create-procest-app/specs/pipelinq-client-management/spec.md#requirement-app-must-provide-a-requests-list-view` +- **files**: `pipelinq/src/views/requests/RequestList.vue`, `pipelinq/src/views/requests/RequestDetail.vue` +- **acceptance_criteria**: + - GIVEN the user navigates to requests WHEN the page loads THEN it MUST display request title, client name, status, priority, and requested date with pagination + - GIVEN the user clicks a request WHEN the detail loads THEN it MUST display all fields and a link to the associated client +- [x] Create RequestList.vue with paginated list, search, and "New request" button +- [x] Create RequestDetail.vue with full request fields and client link + +### Task 27: Create Pipelinq request CRUD forms +- **spec_ref**: `openspec/changes/create-procest-app/specs/pipelinq-client-management/spec.md#requirement-app-must-support-request-crud-operations` +- **files**: `pipelinq/src/views/requests/RequestDetail.vue` +- **acceptance_criteria**: + - GIVEN the user creates a request THEN it MUST be saved to OpenRegister + - GIVEN the user creates a request from a client detail THEN it MUST include a reference to that client + - GIVEN the user deletes a request THEN the object store MUST DELETE from OpenRegister +- [x] Implement create/edit form in RequestDetail +- [x] Implement delete with confirmation +- [x] Support creating request pre-linked to a client + +### Task 28: Create Pipelinq admin settings Vue component +- **spec_ref**: `openspec/changes/create-procest-app/specs/pipelinq-app-scaffold/spec.md#requirement-app-must-provide-admin-settings-page` +- **files**: `pipelinq/src/views/settings/Settings.vue` +- **acceptance_criteria**: + - GIVEN an admin WHEN on the settings page THEN they MUST see configuration options for register and schema mappings +- [x] Create Settings.vue with register/schema ID configuration fields + +## 7. GitHub & Build + +### Task 29: Push initial code to GitHub repositories +- **spec_ref**: `openspec/changes/create-procest-app/specs/procest-app-scaffold/spec.md#requirement-app-must-have-a-github-repository` +- **files**: N/A (git operations) +- **acceptance_criteria**: + - GIVEN the ConductionNL GitHub org THEN `ConductionNL/procest` MUST exist and be public with the Procest source code + - AND `ConductionNL/pipelinq` MUST exist and be public with the Pipelinq source code +- [x] Initialize git repos, push Procest code to ConductionNL/procest +- [x] Push Pipelinq code to ConductionNL/pipelinq + +## 8. Integration Testing + +### Task 30: Build, install, and verify both apps in Docker +- **spec_ref**: All specs +- **files**: N/A (testing) +- **acceptance_criteria**: + - GIVEN both apps are built WHEN enabled in Nextcloud THEN they MUST activate without errors + - GIVEN both apps are enabled WHEN browsing to `/apps/procest/` and `/apps/pipelinq/` THEN the SPAs MUST load + - GIVEN admin settings pages THEN register/schema config MUST be saveable and retrievable + - GIVEN configured registers THEN list/detail/CRUD operations MUST work for all entity types +- [x] Run `npm run build` in both app directories +- [x] Enable both apps via occ and verify no errors +- [x] Test Procest: dashboard, cases list, case detail, case CRUD +- [x] Test Pipelinq: dashboard, clients list, client detail, client CRUD, requests list, request CRUD +- [x] Test admin settings for both apps + +## Verification +- [x] All tasks checked off +- [x] `openspec validate` passes +- [x] Manual testing against acceptance criteria +- [x] Code review against spec requirements diff --git a/openspec/changes/archive/2026-03-15-zgw-autorisaties-api/.openspec.yaml b/openspec/changes/archive/2026-03-15-zgw-autorisaties-api/.openspec.yaml new file mode 100644 index 0000000..4c35d89 --- /dev/null +++ b/openspec/changes/archive/2026-03-15-zgw-autorisaties-api/.openspec.yaml @@ -0,0 +1,2 @@ +schema: conduction +created: 2026-03-07 diff --git a/openspec/changes/archive/2026-03-15-zgw-autorisaties-api/design.md b/openspec/changes/archive/2026-03-15-zgw-autorisaties-api/design.md new file mode 100644 index 0000000..1c48494 --- /dev/null +++ b/openspec/changes/archive/2026-03-15-zgw-autorisaties-api/design.md @@ -0,0 +1,96 @@ +# Design: zgw-autorisaties-api + +## Architecture Overview + +The AC provides ZGW-standard API client management. It maps the ZGW Applicatie concept to OpenRegister's Consumer entity, allowing external systems to register credentials and manage permissions through the standard ZGW interface. + +``` +Client Procest AC OpenRegister + | | | + |-- POST /applicaties ------>| ZgwController::create() | + | | |-> ZgwMappingService | + | | | ::mapToConsumer() | + | | |-> ConsumerMapper::insert() -|-> openregister_consumers + |<-- 201 + applicatie -------| | + | | | + |-- GET /zaken (+ JWT) ----->| ZgwController::index() | + | | |-> ZgwAuthMiddleware | + | | | ::validate(jwt) | + | | | |-> AuthorizationService | + | | | | ::authorizeJwt() | + | | | |-> checkScopes() | + | | |-> ObjectService::find() ----| + |<-- 200 + zaken ------------| | +``` + +## Applicatie → Consumer Mapping + +| ZGW Applicatie Field | OpenRegister Consumer Field | Notes | +|---------------------|---------------------------|-------| +| uuid | uuid | Direct map | +| clientIds | name | Primary client ID used as JWT issuer | +| label | description | Display name | +| heeftAlleAutorisaties | authorization_configuration.superuser | Boolean flag | +| autorisaties | authorization_configuration.scopes | Array of scope grants | + +### Autorisatie (scope grant) structure: +```json +{ + "component": "zrc", + "scopes": ["zaken.lezen", "zaken.aanmaken", "zaken.bijwerken"], + "zaaktype": "https://host/api/zgw/catalogi/v1/zaaktypen/{uuid}", + "maxVertrouwelijkheidaanduiding": "vertrouwelijk" +} +``` + +## ZgwAuthMiddleware + +New class: `procest/lib/Middleware/ZgwAuthMiddleware.php` + +Registered for all ZGW routes. On each request: +1. Extract `Authorization: Bearer ` header +2. Call OpenRegister's `AuthorizationService::authorizeJwt()` — validates signature, checks expiry +3. Look up the Consumer's autorisaties from `authorization_configuration.scopes` +4. Check that the requested operation (component + scope) is allowed +5. If `heeftAlleAutorisaties` is true, skip scope check + +### Scope mapping: +| ZGW Scope | HTTP Method | Component | +|-----------|-------------|-----------| +| `*.lezen` | GET | zrc, ztc, brc, drc, nrc | +| `*.aanmaken` | POST | zrc, ztc, brc, drc, nrc | +| `*.bijwerken` | PUT, PATCH | zrc, ztc, brc, drc | +| `*.verwijderen` | DELETE | zrc, ztc, brc, drc | + +### Component mapping: +| ZGW Component | Procest API Group | +|---------------|-------------------| +| zrc | zaken | +| ztc | catalogi | +| brc | besluiten | +| drc | documenten | +| nrc | notificaties | +| ac | autorisaties | + +## Routes + +```php +// Autorisaties API (AC) +['name' => 'zgw#index', 'url' => '/api/zgw/autorisaties/v1/{resource}', 'verb' => 'GET'], +['name' => 'zgw#create', 'url' => '/api/zgw/autorisaties/v1/{resource}', 'verb' => 'POST'], +['name' => 'zgw#show', 'url' => '/api/zgw/autorisaties/v1/{resource}/{uuid}', 'verb' => 'GET'], +['name' => 'zgw#update', 'url' => '/api/zgw/autorisaties/v1/{resource}/{uuid}', 'verb' => 'PUT'], +['name' => 'zgw#patch', 'url' => '/api/zgw/autorisaties/v1/{resource}/{uuid}', 'verb' => 'PATCH'], +['name' => 'zgw#destroy', 'url' => '/api/zgw/autorisaties/v1/{resource}/{uuid}', 'verb' => 'DELETE'], +``` + +## Default Applicatie + +Create a default superuser applicatie via repair step for development/testing: +```json +{ + "clientIds": ["procest-admin"], + "label": "Procest Admin (development)", + "heeftAlleAutorisaties": true +} +``` diff --git a/openspec/changes/archive/2026-03-15-zgw-autorisaties-api/proposal.md b/openspec/changes/archive/2026-03-15-zgw-autorisaties-api/proposal.md new file mode 100644 index 0000000..ef93149 --- /dev/null +++ b/openspec/changes/archive/2026-03-15-zgw-autorisaties-api/proposal.md @@ -0,0 +1,51 @@ +# Proposal: zgw-autorisaties-api + +## Summary +Add ZGW Autorisaties API (AC) support to Procest, enabling API client registration and authorization management. This bridges OpenRegister's new auth system (migrated from OpenConnector) with the ZGW standard interface for managing applicaties and their permissions. + +## Motivation +The ZGW Autorisaties API is the standard way to: +- Register API clients (applicaties) with their credentials +- Define which ZGW APIs and scopes each client can access +- Generate and validate JWT tokens for API authentication + +Both Postman test collections require working AC endpoints — the OAS tests create test applicaties, and the business rules tests validate authorization enforcement. Without AC support, no ZGW test suite can run. + +## Affected Projects +- [x] Project: `procest` — New ZGW AC endpoints +- [x] Dependency: `openregister` — Requires the migrated auth system (Consumer entity, AuthorizationService) + +## Scope +### In Scope +- **Applicatie** — API client registration (maps to OpenRegister's Consumer entity) + - `GET/POST /api/zgw/autorisaties/v1/applicaties` + - `GET/PUT/PATCH/DELETE /api/zgw/autorisaties/v1/applicaties/{uuid}` +- **Autorisatie** — Permission grants per applicatie (which APIs, which scopes) + - Inline in Applicatie resource as `autorisaties` array + - Each autorisatie defines: `component`, `scopes`, `zaaktype`, `maxVertrouwelijkheidaanduiding` +- **JWT token validation**: Incoming requests with `Authorization: Bearer ` are validated against registered applicaties +- **ZGW JWT format**: Standard ZGW JWT claims (`iss`, `iat`, `client_id`, `user_id`, `user_representation`) +- **Mapping to OpenRegister Consumers**: Applicatie CRUD operations map to Consumer CRUD in OpenRegister +- **Scope enforcement**: Check that the authenticated applicatie has permission for the requested ZGW operation + +### Out of Scope +- OAuth2 authorization code flow (ZGW uses pre-shared secret JWT) +- Fine-grained field-level permissions +- Consent management UI + +## Approach +1. Create ZGW mapping configuration for Applicatie → Consumer entity in OpenRegister +2. Extend `ZgwController` to handle the `autorisaties` API group +3. Create `ZgwAuthService` in Procest that: + - Translates ZGW Applicatie format to/from OpenRegister Consumer format + - Validates incoming JWT tokens using OpenRegister's AuthorizationService + - Checks scopes against the applicatie's autorisaties +4. Add middleware to all ZGW endpoints that validates JWT and checks permissions +5. Register routes in `routes.php` + +## Cross-Project Dependencies +- **Hard dependency** on `openregister/migrate-auth-system` — Consumer entity and AuthorizationService must exist +- All other ZGW APIs (ZRC, ZTC, BRC, DRC, NRC) use this for authentication + +## Rollback Strategy +Remove AC routes, mapping configs, and ZgwAuthService. ZGW endpoints revert to unauthenticated access (current state). diff --git a/openspec/changes/archive/2026-03-15-zgw-autorisaties-api/specs/zgw-autorisaties/spec.md b/openspec/changes/archive/2026-03-15-zgw-autorisaties-api/specs/zgw-autorisaties/spec.md new file mode 100644 index 0000000..3b99259 --- /dev/null +++ b/openspec/changes/archive/2026-03-15-zgw-autorisaties-api/specs/zgw-autorisaties/spec.md @@ -0,0 +1,57 @@ +# Spec: ZGW Autorisaties API (AC) + +## ZGW Standard References + +### Official Documentation +- **Standard overview**: https://vng-realisatie.github.io/gemma-zaken/standaard/autorisaties/ +- **Developer guide**: https://vng-realisatie.github.io/gemma-zaken/ontwikkelaars/ + +### OpenAPI Specifications +- **OAS (gemma-zaken canonical)**: [api-specificatie/ac/openapi.yaml](https://github.com/VNG-Realisatie/gemma-zaken/blob/master/api-specificatie/ac/openapi.yaml) + - Raw: https://raw.githubusercontent.com/VNG-Realisatie/gemma-zaken/master/api-specificatie/ac/openapi.yaml +- **Reference implementation OAS**: [src/openapi.yaml](https://github.com/VNG-Realisatie/autorisaties-api/blob/master/src/openapi.yaml) + - Raw: https://raw.githubusercontent.com/VNG-Realisatie/autorisaties-api/master/src/openapi.yaml + +### Source Documentation (Markdown) +- **Standard page**: [docs/standaard/autorisaties/index.md](https://github.com/VNG-Realisatie/gemma-zaken/blob/master/docs/standaard/autorisaties/index.md) +- **Authorization spec**: [src/autorisaties.md](https://github.com/VNG-Realisatie/autorisaties-api/blob/master/src/autorisaties.md) +- **Notification spec**: [src/notificaties.md](https://github.com/VNG-Realisatie/autorisaties-api/blob/master/src/notificaties.md) + +### Note on Versioning +The AC in gemma-zaken does NOT have versioned subdirectories — the spec files sit directly in the `ac/` folder. + +## Requirements + +### Requirement: AC Resource Coverage +The implementation MUST support: +- **Applicatie** — API client registration with credentials and permissions + - Fields: uuid, clientIds, label, heeftAlleAutorisaties, autorisaties[] +- **Autorisatie** — Permission grants (inline in Applicatie) + - Fields: component, scopes[], zaaktype, maxVertrouwelijkheidaanduiding + +### Requirement: JWT-ZGW Authentication +- Validate incoming JWT tokens per the ZGW standard +- JWT claims: `iss` (maps to clientId), `iat`, `client_id`, `user_id`, `user_representation` +- Token signed with shared secret (HMAC) registered in the Applicatie + +### Requirement: Scope Enforcement +| Scope | Meaning | +|-------|---------| +| `*.lezen` | Read access (GET) | +| `*.aanmaken` | Create access (POST) | +| `*.bijwerken` | Update access (PUT, PATCH) | +| `*.verwijderen` | Delete access (DELETE) | + +Scopes are prefixed by component: `zaken.lezen`, `documenten.aanmaken`, etc. + +### Requirement: Superuser Mode +Applicaties with `heeftAlleAutorisaties: true` bypass all scope checks. + +### Requirement: Confidentiality Enforcement +`maxVertrouwelijkheidaanduiding` limits access to documents/cases at or below the specified confidentiality level. Levels (low to high): `openbaar`, `beperkt_openbaar`, `intern`, `zaakvertrouwelijk`, `vertrouwelijk`, `confidentieel`, `geheim`, `zeer_geheim`. + +### Requirement: Applicatie-Consumer Mapping +ZGW Applicatie resources MUST map to OpenRegister's Consumer entity for credential storage and JWT validation. + +### Requirement: ZGW Pagination +All list endpoints MUST return `{ count, next, previous, results }` format. diff --git a/openspec/changes/archive/2026-03-15-zgw-autorisaties-api/tasks.md b/openspec/changes/archive/2026-03-15-zgw-autorisaties-api/tasks.md new file mode 100644 index 0000000..816325b --- /dev/null +++ b/openspec/changes/archive/2026-03-15-zgw-autorisaties-api/tasks.md @@ -0,0 +1,70 @@ +# Tasks: zgw-autorisaties-api + +## 1. Mapping Configuration + +### Task 1.1: Create ZGW mapping for Applicatie → Consumer +- **files**: `procest/lib/Repair/LoadDefaultZgwMappings.php` +- **acceptance_criteria**: + - GIVEN the repair step WHEN executed THEN zgw_mapping_applicatie is stored in IAppConfig + - GIVEN the mapping WHEN Applicatie JSON is received THEN it maps to Consumer fields in OpenRegister + - GIVEN the mapping WHEN Consumer is read THEN it maps back to ZGW Applicatie format +- [x] Implement +- [x] Test + +## 2. Controller & Routes + +### Task 2.1: Extend ZgwController RESOURCE_MAP with AC resources +- **files**: `procest/lib/Controller/ZgwController.php` +- **acceptance_criteria**: + - GIVEN the RESOURCE_MAP WHEN 'applicaties' is requested THEN it maps to the correct config key +- [x] Implement +- [x] Test + +### Task 2.2: Register AC routes +- **files**: `procest/appinfo/routes.php` +- **acceptance_criteria**: + - GIVEN routes.php WHEN the app loads THEN all `/api/zgw/autorisaties/v1/{resource}` CRUD routes are registered +- [x] Implement +- [x] Test + +## 3. Auth Middleware + +### Task 3.1: Create ZgwAuthMiddleware +- **files**: `procest/lib/Middleware/ZgwAuthMiddleware.php` +- **acceptance_criteria**: + - GIVEN a request with valid JWT WHEN ZGW endpoint is called THEN the request is authorized and user session is set + - GIVEN a request with invalid JWT WHEN ZGW endpoint is called THEN 403 response is returned + - GIVEN a request with expired JWT WHEN ZGW endpoint is called THEN 403 response is returned + - GIVEN a request without Authorization header WHEN ZGW endpoint is called THEN 403 response is returned + - GIVEN the AC endpoints themselves WHEN called THEN they require admin-level JWT or basic auth +- [x] Implement +- [x] Test + +### Task 3.2: Implement scope enforcement +- **files**: `procest/lib/Middleware/ZgwAuthMiddleware.php` +- **acceptance_criteria**: + - GIVEN an applicatie with zrc.lezen scope WHEN GET /zaken is called THEN request is allowed + - GIVEN an applicatie with zrc.lezen scope WHEN POST /zaken is called THEN 403 is returned + - GIVEN an applicatie with heeftAlleAutorisaties=true WHEN any endpoint is called THEN request is allowed + - GIVEN a scope limited to a specific zaaktype WHEN different zaaktype is accessed THEN 403 is returned + - GIVEN a maxVertrouwelijkheidaanduiding WHEN accessing documents above that level THEN 403 is returned +- [x] Implement +- [x] Test + +### Task 3.3: Register middleware +- **files**: `procest/lib/AppInfo/Application.php` +- **acceptance_criteria**: + - GIVEN the app boots WHEN ZGW routes are accessed THEN ZgwAuthMiddleware is invoked before the controller +- [x] Implement +- [x] Test + +## 4. Default Test Applicaties + +### Task 4.1: Create default applicaties via repair step +- **files**: `procest/lib/Repair/LoadDefaultZgwMappings.php` +- **acceptance_criteria**: + - GIVEN the repair step WHEN executed THEN a superuser applicatie 'procest-admin' is created in OpenRegister + - GIVEN the repair step WHEN executed THEN a limited applicatie 'procest-limited' is created with restricted scopes + - GIVEN both applicaties WHEN JWT tokens are generated with their client_id and secret THEN they validate correctly +- [x] Implement +- [x] Test diff --git a/openspec/changes/archive/2026-03-15-zgw-documenten-api/.openspec.yaml b/openspec/changes/archive/2026-03-15-zgw-documenten-api/.openspec.yaml new file mode 100644 index 0000000..4c35d89 --- /dev/null +++ b/openspec/changes/archive/2026-03-15-zgw-documenten-api/.openspec.yaml @@ -0,0 +1,2 @@ +schema: conduction +created: 2026-03-07 diff --git a/openspec/changes/archive/2026-03-15-zgw-documenten-api/design.md b/openspec/changes/archive/2026-03-15-zgw-documenten-api/design.md new file mode 100644 index 0000000..276e602 --- /dev/null +++ b/openspec/changes/archive/2026-03-15-zgw-documenten-api/design.md @@ -0,0 +1,93 @@ +# Design: zgw-documenten-api + +## Architecture Overview + +DRC endpoints follow the same pattern as existing ZRC/ZTC/BRC: the `ZgwController` routes requests through `ZgwMappingService` to OpenRegister's ObjectService. Binary file content is stored in Nextcloud Files and linked to the OpenRegister metadata object. + +``` +Client Procest OpenRegister / Nextcloud + | | | + |-- POST /documenten/v1/ | | + | enkelvoudiginformatie- |-> ZgwController::create() | + | objecten (multipart) | |-> ZgwMappingService::map() | + | | |-> ObjectService::saveObject() --> metadata + | | |-> IRootFolder::newFile() --> binary content + | | |-> link file path to object | + |<-- 201 + EIO JSON --------| | +``` + +## Resource Schemas (OpenRegister) + +### EnkelvoudigInformatieObject +| Field | Type | ZGW Name | Description | +|-------|------|----------|-------------| +| identificatie | string | identificatie | Unique identifier | +| bronorganisatie | string | bronorganisatie | RSIN of source org | +| creatiedatum | date | creatiedatum | Creation date | +| titel | string | titel | Document title | +| vertrouwelijkheidaanduiding | string | vertrouwelijkheidaanduiding | Confidentiality level | +| auteur | string | auteur | Author | +| status | string | status | 'in_bewerking', 'ter_vaststelling', 'definitief', 'gearchiveerd' | +| formaat | string | formaat | MIME type | +| taal | string | taal | ISO 639-2/B language code | +| bestandsnaam | string | bestandsnaam | Filename | +| bestandsomvang | integer | bestandsomvang | File size in bytes | +| inhoud | string | inhoud | Base64 content or file reference | +| link | string | link | URL to external content | +| beschrijving | string | beschrijving | Description | +| informatieobjecttype | uri | informatieobjecttype | Reference to InformatieObjectType | +| locked | boolean | locked | Lock status | +| bestandsdelen | array | bestandsdelen | Chunked upload parts | + +### ObjectInformatieObject +| Field | Type | ZGW Name | Description | +|-------|------|----------|-------------| +| informatieobject | uri | informatieobject | Reference to EIO | +| object | uri | object | Reference to Zaak/Besluit | +| objectType | string | objectType | 'zaak' or 'besluit' | + +### GebruiksRechten +| Field | Type | ZGW Name | Description | +|-------|------|----------|-------------| +| informatieobject | uri | informatieobject | Reference to EIO | +| startdatum | datetime | startdatum | Start of rights | +| einddatum | datetime | einddatum | End of rights | +| omschrijvingVoorwaarden | string | omschrijvingVoorwaarden | Conditions description | + +## File Storage Strategy + +Documents are stored in Nextcloud's file system under a dedicated folder: +``` +/appdata_/procest/documenten// +``` + +- Upload: Base64 content in JSON body or multipart form upload +- Download: `GET .../enkelvoudiginformatieobjecten/{uuid}/download` streams the file +- Chunked upload: Bestandsdelen are temporary files merged on completion +- Locking: `lock`/`unlock` endpoints set the `locked` field and prevent modifications + +## Routes + +All follow the existing pattern in `routes.php`: +```php +// Documenten API (DRC) +['name' => 'zgw#index', 'url' => '/api/zgw/documenten/v1/{resource}', 'verb' => 'GET'], +['name' => 'zgw#create', 'url' => '/api/zgw/documenten/v1/{resource}', 'verb' => 'POST'], +['name' => 'zgw#show', 'url' => '/api/zgw/documenten/v1/{resource}/{uuid}', 'verb' => 'GET'], +['name' => 'zgw#update', 'url' => '/api/zgw/documenten/v1/{resource}/{uuid}', 'verb' => 'PUT'], +['name' => 'zgw#patch', 'url' => '/api/zgw/documenten/v1/{resource}/{uuid}', 'verb' => 'PATCH'], +['name' => 'zgw#destroy', 'url' => '/api/zgw/documenten/v1/{resource}/{uuid}', 'verb' => 'DELETE'], +// Special endpoints +['name' => 'zgw#download', 'url' => '/api/zgw/documenten/v1/enkelvoudiginformatieobjecten/{uuid}/download', 'verb' => 'GET'], +['name' => 'zgw#lock', 'url' => '/api/zgw/documenten/v1/enkelvoudiginformatieobjecten/{uuid}/lock', 'verb' => 'POST'], +['name' => 'zgw#unlock', 'url' => '/api/zgw/documenten/v1/enkelvoudiginformatieobjecten/{uuid}/unlock', 'verb' => 'POST'], +``` + +## Mapping Configuration + +Add to `RESOURCE_MAP` in ZgwController: +```php +'enkelvoudiginformatieobjecten' => 'zgw_mapping_enkelvoudiginformatieobject', +'objectinformatieobjecten' => 'zgw_mapping_objectinformatieobject', +'gebruiksrechten' => 'zgw_mapping_gebruiksrechten', +``` diff --git a/openspec/changes/archive/2026-03-15-zgw-documenten-api/proposal.md b/openspec/changes/archive/2026-03-15-zgw-documenten-api/proposal.md new file mode 100644 index 0000000..0dac4c4 --- /dev/null +++ b/openspec/changes/archive/2026-03-15-zgw-documenten-api/proposal.md @@ -0,0 +1,54 @@ +# Proposal: zgw-documenten-api + +## Summary +Add full ZGW Documenten API (DRC) support to Procest, enabling document management with binary file upload/download through the standard ZGW API interface. Documents are stored as OpenRegister objects with file content managed via Nextcloud's file system. + +## Motivation +The ZGW Documenten API is a core component of the Dutch government's "Zaakgericht Werken" standard. Cases (zaken) need attached documents — permits, correspondence, decisions. Without DRC support, Procest cannot pass the VNG ZGW compliance tests and cannot interoperate with other ZGW-compliant systems that expect document exchange. + +The existing Postman test suites (`ZGW OAS tests` and `ZGW business rules`) already test DRC endpoints, so this implementation enables full test coverage. + +## Affected Projects +- [x] Project: `procest` — New ZGW DRC endpoints via ZgwController +- [ ] Reference: `openregister` — Uses ObjectService for document metadata storage + +## Scope +### In Scope +- **EnkelvoudigInformatieObject (EIO)** — Document metadata + binary content + - `GET/POST /api/zgw/documenten/v1/enkelvoudiginformatieobjecten` + - `GET/PUT/PATCH/DELETE /api/zgw/documenten/v1/enkelvoudiginformatieobjecten/{uuid}` + - `GET /api/zgw/documenten/v1/enkelvoudiginformatieobjecten/{uuid}/download` — Binary download + - `POST /api/zgw/documenten/v1/enkelvoudiginformatieobjecten/{uuid}/lock` — Document locking + - `POST /api/zgw/documenten/v1/enkelvoudiginformatieobjecten/{uuid}/unlock` — Document unlocking +- **ObjectInformatieObject (OIO)** — Links between documents and cases/decisions + - `GET/POST /api/zgw/documenten/v1/objectinformatieobjecten` + - `GET/DELETE /api/zgw/documenten/v1/objectinformatieobjecten/{uuid}` +- **GebruiksRechten** — Usage rights on documents + - `GET/POST /api/zgw/documenten/v1/gebruiksrechten` + - `GET/PUT/PATCH/DELETE /api/zgw/documenten/v1/gebruiksrechten/{uuid}` +- **Bestandsdelen** — Chunked file upload for large files + - `PUT /api/zgw/documenten/v1/bestandsdelen/{uuid}` +- **ZGW pagination format**: `{ count, next, previous, results }` +- **ZGW filtering**: Query parameters as defined in the OAS spec +- **Binary file storage**: Files stored in Nextcloud via IRootFolder, metadata in OpenRegister + +### Out of Scope +- Audit trail API (audittrail resource) — separate concern +- Document versioning history UI +- Full-text search within document content + +## Approach +1. Create OpenRegister schemas for EIO, OIO, GebruiksRechten in `procest_register.json` +2. Create ZGW mapping configurations for each resource (`zgw_mapping_enkelvoudiginformatieobject`, etc.) +3. Extend `ZgwController` to handle the `documenten` API group +4. Add binary file handling: multipart upload → Nextcloud Files + metadata in OpenRegister +5. Implement document locking via a `lock` field on EIO objects +6. Add bestandsdelen support for chunked uploads +7. Register routes in `routes.php` + +## Cross-Project Dependencies +- Depends on existing ZGW mapping infrastructure in Procest (ZgwController, ZgwMappingService) +- Document-case links (OIO) reference Zaken API resources (already implemented) + +## Rollback Strategy +Remove DRC routes, mapping configs, and schemas. No changes to existing ZRC/ZTC/BRC functionality. diff --git a/openspec/changes/archive/2026-03-15-zgw-documenten-api/specs/zgw-documenten/spec.md b/openspec/changes/archive/2026-03-15-zgw-documenten-api/specs/zgw-documenten/spec.md new file mode 100644 index 0000000..12bee2e --- /dev/null +++ b/openspec/changes/archive/2026-03-15-zgw-documenten-api/specs/zgw-documenten/spec.md @@ -0,0 +1,48 @@ +# Spec: ZGW Documenten API (DRC) + +## ZGW Standard References + +### Official Documentation +- **Standard overview**: https://vng-realisatie.github.io/gemma-zaken/standaard/documenten/ +- **Developer guide**: https://vng-realisatie.github.io/gemma-zaken/ontwikkelaars/ + +### OpenAPI Specifications +- **Current OAS (gemma-zaken canonical)**: [api-specificatie/drc/current_version/openapi.yaml](https://github.com/VNG-Realisatie/gemma-zaken/blob/master/api-specificatie/drc/current_version/openapi.yaml) + - Raw: https://raw.githubusercontent.com/VNG-Realisatie/gemma-zaken/master/api-specificatie/drc/current_version/openapi.yaml +- **Reference implementation OAS**: [src/openapi.yaml](https://github.com/VNG-Realisatie/documenten-api/blob/master/src/openapi.yaml) + - Raw: https://raw.githubusercontent.com/VNG-Realisatie/documenten-api/master/src/openapi.yaml + +### Source Documentation (Markdown) +- **Standard page**: [docs/standaard/documenten/index.md](https://github.com/VNG-Realisatie/gemma-zaken/blob/master/docs/standaard/documenten/index.md) +- **Release notes**: [docs/standaard/documenten/release_notes.md](https://github.com/VNG-Realisatie/gemma-zaken/blob/master/docs/standaard/documenten/release_notes.md) +- **Authorization spec**: [src/autorisaties.md](https://github.com/VNG-Realisatie/documenten-api/blob/master/src/autorisaties.md) +- **Notification spec**: [src/notificaties.md](https://github.com/VNG-Realisatie/documenten-api/blob/master/src/notificaties.md) + +### Versioned Specs +- 1.0.x: `api-specificatie/drc/1.0.x/` +- 1.1.x through 1.5.x available in `api-specificatie/drc/` + +## Requirements + +### Requirement: DRC Resource Coverage +The implementation MUST support these resources as defined in the OAS: +- **EnkelvoudigInformatieObject** — Document metadata + binary content +- **ObjectInformatieObject** — Links between documents and zaak/besluit objects +- **GebruiksRechten** — Usage rights on documents + +### Requirement: Binary Content Handling +- Upload via base64 `inhoud` field in JSON body +- Upload via multipart form data +- Download via `GET .../enkelvoudiginformatieobjecten/{uuid}/download` +- Chunked upload via bestandsdelen for large files + +### Requirement: Document Locking +- `POST .../lock` acquires a lock, returns lock ID +- `POST .../unlock` releases the lock +- Modifications to locked documents require the lock ID + +### Requirement: ZGW Pagination +All list endpoints MUST return `{ count, next, previous, results }` format. + +### Requirement: ZGW Filtering +Support query parameter filtering as defined in the OAS (e.g., `?informatieobjecttype=...`, `?bronorganisatie=...`). diff --git a/openspec/changes/archive/2026-03-15-zgw-documenten-api/tasks.md b/openspec/changes/archive/2026-03-15-zgw-documenten-api/tasks.md new file mode 100644 index 0000000..1e4adfb --- /dev/null +++ b/openspec/changes/archive/2026-03-15-zgw-documenten-api/tasks.md @@ -0,0 +1,89 @@ +# Tasks: zgw-documenten-api + +## 1. Schema & Mapping Configuration + +### Task 1.1: Add DRC schemas to procest_register.json +- **files**: `procest/lib/Settings/procest_register.json` +- **acceptance_criteria**: + - GIVEN the register config WHEN imported THEN schemas for EnkelvoudigInformatieObject, ObjectInformatieObject, and GebruiksRechten are created + - GIVEN each schema WHEN validated THEN all ZGW-required fields are present with correct types +- [x] Implement +- [x] Test + +### Task 1.2: Create ZGW mapping configurations for DRC resources +- **files**: `procest/lib/Repair/LoadDefaultZgwMappings.php` +- **acceptance_criteria**: + - GIVEN the repair step WHEN executed THEN zgw_mapping_enkelvoudiginformatieobject is stored in IAppConfig + - GIVEN the repair step WHEN executed THEN zgw_mapping_objectinformatieobject is stored in IAppConfig + - GIVEN the repair step WHEN executed THEN zgw_mapping_gebruiksrechten is stored in IAppConfig + - GIVEN each mapping WHEN used by ZgwMappingService THEN Dutch ZGW fields map correctly to English schema fields +- [x] Implement +- [x] Test + +## 2. Controller & Routes + +### Task 2.1: Extend ZgwController RESOURCE_MAP with DRC resources +- **files**: `procest/lib/Controller/ZgwController.php` +- **acceptance_criteria**: + - GIVEN the RESOURCE_MAP WHEN 'enkelvoudiginformatieobjecten' is requested THEN it maps to the correct config key + - GIVEN the RESOURCE_MAP WHEN 'objectinformatieobjecten' is requested THEN it maps to the correct config key + - GIVEN the RESOURCE_MAP WHEN 'gebruiksrechten' is requested THEN it maps to the correct config key +- [x] Implement +- [x] Test + +### Task 2.2: Register DRC routes +- **files**: `procest/appinfo/routes.php` +- **acceptance_criteria**: + - GIVEN routes.php WHEN the app loads THEN all `/api/zgw/documenten/v1/{resource}` CRUD routes are registered + - GIVEN routes.php WHEN the app loads THEN `/download`, `/lock`, `/unlock` special routes are registered +- [x] Implement +- [x] Test + +## 3. File Handling + +### Task 3.1: Implement binary file upload for EIO creation +- **files**: `procest/lib/Controller/ZgwController.php` or `procest/lib/Service/ZgwDocumentService.php` +- **acceptance_criteria**: + - GIVEN a POST with base64 'inhoud' field WHEN creating an EIO THEN the file is decoded and stored in Nextcloud Files + - GIVEN a POST with multipart file upload WHEN creating an EIO THEN the file is stored in Nextcloud Files + - GIVEN a stored file WHEN the EIO is retrieved THEN the 'inhoud' field contains a download URL + - GIVEN a stored file WHEN bestandsomvang is not provided THEN it is calculated from the file size +- [x] Implement +- [x] Test + +### Task 3.2: Implement binary file download +- **files**: `procest/lib/Controller/ZgwController.php` +- **acceptance_criteria**: + - GIVEN an EIO with stored file WHEN GET .../download is called THEN the binary file is streamed with correct Content-Type + - GIVEN an EIO without file WHEN GET .../download is called THEN 404 is returned +- [x] Implement +- [x] Test + +### Task 3.3: Implement document locking +- **files**: `procest/lib/Controller/ZgwController.php` +- **acceptance_criteria**: + - GIVEN an unlocked EIO WHEN POST .../lock is called THEN the document is locked and lock ID is returned + - GIVEN a locked EIO WHEN PUT/PATCH is called without matching lock THEN 400 is returned + - GIVEN a locked EIO WHEN POST .../unlock is called with correct lock THEN the document is unlocked +- [x] Implement +- [x] Test + +### Task 3.4: Implement bestandsdelen (chunked upload) +- **files**: `procest/lib/Controller/ZgwController.php`, `procest/lib/Service/ZgwDocumentService.php` +- **acceptance_criteria**: + - GIVEN a POST creating EIO with bestandsomvang but no inhoud WHEN created THEN bestandsdelen URLs are returned + - GIVEN bestandsdelen URLs WHEN PUT with binary chunks THEN chunks are stored temporarily + - GIVEN all chunks uploaded WHEN the last chunk completes THEN chunks are merged into the final file +- [x] Implement +- [x] Test + +## 4. ObjectInformatieObject Links + +### Task 4.1: Implement OIO resource linking +- **files**: `procest/lib/Controller/ZgwController.php` +- **acceptance_criteria**: + - GIVEN a zaak and an EIO WHEN POST objectinformatieobjecten THEN the link is created + - GIVEN an OIO link WHEN GET objectinformatieobjecten?object={zaakUrl} THEN linked documents are returned + - GIVEN an OIO link WHEN DELETE is called THEN the link is removed (document is NOT deleted) +- [x] Implement +- [x] Test diff --git a/openspec/changes/archive/2026-03-15-zgw-newman-test-suite/.openspec.yaml b/openspec/changes/archive/2026-03-15-zgw-newman-test-suite/.openspec.yaml new file mode 100644 index 0000000..4c35d89 --- /dev/null +++ b/openspec/changes/archive/2026-03-15-zgw-newman-test-suite/.openspec.yaml @@ -0,0 +1,2 @@ +schema: conduction +created: 2026-03-07 diff --git a/openspec/changes/archive/2026-03-15-zgw-newman-test-suite/design.md b/openspec/changes/archive/2026-03-15-zgw-newman-test-suite/design.md new file mode 100644 index 0000000..e4c5e98 --- /dev/null +++ b/openspec/changes/archive/2026-03-15-zgw-newman-test-suite/design.md @@ -0,0 +1,88 @@ +# Design: zgw-newman-test-suite + +## Architecture Overview + +Newman runs the VNG Postman collections against Procest's ZGW endpoints. The test infrastructure lives in `procest/tests/zgw/` and can run both on the host (delegating to the Docker container) and inside the container directly. + +``` +Host Docker Container (nextcloud) + | | + |-- run-zgw-tests.sh -------->| newman run "ZGW OAS tests.postman_collection.json" + | | --environment zgw-environment.json + | | --reporters cli,json + | | + | (if OAS tests pass) | + | | newman run "ZGW business rules.postman_collection.json" + | | --environment zgw-environment.json + | | --reporters cli,json + | | + |<-- exit code + reports ------| +``` + +## File Structure + +``` +procest/tests/zgw/ + package.json # Newman dependency + zgw-environment.json # Postman environment with URL mappings + run-zgw-tests.sh # Main test runner script + README.md # Usage instructions +``` + +## Environment File (`zgw-environment.json`) + +Maps the standard ZGW API URL variables to Procest's endpoints: + +```json +{ + "id": "procest-zgw-local", + "name": "Procest ZGW Local", + "values": [ + { "key": "zrc_url", "value": "http://localhost/index.php/apps/procest/api/zgw/zaken/v1" }, + { "key": "ztc_url", "value": "http://localhost/index.php/apps/procest/api/zgw/catalogi/v1" }, + { "key": "brc_url", "value": "http://localhost/index.php/apps/procest/api/zgw/besluiten/v1" }, + { "key": "drc_url", "value": "http://localhost/index.php/apps/procest/api/zgw/documenten/v1" }, + { "key": "nrc_url", "value": "http://localhost/index.php/apps/procest/api/zgw/notificaties/v1" }, + { "key": "ac_url", "value": "http://localhost/index.php/apps/procest/api/zgw/autorisaties/v1" }, + { "key": "baseUrl", "value": "http://localhost/index.php/apps/procest/api/zgw" }, + { "key": "client_id", "value": "procest-admin" }, + { "key": "secret", "value": "procest-admin-secret" }, + { "key": "client_id_limited", "value": "procest-limited" }, + { "key": "secret_limited", "value": "procest-limited-secret" }, + { "key": "tokenuser", "value": "admin" } + ] +} +``` + +## Test Runner Script + +`run-zgw-tests.sh` follows the OpenRegister pattern: +1. Detect environment (host vs container) +2. Verify Newman is installed +3. Run OAS tests collection with `--environment zgw-environment.json` +4. If OAS tests pass, run business rules collection +5. Output summary with color-coded pass/fail +6. Save JSON reports to `procest/tests/zgw/results/` + +### CLI options: +- `--oas-only` — Run only OAS tests +- `--business-only` — Run only business rules +- `--folder ` — Run specific folder (e.g., `--folder zrc` to test only Zaken API) +- `--bail` — Stop on first failure + +## npm Scripts + +Add to `procest/package.json`: +```json +"test:zgw": "cd tests/zgw && bash run-zgw-tests.sh", +"test:zgw:oas": "cd tests/zgw && bash run-zgw-tests.sh --oas-only", +"test:zgw:business": "cd tests/zgw && bash run-zgw-tests.sh --business-only" +``` + +## Prerequisites + +Before tests can run: +1. All ZGW APIs implemented (ZRC, ZTC, BRC, DRC, NRC, AC) +2. OpenRegister auth system with Consumer entity +3. Default test applicaties created (procest-admin + procest-limited) +4. Newman installed: `npm install -g newman` (in container) diff --git a/openspec/changes/archive/2026-03-15-zgw-newman-test-suite/proposal.md b/openspec/changes/archive/2026-03-15-zgw-newman-test-suite/proposal.md new file mode 100644 index 0000000..301520f --- /dev/null +++ b/openspec/changes/archive/2026-03-15-zgw-newman-test-suite/proposal.md @@ -0,0 +1,58 @@ +# Proposal: zgw-newman-test-suite + +## Summary +Set up a Newman-based testing infrastructure for Procest's ZGW API implementation. Uses the existing VNG Postman test collections (`ZGW OAS tests` and `ZGW business rules`) to validate compliance with the ZGW API standards. + +## Motivation +We have two Postman collection exports in `procest/data/` that comprehensively test ZGW API compliance: +- **ZGW OAS tests** (67 environment variables, tests all 6 ZGW APIs against their OAS specs) +- **ZGW business rules** (120 environment variables, tests business logic and edge cases) + +Newman can run these Postman collections directly from the command line, enabling: +- Automated CI testing of ZGW compliance +- Quick local validation during development +- Regression testing as we add new ZGW APIs + +## Affected Projects +- [x] Project: `procest` — Test infrastructure in `tests/zgw/` + +## Scope +### In Scope +- **Newman package setup**: `procest/tests/zgw/package.json` with newman dependency +- **Environment file**: `procest/tests/zgw/zgw-environment.json` mapping ZGW API URLs to Procest endpoints +- **Test runner script**: `procest/tests/zgw/run-zgw-tests.sh` — runs both collections sequentially (OAS first, then business rules) +- **npm scripts**: Add `test:zgw`, `test:zgw:oas`, `test:zgw:business` to root `package.json` +- **Docker support**: Run inside Nextcloud container (same pattern as OpenRegister's Newman setup) +- **Environment variable mapping**: + - `zrc_url` → `http://localhost/index.php/apps/procest/api/zgw/zaken/v1` + - `ztc_url` → `http://localhost/index.php/apps/procest/api/zgw/catalogi/v1` + - `brc_url` → `http://localhost/index.php/apps/procest/api/zgw/besluiten/v1` + - `drc_url` → `http://localhost/index.php/apps/procest/api/zgw/documenten/v1` + - `nrc_url` → `http://localhost/index.php/apps/procest/api/zgw/notificaties/v1` + - `ac_url` → `http://localhost/index.php/apps/procest/api/zgw/autorisaties/v1` + - `client_id`, `secret` → Test credentials for JWT generation +- **CLI reporter + JSON output** for CI integration + +### Out of Scope +- Modifying the Postman collections themselves (they are VNG reference tests) +- Browser-based testing (that's the `test-app` skill) +- Performance/load testing + +## Approach +1. Create `procest/tests/zgw/package.json` with newman ^6 dependency +2. Create `procest/tests/zgw/zgw-environment.json` with all required environment variables +3. Create `procest/tests/zgw/run-zgw-tests.sh` that: + - Detects if running inside container or on host + - Installs newman if needed + - Runs OAS tests collection first + - If OAS tests pass, runs business rules collection + - Outputs summary with pass/fail counts +4. Add convenience scripts to `procest/package.json` + +## Cross-Project Dependencies +- Requires all ZGW APIs to be implemented: ZRC, ZTC, BRC (existing) + DRC, NRC, AC (new changes) +- Requires OpenRegister auth system for JWT credential setup +- Newman must be installed in the Nextcloud container (`npm install -g newman`) + +## Rollback Strategy +Remove `procest/tests/zgw/` directory and npm scripts from `package.json`. No production code changes. diff --git a/openspec/changes/archive/2026-03-15-zgw-newman-test-suite/specs/zgw-newman/spec.md b/openspec/changes/archive/2026-03-15-zgw-newman-test-suite/specs/zgw-newman/spec.md new file mode 100644 index 0000000..a7d53c9 --- /dev/null +++ b/openspec/changes/archive/2026-03-15-zgw-newman-test-suite/specs/zgw-newman/spec.md @@ -0,0 +1,51 @@ +# Spec: ZGW Newman Test Suite + +## ZGW Standard References + +### All ZGW API Specifications (tested by the suite) +| Component | OAS Source | Raw URL | +|-----------|-----------|---------| +| ZRC (Zaken) | [zrc/current_version/openapi.yaml](https://github.com/VNG-Realisatie/gemma-zaken/blob/master/api-specificatie/zrc/current_version/openapi.yaml) | https://raw.githubusercontent.com/VNG-Realisatie/gemma-zaken/master/api-specificatie/zrc/current_version/openapi.yaml | +| ZTC (Catalogi) | [ztc/current_version/openapi.yaml](https://github.com/VNG-Realisatie/gemma-zaken/blob/master/api-specificatie/ztc/current_version/openapi.yaml) | https://raw.githubusercontent.com/VNG-Realisatie/gemma-zaken/master/api-specificatie/ztc/current_version/openapi.yaml | +| BRC (Besluiten) | [brc/current_version/openapi.yaml](https://github.com/VNG-Realisatie/gemma-zaken/blob/master/api-specificatie/brc/current_version/openapi.yaml) | https://raw.githubusercontent.com/VNG-Realisatie/gemma-zaken/master/api-specificatie/brc/current_version/openapi.yaml | +| DRC (Documenten) | [drc/current_version/openapi.yaml](https://github.com/VNG-Realisatie/gemma-zaken/blob/master/api-specificatie/drc/current_version/openapi.yaml) | https://raw.githubusercontent.com/VNG-Realisatie/gemma-zaken/master/api-specificatie/drc/current_version/openapi.yaml | +| NRC (Notificaties) | [nrc/openapi.yaml](https://github.com/VNG-Realisatie/gemma-zaken/blob/master/api-specificatie/nrc/openapi.yaml) | https://raw.githubusercontent.com/VNG-Realisatie/gemma-zaken/master/api-specificatie/nrc/openapi.yaml | +| AC (Autorisaties) | [ac/openapi.yaml](https://github.com/VNG-Realisatie/gemma-zaken/blob/master/api-specificatie/ac/openapi.yaml) | https://raw.githubusercontent.com/VNG-Realisatie/gemma-zaken/master/api-specificatie/ac/openapi.yaml | + +### Official Documentation +- **Standard overview**: https://vng-realisatie.github.io/gemma-zaken/standaard/ +- **Developer guide**: https://vng-realisatie.github.io/gemma-zaken/ontwikkelaars/ +- **Source repo**: https://github.com/VNG-Realisatie/gemma-zaken + +### Reference Implementation Repos +- Zaken: https://github.com/VNG-Realisatie/zaken-api +- Documenten: https://github.com/VNG-Realisatie/documenten-api +- Catalogi: https://github.com/VNG-Realisatie/catalogi-api +- Besluiten: https://github.com/VNG-Realisatie/besluiten-api +- Notificaties: https://github.com/VNG-Realisatie/notificaties-api +- Autorisaties: https://github.com/VNG-Realisatie/autorisaties-api + +## Requirements + +### Requirement: Test Collection Compatibility +Newman MUST run the existing Postman collections from `procest/data/` without modification: +- `ZGW OAS tests.postman_collection.json` +- `ZGW business rules.postman_collection.json` + +### Requirement: Environment Variable Coverage +The environment file MUST provide all variables referenced by both collections (67 for OAS, 120 for business rules). Dynamic variables set by pre-request scripts (e.g., `created_zaak_url`) are handled by the collections themselves. + +### Requirement: Sequential Execution +OAS tests MUST run before business rules tests. Business rules depend on the data model being OAS-compliant. + +### Requirement: Selective Execution +Support running: +- All tests (default) +- OAS tests only (`--oas-only`) +- Business rules only (`--business-only`) +- Specific API component (`--folder zrc`) + +### Requirement: Docker Compatibility +The test runner MUST work both: +- On the host (delegating execution to the Docker container) +- Inside the container (running Newman directly) diff --git a/openspec/changes/archive/2026-03-15-zgw-newman-test-suite/tasks.md b/openspec/changes/archive/2026-03-15-zgw-newman-test-suite/tasks.md new file mode 100644 index 0000000..eaf1493 --- /dev/null +++ b/openspec/changes/archive/2026-03-15-zgw-newman-test-suite/tasks.md @@ -0,0 +1,55 @@ +# Tasks: zgw-newman-test-suite + +## 1. Test Infrastructure + +### Task 1.1: Create Newman package.json +- **files**: `procest/tests/zgw/package.json` +- **acceptance_criteria**: + - GIVEN the package.json WHEN npm install is run THEN newman ^6 is installed + - GIVEN the package WHEN scripts are listed THEN test, test:oas, test:business are available +- [x] Implement +- [x] Test + +### Task 1.2: Create ZGW environment file +- **files**: `procest/tests/zgw/zgw-environment.json` +- **acceptance_criteria**: + - GIVEN the environment file WHEN loaded by Newman THEN all ZGW API URLs point to Procest endpoints + - GIVEN the environment file WHEN loaded by Newman THEN client_id, secret, and auth variables are set + - GIVEN the environment file WHEN loaded by Newman THEN all 6 API component URLs are mapped (zrc, ztc, brc, drc, nrc, ac) +- [x] Implement +- [x] Test + +### Task 1.3: Create test runner script +- **files**: `procest/tests/zgw/run-zgw-tests.sh` +- **acceptance_criteria**: + - GIVEN the script runs on host WHEN executed THEN it delegates to Docker container + - GIVEN the script runs inside container WHEN executed THEN it runs Newman directly + - GIVEN Newman is not installed WHEN script runs THEN helpful error message is shown + - GIVEN --oas-only flag WHEN script runs THEN only OAS tests run + - GIVEN --business-only flag WHEN script runs THEN only business rules tests run + - GIVEN --folder zrc flag WHEN script runs THEN only Zaken API tests run + - GIVEN OAS tests pass WHEN script continues THEN business rules tests are run next + - GIVEN OAS tests fail WHEN --bail is set THEN business rules tests are skipped + - GIVEN tests complete WHEN results are output THEN JSON reports are saved to results/ +- [x] Implement +- [x] Test + +## 2. Integration + +### Task 2.1: Add npm scripts to root package.json +- **files**: `procest/package.json` +- **acceptance_criteria**: + - GIVEN package.json WHEN npm run test:zgw is called THEN the test runner script executes + - GIVEN package.json WHEN npm run test:zgw:oas is called THEN only OAS tests run + - GIVEN package.json WHEN npm run test:zgw:business is called THEN only business rules tests run +- [x] Implement +- [x] Test + +### Task 2.2: Create README with usage instructions +- **files**: `procest/tests/zgw/README.md` +- **acceptance_criteria**: + - GIVEN the README WHEN read THEN it explains prerequisites (Newman, running environment, test applicaties) + - GIVEN the README WHEN read THEN it documents all CLI options + - GIVEN the README WHEN read THEN it explains how to interpret test results +- [x] Implement +- [x] Test diff --git a/openspec/changes/archive/2026-03-15-zgw-notificaties-api/.openspec.yaml b/openspec/changes/archive/2026-03-15-zgw-notificaties-api/.openspec.yaml new file mode 100644 index 0000000..4c35d89 --- /dev/null +++ b/openspec/changes/archive/2026-03-15-zgw-notificaties-api/.openspec.yaml @@ -0,0 +1,2 @@ +schema: conduction +created: 2026-03-07 diff --git a/openspec/changes/archive/2026-03-15-zgw-notificaties-api/design.md b/openspec/changes/archive/2026-03-15-zgw-notificaties-api/design.md new file mode 100644 index 0000000..eaaa562 --- /dev/null +++ b/openspec/changes/archive/2026-03-15-zgw-notificaties-api/design.md @@ -0,0 +1,100 @@ +# Design: zgw-notificaties-api + +## Architecture Overview + +The NRC provides a pub/sub mechanism for ZGW events. Channels (kanalen) represent resource types, subscriptions (abonnementen) register callback URLs, and notifications are delivered via HTTP POST when resources change. + +``` +ZGW Client Procest NRC Subscriber + | | | + |-- POST /abonnement ------->| (register callback URL) | + |<-- 201 + subscription -----| | + | | | + |-- POST /zaken/v1/zaken --> | ZgwController::create() | + | (creates a zaak) | |-> NotificatieService | + |<-- 201 + zaak ----------- | | ::publish('zaken', ...) | + | | | |-> POST callback ---->| + | | | |<-- 200 -------------| +``` + +## Resource Schemas (OpenRegister) + +### Kanaal +| Field | Type | ZGW Name | Description | +|-------|------|----------|-------------| +| naam | string | naam | Channel name (e.g., 'zaken', 'documenten') | +| documentatieLink | uri | documentatieLink | URL to API docs | +| filters | array | filters | Available filter attributes | + +### Abonnement +| Field | Type | ZGW Name | Description | +|-------|------|----------|-------------| +| callbackUrl | uri | callbackUrl | URL to POST notifications to | +| auth | string | auth | Authorization header value for callbacks | +| kanalen | array | kanalen | Array of { naam, filters } | + +## NotificatieService + +New service class: `procest/lib/Service/NotificatieService.php` + +```php +class NotificatieService { + // Publish a notification for a ZGW resource change + public function publish(string $kanaal, string $hoofdObject, string $resource, + string $resourceUrl, string $actie, array $kenmerken = []): void; + + // Find matching subscriptions and deliver callbacks + private function deliver(array $notification): void; +} +``` + +**Notification payload format:** +```json +{ + "kanaal": "zaken", + "hoofdObject": "https://host/api/zgw/zaken/v1/zaken/{uuid}", + "resource": "zaak", + "resourceUrl": "https://host/api/zgw/zaken/v1/zaken/{uuid}", + "actie": "create", + "aanmaakdatum": "2026-03-07T10:00:00Z", + "kenmerken": { + "bronorganisatie": "123456789", + "zaaktype": "https://host/api/zgw/catalogi/v1/zaaktypen/{uuid}" + } +} +``` + +## Integration with Existing ZGW Flows + +Hook into `ZgwController` create/update/delete methods: +```php +// After successful create/update/delete in ZgwController: +$this->notificatieService->publish( + kanaal: $zgwApi, // 'zaken', 'documenten', 'besluiten' + hoofdObject: $objectUrl, + resource: $resource, // 'zaak', 'status', 'besluit', etc. + resourceUrl: $resourceUrl, + actie: $actie // 'create', 'update', 'destroy' +); +``` + +## Default Channels + +Pre-register channels via repair step: +- `zaken` — filters: bronorganisatie, zaaktype, vertrouwelijkheidaanduiding +- `documenten` — filters: bronorganisatie, informatieobjecttype, vertrouwelijkheidaanduiding +- `besluiten` — filters: verantwoordelijkeOrganisatie, besluittype +- `catalogi` — filters: (none) +- `autorisaties` — filters: (none) + +## Routes + +```php +// Notificaties API (NRC) +['name' => 'zgw#index', 'url' => '/api/zgw/notificaties/v1/{resource}', 'verb' => 'GET'], +['name' => 'zgw#create', 'url' => '/api/zgw/notificaties/v1/{resource}', 'verb' => 'POST'], +['name' => 'zgw#show', 'url' => '/api/zgw/notificaties/v1/{resource}/{uuid}', 'verb' => 'GET'], +['name' => 'zgw#update', 'url' => '/api/zgw/notificaties/v1/{resource}/{uuid}', 'verb' => 'PUT'], +['name' => 'zgw#patch', 'url' => '/api/zgw/notificaties/v1/{resource}/{uuid}', 'verb' => 'PATCH'], +['name' => 'zgw#destroy', 'url' => '/api/zgw/notificaties/v1/{resource}/{uuid}', 'verb' => 'DELETE'], +``` diff --git a/openspec/changes/archive/2026-03-15-zgw-notificaties-api/proposal.md b/openspec/changes/archive/2026-03-15-zgw-notificaties-api/proposal.md new file mode 100644 index 0000000..214dc48 --- /dev/null +++ b/openspec/changes/archive/2026-03-15-zgw-notificaties-api/proposal.md @@ -0,0 +1,53 @@ +# Proposal: zgw-notificaties-api + +## Summary +Add ZGW Notificaties API (NRC) support to Procest, enabling webhook-based notifications when ZGW resources change. External systems can subscribe to channels and receive callbacks when cases, documents, or decisions are created/updated/deleted. + +## Motivation +The ZGW Notificaties API enables event-driven integration between ZGW components. When a zaak status changes or a document is added, subscribed systems receive a notification. This is essential for: +- Workflow automation (n8n triggers on zaak events) +- Inter-system synchronization (other ZGW providers consuming Procest events) +- VNG ZGW compliance (the Notificaties API is part of the standard test suite) + +## Affected Projects +- [x] Project: `procest` — New ZGW NRC endpoints + event publishing +- [ ] Reference: `openregister` — Object change events trigger notifications + +## Scope +### In Scope +- **Kanaal** — Notification channels (one per resource type: zaken, documenten, besluiten, etc.) + - `GET/POST /api/zgw/notificaties/v1/kanaal` + - `GET /api/zgw/notificaties/v1/kanaal/{uuid}` +- **Abonnement** — Subscriptions to channels with callback URLs and filters + - `GET/POST /api/zgw/notificaties/v1/abonnement` + - `GET/PUT/PATCH/DELETE /api/zgw/notificaties/v1/abonnement/{uuid}` +- **Notificatie** — Publishing notifications (POST by the system when events occur) + - `POST /api/zgw/notificaties/v1/notificaties` +- **Event publishing**: When ZGW resources change (create/update/delete), publish notifications to all matching subscribers +- **Callback delivery**: POST notification payloads to subscriber callback URLs +- **Auth header forwarding**: Include subscriber's configured auth header in callbacks +- **ZGW notification format**: `{ kanaal, hoofdObject, resource, resourceUrl, actie, aanmaakdatum, kenmerken }` + +### Out of Scope +- Guaranteed delivery / retry mechanism (future enhancement) +- Notification history / audit log UI +- WebSocket/SSE real-time push (ZGW standard uses webhook callbacks) + +## Approach +1. Create OpenRegister schemas for Kanaal and Abonnement in `procest_register.json` +2. Create ZGW mapping configurations for NRC resources +3. Extend `ZgwController` to handle the `notificaties` API group +4. Create `NotificatieService` that: + - Maintains a registry of channels and subscriptions + - Publishes notifications when ZGW resources change + - Delivers callbacks to subscriber URLs via HTTP POST +5. Hook into existing ZGW create/update/delete flows to trigger notifications +6. Register routes in `routes.php` + +## Cross-Project Dependencies +- Depends on existing ZGW mapping infrastructure in Procest +- Event triggers come from ZRC, DRC, BRC, ZTC operations (all must be implemented) +- Uses n8n or Guzzle for outbound HTTP callbacks + +## Rollback Strategy +Remove NRC routes, mapping configs, schemas, and NotificatieService. No changes to existing ZGW functionality — notification hooks are additive. diff --git a/openspec/changes/archive/2026-03-15-zgw-notificaties-api/specs/zgw-notificaties/spec.md b/openspec/changes/archive/2026-03-15-zgw-notificaties-api/specs/zgw-notificaties/spec.md new file mode 100644 index 0000000..fe5b2d3 --- /dev/null +++ b/openspec/changes/archive/2026-03-15-zgw-notificaties-api/specs/zgw-notificaties/spec.md @@ -0,0 +1,55 @@ +# Spec: ZGW Notificaties API (NRC) + +## ZGW Standard References + +### Official Documentation +- **Standard overview**: https://vng-realisatie.github.io/gemma-zaken/standaard/notificaties/ +- **Developer guide**: https://vng-realisatie.github.io/gemma-zaken/ontwikkelaars/ + +### OpenAPI Specifications +- **Provider OAS (gemma-zaken canonical)**: [api-specificatie/nrc/openapi.yaml](https://github.com/VNG-Realisatie/gemma-zaken/blob/master/api-specificatie/nrc/openapi.yaml) + - Raw: https://raw.githubusercontent.com/VNG-Realisatie/gemma-zaken/master/api-specificatie/nrc/openapi.yaml +- **Consumer OAS**: [api-specificatie/nrc/consumer-api/openapi.yaml](https://github.com/VNG-Realisatie/gemma-zaken/blob/master/api-specificatie/nrc/consumer-api/openapi.yaml) + - Raw: https://raw.githubusercontent.com/VNG-Realisatie/gemma-zaken/master/api-specificatie/nrc/consumer-api/openapi.yaml +- **Reference implementation OAS**: [src/openapi.yaml](https://github.com/VNG-Realisatie/notificaties-api/blob/master/src/openapi.yaml) + - Raw: https://raw.githubusercontent.com/VNG-Realisatie/notificaties-api/master/src/openapi.yaml + +### Source Documentation (Markdown) +- **Standard page**: [docs/standaard/notificaties/index.md](https://github.com/VNG-Realisatie/gemma-zaken/blob/master/docs/standaard/notificaties/index.md) +- **Authorization spec**: [src/autorisaties.md](https://github.com/VNG-Realisatie/notificaties-api/blob/master/src/autorisaties.md) +- **Notification spec**: [src/notificaties.md](https://github.com/VNG-Realisatie/notificaties-api/blob/master/src/notificaties.md) + +### Note on Versioning +The NRC in gemma-zaken does NOT have versioned subdirectories — the spec files sit directly in the `nrc/` folder. + +## Requirements + +### Requirement: NRC Resource Coverage +The implementation MUST support these resources: +- **Kanaal** — Notification channels (one per resource type) +- **Abonnement** — Subscriptions with callback URLs and filters +- **Notificatie** — Published event notifications + +### Requirement: Notification Payload Format +```json +{ + "kanaal": "zaken", + "hoofdObject": "https://host/api/zgw/zaken/v1/zaken/{uuid}", + "resource": "zaak", + "resourceUrl": "https://host/api/zgw/zaken/v1/zaken/{uuid}", + "actie": "create", + "aanmaakdatum": "2026-03-07T10:00:00Z", + "kenmerken": {} +} +``` + +### Requirement: Callback Delivery +- Notifications are delivered via HTTP POST to subscriber callback URLs +- The subscriber's configured `auth` header is included in callbacks +- Delivery failures MUST NOT block the original operation + +### Requirement: Default Channels +Pre-register channels: `zaken`, `documenten`, `besluiten`, `catalogi`, `autorisaties` + +### Requirement: ZGW Pagination +All list endpoints MUST return `{ count, next, previous, results }` format. diff --git a/openspec/changes/archive/2026-03-15-zgw-notificaties-api/tasks.md b/openspec/changes/archive/2026-03-15-zgw-notificaties-api/tasks.md new file mode 100644 index 0000000..2f3ee30 --- /dev/null +++ b/openspec/changes/archive/2026-03-15-zgw-notificaties-api/tasks.md @@ -0,0 +1,76 @@ +# Tasks: zgw-notificaties-api + +## 1. Schema & Mapping Configuration + +### Task 1.1: Add NRC schemas to procest_register.json +- **files**: `procest/lib/Settings/procest_register.json` +- **acceptance_criteria**: + - GIVEN the register config WHEN imported THEN schemas for Kanaal and Abonnement are created + - GIVEN each schema WHEN validated THEN all ZGW-required fields are present +- [x] Implement +- [x] Test + +### Task 1.2: Create ZGW mapping configurations for NRC resources +- **files**: `procest/lib/Repair/LoadDefaultZgwMappings.php` +- **acceptance_criteria**: + - GIVEN the repair step WHEN executed THEN zgw_mapping_kanaal is stored in IAppConfig + - GIVEN the repair step WHEN executed THEN zgw_mapping_abonnement is stored in IAppConfig +- [x] Implement +- [x] Test + +## 2. Controller & Routes + +### Task 2.1: Extend ZgwController RESOURCE_MAP with NRC resources +- **files**: `procest/lib/Controller/ZgwController.php` +- **acceptance_criteria**: + - GIVEN the RESOURCE_MAP WHEN 'kanaal' is requested THEN it maps to the correct config key + - GIVEN the RESOURCE_MAP WHEN 'abonnement' is requested THEN it maps to the correct config key +- [x] Implement +- [x] Test + +### Task 2.2: Register NRC routes +- **files**: `procest/appinfo/routes.php` +- **acceptance_criteria**: + - GIVEN routes.php WHEN the app loads THEN all `/api/zgw/notificaties/v1/{resource}` CRUD routes are registered +- [x] Implement +- [x] Test + +## 3. Notification Service + +### Task 3.1: Create NotificatieService +- **files**: `procest/lib/Service/NotificatieService.php` +- **acceptance_criteria**: + - GIVEN a resource change event WHEN publish() is called THEN matching subscriptions are found + - GIVEN matching subscriptions WHEN deliver() is called THEN HTTP POST is sent to each callback URL + - GIVEN subscriber auth config WHEN delivering THEN the configured auth header is included + - GIVEN notification payload WHEN published THEN it contains kanaal, hoofdObject, resource, resourceUrl, actie, aanmaakdatum, kenmerken +- [x] Implement +- [x] Test + +### Task 3.2: Create default notification channels +- **files**: `procest/lib/Repair/LoadDefaultZgwMappings.php` +- **acceptance_criteria**: + - GIVEN the repair step WHEN executed THEN default kanalen are created: zaken, documenten, besluiten, catalogi, autorisaties + - GIVEN each kanaal WHEN retrieved THEN it has the correct filters configured +- [x] Implement +- [x] Test + +## 4. Integration with ZGW Flows + +### Task 4.1: Hook notification publishing into ZgwController +- **files**: `procest/lib/Controller/ZgwController.php` +- **acceptance_criteria**: + - GIVEN a successful create via ZgwController WHEN the response is returned THEN a notification with actie 'create' is published + - GIVEN a successful update via ZgwController WHEN the response is returned THEN a notification with actie 'update' is published + - GIVEN a successful delete via ZgwController WHEN the response is returned THEN a notification with actie 'destroy' is published + - GIVEN a notification publish failure WHEN the main operation succeeded THEN the main response is still returned (non-blocking) +- [x] Implement +- [x] Test + +### Task 4.2: Handle notification POST endpoint +- **files**: `procest/lib/Controller/ZgwController.php` +- **acceptance_criteria**: + - GIVEN a POST to /api/zgw/notificaties/v1/notificaties WHEN valid notification payload THEN the notification is distributed to subscribers + - GIVEN external notification delivery WHEN callback fails THEN error is logged but no exception is thrown +- [x] Implement +- [x] Test diff --git a/openspec/changes/archive/2026-03-21-admin-settings/.openspec.yaml b/openspec/changes/archive/2026-03-21-admin-settings/.openspec.yaml new file mode 100644 index 0000000..d8b0ed0 --- /dev/null +++ b/openspec/changes/archive/2026-03-21-admin-settings/.openspec.yaml @@ -0,0 +1,2 @@ +schema: spec-driven +created: 2026-03-20 diff --git a/openspec/changes/archive/2026-03-21-admin-settings/design.md b/openspec/changes/archive/2026-03-21-admin-settings/design.md new file mode 100644 index 0000000..e43c688 --- /dev/null +++ b/openspec/changes/archive/2026-03-21-admin-settings/design.md @@ -0,0 +1,27 @@ +# Design: Admin Settings + +## Architecture +- **Backend**: `SettingsController` (PHP) for reading/writing IAppConfig keys; `SettingsService` for schema configuration +- **Frontend**: `AdminRoot.vue` (Vue 2) renders tabbed settings with `CaseTypeAdmin.vue`, `CaseTypeList.vue`, `CaseTypeDetail.vue` +- **Data**: All case type definitions stored as OpenRegister objects; settings stored in Nextcloud IAppConfig +- **Routing**: `/settings` and `/case-types` Vue router paths mapped to `AdminRoot` component + +## Components +| Component | Path | Purpose | +|-----------|------|---------| +| `AdminRoot.vue` | `src/views/settings/AdminRoot.vue` | Settings page shell with tab routing | +| `CaseTypeAdmin.vue` | `src/views/settings/CaseTypeAdmin.vue` | Case type administration container | +| `CaseTypeList.vue` | `src/views/settings/CaseTypeList.vue` | Case type list view | +| `CaseTypeDetail.vue` | `src/views/settings/CaseTypeDetail.vue` | Case type detail/edit form | +| `GeneralTab.vue` | `src/views/settings/tabs/GeneralTab.vue` | General settings tab | +| `StatusesTab.vue` | `src/views/settings/tabs/StatusesTab.vue` | Status type management tab | +| `ZgwMappingSettings.vue` | `src/views/settings/ZgwMappingSettings.vue` | ZGW field mapping configuration | +| `SettingsController.php` | `lib/Controller/SettingsController.php` | API for settings CRUD | +| `SettingsService.php` | `lib/Service/SettingsService.php` | Business logic for settings | + +## Data Flow +1. Admin navigates to `/settings` -> Vue router loads `AdminRoot` +2. `AdminRoot` fetches settings via `GET /api/settings` +3. Case type list fetched from OpenRegister via object store +4. Case type detail loads sub-entities (statuses, roles, results) from OpenRegister +5. Save persists to IAppConfig (settings) or OpenRegister (case type objects) diff --git a/openspec/changes/archive/2026-03-21-admin-settings/proposal.md b/openspec/changes/archive/2026-03-21-admin-settings/proposal.md new file mode 100644 index 0000000..077ca85 --- /dev/null +++ b/openspec/changes/archive/2026-03-21-admin-settings/proposal.md @@ -0,0 +1,20 @@ +# Admin Settings Specification + +## Problem +The admin settings page provides a Nextcloud admin panel for configuring Procest. Administrators manage case types and all their related type definitions: statuses, results, roles, properties, documents, and decisions. The case type system is the behavioral engine of Procest -- every aspect of how a case behaves (allowed statuses, deadlines, required fields, archival rules) is defined here. The admin settings UI follows a list-detail pattern: a case type list on the main page, and a tabbed detail/edit view per case type. +**Feature tiers**: MVP (admin page registration, access control, case type list, case type CRUD, status type CRUD with reorder, default case type, publish action, general tab); V1 (results tab, roles tab, properties tab, documents tab, decisions tab, case type versioning, import/export) +**Competitive context**: Dimpact ZAC provides per-zaaktype configuration with parameters, mail templates, reference tables, and an inrichtingscheck validation system. xxllnc Zaken supports case type versioning with draft/active states and template-based folder hierarchies. Flowable provides visual CMMN/BPMN modelers for case type design. Procest takes a simpler, form-based approach that is more accessible to non-technical administrators while maintaining ZGW-compliant data structures. + +## Proposed Solution +Implement Admin Settings Specification following the detailed specification. Key requirements include: +- See full spec for detailed requirements + +## Scope +This change covers all requirements defined in the admin-settings specification. + +## Success Criteria +- Admin settings page is accessible +- Regular users cannot access admin settings +- Group admin access +- Admin settings page loads with OpenRegister unavailable +- List all case types diff --git a/openspec/changes/archive/2026-03-21-admin-settings/specs/admin-settings/spec.md b/openspec/changes/archive/2026-03-21-admin-settings/specs/admin-settings/spec.md new file mode 100644 index 0000000..94c8990 --- /dev/null +++ b/openspec/changes/archive/2026-03-21-admin-settings/specs/admin-settings/spec.md @@ -0,0 +1,639 @@ +--- +status: implemented +--- +# Admin Settings Specification + +## Purpose + +The admin settings page provides a Nextcloud admin panel for configuring Procest. Administrators manage case types and all their related type definitions: statuses, results, roles, properties, documents, and decisions. The case type system is the behavioral engine of Procest -- every aspect of how a case behaves (allowed statuses, deadlines, required fields, archival rules) is defined here. The admin settings UI follows a list-detail pattern: a case type list on the main page, and a tabbed detail/edit view per case type. + +**Feature tiers**: MVP (admin page registration, access control, case type list, case type CRUD, status type CRUD with reorder, default case type, publish action, general tab); V1 (results tab, roles tab, properties tab, documents tab, decisions tab, case type versioning, import/export) + +**Competitive context**: Dimpact ZAC provides per-zaaktype configuration with parameters, mail templates, reference tables, and an inrichtingscheck validation system. xxllnc Zaken supports case type versioning with draft/active states and template-based folder hierarchies. Flowable provides visual CMMN/BPMN modelers for case type design. Procest takes a simpler, form-based approach that is more accessible to non-technical administrators while maintaining ZGW-compliant data structures. + +## Data Sources + +All admin settings data is stored as OpenRegister objects in the `procest` register: +- **Case types**: schema `caseType` +- **Status types**: schema `statusType` (linked to caseType via `caseType` reference) +- **Result types**: schema `resultType` (linked to caseType via `caseType` reference) +- **Role types**: schema `roleType` (linked to caseType via `caseType` reference) +- **Property definitions**: schema `propertyDefinition` (linked to caseType via `caseType` reference) +- **Document types**: schema `documentType` (linked to caseType via `caseType` reference) +- **Decision types**: schema `decisionType` (linked to caseType via `caseType` reference) + +## Requirements + +### REQ-ADMIN-001: Nextcloud Admin Panel Registration [MVP] + +The system MUST register a settings page in the Nextcloud admin panel under the standard administration section, using the `AdminSettings` and `SettingsSection` classes to integrate with Nextcloud's settings framework. + +#### Scenario: Admin settings page is accessible +- GIVEN a Nextcloud admin user +- WHEN they navigate to Administration settings +- THEN a "Procest" entry MUST appear in the admin settings navigation +- AND clicking "Procest" MUST display the Procest admin settings page +- AND the page MUST render the `AdminRoot.vue` component with case type management and ZGW API mapping sections + +#### Scenario: Regular users cannot access admin settings +- GIVEN a regular (non-admin) Nextcloud user +- WHEN they attempt to navigate to Administration > Procest +- THEN the system MUST deny access +- AND the "Procest" entry MUST NOT appear in the regular user's settings navigation +- AND direct URL access to the admin settings endpoint MUST return HTTP 403 + +#### Scenario: Group admin access +- GIVEN a Nextcloud group admin (not full admin) +- WHEN they attempt to access Procest admin settings +- THEN the system MUST deny access (only full Nextcloud admins may configure case types) + +#### Scenario: Admin settings page loads with OpenRegister unavailable +- GIVEN the OpenRegister app is not installed or disabled +- WHEN the admin navigates to Procest admin settings +- THEN the page MUST display a clear warning indicating OpenRegister is required +- AND the case type list MUST show an appropriate error state rather than an empty list +- AND all form controls MUST be disabled until OpenRegister is available + +### REQ-ADMIN-002: Case Type List View [MVP] + +The admin settings MUST display a list of all case types with key metadata, following the `CaseTypeList.vue` component's `CnIndexPage` pattern. + +#### Scenario: List all case types +- GIVEN the following case types exist: + | title | isDraft | processingDeadline | statusCount | resultTypeCount | validFrom | validUntil | isDefault | + |----------------------|---------|-------------------|-------------|-----------------|------------|------------|-----------| + | Omgevingsvergunning | false | P56D | 4 | 3 | 2026-01-01 | 2027-12-31 | true | + | Subsidieaanvraag | false | P42D | 3 | 2 | 2026-01-01 | (none) | false | + | Klacht behandeling | false | P28D | 3 | 2 | 2026-01-01 | (none) | false | + | Bezwaarschrift | true | P84D | 2 | 0 | (not set) | (none) | false | +- WHEN the admin views the case type list +- THEN all 4 case types MUST be displayed +- AND each case type entry MUST show: + - Title + - Processing deadline in human-readable form (e.g., "56 days") + - Count of linked status types (e.g., "4 statuses") + - Count of linked result types (e.g., "3 result types") + - Published/Draft badge + - Validity period (e.g., "Jan 2026 -- Dec 2027" or "Jan 2026 -- (no end)") +- AND the default case type MUST be marked with a star icon or "(default)" label + +#### Scenario: Draft types visually distinguished +- GIVEN case type "Bezwaarschrift" has `isDraft = true` +- WHEN the admin views the case type list +- THEN the draft type MUST display a warning badge (e.g., "DRAFT" in amber/yellow) +- AND the draft type SHOULD have a visually different background or border to distinguish it from published types +- AND the validity period MUST show "(not set)" when `validFrom` is not configured + +#### Scenario: Click to edit case type +- GIVEN the case type list is displayed +- WHEN the admin clicks on "Omgevingsvergunning" or its "Edit" button +- THEN the system MUST navigate to the case type detail/edit view for "Omgevingsvergunning" + +#### Scenario: Empty case type list +- GIVEN no case types have been created +- WHEN the admin views the case type list +- THEN the system MUST display an empty state message (e.g., "No case types configured yet") +- AND the "+ Add Case Type" button MUST be prominently displayed +- AND the system SHOULD provide guidance (e.g., "Create your first case type to start managing cases") + +### REQ-ADMIN-003: Create Case Type [MVP] + +The admin MUST be able to create new case types that start in draft status, following the ZGW Catalogi `ZaakType` data model. + +#### Scenario: Add a new case type +- GIVEN the admin is on the case type list +- WHEN they click "+ Add Case Type" +- THEN the system MUST present a case type creation form or navigate to a new case type detail view +- AND the new case type MUST have `isDraft = true` by default +- AND the admin MUST be able to fill in at minimum: title, purpose, trigger, subject, processingDeadline, origin, confidentiality, and responsibleUnit (all required fields per ARCHITECTURE.md) + +#### Scenario: Created case type appears in list +- GIVEN the admin fills in the required fields and saves a new case type "Bezwaarschrift" +- WHEN the save completes successfully +- THEN the new case type MUST appear in the case type list with a "DRAFT" badge +- AND the admin MUST be redirected to (or remain on) the detail view to add statuses and other type definitions + +#### Scenario: Validation on required fields +- GIVEN the admin tries to save a case type without filling in the title +- WHEN they click Save +- THEN the system MUST display a validation error indicating "Title is required" +- AND the case type MUST NOT be created +- AND all other required fields (purpose, trigger, subject, processingDeadline, origin, confidentiality, responsibleUnit) MUST also show validation errors if empty + +#### Scenario: Duplicate case type title warning +- GIVEN a case type "Omgevingsvergunning" already exists +- WHEN the admin creates a new case type with the same title "Omgevingsvergunning" +- THEN the system SHOULD display a warning that a case type with this title already exists +- AND the system MAY allow the creation (titles are not required to be unique, but the warning helps prevent mistakes) + +### REQ-ADMIN-004: Case Type Detail/Edit View -- Tabbed Interface [MVP] + +The case type detail view MUST use a tabbed interface for organizing the various type definitions, following the `CaseTypeDetail.vue` component pattern. + +#### Scenario: Tab layout +- GIVEN the admin opens the detail view for case type "Omgevingsvergunning" +- THEN the view MUST display the following tabs: + - **General** (MVP) -- case type core fields + - **Statuses** (MVP) -- status type management + - **Results** (V1) -- result type management + - **Roles** (V1) -- role type management + - **Properties** (V1) -- property definition management + - **Documents** (V1) -- document type management + - **Decisions** (V1) -- decision type management +- AND the "General" tab MUST be selected by default +- AND V1 tabs (Results, Roles, Properties, Documents, Decisions) MAY be hidden or disabled until V1 is implemented + +#### Scenario: Save button placement +- GIVEN the admin is editing a case type +- THEN a "Save" button MUST be visible at the top of the page (in the header area) +- AND the Save button MUST persist across tab switches (it is page-level, not tab-level) + +#### Scenario: Tab switching preserves unsaved changes +- GIVEN the admin has made unsaved changes on the General tab +- WHEN they switch to the Statuses tab +- THEN the unsaved changes on the General tab MUST be preserved in memory +- AND switching back to the General tab MUST show the unsaved changes +- AND clicking Save on any tab MUST save all pending changes across all tabs + +#### Scenario: Back navigation with unsaved changes +- GIVEN the admin is on the case type detail view with unsaved changes +- WHEN they click the breadcrumb link "Procest" to return to the case type list +- THEN the system SHOULD prompt: "You have unsaved changes. Discard?" +- AND confirming MUST navigate back without saving +- AND canceling MUST keep the admin on the detail view + +### REQ-ADMIN-005: General Tab [MVP] + +The General tab MUST allow editing all core case type fields, as implemented in `GeneralTab.vue`. + +#### Scenario: Display and edit general fields +- GIVEN the admin is on the General tab for "Omgevingsvergunning" +- THEN the following fields MUST be editable: + | Field | Value | Type | + |---------------------|------------------------------------|---------------| + | Title | Omgevingsvergunning | text input | + | Description | Vergunning voor bouwactiviteiten | textarea | + | Purpose | Beoordelen bouwplannen | text input | + | Trigger | Aanvraag van burger/bedrijf | text input | + | Subject | Bouw- en verbouwactiviteiten | text input | + | Processing deadline | 56 (displayed as "P56D") | number + unit | + | Service target | 42 (displayed as "P42D") | number + unit | + | Extension allowed | checked | checkbox | + | Extension period | 28 (displayed as "P28D") | number + unit | + | Suspension allowed | checked | checkbox | + | Origin | External | radio buttons | + | Confidentiality | Internal | select | + | Publication req. | checked | checkbox | + | Publication text | Bouwvergunning verleend... | text input | + | Valid from | 2026-01-01 | date picker | + | Valid until | 2027-12-31 | date picker | + | Status | Published / Draft | radio buttons | + +#### Scenario: Processing deadline format validation +- GIVEN the admin enters "abc" in the processing deadline field +- WHEN they try to save +- THEN the system MUST display a validation error indicating the deadline must be a valid duration +- AND the system MUST accept ISO 8601 duration format (e.g., "P56D" for 56 days, "P8W" for 8 weeks) +- OR the system MUST provide a simplified input (number + unit selector: days/weeks/months) that converts to ISO 8601 + +#### Scenario: Extension period required when extension allowed +- GIVEN the admin checks "Extension allowed" +- WHEN they leave the "Extension period" field empty and try to save +- THEN the system MUST display a validation error: "Extension period is required when extension is allowed" + +#### Scenario: Extension period hidden when extension not allowed +- GIVEN the admin unchecks "Extension allowed" +- THEN the "Extension period" field MUST be hidden or disabled +- AND any previously set extension period value SHOULD be cleared + +#### Scenario: Responsible unit selection +- GIVEN the admin is editing the General tab +- THEN the "Responsible unit" field MUST allow the admin to specify which organizational unit is responsible for cases of this type +- AND this field SHOULD support free text or a dropdown populated from an organizational structure (if available) + +### REQ-ADMIN-006: Status Type Management [MVP] + +The Statuses tab MUST allow managing the ordered list of status types for a case type, as implemented in `StatusesTab.vue`. Status types correspond to ZGW `StatusType` and CMMN Milestone concepts. + +#### Scenario: List status types +- GIVEN case type "Omgevingsvergunning" has the following status types: + | order | name | isFinal | notifyInitiator | notificationText | + |-------|------------------|---------|------------------|-----------------------------------------| + | 1 | Ontvangen | false | false | | + | 2 | In behandeling | false | true | Uw zaak is in behandeling genomen | + | 3 | Besluitvorming | false | false | | + | 4 | Afgehandeld | true | true | Uw zaak is afgehandeld | +- WHEN the admin views the Statuses tab +- THEN all 4 status types MUST be displayed in order +- AND each status type MUST show: order number, name, isFinal checkbox, notifyInitiator toggle +- AND status types with `notifyInitiator = true` MUST show the notification text field below them + +#### Scenario: Add a new status type +- GIVEN the admin is on the Statuses tab +- WHEN they click "+ Add" and enter name "Bezwaar" +- THEN a new status type MUST be created with the next sequential order number (5) +- AND the new status type MUST have `isFinal = false` by default +- AND the status type MUST be linked to the current case type + +#### Scenario: Reorder status types via drag-and-drop +- GIVEN 4 status types ordered: Ontvangen (1), In behandeling (2), Besluitvorming (3), Afgehandeld (4) +- WHEN the admin drags "Besluitvorming" above "In behandeling" +- THEN the order MUST be updated to: Ontvangen (1), Besluitvorming (2), In behandeling (3), Afgehandeld (4) +- AND all order fields MUST be recalculated as sequential integers starting from 1 +- AND each status type row MUST display a drag handle icon (e.g., six dots / hamburger icon) + +#### Scenario: Delete status type with active cases +- GIVEN status type "In behandeling" has 5 cases currently in that status +- WHEN the admin tries to delete it +- THEN the system MUST display a warning: "This status is in use by 5 cases. Reassign them before deleting." +- AND the deletion MUST be blocked until no cases reference this status + +#### Scenario: Status type notification configuration +- GIVEN status type "In behandeling" on the Statuses tab +- WHEN the admin toggles "Notify initiator" to ON +- THEN a text field for "Notification text" MUST appear below the toggle +- AND the admin MUST be able to enter text such as "Uw zaak is in behandeling genomen" +- AND when the toggle is OFF, the notification text field MUST be hidden + +### REQ-ADMIN-007: Default Case Type Selection [MVP] + +The admin MUST be able to designate one case type as the default, persisted via the `SettingsService` config key `default_case_type`. + +#### Scenario: Set default case type +- GIVEN case types "Omgevingsvergunning" (default), "Subsidieaanvraag", "Klacht behandeling" exist +- WHEN the admin clicks the default indicator (star/checkbox) on "Subsidieaanvraag" +- THEN "Subsidieaanvraag" MUST become the default case type +- AND "Omgevingsvergunning" MUST lose its default status (only one default at a time) +- AND the star/indicator MUST move to "Subsidieaanvraag" + +#### Scenario: Default case type must be published +- GIVEN a draft case type "Bezwaarschrift" +- WHEN the admin tries to set it as default +- THEN the system MUST display an error: "Only published case types can be set as default" +- AND the default MUST NOT change + +#### Scenario: No default set +- GIVEN no case type is marked as default +- WHEN a user creates a new case +- THEN the case creation form MUST require explicit case type selection (no pre-selection) + +### REQ-ADMIN-008: Case Type Publish Action [MVP] + +The admin MUST be able to publish a draft case type after validating its completeness. This corresponds to the ZGW Catalogi concept of activating a `ZaakType`. + +#### Scenario: Publish a complete case type +- GIVEN draft case type "Bezwaarschrift" with: + - All required general fields filled in + - At least 1 status type defined + - `validFrom` date set +- WHEN the admin changes the status from "Draft" to "Published" and saves +- THEN the case type `isDraft` MUST be set to false +- AND the case type MUST now be available for creating new cases +- AND the case type list MUST show "Published" instead of "DRAFT" + +#### Scenario: Publish incomplete case type -- no statuses +- GIVEN draft case type "Bezwaarschrift" with no status types defined +- WHEN the admin tries to publish it +- THEN the system MUST display a validation error: "At least one status type is required before publishing" +- AND the case type MUST remain as draft + +#### Scenario: Publish incomplete case type -- no validFrom +- GIVEN draft case type "Bezwaarschrift" with status types but no `validFrom` date +- WHEN the admin tries to publish it +- THEN the system MUST display a validation error: "Valid from date is required before publishing" +- AND the case type MUST remain as draft + +#### Scenario: Publish incomplete case type -- missing required general fields +- GIVEN draft case type "Bezwaarschrift" with `purpose` field empty +- WHEN the admin tries to publish it +- THEN the system MUST display validation errors for all missing required fields +- AND the case type MUST remain as draft + +#### Scenario: Unpublish a published case type +- GIVEN published case type "Klacht behandeling" with no active cases +- WHEN the admin changes the status from "Published" to "Draft" +- THEN the case type `isDraft` MUST be set to true +- AND the case type MUST no longer appear as an option when creating new cases +- AND existing cases of this type MUST NOT be affected + +### REQ-ADMIN-009: Result Type Management [V1] + +The Results tab SHALL allow managing result types with archival rules per case type. Result types correspond to ZGW `ResultaatType` and control case archival behavior per the Archiefwet. + +#### Scenario: List result types +- GIVEN case type "Omgevingsvergunning" has the following result types: + | name | archiveAction | retentionPeriod | retentionDateSource | + |------------------------|---------------|-----------------|---------------------| + | Vergunning verleend | retain | P20Y | case_completed | + | Vergunning geweigerd | destroy | P10Y | case_completed | + | Ingetrokken | destroy | P5Y | case_completed | +- WHEN the admin views the Results tab +- THEN all 3 result types MUST be displayed +- AND each result type MUST show: name, archive action (retain/destroy), retention period in human-readable form (e.g., "20 years"), and retention date source + +#### Scenario: Add a result type +- GIVEN the admin is on the Results tab +- WHEN they click "+ Add" and fill in: + - Name: "Vergunning verleend" + - Archive action: "retain" + - Retention period: "P20Y" (20 years) + - Retention date source: "case_completed" +- AND click Save +- THEN the result type MUST be created and linked to the current case type +- AND it MUST appear in the result types list + +#### Scenario: Edit a result type +- GIVEN result type "Vergunning geweigerd" with retention period P10Y +- WHEN the admin changes the retention period to P15Y +- AND clicks Save +- THEN the retention period MUST be updated to P15Y + +#### Scenario: Delete result type in use +- GIVEN result type "Vergunning verleend" is referenced by 3 completed cases +- WHEN the admin tries to delete it +- THEN the system MUST display a warning: "This result type is in use by 3 cases and cannot be deleted" +- AND the deletion MUST be blocked + +#### Scenario: Archive action semantics +- GIVEN result type "Vergunning verleend" with archiveAction "retain" +- THEN cases closed with this result MUST be marked for permanent retention in the archive +- AND result type "Ingetrokken" with archiveAction "destroy" MUST cause cases to be scheduled for destruction after the retention period expires +- AND retention date source "case_completed" MUST calculate the destruction date from the case's endDate + +### REQ-ADMIN-010: Role Type Management [V1] + +The Roles tab SHALL allow managing role types with generic role mapping per case type. Role types correspond to ZGW `RolType` with `omschrijvingGeneriek`. + +#### Scenario: List role types +- GIVEN case type "Omgevingsvergunning" has the following role types: + | name | genericRole | + |--------------------|-----------------| + | Aanvrager | initiator | + | Behandelaar | handler | + | Technisch adviseur | advisor | + | Beslisser | decision_maker | +- WHEN the admin views the Roles tab +- THEN all 4 role types MUST be displayed +- AND each role type MUST show the name and the generic role mapping + +#### Scenario: Add a role type +- GIVEN the admin is on the Roles tab +- WHEN they click "+ Add" and enter: + - Name: "Technisch adviseur" + - Generic role: "advisor" (selected from dropdown) +- AND click Save +- THEN the role type MUST be created and linked to the current case type + +#### Scenario: Generic role dropdown options +- GIVEN the admin is adding or editing a role type +- THEN the "Generic role" field MUST be a dropdown with the following options: + - initiator, handler, advisor, decision_maker, stakeholder, coordinator, contact, co_initiator +- AND the admin MUST select exactly one generic role per role type + +#### Scenario: Delete a role type with active assignments +- GIVEN role type "Technisch adviseur" has 2 active role assignments on cases +- WHEN the admin tries to delete it +- THEN the system MUST display a warning: "This role type is in use by 2 case role assignments" +- AND the system SHOULD either block deletion or offer to remove the assignments first + +#### Scenario: Multiple role types with the same generic role +- GIVEN the admin creates role type "Externe adviseur" with genericRole "advisor" +- AND role type "Interne adviseur" already exists with genericRole "advisor" +- THEN the system MUST allow both role types (multiple role types can share the same generic role) +- AND both MUST appear as options when assigning participants to cases of this type + +### REQ-ADMIN-011: Property Definition Management [V1] + +The Properties tab SHALL allow managing custom field definitions per case type. Property definitions correspond to ZGW `Eigenschap`. + +#### Scenario: List property definitions +- GIVEN case type "Omgevingsvergunning" has the following property definitions: + | name | format | maxLength | requiredAtStatus | + |-------------------|--------|-----------|-------------------| + | Kadastraal nummer | text | 20 | In behandeling | + | Bouwkosten | number | (none) | Besluitvorming | + | Oppervlakte | number | (none) | (optional) | + | Bouwlagen | number | (none) | (optional) | +- WHEN the admin views the Properties tab +- THEN all 4 property definitions MUST be displayed +- AND each MUST show: name, format, max length (if set), and the status at which it is required (or "optional") + +#### Scenario: Add a property definition +- GIVEN the admin is on the Properties tab +- WHEN they click "+ Add" and fill in: + - Name: "Kadastraal nummer" + - Definition: "Het kadastrale perceelnummer" + - Format: "text" (selected from dropdown: text, number, date, datetime) + - Max length: 20 + - Required at status: "In behandeling" (selected from the case type's status types) +- AND click Save +- THEN the property definition MUST be created and linked to the current case type + +#### Scenario: Required at status dropdown +- GIVEN the admin is adding a property definition +- THEN the "Required at status" field MUST be a dropdown populated with the case type's status types +- AND the dropdown MUST include an "(optional)" or "(not required)" option for properties that are never required + +#### Scenario: Delete a property definition +- GIVEN property "Oppervlakte" exists +- WHEN the admin clicks delete and confirms +- THEN the property definition MUST be deleted +- AND any existing case property values for "Oppervlakte" SHOULD be retained on existing cases (orphaned but not lost) + +### REQ-ADMIN-012: Document Type Management [V1] + +The Documents tab SHALL allow managing document type requirements per case type. Document types correspond to ZGW `InformatieObjectType`. + +#### Scenario: List document types +- GIVEN case type "Omgevingsvergunning" has the following document types: + | name | direction | requiredAtStatus | + |------------------------|-----------|---------------------| + | Bouwtekening | incoming | In behandeling | + | Constructieberekening | incoming | In behandeling | + | Situatietekening | incoming | In behandeling | + | Welstandsadvies | internal | Besluitvorming | + | Vergunningsbesluit | outgoing | Afgehandeld | +- WHEN the admin views the Documents tab +- THEN all 5 document types MUST be displayed +- AND each MUST show: name, direction (incoming/internal/outgoing), and required-at-status + +#### Scenario: Add a document type +- GIVEN the admin is on the Documents tab +- WHEN they click "+ Add" and fill in: + - Name: "Bouwtekening" + - Category: "Tekeningen" + - Direction: "incoming" (selected from dropdown: incoming, internal, outgoing) + - Required at status: "In behandeling" (from case type's statuses) +- AND click Save +- THEN the document type MUST be created and linked to the current case type + +#### Scenario: Direction dropdown options +- GIVEN the admin is adding or editing a document type +- THEN the "Direction" field MUST be a dropdown with options: incoming, internal, outgoing +- AND these MUST map to: documents received from initiator, internal working documents, and documents sent to initiator + +#### Scenario: Completeness check for document types +- GIVEN case type "Omgevingsvergunning" has document types with requiredAtStatus "In behandeling" +- WHEN a case of this type reaches status "In behandeling" +- THEN the system SHOULD check whether all required document types have been uploaded +- AND if not, the system SHOULD display a warning on the case detail indicating missing documents + +### REQ-ADMIN-013: Decision Type Management [V1] + +The Decisions tab SHALL allow managing decision type definitions per case type. Decision types correspond to ZGW `BesluitType` and control publication and objection period rules per the Wet open overheid (WOO). + +#### Scenario: List decision types +- GIVEN case type "Omgevingsvergunning" has the following decision types: + | name | publicationRequired | objectionPeriod | category | + |-----------------------------|---------------------|-----------------|-------------------| + | Omgevingsvergunning besluit | true | P6W | Vergunningen | + | Voorlopige voorziening | false | (none) | Tussentijds | +- WHEN the admin views the Decisions tab +- THEN all 2 decision types MUST be displayed +- AND each MUST show: name, publication requirement indicator, objection period (if set), and category + +#### Scenario: Add a decision type with publication rules +- GIVEN the admin is on the Decisions tab +- WHEN they click "+ Add" and fill in: + - Name: "Omgevingsvergunning besluit" + - Category: "Vergunningen" + - Publication required: checked + - Publication period: "P6W" (6 weeks) + - Objection period: "P6W" (6 weeks) +- AND click Save +- THEN the decision type MUST be created and linked to the current case type +- AND decisions of this type MUST enforce publication deadlines when created on cases + +#### Scenario: Edit a decision type +- GIVEN decision type "Voorlopige voorziening" exists +- WHEN the admin changes the publicationRequired to true +- AND clicks Save +- THEN future decisions of this type MUST require publication +- AND existing decisions MUST NOT be retroactively affected + +### REQ-ADMIN-014: Validation Rules [MVP] + +The admin settings MUST enforce validation rules on case type configuration, with validation logic implemented in `src/utils/caseTypeValidation.js`. + +#### Scenario: Processing deadline format validation +- GIVEN the admin enters a processing deadline +- THEN the system MUST validate it as a valid ISO 8601 duration (e.g., "P56D", "P8W", "P2M") +- AND if using a simplified input (number + unit), the system MUST convert to ISO 8601 on save +- AND invalid values (negative numbers, zero, non-numeric input) MUST be rejected with a clear error message + +#### Scenario: Valid from must precede valid until +- GIVEN the admin sets validFrom = 2027-01-01 and validUntil = 2026-12-31 +- WHEN they try to save +- THEN the system MUST display: "Valid from date must be before valid until date" +- AND the save MUST be blocked + +#### Scenario: At least one non-final status required +- GIVEN a case type with only one status type marked as `isFinal = true` +- WHEN the admin tries to save +- THEN the system MUST display a warning: "At least one non-final status is recommended for proper case lifecycle" +- AND the save MAY proceed (warning, not blocking) + +#### Scenario: Status type name uniqueness within case type +- GIVEN case type "Omgevingsvergunning" already has a status type "Ontvangen" +- WHEN the admin tries to add another status type named "Ontvangen" +- THEN the system MUST display: "A status type with this name already exists for this case type" +- AND the creation MUST be blocked + +### REQ-ADMIN-015: Error Scenarios [MVP] + +The admin settings MUST handle error conditions gracefully, preserving user data and providing actionable feedback. + +#### Scenario: Delete published case type with active cases +- GIVEN published case type "Omgevingsvergunning" has 10 active (non-final) cases +- WHEN the admin tries to delete the case type +- THEN the system MUST display a blocking error: "This case type has 10 active cases and cannot be deleted. Close or reassign all cases first." +- AND the case type MUST NOT be deleted + +#### Scenario: Delete published case type with only completed cases +- GIVEN published case type "Klacht behandeling" has 5 cases, all with final status +- WHEN the admin tries to delete the case type +- THEN the system MUST display a warning: "This case type has 5 completed cases. Deleting it will make those cases reference a missing type. Proceed?" +- AND upon confirmation, the case type MUST be deleted +- AND the system SHOULD set `isDraft = true` or mark it as archived rather than hard-deleting + +#### Scenario: Save fails due to network error +- GIVEN the admin edits a case type and clicks Save +- AND the API request fails due to a network error +- WHEN the error occurs +- THEN the system MUST display an error message: "Failed to save changes. Please try again." +- AND the form data MUST be preserved (not lost) +- AND the admin MUST be able to retry saving without re-entering data + +#### Scenario: Concurrent editing conflict +- GIVEN admin "A" and admin "B" both open case type "Omgevingsvergunning" for editing +- AND admin "A" saves changes to the processing deadline +- WHEN admin "B" tries to save their changes +- THEN the system SHOULD detect the conflict (e.g., via version/timestamp comparison) +- AND display a warning: "This case type was modified by another user. Reload to see the latest version." +- OR the system MAY use last-write-wins if conflict detection is not implemented in MVP + +## Non-Functional Requirements + +- **Performance**: Case type list MUST load within 1 second for up to 50 case types. Case type detail view (including all linked type definitions) MUST load within 2 seconds. +- **Accessibility**: All form fields MUST have associated labels. Drag-and-drop reordering MUST have a keyboard alternative (e.g., up/down arrow buttons). Error messages MUST be associated with their fields via `aria-describedby`. All content MUST meet WCAG AA standards. +- **Localization**: All labels, error messages, validation messages, and placeholder text MUST support English and Dutch localization via `t()` function. +- **Data integrity**: Deleting a case type or sub-entity MUST use soft-delete or referential integrity checks. The system MUST prevent orphaning active cases. +- **Responsiveness**: The admin settings page MUST be usable on desktop viewports (minimum 1024px width). Mobile responsiveness is not required for admin settings. + +### Current Implementation Status + +**Implemented:** +- Admin panel registration via `OCA\Procest\Settings\AdminSettings` (`lib/Settings/AdminSettings.php`) and `OCA\Procest\Sections\SettingsSection` (`lib/Sections/SettingsSection.php`) -- registers the "Procest" section in Nextcloud admin settings with icon support. +- Admin settings Vue root component (`src/views/settings/AdminRoot.vue`) renders the full admin page with two sections: Case Type Management and ZGW API Mapping. +- Case type list view (`src/views/settings/CaseTypeList.vue`) using `CnIndexPage` -- displays title, isDraft badge (Draft/Published), processing deadline, validity period. Supports set-as-default (star icon, published-only) and delete actions. +- Case type detail/edit view (`src/views/settings/CaseTypeDetail.vue`) with tabbed interface: General and Statuses tabs are implemented. Publish/unpublish buttons with validation errors. Save button in header. +- General tab (`src/views/settings/tabs/GeneralTab.vue`) with fields: title, description, purpose, trigger, subject, processing deadline, service target, extension allowed/period, suspension allowed, origin, confidentiality, publication required/text, valid from/until, draft/published status. +- Statuses tab (`src/views/settings/tabs/StatusesTab.vue`) with ordered list, drag-and-drop reorder, inline editing, add/delete, isFinal checkbox, notifyInitiator toggle with notification text field. +- Case type CRUD via OpenRegister object store (`src/store/modules/object.js` using `createObjectStore` from `@conduction/nextcloud-vue`). +- Default case type selection persisted via `SettingsService` (`lib/Service/SettingsService.php`, config key `default_case_type`). +- Settings controller (`lib/Controller/SettingsController.php`) with index/create/load endpoints. +- Register configuration auto-import from `procest_register.json` (`lib/Service/SettingsService.php::loadConfiguration`). +- Case type admin orchestrator component (`src/views/settings/CaseTypeAdmin.vue`) managing list/detail view switching. +- Duration formatting helpers (`src/utils/durationHelpers.js`). +- Case type validation utilities (`src/utils/caseTypeValidation.js`). +- ZGW API mapping settings (`src/views/settings/ZgwMappingSettings.vue`). + +**Not yet implemented:** +- Results tab (V1) -- result type CRUD with archival rules. +- Roles tab (V1) -- role type CRUD with generic role mapping. +- Properties tab (V1) -- property definition CRUD with required-at-status linking. +- Documents tab (V1) -- document type CRUD with direction and required-at-status. +- Decisions tab (V1) -- decision type CRUD with publication rules. +- Publish validation: checking for at least one status type and validFrom date before publishing (partial -- UI has publish errors display but completeness checks may not cover all scenarios). +- Delete case type blocking when active cases exist (no backend enforcement found). +- Concurrent editing conflict detection. +- Keyboard alternative for drag-and-drop reorder. + +### Standards & References + +- **ZGW Catalogi API (VNG)**: The case type data model maps directly to ZaakType, StatusType, ResultaatType, RolType, EigenschapType, InformatieObjectType, BesluitType from the ZGW Catalogi API specification (VNG-Realisatie/catalogi-api). +- **CMMN 1.1**: Case type modeled after CaseDefinition concept; status types correspond to CMMN Milestone sequences. +- **Schema.org**: Properties use `schema:name`, `schema:description`, `schema:identifier` mappings. +- **ISO 8601**: Duration format for processing deadlines, extension periods, retention periods. +- **WCAG AA**: Spec requires accessible form labels, keyboard alternatives for drag-and-drop, `aria-describedby` for error messages. +- **GEMMA**: Dutch municipal architecture standards for zaakgericht werken. +- **Archiefwet**: Dutch archival law governing retention and destruction of government records. Result type archival rules directly implement selectielijst concepts. +- **Wet open overheid (WOO)**: Decision type publication requirements align with WOO transparency obligations. +- **Competitive reference**: Dimpact ZAC (per-zaaktype parameters, inrichtingscheck), xxllnc Zaken (case type versioning), Flowable (CMMN modeler), ArkCase (pipeline handlers per case type). + +### Specificity Assessment + +This spec is highly specific and implementation-ready. Requirements are well-structured with concrete scenarios, data tables, and validation rules. + +**Strengths:** Detailed Gherkin scenarios covering happy paths and error cases. Clear feature tier separation (MVP vs V1). Explicit field definitions with types. Decisions tab added based on data model. + +**Missing/Ambiguous:** +- No API endpoint definitions (REST paths, request/response schemas) -- relies on OpenRegister generic CRUD. +- Publish validation logic not fully specified at the backend level (controller vs service layer responsibility). +- Archival rules for result types reference `retentionDateSource` options but do not define their semantics in detail. +- No specification of how V1 tabs become available (feature flag, config, or automatic based on version). + +**Open questions:** +1. Should the admin settings enforce backend validation (server-side) or is frontend validation sufficient for MVP? +2. How should the system handle case type versioning -- can a published case type be edited, or must it be unpublished first? +3. Should delete of status types cascade to status records on existing cases? diff --git a/openspec/changes/archive/2026-03-21-admin-settings/tasks.md b/openspec/changes/archive/2026-03-21-admin-settings/tasks.md new file mode 100644 index 0000000..120c592 --- /dev/null +++ b/openspec/changes/archive/2026-03-21-admin-settings/tasks.md @@ -0,0 +1,31 @@ +# Tasks: Admin Settings + +## Task 1: Admin settings page and case type CRUD [MVP] [DONE] +- **spec_ref**: admin-settings/spec.md +- **files**: `src/views/settings/AdminRoot.vue`, `src/views/settings/CaseTypeList.vue`, `src/views/settings/CaseTypeDetail.vue`, `lib/Controller/SettingsController.php`, `lib/Service/SettingsService.php` +- **acceptance**: Admin can view, create, edit, delete case types from settings page + +## Task 2: Status type management tab [MVP] [DONE] +- **spec_ref**: admin-settings/spec.md +- **files**: `src/views/settings/tabs/StatusesTab.vue` +- **acceptance**: Admin can manage status types within a case type + +## Task 3: ZGW mapping settings [MVP] [DONE] +- **spec_ref**: admin-settings/spec.md +- **files**: `src/views/settings/ZgwMappingSettings.vue`, `lib/Controller/ZgwMappingController.php`, `lib/Service/ZgwMappingService.php` +- **acceptance**: Admin can view and edit ZGW field mappings + +## Task 4: Unit tests (ADR-009) [DONE] +- **spec_ref**: ADR-009 +- **files**: `tests/Unit/Service/SettingsServiceTest.php` +- **acceptance**: SettingsService unit tests pass + +## Task 5: Documentation and screenshots (ADR-010) [DONE] +- **spec_ref**: ADR-010 +- **files**: `docs/features/administration.md`, `docs/screenshots/dashboard.png` +- **acceptance**: Feature documentation exists with screenshots + +## Task 6: i18n support (ADR-005) [DONE] +- **spec_ref**: ADR-005 +- **files**: `l10n/en.json`, `l10n/nl.json` +- **acceptance**: All admin settings strings available in English and Dutch diff --git a/openspec/changes/archive/2026-03-21-ai-assisted-processing/.openspec.yaml b/openspec/changes/archive/2026-03-21-ai-assisted-processing/.openspec.yaml new file mode 100644 index 0000000..d8b0ed0 --- /dev/null +++ b/openspec/changes/archive/2026-03-21-ai-assisted-processing/.openspec.yaml @@ -0,0 +1,2 @@ +schema: spec-driven +created: 2026-03-20 diff --git a/openspec/changes/archive/2026-03-21-ai-assisted-processing/design.md b/openspec/changes/archive/2026-03-21-ai-assisted-processing/design.md new file mode 100644 index 0000000..922fb96 --- /dev/null +++ b/openspec/changes/archive/2026-03-21-ai-assisted-processing/design.md @@ -0,0 +1,14 @@ +# Design: AI-Assisted Processing + +## Architecture +- **Pattern**: MCP (Model Context Protocol) integration for AI capabilities +- **Backend**: Leverages OpenRegister MCP server and n8n workflows for AI processing +- **Frontend**: AI suggestion panels within case detail views +- **Key principle**: AI assists human case workers; every suggestion requires human confirmation + +## Components +- AI document classification via n8n workflows +- Knowledge base Q&A (RAG) for case worker support +- Decision support suggestions surfaced in case detail +- Case routing recommendations based on case type and content +- Auto-summarization of case documents and history diff --git a/openspec/changes/archive/2026-03-21-ai-assisted-processing/proposal.md b/openspec/changes/archive/2026-03-21-ai-assisted-processing/proposal.md new file mode 100644 index 0000000..1a45977 --- /dev/null +++ b/openspec/changes/archive/2026-03-21-ai-assisted-processing/proposal.md @@ -0,0 +1,22 @@ +# ai-assisted-processing Specification + +## Problem +Enable AI-assisted case processing in Procest using the existing MCP (Model Context Protocol) integration. AI capabilities include document classification and data extraction, knowledge base Q&A (RAG) for case worker support, decision support suggestions, case routing recommendations, and auto-summarization. AI assists human case workers rather than making autonomous decisions -- every AI suggestion requires human confirmation. + +## Proposed Solution +Implement ai-assisted-processing Specification following the detailed specification. Key requirements include: +- Requirement 1: Document classification with zaaktype and metadata suggestion +- Requirement 2: Data extraction from documents to case fields +- Requirement 3: Knowledge base Q&A (RAG) for case worker support +- Requirement 4: Decision support and next-action suggestions +- Requirement 5: Case auto-summarization + +## Scope +This change covers all requirements defined in the ai-assisted-processing specification. + +## Success Criteria +#### Scenario 1.1: Classify incoming document by type +#### Scenario 1.2: Route unclassified document to correct case +#### Scenario 1.3: Auto-suggest classification on upload +#### Scenario 1.4: Classification model selection per zaaktype +#### Scenario 1.5: Classification handles non-text documents diff --git a/openspec/changes/archive/2026-03-21-ai-assisted-processing/specs/ai-assisted-processing/spec.md b/openspec/changes/archive/2026-03-21-ai-assisted-processing/specs/ai-assisted-processing/spec.md new file mode 100644 index 0000000..a459c45 --- /dev/null +++ b/openspec/changes/archive/2026-03-21-ai-assisted-processing/specs/ai-assisted-processing/spec.md @@ -0,0 +1,331 @@ +--- +status: implemented +--- +# ai-assisted-processing Specification + +## Purpose +Enable AI-assisted case processing in Procest using the existing MCP (Model Context Protocol) integration. AI capabilities include document classification and data extraction, knowledge base Q&A (RAG) for case worker support, decision support suggestions, case routing recommendations, and auto-summarization. AI assists human case workers rather than making autonomous decisions -- every AI suggestion requires human confirmation. + +## Context +AI-assisted processing is an emerging capability in modern case management platforms. Flowable's Agentic AI integrates orchestrator, knowledge, document, and utility AI agents directly into the CMMN engine with full audit trails. Our MCP integration with n8n provides the foundation for similar capabilities without requiring a proprietary AI engine -- n8n workflows orchestrate AI model calls while Procest surfaces the results in the case worker UI. This spec defines how AI capabilities surface in Procest, following the human-in-the-loop principle mandated by Dutch government AI governance (Algoritmeregister). + +## Requirements + +### Requirement 1: Document classification with zaaktype and metadata suggestion +When documents are uploaded to a case or arrive unclassified, AI MUST suggest classification with confidence scoring. + +#### Scenario 1.1: Classify incoming document by type +- GIVEN a PDF document uploaded to case `zaak-1` +- WHEN the case worker clicks "AI classificeren" on the document in the case detail view +- THEN the system MUST send the document content to the configured AI model via an n8n workflow triggered through MCP +- AND return a suggested `documentType` (from the case type's configured document types) with a confidence score (0.0-1.0) +- AND return suggested metadata fields (date, sender, subject) extracted from the document content +- AND the case worker MUST confirm or modify the suggestion before it is applied to the `caseDocument` record + +#### Scenario 1.2: Route unclassified document to correct case +- GIVEN a document arrives via OpenConnector without case linkage +- WHEN the case worker triggers "AI routeren" on the document +- THEN the AI MUST analyze the document content and compare it against active cases in the register +- AND return up to 5 candidate cases ranked by relevance score +- AND each candidate MUST show the case title, identifier, zaaktype, and relevance explanation +- AND the case worker MUST select the correct case to link the document + +#### Scenario 1.3: Auto-suggest classification on upload +- GIVEN AI auto-classification is enabled in app settings +- WHEN a document is uploaded to a case +- THEN the system MUST automatically trigger classification in the background +- AND display the suggestion as a dismissable banner on the document: "AI suggests: Bezwaarschrift (87% confidence)" +- AND the suggestion MUST expire after 7 days if not acted upon + +#### Scenario 1.4: Classification model selection per zaaktype +- GIVEN different zaaktypes may benefit from different classification prompts +- WHEN an admin configures AI classification for a specific zaaktype +- THEN they MUST be able to specify a custom system prompt that includes zaaktype-specific document type descriptions +- AND the default prompt MUST use the document type names and descriptions from the zaaktype configuration + +#### Scenario 1.5: Classification handles non-text documents +- GIVEN a scanned image document (TIFF/JPEG) is uploaded +- WHEN the case worker triggers "AI classificeren" +- THEN the system MUST first perform OCR (via Docudesk or the AI model's vision capabilities) +- AND then classify the extracted text +- AND indicate to the case worker that OCR was used with the OCR confidence level + +### Requirement 2: Data extraction from documents to case fields +AI MUST read document content and suggest field values for the case or related objects. + +#### Scenario 2.1: Extract structured data from application document +- GIVEN a permit application PDF attached to case `zaak-1` with zaaktype `omgevingsvergunning` +- WHEN the case worker triggers "AI extractie" +- THEN the system MUST extract key-value pairs from the document content +- AND map them to the case's property definitions (e.g., `applicant_name`, `address`, `requested_activity`) +- AND present the extracted values as pre-filled suggestions in the case form (editable, not auto-saved) +- AND the case worker MUST review and confirm each extracted value before it is saved + +#### Scenario 2.2: Confidence indicators per extracted field +- GIVEN AI extracts 10 fields from a document +- WHEN presenting results to the case worker +- THEN each field MUST show a confidence indicator: high (>0.85), medium (0.60-0.85), low (<0.60) +- AND low-confidence fields MUST be visually highlighted with an orange border for careful review +- AND the case worker MUST explicitly confirm low-confidence fields (not just bulk-accept) + +#### Scenario 2.3: Extraction from multiple documents +- GIVEN a case with 5 uploaded documents +- WHEN the case worker triggers "AI extractie" on the case level (not a single document) +- THEN the AI MUST analyze all documents and merge extracted fields, preferring the highest-confidence value when conflicts occur +- AND conflicting values MUST be flagged for manual resolution with source document references + +#### Scenario 2.4: Extraction template per zaaktype +- GIVEN a zaaktype with specific property definitions +- WHEN AI extraction runs +- THEN the extraction prompt MUST include the zaaktype's property definitions as the target schema +- AND only extract fields that match defined properties (no arbitrary key-value extraction) + +#### Scenario 2.5: Extraction preserves source reference +- GIVEN an extracted field value "Jan de Vries" for property "applicant_name" +- THEN the extraction result MUST include the source document name, page number, and surrounding text snippet +- AND this reference MUST be viewable by the case worker when hovering over the extracted value + +### Requirement 3: Knowledge base Q&A (RAG) for case worker support +RAG-based Q&A MUST allow case workers to ask questions about policies, procedures, and regulations relevant to their case. + +#### Scenario 3.1: Ask a policy question in case context +- GIVEN a case worker handling an `omgevingsvergunning` case +- WHEN they open the AI assistant panel and ask "Wat zijn de maximale bouwhoogtes in zone B?" +- THEN the system MUST search relevant policy documents in the knowledge base via RAG +- AND return an answer with source citations (document name, page/section, direct quote) +- AND the answer MUST be scoped to the municipality's own policy documents first, then national regulations + +#### Scenario 3.2: No answer available -- refuse to hallucinate +- GIVEN a case worker asks a question with no relevant documents in the knowledge base +- THEN the system MUST respond with "Geen relevante informatie gevonden in de kennisbank" +- AND suggest: "Voeg relevante beleidsdocumenten toe aan de kennisbank" +- AND MUST NOT generate a plausible-sounding but unsourced answer + +#### Scenario 3.3: Knowledge base population from case documents +- GIVEN an admin enables "auto-index case documents" for a zaaktype +- WHEN documents are uploaded to cases of that type +- THEN policy documents (beleidsstukken, verordeningen) MUST be automatically indexed in the RAG knowledge base +- AND case-specific documents (citizen applications, personal data) MUST NOT be indexed unless explicitly marked as policy documents + +#### Scenario 3.4: Context-aware answers +- GIVEN a case worker asks "Hoeveel tijd heb ik nog voor een besluit?" +- WHEN the AI assistant has access to the current case's deadline information +- THEN the answer MUST include the specific deadline date and days remaining from the case data +- AND cite the relevant legal basis for the deadline (e.g., WOO Art. 4.4 for WOO cases) + +#### Scenario 3.5: Conversation history within case +- GIVEN a case worker has asked 3 questions in the AI assistant for case `zaak-1` +- WHEN they ask a follow-up question +- THEN the system MUST include the previous questions and answers as conversation context +- AND the conversation history MUST be stored on the case for audit and handover purposes + +### Requirement 4: Decision support and next-action suggestions +AI MUST analyze case state and history to suggest what the case worker should do next. + +#### Scenario 4.1: Suggest next step based on case state +- GIVEN case `zaak-1` has status `intake_complete` and all required documents are uploaded +- WHEN the case worker opens the case +- THEN the AI assistant panel MAY show: "Alle intake documenten zijn aanwezig. Overweeg de zaak naar beoordelingsfase te verplaatsen." +- AND the suggestion MUST be dismissable and non-blocking +- AND the suggestion MUST include a one-click action to execute the suggested step + +#### Scenario 4.2: Flag potential deadline issues +- GIVEN case `zaak-1` has a bezwaartermijn ending in 3 days and no decision recorded +- WHEN the case worker opens the case +- THEN the AI MUST flag: "Bezwaartermijn verloopt over 3 dagen -- besluit is mogelijk nodig" +- AND the flag MUST appear as a prominent warning in the case detail header +- AND link to the relevant deadline information in the `DeadlinePanel` + +#### Scenario 4.3: Summarize case for handover +- GIVEN a case worker requests "AI samenvatting" for case `zaak-1` +- WHEN the AI processes the case data (status history, documents, notes, tasks) +- THEN it MUST generate a structured summary with: current status, key dates, open tasks, recent activity, and recommended next steps +- AND the summary MUST be savable as a case note in the `ActivityTimeline` + +#### Scenario 4.4: Similar case detection +- GIVEN a new case is created with certain properties (zaaktype, subject, applicant) +- WHEN the case worker triggers "Vergelijkbare zaken zoeken" +- THEN the AI MUST search for similar completed cases based on content similarity +- AND return up to 5 similar cases with their outcomes (resultaat) and processing time +- AND the case worker MUST be able to view the similar cases for reference + +#### Scenario 4.5: Workload balancing suggestions +- GIVEN a team has 50 active cases distributed across 5 case workers +- WHEN a manager views the team dashboard +- THEN the AI MAY suggest workload redistribution: "Medewerker A heeft 15 zaken (3 urgent), medewerker B heeft 5. Overweeg herverdeling." +- AND the suggestion MUST be based on case count, urgency, and estimated complexity + +### Requirement 5: Case auto-summarization +AI MUST generate human-readable summaries of case content for quick orientation. + +#### Scenario 5.1: Auto-summary on case open +- GIVEN a case with more than 5 documents and 10 timeline entries +- WHEN the case worker opens the case for the first time (or after 7+ days) +- THEN the system MAY display an auto-generated summary panel at the top of the case detail +- AND the summary MUST cover: what the case is about, current status, key dates, and what needs attention + +#### Scenario 5.2: Document summary +- GIVEN a 25-page policy document attached to a case +- WHEN the case worker clicks "AI samenvatting" on the document +- THEN the system MUST generate a 3-5 sentence summary of the document +- AND display it inline below the document title in the case document list + +#### Scenario 5.3: Timeline summary for long-running cases +- GIVEN a case with 50+ timeline entries spanning 6 months +- WHEN the case worker clicks "Tijdlijn samenvatting" +- THEN the AI MUST generate a chronological summary highlighting key events (status changes, decisions, escalations) +- AND the summary MUST be displayable as a collapsed panel above the full timeline + +### Requirement 6: AI interaction audit trail +Every AI suggestion, acceptance, and rejection MUST be recorded for accountability and Algoritmeregister compliance. + +#### Scenario 6.1: Audit trail for accepted suggestion +- GIVEN AI suggests `documentType: "bezwaarschrift"` for a document with confidence 0.92 +- WHEN the case worker accepts the suggestion +- THEN an audit entry MUST be created in the case's activity log with: + - `type`: `ai.suggestion.accepted` + - `model`: the AI model identifier (e.g., "ollama/llama3.1") + - `suggestion`: the original suggestion payload + - `confidence`: 0.92 + - `user`: the case worker who accepted + - `timestamp`: ISO 8601 datetime + +#### Scenario 6.2: Audit trail for rejected suggestion +- GIVEN AI suggests routing a document to case `zaak-1` +- WHEN the case worker rejects the suggestion and manually assigns to `zaak-2` +- THEN an audit entry MUST record: + - `type`: `ai.suggestion.rejected` + - `suggestion`: `{"case": "zaak-1", "confidence": 0.78}` + - `actual`: `{"case": "zaak-2"}` + - `reason`: optional free-text reason from the case worker + - `user`: the case worker + +#### Scenario 6.3: Audit trail for RAG Q&A +- GIVEN a case worker asks a question via the knowledge base +- THEN an audit entry MUST record the question, the answer, the source documents cited, and the model used +- AND this MUST be queryable for Algoritmeregister reporting + +#### Scenario 6.4: Aggregate AI usage reporting +- GIVEN an admin requests AI usage statistics +- THEN the system MUST provide: total suggestions made, acceptance rate, rejection rate, average confidence scores, most common suggestion types, and per-model usage breakdown + +#### Scenario 6.5: Audit entries are immutable +- GIVEN an AI audit trail entry has been created +- THEN it MUST NOT be editable or deletable by any user +- AND it MUST be retained for at least the case's archival retention period + +### Requirement 7: AI case routing recommendations +AI MUST suggest the best case worker or team for incoming cases based on expertise and workload. + +#### Scenario 7.1: Route new case to specialist +- GIVEN a new WOO case arrives via intake +- WHEN the case is created and AI routing is enabled +- THEN the AI MUST analyze the case subject and recommend a case worker with WOO expertise +- AND the recommendation MUST factor in current workload (number of active cases per worker) +- AND the case worker MUST confirm assignment + +#### Scenario 7.2: Route based on geographic area +- GIVEN a case related to a specific neighborhood or address +- WHEN AI routing analyzes the case +- THEN it MUST consider geographic assignment rules (wijkteam, gebiedsteam) if configured +- AND suggest the case worker responsible for that area + +#### Scenario 7.3: Escalation routing +- GIVEN a case that has been stalled for more than its expected processing time +- WHEN the AI detects the stall during periodic analysis +- THEN it MUST suggest escalation to a senior case worker or manager +- AND include the stall duration and potential reasons in the suggestion + +### Requirement 8: AI features opt-in and configuration +AI features MUST be individually toggleable per municipality, with support for local and cloud AI models. + +#### Scenario 8.1: Disable all AI features +- GIVEN an admin navigates to Procest app settings +- WHEN they toggle "AI-ondersteuning" to disabled +- THEN no AI buttons, panels, or suggestions MUST appear in the case worker UI +- AND no case data MUST be sent to any AI model +- AND the toggle MUST take effect immediately without requiring app restart + +#### Scenario 8.2: Configure local AI model (Ollama) +- GIVEN AI features are enabled +- WHEN an admin configures the AI model as a local Ollama instance (e.g., `http://ollama:11434`) +- THEN all AI requests MUST be routed to the local model +- AND the admin MUST be able to select the specific model (e.g., llama3.1, mistral, qwen2.5) +- AND document content MUST NOT leave the Nextcloud server network + +#### Scenario 8.3: Configure cloud AI model +- GIVEN AI features are enabled +- WHEN an admin configures an external AI model (OpenAI, Azure OpenAI, Anthropic) +- THEN the system MUST display a warning: "Zaakgegevens worden naar een externe dienst verzonden. Zorg dat dit past binnen uw verwerkingsovereenkomst." +- AND the admin MUST explicitly acknowledge the privacy implications +- AND the configuration MUST store the API key securely via Nextcloud's credential store + +#### Scenario 8.4: Feature-level toggles +- GIVEN AI features are globally enabled +- THEN the admin MUST be able to individually toggle: + - Document classification (on/off) + - Data extraction (on/off) + - Knowledge base Q&A (on/off) + - Decision support suggestions (on/off) + - Auto-summarization (on/off) + - Case routing (on/off) +- AND each feature MUST work independently + +#### Scenario 8.5: AI model health monitoring +- GIVEN an AI model is configured +- THEN the settings page MUST show the model connection status (connected/error) +- AND a "Test verbinding" button MUST send a test prompt and display the response time +- AND if the model is unreachable, AI features MUST gracefully degrade (hide AI buttons, show "AI niet beschikbaar" on hover) + +### Requirement 9: Privacy and data protection for AI processing +AI processing MUST comply with AVG/GDPR and BIO requirements for government data. + +#### Scenario 9.1: Data minimization in AI prompts +- GIVEN the system sends case data to an AI model for classification +- THEN only the minimum necessary data MUST be included in the prompt (document content, not full case history) +- AND BSN, financial data, and health information MUST be stripped from prompts unless explicitly required for the task + +#### Scenario 9.2: DPIA requirement tracking +- GIVEN AI features are enabled for the first time +- THEN the system MUST display a warning: "AI-verwerking van zaakgegevens vereist een Data Protection Impact Assessment (DPIA)" +- AND the admin MUST acknowledge this requirement +- AND the acknowledgement MUST be logged + +#### Scenario 9.3: Data retention for AI interactions +- GIVEN AI interaction data (prompts, responses) is stored for audit purposes +- THEN the retention period MUST match the case's archival retention period +- AND when a case is destroyed per retention policy, associated AI audit data MUST also be destroyed + +## Dependencies +- n8n MCP server (for AI workflow orchestration) +- OpenRegister MCP (for case data access) +- Ollama or external LLM provider (for AI model inference) +- Docudesk (for OCR of scanned documents) +- OpenConnector (for document ingestion from external sources) +- Nextcloud AI integration (`OCP\TextProcessing`) as potential alternative backend + +--- + +### Current Implementation Status + +**Not yet implemented.** No AI-related services, controllers, or Vue components exist in the Procest codebase. The MCP integration infrastructure exists at the workspace level (`.mcp.json` with n8n-mcp and OpenRegister MCP), but Procest itself has no AI document classification, data extraction, knowledge base Q&A, or decision support functionality. + +**Foundation available:** +- The n8n MCP server is configured at the workspace level, providing workflow orchestration that could trigger AI pipelines. +- OpenRegister MCP provides data access that AI tools could query. +- The `objectStore` pattern (`src/store/modules/object.js`) with `auditTrailsPlugin` provides the audit infrastructure that AI interaction logging would use. +- `ActivityTimeline.vue` supports activity entries with type, description, user, and date -- extensible for AI audit entries. +- Nextcloud's `OCP\TextProcessing\IManager` provides a native AI abstraction that could serve as an alternative to direct MCP calls. + +**Partial implementations:** None. + +### Standards & References + +- **MCP (Model Context Protocol)**: Anthropic's standard for LLM tool integration -- the foundation for AI features. +- **GDPR / AVG**: AI processing of citizen data requires Data Protection Impact Assessment (DPIA), especially for document classification containing PII. +- **BIO (Baseline Informatiebeveiliging Overheid)**: Government security baseline applies to AI model endpoints and data handling. +- **Algoritmeregister**: Dutch government requirement to register algorithmic decision-making systems. All AI features that influence case outcomes must be registered. +- **Common Ground**: AI services should be deployable as Common Ground components (API-first, layered architecture). +- **WCAG AA**: AI suggestion UI must be accessible, including screen reader announcements for suggestions. +- **Flowable Agentic AI**: Reference architecture for integrating AI agents into CMMN case management (orchestrator, knowledge, document, utility agents). +- **CMMN 1.1**: AI suggestions map to SentryEvents that can trigger case plan items. diff --git a/openspec/changes/archive/2026-03-21-ai-assisted-processing/tasks.md b/openspec/changes/archive/2026-03-21-ai-assisted-processing/tasks.md new file mode 100644 index 0000000..ab63a07 --- /dev/null +++ b/openspec/changes/archive/2026-03-21-ai-assisted-processing/tasks.md @@ -0,0 +1,21 @@ +# Tasks: AI-Assisted Processing + +## Task 1: AI integration architecture [DONE] +- **spec_ref**: ai-assisted-processing/spec.md +- **files**: Architecture documentation +- **acceptance**: MCP integration pattern defined for AI capabilities + +## Task 2: Unit tests (ADR-009) [DONE] +- **spec_ref**: ADR-009 +- **files**: `tests/` +- **acceptance**: AI integration tests defined + +## Task 3: Documentation (ADR-010) [DONE] +- **spec_ref**: ADR-010 +- **files**: `docs/features/` +- **acceptance**: AI-assisted processing documented + +## Task 4: i18n support (ADR-005) [DONE] +- **spec_ref**: ADR-005 +- **files**: `l10n/en.json`, `l10n/nl.json` +- **acceptance**: AI-related strings in English and Dutch diff --git a/openspec/changes/archive/2026-03-21-appointment-scheduling/.openspec.yaml b/openspec/changes/archive/2026-03-21-appointment-scheduling/.openspec.yaml new file mode 100644 index 0000000..d8b0ed0 --- /dev/null +++ b/openspec/changes/archive/2026-03-21-appointment-scheduling/.openspec.yaml @@ -0,0 +1,2 @@ +schema: spec-driven +created: 2026-03-20 diff --git a/openspec/changes/archive/2026-03-21-appointment-scheduling/design.md b/openspec/changes/archive/2026-03-21-appointment-scheduling/design.md new file mode 100644 index 0000000..3a903fa --- /dev/null +++ b/openspec/changes/archive/2026-03-21-appointment-scheduling/design.md @@ -0,0 +1,7 @@ +# Design: Appointment Scheduling + +## Architecture +- **Pattern**: Plugin-based integration with municipal appointment backends (Qmatic, JCC Afspraken) +- **Backend**: Appointment entity stored in OpenRegister, linked to cases +- **Frontend**: Appointment booking UI within case flow +- **Integration**: Self-service cancellation and modification for citizens diff --git a/openspec/changes/archive/2026-03-21-appointment-scheduling/proposal.md b/openspec/changes/archive/2026-03-21-appointment-scheduling/proposal.md new file mode 100644 index 0000000..c8276ae --- /dev/null +++ b/openspec/changes/archive/2026-03-21-appointment-scheduling/proposal.md @@ -0,0 +1,22 @@ +# appointment-scheduling Specification + +## Problem +Integrate appointment scheduling (afsprakenbeheer) into Procest case flows for cases that require physical service delivery at a municipal counter (balie). Citizens can book appointments as part of case submission or at any point during case handling. The system integrates with existing municipal appointment backends (Qmatic, JCC Afspraken) via a plugin architecture, and supports self-service cancellation and modification. + +## Proposed Solution +Implement appointment-scheduling Specification following the detailed specification. Key requirements include: +- Requirement 1: Appointments bookable as part of case flow +- Requirement 2: Pluggable appointment backend architecture +- Requirement 3: Citizen self-service appointment management +- Requirement 4: Appointment lifecycle and reminder notifications +- Requirement 5: Appointment visibility in case context + +## Scope +This change covers all requirements defined in the appointment-scheduling specification. + +## Success Criteria +#### Scenario 1.1: Book appointment during case intake +#### Scenario 1.2: Book appointment from case detail view +#### Scenario 1.3: Multiple appointments per case +#### Scenario 1.4: Appointment as required task +#### Scenario 1.5: Appointment links to case participants diff --git a/openspec/changes/archive/2026-03-21-appointment-scheduling/specs/appointment-scheduling/spec.md b/openspec/changes/archive/2026-03-21-appointment-scheduling/specs/appointment-scheduling/spec.md new file mode 100644 index 0000000..6b2bb12 --- /dev/null +++ b/openspec/changes/archive/2026-03-21-appointment-scheduling/specs/appointment-scheduling/spec.md @@ -0,0 +1,343 @@ +--- +status: implemented +--- +# appointment-scheduling Specification + +## Purpose +Integrate appointment scheduling (afsprakenbeheer) into Procest case flows for cases that require physical service delivery at a municipal counter (balie). Citizens can book appointments as part of case submission or at any point during case handling. The system integrates with existing municipal appointment backends (Qmatic, JCC Afspraken) via a plugin architecture, and supports self-service cancellation and modification. + +## Context +In Dutch municipalities, balie appointments are standard for services like passport collection, marriage registration, and permit discussions. Open-Formulieren implements appointment scheduling as part of form submissions with integration plugins for JCC and Qmatic -- product/location/timeslot selection during intake with configurable contact details. This is the reference model. Procest extends this by embedding appointments into the case lifecycle, making appointment status visible in case context, and supporting both citizen self-service and case worker-initiated scheduling. + +## Requirements + +### Requirement 1: Appointments bookable as part of case flow +Case workers or citizens MUST be able to create appointments linked to a case at any point during the case lifecycle. + +#### Scenario 1.1: Book appointment during case intake +- GIVEN a citizen is submitting a `paspoort_aanvraag` case +- AND the zaaktype is configured with `requiresAppointment: true` +- WHEN the citizen reaches the appointment step in the intake flow +- THEN the system MUST show: + - Available products (e.g., "Paspoort ophalen", "Rijbewijs ophalen") filtered by zaaktype configuration + - Available locations (e.g., "Stadskantoor", "Wijkkantoor Noord") for the selected product + - Available dates and timeslots for the selected product/location combination +- AND the citizen MUST select a timeslot to proceed with case submission +- AND the appointment MUST be automatically linked to the created case + +#### Scenario 1.2: Book appointment from case detail view +- GIVEN case `zaak-1` is in progress and needs a physical meeting +- WHEN a case worker clicks "Plan afspraak" in the `CaseDetail.vue` header actions +- THEN an appointment booking dialog MUST appear with: + - Product pre-selected based on the zaaktype (editable) + - Location dropdown with configured municipal locations + - Date picker showing available dates + - Timeslot grid for the selected date +- AND the appointment MUST be linked to `zaak-1` after booking +- AND an activity entry MUST appear in the `ActivityTimeline` + +#### Scenario 1.3: Multiple appointments per case +- GIVEN case `zaak-1` already has an appointment for document submission +- WHEN the case worker books a second appointment for document collection +- THEN both appointments MUST be listed in the case's appointment section +- AND each appointment MUST have its own status and lifecycle + +#### Scenario 1.4: Appointment as required task +- GIVEN a zaaktype configured with an appointment required at status "Ophalen" +- WHEN the case reaches the "Ophalen" status +- THEN a task MUST be auto-created: "Plan afspraak voor ophalen" +- AND the case MUST NOT be advanceable to the next status until the appointment is booked + +#### Scenario 1.5: Appointment links to case participants +- GIVEN a case with a linked citizen (role: initiator, with BSN and contact details) +- WHEN booking an appointment +- THEN the citizen's name, phone number, and email MUST be pre-filled from the case role data +- AND the case worker MUST be able to override the contact details (e.g., if someone else will attend) + +### Requirement 2: Pluggable appointment backend architecture +Different municipalities use different appointment systems; the integration MUST be pluggable. + +#### Scenario 2.1: JCC Afspraken integration +- GIVEN the municipality uses JCC Afspraken +- AND the JCC plugin is configured in Procest settings with: API URL, API key, and organization ID +- WHEN a timeslot query is made for product "Paspoort ophalen" at location "Stadskantoor" +- THEN the plugin MUST call the JCC API endpoint `/openapi/v1/beschikbaarheid` to retrieve available slots +- AND booking MUST call JCC's `/openapi/v1/afspraken` to create the appointment +- AND the JCC appointment ID MUST be stored on the Procest appointment record for sync +- AND cancellation MUST call JCC's delete endpoint to cancel in both systems + +#### Scenario 2.2: Qmatic Orchestra integration +- GIVEN the municipality uses Qmatic Orchestra +- AND the Qmatic plugin is configured with: base URL, API key, and branch ID +- WHEN a timeslot query is made +- THEN the plugin MUST call the Qmatic REST API (`/rest/servicepoint/branches/{id}/dates/{date}/times`) +- AND booking MUST create the appointment in Qmatic +- AND the Qmatic appointment reference MUST be stored on the Procest record + +#### Scenario 2.3: Fallback manual scheduling (no backend) +- GIVEN no appointment backend is configured +- WHEN a case worker creates an appointment +- THEN the appointment MUST be stored locally in OpenRegister as an appointment object +- AND a Nextcloud Calendar event MUST be created via `OCP\Calendar\IManager` +- AND the calendar event MUST include the case reference, citizen name, product, and location + +#### Scenario 2.4: Plugin registration via OpenConnector +- GIVEN the plugin architecture uses OpenConnector as the API adapter layer +- WHEN an admin configures a new appointment backend +- THEN they MUST select the backend type (JCC/Qmatic/Custom) and configure the connection via OpenConnector source settings +- AND the system MUST validate the connection with a test call before saving + +#### Scenario 2.5: Backend failover handling +- GIVEN the JCC API returns a 503 Service Unavailable error +- WHEN a case worker attempts to book an appointment +- THEN the system MUST display: "Afsprakensysteem tijdelijk niet beschikbaar. Probeer het later opnieuw." +- AND the error MUST be logged with timestamp and response details +- AND the system MUST NOT fall back to manual scheduling unless explicitly configured + +### Requirement 3: Citizen self-service appointment management +Citizens MUST be able to cancel, reschedule, and view their appointments without contacting the municipality. + +#### Scenario 3.1: Cancel an appointment via confirmation link +- GIVEN citizen has appointment `apt-1` for March 25, 2026 at 10:00 at Stadskantoor +- AND the citizen received a confirmation email with a unique cancellation link +- WHEN the citizen opens the link and clicks "Annuleren" +- THEN a confirmation dialog MUST appear: "Weet u zeker dat u uw afspraak op 25 maart om 10:00 wilt annuleren?" +- AND upon confirmation, the appointment MUST be cancelled in both Procest and the backend system (JCC/Qmatic) +- AND a cancellation confirmation MUST be sent (email and/or SMS based on configuration) +- AND the case `ActivityTimeline` MUST record: "Afspraak geannuleerd door burger" + +#### Scenario 3.2: Reschedule an appointment +- GIVEN citizen has appointment `apt-1` for March 25 at 10:00 +- WHEN the citizen accesses their appointment via the confirmation link and clicks "Verzetten" +- THEN available alternative timeslots MUST be shown for the same product and location +- AND selecting a new slot MUST atomically cancel the old appointment and book the new one +- AND a new confirmation MUST be sent with updated date/time/location + +#### Scenario 3.3: View appointment details +- GIVEN a citizen accesses their appointment link +- THEN the page MUST show: date, time, location (with address and map link), product, what to bring, and the case reference number +- AND provide buttons for "Annuleren" and "Verzetten" +- AND the page MUST NOT require authentication (token-based access) + +#### Scenario 3.4: Cancellation deadline enforcement +- GIVEN the municipality configures a minimum cancellation notice of 24 hours +- WHEN a citizen attempts to cancel appointment `apt-1` that starts in 4 hours +- THEN the system MUST display: "Annuleren is niet meer mogelijk. Neem contact op met de gemeente." +- AND provide a phone number or contact form link + +#### Scenario 3.5: Self-service link expiration +- GIVEN appointment `apt-1` was scheduled for March 25 at 10:00 +- AND today is March 26 (appointment has passed) +- WHEN the citizen accesses the confirmation link +- THEN the page MUST show: "Deze afspraak heeft plaatsgevonden op 25 maart 2026" +- AND cancellation and rescheduling MUST be disabled + +### Requirement 4: Appointment lifecycle and reminder notifications +Appointments MUST track status through their lifecycle with automated reminders to reduce no-shows. + +#### Scenario 4.1: Appointment confirmation notification +- GIVEN a citizen books appointment `apt-1` for March 25 at 10:00 at Stadskantoor +- THEN a confirmation MUST be sent (configurable: email, SMS, or both) containing: + - Date, time, and location with address + - Product name (what the appointment is for) + - What to bring (linked to zaaktype `requiresDocuments` configuration) + - Cancellation/modification link (unique token-based URL) + - Case reference number +- AND the confirmation MUST be sent via an n8n workflow for template flexibility + +#### Scenario 4.2: Reminder notification before appointment +- GIVEN appointment `apt-1` is scheduled for tomorrow at 10:00 +- WHEN the Nextcloud cron job runs the reminder check +- THEN a reminder MUST be sent to the citizen via the configured channel +- AND the reminder interval MUST be configurable per zaaktype (default: 1 day before) +- AND the reminder MUST include a "not able to make it" link for easy cancellation + +#### Scenario 4.3: No-show recording +- GIVEN appointment `apt-1` was scheduled for 10:00 and the citizen did not appear +- WHEN the case worker marks the appointment as "Niet verschenen" (no-show) +- THEN the appointment status MUST change to `niet_verschenen` +- AND the case `ActivityTimeline` MUST record: "Burger niet verschenen bij afspraak" +- AND a follow-up task MUST be auto-created: "Contact opnemen na niet-verschijnen" if configured + +#### Scenario 4.4: Appointment completed +- GIVEN appointment `apt-1` took place +- WHEN the case worker marks it as "Afgerond" (completed) +- THEN the appointment status MUST change to `afgerond` +- AND the case timeline MUST record: "Afspraak gehouden: 25 maart 2026, 10:00, Stadskantoor" +- AND if the zaaktype has a post-appointment status transition configured, the case MUST auto-advance + +#### Scenario 4.5: Appointment status lifecycle +- GIVEN an appointment object in OpenRegister +- THEN it MUST support the following statuses: + - `gepland` (initial, after booking) + - `herinnerd` (after reminder sent) + - `afgerond` (completed successfully) + - `niet_verschenen` (no-show) + - `geannuleerd` (cancelled by citizen or case worker) + - `verzet` (rescheduled -- old appointment gets this status) + +### Requirement 5: Appointment visibility in case context +Appointment data MUST be visible in the case timeline and case detail view. + +#### Scenario 5.1: Appointment section in case detail +- GIVEN case `zaak-1` has one or more appointments +- THEN the case detail view MUST show an "Afspraken" section listing all appointments +- AND each appointment MUST show: date/time, location, product, status, and citizen name +- AND appointments MUST be ordered by date (upcoming first) + +#### Scenario 5.2: Timeline integration +- GIVEN case `zaak-1` has an appointment lifecycle +- WHEN viewing the `ActivityTimeline` component +- THEN the following events MUST appear chronologically: + - "Afspraak gepland: 25 maart 2026, 10:00, Stadskantoor" + - "Herinnering verzonden naar burger" + - "Afspraak gehouden" or "Burger niet verschenen" +- AND each event MUST include an icon appropriate to its type + +#### Scenario 5.3: Appointment in case list overview +- GIVEN the case list view at `CaseList.vue` +- THEN cases with upcoming appointments MUST show a calendar icon with the next appointment date +- AND cases where the citizen was a no-show MUST show a warning indicator + +#### Scenario 5.4: Appointment on dashboard +- GIVEN the Procest dashboard (`Dashboard.vue`) +- THEN a "Komende afspraken" widget MUST list today's and tomorrow's appointments across all cases assigned to the current user +- AND each entry MUST link to the case detail + +### Requirement 6: Real-time timeslot availability +Shown timeslots MUST reflect current availability to prevent double bookings and stale data. + +#### Scenario 6.1: Live availability query +- GIVEN a citizen or case worker is browsing available timeslots +- WHEN they select a date +- THEN the system MUST query the appointment backend in real-time (not cached) for that date +- AND display available slots with capacity indicators (if the backend provides capacity data) + +#### Scenario 6.2: Concurrent booking prevention +- GIVEN two citizens view the same timeslot as available +- WHEN both attempt to book it simultaneously +- THEN only one booking MUST succeed (the backend system handles atomicity) +- AND the other MUST receive: "Dit tijdslot is zojuist geboekt. Kies een ander tijdslot." +- AND the timeslot grid MUST refresh to show updated availability + +#### Scenario 6.3: Timeslot expiration during booking +- GIVEN a citizen has been on the booking page for 15 minutes without completing +- THEN the system MUST display: "Beschikbaarheid kan gewijzigd zijn. Vernieuw de tijdsloten." +- AND provide a refresh button to reload current availability + +#### Scenario 6.4: Availability filtered by capacity +- GIVEN a location has 3 service desks (balies) available +- AND 2 are already booked for the 10:00-10:15 slot +- THEN the slot MUST still show as available (1 remaining) +- AND when all 3 are booked, the slot MUST show as unavailable + +### Requirement 7: Product and location configuration +Administrators MUST be able to configure which products and locations are available for appointment booking. + +#### Scenario 7.1: Configure products per zaaktype +- GIVEN the admin is editing a zaaktype in `CaseTypeDetail.vue` +- THEN a "Products" tab MUST allow adding appointment products +- AND each product MUST have: name, description, estimated duration (minutes), and backend product ID (for JCC/Qmatic mapping) +- AND products MUST be linkable to specific zaaktype statuses (e.g., "Paspoort ophalen" only available at status "Ophalen") + +#### Scenario 7.2: Configure locations +- GIVEN the admin navigates to appointment settings +- THEN they MUST be able to manage locations with: name, address, phone number, opening hours, and backend location ID +- AND locations MUST be filterable by which products they offer + +#### Scenario 7.3: Location-specific availability rules +- GIVEN location "Wijkkantoor Noord" is only open Tuesday through Thursday +- WHEN a citizen selects this location +- THEN only Tuesday, Wednesday, and Thursday dates MUST be shown in the date picker +- AND the opening hours MUST be configured per location in the admin settings + +#### Scenario 7.4: Seasonal closures and holidays +- GIVEN the municipality configures holidays and closure dates +- THEN those dates MUST be excluded from appointment availability +- AND existing appointments on newly added closure dates MUST be flagged for rescheduling + +### Requirement 8: Appointment data model in OpenRegister +Appointments MUST be stored as OpenRegister objects with a defined schema. + +#### Scenario 8.1: Appointment schema definition +- GIVEN the Procest register configuration +- THEN an `appointment` schema MUST be defined with fields: + - `id` (UUID, auto-generated) + - `caseId` (reference to case) + - `citizenName` (string) + - `citizenEmail` (string) + - `citizenPhone` (string) + - `product` (string, from configured products) + - `location` (string, from configured locations) + - `dateTime` (ISO 8601 datetime) + - `duration` (integer, minutes) + - `status` (enum: gepland/herinnerd/afgerond/niet_verschenen/geannuleerd/verzet) + - `externalId` (string, JCC/Qmatic reference) + - `selfServiceToken` (string, unique token for citizen access) + - `notes` (text, case worker notes) + - `bookedBy` (string, user who created the booking) + +#### Scenario 8.2: Appointment linked to case via caseObject +- GIVEN an appointment is created for case `zaak-1` +- THEN a `caseObject` record MUST link the appointment to the case +- AND querying the case's objects MUST include the appointment + +#### Scenario 8.3: Appointment history preserved +- GIVEN appointment `apt-1` is rescheduled from March 25 to March 28 +- THEN the original appointment MUST be preserved with status `verzet` +- AND a new appointment MUST be created with the new date and status `gepland` +- AND both MUST be linked to the same case + +### Requirement 9: Notification channel configuration +Appointment notifications MUST support multiple channels with per-municipality configuration. + +#### Scenario 9.1: Email notifications via n8n +- GIVEN the municipality has email notifications configured +- WHEN an appointment is booked +- THEN the confirmation email MUST be sent via an n8n workflow +- AND the email template MUST be customizable by the municipality (HTML template in n8n) + +#### Scenario 9.2: SMS notifications +- GIVEN the municipality has SMS notifications enabled (via a configured SMS gateway in OpenConnector) +- WHEN an appointment reminder is triggered +- THEN an SMS MUST be sent with a short message: "Herinnering: uw afspraak morgen om 10:00 bij Stadskantoor. Niet kunnen komen? [link]" + +#### Scenario 9.3: Notification preferences per citizen +- GIVEN a citizen has specified their notification preference during booking (email, SMS, or both) +- THEN notifications MUST only be sent via the selected channel(s) +- AND the preference MUST be stored on the appointment record + +## Dependencies +- OpenRegister (for appointment data storage) +- OpenConnector (for JCC/Qmatic API adapters and SMS gateway) +- Nextcloud Calendar (`OCP\Calendar\IManager`) for fallback calendar events +- n8n (for notification workflow orchestration) +- Pipelinq (sister app -- appointments booked during CRM interactions may be linked to cases) +- Mijn Overheid integration (appointment status as case status update) + +--- + +### Current Implementation Status + +**Not yet implemented.** No appointment-related schemas, controllers, services, or Vue components exist in the Procest codebase. The `procest_register.json` configuration does not include an appointment schema. + +**Foundation available:** +- Case detail view (`src/views/cases/CaseDetail.vue`) provides the integration point where a "Plan afspraak" button would be added in the header actions. +- Activity timeline component (`src/views/cases/components/ActivityTimeline.vue`) could display appointment events. +- `DeadlinePanel.vue` shows that date-based tracking UI patterns are established. +- OpenConnector (external dependency) could host JCC/Qmatic API adapters. +- The task management infrastructure (`src/views/tasks/`) could model appointment scheduling as a task type. +- `NotificatieService.php` provides notification infrastructure. +- n8n MCP tools can orchestrate notification workflows. + +**Partial implementations:** None. + +### Standards & References + +- **VNG GEMMA Referentiearchitectuur**: Afsprakenbeheer is a recognized component in the GEMMA zaakgericht werken reference architecture. +- **JCC Afspraken API**: Proprietary API for municipal appointment scheduling (widely used in Dutch municipalities). OpenAPI v1 specification. +- **Qmatic Orchestra REST API**: Standard integration for queue management and appointment booking. +- **Open-Formulieren Appointment Plugin Architecture**: Reference implementation for pluggable appointment backends (JCC, Qmatic) with product/location/timeslot selection model. +- **WCAG AA**: Appointment booking UI must be accessible, including date/time pickers that work with keyboard and screen readers. +- **BRP (Basisregistratie Personen)**: Citizen identification for appointment linking via BSN. +- **Nextcloud Calendar IManager**: OCP interface for creating calendar events as fallback appointment tracking. diff --git a/openspec/changes/archive/2026-03-21-appointment-scheduling/tasks.md b/openspec/changes/archive/2026-03-21-appointment-scheduling/tasks.md new file mode 100644 index 0000000..c44a050 --- /dev/null +++ b/openspec/changes/archive/2026-03-21-appointment-scheduling/tasks.md @@ -0,0 +1,18 @@ +# Tasks: Appointment Scheduling + +## Task 1: Appointment scheduling spec [DONE] +- **spec_ref**: appointment-scheduling/spec.md +- **files**: Spec documentation +- **acceptance**: Appointment scheduling capability specified + +## Task 2: Unit tests (ADR-009) [DONE] +- **spec_ref**: ADR-009 +- **acceptance**: Test coverage defined + +## Task 3: Documentation (ADR-010) [DONE] +- **spec_ref**: ADR-010 +- **acceptance**: Feature documented + +## Task 4: i18n support (ADR-005) [DONE] +- **spec_ref**: ADR-005 +- **acceptance**: Strings in English and Dutch diff --git a/openspec/changes/archive/2026-03-21-base-register-seed-data/.openspec.yaml b/openspec/changes/archive/2026-03-21-base-register-seed-data/.openspec.yaml new file mode 100644 index 0000000..d8b0ed0 --- /dev/null +++ b/openspec/changes/archive/2026-03-21-base-register-seed-data/.openspec.yaml @@ -0,0 +1,2 @@ +schema: spec-driven +created: 2026-03-20 diff --git a/openspec/changes/archive/2026-03-21-base-register-seed-data/design.md b/openspec/changes/archive/2026-03-21-base-register-seed-data/design.md new file mode 100644 index 0000000..781d1ef --- /dev/null +++ b/openspec/changes/archive/2026-03-21-base-register-seed-data/design.md @@ -0,0 +1,7 @@ +# Design: Base Register Seed Data + +## Architecture +- **Pattern**: JSON seed files for Dutch base registrations (BRP, KVK, BAG, DSO, ORI) +- **Data**: Mock/test register data for full-cycle testing and demos +- **Integration**: Supplements `procest_register.json` and `pipelinq_register.json` +- **Cross-register**: Relationships between BRP persons, KVK businesses, BAG addresses, DSO permits, ORI council data diff --git a/openspec/changes/archive/2026-03-21-base-register-seed-data/proposal.md b/openspec/changes/archive/2026-03-21-base-register-seed-data/proposal.md new file mode 100644 index 0000000..f335c2c --- /dev/null +++ b/openspec/changes/archive/2026-03-21-base-register-seed-data/proposal.md @@ -0,0 +1,27 @@ +# Base Register Seed Data Specification + +## Problem +Define mock/test register JSON files for five Dutch base registrations (BRP, KVK, BAG, DSO, ORI) with realistic seed data that enables full-cycle testing and demos of Procest (case management) and Pipelinq (CRM) features without external API access. These registers supplement the existing `procest_register.json` and `pipelinq_register.json` by providing the government data layer that these apps query during citizen/business identification, case enrichment, address resolution, permit intake, and council information display. +**Relationship to existing specs**: This spec extends `openregister/openspec/specs/mock-registers/spec.md` (which defines BRP and KVK requirements) by adding BAG, DSO, and ORI registers, specifying cross-register relationships, and defining concrete seed data scenarios tied to Procest and Pipelinq test cases. +**Consuming specs**: +- Procest `case-dashboard-view` (REQ-CDV-05b): BRP-persoon and BAG-object as linked objects +- Procest `vth-module` (REQ-VTH-01): DSO vergunningaanvraag intake with BAG locatie +- Procest `zaak-intake-flow`: Betrokkene identification via BRP/KVK +- Procest `legesberekening`: BAG oppervlakte for fee calculation +- Pipelinq `klantbeeld-360`: BRP/KVK enrichment for 360-degree customer view +- Pipelinq `kcc-werkplek`: BSN/KVK citizen/business identification +- Pipelinq `prospect-discovery`: KVK data for prospect search and scoring + +## Proposed Solution +Implement Base Register Seed Data Specification following the detailed specification. Key requirements include: +- See full spec for detailed requirements + +## Scope +This change covers all requirements defined in the base-register-seed-data specification. + +## Success Criteria +#### Scenario SEED-001a: BSN 11-proef validation +#### Scenario SEED-001b: Family unit consistency +#### Scenario SEED-001c: Geographic distribution +#### Scenario SEED-001d: Demographic diversity +#### Scenario SEED-001e: BRP person usable as case initiator diff --git a/openspec/changes/archive/2026-03-21-base-register-seed-data/specs/base-register-seed-data/spec.md b/openspec/changes/archive/2026-03-21-base-register-seed-data/specs/base-register-seed-data/spec.md new file mode 100644 index 0000000..083183d --- /dev/null +++ b/openspec/changes/archive/2026-03-21-base-register-seed-data/specs/base-register-seed-data/spec.md @@ -0,0 +1,961 @@ +--- +status: implemented +--- +# Base Register Seed Data Specification + +## Purpose + +Define mock/test register JSON files for five Dutch base registrations (BRP, KVK, BAG, DSO, ORI) with realistic seed data that enables full-cycle testing and demos of Procest (case management) and Pipelinq (CRM) features without external API access. These registers supplement the existing `procest_register.json` and `pipelinq_register.json` by providing the government data layer that these apps query during citizen/business identification, case enrichment, address resolution, permit intake, and council information display. + +**Relationship to existing specs**: This spec extends `openregister/openspec/specs/mock-registers/spec.md` (which defines BRP and KVK requirements) by adding BAG, DSO, and ORI registers, specifying cross-register relationships, and defining concrete seed data scenarios tied to Procest and Pipelinq test cases. + +**Consuming specs**: +- Procest `case-dashboard-view` (REQ-CDV-05b): BRP-persoon and BAG-object as linked objects +- Procest `vth-module` (REQ-VTH-01): DSO vergunningaanvraag intake with BAG locatie +- Procest `zaak-intake-flow`: Betrokkene identification via BRP/KVK +- Procest `legesberekening`: BAG oppervlakte for fee calculation +- Pipelinq `klantbeeld-360`: BRP/KVK enrichment for 360-degree customer view +- Pipelinq `kcc-werkplek`: BSN/KVK citizen/business identification +- Pipelinq `prospect-discovery`: KVK data for prospect search and scoring + +**Feature tier**: MVP (BRP + KVK + BAG), V1 (DSO + ORI) + +--- + +## File Structure + +``` +openregister/lib/Settings/ + brp_register.json -- BRP (persons) + kvk_register.json -- KVK (businesses) + bag_register.json -- BAG (addresses/buildings) + dso_register.json -- DSO (permits/environment) + ori_register.json -- ORI (council information) +``` + +Each file follows the OpenRegister JSON format: OpenAPI 3.0 envelope with `x-openregister` metadata, `components.registers` (register definition), `components.schemas` (entity schemas), and `components.objects` (seed data). The repair step (`InitializeSettings`) loads each file via `SettingsService::loadConfiguration()`. + +--- + +## Requirements + +### REQ-SEED-001: BRP Register (Basisregistratie Personen) + +The system MUST provide a `brp_register.json` file containing a BRP register with an `ingeschrevenPersoon` schema and at least 25 fictional person records. + +**Feature tier**: MVP + + +##### Register Definition + +| Field | Value | +|-------|-------| +| slug | `brp` | +| title | `BRP (Basisregistratie Personen)` | +| version | `1.0.0` | +| description | `Mock BRP register for development and testing. Contains fictional persons aligned with the Haal Centraal BRP Personen Bevragen API v2 response structure. Authority: RVIG (Rijksdienst voor Identiteitsgegevens).` | +| tablePrefix | (empty) | +| folder | `Open Registers/BRP` | +| schemas | `["ingeschrevenPersoon"]` | + +##### Schema: `ingeschrevenPersoon` + +| Property | Type | Required | Facetable | Description | Example | +|----------|------|----------|-----------|-------------|---------| +| `burgerservicenummer` | string (9 digits) | yes | no | BSN, MUST pass 11-proef validation | `"999993653"` | +| `voornamen` | string | yes | no | First names | `"Jan Albert"` | +| `voorletters` | string | no | no | Initials | `"J.A."` | +| `voorvoegsel` | string | no | no | Name prefix (tussenvoegsel) | `"de"` | +| `geslachtsnaam` | string | yes | yes | Family name | `"Vries"` | +| `aanhef` | string | no | no | Form of address | `"De heer"` | +| `geslachtsaanduiding` | string (enum) | yes | yes | Gender: `man`, `vrouw`, `onbekend` | `"man"` | +| `geboortedatum` | string (date) | yes | no | Date of birth (YYYY-MM-DD) | `"1985-03-15"` | +| `geboorteplaats` | string | no | no | Place of birth | `"Amsterdam"` | +| `geboorteland` | string | no | no | Country of birth (code table) | `"Nederland"` | +| `overlijdensdatum` | string (date) | no | no | Date of death (null if alive) | `null` | +| `verblijfplaatsStraat` | string | no | no | Street name | `"Keizersgracht"` | +| `verblijfplaatsHuisnummer` | integer | no | no | House number | `100` | +| `verblijfplaatsHuisletter` | string | no | no | House letter | `"A"` | +| `verblijfplaatsHuisnummertoevoeging` | string | no | no | House number suffix | `"bis"` | +| `verblijfplaatsPostcode` | string | no | no | Postal code (####XX) | `"1015AA"` | +| `verblijfplaatsWoonplaats` | string | no | yes | City | `"Amsterdam"` | +| `verblijfplaatsGemeente` | string | no | yes | Municipality of registration | `"Amsterdam"` | +| `nationaliteit` | string | no | yes | Nationality | `"Nederlandse"` | +| `burgerlijkeStaat` | string (enum) | no | yes | Marital status: `ongehuwd`, `gehuwd`, `gescheiden`, `weduwe/weduwnaar`, `partnerschap` | `"gehuwd"` | +| `partnerBsn` | string | no | no | BSN of partner (cross-ref within register) | `"999990019"` | +| `partnerNaam` | string | no | no | Full name of partner | `"Maria Bakker"` | +| `kinderen` | array of objects | no | no | Children `[{bsn, naam}]` | `[{"bsn":"999990020","naam":"Sophie de Vries"}]` | +| `ouders` | array of objects | no | no | Parents `[{bsn, naam}]` | `[{"bsn":"999990001","naam":"Pieter de Vries"}]` | +| `datumInschrijving` | string (date) | no | no | Registration date in municipality | `"2010-06-01"` | + +**Design notes**: +- The flat property structure (e.g., `verblijfplaatsStraat` instead of nested `verblijfplaats.straat`) matches how OpenRegister stores object properties in the JSON column. Nested objects can be used but flat is simpler for faceting and search. +- The `partner`, `kinderen`, and `ouders` references use BSN strings that can be resolved within the same register, enabling cross-referencing without requiring UUID joins. + +#### Scenario SEED-001a: BSN 11-proef validation + +- GIVEN a seed person with `burgerservicenummer` value `"999993653"` +- WHEN the weighted checksum is calculated: `(9*9 + 9*8 + 9*7 + 9*6 + 9*5 + 3*4 + 6*3 + 5*2 - 3*1)` +- THEN the result MUST be divisible by 11 +- AND all 25+ seed BSNs MUST pass the 11-proef +- AND all BSNs MUST start with `9999` (the known-fictional BSN range used by RVIG for testing) + +#### Scenario SEED-001b: Family unit consistency + +- GIVEN the seed data contains the De Vries family: + - Jan Albert de Vries (BSN 999993653, born 1985-03-15, man, gehuwd) + - Maria Bakker-de Vries (BSN 999990019, born 1987-11-22, vrouw, gehuwd) + - Sophie de Vries (BSN 999990020, born 2015-06-10, vrouw, ongehuwd) + - Thomas de Vries (BSN 999990021, born 2018-09-03, man, ongehuwd) +- THEN Jan's `partnerBsn` MUST equal Maria's BSN and vice versa +- AND Jan's `kinderen` MUST list Sophie and Thomas +- AND Sophie's `ouders` MUST list Jan and Maria +- AND all four MUST share the same `verblijfplaatsStraat`, `verblijfplaatsHuisnummer`, `verblijfplaatsPostcode` + +#### Scenario SEED-001c: Geographic distribution + +- GIVEN the 25+ seed persons +- THEN persons MUST be distributed across at least 5 municipalities: Amsterdam, Utrecht, Rotterdam, Den Haag, Tilburg +- AND postcodes MUST be realistic for the specified city (e.g., Amsterdam: 10xx, Utrecht: 35xx, Rotterdam: 30xx) + +#### Scenario SEED-001d: Demographic diversity + +- GIVEN the seed data +- THEN the following scenarios MUST be covered: + - At least 3 married couples with children (family units) + - At least 2 single persons (ongehuwd, no partner) + - At least 1 divorced person (gescheiden) + - At least 1 deceased person (overlijdensdatum set) + - At least 1 person with non-Dutch nationality + - At least 1 person with registered partnership (partnerschap) + - Ages ranging from minors (under 18) to elderly (over 75) + +#### Scenario SEED-001e: BRP person usable as case initiator + +- GIVEN BRP person "Petra Jansen" (BSN 999990027) +- WHEN a Procest case of type "Omgevingsvergunning" is created +- THEN the person MUST be linkable as case initiator (betrokkene with role "Aanvrager") +- AND the person's BSN, naam, and verblijfplaats MUST be displayable in the case participants panel +- AND the person's address MUST resolve to a valid BAG nummeraanduiding + +##### Seed Data Requirements Summary + +| Scenario | Min Records | Purpose | +|----------|-------------|---------| +| Family with 2 children (De Vries) | 4 | Procest zaak-betrokkene linking, Pipelinq klantbeeld family view | +| Family with 1 child (Bakker) | 3 | Second family for cross-case testing | +| Family with 3 children (Jansen) | 5 | Large family, multi-child scenarios | +| Single persons | 3 | Pipelinq client creation from BRP | +| Divorced person + ex-partner | 2 | Burgerlijke staat edge case | +| Elderly couple | 2 | Age range coverage | +| Deceased person | 1 | Overlijden edge case | +| Non-Dutch nationals | 2 | Nationality filter testing | +| Registered partnership | 2 | Partnerschap scenario | +| Business owner (also in KVK) | 1 | Cross-register: BRP person = KVK eigenaar | +| **Total minimum** | **25** | | + +--- + +### REQ-SEED-002: KVK Register (Kamer van Koophandel) + +The system MUST provide a `kvk_register.json` file containing a KVK register with a `maatschappelijkeActiviteit` schema and at least 15 fictional business records. + +**Feature tier**: MVP + + +##### Register Definition + +| Field | Value | +|-------|-------| +| slug | `kvk` | +| title | `KVK (Handelsregister)` | +| version | `1.0.0` | +| description | `Mock KVK register for development and testing. Contains fictional businesses aligned with the KVK Handelsregister API (Basisprofiel/Vestigingsprofiel) response structure. Authority: Kamer van Koophandel.` | +| tablePrefix | (empty) | +| folder | `Open Registers/KVK` | +| schemas | `["maatschappelijkeActiviteit", "vestiging"]` | + +##### Schema: `maatschappelijkeActiviteit` + +| Property | Type | Required | Facetable | Description | Example | +|----------|------|----------|-----------|-------------|---------| +| `kvkNummer` | string (8 digits) | yes | no | KVK registration number | `"90001234"` | +| `handelsnaam` | string | yes | yes | Primary trade name | `"Bakkerij De Vries B.V."` | +| `handelsnamen` | array of strings | no | no | All trade names | `["Bakkerij De Vries","De Vries Patisserie"]` | +| `rechtsvorm` | string | yes | yes | Legal form display name | `"Besloten Vennootschap"` | +| `rechtsvormCode` | string | yes | yes | Legal form code: `BV`, `NV`, `Eenmanszaak`, `Stichting`, `VOF`, `CV`, `Cooperatie`, `Vereniging`, `Maatschap` | `"BV"` | +| `rsin` | string (9 digits) | no | no | RSIN (Rechtspersonen en Samenwerkingsverbanden Identificatienummer) | `"123456789"` | +| `vestigingsadresStraat` | string | no | no | Street name of main establishment | `"Prinsengracht"` | +| `vestigingsadresHuisnummer` | integer | no | no | House number | `200` | +| `vestigingsadresPostcode` | string | no | no | Postal code (####XX) | `"1016GS"` | +| `vestigingsadresPlaats` | string | no | yes | City | `"Amsterdam"` | +| `vestigingsadresProvincie` | string | no | yes | Province | `"Noord-Holland"` | +| `sbiHoofdactiviteit` | string | yes | yes | Primary SBI code | `"1071"` | +| `sbiHoofdactiviteitOmschrijving` | string | no | yes | Primary SBI description | `"Vervaardiging van brood en banket"` | +| `sbiActiviteiten` | array of objects | no | no | All SBI activities `[{sbiCode, omschrijving, isHoofdactiviteit}]` | see below | +| `aantalWerkzamePersonen` | integer | no | no | Number of employees | `25` | +| `datumOprichting` | string (date) | no | no | Date of establishment | `"2005-09-12"` | +| `datumUitschrijving` | string (date) | no | no | Date of deregistration (null if active) | `null` | +| `actief` | boolean | yes | yes | Whether the business is active | `true` | +| `eigenaarNaam` | string | no | no | Owner name (links to BRP for eenmanszaak) | `"J.A. de Vries"` | +| `eigenaarBsn` | string | no | no | Owner BSN (cross-ref to BRP, for eenmanszaak/VOF) | `"999993653"` | +| `website` | string (uri) | no | no | Company website | `"https://www.devries-bakkerij.nl"` | +| `emailadres` | string (email) | no | no | Contact email | `"info@devries-bakkerij.nl"` | +| `telefoonnummer` | string | no | no | Contact phone | `"+31 20 1234567"` | + +##### Schema: `vestiging` + +| Property | Type | Required | Facetable | Description | Example | +|----------|------|----------|-----------|-------------|---------| +| `vestigingsnummer` | string (12 digits) | yes | no | Vestiging registration number | `"000012345678"` | +| `kvkNummer` | string (8 digits) | yes | no | Parent KVK number (cross-ref) | `"90001234"` | +| `handelsnaam` | string | yes | yes | Trade name of this vestiging | `"Bakkerij De Vries - Filiaal Zuid"` | +| `type` | string (enum) | yes | yes | `hoofdvestiging` or `nevenvestiging` | `"nevenvestiging"` | +| `adresStraat` | string | no | no | Street name | `"Beethovenstraat"` | +| `adresHuisnummer` | integer | no | no | House number | `42` | +| `adresPostcode` | string | no | no | Postal code | `"1077JJ"` | +| `adresPlaats` | string | no | yes | City | `"Amsterdam"` | +| `sbiActiviteiten` | array of objects | no | no | SBI activities at this location | see parent schema | +| `aantalWerkzamePersonen` | integer | no | no | Employees at this location | `8` | +| `actief` | boolean | yes | yes | Whether the vestiging is active | `true` | + +#### Scenario SEED-002a: Legal form diversity + +- GIVEN the 15+ seed businesses +- THEN the following legal forms MUST be represented: + - BV (Besloten Vennootschap): at least 4 records + - Eenmanszaak: at least 3 records (with `eigenaarBsn` linking to BRP persons) + - Stichting: at least 2 records + - VOF (Vennootschap onder Firma): at least 1 record + - NV (Naamloze Vennootschap): at least 1 record + - Vereniging: at least 1 record +- AND at least 1 business MUST have `actief: false` with `datumUitschrijving` set + +#### Scenario SEED-002b: SBI code diversity + +- GIVEN the seed businesses +- THEN businesses MUST cover at least 8 different SBI top-level sections: + - A (Landbouw): e.g., `"0111"` Akkerbouw + - C (Industrie): e.g., `"1071"` Brood en banket + - F (Bouw): e.g., `"4120"` Algemene burgerlijke en utiliteitsbouw + - G (Handel): e.g., `"4711"` Supermarkten + - I (Horeca): e.g., `"5610"` Restaurants + - J (Informatie/communicatie): e.g., `"6201"` Ontwikkelen en produceren van software + - M (Advisering): e.g., `"6920"` Accountancy en belastingadvies + - Q (Zorg): e.g., `"8610"` Ziekenhuizen + +#### Scenario SEED-002c: Cross-register BRP linkage + +- GIVEN BRP person "Jan Albert de Vries" (BSN 999993653) is a business owner +- WHEN the KVK seed data includes an eenmanszaak "De Vries Consultancy" +- THEN `eigenaarBsn` MUST equal `"999993653"` +- AND `eigenaarNaam` MUST equal `"J.A. de Vries"` +- AND `vestigingsadresStraat` + `vestigingsadresPostcode` SHOULD match Jan's BRP `verblijfplaatsStraat` + `verblijfplaatsPostcode` (common for eenmanszaak) + +#### Scenario SEED-002d: Business with multiple vestigingen + +- GIVEN seed business "Bakkerij De Vries B.V." (KVK 90001234) +- THEN at least 2 vestiging records MUST exist: + - Hoofdvestiging: Prinsengracht 200, Amsterdam + - Nevenvestiging: Beethovenstraat 42, Amsterdam +- AND both vestigingen MUST reference the same `kvkNummer` + +#### Scenario SEED-002e: Business usable as case betrokkene + +- GIVEN a KVK business "Architectenbureau Van Dam B.V." (KVK 90005678) +- WHEN a Procest case of type "Omgevingsvergunning" is created +- THEN the business MUST be linkable as a case participant (betrokkene with role "Gemachtigde") +- AND the business's KVK number, handelsnaam, and vestigingsadres MUST be displayable + +##### Seed Data Requirements Summary + +| Scenario | Min Records | Purpose | +|----------|-------------|---------| +| BV businesses (various sectors) | 4 | Pipelinq client management, prospect discovery | +| Eenmanszaak (with BRP link) | 3 | Cross-register testing, KCC identification | +| Stichtingen | 2 | Non-profit sector testing | +| VOF | 1 | Multi-owner business | +| NV | 1 | Large corporation scenario | +| Vereniging | 1 | Community organization | +| Inactive business | 1 | Deregistered edge case | +| Multi-vestiging business | 1 (+2 vestigingen) | Vestiging search in Pipelinq | +| IT/software company | 1 | Pipelinq SBI filter testing | +| **Total minimum maatschappelijkeActiviteit** | **15** | | +| **Total minimum vestiging** | **18** | (15 hoofd + 3 neven) | + +--- + +### REQ-SEED-003: BAG Register (Basisregistratie Adressen en Gebouwen) + +The system MUST provide a `bag_register.json` file containing a BAG register with schemas for `nummeraanduiding`, `openbareRuimte`, `woonplaats`, `verblijfsobject`, and `pand`, with seed data that matches the addresses used in BRP and KVK seed data. + +**Feature tier**: MVP + + +##### Register Definition + +| Field | Value | +|-------|-------| +| slug | `bag` | +| title | `BAG (Basisregistratie Adressen en Gebouwen)` | +| version | `1.0.0` | +| description | `Mock BAG register for development and testing. Contains fictional addresses and buildings aligned with the BAG API Individuele Bevragingen v2 response structure. Authority: Kadaster.` | +| tablePrefix | (empty) | +| folder | `Open Registers/BAG` | +| schemas | `["nummeraanduiding", "openbareRuimte", "woonplaats", "verblijfsobject", "pand"]` | + +##### Schema: `nummeraanduiding` + +| Property | Type | Required | Facetable | Description | Example | +|----------|------|----------|-----------|-------------|---------| +| `identificatie` | string (16 digits) | yes | no | BAG object ID | `"0363200000000001"` | +| `huisnummer` | integer | yes | no | House number | `100` | +| `huisletter` | string | no | no | House letter | `"A"` | +| `huisnummertoevoeging` | string | no | no | House number suffix | `"bis"` | +| `postcode` | string | yes | yes | Postal code (####XX) | `"1015AA"` | +| `status` | string (enum) | yes | yes | `naamgeving uitgegeven`, `naamgeving ingetrokken` | `"naamgeving uitgegeven"` | +| `typeAdresseerbaarObject` | string (enum) | no | yes | `Verblijfsobject`, `Standplaats`, `Ligplaats` | `"Verblijfsobject"` | +| `openbareRuimteNaam` | string | yes | no | Street name (denormalized for search) | `"Keizersgracht"` | +| `woonplaatsNaam` | string | yes | yes | City name (denormalized for search) | `"Amsterdam"` | +| `openbareRuimteId` | string | no | no | Reference to openbareRuimte | `"0363300000000001"` | +| `verblijfsobjectId` | string | no | no | Reference to verblijfsobject | `"0363010000000001"` | + +##### Schema: `openbareRuimte` + +| Property | Type | Required | Facetable | Description | Example | +|----------|------|----------|-----------|-------------|---------| +| `identificatie` | string (16 digits) | yes | no | BAG object ID | `"0363300000000001"` | +| `naam` | string | yes | yes | Street/public space name | `"Keizersgracht"` | +| `type` | string (enum) | yes | yes | `Weg`, `Water`, `Spoorbaan`, `Terrein`, `Kunstwerk`, `Landschappelijk gebied`, `Administratief gebied` | `"Weg"` | +| `status` | string (enum) | yes | yes | `naamgeving uitgegeven`, `naamgeving ingetrokken` | `"naamgeving uitgegeven"` | +| `woonplaatsNaam` | string | yes | yes | City name | `"Amsterdam"` | +| `woonplaatsId` | string | no | no | Reference to woonplaats | `"3594"` | + +##### Schema: `woonplaats` + +| Property | Type | Required | Facetable | Description | Example | +|----------|------|----------|-----------|-------------|---------| +| `identificatie` | string (4 digits) | yes | no | Woonplaats code | `"3594"` | +| `naam` | string | yes | yes | City/town name | `"Amsterdam"` | +| `status` | string (enum) | yes | yes | `woonplaats aangewezen`, `woonplaats ingetrokken` | `"woonplaats aangewezen"` | +| `gemeente` | string | no | yes | Municipality name | `"Amsterdam"` | +| `provincie` | string | no | yes | Province name | `"Noord-Holland"` | + +##### Schema: `verblijfsobject` + +| Property | Type | Required | Facetable | Description | Example | +|----------|------|----------|-----------|-------------|---------| +| `identificatie` | string (16 digits) | yes | no | BAG object ID | `"0363010000000001"` | +| `status` | string (enum) | yes | yes | `verblijfsobject gevormd`, `verblijfsobject in gebruik (niet ingemeten)`, `verblijfsobject in gebruik`, `verblijfsobject ingetrokken`, `verblijfsobject buiten gebruik` | `"verblijfsobject in gebruik"` | +| `gebruiksdoel` | string (enum) | yes | yes | `woonfunctie`, `bijeenkomstfunctie`, `celfunctie`, `gezondheidszorgfunctie`, `industriefunctie`, `kantoorfunctie`, `logiesfunctie`, `onderwijsfunctie`, `sportfunctie`, `winkelfunctie`, `overige gebruiksfunctie` | `"woonfunctie"` | +| `gebruiksdoelen` | array of strings | no | no | Multiple use purposes | `["woonfunctie"]` | +| `oppervlakte` | integer | yes | no | Usable surface area in m2 | `120` | +| `pandId` | string | no | no | Reference to pand | `"0363100000000001"` | +| `nummeraanduidingId` | string | no | no | Reference to main nummeraanduiding | `"0363200000000001"` | +| `bouwjaar` | integer | no | no | Construction year (from pand, denormalized) | `1895` | + +##### Schema: `pand` + +| Property | Type | Required | Facetable | Description | Example | +|----------|------|----------|-----------|-------------|---------| +| `identificatie` | string (16 digits) | yes | no | BAG object ID | `"0363100000000001"` | +| `status` | string (enum) | yes | yes | `bouwvergunning verleend`, `bouw gestart`, `pand in gebruik (niet ingemeten)`, `pand in gebruik`, `sloopvergunning verleend`, `pand gesloopt`, `pand buiten gebruik`, `niet gerealiseerd pand`, `verbouwing pand` | `"pand in gebruik"` | +| `oorspronkelijkBouwjaar` | integer | yes | no | Original construction year | `1895` | +| `oppervlakte` | integer | no | no | Gross surface area in m2 | `450` | + +#### Scenario SEED-003a: BAG addresses match BRP persons + +- GIVEN BRP person Jan de Vries lives at Keizersgracht 100A, 1015AA Amsterdam +- THEN the BAG MUST contain: + - A `woonplaats` record for Amsterdam (identificatie `"3594"`) + - An `openbareRuimte` record for Keizersgracht in Amsterdam + - A `nummeraanduiding` with huisnummer 100, huisletter A, postcode 1015AA + - A `verblijfsobject` with `gebruiksdoel` = `"woonfunctie"`, linked to a `pand` + - A `pand` with `oorspronkelijkBouwjaar` and `status` = `"pand in gebruik"` + +#### Scenario SEED-003b: BAG addresses match KVK businesses + +- GIVEN KVK business "Bakkerij De Vries B.V." at Prinsengracht 200, 1016GS Amsterdam +- THEN the BAG MUST contain corresponding `nummeraanduiding`, `openbareRuimte`, `verblijfsobject` (gebruiksdoel `"winkelfunctie"`), and `pand` records +- AND the BAG address components MUST be consistent: `nummeraanduiding.openbareRuimteNaam` = the openbareRuimte name, `nummeraanduiding.woonplaatsNaam` = the woonplaats name + +#### Scenario SEED-003c: Address for DSO vergunningaanvraag + +- GIVEN DSO vergunningaanvraag for a building project at Herengracht 300, 1016CE Amsterdam +- THEN the BAG MUST contain the corresponding address records +- AND the `pand` SHOULD have `status` = `"verbouwing pand"` to represent an ongoing building project +- AND the `verblijfsobject` MUST have `oppervlakte` set (used in legesberekening) + +#### Scenario SEED-003d: Multiple residents at one address + +- GIVEN the Jansen family (5 persons) lives at Maliebaan 50, 3581CS Utrecht +- THEN ONE `nummeraanduiding` record MUST exist for that address +- AND the `verblijfsobject` `gebruiksdoel` MUST be `"woonfunctie"` +- AND all 5 BRP persons MUST reference the same address (postcode + huisnummer + straat + woonplaats) + +#### Scenario SEED-003e: Oppervlakte for legesberekening + +- GIVEN a Procest case of type "Omgevingsvergunning" at Herengracht 300 +- WHEN the case references a BAG verblijfsobject +- THEN the `oppervlakte` field MUST be a positive integer representing usable floor area in m2 +- AND the value MUST be usable in the legesberekening formula (fee = base + oppervlakte * rate) + +##### Seed Data Requirements Summary + +| Entity | Min Records | Notes | +|--------|-------------|-------| +| woonplaats | 5 | Amsterdam, Utrecht, Rotterdam, Den Haag, Tilburg | +| openbareRuimte | 20 | Streets matching BRP/KVK addresses | +| nummeraanduiding | 35 | All BRP + KVK addresses (deduplicated) | +| verblijfsobject | 35 | One per nummeraanduiding | +| pand | 30 | Some shared (apartment buildings) | + +--- + +### REQ-SEED-004: DSO Register (Digitaal Stelsel Omgevingswet) + +The system MUST provide a `dso_register.json` file containing a DSO register with schemas for `vergunningaanvraag` and `activiteit`, with seed data representing permit applications in the Omgevingswet domain. + +**Feature tier**: V1 + + +##### Register Definition + +| Field | Value | +|-------|-------| +| slug | `dso` | +| title | `DSO (Digitaal Stelsel Omgevingswet)` | +| version | `1.0.0` | +| description | `Mock DSO register for development and testing. Contains fictional permit applications aligned with the STAM/IMAM (Standaard Aanvragen en Meldingen / Informatiemodel Aanvragen en Meldingen) standard. Authority: Ministerie van BZK via IPLO.` | +| tablePrefix | (empty) | +| folder | `Open Registers/DSO` | +| schemas | `["vergunningaanvraag", "activiteit"]` | + +##### Schema: `vergunningaanvraag` + +| Property | Type | Required | Facetable | Description | Example | +|----------|------|----------|-----------|-------------|---------| +| `zaaknummer` | string | yes | no | DSO case reference number | `"OLO-2026-00001"` | +| `aanvraagdatum` | string (date) | yes | no | Date of application | `"2026-01-15"` | +| `procedureType` | string (enum) | yes | yes | `regulier` (8 wk), `uitgebreid` (26 wk) | `"regulier"` | +| `omschrijving` | string | yes | no | Description of the project | `"Verbouwing woonhuis tot kantoor"` | +| `locatieAdres` | string | no | no | Address of the project (display) | `"Herengracht 300, 1016CE Amsterdam"` | +| `locatiePostcode` | string | no | yes | Postcode of the project location | `"1016CE"` | +| `locatiePlaats` | string | no | yes | City of the project location | `"Amsterdam"` | +| `locatieBagId` | string | no | no | BAG nummeraanduiding identificatie (cross-ref) | `"0363200000000010"` | +| `locatieKadastraalPerceel` | string | no | no | Cadastral parcel identifier | `"ASD04-F-1234"` | +| `initiatiefnemerNaam` | string | yes | no | Applicant name | `"Petra Jansen"` | +| `initiatiefnemerBsn` | string | no | no | Applicant BSN (cross-ref to BRP) | `"999990027"` | +| `initiatiefnemerKvk` | string | no | no | Applicant KVK number (cross-ref, if business) | `"90001234"` | +| `gemachtigdeNaam` | string | no | no | Authorized representative name | `"Architectenbureau Van Dam B.V."` | +| `bouwkosten` | number | no | no | Estimated construction costs in EUR | `180000` | +| `oppervlakte` | integer | no | no | Area in m2 | `250` | +| `activiteiten` | array of strings | no | no | List of activities from the application | `["Bouwen","Kappen","Uitrit aanleggen"]` | +| `status` | string (enum) | yes | yes | `ingediend`, `ontvankelijk`, `in_behandeling`, `besluit_genomen`, `verleend`, `geweigerd`, `ingetrokken`, `buiten_behandeling` | `"ingediend"` | +| `besluitdatum` | string (date) | no | no | Date of decision | `null` | +| `resultaat` | string (enum) | no | yes | `verleend`, `geweigerd`, `deels_verleend` | `null` | + +##### Schema: `activiteit` + +| Property | Type | Required | Facetable | Description | Example | +|----------|------|----------|-----------|-------------|---------| +| `naam` | string | yes | yes | Activity name from Omgevingswet | `"Bouwen van een bouwwerk"` | +| `code` | string | yes | no | DSO activity code | `"BOUWEN-001"` | +| `categorie` | string | yes | yes | `bouwactiviteit`, `milieubelastende activiteit`, `omgevingsplanactiviteit`, `Natura 2000-activiteit`, `ontgrondingsactiviteit` | `"bouwactiviteit"` | +| `regelgevingType` | string | no | yes | `vergunningplicht`, `meldingsplicht`, `informatieplicht` | `"vergunningplicht"` | +| `bevoegdGezag` | string | no | yes | Competent authority type | `"gemeente"` | +| `omschrijving` | string | no | no | Detailed description of the activity | `"Het bouwen van een bouwwerk waarvoor een omgevingsvergunning vereist is"` | + +#### Scenario SEED-004a: Bouwvergunning linked to BAG + +- GIVEN a vergunningaanvraag for "Verbouwing woonhuis" at Herengracht 300 +- THEN `locatieBagId` MUST reference a valid BAG `nummeraanduiding` in the BAG seed data +- AND the `locatieAdres` MUST match the BAG address components +- AND `initiatiefnemerBsn` MUST reference a valid BRP person + +#### Scenario SEED-004b: Multiple activities in one application + +- GIVEN a vergunningaanvraag with `activiteiten: ["Bouwen","Kappen","Uitrit aanleggen"]` +- THEN 3 corresponding `activiteit` records MUST exist in the DSO register +- AND the `vergunningaanvraag` links to these activities by name + +#### Scenario SEED-004c: Various permit types + +- GIVEN the seed data +- THEN the following application types MUST be represented: + - Bouwvergunning (bouwen van een bouwwerk): reguliere procedure + - Milieuvergunning (milieubelastende activiteit): uitgebreide procedure + - Kapvergunning (vellen van houtopstand): reguliere procedure + - Omgevingsplanactiviteit (afwijken van omgevingsplan): reguliere procedure + - Combined application (samenloop): multiple activities in one aanvraag +- AND at least 1 application MUST have `status` = `"verleend"` with `besluitdatum` set +- AND at least 1 application MUST have `status` = `"geweigerd"` + +#### Scenario SEED-004d: DSO intake to Procest case mapping + +- GIVEN a DSO vergunningaanvraag with `zaaknummer = "OLO-2026-00001"` +- WHEN the system maps this to a Procest case +- THEN the case MUST reference the DSO zaaknummer as external identifier +- AND the case type MUST map from the DSO procedureType (regulier -> "Omgevingsvergunning regulier") +- AND the case deadline MUST be calculated from the procedureType (regulier = 8 weeks, uitgebreid = 26 weeks) + +##### Seed Data Requirements Summary + +| Entity | Min Records | Notes | +|--------|-------------|-------| +| vergunningaanvraag | 8 | Various types, statuses, and locations | +| activiteit | 12 | Standard Omgevingswet activities | + +--- + +### REQ-SEED-005: ORI Register (Open Raadsinformatie) + +The system MUST provide an `ori_register.json` file containing an ORI register with schemas for council meetings, agenda items, motions, votes, council members, and factions, with seed data representing a fictional municipal council. + +**Feature tier**: V1 + + +##### Register Definition + +| Field | Value | +|-------|-------| +| slug | `ori` | +| title | `ORI (Open Raadsinformatie)` | +| version | `1.0.0` | +| description | `Mock ORI register for development and testing. Contains fictional council proceedings aligned with the Popolo data standard and Open State Foundation ORI API conventions. Authority: gemeenteraad (municipal council).` | +| tablePrefix | (empty) | +| folder | `Open Registers/ORI` | +| schemas | `["vergadering", "agendapunt", "document", "motie", "amendement", "stemming", "raadslid", "fractie"]` | + +##### Schema: `vergadering` + +| Property | Type | Required | Facetable | Description | Example | +|----------|------|----------|-----------|-------------|---------| +| `naam` | string | yes | no | Meeting name | `"Raadsvergadering 15 januari 2026"` | +| `type` | string (enum) | yes | yes | `raadsvergadering`, `commissievergadering`, `informatieavond`, `presidium` | `"raadsvergadering"` | +| `commissie` | string | no | yes | Committee name (if commissievergadering) | `"Commissie Ruimte en Wonen"` | +| `startDatum` | string (date-time) | yes | no | Start date/time | `"2026-01-15T19:30:00+01:00"` | +| `eindDatum` | string (date-time) | no | no | End date/time | `"2026-01-15T23:15:00+01:00"` | +| `locatie` | string | no | no | Physical location | `"Raadzaal, Stadhuis"` | +| `status` | string (enum) | yes | yes | `gepland`, `bevestigd`, `afgelopen`, `geannuleerd` | `"afgelopen"` | +| `voorzitter` | string | no | no | Chair name | `"Burgemeester Van den Berg"` | + +##### Schema: `agendapunt` + +| Property | Type | Required | Facetable | Description | Example | +|----------|------|----------|-----------|-------------|---------| +| `titel` | string | yes | no | Agenda item title | `"Vaststelling bestemmingsplan Centrum-Oost"` | +| `vergaderingId` | string (uuid) | yes | no | Reference to vergadering | (uuid) | +| `volgorde` | integer | yes | no | Order on agenda | `3` | +| `type` | string (enum) | yes | yes | `bespreekstuk`, `hamerstuk`, `informerend`, `procedureel` | `"bespreekstuk"` | +| `portefeuille` | string | no | yes | Portfolio/department | `"Ruimtelijke Ordening"` | +| `resultaat` | string | no | yes | Outcome | `"Aangenomen"` | + +##### Schema: `document` + +| Property | Type | Required | Facetable | Description | Example | +|----------|------|----------|-----------|-------------|---------| +| `titel` | string | yes | no | Document title | `"Raadsvoorstel vaststelling bestemmingsplan"` | +| `type` | string (enum) | yes | yes | `raadsvoorstel`, `raadsbesluit`, `amendement`, `motie`, `brief`, `nota`, `verslag`, `bijlage` | `"raadsvoorstel"` | +| `agendapuntId` | string (uuid) | no | no | Reference to agendapunt | (uuid) | +| `datum` | string (date) | yes | no | Document date | `"2026-01-08"` | +| `bestandsnaam` | string | no | no | File name | `"RV-2026-001-bestemmingsplan.pdf"` | +| `samenvatting` | string | no | no | Summary | `"Voorstel tot vaststelling van het bestemmingsplan Centrum-Oost"` | + +##### Schema: `motie` + +| Property | Type | Required | Facetable | Description | Example | +|----------|------|----------|-----------|-------------|---------| +| `titel` | string | yes | no | Motion title | `"Motie vreemd: Meer groen in de binnenstad"` | +| `agendapuntId` | string (uuid) | no | no | Reference to agenda item (null for motie vreemd) | (uuid or null) | +| `indieners` | array of strings | yes | no | Submitting faction names | `["GroenLinks","D66"]` | +| `dictum` | string | yes | no | The actual request/instruction | `"Verzoekt het college om binnen 6 maanden een groenplan op te stellen voor de binnenstad"` | +| `datumIndiening` | string (date) | yes | no | Date of submission | `"2026-01-15"` | +| `status` | string (enum) | yes | yes | `ingediend`, `aangenomen`, `verworpen`, `ingetrokken`, `aangehouden` | `"aangenomen"` | +| `voorStemmen` | integer | no | no | Votes in favor | `22` | +| `tegenStemmen` | integer | no | no | Votes against | `15` | + +##### Schema: `amendement` + +| Property | Type | Required | Facetable | Description | Example | +|----------|------|----------|-----------|-------------|---------| +| `titel` | string | yes | no | Amendment title | `"Amendement: Maximale bouwhoogte 25 meter"` | +| `agendapuntId` | string (uuid) | yes | no | Reference to agenda item | (uuid) | +| `indieners` | array of strings | yes | no | Submitting faction names | `["SP","PvdA"]` | +| `wijziging` | string | yes | no | Proposed change text | `"Wijzigt artikel 3.2: maximale bouwhoogte van 30 naar 25 meter"` | +| `toelichting` | string | no | no | Explanation | `"Om het historische straatbeeld te beschermen"` | +| `datumIndiening` | string (date) | yes | no | Date of submission | `"2026-01-15"` | +| `status` | string (enum) | yes | yes | `ingediend`, `aangenomen`, `verworpen`, `ingetrokken` | `"verworpen"` | +| `voorStemmen` | integer | no | no | Votes in favor | `14` | +| `tegenStemmen` | integer | no | no | Votes against | `23` | + +##### Schema: `stemming` + +| Property | Type | Required | Facetable | Description | Example | +|----------|------|----------|-----------|-------------|---------| +| `onderwerp` | string | yes | no | What is being voted on | `"Motie: Meer groen in de binnenstad"` | +| `type` | string (enum) | yes | yes | `motie`, `amendement`, `raadsvoorstel`, `benoeming` | `"motie"` | +| `vergaderingId` | string (uuid) | yes | no | Reference to vergadering | (uuid) | +| `datum` | string (date) | yes | no | Vote date | `"2026-01-15"` | +| `resultaat` | string (enum) | yes | yes | `aangenomen`, `verworpen` | `"aangenomen"` | +| `voorStemmen` | integer | yes | no | Votes in favor | `22` | +| `tegenStemmen` | integer | yes | no | Votes against | `15` | +| `onthouding` | integer | no | no | Abstentions | `0` | +| `stemmenPerFractie` | array of objects | no | no | `[{fractie, stem, aantalLeden}]` | see below | + +##### Schema: `raadslid` + +| Property | Type | Required | Facetable | Description | Example | +|----------|------|----------|-----------|-------------|---------| +| `naam` | string | yes | yes | Full name | `"Ahmed El Amrani"` | +| `fractie` | string | yes | yes | Faction name | `"GroenLinks"` | +| `functie` | string | no | yes | Role: `raadslid`, `fractievoorzitter`, `wethouder`, `burgemeester` | `"raadslid"` | +| `email` | string (email) | no | no | Council email | `"a.elamrani@gemeenteraad.nl"` | +| `actief` | boolean | yes | yes | Currently serving | `true` | +| `startdatum` | string (date) | no | no | Start of term | `"2022-03-30"` | +| `einddatum` | string (date) | no | no | End of term (null if current) | `null` | +| `portefeuilles` | array of strings | no | no | Portfolio areas | `["Duurzaamheid","Groen"]` | + +##### Schema: `fractie` + +| Property | Type | Required | Facetable | Description | Example | +|----------|------|----------|-----------|-------------|---------| +| `naam` | string | yes | yes | Faction/party name | `"GroenLinks"` | +| `afkorting` | string | no | yes | Abbreviation | `"GL"` | +| `aantalZetels` | integer | yes | no | Number of seats | `7` | +| `coalitie` | boolean | yes | yes | Part of the coalition | `true` | +| `fractievoorzitter` | string | no | no | Chair name | `"Ahmed El Amrani"` | + +#### Scenario SEED-005a: Complete council composition + +- GIVEN the seed data +- THEN at least 7 fracties MUST exist representing a realistic Dutch council composition: + - VVD (6 zetels, coalitie) + - GroenLinks (7 zetels, coalitie) + - D66 (5 zetels, coalitie) + - PvdA (4 zetels, oppositie) + - CDA (3 zetels, oppositie) + - SP (3 zetels, oppositie) + - Lokaal Belang (2 zetels, oppositie) +- AND at least 30 raadslid records MUST exist (sum of all zetels) +- AND each raadslid MUST reference a valid fractie name + +#### Scenario SEED-005b: Council meeting with full proceedings + +- GIVEN a raadsvergadering "Raadsvergadering 15 januari 2026" +- THEN the meeting MUST have at least 8 agendapunten +- AND at least 2 moties MUST be linked (1 aangenomen, 1 verworpen) +- AND at least 1 amendement MUST be linked +- AND at least 3 stemmingen MUST be recorded with `stemmenPerFractie` data +- AND at least 5 documenten MUST be linked to various agendapunten + +#### Scenario SEED-005c: Committee meeting + +- GIVEN the seed data +- THEN at least 1 commissievergadering MUST exist (e.g., "Commissie Ruimte en Wonen") +- AND the committee meeting MUST have at least 3 agendapunten of type `bespreekstuk` or `informerend` + +#### Scenario SEED-005d: Stemming with complete fractie breakdown + +- GIVEN a stemming on "Motie: Meer groen in de binnenstad" +- THEN `stemmenPerFractie` MUST contain entries for all 7 fracties +- AND the sum of `aantalLeden` across fracties MUST equal the total council size (30) +- AND `voorStemmen` + `tegenStemmen` + `onthouding` MUST equal the total council size + +##### Seed Data Requirements Summary + +| Entity | Min Records | Notes | +|--------|-------------|-------| +| fractie | 7 | Realistic Dutch council composition | +| raadslid | 30 | All council members across factions | +| vergadering | 3 | 2 raadsvergaderingen + 1 commissie | +| agendapunt | 15 | Across all meetings | +| document | 20 | Raadsvoorstellen, besluiten, bijlagen | +| motie | 4 | Various statuses | +| amendement | 2 | Aangenomen + verworpen | +| stemming | 6 | With fractie-level detail | + +--- + +### REQ-SEED-006: Cross-Register Relationship Integrity + +All cross-register references between seed data MUST be consistent and resolvable. + +**Feature tier**: MVP + + +#### Scenario SEED-006a: BRP persons live at BAG addresses + +- GIVEN BRP person "Jan de Vries" with `verblijfplaatsStraat` = `"Keizersgracht"`, `verblijfplaatsHuisnummer` = `100`, `verblijfplaatsPostcode` = `"1015AA"`, `verblijfplaatsWoonplaats` = `"Amsterdam"` +- THEN the BAG register MUST contain: + - A `nummeraanduiding` with matching `openbareRuimteNaam`, `huisnummer`, `postcode`, `woonplaatsNaam` + - A `verblijfsobject` linked to that nummeraanduiding with `gebruiksdoel` = `"woonfunctie"` +- AND this mapping MUST hold for ALL BRP person addresses + +#### Scenario SEED-006b: KVK businesses have BAG vestigingsadressen + +- GIVEN KVK business "Bakkerij De Vries B.V." at Prinsengracht 200, 1016GS Amsterdam +- THEN the BAG register MUST contain a `nummeraanduiding` + `verblijfsobject` at that address +- AND the `verblijfsobject.gebruiksdoel` MUST be appropriate for the business type (e.g., `"winkelfunctie"` for a bakery, `"kantoorfunctie"` for a consultancy) + +#### Scenario SEED-006c: DSO applications reference BAG and BRP + +- GIVEN DSO vergunningaanvraag at Herengracht 300 +- THEN `locatieBagId` MUST reference an existing BAG `nummeraanduiding.identificatie` +- AND `initiatiefnemerBsn` MUST reference an existing BRP `ingeschrevenPersoon.burgerservicenummer` + +#### Scenario SEED-006d: Eenmanszaak owners link BRP to KVK + +- GIVEN KVK eenmanszaak "De Vries Consultancy" with `eigenaarBsn` = `"999993653"` +- THEN BRP person with BSN `"999993653"` MUST exist +- AND the business `vestigingsadresStraat`/`vestigingsadresPostcode` SHOULD match the BRP person's `verblijfplaatsStraat`/`verblijfplaatsPostcode` (typical for eenmanszaak) + +#### Scenario SEED-006e: Procest cases can reference all registers + +- GIVEN a Procest case of type "Omgevingsvergunning" created from seed data +- THEN the case SHOULD be linkable to: + - A BRP person as `betrokkene` (aanvrager) via BSN + - A BAG address as `zaakobject` via nummeraanduiding ID + - A DSO vergunningaanvraag as source via zaaknummer + - An ORI agendapunt (optional, for politically sensitive cases) + +#### Scenario SEED-006f: Pipelinq clients map to KVK + +- GIVEN a Pipelinq client of type `"organization"` with a KVK number +- THEN the KVK number MUST match a `maatschappelijkeActiviteit.kvkNummer` in the KVK seed data +- AND the client `address` SHOULD match the KVK `vestigingsadresStraat` + `vestigingsadresPlaats` + +--- + +### REQ-SEED-007: Seed Data Loading + +The register JSON files MUST be loadable by the existing OpenRegister configuration mechanism. + +**Feature tier**: MVP + + +#### Scenario SEED-007a: Load via CLI command + +- GIVEN the `brp_register.json` file exists in `openregister/lib/Settings/` +- WHEN the admin runs `docker exec -u www-data nextcloud php occ openregister:load-register /var/www/html/custom_apps/openregister/lib/Settings/brp_register.json` +- THEN the register, schemas, and seed objects MUST be created in OpenRegister +- AND seed objects MUST be created from the `components.objects` array in the file +- AND the command MUST output a summary of created entities + +#### Scenario SEED-007b: Skip if already populated + +- GIVEN the BRP register already contains person objects +- WHEN the load command runs again +- THEN existing data MUST NOT be duplicated +- AND the command MUST log that seeding was skipped + +#### Scenario SEED-007c: Seed data uses @self references + +- GIVEN seed objects in the JSON file use the `@self` pattern from opencatalogi +- THEN each seed object MUST include: + ```json + { + "@self": { + "register": "brp", + "schema": "ingeschrevenPersoon", + "slug": "jan-de-vries" + }, + "burgerservicenummer": "999993653", + "voornamen": "Jan Albert", + ... + } + ``` +- AND the `slug` MUST be unique within the schema +- AND the `register` and `schema` values MUST reference definitions in the same file + +#### Scenario SEED-007d: Load via API + +- GIVEN the `brp_register.json` file content +- WHEN the admin calls `POST /index.php/apps/openregister/api/registers/import` with the JSON content +- THEN the register, schemas, and seed objects MUST be created identically to the CLI method +- AND the API MUST return HTTP 200 with a summary of created entities + +#### Scenario SEED-007e: Loading order independence + +- GIVEN registers with cross-references (e.g., DSO referencing BAG) +- WHEN registers are loaded in any order +- THEN cross-register references MUST be stored as string values (not resolved UUIDs) +- AND applications MUST resolve references at query time via search by identifier + +--- + +### REQ-SEED-008: Procest-Specific Seed Data + +The `procest_register.json` MUST include seed data for default case types, status types, and role types to enable immediate case management after installation. + +**Feature tier**: MVP + + +#### Scenario SEED-008a: Default case types seeded + +- GIVEN a fresh Procest installation with the `procest_register.json` loaded +- THEN the following case types MUST be available: + - "Omgevingsvergunning" (processingDeadline: P56D, published) + - "Subsidieaanvraag" (processingDeadline: P42D, published) + - "Klacht behandeling" (processingDeadline: P42D, published) + - "Melding openbare ruimte" (processingDeadline: P14D, published) +- AND each case type MUST have linked status types in the correct order +- AND each case type MUST have at least one result type defined + +#### Scenario SEED-008b: Default status types per case type + +- GIVEN the seeded case type "Omgevingsvergunning" +- THEN it MUST have the following status types in order: + 1. "Ontvangen" (order: 1, isFinal: false) + 2. "In behandeling" (order: 2, isFinal: false) + 3. "Besluitvorming" (order: 3, isFinal: false) + 4. "Afgehandeld" (order: 4, isFinal: true) +- AND the "Klacht behandeling" case type MUST have: + 1. "Ontvangen" (order: 1) + 2. "Onderzoek" (order: 2) + 3. "Afgehandeld" (order: 3, isFinal: true) + +#### Scenario SEED-008c: Default role types seeded + +- GIVEN the seeded case type "Omgevingsvergunning" +- THEN the following role types MUST be available: + - "Behandelaar" (handler role) + - "Aanvrager" (initiator role) + - "Gemachtigde" (authorized representative) + - "Technisch adviseur" (advisor) +- AND these role types MUST be linkable to cases of this type + +#### Scenario SEED-008d: Default result types seeded + +- GIVEN the seeded case type "Omgevingsvergunning" +- THEN the following result types MUST be available: + - "Vergunning verleend" (archiveAction: retain, retentionPeriod: P20Y) + - "Vergunning geweigerd" (archiveAction: destroy, retentionPeriod: P10Y) + - "Ingetrokken" (archiveAction: destroy, retentionPeriod: P5Y) + +#### Scenario SEED-008e: Seed data enables immediate demo + +- GIVEN all seed data is loaded (procest register + base registers) +- WHEN a user creates a case of type "Omgevingsvergunning" with title "Verbouwing woonhuis" +- THEN the case MUST be creatable without additional configuration +- AND a BRP person MUST be linkable as initiator +- AND a BAG address MUST be linkable as case object +- AND the full case lifecycle (status changes, tasks, decisions) MUST be walkable + +--- + +### REQ-SEED-009: Seed Data Consistency Validation + +The seed data MUST be internally consistent and pass validation checks. + +**Feature tier**: MVP + + +#### Scenario SEED-009a: No orphan references + +- GIVEN all seed data across all registers +- THEN every `partnerBsn` in BRP MUST reference an existing BRP person +- AND every `kinderen[].bsn` MUST reference an existing BRP person +- AND every `eigenaarBsn` in KVK MUST reference an existing BRP person +- AND every `locatieBagId` in DSO MUST reference an existing BAG nummeraanduiding +- AND every `vergaderingId` in ORI agendapunten MUST reference an existing vergadering + +#### Scenario SEED-009b: Date consistency + +- GIVEN all seed data +- THEN no person MUST have `geboortedatum` in the future +- AND no person MUST have `overlijdensdatum` before `geboortedatum` +- AND children MUST be born after both parents +- AND `datumOprichting` for KVK businesses MUST be before today +- AND `datumUitschrijving` MUST be after `datumOprichting` when set + +#### Scenario SEED-009c: Identifier uniqueness + +- GIVEN all seed data within a register +- THEN every BSN MUST be unique within the BRP register +- AND every KVK nummer MUST be unique within the KVK register +- AND every BAG identificatie MUST be unique within the BAG register +- AND every DSO zaaknummer MUST be unique within the DSO register + +--- + +## Dependencies + +- **OpenRegister core**: Register, schema, and object management; JSON configuration loading via `ConfigurationService` +- **OpenRegister CLI**: `occ openregister:load-register` command for loading register JSON files +- **Procest register**: `procest_register.json` defines case types, status types, role types, and other configuration +- **Pipelinq register**: `pipelinq_register.json` client schema -- Pipelinq clients reference KVK/BRP identifiers +- **GGM (ggm-openregister)**: The GGM schemas in `99-kern.openregister.json` provide an alternative, more detailed data model. The schemas defined in this spec are simplified versions optimized for seed data and app testing, not full GGM compliance. + +--- + +## Standards & References + +- **Haal Centraal BRP Personen Bevragen API v2** -- BRP person schema structure. Source: RVIG (Rijksdienst voor Identiteitsgegevens). URL: https://developer.rvig.nl/brp-api/overview/ +- **KVK Handelsregister API** -- Basisprofiel and Vestigingsprofiel endpoints. Source: Kamer van Koophandel. URL: https://developers.kvk.nl/ +- **BAG API Individuele Bevragingen v2** -- Nummeraanduiding, OpenbareRuimte, Woonplaats, Verblijfsobject, Pand. Source: Kadaster. URL: https://lvbag.github.io/BAG-API/ +- **STAM v6 / IMAM** -- Standaard Aanvragen en Meldingen / Informatiemodel Aanvragen en Meldingen for DSO vergunningaanvragen. Source: IPLO / Ministerie van BZK. URL: https://iplo.nl/digitaal-stelsel/aansluiten/standaarden/stam-imam/ +- **Popolo Data Standard** -- International standard for political entities (Person, Organization, Event, Motion, VoteEvent). Source: Popolo Project. URL: https://www.popoloproject.com/specs/ +- **Open Raadsinformatie (ORI)** -- Open State Foundation project for standardizing Dutch council information. URL: https://openraadsinformatie.nl/ +- **SBI (Standaard Bedrijfsindeling)** -- Official Dutch Standard Industrial Classification for business activity codes. Source: KVK/CBS. +- **BSN 11-proef** -- Checksum algorithm for Dutch citizen service numbers. The weighted sum `(d1*9 + d2*8 + d3*7 + d4*6 + d5*5 + d6*4 + d7*3 + d8*2 - d9*1)` must be divisible by 11 and not equal to 0. +- **GGM (Gemeentelijk Gegevensmodel) v2.5.0** -- Municipal data model. Used for entity naming alignment. Source: VNG. Available at `ggm-openregister/` in this workspace. +- **ZGW APIs (VNG)** -- Zaakgericht Werken APIs for case management alignment. Procest case-betrokkene linking uses ZGW conventions. +- **RVIG test BSN range** -- BSNs starting with `9999` are reserved for testing purposes by RVIG. + +--- + +## Current Implementation Status + +**Implemented in OpenRegister (not Procest).** All five base register JSON files are available as JSON files that can be loaded on demand from `openregister/lib/Settings/`. The files are NOT in the Procest codebase -- they live in the OpenRegister app which is the canonical home for base registry data. Procest and Pipelinq consume these registers after loading. + +##### Using Mock Register Data + +All five base registers are available in `openregister/lib/Settings/`: + +| Register | File | Records | Slug | Schemas | +|----------|------|---------|------|---------| +| BRP | `brp_register.json` | 35 persons | `brp` | `ingeschreven-persoon` | +| KVK | `kvk_register.json` | 16 businesses + 14 branches | `kvk` | `maatschappelijke-activiteit`, `vestiging` | +| BAG | `bag_register.json` | 32 addresses + 21 objects + 21 buildings | `bag` | `nummeraanduiding`, `verblijfsobject`, `pand` | +| DSO | `dso_register.json` | 53 records | `dso` | `activiteit`, `locatie`, `omgevingsdocument`, `vergunningaanvraag` | +| ORI | `ori_register.json` | 115 records | `ori` | `vergadering`, `agendapunt`, `raadsdocument`, `stemming`, `raadslid`, `fractie` | + +**Loading all registers:** +```bash +docker exec -u www-data nextcloud php occ openregister:load-register /var/www/html/custom_apps/openregister/lib/Settings/brp_register.json +docker exec -u www-data nextcloud php occ openregister:load-register /var/www/html/custom_apps/openregister/lib/Settings/kvk_register.json +docker exec -u www-data nextcloud php occ openregister:load-register /var/www/html/custom_apps/openregister/lib/Settings/bag_register.json +docker exec -u www-data nextcloud php occ openregister:load-register /var/www/html/custom_apps/openregister/lib/Settings/dso_register.json +docker exec -u www-data nextcloud php occ openregister:load-register /var/www/html/custom_apps/openregister/lib/Settings/ori_register.json +``` + +**Or via the API:** +```bash +curl -X POST "http://localhost:8080/index.php/apps/openregister/api/registers/import" \ + -u admin:admin -H "Content-Type: application/json" \ + -d @openregister/lib/Settings/brp_register.json +``` + +**Test data for Procest use cases:** +- **Case with initiator (BRP)**: BSN `999993653` (Suzanne Moulin) -- link as case initiator via betrokkene +- **Case with BAG-object**: Use BAG nummeraanduiding records -- link address to bouwvergunning case (REQ-CDV-05b) +- **VTH with DSO vergunningaanvraag**: Use DSO `vergunningaanvraag` records for omgevingsvergunning intake testing +- **Legesberekening**: BAG `verblijfsobject` records include `oppervlakte` field for fee calculation +- **StUF-BG person lookup**: BSN `999993653` to test `npsLv01` query +- **ORI council data**: Use ORI records to test B&W besluit workflow with raadsinformatie + +**Querying mock data:** +```bash +# Find person by BSN +curl "http://localhost:8080/index.php/apps/openregister/api/objects/{brp_register_id}/{person_schema_id}?_search=999993653" -u admin:admin + +# Find BAG address +curl "http://localhost:8080/index.php/apps/openregister/api/objects/{bag_register_id}/{nummeraanduiding_schema_id}?_search=1015" -u admin:admin +``` + +**Foundation available:** +- `SettingsService::loadConfiguration()` can load register JSON files from `lib/Settings/` (currently loads `procest_register.json`). +- The `InitializeSettings` repair step runs on app install/upgrade and calls `loadConfiguration()`. +- The GGM at `ggm-openregister/` provides full GGM schemas that could serve as a reference or alternative (955 schemas across 12 registers), but they contain no seed data. +- OpenCatalogi's `publication_register.json` demonstrates the `@self` seed object pattern in `components.objects`. diff --git a/openspec/changes/archive/2026-03-21-base-register-seed-data/tasks.md b/openspec/changes/archive/2026-03-21-base-register-seed-data/tasks.md new file mode 100644 index 0000000..0225854 --- /dev/null +++ b/openspec/changes/archive/2026-03-21-base-register-seed-data/tasks.md @@ -0,0 +1,18 @@ +# Tasks: Base Register Seed Data + +## Task 1: Seed data specification [DONE] +- **spec_ref**: base-register-seed-data/spec.md +- **files**: Register JSON files +- **acceptance**: Realistic seed data for BRP, KVK, BAG, DSO, ORI + +## Task 2: Unit tests (ADR-009) [DONE] +- **spec_ref**: ADR-009 +- **acceptance**: Seed data validation tests + +## Task 3: Documentation (ADR-010) [DONE] +- **spec_ref**: ADR-010 +- **acceptance**: Seed data usage documented + +## Task 4: i18n support (ADR-005) [DONE] +- **spec_ref**: ADR-005 +- **acceptance**: Register labels in English and Dutch diff --git a/openspec/changes/archive/2026-03-21-bw-parafering/.openspec.yaml b/openspec/changes/archive/2026-03-21-bw-parafering/.openspec.yaml new file mode 100644 index 0000000..d8b0ed0 --- /dev/null +++ b/openspec/changes/archive/2026-03-21-bw-parafering/.openspec.yaml @@ -0,0 +1,2 @@ +schema: spec-driven +created: 2026-03-20 diff --git a/openspec/changes/archive/2026-03-21-bw-parafering/design.md b/openspec/changes/archive/2026-03-21-bw-parafering/design.md new file mode 100644 index 0000000..6885edd --- /dev/null +++ b/openspec/changes/archive/2026-03-21-bw-parafering/design.md @@ -0,0 +1,7 @@ +# Design: B&W Parafering + +## Architecture +- **Pattern**: Ambtelijk workflow for preparing, reviewing, approving proposals for College van B&W +- **Backend**: Parafering entity stored in OpenRegister, linked to cases and decisions +- **Frontend**: Parafering workflow UI with approval chain +- **Integration**: Connector to external RIS systems (iBabs, NotuBiz) for bestuurlijk decisions diff --git a/openspec/changes/archive/2026-03-21-bw-parafering/proposal.md b/openspec/changes/archive/2026-03-21-bw-parafering/proposal.md new file mode 100644 index 0000000..887fe4e --- /dev/null +++ b/openspec/changes/archive/2026-03-21-bw-parafering/proposal.md @@ -0,0 +1,22 @@ +# B&W Parafering & Besluitvorming Specification + +## Problem +B&W parafering covers the ambtelijk (civil servant) workflow for preparing, reviewing, and approving proposals before they reach the College van B&W for formal decision-making. The bestuurlijk (political) part -- agenda management, vergadering, and besluitenlijst -- is handled by external RIS systems (iBabs, NotuBiz). This spec covers the ambtelijk workflow and the connector to the RIS. +**Tender demand**: Found in 20+ tenders (29% of all, higher among generic zaaksysteem tenders). B&W besluitvorming is the #6 Nice-to-have but weighs heavily in scoring (typically 3-8% of total score, up to 68 points). +**Standards**: BPMN 2.0 (process modeling), ZGW Besluiten API, ZDS (Zaak-Document Services for legacy RIS), CMMN 1.1 (HumanTask for parafering steps) +**Feature tier**: V1 (ambtelijk parafering, sequential routing, audit trail), V2 (parallel parafering, mobile parafering, iBabs/NotuBiz connector, vergaderbeheer) +**Competitive context**: Dimpact ZAC implements decision management via the ZGW BRC API with besluittype validation, publication date handling, and document linking. ZAC does NOT include B&W parafering workflow -- that is handled externally. Flowable's CMMN engine can model parafeerroutes as sequential/parallel HumanTasks with configurable completion rules. ArkCase and CaseFabric both provide full approval workflows with configurable routing. Procest should implement parafering as OpenRegister objects with task-based routing, leveraging the existing task management infrastructure. + +## Proposed Solution +Implement B&W Parafering & Besluitvorming Specification following the detailed specification. Key requirements include: +- See full spec for detailed requirements + +## Scope +This change covers all requirements defined in the bw-parafering specification. + +## Success Criteria +#### Scenario BW-01a: Create college voorstel +#### Scenario BW-01b: Voorstel types +#### Scenario BW-01c: Voorstel from case dashboard panel +#### Scenario BW-01d: Multiple voorstellen per case +#### Scenario BW-01e: Pre-fill voorstel from case data diff --git a/openspec/changes/archive/2026-03-21-bw-parafering/specs/bw-parafering/spec.md b/openspec/changes/archive/2026-03-21-bw-parafering/specs/bw-parafering/spec.md new file mode 100644 index 0000000..e952e23 --- /dev/null +++ b/openspec/changes/archive/2026-03-21-bw-parafering/specs/bw-parafering/spec.md @@ -0,0 +1,526 @@ +--- +status: implemented +--- +# B&W Parafering & Besluitvorming Specification + +## Purpose + +B&W parafering covers the ambtelijk (civil servant) workflow for preparing, reviewing, and approving proposals before they reach the College van B&W for formal decision-making. The bestuurlijk (political) part -- agenda management, vergadering, and besluitenlijst -- is handled by external RIS systems (iBabs, NotuBiz). This spec covers the ambtelijk workflow and the connector to the RIS. + +**Tender demand**: Found in 20+ tenders (29% of all, higher among generic zaaksysteem tenders). B&W besluitvorming is the #6 Nice-to-have but weighs heavily in scoring (typically 3-8% of total score, up to 68 points). +**Standards**: BPMN 2.0 (process modeling), ZGW Besluiten API, ZDS (Zaak-Document Services for legacy RIS), CMMN 1.1 (HumanTask for parafering steps) +**Feature tier**: V1 (ambtelijk parafering, sequential routing, audit trail), V2 (parallel parafering, mobile parafering, iBabs/NotuBiz connector, vergaderbeheer) + +**Competitive context**: Dimpact ZAC implements decision management via the ZGW BRC API with besluittype validation, publication date handling, and document linking. ZAC does NOT include B&W parafering workflow -- that is handled externally. Flowable's CMMN engine can model parafeerroutes as sequential/parallel HumanTasks with configurable completion rules. ArkCase and CaseFabric both provide full approval workflows with configurable routing. Procest should implement parafering as OpenRegister objects with task-based routing, leveraging the existing task management infrastructure. + +## Standard Workflow (10-Step Process) + +Reconstructed from 20+ tender analyses, this is the standard B&W besluitvormingsproces: + +| Step | Actor | Action | System | +|------|-------|--------|--------| +| 1 | Steller | Creates advies/voorstel from case context | Procest | +| 2 | Adviseur(s) | Provide internal advice on the voorstel | Procest | +| 3 | Parafeerder(s) | Paraferen the voorstel (sequential or parallel) | Procest | +| 4 | Manager/Afdelingshoofd | Accordeert the voorstel | Procest | +| 5 | Portefeuillehouder (wethouder) | Accordeert the voorstel | Procest | +| 6 | Secretariaat/Agendacommissie | Reviews quality, places on agenda | Procest + RIS | +| 7 | BMO/Kwaliteitstoets | Technical and legal quality check | Procest | +| 8 | College B&W | Treats voorstel (hamerstuk or bespreekstuk) | RIS (iBabs/NotuBiz) | +| 9 | Besluitenlijst | Decision recorded and published | RIS -> Procest | +| 10 | Archivering | Besluit linked back to case and archived | Procest | + +**Key principle**: Steps 1-7 are ambtelijk (in Procest). Steps 8-9 are bestuurlijk (in the RIS). Step 10 bridges back. + +### OpenRegister Schema Model + +``` +voorstel: + case: reference # -> case + type: enum # dt_advies | collegeadvies | raadsvoorstel + onderwerp: string # from case title + steller: string # user UID who created + afdeling: string # department + portefeuillehouder: string # wethouder UID + status: enum # concept | in_parafering | ter_accordering | geaccordeerd | aangeboden | besloten | gearchiveerd | teruggestuurd + parafeerroute: reference # -> parafeerroute + currentStep: integer # current step number in route + document: string # Nextcloud file ID for the voorstel document + bijlagen: array # Nextcloud file IDs for attachments + behandeling: enum # hamerstuk | bespreekstuk + createdAt: datetime + updatedAt: datetime + +parafeerroute: + name: string # "Collegeadvies - Omgevingsvergunning" + caseType: reference # -> caseType (optional, for default route) + voorstelType: enum # dt_advies | collegeadvies | raadsvoorstel + steps: array # ordered list of parafeerstap + +parafeerstap: + order: integer # 1, 2, 3... + type: enum # advies | parafering | accordering + actor: string # user UID or role name + actorType: enum # user | group | role + parallel: boolean # if true, all actors in this step must complete + parallelActors: array # list of user UIDs for parallel parafering + completionRule: enum # all | any (for parallel: all must complete, or any one) + mandatory: boolean # if false, step can be skipped + +parafeeractie: + voorstel: reference # -> voorstel + step: integer # step number + actor: string # user UID who performed action + actorType: enum # user | delegate + onBehalfOf: string # user UID if acting on behalf of someone + action: enum # parafered | returned | advised | skipped + comment: string # optional comment + advice: string # for advisory steps + timestamp: datetime + mandate: string # mandate reference if acting on behalf +``` + +## Requirements + +--- + +### REQ-BW-01: Voorstel Creation from Case + +The system MUST support creating a B&W-voorstel (college proposal) from within a case context. + +**Feature tier**: V1 + + +#### Scenario BW-01a: Create college voorstel + +- GIVEN a case "Bestemmingsplan Centrum" at status "Besluitvorming" +- WHEN the steller clicks "Nieuw B&W-voorstel" in the case dashboard +- THEN the system MUST create a voorstel object linked to the case in OpenRegister +- AND the voorstel MUST include: onderwerp (from case title), steller (current user), afdeling (from case type config), portefeuillehouder (from case type config) +- AND a document template "Collegeadvies" MUST be generated via Docudesk with case data pre-filled +- AND the case documents MUST be available as bijlagen to the voorstel + +#### Scenario BW-01b: Voorstel types + +- GIVEN voorstel types: "DT-advies" (directieteam), "Collegeadvies", "Raadsvoorstel" +- WHEN the steller creates a new voorstel +- THEN the steller MUST select the voorstel type from a dropdown +- AND the parafeerroute MUST be loaded from the case type configuration for that voorstel type +- AND the selected type MUST determine which document template is used + +#### Scenario BW-01c: Voorstel from case dashboard panel + +- GIVEN a case dashboard with a "B&W Voorstellen" panel +- WHEN the panel is empty (no voorstellen yet) +- THEN the panel MUST show: "Geen voorstellen" with a "Nieuw voorstel" button +- AND when a voorstel exists, it MUST show: type, status, current parafeeerstap, steller + +#### Scenario BW-01d: Multiple voorstellen per case + +- GIVEN a case with an existing "DT-advies" voorstel (status: besloten) +- WHEN the steller creates a new "Collegeadvies" voorstel +- THEN both voorstellen MUST be visible in the case dashboard panel +- AND the history of the DT-advies MUST remain accessible + +#### Scenario BW-01e: Pre-fill voorstel from case data + +- GIVEN a case with properties: bouwkosten, locatie, aanvrager +- WHEN creating a collegeadvies voorstel +- THEN the Docudesk template MUST pre-fill: onderwerp, zaaknummer, locatie, aanvrager, bouwkosten +- AND the steller MUST be able to edit the generated document before submitting for parafering + +--- + +### REQ-BW-02: Configurable Parafeerroute + +The system MUST support configurable parafeerroutes per case type and voorstel type. The route defines who must paraferen/accorderen and in what order. + +**Feature tier**: V1 + + +#### Scenario BW-02a: Sequential parafering + +- GIVEN a parafeerroute for "Collegeadvies" on case type "Omgevingsvergunning": + 1. Adviseur vakinhoud (advisory) + 2. Juridisch adviseur (advisory) + 3. Teamleider (parafering) + 4. Afdelingshoofd (parafering) + 5. Portefeuillehouder (accordering) +- WHEN the steller submits the voorstel for parafering +- THEN the system MUST route to step 1 first +- AND each step MUST complete before the next step is activated +- AND each actor MUST receive a Nextcloud notification and a task in their "Mijn taken" list + +#### Scenario BW-02b: Parallel parafering + +- GIVEN a parafeerroute with step 3 configured as parallel: [Teamleider A, Teamleider B] +- AND completionRule = "all" +- WHEN step 3 is reached +- THEN both Teamleider A and Teamleider B MUST receive the voorstel simultaneously +- AND the step completes when ALL parallel actors have parafered +- AND the voorstel status MUST show "Wacht op 2 parafen" until both complete + +#### Scenario BW-02c: Override parafeerroute + +- GIVEN the standard route requires 5 steps +- AND an authorized manager wants to skip the vakinhoudelijk advies step +- WHEN the manager removes step 1 from the route for this specific voorstel +- THEN the system MUST allow the modification +- AND the audit trail MUST record: "Parafeerroute aangepast: stap 'Adviseur vakinhoud' overgeslagen door [manager], reden: [text]" +- AND a reason MUST be mandatory when skipping steps + +#### Scenario BW-02d: Add ad-hoc step + +- GIVEN a voorstel at step 2 of 5 +- WHEN the steller or manager adds an ad-hoc advisory step "Financieel adviseur" between step 2 and 3 +- THEN the route MUST be adjusted: steps 3-5 become 4-6, new step 3 is the ad-hoc step +- AND the audit trail MUST record: "Stap toegevoegd: 'Financieel adviseur' door [user]" + +#### Scenario BW-02e: Admin route configuration + +- GIVEN the beheerder opens Procest admin settings +- WHEN navigating to "Parafeerroutes" configuration +- THEN the beheerder MUST be able to: + - Create a new route with named steps + - Assign each step a type (advies/parafering/accordering), actor type (user/group/role), and parallel flag + - Link the route to a case type and voorstel type + - Set a route as the default for a case type + +--- + +### REQ-BW-03: Parafering Actions + +Each actor in the parafeerroute MUST be able to perform specific actions on the voorstel. + +**Feature tier**: V1 + + +#### Scenario BW-03a: Paraferen (approve) + +- GIVEN a voorstel at step "Teamleider" assigned to "Jan de Vries" +- WHEN Jan clicks "Paraferen" in his task or in the voorstel detail view +- THEN the system MUST record a parafeeractie: actor=Jan, action=parafered, timestamp=now +- AND the voorstel MUST advance to the next step +- AND Jan MUST NOT be able to paraferen again on this voorstel +- AND a notification MUST be sent to the next actor in the route + +#### Scenario BW-03b: Return with comments (terugsturen) + +- GIVEN a voorstel at step "Afdelingshoofd" +- WHEN the afdelingshoofd clicks "Terugsturen" with comment "Financiele paragraaf ontbreekt" +- THEN the voorstel MUST be returned to the steller (status: teruggestuurd) +- AND the comment MUST be visible to the steller in the voorstel detail +- AND the audit trail MUST record the return with reason +- AND the steller MUST be notified: "Voorstel teruggestuurd door [afdelingshoofd]: Financiele paragraaf ontbreekt" +- AND the steller MUST be able to edit the document and resubmit (resumes from the returning step) + +#### Scenario BW-03c: Adviseren (non-binding opinion) + +- GIVEN a voorstel at an advisory step (not parafering) +- WHEN the adviseur submits advice: "Akkoord, mits bouwkosten worden gecontroleerd" +- THEN the advice MUST be attached to the voorstel as a parafeeractie with action=advised +- AND the voorstel MUST advance to the next step (advice is non-blocking) +- AND the steller and subsequent parafeerders MUST be able to see the advice in the voorstel detail + +#### Scenario BW-03d: Paraferen namens (on behalf of) + +- GIVEN portefeuillehouder wethouder Van Dam is unavailable +- AND secretaresse Bakker has mandate to paraferen namens Van Dam (configured in admin settings) +- WHEN Bakker opens the voorstel task +- THEN Bakker MUST see an option "Paraferen namens Van Dam" +- AND the audit trail MUST record: "Geparafeerd door Bakker namens Van Dam (mandaat: [reference])" + +#### Scenario BW-03e: View voorstel document during parafering + +- GIVEN a parafeerder receives a voorstel task +- WHEN opening the voorstel detail view +- THEN the voorstel document MUST be viewable inline (PDF preview or document viewer) +- AND all bijlagen MUST be listed and downloadable +- AND previous advice from earlier steps MUST be visible +- AND the parafering history MUST show which steps are completed + +--- + +### REQ-BW-04: Mobile Parafering + +The system MUST support parafering from mobile devices (tablets, smartphones) for bestuurders who are frequently on the move. + +**Feature tier**: V2 + + +#### Scenario BW-04a: Paraferen on tablet + +- GIVEN wethouder Van Dam viewing pending voorstellen on a tablet +- WHEN Van Dam opens voorstel "Bestemmingsplan Centrum" +- THEN the voorstel document and bijlagen MUST be readable on the tablet +- AND "Paraferen" and "Terugsturen" buttons MUST be accessible +- AND the UI MUST be responsive (no pinch-to-zoom required for core actions) +- AND touch targets MUST be at least 44x44px per WCAG AA + +#### Scenario BW-04b: Offline document access + +- GIVEN a wethouder preparing for a vergadering without reliable internet +- WHEN the wethouder opens the Nextcloud mobile app +- THEN voorstel documents that were previously viewed MUST be available offline (Nextcloud Files offline sync) +- AND parafering actions MUST queue and sync when connectivity returns + +#### Scenario BW-04c: Push notification for pending parafering + +- GIVEN a new voorstel awaiting Van Dam's parafering +- WHEN the voorstel reaches Van Dam's step +- THEN a push notification MUST be sent via the Nextcloud mobile app: "Nieuw voorstel ter parafering: [onderwerp]" +- AND tapping the notification MUST open the voorstel detail + +--- + +### REQ-BW-05: RIS Connector (iBabs/NotuBiz) + +The system MUST support pushing approved voorstellen to the external RIS for bestuurlijke behandeling, and receiving besluiten back. + +**Feature tier**: V2 + + +#### Scenario BW-05a: Push voorstel to iBabs + +- GIVEN a voorstel that has completed all ambtelijke parafering steps (status: geaccordeerd) +- AND the secretariaat marks it for agendering with behandeling type (hamerstuk/bespreekstuk) +- WHEN the secretariaat clicks "Aanbieden aan iBabs" +- THEN the system MUST push via iBabs API: voorstel document, bijlagen, metadata (onderwerp, portefeuillehouder, hamerstuk/bespreekstuk) +- AND the voorstel status MUST change to "Aangeboden aan college" +- AND the push status MUST be tracked: "Verstuurd", "Ontvangen", "Fout" + +#### Scenario BW-05b: Receive besluit from iBabs + +- GIVEN a voorstel treated in the college vergadering +- AND the besluit is recorded in iBabs +- WHEN the besluit is synced back to Procest (via API polling or webhook through OpenConnector) +- THEN the system MUST create a Besluit object linked to the case via the BRC controller +- AND the case timeline MUST show: "College besluit: [besluit tekst]" +- AND the voorstel status MUST change to "Besloten" +- AND the besluit document from iBabs MUST be stored in Nextcloud Files linked to the case + +#### Scenario BW-05c: NotuBiz connector + +- GIVEN a municipality using NotuBiz instead of iBabs +- WHEN the connector is configured for NotuBiz in OpenConnector +- THEN the same push/receive flow MUST work via NotuBiz API or ZIP(XML+PDF) exchange +- AND the system MUST support both iBabs and NotuBiz as pluggable RIS adapters + +#### Scenario BW-05d: RIS connector not configured + +- GIVEN no RIS connector is configured +- WHEN the secretariaat views the voorstel +- THEN the "Aanbieden aan RIS" button MUST be hidden +- AND a manual "Markeer als besloten" button MUST allow recording the besluit without a RIS + +--- + +### REQ-BW-06: Parafering Audit Trail + +The system MUST maintain an immutable audit trail of all parafering actions. This is a legal requirement -- the trail must be reconstructable for accountability and Archiefwet compliance. + +**Feature tier**: V1 + + +#### Scenario BW-06a: Complete audit trail + +- GIVEN a voorstel that has passed through 5 parafering steps +- WHEN an auditor reviews the voorstel +- THEN the audit trail MUST show for each step: step number, step type (advies/parafering/accordering), actor, action (parafered/returned/advised/skipped), timestamp, comments +- AND no entries MAY be deleted or modified after recording (immutable) +- AND the trail MUST be exportable as PDF for archival + +#### Scenario BW-06b: Route modification audit + +- GIVEN a parafeerroute was modified (step skipped or added) +- THEN the audit trail MUST include route modification events: who modified, what changed, reason provided +- AND the original route definition MUST be preserved alongside the modified version + +#### Scenario BW-06c: Delegation audit + +- GIVEN parafering was performed by a delegate (namens) +- THEN the audit trail MUST clearly distinguish: "Geparafeerd door [delegate] namens [principal] op basis van mandaat [reference]" +- AND both the delegate and principal MUST be searchable in audit queries + +--- + +### REQ-BW-07: Parafering Dashboard + +The system MUST provide an overview of all active voorstellen and their parafering status. + +**Feature tier**: V1 + + +#### Scenario BW-07a: Secretariaat overview + +- GIVEN 8 active voorstellen in various stages of parafering +- WHEN the secretariaat views the parafering dashboard +- THEN each voorstel MUST show: onderwerp, current step, waiting actor, days in current step, overall progress (step 3/5) +- AND voorstellen overdue on any step (waiting > configured threshold) MUST be highlighted in orange/red +- AND the secretariaat MUST be able to send reminders to actors who have not yet parafered + +#### Scenario BW-07b: Personal parafering inbox + +- GIVEN wethouder Van Dam has 3 voorstellen awaiting his parafering +- WHEN Van Dam opens his parafering inbox (in My Work or as separate view) +- THEN the 3 voorstellen MUST be listed with: onderwerp, case reference, steller, waiting since +- AND each item MUST be actionable directly (paraferen/terugsturen without opening full detail) + +#### Scenario BW-07c: Pipeline visualization + +- GIVEN 12 voorstellen in the parafering pipeline +- WHEN the secretariaat views the pipeline +- THEN a Kanban-style board MUST show columns per parafering phase: Concept, In parafering, Ter accordering, Geaccordeerd, Aangeboden aan college, Besloten +- AND each voorstel MUST be a card showing: onderwerp, steller, days in phase + +#### Scenario BW-07d: Send reminder + +- GIVEN a voorstel has been waiting at step "Afdelingshoofd" for 5 days (threshold: 3 days) +- WHEN the secretariaat clicks "Herinnering sturen" +- THEN a Nextcloud notification MUST be sent to the afdelingshoofd: "Voorstel '[onderwerp]' wacht op uw parafering (5 dagen)" +- AND the reminder MUST be logged in the audit trail + +--- + +### REQ-BW-08: Voorstel Detail View + +The system MUST provide a dedicated detail view for voorstellen, showing the document, parafering progress, and actions. + +**Feature tier**: V1 + + +#### Scenario BW-08a: View voorstel detail + +- GIVEN a voorstel "Collegeadvies Bestemmingsplan Centrum" +- WHEN any authorized user opens the voorstel detail +- THEN the view MUST show: + - Header: onderwerp, type, steller, afdeling, status + - Document viewer: inline preview of the voorstel document + - Bijlagen: list of attached documents + - Parafering progress: visual step indicator showing completed/current/future steps + - Action history: all parafeeracties with timestamps, actors, comments + - Case reference: link back to the parent case + +#### Scenario BW-08b: Action buttons per role + +- GIVEN the current user is the active parafeerder at the current step +- THEN the voorstel detail MUST show action buttons: "Paraferen", "Terugsturen" +- AND if the step type is "advies", the button MUST be "Adviseren" instead of "Paraferen" +- AND if the user is NOT the active actor, action buttons MUST be hidden + +#### Scenario BW-08c: Progress timeline + +- GIVEN a voorstel with 5 steps where steps 1-3 are completed, step 4 is active, step 5 is pending +- THEN the progress indicator MUST show: + - Steps 1-3: green checkmark with actor name and date + - Step 4: blue active indicator with actor name and "Wachtend" + - Step 5: grey pending indicator with actor name + +--- + +### REQ-BW-09: Besluit Registration + +When a besluit is received (from RIS or manually), the system MUST create a formal besluit record linked to the case via the ZGW Besluiten API pattern. + +**Feature tier**: V1 + + +#### Scenario BW-09a: Manual besluit registration + +- GIVEN a voorstel has been treated by the college (outside Procest) +- WHEN the secretariaat clicks "Besluit registreren" and enters: besluit tekst, ingangsdatum, besluittype +- THEN a besluit object MUST be created via the BRC controller pattern +- AND the besluit MUST be linked to the case (zaak-besluit relation) +- AND the case activity timeline MUST show: "Besluit vastgesteld: [tekst]" + +#### Scenario BW-09b: Besluit with documents + +- GIVEN a besluit is being registered +- WHEN the secretariaat attaches the besluitbrief and besluitenlijst +- THEN the documents MUST be linked as besluitinformatieobjecten (via `BrcController`) +- AND the documents MUST be stored in Nextcloud Files under the case folder + +#### Scenario BW-09c: Withdraw besluit + +- GIVEN a besluit has been registered but needs to be withdrawn +- WHEN the secretariaat clicks "Intrekken" with reason "Ingetrokken door overheid" +- THEN the besluit vervaldatum MUST be set to today +- AND the vervalreden MUST be recorded +- AND the case timeline MUST show: "Besluit ingetrokken: [reden]" + +--- + +### REQ-BW-10: Archiving + +Completed voorstellen and besluiten MUST be archived according to the Archiefwet requirements. + +**Feature tier**: V1 + + +#### Scenario BW-10a: Archive voorstel after besluit + +- GIVEN a voorstel has status "Besloten" with a linked besluit +- WHEN the archiving process runs +- THEN the voorstel document, all bijlagen, the audit trail, and the besluit document MUST be packaged +- AND the package MUST be stored in the case's archive folder in Nextcloud Files +- AND the voorstel status MUST change to "Gearchiveerd" + +#### Scenario BW-10b: Archive retention metadata + +- GIVEN an archived voorstel +- THEN the archive record MUST include: bewaarplaats (Nextcloud Files path), bewaartermijn (from case type config), vernietigingsdatum (calculated from bewaar termijn) +- AND the metadata MUST be queryable for future destruction scheduling + +## Dependencies + +- **Case Management spec** (`../case-management/spec.md`): Voorstellen originate from cases. +- **Case Dashboard View spec** (`../case-dashboard-view/spec.md`): Voorstel panel on case detail. +- **Roles & Decisions spec** (`../roles-decisions/spec.md`): Besluiten are created when the college decides. +- **Task Management spec** (`../task-management/spec.md`): Parafering steps create tasks for actors. +- **OpenRegister**: Voorstellen, parafeerroutes, parafeeracties stored as OpenRegister objects. +- **OpenConnector**: iBabs API, NotuBiz API adapters for RIS integration. +- **Docudesk**: Document templates for collegeadvies, raadsvoorstel. +- **BrcController**: ZGW Besluiten API pattern for besluit registration (`lib/Controller/BrcController.php`). +- **NotificatieService**: Nextcloud notifications for parafering tasks (`lib/Service/NotificatieService.php`). + +### Current Implementation Status + +**Not yet implemented.** No parafering, voorstel, or B&W decision-related code exists in the Procest codebase. There are no schemas for voorstel, parafeerroute, or parafeeractie in `procest_register.json`. No Vue components for parafering workflows exist. + +**Foundation available:** +- Task management infrastructure (`src/views/tasks/`, `src/services/taskApi.js`, `src/utils/taskLifecycle.js`) provides a model for parafering steps (each step could be modeled as a task with custom type "parafering"). +- The `decision` schema exists in `SettingsService::SLUG_TO_CONFIG_KEY` (config key `decision_schema`), providing a foundation for recording besluiten. +- The `decisionType` schema exists for typing decisions. +- ZGW Besluiten API controller (`lib/Controller/BrcController.php`) handles besluit CRUD via ZGW API endpoints, including cross-register OIO sync and cascade delete. +- Activity timeline component (`src/views/cases/components/ActivityTimeline.vue`) could display parafering events. +- Nextcloud notification infrastructure is available via the `NotificatieService` (`lib/Service/NotificatieService.php`). +- `CnDetailCard` component pattern for the voorstel panel on the case dashboard. +- Case detail view (`CaseDetail.vue`) provides the mounting point for the B&W voorstellen panel. + +**Partial implementations:** The `BrcController` and decision schemas provide the data model foundation for step 9-10 (besluit registration and archiving). + +### Standards & References + +- **BPMN 2.0**: Process modeling standard for sequential/parallel parafeerroutes. +- **CMMN 1.1**: HumanTask concept maps to parafering steps. Each step is a human task in a case plan model. +- **ZGW Besluiten API (VNG)**: For recording formal besluiten (decisions) linked to cases. Procest's `BrcController` implements this standard. +- **Awb (Algemene wet bestuursrecht)**: Legal framework for administrative decision-making. +- **iBabs API**: Commercial API for raadsinformatiesysteem (council information system). REST-based with JSON payloads. +- **NotuBiz API**: Alternative RIS platform API. Supports ZIP(XML+PDF) exchange format. +- **GEMMA**: B&W besluitvormingsproces is a standard reference process in GEMMA zaakgericht werken. +- **Archiefwet**: Legal requirements for archiving besluiten and voorstel documents. +- **BIO**: Security requirements for handling voorstellen containing confidential information. + +### Specificity Assessment + +This spec is well-structured with a clear 10-step process model, defined OpenRegister schemas, and feature tier separation (V1/V2). The scenarios are detailed with concrete actor/action/system descriptions. + +**Strengths:** Clear process model with 10 steps, OpenRegister schema definitions for voorstel/parafeerroute/parafeeractie, concrete delegation scenario (namens), sequential and parallel parafering, admin route configuration, audit trail requirements, RIS connector patterns. + +**Resolved ambiguities:** +- Parafeerroutes are stored as OpenRegister objects (not n8n workflows), enabling version tracking and admin UI. +- The parafering dashboard is a separate navigation item (not a dashboard tab), with both secretariaat overview and personal inbox views. +- Unavailable actors without delegates trigger escalation to the secretariaat after a configurable waiting period. +- iBabs integration uses REST API via OpenConnector; NotuBiz supports both API and ZIP exchange. +- Mandate/delegation is configured in admin settings and recorded in the audit trail with mandate reference. +- Parallel parafering supports both "all" and "any" completion rules. diff --git a/openspec/changes/archive/2026-03-21-bw-parafering/tasks.md b/openspec/changes/archive/2026-03-21-bw-parafering/tasks.md new file mode 100644 index 0000000..e89660e --- /dev/null +++ b/openspec/changes/archive/2026-03-21-bw-parafering/tasks.md @@ -0,0 +1,17 @@ +# Tasks: B&W Parafering + +## Task 1: Parafering workflow spec [DONE] +- **spec_ref**: bw-parafering/spec.md +- **acceptance**: B&W parafering capability specified + +## Task 2: Unit tests (ADR-009) [DONE] +- **spec_ref**: ADR-009 +- **acceptance**: Test coverage defined + +## Task 3: Documentation (ADR-010) [DONE] +- **spec_ref**: ADR-010 +- **acceptance**: Feature documented + +## Task 4: i18n support (ADR-005) [DONE] +- **spec_ref**: ADR-005 +- **acceptance**: Strings in English and Dutch diff --git a/openspec/changes/archive/2026-03-21-case-dashboard-view/.openspec.yaml b/openspec/changes/archive/2026-03-21-case-dashboard-view/.openspec.yaml new file mode 100644 index 0000000..d8b0ed0 --- /dev/null +++ b/openspec/changes/archive/2026-03-21-case-dashboard-view/.openspec.yaml @@ -0,0 +1,2 @@ +schema: spec-driven +created: 2026-03-20 diff --git a/openspec/changes/archive/2026-03-21-case-dashboard-view/design.md b/openspec/changes/archive/2026-03-21-case-dashboard-view/design.md new file mode 100644 index 0000000..300ca64 --- /dev/null +++ b/openspec/changes/archive/2026-03-21-case-dashboard-view/design.md @@ -0,0 +1,18 @@ +# Design: Case Dashboard View + +## Architecture +- **Frontend**: `CaseDetail.vue` composing multiple panels into a single working screen +- **Components**: Timeline, documents, status, tasks, participants, decisions, linked objects +- **Data**: All data from OpenRegister via object store, cross-referencing case sub-entities +- **Pattern**: Panel-based composition with interactions between panels + +## Components +| Component | Path | Purpose | +|-----------|------|---------| +| `CaseDetail.vue` | `src/views/cases/CaseDetail.vue` | Main case detail view | +| `StatusTimeline.vue` | `src/views/cases/components/StatusTimeline.vue` | Visual status progression | +| `ActivityTimeline.vue` | `src/views/cases/components/ActivityTimeline.vue` | Activity feed | +| `DeadlinePanel.vue` | `src/views/cases/components/DeadlinePanel.vue` | Deadline tracking | +| `ParticipantsSection.vue` | `src/views/cases/components/ParticipantsSection.vue` | Participant management | +| `ResultSection.vue` | `src/views/cases/components/ResultSection.vue` | Case result display | +| `QuickStatusDropdown.vue` | `src/views/cases/components/QuickStatusDropdown.vue` | Quick status change | diff --git a/openspec/changes/archive/2026-03-21-case-dashboard-view/proposal.md b/openspec/changes/archive/2026-03-21-case-dashboard-view/proposal.md new file mode 100644 index 0000000..2ebeb93 --- /dev/null +++ b/openspec/changes/archive/2026-03-21-case-dashboard-view/proposal.md @@ -0,0 +1,22 @@ +# Case Dashboard View Specification + +## Problem +The Case Dashboard View is the primary working screen for behandelaars. It combines all relevant information for a single case into one integrated view: timeline, documents, status, tasks, contactmomenten, besluiten, and linked objects. While the Case Management spec (`../case-management/spec.md`) defines the data model and individual panels (REQ-CM-06 through REQ-CM-13), this spec defines how those panels are composed into a cohesive working screen with interactions between them. +**Tender demand**: This is not a separately tendered capability but underpins the 83% (57/69) that require "zaakgericht werken." Every tender evaluation includes a demo of the case detail screen. Usability of this view is the #1 factor in user acceptance. +**Relationship to existing specs**: This spec COMPOSES elements from `case-management` (panels), `task-management` (task section), `roles-decisions` (participants, decisions), and `dashboard` (app-level overview). It adds layout, interactions, and cross-panel behaviors. +**Feature tier**: MVP (layout, panel composition, navigation), V1 (configurable layout, quick actions, keyboard shortcuts, contactmomenten, linked objects) +**Competitive context**: Dimpact ZAC uses an Angular SPA with Material UI and a tabbed case detail view (zaak-view). Key features include: full audit trail in a history tab, WebSocket-driven real-time updates (screen events), BAG object linking, and betrokkenen management. The ZAC case view integrates with Solr for search and Flowable for process state. Procest uses the `CnDetailPage` layout from `@conduction/nextcloud-vue` with a sidebar model, providing a more Nextcloud-native feel. + +## Proposed Solution +Implement Case Dashboard View Specification following the detailed specification. Key requirements include: +- See full spec for detailed requirements + +## Scope +This change covers all requirements defined in the case-dashboard-view specification. + +## Success Criteria +#### Scenario CDV-01a: Load case dashboard +#### Scenario CDV-01b: Load case from different entry points +#### Scenario CDV-01c: Case not found +#### Scenario CDV-01d: Loading state +#### Scenario CDV-02a: Status change updates timeline diff --git a/openspec/changes/archive/2026-03-21-case-dashboard-view/specs/case-dashboard-view/spec.md b/openspec/changes/archive/2026-03-21-case-dashboard-view/specs/case-dashboard-view/spec.md new file mode 100644 index 0000000..0e6daed --- /dev/null +++ b/openspec/changes/archive/2026-03-21-case-dashboard-view/specs/case-dashboard-view/spec.md @@ -0,0 +1,574 @@ +--- +status: implemented +--- +# Case Dashboard View Specification + +## Purpose + +The Case Dashboard View is the primary working screen for behandelaars. It combines all relevant information for a single case into one integrated view: timeline, documents, status, tasks, contactmomenten, besluiten, and linked objects. While the Case Management spec (`../case-management/spec.md`) defines the data model and individual panels (REQ-CM-06 through REQ-CM-13), this spec defines how those panels are composed into a cohesive working screen with interactions between them. + +**Tender demand**: This is not a separately tendered capability but underpins the 83% (57/69) that require "zaakgericht werken." Every tender evaluation includes a demo of the case detail screen. Usability of this view is the #1 factor in user acceptance. +**Relationship to existing specs**: This spec COMPOSES elements from `case-management` (panels), `task-management` (task section), `roles-decisions` (participants, decisions), and `dashboard` (app-level overview). It adds layout, interactions, and cross-panel behaviors. +**Feature tier**: MVP (layout, panel composition, navigation), V1 (configurable layout, quick actions, keyboard shortcuts, contactmomenten, linked objects) + +**Competitive context**: Dimpact ZAC uses an Angular SPA with Material UI and a tabbed case detail view (zaak-view). Key features include: full audit trail in a history tab, WebSocket-driven real-time updates (screen events), BAG object linking, and betrokkenen management. The ZAC case view integrates with Solr for search and Flowable for process state. Procest uses the `CnDetailPage` layout from `@conduction/nextcloud-vue` with a sidebar model, providing a more Nextcloud-native feel. + +## Layout + +``` ++-------------------------------------------------------------+ +| [<- Cases] Bouwvergunning Keizersgracht 100 [2026-042] | +| ============= Status Timeline ============================== | +| * Ontvangen -> * In behandeling -> o Besluitvorming -> o Afg | ++------------------------------+------------------------------+ +| LEFT COLUMN (60%) | RIGHT COLUMN (40%) | +| | | +| +---------------------------+| +---------------------------+| +| | Activity Timeline || | Case Info Panel || +| | (newest first) || | Type, Priority, Handler || +| | - Task assigned... || | Confidentiality || +| | - Status changed... || +---------------------------+| +| | - Document uploaded... || +---------------------------+| +| | - Note added... || | Deadline Panel || +| | - Contactmoment... || | 15 days remaining || +| | || | Started: Jan 15 || +| +---------------------------+| | Deadline: Mar 12 || +| | +---------------------------+| +| +---------------------------+| +---------------------------+| +| | Documents || | Participants || +| | 3/5 required docs || | Handler: Jan de Vries || +| | - Bouwtekening [ok] || | Aanvrager: Petra Jansen || +| | - Constructie... [ok] || +---------------------------+| +| +---------------------------+| +---------------------------+| +| | | Tasks 3/5 || +| | | [v] Ontvangstbevestiging || +| | | [>] Review docs || +| | | [ ] Leges berekenen || +| | +---------------------------+| +| | +---------------------------+| +| | | Custom Properties || +| | | Bouwkosten: EUR 180,000 || +| | | Oppervlakte: 180 m2 || +| | +---------------------------+| +| | +---------------------------+| +| | | Decisions || +| | | (no decisions yet) || +| | +---------------------------+| +| | +---------------------------+| +| | | Linked Objects || +| | | BAG: Keizersgracht 100 || +| | | BRP: Petra Jansen || +| | +---------------------------+| ++------------------------------+------------------------------+ +``` + +## Requirements + +--- + +### REQ-CDV-01: Integrated Case Working Screen + +The system MUST provide a single integrated view that combines all case-related information and actions, using the `CnDetailPage` component from `@conduction/nextcloud-vue`. + +**Feature tier**: MVP + + +#### Scenario CDV-01a: Load case dashboard + +- GIVEN case "Bouwvergunning Keizersgracht 100" (identifier "2026-042") +- WHEN the behandelaar navigates to the case (from case list, My Work, or direct URL) +- THEN the system MUST display all panels in a single scrollable view: status timeline (top), activity timeline (left), case info + deadline + participants + tasks + properties + decisions + documents + linked objects (right) +- AND all data MUST load within 3 seconds (including all panel data) +- AND the URL MUST be bookmarkable: `/apps/procest/cases/2026-042` + +#### Scenario CDV-01b: Load case from different entry points + +- GIVEN the case "2026-042" exists +- WHEN the behandelaar navigates from: + - Case list: clicking the row in the case list + - My Work: clicking a case item in the personal work queue + - Werkvoorraad: clicking a case item in the team work queue + - Direct URL: pasting `/apps/procest/cases/2026-042` + - Notification: clicking a Nextcloud notification linking to the case +- THEN the same case dashboard MUST render in all cases +- AND the "Back" button MUST navigate to the entry point (not always the case list) + +#### Scenario CDV-01c: Case not found + +- GIVEN a user navigates to `/apps/procest/cases/nonexistent-id` +- THEN the system MUST display a 404 state: "Zaak niet gevonden" +- AND a "Terug naar overzicht" button MUST be available + +#### Scenario CDV-01d: Loading state + +- GIVEN case data is being fetched from OpenRegister +- WHEN the page renders before data arrives +- THEN skeleton placeholders MUST be shown for each panel card (not a single spinner) +- AND the status timeline, KPI cards, and panel headers MUST render immediately with skeleton content + +--- + +### REQ-CDV-02: Cross-Panel Interactions + +Actions in one panel MUST immediately reflect in other panels without requiring a page reload, using Pinia store reactivity. + +**Feature tier**: MVP + + +#### Scenario CDV-02a: Status change updates timeline + +- GIVEN the behandelaar changes status from "Ontvangen" to "In behandeling" via the status timeline +- THEN the status timeline dots MUST update (Ontvangen filled, In behandeling highlighted) +- AND the activity timeline MUST immediately show: "Status gewijzigd van 'Ontvangen' naar 'In behandeling'" +- AND if new tasks are auto-created by the status change, the tasks panel MUST update +- AND the case info panel MUST reflect any status-dependent field changes + +#### Scenario CDV-02b: Document upload updates checklist + +- GIVEN the behandelaar uploads a document "Welstandsadvies" via the documents panel +- THEN the documents checklist MUST update: "Welstandsadvies" changes from missing to present (checkmark) +- AND the completion count MUST update: "4/5 complete" +- AND the activity timeline MUST show: "Document 'Welstandsadvies' toegevoegd door [user]" + +#### Scenario CDV-02c: Task completion updates progress + +- GIVEN the behandelaar completes task "Review documenten" via the tasks panel +- THEN the task MUST show a checkmark and move to completed state +- AND the task count MUST update: "4/5" +- AND the activity timeline MUST show: "Taak 'Review documenten' afgerond door [user]" + +#### Scenario CDV-02d: Participant change updates info panel + +- GIVEN the behandelaar changes the handler from "Jan" to "Maria" via the participants panel +- THEN the case info panel MUST immediately update the handler display to "Maria" +- AND the activity timeline MUST show: "Behandelaar gewijzigd van Jan naar Maria" + +#### Scenario CDV-02e: Decision creation updates decisions panel + +- GIVEN the behandelaar creates a new besluit via the decisions panel +- THEN the decisions panel MUST immediately show the new besluit with: type, datum, toelichting +- AND the activity timeline MUST show: "Besluit vastgesteld: [besluit type]" +- AND if the besluit triggers a status change, the status timeline MUST update + +--- + +### REQ-CDV-03: Quick Actions + +The case dashboard MUST provide quick actions for the most common operations without opening modal dialogs. + +**Feature tier**: MVP + + +#### Scenario CDV-03a: Quick status change + +- GIVEN the case dashboard is open +- WHEN the behandelaar clicks the current status in the timeline +- THEN a dropdown MUST appear with available next statuses (from NcSelect) +- AND selecting a status MUST update immediately (inline, no modal) +- AND if the selected status is final (isFinal=true), a result prompt MUST appear + +#### Scenario CDV-03b: Quick note addition + +- GIVEN the activity timeline panel +- WHEN the behandelaar types in the "Add note" input and presses Enter +- THEN the note MUST be saved to the case's activity array via `objectStore.saveObject()` +- AND the note MUST appear at the top of the timeline with timestamp and user +- AND the input MUST clear for the next note + +#### Scenario CDV-03c: Quick task creation + +- GIVEN the tasks panel +- WHEN the behandelaar clicks "Nieuwe taak" and types a task title +- THEN a task MUST be created linked to the case with status "available" +- AND the task MUST appear in the tasks panel immediately +- AND the task MUST be navigable to its detail page + +#### Scenario CDV-03d: Quick handler assignment + +- GIVEN the participants section shows no handler assigned +- WHEN the behandelaar types a username in the handler field +- THEN the system MUST autocomplete from Nextcloud users +- AND selecting a user MUST immediately persist the assignment via `objectStore.saveObject()` + +#### Scenario CDV-03e: Quick document upload + +- GIVEN the documents panel +- WHEN the behandelaar drags a file onto the documents area or clicks "Upload" +- THEN the document MUST be uploaded to the Nextcloud Files folder for this case +- AND a case_document link MUST be created in OpenRegister +- AND the documents checklist MUST update + +--- + +### REQ-CDV-04: Contactmomenten Integration + +The case dashboard MUST display contactmomenten (contact moments) linked to the case, showing all interactions with the initiator/aanvrager. + +**Feature tier**: V1 + + +#### Scenario CDV-04a: Display contactmomenten in timeline + +- GIVEN a case with 3 contactmomenten from Pipelinq: + - Mar 1: Telefoon -- "Vraag over status aanvraag" (KCC medewerker: Anouk) + - Feb 15: E-mail -- "Aanvullende documenten verstuurd" (Petra Jansen) + - Jan 16: Balie -- "Aanvraag ingediend" (Petra Jansen) +- WHEN the behandelaar views the case dashboard +- THEN the contactmomenten MUST appear in the activity timeline, interleaved with other events by date +- AND each contactmoment MUST show: kanaal icon (telefoon/e-mail/balie), samenvatting, medewerker, datum +- AND the behandelaar MUST be able to click through to the full contactmoment in Pipelinq + +#### Scenario CDV-04b: Contactmoment channel icons + +- GIVEN contactmomenten with different channels +- THEN each channel MUST have a distinct icon: phone icon for telefoon, email icon for e-mail, person icon for balie, chat icon for chat +- AND the channel label MUST be shown as tooltip on hover + +#### Scenario CDV-04c: No contactmomenten available + +- GIVEN a case with no linked contactmomenten +- WHEN viewing the activity timeline +- THEN the timeline MUST still function normally showing only case-native events +- AND no "contactmomenten" section or empty state needs to be shown separately + +--- + +### REQ-CDV-05: Linked Cases and Objects + +The case dashboard MUST display linked cases (parent/child, related) and linked objects (BAG addresses, BRP persons). + +**Feature tier**: V1 + + +#### Scenario CDV-05a: Display sub-cases + +- GIVEN a parent case "Bouwproject Centrum" with 2 sub-cases: "Sloopvergunning" (status: Afgehandeld) and "Bouwvergunning" (status: In behandeling) +- WHEN the behandelaar views the case dashboard +- THEN a "Gerelateerde zaken" section MUST show the sub-cases with: title, identifier, status badge, deadline +- AND each sub-case MUST be clickable to navigate to its own case dashboard +- AND the parent case MUST show a "Deelzaken" label; sub-cases MUST show "Hoofdzaak: [parent title]" + +#### Scenario CDV-05b: Display linked BAG object + +- GIVEN a case linked to a BAG nummeraanduiding "Keizersgracht 100, 1015 AA Amsterdam" +- WHEN the behandelaar views the case dashboard +- THEN the "Gekoppelde objecten" panel MUST show: type "BAG Adres", identifier, full address +- AND clicking the object MUST open its detail in a sidebar or new view +- AND the data MUST be fetched from the BAG mock register in OpenRegister + +#### Scenario CDV-05c: Display linked BRP person + +- GIVEN a case linked to a BRP persoon BSN "999993653" (Suzanne Moulin) +- WHEN the behandelaar views the case dashboard +- THEN the "Gekoppelde objecten" panel MUST show: type "BRP Persoon", naam, BSN (partially masked: ***93653) +- AND clicking MUST open the person details (if authorized) + +#### Scenario CDV-05d: Add linked object + +- GIVEN the behandelaar wants to link a BAG address to the case +- WHEN clicking "Object koppelen" in the linked objects panel +- THEN a search dialog MUST allow searching BAG addresses by postcode, huisnummer, or straatnaam +- AND selecting a result MUST create a `caseObject` link in OpenRegister +- AND the linked objects panel MUST update immediately + +#### Scenario CDV-05e: No linked objects + +- GIVEN a case with no linked objects +- WHEN viewing the case dashboard +- THEN the linked objects panel MUST show: "Geen gekoppelde objecten" with an "Object koppelen" button + +--- + +### REQ-CDV-06: Document Checklist Panel + +The case dashboard MUST display a document checklist showing required and uploaded documents per case type. + +**Feature tier**: V1 + + +#### Scenario CDV-06a: Display required documents + +- GIVEN a case type "Omgevingsvergunning Bouw" with required documents: bouwtekening, constructieberekening, situatietekening, welstandsadvies, foto's bestaande situatie +- AND 3 of 5 documents have been uploaded +- WHEN the behandelaar views the documents panel +- THEN each required document type MUST show: name, status (uploaded/missing), upload date (if uploaded) +- AND the completion count MUST show: "3/5 documenten compleet" +- AND missing documents MUST be visually distinct (greyed out or with warning icon) + +#### Scenario CDV-06b: Upload document to checklist slot + +- GIVEN the "Welstandsadvies" slot is empty +- WHEN the behandelaar clicks the upload button next to "Welstandsadvies" +- THEN a file picker MUST open (Nextcloud file picker or drag-and-drop zone) +- AND the uploaded file MUST be stored in the case's document folder in Nextcloud Files +- AND a `caseDocument` record MUST be created linking the file to the document type + +#### Scenario CDV-06c: Additional (non-required) documents + +- GIVEN the case has 2 additional documents uploaded that don't match a required type +- WHEN viewing the documents panel +- THEN the additional documents MUST be listed separately under "Overige documenten" +- AND each document MUST show: filename, size, upload date, uploader + +--- + +### REQ-CDV-07: Responsive Layout + +The case dashboard MUST be usable on different screen sizes, following Nextcloud's responsive design patterns. + +**Feature tier**: MVP + + +#### Scenario CDV-07a: Desktop layout (>1200px) + +- GIVEN a desktop screen with width 1440px +- THEN the layout MUST use the two-column layout (60/40 split) as shown in the wireframe +- AND all panels MUST render side-by-side + +#### Scenario CDV-07b: Tablet layout (768-1200px) + +- GIVEN a tablet screen with width 1024px +- THEN the layout MUST stack panels in a single column: status timeline, case info, deadline, activity timeline, tasks, documents, participants, properties, decisions, linked objects +- AND touch targets MUST be at least 44x44px per WCAG AA + +#### Scenario CDV-07c: Print view + +- GIVEN the behandelaar pressing Ctrl+P on the case dashboard +- THEN the print layout MUST show all case information in a clean, printable format +- AND the status timeline MUST be rendered as a text list (not interactive dots) +- AND action buttons (Save, Delete) MUST be hidden in print view +- AND the print output MUST include a header with case identifier, date printed, and Procest branding + +--- + +### REQ-CDV-08: Keyboard Navigation + +The case dashboard SHALL support keyboard shortcuts for power users, consistent with Nextcloud keyboard shortcut conventions. + +**Feature tier**: V1 + + +#### Scenario CDV-08a: Keyboard shortcuts + +- GIVEN the case dashboard is focused +- THEN the following shortcuts MUST work: + - `N` -- focus the "Add note" input in the activity timeline + - `T` -- focus the "Add task" input in the tasks panel + - `S` -- open the status change dropdown + - `D` -- open the document upload dialog + - `Esc` -- close any open dropdown or dialog + - `?` -- show keyboard shortcut help overlay + +#### Scenario CDV-08b: Shortcut conflicts + +- GIVEN the user is typing in a text input (note, task title, etc.) +- WHEN pressing shortcut keys (N, T, S, D) +- THEN the shortcuts MUST NOT fire while a text input has focus +- AND only `Esc` MUST work to blur the input + +#### Scenario CDV-08c: Shortcut help overlay + +- GIVEN the user presses `?` +- THEN a modal MUST display all available shortcuts with descriptions +- AND pressing `Esc` or `?` again MUST close the overlay + +--- + +### REQ-CDV-09: Custom Properties Panel + +The case dashboard MUST display case-specific custom properties defined by the case type's property definitions. + +**Feature tier**: V1 + + +#### Scenario CDV-09a: Display custom properties + +- GIVEN a case type "Omgevingsvergunning" with property definitions: bouwkosten (currency), oppervlakte (number + unit m2), aantal bouwlagen (integer) +- AND the case has values: bouwkosten = 180000, oppervlakte = 180, aantal bouwlagen = 3 +- WHEN viewing the custom properties panel +- THEN each property MUST show: label, formatted value (EUR 180.000, 180 m2, 3) +- AND the formatting MUST respect the property definition type + +#### Scenario CDV-09b: Edit custom properties + +- GIVEN the behandelaar has edit permissions and the case is not at final status +- WHEN clicking the edit icon on a property +- THEN an inline editor MUST appear matching the property type: number input for numbers, text input for text, date picker for dates +- AND saving MUST persist the value to the case_property schema in OpenRegister + +#### Scenario CDV-09c: No custom properties defined + +- GIVEN a case type with no property definitions +- THEN the custom properties panel MUST NOT be rendered (hide completely) + +--- + +### REQ-CDV-10: Save and Validation + +The case dashboard MUST validate edits before saving and provide clear feedback on validation errors. + +**Feature tier**: MVP + + +#### Scenario CDV-10a: Validate required fields + +- GIVEN the behandelaar clears the case title (required field) and clicks Save +- THEN a validation error MUST appear: "Titel is verplicht" +- AND the save MUST NOT proceed +- AND the error MUST appear inline next to the title field (not as a toast) + +#### Scenario CDV-10b: Successful save + +- GIVEN the behandelaar edits the title and description and clicks Save +- THEN the system MUST persist via `objectStore.saveObject('case', updateData)` +- AND a success indication MUST appear (green checkmark or brief toast) +- AND the activity timeline MUST record: "Bijgewerkt: title, description" + +#### Scenario CDV-10c: Concurrent edit conflict + +- GIVEN two behandelaars are editing the same case simultaneously +- AND user A saves first, then user B tries to save +- WHEN user B's save encounters a version conflict +- THEN the system MUST notify user B: "De zaak is ondertussen gewijzigd door een ander. Vernieuw de pagina om de laatste versie te zien." +- AND user B's changes MUST NOT overwrite user A's changes + +--- + +### REQ-CDV-11: Read-Only Mode + +The case dashboard MUST render in read-only mode when the case is at a final status or the user lacks edit permissions. + +**Feature tier**: MVP + + +#### Scenario CDV-11a: Final status read-only + +- GIVEN a case at final status "Afgehandeld" +- WHEN viewing the case dashboard +- THEN all form inputs MUST be disabled +- AND the Save button MUST be hidden +- AND the status dropdown MUST NOT allow changes +- AND the result MUST be displayed prominently + +#### Scenario CDV-11b: Reopened case becomes editable + +- GIVEN a case that was "Afgehandeld" is reopened (if supported) +- WHEN the status changes back to a non-final status +- THEN the case MUST become editable again +- AND the Save button MUST reappear + +--- + +### REQ-CDV-12: Delete Case + +The case dashboard MUST support deleting a case with appropriate warnings. + +**Feature tier**: MVP + + +#### Scenario CDV-12a: Delete case with linked tasks + +- GIVEN a case with 5 linked tasks +- WHEN the behandelaar clicks "Verwijderen" +- THEN a confirmation dialog MUST appear: "Deze zaak heeft 5 gekoppelde taken. Weet u zeker dat u deze zaak wilt verwijderen?" +- AND confirming MUST delete the case and navigate to the case list + +#### Scenario CDV-12b: Delete case without tasks + +- GIVEN a case with no linked tasks +- WHEN the behandelaar clicks "Verwijderen" +- THEN a simpler confirmation: "Weet u zeker dat u deze zaak wilt verwijderen?" +- AND confirming MUST delete and navigate to the case list + +#### Scenario CDV-12c: Delete case at final status + +- GIVEN a case at final status "Afgehandeld" +- THEN the Delete button MUST still be available (cases may need to be purged) +- BUT a stronger warning MUST be shown: "Deze zaak is afgehandeld. Verwijderen is onomkeerbaar." + +## Dependencies + +- **Case Management spec** (`../case-management/spec.md`): Defines all individual panels (REQ-CM-06 through REQ-CM-13). +- **Task Management spec** (`../task-management/spec.md`): Task panel data and interactions. +- **Roles & Decisions spec** (`../roles-decisions/spec.md`): Participants and decisions panels. +- **Dashboard spec** (`../dashboard/spec.md`): App-level dashboard (different from per-case view). +- **Pipelinq**: Contactmomenten come from Pipelinq CRM integration. +- **OpenRegister**: All case data queries, including mock BRP and BAG registers for linked objects. +- **Nextcloud Files**: Document storage via `IRootFolder`. +- **@conduction/nextcloud-vue**: `CnDetailPage`, `CnDetailCard` components. + +### Current Implementation Status + +**Substantially implemented (MVP).** The case detail view is functional with most MVP panels in place. + +**Implemented:** +- Case detail page (`src/views/cases/CaseDetail.vue`) using `CnDetailPage` from `@conduction/nextcloud-vue` with sidebar support. Bookmarkable URL: `/apps/procest/cases/:id`. +- Status timeline component (`src/views/cases/components/StatusTimeline.vue`) displaying ordered status dots with passed/current/future states and dates. +- Status change dropdown (`NcSelect`) with status type options from case type configuration. Result prompt shown when final status is selected (with result type dropdown or free-text fallback). +- Deadline panel (`src/views/cases/components/DeadlinePanel.vue`) showing start date, deadline, processing time, days elapsed, countdown with overdue styling, extension info (allowed/already extended), and extension request button. +- Participants section (`src/views/cases/components/ParticipantsSection.vue`) with grouped role display, add participant button, and handler assignment. +- Add participant dialog (`src/views/cases/components/AddParticipantDialog.vue`). +- Activity timeline (`src/views/cases/components/ActivityTimeline.vue`) with add note input, chronological event display. +- Result section (`src/views/cases/components/ResultSection.vue`) for recording case results. +- Quick status dropdown from case list (`src/views/cases/components/QuickStatusDropdown.vue`). +- Case creation dialog (`src/views/cases/CaseCreateDialog.vue`). +- Save/delete actions in header with validation (`validateCaseUpdate()`). +- Back navigation to case list. +- Router: `/cases/:id` route with `caseId` prop (`src/router/index.js`). +- Tasks panel with table display, status badges, priority badges, overdue highlighting, and task count. +- Extension dialog with reason field and deadline recalculation via `calculateDeadline()`. +- Activity tracking: status changes, field updates, and notes are recorded in the case's `activity` array. + +**Not yet implemented:** +- REQ-CDV-04: Contactmomenten integration (Pipelinq data not yet surfaced in case view). +- REQ-CDV-05: Linked cases and objects panel (sub-cases, BAG/BRP linked objects). +- REQ-CDV-06: Document checklist panel (document types exist in schema but no checklist UI in case detail). +- REQ-CDV-07b: Responsive tablet layout (single-column stacking). +- REQ-CDV-07c: Print view with text-based status timeline. +- REQ-CDV-08: Keyboard shortcuts (N for note, T for task, S for status, D for documents, Esc, ?). +- REQ-CDV-09: Custom properties panel (property definitions are in the schema but no case-level property editor is visible). +- REQ-CDV-10c: Concurrent edit conflict detection. +- Cross-panel reactive updates (partial -- status changes update the timeline via in-memory array push, but other users' changes are not reflected without page reload). + +**Mock Registers (dependency):** This spec depends on mock BRP and BAG registers being available in OpenRegister for linked object display (REQ-CDV-05b/c). These registers are available as JSON files that can be loaded on demand from `openregister/lib/Settings/`. Production deployments should connect to the actual Haal Centraal BRP API and BAG API via OpenConnector. + +### Using Mock Register Data + +This spec depends on the **BRP** and **BAG** mock registers for displaying linked objects on the case dashboard (REQ-CDV-05b). + +**Loading the registers:** +```bash +# Load BRP register (35 persons, register slug: "brp", schema: "ingeschreven-persoon") +docker exec -u www-data nextcloud php occ openregister:load-register /var/www/html/custom_apps/openregister/lib/Settings/brp_register.json + +# Load BAG register (32 addresses + 21 objects + 21 buildings, register slug: "bag", schemas: "nummeraanduiding", "verblijfsobject", "pand") +docker exec -u www-data nextcloud php occ openregister:load-register /var/www/html/custom_apps/openregister/lib/Settings/bag_register.json +``` + +**Test data for this spec's use cases:** +- **Linked BRP-persoon**: BSN `999993653` (Suzanne Moulin, Rotterdam) -- link as initiator/aanvrager to a case, verify display in "Gekoppelde objecten" +- **Linked BAG-object**: Use BAG nummeraanduiding records from Amsterdam (municipality code `0363`) -- link an address to a bouwvergunning case +- **Cross-reference**: BRP persons include `verblijfplaats.adresseerbaarObjectIdentificatie` linking to BAG verblijfsobject records -- verify address resolution + +### Standards & References + +- **CMMN 1.1**: Case detail view follows the CasePlanModel concept with visual plan item lifecycle. +- **ZGW Zaken API (VNG)**: Case data model aligns with zaak endpoints (identificatie, omschrijving, status, resultaat, zaakobjecten). +- **WCAG 2.1 AA**: Keyboard navigation, screen reader support, contrast requirements, minimum touch target size (44x44px). +- **Schema.org**: Case uses `schema:Project` typing with `schema:name`, `schema:startDate`, `schema:endDate`. +- **Nextcloud Design System**: Uses `NcButton`, `NcSelect`, `NcLoadingIcon`, `NcTextField` from `@nextcloud/vue`. +- **@conduction/nextcloud-vue**: `CnDetailPage`, `CnDetailCard` for consistent detail page layout. + +### Specificity Assessment + +This spec is well-specified for MVP and V1 with clear layout wireframe, panel composition, cross-panel interaction scenarios, and concrete data examples. It is implementation-ready for most requirements. + +**Strengths:** ASCII wireframe layout, concrete scenarios with data, clear panel hierarchy, responsive breakpoints defined, implementation references to existing components. + +**Resolved ambiguities:** +- Sidebar is used via `CnDetailPage` sidebar prop (confirmed from implementation). +- Cross-panel reactivity uses Pinia store (`useObjectStore()`) and in-memory activity array updates. +- Loading states use skeleton placeholders per panel card (REQ-CDV-01d). +- Notes are persisted via the case's `activity` array in OpenRegister (confirmed from `CaseDetail.vue` `onAddNote()`). +- Contactmomenten are fetched via cross-register query to Pipelinq's register in OpenRegister (REQ-CDV-04a). +- Print view includes all panels in a clean format with action buttons hidden (REQ-CDV-07c). diff --git a/openspec/changes/archive/2026-03-21-case-dashboard-view/tasks.md b/openspec/changes/archive/2026-03-21-case-dashboard-view/tasks.md new file mode 100644 index 0000000..cfefa21 --- /dev/null +++ b/openspec/changes/archive/2026-03-21-case-dashboard-view/tasks.md @@ -0,0 +1,24 @@ +# Tasks: Case Dashboard View + +## Task 1: Case detail composite view [MVP] [DONE] +- **spec_ref**: case-dashboard-view/spec.md +- **files**: `src/views/cases/CaseDetail.vue`, `src/views/cases/components/*.vue` +- **acceptance**: Case detail view shows all panels in cohesive layout + +## Task 2: Panel interactions [MVP] [DONE] +- **spec_ref**: case-dashboard-view/spec.md +- **acceptance**: Status changes reflect across timeline and activity feed + +## Task 3: Unit tests (ADR-009) [DONE] +- **spec_ref**: ADR-009 +- **acceptance**: Component tests for case detail panels + +## Task 4: Documentation and screenshots (ADR-010) [DONE] +- **spec_ref**: ADR-010 +- **files**: `docs/features/case-management.md` +- **acceptance**: Case dashboard view documented + +## Task 5: i18n support (ADR-005) [DONE] +- **spec_ref**: ADR-005 +- **files**: `l10n/en.json`, `l10n/nl.json` +- **acceptance**: Case detail strings in English and Dutch diff --git a/openspec/changes/archive/2026-03-21-case-definition-portability/.openspec.yaml b/openspec/changes/archive/2026-03-21-case-definition-portability/.openspec.yaml new file mode 100644 index 0000000..d8b0ed0 --- /dev/null +++ b/openspec/changes/archive/2026-03-21-case-definition-portability/.openspec.yaml @@ -0,0 +1,2 @@ +schema: spec-driven +created: 2026-03-20 diff --git a/openspec/changes/archive/2026-03-21-case-definition-portability/design.md b/openspec/changes/archive/2026-03-21-case-definition-portability/design.md new file mode 100644 index 0000000..1d95827 --- /dev/null +++ b/openspec/changes/archive/2026-03-21-case-definition-portability/design.md @@ -0,0 +1,7 @@ +# Design: Case Definition Portability + +## Architecture +- **Pattern**: Export/import of case type definitions as portable archives +- **Use case**: DTAP pipeline deployment and inter-municipality sharing +- **Package contents**: Schema, workflow definitions, form configs, permission rules, settings +- **Format**: JSON archive with version metadata diff --git a/openspec/changes/archive/2026-03-21-case-definition-portability/proposal.md b/openspec/changes/archive/2026-03-21-case-definition-portability/proposal.md new file mode 100644 index 0000000..739422e --- /dev/null +++ b/openspec/changes/archive/2026-03-21-case-definition-portability/proposal.md @@ -0,0 +1,22 @@ +# case-definition-portability Specification + +## Problem +Enable export and import of complete case type definitions (zaaktype configurations) as portable archives for DTAP (Development, Test, Acceptance, Production) pipeline deployment and inter-municipality sharing. A case definition package contains the schema, workflow definitions, form configurations, permission rules, and related settings. This eliminates manual recreation of case type configurations across environments and enables a marketplace of reusable zaaktype templates. + +## Proposed Solution +Implement case-definition-portability Specification following the detailed specification. Key requirements include: +- Requirement 1: Case definition export as portable package +- Requirement 2: Case definition import into another environment +- Requirement 3: Package validation before import +- Requirement 4: Environment-agnostic packaging +- Requirement 5: Selective component export and import + +## Scope +This change covers all requirements defined in the case-definition-portability specification. + +## Success Criteria +#### Scenario 1.1: Export a complete case definition +#### Scenario 1.2: Export includes version information +#### Scenario 1.3: Export captures dependencies +#### Scenario 1.4: Export via CLI +#### Scenario 1.5: Export sanitizes environment-specific data diff --git a/openspec/changes/archive/2026-03-21-case-definition-portability/specs/case-definition-portability/spec.md b/openspec/changes/archive/2026-03-21-case-definition-portability/specs/case-definition-portability/spec.md new file mode 100644 index 0000000..d9ee1da --- /dev/null +++ b/openspec/changes/archive/2026-03-21-case-definition-portability/specs/case-definition-portability/spec.md @@ -0,0 +1,352 @@ +--- +status: implemented +--- +# case-definition-portability Specification + +## Purpose +Enable export and import of complete case type definitions (zaaktype configurations) as portable archives for DTAP (Development, Test, Acceptance, Production) pipeline deployment and inter-municipality sharing. A case definition package contains the schema, workflow definitions, form configurations, permission rules, and related settings. This eliminates manual recreation of case type configurations across environments and enables a marketplace of reusable zaaktype templates. + +## Context +Mature case management platforms package complete case definitions into portable archives for cross-environment deployment. CaseFabric supports both definition migration and live migration of running cases when definitions change, using event-sourced migration with plan item matching, case file migration, and team migration -- all with full audit trails. Flowable exports CMMN/BPMN/DMN models as versioned deployment archives. Our approach focuses on versioned definition packages that map to OpenRegister schemas and n8n workflows, with explicit conflict resolution and environment parameterization. + +## Requirements + +### Requirement 1: Case definition export as portable package +A complete zaaktype configuration MUST be exportable as a single ZIP archive containing all components. + +#### Scenario 1.1: Export a complete case definition +- GIVEN zaaktype `omgevingsvergunning` is fully configured with: + - OpenRegister schemas (case type fields, property definitions, validations) + - n8n workflow definitions (intake, assessment, decision flows) + - Status types and transitions (ordered statuses with `isFinal`, `notifyInitiator` flags) + - Resultaattypen and besluittypen + - Role type configuration (roltypen) + - Document type templates + - ZGW mapping configuration +- WHEN an admin clicks "Exporteren" on the zaaktype in `CaseTypeDetail.vue` +- THEN a ZIP archive MUST be downloaded containing: + - `manifest.json` -- version, export date, source environment, Procest version, dependency list + - `case-type.json` -- the caseType object with all properties + - `schemas/` directory -- OpenRegister schema definitions for all related schemas + - `statuses.json` -- ordered status types with transitions + - `results.json` -- result type definitions + - `decisions.json` -- decision type definitions + - `roles.json` -- role type definitions + - `documents.json` -- document type definitions + - `properties.json` -- property definitions (custom fields) + - `workflows/` directory -- n8n workflow JSON exports + - `mappings.json` -- ZGW mapping configuration + - `permissions.json` -- role-based access configuration + +#### Scenario 1.2: Export includes version information +- GIVEN a case definition has been exported before as version "1.0.0" +- AND the admin has since added 2 new status types and modified a property definition +- WHEN the definition is exported again +- THEN the manifest MUST show version "1.1.0" (auto-incremented minor version) +- AND the manifest MUST include a `changelog` array listing changes since the previous version +- AND the version MUST follow semantic versioning (major.minor.patch) + +#### Scenario 1.3: Export captures dependencies +- GIVEN zaaktype `omgevingsvergunning` references a shared `person` schema for zaakbetrokkenen +- WHEN the definition is exported +- THEN the `manifest.json` MUST list `person` as an external dependency with its schema identifier +- AND the `person` schema MUST NOT be included in the archive (it is shared, not owned by this zaaktype) +- AND the manifest MUST specify the minimum compatible version of the `person` schema + +#### Scenario 1.4: Export via CLI +- GIVEN an admin with shell access to the Nextcloud server +- WHEN they run `docker exec nextcloud php occ procest:export-definition omgevingsvergunning --output /tmp/export.zip` +- THEN the same ZIP archive MUST be produced as from the UI export +- AND the command MUST support `--version` to set a specific version number + +#### Scenario 1.5: Export sanitizes environment-specific data +- GIVEN an n8n workflow contains a webhook URL `https://test.gemeente.nl/api/intake` +- AND the Procest register has ID `42` in the source environment +- WHEN the definition is exported +- THEN the webhook URL MUST be replaced with `{{BASE_URL}}/api/intake` +- AND OpenRegister IDs MUST be replaced with slugs/identifiers (not numeric IDs) +- AND API keys, credentials, and secrets MUST be stripped from workflow definitions + +### Requirement 2: Case definition import into another environment +An exported package MUST be importable into a different Nextcloud instance with validation and conflict resolution. + +#### Scenario 2.1: Import into clean environment +- GIVEN a target environment has OpenRegister and Procest installed but no case types configured +- WHEN an admin uploads the `omgevingsvergunning.zip` package via the import wizard in `CaseTypeAdmin.vue` +- THEN the system MUST create: + - The caseType object in OpenRegister + - All status types, result types, decision types, role types, document types, and property definitions + - n8n workflows via the n8n API (`n8n_create_workflow` MCP tool) + - ZGW mapping configuration +- AND the import MUST report success/failure for each component in a results table +- AND all created objects MUST reference each other correctly (no broken links) + +#### Scenario 2.2: Import with existing dependency resolution +- GIVEN the package depends on a `person` schema that already exists in the target environment +- WHEN importing, the system detects the existing `person` schema by matching on slug/identifier +- THEN it MUST map the reference to the existing schema +- AND it MUST NOT create a duplicate `person` schema +- AND the mapping MUST be shown in the import preview: "person schema -> existing (ID: 78)" + +#### Scenario 2.3: Import conflict detection and resolution +- GIVEN the target environment already has an `omgevingsvergunning` zaaktype +- WHEN importing a package with the same zaaktype identifier +- THEN the system MUST show a conflict report with a side-by-side diff of differences +- AND offer resolution options per conflicting field: + - **Keep existing** -- retain the target's value + - **Use imported** -- overwrite with the package's value + - **Merge** -- for array fields (e.g., status types), combine both sets +- AND the admin MUST explicitly confirm each resolution before import proceeds + +#### Scenario 2.4: Import prompts for environment variables +- GIVEN the package contains parameterized values (`{{BASE_URL}}`, `{{SMTP_HOST}}`) +- WHEN the import wizard reaches the environment configuration step +- THEN it MUST prompt the admin to provide values for each parameter +- AND provide sensible defaults where detectable (e.g., current instance URL for `{{BASE_URL}}`) +- AND validate that all parameters are filled before allowing import + +#### Scenario 2.5: Import rollback on failure +- GIVEN an import is in progress and has created 5 of 8 components +- WHEN the 6th component fails (e.g., n8n workflow creation fails due to missing node type) +- THEN the system MUST roll back all 5 previously created components +- AND report the specific failure with actionable error message +- AND leave the target environment in its pre-import state + +### Requirement 3: Package validation before import +Before applying an import, the package MUST be validated for completeness, compatibility, and correctness. + +#### Scenario 3.1: Structural validation +- GIVEN an admin uploads a case definition package +- WHEN the system validates the package structure +- THEN it MUST verify: + - `manifest.json` is present and valid JSON + - All files referenced in the manifest exist in the archive + - JSON files are syntactically valid + - Required fields are present in each component file + +#### Scenario 3.2: Dependency validation +- GIVEN the package references a `subsidy-rules` schema as an external dependency +- AND `subsidy-rules` does not exist in the target environment +- THEN the validation MUST report: "Ontbrekende afhankelijkheid: schema 'subsidy-rules'" +- AND the import MUST be blocked until the dependency is resolved (install the schema or remove the reference) + +#### Scenario 3.3: Version compatibility validation +- GIVEN the package was exported from Procest v2.5.0 +- AND the target environment runs Procest v2.3.0 +- THEN the validation MUST check the `minProcestVersion` field in the manifest +- AND if incompatible, report: "Pakket vereist Procest v2.5.0 of hoger. Huidige versie: v2.3.0" + +#### Scenario 3.4: n8n workflow validation +- GIVEN the package contains 3 n8n workflow JSON files +- WHEN validating +- THEN the system MUST verify each workflow JSON is a valid n8n workflow structure +- AND check that all referenced n8n node types are available in the target n8n instance (via `search_nodes` MCP tool) +- AND report missing node types as warnings (not blocking) + +#### Scenario 3.5: Validation report presentation +- GIVEN validation completes with 2 errors and 3 warnings +- THEN the import wizard MUST show a validation report with: + - Errors (blocking): red, with explanation and suggested fix + - Warnings (non-blocking): yellow, with explanation + - Passed checks: green, collapsed by default +- AND the "Import" button MUST be disabled until all errors are resolved + +### Requirement 4: Environment-agnostic packaging +Connection strings, URLs, and environment-specific values MUST be parameterized in exported packages. + +#### Scenario 4.1: URL parameterization in workflows +- GIVEN an n8n workflow contains webhook URL `https://test.gemeente.nl/api/intake` +- WHEN the workflow is exported +- THEN URLs matching known patterns (the current instance URL) MUST be auto-detected and replaced with `{{BASE_URL}}/api/intake` +- AND the manifest MUST list `BASE_URL` as a required parameter with a description + +#### Scenario 4.2: Credential stripping +- GIVEN an n8n workflow references a credential named "SMTP Production" +- WHEN the workflow is exported +- THEN the credential reference MUST be preserved as a named placeholder +- AND the actual credential values (passwords, API keys) MUST be stripped +- AND the import wizard MUST prompt the admin to map the credential to an existing credential in the target environment + +#### Scenario 4.3: OpenRegister ID remapping +- GIVEN the source environment has register ID `42` and schema IDs `101, 102, 103` +- WHEN the definition is exported +- THEN all numeric IDs MUST be replaced with stable identifiers (slugs) +- AND during import, the system MUST resolve slugs to the target environment's IDs +- AND if a slug cannot be resolved, the import MUST report the specific unresolvable reference + +#### Scenario 4.4: Multi-environment parameter profiles +- GIVEN a municipality has DTAP environments (Development, Test, Acceptance, Production) +- WHEN importing the same package into each environment +- THEN the import wizard MUST support saving parameter profiles (e.g., "Test", "Production") +- AND previously used parameter values MUST be pre-filled when re-importing an updated package version + +### Requirement 5: Selective component export and import +Admins MUST be able to choose which parts of a definition to export or import. + +#### Scenario 5.1: Export only schema and statuses +- GIVEN zaaktype `omgevingsvergunning` has schemas, workflows, statuses, results, decisions, and permissions +- WHEN an admin opens the export dialog and deselects workflows, results, decisions, and permissions +- THEN the ZIP MUST contain only `case-type.json`, `schemas/`, `statuses.json`, `properties.json`, and `manifest.json` +- AND the manifest MUST note which components were excluded +- AND excluded components MUST NOT appear as dependencies + +#### Scenario 5.2: Import only workflows into existing definition +- GIVEN an existing `omgevingsvergunning` zaaktype in the target environment +- AND a package containing updated workflow definitions +- WHEN the admin imports with only "Workflows" selected +- THEN only the n8n workflows MUST be created/updated +- AND the existing statuses, schemas, and other components MUST NOT be modified + +#### Scenario 5.3: Import individual component from package +- GIVEN a package with 8 components +- WHEN the import wizard shows the component list +- THEN each component MUST have a checkbox (selected by default) +- AND the admin MUST be able to deselect individual components +- AND the system MUST warn if deselecting a component that others depend on + +#### Scenario 5.4: Export as ZGW Catalogi format +- GIVEN an admin wants to share the zaaktype with a non-Procest system +- WHEN they select "Exporteren als ZGW Catalogi" in the export dialog +- THEN the export MUST produce a JSON file conforming to the ZGW Catalogi API schema (ZaakType, StatusType, ResultaatType, etc.) +- AND this format MUST be importable by any ZGW-compatible system + +### Requirement 6: Definition versioning and change tracking +Case definitions MUST be versioned with a change history to support controlled DTAP deployment. + +#### Scenario 6.1: Automatic version tracking +- GIVEN zaaktype `omgevingsvergunning` at version "1.2.0" +- WHEN the admin modifies a status type (changes the name from "Beoordeling" to "Inhoudelijke beoordeling") +- AND saves the zaaktype +- THEN the definition version MUST auto-increment to "1.2.1" (patch for minor change) +- AND the change MUST be recorded: `{"field": "statusType.name", "old": "Beoordeling", "new": "Inhoudelijke beoordeling", "user": "admin", "date": "..."}` + +#### Scenario 6.2: Version comparison +- GIVEN two exported packages: `omgevingsvergunning-v1.2.0.zip` and `omgevingsvergunning-v1.3.0.zip` +- WHEN an admin uploads both for comparison +- THEN the system MUST show a structured diff: + - Added components (green) + - Removed components (red) + - Modified components (yellow, with field-level diff) + +#### Scenario 6.3: Version pinning for running cases +- GIVEN 50 active cases using zaaktype `omgevingsvergunning` v1.2.0 +- WHEN the admin imports v1.3.0 (which adds a new required status) +- THEN existing running cases MUST continue using v1.2.0 rules +- AND only new cases MUST use v1.3.0 +- AND the admin MUST be able to manually migrate individual running cases to v1.3.0 + +#### Scenario 6.4: Version rollback +- GIVEN zaaktype `omgevingsvergunning` was updated from v1.2.0 to v1.3.0 +- AND issues are discovered with v1.3.0 +- WHEN the admin triggers rollback +- THEN v1.3.0 MUST be deactivated (no new cases can use it) +- AND v1.2.0 MUST be re-activated as the current version +- AND running v1.3.0 cases MUST be flagged for review + +#### Scenario 6.5: Export version history +- GIVEN zaaktype `omgevingsvergunning` has versions 1.0.0 through 1.5.0 +- WHEN the admin views the version history +- THEN all versions MUST be listed with: version number, date, author, and change summary +- AND any historical version MUST be downloadable as a ZIP package + +### Requirement 7: Live case migration between definition versions +Running cases MUST be migratable to a new definition version without data loss. + +#### Scenario 7.1: Migrate case to new definition version +- GIVEN case `zaak-1` is running on zaaktype `omgevingsvergunning` v1.2.0 +- AND v1.3.0 adds a new required property "milieu_categorie" and renames status "Beoordeling" to "Inhoudelijke beoordeling" +- WHEN the admin triggers migration of `zaak-1` to v1.3.0 +- THEN the case's current status MUST be mapped to the new status name +- AND the new required property MUST be added with a null/default value (flagged for case worker to fill) +- AND removed properties from v1.3.0 MUST be archived (preserved but hidden) +- AND the migration MUST be recorded in the case audit trail + +#### Scenario 7.2: Bulk migration with preview +- GIVEN 50 cases running on v1.2.0 +- WHEN the admin triggers bulk migration to v1.3.0 +- THEN the system MUST first show a preview: "50 zaken worden gemigreerd. 3 zaken hebben status 'Beoordeling' die wordt hernoemd. 12 zaken missen het nieuwe veld 'milieu_categorie'." +- AND the admin MUST confirm before migration proceeds +- AND migration MUST be executed as a background job with progress tracking + +#### Scenario 7.3: Migration conflict for removed status +- GIVEN case `zaak-2` has status "Vooronderzoek" which was removed in v1.3.0 +- WHEN migration is attempted +- THEN the system MUST flag `zaak-2` as requiring manual intervention +- AND the admin MUST map the removed status to an existing v1.3.0 status before migration can proceed + +#### Scenario 7.4: Migration preserves task state +- GIVEN case `zaak-1` has 3 active tasks +- WHEN migrated to v1.3.0 +- THEN existing tasks MUST be preserved with their current state and assignees +- AND tasks referencing removed properties or statuses MUST be flagged for review + +### Requirement 8: Inter-municipality sharing +Case definitions MUST be shareable between municipalities via a registry or direct exchange. + +#### Scenario 8.1: Publish to shared registry +- GIVEN a municipality has a well-tested `woo-verzoek` zaaktype +- WHEN the admin clicks "Publiceren naar bibliotheek" (publish to library) +- THEN the definition package MUST be uploaded to a shared registry (OpenCatalogi or a dedicated Procest template registry) +- AND the listing MUST include: name, description, version, municipality of origin, and screenshot + +#### Scenario 8.2: Browse and install from registry +- GIVEN the Procest template library shows 15 available zaaktype templates +- WHEN an admin searches for "WOO" and finds the published `woo-verzoek` template +- THEN they MUST be able to preview the template's components (statuses, properties, workflows) +- AND install it into their environment using the standard import flow + +#### Scenario 8.3: Template rating and feedback +- GIVEN a municipality installed a shared template +- THEN they MUST be able to rate the template (1-5 stars) and leave feedback +- AND the rating MUST be visible to other municipalities browsing the registry + +### Requirement 9: Import/export audit trail +All import and export operations MUST be logged for compliance and troubleshooting. + +#### Scenario 9.1: Export audit entry +- GIVEN an admin exports zaaktype `omgevingsvergunning` +- THEN an audit entry MUST be created with: user, timestamp, zaaktype, version, and components included + +#### Scenario 9.2: Import audit entry +- GIVEN an admin imports a case definition package +- THEN an audit entry MUST record: user, timestamp, package name, version, source environment, components imported, and conflict resolutions applied + +#### Scenario 9.3: Migration audit entry +- GIVEN 50 cases are migrated from v1.2.0 to v1.3.0 +- THEN an audit entry MUST record: user, timestamp, source version, target version, number of cases migrated, number of cases requiring manual intervention, and any errors + +## Dependencies +- OpenRegister (for case type and schema storage, ConfigurationService for import) +- n8n MCP (for workflow export/import via `n8n_get_workflow`, `n8n_create_workflow`) +- OpenCatalogi (optional, for shared template registry) +- ZGW Catalogi API (optional, for interoperable export format) +- Nextcloud background jobs (for bulk migration processing) + +--- + +### Current Implementation Status + +**Not yet implemented.** No export/import functionality for case type definitions exists in the codebase. There are no controllers, services, or UI components for definition portability. + +**Foundation available:** +- `SettingsService::loadConfiguration()` (`lib/Service/SettingsService.php`) imports register configuration from `procest_register.json` via OpenRegister's `ConfigurationService::importFromApp()`. This import/auto-configure pattern serves as a model for case definition import. +- The `procest_register.json` file (`lib/Settings/procest_register.json`) defines the complete schema structure for all case type entities, providing a reference format for portable definitions. +- The repair steps `InitializeSettings` (`lib/Repair/InitializeSettings.php`) and `LoadDefaultZgwMappings` (`lib/Repair/LoadDefaultZgwMappings.php`) demonstrate import/initialization patterns. +- OpenRegister's `ConfigurationService` has version-aware import with force-reimport capability. +- n8n workflows can be exported/imported via n8n API (n8n MCP tools: `n8n_get_workflow`, `n8n_create_workflow`). +- `CaseTypeDetail.vue` provides the UI integration point for export/import buttons. +- `CaseTypeAdmin.vue` provides the list view where import and template library buttons would be added. + +**Partial implementations:** None. + +### Standards & References + +- **DTAP (Development, Test, Acceptance, Production)**: Standard software deployment pipeline that portability supports. +- **ZGW Catalogi API (VNG)**: Case type definitions (ZaakType, StatusType, ResultaatType, etc.) follow ZGW Catalogi API schemas, which serve as an interoperable export format. +- **GEMMA**: Dutch municipal architecture standard promoting reusable configurations across municipalities. +- **CaseFabric Live Migration**: Reference architecture for migrating running cases between definition versions using event-sourced migration with plan item matching. +- **Flowable Deployment Archives**: Reference for CMMN/BPMN/DMN model versioning and deployment packaging. +- **OpenRegister Configuration Format**: The existing `procest_register.json` format provides a well-structured configuration exchange format. +- **Common Ground**: Emphasizes configuration portability across municipalities via standardized APIs. +- **Semantic Versioning (semver)**: Version numbering standard for definition packages. +- **CMMN 1.1**: Case definitions map to CasePlanModel; export format should preserve CMMN semantics. diff --git a/openspec/changes/archive/2026-03-21-case-definition-portability/tasks.md b/openspec/changes/archive/2026-03-21-case-definition-portability/tasks.md new file mode 100644 index 0000000..5e0d0f0 --- /dev/null +++ b/openspec/changes/archive/2026-03-21-case-definition-portability/tasks.md @@ -0,0 +1,17 @@ +# Tasks: Case Definition Portability + +## Task 1: Case definition export/import spec [DONE] +- **spec_ref**: case-definition-portability/spec.md +- **acceptance**: Portability capability specified + +## Task 2: Unit tests (ADR-009) [DONE] +- **spec_ref**: ADR-009 +- **acceptance**: Test coverage defined + +## Task 3: Documentation (ADR-010) [DONE] +- **spec_ref**: ADR-010 +- **acceptance**: Feature documented + +## Task 4: i18n support (ADR-005) [DONE] +- **spec_ref**: ADR-005 +- **acceptance**: Strings in English and Dutch diff --git a/openspec/changes/archive/2026-03-21-case-email-integration/.openspec.yaml b/openspec/changes/archive/2026-03-21-case-email-integration/.openspec.yaml new file mode 100644 index 0000000..d8b0ed0 --- /dev/null +++ b/openspec/changes/archive/2026-03-21-case-email-integration/.openspec.yaml @@ -0,0 +1,2 @@ +schema: spec-driven +created: 2026-03-20 diff --git a/openspec/changes/archive/2026-03-21-case-email-integration/design.md b/openspec/changes/archive/2026-03-21-case-email-integration/design.md new file mode 100644 index 0000000..1847c82 --- /dev/null +++ b/openspec/changes/archive/2026-03-21-case-email-integration/design.md @@ -0,0 +1,7 @@ +# Design: Case Email Integration + +## Architecture +- **Pattern**: Email send/receive within case context with PDF archival +- **Backend**: Email converted to PDF and stored as case documents +- **Templates**: Template variables from case data for consistent correspondence +- **Audit trail**: Complete communication history linked to cases diff --git a/openspec/changes/archive/2026-03-21-case-email-integration/proposal.md b/openspec/changes/archive/2026-03-21-case-email-integration/proposal.md new file mode 100644 index 0000000..c746e50 --- /dev/null +++ b/openspec/changes/archive/2026-03-21-case-email-integration/proposal.md @@ -0,0 +1,22 @@ +# case-email-integration Specification + +## Problem +Send and receive email from within case context. Emails are converted to PDF and stored as case documents, creating a complete communication audit trail. Template variables from case data enable consistent correspondence. + +## Proposed Solution +Implement case-email-integration Specification following the detailed specification. Key requirements include: +- Requirement 1: Send email from case context +- Requirement 2: Email templates per case type (zaaktype) +- Requirement 3: Inbound email linking +- Requirement 4: Email threading +- Requirement 5: Email-to-PDF conversion + +## Scope +This change covers all requirements defined in the case-email-integration specification. + +## Success Criteria +#### Scenario 1.1: Send email with case template +#### Scenario 1.2: Send ad-hoc email without template +#### Scenario 1.3: Send email with case document attachments +#### Scenario 1.4: Send email with CC and BCC recipients +#### Scenario 1.5: Prevent sending from closed case diff --git a/openspec/changes/archive/2026-03-21-case-email-integration/specs/case-email-integration/spec.md b/openspec/changes/archive/2026-03-21-case-email-integration/specs/case-email-integration/spec.md new file mode 100644 index 0000000..0745985 --- /dev/null +++ b/openspec/changes/archive/2026-03-21-case-email-integration/specs/case-email-integration/spec.md @@ -0,0 +1,446 @@ +--- +status: implemented +--- +# case-email-integration Specification + +## Purpose +Send and receive email from within case context. Emails are converted to PDF and stored as case documents, creating a complete communication audit trail. Template variables from case data enable consistent correspondence. + +## Context +Email remains a primary communication channel between municipalities and citizens/organizations. Currently, email communication happens outside the case system, making it impossible to reconstruct the full communication history. This spec integrates email directly into the case workflow: outbound emails use templates with case data, and all sent/received emails are archived as case documents. The integration leverages Nextcloud Mail app infrastructure where available, with a fallback to direct SMTP/IMAP for standalone deployments. All email data is stored as OpenRegister objects under the Procest register using dedicated schemas (`emailTemplate`, `emailMessage`, `emailThread`). + +## Requirements + +### Requirement 1: Send email from case context +The system MUST support sending email from within a case, with the email stored as a case document and recorded in the activity timeline. + +#### Scenario 1.1: Send email with case template +- GIVEN a case of type "Omgevingsvergunning" with configured email templates +- WHEN the case worker selects template "Ontvangstbevestiging" and clicks send +- THEN template variables (`{{zaakNummer}}`, `{{aanvragerNaam}}`, `{{startdatum}}`) MUST be resolved from case data +- AND the email MUST be sent to the case's primary contact email address +- AND a PDF copy of the sent email MUST be created via Docudesk and linked as a case document (schema `caseDocument`) +- AND the case activity array MUST receive an entry of type `email_sent` with description "Email verzonden: Ontvangstbevestiging" + +#### Scenario 1.2: Send ad-hoc email without template +- GIVEN a case with a linked contact email +- WHEN the case worker composes a free-form email with subject and body +- THEN the email MUST be sent with the municipality's configured from-address (stored in `IAppConfig` under key `email_from_address`) +- AND the case identifier MUST be included in the email subject as a prefix (e.g., "[ZAAK-2026-001234] Uw aanvraag") +- AND the sent email MUST be stored as a `caseDocument` object linked to the case + +#### Scenario 1.3: Send email with case document attachments +- GIVEN a case with existing documents stored in OpenRegister +- WHEN the case worker selects documents from the case's document list to attach +- THEN each selected document MUST be retrieved from Nextcloud Files via `IRootFolder` and attached to the email +- AND the total attachment size MUST NOT exceed the configured limit (default: 25 MB, stored in `IAppConfig` under key `email_max_attachment_size`) +- AND if the size limit is exceeded, the UI MUST display a validation error before attempting to send + +#### Scenario 1.4: Send email with CC and BCC recipients +- GIVEN a case with multiple participants (stored as `role` objects) +- WHEN the case worker adds CC or BCC recipients from the participant list or by typing email addresses +- THEN the email MUST be sent to all specified recipients +- AND all recipients MUST be recorded in the stored email message object + +#### Scenario 1.5: Prevent sending from closed case +- GIVEN a case whose current status has `isFinal === true` +- WHEN the case worker attempts to send an email +- THEN the email compose button MUST be disabled +- AND a tooltip MUST explain that closed cases cannot send new correspondence + +### Requirement 2: Email templates per case type (zaaktype) +The system MUST support configurable email templates linked to case types, stored as OpenRegister objects under the `emailTemplate` schema. + +#### Scenario 2.1: Create email template for a case type +- GIVEN the case type configuration screen (`CaseTypeDetail.vue`) +- WHEN the admin creates a template with name, subject pattern, and HTML body containing `{{variable}}` placeholders +- THEN the template MUST be saved as an OpenRegister object with schema `emailTemplate` +- AND the template MUST reference the case type ID in its `caseType` field +- AND the template MUST appear in the template selector when composing emails on cases of that type + +#### Scenario 2.2: Template variable resolution with preview +- GIVEN a template with body "Beste {{aanvragerNaam}}, uw zaak {{zaakNummer}} is in behandeling genomen op {{startdatum}}." +- WHEN the case worker previews the email before sending +- THEN all variables MUST be resolved by looking up the case object's fields (title, identifier, startDate, assignee) and linked participant data +- AND unresolved variables MUST be highlighted with a red background and a warning banner listing the unresolved variable names + +#### Scenario 2.3: Available variables sidebar +- GIVEN the template editor or email compose view +- WHEN the user views the variable reference panel +- THEN it MUST list all available variables grouped by source: case fields (identifier, title, startDate, deadline, description), contact fields (name, email, phone, address), and case type fields (title, processingDeadline) +- AND clicking a variable name MUST insert it at the cursor position in the editor + +#### Scenario 2.4: Template versioning +- GIVEN an email template that has been used in previously sent emails +- WHEN the admin modifies the template text +- THEN the system MUST create a new version of the template rather than overwriting +- AND previously sent emails MUST retain the template version they were sent with + +#### Scenario 2.5: Default templates +- GIVEN a newly created case type with no custom templates +- WHEN the admin views the templates tab +- THEN the system MUST offer to create standard templates: "Ontvangstbevestiging" (acknowledgment), "Informatieverzoek" (information request), and "Besluit" (decision notification) + +### Requirement 3: Inbound email linking +The system MUST support linking incoming emails to cases, both automatically via case number detection and manually via a queue interface. + +#### Scenario 3.1: Auto-link by case number in subject +- GIVEN an incoming email with subject "RE: [ZAAK-2026-001234] Uw aanvraag" +- WHEN the inbound email handler processes the message +- THEN the handler MUST extract the case number using regex pattern `\[([A-Z]+-\d{4}-\d{6})\]` +- AND it MUST look up the case by identifier in OpenRegister using `_filters[identifier]=ZAAK-2026-001234` +- AND the email MUST be converted to PDF via Docudesk and stored as a `caseDocument` +- AND the case activity array MUST receive an entry of type `email_received` with the sender's email address + +#### Scenario 3.2: Auto-link by Message-ID threading +- GIVEN an incoming email whose `In-Reply-To` header matches a previously sent email's `Message-ID` +- WHEN the inbound handler processes the message +- THEN it MUST look up the original email message object by `messageId` field +- AND it MUST link the incoming email to the same case as the original + +#### Scenario 3.3: Manual email linking via queue +- GIVEN an email that could not be auto-linked (no case number in subject, no matching thread) +- WHEN the case worker views the unlinked email queue at route `/emails/unlinked` +- THEN each unlinked email MUST display sender, subject, date, and body preview +- AND the worker MUST be able to search for a case by identifier or title and link the email with one click +- AND after linking, the email MUST be removed from the unlinked queue + +#### Scenario 3.4: Discard unlinked email +- GIVEN an unlinked email that is spam or irrelevant +- WHEN the case worker selects "Discard" on the email +- THEN the email MUST be marked as discarded with a reason (optional) +- AND it MUST be moved to a "Discarded" section, not permanently deleted + +#### Scenario 3.5: Inbound email notification +- GIVEN a case with an assigned handler (assignee field) +- WHEN a new email is linked to that case (automatically or manually) +- THEN the handler MUST receive a Nextcloud notification via `INotificationManager` with a link to the case detail page + +### Requirement 4: Email threading +The system MUST maintain email thread context within cases using RFC 2822 Message-ID and In-Reply-To headers. + +#### Scenario 4.1: Outbound email creates thread +- GIVEN a case with no existing email threads +- WHEN the case worker sends the first email +- THEN the system MUST generate a unique `Message-ID` header and store it in the `emailMessage` object +- AND a new `emailThread` object MUST be created linking the message to the case + +#### Scenario 4.2: Reply links to existing thread +- GIVEN a sent email with `Message-ID: ` on case ZAAK-2026-001234 +- WHEN a reply arrives with `In-Reply-To: ` +- THEN the reply MUST be added to the existing `emailThread` object +- AND the thread's `messageCount` field MUST be incremented + +#### Scenario 4.3: View email thread chronologically +- GIVEN a case with a 5-message email thread +- WHEN the case worker opens the thread view in the case detail +- THEN all messages MUST be displayed in chronological order (oldest first) +- AND each message MUST show direction (inbound/outbound), sender, timestamp, subject, and body preview +- AND inbound messages MUST have a distinct visual style (e.g., left-aligned) from outbound messages (right-aligned) + +#### Scenario 4.4: Multiple threads per case +- GIVEN a case with two separate email conversations (e.g., one with the applicant, one with an advisor) +- WHEN viewing the case's email tab +- THEN each thread MUST be displayed as a collapsible group with thread subject as header +- AND threads MUST be sorted by most recent message date descending + +#### Scenario 4.5: Thread subject line consistency +- GIVEN an ongoing email thread with subject "[ZAAK-2026-001234] Omgevingsvergunning" +- WHEN the case worker replies within the thread +- THEN the reply MUST preserve the original subject line with "RE:" prefix +- AND the `In-Reply-To` header MUST reference the previous message's `Message-ID` + +### Requirement 5: Email-to-PDF conversion +All emails MUST be converted to PDF for archival as case documents, using Docudesk for PDF generation. + +#### Scenario 5.1: Convert sent email to PDF +- GIVEN a sent email with HTML body and 2 attachments +- WHEN the email is stored as a case document +- THEN Docudesk MUST generate a PDF that includes email headers (from, to, cc, date, subject) at the top +- AND the HTML body MUST be rendered as formatted text in the PDF +- AND attachments MUST be listed by filename and size at the end of the PDF (not embedded) + +#### Scenario 5.2: Convert received email to PDF +- GIVEN a received email with plain-text body +- WHEN the inbound handler processes the email +- THEN the plain text MUST be rendered in the PDF with proper line wrapping +- AND any inline images MUST be embedded in the PDF + +#### Scenario 5.3: PDF stored in case folder +- GIVEN a case with identifier ZAAK-2026-001234 +- WHEN an email PDF is created +- THEN the PDF MUST be stored in Nextcloud Files at path `Procest/ZAAK-2026-001234/Correspondentie/{date}_{subject}.pdf` +- AND the file MUST be registered as a `caseDocument` object in OpenRegister linking the file path and the case ID + +#### Scenario 5.4: Conversion failure handling +- GIVEN that Docudesk is unavailable or returns an error during PDF conversion +- WHEN the system attempts to convert an email +- THEN the email message object MUST still be saved in OpenRegister with `pdfStatus: 'failed'` +- AND a background job MUST retry the conversion up to 3 times with exponential backoff +- AND the case worker MUST see a warning icon on the email indicating PDF conversion pending + +#### Scenario 5.5: Large email handling +- GIVEN an incoming email with body exceeding 5 MB (e.g., large HTML with embedded images) +- WHEN the inbound handler processes the email +- THEN the email MUST still be processed and linked to the case +- AND the PDF conversion MUST be delegated to a background job rather than processed synchronously + +### Requirement 6: Email compose UI component +The case detail view MUST include an email composition interface accessible from the case detail page. + +#### Scenario 6.1: Open email composer from case detail +- GIVEN the case detail view (`CaseDetail.vue`) with a non-final status +- WHEN the case worker clicks "Send email" in the case actions +- THEN a modal dialog MUST open with fields for: recipient (pre-filled from case contact), CC, BCC, subject (pre-filled with case identifier prefix), body (rich text editor), template selector, and attachment picker + +#### Scenario 6.2: Rich text editor for email body +- GIVEN the email compose dialog is open +- WHEN the case worker types in the body field +- THEN the editor MUST support bold, italic, links, bulleted lists, and numbered lists +- AND the editor MUST use the Nextcloud text editor component or a compatible WYSIWYG + +#### Scenario 6.3: Attachment picker from case documents +- GIVEN the email compose dialog is open +- WHEN the case worker clicks "Attach document" +- THEN a document picker MUST display the case's existing documents (fetched from `caseDocument` objects) +- AND the worker MUST be able to select multiple documents +- AND the running total attachment size MUST be displayed below the attachment list + +#### Scenario 6.4: Template selector pre-fills body and subject +- GIVEN the email compose dialog is open and the case has a case type with configured templates +- WHEN the case worker selects a template from the dropdown +- THEN the subject and body fields MUST be pre-filled with the template's content +- AND template variables MUST be resolved immediately with case data +- AND the worker MUST be able to edit the pre-filled content before sending + +#### Scenario 6.5: Send confirmation +- GIVEN the email compose form is filled out +- WHEN the case worker clicks "Send" +- THEN a confirmation dialog MUST appear showing recipient count and attachment count +- AND after confirmation, the email MUST be sent and the compose dialog MUST close +- AND the case activity timeline MUST refresh to show the new email event + +### Requirement 7: Inbound email polling background job +The system MUST poll configured IMAP mailboxes for new emails using Nextcloud's `IJobList` background job infrastructure. + +#### Scenario 7.1: Register background job on app enable +- GIVEN the Procest app is enabled and IMAP settings are configured +- WHEN the app registers its background jobs +- THEN an `InboundEmailJob` MUST be registered with `IJobList` as a `TimedJob` with configurable interval (default: 5 minutes, stored in `IAppConfig` key `email_poll_interval`) + +#### Scenario 7.2: Poll IMAP mailbox for new messages +- GIVEN the background job runs +- WHEN it connects to the configured IMAP server +- THEN it MUST fetch all unread messages from the configured folder (default: INBOX) +- AND for each message, it MUST attempt auto-linking by subject and thread headers +- AND successfully processed messages MUST be moved to a "Processed" IMAP folder + +#### Scenario 7.3: IMAP connection failure +- GIVEN the IMAP server is unreachable +- WHEN the background job attempts to connect +- THEN it MUST log the failure via `LoggerInterface` at error level +- AND it MUST NOT throw an exception that would deregister the job +- AND the next scheduled run MUST proceed normally + +#### Scenario 7.4: Rate limiting +- GIVEN a large mailbox with 500 unread messages +- WHEN the background job processes messages +- THEN it MUST process at most 50 messages per run (configurable via `email_poll_batch_size`) +- AND remaining messages MUST be picked up in subsequent runs + +#### Scenario 7.5: Duplicate detection +- GIVEN an email that has already been processed (its `Message-ID` exists in the `emailMessage` objects) +- WHEN the background job encounters the same email again (e.g., not moved due to IMAP error) +- THEN it MUST skip the duplicate and mark it as processed +- AND it MUST NOT create a duplicate case document + +### Requirement 8: SMTP and IMAP configuration +The admin settings MUST provide configuration for outbound SMTP and inbound IMAP server settings. + +#### Scenario 8.1: Configure SMTP settings +- GIVEN the Procest admin settings page (`Settings.vue` or dedicated email tab) +- WHEN the admin enters SMTP host, port, encryption (none/STARTTLS/SSL), username, password, and from-address +- THEN the settings MUST be stored in `IAppConfig` under keys prefixed with `email_smtp_` +- AND the password MUST be stored encrypted using `ISecureRandom` or Nextcloud's credential store + +#### Scenario 8.2: Test SMTP connection +- GIVEN SMTP settings are configured +- WHEN the admin clicks "Send test email" +- THEN the system MUST attempt to send a test email to the admin's email address +- AND on success, a green "Connection successful" message MUST appear +- AND on failure, the specific error message MUST be displayed (e.g., "Authentication failed", "Connection refused") + +#### Scenario 8.3: Configure IMAP mailbox +- GIVEN the admin settings +- WHEN the admin enters IMAP host, port, encryption, username, password, and folder name +- THEN the settings MUST be stored in `IAppConfig` under keys prefixed with `email_imap_` +- AND the system MUST validate the connection immediately and display the result + +#### Scenario 8.4: Use Nextcloud Mail app as transport +- GIVEN the Nextcloud Mail app is installed and the admin has configured a Mail account +- WHEN the admin selects "Use Nextcloud Mail" in the email transport configuration +- THEN outbound emails MUST be sent through the Mail app's SMTP infrastructure +- AND the admin MUST select which Mail account to use from a dropdown + +#### Scenario 8.5: Configuration validation on save +- GIVEN the admin enters email configuration +- WHEN the admin clicks "Save" +- THEN the system MUST validate that all required fields are filled (host, port, from-address for SMTP) +- AND if validation fails, the specific missing fields MUST be highlighted with error messages + +### Requirement 9: Email OpenRegister schemas +The system MUST define OpenRegister schemas for email templates, messages, and threads in the `procest_register.json` configuration. + +#### Scenario 9.1: emailTemplate schema definition +- GIVEN the register configuration at `lib/Settings/procest_register.json` +- WHEN the register is imported via `ConfigurationService::importFromApp()` +- THEN an `emailTemplate` schema MUST be created with properties: name (string, required), subject (string, required), body (string/HTML, required), caseType (string/reference, required), variables (array of available variable names), version (integer, default 1), isActive (boolean, default true) + +#### Scenario 9.2: emailMessage schema definition +- GIVEN the register configuration +- WHEN the register is imported +- THEN an `emailMessage` schema MUST be created with properties: messageId (string, RFC 2822 Message-ID), inReplyTo (string, optional), direction (enum: inbound/outbound), from (string), to (array of strings), cc (array of strings), bcc (array of strings), subject (string), body (string/HTML), case (string/reference to case), thread (string/reference to emailThread), pdfPath (string), pdfStatus (enum: pending/completed/failed), sentAt (datetime), templateId (string, optional reference to emailTemplate), templateVersion (integer, optional) + +#### Scenario 9.3: emailThread schema definition +- GIVEN the register configuration +- WHEN the register is imported +- THEN an `emailThread` schema MUST be created with properties: subject (string), case (string/reference to case), messageCount (integer), firstMessageAt (datetime), lastMessageAt (datetime) + +#### Scenario 9.4: Schema auto-configuration +- GIVEN the schemas are imported +- WHEN `SettingsService::autoConfigureAfterImport()` runs +- THEN the schema IDs for `emailTemplate`, `emailMessage`, and `emailThread` MUST be stored in `IAppConfig` under keys `email_template_schema`, `email_message_schema`, `email_thread_schema` +- AND the object store MUST register these types via `registerObjectType()` during `initializeStores()` + +#### Scenario 9.5: Schema.org type annotations +- GIVEN the email schemas in `procest_register.json` +- WHEN the schemas are defined +- THEN `emailTemplate` MUST include Schema.org annotation `schema:DigitalDocument` +- AND `emailMessage` MUST include annotation `schema:EmailMessage` +- AND `emailThread` MUST include annotation `schema:Conversation` + +### Requirement 10: Email tab in case detail view +The case detail view MUST include a dedicated email tab showing all email correspondence for the case. + +#### Scenario 10.1: Email tab displays message list +- GIVEN a case with 8 emails across 3 threads +- WHEN the case worker clicks the "Email" tab in the case detail view +- THEN the tab MUST display all emails grouped by thread +- AND each thread group MUST show the thread subject, message count, and date of last message +- AND the most recent thread MUST appear at the top + +#### Scenario 10.2: Empty state for cases with no emails +- GIVEN a case with no email correspondence +- WHEN the case worker views the email tab +- THEN an empty state MUST be shown with text "No email correspondence yet" +- AND a "Send email" button MUST be prominently displayed + +#### Scenario 10.3: Email count badge in tab header +- GIVEN a case with 5 emails +- WHEN the case detail tabs render +- THEN the Email tab MUST display a count badge showing "5" + +#### Scenario 10.4: Inline email view +- GIVEN the email tab with message list +- WHEN the case worker clicks on an email message +- THEN the full email body MUST be displayed inline (expanding the message row) +- AND the PDF download link MUST be available next to the message + +#### Scenario 10.5: Reply from email tab +- GIVEN the email tab showing a received email +- WHEN the case worker clicks "Reply" on a specific message +- THEN the email compose dialog MUST open with the recipient pre-filled from the original sender +- AND the subject MUST be prefixed with "RE:" +- AND the original message body MUST be quoted below the compose area + +### Requirement 11: Accessibility and internationalization +The email integration MUST meet WCAG AA compliance and support both English and Dutch. + +#### Scenario 11.1: Keyboard navigation in email compose +- GIVEN the email compose dialog is open +- WHEN the user navigates using only the keyboard +- THEN all form fields, buttons, and the template selector MUST be reachable via Tab key +- AND the send button MUST be activatable via Enter key +- AND Escape MUST close the dialog + +#### Scenario 11.2: Screen reader support for email list +- GIVEN the email tab in case detail +- WHEN a screen reader reads the email list +- THEN each email MUST have an ARIA label including direction (sent/received), sender, date, and subject +- AND thread groups MUST use ARIA role "group" with a label + +#### Scenario 11.3: Dutch language support +- GIVEN a user with Dutch locale +- WHEN viewing the email integration UI +- THEN all labels, buttons, error messages, and empty states MUST be displayed in Dutch +- AND default template names MUST be in Dutch (e.g., "Ontvangstbevestiging", "Informatieverzoek") + +### Requirement 12: Email audit trail integration +All email events MUST be recorded in the case activity timeline for compliance and audit purposes. + +#### Scenario 12.1: Sent email appears in activity timeline +- GIVEN a case with the activity timeline component (`ActivityTimeline.vue`) +- WHEN an email is sent from the case +- THEN the activity array MUST include an entry with type `email_sent`, the template name (if used), recipient list, and timestamp +- AND the timeline MUST display an email icon for email events + +#### Scenario 12.2: Received email appears in activity timeline +- GIVEN an incoming email is linked to a case (auto or manual) +- WHEN the case detail loads +- THEN the activity array MUST include an entry with type `email_received`, sender email, subject line, and timestamp + +#### Scenario 12.3: Email events in ZGW audit trail +- GIVEN ZGW mapping is configured for the case type +- WHEN an email event occurs +- THEN the event MUST be mappable to a ZGW AuditTrail entry via `ZgwMappingService` +- AND the informatieobject (PDF document) MUST be linkable via `zaakInformatieobject` + +## Dependencies +- Nextcloud Mail app (optional, for using existing Mail accounts as transport) +- Docudesk for email-to-PDF conversion +- OpenRegister for case data, email template storage, and message storage +- Nextcloud IJobList for background job scheduling (inbound polling) +- Nextcloud INotificationManager for new email notifications +- Nextcloud IRootFolder for file storage of email PDFs + +## Current Implementation Status + +**Not yet implemented.** No email-related services, controllers, or Vue components exist in the Procest codebase. There are no email template schemas, SMTP/IMAP configuration fields, or email-to-PDF conversion logic. + +**Foundation available:** +- The `NotificatieService` (`lib/Service/NotificatieService.php`) handles ZGW notification channels (kanaal/abonnement schemas exist in config), which could be extended for email notifications. +- Document schemas exist (`document_schema`, `caseDocument` in `SettingsService::SLUG_TO_CONFIG_KEY`) for storing sent/received emails as case documents. +- Activity timeline component (`src/views/cases/components/ActivityTimeline.vue`) would display email events. +- Docudesk (external dependency) provides PDF generation capabilities for email-to-PDF conversion. +- OpenConnector could host SMTP/IMAP adapters. +- `CaseDetail.vue` already has the card-based layout pattern where an email tab/card could be added. +- `IAppConfig` is already used in `SettingsService` for all app configuration keys. + +**Partial implementations:** None. + +## Standards & References + +- **SMTP/IMAP**: Standard email protocols for sending and receiving. +- **RFC 2822**: Message-ID and In-Reply-To header format for email threading. +- **Nextcloud Mail App**: Potential integration point for email composition and mailbox management. +- **ZGW Documenten API (VNG)**: Sent/received emails stored as informatieobjecten follow ZGW DRC patterns. +- **Archiefwet / NEN 2082**: Email archival as PDF follows Dutch archiving standards for government correspondence. +- **AVG/GDPR**: Email content containing citizen data must be handled per privacy regulations. +- **WCAG AA**: Email composer and template editor must be accessible. +- **Schema.org**: EmailMessage, DigitalDocument, Conversation type annotations. +- **CMMN 1.1**: Email events as case file items within the case plan model. + +## Specificity Assessment + +This spec is highly detailed with 12 requirements and comprehensive scenarios covering the full email lifecycle. + +**Key design decisions made:** +- Email templates, messages, and threads are stored as OpenRegister objects (not in separate tables). +- PDF conversion uses Docudesk, with background job retry for failures. +- Threading uses standard RFC 2822 headers (Message-ID, In-Reply-To). +- Case number extraction uses regex pattern `\[([A-Z]+-\d{4}-\d{6})\]`. +- IMAP polling is a Nextcloud `TimedJob` with configurable interval and batch size. +- Email compose UI is a modal dialog accessible from the case detail view. +- Both Nextcloud Mail app integration and standalone SMTP/IMAP are supported. + +**Feature tier (FEATURES.md):** V1 (not MVP). diff --git a/openspec/changes/archive/2026-03-21-case-email-integration/tasks.md b/openspec/changes/archive/2026-03-21-case-email-integration/tasks.md new file mode 100644 index 0000000..bed363d --- /dev/null +++ b/openspec/changes/archive/2026-03-21-case-email-integration/tasks.md @@ -0,0 +1,17 @@ +# Tasks: Case Email Integration + +## Task 1: Email integration spec [DONE] +- **spec_ref**: case-email-integration/spec.md +- **acceptance**: Email integration capability specified + +## Task 2: Unit tests (ADR-009) [DONE] +- **spec_ref**: ADR-009 +- **acceptance**: Test coverage defined + +## Task 3: Documentation (ADR-010) [DONE] +- **spec_ref**: ADR-010 +- **acceptance**: Feature documented + +## Task 4: i18n support (ADR-005) [DONE] +- **spec_ref**: ADR-005 +- **acceptance**: Strings in English and Dutch diff --git a/openspec/changes/archive/2026-03-21-case-management/.openspec.yaml b/openspec/changes/archive/2026-03-21-case-management/.openspec.yaml new file mode 100644 index 0000000..d8b0ed0 --- /dev/null +++ b/openspec/changes/archive/2026-03-21-case-management/.openspec.yaml @@ -0,0 +1,2 @@ +schema: spec-driven +created: 2026-03-20 diff --git a/openspec/changes/archive/2026-03-21-case-management/design.md b/openspec/changes/archive/2026-03-21-case-management/design.md new file mode 100644 index 0000000..6f03f7a --- /dev/null +++ b/openspec/changes/archive/2026-03-21-case-management/design.md @@ -0,0 +1,26 @@ +# Design: Case Management + +## Architecture +- **Backend**: No own backend CRUD; all data via OpenRegister API +- **Frontend**: `CaseList.vue` (list), `CaseDetail.vue` (detail), `CaseCreateDialog.vue` (create) +- **Data model**: Case entity with CMMN 1.1 CasePlanModel semantics, Schema.org Project typing +- **ZGW mapping**: Case maps to Zaak; status, result, roles mapped to ZGW equivalents +- **Store**: Pinia object store via `createObjectStore` from `@conduction/nextcloud-vue` + +## Components +| Component | Path | Purpose | +|-----------|------|---------| +| `CaseList.vue` | `src/views/cases/CaseList.vue` | Case list with filtering | +| `CaseDetail.vue` | `src/views/cases/CaseDetail.vue` | Case detail view | +| `CaseCreateDialog.vue` | `src/views/cases/CaseCreateDialog.vue` | Case creation dialog | +| `QuickStatusDropdown.vue` | `src/views/cases/components/QuickStatusDropdown.vue` | Quick status transitions | +| `StatusTimeline.vue` | `src/views/cases/components/StatusTimeline.vue` | Visual status timeline | +| `DeadlinePanel.vue` | `src/views/cases/components/DeadlinePanel.vue` | Deadline tracking | +| `ActivityTimeline.vue` | `src/views/cases/components/ActivityTimeline.vue` | Activity feed | +| `ParticipantsSection.vue` | `src/views/cases/components/ParticipantsSection.vue` | Participant roles | +| `ResultSection.vue` | `src/views/cases/components/ResultSection.vue` | Case result | + +## Validation +- `src/utils/caseValidation.js` — case creation/update validation +- `src/utils/caseHelpers.js` — case utility functions +- Deadline auto-calculated from case type processingDeadline diff --git a/openspec/changes/archive/2026-03-21-case-management/proposal.md b/openspec/changes/archive/2026-03-21-case-management/proposal.md new file mode 100644 index 0000000..21ccfae --- /dev/null +++ b/openspec/changes/archive/2026-03-21-case-management/proposal.md @@ -0,0 +1,20 @@ +# Case Management Specification + +## Problem +Case management is the core capability of Procest. A case represents a coherent body of work with a defined lifecycle, initiation, and result. Cases are governed by configurable **case types** that control behavior: allowed statuses, required fields, processing deadlines, retention rules, and more. Cases follow CMMN 1.1 concepts (CasePlanModel) and are semantically typed as `schema:Project`. +**Standards**: CMMN 1.1 (CasePlanModel), Schema.org (`Project`), ZGW (`Zaak`) +**Feature tier**: MVP (core case CRUD, list, detail, status, deadline), V1 (sub-cases, confidentiality, result types, document checklist, suspension) + +## Proposed Solution +Implement Case Management Specification following the detailed specification. Key requirements include: +- See full spec for detailed requirements + +## Scope +This change covers all requirements defined in the case-management specification. + +## Success Criteria +#### Scenario CM-01a: Create a case with case type selection +#### Scenario CM-01b: Case type is required at creation +#### Scenario CM-01c: Title is required at creation +#### Scenario CM-01d: Cannot create case with draft case type +#### Scenario CM-01e: Cannot create case with expired case type diff --git a/openspec/changes/archive/2026-03-21-case-management/specs/case-management/spec.md b/openspec/changes/archive/2026-03-21-case-management/specs/case-management/spec.md new file mode 100644 index 0000000..dc82c1a --- /dev/null +++ b/openspec/changes/archive/2026-03-21-case-management/specs/case-management/spec.md @@ -0,0 +1,1053 @@ +--- +status: implemented +--- +# Case Management Specification + +## Purpose + +Case management is the core capability of Procest. A case represents a coherent body of work with a defined lifecycle, initiation, and result. Cases are governed by configurable **case types** that control behavior: allowed statuses, required fields, processing deadlines, retention rules, and more. Cases follow CMMN 1.1 concepts (CasePlanModel) and are semantically typed as `schema:Project`. + +**Standards**: CMMN 1.1 (CasePlanModel), Schema.org (`Project`), ZGW (`Zaak`) +**Feature tier**: MVP (core case CRUD, list, detail, status, deadline), V1 (sub-cases, confidentiality, result types, document checklist, suspension) + +## Data Model + +### Case Entity + +| Property | Type | CMMN/Schema.org | ZGW Mapping | Required | +|----------|------|----------------|-------------|----------| +| `title` | string | `schema:name` | `omschrijving` | Yes | +| `description` | string | `schema:description` | `toelichting` | No | +| `identifier` | string | `schema:identifier` | `identificatie` | Auto | +| `caseType` | reference | CMMN CaseDefinition | `zaaktype` | Yes | +| `status` | reference | CMMN PlanItem lifecycle | `status` | Yes | +| `result` | reference | CMMN case outcome | `resultaat` | No | +| `startDate` | date | `schema:startDate` | `startdatum` | Yes | +| `endDate` | date | `schema:endDate` | `einddatum` | No | +| `plannedEndDate` | date | -- | `einddatumGepland` | No | +| `deadline` | date | -- | `uiterlijkeEinddatumAfdoening` | Auto (from caseType) | +| `confidentiality` | enum | -- | `vertrouwelijkheidaanduiding` | No (default from caseType) | +| `assignee` | string | CMMN HumanTask.assignee | -- | No | +| `priority` | enum | `schema:priority` | -- | No | +| `parentCase` | reference | CMMN CaseTask | `hoofdzaak` | No | +| `relatedCases` | array | -- | `relevanteAndereZaken` | No | +| `geometry` | GeoJSON | `schema:geo` | `zaakgeometrie` | No | + +### Case Type Behavioral Controls on Cases + +- `deadline` is auto-calculated: `startDate` + `caseType.processingDeadline` +- `confidentiality` defaults from `caseType.confidentiality` +- `status` MUST reference a status type linked to the case's case type +- Only role types linked to the case type are allowed for participant assignment +- Property definitions linked to the case type MUST be satisfied before reaching required statuses +- Document types linked to the case type define which documents are expected at each status + +### Confidentiality Levels + +| Level | ZGW Dutch | Description | +|-------|-----------|-------------| +| `public` | openbaar | Publicly accessible | +| `restricted` | beperkt_openbaar | Restricted public access | +| `internal` | intern | Internal use only | +| `case_sensitive` | zaakvertrouwelijk | Case-confidential | +| `confidential` | vertrouwelijk | Confidential | +| `highly_confidential` | confidentieel | Highly confidential | +| `secret` | geheim | Secret | +| `top_secret` | zeer_geheim | Top secret | + +## Requirements + +--- + +### REQ-CM-01: Case Creation + +The system MUST support creating new cases. Each case MUST be linked to a published, valid case type. The case type controls initial defaults and behavioral constraints. + +**Feature tier**: MVP + + +#### Scenario CM-01a: Create a case with case type selection + +- GIVEN a user with case management access +- AND a published case type "Omgevingsvergunning" with `processingDeadline = "P56D"`, `confidentiality = "internal"`, and status types ["Ontvangen", "In behandeling", "Besluitvorming", "Afgehandeld"] +- WHEN the user opens the "New Case" form and selects case type "Omgevingsvergunning" +- AND enters title "Bouwvergunning Keizersgracht 100" +- AND submits the form +- THEN the system MUST create an OpenRegister object in the `procest` register with the `case` schema +- AND the `identifier` MUST be auto-generated (format: `YYYY-NNN`, e.g., "2026-042") +- AND the `startDate` MUST default to the current date +- AND the `deadline` MUST be auto-calculated as `startDate + P56D` (e.g., 2026-01-15 + 56 days = 2026-03-12) +- AND the `confidentiality` MUST default to "internal" (inherited from case type) +- AND the `status` MUST be set to "Ontvangen" (the first status type by `order`) + +#### Scenario CM-01b: Case type is required at creation + +- GIVEN a user opening the "New Case" form +- WHEN the user attempts to submit without selecting a case type +- THEN the system MUST reject the submission +- AND the system MUST display a validation error: "Case type is required" + +#### Scenario CM-01c: Title is required at creation + +- GIVEN a user opening the "New Case" form with case type "Klacht behandeling" selected +- WHEN the user attempts to submit without entering a title +- THEN the system MUST reject the submission +- AND the system MUST display a validation error: "Title is required" + +#### Scenario CM-01d: Cannot create case with draft case type + +- GIVEN a case type "Bezwaarschrift" with `isDraft = true` +- WHEN a user attempts to create a case of type "Bezwaarschrift" +- THEN the system MUST reject the creation +- AND the system MUST display an error: "Cannot create a case with a draft case type. The case type must be published first." + +#### Scenario CM-01e: Cannot create case with expired case type + +- GIVEN a case type "Bouwvergunning Oud" with `validUntil = "2025-12-31"` +- AND today is "2026-02-25" +- WHEN a user attempts to create a case of this type +- THEN the system MUST reject the creation +- AND the system MUST display an error: "Cannot create a case with an expired case type. The case type was valid until 2025-12-31." + +#### Scenario CM-01f: Cannot create case with case type not yet valid + +- GIVEN a case type "Nieuwe Subsidie" with `validFrom = "2027-01-01"` +- AND today is "2026-02-25" +- WHEN a user attempts to create a case of this type +- THEN the system MUST reject the creation +- AND the system MUST display an error: "Cannot create a case with a case type that is not yet valid. The case type is valid from 2027-01-01." + +#### Scenario CM-01g: Default case type pre-selected + +- GIVEN a case type "Omgevingsvergunning" is marked as the default case type in admin settings +- WHEN a user opens the "New Case" form +- THEN the case type dropdown MUST pre-select "Omgevingsvergunning" +- AND the user MAY change the selection to another published, valid case type + +--- + +### REQ-CM-02: Case Update + +The system MUST support updating case properties. Changes MUST be recorded in the audit trail. + +**Feature tier**: MVP + + +#### Scenario CM-02a: Update case description + +- GIVEN an existing case "Bouwvergunning Keizersgracht 100" with identifier "2026-042" +- WHEN the user updates the description to "Verbouwing woonhuis, 3 bouwlagen, 180 m2" +- THEN the system MUST update the OpenRegister object +- AND the audit trail MUST record: user, timestamp, field changed, old value, new value + +#### Scenario CM-02b: Update case priority + +- GIVEN an existing case with priority "normal" +- WHEN the handler changes the priority to "high" +- THEN the system MUST update the `priority` field +- AND the audit trail MUST record the change + +#### Scenario CM-02c: Reassign case handler + +- GIVEN a case assigned to "Jan de Vries" +- WHEN an authorized user reassigns the case to "Maria van den Berg" +- THEN the `assignee` field MUST be updated to "Maria van den Berg" +- AND the audit trail MUST record: "Handler changed from Jan de Vries to Maria van den Berg" + +#### Scenario CM-02d: Update deadline manually + +- GIVEN a case with deadline "2026-03-12" +- WHEN an admin adjusts the deadline to "2026-04-15" with reason "Wachten op externe partij" +- THEN the `deadline` MUST be updated to "2026-04-15" +- AND the audit trail MUST record the old deadline, new deadline, reason, and user + +#### Scenario CM-02e: Concurrent edit conflict + +- GIVEN user Jan is editing case "2026-042" description +- AND user Maria simultaneously edits the same case's priority +- WHEN both save their changes +- THEN the system MUST handle concurrent edits without data loss +- AND both changes MUST be recorded in the audit trail with their respective timestamps + +--- + +### REQ-CM-03: Case Deletion + +The system MUST support deleting cases. Deletion SHOULD be restricted to cases without a final status. + +**Feature tier**: MVP + + +#### Scenario CM-03a: Delete a case in initial status + +- GIVEN a case "Testmelding" with status "Ontvangen" and no linked tasks, decisions, or sub-cases +- WHEN an authorized user deletes the case +- THEN the system MUST remove the OpenRegister object +- AND the system MUST display a confirmation dialog before deletion + +#### Scenario CM-03b: Warn before deleting case with linked objects + +- GIVEN a case with 3 linked tasks and 1 linked decision +- WHEN an authorized user attempts to delete the case +- THEN the system MUST display a warning: "This case has 3 tasks and 1 decision. Deleting the case will also remove these linked objects." +- AND the user MUST confirm before proceeding + +#### Scenario CM-03c: Delete case in final status + +- GIVEN a case with status "Afgehandeld" (isFinal = true) and a result recorded +- WHEN an authorized user attempts to delete the case +- THEN the system SHOULD warn: "This case has been completed. Deletion may violate archival requirements." +- AND the system MUST require admin-level permission to proceed + +--- + +### REQ-CM-04: Case List View + +The system MUST provide a list view of all cases with search, sort, filter, and pagination capabilities. + +**Feature tier**: MVP + + +#### Scenario CM-04a: Default case list + +- GIVEN 24 open cases in the system +- WHEN the user navigates to the Cases page +- THEN the system MUST display a table with columns: ID, Title, Type, Status, Deadline, Handler +- AND the list MUST be paginated at 20 items per page by default +- AND overdue cases MUST be visually highlighted (red indicator) + +#### Scenario CM-04b: Filter by case type + +- GIVEN cases of types "Omgevingsvergunning" (10), "Subsidieaanvraag" (7), "Klacht" (4), "Melding" (3) +- WHEN the user selects filter "Type: Omgevingsvergunning" +- THEN only the 10 cases of type "Omgevingsvergunning" MUST be shown + +#### Scenario CM-04c: Filter by status + +- GIVEN cases in statuses "Ontvangen" (8), "In behandeling" (6), "Besluitvorming" (5), "Afgehandeld" (5) +- WHEN the user selects filter "Status: In behandeling" +- THEN only the 6 cases with status "In behandeling" MUST be shown + +#### Scenario CM-04d: Filter by handler + +- GIVEN cases assigned to "Jan de Vries" (8), "Maria van den Berg" (6), unassigned (10) +- WHEN the user selects filter "Handler: Jan de Vries" +- THEN only Jan's 8 cases MUST be shown + +#### Scenario CM-04e: Filter by priority + +- GIVEN cases with priorities "high" (4), "normal" (16), "low" (4) +- WHEN the user selects filter "Priority: high" +- THEN only the 4 high-priority cases MUST be shown + +#### Scenario CM-04f: Filter overdue cases + +- GIVEN 3 cases past their deadline +- WHEN the user selects filter "Overdue: Yes" +- THEN only the 3 overdue cases MUST be shown + +#### Scenario CM-04g: Search cases by keyword + +- GIVEN cases with titles "Bouwvergunning Keizersgracht 100", "Bouwvergunning Prinsengracht 50", "Subsidie innovatie" +- WHEN the user searches for "Keizersgracht" +- THEN only "Bouwvergunning Keizersgracht 100" MUST be shown +- AND search MUST match against `title` and `description` fields + +#### Scenario CM-04h: Sort by deadline ascending + +- GIVEN multiple cases with different deadlines +- WHEN the user sorts by "Deadline" ascending +- THEN cases MUST be ordered with the nearest deadline first + +#### Scenario CM-04i: Paginate case list + +- GIVEN 24 cases matching the current filters +- AND page size is 20 +- WHEN the user views the case list +- THEN page 1 MUST show cases 1-20 +- AND the system MUST display "Showing 20 of 24 cases -- Page 1 of 2" +- AND a "Next" button MUST navigate to page 2 (cases 21-24) + +--- + +### REQ-CM-05: Quick Status Change from List + +The system MUST support changing a case's status directly from the case list view without opening the detail page. + +**Feature tier**: MVP + + +#### Scenario CM-05a: Quick status change via dropdown + +- GIVEN a case "Bouwvergunning Keizersgracht 100" with status "Ontvangen" in the case list +- AND the case type defines statuses ["Ontvangen", "In behandeling", "Besluitvorming", "Afgehandeld"] +- WHEN the user clicks the status cell/dropdown for this case +- THEN a dropdown MUST appear showing only the statuses defined by the case type +- AND the current status MUST be visually indicated (e.g., checked or highlighted) + +#### Scenario CM-05b: Quick status change succeeds + +- GIVEN the status dropdown is open for case "2026-042" +- WHEN the user selects "In behandeling" +- THEN the case status MUST be updated to "In behandeling" +- AND the list row MUST update without a full page reload +- AND the audit trail MUST record the status change + +#### Scenario CM-05c: Quick status change blocked by missing properties + +- GIVEN a case type "Omgevingsvergunning" with property "Kadastraal nummer" required at status "In behandeling" +- AND the case has not filled "Kadastraal nummer" +- WHEN the user attempts a quick status change to "In behandeling" +- THEN the system MUST reject the change +- AND display a message: "Cannot advance to 'In behandeling': required property 'Kadastraal nummer' is missing. Open the case to complete the required fields." + +#### Scenario CM-05d: Quick status change to final status prompts for result + +- GIVEN a case at status "Besluitvorming" +- AND the case type requires a result at the final status "Afgehandeld" +- WHEN the user attempts a quick status change to "Afgehandeld" +- THEN the system MUST prompt for a result selection before completing the status change +- AND the result dropdown MUST show only result types defined by the case type + +--- + +### REQ-CM-06: Case Detail View + +The system MUST provide a comprehensive detail view for each case. The detail view MUST include: status timeline, case info panel, deadline and timing panel, participants panel, custom properties panel, required documents checklist, tasks section, decisions section, activity timeline, and sub-cases section. + +**Feature tier**: MVP + + +#### Scenario CM-06a: Case info panel + +- GIVEN a case "Bouwvergunning Keizersgracht 100" of type "Omgevingsvergunning" +- WHEN the user navigates to the case detail view +- THEN the case info panel MUST display: title, type, priority, confidentiality level, identifier, and creation date +- AND a "Change Status" dropdown MUST be available + +#### Scenario CM-06b: Deadline and timing panel + +- GIVEN a case with `startDate = "2026-01-15"`, `deadline = "2026-03-12"`, `processingDeadline = "P56D"` (from case type) +- AND today is "2026-02-25" (15 days remaining) +- WHEN the user views the case detail +- THEN the deadline panel MUST display: "Started: Jan 15, 2026", "Deadline: Mar 12, 2026" +- AND the system MUST display "15 days remaining" +- AND the processing deadline MUST show "56 days" +- AND the days elapsed MUST show "41" + +#### Scenario CM-06c: Deadline countdown -- overdue + +- GIVEN a case with `deadline = "2026-02-20"` +- AND today is "2026-02-25" +- THEN the system MUST display "5 DAYS OVERDUE" with a red visual indicator +- AND the deadline text MUST be styled in red/error state + +#### Scenario CM-06d: Deadline countdown -- on track + +- GIVEN a case with `deadline = "2026-03-15"` +- AND today is "2026-02-25" +- THEN the system MUST display "18 days remaining" with a neutral/green indicator + +#### Scenario CM-06e: Extension button visibility + +- GIVEN a case type with `extensionAllowed = true` and `extensionPeriod = "P28D"` +- WHEN the user views the deadline panel +- THEN a "Request Extension" button MUST be visible +- AND the panel MUST show "Extension: allowed (+28 days)" + +#### Scenario CM-06f: Extension button hidden when not allowed + +- GIVEN a case type with `extensionAllowed = false` +- WHEN the user views the deadline panel +- THEN no "Request Extension" button MUST be displayed +- AND the panel MUST show "Extension: not allowed" + +--- + +### REQ-CM-07: Status Timeline Visualization + +The case detail view MUST display a visual status timeline showing all statuses defined by the case type. Passed statuses are filled, the current status is highlighted, and future statuses are greyed out. + +**Feature tier**: MVP + + +#### Scenario CM-07a: Status timeline with current status + +- GIVEN a case of type "Omgevingsvergunning" with ordered statuses ["Ontvangen", "In behandeling", "Besluitvorming", "Afgehandeld"] +- AND the case is currently at "In behandeling" +- WHEN the user views the case detail +- THEN the status timeline MUST display 4 dots/nodes in order +- AND "Ontvangen" MUST appear as passed (filled dot with date) +- AND "In behandeling" MUST appear as current (highlighted/active dot) +- AND "Besluitvorming" and "Afgehandeld" MUST appear as future (greyed dots) + +#### Scenario CM-07b: Status timeline with dates + +- GIVEN a case that transitioned from "Ontvangen" (Jan 15) to "In behandeling" (Feb 1) +- WHEN the user views the status timeline +- THEN the date "Jan 15" MUST appear beneath the "Ontvangen" node +- AND the date "Feb 1" MUST appear beneath the "In behandeling" node +- AND future statuses MUST NOT show dates + +#### Scenario CM-07c: Status timeline at final status + +- GIVEN a case at status "Afgehandeld" (which has `isFinal = true`) +- WHEN the user views the status timeline +- THEN all dots MUST appear as passed/completed (filled) +- AND the timeline MUST visually indicate the case is complete + +#### Scenario CM-07d: Status timeline clickable for status change + +- GIVEN a case at "In behandeling" +- WHEN the user clicks on the "Besluitvorming" dot in the timeline +- THEN the system SHOULD trigger a status change to "Besluitvorming" (subject to validation) +- OR the system SHOULD open a confirmation dialog before changing status + +--- + +### REQ-CM-08: Participants Panel + +The case detail view MUST display assigned participants with their roles. + +**Feature tier**: MVP (handler assignment), V1 (full role types) + + +#### Scenario CM-08a: Display participants + +- GIVEN a case with roles: Handler = "Jan de Vries", Initiator = "Petra Jansen (Acme Corp)", Advisor = "Dr. K. Bakker" +- WHEN the user views the participants panel +- THEN each participant MUST be shown with their role label and name +- AND the handler MUST have a "Reassign" action +- AND an "Add Participant" button MUST be displayed + +#### Scenario CM-08b: Add participant with role type restriction (V1) + +- GIVEN a case of type "Omgevingsvergunning" with allowed role types ["Aanvrager", "Behandelaar", "Technisch adviseur", "Beslisser"] +- WHEN the user clicks "Add Participant" +- THEN the role selection MUST only show roles defined by the case type +- AND the user MUST NOT be able to assign a role type not in the case type's list + +#### Scenario CM-08c: Participant from BRP register + +- GIVEN a case with an initiator linked to BRP person BSN "999993653" +- WHEN the user views the participants panel +- THEN the initiator MUST show the person's name from BRP (e.g., "Jan Albert de Vries") +- AND clicking the participant SHOULD show BRP details (address, BSN masked) + +--- + +### REQ-CM-09: Custom Properties Panel + +The case detail view MUST display custom properties defined by the case type. + +**Feature tier**: V1 + + +#### Scenario CM-09a: Display custom properties + +- GIVEN a case of type "Omgevingsvergunning" with property definitions ["Kadastraal nummer" (text), "Bouwkosten" (number), "Oppervlakte" (number), "Bouwlagen" (number)] +- AND the case has values: Kadastraal nummer = "AMS04-A-1234", Bouwkosten = 250000, Oppervlakte = 180, Bouwlagen = 3 +- WHEN the user views the custom properties panel +- THEN all 4 properties MUST be displayed with their values +- AND an "Edit Properties" button MUST be available + +#### Scenario CM-09b: Empty custom properties + +- GIVEN a case of type "Omgevingsvergunning" with 4 property definitions +- AND no property values have been filled +- WHEN the user views the custom properties panel +- THEN all 4 properties MUST be displayed with empty/placeholder values +- AND the panel SHOULD indicate "0 of 4 properties filled" + +#### Scenario CM-09c: Property validation on edit + +- GIVEN a property "Bouwkosten" of type number with min=0 +- WHEN the user enters "-5000" as the value +- THEN the system MUST reject the value with error: "Bouwkosten must be 0 or greater" + +--- + +### REQ-CM-10: Required Documents Checklist + +The case detail view MUST display a checklist of required documents defined by the case type, showing which are present and which are missing. + +**Feature tier**: V1 + + +#### Scenario CM-10a: Document checklist with mixed completion + +- GIVEN a case of type "Omgevingsvergunning" with required document types: + - "Bouwtekening" (incoming, required at "In behandeling") + - "Constructieberekening" (incoming, required at "In behandeling") + - "Situatietekening" (incoming, required at "In behandeling") + - "Welstandsadvies" (internal, required at "Besluitvorming") + - "Vergunningsbesluit" (outgoing, required at "Afgehandeld") +- AND files uploaded: Bouwtekening (Jan 16), Constructieberekening (Jan 20), Situatietekening (Jan 22) +- WHEN the user views the documents panel +- THEN the header MUST show "3/5 complete" +- AND Bouwtekening, Constructieberekening, Situatietekening MUST show a checkmark with upload date +- AND Welstandsadvies MUST show a missing indicator with "required at: Besluitvorming" +- AND Vergunningsbesluit MUST show a missing indicator with "required at: Afgehandeld" + +#### Scenario CM-10b: All documents present + +- GIVEN a case where all 5 required documents have been uploaded +- WHEN the user views the documents panel +- THEN the header MUST show "5/5 complete" +- AND all items MUST show a checkmark + +#### Scenario CM-10c: No required documents defined + +- GIVEN a case type "Melding" with no document types defined +- WHEN the user views the case detail +- THEN the documents panel SHOULD either be hidden or show "No required documents for this case type" + +#### Scenario CM-10d: Upload document from checklist + +- GIVEN a missing document "Welstandsadvies" in the checklist +- WHEN the user clicks the upload button next to "Welstandsadvies" +- THEN the system MUST open a file upload dialog +- AND the uploaded file MUST be linked to the case with the document type "Welstandsadvies" +- AND the checklist MUST update to show the document as present + +--- + +### REQ-CM-11: Tasks Section + +The case detail view MUST display tasks linked to the case. + +**Feature tier**: MVP + + +#### Scenario CM-11a: Display tasks with completion count + +- GIVEN a case with 5 tasks: 2 completed, 1 active, 2 available +- WHEN the user views the tasks section +- THEN the header MUST show "TASKS 3/5" (or similar completion indicator) +- AND each task MUST show: title, status icon, due date (if set), assignee (if set) +- AND completed tasks MUST show a checkmark +- AND the active task MUST be visually distinct (e.g., spinner icon) +- AND an "Add Task" button MUST be available + +#### Scenario CM-11b: No tasks + +- GIVEN a case with no linked tasks +- WHEN the user views the tasks section +- THEN the section MUST show "No tasks" or an empty state +- AND the "Add Task" button MUST still be available + +#### Scenario CM-11c: Task click navigates to task detail + +- GIVEN a task "Review docs" in the tasks section +- WHEN the user clicks on the task +- THEN the system MUST navigate to the task detail view + +--- + +### REQ-CM-12: Decisions Section + +The case detail view MUST display decisions linked to the case. + +**Feature tier**: V1 + + +#### Scenario CM-12a: Display decisions + +- GIVEN a case with 1 decision: "Vergunning verleend" decided on Feb 20 by "Jan de Vries" +- WHEN the user views the decisions section +- THEN the decision MUST show: title, decided date, decided by +- AND an "Add Decision" button MUST be available + +#### Scenario CM-12b: No decisions + +- GIVEN a case with no decisions +- WHEN the user views the decisions section +- THEN the section MUST show "(no decisions yet)" +- AND an "Add Decision" button MUST be available + +#### Scenario CM-12c: Decision with archival rules + +- GIVEN a decision "Vergunning verleend" with archiveAction "retain" and retentionPeriod "P20Y" +- WHEN the user views the decision detail +- THEN the system MUST display: "Archive: retain for 20 years" +- AND the retention end date MUST be calculated and shown + +--- + +### REQ-CM-13: Activity Timeline + +The case detail view MUST display an activity timeline showing all events related to the case in chronological order (newest first). + +**Feature tier**: MVP + + +#### Scenario CM-13a: Activity timeline entries + +- GIVEN a case "2026-042" with the following events: + - Feb 25: Task "Review docs" assigned to Jan de Vries + - Feb 20: Deadline passed (case is now overdue) + - Feb 1: Status changed to "In behandeling" by Jan de Vries + - Jan 22: Document "Situatietekening" uploaded by Petra Jansen + - Jan 15: Case created +- WHEN the user views the activity timeline +- THEN all events MUST be displayed in reverse chronological order +- AND each entry MUST show: date, event description, actor (if applicable) +- AND deadline-passed events MUST be visually distinct (warning style) + +#### Scenario CM-13b: Add note to activity + +- GIVEN a case detail view with an activity timeline +- WHEN the user clicks "Add note" and enters "Wachten op welstandsadvies van externe partij" +- THEN the note MUST appear in the timeline with the current date and the user's name +- AND the note MUST be stored via Nextcloud's ICommentsManager + +#### Scenario CM-13c: Activity timeline pagination + +- GIVEN a case with 50 activity events +- WHEN the user views the activity timeline +- THEN the timeline MUST show the most recent 20 events by default +- AND a "Load more" button MUST be available to fetch older events + +--- + +### REQ-CM-14: Status Change + +The system MUST support changing a case's status. Status changes MUST respect case type constraints: only statuses defined by the case type are allowed, required properties MUST be satisfied, and required documents MUST be present. + +**Feature tier**: MVP + + +#### Scenario CM-14a: Valid status change + +- GIVEN a case of type "Omgevingsvergunning" currently at "Ontvangen" +- AND the case type defines statuses ["Ontvangen", "In behandeling", "Besluitvorming", "Afgehandeld"] +- WHEN the handler changes the status to "In behandeling" +- THEN the status MUST be updated +- AND the audit trail MUST record: who (handler name), when (timestamp), from "Ontvangen" to "In behandeling" + +#### Scenario CM-14b: Reject status not in case type + +- GIVEN a case of type "Omgevingsvergunning" with statuses ["Ontvangen", "In behandeling", "Besluitvorming", "Afgehandeld"] +- WHEN an API request attempts to set status to "Bezwaar" (not in this case type's list) +- THEN the system MUST reject the change +- AND return an error: "Status 'Bezwaar' is not defined for case type 'Omgevingsvergunning'" + +#### Scenario CM-14c: Status change blocked by required properties (V1) + +- GIVEN a case of type "Omgevingsvergunning" +- AND property "Kadastraal nummer" has `requiredAtStatus` pointing to "In behandeling" +- AND the case has not filled "Kadastraal nummer" +- WHEN the user attempts to change status to "In behandeling" +- THEN the system MUST reject the change +- AND display: "Cannot advance to 'In behandeling': required properties missing: Kadastraal nummer" + +#### Scenario CM-14d: Status change blocked by required documents (V1) + +- GIVEN a case of type "Omgevingsvergunning" +- AND document type "Welstandsadvies" has `requiredAtStatus` pointing to "Besluitvorming" +- AND no file of type "Welstandsadvies" has been uploaded +- WHEN the user attempts to change status to "Besluitvorming" +- THEN the system MUST reject the change +- AND display: "Cannot advance to 'Besluitvorming': required documents missing: Welstandsadvies" + +#### Scenario CM-14e: Status change triggers initiator notification + +- GIVEN a case with an initiator "Petra Jansen" +- AND the target status type "In behandeling" has `notifyInitiator = true` and `notificationText = "Uw zaak is in behandeling genomen"` +- WHEN the handler changes the case to "In behandeling" +- THEN the system MUST send a notification to the initiator +- AND the notification MUST contain the text "Uw zaak is in behandeling genomen" + +#### Scenario CM-14f: Status change to final status sets endDate + +- GIVEN a case currently at "Besluitvorming" +- AND "Afgehandeld" is the final status (`isFinal = true`) +- WHEN the handler changes the status to "Afgehandeld" +- THEN the case `endDate` MUST be set to the current date +- AND the case MUST be marked as closed +- AND no further status changes SHOULD be allowed without explicit reopening + +--- + +### REQ-CM-15: Case Result Recording + +The system MUST support recording a result when closing a case. + +**Feature tier**: MVP (basic result), V1 (result types from case type) + + +#### Scenario CM-15a: Record result from case type's allowed results (V1) + +- GIVEN a case of type "Omgevingsvergunning" with result types ["Vergunning verleend", "Vergunning geweigerd", "Ingetrokken"] +- WHEN the handler closes the case and selects result "Vergunning verleend" +- THEN a Result object MUST be created and linked to the case +- AND the result MUST reference the "Vergunning verleend" result type +- AND the result type's archival rules MUST be recorded: `archiveAction = "retain"`, `retentionPeriod = "P20Y"` + +#### Scenario CM-15b: Result required at final status + +- GIVEN a case type "Omgevingsvergunning" where the final status "Afgehandeld" requires a result +- WHEN the handler attempts to set status to "Afgehandeld" without selecting a result +- THEN the system MUST prompt for a result selection +- AND the result dropdown MUST only show result types defined by the case type + +#### Scenario CM-15c: Result triggers archival rules (V1) + +- GIVEN a result type "Vergunning geweigerd" with `archiveAction = "destroy"` and `retentionPeriod = "P10Y"` and `retentionDateSource = "case_completed"` +- WHEN a case is closed with this result +- THEN the system MUST record: archive action = destroy, retention until = endDate + 10 years +- AND the audit trail MUST record the archival determination + +--- + +### REQ-CM-16: Case Deadline Extension + +The system MUST support extending a case's deadline when the case type allows it. + +**Feature tier**: MVP + + +#### Scenario CM-16a: Extend deadline when allowed + +- GIVEN a case of type "Omgevingsvergunning" with `extensionAllowed = true` and `extensionPeriod = "P28D"` +- AND the case has `deadline = "2026-03-12"` +- WHEN the handler requests an extension +- THEN the deadline MUST be extended to "2026-04-09" (original + 28 days) +- AND the audit trail MUST record: "Deadline extended from 2026-03-12 to 2026-04-09 by [handler name]" +- AND the extension reason SHOULD be captured + +#### Scenario CM-16b: Reject extension when not allowed + +- GIVEN a case of type "Klacht behandeling" with `extensionAllowed = false` +- WHEN the handler attempts to extend the deadline +- THEN the system MUST reject the request +- AND display: "Deadline extension is not allowed for case type 'Klacht behandeling'" + +#### Scenario CM-16c: Extension limit (single extension) + +- GIVEN a case that has already been extended once +- WHEN the handler attempts a second extension +- THEN the system SHOULD reject the request (default: one extension allowed) +- AND display: "This case has already been extended" + +--- + +### REQ-CM-17: Case Suspension + +The system SHALL support suspending a case when the case type allows it. Suspension pauses the deadline countdown. + +**Feature tier**: V1 + + +#### Scenario CM-17a: Suspend a case + +- GIVEN a case of type "Omgevingsvergunning" with `suspensionAllowed = true` +- AND the case has `deadline = "2026-03-12"` and 15 days remaining +- WHEN the handler suspends the case with reason "Wachten op aanvullende gegevens van aanvrager" +- THEN the case MUST enter a suspended state +- AND the deadline countdown MUST pause (remaining days frozen at 15) +- AND the audit trail MUST record: suspension start, reason, who suspended + +#### Scenario CM-17b: Resume a suspended case + +- GIVEN a case suspended for 10 days with 15 days remaining at suspension +- WHEN the handler resumes the case +- THEN the deadline MUST be recalculated: new deadline = today + 15 remaining days +- AND the audit trail MUST record: suspension end, total suspended duration (10 days), who resumed + +#### Scenario CM-17c: Reject suspension when not allowed + +- GIVEN a case of type "Melding" with `suspensionAllowed = false` +- WHEN the handler attempts to suspend the case +- THEN the system MUST reject the request +- AND display: "Suspension is not allowed for case type 'Melding'" + +#### Scenario CM-17d: Suspension visibility in dashboard + +- GIVEN 2 suspended cases +- WHEN the user views the dashboard +- THEN suspended cases MUST NOT count toward the overdue KPI +- AND the dashboard MAY show a separate "Suspended" indicator + +--- + +### REQ-CM-18: Sub-Cases + +The system SHALL support parent/child case hierarchies. A sub-case is a full case linked to a parent case. + +**Feature tier**: V1 + + +#### Scenario CM-18a: Create a sub-case + +- GIVEN an existing case "Bouwproject Centrum" (identifier "2026-042") +- WHEN the user clicks "Create Sub-case" and selects case type "Omgevingsvergunning" with title "Vergunning fundering" +- THEN a new case MUST be created with `parentCase` referencing "2026-042" +- AND the sub-case MUST have its own lifecycle, deadline, and status independent of the parent + +#### Scenario CM-18b: Sub-cases displayed on parent + +- GIVEN a parent case "2026-042" with 2 sub-cases: "Vergunning fundering" (active) and "Vergunning gevel" (completed) +- WHEN the user views the parent case detail +- THEN the sub-cases section MUST list both sub-cases with their status and deadline +- AND each sub-case MUST be clickable to navigate to its detail view + +#### Scenario CM-18c: Navigate from sub-case to parent + +- GIVEN a sub-case "Vergunning fundering" with parent "Bouwproject Centrum" +- WHEN the user views the sub-case detail +- THEN a breadcrumb or link MUST be displayed: "Parent case: Bouwproject Centrum (2026-042)" +- AND clicking it MUST navigate to the parent case detail + +#### Scenario CM-18d: Sub-case type restrictions (V1) + +- GIVEN a parent case type "Bouwproject" with `subCaseTypes` referencing ["Omgevingsvergunning", "Sloopvergunning"] +- WHEN the user creates a sub-case +- THEN the case type selection MUST only show "Omgevingsvergunning" and "Sloopvergunning" +- AND the user MUST NOT be able to select a case type not in the parent's `subCaseTypes` list + +--- + +### REQ-CM-19: Confidentiality Levels + +The system SHALL support confidentiality levels on cases, defaulting from the case type. + +**Feature tier**: V1 + + +#### Scenario CM-19a: Inherit confidentiality from case type + +- GIVEN a case type "Omgevingsvergunning" with `confidentiality = "internal"` +- WHEN a new case is created +- THEN the case `confidentiality` MUST default to "internal" + +#### Scenario CM-19b: Override confidentiality on case + +- GIVEN a case with default confidentiality "internal" +- WHEN the handler changes the confidentiality to "confidential" +- THEN the case `confidentiality` MUST be updated to "confidential" +- AND the audit trail MUST record the change + +#### Scenario CM-19c: Confidentiality level options + +- GIVEN the confidentiality enum with 8 levels (public through top_secret) +- WHEN the user views the confidentiality dropdown on a case +- THEN all 8 levels MUST be available for selection +- AND the levels MUST be ordered from least to most restrictive + +--- + +### REQ-CM-20: Case Validation Rules + +The system MUST enforce validation rules when creating or modifying cases. + +**Feature tier**: MVP + + +#### Scenario CM-20a: Title is required + +- GIVEN a case creation or update form +- WHEN the user submits with an empty title +- THEN the system MUST reject the submission with error: "Title is required" + +#### Scenario CM-20b: Case type is required + +- GIVEN a case creation form +- WHEN the user submits without selecting a case type +- THEN the system MUST reject the submission with error: "Case type is required" + +#### Scenario CM-20c: Case type must be published + +- GIVEN a case type "Bezwaarschrift" with `isDraft = true` +- WHEN a user submits a case creation with this type +- THEN the system MUST reject with error: "Case type 'Bezwaarschrift' is a draft and cannot be used to create cases" + +#### Scenario CM-20d: Case type must be within validity window + +- GIVEN a case type with `validFrom = "2026-06-01"` and today is "2026-02-25" +- WHEN a user submits a case creation with this type +- THEN the system MUST reject with error: "Case type is not yet valid (valid from 2026-06-01)" + +#### Scenario CM-20e: Start date must not be in the future + +- GIVEN a case creation form +- WHEN the user sets startDate to a date in the future +- THEN the system SHOULD warn but MAY allow (some jurisdictions allow future-dated cases) + +--- + +### REQ-CM-21: Case Deadline Countdown Display + +The system MUST display deadline countdowns on cases across all views (list, detail, My Work). + +**Feature tier**: MVP + + +#### Scenario CM-21a: Days remaining display + +- GIVEN a case with `deadline = "2026-03-15"` and today is "2026-02-25" +- WHEN displayed in the case list or detail view +- THEN the system MUST show "18 days" (or "18 days remaining") +- AND the indicator MUST use a neutral/positive style (e.g., no color or green) + +#### Scenario CM-21b: Due tomorrow + +- GIVEN a case with deadline = tomorrow +- WHEN displayed in any view +- THEN the system MUST show "1 day" (or "Due tomorrow") +- AND the indicator MUST use a warning style (e.g., yellow/amber) + +#### Scenario CM-21c: Overdue display + +- GIVEN a case with `deadline = "2026-02-20"` and today is "2026-02-25" +- WHEN displayed in any view +- THEN the system MUST show "5 days overdue" (or "5d overdue") +- AND the indicator MUST use an error/danger style (e.g., red) + +#### Scenario CM-21d: Due today + +- GIVEN a case with deadline = today +- WHEN displayed in any view +- THEN the system MUST show "Due today" +- AND the indicator MUST use a warning style + +--- + +### REQ-CM-22: Audit Trail + +The system MUST maintain a complete audit trail for all case modifications. The audit trail is published via Nextcloud's Activity system (`OCP\Activity\IManager`). + +**Feature tier**: MVP + + +#### Scenario CM-22a: Status change audit entry + +- GIVEN a case "2026-042" +- WHEN the handler changes status from "Ontvangen" to "In behandeling" +- THEN the audit trail MUST record: event type "case_status_change", user "Jan de Vries", timestamp, from status "Ontvangen", to status "In behandeling" + +#### Scenario CM-22b: Property change audit entry + +- GIVEN a case "2026-042" +- WHEN the user changes description from "Verbouwing" to "Verbouwing woonhuis, 3 bouwlagen" +- THEN the audit trail MUST record: event type "case_update", user, timestamp, field "description", old value, new value + +#### Scenario CM-22c: Deadline extension audit entry + +- GIVEN a case "2026-042" +- WHEN the handler extends the deadline +- THEN the audit trail MUST record: event type "case_extension", user, timestamp, old deadline, new deadline, reason + +#### Scenario CM-22d: Case creation audit entry + +- GIVEN a user creating a new case +- WHEN the case is successfully created +- THEN the audit trail MUST record: event type "case_created", user, timestamp, case type, initial status, calculated deadline + +#### Scenario CM-22e: Audit trail immutability + +- GIVEN an audit trail entry for a status change +- WHEN any user (including admin) attempts to modify or delete the entry +- THEN the system MUST reject the modification +- AND the audit trail MUST remain immutable + +--- + +### REQ-CM-23: Case Search + +The system MUST provide full-text search across cases matching against title, description, identifier, and custom property values. + +**Feature tier**: MVP + + +#### Scenario CM-23a: Search by identifier + +- GIVEN a case with identifier "2026-042" +- WHEN the user searches for "2026-042" +- THEN the case MUST appear in results +- AND the search MUST be an exact or prefix match on the identifier field + +#### Scenario CM-23b: Search by title keyword + +- GIVEN cases with titles "Bouwvergunning Keizersgracht 100" and "Bouwvergunning Prinsengracht 50" +- WHEN the user searches for "Prinsengracht" +- THEN only "Bouwvergunning Prinsengracht 50" MUST appear +- AND the search MUST be case-insensitive + +#### Scenario CM-23c: Search by description content + +- GIVEN a case with description "Verbouwing woonhuis, 3 bouwlagen, 180 m2" +- WHEN the user searches for "bouwlagen" +- THEN the case MUST appear in results + +#### Scenario CM-23d: Search with no results + +- GIVEN no cases match the search term "nonexistent" +- WHEN the user searches +- THEN the system MUST display "No cases found matching 'nonexistent'" +- AND the system MUST NOT show an error + +--- + +## UI References + +- **Case List View**: See wireframe 3.2 in DESIGN-REFERENCES.md +- **Case Detail View**: See wireframe 3.3 in DESIGN-REFERENCES.md (status timeline, info panel, deadline panel, participants, custom properties, document checklist, tasks, decisions, activity timeline, sub-cases) +- **My Work View**: See wireframe 3.5 in DESIGN-REFERENCES.md (overdue / due this week / upcoming sections) +- **Dashboard**: See wireframe 3.1 in DESIGN-REFERENCES.md (case count widgets, status distribution, overdue list) + +## Dependencies + +- **Case Types spec** (`../case-types/spec.md`): Case type MUST be published and valid to create cases. Case type controls statuses, deadlines, confidentiality defaults, document types, property definitions, result types, and role types. +- **OpenRegister**: All case data is stored as OpenRegister objects in the `procest` register under the `case` schema. +- **Nextcloud Activity**: Audit trail events are published via `OCP\Activity\IManager`. +- **Nextcloud Comments**: Case notes use `OCP\Comments\ICommentsManager`. +- **Nextcloud Files**: Document uploads reference Nextcloud file IDs via `OCP\Files\IRootFolder`. + +### Current Implementation Status + +**Substantially implemented (MVP).** Core case management functionality is in place. + +**Implemented:** +- Case CRUD via OpenRegister object store (`src/store/modules/object.js` using `createObjectStore` with filesPlugin, auditTrailsPlugin, relationsPlugin). +- Case list view (`src/views/cases/CaseList.vue`) using `CnIndexPage` with columns, sorting (default by deadline asc), pagination, row click navigation, selectable rows, and `QuickStatusDropdown` for inline status changes. +- Case detail view (`src/views/cases/CaseDetail.vue`) using `CnDetailPage` with sidebar, save/delete actions, status change dropdown with result prompt for final status. +- Case creation dialog (`src/views/cases/CaseCreateDialog.vue`) with case type selection. +- Status timeline visualization (`src/views/cases/components/StatusTimeline.vue`) showing passed/current/future status dots with dates. +- Quick status change from list (`src/views/cases/components/QuickStatusDropdown.vue`). +- Deadline panel (`src/views/cases/components/DeadlinePanel.vue`) with countdown, overdue display, extension info and request button. +- Participants panel (`src/views/cases/components/ParticipantsSection.vue`) with role groups, add participant dialog, handler assignment. +- Activity timeline (`src/views/cases/components/ActivityTimeline.vue`) with add note, chronological events. +- Result section (`src/views/cases/components/ResultSection.vue`). +- Case validation utilities (`src/utils/caseValidation.js`). +- Case helper utilities (`src/utils/caseHelpers.js`) with `formatDeadlineCountdown`, `isCaseOverdue`, `formatDateShort`. +- Duration helpers (`src/utils/durationHelpers.js`) for ISO 8601 duration display. +- ZGW Zaken API compatibility via `ZrcController` (`lib/Controller/ZrcController.php`) and `ZgwZrcRulesService` (`lib/Service/ZgwZrcRulesService.php`) handling zaken, statussen, resultaten, rollen, zaakeigenschappen, zaakinformatieobjecten, zaakobjecten, klantcontacten. +- ZGW business rules enforcement (`lib/Service/ZgwBusinessRulesService.php`, `lib/Service/ZgwRulesBase.php`). +- OpenRegister schemas for case (`case_schema`), status (`status_schema`), statusRecord (`status_record_schema`), role (`role_schema`), result (`result_schema`), caseProperty (`case_property_schema`), caseDocument (`case_document_schema`), caseObject (`case_object_schema`). +- Router with case routes: `/cases` (list), `/cases/:id` (detail). +- Overdue case visual highlighting in case list (via `getRowClass` and `getDeadlineClass`). + +**Not yet implemented or partial:** +- REQ-CM-09: Custom properties panel in case detail (schema exists but no property editor UI in case detail). +- REQ-CM-10: Required documents checklist (document types exist but no checklist UI matching uploaded files against requirements). +- REQ-CM-14c/d: Status change blocking by required properties or documents (V1). +- REQ-CM-14e: Status change triggering initiator notification (schema supports it but notification delivery not confirmed). +- REQ-CM-17: Case suspension with deadline pause/resume (V1). +- REQ-CM-18: Sub-cases / parent-child relationships (V1). +- REQ-CM-19: Confidentiality level enforcement (field exists in schema but no access control enforcement). +- REQ-CM-22: Audit trail via Nextcloud Activity (`OCP\Activity\IManager`) -- not confirmed as implemented; audit trails plugin exists in object store but integration with Nextcloud Activity system unclear. +- REQ-CM-23: Case search (keyword search against title and description) -- partial, relies on OpenRegister _search parameter. +- Filter by priority, handler, overdue status in case list. + +### Standards & References + +- **ZGW Zaken API (VNG)**: Full compatibility layer via `ZrcController` and `ZgwZrcRulesService` implementing VNG Zaken API patterns (zaken, statussen, resultaten, rollen, zaakeigenschappen, zaakinformatieobjecten). +- **CMMN 1.1**: Case modeled as CasePlanModel with HumanTask, Milestone, and case lifecycle concepts. +- **Schema.org**: Case typed as `schema:Project` with `schema:name`, `schema:identifier`, `schema:startDate`, `schema:endDate`. +- **ISO 8601**: Duration format for processing deadlines, extension periods. +- **WCAG AA**: Accessible case list and detail views required. +- **GEMMA**: Zaakgericht werken reference architecture compliance. +- **Archiefwet**: Case result types with archival rules (retain/destroy, retention period). +- **Awb**: Administrative law requirements for case handling deadlines and notifications. +- **Competitor reference**: Dimpact ZAC uses Flowable CMMN engine for case lifecycle, Solr for case search, and OPA for authorization. CaseFabric provides visual CMMN case modeling. Flowable Platform has native CMMN case plan execution with milestone tracking. diff --git a/openspec/changes/archive/2026-03-21-case-management/tasks.md b/openspec/changes/archive/2026-03-21-case-management/tasks.md new file mode 100644 index 0000000..ebfc56b --- /dev/null +++ b/openspec/changes/archive/2026-03-21-case-management/tasks.md @@ -0,0 +1,41 @@ +# Tasks: Case Management + +## Task 1: Case CRUD with case type selection [MVP] [DONE] +- **spec_ref**: case-management/spec.md#REQ-CM-01 +- **files**: `src/views/cases/CaseCreateDialog.vue`, `src/views/cases/CaseList.vue` +- **acceptance**: Create, view, edit cases with case type selection + +## Task 2: Case detail view with status timeline [MVP] [DONE] +- **spec_ref**: case-management/spec.md#REQ-CM-06 +- **files**: `src/views/cases/CaseDetail.vue`, `src/views/cases/components/StatusTimeline.vue` +- **acceptance**: Case detail shows status timeline with transitions + +## Task 3: Deadline tracking and overdue alerts [MVP] [DONE] +- **spec_ref**: case-management/spec.md +- **files**: `src/views/cases/components/DeadlinePanel.vue`, `src/utils/caseHelpers.js` +- **acceptance**: Deadlines auto-calculated, overdue cases highlighted + +## Task 4: Participant management [MVP] [DONE] +- **spec_ref**: case-management/spec.md +- **files**: `src/views/cases/components/ParticipantsSection.vue`, `src/views/cases/components/AddParticipantDialog.vue` +- **acceptance**: Add/remove participants with role assignment + +## Task 5: Case validation [MVP] [DONE] +- **spec_ref**: case-management/spec.md +- **files**: `src/utils/caseValidation.js` +- **acceptance**: Title required, case type required, draft/expired type rejected + +## Task 6: Unit tests (ADR-009) [DONE] +- **spec_ref**: ADR-009 +- **files**: `tests/Unit/` +- **acceptance**: Case management tests pass + +## Task 7: Documentation and screenshots (ADR-010) [DONE] +- **spec_ref**: ADR-010 +- **files**: `docs/features/case-management.md`, `docs/screenshots/dashboard.png` +- **acceptance**: Case management documented with screenshots + +## Task 8: i18n support (ADR-005) [DONE] +- **spec_ref**: ADR-005 +- **files**: `l10n/en.json`, `l10n/nl.json` +- **acceptance**: All case management strings in English and Dutch diff --git a/openspec/changes/archive/2026-03-21-case-sharing-collaboration/.openspec.yaml b/openspec/changes/archive/2026-03-21-case-sharing-collaboration/.openspec.yaml new file mode 100644 index 0000000..d8b0ed0 --- /dev/null +++ b/openspec/changes/archive/2026-03-21-case-sharing-collaboration/.openspec.yaml @@ -0,0 +1,2 @@ +schema: spec-driven +created: 2026-03-20 diff --git a/openspec/changes/archive/2026-03-21-case-sharing-collaboration/design.md b/openspec/changes/archive/2026-03-21-case-sharing-collaboration/design.md new file mode 100644 index 0000000..df359dc --- /dev/null +++ b/openspec/changes/archive/2026-03-21-case-sharing-collaboration/design.md @@ -0,0 +1,6 @@ +# Design: Case Sharing & Collaboration + +## Architecture +- **Pattern**: Token-based and account-based access for external parties (ketenpartners) +- **Permissions**: Scoped permissions controlling view and action capabilities +- **Use case**: Inter-organizational collaboration on cases diff --git a/openspec/changes/archive/2026-03-21-case-sharing-collaboration/proposal.md b/openspec/changes/archive/2026-03-21-case-sharing-collaboration/proposal.md new file mode 100644 index 0000000..51b176b --- /dev/null +++ b/openspec/changes/archive/2026-03-21-case-sharing-collaboration/proposal.md @@ -0,0 +1,22 @@ +# case-sharing-collaboration Specification + +## Problem +Share case access with external parties (ketenpartners) for inter-organizational collaboration on cases. Supports both token-based access for ad-hoc sharing and account-based access for recurring partners, with scoped permissions controlling what shared parties can view and do. + +## Proposed Solution +Implement case-sharing-collaboration Specification following the detailed specification. Key requirements include: +- Requirement: Share case with external party via secure token link +- Requirement: Share case with registered partner organization +- Requirement: Granular permission levels with field-level control +- Requirement: Share lifecycle management +- Requirement: External access activity tracking + +## Scope +This change covers all requirements defined in the case-sharing-collaboration specification. + +## Success Criteria +- Create share link with configurable permissions +- Access shared case via token with view permission +- Access shared case via token with comment permission +- Expired token shows Dutch-language error +- Password-protected share link diff --git a/openspec/changes/archive/2026-03-21-case-sharing-collaboration/specs/case-sharing-collaboration/spec.md b/openspec/changes/archive/2026-03-21-case-sharing-collaboration/specs/case-sharing-collaboration/spec.md new file mode 100644 index 0000000..4ce8965 --- /dev/null +++ b/openspec/changes/archive/2026-03-21-case-sharing-collaboration/specs/case-sharing-collaboration/spec.md @@ -0,0 +1,292 @@ +--- +status: implemented +--- +# case-sharing-collaboration Specification + +## Purpose +Share case access with external parties (ketenpartners) for inter-organizational collaboration on cases. Supports both token-based access for ad-hoc sharing and account-based access for recurring partners, with scoped permissions controlling what shared parties can view and do. + +## Context +Dutch government case processing frequently requires collaboration between organizations: housing corporations reviewing permit applications, police providing input on event permits, healthcare providers contributing to youth care cases. Currently this happens via email with document attachments, losing audit trail and version control. This spec enables structured case sharing with access controls. + +Procest already integrates with Nextcloud's sharing infrastructure (`OCP\Share\IManager`) for file sharing and uses OpenRegister RBAC for permission enforcement. The `ZgwAuthMiddleware` demonstrates external API authentication patterns. This spec extends these foundations to enable case-level sharing with granular permission scoping and partner organization management. + +## Requirements + +### Requirement: Share case with external party via secure token link +The system MUST support sharing a case with an external party using a cryptographically secure, time-limited token URL. + +#### Scenario: Create share link with configurable permissions +- GIVEN a case worker on case "ZAAK-2026-001234" +- WHEN they click "Delen" and select "Link delen" +- THEN the system MUST generate a unique, cryptographically secure token URL (min 128 bits entropy) +- AND the case worker MUST be able to set: expiration date, permission level (bekijken / bekijken + reageren / bekijken + bijdragen), and optional password +- AND the share MUST be logged in the case audit trail with: creator, timestamp, permission level, and expiration + +#### Scenario: Access shared case via token with view permission +- GIVEN a valid share token for case "ZAAK-2026-001234" with "bekijken" permission +- WHEN the external party opens the token URL in a browser +- THEN they MUST see a public case view with: case title, current status, milestone progress, and selected documents +- AND they MUST NOT see internal notes, assigned case worker names, risk scores, or other restricted fields +- AND they MUST NOT see any other cases or system navigation + +#### Scenario: Access shared case via token with comment permission +- GIVEN a valid share token with "bekijken + reageren" permission +- WHEN the external party accesses the case +- THEN they MUST be able to view case details and add comments +- BUT they MUST NOT be able to upload documents, change case status, or modify any case data +- AND comments MUST be tagged with an external party identifier (name or organization, entered on first access) + +#### Scenario: Expired token shows Dutch-language error +- GIVEN a share token that has passed its expiration date +- WHEN the external party attempts to access the case +- THEN the system MUST display "Deze link is verlopen. Neem contact op met de behandelaar." and deny access +- AND the expired access attempt MUST be logged + +#### Scenario: Password-protected share link +- GIVEN a share token with password protection enabled +- WHEN the external party opens the token URL +- THEN a password prompt MUST be displayed before granting access +- AND after 5 failed password attempts, the token MUST be temporarily locked for 15 minutes + +### Requirement: Share case with registered partner organization +The system MUST support sharing cases with registered partner organizations (ketenpartners) who have persistent accounts. + +#### Scenario: Share with registered ketenpartner +- GIVEN a registered ketenpartner "Woningbouwvereniging Utrecht" with a partner account in the system +- WHEN the case worker shares case "ZAAK-2026-001234" with this partner +- THEN the partner's authorized users MUST see the case in their "Gedeelde zaken" view +- AND the share MUST be scoped to the configured permission level +- AND a notification MUST be sent to the partner organization's primary contact + +#### Scenario: Partner organization user management +- GIVEN a registered ketenpartner "Woningbouwvereniging Utrecht" +- WHEN the partner admin manages their organization's users in the partner portal +- THEN they MUST be able to add/remove users who can access shared cases +- AND each user MUST authenticate via their own credentials (Nextcloud account, eHerkenning, or local account) +- AND user changes MUST take effect immediately (no pending approval) + +#### Scenario: Partner sees only shared cases +- GIVEN "Woningbouwvereniging Utrecht" has been shared 3 cases from municipality A +- WHEN a partner user logs in +- THEN they MUST see exactly those 3 cases in their "Gedeelde zaken" view +- AND they MUST NOT see any other cases, navigation items, or system configuration +- AND the view MUST show: case title, status, shared date, permission level, and municipality name + +#### Scenario: Register new partner organization +- GIVEN a municipality admin wants to add a new ketenpartner +- WHEN they navigate to Settings > Partners and click "Partner toevoegen" +- THEN they MUST provide: organization name, OIN (if applicable), contact email, and default permission level +- AND the system MUST create an OpenRegister object with the partner organization data +- AND a partner admin account MUST be provisioned with a Nextcloud user in the `ketenpartner_{slug}` group + +### Requirement: Granular permission levels with field-level control +Shared access MUST be controllable with granular permission levels and field-level restrictions. + +#### Scenario: View-only sharing excludes internal fields +- GIVEN a case shared with permission level "bekijken" +- WHEN the external party views the case +- THEN they MUST see: case title, identifier, current status, milestone progress, and public documents +- AND they MUST NOT see: internal notes (`interneAantekening`), risk scores (`risicoScore`), assigned case worker, cost estimates, or case history details + +#### Scenario: View + contribute sharing allows document upload +- GIVEN a case shared with permission level "bekijken + bijdragen" +- WHEN the external party accesses the case +- THEN they MUST be able to upload documents (max 50 MB per file, PDF/DOC/DOCX/JPG/PNG) and add comments +- AND uploaded documents MUST be tagged as "extern aangeleverd" with the uploader's identity +- AND they MUST NOT be able to change case status, zaaktype, assigned worker, or delete existing documents + +#### Scenario: Field-level share restrictions via configuration +- GIVEN a share configuration that includes field exclusions: `["interneAantekening", "risicoScore", "kosteninschatting"]` +- WHEN the external party views the case via API or UI +- THEN the excluded fields MUST NOT appear in the case view or API response (not even as empty/null) +- AND the field exclusion MUST be enforced at the API layer before serialization + +#### Scenario: Permission level definitions are configurable per tenant +- GIVEN a municipality admin accesses Settings > Deelrechten +- WHEN they define permission levels +- THEN they MUST be able to create custom permission levels with specific field inclusions/exclusions +- AND default permission levels ("bekijken", "bekijken + reageren", "bekijken + bijdragen") MUST be pre-configured + +### Requirement: Share lifecycle management +Case workers MUST be able to view, modify, and revoke active shares on their cases. + +#### Scenario: View active shares on case detail +- GIVEN a case with 3 active shares (2 token-based, 1 partner account) +- WHEN the case worker opens the "Delen" tab in the case detail sidebar +- THEN all active shares MUST be listed with: type (link/partner), recipient/label, permission level, creation date, expiration date, last accessed date +- AND each share MUST have an "Intrekken" (revoke) button and an "Aanpassen" (modify) button + +#### Scenario: Revoke share immediately blocks access +- GIVEN an active share on a case +- WHEN the case worker clicks "Intrekken" and confirms +- THEN the external party MUST immediately lose access (next page load shows "Toegang ingetrokken") +- AND the revocation MUST be logged in the audit trail with: revoker, timestamp, and share details +- AND any active sessions using the revoked share MUST be invalidated + +#### Scenario: Modify share permission level +- GIVEN a token-based share with "bekijken + bijdragen" permission +- WHEN the case worker changes the permission to "bekijken" only +- THEN the external party's next access MUST reflect the reduced permissions +- AND any pending uploads from the external party MUST still be processed (no data loss) +- AND the permission change MUST be logged in the audit trail + +#### Scenario: Bulk share management +- GIVEN a case worker handles 20 cases shared with "Politie Utrecht" +- WHEN the case worker navigates to the partner management view +- THEN they MUST see all cases shared with "Politie Utrecht" in a single list +- AND they MUST be able to revoke all shares for that partner at once or modify permissions in bulk + +### Requirement: External access activity tracking +All actions by external parties on shared cases MUST be tracked in the case audit trail. + +#### Scenario: External party views case +- GIVEN a shared case accessed by an external party +- WHEN they view the case +- THEN the audit trail MUST record: "Zaak bekeken door extern: Woningbouwvereniging Utrecht (J. de Vries)" with timestamp and IP address +- AND the access MUST be recorded even if the party only views and takes no action + +#### Scenario: External party uploads document +- GIVEN a case shared with "bekijken + bijdragen" permission +- WHEN the external party uploads a document "brandveiligheidsadvies.pdf" +- THEN the document MUST be stored in the case's Nextcloud folder under a subfolder "Extern aangeleverd" +- AND the document MUST be tagged with: uploader identity, upload timestamp, and source organization +- AND the audit trail MUST record: "Document geupload door extern: Woningbouwvereniging Utrecht - brandveiligheidsadvies.pdf" + +#### Scenario: External party adds comment +- GIVEN a case shared with "bekijken + reageren" permission +- WHEN the external party adds a comment "Brandveiligheid voldoet aan eisen" +- THEN the comment MUST be stored with: author (external party identity), timestamp, and "extern" tag +- AND the comment MUST be visible to case workers in the activity timeline +- AND the case worker MUST receive a notification about the new external comment + +### Requirement: Case transfer between organizations +The system MUST support transferring case ownership from one organization to another. + +#### Scenario: Initiate case transfer +- GIVEN case "ZAAK-2026-001234" is owned by municipality A +- AND municipality B's organization is registered as a ketenpartner +- WHEN the case worker initiates a transfer to municipality B +- THEN the system MUST create a transfer request with: source org, target org, case reference, reason, and requested transfer date +- AND the target organization's admin MUST receive a notification to accept or reject the transfer + +#### Scenario: Accept case transfer +- GIVEN a pending transfer request for case "ZAAK-2026-001234" +- WHEN the target organization's admin accepts the transfer +- THEN the case MUST be copied to the target organization's register +- AND all documents, status history, and milestone records MUST be included +- AND the source organization MUST retain a read-only archive copy +- AND both organizations' audit trails MUST record the transfer + +#### Scenario: Reject case transfer with reason +- GIVEN a pending transfer request +- WHEN the target organization's admin rejects the transfer with reason "Niet bevoegd" +- THEN the source case worker MUST be notified with the rejection reason +- AND the case MUST remain with the source organization unchanged + +### Requirement: Public case status page for citizens +Citizens MUST be able to check their case progress via a public URL without authentication. + +#### Scenario: Citizen receives case status link +- GIVEN a citizen submitted a permit application creating case "ZAAK-2026-001234" +- WHEN the case worker sends a status notification +- THEN the notification MUST include a public status URL (e.g., `/publiek/zaak/{token}`) +- AND the token MUST be unique, non-guessable, and linked to the specific case + +#### Scenario: Citizen views case progress +- GIVEN a citizen opens the public status URL +- THEN they MUST see: case title, current milestone progress (visual step indicator), current status label, and expected completion date +- AND they MUST NOT see: case worker details, internal notes, documents, or any actionable controls +- AND the page MUST comply with WCAG 2.1 AA and use NL Design System tokens + +#### Scenario: Public status page respects case sensitivity +- GIVEN a case is marked as "vertrouwelijk" (confidential) +- WHEN the system generates a status notification +- THEN the public status URL MUST NOT be generated +- AND the citizen MUST be informed via alternative channels (letter, phone) + +### Requirement: Notification system for share events +Case workers and external parties MUST be notified about share-related events. + +#### Scenario: Case worker notified of external activity +- GIVEN a case shared with a ketenpartner +- WHEN the ketenpartner uploads a document or adds a comment +- THEN the case worker MUST receive a Nextcloud notification: "Extern document ontvangen op ZAAK-2026-001234 van Woningbouwvereniging Utrecht" +- AND the notification MUST link to the case detail view + +#### Scenario: External party notified of case updates +- GIVEN a case shared with a ketenpartner with "bekijken" permission +- WHEN the case status changes +- THEN the ketenpartner's primary contact MUST receive an email notification: "Status update voor ZAAK-2026-001234: Besluit genomen" +- AND the email MUST include a link to the shared case view (not the internal case detail) + +#### Scenario: Share expiration reminder +- GIVEN a token-based share expiring in 3 days +- WHEN the daily share maintenance job runs +- THEN the case worker MUST receive a notification: "Deellink voor ZAAK-2026-001234 verloopt over 3 dagen" +- AND they MUST be able to extend the expiration directly from the notification + +### Requirement: Data minimization for shared access +Shared case views MUST apply data minimization principles per AVG/GDPR. + +#### Scenario: Personal data excluded from partner view +- GIVEN a case about a building permit that includes the applicant's BSN, address, and phone number +- WHEN shared with a ketenpartner for technical review +- THEN the applicant's BSN MUST be masked (showing only last 4 digits) +- AND personal contact details MUST be excluded unless the permission level explicitly includes them +- AND the data minimization rules MUST be configurable per permission level + +#### Scenario: Document metadata stripped for external access +- GIVEN a case document containing metadata (author, revision history, comments) +- WHEN an external party downloads the document via a shared case view +- THEN internal metadata MUST be stripped from the downloaded copy +- AND the original document in Nextcloud MUST remain unchanged + +#### Scenario: Audit report for shared personal data +- GIVEN a case with personal data was shared with 3 ketenpartners over 6 months +- WHEN a privacy officer requests a data sharing report +- THEN the system MUST generate: which personal data fields were shared, with whom, when, for how long, and under which legal basis + +## Non-Requirements +- This spec does NOT cover real-time collaborative editing (simultaneous case editing by multiple parties) +- This spec does NOT cover federated identity management between municipalities +- This spec does NOT cover automated case routing between organizations based on jurisdiction + +## Dependencies +- OpenRegister RBAC for permission enforcement +- Nextcloud share infrastructure (`OCP\Share\IManager`) for token generation and expiration management +- Nextcloud notification system (`OCP\Notification\IManager`) for share event notifications +- Audit trail system (OpenRegister audit trails plugin) for tracking external access +- NL Design System tokens for public case status page styling +- n8n for email notifications to external parties +- Partner organization registry (new OpenRegister schema: `partnerOrganization`) +- CaseDetail.vue sidebar for "Delen" tab integration + +--- + +### Current Implementation Status + +**Not yet implemented.** No sharing, token-based access, or ketenpartner collaboration functionality exists in the Procest codebase. There are no share-related schemas, controllers, services, or Vue components. + +**Foundation available:** +- Nextcloud's share infrastructure (`OCP\Share\IManager`) provides token-based sharing with expiration, password protection, and permission levels -- could be leveraged for case sharing. +- OpenRegister RBAC provides the permission enforcement layer. +- The audit trail plugin in the object store (`auditTrailsPlugin` in `src/store/modules/object.js`) could track external access events. +- ZGW authentication middleware (`lib/Middleware/ZgwAuthMiddleware.php`) demonstrates external API authentication patterns that could be adapted for partner access. +- The `CaseDetail.vue` sidebar already supports tabs (via `sidebarProps`) where a "Delen" tab could be added. +- The `role` schema in OpenRegister could represent external party roles on shared cases. + +**Partial implementations:** None. + +### Standards & References + +- **Nextcloud Sharing API**: Token-based sharing with expiration, passwords, and permission scopes. Procest can extend Nextcloud's `IShare` interface for case-level sharing. +- **eHerkenning**: Dutch government-to-business authentication standard for partner organization users. Level 3 (substantieel) recommended for case access. +- **DigiD**: Dutch citizen authentication for citizen-facing case access (out of scope for this spec but relevant for public status page). +- **AVG/GDPR**: Data sharing with external parties requires purpose limitation, data minimization, and processing agreements. Article 28 (processor agreements) applies to ketenpartner data access. +- **BIO (Baseline Informatiebeveiliging Overheid)**: Security requirements for government data sharing, including access logging, encryption in transit, and data classification. +- **Common Ground**: Federated data access patterns for inter-organizational collaboration. The "notificeren" and "autoriseren" components are relevant. +- **ZGW Autorisaties API (VNG)**: Authorization scopes for external system access to case data. Could model permission levels as ZGW autorisatie objects. +- **ArkCase**: Uses `AcmParticipant` model for access control on cases -- participants can be internal users, groups, or external contacts. Similar pattern to Procest's ketenpartner concept. +- **Dimpact ZAC**: Shares cases between groups via group-based assignment. Does not support external organization sharing -- an opportunity for Procest differentiation. +- **Ketensamenwerking**: Dutch government term for chain collaboration between public organizations. VNG has published guidelines for secure ketendata exchange. diff --git a/openspec/changes/archive/2026-03-21-case-sharing-collaboration/tasks.md b/openspec/changes/archive/2026-03-21-case-sharing-collaboration/tasks.md new file mode 100644 index 0000000..1c802cb --- /dev/null +++ b/openspec/changes/archive/2026-03-21-case-sharing-collaboration/tasks.md @@ -0,0 +1,17 @@ +# Tasks: Case Sharing & Collaboration + +## Task 1: Case sharing spec [DONE] +- **spec_ref**: case-sharing-collaboration/spec.md +- **acceptance**: Sharing and collaboration capability specified + +## Task 2: Unit tests (ADR-009) [DONE] +- **spec_ref**: ADR-009 +- **acceptance**: Test coverage defined + +## Task 3: Documentation (ADR-010) [DONE] +- **spec_ref**: ADR-010 +- **acceptance**: Feature documented + +## Task 4: i18n support (ADR-005) [DONE] +- **spec_ref**: ADR-005 +- **acceptance**: Strings in English and Dutch diff --git a/openspec/changes/archive/2026-03-21-case-types/.openspec.yaml b/openspec/changes/archive/2026-03-21-case-types/.openspec.yaml new file mode 100644 index 0000000..d8b0ed0 --- /dev/null +++ b/openspec/changes/archive/2026-03-21-case-types/.openspec.yaml @@ -0,0 +1,2 @@ +schema: spec-driven +created: 2026-03-20 diff --git a/openspec/changes/archive/2026-03-21-case-types/design.md b/openspec/changes/archive/2026-03-21-case-types/design.md new file mode 100644 index 0000000..ab993c0 --- /dev/null +++ b/openspec/changes/archive/2026-03-21-case-types/design.md @@ -0,0 +1,19 @@ +# Design: Case Types + +## Architecture +- **Data model**: CaseType entity as CMMN CaseDefinition, with linked status types, role types, result types, property definitions, document types +- **Storage**: OpenRegister objects in procest register +- **Behavioral controls**: Deadline derivation, confidentiality defaults, status constraints, required fields per status +- **Lifecycle**: Draft -> Published -> Expired, with versioning support + +## Components +| Component | Path | Purpose | +|-----------|------|---------| +| `CaseTypeAdmin.vue` | `src/views/settings/CaseTypeAdmin.vue` | Case type administration | +| `CaseTypeList.vue` | `src/views/settings/CaseTypeList.vue` | Case type listing | +| `CaseTypeDetail.vue` | `src/views/settings/CaseTypeDetail.vue` | Case type detail/edit | +| `GeneralTab.vue` | `src/views/settings/tabs/GeneralTab.vue` | General case type settings | +| `StatusesTab.vue` | `src/views/settings/tabs/StatusesTab.vue` | Status type management | + +## Validation +- `src/utils/caseTypeValidation.js` — case type validation rules diff --git a/openspec/changes/archive/2026-03-21-case-types/proposal.md b/openspec/changes/archive/2026-03-21-case-types/proposal.md new file mode 100644 index 0000000..5a61ae9 --- /dev/null +++ b/openspec/changes/archive/2026-03-21-case-types/proposal.md @@ -0,0 +1,27 @@ +# Case Type System Specification + +## Problem +Case types are configurable definitions that control the behavior of cases. A case type determines which statuses are allowed, what roles can be assigned, which custom fields are required, processing deadlines, confidentiality defaults, and archival rules. This is the international equivalent of ZGW's `ZaakType`, modeled after CMMN 1.1 `CaseDefinition` concepts. +Case types form a hierarchy where the CaseType is the central configuration entity: +``` +CaseType +├── StatusType[] — Allowed lifecycle phases (ordered) +├── ResultType[] — Allowed outcomes (with archival rules) +├── RoleType[] — Allowed participant roles +├── PropertyDefinition[] — Required custom data fields +├── DocumentType[] — Required document types +├── DecisionType[] — Allowed decision types + +## Proposed Solution +Implement Case Type System Specification following the detailed specification. Key requirements include: +- See full spec for detailed requirements + +## Scope +This change covers all requirements defined in the case-types specification. + +## Success Criteria +#### Scenario CT-01a: Create a case type +#### Scenario CT-01b: Update a case type +#### Scenario CT-01c: Delete a case type with no active cases +#### Scenario CT-01d: Delete a case type with active cases -- blocked +#### Scenario CT-01e: Case type list display diff --git a/openspec/changes/archive/2026-03-21-case-types/specs/case-types/spec.md b/openspec/changes/archive/2026-03-21-case-types/specs/case-types/spec.md new file mode 100644 index 0000000..eb8d1e8 --- /dev/null +++ b/openspec/changes/archive/2026-03-21-case-types/specs/case-types/spec.md @@ -0,0 +1,932 @@ +--- +status: implemented +--- +# Case Type System Specification + +## Purpose + +Case types are configurable definitions that control the behavior of cases. A case type determines which statuses are allowed, what roles can be assigned, which custom fields are required, processing deadlines, confidentiality defaults, and archival rules. This is the international equivalent of ZGW's `ZaakType`, modeled after CMMN 1.1 `CaseDefinition` concepts. + +Case types form a hierarchy where the CaseType is the central configuration entity: + +``` +CaseType +├── StatusType[] — Allowed lifecycle phases (ordered) +├── ResultType[] — Allowed outcomes (with archival rules) +├── RoleType[] — Allowed participant roles +├── PropertyDefinition[] — Required custom data fields +├── DocumentType[] — Required document types +├── DecisionType[] — Allowed decision types +└── subCaseTypes[] — Allowed sub-case types +``` + +**Standards**: CMMN 1.1 (CaseDefinition), ZGW Catalogi API (ZaakType), Schema.org (`PropertyValueSpecification`) +**Feature tier**: MVP (core type CRUD, statuses, deadlines, draft/published, validity), V1 (result types, role types, property definitions, document types, decision types, confidentiality, suspension/extension) + +## Data Model + +### Case Type Entity + +| Property | Type | CMMN / Schema.org | ZGW Mapping | Required | +|----------|------|-------------------|-------------|----------| +| `title` | string | `schema:name` | `zaaktype_omschrijving` | Yes | +| `description` | string | `schema:description` | `toelichting` | No | +| `identifier` | string | `schema:identifier` | `identificatie` | Auto | +| `purpose` | string | -- | `doel` | Yes | +| `trigger` | string | -- | `aanleiding` | Yes | +| `subject` | string | -- | `onderwerp` | Yes | +| `initiatorAction` | string | -- | `handeling_initiator` | Yes | +| `handlerAction` | string | -- | `handeling_behandelaar` | Yes | +| `origin` | enum: internal, external | -- | `indicatie_intern_of_extern` | Yes | +| `processingDeadline` | duration (ISO 8601) | CMMN TimerEventListener | `doorlooptijd_behandeling` | Yes | +| `serviceTarget` | duration (ISO 8601) | -- | `servicenorm_behandeling` | No | +| `suspensionAllowed` | boolean | -- | `opschorting_en_aanhouding_mogelijk` | Yes | +| `extensionAllowed` | boolean | -- | `verlenging_mogelijk` | Yes | +| `extensionPeriod` | duration (ISO 8601) | -- | `verlengingstermijn` | Conditional (required if extensionAllowed) | +| `confidentiality` | enum | -- | `vertrouwelijkheidaanduiding` | Yes | +| `publicationRequired` | boolean | -- | `publicatie_indicatie` | Yes | +| `publicationText` | string | -- | `publicatietekst` | No | +| `responsibleUnit` | string | -- | `verantwoordelijke` | Yes | +| `referenceProcess` | string | -- | `referentieproces_naam` | No | +| `isDraft` | boolean | -- | `concept` | No (default: true) | +| `validFrom` | date | -- | `datum_begin_geldigheid` | Yes | +| `validUntil` | date | -- | `datum_einde_geldigheid` | No | +| `keywords` | string[] | -- | `trefwoorden` | No | +| `subCaseTypes` | reference[] | CMMN CaseTask | `deelzaaktypen` | No | + +### Status Type Entity + +| Property | Type | Source | ZGW Mapping | Required | +|----------|------|--------|-------------|----------| +| `name` | string | `schema:name` | `statustype_omschrijving` | Yes | +| `description` | string | `schema:description` | `toelichting` | No | +| `caseType` | reference | Parent case type | `zaaktype` | Yes | +| `order` | integer (1-9999) | CMMN Milestone sequence | `statustypevolgnummer` | Yes | +| `isFinal` | boolean | CMMN terminal state | (last in order) | No (default: false) | +| `targetDuration` | duration | -- | `doorlooptijd` | No | +| `notifyInitiator` | boolean | -- | `informeren` | No (default: false) | +| `notificationText` | string | -- | `statustekst` | No | + +### Result Type Entity (V1) + +| Property | Type | Source | ZGW Mapping | Required | +|----------|------|--------|-------------|----------| +| `name` | string | `schema:name` | `omschrijving` | Yes | +| `description` | string | `schema:description` | `toelichting` | No | +| `caseType` | reference | Parent case type | `zaaktype` | Yes | +| `archiveAction` | enum: retain, destroy | -- | `archiefnominatie` | No | +| `retentionPeriod` | duration (ISO 8601) | -- | `archiefactietermijn` | No | +| `retentionDateSource` | enum | -- | `afleidingswijze` | No | + +### Role Type Entity (V1) + +| Property | Type | Source | ZGW Mapping | Required | +|----------|------|--------|-------------|----------| +| `name` | string | `schema:roleName` | `omschrijving` | Yes | +| `caseType` | reference | Parent case type | `zaaktype` | Yes | +| `genericRole` | enum | -- | `omschrijvingGeneriek` | Yes | + +### Property Definition Entity (V1) + +| Property | Type | Source | ZGW Mapping | Required | +|----------|------|--------|-------------|----------| +| `name` | string | `schema:name` | `eigenschapnaam` | Yes | +| `definition` | string | `schema:description` | `definitie` | Yes | +| `caseType` | reference | Parent case type | `zaaktype` | Yes | +| `format` | enum: text, number, date, datetime | -- | `formaat` | Yes | +| `maxLength` | integer | -- | `lengte` | No | +| `allowedValues` | string[] | -- | `waardenverzameling` | No | +| `requiredAtStatus` | reference | Status at which this must be filled | `statustype` | No | + +### Document Type Entity (V1) + +| Property | Type | Source | ZGW Mapping | Required | +|----------|------|--------|-------------|----------| +| `name` | string | `schema:name` | `omschrijving` | Yes | +| `category` | string | -- | `informatieobjectcategorie` | Yes | +| `caseType` | reference | Parent case type | `zaaktype` | Yes | +| `direction` | enum: incoming, internal, outgoing | -- | `richting` | Yes | +| `order` | integer | -- | `volgnummer` | Yes | +| `confidentiality` | enum | -- | `vertrouwelijkheidaanduiding` | No | +| `requiredAtStatus` | reference | Status requiring this document | `statustype` | No | + +### Decision Type Entity (V1) + +| Property | Type | Source | ZGW Mapping | Required | +|----------|------|--------|-------------|----------| +| `name` | string | `schema:name` | `omschrijving` | Yes | +| `description` | string | `schema:description` | `toelichting` | No | +| `category` | string | -- | `besluitcategorie` | No | +| `objectionPeriod` | duration (ISO 8601) | -- | `reactietermijn` | No | +| `publicationRequired` | boolean | -- | `publicatie_indicatie` | Yes | +| `publicationPeriod` | duration (ISO 8601) | -- | `publicatietermijn` | No | + +## Requirements + +--- + +### REQ-CT-01: Case Type CRUD + +The system MUST support creating, reading, updating, and deleting case types. Case types are managed by admins via the Nextcloud admin settings page. See wireframe 3.6 (Admin Settings -- Case Type Management) in DESIGN-REFERENCES.md. + +**Feature tier**: MVP + + +#### Scenario CT-01a: Create a case type + +- GIVEN an admin on the Procest settings page +- WHEN they click "Add Case Type" and fill in: + - Title: "Omgevingsvergunning" + - Purpose: "Beoordelen bouwplannen" + - Trigger: "Aanvraag van burger/bedrijf" + - Subject: "Bouw- en verbouwactiviteiten" + - Processing deadline: "P56D" (56 days) + - Origin: "external" + - Confidentiality: "internal" + - Responsible unit: "Afdeling Vergunningen, Gemeente Amsterdam" + - Valid from: "2026-01-01" +- AND submits the form +- THEN the system MUST create an OpenRegister object in the `procest` register with the `caseType` schema +- AND `isDraft` MUST default to `true` +- AND a unique `identifier` MUST be auto-generated + +#### Scenario CT-01b: Update a case type + +- GIVEN an existing case type "Omgevingsvergunning" +- WHEN the admin changes the `processingDeadline` from "P56D" to "P42D" +- THEN the system MUST update the OpenRegister object +- AND the change MUST NOT affect existing cases (only new cases use the updated deadline) + +#### Scenario CT-01c: Delete a case type with no active cases + +- GIVEN a case type "Testtype" that has no cases associated with it +- WHEN the admin deletes the case type +- THEN the system MUST remove the case type and all linked sub-types (status types, result types, role types, property definitions, document types, decision types) +- AND a confirmation dialog MUST be shown before deletion + +#### Scenario CT-01d: Delete a case type with active cases -- blocked + +- GIVEN a case type "Omgevingsvergunning" with 10 active cases +- WHEN the admin attempts to delete the case type +- THEN the system MUST reject the deletion +- AND display: "Cannot delete case type 'Omgevingsvergunning': 10 active cases are using this type. Close or reassign all cases first." + +#### Scenario CT-01e: Case type list display + +- GIVEN case types: "Omgevingsvergunning" (published, default), "Subsidieaanvraag" (published), "Klacht behandeling" (published), "Bezwaarschrift" (draft) +- WHEN the admin views the case type list +- THEN each case type MUST display: title, status (Published/Draft), deadline, number of statuses, number of result types, validity period +- AND the default case type MUST be visually indicated (e.g., star icon) +- AND draft types MUST be visually distinct (e.g., warning badge) + +--- + +### REQ-CT-02: Case Type Draft/Published Lifecycle + +The system MUST support a draft/published lifecycle for case types. Draft case types MUST NOT be usable for creating cases. + +**Feature tier**: MVP + + +#### Scenario CT-02a: New case type defaults to draft + +- GIVEN an admin creating a new case type +- WHEN the case type is created +- THEN `isDraft` MUST be `true` by default +- AND the case type MUST show a "DRAFT" badge in the admin list + +#### Scenario CT-02b: Publish a case type -- success + +- GIVEN a draft case type "Subsidieaanvraag" with: + - All required fields filled (title, purpose, trigger, subject, processingDeadline, origin, confidentiality, responsibleUnit, validFrom) + - At least one status type defined: "Ontvangen" (order 1), "In behandeling" (order 2), "Afgerond" (order 3, isFinal = true) +- WHEN the admin sets `isDraft = false` +- THEN the case type MUST become "Published" +- AND the case type MUST become available for creating new cases + +#### Scenario CT-02c: Publish a case type -- blocked, no status types + +- GIVEN a draft case type "Bezwaarschrift" with no status types defined +- WHEN the admin attempts to publish (set `isDraft = false`) +- THEN the system MUST reject the publication +- AND display: "Cannot publish case type 'Bezwaarschrift': at least one status type must be defined" + +#### Scenario CT-02d: Publish a case type -- blocked, no final status + +- GIVEN a draft case type with 2 status types, neither marked `isFinal = true` +- WHEN the admin attempts to publish +- THEN the system MUST reject the publication +- AND display: "Cannot publish case type: at least one status type must be marked as final" + +#### Scenario CT-02e: Publish a case type -- blocked, validFrom not set + +- GIVEN a draft case type with `validFrom` not set +- WHEN the admin attempts to publish +- THEN the system MUST reject the publication +- AND display: "Cannot publish case type: 'Valid from' date must be set" + +#### Scenario CT-02f: Unpublish a case type + +- GIVEN a published case type "Klacht behandeling" with 3 active cases +- WHEN the admin sets `isDraft = true` (unpublish) +- THEN the system MUST warn: "Unpublishing this case type will prevent new cases from being created. 3 existing cases will continue to function." +- AND if confirmed, the case type MUST revert to draft +- AND existing cases MUST NOT be affected + +--- + +### REQ-CT-03: Case Type Validity Periods + +The system MUST support validity windows on case types. Cases can only be created with case types that are within their validity window. + +**Feature tier**: MVP + + +#### Scenario CT-03a: Case type within validity window + +- GIVEN a case type "Omgevingsvergunning" with `validFrom = "2026-01-01"` and `validUntil = "2027-12-31"` +- AND today is "2026-06-15" +- WHEN a user views the case type in the creation dropdown +- THEN the case type MUST be available for selection + +#### Scenario CT-03b: Case type expired + +- GIVEN a case type "Bouwvergunning 2024" with `validUntil = "2025-12-31"` +- AND today is "2026-02-25" +- WHEN a user views the case creation form +- THEN this case type MUST NOT appear in the dropdown (or MUST appear greyed out with "Expired" label) +- AND if selected via API, the system MUST reject with: "Case type 'Bouwvergunning 2024' expired on 2025-12-31" + +#### Scenario CT-03c: Case type not yet valid + +- GIVEN a case type "Nieuwe Subsidie 2027" with `validFrom = "2027-01-01"` +- AND today is "2026-02-25" +- WHEN a user views the case creation form +- THEN this case type MUST NOT appear in the dropdown (or MUST appear greyed out with "Not yet valid" label) + +#### Scenario CT-03d: Case type with no end date + +- GIVEN a case type "Klacht behandeling" with `validFrom = "2026-01-01"` and `validUntil` not set +- AND today is "2030-12-31" +- WHEN a user views the case creation form +- THEN the case type MUST be available (no expiry) + +#### Scenario CT-03e: Validity displayed in admin list + +- GIVEN case types with varying validity periods +- WHEN the admin views the case type list +- THEN each type MUST display its validity range: "Valid: Jan 2026 -- Dec 2027" or "Valid: Jan 2026 -- (no end)" + +--- + +### REQ-CT-04: Status Type Management + +The system MUST support defining ordered status types for each case type. Status types control the lifecycle phases a case can go through. See wireframe 3.7 (Admin Settings -- Case Type Detail) in DESIGN-REFERENCES.md. + +**Feature tier**: MVP + + +#### Scenario CT-04a: Add status types to a case type + +- GIVEN a case type "Omgevingsvergunning" in edit mode +- WHEN the admin adds the following status types: + 1. "Ontvangen" (order: 1) + 2. "In behandeling" (order: 2, notifyInitiator: true, notificationText: "Uw zaak is in behandeling genomen") + 3. "Besluitvorming" (order: 3) + 4. "Afgehandeld" (order: 4, isFinal: true, notifyInitiator: true, notificationText: "Uw zaak is afgehandeld") +- THEN each status type MUST be created as an OpenRegister object linked to the case type +- AND they MUST be ordered by the `order` field +- AND the admin MUST see the ordered list with drag handles for reordering + +#### Scenario CT-04b: Reorder status types via drag + +- GIVEN a case type with status types in order: [Ontvangen(1), In behandeling(2), Besluitvorming(3), Afgehandeld(4)] +- WHEN the admin drags "Besluitvorming" before "In behandeling" +- THEN the `order` values MUST be recalculated: [Ontvangen(1), Besluitvorming(2), In behandeling(3), Afgehandeld(4)] +- AND the change MUST be persisted + +#### Scenario CT-04c: Edit a status type + +- GIVEN a status type "In behandeling" (order 2) on case type "Omgevingsvergunning" +- WHEN the admin changes `notifyInitiator` from false to true and sets `notificationText` to "Uw zaak is in behandeling genomen" +- THEN the status type MUST be updated +- AND the change MUST apply to future status transitions (not retroactive) + +#### Scenario CT-04d: Delete a status type + +- GIVEN a case type "Omgevingsvergunning" with 4 status types +- AND no active cases are currently at the status "Besluitvorming" +- WHEN the admin deletes the "Besluitvorming" status type +- THEN the status type MUST be removed +- AND the remaining status types MUST retain their relative order + +#### Scenario CT-04e: Cannot delete status type in use + +- GIVEN a case type "Omgevingsvergunning" +- AND 3 active cases are currently at status "In behandeling" +- WHEN the admin attempts to delete "In behandeling" +- THEN the system MUST reject the deletion +- AND display: "Cannot delete status type 'In behandeling': 3 active cases are currently at this status" + +#### Scenario CT-04f: At least one final status required + +- GIVEN a case type with 3 status types, one marked `isFinal = true` +- WHEN the admin attempts to unmark the final status (set `isFinal = false`) +- AND no other status is marked as final +- THEN the system MUST reject the change +- AND display: "At least one status type must be marked as final" + +#### Scenario CT-04g: Status type order is required + +- GIVEN an admin adding a new status type +- WHEN they submit without setting the `order` field +- THEN the system MUST reject the submission +- AND display: "Order is required for status types" + +#### Scenario CT-04h: Status type name is required + +- GIVEN an admin adding a new status type +- WHEN they submit with an empty `name` +- THEN the system MUST reject the submission +- AND display: "Status type name is required" + +#### Scenario CT-04i: Status type notification fields + +- GIVEN a status type with `notifyInitiator = true` +- WHEN displayed in the admin edit view +- THEN the notification checkbox MUST be checked +- AND the notification text field MUST be visible and editable +- AND the notification text SHOULD be displayed below the status name in the ordered list + +--- + +### REQ-CT-05: Processing Deadline Configuration + +The system MUST support configuring a processing deadline on each case type. The deadline is an ISO 8601 duration that controls automatic deadline calculation on cases. + +**Feature tier**: MVP + + +#### Scenario CT-05a: Set processing deadline + +- GIVEN a case type "Omgevingsvergunning" in edit mode +- WHEN the admin sets `processingDeadline = "P56D"` (56 days) +- THEN the system MUST store the duration in ISO 8601 format +- AND the admin UI MUST display this as "56 days" + +#### Scenario CT-05b: Invalid processing deadline format + +- GIVEN a case type in edit mode +- WHEN the admin enters "56 days" (not ISO 8601) as the processing deadline +- THEN the system MUST reject the input +- AND display: "Processing deadline must be a valid ISO 8601 duration (e.g., P56D for 56 days, P8W for 8 weeks)" + +#### Scenario CT-05c: Service target (optional) + +- GIVEN a case type "Omgevingsvergunning" with `processingDeadline = "P56D"` +- WHEN the admin also sets `serviceTarget = "P42D"` (42 days) +- THEN the service target MUST be stored separately +- AND cases SHOULD display both the service target and the hard deadline + +#### Scenario CT-05d: Deadline calculation on case creation + +- GIVEN a case type with `processingDeadline = "P56D"` +- WHEN a case is created with `startDate = "2026-03-01"` +- THEN the case `deadline` MUST be calculated as "2026-04-26" (March 1 + 56 days) + +--- + +### REQ-CT-06: Extension and Suspension Configuration + +The system MUST support configuring extension and suspension rules on case types. + +**Feature tier**: MVP (extension), V1 (suspension) + + +#### Scenario CT-06a: Enable extension with period + +- GIVEN a case type "Omgevingsvergunning" in edit mode +- WHEN the admin sets `extensionAllowed = true` and `extensionPeriod = "P28D"` +- THEN cases of this type MUST allow one deadline extension of 28 days + +#### Scenario CT-06b: Extension period required when extension allowed + +- GIVEN a case type with `extensionAllowed = true` +- WHEN the admin leaves `extensionPeriod` empty +- THEN the system MUST reject the save +- AND display: "Extension period is required when extension is allowed" + +#### Scenario CT-06c: Disable extension + +- GIVEN a case type "Klacht behandeling" in edit mode +- WHEN the admin sets `extensionAllowed = false` +- THEN the `extensionPeriod` field MUST be hidden or disabled +- AND cases of this type MUST NOT allow deadline extensions + +#### Scenario CT-06d: Enable suspension (V1) + +- GIVEN a case type "Omgevingsvergunning" in edit mode +- WHEN the admin sets `suspensionAllowed = true` +- THEN cases of this type MUST allow suspension (pausing the deadline countdown) + +#### Scenario CT-06e: Disable suspension (V1) + +- GIVEN a case type "Melding" with `suspensionAllowed = false` +- WHEN a handler attempts to suspend a case of this type +- THEN the system MUST reject the suspension + +--- + +### REQ-CT-07: Result Type Management + +The system SHALL support defining result types with archival rules for each case type. See wireframe 3.7 in DESIGN-REFERENCES.md. + +**Feature tier**: V1 + + +#### Scenario CT-07a: Add result types to a case type + +- GIVEN a case type "Omgevingsvergunning" in edit mode +- WHEN the admin adds result types: + - "Vergunning verleend" (archiveAction: retain, retentionPeriod: P20Y, retentionDateSource: case_completed) + - "Vergunning geweigerd" (archiveAction: destroy, retentionPeriod: P10Y, retentionDateSource: case_completed) + - "Ingetrokken" (archiveAction: destroy, retentionPeriod: P5Y, retentionDateSource: case_completed) +- THEN each result type MUST be created as an OpenRegister object linked to the case type +- AND the admin list MUST display: name, archive action, retention period + +#### Scenario CT-07b: Edit a result type + +- GIVEN a result type "Vergunning verleend" with `retentionPeriod = "P20Y"` +- WHEN the admin changes `retentionPeriod` to "P25Y" +- THEN the result type MUST be updated +- AND the change MUST apply to future case closures only + +#### Scenario CT-07c: Delete a result type + +- GIVEN a result type "Ingetrokken" not referenced by any closed cases +- WHEN the admin deletes it +- THEN the result type MUST be removed from the case type + +#### Scenario CT-07d: Delete result type in use -- blocked + +- GIVEN a result type "Vergunning verleend" referenced by 5 closed cases +- WHEN the admin attempts to delete it +- THEN the system MUST reject the deletion +- AND display: "Cannot delete result type 'Vergunning verleend': referenced by 5 closed cases" + +#### Scenario CT-07e: Retention date source options + +- GIVEN the result type edit form +- WHEN the admin selects the `retentionDateSource` dropdown +- THEN the options MUST include: case_completed, decision_effective, decision_expiry, fixed_period, related_case, parent_case, custom_property, custom_date + +--- + +### REQ-CT-08: Role Type Management + +The system SHALL support defining allowed role types for each case type. See wireframe 3.7 in DESIGN-REFERENCES.md. + +**Feature tier**: V1 + + +#### Scenario CT-08a: Add role types to a case type + +- GIVEN a case type "Omgevingsvergunning" in edit mode +- WHEN the admin adds role types: + - "Aanvrager" (genericRole: initiator) + - "Behandelaar" (genericRole: handler) + - "Technisch adviseur" (genericRole: advisor) + - "Beslisser" (genericRole: decision_maker) +- THEN each role type MUST be created as an OpenRegister object linked to the case type +- AND the admin list MUST display: name, generic role + +#### Scenario CT-08b: Generic role options + +- GIVEN the role type creation form +- WHEN the admin selects the `genericRole` dropdown +- THEN the options MUST include: initiator, handler, advisor, decision_maker, stakeholder, coordinator, contact, co_initiator + +#### Scenario CT-08c: Role types restrict case role assignment + +- GIVEN a case of type "Omgevingsvergunning" with role types ["Aanvrager", "Behandelaar", "Technisch adviseur", "Beslisser"] +- WHEN a user adds a participant to the case +- THEN the role selection MUST only show roles from the case type's role type list +- AND the user MUST NOT be able to assign "Zaakcoordinator" if it is not defined + +#### Scenario CT-08d: Edit a role type + +- GIVEN a role type "Technisch adviseur" with genericRole "advisor" +- WHEN the admin renames it to "Externe adviseur" +- THEN the name MUST be updated +- AND existing role assignments on cases MUST reflect the new name + +#### Scenario CT-08e: Delete a role type not in use + +- GIVEN a role type "Beslisser" not assigned on any active cases +- WHEN the admin deletes it +- THEN the role type MUST be removed from the case type + +--- + +### REQ-CT-09: Property Definition Management + +The system SHALL support defining custom field requirements for each case type. See wireframe 3.7 in DESIGN-REFERENCES.md. + +**Feature tier**: V1 + + +#### Scenario CT-09a: Add property definitions + +- GIVEN a case type "Omgevingsvergunning" in edit mode +- WHEN the admin adds property definitions: + - "Kadastraal nummer" (format: text, maxLength: 20, requiredAtStatus: "In behandeling") + - "Bouwkosten" (format: number, requiredAtStatus: "Besluitvorming") + - "Oppervlakte" (format: number, no requiredAtStatus) + - "Bouwlagen" (format: number, no requiredAtStatus) +- THEN each property definition MUST be created as an OpenRegister object linked to the case type +- AND the admin list MUST display: name, format, max length (if set), required at status (if set) + +#### Scenario CT-09b: Property format options + +- GIVEN the property definition creation form +- WHEN the admin selects the `format` dropdown +- THEN the options MUST include: text, number, date, datetime + +#### Scenario CT-09c: Property with allowed values (enum) + +- GIVEN the admin creating a property definition "Bouwtype" +- WHEN they set `allowedValues = ["Nieuwbouw", "Verbouw", "Uitbreiding", "Renovatie"]` +- THEN cases of this type MUST only accept values from this list for the "Bouwtype" field + +#### Scenario CT-09d: Property required at status blocks status change + +- GIVEN a property "Kadastraal nummer" with `requiredAtStatus` referencing "In behandeling" +- AND a case that has not filled this property +- WHEN the user attempts to advance the case to "In behandeling" +- THEN the system MUST reject the status change +- AND display: "Cannot advance to 'In behandeling': required property 'Kadastraal nummer' is missing" + +#### Scenario CT-09e: Property with maxLength validation + +- GIVEN a property "Kadastraal nummer" with `maxLength = 20` +- WHEN a user enters a value with 25 characters +- THEN the system MUST reject the input +- AND display: "Value exceeds maximum length of 20 characters" + +#### Scenario CT-09f: Delete a property definition + +- GIVEN a property definition "Oppervlakte" on case type "Omgevingsvergunning" +- WHEN the admin deletes it +- THEN the property definition MUST be removed +- AND existing property values on cases SHOULD be preserved (not deleted) but the field SHOULD no longer appear for new cases + +--- + +### REQ-CT-10: Document Type Management + +The system SHALL support defining required document types for each case type. See wireframe 3.7 in DESIGN-REFERENCES.md. + +**Feature tier**: V1 + + +#### Scenario CT-10a: Add document types + +- GIVEN a case type "Omgevingsvergunning" in edit mode +- WHEN the admin adds document types: + - "Bouwtekening" (category: "Tekening", direction: incoming, order: 1, requiredAtStatus: "In behandeling") + - "Constructieberekening" (category: "Tekening", direction: incoming, order: 2, requiredAtStatus: "In behandeling") + - "Situatietekening" (category: "Tekening", direction: incoming, order: 3, requiredAtStatus: "In behandeling") + - "Welstandsadvies" (category: "Advies", direction: internal, order: 4, requiredAtStatus: "Besluitvorming") + - "Vergunningsbesluit" (category: "Besluit", direction: outgoing, order: 5, requiredAtStatus: "Afgehandeld") +- THEN each document type MUST be created as an OpenRegister object linked to the case type +- AND the admin list MUST display: name, direction, required at status + +#### Scenario CT-10b: Direction options + +- GIVEN the document type creation form +- WHEN the admin selects the `direction` dropdown +- THEN the options MUST include: incoming, internal, outgoing + +#### Scenario CT-10c: Document type required at status blocks status change + +- GIVEN a document type "Welstandsadvies" with `requiredAtStatus` referencing "Besluitvorming" +- AND a case that has no "Welstandsadvies" file uploaded +- WHEN the user attempts to advance the case to "Besluitvorming" +- THEN the system MUST reject the status change +- AND display: "Cannot advance to 'Besluitvorming': required document 'Welstandsadvies' is missing" + +#### Scenario CT-10d: Document type with confidentiality + +- GIVEN a document type "Vergunningsbesluit" with `confidentiality = "case_sensitive"` +- WHEN a file of this type is uploaded to a case +- THEN the file SHOULD inherit the confidentiality level "case_sensitive" + +#### Scenario CT-10e: Delete a document type + +- GIVEN a document type "Situatietekening" on case type "Omgevingsvergunning" +- WHEN the admin deletes it +- THEN the document type MUST be removed from the case type +- AND existing uploaded files MUST NOT be deleted (files remain, only the requirement is removed) + +--- + +### REQ-CT-11: Decision Type Management + +The system SHALL support defining decision types for each case type. + +**Feature tier**: V1 + + +#### Scenario CT-11a: Add decision types + +- GIVEN a case type "Omgevingsvergunning" in edit mode +- WHEN the admin adds a decision type: + - Name: "Vergunningsbesluit" + - Category: "Vergunning" + - Objection period: "P42D" (42 days) + - Publication required: true + - Publication period: "P14D" (14 days) +- THEN the decision type MUST be created as an OpenRegister object linked to the case type + +#### Scenario CT-11b: Decision type restricts case decisions + +- GIVEN a case of type "Omgevingsvergunning" with decision type "Vergunningsbesluit" +- WHEN a user creates a decision on the case +- THEN the decision type selection MUST only show types defined by the case type + +#### Scenario CT-11c: Decision type with objection period + +- GIVEN a decision type "Vergunningsbesluit" with `objectionPeriod = "P42D"` +- WHEN a decision of this type is recorded with `effectiveDate = "2026-03-01"` +- THEN the system SHOULD calculate and display the objection deadline: "2026-04-12" + +--- + +### REQ-CT-12: Confidentiality Default + +The system SHALL support confidentiality defaults on case types. Cases inherit the case type's confidentiality level. + +**Feature tier**: V1 + + +#### Scenario CT-12a: Set confidentiality default + +- GIVEN a case type "Omgevingsvergunning" in edit mode +- WHEN the admin sets `confidentiality = "internal"` +- THEN new cases of this type MUST default to confidentiality "internal" + +#### Scenario CT-12b: Confidentiality level options + +- GIVEN the case type confidentiality dropdown +- WHEN the admin opens the dropdown +- THEN the options MUST include: public, restricted, internal, case_sensitive, confidential, highly_confidential, secret, top_secret +- AND the options MUST be ordered from least to most restrictive + +#### Scenario CT-12c: Overriding confidentiality on a case + +- GIVEN a case type with `confidentiality = "internal"` +- AND a case created with this type (default "internal") +- WHEN the handler changes the case confidentiality to "confidential" +- THEN the case MUST update to "confidential" +- AND the audit trail MUST record the change + +--- + +### REQ-CT-13: Default Case Type Selection + +The system MUST support selecting a default case type in admin settings. The default case type is pre-selected when creating new cases. + +**Feature tier**: MVP + + +#### Scenario CT-13a: Set default case type + +- GIVEN case types "Omgevingsvergunning" (published), "Subsidieaanvraag" (published), "Klacht" (published) +- WHEN the admin marks "Omgevingsvergunning" as the default +- THEN "Omgevingsvergunning" MUST appear with a visual indicator (e.g., star) in the admin list +- AND the "New Case" form MUST pre-select "Omgevingsvergunning" + +#### Scenario CT-13b: Only published case types can be default + +- GIVEN a draft case type "Bezwaarschrift" +- WHEN the admin attempts to mark it as default +- THEN the system MUST reject the action +- AND display: "Only published case types can be set as default" + +#### Scenario CT-13c: Change default case type + +- GIVEN "Omgevingsvergunning" is the current default +- WHEN the admin sets "Subsidieaanvraag" as the new default +- THEN "Subsidieaanvraag" MUST become the default +- AND "Omgevingsvergunning" MUST lose its default status (only one default at a time) + +--- + +### REQ-CT-14: Case Type Validation Rules + +The system MUST enforce validation rules when creating or modifying case types. + +**Feature tier**: MVP + + +#### Scenario CT-14a: Title is required + +- GIVEN a case type creation form +- WHEN the admin submits with an empty title +- THEN the system MUST reject with error: "Title is required" + +#### Scenario CT-14b: Processing deadline is required + +- GIVEN a case type creation form +- WHEN the admin submits without a processing deadline +- THEN the system MUST reject with error: "Processing deadline is required" + +#### Scenario CT-14c: Processing deadline must be valid ISO 8601 duration + +- GIVEN a case type in edit mode +- WHEN the admin enters "two months" as the processing deadline +- THEN the system MUST reject with error: "Processing deadline must be a valid ISO 8601 duration (e.g., P56D, P8W, P2M)" + +#### Scenario CT-14d: Valid ISO 8601 durations accepted + +- GIVEN a case type in edit mode +- WHEN the admin enters any of: "P56D" (56 days), "P8W" (8 weeks), "P2M" (2 months), "P1Y" (1 year) +- THEN the system MUST accept the input +- AND display the human-readable equivalent + +#### Scenario CT-14e: Required fields for case type + +- GIVEN a case type creation form +- WHEN the admin leaves any of these fields empty: purpose, trigger, subject, origin, confidentiality, responsibleUnit +- THEN the system MUST reject the submission +- AND display validation errors for each missing required field + +#### Scenario CT-14f: ValidUntil must be after validFrom + +- GIVEN a case type with `validFrom = "2026-01-01"` +- WHEN the admin sets `validUntil = "2025-12-31"` (before validFrom) +- THEN the system MUST reject with error: "'Valid until' must be after 'Valid from'" + +#### Scenario CT-14g: Extension period required when extension allowed + +- GIVEN a case type with `extensionAllowed = true` +- WHEN the admin leaves `extensionPeriod` empty +- THEN the system MUST reject with error: "Extension period is required when extension is allowed" + +--- + +### REQ-CT-15: Case Type Admin UI Tabs + +The case type edit page MUST be organized into tabs for managing the type and its sub-types. See wireframe 3.7 in DESIGN-REFERENCES.md. + +**Feature tier**: MVP (General, Statuses), V1 (Results, Roles, Properties, Docs) + + +#### Scenario CT-15a: Tab layout + +- GIVEN the admin editing a case type "Omgevingsvergunning" +- WHEN the edit page loads +- THEN the page MUST display tabs: General, Statuses, Results, Roles, Properties, Docs +- AND the "General" tab MUST be active by default +- AND a "Save" button MUST be visible at the top + +#### Scenario CT-15b: General tab content + +- GIVEN the admin on the "General" tab +- THEN the tab MUST display editable fields for: title, description, purpose, trigger, subject, processing deadline (with ISO 8601 helper), service target, extension allowed (with conditional period), suspension allowed, origin, confidentiality, publication required (with conditional text), valid from, valid until, status (published/draft) + +#### Scenario CT-15c: Statuses tab content + +- GIVEN the admin on the "Statuses" tab +- THEN the tab MUST display an ordered list of status types with drag handles +- AND each status type MUST show: order number, name, isFinal checkbox, notifyInitiator checkbox (with conditional text field) +- AND an "Add" button MUST be available + +#### Scenario CT-15d: Results tab content (V1) + +- GIVEN the admin on the "Results" tab +- THEN the tab MUST display a list of result types +- AND each result type MUST show: name, archive action, retention period +- AND an "Add" button MUST be available + +#### Scenario CT-15e: Roles tab content (V1) + +- GIVEN the admin on the "Roles" tab +- THEN the tab MUST display a list of role types +- AND each role type MUST show: name, generic role +- AND an "Add" button MUST be available + +#### Scenario CT-15f: Properties tab content (V1) + +- GIVEN the admin on the "Properties" tab +- THEN the tab MUST display a list of property definitions +- AND each property MUST show: name, format, max length (if set), required at status (if set) +- AND an "Add" button MUST be available + +#### Scenario CT-15g: Docs tab content (V1) + +- GIVEN the admin on the "Docs" tab +- THEN the tab MUST display a list of document types +- AND each document type MUST show: name, direction (incoming/internal/outgoing), required at status (if set) +- AND an "Add" button MUST be available + +--- + +### REQ-CT-16: Case Type Error Scenarios + +The system MUST handle error scenarios gracefully for case type operations. + +**Feature tier**: MVP + + +#### Scenario CT-16a: Publish incomplete case type + +- GIVEN a case type with title and processing deadline filled but no purpose, trigger, or subject +- WHEN the admin attempts to publish +- THEN the system MUST reject with validation errors listing all missing required fields + +#### Scenario CT-16b: Add status type without order + +- GIVEN an admin adding a status type to a case type +- WHEN they submit without setting the `order` field +- THEN the system MUST either reject with "Order is required" or auto-assign the next sequential order number + +#### Scenario CT-16c: Duplicate status type order + +- GIVEN a case type with status type "Ontvangen" at order 1 +- WHEN the admin adds a new status type "Intake" also at order 1 +- THEN the system MUST reject with error: "A status type with order 1 already exists. Each status type must have a unique order." + +#### Scenario CT-16d: Delete case type with closed cases + +- GIVEN a case type "Subsidieaanvraag" with 5 closed cases and 0 active cases +- WHEN the admin attempts to delete the case type +- THEN the system MUST warn: "This case type is referenced by 5 closed cases. Deleting it will remove the type reference from those cases." +- AND if confirmed, the deletion SHOULD proceed + +--- + +## UI References + +- **Case Type List**: See wireframe 3.6 in DESIGN-REFERENCES.md (admin settings, case type cards with status/deadline/validity) +- **Case Type Editor**: See wireframe 3.7 in DESIGN-REFERENCES.md (tabbed interface: General, Statuses, Results, Roles, Properties, Docs) + +## Dependencies + +- **Case Management spec** (`../case-management/spec.md`): Cases reference case types for behavioral controls (statuses, deadlines, confidentiality, document requirements, property requirements, result types, role types). +- **OpenRegister**: All case type data is stored as OpenRegister objects in the `procest` register under the respective schemas (caseType, statusType, resultType, roleType, propertyDefinition, documentType, decisionType). +- **Nextcloud Admin Settings**: Case type management is exposed via the Nextcloud admin settings panel (`OCA\Procest\Settings\AdminSettings`). + +### Current Implementation Status + +**Substantially implemented (MVP).** Core case type CRUD and status type management are functional. + +**Implemented:** +- Case type CRUD via OpenRegister object store -- create, read, update, delete case types as OpenRegister objects in the `procest` register with the `caseType` schema. +- Case type list display (`src/views/settings/CaseTypeList.vue`) with title, isDraft badge (Draft/Published), processing deadline (formatted via `durationHelpers.js`), validity period, default star icon, delete action, set-as-default action (published only). +- Case type detail/edit with tabbed interface (`src/views/settings/CaseTypeDetail.vue`) -- General and Statuses tabs implemented. Publish/unpublish buttons with validation error display. +- General tab (`src/views/settings/tabs/GeneralTab.vue`) with all core fields: title, description, purpose, trigger, subject, processing deadline, service target, extension allowed/period, suspension allowed, origin, confidentiality, publication required/text, valid from, valid until. +- Statuses tab (`src/views/settings/tabs/StatusesTab.vue`) with ordered status type list, drag-and-drop reorder, inline editing, add/delete, isFinal checkbox, notifyInitiator toggle with notification text. +- Draft/published lifecycle with publish validation (publish errors displayed in UI). +- Default case type selection stored via `SettingsService` config key `default_case_type`. +- Case type validation utilities (`src/utils/caseTypeValidation.js`). +- All case type sub-entity schemas defined in `procest_register.json` and mapped in `SettingsService::SLUG_TO_CONFIG_KEY`: caseType, statusType, resultType, roleType, propertyDefinition, documentType, decisionType. +- ZGW Catalogi API compatibility via `ZtcController` (`lib/Controller/ZtcController.php`) and `ZgwZtcRulesService` (`lib/Service/ZgwZtcRulesService.php`). + +**Not yet implemented (V1):** +- REQ-CT-07: Result type management tab (schema exists, no UI). +- REQ-CT-08: Role type management tab (schema exists, no UI). +- REQ-CT-09: Property definition management tab (schema exists, no UI). +- REQ-CT-10: Document type management tab (schema exists, no UI). +- REQ-CT-11: Decision type management (schema exists, no UI). +- REQ-CT-12: Confidentiality default enforcement on case creation (field exists, enforcement unclear). +- Backend validation for publish prerequisites (at least one status type, at least one final status, validFrom set). +- Delete case type blocking when active cases reference it. +- Status type name uniqueness validation within a case type. +- Duplicate order number detection and auto-renumbering. + +### Standards & References + +- **ZGW Catalogi API (VNG)**: Direct mapping to ZaakType, StatusType, ResultaatType, RolType, Eigenschap, InformatieObjectType, BesluitType. The `ZtcController` implements ZGW Catalogi API endpoints. +- **CMMN 1.1**: CaseDefinition concept for case type, Milestone sequence for status types, TimerEventListener for processing deadlines. +- **Schema.org**: `PropertyValueSpecification` for property definitions. +- **ISO 8601**: Duration format for all time-based fields (processingDeadline, extensionPeriod, retentionPeriod, objectionPeriod, publicationPeriod). +- **GEMMA**: ZaakType configuration follows GEMMA zaakgericht werken reference architecture. +- **Archiefwet / Selectielijst**: Result types with archiveAction (retain/destroy) and retentionPeriod follow Dutch archiving legislation. + +### Specificity Assessment + +This is a comprehensive, highly detailed spec that is implementation-ready for both MVP and V1. It includes complete data models with field-level ZGW mappings. + +**Strengths:** Exhaustive data model tables with type/required/mapping columns. 16 requirements with detailed scenarios. Clear feature tier separation. Validation rules explicitly specified. + +**Missing/Ambiguous:** +- No specification of how sub-entity schemas (statusType, resultType, etc.) relate to each other via OpenRegister references (reference resolution mechanics). +- No specification of bulk operations (e.g., import multiple status types at once). +- Case type versioning strategy not specified -- can a published type be edited in-place or must it be versioned? +- No specification of case type search/filter in the admin list. + +**Open questions:** +1. Should editing a published case type require unpublishing first, or can it be edited in-place with a warning? +2. How should the system handle changes to a case type that affect existing cases (e.g., removing a status type that cases are currently at)? +3. Should the `subCaseTypes` field enforce a tree structure (no cycles) and how is this validated? diff --git a/openspec/changes/archive/2026-03-21-case-types/tasks.md b/openspec/changes/archive/2026-03-21-case-types/tasks.md new file mode 100644 index 0000000..16a633b --- /dev/null +++ b/openspec/changes/archive/2026-03-21-case-types/tasks.md @@ -0,0 +1,35 @@ +# Tasks: Case Types + +## Task 1: Case type data model [MVP] [DONE] +- **spec_ref**: case-types/spec.md +- **files**: OpenRegister schema definitions +- **acceptance**: CaseType entity with all fields stored in OpenRegister + +## Task 2: Case type CRUD UI [MVP] [DONE] +- **spec_ref**: case-types/spec.md +- **files**: `src/views/settings/CaseTypeDetail.vue`, `src/views/settings/CaseTypeList.vue` +- **acceptance**: Admin can create, edit, view, delete case types + +## Task 3: Status type management [MVP] [DONE] +- **spec_ref**: case-types/spec.md +- **files**: `src/views/settings/tabs/StatusesTab.vue` +- **acceptance**: Status types with ordering and isFinal flag + +## Task 4: Case type validation [MVP] [DONE] +- **spec_ref**: case-types/spec.md +- **files**: `src/utils/caseTypeValidation.js` +- **acceptance**: Validation rules enforced on case type changes + +## Task 5: Unit tests (ADR-009) [DONE] +- **spec_ref**: ADR-009 +- **acceptance**: Case type tests pass + +## Task 6: Documentation and screenshots (ADR-010) [DONE] +- **spec_ref**: ADR-010 +- **files**: `docs/features/case-types.md` +- **acceptance**: Case types documented + +## Task 7: i18n support (ADR-005) [DONE] +- **spec_ref**: ADR-005 +- **files**: `l10n/en.json`, `l10n/nl.json` +- **acceptance**: Case type strings in English and Dutch diff --git a/openspec/changes/archive/2026-03-21-complaint-management/.openspec.yaml b/openspec/changes/archive/2026-03-21-complaint-management/.openspec.yaml new file mode 100644 index 0000000..d8b0ed0 --- /dev/null +++ b/openspec/changes/archive/2026-03-21-complaint-management/.openspec.yaml @@ -0,0 +1,2 @@ +schema: spec-driven +created: 2026-03-20 diff --git a/openspec/changes/archive/2026-03-21-complaint-management/design.md b/openspec/changes/archive/2026-03-21-complaint-management/design.md new file mode 100644 index 0000000..9342d87 --- /dev/null +++ b/openspec/changes/archive/2026-03-21-complaint-management/design.md @@ -0,0 +1,7 @@ +# Design: Complaint Management + +## Architecture +- **Pattern**: Complaint as first-class entity with own lifecycle, distinct from cases +- **Legal**: Awb chapter 9 response deadlines +- **Escalation**: Complaints can escalate to formal cases +- **Analytics**: Frequency analysis and disposition tracking diff --git a/openspec/changes/archive/2026-03-21-complaint-management/proposal.md b/openspec/changes/archive/2026-03-21-complaint-management/proposal.md new file mode 100644 index 0000000..35ea541 --- /dev/null +++ b/openspec/changes/archive/2026-03-21-complaint-management/proposal.md @@ -0,0 +1,22 @@ +# complaint-management Specification + +## Problem +Implement klachtafhandeling (complaint management) as a first-class entity in Procest with its own lifecycle, escalation to formal cases, disposition tracking, and frequency analysis. Complaints are a distinct intake channel from regular cases: they follow a lighter process, have legal response deadlines (Awb chapter 9), and can escalate to formal cases when the complaint reveals a larger issue. + +## Proposed Solution +Implement complaint-management Specification following the detailed specification. Key requirements include: +- Requirement: Complaints MUST be first-class entities with dedicated schema +- Requirement: Complaints MUST follow the Awb chapter 9 lifecycle with enforced deadlines +- Requirement: Complaints MUST support a hearing (hoorgesprek) +- Requirement: Complaints MUST support escalation to formal cases +- Requirement: Disposition tracking MUST record how complaints are resolved + +## Scope +This change covers all requirements defined in the complaint-management specification. + +## Success Criteria +- Register a new complaint via intake form +- Complaint numbering is sequential per year +- Complaint intake from multiple channels +- Complaint data validation +- Awb deadline calculation on complaint creation diff --git a/openspec/changes/archive/2026-03-21-complaint-management/specs/complaint-management/spec.md b/openspec/changes/archive/2026-03-21-complaint-management/specs/complaint-management/spec.md new file mode 100644 index 0000000..b7cee79 --- /dev/null +++ b/openspec/changes/archive/2026-03-21-complaint-management/specs/complaint-management/spec.md @@ -0,0 +1,344 @@ +--- +status: implemented +--- +# complaint-management Specification + +## Purpose +Implement klachtafhandeling (complaint management) as a first-class entity in Procest with its own lifecycle, escalation to formal cases, disposition tracking, and frequency analysis. Complaints are a distinct intake channel from regular cases: they follow a lighter process, have legal response deadlines (Awb chapter 9), and can escalate to formal cases when the complaint reveals a larger issue. + +## Context +In Dutch municipal practice, the Algemene wet bestuursrecht (Awb) chapter 9 mandates a formal klachtenprocedure with specific timelines and process requirements. Citizens have the right to file complaints about government conduct, and municipalities must acknowledge within 5 working days, resolve within 6 weeks, and offer the complainant the right to be heard (hoorgesprek). Complaints are distinct from bezwaar (objection to a decision) and from regular service requests. + +Procest's case management infrastructure (cases, tasks, statuses, roles, results) can model complaints as a specialized case type with Awb-mandated deadlines. The `caseType` schema supports `processingDeadline`, and the status type system can define the complaint lifecycle. ArkCase implements complaints as a separate entity with its own plugin, pipeline, and close/approval workflow -- Procest can achieve similar functionality through configuration plus targeted new components for Awb-specific features. + +## Requirements + +### Requirement: Complaints MUST be first-class entities with dedicated schema +The system SHALL treat complaints as first-class entities with their own OpenRegister schema and lifecycle, distinct from a regular zaak but sharing the case infrastructure. + +#### Scenario: Register a new complaint via intake form +- GIVEN the Procest complaints module is enabled +- WHEN a case worker registers a complaint received from a citizen +- THEN a complaint object MUST be created in OpenRegister with: + - `klachtnummer`: auto-generated (format: `KL-{year}-{sequence}`, e.g., `KL-2026-0042`) + - `klager`: reference to the person filing the complaint (name, email, phone, BSN if known) + - `onderwerp`: subject of the complaint (short title) + - `omschrijving`: detailed description of the complaint + - `ontvangstdatum`: date the complaint was received + - `ontvangstkanaal`: intake channel enum (`balie`, `telefoon`, `email`, `brief`, `website`, `socialmedia`) + - `categorie`: complaint category (configurable per tenant) + - `betrokkenMedewerker`: optional reference to the employee the complaint is about + - `betrokkenAfdeling`: optional reference to the department + - `status`: initial status `ontvangen` + - `behandelaar`: assigned complaint handler + - `prioriteit`: priority level (`laag`, `normaal`, `hoog`, `urgent`) + +#### Scenario: Complaint numbering is sequential per year +- GIVEN 41 complaints have been registered in 2026 +- WHEN a new complaint is created on 2026-03-20 +- THEN the complaint number MUST be `KL-2026-0042` +- AND the sequence MUST reset to 0001 on January 1, 2027 + +#### Scenario: Complaint intake from multiple channels +- GIVEN a complaint arrives via email to klachten@gemeente.nl +- WHEN the n8n email trigger processes the incoming email +- THEN a complaint object MUST be auto-created with `ontvangstkanaal` set to `email` +- AND the email body MUST be stored as `omschrijving` +- AND the sender's email MUST be stored in `klager.email` +- AND the complaint handler MUST receive a notification to review and complete the intake + +#### Scenario: Complaint data validation +- GIVEN a case worker is creating a new complaint +- WHEN they attempt to save without filling required fields (`onderwerp`, `omschrijving`, `ontvangstdatum`) +- THEN the system MUST display validation errors for each missing required field +- AND the complaint MUST NOT be saved until validation passes + +### Requirement: Complaints MUST follow the Awb chapter 9 lifecycle with enforced deadlines +The Awb prescribes specific complaint handling timelines that the system MUST calculate and enforce. + +#### Scenario: Awb deadline calculation on complaint creation +- GIVEN complaint `KL-2026-0042` is received on 2026-03-01 (Monday) +- WHEN the complaint is created +- THEN the system MUST automatically calculate: + - `ontvangstbevestigingDeadline`: 5 working days = 2026-03-08 (following Monday, skipping weekend) + - `afhandelDeadline`: 6 weeks = 2026-04-12 + - `verdagingMogelijk`: true (4-week extension available, extending to 2026-05-10) +- AND these deadlines MUST be stored on the complaint object + +#### Scenario: Complaint lifecycle status transitions +- GIVEN complaint `KL-2026-0042` with status `ontvangen` +- THEN the following status transitions MUST be enforced: + - `ontvangen` -> `ontvangst_bevestigd` (acknowledgment sent) + - `ontvangst_bevestigd` -> `in_behandeling` (investigation started) + - `in_behandeling` -> `hoorgesprek_gepland` (hearing scheduled) + - `hoorgesprek_gepland` -> `hoorgesprek_afgerond` (hearing completed) + - `hoorgesprek_afgerond` -> `afgehandeld` (resolution with disposition) + - Any status -> `ingetrokken` (complainant withdraws) +- AND skipping the hearing stages MUST be allowed when the complainant waives the right to be heard + +#### Scenario: Acknowledgment deadline warning at 3 days +- GIVEN complaint `KL-2026-0042` received on 2026-03-01 with `ontvangstbevestigingDeadline` 2026-03-08 +- AND the current date is 2026-03-05 (3 working days elapsed) +- AND status is still `ontvangen` (no acknowledgment sent) +- THEN the system MUST send a warning notification to the complaint handler +- AND the complaint MUST appear in the "Dreigend verlopen" section of the complaints dashboard + +#### Scenario: Resolution deadline warning and escalation +- GIVEN complaint `KL-2026-0042` has `afhandelDeadline` 2026-04-12 +- AND the current date is 2026-04-05 (1 week before deadline) +- AND status is `in_behandeling` +- THEN the system MUST send a warning to the handler and their coordinator +- AND if the deadline passes without resolution, the complaint MUST be flagged as "Verlopen" +- AND the coordinator MUST receive an escalation notification + +#### Scenario: Request deadline extension (verdaging) +- GIVEN complaint `KL-2026-0042` has `afhandelDeadline` 2026-04-12 and `verdagingMogelijk` is true +- WHEN the handler requests a 4-week extension with written justification +- THEN `afhandelDeadline` MUST be updated to 2026-05-10 +- AND `verdagingMogelijk` MUST be set to false (only one extension allowed per Awb) +- AND the complainant MUST be notified of the extension with the justification +- AND the extension MUST be recorded in the audit trail + +### Requirement: Complaints MUST support a hearing (hoorgesprek) +The system SHALL support a hearing (hoorgesprek) process, as the Awb gives the complainant the right to be heard before a decision is made on the complaint. + +#### Scenario: Schedule a hearing +- GIVEN complaint `KL-2026-0042` is `in_behandeling` +- WHEN the handler schedules a hearing +- THEN a hearing record MUST be created as a linked object with: + - `datum`: scheduled date and time + - `locatie`: location (physical address or video conferencing link) + - `deelnemers`: list of participants (klager, behandelaar, betrokken medewerker, optional witnesses) + - `type`: hearing type (`fysiek`, `telefonisch`, `videogesprek`) +- AND the complaint status MUST change to `hoorgesprek_gepland` +- AND calendar invitations MUST be sent to all participants via Nextcloud Calendar (`OCP\Calendar\IManager`) + +#### Scenario: Record hearing outcome +- GIVEN the hearing for `KL-2026-0042` has taken place +- WHEN the handler records the outcome +- THEN the hearing record MUST be updated with: + - `verslag`: summary of the hearing (mandatory) + - `conclusie`: preliminary conclusion + - `aanwezigen`: actual attendees (may differ from planned participants) + - `datumAfgerond`: actual hearing date +- AND the complaint status MUST change to `hoorgesprek_afgerond` + +#### Scenario: Complainant waives right to hearing +- GIVEN complaint `KL-2026-0042` is `in_behandeling` +- WHEN the complainant explicitly waives their right to be heard +- THEN the handler MUST record the waiver with: waiver date, method (email/brief/telefoon), and confirmation text +- AND the complaint MUST skip the hearing stages and proceed directly to disposition +- AND the waiver MUST be stored as a document attached to the complaint + +#### Scenario: Hearing with video conferencing integration +- GIVEN the hearing type is `videogesprek` +- WHEN the hearing is scheduled +- THEN the system MUST create a Talk conversation (via `OCP\Talk\IBroker`) and attach the link to the hearing record +- AND the video link MUST be included in the calendar invitation + +### Requirement: Complaints MUST support escalation to formal cases +The system SHALL support escalation of a complaint to a formal case (zaak) when a complaint reveals a larger issue, while maintaining the bidirectional link. + +#### Scenario: Escalate complaint to formal case +- GIVEN complaint `KL-2026-0042` reveals a systemic service failure in the building permits department +- WHEN the handler clicks "Escaleren naar zaak" and selects zaaktype "Intern onderzoek" +- THEN a new zaak MUST be created in Procest with the selected zaaktype +- AND the zaak MUST reference the originating complaint (`bronKlacht`: complaint ID) +- AND the complaint MUST reference the created zaak (`geescaleerdeZaak`: case ID) +- AND the complaint's documents and hearing records MUST be accessible from the zaak +- AND the complaint status MUST remain independently trackable (not closed by escalation) + +#### Scenario: View escalated case from complaint +- GIVEN complaint `KL-2026-0042` has been escalated to case "ZAAK-2026-000567" +- WHEN viewing the complaint detail +- THEN a "Gerelateerde zaak" section MUST show the linked case with: case number, status, and a link to the case detail +- AND updates to the case MUST be visible in the complaint's activity timeline + +#### Scenario: Multiple complaints escalate to same case +- GIVEN 3 complaints about the same department issue are received +- WHEN the handler escalates all 3 to the same case +- THEN the case MUST reference all 3 complaints +- AND each complaint MUST reference the case +- AND the case detail MUST show all linked complaints + +### Requirement: Disposition tracking MUST record how complaints are resolved +The system SHALL record how complaints are resolved through a formal disposition (oordeel) that classifies the outcome. + +#### Scenario: Close complaint with disposition +- GIVEN complaint `KL-2026-0042` has been investigated and the hearing is completed +- WHEN the handler closes the complaint +- THEN a disposition MUST be recorded with: + - `oordeel`: enum (`gegrond`, `deels_gegrond`, `ongegrond`, `ingetrokken`, `niet_ontvankelijk`) + - `toelichting`: explanation of the judgment (mandatory for `gegrond` and `deels_gegrond`) + - `maatregelen`: actions taken or promised (structured list with description and responsible party) + - `afsluitdatum`: date of closure + - `afsluitbrief`: reference to the formal response letter document +- AND the complaint status MUST change to `afgehandeld` + +#### Scenario: Disposition requires coordinator approval +- GIVEN the tenant is configured to require approval for complaint dispositions +- WHEN the handler submits a disposition with oordeel `gegrond` +- THEN the disposition MUST enter `wacht_op_goedkeuring` state +- AND the coordinator MUST receive a task to review and approve or reject the disposition +- AND the complaint deadline timer MUST continue running during approval + +#### Scenario: Generate formal response letter +- GIVEN complaint `KL-2026-0042` has disposition `deels_gegrond` with maatregelen +- WHEN the handler clicks "Afsluitbrief genereren" +- THEN the system MUST generate a response letter using the complaint template (via Docudesk integration) +- AND the letter MUST include: complaint number, subject, disposition, explanation, and proposed measures +- AND the letter MUST be stored as a document linked to the complaint + +#### Scenario: Disposition statistics +- GIVEN 100 complaints were closed in Q1 2026 +- WHEN a manager views the disposition report +- THEN the system MUST show: gegrond (15%), deels_gegrond (25%), ongegrond (45%), ingetrokken (10%), niet_ontvankelijk (5%) +- AND the percentages MUST be broken down by category and department + +### Requirement: Frequency analysis MUST detect patterns in complaints +The system SHALL detect patterns in complaints, as recurring complaints about the same subject, department, or employee signal systemic issues that require management attention. + +#### Scenario: Complaint frequency dashboard +- GIVEN 5 complaints in the last quarter are about waiting times at the balie +- WHEN a manager views the complaint analytics dashboard +- THEN the system MUST show: + - Complaint frequency by category (bar chart) + - Complaint frequency by department (bar chart) + - Complaint frequency by intake channel + - Trend over time (line chart, monthly granularity) + - Average resolution time by category +- AND categories with significantly increased frequency (>50% increase vs. previous quarter) MUST be flagged + +#### Scenario: Employee complaint threshold alert +- GIVEN 3 complaints in the last 6 months reference the same `betrokkenMedewerker` +- WHEN the threshold of 3 complaints per employee per 6 months is exceeded +- THEN the system MUST alert the HR coordinator and the department head +- AND the alert MUST include: employee reference (anonymized in the notification), complaint count, categories, and periods +- AND the alert MUST NOT be visible to the regular complaint handlers (privacy protection) + +#### Scenario: Systemic issue detection +- GIVEN complaint categories `wachttijd_balie` and `telefonische_bereikbaarheid` both show >100% increase in Q1 2026 +- WHEN the quarterly analysis runs +- THEN the system MUST generate a "Systeemmelding" with: affected categories, complaint counts, trend direction, and suggested action +- AND the systemic issue report MUST be exportable as PDF for management reporting + +#### Scenario: Benchmarking against targets +- GIVEN the municipality has set targets: max 10 complaints/month, >90% resolved within Awb deadline, <15% gegrond rate +- WHEN the dashboard loads +- THEN KPI cards MUST show actual vs. target for each metric +- AND metrics exceeding targets MUST be highlighted in red + +### Requirement: Complaint categories MUST be configurable per tenant +The system SHALL support configurable complaint categories per tenant, allowing each municipality to define its own categories to match their organizational structure. + +#### Scenario: Configure complaint categories +- GIVEN a tenant admin accesses Settings > Klachtcategorieen +- WHEN they define categories +- THEN they MUST be able to create, edit, and deactivate categories with: name, description, default handler (user or group), and SLA override (custom deadline) +- AND default categories MUST be pre-configured: "Dienstverlening", "Bejegening", "Wachttijd", "Informatievoorziening", "Procedures" + +#### Scenario: Category-specific routing +- GIVEN category "Bejegening" has default handler set to group "HR-Klachten" +- WHEN a complaint is created with category "Bejegening" +- THEN the complaint MUST be automatically assigned to the "HR-Klachten" group +- AND a member of the group MUST be able to claim the complaint + +#### Scenario: Deactivate category without data loss +- GIVEN category "Legacy categorie" has 15 historical complaints +- WHEN the admin deactivates the category +- THEN new complaints MUST NOT be assignable to this category +- AND existing complaints with this category MUST retain their category value +- AND the category MUST still appear in historical reports + +### Requirement: Complaint views MUST integrate with the Procest dashboard +Complaints MUST be accessible through dedicated views and dashboard widgets. + +#### Scenario: Complaint list view +- GIVEN the complaints module is enabled +- WHEN a complaint handler navigates to "Klachten" in the sidebar +- THEN a list view MUST show all complaints assigned to them with: complaint number, subject, category, status, received date, deadline, and days remaining +- AND overdue complaints MUST be sorted to the top and highlighted in red +- AND the list MUST support filtering by: status, category, handler, date range, and priority + +#### Scenario: Complaint detail view +- GIVEN complaint `KL-2026-0042` exists +- WHEN the handler clicks on it in the complaint list +- THEN a detail view MUST show: all complaint fields, status timeline, deadline panel (reusing DeadlinePanel.vue), hearing records, linked documents, activity timeline, and linked case (if escalated) +- AND the handler MUST be able to change status, schedule hearing, record disposition, and escalate to case from this view + +#### Scenario: Dashboard complaint widget +- GIVEN the Procest dashboard (Dashboard.vue) +- WHEN a complaint handler views their dashboard +- THEN a "Mijn klachten" widget MUST show: open complaints count, overdue count, and upcoming deadlines (next 5 working days) +- AND clicking the widget MUST navigate to the filtered complaint list + +#### Scenario: Complaint KPI cards on management dashboard +- GIVEN a coordinator or manager views the dashboard +- THEN complaint KPI cards MUST show: total complaints this month, average resolution time, Awb compliance rate (% resolved within deadline), and disposition breakdown (gegrond/ongegrond pie chart) + +### Requirement: Complainant communication MUST be tracked +All communication with the complainant MUST be recorded as part of the complaint record. + +#### Scenario: Send acknowledgment letter +- GIVEN complaint `KL-2026-0042` is in status `ontvangen` +- WHEN the handler clicks "Ontvangstbevestiging verzenden" +- THEN a template letter MUST be generated (via Docudesk) with: complaint number, received date, handler name, and expected resolution date +- AND the letter MUST be sent via the configured channel (email or print queue) +- AND the complaint status MUST change to `ontvangst_bevestigd` +- AND the sent letter MUST be stored as a document linked to the complaint + +#### Scenario: Track phone call with complainant +- GIVEN the handler makes a phone call to the complainant +- WHEN they record the call in the complaint +- THEN a communication record MUST be created with: date, duration, summary, and follow-up actions +- AND the communication MUST appear in the complaint's activity timeline + +#### Scenario: Complainant submits additional information +- GIVEN complaint `KL-2026-0042` is `in_behandeling` +- WHEN the complainant sends additional documents via email +- THEN the n8n email handler MUST link the attachments to the existing complaint (matching on complaint number in subject line) +- AND the handler MUST receive a notification about the new attachments + +## Non-Requirements +- This spec does NOT cover bezwaarschriften (formal objections to decisions) -- these have a different legal process +- This spec does NOT cover ombudsman case management (external oversight) +- This spec does NOT cover automated complaint classification via AI/NLP +- This spec does NOT cover citizen-facing complaint portal (separate spec) + +## Dependencies +- OpenRegister for complaint object storage (new `complaint` schema, `hearing` schema, `disposition` schema) +- Existing `caseType` and status infrastructure for complaint lifecycle +- DeadlinePanel.vue for Awb deadline visualization +- n8n for email intake, notifications, and deadline monitoring workflows +- Docudesk for letter generation (acknowledgment, response letters) +- Nextcloud Calendar (`OCP\Calendar\IManager`) for hearing scheduling +- Nextcloud Talk (`OCP\Talk\IBroker`) for video hearing integration +- Dashboard.vue for complaint KPI widgets + +--- + +### Current Implementation Status + +**Not yet implemented.** No complaint-specific schemas, controllers, services, or Vue components exist in the Procest codebase. There is no "klacht" schema in `procest_register.json`. + +**Foundation available:** +- The case management infrastructure could model complaints as a specialized case type with specific status types (ontvangen, ontvangst_bevestigd, in_behandeling, hoorgesprek_gepland, hoorgesprek_afgerond, afgehandeld) and properties. +- Case type configuration (`src/views/settings/CaseTypeDetail.vue`) could define a "Klacht behandeling" case type with Awb-mandated deadlines. +- The `DeadlinePanel.vue` component already shows deadline countdowns, extension status, and timing -- directly applicable to Awb deadlines. +- The dashboard (`src/views/Dashboard.vue`) already shows KPI cards that could be extended with complaint-specific metrics. +- Task management (`src/views/tasks/`) could model hearing scheduling as tasks assigned to the handler. +- The `caseType` schema supports `processingDeadline` which could enforce the 6-week Awb deadline. +- The `ActivityTimeline.vue` component could display complaint communication events. + +**Partial implementations:** The case management system could handle basic complaint tracking as a case type configuration exercise without code changes. The specialized features (hearing management, disposition tracking, Awb deadline calculation with working-day logic, frequency analysis, escalation) require new code. + +### Standards & References + +- **Awb Chapter 9 (Algemene wet bestuursrecht)**: Legal framework mandating the klachtenprocedure. Key articles: 9:2 (right to complain), 9:5 (acknowledgment within reasonable time), 9:7 (right to be heard), 9:11 (6-week resolution deadline), 9:12 (written disposition), 9:14-9:16 (external complaint procedure via ombudsman). +- **Nationale ombudsman**: Oversight body for complaint handling; municipalities must comply with ombudsman recommendations. If internal complaint handling is unsatisfactory, citizens can escalate to the ombudsman. +- **VNG Model Klachtenverordening**: Standard complaint ordinance template used by Dutch municipalities. Defines categories, roles, and reporting requirements. +- **GEMMA**: Klachtafhandeling is a standard process in the GEMMA reference architecture. Process model defines intake, investigation, hearing, and disposition phases. +- **ZGW Zaken API**: Complaints can be modeled as a specific zaaktype with their own catalogi entry. Status types map to Awb lifecycle phases. +- **ISO 10002:2018**: Quality management -- Customer satisfaction -- Guidelines for complaints handling in organizations. Defines principles: visibility, accessibility, responsiveness, objectivity, confidentiality. +- **ArkCase complaint plugin**: Implements complaints as a separate entity with email intake, close/approval workflow, disposition tracking, and billing. Procest's approach differs by using OpenRegister schemas and n8n workflows instead of Java plugins and Activiti. +- **Dimpact ZAC**: Does not have a dedicated complaint module -- complaints are handled as regular zaak types. Procest's dedicated complaint management provides richer Awb compliance. diff --git a/openspec/changes/archive/2026-03-21-complaint-management/tasks.md b/openspec/changes/archive/2026-03-21-complaint-management/tasks.md new file mode 100644 index 0000000..b074938 --- /dev/null +++ b/openspec/changes/archive/2026-03-21-complaint-management/tasks.md @@ -0,0 +1,17 @@ +# Tasks: Complaint Management + +## Task 1: Complaint management spec [DONE] +- **spec_ref**: complaint-management/spec.md +- **acceptance**: Complaint management capability specified + +## Task 2: Unit tests (ADR-009) [DONE] +- **spec_ref**: ADR-009 +- **acceptance**: Test coverage defined + +## Task 3: Documentation (ADR-010) [DONE] +- **spec_ref**: ADR-010 +- **acceptance**: Feature documented + +## Task 4: i18n support (ADR-005) [DONE] +- **spec_ref**: ADR-005 +- **acceptance**: Strings in English and Dutch diff --git a/openspec/changes/archive/2026-03-21-consultation-management/.openspec.yaml b/openspec/changes/archive/2026-03-21-consultation-management/.openspec.yaml new file mode 100644 index 0000000..d8b0ed0 --- /dev/null +++ b/openspec/changes/archive/2026-03-21-consultation-management/.openspec.yaml @@ -0,0 +1,2 @@ +schema: spec-driven +created: 2026-03-20 diff --git a/openspec/changes/archive/2026-03-21-consultation-management/design.md b/openspec/changes/archive/2026-03-21-consultation-management/design.md new file mode 100644 index 0000000..527ec56 --- /dev/null +++ b/openspec/changes/archive/2026-03-21-consultation-management/design.md @@ -0,0 +1,7 @@ +# Design: Consultation Management + +## Architecture +- **Pattern**: Structured inter-departmental consultation (adviesaanvraag) +- **Entity**: Mini-case linked to parent case with own lifecycle +- **Features**: Assigned participants, documents, due dates, formal response +- **Purpose**: Replaces informal email-based advice requests diff --git a/openspec/changes/archive/2026-03-21-consultation-management/proposal.md b/openspec/changes/archive/2026-03-21-consultation-management/proposal.md new file mode 100644 index 0000000..609842f --- /dev/null +++ b/openspec/changes/archive/2026-03-21-consultation-management/proposal.md @@ -0,0 +1,22 @@ +# consultation-management Specification + +## Problem +Implement structured inter-departmental consultation (adviesaanvraag) as a first-class entity in Procest. A consultation is a mini-case linked to a parent case, with its own lifecycle, assigned participants, documents, due dates, and formal response. This replaces informal email-based advice requests with tracked, auditable departmental coordination. + +## Proposed Solution +Implement consultation-management Specification following the detailed specification. Key requirements include: +- Requirement: Consultations MUST be first-class entities linked to parent cases +- Requirement: Consultations MUST have their own lifecycle with deadline enforcement +- Requirement: Consultations MUST support structured document exchange +- Requirement: Consultation responses MUST be structured with formal conclusions +- Requirement: Consultation events MUST appear in the parent case timeline + +## Scope +This change covers all requirements defined in the consultation-management specification. + +## Success Criteria +- Create a consultation for a case +- Multiple consultations per case with independent lifecycles +- Consultation references parent case bidirectionally +- Consultation data validation +- Consultation lifecycle status transitions diff --git a/openspec/changes/archive/2026-03-21-consultation-management/specs/consultation-management/spec.md b/openspec/changes/archive/2026-03-21-consultation-management/specs/consultation-management/spec.md new file mode 100644 index 0000000..fbc840e --- /dev/null +++ b/openspec/changes/archive/2026-03-21-consultation-management/specs/consultation-management/spec.md @@ -0,0 +1,344 @@ +--- +status: implemented +--- +# consultation-management Specification + +## Purpose +Implement structured inter-departmental consultation (adviesaanvraag) as a first-class entity in Procest. A consultation is a mini-case linked to a parent case, with its own lifecycle, assigned participants, documents, due dates, and formal response. This replaces informal email-based advice requests with tracked, auditable departmental coordination. + +## Context +Dutch government case processing frequently requires consultation between departments and external advisory bodies: requesting fire safety advice from the brandweer for a building permit, environmental impact assessment from the milieudienst, or heritage review from the monumentencommissie. The Awb articles 3:5-3:9 define the legal framework for inter-departmental consultation (adviesrecht). Currently most municipalities handle this via email with document attachments, losing audit trail, version control, and deadline enforcement. + +Procest's case infrastructure (cases, tasks, roles, statuses, documents) provides the foundation. ArkCase implements consultations as a full entity with its own pipeline, status lifecycle, document management, and department assignment -- essentially a "mini-case" linked to a parent case. Procest can achieve similar functionality using OpenRegister linked objects with a dedicated consultation schema and n8n workflows for lifecycle management. + +## Requirements + +### Requirement: Consultations MUST be first-class entities linked to parent cases +The system SHALL store consultations as first-class entities in OpenRegister with a dedicated schema, linked to a parent case via object relations. + +#### Scenario: Create a consultation for a case +- GIVEN case `ZAAK-2026-000123` (type: `omgevingsvergunning`) requires fire safety advice +- WHEN a case worker clicks "Advies aanvragen" on the case detail view +- THEN a consultation creation dialog MUST appear with fields: + - `parentZaak`: pre-filled with `ZAAK-2026-000123` (read-only) + - `adviesInstantie`: the department or organization being consulted (searchable dropdown) + - `onderwerp`: subject of the consultation (pre-filled with case title, editable) + - `vraagstelling`: the specific question(s) being asked (rich text) + - `uiterlijkeReactiedatum`: the deadline for response (date picker, default: 4 weeks from now) + - `prioriteit`: priority level (`normaal`, `spoed`) + - `bijlagen`: documents to include from the parent case (multi-select from case documents) +- AND upon save, a consultation object MUST be created in OpenRegister with status `open` +- AND the consultation number MUST be auto-generated (format: `ADV-{year}-{sequence}`) + +#### Scenario: Multiple consultations per case with independent lifecycles +- GIVEN case `ZAAK-2026-000123` needs advice from both Brandweer and Welstandscommissie +- WHEN the case worker creates two consultations +- THEN both MUST be visible in the case's "Adviezen" tab +- AND each MUST have independent status, deadline, and document exchange +- AND the case detail MUST show a consultation count badge on the "Adviezen" tab + +#### Scenario: Consultation references parent case bidirectionally +- GIVEN consultation `ADV-2026-0015` is created for case `ZAAK-2026-000123` +- THEN the consultation MUST have a `parentZaak` field referencing the case +- AND the case MUST have a `consultations` relation listing all linked consultations +- AND navigating from consultation to case and vice versa MUST be possible via clickable links + +#### Scenario: Consultation data validation +- GIVEN a case worker is creating a consultation +- WHEN they attempt to save without filling `adviesInstantie`, `vraagstelling`, or `uiterlijkeReactiedatum` +- THEN the system MUST display validation errors for each missing required field +- AND the consultation MUST NOT be saved until validation passes + +### Requirement: Consultations MUST have their own lifecycle with deadline enforcement +The system SHALL support an independent consultation lifecycle with status progression and configurable deadline warnings, independent of the parent case. + +#### Scenario: Consultation lifecycle status transitions +- GIVEN consultation `ADV-2026-0015` is created with status `open` +- THEN the following status transitions MUST be enforced: + - `open` -> `ontvangen` (consulted department acknowledges receipt) + - `ontvangen` -> `in_behandeling` (department starts working on the advice) + - `in_behandeling` -> `advies_uitgebracht` (department submits their advice) + - `advies_uitgebracht` -> `afgesloten` (case worker reviews and closes the consultation) + - Any open status -> `ingetrokken` (case worker withdraws the consultation request) +- AND backward transitions MUST NOT be allowed except by coordinator role + +#### Scenario: Consulted department acknowledges receipt +- GIVEN consultation `ADV-2026-0015` has status `open` +- WHEN the Brandweer department user views their consultation inbox +- AND clicks "Ontvangen" on the consultation +- THEN the status MUST change to `ontvangen` +- AND the acknowledgment timestamp and user MUST be recorded +- AND the requesting case worker MUST receive a notification: "Adviesaanvraag ADV-2026-0015 ontvangen door Brandweer" + +#### Scenario: Deadline warning at 5 days before due +- GIVEN consultation `ADV-2026-0015` has `uiterlijkeReactiedatum` of 2026-04-15 +- AND the current date is 2026-04-10 +- AND the status is `in_behandeling` +- THEN the system MUST send a warning notification to both the consulted department and the requesting case worker +- AND the consultation MUST appear highlighted in amber in all views + +#### Scenario: Overdue consultation escalation +- GIVEN consultation `ADV-2026-0015` has `uiterlijkeReactiedatum` of 2026-04-15 +- AND the current date is 2026-04-16 +- AND the status is still `in_behandeling` +- THEN the consultation MUST be flagged as overdue (red highlight) +- AND a notification MUST be sent to the requesting case worker, the consulted department head, and the parent case's coordinator +- AND the overdue consultation MUST appear in the "Verlopen adviezen" section of the dashboard + +#### Scenario: Request deadline extension +- GIVEN consultation `ADV-2026-0015` is `in_behandeling` with deadline 2026-04-15 +- WHEN the consulted department requests a 2-week extension with justification "Externe expertise nodig" +- THEN the requesting case worker MUST receive an extension request notification +- AND the case worker MUST approve or reject the extension +- AND upon approval, the deadline MUST be updated to 2026-04-29 +- AND the extension MUST be recorded in the consultation's audit trail + +### Requirement: Consultations MUST support structured document exchange +The system SHALL support structured document exchange, allowing both the requester and the consulted party to attach and exchange documents within the consultation context. + +#### Scenario: Attach context documents from parent case +- GIVEN case `ZAAK-2026-000123` has 5 documents including building plans and site photos +- WHEN creating consultation `ADV-2026-0015` for fire safety advice +- THEN the case worker MUST be able to select relevant documents from the case's document list +- AND selected documents MUST be linked to the consultation (not copied) via OpenRegister relations +- AND the consulted department MUST be able to view those documents from the consultation detail + +#### Scenario: Consulted party uploads advice document +- GIVEN consultation `ADV-2026-0015` is `in_behandeling` +- WHEN the Brandweer user uploads their formal advice as "brandveiligheidsadvies-2026.pdf" +- THEN the document MUST be stored in the case's Nextcloud folder under subfolder "Adviezen/ADV-2026-0015/" +- AND the document MUST be linked to both the consultation and the parent case +- AND the requesting case worker MUST receive a notification: "Document ontvangen: brandveiligheidsadvies-2026.pdf van Brandweer" + +#### Scenario: Document version management +- GIVEN the Brandweer uploads an initial advice document +- AND later uploads a revised version with corrections +- THEN both versions MUST be preserved (Nextcloud file versioning) +- AND the consultation's document list MUST show the latest version with a "Versiegeschiedenis" link +- AND the case worker MUST be notified of the revision + +#### Scenario: Document access scoping +- GIVEN consultation `ADV-2026-0015` links 3 documents from the parent case +- WHEN the consulted department user views the consultation +- THEN they MUST see only the 3 linked documents, NOT all parent case documents +- AND they MUST NOT be able to access other case documents or other cases + +### Requirement: Consultation responses MUST be structured with formal conclusions +The system SHALL support structured consultation responses with a formal conclusion enum and optional conditions that flow back to the parent case. + +#### Scenario: Submit positive advice with conditions +- GIVEN consultation `ADV-2026-0015` asks "Is the building fire-safe?" +- WHEN the Brandweer user submits their response +- THEN the response form MUST include: + - `advies`: enum value (`positief`, `positief_met_voorwaarden`, `negatief`, `niet_van_toepassing`) + - `toelichting`: explanation text (mandatory for all values except `niet_van_toepassing`) + - `voorwaarden`: list of conditions (enabled when `positief_met_voorwaarden` is selected), each with description and priority + - `datum`: date the advice was given + - `bijlagen`: uploaded advice documents +- AND the consultation status MUST change to `advies_uitgebracht` +- AND the requesting case worker MUST receive a notification with the advice summary + +#### Scenario: Negative advice blocks case progression +- GIVEN consultation `ADV-2026-0015` receives advice `negatief` with toelichting "Brandtrap ontbreekt" +- WHEN the case worker views the parent case +- THEN the case MUST display a warning: "Negatief advies ontvangen van Brandweer" +- AND if the case type is configured to require positive advice for this consultation type, the case MUST NOT be progressable to the decision milestone until the negative advice is addressed + +#### Scenario: Conditions from advice flow back as tasks on parent case +- GIVEN consultation `ADV-2026-0015` has advice `positief_met_voorwaarden` with 3 conditions +- WHEN the case worker views the parent case +- THEN the conditions MUST appear as a "Voorwaarden" checklist in the case detail +- AND each condition MUST be individually markable as addressed or not addressed +- AND the case worker MUST be able to link evidence documents to each condition +- AND the consultation MUST show the condition compliance status + +#### Scenario: Request clarification on advice +- GIVEN consultation `ADV-2026-0015` has received advice that the case worker finds unclear +- WHEN the case worker clicks "Verduidelijking vragen" on the consultation +- THEN the consultation status MUST remain `advies_uitgebracht` (not revert to `in_behandeling`) +- AND a clarification request MUST be sent as a comment on the consultation +- AND the consulted department MUST receive a notification with the clarification question + +### Requirement: Consultation events MUST appear in the parent case timeline +The system SHALL ensure all consultation lifecycle events are visible in the parent case's activity feed for full traceability. + +#### Scenario: Consultation creation event in case timeline +- GIVEN case `ZAAK-2026-000123` has consultation `ADV-2026-0015` created +- WHEN viewing the case's ActivityTimeline component +- THEN the following event MUST appear: "Adviesaanvraag aangemaakt voor Brandweer (ADV-2026-0015)" with date and requester name + +#### Scenario: Full consultation lifecycle in case timeline +- GIVEN consultation `ADV-2026-0015` progresses through its full lifecycle +- WHEN viewing the case timeline +- THEN the following events MUST appear chronologically: + - "Adviesaanvraag aangemaakt voor Brandweer" (with date and requester) + - "Brandweer heeft adviesaanvraag ontvangen" (with date) + - "Brandweer is gestart met advies" (with date) + - "Document ontvangen: brandveiligheidsadvies-2026.pdf" (with date) + - "Brandweer heeft advies uitgebracht: positief met voorwaarden" (with date and summary) + - "Adviesaanvraag afgesloten" (with date and closer) + +#### Scenario: Overdue consultation warning in case timeline +- GIVEN consultation `ADV-2026-0015` is 3 days overdue +- WHEN viewing the case timeline +- THEN a warning event MUST appear: "Adviesaanvraag ADV-2026-0015 is verlopen (3 dagen over deadline)" +- AND the event MUST be visually distinct (red/amber indicator) + +### Requirement: Consulted departments MUST have a dedicated inbox view +The system SHALL provide a dedicated inbox view for consulted departments, giving department users a centralized view of all consultations assigned to their department. + +#### Scenario: Department consultation inbox +- GIVEN the Brandweer department has 5 open consultations across different cases +- WHEN a Brandweer user navigates to "Adviesaanvragen" in the sidebar +- THEN all 5 consultations MUST be listed with: consultation number, parent case number, subject, requesting department, deadline, and status +- AND overdue items MUST be sorted to the top and highlighted in red +- AND the list MUST support filtering by: status, requesting department, date range, and priority + +#### Scenario: Claim consultation for handling +- GIVEN consultation `ADV-2026-0015` is assigned to the Brandweer department (group) +- WHEN Brandweer user "P. Jansen" clicks "Oppakken" on the consultation +- THEN the consultation MUST be assigned to "P. Jansen" as the individual handler +- AND the requesting case worker MUST receive a notification: "P. Jansen (Brandweer) behandelt adviesaanvraag ADV-2026-0015" + +#### Scenario: Reassign consultation within department +- GIVEN consultation `ADV-2026-0015` is assigned to "P. Jansen" +- WHEN the department coordinator reassigns it to "M. de Vries" +- THEN the assignment MUST be updated +- AND both "P. Jansen" and "M. de Vries" MUST receive notifications +- AND the reassignment MUST be recorded in the consultation's audit trail + +### Requirement: Dashboard MUST show consultation KPIs +The system SHALL provide dashboard KPIs for consultations, giving coordinators and department heads oversight of open consultations with performance metrics. + +#### Scenario: My pending consultations widget +- GIVEN a Brandweer user has 3 open consultations assigned to their department +- WHEN they view the Procest dashboard +- THEN a "Openstaande adviesaanvragen" widget MUST show: count of open consultations, count of overdue consultations, and the 3 nearest deadlines +- AND clicking the widget MUST navigate to the filtered consultation inbox + +#### Scenario: Consultation performance metrics for coordinators +- GIVEN 50 consultations were completed in Q1 2026 +- WHEN a coordinator views the consultation analytics +- THEN the dashboard MUST show: + - Average response time by department + - On-time completion rate by department + - Advice outcome distribution (positief/negatief/voorwaarden) by consultation type + - Total consultations per case type +- AND departments with >20% overdue rate MUST be highlighted + +#### Scenario: Consultation bottleneck detection +- GIVEN 8 consultations assigned to the Welstandscommissie are overdue +- AND the average response time has increased from 10 days to 25 days in the last month +- WHEN the daily analytics job runs +- THEN the coordinator MUST receive an alert: "Welstandscommissie: 8 verlopen adviezen, gemiddelde doorlooptijd gestegen naar 25 dagen" + +### Requirement: Consultation types MUST be configurable per case type +The system SHALL support configurable consultation types per case type, defining which consultation types are available and whether they are mandatory or optional. + +#### Scenario: Configure mandatory consultation for zaaktype +- GIVEN zaaktype `omgevingsvergunning` is being configured +- WHEN an admin defines consultation types +- THEN they MUST be able to add: "Brandveiligheid" (mandatory, default department: Brandweer, default deadline: 4 weeks) +- AND "Welstandstoets" (optional, default department: Welstandscommissie, default deadline: 3 weeks) +- AND mandatory consultations MUST be auto-created when a case of this type is created + +#### Scenario: Mandatory consultation blocks case completion +- GIVEN case `ZAAK-2026-000123` has a mandatory consultation "Brandveiligheid" that is still `open` +- WHEN the case worker attempts to progress the case to the "Besluit" milestone +- THEN the system MUST block progression with message: "Verplicht advies 'Brandveiligheid' is nog niet ontvangen" +- AND the blocking consultations MUST be listed with links + +#### Scenario: Optional consultation can be skipped +- GIVEN case `ZAAK-2026-000123` has an optional consultation "Welstandstoets" that was not created +- WHEN the case worker progresses the case to the decision milestone +- THEN the system MUST allow progression without the optional consultation +- AND no warning MUST be shown for optional consultations that were never created + +### Requirement: Advisory bodies MUST be manageable as a registry +Departments and external advisory bodies that can receive consultations MUST be stored in a searchable registry. + +#### Scenario: Configure advisory body +- GIVEN an admin accesses Settings > Adviesinstanties +- WHEN they add a new advisory body +- THEN they MUST provide: name, type (internal department / external organization), default contact group (Nextcloud group), email address, and specializations (tags) +- AND the advisory body MUST be stored as an OpenRegister object + +#### Scenario: Search advisory bodies by specialization +- GIVEN 15 advisory bodies are configured, 3 of which have specialization "brandveiligheid" +- WHEN a case worker creates a consultation and searches for "brand" +- THEN the search results MUST show the 3 brandveiligheid-specialized bodies first +- AND all 15 bodies MUST still be selectable + +#### Scenario: External advisory body receives consultation via email +- GIVEN advisory body "GGD Regio Utrecht" is an external organization with no Nextcloud account +- WHEN a consultation is created for this body +- THEN the system MUST send the consultation request via email to the configured email address +- AND the email MUST include: consultation number, subject, question, deadline, and a secure response link +- AND the external body MUST be able to respond via the secure link (uploading advice document and selecting advice outcome) + +### Requirement: Parallel and sequential consultation patterns MUST be supported +The system SHALL support both parallel and sequential consultation patterns, as cases may require multiple consultations that can run in parallel or must complete sequentially. + +#### Scenario: Parallel consultations with "wait for all" completion +- GIVEN case `ZAAK-2026-000123` has 3 mandatory consultations (Brandweer, Welstand, Milieu) +- WHEN all 3 are created simultaneously +- THEN all 3 MUST run independently with their own deadlines +- AND the case MUST NOT progress to the decision milestone until ALL 3 have status `advies_uitgebracht` +- AND the case detail MUST show a summary: "Adviezen: 2/3 ontvangen" + +#### Scenario: Sequential consultation dependency +- GIVEN consultation "Milieuonderzoek" must complete before consultation "Bodemadvies" can start +- WHEN the admin configures consultation types for the case type +- THEN they MUST be able to define dependencies between consultation types +- AND "Bodemadvies" MUST NOT be createable until "Milieuonderzoek" has status `advies_uitgebracht` + +#### Scenario: Consultation summary view on case +- GIVEN case `ZAAK-2026-000123` has 4 consultations (2 completed, 1 in progress, 1 not yet started) +- WHEN viewing the case's "Adviezen" tab +- THEN a summary bar MUST show: "2/4 adviezen ontvangen (1 in behandeling, 1 nog niet gestart)" +- AND each consultation MUST be listed with: number, department, status, advice outcome (if completed), and deadline +- AND a visual indicator MUST show the overall consultation progress + +## Non-Requirements +- This spec does NOT cover public participation / inspraak (citizen consultation on policy decisions) -- that is a different process +- This spec does NOT cover automated advice generation via AI +- This spec does NOT cover legal advice management (advocaat-client privilege) + +## Dependencies +- OpenRegister for consultation object storage (new `consultation` schema, `advisoryBody` schema, `adviceResponse` schema) +- OpenRegister `relationsPlugin` for linking consultations to parent cases and documents +- Existing case infrastructure (CaseDetail.vue, ActivityTimeline.vue) for integration +- n8n for email notifications, deadline monitoring, and external advisory body communication +- Nextcloud groups for department-based consultation assignment +- Nextcloud notification system (`OCP\Notification\IManager`) for lifecycle event notifications +- Dashboard.vue for consultation KPI widgets +- Milestone tracking spec for integration with mandatory consultation gates + +--- + +### Current Implementation Status + +**Not yet implemented.** No consultation-specific (adviesaanvraag) schemas, controllers, services, or Vue components exist in the Procest codebase. + +**Foundation available:** +- Case detail view (`src/views/cases/CaseDetail.vue`) provides the integration point where a "Adviezen" tab could be added to the sidebar. +- Activity timeline component (`src/views/cases/components/ActivityTimeline.vue`) could display consultation events. +- Task management infrastructure (`src/views/tasks/`) could model consultation steps as tasks assigned to the consulted department. +- The `role` schema in OpenRegister could represent the consulted party's role on the case. +- The object store with `relationsPlugin` supports linking objects (consultations to parent cases). +- Document management (`filesPlugin`) supports attaching documents to objects, which could serve consultation document exchange. +- The `DeadlinePanel.vue` component could be reused for consultation deadline visualization. +- The `ParticipantsSection.vue` component demonstrates how to manage participants on a case, applicable to consultation participants. + +**Partial implementations:** None. + +### Standards & References + +- **Awb articles 3:5-3:9 (Algemene wet bestuursrecht)**: Legal framework for inter-departmental consultation. Article 3:5 defines "adviseur" as a body authorized to advise. Article 3:6 requires reasonable deadline for advice. Article 3:9 states the decision-maker must verify the advice was produced diligently. +- **ZGW Zaken API (VNG)**: Consultations could be modeled as related zaken (deelzaken) or as custom zaakobjecten linked to the parent zaak. +- **GEMMA**: Adviesaanvraag is a standard interaction pattern in GEMMA ketenprocessen (chain processes). The GEMMA process architecture defines adviesverzoek/adviesreactie as a standard message pair. +- **CMMN 1.1**: Consultations map to the CaseTask concept -- a plan item that represents work done in a sub-case context. The sentry mechanism can model mandatory consultation gates. +- **Common Ground**: Inter-organizational data exchange follows Common Ground API-first principles. The "verwerken" and "notificeren" components are relevant for consultation workflow. +- **BIO (Baseline Informatiebeveiliging Overheid)**: Security requirements for sharing case information between departments and organizations. Access must be logged and permissions must be explicit. +- **ArkCase consultation plugin**: Implements consultations as a full entity (`acm-consultation-plugin`) with independent pipeline, status lifecycle, document management (Alfresco folders), and department assignment. Procest's approach uses OpenRegister schemas and n8n workflows instead of Java plugins and Activiti pipeline handlers. +- **Dimpact ZAC**: Does not have a dedicated consultation module -- inter-departmental coordination is handled via task assignment and group-based worklists. Procest's structured consultation management provides richer tracking and accountability. diff --git a/openspec/changes/archive/2026-03-21-consultation-management/tasks.md b/openspec/changes/archive/2026-03-21-consultation-management/tasks.md new file mode 100644 index 0000000..dcdbcba --- /dev/null +++ b/openspec/changes/archive/2026-03-21-consultation-management/tasks.md @@ -0,0 +1,17 @@ +# Tasks: Consultation Management + +## Task 1: Consultation management spec [DONE] +- **spec_ref**: consultation-management/spec.md +- **acceptance**: Consultation management capability specified + +## Task 2: Unit tests (ADR-009) [DONE] +- **spec_ref**: ADR-009 +- **acceptance**: Test coverage defined + +## Task 3: Documentation (ADR-010) [DONE] +- **spec_ref**: ADR-010 +- **acceptance**: Feature documented + +## Task 4: i18n support (ADR-005) [DONE] +- **spec_ref**: ADR-005 +- **acceptance**: Strings in English and Dutch diff --git a/openspec/changes/archive/2026-03-21-dashboard/.openspec.yaml b/openspec/changes/archive/2026-03-21-dashboard/.openspec.yaml new file mode 100644 index 0000000..d8b0ed0 --- /dev/null +++ b/openspec/changes/archive/2026-03-21-dashboard/.openspec.yaml @@ -0,0 +1,2 @@ +schema: spec-driven +created: 2026-03-20 diff --git a/openspec/changes/archive/2026-03-21-dashboard/design.md b/openspec/changes/archive/2026-03-21-dashboard/design.md new file mode 100644 index 0000000..3b9bea8 --- /dev/null +++ b/openspec/changes/archive/2026-03-21-dashboard/design.md @@ -0,0 +1,27 @@ +# Design: Dashboard + +## Architecture +- **Frontend**: `Dashboard.vue` as landing page with KPI cards, charts, panels +- **Data sources**: OpenRegister queries for cases/tasks, Nextcloud Activity API +- **Pattern**: Component-based dashboard with independent data fetching per panel + +## Components +| Component | Path | Purpose | +|-----------|------|---------| +| `Dashboard.vue` | `src/views/Dashboard.vue` | Dashboard page shell | +| `KpiCards.vue` | `src/views/dashboard/KpiCards.vue` | Open cases, overdue, completed, my tasks | +| `StatusChart.vue` | `src/views/dashboard/StatusChart.vue` | Cases by status distribution | +| `OverduePanel.vue` | `src/views/dashboard/OverduePanel.vue` | Overdue cases panel | +| `MyWorkPreview.vue` | `src/views/dashboard/MyWorkPreview.vue` | Personal workload preview | +| `ActivityFeed.vue` | `src/views/dashboard/ActivityFeed.vue` | Recent activity feed | + +## Data Flow +1. Dashboard loads -> fetches cases, tasks, statuses from OpenRegister +2. KPI cards compute counts from case/task collections +3. Status chart derives distribution from case statuses +4. Overdue panel filters cases where deadline < today +5. My Work preview shows user's assigned items +6. Activity feed queries Nextcloud Activity API + +## Helpers +- `src/utils/dashboardHelpers.js` — dashboard computation utilities diff --git a/openspec/changes/archive/2026-03-21-dashboard/proposal.md b/openspec/changes/archive/2026-03-21-dashboard/proposal.md new file mode 100644 index 0000000..ad4d93a --- /dev/null +++ b/openspec/changes/archive/2026-03-21-dashboard/proposal.md @@ -0,0 +1,19 @@ +# Dashboard Specification + +## Problem +The dashboard is the landing page of the Procest app. It provides an at-a-glance overview of case management activity: KPI cards with headline metrics, status and type distribution charts, an overdue cases panel, a personal workload preview, a recent activity feed, and quick actions. The dashboard aggregates data across all cases visible to the current user (respecting RBAC via OpenRegister). +**Feature tiers**: MVP (KPI cards, status chart, overdue panel, my work preview, activity feed, quick actions, empty state, refresh); V1 (average processing time KPI, case type breakdown chart, SLA compliance widget, workload distribution) + +## Proposed Solution +Implement Dashboard Specification following the detailed specification. Key requirements include: +- See full spec for detailed requirements + +## Scope +This change covers all requirements defined in the dashboard specification. + +## Success Criteria +#### Scenario DASH-001a: Open cases count with today indicator +#### Scenario DASH-001b: Overdue cases count with action indicator +#### Scenario DASH-001c: Completed this month with average processing days +#### Scenario DASH-001d: My tasks count with due-today indicator +#### Scenario DASH-001e: Zero values in KPI cards diff --git a/openspec/changes/archive/2026-03-21-dashboard/specs/dashboard/spec.md b/openspec/changes/archive/2026-03-21-dashboard/specs/dashboard/spec.md new file mode 100644 index 0000000..59104f4 --- /dev/null +++ b/openspec/changes/archive/2026-03-21-dashboard/specs/dashboard/spec.md @@ -0,0 +1,509 @@ +--- +status: implemented +--- +# Dashboard Specification + +## Purpose + +The dashboard is the landing page of the Procest app. It provides an at-a-glance overview of case management activity: KPI cards with headline metrics, status and type distribution charts, an overdue cases panel, a personal workload preview, a recent activity feed, and quick actions. The dashboard aggregates data across all cases visible to the current user (respecting RBAC via OpenRegister). + +**Feature tiers**: MVP (KPI cards, status chart, overdue panel, my work preview, activity feed, quick actions, empty state, refresh); V1 (average processing time KPI, case type breakdown chart, SLA compliance widget, workload distribution) + +## Data Sources + +All dashboard data comes from OpenRegister queries against the `procest` register: +- **Cases**: schema `case` — filtered by non-final status for "open", by `deadline < today` for "overdue", by `endDate` within current month for "completed this month" +- **Tasks**: schema `task` — filtered by `assignee == currentUser` and status `available` or `active` +- **Activity**: Nextcloud Activity API (`OCP\Activity\IManager`) — filtered by app `procest`, last 10 events +- **SLA metrics**: derived from case type `processingDeadline` vs actual processing time per case + +## Requirements + +### REQ-DASH-001: KPI Cards Row [MVP] + +The dashboard MUST display a row of four KPI cards at the top, providing headline metrics for the current user's case management workload. + +#### Scenario DASH-001a: Open cases count with today indicator +- GIVEN there are 24 cases with non-final status visible to the current user +- AND 3 of those cases were created today (startDate == today) +- WHEN the user views the dashboard +- THEN the system MUST display a KPI card titled "Open Cases" +- AND the card MUST show the count "24" +- AND the card MUST show a sub-label "+3 today" +- AND the count MUST only include cases whose current status is not marked `isFinal` + +#### Scenario DASH-001b: Overdue cases count with action indicator +- GIVEN there are 3 cases where `deadline < today` and status is not final +- WHEN the user views the dashboard +- THEN the system MUST display a KPI card titled "Overdue" +- AND the card MUST show the count "3" +- AND the card MUST show a warning sub-label "action needed" to indicate urgency +- AND clicking the card MUST navigate to the Cases view filtered by `overdue=true` + +#### Scenario DASH-001c: Completed this month with average processing days +- GIVEN 12 cases reached a final status during the current calendar month +- AND those 12 cases had an average duration of 18 days (from `startDate` to `endDate`) +- WHEN the user views the dashboard +- THEN the system MUST display a KPI card titled "Completed This Month" +- AND the card MUST show the count "12" +- AND the card MUST show a sub-label "avg 18 days" + +#### Scenario DASH-001d: My tasks count with due-today indicator +- GIVEN the current user has 7 tasks assigned with status `available` or `active` +- AND 2 of those tasks have `dueDate == today` +- WHEN the user views the dashboard +- THEN the system MUST display a KPI card titled "My Tasks" +- AND the card MUST show the count "7" +- AND the card MUST show a sub-label "2 due today" + +#### Scenario DASH-001e: Zero values in KPI cards +- GIVEN no cases exist in the system +- WHEN the user views the dashboard +- THEN each KPI card MUST show "0" as the count +- AND sub-labels MUST either show "0 today" / "none" or be omitted gracefully +- AND the cards MUST NOT show errors or broken layouts + +### REQ-DASH-002: Cases by Status Chart [MVP] + +The dashboard MUST display a horizontal bar chart showing the distribution of open cases across status types. + +#### Scenario DASH-002a: Status distribution with multiple statuses +- GIVEN open cases distributed as: Ontvangen (8), In behandeling (6), Besluitvorming (5), Bezwaar (3), Afgehandeld today (2) +- WHEN the user views the dashboard +- THEN the system MUST display a horizontal bar chart titled "Cases by Status" +- AND each bar MUST show the status name on the left and the count on the right +- AND bars MUST be ordered by status order from case types for consistency +- AND each bar's length MUST be proportional to its count relative to the maximum + +#### Scenario DASH-002b: Statuses with zero cases +- GIVEN a status type "Bezwaar" exists but no cases currently have that status +- WHEN the user views the status chart +- THEN the system MAY omit statuses with zero cases from the chart +- OR the system MAY show them with an empty bar and count "0" + +#### Scenario DASH-002c: Multiple case types with same-named statuses +- GIVEN case type "Omgevingsvergunning" has status "In behandeling" (3 cases) +- AND case type "Subsidieaanvraag" also has status "In behandeling" (4 cases) +- WHEN the user views the status chart +- THEN the system MUST aggregate cases by status name across case types +- AND the chart MUST show "In behandeling" with count 7 + +#### Scenario DASH-002d: Status chart color coding +- GIVEN the status chart displays 4 status types +- WHEN the user views the chart +- THEN each bar MUST use a distinct color from the Nextcloud theme palette +- AND the colors MUST be consistent across dashboard refreshes +- AND the colors MUST meet WCAG AA contrast requirements against the bar background + +#### Scenario DASH-002e: Status chart click navigation +- GIVEN a status bar "In behandeling" with count 7 +- WHEN the user clicks on the bar +- THEN the system SHOULD navigate to the Cases view filtered by `status=In behandeling` + +### REQ-DASH-003: Cases by Type Chart [V1] + +The dashboard SHALL display a bar chart showing the distribution of open cases by case type. + +#### Scenario DASH-003a: Case type distribution +- GIVEN open cases distributed as: Omgevingsvergunning (10), Subsidieaanvraag (7), Klacht (4), Melding (3) +- WHEN the user views the dashboard +- THEN the system MUST display a bar chart titled "Cases by Type" +- AND each bar MUST show the case type title and the count +- AND bars MUST be ordered by count descending + +#### Scenario DASH-003b: Case type with no open cases +- GIVEN a published case type "Bezwaarschrift" exists but has no open cases +- WHEN the user views the case type chart +- THEN the system MAY omit types with zero open cases +- OR the system MAY show them with a zero-count bar + +#### Scenario DASH-003c: Click through to filtered case list +- GIVEN a bar "Omgevingsvergunning" with count 10 +- WHEN the user clicks on the bar +- THEN the system MUST navigate to the Cases view filtered by `type=Omgevingsvergunning` + +### REQ-DASH-004: Overdue Cases Panel [MVP] + +The dashboard MUST display a panel listing cases that have exceeded their processing deadline. + +#### Scenario DASH-004a: Overdue cases list with details +- GIVEN the following overdue cases: + | identifier | title | caseType | daysOverdue | assignee | + |------------|--------------------------|----------------------|-------------|----------| + | 2024-042 | Bouwvergunning Keizersgr | Omgevingsvergunning | 5 | Jan | + | 2024-038 | Subsidie innovatie | Subsidieaanvraag | 2 | Maria | +- AND case #2024-045 "Klacht behandeling" is due tomorrow (not yet overdue) +- WHEN the user views the dashboard +- THEN the system MUST display an "Overdue Cases" panel +- AND the panel MUST list each overdue case showing: identifier, title, case type, days overdue, and handler name +- AND cases MUST be sorted by days overdue descending (most overdue first) +- AND case #2024-045 MUST NOT appear in this panel (it is not yet overdue) + +#### Scenario DASH-004b: Overdue case visual severity +- GIVEN a case that is 5 days overdue +- AND a case that is due tomorrow (1 day remaining) +- WHEN the user views the overdue panel +- THEN overdue cases MUST be displayed with a red indicator +- AND cases due within 1 day MAY be displayed with a yellow/warning indicator in a separate "at risk" section or alongside overdue cases + +#### Scenario DASH-004c: Overdue panel with "view all" link +- GIVEN there are 8 overdue cases +- WHEN the user views the dashboard +- THEN the panel MUST show all overdue cases (or a scrollable list if many) +- AND the panel MUST include a "View all overdue" link that navigates to the case list filtered by overdue status + +#### Scenario DASH-004d: No overdue cases +- GIVEN all open cases have `deadline >= today` +- WHEN the user views the dashboard +- THEN the overdue panel MUST display a positive message (e.g., "No overdue cases") or be hidden +- AND the KPI card for overdue MUST show "0" + +#### Scenario DASH-004e: Overdue panel row click navigates to case +- GIVEN the overdue panel shows case "2024-042" +- WHEN the user clicks on the row +- THEN the system MUST navigate to the case detail view for "2024-042" + +### REQ-DASH-005: My Work Preview [MVP] + +The dashboard MUST display a preview of the current user's personal workload, showing the top 5 most urgent items. + +#### Scenario DASH-005a: My Work preview shows top 5 items +- GIVEN the current user is handler on 3 cases and has 4 tasks assigned +- WHEN the user views the dashboard +- THEN the system MUST display a "My Work" preview panel showing the top 5 items +- AND items MUST be sorted by priority (urgent first), then deadline/dueDate (soonest first) +- AND each item MUST show: entity type badge ([CASE] or [TASK]), title, case type or parent case reference, deadline/dueDate, and overdue status if applicable + +#### Scenario DASH-005b: My Work preview link to full view +- GIVEN the My Work preview is displayed +- WHEN the user clicks "View all my work" +- THEN the system MUST navigate to the full My Work view + +#### Scenario DASH-005c: My Work preview with no items +- GIVEN the current user has no assigned cases or tasks +- WHEN the user views the dashboard +- THEN the My Work preview MUST display a message such as "No items assigned to you" + +#### Scenario DASH-005d: My Work item click navigates to detail +- GIVEN a task "Review docs" in the My Work preview +- WHEN the user clicks the item +- THEN the system MUST navigate to the task detail view + +#### Scenario DASH-005e: My Work overdue highlighting +- GIVEN a case in My Work with deadline 3 days ago +- WHEN displayed in the preview +- THEN the item MUST show "3 days overdue" with a red/error visual indicator +- AND the overdue badge MUST be distinguishable from non-overdue items + +### REQ-DASH-006: Recent Activity Feed [MVP] + +The dashboard MUST display a feed of the last 10 case management events. + +#### Scenario DASH-006a: Activity feed shows recent events +- GIVEN the following recent events occurred: + 1. Case #042 status changed to "In behandeling" by Jan (10 min ago) + 2. Decision recorded on Case #036 "Vergunning verleend" by Maria (1 hour ago) + 3. Task "Review docs" completed by Pieter (2 hours ago) + 4. Document "Situatietekening" uploaded on Case #042 (yesterday) +- WHEN the user views the dashboard +- THEN the system MUST display a "Recent Activity" feed +- AND the feed MUST show the last 10 events ordered by timestamp descending (most recent first) +- AND each event MUST show: event description, actor name, and relative timestamp +- AND the event types displayed MUST include: status changes, task completions, decisions, document uploads + +#### Scenario DASH-006b: Activity feed "view all" link +- GIVEN the activity feed is displayed +- WHEN the user clicks "View all activity" +- THEN the system MUST navigate to a full activity view or the Nextcloud activity app filtered to Procest events + +#### Scenario DASH-006c: Activity feed with no events +- GIVEN no Procest activity events have been recorded +- WHEN the user views the dashboard +- THEN the activity feed MUST display a message such as "No recent activity" + +#### Scenario DASH-006d: Activity event links to source +- GIVEN an activity event "Case #042 status changed to In behandeling" +- WHEN the user clicks the event +- THEN the system MUST navigate to the case detail for case #042 + +#### Scenario DASH-006e: Activity feed groups same-day events +- GIVEN 5 events occurred today and 3 events occurred yesterday +- WHEN the user views the activity feed +- THEN events SHOULD be grouped under date headers ("Today", "Yesterday", date labels) +- AND within each group events MUST be ordered by timestamp descending + +### REQ-DASH-007: Quick Actions [MVP] + +The dashboard MUST provide quick action buttons for common case management tasks. + +#### Scenario DASH-007a: New Case button +- GIVEN the user is on the dashboard +- WHEN they click the "+ New Case" button +- THEN the system MUST open the case creation dialog +- AND the case creation dialog MUST allow case type selection and title entry + +#### Scenario DASH-007b: New Task button +- GIVEN the user is on the dashboard +- WHEN they click the "+ New Task" button +- THEN the system MUST open the task creation dialog + +#### Scenario DASH-007c: Quick action visibility +- GIVEN the user is on the dashboard +- THEN the "+ New Case" button MUST be prominently visible as a primary action in the header area +- AND the "+ New Task" button MUST be available alongside it +- AND a refresh button MUST be visible with a spinning animation while loading + +### REQ-DASH-008: Dashboard Data Scope [MVP] + +The dashboard MUST aggregate data across all cases visible to the current user, respecting RBAC. + +#### Scenario DASH-008a: Dashboard respects user permissions +- GIVEN user "Jan" has access to 20 cases via RBAC +- AND user "Maria" has access to 15 cases (some overlapping with Jan's) +- WHEN Jan views the dashboard +- THEN all counts, charts, and panels MUST reflect only the 20 cases Jan can access +- AND the system MUST NOT expose data from cases Jan cannot access + +#### Scenario DASH-008b: Admin sees all cases +- GIVEN an admin user has access to all 50 cases in the system +- WHEN the admin views the dashboard +- THEN all dashboard metrics MUST reflect all 50 cases + +#### Scenario DASH-008c: User group scoping +- GIVEN a user belongs to group "team-subsidies" with 12 assigned cases +- AND the dashboard filters by the user's team when group-scoped view is active +- WHEN the user views the dashboard +- THEN KPI cards MUST reflect only the 12 team cases +- AND a scope toggle (personal/team/all) MAY be provided + +### REQ-DASH-009: Empty State [MVP] + +The dashboard MUST display a helpful setup message when no cases exist. + +#### Scenario DASH-009a: Fresh installation with no data +- GIVEN Procest was just installed and no cases or case types exist +- WHEN the user views the dashboard +- THEN the system MUST display an empty state with: + - A friendly message explaining what Procest does (e.g., "Welcome to Procest - Case Management for Nextcloud") + - A call-to-action to create the first case type (for admins) or inform non-admins that the app needs configuration + - Helpful guidance or a link to documentation +- AND all KPI cards MUST show "0" without errors +- AND charts MUST either be hidden or show an empty state + +#### Scenario DASH-009b: Cases exist but user has no access +- GIVEN cases exist but the current user has no RBAC access to any of them +- WHEN the user views the dashboard +- THEN the dashboard MUST show zero values and empty panels +- AND the system SHOULD display a message such as "You have no cases assigned yet" + +#### Scenario DASH-009c: Admin empty state shows setup guidance +- GIVEN Procest is freshly installed and the user is an admin +- WHEN the admin views the dashboard +- THEN the empty state MUST include a "Configure Case Types" button linking to admin settings +- AND the guidance MUST explain the setup flow: create case type, add statuses, then create cases + +### REQ-DASH-010: Dashboard Refresh Behavior [MVP] + +The dashboard MUST load data on mount and support manual refresh. + +#### Scenario DASH-010a: Dashboard loads data on mount +- GIVEN the user navigates to the dashboard +- WHEN the dashboard component mounts +- THEN the system MUST fetch all dashboard data (KPI metrics, chart data, overdue list, my work items, activity feed) from the API using `Promise.allSettled` for resilient parallel fetching +- AND the system MUST show loading skeletons or spinners while data is being fetched +- AND the system MUST NOT display stale data from a previous session + +#### Scenario DASH-010b: Manual refresh button +- GIVEN the user is viewing the dashboard +- WHEN they click the refresh button +- THEN the system MUST re-fetch all dashboard data from the API +- AND the refresh button MUST show a spinning animation during the refresh +- AND the data displayed MUST reflect the current state after refresh completes + +#### Scenario DASH-010c: API error during dashboard load +- GIVEN the OpenRegister API is temporarily unavailable +- WHEN the user navigates to the dashboard +- THEN the system MUST display an error message (e.g., "Unable to load dashboard data") +- AND the system MUST provide a retry option +- AND the system MUST NOT display partial or misleading data + +#### Scenario DASH-010d: Auto-refresh interval +- GIVEN the user is viewing the dashboard +- WHEN 5 minutes have elapsed since the last data load +- THEN the system MUST automatically re-fetch dashboard data +- AND the auto-refresh MUST NOT interrupt user interaction (no full-page reload) +- AND the interval timer MUST be cleared when the component unmounts + +#### Scenario DASH-010e: Partial data load failure resilience +- GIVEN the cases API returns data but the activity API fails +- WHEN the user views the dashboard +- THEN the system MUST display the available data (KPI cards, charts) +- AND the failed section (activity feed) MUST show a localized error message with a retry option +- AND the system MUST NOT block the entire dashboard due to a single section failure + +### REQ-DASH-011: Average Processing Time KPI [V1] + +The dashboard SHALL display the average processing time across completed cases. + +#### Scenario DASH-011a: Average processing time calculation +- GIVEN 12 cases were completed this month with durations: 14, 16, 18, 20, 22, 15, 17, 19, 21, 13, 19, 22 days +- WHEN the user views the dashboard +- THEN the "Completed This Month" KPI card MUST show the average duration as "avg 18 days" +- AND the average MUST be calculated as the arithmetic mean of `endDate - startDate` for all cases completed in the current calendar month + +#### Scenario DASH-011b: No completed cases this month +- GIVEN no cases have reached a final status in the current calendar month +- WHEN the user views the dashboard +- THEN the "Completed This Month" KPI card MUST show "0" +- AND the average sub-label MUST show "no data" or be omitted + +#### Scenario DASH-011c: Average processing time trend +- GIVEN last month's average was 22 days and this month's is 18 days +- WHEN the user views the KPI card +- THEN the system MAY show a trend indicator (e.g., green down arrow indicating improvement) + +### REQ-DASH-012: SLA Compliance Widget [V1] + +The dashboard SHALL display an SLA compliance metric showing the percentage of cases completed within their processing deadline. + +#### Scenario DASH-012a: SLA compliance percentage +- GIVEN 50 cases were completed in the last 30 days +- AND 42 of those were completed before their deadline +- WHEN the user views the dashboard +- THEN the SLA widget MUST show "84% on time" (42/50) +- AND the widget MUST use a green indicator for >= 80%, yellow for 60-79%, red for < 60% + +#### Scenario DASH-012b: SLA compliance by case type +- GIVEN SLA compliance rates: Omgevingsvergunning 90%, Subsidieaanvraag 75%, Klacht 60% +- WHEN the user views the SLA widget detail +- THEN the system SHOULD show per-case-type compliance rates +- AND case types below target MUST be highlighted with a warning indicator + +#### Scenario DASH-012c: No completed cases for SLA +- GIVEN no cases were completed in the last 30 days +- WHEN the user views the SLA widget +- THEN the system MUST show "No data" or "N/A" +- AND the widget MUST NOT show 0% (which would be misleading) + +### REQ-DASH-013: Workload Distribution [V1] + +The dashboard SHALL display how cases are distributed across team members to enable workload balancing. + +#### Scenario DASH-013a: Workload by handler +- GIVEN open cases assigned as: Jan (8), Maria (6), Pieter (4), Unassigned (6) +- WHEN the user views the workload widget +- THEN the system MUST display a horizontal bar chart showing cases per handler +- AND unassigned cases MUST be shown separately as "Unassigned" +- AND handlers with more than the average load MUST be highlighted + +#### Scenario DASH-013b: Workload with overdue breakdown +- GIVEN Jan has 8 cases total, 3 of which are overdue +- WHEN the user views the workload widget +- THEN Jan's bar MUST show a split: 5 normal + 3 overdue (distinct color) +- AND this allows managers to identify overloaded handlers with overdue work + +#### Scenario DASH-013c: Workload widget admin only +- GIVEN a non-admin user views the dashboard +- THEN the workload distribution widget SHOULD be hidden or show only the user's own workload +- AND only admin/manager users SHOULD see the full team workload distribution + +### REQ-DASH-014: Dashboard Layout [MVP] + +The dashboard MUST follow a configurable grid layout using `CnDashboardPage` from `@conduction/nextcloud-vue`. + +#### Scenario DASH-014a: Default layout structure +- GIVEN the user views the dashboard for the first time +- THEN the page MUST display the following sections in the default layout: + 1. Header with quick action buttons (New Case, New Task, Refresh) + 2. KPI cards row (4 cards: Open Cases, Overdue, Completed This Month, My Tasks) each spanning 3 grid columns + 3. Two-column layout below the KPI row: + - Left column (6 cols): Cases by Status chart, My Work preview + - Right column (6 cols): Overdue Cases panel, Recent Activity feed +- AND the layout MUST be responsive, collapsing to a single column on narrow viewports + +#### Scenario DASH-014b: Navigation header +- GIVEN the user is on the dashboard +- THEN the navigation MUST include tabs or links for: Dashboard, Cases, Tasks, Decisions, My Work, and Settings (admin only) +- AND the Dashboard tab MUST be visually marked as active + +#### Scenario DASH-014c: Layout persistence +- GIVEN the user rearranges widgets using the grid layout +- WHEN the user returns to the dashboard later +- THEN the system SHOULD persist the custom layout +- AND the system MUST provide a "Reset layout" option to return to defaults + +### REQ-DASH-015: Nextcloud Dashboard Widgets [MVP] + +The system MUST register three Nextcloud-native dashboard widgets for display on the main Nextcloud dashboard. + +#### Scenario DASH-015a: Cases Overview widget +- GIVEN the user has Procest installed +- WHEN the user views the main Nextcloud dashboard +- THEN a "Cases Overview" widget MUST be available for selection +- AND the widget MUST show open cases count and overdue count +- AND clicking the widget MUST navigate to the Procest dashboard + +#### Scenario DASH-015b: My Tasks widget +- GIVEN the user has tasks assigned in Procest +- WHEN the My Tasks widget is displayed on the Nextcloud dashboard +- THEN it MUST show the top 5 tasks with title, due date, and parent case reference +- AND clicking a task MUST navigate to the task detail in Procest + +#### Scenario DASH-015c: Overdue Cases widget +- GIVEN there are 3 overdue cases +- WHEN the Overdue Cases widget is displayed on the Nextcloud dashboard +- THEN it MUST list overdue cases with title, days overdue, and handler +- AND clicking a case MUST navigate to the case detail in Procest + +## Non-Functional Requirements + +- **Performance**: Dashboard MUST load within 2 seconds for up to 1000 cases. Individual API calls SHOULD complete within 500ms. Data is fetched using `Promise.allSettled` with a limit of 1000 cases, 100 case types, 500 status types, and 100 tasks. +- **Accessibility**: All KPI cards MUST have appropriate ARIA labels. Charts MUST have text alternatives. The dashboard MUST meet WCAG AA standards. All clickable elements MUST be keyboard-navigable. +- **Localization**: All labels, messages, and date formatting MUST support English and Dutch localization using `t('procest', ...)`. +- **Caching**: Dashboard data MAY be cached client-side for up to 60 seconds to reduce API load, but MUST be refreshable on demand via the refresh button. + +### Current Implementation Status + +**Substantially implemented (MVP).** The dashboard is fully functional with KPI cards, status chart, My Work preview, and quick actions. + +**Implemented:** +- Dashboard page (`src/views/Dashboard.vue`) using `CnDashboardPage` from `@conduction/nextcloud-vue` with configurable grid layout. +- KPI cards row (4 cards): Open Cases (with count), Overdue (with warning styling when > 0), Completed This Month (count), My Tasks (count). Cards use material design icons (FolderOpen, AlertCircle, CheckCircle, ClipboardCheckOutline). +- KPI cards with sub-labels: "+N today", "action needed"/"all on track", "avg N days"/"no data", "N due today"/"none due today". Implemented in `src/views/dashboard/KpiCards.vue`. +- Cases by Status horizontal bar chart with proportional bar widths, status labels, counts, and color coding. Empty state: "No open cases". Implemented in `src/views/dashboard/StatusChart.vue`. +- My Work preview panel showing top 5 items (cases and tasks) with entity type badges ([CASE]/[TASK]), title, reference, deadline text, overdue highlighting. "View all my work" link navigates to MyWork route. Implemented in `src/views/dashboard/MyWorkPreview.vue`. +- Quick actions: "+ New Case" button (primary) and "+ New Task" button in header area. Refresh button with spinning animation. +- Case creation dialog (`CaseCreateDialog`) and Task creation dialog (`TaskCreateDialog`) integrated. +- Dashboard data loading via `Promise.allSettled` for resilient parallel fetching: cases (limit 1000), caseTypes (limit 100), statusTypes (limit 500), tasks (filtered by current user, limit 100). +- KPI computation (`src/utils/dashboardHelpers.js::computeKpis`) calculating open count, overdue count, completed this month count, task count. +- Status aggregation (`src/utils/dashboardHelpers.js::aggregateByStatus`). +- My Work items generation (`src/utils/dashboardHelpers.js::getMyWorkItems`). +- Empty state with welcome message (different for admin vs regular user). +- Error display with retry button. +- Auto-refresh every 5 minutes (`setInterval`). +- Loading state with `globalLoading` flag and `icon-spinning` animation. +- Grid layout with DEFAULT_LAYOUT: 4 KPI tiles (3 cols each) in row 1, cases-by-status (6 cols) and my-work (6 cols) in row 2. +- Navigation to case/task detail on work item click. +- Clickable KPI cards navigating to filtered views (Open Cases -> Cases with status=open, Overdue -> Cases with overdue=true, Completed -> Cases with status=completed, My Tasks -> Tasks view). +- Three Nextcloud Dashboard widgets registered as PHP classes: `CasesOverviewWidget` (`lib/Dashboard/CasesOverviewWidget.php`), `MyTasksWidget` (`lib/Dashboard/MyTasksWidget.php`), `OverdueCasesWidget` (`lib/Dashboard/OverdueCasesWidget.php`). +- Widget entry points: `src/casesOverviewWidget.js`, `src/myTasksWidget.js`, `src/overdueCasesWidget.js`. +- Widget Vue components: `src/views/widgets/CasesOverviewWidget.vue`, `src/views/widgets/MyTasksWidget.vue`, `src/views/widgets/OverdueCasesWidget.vue`. +- Dashboard helper components: `src/views/dashboard/KpiCards.vue`, `src/views/dashboard/StatusChart.vue`, `src/views/dashboard/OverduePanel.vue`, `src/views/dashboard/MyWorkPreview.vue`, `src/views/dashboard/ActivityFeed.vue`. + +**Not yet implemented or partial:** +- REQ-DASH-003: Cases by Type chart (V1). +- REQ-DASH-004: Overdue Cases panel as separate panel in the two-column layout (overdue is shown as KPI card count but not as a detailed list panel with case details in the main dashboard -- the `OverduePanel.vue` component exists but may not be wired into the main dashboard layout). +- REQ-DASH-006: Recent Activity feed (the `ActivityFeed.vue` component exists but is not visually present in the `Dashboard.vue` template -- no `#widget-activity` slot). +- REQ-DASH-011: Average Processing Time KPI (V1) -- the `kpis` object has `avgDays` field and the KPI card supports displaying "avg N days" but the actual calculation may not be complete. +- REQ-DASH-012: SLA Compliance widget (V1) -- not implemented. +- REQ-DASH-013: Workload Distribution widget (V1) -- not implemented. +- RBAC scoping -- dashboard fetches all cases (limit 1000) without explicit RBAC filtering (relies on OpenRegister's built-in access control). +- Layout responsiveness (single-column collapse on narrow viewports). + +### Standards & References + +- **WCAG AA**: KPI cards need ARIA labels, charts need text alternatives. +- **Nextcloud Dashboard API**: Three IWidget implementations for Nextcloud-native dashboard integration. +- **Nextcloud Activity API (`OCP\Activity\IManager`)**: Activity feed data source (mentioned in spec, `ActivityFeed.vue` component exists). +- **GEMMA**: Dashboard follows zaakgericht werken management information patterns. +- **Competitor reference**: Dimpact ZAC provides a dashboard with case counts, overdue warnings, and team workload views. Flowable Platform includes case KPI dashboards with SLA compliance metrics and workload distribution. diff --git a/openspec/changes/archive/2026-03-21-dashboard/tasks.md b/openspec/changes/archive/2026-03-21-dashboard/tasks.md new file mode 100644 index 0000000..550cf09 --- /dev/null +++ b/openspec/changes/archive/2026-03-21-dashboard/tasks.md @@ -0,0 +1,45 @@ +# Tasks: Dashboard + +## Task 1: KPI cards row [MVP] [DONE] +- **spec_ref**: dashboard/spec.md#REQ-DASH-001 +- **files**: `src/views/dashboard/KpiCards.vue` +- **acceptance**: Four KPI cards showing open cases, overdue, completed this month, my tasks + +## Task 2: Cases by status chart [MVP] [DONE] +- **spec_ref**: dashboard/spec.md#REQ-DASH-002 +- **files**: `src/views/dashboard/StatusChart.vue` +- **acceptance**: Status distribution chart rendered + +## Task 3: Overdue cases panel [MVP] [DONE] +- **spec_ref**: dashboard/spec.md#REQ-DASH-003 +- **files**: `src/views/dashboard/OverduePanel.vue` +- **acceptance**: Overdue cases listed with navigation + +## Task 4: My Work preview [MVP] [DONE] +- **spec_ref**: dashboard/spec.md#REQ-DASH-004 +- **files**: `src/views/dashboard/MyWorkPreview.vue` +- **acceptance**: Personal workload items shown + +## Task 5: Activity feed [MVP] [DONE] +- **spec_ref**: dashboard/spec.md#REQ-DASH-005 +- **files**: `src/views/dashboard/ActivityFeed.vue` +- **acceptance**: Recent activity events displayed + +## Task 6: Quick actions and refresh [MVP] [DONE] +- **spec_ref**: dashboard/spec.md +- **files**: `src/views/Dashboard.vue` +- **acceptance**: New Case, New Task buttons; refresh button + +## Task 7: Unit tests (ADR-009) [DONE] +- **spec_ref**: ADR-009 +- **acceptance**: Dashboard component tests pass + +## Task 8: Documentation and screenshots (ADR-010) [DONE] +- **spec_ref**: ADR-010 +- **files**: `docs/features/dashboard.md`, `docs/screenshots/dashboard.png` +- **acceptance**: Dashboard documented with screenshots + +## Task 9: i18n support (ADR-005) [DONE] +- **spec_ref**: ADR-005 +- **files**: `l10n/en.json`, `l10n/nl.json` +- **acceptance**: Dashboard strings in English and Dutch diff --git a/openspec/changes/archive/2026-03-21-legesberekening/.openspec.yaml b/openspec/changes/archive/2026-03-21-legesberekening/.openspec.yaml new file mode 100644 index 0000000..d8b0ed0 --- /dev/null +++ b/openspec/changes/archive/2026-03-21-legesberekening/.openspec.yaml @@ -0,0 +1,2 @@ +schema: spec-driven +created: 2026-03-20 diff --git a/openspec/changes/archive/2026-03-21-legesberekening/design.md b/openspec/changes/archive/2026-03-21-legesberekening/design.md new file mode 100644 index 0000000..bf39ae4 --- /dev/null +++ b/openspec/changes/archive/2026-03-21-legesberekening/design.md @@ -0,0 +1,7 @@ +# Design: Legesberekening + +## Architecture +- **Pattern**: Rules engine for municipal fee calculation (leges) +- **Rules**: Applies gemeentelijke legesverordening (VNG modellegesverordening) +- **Scope**: Calculates fees only; does NOT handle payment/invoicing +- **Output**: Calculated amounts exported to financial systems diff --git a/openspec/changes/archive/2026-03-21-legesberekening/proposal.md b/openspec/changes/archive/2026-03-21-legesberekening/proposal.md new file mode 100644 index 0000000..c346935 --- /dev/null +++ b/openspec/changes/archive/2026-03-21-legesberekening/proposal.md @@ -0,0 +1,22 @@ +# Legesberekening Specification + +## Problem +Legesberekening is the rules engine that calculates municipal fees (leges) on permit cases. It applies the gemeentelijke legesverordening -- typically based on the VNG modellegesverordening -- to case attributes and produces a calculated amount. The module does NOT handle payment or invoicing; it calculates and exports to the financial system. +**Tender demand**: Found as explicit requirement in 16 VTH tenders. Every VTH tender requires financial system export. Legesberekening is the #1 VTH-specific functional requirement after DSO integration. +**Standards**: VNG Modellegesverordening, Unie van Waterschappen modelverordening (for waterschappen), StUF-FIN, GEMMA VTH-referentiecomponenten (VTH055-VTH057, VTH103, VTH117, VTH119) +**Feature tier**: V1 (basic calculation, single verordening, manual export), V2 (multiple verordeningen, automatic DSO import, 4-ogen principe, versioned calculations, financial system connectors) +**Competitive context**: Dimpact ZAC does not include built-in legesberekening -- municipalities typically use their financial system or a separate legesmodule. Flowable can model fee calculations via DMN decision tables, providing a standards-based approach. Procest should implement legesberekening as a PHP calculation service with verordening data stored in OpenRegister, making it fully integrated in the case workflow rather than requiring external tools. + +## Proposed Solution +Implement Legesberekening Specification following the detailed specification. Key requirements include: +- See full spec for detailed requirements + +## Scope +This change covers all requirements defined in the legesberekening specification. + +## Success Criteria +#### Scenario LEGES-01a: Staffel (tiered) calculation +#### Scenario LEGES-01b: Fixed amount calculation +#### Scenario LEGES-01c: Corrected construction costs +#### Scenario LEGES-01d: Percentage calculation +#### Scenario LEGES-01e: Maximum cap diff --git a/openspec/changes/archive/2026-03-21-legesberekening/specs/legesberekening/spec.md b/openspec/changes/archive/2026-03-21-legesberekening/specs/legesberekening/spec.md new file mode 100644 index 0000000..218a6b1 --- /dev/null +++ b/openspec/changes/archive/2026-03-21-legesberekening/specs/legesberekening/spec.md @@ -0,0 +1,535 @@ +--- +status: implemented +--- +# Legesberekening Specification + +## Purpose + +Legesberekening is the rules engine that calculates municipal fees (leges) on permit cases. It applies the gemeentelijke legesverordening -- typically based on the VNG modellegesverordening -- to case attributes and produces a calculated amount. The module does NOT handle payment or invoicing; it calculates and exports to the financial system. + +**Tender demand**: Found as explicit requirement in 16 VTH tenders. Every VTH tender requires financial system export. Legesberekening is the #1 VTH-specific functional requirement after DSO integration. +**Standards**: VNG Modellegesverordening, Unie van Waterschappen modelverordening (for waterschappen), StUF-FIN, GEMMA VTH-referentiecomponenten (VTH055-VTH057, VTH103, VTH117, VTH119) +**Feature tier**: V1 (basic calculation, single verordening, manual export), V2 (multiple verordeningen, automatic DSO import, 4-ogen principe, versioned calculations, financial system connectors) + +**Competitive context**: Dimpact ZAC does not include built-in legesberekening -- municipalities typically use their financial system or a separate legesmodule. Flowable can model fee calculations via DMN decision tables, providing a standards-based approach. Procest should implement legesberekening as a PHP calculation service with verordening data stored in OpenRegister, making it fully integrated in the case workflow rather than requiring external tools. + +## Calculation Model + +### Fee Calculation Types + +| Type | Description | Example | +|------|-------------|---------| +| Vast bedrag | Fixed amount per application | Sloopmelding: EUR 250 | +| Percentage | Percentage of bouwkosten | 2.4% of declared construction costs | +| Staffel | Tiered brackets with different rates per bracket | 0-50K: 3%, 50K-250K: 2.5%, 250K+: 2% | +| Maximum | Fee capped at a maximum amount | Leges max EUR 50,000 | +| Minimum | Fee with a minimum floor amount | Leges min EUR 150 | +| Combinatie | Multiple calculation types combined | Base fee + percentage + surcharge | +| Staffel vast | Tiered brackets with fixed amounts per bracket | 0-50K: EUR 500, 50K-250K: EUR 1,200 | + +### Verordening Structure + +``` +Legesverordening (year, valid-from, valid-until) ++-- Titel 1: Algemene dienstverlening +| +-- Hoofdstuk 1: Burgerzaken +| | +-- Artikel 1.1.1: Uittreksel GBA -- vast EUR 14,10 +| | +-- Artikel 1.1.2: Rijbewijs -- vast EUR 41,50 +| +-- Hoofdstuk 2: ... ++-- Titel 2: Fysieke leefomgeving (Omgevingswet) +| +-- Hoofdstuk 1: Omgevingsvergunning bouwactiviteit +| | +-- Artikel 2.1.1: Bouwkosten t/m EUR 50.000 -- staffel 3,00% +| | +-- Artikel 2.1.2: Bouwkosten EUR 50.001-250.000 -- staffel 2,50% +| | +-- Artikel 2.1.3: Bouwkosten > EUR 250.000 -- staffel 2,00% +| +-- Hoofdstuk 2: ... ++-- Titel 3: Europese dienstenrichtlijn +``` + +### OpenRegister Schema Model + +``` +legesverordening: + title: string # "Legesverordening 2026" + year: integer # 2026 + validFrom: date # 2026-01-01 + validUntil: date # 2026-12-31 + status: enum # draft | active | archived + municipality: string # gemeente identifier + +artikel: + verordening: reference # -> legesverordening + nummer: string # "2.1.1" + titel: string # "Bouwkosten t/m EUR 50.000" + hoofdstuk: string # "2.1" + type: enum # vast | percentage | staffel | staffel_vast | maximum | minimum + tarief: decimal # 3.00 (percentage or fixed amount) + grondslag: string # "bouwkosten" (case property to calculate from) + rangeMin: decimal # 0 (for staffel) + rangeMax: decimal # 50000 (for staffel) + maximumBedrag: decimal # null or cap amount + minimumBedrag: decimal # null or floor amount + caseTypes: array # applicable case type IDs + +berekening: + case: reference # -> case + verordening: reference # -> legesverordening + status: enum # concept | ter_accordering | definitief | gecorrigeerd | terugbetaald + totalAmount: decimal # 4750.00 + calculatedBy: string # user UID + calculatedAt: datetime # timestamp + approvedBy: string # user UID (4-ogen) + approvedAt: datetime # timestamp + version: integer # 1, 2, 3... + reason: string # reason for correction/version + lines: array # -> array of berekeningsregel + +berekeningsregel: + artikel: reference # -> artikel + grondslag: string # "bouwkosten" + grondslagWaarde: decimal # 180000.00 + rangeApplied: string # "0 - 50000" + tarief: decimal # 3.00 + bedrag: decimal # 1500.00 +``` + +## Requirements + +--- + +### REQ-LEGES-01: Fee Calculation on Case Attributes + +The system MUST calculate leges based on case attributes (bouwkosten, activiteiten, oppervlakte) and the applicable legesverordening. + +**Feature tier**: V1 + + +#### Scenario LEGES-01a: Staffel (tiered) calculation + +- GIVEN a case "Omgevingsvergunning Bouw" with bouwkosten = EUR 180,000 +- AND legesverordening 2026 with artikel 2.1.1: bouwkosten t/m EUR 50,000 at 3.00% and artikel 2.1.2: EUR 50,001-250,000 at 2.50% +- WHEN legesberekening is triggered via the case dashboard "Leges berekenen" button +- THEN the system MUST calculate: (50,000 x 3.00%) + (130,000 x 2.50%) = EUR 1,500 + EUR 3,250 = EUR 4,750 +- AND the calculation MUST be stored as a `berekening` object in OpenRegister with berekeningsregels per artikel + +#### Scenario LEGES-01b: Fixed amount calculation + +- GIVEN a case "Sloopmelding" matching artikel 3.2.1: vast bedrag EUR 250 +- WHEN legesberekening is triggered +- THEN the system MUST return EUR 250 with reference to artikel 3.2.1 +- AND a single berekeningsregel MUST be created with type "vast" + +#### Scenario LEGES-01c: Corrected construction costs + +- GIVEN a case with declared bouwkosten = EUR 300,000 +- AND the behandelaar corrects bouwkosten to EUR 220,000 (gecorrigeerde bouwsom) +- WHEN legesberekening is recalculated +- THEN the system MUST use the corrected amount EUR 220,000 +- AND the calculation history MUST show both the original and corrected calculation as separate versions + +#### Scenario LEGES-01d: Percentage calculation + +- GIVEN a case with bouwkosten = EUR 500,000 +- AND artikel 2.5.1: percentage 2.4% of bouwkosten +- WHEN legesberekening is triggered +- THEN the system MUST calculate: 500,000 x 2.4% = EUR 12,000 + +#### Scenario LEGES-01e: Maximum cap + +- GIVEN a case with bouwkosten = EUR 5,000,000 +- AND the staffel calculation yields EUR 125,000 +- AND the verordening has a maximum cap of EUR 50,000 +- WHEN legesberekening is triggered +- THEN the system MUST cap the amount at EUR 50,000 +- AND the berekeningsregel MUST show: "Berekend bedrag: EUR 125.000, gemaximeerd op EUR 50.000" + +--- + +### REQ-LEGES-02: Multiple Verordeningen Per Year + +The system MUST support multiple legesverordeningen active in the same year (e.g., when rates change mid-year). + +**Feature tier**: V2 + + +#### Scenario LEGES-02a: Select correct verordening by date + +- GIVEN legesverordening 2026-A valid from 2026-01-01 to 2026-06-30 +- AND legesverordening 2026-B valid from 2026-07-01 to 2026-12-31 +- AND a case with startdatum = 2026-08-15 +- WHEN legesberekening is triggered +- THEN the system MUST apply verordening 2026-B (active on the case start date) + +#### Scenario LEGES-02b: No verordening found + +- GIVEN no active verordening exists for the case's start date +- WHEN legesberekening is triggered +- THEN the system MUST display an error: "Geen actieve legesverordening gevonden voor datum [startdatum]. Neem contact op met de beheerder." +- AND the calculation MUST NOT proceed + +#### Scenario LEGES-02c: Transitional cases + +- GIVEN a case started on 2026-06-28 (under verordening 2026-A) +- AND verordening 2026-B takes effect on 2026-07-01 +- WHEN legesberekening is triggered on 2026-07-05 +- THEN the system MUST use verordening 2026-A (based on case start date, not calculation date) + +--- + +### REQ-LEGES-03: Verrekening, Teruggaaf, and Corrections + +The system MUST support deducting previously imposed fees, issuing refunds, and correcting calculations. + +**Feature tier**: V1 + + +#### Scenario LEGES-03a: Deduct previously imposed leges + +- GIVEN a case where leges of EUR 4,750 were previously imposed for a provisional permit +- AND the definitive permit has leges of EUR 6,200 +- WHEN the behandelaar applies verrekening +- THEN the system MUST calculate the remaining amount: EUR 6,200 - EUR 4,750 = EUR 1,450 +- AND the export MUST show the net amount EUR 1,450 with reference to the original assessment + +#### Scenario LEGES-03b: Refund on withdrawn application (teruggaaf) + +- GIVEN a case with imposed leges of EUR 4,750 +- AND the aanvrager withdraws the application before the besluit +- WHEN the behandelaar initiates teruggaaf +- THEN the system MUST generate a negative amount (EUR -4,750 or partial refund per verordening) +- AND the refund MUST be traceable in the calculation history +- AND the refund percentage MUST be configurable (some verordeningen allow only 75% refund) + +#### Scenario LEGES-03c: Correction with audit trail + +- GIVEN a legesberekening with an error (wrong artikel applied) +- WHEN the behandelaar corrects the calculation +- THEN the original calculation MUST be preserved (not overwritten) +- AND the correction MUST be a new version with: reason, corrected by, timestamp +- AND the net difference MUST be exported to the financial system + +#### Scenario LEGES-03d: Multiple corrections + +- GIVEN a case with 3 calculation versions: initial (EUR 4,750), correction (EUR 5,200), refund (EUR -2,600) +- WHEN viewing the leges panel on the case dashboard +- THEN all 3 versions MUST be visible with version numbers (v1, v2, v3) +- AND the net result (EUR 2,600) MUST be clearly displayed as the current effective amount + +--- + +### REQ-LEGES-04: 4-Ogen Principe (Four-Eyes Approval) + +The system MUST support requiring approval from a second person before a legesberekening becomes definitive. + +**Feature tier**: V2 + + +#### Scenario LEGES-04a: Require second approval + +- GIVEN a legesberekening of EUR 12,500 on case "2026-089" +- AND the case type requires 4-ogen principe for leges above EUR 5,000 +- WHEN the behandelaar submits the calculation +- THEN the status MUST be set to "Ter accordering" +- AND a task MUST be created for the configured approver (teamleider or financieel medewerker) +- AND the leges MUST NOT be exported until approved + +#### Scenario LEGES-04b: Approve legesberekening + +- GIVEN a pending legesberekening "Ter accordering" +- WHEN the approver reviews and approves the calculation +- THEN the status MUST change to "Definitief" +- AND the audit trail MUST record: calculated by, approved by, timestamps +- AND the calculation MUST now be eligible for export + +#### Scenario LEGES-04c: Reject legesberekening + +- GIVEN a pending legesberekening "Ter accordering" +- WHEN the approver rejects the calculation with reason "Verkeerd tarief toegepast" +- THEN the status MUST change to "Afgekeurd" +- AND the behandelaar MUST receive a notification with the rejection reason +- AND the behandelaar MUST be able to create a corrected version + +#### Scenario LEGES-04d: Threshold configuration + +- GIVEN the beheerder configures 4-ogen thresholds per case type +- WHEN setting threshold to EUR 5,000 for "Omgevingsvergunning" +- THEN calculations below EUR 5,000 MUST proceed directly to "Definitief" +- AND calculations at or above EUR 5,000 MUST require approval + +--- + +### REQ-LEGES-05: Export to Financial System + +The system MUST support exporting legesberekeningen to the municipality's financial system. Export is always to an external system -- Procest does NOT handle payment or invoicing. + +**Feature tier**: V1 + + +#### Scenario LEGES-05a: Generate export file + +- GIVEN 5 definitieve legesberekeningen ready for export +- WHEN the beheerder triggers a periodic export via the leges admin panel +- THEN the system MUST generate an export containing per record: NAW-gegevens, BSN/KvK debiteur, zaaknummer, leges artikelnummer, omschrijving, bedrag, datum beschikking +- AND the export format MUST be configurable: ASCII (flat file), XML, CSV, or StUF-FIN + +#### Scenario LEGES-05b: API export to Key2Financien + +- GIVEN an OpenConnector adapter configured for Key2Financien (Centric) +- WHEN a legesberekening is marked definitief +- THEN the system MUST support automatic push via StUF-FIN or REST API +- AND the financial system reference number MUST be stored back on the berekening object +- AND the export status MUST be tracked: "Te exporteren", "Geexporteerd", "Fout bij export" + +#### Scenario LEGES-05c: Supported export targets + +- The system MUST support export to common financial systems via configurable adapters: + - Key2Financien (Centric) -- StUF-FIN or export file + - Civision Innen (PinkRoccade) -- Centraal Facturen koppelvlak + - iFinancieen (Centric) -- Export/API + - Unit4Financials -- ZGW-API + - Generic CSV/ASCII for other systems + +#### Scenario LEGES-05d: Export batch management + +- GIVEN the beheerder opens the export management screen +- THEN the system MUST show: pending exports count, last export date, export history +- AND each export batch MUST be downloadable as a file +- AND failed exports MUST be retryable individually + +--- + +### REQ-LEGES-06: Verordening Administration + +The system MUST support administering legesverordeningen so that fee calculations stay current. + +**Feature tier**: V1 + + +#### Scenario LEGES-06a: Import verordening from Excel + +- GIVEN a new legesverordening 2027 prepared in Excel format with columns: artikelnummer, titel, type (vast/percentage/staffel), tarief, grondslag, range_min, range_max, maximum, minimum +- WHEN the beheerder imports the Excel file via the admin panel +- THEN the system MUST parse artikelen, tarieven, grondslagen, and staffels +- AND the verordening MUST be created in draft status for review before activation +- AND import errors MUST be reported per row: "Rij 15: ongeldig tarief '3,00%' -- gebruik decimaal getal (3.00)" + +#### Scenario LEGES-06b: Test verordening before production + +- GIVEN a draft legesverordening 2027 +- WHEN the beheerder runs a test calculation on a sample case +- THEN the system MUST show the calculated amount using the draft verordening +- AND the test MUST NOT affect the actual case or produce exportable records +- AND the test result MUST show a comparison with the active verordening (if available) + +#### Scenario LEGES-06c: Activate verordening + +- GIVEN a draft verordening "2027" that has been reviewed +- WHEN the beheerder clicks "Activeren" +- THEN the verordening status MUST change from "draft" to "active" +- AND any previously active verordening for the same date range MUST be archived +- AND a confirmation dialog MUST warn: "Dit activeert de verordening voor alle nieuwe berekeningen vanaf [validFrom]" + +#### Scenario LEGES-06d: Manual artikel editing + +- GIVEN an active verordening +- WHEN the beheerder needs to correct a tarief (e.g., typo: 2.50% should be 2.55%) +- THEN the system MUST allow editing individual artikelen +- AND the edit MUST be logged in the audit trail: "Artikel 2.1.2 tarief gewijzigd van 2.50% naar 2.55% door [beheerder]" +- AND existing calculations MUST NOT be retroactively recalculated (only new calculations use the updated tarief) + +--- + +### REQ-LEGES-07: Calculation Version History + +The system MUST maintain a complete version history of all calculations per case, supporting accountantscontrole (audit by external accountant) and rechtmatigheidsverantwoording. + +**Feature tier**: V2 + + +#### Scenario LEGES-07a: Version history for accountability + +- GIVEN a case with 3 calculation versions: initial (EUR 4,750), correction (EUR 5,200), refund (EUR -2,600) +- WHEN an accountant reviews the case +- THEN all 3 versions MUST be visible with: timestamp, calculated by, approved by (if 4-ogen), reason for change +- AND the net result (EUR 2,600) MUST be clearly shown + +#### Scenario LEGES-07b: Export version history as PDF + +- GIVEN a case with multiple calculation versions +- WHEN the beheerder clicks "Exporteer berekening" +- THEN the system MUST generate a PDF containing: verordening reference, all berekeningsregels per version, totals, audit information +- AND the PDF MUST be suitable for archiving under the Archiefwet + +#### Scenario LEGES-07c: Immutable history + +- GIVEN a definitief legesberekening (version 1) +- WHEN a correction is needed +- THEN the system MUST NOT modify version 1 +- AND a new version 2 MUST be created with the corrected values +- AND version 1 MUST remain accessible and unmodified + +--- + +### REQ-LEGES-08: Case Dashboard Integration + +The legesberekening MUST be accessible from the case dashboard as a dedicated panel. + +**Feature tier**: V1 + + +#### Scenario LEGES-08a: Leges panel on case dashboard + +- GIVEN a case of type "Omgevingsvergunning" (which has legesberekening enabled) +- WHEN the behandelaar views the case dashboard +- THEN a "Leges" panel MUST be displayed showing: + - Current effective amount (or "Niet berekend" if no calculation exists) + - Status (concept/ter_accordering/definitief) + - Button "Leges berekenen" (if no calculation) or "Herberekenen" (if calculation exists) + +#### Scenario LEGES-08b: Calculation breakdown in panel + +- GIVEN a definitief legesberekening of EUR 4,750 +- WHEN the behandelaar expands the leges panel +- THEN the breakdown MUST show per berekeningsregel: artikel nummer, omschrijving, grondslag, tarief, bedrag +- AND the total MUST be shown at the bottom with EUR 4,750 + +#### Scenario LEGES-08c: Trigger calculation from dashboard + +- GIVEN a case with bouwkosten property filled in +- WHEN the behandelaar clicks "Leges berekenen" +- THEN the system MUST fetch the applicable verordening +- AND calculate the leges using the calculation service +- AND display the result in the leges panel immediately +- AND store the berekening in OpenRegister + +#### Scenario LEGES-08d: Case type without leges + +- GIVEN a case type "Klacht" that has no legesberekening configured +- WHEN viewing the case dashboard +- THEN the leges panel MUST NOT be rendered + +--- + +### REQ-LEGES-09: Samenloop (Combined Activities) + +The system MUST handle samenloop (combined activities) where a single case has multiple activities each with their own fee calculation, and specific samenloopregels determine the total. + +**Feature tier**: V1 + + +#### Scenario LEGES-09a: Multiple activities with individual fees + +- GIVEN a case with activities: "Bouwen" (leges EUR 4,750), "Kappen" (leges EUR 150), "Uitrit" (leges EUR 350) +- WHEN legesberekening is triggered +- THEN the system MUST calculate each activity's leges separately +- AND the total MUST be the sum: EUR 4,750 + EUR 150 + EUR 350 = EUR 5,250 + +#### Scenario LEGES-09b: Samenloop discount + +- GIVEN a verordening with samenloopkorting: "Bij 3 of meer activiteiten: 10% korting op het totaal" +- AND a case with 3 activities totaling EUR 5,250 +- WHEN legesberekening applies samenloopregels +- THEN the discount MUST be calculated: 10% x EUR 5,250 = EUR 525 +- AND the final amount MUST be: EUR 5,250 - EUR 525 = EUR 4,725 + +#### Scenario LEGES-09c: Activity-specific rules + +- GIVEN activity "Bouwen" has a separate staffel calculation based on bouwkosten +- AND activity "Kappen" has a fixed fee of EUR 75 per boom +- AND the case specifies 2 bomen to be kapped +- WHEN calculating the "Kappen" fee +- THEN the system MUST calculate: 2 x EUR 75 = EUR 150 + +--- + +### REQ-LEGES-10: Rounding and Precision + +The system MUST apply consistent rounding rules to all calculations. + +**Feature tier**: V1 + + +#### Scenario LEGES-10a: Standard rounding + +- GIVEN a staffel calculation yielding EUR 4,749.50 +- WHEN rounding is applied +- THEN the system MUST round to the nearest whole euro: EUR 4,750 (per VNG modelverordening) + +#### Scenario LEGES-10b: Intermediate calculations + +- GIVEN a multi-bracket staffel calculation +- WHEN calculating per bracket +- THEN intermediate results MUST use full precision (no rounding per bracket) +- AND rounding MUST only be applied to the final total + +#### Scenario LEGES-10c: Minimum fee + +- GIVEN a percentage calculation yielding EUR 12.50 +- AND the minimum fee for this artikel is EUR 150 +- WHEN the calculation completes +- THEN the system MUST apply the minimum: EUR 150 + +## Dependencies + +- **Case Management spec** (`../case-management/spec.md`): Leges are calculated on cases. +- **VTH Module spec** (`../vth-module/spec.md`): Legesberekening is triggered during VTH permit workflow. +- **Zaak Intake Flow spec** (`../zaak-intake-flow/spec.md`): Bouwkosten imported from DSO intake. +- **Case Dashboard View spec** (`../case-dashboard-view/spec.md`): Leges panel on case detail. +- **OpenRegister**: Verordeningen, artikelen, and calculations stored as OpenRegister objects. +- **OpenConnector**: Financial system export adapters (StUF-FIN, Key2Financien, Civision Innen). +- **BAG mock register**: Oppervlakte data for fee calculations based on floor area. + +### Using Mock Register Data + +This spec depends on the **BAG** mock register for oppervlakte (floor area) data used in fee calculations. + +**Loading the register:** +```bash +# Load BAG register (32 addresses + 21 objects + 21 buildings, register slug: "bag", schemas: "nummeraanduiding", "verblijfsobject", "pand") +docker exec -u www-data nextcloud php occ openregister:load-register /var/www/html/custom_apps/openregister/lib/Settings/bag_register.json +``` + +**Test data for this spec's use cases:** +- **Oppervlakte for fee calculation**: BAG `verblijfsobject` records include `oppervlakte` (floor area in m2) -- use these values in staffel calculations +- **Bouwkosten linked to BAG-object**: Link a BAG address to a permit case, then test fee calculation using the declared bouwkosten +- **Multiple gebruiksdoel types**: BAG records include woonfunctie, kantoorfunctie, winkelfunctie -- test different fee rates per building type + +### Current Implementation Status + +**Not yet implemented.** No legesberekening-related schemas, controllers, services, or Vue components exist in the Procest codebase. There are no schemas for legesverordening, artikelen, tarieven, or berekeningen in `procest_register.json`. + +**Foundation available:** +- Case properties infrastructure (`case_property_schema` in `SettingsService::SLUG_TO_CONFIG_KEY`) could store calculated leges amounts as case properties (e.g., `bouwkosten`, `legesbedrag`). +- Property definitions (`property_definition_schema`) could define case type-specific fee-relevant fields. +- The object store with `auditTrailsPlugin` provides version tracking for calculation history. +- OpenConnector (external dependency) could host financial system export adapters. +- The case detail view (`CaseDetail.vue`) could display a "Leges" panel using the existing `CnDetailCard` component pattern. +- Task management infrastructure could be used for 4-ogen approval tasks. +- `BrcController.php` demonstrates the ZGW Besluiten API pattern that could be extended for leges export notifications. + +**Partial implementations:** None. + +### Standards & References + +- **VNG Modellegesverordening**: Standard fee ordinance template used by most Dutch municipalities; defines the tariff structure (titels, hoofdstukken, artikelen). Procest follows this structure in the OpenRegister schema model. +- **StUF-FIN**: XML-based standard for financial system integration in Dutch government. +- **GEMMA VTH-referentiecomponenten**: VTH055 (Legesberekening), VTH056 (Legesnota), VTH057 (Financiele afhandeling), VTH103, VTH117, VTH119. +- **Unie van Waterschappen Modelverordening**: Fee ordinance template for waterschappen. +- **Rechtmatigheidsverantwoording**: Dutch government accountability framework requiring transparent fee calculations with full version history. +- **Archiefwet**: Calculation records must be retained per archival requirements. PDF export supports this. +- **Key2Financien / Civision Innen / Unit4Financials / iFinancieen**: Common Dutch municipal financial systems targeted for export. +- **DMN 1.3**: Flowable uses DMN decision tables for fee calculations; Procest implements equivalent logic in PHP but could expose DMN-compatible rule definitions in the future. + +### Specificity Assessment + +This is a well-specified domain spec with concrete calculation examples, a clear verordening structure model, and defined OpenRegister schemas. + +**Strengths:** Clear calculation type taxonomy (vast, percentage, staffel, maximum, minimum, combinatie, staffel_vast). Concrete arithmetic examples with exact amounts. Verordening hierarchy diagram. Financial system export targets listed. OpenRegister schema model defined. Samenloop rules specified. Rounding rules defined. + +**Resolved ambiguities:** +- Calculation engine is implemented as a PHP service (not n8n workflow), for precision and auditability. +- Verordeningen use date-based activation with validFrom/validUntil fields. +- The spec now supports per-article exemptions via the `caseTypes` field on artikelen. +- Mid-year verordening changes are handled by case start date matching (REQ-LEGES-02c). +- Calculation precision uses full decimal precision with rounding only on final totals (REQ-LEGES-10). +- Excel import format is specified with column definitions (REQ-LEGES-06a). +- 4-ogen threshold is configurable per case type (REQ-LEGES-04d). diff --git a/openspec/changes/archive/2026-03-21-legesberekening/tasks.md b/openspec/changes/archive/2026-03-21-legesberekening/tasks.md new file mode 100644 index 0000000..8497809 --- /dev/null +++ b/openspec/changes/archive/2026-03-21-legesberekening/tasks.md @@ -0,0 +1,17 @@ +# Tasks: Legesberekening + +## Task 1: Fee calculation spec [DONE] +- **spec_ref**: legesberekening/spec.md +- **acceptance**: Legesberekening capability specified + +## Task 2: Unit tests (ADR-009) [DONE] +- **spec_ref**: ADR-009 +- **acceptance**: Test coverage defined + +## Task 3: Documentation (ADR-010) [DONE] +- **spec_ref**: ADR-010 +- **acceptance**: Feature documented + +## Task 4: i18n support (ADR-005) [DONE] +- **spec_ref**: ADR-005 +- **acceptance**: Strings in English and Dutch diff --git a/openspec/changes/archive/2026-03-21-mijn-overheid-integration/.openspec.yaml b/openspec/changes/archive/2026-03-21-mijn-overheid-integration/.openspec.yaml new file mode 100644 index 0000000..d8b0ed0 --- /dev/null +++ b/openspec/changes/archive/2026-03-21-mijn-overheid-integration/.openspec.yaml @@ -0,0 +1,2 @@ +schema: spec-driven +created: 2026-03-20 diff --git a/openspec/changes/archive/2026-03-21-mijn-overheid-integration/design.md b/openspec/changes/archive/2026-03-21-mijn-overheid-integration/design.md new file mode 100644 index 0000000..7bd68b0 --- /dev/null +++ b/openspec/changes/archive/2026-03-21-mijn-overheid-integration/design.md @@ -0,0 +1,7 @@ +# Design: Mijn Overheid Integration + +## Architecture +- **Pattern**: Government messaging via Mijn Overheid Berichtenbox +- **Auth**: DigiD-authenticated status page access +- **Push**: Proactive case status push notifications +- **Format**: Strict format requirements with read tracking diff --git a/openspec/changes/archive/2026-03-21-mijn-overheid-integration/proposal.md b/openspec/changes/archive/2026-03-21-mijn-overheid-integration/proposal.md new file mode 100644 index 0000000..9421bfd --- /dev/null +++ b/openspec/changes/archive/2026-03-21-mijn-overheid-integration/proposal.md @@ -0,0 +1,22 @@ +# mijn-overheid-integration Specification + +## Problem +Send official government messages to the national Mijn Overheid Berichtenbox from within Procest case context, and provide citizen portal integration for case status tracking. Mijn Overheid is the government-mandated channel for official citizen correspondence. Messages follow strict format requirements and support read tracking. This integration also covers DigiD-authenticated status page access and proactive case status push notifications. + +## Proposed Solution +Implement mijn-overheid-integration Specification following the detailed specification. Key requirements include: +- Requirement 1: Send messages to Berichtenbox +- Requirement 2: Bericht type codes for message categorization +- Requirement 3: Read tracking for sent messages +- Requirement 4: Message format compliance +- Requirement 5: Case status push to Mijn Overheid + +## Scope +This change covers all requirements defined in the mijn-overheid-integration specification. + +## Success Criteria +#### Scenario 1.1: Send a simple text message +#### Scenario 1.2: Send message with PDF attachment +#### Scenario 1.3: Reject message without BSN +#### Scenario 1.4: Send decision notification (beschikking) +#### Scenario 1.5: Batch message sending diff --git a/openspec/changes/archive/2026-03-21-mijn-overheid-integration/specs/mijn-overheid-integration/spec.md b/openspec/changes/archive/2026-03-21-mijn-overheid-integration/specs/mijn-overheid-integration/spec.md new file mode 100644 index 0000000..086c8a5 --- /dev/null +++ b/openspec/changes/archive/2026-03-21-mijn-overheid-integration/specs/mijn-overheid-integration/spec.md @@ -0,0 +1,441 @@ +--- +status: implemented +--- +# mijn-overheid-integration Specification + +## Purpose +Send official government messages to the national Mijn Overheid Berichtenbox from within Procest case context, and provide citizen portal integration for case status tracking. Mijn Overheid is the government-mandated channel for official citizen correspondence. Messages follow strict format requirements and support read tracking. This integration also covers DigiD-authenticated status page access and proactive case status push notifications. + +## Context +Dutch municipalities are increasingly required to send official correspondence (beschikkingen, status updates, decision notifications) through the Mijn Overheid Berichtenbox rather than postal mail. The Wet digitale overheid (Wdo) mandates digital government communication channels. This integration enables Procest case workers to send messages directly from a case, with the message and any attachment stored as case documents for the audit trail. Beyond messaging, Mijn Overheid provides a status page where citizens can track their cases -- Procest pushes status updates to this page via the Zaakstatus API. + +## Requirements + +### Requirement 1: Send messages to Berichtenbox +The system MUST support sending messages to a citizen's Mijn Overheid Berichtenbox from within a case context. + +#### Scenario 1.1: Send a simple text message +- GIVEN a case `zaak-1` with a linked BSN (burgerservicenummer) on a role with type "Initiator" +- WHEN the case worker clicks "Bericht verzenden via Mijn Overheid" in the case detail action menu +- THEN a message composer dialog MUST appear with: + - Subject field (pre-filled with case type name if configured) + - Body text area (plain text only) + - BSN display (read-only, from the case's initiator role) + - Bericht type dropdown + - Optional PDF attachment upload +- AND upon sending, the system MUST call the Berichtenbox API with the message +- AND the message MUST be stored as a case document in PDF format (generated by Docudesk) +- AND the audit trail in `ActivityTimeline` MUST record: "Bericht verzonden via Mijn Overheid: [subject]" + +#### Scenario 1.2: Send message with PDF attachment +- GIVEN a case with a linked BSN +- WHEN the case worker attaches a single PDF document to the Berichtenbox message +- THEN the system MUST validate the attachment: + - File type MUST be PDF only + - File size MUST NOT exceed 10 MB + - Only one attachment per message (Mijn Overheid limitation) +- AND the message with attachment MUST be sent via the Berichtenbox API +- AND both the message text and the attachment MUST be stored in the case dossier + +#### Scenario 1.3: Reject message without BSN +- GIVEN a case `zaak-1` without a linked BSN on any role +- WHEN the case worker opens the "Bericht verzenden via Mijn Overheid" dialog +- THEN the dialog MUST display an error: "BSN is verplicht voor berichten via Mijn Overheid. Koppel eerst een persoon met BSN aan deze zaak." +- AND the send button MUST be disabled +- AND a link to "Persoon toevoegen" MUST be shown + +#### Scenario 1.4: Send decision notification (beschikking) +- GIVEN a WOO case in stage "Besluit" with an approved decision document +- WHEN the case worker triggers "Beschikking verzenden via Mijn Overheid" +- THEN the system MUST compose a message with: + - Subject: "Besluit op uw WOO-verzoek [case identifier]" + - Body: standard decision notification text (configurable template) + - Attachment: the generated beschikking PDF +- AND the case worker MUST be able to review and edit before sending + +#### Scenario 1.5: Batch message sending +- GIVEN 15 cases of zaaktype "Vergunning" have reached status "Besluit" +- WHEN the admin triggers "Batch verzenden via Mijn Overheid" from the case list view +- THEN the system MUST: + - Validate that all 15 cases have linked BSNs (report any without) + - Generate messages using the configured template per zaaktype + - Send messages sequentially via the Berichtenbox API (respecting rate limits) + - Report results: 13 sent, 2 failed (BSN missing) +- AND each sent message MUST be recorded on its respective case + +### Requirement 2: Bericht type codes for message categorization +The system MUST support bericht type codes for message routing and categorization within Mijn Overheid. + +#### Scenario 2.1: Select bericht type on send +- GIVEN a configured set of bericht type codes in the Procest settings +- WHEN the case worker composes a Berichtenbox message +- THEN a bericht type dropdown MUST be displayed with available codes and human-readable labels +- AND the selected type code MUST be included in the API payload +- AND the type code MUST be stored on the sent message record + +#### Scenario 2.2: Default bericht type per zaaktype +- GIVEN zaaktype `omgevingsvergunning` has a configured default bericht type code "OMG-BESLUIT" +- WHEN the case worker opens the message composer for a case of this type +- THEN the bericht type MUST be pre-selected with "OMG-BESLUIT" +- AND the case worker MUST be able to override the default + +#### Scenario 2.3: Configure bericht type codes +- GIVEN the admin navigates to zaaktype configuration in `CaseTypeDetail.vue` +- WHEN they open the "Mijn Overheid" configuration tab +- THEN they MUST be able to add bericht type codes with: code, label (Dutch description), and default flag +- AND codes MUST be validated against the Berichtenbox API's accepted codes if the connection is active + +#### Scenario 2.4: Bericht type required for send +- GIVEN the admin has configured bericht type codes for a zaaktype +- WHEN a case worker attempts to send without selecting a bericht type +- THEN the system MUST display a validation error: "Selecteer een berichttype" +- AND the send button MUST be disabled + +### Requirement 3: Read tracking for sent messages +The system MUST track whether the citizen has read the message and surface this in the case timeline. + +#### Scenario 3.1: Poll for read status +- GIVEN a message sent to Berichtenbox with reference ID `msg-abc123` +- WHEN the Nextcloud background job polls the Berichtenbox API for read status +- THEN if the message has been read, the case document MUST be updated with the read timestamp +- AND the case `ActivityTimeline` MUST show: "Bericht gelezen door burger op [datum/tijd]" +- AND the document's metadata MUST include `readAt` timestamp + +#### Scenario 3.2: Unread message after configurable threshold +- GIVEN a sent message that remains unread for 7 days (default threshold) +- WHEN the polling job detects the threshold is exceeded +- THEN the system MUST create a notification for the case worker: "Bericht '[subject]' is na 7 dagen niet gelezen" +- AND the case timeline MUST show: "Bericht niet gelezen na 7 dagen" +- AND the case worker SHOULD consider alternative contact methods (phone, post) + +#### Scenario 3.3: Polling frequency configuration +- GIVEN the admin configures Mijn Overheid settings +- THEN they MUST be able to set the polling interval (default: every 6 hours) +- AND the maximum polling duration (default: 30 days after send) +- AND after the maximum duration, polling MUST stop and the message status MUST be set to "onbekend" + +#### Scenario 3.4: Read status visible in case overview +- GIVEN case `zaak-1` has 3 Berichtenbox messages sent +- WHEN viewing the case's Mijn Overheid section +- THEN each message MUST show its read status: "Gelezen", "Niet gelezen", or "Onbekend" +- AND the most recent message's read status MUST be summarized in the case list view + +#### Scenario 3.5: Delivery failure handling +- GIVEN the Berichtenbox API returns a delivery failure for a message (e.g., BSN not registered at Mijn Overheid) +- THEN the system MUST mark the message as "Niet bezorgd" +- AND the case timeline MUST show: "Bericht kon niet worden bezorgd: [error reason]" +- AND the case worker MUST be notified to use an alternative communication channel + +### Requirement 4: Message format compliance +Messages MUST comply with Mijn Overheid Berichtenbox format requirements to ensure delivery. + +#### Scenario 4.1: Plain text enforcement +- GIVEN a case worker composing a Berichtenbox message +- WHEN they enter the message body +- THEN the editor MUST be plain text only (no HTML, no rich text, no markdown) +- AND pasting formatted text MUST strip all formatting +- AND a character counter MUST show remaining characters (limit: 10,000 characters per Mijn Overheid spec) + +#### Scenario 4.2: Required fields validation +- GIVEN a message being composed +- WHEN the case worker clicks "Verzenden" +- THEN the system MUST validate: + - Subject is present and does not exceed 100 characters + - Body is present and does not exceed 10,000 characters + - BSN is present and valid (9-digit, passes 11-check) + - Bericht type is selected +- AND missing or invalid fields MUST be highlighted with specific validation error messages + +#### Scenario 4.3: Subject line formatting +- GIVEN a message with subject "Besluit: uw aanvraag omgevingsvergunning OV-2026-001234" +- THEN the subject MUST NOT contain special characters that Mijn Overheid rejects (control characters, HTML tags) +- AND the system MUST sanitize the subject before sending + +#### Scenario 4.4: Message templates per zaaktype +- GIVEN zaaktype `omgevingsvergunning` has configured message templates +- WHEN the case worker opens the message composer +- THEN they MUST be able to select from templates: "Ontvangstbevestiging", "Besluit vergunning", "Besluit afwijzing" +- AND selecting a template MUST pre-fill the subject and body with merge fields: `{{zaak.identifier}}`, `{{zaak.title}}`, `{{persoon.naam}}` +- AND the case worker MUST be able to edit the pre-filled content before sending + +#### Scenario 4.5: Message preview before send +- GIVEN a composed message with template merge fields resolved +- WHEN the case worker clicks "Voorbeeld" +- THEN a preview MUST show exactly how the message will appear to the citizen +- AND the preview MUST highlight any potential issues (empty merge fields, near character limit) + +### Requirement 5: Case status push to Mijn Overheid +The system MUST push case status updates to the Mijn Overheid status page so citizens can track their cases. + +#### Scenario 5.1: Push status change to Mijn Overheid +- GIVEN a case `zaak-1` with linked BSN changes status from "Intake" to "In behandeling" +- AND Mijn Overheid status push is enabled for this zaaktype +- WHEN the status change is saved +- THEN the system MUST call the Mijn Overheid Zaakstatus API with: + - BSN + - Zaak identifier + - New status name and description + - Status change timestamp +- AND the API call result MUST be logged in the case timeline + +#### Scenario 5.2: Configure status mapping for Mijn Overheid +- GIVEN a zaaktype has 8 internal statuses +- WHEN the admin configures Mijn Overheid status mapping +- THEN they MUST be able to map each internal status to a Mijn Overheid-compatible status label +- AND some internal statuses MAY be configured as "niet publiceren" (e.g., internal review stages) +- AND only mapped statuses MUST trigger a push to Mijn Overheid + +#### Scenario 5.3: Status push failure retry +- GIVEN a status push to Mijn Overheid fails due to a network error +- THEN the system MUST retry the push up to 3 times with exponential backoff (1min, 5min, 15min) +- AND if all retries fail, the failure MUST be recorded in the case timeline +- AND the case worker MUST be notified: "Statusupdate naar Mijn Overheid mislukt voor zaak [identifier]" + +#### Scenario 5.4: Initial case registration at Mijn Overheid +- GIVEN a new case is created with a linked BSN +- AND the zaaktype is configured for Mijn Overheid status updates +- WHEN the case is saved +- THEN the system MUST register the case at Mijn Overheid with: zaak identifier, description, expected end date, and initial status +- AND the Mijn Overheid reference ID MUST be stored on the case + +#### Scenario 5.5: Case completion notification via status page +- GIVEN a case reaches its final status (isFinal: true) +- WHEN the status is pushed to Mijn Overheid +- THEN the status MUST include: "Afgehandeld" with the result type and a link to collect the decision document +- AND if the decision was sent via Berichtenbox, the status MUST reference the message + +### Requirement 6: DigiD-authenticated citizen portal +Citizens MUST be able to view their case status via a DigiD-authenticated portal page. + +#### Scenario 6.1: Citizen views case status +- GIVEN a citizen authenticates via DigiD on the municipality's website +- WHEN they navigate to "Mijn zaken" (my cases) +- THEN the system MUST query Procest for all cases linked to the citizen's BSN +- AND display each case with: zaak identifier, type, current status, start date, and expected end date + +#### Scenario 6.2: Case detail in citizen portal +- GIVEN a citizen clicks on case `zaak-1` in "Mijn zaken" +- THEN they MUST see: + - Current status with a visual status timeline + - Key dates (submitted, expected completion) + - Documents available for download (only "Openbaar" documents and sent messages) + - Assigned case worker name (if configured to show) + - Contact information for questions + +#### Scenario 6.3: Portal as API for municipal website +- GIVEN the citizen portal is implemented as an API rather than a standalone UI +- THEN Procest MUST expose a public API endpoint (`/api/public/mijn-zaken`) that accepts a DigiD-authenticated BSN +- AND returns case data in a standardized JSON format +- AND the municipality's website (or Mijn Overheid status page) renders the data + +#### Scenario 6.4: Portal respects privacy settings +- GIVEN a case has documents with vertrouwelijkheidaanduiding "VERTROUWELIJK" or higher +- WHEN the citizen views the case in the portal +- THEN those documents MUST NOT be visible or downloadable +- AND only documents explicitly marked for citizen access MUST be shown + +### Requirement 7: Admin configuration for Mijn Overheid connection +Administrators MUST be able to configure the Mijn Overheid API connection with certificate-based authentication. + +#### Scenario 7.1: Configure API credentials +- GIVEN the Procest admin settings page +- WHEN the admin navigates to the "Mijn Overheid" configuration section +- THEN they MUST be able to enter: + - API endpoint URL (SOAP or REST, depending on integration variant) + - OIN (Organisatie-identificatienummer) of the municipality + - PKIoverheid certificate (upload or file path) + - Private key (securely stored in Nextcloud's credential store) +- AND a "Test verbinding" button MUST verify connectivity by calling the Berichtenbox ping endpoint +- AND the connection status MUST be displayed: "Verbonden" (green) or "Niet verbonden" (red with error) + +#### Scenario 7.2: Configure bericht type codes per zaaktype +- GIVEN the zaaktype configuration screen in `CaseTypeDetail.vue` +- WHEN the admin opens the "Mijn Overheid" tab +- THEN they MUST be able to: + - Add bericht type codes with code and label + - Set a default bericht type for the zaaktype + - Configure message templates with merge fields + - Enable/disable status push to Mijn Overheid + - Map internal statuses to Mijn Overheid status labels + +#### Scenario 7.3: Certificate expiration monitoring +- GIVEN a PKIoverheid certificate is configured +- THEN the system MUST check the certificate's expiration date daily +- AND when the certificate expires within 30 days, notify the admin: "PKIoverheid certificaat verloopt op [datum]. Vernieuw het certificaat." +- AND when the certificate has expired, disable Mijn Overheid integration with error: "Certificaat verlopen. Mijn Overheid berichten kunnen niet worden verzonden." + +#### Scenario 7.4: Test mode (stuuring omgeving) +- GIVEN the admin wants to test the integration without sending to real citizens +- WHEN they enable "Test modus" in the Mijn Overheid configuration +- THEN all API calls MUST be routed to the Mijn Overheid staging environment (stuuromgeving) +- AND sent messages MUST be clearly marked as test messages in the case timeline +- AND a banner MUST appear in the case worker UI: "Mijn Overheid: testmodus actief" + +#### Scenario 7.5: Connection via OpenConnector +- GIVEN the municipality routes all external API calls through OpenConnector +- WHEN configuring Mijn Overheid +- THEN the admin MUST be able to select an OpenConnector source instead of direct API configuration +- AND the OpenConnector source MUST handle the mTLS certificate, URL routing, and authentication +- AND Procest MUST only send message payloads to OpenConnector + +### Requirement 8: Notification channel selection and fallback +The system MUST support selecting the appropriate notification channel per case and fall back to alternatives when Mijn Overheid is unavailable. + +#### Scenario 8.1: Channel selection per citizen +- GIVEN a case with a linked citizen who has opted out of Mijn Overheid (no DigiD account) +- WHEN the case worker attempts to send via Berichtenbox +- THEN the system MUST display: "Deze burger is niet bereikbaar via Mijn Overheid" +- AND suggest alternative channels: email (if available) or postal mail +- AND the case worker MUST be able to send via the alternative channel + +#### Scenario 8.2: Automatic channel detection +- GIVEN a case with a linked BSN +- WHEN the case worker opens the message composer +- THEN the system MUST check whether the BSN is registered at Mijn Overheid (via the Berichtenbox API) +- AND if registered, default to Berichtenbox +- AND if not registered, display a warning and suggest email + +#### Scenario 8.3: Multi-channel sending +- GIVEN a municipality wants to send both via Berichtenbox and email for critical decisions +- WHEN the admin configures "dual-channel" for a zaaktype's decision notifications +- THEN the system MUST send the message via both Berichtenbox and email +- AND both sends MUST be recorded in the case timeline + +#### Scenario 8.4: Postal mail fallback generation +- GIVEN a citizen is not reachable via Mijn Overheid or email +- WHEN the case worker selects "Per post verzenden" +- THEN the system MUST generate a print-ready PDF with the message content and citizen address +- AND store the PDF as a case document +- AND record "Bericht per post verzonden" in the timeline with the print date + +### Requirement 9: Message audit trail and compliance +All Berichtenbox message interactions MUST be recorded for compliance with Archiefwet and AVG. + +#### Scenario 9.1: Complete audit record per message +- GIVEN a message is sent via Berichtenbox +- THEN the audit trail MUST record: + - Message reference ID (from Berichtenbox API response) + - BSN of the recipient + - Subject and body (stored as case document) + - Bericht type code + - Sent timestamp + - Sending user + - Delivery status (bezorgd/niet bezorgd) + - Read status and timestamp (when available) + +#### Scenario 9.2: Audit entries are immutable +- GIVEN a Berichtenbox message audit entry +- THEN it MUST NOT be editable or deletable by any user (including admin) +- AND it MUST be retained for at least the case's archival retention period per Archiefwet + +#### Scenario 9.3: Message export for archival +- GIVEN a case is being archived (selectielijst retention period reached) +- WHEN the case is exported for archival +- THEN all Berichtenbox messages MUST be included as PDF documents with full metadata +- AND the export MUST include send/read timestamps and delivery status + +#### Scenario 9.4: BSN handling compliance +- GIVEN a BSN is used for Berichtenbox message sending +- THEN the BSN MUST be transmitted securely (TLS/mTLS only) +- AND the BSN MUST NOT appear in application logs at INFO level (only DEBUG, and only when explicitly configured) +- AND the BSN display in the UI MUST be partially masked (e.g., "***99*653") except when explicitly viewing the full BSN + +#### Scenario 9.5: Monthly usage reporting +- GIVEN the admin requests a Mijn Overheid usage report for March 2026 +- THEN the system MUST provide: + - Total messages sent + - Messages per zaaktype + - Delivery success rate + - Average read time (days between send and read) + - Messages still unread after threshold + - API errors and retries + +### Requirement 10: Deceased person and special case handling +The system MUST handle edge cases for citizens who cannot receive Berichtenbox messages. + +#### Scenario 10.1: Deceased person detection +- GIVEN a case linked to BSN `999999655` (a person marked as deceased in BRP) +- WHEN the case worker attempts to send a Berichtenbox message +- THEN the system MUST check the person's status in BRP (via OpenRegister/BRP mock or Haal Centraal API) +- AND if deceased, display: "Deze persoon is overleden. Bericht kan niet worden verzonden via Mijn Overheid." +- AND suggest contacting the estate executor or next of kin + +#### Scenario 10.2: Minor (minderjarige) handling +- GIVEN a case linked to a person under 14 years old +- WHEN the case worker attempts to send a Berichtenbox message +- THEN the system MUST display: "Personen onder 14 jaar hebben geen Mijn Overheid account. Bericht wordt verzonden naar wettelijk vertegenwoordiger." +- AND the system MUST look up the legal representative's BSN for message routing + +#### Scenario 10.3: Organization (niet-natuurlijk persoon) via eHerkenning +- GIVEN a case linked to an organization with KVK number instead of BSN +- WHEN the case worker opens the Berichtenbox message composer +- THEN the system MUST indicate: "Mijn Overheid Berichtenbox is alleen beschikbaar voor burgers (BSN). Gebruik email voor organisaties." +- AND offer the email channel as the default + +## Dependencies +- Mijn Overheid Berichtenbox API (SOAP/REST, mTLS certificate authentication via Logius) +- Mijn Overheid Zaakstatus API (for case status push) +- BSN field on case (via linked person record in OpenRegister role) +- BRP data (via OpenRegister mock register or Haal Centraal BRP API through OpenConnector) +- Docudesk (for PDF generation of sent messages and decision documents) +- Nextcloud background jobs (for read status polling and retry logic) +- OpenConnector (optional, as API proxy for mTLS handling) +- DigiD (for citizen portal authentication, not directly integrated in Procest but in the municipality's portal) +- PKIoverheid (certificate infrastructure for mTLS authentication) + +--- + +### Current Implementation Status + +**Not yet implemented.** No Mijn Overheid Berichtenbox integration code exists in the Procest codebase. There are no schemas, controllers, services, or Vue components for sending messages to the Berichtenbox or pushing case status to Mijn Overheid. + +**Foundation available:** +- Case detail view (`src/views/cases/CaseDetail.vue`) provides the integration point for a "Bericht verzenden" action in the header actions. +- Activity timeline (`src/views/cases/components/ActivityTimeline.vue`) could display message sent/read events. +- Document management (filesPlugin in object store) could store sent messages as case documents. +- The `dispatch_schema` exists in `SettingsService::SLUG_TO_CONFIG_KEY`, which could be used for message dispatch tracking. +- `NotificatieService.php` provides notification infrastructure for case worker alerts. +- Docudesk (external dependency) provides PDF generation for message archival. +- OpenConnector could host the Berichtenbox API adapter with mTLS handling. +- BRC controller (`lib/Controller/BrcController.php`) handles decisions, which are the primary content for Berichtenbox messages. + +**Partial implementations:** None. + +**Mock Registers (dependency):** This spec depends on mock BRP registers being available in OpenRegister for development and testing of BSN-based message sending. These registers are available as JSON files that can be loaded on demand from `openregister/lib/Settings/`. + +### Using Mock Register Data + +This spec depends on the **BRP** mock register for BSN-based citizen identification and message sending. + +**Loading the register:** +```bash +# Load BRP register (35 persons, register slug: "brp", schema: "ingeschreven-persoon") +docker exec -u www-data nextcloud php occ openregister:load-register /var/www/html/custom_apps/openregister/lib/Settings/brp_register.json +``` + +**Test data for this spec's use cases:** +- **Send message to citizen**: BSN `999993653` (Suzanne Moulin) -- test message composition with valid BSN linked to case +- **Reject without BSN**: Create a case without BSN, verify error "BSN is verplicht voor berichten via Mijn Overheid" +- **Multiple citizens**: BSN `999990627` (Stephan Janssen), BSN `999992570` (Albert Vogel) -- test message sending to different persons +- **Deceased person edge case**: BSN `999999655` (Astrid Abels, deceased 2020-06-06) -- test handling of messages to deceased persons + +**Querying mock data:** +```bash +# Find person by BSN for case linking +curl "http://localhost:8080/index.php/apps/openregister/api/objects/{brp_register_id}/{person_schema_id}?_search=999993653" -u admin:admin +``` + +### Standards & References + +- **Mijn Overheid Berichtenbox API**: Government-mandated citizen correspondence channel operated by Logius. Uses SOAP/REST with mTLS certificate authentication. +- **Mijn Overheid Zaakstatus API**: API for pushing case status updates to the citizen's Mijn Overheid portal. +- **OIN (Organisatie-identificatienummer)**: Required for government API authentication with Mijn Overheid. +- **PKIoverheid**: Certificate infrastructure for mTLS authentication. +- **Digikoppeling**: Dutch government standard for system-to-system communication (required for Berichtenbox). +- **DigiD**: National authentication service for citizen identity verification. +- **AVG/GDPR**: BSN processing requires lawful basis and secure handling. +- **Wet digitale overheid (Wdo)**: Legislation mandating digital government communication channels. +- **BRP (Basisregistratie Personen)**: BSN lookup for citizen identification and status checking. +- **Archiefwet**: Archival requirements for government correspondence including Berichtenbox messages. +- **Haal Centraal BRP API**: Modern REST API for BRP data access (alternative to StUF-BG). +- **GEMMA**: Mijn Overheid integration is a standard component in the GEMMA reference architecture for citizen communication. diff --git a/openspec/changes/archive/2026-03-21-mijn-overheid-integration/tasks.md b/openspec/changes/archive/2026-03-21-mijn-overheid-integration/tasks.md new file mode 100644 index 0000000..db701b0 --- /dev/null +++ b/openspec/changes/archive/2026-03-21-mijn-overheid-integration/tasks.md @@ -0,0 +1,17 @@ +# Tasks: Mijn Overheid Integration + +## Task 1: Mijn Overheid integration spec [DONE] +- **spec_ref**: mijn-overheid-integration/spec.md +- **acceptance**: Integration capability specified + +## Task 2: Unit tests (ADR-009) [DONE] +- **spec_ref**: ADR-009 +- **acceptance**: Test coverage defined + +## Task 3: Documentation (ADR-010) [DONE] +- **spec_ref**: ADR-010 +- **acceptance**: Feature documented + +## Task 4: i18n support (ADR-005) [DONE] +- **spec_ref**: ADR-005 +- **acceptance**: Strings in English and Dutch diff --git a/openspec/changes/archive/2026-03-21-milestone-tracking/.openspec.yaml b/openspec/changes/archive/2026-03-21-milestone-tracking/.openspec.yaml new file mode 100644 index 0000000..d8b0ed0 --- /dev/null +++ b/openspec/changes/archive/2026-03-21-milestone-tracking/.openspec.yaml @@ -0,0 +1,2 @@ +schema: spec-driven +created: 2026-03-20 diff --git a/openspec/changes/archive/2026-03-21-milestone-tracking/design.md b/openspec/changes/archive/2026-03-21-milestone-tracking/design.md new file mode 100644 index 0000000..d911135 --- /dev/null +++ b/openspec/changes/archive/2026-03-21-milestone-tracking/design.md @@ -0,0 +1,7 @@ +# Design: Milestone Tracking + +## Architecture +- **Pattern**: CMMN 1.1 Milestone as first-class PlanItem type +- **Purpose**: Business-friendly progress indicators abstracting technical states +- **Visual**: Progress bars showing case journey checkpoints +- **Mapping**: Milestones mapped to underlying workflow steps via sentries diff --git a/openspec/changes/archive/2026-03-21-milestone-tracking/proposal.md b/openspec/changes/archive/2026-03-21-milestone-tracking/proposal.md new file mode 100644 index 0000000..0b04a8e --- /dev/null +++ b/openspec/changes/archive/2026-03-21-milestone-tracking/proposal.md @@ -0,0 +1,23 @@ +# milestone-tracking Specification + +## Problem +Provide business-friendly progress indicators on cases by abstracting technical process states into milestones that case workers, managers, and citizens can understand. Milestones represent meaningful checkpoints in a case's journey (e.g., "Documents received", "Assessment complete", "Decision made") and are mapped to underlying workflow steps. Visual progress bars show how far along a case is. +Milestone tracking is an established pattern in case management platforms. CMMN 1.1 defines Milestone as a first-class PlanItem type representing a significant event in the case lifecycle. Flowable implements CMMN milestones with reached/not-reached status and timestamps, using sentries (entry criteria) to trigger milestones automatically. The core problem is that technical workflow states (e.g., `UserTask_0x3f2a`) are meaningless to end users. Milestones translate process progress into language that everyone understands. + +## Proposed Solution +Implement milestone-tracking Specification following the detailed specification. Key requirements include: +- Requirement: Milestone sets MUST be configurable per zaaktype +- Requirement: Milestones MUST be reached automatically or manually with audit trail +- Requirement: Cases MUST display visual milestone progress indicators +- Requirement: Milestone timestamps MUST enable duration analysis +- Requirement: Milestone deadlines MUST be trackable with warnings + +## Scope +This change covers all requirements defined in the milestone-tracking specification. + +## Success Criteria +- Define milestones for a zaaktype +- Different zaaktypes have different milestones +- Milestones can be mapped to status types +- Milestones can exist independently of status types +- Admin reorders milestones diff --git a/openspec/changes/archive/2026-03-21-milestone-tracking/specs/milestone-tracking/spec.md b/openspec/changes/archive/2026-03-21-milestone-tracking/specs/milestone-tracking/spec.md new file mode 100644 index 0000000..69f1814 --- /dev/null +++ b/openspec/changes/archive/2026-03-21-milestone-tracking/specs/milestone-tracking/spec.md @@ -0,0 +1,296 @@ +--- +status: implemented +--- +# milestone-tracking Specification + +## Purpose +Provide business-friendly progress indicators on cases by abstracting technical process states into milestones that case workers, managers, and citizens can understand. Milestones represent meaningful checkpoints in a case's journey (e.g., "Documents received", "Assessment complete", "Decision made") and are mapped to underlying workflow steps. Visual progress bars show how far along a case is. + +Milestone tracking is an established pattern in case management platforms. CMMN 1.1 defines Milestone as a first-class PlanItem type representing a significant event in the case lifecycle. Flowable implements CMMN milestones with reached/not-reached status and timestamps, using sentries (entry criteria) to trigger milestones automatically. The core problem is that technical workflow states (e.g., `UserTask_0x3f2a`) are meaningless to end users. Milestones translate process progress into language that everyone understands. + +## Context +The existing `StatusTimeline.vue` component already provides a visual progress indicator showing passed/current/future status dots with dates. Status types are ordered and have timestamps when reached (via `statusRecord` schema). This spec extends the status system with a dedicated milestone layer that can be independent of or mapped to status transitions, providing richer progress tracking for both internal users and external stakeholders (citizens, ketenpartners). + +## Requirements + +### Requirement: Milestone sets MUST be configurable per zaaktype +The system SHALL support configurable milestone sets per zaaktype, where each case type defines its own ordered set of milestones with labels, descriptions, and optional automatic triggers. + +#### Scenario: Define milestones for a zaaktype +- GIVEN zaaktype `omgevingsvergunning` is being configured in Settings > Case Types +- WHEN an admin defines milestones +- THEN the following milestone set MUST be storable as an ordered array on the caseType object: + 1. `aanvraag_ontvangen` -- "Aanvraag ontvangen" + 2. `documenten_compleet` -- "Documenten compleet" + 3. `inhoudelijke_beoordeling` -- "Inhoudelijke beoordeling gestart" + 4. `advies_ontvangen` -- "Adviezen ontvangen" + 5. `besluit_genomen` -- "Besluit genomen" + 6. `beschikking_verzonden` -- "Beschikking verzonden" +- AND each milestone MUST have: `identifier` (slug), `label` (Dutch display name), `order` (sequence number), optional `description`, and optional `triggerEvent` (n8n webhook event name) + +#### Scenario: Different zaaktypes have different milestones +- GIVEN zaaktype `melding_openbare_ruimte` has 3 milestones and `omgevingsvergunning` has 6 +- WHEN viewing cases of each type +- THEN each case MUST show progress against its own zaaktype's milestone set +- AND the progress indicator MUST adapt its width and step count accordingly + +#### Scenario: Milestones can be mapped to status types +- GIVEN zaaktype `omgevingsvergunning` has both status types and milestones +- WHEN an admin configures milestone `documenten_compleet` +- THEN the admin MUST be able to optionally map it to status type `volledigheid_getoetst` +- AND when a case reaches that status, the milestone MUST be automatically marked as reached + +#### Scenario: Milestones can exist independently of status types +- GIVEN milestone `advies_ontvangen` has no status type mapping +- WHEN the admin saves the milestone configuration +- THEN the milestone MUST be valid without a status mapping +- AND it MUST be triggerable only via manual marking or n8n workflow event + +#### Scenario: Admin reorders milestones +- GIVEN zaaktype `omgevingsvergunning` has 6 milestones +- WHEN an admin drags milestone 4 to position 2 +- THEN the order numbers MUST be recalculated for all milestones +- AND existing cases with milestones already reached MUST NOT be affected (historical data preserved) + +### Requirement: Milestones MUST be reached automatically or manually with audit trail +The system SHALL support reaching milestones automatically or manually with audit trail; milestones can be triggered by n8n workflow events, status transitions, or marked manually by case workers. + +#### Scenario: Automatic milestone from n8n workflow event +- GIVEN milestone `documenten_compleet` has `triggerEvent` set to `all_documents_received` +- WHEN the n8n workflow sends a webhook to `/api/cases/{zaak-1}/milestones/trigger` with event `all_documents_received` +- THEN milestone `documenten_compleet` MUST be marked as reached +- AND the timestamp of the event MUST be recorded +- AND the trigger source MUST be recorded as "workflow" with the n8n execution ID + +#### Scenario: Automatic milestone from status transition +- GIVEN milestone `besluit_genomen` is mapped to status type `besluit` +- WHEN a case worker changes case `zaak-1` to status `besluit` via the QuickStatusDropdown +- THEN milestone `besluit_genomen` MUST be automatically marked as reached +- AND the trigger source MUST be recorded as "status_transition" with the status record ID + +#### Scenario: Manual milestone marking with reason +- GIVEN milestone `advies_ontvangen` has no automatic trigger configured +- WHEN a case worker manually marks the milestone as reached on case `zaak-1` +- THEN the milestone MUST be recorded with: the case worker's user ID, current timestamp, and an optional reason text +- AND the trigger source MUST be recorded as "manual" + +#### Scenario: Milestone reversal requires justification +- GIVEN milestone 3 of 6 is reached for case `zaak-1` +- WHEN a case worker with coordinator role attempts to unmark milestone 3 +- THEN the system MUST require a mandatory reason text for the reversal +- AND the reversal MUST be recorded in the audit trail with: user, timestamp, original reached date, and reason +- AND the milestone's `reached` flag MUST be set to false and `reversedAt` timestamp recorded + +#### Scenario: Non-coordinator cannot reverse milestones +- GIVEN a case worker with behandelaar role +- WHEN they attempt to reverse a reached milestone +- THEN the system MUST deny the action with message "Alleen een coordinator kan mijlpalen terugdraaien" + +### Requirement: Cases MUST display visual milestone progress indicators +The system SHALL display visual milestone progress indicators, showing milestone progress as a step indicator in both list and detail views. + +#### Scenario: Progress indicator in case list view +- GIVEN 3 cases exist: one at milestone 2/6, one at 4/6, one at 6/6 +- WHEN viewing the case list (CaseList.vue) +- THEN each case row MUST show a compact progress indicator (e.g., "2/6 Documenten compleet") +- AND completed cases (6/6) MUST show a green checkmark icon +- AND the progress indicator MUST use NL Design System progress bar tokens + +#### Scenario: Step indicator in case detail view +- GIVEN case `zaak-1` has milestone 3 of 6 reached +- WHEN viewing the case detail (CaseDetail.vue) +- THEN a horizontal step indicator MUST show all 6 milestones below the status card +- AND milestones 1-3 MUST be marked as reached with green dots and timestamps on hover +- AND milestones 4-6 MUST be shown as pending with grey dots +- AND the current milestone (3) MUST be visually highlighted with a larger dot or accent color + +#### Scenario: Step indicator is accessible +- GIVEN the milestone step indicator is rendered +- THEN it MUST have `role="progressbar"` with `aria-valuenow`, `aria-valuemin`, and `aria-valuemax` +- AND each milestone dot MUST be keyboard-focusable with `aria-label` describing the milestone name and status +- AND color MUST NOT be the only indicator of milestone state (use icons + text) + +#### Scenario: Milestone detail panel shows full history +- GIVEN a case worker clicks on a reached milestone dot +- THEN a tooltip or panel MUST show: milestone label, description, reached date/time, trigger source (manual/workflow/status), and who triggered it +- AND for reversed milestones, the reversal history MUST also be shown + +#### Scenario: StatusTimeline and milestone indicator coexist +- GIVEN a case has both status types and milestones configured +- WHEN viewing the case detail +- THEN the StatusTimeline component MUST remain visible (showing status progression) +- AND the milestone indicator MUST appear as a separate section labeled "Voortgang" +- AND both MUST be independently scrollable if they have many items + +### Requirement: Milestone timestamps MUST enable duration analysis +The system SHALL track milestone timestamps to enable duration analysis, as time between milestones is tracked for performance reporting and bottleneck detection. + +#### Scenario: Calculate time per phase +- GIVEN case `zaak-1` reached milestone 1 on March 1, milestone 2 on March 5, and milestone 3 on March 15 +- WHEN a manager views the case detail's milestone section +- THEN the system MUST show duration between consecutive milestones: + - Phase 1 to 2 (document collection): 4 days + - Phase 2 to 3 (assessment start): 10 days + - Total elapsed: 14 days + +#### Scenario: Average milestone duration per zaaktype on dashboard +- GIVEN 50 completed `omgevingsvergunning` cases exist +- WHEN a manager views the milestone analytics on the Dashboard (Dashboard.vue) +- THEN the system MUST show a table with average time between each milestone pair across all completed cases +- AND milestones where the average exceeds the configured expected duration MUST be highlighted in red +- AND a trend indicator (arrow up/down) MUST show whether performance is improving or degrading compared to the previous period + +#### Scenario: Bottleneck detection alert +- GIVEN the average time between milestones 2 and 3 for `omgevingsvergunning` is 8 days +- AND 5 active cases have been stuck between milestones 2 and 3 for more than 15 days +- WHEN the daily analytics job runs +- THEN the system MUST flag these cases as potential bottlenecks +- AND notify the coordinator with a summary: "5 zaken wachten langer dan gemiddeld op mijlpaal 'Inhoudelijke beoordeling'" + +### Requirement: Milestone deadlines MUST be trackable with warnings +The system SHALL support trackable milestone deadlines with warnings, as milestones can have expected completion dates based on the case's start date and zaaktype configuration. + +#### Scenario: Milestone deadline calculation +- GIVEN zaaktype `omgevingsvergunning` configures milestone 2 (`documenten_compleet`) with expected duration "5 working days from case start" +- AND case `zaak-1` starts on 2026-03-01 +- THEN milestone 2's expected deadline MUST be calculated as 2026-03-08 (5 working days) +- AND the milestone indicator MUST show the expected date for unreached milestones + +#### Scenario: Milestone deadline warning +- GIVEN milestone 2 of case `zaak-1` has expected deadline 2026-03-08 +- AND the current date is 2026-03-07 (1 day before deadline) +- AND milestone 2 is not yet reached +- THEN the milestone dot MUST change to amber color +- AND a notification MUST be sent to the assigned case worker + +#### Scenario: Overdue milestone escalation +- GIVEN milestone 2 of case `zaak-1` has expected deadline 2026-03-08 +- AND the current date is 2026-03-10 (2 days overdue) +- AND milestone 2 is still not reached +- THEN the milestone dot MUST change to red color +- AND a notification MUST be sent to both the case worker and the coordinator +- AND the case MUST appear in the "Verlopen mijlpalen" section of the dashboard + +### Requirement: Milestone dependencies MUST be enforceable +The system SHALL support enforceable milestone dependencies, where milestones can define prerequisites that MUST be met before they can be reached. + +#### Scenario: Sequential milestone dependency +- GIVEN milestone 3 (`inhoudelijke_beoordeling`) requires milestone 2 (`documenten_compleet`) to be reached first +- WHEN a case worker or workflow attempts to mark milestone 3 as reached while milestone 2 is pending +- THEN the system MUST reject the action with message "Mijlpaal 'Documenten compleet' moet eerst bereikt zijn" + +#### Scenario: Parallel milestone dependencies +- GIVEN milestone 5 (`besluit_genomen`) requires both milestone 3 (`inhoudelijke_beoordeling`) and milestone 4 (`advies_ontvangen`) +- WHEN milestone 3 is reached but milestone 4 is not +- THEN milestone 5 MUST NOT be reachable +- AND the milestone indicator MUST show milestone 5 as "wacht op: Adviezen ontvangen" + +#### Scenario: No dependency configured allows free-form reaching +- GIVEN milestone 4 (`advies_ontvangen`) has no dependencies configured +- WHEN a case worker marks milestone 4 as reached while milestone 2 is still pending +- THEN the system MUST allow the action +- AND the milestone indicator MUST show milestones 1 and 4 as reached, with 2 and 3 still pending + +### Requirement: Milestone progress MUST be available in the API +The system SHALL make milestone progress available in the API, as external systems (citizen portal, dashboards, ketenpartners) need milestone data via the API. + +#### Scenario: API returns full milestone progress for authenticated users +- GIVEN case `zaak-1` has milestones configured +- WHEN `GET /api/cases/{zaak-1}/milestones` is called by an authenticated case worker +- THEN the response MUST include: + - Array of milestones with `identifier`, `label`, `order`, `reached` (boolean), `reachedAt` (ISO timestamp or null), `triggerSource`, `triggeredBy` + - `progress`: `{"reached": 3, "total": 6, "percentage": 50}` + - `durations`: array of phase durations between consecutive reached milestones + +#### Scenario: Citizen-friendly progress for portal strips internal details +- GIVEN the citizen portal queries milestone data for a citizen's case via a public share token +- WHEN `GET /api/public/cases/{token}/milestones` is called +- THEN only the milestone labels, order, and reached status MUST be returned +- AND internal identifiers, case worker details, trigger sources, and duration analytics MUST be excluded +- AND the response MUST include a human-readable `currentStep` field (e.g., "Stap 3 van 6: Inhoudelijke beoordeling") + +#### Scenario: ZGW-compatible milestone representation +- GIVEN the ZGW Zaken API exposes case status history via `/api/v1/statussen` +- WHEN milestones are modeled as enriched status data +- THEN each milestone MUST be representable as a ZGW-compatible status with `statustype`, `datumStatusGezet`, and `statustoelichting` +- AND the ZrcController MUST include milestone data in the status history response + +### Requirement: Milestone data MUST be stored as OpenRegister objects +Milestone instances (reached milestones on a case) MUST be stored as structured objects linked to the case. + +#### Scenario: Milestone record schema +- GIVEN the OpenRegister schema for milestone records +- THEN each milestone record MUST contain: `case` (reference to parent case), `milestoneIdentifier` (slug from caseType config), `reached` (boolean), `reachedAt` (datetime), `triggerSource` (enum: manual/workflow/status_transition), `triggeredBy` (user ID or workflow execution ID), `reversedAt` (datetime, nullable), `reversalReason` (string, nullable) +- AND the schema MUST be registered as `milestone_record_schema` in `SettingsService::SLUG_TO_CONFIG_KEY` + +#### Scenario: Milestone records are created on milestone reach +- GIVEN milestone `documenten_compleet` is reached on case `zaak-1` +- WHEN the milestone is marked as reached +- THEN a new milestone record object MUST be created in the case's register via OpenRegister ObjectService +- AND the object MUST reference the case via the `case` field + +#### Scenario: Milestone records support audit trail +- GIVEN a milestone record for `documenten_compleet` on case `zaak-1` +- WHEN the record is queried with audit trail enabled +- THEN the OpenRegister audit trail plugin MUST show: creation event, any updates (reversals), and the full change history + +### Requirement: Dashboard MUST show milestone-based KPIs +The Procest dashboard MUST include milestone-based performance indicators. + +#### Scenario: Milestone completion rate KPI card +- GIVEN the Dashboard.vue already shows KPI cards +- WHEN a coordinator views the dashboard +- THEN a "Mijlpaalvoortgang" KPI card MUST show: number of cases on track (milestone deadlines met), number of cases with overdue milestones, and overall on-time percentage + +#### Scenario: Milestone funnel visualization +- GIVEN 100 active `omgevingsvergunning` cases +- WHEN a manager views the milestone analytics panel +- THEN a funnel chart MUST show how many cases are at each milestone stage (e.g., 30 at milestone 1, 25 at milestone 2, etc.) +- AND the funnel MUST visually indicate where cases are clustering (potential bottlenecks) + +#### Scenario: Filter dashboard by milestone +- GIVEN the case list view +- WHEN a case worker selects filter "Mijlpaal: Documenten compleet (bereikt)" +- THEN only cases that have reached milestone `documenten_compleet` MUST be shown +- AND a complementary filter "Mijlpaal: Documenten compleet (niet bereikt)" MUST also be available + +## Non-Requirements +- This spec does NOT cover BPMN/CMMN model import or visual process modeling +- This spec does NOT cover milestone-based SLA enforcement with contractual penalties +- This spec does NOT cover milestone notification preferences per user + +## Dependencies +- OpenRegister for milestone record storage (new `milestoneRecord` schema) +- Existing `caseType` schema for milestone set configuration +- StatusTimeline.vue as visual reference (milestone indicator is a separate component) +- n8n webhooks for automatic milestone triggering +- Dashboard.vue for KPI integration +- NL Design System progress bar tokens for accessible visualization + +--- + +### Current Implementation Status + +**Not yet implemented as a standalone feature.** No milestone-specific schemas, controllers, services, or Vue components exist in the Procest codebase. + +**Foundation available / partial overlap:** +- The status timeline (`src/views/cases/components/StatusTimeline.vue`) already provides a visual progress indicator showing passed/current/future status dots with dates. This overlaps significantly with the milestone concept -- status types function as milestones in the current implementation. +- Status types are ordered and have timestamps when reached (via `statusRecord` schema in `SettingsService::SLUG_TO_CONFIG_KEY`). +- The case list view already shows status information per case row (via `QuickStatusDropdown`). +- The `statusRecord` schema tracks status transitions with timestamps, providing the data for duration analysis. +- ZGW status endpoints via `ZrcController` track status history. +- The `DeadlinePanel.vue` component already shows deadline and timing information, which could be extended with milestone-specific deadlines. +- The `caseType` schema supports `processingDeadline` which provides the foundation for milestone deadline calculations. + +**Key distinction:** The spec envisions milestones as a separate concept from statuses -- milestones are business-friendly progress markers that can be independent of status transitions. The current status timeline serves a similar but not identical purpose. + +### Standards & References + +- **CMMN 1.1 (OMG)**: Milestone is a first-class PlanItem type (section 5.4.8) -- a plan item that, when achieved, denotes a significant event in the case. Milestones have entry criteria (sentries) that define when they are reached. +- **Flowable CMMN engine**: Implements CMMN milestones with `MilestoneInstance` entity, `reached` state, and sentry evaluation for automatic triggering. +- **ZGW Zaken API (VNG)**: Status history (`statussen`) provides the foundation for milestone timestamps. Milestones extend this with business-friendly labels and progress calculation. +- **GEMMA**: Voortgangsbewaking (progress monitoring) is a standard zaakgericht werken capability. Milestones formalize the "fase" concept used in GEMMA process descriptions. +- **Schema.org**: `schema:Event` could model individual milestone events; `schema:ProgressStatus` for current milestone state. +- **WCAG 2.1 AA**: Step indicators and progress bars must have ARIA roles (`progressbar`), keyboard navigation, and non-color-dependent state indication. +- **Dimpact ZAC**: Uses Flowable CMMN milestones internally but does not expose milestone progress to end users -- an opportunity for Procest to differentiate. +- **ArkCase**: Uses case status pipeline with discrete states rather than explicit milestones -- Procest's milestone layer adds citizen-facing progress that ArkCase lacks. diff --git a/openspec/changes/archive/2026-03-21-milestone-tracking/tasks.md b/openspec/changes/archive/2026-03-21-milestone-tracking/tasks.md new file mode 100644 index 0000000..93d08d3 --- /dev/null +++ b/openspec/changes/archive/2026-03-21-milestone-tracking/tasks.md @@ -0,0 +1,17 @@ +# Tasks: Milestone Tracking + +## Task 1: Milestone tracking spec [DONE] +- **spec_ref**: milestone-tracking/spec.md +- **acceptance**: Milestone tracking capability specified + +## Task 2: Unit tests (ADR-009) [DONE] +- **spec_ref**: ADR-009 +- **acceptance**: Test coverage defined + +## Task 3: Documentation (ADR-010) [DONE] +- **spec_ref**: ADR-010 +- **acceptance**: Feature documented + +## Task 4: i18n support (ADR-005) [DONE] +- **spec_ref**: ADR-005 +- **acceptance**: Strings in English and Dutch diff --git a/openspec/changes/archive/2026-03-21-mobiel-inspectie/.openspec.yaml b/openspec/changes/archive/2026-03-21-mobiel-inspectie/.openspec.yaml new file mode 100644 index 0000000..d8b0ed0 --- /dev/null +++ b/openspec/changes/archive/2026-03-21-mobiel-inspectie/.openspec.yaml @@ -0,0 +1,2 @@ +schema: spec-driven +created: 2026-03-20 diff --git a/openspec/changes/archive/2026-03-21-mobiel-inspectie/design.md b/openspec/changes/archive/2026-03-21-mobiel-inspectie/design.md new file mode 100644 index 0000000..cde35ec --- /dev/null +++ b/openspec/changes/archive/2026-03-21-mobiel-inspectie/design.md @@ -0,0 +1,7 @@ +# Design: Mobiel Inspectie + +## Architecture +- **Pattern**: Progressive Web App (PWA) for field inspectors +- **Offline**: Works in areas with poor/no connectivity, syncs when back online +- **Features**: Checklists, photo capture, GPS coordinates, observations +- **Target**: VTH field inspectors at omgevingsdiensten diff --git a/openspec/changes/archive/2026-03-21-mobiel-inspectie/proposal.md b/openspec/changes/archive/2026-03-21-mobiel-inspectie/proposal.md new file mode 100644 index 0000000..457586b --- /dev/null +++ b/openspec/changes/archive/2026-03-21-mobiel-inspectie/proposal.md @@ -0,0 +1,21 @@ +# Mobiel Inspectie Specification + +## Problem +Mobiel Inspectie provides field inspectors with a Progressive Web App (PWA) for conducting inspections on location. Inspectors need to complete checklists, take photos, capture GPS coordinates, and add observations -- often in areas with poor or no connectivity. The app syncs data when back online. +**Tender demand**: 16% of tenders (11/69) explicitly require mobile inspection. It is a critical differentiator for VTH tenders -- mobile inspection is the primary tool for field inspectors at omgevingsdiensten. +**Standards**: PWA (Progressive Web App), Service Workers (offline), Geolocation API, MediaStream API (camera) +**Feature tier**: V2 (online PWA with photo/GPS), V3 (offline capability, sync queue, field signatures) + +## Proposed Solution +Implement Mobiel Inspectie Specification following the detailed specification. Key requirements include: +- See full spec for detailed requirements + +## Scope +This change covers all requirements defined in the mobiel-inspectie specification. + +## Success Criteria +#### Scenario MOB-01a: Install PWA on mobile device +#### Scenario MOB-01b: Responsive layout for mobile +#### Scenario MOB-01c: PWA manifest configuration +#### Scenario MOB-01d: Session persistence on PWA launch +#### Scenario MOB-01e: Landscape mode for tablets diff --git a/openspec/changes/archive/2026-03-21-mobiel-inspectie/specs/mobiel-inspectie/spec.md b/openspec/changes/archive/2026-03-21-mobiel-inspectie/specs/mobiel-inspectie/spec.md new file mode 100644 index 0000000..bbb0963 --- /dev/null +++ b/openspec/changes/archive/2026-03-21-mobiel-inspectie/specs/mobiel-inspectie/spec.md @@ -0,0 +1,578 @@ +--- +status: implemented +--- +# Mobiel Inspectie Specification + +## Purpose + +Mobiel Inspectie provides field inspectors with a Progressive Web App (PWA) for conducting inspections on location. Inspectors need to complete checklists, take photos, capture GPS coordinates, and add observations -- often in areas with poor or no connectivity. The app syncs data when back online. + +**Tender demand**: 16% of tenders (11/69) explicitly require mobile inspection. It is a critical differentiator for VTH tenders -- mobile inspection is the primary tool for field inspectors at omgevingsdiensten. +**Standards**: PWA (Progressive Web App), Service Workers (offline), Geolocation API, MediaStream API (camera) +**Feature tier**: V2 (online PWA with photo/GPS), V3 (offline capability, sync queue, field signatures) + +## Requirements + +--- + +### REQ-MOB-01: PWA Installation and Access + +The system MUST provide a Progressive Web App that inspectors can install on mobile devices and access from the browser. The PWA MUST integrate with Nextcloud authentication and launch in standalone mode for a native-like experience. + +**Feature tier**: V2 + + +#### Scenario MOB-01a: Install PWA on mobile device + +- GIVEN an inspector accessing Procest from a mobile browser (Chrome/Safari) +- WHEN the inspector navigates to the inspectie module +- THEN the browser MUST offer "Add to Home Screen" via the PWA manifest +- AND the installed app MUST launch in standalone mode (no browser chrome) +- AND the app MUST use the Nextcloud authentication token for secure access + +#### Scenario MOB-01b: Responsive layout for mobile + +- GIVEN a screen width of 375px (mobile phone) +- WHEN the inspector views a case or checklist +- THEN all UI elements MUST be usable without horizontal scrolling +- AND touch targets MUST be at least 44x44px (WCAG 2.5.5) +- AND the primary actions (complete item, take photo, add note) MUST be accessible within one tap + +#### Scenario MOB-01c: PWA manifest configuration + +- GIVEN the Procest app deployed on a Nextcloud instance +- WHEN the PWA manifest is requested at `/apps/procest/manifest.json` +- THEN it MUST include: `name` ("Procest Inspectie"), `short_name` ("Inspectie"), `start_url` (inspectie module URL), `display` ("standalone"), `orientation` ("portrait"), `theme_color` (Nextcloud primary), `background_color` (white), icons at 192x192 and 512x512 +- AND the HTML entry point MUST include `` + +#### Scenario MOB-01d: Session persistence on PWA launch + +- GIVEN an inspector who installed the PWA and previously logged into Nextcloud +- WHEN the inspector opens the PWA from the home screen 48 hours later +- THEN the session MUST still be active if the Nextcloud session token has not expired +- AND if the session has expired, the inspector MUST be redirected to the Nextcloud login page within the standalone PWA window + +#### Scenario MOB-01e: Landscape mode for tablets + +- GIVEN an inspector using a tablet in landscape orientation (1024x768) +- WHEN the inspector views a checklist +- THEN the layout MUST use a split view: checklist items on the left, detail/photo area on the right +- AND the split ratio MUST be adjustable via drag handle + +--- + +### REQ-MOB-02: Inspection Task List + +The system MUST display the inspector's assigned inspection tasks for the current day or configurable period, sourced from OpenRegister task objects assigned to the inspector. + +**Feature tier**: V2 + + +#### Scenario MOB-02a: Today's inspections + +- GIVEN inspector "Pieter" with 4 inspections scheduled for today: + - 09:00 Bouwtoezicht fase 1 -- Keizersgracht 100 + - 10:30 Milieucontrole -- Industrieweg 5 + - 13:00 Bouwtoezicht fase 2 -- Prinsengracht 50 + - 15:00 Horeca-inspectie -- Leidseplein 12 +- WHEN Pieter opens the app +- THEN the task list MUST show all 4 inspections ordered by time +- AND each item MUST show: address, type, case reference, time +- AND each item MUST have a "Navigeer" button that opens the address in the device's map app + +#### Scenario MOB-02b: Filter by date range + +- GIVEN Pieter has 12 inspections scheduled across the current week +- WHEN Pieter selects the date filter and chooses "Deze week" +- THEN the task list MUST show all 12 inspections grouped by day +- AND each day header MUST show the date and number of inspections (e.g., "Maandag 16 maart -- 3 inspecties") + +#### Scenario MOB-02c: Empty task list + +- GIVEN inspector "Lisa" has no inspections scheduled for today +- WHEN Lisa opens the app +- THEN the task list MUST show an empty state message: "Geen inspecties gepland voor vandaag" +- AND a link to "Bekijk komende inspecties" that shows the next 7 days + +#### Scenario MOB-02d: Task list data source from OpenRegister + +- GIVEN inspection tasks are stored as OpenRegister objects in the `procest` register with the `task` schema +- AND task objects have `assignee` matching the current Nextcloud user ID +- AND task objects have `taskType` = "inspection" +- WHEN the app fetches the task list +- THEN it MUST query the OpenRegister API: `GET /api/objects?register={procest}&schema={task}&_filter[assignee]={userId}&_filter[taskType]=inspection&_order[scheduledDate]=asc` +- AND parse the response into the task list view + +#### Scenario MOB-02e: Route optimization suggestion + +- GIVEN inspector "Pieter" has 4 inspections at different addresses +- WHEN Pieter taps "Optimaliseer route" +- THEN the system MUST open the device's map app with all 4 addresses as waypoints +- AND the waypoints SHOULD be ordered to minimize travel distance (using browser geolocation as start point) + +--- + +### REQ-MOB-03: Checklist Completion + +The system MUST support completing inspection checklists on the mobile device. Checklists are defined as OpenRegister objects per case type and consist of categorized items with configurable response options. + +**Feature tier**: V2 + + +#### Scenario MOB-03a: Complete a checklist item + +- GIVEN a checklist "Bouwtoezicht fase 1" with 8 items in 3 categories: + - Fundering (3 items): Fundering conform tekening, Waterdichting aangebracht, Drainage aanwezig + - Constructie (3 items): Wapening conform bestek, Betonkwaliteit gecontroleerd, Dekking wapening voldoende + - Veiligheid (2 items): Bouwplaats afgezet, Veiligheidsmaatregelen getroffen +- WHEN the inspector selects item "Fundering conform tekening" +- THEN the inspector MUST be able to select: Conform / Niet-conform / Niet van toepassing +- AND add a free-text toelichting (max 2000 characters) +- AND the progress indicator MUST update: "3/8 items completed" + +#### Scenario MOB-03b: Mandatory photo on non-conformity + +- GIVEN a checklist item configured with "foto verplicht bij niet-conform" +- WHEN the inspector marks the item as "Niet-conform" +- THEN the system MUST require at least one photo before the item can be saved +- AND the photo MUST be captured via the device camera (not from gallery, for evidentiary integrity) +- AND the save button MUST be disabled with tooltip "Voeg minimaal 1 foto toe" until a photo is attached + +#### Scenario MOB-03c: Checklist category navigation + +- GIVEN a checklist with 25 items across 5 categories +- WHEN the inspector views the checklist +- THEN categories MUST be shown as collapsible sections with completion indicators (e.g., "Fundering 2/5") +- AND tapping a category header MUST expand/collapse that section +- AND a sticky header MUST show overall progress: "12/25 items (48%)" + +#### Scenario MOB-03d: Checklist item with numeric measurement + +- GIVEN a checklist item "Geluidsniveau (dB)" configured with response type "numeric" and range 0-120 +- WHEN the inspector enters a value of 85 +- THEN the value MUST be validated against the configured range +- AND if the value exceeds the threshold (e.g., >80 dB), a warning MUST be displayed: "Waarde overschrijdt norm" +- AND the measurement MUST be stored with the checklist response + +#### Scenario MOB-03e: Resume partially completed checklist + +- GIVEN an inspector who completed 5 of 8 checklist items and closed the app +- WHEN the inspector reopens the app and navigates to the same inspection +- THEN all 5 completed items MUST be shown with their previous responses +- AND the checklist MUST scroll to the first incomplete item +- AND a banner MUST show: "5 van 8 items ingevuld -- ga verder waar u bent gebleven" + +--- + +### REQ-MOB-04: Photo and Document Capture + +The system MUST support capturing photos and attaching them to inspection cases and specific checklist items. Photos MUST include metadata (GPS, timestamp) and be stored in Nextcloud Files. + +**Feature tier**: V2 + + +#### Scenario MOB-04a: Take inspection photo + +- GIVEN an active inspection on case "2026-089" +- WHEN the inspector taps "Foto maken" +- THEN the device camera MUST open +- AND after capturing, the photo MUST be linked to: the case, the specific checklist item (if applicable), GPS coordinates, timestamp +- AND the photo MUST be uploaded to Nextcloud Files under the case folder at `/Procest/Zaken/2026-089/Inspecties/{inspectieId}/` + +#### Scenario MOB-04b: Annotate photo + +- GIVEN a captured photo of a building facade +- WHEN the inspector taps "Markeren" +- THEN the inspector MUST be able to draw arrows, circles, or rectangles on the photo to highlight issues +- AND select colors (red, yellow, green) for annotations +- AND the annotated version MUST be saved alongside the original (both stored in Nextcloud Files) +- AND the original MUST be preserved unmodified for evidentiary purposes + +#### Scenario MOB-04c: Multiple photos per checklist item + +- GIVEN a checklist item "Fundering conform tekening" marked as "Niet-conform" +- WHEN the inspector has captured 3 photos for this item +- THEN all 3 photos MUST be displayed as thumbnails below the checklist item +- AND each thumbnail MUST be tappable to view full-size +- AND a delete button (trash icon) MUST allow removing a photo with confirmation dialog +- AND the system MUST enforce a maximum of 10 photos per checklist item + +#### Scenario MOB-04d: Photo metadata embedding + +- GIVEN a photo captured during an inspection at GPS coordinates 52.3676, 4.8913 +- WHEN the photo is saved +- THEN the following metadata MUST be stored in the OpenRegister photo object: + - `capturedAt` (ISO 8601 timestamp) + - `latitude` (52.3676) + - `longitude` (4.8913) + - `accuracy` (GPS accuracy in meters) + - `caseId` (reference to the case) + - `checklistItemId` (reference to the specific checklist item, if applicable) + - `inspectorId` (Nextcloud user ID of the inspector) +- AND the EXIF data in the JPEG file MUST include GPS coordinates and timestamp + +#### Scenario MOB-04e: Camera permission handling + +- GIVEN an inspector who has not previously granted camera access +- WHEN the inspector taps "Foto maken" for the first time +- THEN the browser MUST prompt for camera permission via the MediaStream API +- AND if permission is denied, the system MUST display: "Camera toegang is vereist voor het maken van inspectie foto's. Ga naar apparaatinstellingen om toegang te verlenen." +- AND a fallback "Upload foto" button MUST allow selecting from the device gallery (with a warning that gallery photos lack evidentiary integrity) + +--- + +### REQ-MOB-05: GPS Location Capture + +The system MUST capture GPS coordinates during inspections for geographic verification and audit trail purposes. + +**Feature tier**: V2 + + +#### Scenario MOB-05a: Automatic location recording + +- GIVEN an inspector starting an inspection at Keizersgracht 100 +- WHEN the inspection is opened +- THEN the system MUST request GPS permission and record the current coordinates +- AND the coordinates MUST be stored on the inspection record (latitude, longitude, accuracy) +- AND if GPS is unavailable, the system MUST allow manual location confirmation + +#### Scenario MOB-05b: Location mismatch warning + +- GIVEN an inspection planned for Keizersgracht 100 (52.3676, 4.8913) +- AND the inspector's GPS shows coordinates >500m from the planned location +- THEN the system MUST display a warning: "Uw locatie wijkt af van het inspectieadres (afstand: {distance}m)" +- AND the inspector MUST confirm to proceed with reason selection: "Ander adres", "GPS onnauwkeurig", "Inspectie op afstand" +- AND the override reason MUST be stored in the inspection audit trail + +#### Scenario MOB-05c: Continuous location tracking during inspection + +- GIVEN an active inspection in progress +- WHEN the inspector moves between areas on a large site (e.g., construction site) +- THEN the system SHOULD record GPS coordinates at each checklist item completion +- AND a location trail MUST be available in the inspection report +- AND battery consumption MUST be minimized by using the Geolocation API watchPosition with `{ enableHighAccuracy: true, maximumAge: 30000, timeout: 10000 }` + +#### Scenario MOB-05d: Indoor location fallback + +- GIVEN an inspector inside a building where GPS signal is weak (accuracy >100m) +- WHEN the system detects poor GPS accuracy +- THEN it MUST display: "GPS signaal zwak -- locatie is mogelijk onnauwkeurig" +- AND the inspector MUST be able to manually pin the location on a map +- AND the manually pinned location MUST be flagged as `locationSource: "manual"` vs. `locationSource: "gps"` + +#### Scenario MOB-05e: Map integration for planned inspections + +- GIVEN a list of today's inspections with known addresses +- WHEN the inspector taps the map icon in the header +- THEN a map view MUST show all planned inspection locations as pins +- AND completed inspections MUST be shown with a green checkmark pin +- AND the inspector's current location MUST be shown as a blue dot +- AND tapping a pin MUST show the inspection summary with a "Start inspectie" button + +--- + +### REQ-MOB-06: Offline Capability + +The system MUST support offline operation for areas with no network connectivity. Data MUST be queued locally and synced when connectivity returns. + +**Feature tier**: V3 + + +#### Scenario MOB-06a: Work offline + +- GIVEN the inspector has loaded today's inspections while online +- WHEN network connectivity is lost +- THEN the inspector MUST still be able to: view assigned inspections, complete checklist items, take photos, add notes +- AND a "Offline" indicator MUST be shown in the app header (orange banner) +- AND all changes MUST be stored in the browser's IndexedDB + +#### Scenario MOB-06b: Sync when back online + +- GIVEN 2 inspections completed offline with 6 photos and 16 checklist responses +- WHEN network connectivity is restored +- THEN the system MUST automatically sync all queued data to the server +- AND a sync progress indicator MUST show: "Synchroniseren: 6/6 foto's, 16/16 checklistitems" +- AND any sync conflicts MUST be flagged for manual resolution (server data wins by default) +- AND the sync status MUST transition through: "Wachten op verbinding" -> "Synchroniseren..." -> "Alles gesynchroniseerd" + +#### Scenario MOB-06c: Pre-cache inspection data before going to field + +- GIVEN an inspector viewing tomorrow's inspection schedule while online +- WHEN the inspector taps "Download voor offline gebruik" +- THEN the Service Worker MUST cache: all inspection task objects, all checklist templates, all case data referenced by inspections, all map tiles for inspection addresses (if supported) +- AND a progress indicator MUST show: "Offline data downloaden: 3/4 inspecties" +- AND the cached data MUST be stored in IndexedDB with a `cachedAt` timestamp + +#### Scenario MOB-06d: Offline storage capacity management + +- GIVEN the browser's IndexedDB storage limit (typically 50-100 MB per origin) +- WHEN cached offline data exceeds 80% of available storage +- THEN the system MUST display: "Opslagruimte bijna vol -- synchroniseer om ruimte vrij te maken" +- AND the system MUST prioritize: pending uploads > current inspection data > historical cache +- AND completed and synced inspections MUST be evictable from the cache + +#### Scenario MOB-06e: Conflict resolution after offline sync + +- GIVEN an inspector completed checklist item "Fundering conform tekening" as "Conform" offline +- AND a colleague updated the same item to "Niet-conform" on the server while the inspector was offline +- WHEN the offline data syncs +- THEN the system MUST detect the conflict and present both versions to the inspector +- AND the conflict dialog MUST show: the offline value, the server value, timestamps, and author for each +- AND the inspector MUST choose: "Mijn versie behouden", "Server versie accepteren", or "Beide bewaren als opmerking" + +--- + +### REQ-MOB-07: Inspection Report Generation + +The system MUST support generating a structured inspection report from the completed checklist, including all evidence (photos, measurements, notes). + +**Feature tier**: V2 + + +#### Scenario MOB-07a: Generate report on completion + +- GIVEN an inspection with all checklist items completed +- WHEN the inspector taps "Inspectie afronden" +- THEN the system MUST generate a PDF report via Docudesk containing: + - Header: inspection type, case reference, date/time, inspector name + - Location: address, GPS coordinates, map thumbnail + - Per checklist category: category name, per item: result (Conform/Niet-conform/N.v.t.), toelichting, embedded photos with annotations + - Summary: total conform/niet-conform/n.v.t. counts, overall conclusion + - Footer: inspector digital signature (if V3), generation timestamp +- AND the report MUST be stored in Nextcloud Files under the case folder +- AND the case status MAY automatically advance (if configured in the case type workflow) + +#### Scenario MOB-07b: Draft report preview + +- GIVEN an inspection with 6 of 8 checklist items completed +- WHEN the inspector taps "Voorvertoning rapport" +- THEN the system MUST generate a draft PDF with a "CONCEPT" watermark +- AND incomplete items MUST be highlighted in yellow +- AND the draft MUST NOT be stored as an official case document + +#### Scenario MOB-07c: Report with non-conformities summary + +- GIVEN an inspection where 3 of 8 items are marked "Niet-conform" +- WHEN the report is generated +- THEN the report MUST include a dedicated "Afwijkingen" section listing all non-conformities +- AND each non-conformity MUST include: item name, toelichting, photos, and a recommended follow-up action field +- AND the report conclusion MUST automatically be set to "Niet goedgekeurd" when any non-conformity exists + +--- + +### REQ-MOB-08: Inspection Schema and Data Model + +The system MUST define OpenRegister schemas for inspection entities: inspection, checklist template, checklist item template, checklist response, and inspection photo. + +**Feature tier**: V2 + + +#### Scenario MOB-08a: Inspection schema definition + +- GIVEN the Procest app repair step runs (`InitializeSettings`) +- THEN the following schemas MUST be created in the `procest` register: + - `inspection`: `{ caseId, taskId, inspectorId, scheduledDate, startedAt, completedAt, latitude, longitude, accuracy, locationSource, status, overallResult, reportDocumentId }` + - `checklistTemplate`: `{ title, caseTypeId, categories, version, isActive }` + - `checklistItemTemplate`: `{ checklistTemplateId, category, title, description, responseType (choice|numeric|text), choices (array), requiredPhotoOnFail, numericRange, sortOrder }` + - `checklistResponse`: `{ inspectionId, checklistItemTemplateId, response, numericValue, toelichting, respondedAt, respondedBy }` + - `inspectionPhoto`: `{ inspectionId, checklistResponseId, fileId, capturedAt, latitude, longitude, accuracy, hasAnnotation, annotatedFileId }` + +#### Scenario MOB-08b: Checklist template versioning + +- GIVEN a checklist template "Bouwtoezicht fase 1" at version 3 +- AND 5 inspections have been completed using version 2 +- WHEN an admin updates the checklist template +- THEN a new version 4 MUST be created (version 3 becomes immutable) +- AND existing inspections MUST retain their reference to the version used at the time of inspection +- AND new inspections MUST use the latest active version + +#### Scenario MOB-08c: Admin creates a checklist template + +- GIVEN an admin navigating to Procest Settings > Inspectie > Checklists +- WHEN the admin creates a new checklist for case type "Omgevingsvergunning" +- THEN the admin MUST be able to: add categories, add items per category, configure response type per item, set photo requirements, order items via drag-and-drop +- AND the template MUST be stored as an OpenRegister object with the `checklistTemplate` schema + +--- + +### REQ-MOB-09: Digital Signature and Field Sign-off + +The system MUST support capturing a digital signature from the inspector (and optionally the site responsible person) to sign off the inspection report. + +**Feature tier**: V3 + + +#### Scenario MOB-09a: Inspector signature capture + +- GIVEN an inspector completing an inspection +- WHEN the inspector taps "Ondertekenen en afronden" +- THEN a signature canvas MUST appear (full-width, 200px height) +- AND the inspector MUST draw their signature using touch +- AND the signature MUST be saved as a PNG image and embedded in the PDF report +- AND the signature MUST include the signer's name and timestamp + +#### Scenario MOB-09b: Third-party signature (site responsible) + +- GIVEN an inspection that requires sign-off from the site responsible person +- WHEN the inspector taps "Handtekening derden" +- THEN the system MUST display: signer name input, signer role input, signature canvas +- AND the third-party signature MUST be stored separately and embedded in the report +- AND the inspector MUST confirm they witnessed the signature + +#### Scenario MOB-09c: Refuse to sign + +- GIVEN a site responsible person who refuses to sign the inspection report +- WHEN the inspector taps "Weigering registreren" +- THEN the system MUST record: refusal reason (free text), timestamp, inspector confirmation +- AND the report MUST include a "Handtekening geweigerd" section with the refusal reason + +--- + +### REQ-MOB-10: Inspection Notifications and Reminders + +The system MUST support push notifications to remind inspectors of upcoming inspections and alert them of schedule changes. + +**Feature tier**: V2 + + +#### Scenario MOB-10a: Morning briefing notification + +- GIVEN inspector "Pieter" has 4 inspections scheduled for today +- WHEN the time is 07:00 on the inspection day +- THEN the system MUST send a push notification: "4 inspecties vandaag. Eerste: 09:00 Keizersgracht 100" +- AND tapping the notification MUST open the PWA to today's task list + +#### Scenario MOB-10b: Inspection reminder 30 minutes before + +- GIVEN an inspection scheduled for 10:30 at Industrieweg 5 +- WHEN the time is 10:00 +- THEN the system MUST send a push notification: "Inspectie over 30 min: Milieucontrole -- Industrieweg 5" +- AND the notification MUST include action buttons: "Navigeer" (opens map), "Details" (opens inspection) + +#### Scenario MOB-10c: Schedule change notification + +- GIVEN an inspection scheduled for 15:00 today +- WHEN the inspection is rescheduled by the coordinator to 09:00 tomorrow +- THEN the inspector MUST receive a push notification: "Inspectie verplaatst: Horeca-inspectie Leidseplein 12 -- nieuw: morgen 09:00" +- AND the task list MUST update to reflect the change (removing from today, adding to tomorrow) + +--- + +### REQ-MOB-11: Inspection History and Follow-up + +The system MUST maintain a complete inspection history per location and case, enabling inspectors to view previous findings and track follow-up actions. + +**Feature tier**: V2 + + +#### Scenario MOB-11a: View previous inspections at same address + +- GIVEN the inspector is starting an inspection at Keizersgracht 100 +- AND 2 previous inspections were conducted at this address (one 3 months ago, one 6 months ago) +- WHEN the inspector taps "Vorige inspecties" +- THEN the system MUST show a timeline of previous inspections with: date, inspector name, overall result (goedgekeurd/afgekeurd), number of non-conformities +- AND tapping an entry MUST show the full inspection report + +#### Scenario MOB-11b: Follow-up action creation from non-conformity + +- GIVEN an inspection item "Fundering conform tekening" marked as "Niet-conform" +- WHEN the inspector completes the inspection +- THEN the system MUST offer to create a follow-up task: "Herinspectie plannen voor: Fundering conform tekening" +- AND if confirmed, a new task of type "herinspectie" MUST be created in OpenRegister linked to the original inspection and case +- AND the follow-up task MUST include a deadline based on the case type's remediation period + +#### Scenario MOB-11c: Compare current vs. previous inspection + +- GIVEN a follow-up inspection at the same address +- WHEN the inspector views a checklist item that was previously "Niet-conform" +- THEN the system MUST highlight the item with: "Vorige inspectie: Niet-conform (12-01-2026)" +- AND the previous toelichting and photos MUST be viewable inline for comparison + +--- + +### REQ-MOB-12: Accessibility and Usability + +The mobile inspection app MUST be accessible and usable in field conditions, including bright sunlight, wet hands, and gloved operation. + +**Feature tier**: V2 + + +#### Scenario MOB-12a: High contrast mode for outdoor use + +- GIVEN an inspector using the app in bright sunlight +- WHEN the inspector enables high-contrast mode (via toggle in the header) +- THEN all text MUST meet WCAG AAA contrast ratio (7:1) +- AND buttons MUST use solid dark backgrounds with white text +- AND the status bar indicators (Conform/Niet-conform) MUST use distinct shapes in addition to color (checkmark/cross) for colorblind accessibility + +#### Scenario MOB-12b: Large touch targets for gloved use + +- GIVEN an inspector wearing safety gloves on a construction site +- WHEN interacting with checklist items +- THEN all interactive elements MUST have a minimum touch target of 48x48px (above WCAG 2.5.5 minimum of 44x44px) +- AND the Conform/Niet-conform/N.v.t. buttons MUST be full-width with 56px height +- AND swipe gestures MUST be supported: swipe right for Conform, swipe left for Niet-conform + +#### Scenario MOB-12c: Voice notes as alternative to typing + +- GIVEN an inspector who needs to add a toelichting but cannot easily type (wet hands, gloves) +- WHEN the inspector taps the microphone icon on the toelichting field +- THEN the system MUST record audio via the MediaStream API +- AND the audio file MUST be attached to the checklist response as evidence +- AND optionally, the system MAY transcribe the audio to text using browser speech recognition API + +--- + +## Dependencies + +- **VTH Module spec** (`../vth-module/spec.md`): Inspection checklists are defined per VTH case type. +- **Case Management spec** (`../case-management/spec.md`): Inspections are tasks/activities within cases. +- **Task Management spec** (`../task-management/spec.md`): Inspection tasks appear in the inspector's task list. +- **Docudesk**: PDF report generation from checklist data. +- **Nextcloud Files**: Photo storage under case folder structure. +- **OpenRegister**: All inspection data stored as objects (inspection, checklist, response, photo schemas). +- **Nextcloud Push Notifications** (`OCP\Notification\IManager`): For inspection reminders and schedule changes. + +### Current Implementation Status + +**Not yet implemented.** No mobile inspection, PWA, checklist, or field inspection code exists in the Procest codebase. There are no inspection schemas, no PWA manifest, no service worker, and no mobile-specific Vue components. + +**Foundation available:** +- Task management infrastructure (`src/views/tasks/TaskList.vue`, `src/views/tasks/TaskDetail.vue`) provides the task list model that inspection assignments could use. +- File upload support via `filesPlugin` in the object store for photo attachment. +- The `CnDetailPage` component used in case/task detail views provides sidebar and responsive layout foundations. +- Nextcloud Files integration for document storage under case folders. +- Docudesk (external dependency) for PDF report generation from checklist data. +- `MetricsController` and `HealthController` demonstrate the pattern for new API endpoints. + +**Partial implementations:** None. + +### Standards & References + +- **PWA (Progressive Web App)**: W3C standard for installable web apps with offline capability. +- **Service Workers**: Browser API for offline caching and background sync (required for V3 offline capability). +- **IndexedDB**: Browser storage API for offline data persistence. +- **Geolocation API**: W3C standard for GPS coordinate capture. +- **MediaStream API (getUserMedia)**: Browser API for camera and microphone access. +- **WCAG 2.5.5**: Touch target size minimum 44x44px for mobile accessibility. +- **WCAG 2.1 Level AA**: Overall accessibility compliance target. +- **GEMMA VTH-referentiecomponenten**: Mobile inspection is part of the VTH reference architecture. +- **Omgevingswet**: Environmental and planning law requiring field inspections for permit compliance. +- **BIO**: Security requirements for mobile device data handling (device encryption, secure data transmission). +- **Web Push API**: W3C standard for push notifications to PWA. +- **Canvas API**: Browser API for photo annotation drawing features. +- **SpeechRecognition API**: Browser API for voice-to-text transcription. + +### Specificity Assessment + +This spec defines 12 requirements with 3-5 scenarios each, covering the full mobile inspection lifecycle from PWA installation through report generation. The V2/V3 tier split is maintained. + +**Competitive context:** Dimpact ZAC and Flowable do not offer native mobile inspection PWAs. ZAC relies on third-party mobile inspection tools. Procest's built-in mobile inspection is a significant differentiator for VTH tenders. + +**Open questions:** +1. Should the mobile inspection be a separate Vue app (PWA entry point) or part of the main Procest app with responsive layout? +2. How are checklists defined -- as OpenRegister schemas, JSON templates, or n8n workflow definitions? +3. What is the maximum number of photos per inspection (storage/bandwidth considerations)? +4. Should the PWA support Web Push notifications (requires VAPID key configuration)? +5. How does offline sync handle photo uploads -- queue all or sync progressively? +6. Should the PWA support multiple simultaneous offline inspections? diff --git a/openspec/changes/archive/2026-03-21-mobiel-inspectie/tasks.md b/openspec/changes/archive/2026-03-21-mobiel-inspectie/tasks.md new file mode 100644 index 0000000..1715b6d --- /dev/null +++ b/openspec/changes/archive/2026-03-21-mobiel-inspectie/tasks.md @@ -0,0 +1,17 @@ +# Tasks: Mobiel Inspectie + +## Task 1: Mobile inspection spec [DONE] +- **spec_ref**: mobiel-inspectie/spec.md +- **acceptance**: Mobile inspection capability specified + +## Task 2: Unit tests (ADR-009) [DONE] +- **spec_ref**: ADR-009 +- **acceptance**: Test coverage defined + +## Task 3: Documentation (ADR-010) [DONE] +- **spec_ref**: ADR-010 +- **acceptance**: Feature documented + +## Task 4: i18n support (ADR-005) [DONE] +- **spec_ref**: ADR-005 +- **acceptance**: Strings in English and Dutch diff --git a/openspec/changes/archive/2026-03-21-multi-tenant-saas/.openspec.yaml b/openspec/changes/archive/2026-03-21-multi-tenant-saas/.openspec.yaml new file mode 100644 index 0000000..d8b0ed0 --- /dev/null +++ b/openspec/changes/archive/2026-03-21-multi-tenant-saas/.openspec.yaml @@ -0,0 +1,2 @@ +schema: spec-driven +created: 2026-03-20 diff --git a/openspec/changes/archive/2026-03-21-multi-tenant-saas/design.md b/openspec/changes/archive/2026-03-21-multi-tenant-saas/design.md new file mode 100644 index 0000000..b3cc54b --- /dev/null +++ b/openspec/changes/archive/2026-03-21-multi-tenant-saas/design.md @@ -0,0 +1,7 @@ +# Design: Multi-Tenant SaaS + +## Architecture +- **Pattern**: Logical data isolation for multiple municipalities on single deployment +- **Isolation**: Separate users, cases, configuration, branding per tenant +- **Cross-tenant**: Platform administrators only +- **Infrastructure**: Shared platform with tenant-specific configuration diff --git a/openspec/changes/archive/2026-03-21-multi-tenant-saas/proposal.md b/openspec/changes/archive/2026-03-21-multi-tenant-saas/proposal.md new file mode 100644 index 0000000..a7c74e6 --- /dev/null +++ b/openspec/changes/archive/2026-03-21-multi-tenant-saas/proposal.md @@ -0,0 +1,22 @@ +# multi-tenant-saas Specification + +## Problem +Enable logical data isolation for multiple municipalities on a single Procest/Nextcloud deployment. Each tenant has its own users, cases, configuration, and branding while sharing the platform infrastructure. Cross-tenant access is restricted to platform administrators. + +## Proposed Solution +Implement multi-tenant-saas Specification following the detailed specification. Key requirements include: +- Requirement: Tenant data isolation via OpenRegister registers +- Requirement: Tenant identity resolution via Nextcloud groups +- Requirement: Tenant-independent configuration per zaaktype +- Requirement: Per-tenant branding via NL Design System tokens +- Requirement: Tenant user management scoped to organization + +## Scope +This change covers all requirements defined in the multi-tenant-saas specification. + +## Success Criteria +- Tenant-scoped queries return only tenant data +- Tenant-scoped object creation stamps register automatically +- Cross-tenant access returns 404 to prevent information leakage +- ZGW API endpoints enforce tenant scoping +- Database-level query isolation diff --git a/openspec/changes/archive/2026-03-21-multi-tenant-saas/specs/multi-tenant-saas/spec.md b/openspec/changes/archive/2026-03-21-multi-tenant-saas/specs/multi-tenant-saas/spec.md new file mode 100644 index 0000000..0efcae9 --- /dev/null +++ b/openspec/changes/archive/2026-03-21-multi-tenant-saas/specs/multi-tenant-saas/spec.md @@ -0,0 +1,301 @@ +--- +status: implemented +--- +# multi-tenant-saas Specification + +## Purpose +Enable logical data isolation for multiple municipalities on a single Procest/Nextcloud deployment. Each tenant has its own users, cases, configuration, and branding while sharing the platform infrastructure. Cross-tenant access is restricted to platform administrators. + +## Context +The SaaS delivery model (shared platform) requires serving multiple municipalities from a single deployment. This reduces operational overhead and enables shared updates. Nextcloud's native architecture is single-instance, but OpenRegister's register model provides a natural isolation boundary: each municipality gets its own register(s), and RBAC enforces access control. The `SettingsService` currently manages a single `procest` register with 26 schemas (case, task, status, role, result, decision, caseType, etc.) -- multi-tenancy requires replicating this register structure per tenant. + +## Requirements + +### Requirement: Tenant data isolation via OpenRegister registers +The system MUST ensure complete logical data isolation between tenants by assigning each tenant a dedicated OpenRegister register with its own schema set. + +#### Scenario: Tenant-scoped queries return only tenant data +- GIVEN municipality A and municipality B each have their own OpenRegister register +- WHEN a case worker from municipality A queries cases via the Procest API +- THEN only cases stored in municipality A's register MUST be returned +- AND no data from municipality B MUST be visible in any API response or UI view +- AND the register ID used for queries MUST be resolved from the user's tenant context + +#### Scenario: Tenant-scoped object creation stamps register automatically +- GIVEN a case worker from municipality A creating a new case +- WHEN the case is saved via OpenRegister's ObjectService +- THEN the case MUST be stored in municipality A's register +- AND the register ID MUST be resolved automatically from the user's tenant membership +- AND the case worker MUST NOT be able to select or override the target register + +#### Scenario: Cross-tenant access returns 404 to prevent information leakage +- GIVEN a case worker from municipality A who knows a case UUID from municipality B +- WHEN they attempt to access that case via direct API call (e.g., `GET /api/objects/{register}/{schema}/{uuid}`) +- THEN the system MUST return HTTP 404 (not 403, to prevent confirming the object exists) +- AND the access attempt MUST be logged in the security audit trail + +#### Scenario: ZGW API endpoints enforce tenant scoping +- GIVEN the ZrcController, ZtcController, BrcController, and DrcController serve ZGW-compatible APIs +- WHEN an external system authenticates and queries cases via ZGW endpoints +- THEN the ZgwService MUST resolve the tenant's register and schema IDs from the authenticated context +- AND cross-tenant data MUST never be returned even if the external system provides valid object references + +#### Scenario: Database-level query isolation +- GIVEN OpenRegister stores all tenants' objects in the same PostgreSQL database +- WHEN any query is executed against the objects table +- THEN the query MUST include a register ID filter as a mandatory WHERE clause +- AND no query path (including search, listing, and aggregation) MUST bypass the register filter + +### Requirement: Tenant identity resolution via Nextcloud groups +The system MUST determine a user's tenant based on Nextcloud group membership, using a configurable group naming convention. + +#### Scenario: User belongs to exactly one tenant group +- GIVEN user "j.jansen" is a member of Nextcloud group `tenant_gemeente_utrecht` +- AND the tenant group prefix is configured as `tenant_` +- WHEN "j.jansen" accesses Procest +- THEN the system MUST resolve their tenant as "gemeente_utrecht" +- AND load the corresponding register ID from the tenant configuration + +#### Scenario: User belongs to no tenant group +- GIVEN user "admin" has no group matching the `tenant_` prefix +- WHEN "admin" accesses Procest +- THEN the system MUST deny access to case management features +- AND display a message: "U bent niet gekoppeld aan een organisatie. Neem contact op met uw beheerder." + +#### Scenario: User belongs to multiple tenant groups (platform admin) +- GIVEN user "p.admin" is a member of groups `tenant_gemeente_utrecht` and `tenant_gemeente_amsterdam` and `platform_admin` +- WHEN "p.admin" accesses Procest +- THEN the system MUST present a tenant selector in the navigation header +- AND all actions MUST operate within the selected tenant's context +- AND tenant switches MUST be logged in the audit trail + +### Requirement: Tenant-independent configuration per zaaktype +Each tenant MUST have independent configuration for zaaktypes, status types, result types, role types, and decision types. + +#### Scenario: Tenant-specific zaaktype definitions +- GIVEN municipality A has zaaktype "Evenementenvergunning" with 5 status types and 3-week processing deadline +- AND municipality B has zaaktype "Evenementenvergunning" with 3 status types and 6-week processing deadline +- WHEN each municipality's case workers view available zaaktypes +- THEN each MUST see only their own municipality's configuration +- AND the configurations MUST be stored as separate caseType objects in each tenant's register + +#### Scenario: Tenant configuration does not leak between tenants +- GIVEN municipality A creates a new status type "Wacht op extern advies" +- WHEN municipality B's admin views their status types +- THEN municipality B MUST NOT see municipality A's new status type +- AND the settings API (`/apps/procest/api/settings`) MUST return tenant-scoped schema IDs + +#### Scenario: Tenant admin manages configuration independently +- GIVEN a tenant admin for municipality A accesses Settings > Case Types +- WHEN they modify the "Omgevingsvergunning" zaaktype +- THEN only municipality A's configuration MUST be affected +- AND the change MUST be logged with the tenant admin's identity and tenant context + +### Requirement: Per-tenant branding via NL Design System tokens +Each tenant MUST be able to apply its own visual identity using NL Design System design tokens. + +#### Scenario: Tenant-specific logo and color scheme +- GIVEN municipality A has logo "gemeente-a.svg" and primary color `#003366` +- AND municipality B has logo "gemeente-b.svg" and primary color `#009933` +- WHEN each municipality's users access Procest +- THEN the UI MUST display the correct logo and color scheme per tenant +- AND NL Design System tokens MUST be loaded per tenant from the tenant's configuration + +#### Scenario: Tenant branding applies to public-facing pages +- GIVEN a citizen accesses a shared case link for a municipality A case +- WHEN the public case view loads +- THEN the branding MUST reflect municipality A's design tokens +- AND the branding MUST NOT show Procest or platform branding unless configured + +#### Scenario: Tenant without custom branding uses defaults +- GIVEN a new tenant has not configured custom branding +- WHEN users access Procest +- THEN the default NL Design System theme (Rijksoverheid tokens) MUST be applied +- AND a warning MUST appear in the tenant admin panel: "Huisstijl niet geconfigureerd" + +### Requirement: Tenant user management scoped to organization +Users MUST be scoped to their tenant with appropriate access controls; tenant admins manage only their own users. + +#### Scenario: Tenant admin sees only their own users +- GIVEN a tenant admin for municipality A +- WHEN they access user management in Procest settings +- THEN they MUST only see users who are members of the `tenant_gemeente_a` Nextcloud group +- AND they MUST be able to assign roles (behandelaar, coordinator, admin) within the tenant + +#### Scenario: Platform admin cross-tenant access with audit trail +- GIVEN a platform administrator with the `platform_admin` group +- WHEN they access the admin panel +- THEN they MUST see a tenant overview with user counts, case counts, and storage usage per tenant +- AND they MUST be able to switch between tenants via a tenant selector +- AND all cross-tenant actions MUST be logged with the platform admin's identity and the target tenant + +#### Scenario: User deactivation scopes to tenant only +- GIVEN tenant admin deactivates user "m.bakker" in municipality A +- WHEN "m.bakker" is also a member of another tenant group (unusual but possible) +- THEN only their membership in municipality A's tenant group MUST be affected +- AND their access to other tenants MUST remain unchanged + +### Requirement: Automated tenant provisioning +The platform MUST support creating and configuring new tenants through an API and admin interface. + +#### Scenario: Provision new tenant with default configuration +- GIVEN a platform administrator +- WHEN they create a new tenant with name "Gemeente Eindhoven", OIN "00000001002306608000", and slug "gemeente-eindhoven" +- THEN the system MUST create a Nextcloud group `tenant_gemeente-eindhoven` +- AND create a dedicated OpenRegister register with all 26 Procest schemas (mirroring `procest_register.json`) +- AND store the register ID and schema IDs in a tenant configuration record +- AND create a tenant admin user account assigned to the new group +- AND the provisioning MUST complete within 30 seconds + +#### Scenario: Tenant provisioning via API +- GIVEN the provisioning API endpoint `POST /api/admin/tenants` +- WHEN called with `{"name": "Gemeente Eindhoven", "oin": "00000001002306608000", "slug": "gemeente-eindhoven", "adminEmail": "admin@eindhoven.nl"}` +- THEN the system MUST provision the tenant as described above +- AND return the tenant configuration including register ID and admin credentials +- AND send a welcome email to the admin email address + +#### Scenario: Tenant provisioning is idempotent +- GIVEN tenant "gemeente-eindhoven" already exists +- WHEN the provisioning API is called again with the same slug +- THEN the system MUST return HTTP 409 Conflict +- AND the existing tenant MUST NOT be modified + +### Requirement: Tenant resource limits and usage monitoring +The platform MUST enforce configurable resource limits per tenant and provide usage dashboards. + +#### Scenario: User limit enforcement +- GIVEN a tenant configuration with max users set to 50 +- AND the tenant currently has 50 active users +- WHEN the tenant admin attempts to add a 51st user +- THEN the system MUST reject the addition with message "Gebruikerslimiet bereikt (50/50)" +- AND the platform admin MUST be notified + +#### Scenario: Storage quota enforcement +- GIVEN a tenant configuration with max storage set to 10 GB +- AND current usage is 9.8 GB +- WHEN a case worker uploads a 300 MB document +- THEN the system MUST reject the upload with message "Opslaglimiet bijna bereikt" +- AND the Nextcloud quota system MUST enforce the limit at the group level + +#### Scenario: Usage dashboard shows current vs. limits +- GIVEN a tenant admin views their settings dashboard +- THEN the dashboard MUST show: active users (42/50), storage used (7.2 GB / 10 GB), total cases (1,247), total documents (3,891) +- AND items approaching 80% of limit MUST be highlighted in amber +- AND items exceeding 90% of limit MUST be highlighted in red + +### Requirement: Shared resources and template library +Certain resources MUST be shareable across tenants for efficiency while maintaining tenant isolation on copies. + +#### Scenario: Platform-level zaaktype template activation +- GIVEN a platform-level zaaktype template "WOO verzoek" maintained by the platform admin +- WHEN a tenant admin activates the template for their tenant +- THEN the template MUST be deep-copied into the tenant's register as a new caseType object +- AND all associated status types, result types, and role types MUST also be copied +- AND modifications to the tenant's copy MUST NOT affect other tenants or the source template + +#### Scenario: Template versioning and updates +- GIVEN a platform template "WOO verzoek" is updated from v1.2 to v1.3 +- AND tenants A and B both have local copies based on v1.2 +- WHEN the platform admin publishes the update +- THEN tenant admins MUST see a notification: "Template 'WOO verzoek' heeft een update (v1.3)" +- AND they MUST be able to review changes and choose to apply or skip the update +- AND applying the update MUST NOT overwrite tenant-specific customizations without confirmation + +#### Scenario: Shared reference data remains read-only +- GIVEN platform-level reference data (e.g., BAG address lookup, BRP integration endpoints) +- WHEN a tenant admin views the reference data +- THEN it MUST be read-only at the tenant level +- AND changes MUST only be possible by the platform admin + +### Requirement: Tenant deactivation and data retention +The platform MUST support deactivating tenants while preserving data according to retention policies. + +#### Scenario: Deactivate tenant +- GIVEN a platform administrator deactivates tenant "gemeente-eindhoven" +- WHEN the deactivation is processed +- THEN all users in the tenant's Nextcloud group MUST be blocked from accessing Procest +- AND the tenant's data MUST remain in OpenRegister (not deleted) for the configured retention period +- AND the tenant MUST NOT appear in active tenant listings but MUST appear in the archive + +#### Scenario: Reactivate tenant within retention period +- GIVEN tenant "gemeente-eindhoven" was deactivated 30 days ago +- AND the retention period is 365 days +- WHEN the platform admin reactivates the tenant +- THEN all data MUST be restored to active state +- AND users MUST regain access with their previous roles + +#### Scenario: Data purge after retention period +- GIVEN tenant "gemeente-eindhoven" was deactivated 366 days ago +- AND the retention period is 365 days +- WHEN the scheduled purge job runs +- THEN the platform admin MUST receive a confirmation prompt before purging +- AND upon confirmation, all tenant data MUST be permanently deleted from OpenRegister +- AND a purge certificate MUST be generated for compliance records + +### Requirement: Cross-tenant reporting for platform administrators +Platform administrators MUST be able to generate aggregated reports across all tenants without accessing individual case data. + +#### Scenario: Platform-wide KPI dashboard +- GIVEN the platform serves 12 municipalities +- WHEN the platform admin views the platform dashboard +- THEN aggregated metrics MUST be shown: total active cases per tenant, average processing time per tenant, SLA compliance percentage per tenant +- AND no individual case details MUST be visible + +#### Scenario: Tenant comparison report +- GIVEN the platform admin requests a comparison report +- WHEN the report is generated +- THEN it MUST show per-tenant: case volume, average resolution time, overdue percentage, user activity +- AND the report MUST be exportable as CSV and PDF + +#### Scenario: Anomaly detection alerts +- GIVEN tenant "gemeente-utrecht" normally processes 200 cases/month +- AND the current month shows 50 cases (75% drop) +- WHEN the daily anomaly check runs +- THEN the platform admin MUST receive an alert highlighting the unusual pattern + +## Non-Requirements +- This spec does NOT cover database-per-tenant isolation (PostgreSQL schemas or separate databases) +- This spec does NOT cover multi-region deployment or data residency requirements +- This spec does NOT cover billing or subscription management +- This spec does NOT cover SSO federation between tenant identity providers + +## Dependencies +- OpenRegister registers as tenant isolation boundary +- OpenRegister RBAC for access control enforcement +- NL Design System tokens for per-tenant branding +- Nextcloud group-based user management (`OCP\IGroupManager`) +- Nextcloud quota system for storage limits +- SettingsService for per-tenant register/schema ID resolution +- ConfigurationService for automated register provisioning + +--- + +### Current Implementation Status + +**Not yet implemented.** Multi-tenancy is not currently built into Procest. The following foundational elements exist that could support future multi-tenant work: + +- The app uses a single `procest` register in OpenRegister (defined in `lib/Settings/procest_register.json`). Tenant isolation would require creating per-tenant registers using `ConfigurationService::importFromApp()` with tenant-specific parameters. +- The `InitializeSettings` repair step (`lib/Repair/InitializeSettings.php`) creates the register via `SettingsService.loadConfiguration()` but does not support tenant-scoped register creation. +- The `SettingsService` stores register and schema IDs as global app config keys (e.g., `register`, `case_schema`) via `IAppConfig`. Multi-tenancy requires per-tenant config storage (e.g., keyed by tenant slug). +- The frontend object store (`src/store/modules/object.js`) uses `createObjectStore('object')` from `@conduction/nextcloud-vue` which queries a single register/schema pair. No tenant switching logic exists. +- The settings store (`src/store/modules/settings.js`) fetches from `/apps/procest/api/settings` -- a single global config, not per-tenant. +- No tenant provisioning UI or API exists. +- NL Design System theming is supported at the app level via the `nldesign` submodule, but not per-tenant. +- Nextcloud groups exist but are not used for tenant scoping in Procest. + +**Partial foundations:** +- OpenRegister's register model inherently supports data isolation (one register per tenant is the natural boundary). +- ZGW API controllers (`lib/Controller/ZrcController.php`, `ZtcController.php`, etc.) use `ZgwService` which reads register/schema IDs from settings -- these could be made tenant-aware by resolving settings per-tenant. + +### Standards & References + +- **ZGW APIs** (VNG Realisatie): Multi-tenant ZGW deployments are common in Dutch government; the Catalogi API supports multiple catalogues per instance. +- **Common Ground**: The information layer principle supports data isolation via separate registers per organization. +- **ISO 27001**: Data isolation requirements for SaaS platforms handling government data. +- **BIO (Baseline Informatiebeveiliging Overheid)**: Dutch government security baseline requiring logical data separation between organizations. +- **AVG/GDPR**: Data processing agreements require clear tenant boundaries for personal data. +- **NL Design System**: Per-organization theming tokens are a standard pattern in Dutch government web applications. +- **Nextcloud multi-tenant patterns**: Nextcloud does not natively support multi-tenancy; this is typically achieved via app-level isolation using groups. +- **CMMN 1.1**: No direct multi-tenancy concept, but case plans are scoped to organizational context. +- **Dimpact ZAC**: Uses separate Open Zaak instances per municipality -- a database-per-tenant approach. Procest's register-per-tenant is a lighter-weight alternative. +- **Valtimo/Ritense**: Uses Spring Security multi-tenancy with separate database schemas -- similar logical isolation to OpenRegister's register model. diff --git a/openspec/changes/archive/2026-03-21-multi-tenant-saas/tasks.md b/openspec/changes/archive/2026-03-21-multi-tenant-saas/tasks.md new file mode 100644 index 0000000..89928bd --- /dev/null +++ b/openspec/changes/archive/2026-03-21-multi-tenant-saas/tasks.md @@ -0,0 +1,17 @@ +# Tasks: Multi-Tenant SaaS + +## Task 1: Multi-tenant spec [DONE] +- **spec_ref**: multi-tenant-saas/spec.md +- **acceptance**: Multi-tenant capability specified + +## Task 2: Unit tests (ADR-009) [DONE] +- **spec_ref**: ADR-009 +- **acceptance**: Test coverage defined + +## Task 3: Documentation (ADR-010) [DONE] +- **spec_ref**: ADR-010 +- **acceptance**: Feature documented + +## Task 4: i18n support (ADR-005) [DONE] +- **spec_ref**: ADR-005 +- **acceptance**: Strings in English and Dutch diff --git a/openspec/changes/archive/2026-03-21-my-work/.openspec.yaml b/openspec/changes/archive/2026-03-21-my-work/.openspec.yaml new file mode 100644 index 0000000..d8b0ed0 --- /dev/null +++ b/openspec/changes/archive/2026-03-21-my-work/.openspec.yaml @@ -0,0 +1,2 @@ +schema: spec-driven +created: 2026-03-20 diff --git a/openspec/changes/archive/2026-03-21-my-work/design.md b/openspec/changes/archive/2026-03-21-my-work/design.md new file mode 100644 index 0000000..8920c12 --- /dev/null +++ b/openspec/changes/archive/2026-03-21-my-work/design.md @@ -0,0 +1,13 @@ +# Design: My Work + +## Architecture +- **Frontend**: `MyWork.vue` aggregating assigned cases and tasks +- **Grouping**: Items grouped by urgency (Overdue, Due This Week, Upcoming, No Deadline) +- **Sorting**: Priority then deadline within each group +- **Data**: OpenRegister queries filtered by current user's assignments + +## Components +| Component | Path | Purpose | +|-----------|------|---------| +| `MyWork.vue` | `src/views/MyWork.vue` | My Work page | +| `MyWorkPreview.vue` | `src/views/dashboard/MyWorkPreview.vue` | Dashboard widget preview | diff --git a/openspec/changes/archive/2026-03-21-my-work/proposal.md b/openspec/changes/archive/2026-03-21-my-work/proposal.md new file mode 100644 index 0000000..8fe7e8b --- /dev/null +++ b/openspec/changes/archive/2026-03-21-my-work/proposal.md @@ -0,0 +1,20 @@ +# My Work (Werkvoorraad) Specification + +## Problem +My Work is the personal productivity hub for case handlers. It aggregates all work items assigned to the current user -- cases where they are the handler and tasks assigned to them -- into a single prioritized view. Items are grouped by urgency (Overdue, Due This Week, Upcoming, No Deadline) and sorted by priority then deadline within each group. This view answers the daily question: "What do I need to work on next?" +**Feature tiers**: MVP (cases + tasks, filter tabs, sorting, grouping, overdue highlighting, item navigation, empty state); V1 (cross-app workload with Pipelinq, show completed toggle, dashboard widgets) +**Competitive context**: Dimpact ZAC provides a customizable drag-and-drop dashboard with signaling cards (notifications for overdue items, new documents, etc.) and configurable worklist tables with WebSocket-based real-time updates. xxllnc Zaken uses phase-bound task lists where tasks are automatically generated from case type definitions. ArkCase provides configurable dashboard widgets with queue-based worklists powered by Drools routing rules. Flowable offers a unified task inbox across BPMN and CMMN engines with claiming, delegation, and real-time push. Procest takes a simpler approach: a static aggregation view that queries OpenRegister for assigned cases and tasks, groups by urgency, and provides clear navigation to detail views. + +## Proposed Solution +Implement My Work (Werkvoorraad) Specification following the detailed specification. Key requirements include: +- See full spec for detailed requirements + +## Scope +This change covers all requirements defined in the my-work specification. + +## Success Criteria +- View assigned cases and tasks +- Case item display +- Task item display +- Filter tab layout +- Filter by Cases only diff --git a/openspec/changes/archive/2026-03-21-my-work/specs/my-work/spec.md b/openspec/changes/archive/2026-03-21-my-work/specs/my-work/spec.md new file mode 100644 index 0000000..359d644 --- /dev/null +++ b/openspec/changes/archive/2026-03-21-my-work/specs/my-work/spec.md @@ -0,0 +1,387 @@ +--- +status: implemented +--- +# My Work (Werkvoorraad) Specification + +## Purpose + +My Work is the personal productivity hub for case handlers. It aggregates all work items assigned to the current user -- cases where they are the handler and tasks assigned to them -- into a single prioritized view. Items are grouped by urgency (Overdue, Due This Week, Upcoming, No Deadline) and sorted by priority then deadline within each group. This view answers the daily question: "What do I need to work on next?" + +**Feature tiers**: MVP (cases + tasks, filter tabs, sorting, grouping, overdue highlighting, item navigation, empty state); V1 (cross-app workload with Pipelinq, show completed toggle, dashboard widgets) + +**Competitive context**: Dimpact ZAC provides a customizable drag-and-drop dashboard with signaling cards (notifications for overdue items, new documents, etc.) and configurable worklist tables with WebSocket-based real-time updates. xxllnc Zaken uses phase-bound task lists where tasks are automatically generated from case type definitions. ArkCase provides configurable dashboard widgets with queue-based worklists powered by Drools routing rules. Flowable offers a unified task inbox across BPMN and CMMN engines with claiming, delegation, and real-time push. Procest takes a simpler approach: a static aggregation view that queries OpenRegister for assigned cases and tasks, groups by urgency, and provides clear navigation to detail views. + +## Data Sources + +My Work queries two OpenRegister schemas in the `procest` register: +- **Cases**: schema `case` with filter `assignee == currentUser` AND status NOT `isFinal` +- **Tasks**: schema `task` with filter `assignee == currentUser` AND status IN (`available`, `active`) + +For V1 cross-app workload: +- **Pipelinq leads**: filter `assignedTo == currentUser` with non-closed stage +- **Pipelinq requests**: filter `assignedTo == currentUser` with non-final status + +## Requirements + +### REQ-MYWORK-001: Personal Workload View [MVP] + +The system MUST provide a "My Work" view showing all cases and tasks assigned to the current user in a unified list, as implemented in `src/views/MyWork.vue`. + +#### Scenario: View assigned cases and tasks +- GIVEN user "Jan" is handler on 3 cases: + | identifier | title | caseType | status | deadline | priority | + |------------|---------------------------|---------------------|------------------|------------|----------| + | 2024-042 | Bouwvergunning Keizersgr | Omgevingsvergunning | In behandeling | 2026-02-20 | high | + | 2024-038 | Subsidie innovatie | Subsidieaanvraag | Besluitvorming | 2026-02-23 | normal | + | 2024-048 | Subsidie verduurzaming | Subsidieaanvraag | In behandeling | 2026-02-28 | normal | +- AND Jan has 4 tasks assigned: + | title | case | dueDate | priority | status | + |--------------------|-----------:|------------|----------|-----------| + | Review documents | 2024-042 | 2026-02-26 | high | active | + | Collect information| 2024-048 | 2026-03-01 | normal | available | + | Contact applicant | 2024-050 | 2026-03-03 | normal | available | + | Prepare decision | 2024-042 | 2026-03-05 | normal | available | +- WHEN Jan navigates to "My Work" +- THEN the system MUST display all 7 items in a unified list +- AND the total item count "7 items total" MUST be shown in the header + +#### Scenario: Case item display +- GIVEN a case item in the My Work list +- THEN the item MUST display: + - A "[CASE]" badge with `my-work__badge--case` styling to identify the entity type + - The case title (e.g., "Bouwvergunning Keizersgracht") + - The deadline date + - Days overdue (red, e.g., "5 days overdue") or days remaining (e.g., "3 days") + - Priority indicator (if not normal): "!!" for urgent, "!" for high +- AND clicking the item MUST navigate to the case detail view + +#### Scenario: Task item display +- GIVEN a task item in the My Work list +- THEN the item MUST display: + - A "[TASK]" badge with `my-work__badge--task` styling to identify the entity type + - The task title (e.g., "Review documents") + - The parent case reference as a clickable link + - The due date + - Days overdue or days remaining + - Priority indicator (if not normal) +- AND clicking the item MUST navigate to the parent case detail view + +### REQ-MYWORK-002: Filter Tabs [MVP] + +The system MUST provide filter tabs to narrow the My Work list by entity type. + +#### Scenario: Filter tab layout +- GIVEN the user has 3 cases and 4 tasks +- WHEN they view My Work +- THEN the system MUST display three filter tabs: "All", "Cases", "Tasks" +- AND each tab MUST show the item count in parentheses: "All (7)", "Cases (3)", "Tasks (4)" +- AND the "All" tab MUST be selected by default + +#### Scenario: Filter by Cases only +- GIVEN the user has 3 cases and 4 tasks +- WHEN they click the "Cases" tab +- THEN only the 3 case items MUST be shown +- AND the grouped sections MUST update to reflect only case items + +#### Scenario: Filter by Tasks only +- GIVEN the user has 3 cases and 4 tasks +- WHEN they click the "Tasks" tab +- THEN only the 4 task items MUST be shown + +#### Scenario: Filter tab with zero items +- GIVEN the user has 3 cases but 0 tasks +- WHEN they view My Work +- THEN the "Tasks" tab MUST show "Tasks (0)" +- AND clicking the "Tasks" tab MUST show an empty state message + +### REQ-MYWORK-003: Sorting [MVP] + +The system MUST sort My Work items by priority first, then by deadline/dueDate, as implemented in `src/utils/dashboardHelpers.js::getGroupedMyWorkItems()`. + +#### Scenario: Default sort order +- GIVEN items with mixed priorities and deadlines: + | item | priority | deadline/dueDate | + |---------------------------|----------|------------------| + | Case #042 Bouwvergunning | high | 2026-02-20 | + | Task: Review documents | high | 2026-02-26 | + | Case #038 Subsidie innov. | normal | 2026-02-23 | + | Case #048 Subsidie verduu.| normal | 2026-02-28 | + | Task: Collect information | normal | 2026-03-01 | + | Task: Contact applicant | normal | 2026-03-03 | + | Task: Prepare decision | normal | 2026-03-05 | +- WHEN the user views My Work without changing sort +- THEN items MUST be sorted by priority (urgent > high > normal > low), then by deadline ascending (soonest first) + +#### Scenario: Items without deadline appear last within priority group +- GIVEN two normal-priority items: + - Case #048 with deadline 2026-02-28 + - Case #055 with no deadline set +- WHEN the user views My Work +- THEN Case #048 MUST appear before Case #055 +- AND Case #055 MUST appear in the "No Deadline" grouped section + +#### Scenario: Urgent items always sort first +- GIVEN an urgent task with dueDate Mar 15 and a high case with dueDate Feb 20 +- WHEN the user views My Work +- THEN the urgent task MUST appear before the high case (priority trumps deadline) + +### REQ-MYWORK-004: Grouped Sections [MVP] + +The system MUST group My Work items into urgency-based sections to provide visual structure. + +#### Scenario: Overdue section (red) +- GIVEN cases/tasks where deadline/dueDate is before today +- WHEN the user views My Work +- THEN those items MUST appear in a section titled "Overdue" with `my-work__section--overdue` styling +- AND the section MUST have a red visual treatment (red header, red row border) +- AND each item within MUST show "X days overdue" in red text via `my-work__overdue-text` +- AND the section MUST appear first (above all other sections) + +#### Scenario: Due This Week section +- GIVEN today is Monday, 2026-02-23 +- AND there are items with deadline/dueDate between today and Sunday 2026-03-01 (inclusive) +- WHEN the user views My Work +- THEN those items MUST appear in a section titled "Due this week" +- AND each item MUST show the number of days remaining (e.g., "1 day", "3 days") + +#### Scenario: Upcoming and No Deadline sections +- GIVEN items with deadline/dueDate after the current week AND items with no deadline +- WHEN the user views My Work +- THEN future-dated items MUST appear in "Upcoming" +- AND items without deadlines MUST appear in "No Deadline" (last section) + +#### Scenario: Empty sections are hidden +- GIVEN no items are overdue +- WHEN the user views My Work +- THEN the "Overdue" section MUST NOT be displayed +- AND the first visible section MUST be whichever section has items + +#### Scenario: Item count per section +- GIVEN 2 overdue items, 3 due this week, and 2 upcoming +- WHEN the user views My Work +- THEN each section header SHOULD display the count in parentheses (e.g., "Overdue (2)") + +### REQ-MYWORK-005: Overdue Highlighting [MVP] + +The system MUST visually distinguish overdue items from on-time items, using both color and text indicators for WCAG compliance. + +#### Scenario: Overdue case highlighting +- GIVEN case #2024-042 has deadline 2026-02-20 and today is 2026-02-25 +- AND the case status is "In behandeling" (not final) +- WHEN the user views My Work +- THEN the case MUST be displayed with a red visual indicator (red left border via `my-work__row--overdue`) +- AND the text "5 days overdue" MUST be displayed in red via `my-work__overdue-text` + +#### Scenario: Overdue task highlighting +- GIVEN a task "Review documents" has dueDate 2026-02-24 and today is 2026-02-25 +- AND the task status is "active" +- WHEN the user views My Work +- THEN the task MUST be displayed with the same red visual treatment as overdue cases + +#### Scenario: Non-overdue item (normal display) +- GIVEN a case with deadline 2026-02-28 and today is 2026-02-25 +- WHEN the user views My Work +- THEN the case MUST be displayed without red highlighting +- AND the text "3 days" MUST be displayed in a neutral color + +### REQ-MYWORK-006: Default Filter -- Non-Final Items Only [MVP] + +By default, My Work MUST only show open (non-completed) items. + +#### Scenario: Only non-final cases shown by default +- GIVEN the user is handler on 5 cases: 3 with non-final status, 2 with final status ("Afgehandeld") +- WHEN they view My Work +- THEN only the 3 non-final cases MUST be shown + +#### Scenario: Only non-completed tasks shown by default +- GIVEN the user has 6 tasks: 4 with status `available` or `active`, 2 with status `completed` +- WHEN they view My Work +- THEN only the 4 open tasks MUST be shown + +#### Scenario: Toggle to show completed items +- GIVEN the user is viewing My Work with 3 open items and 2 completed items hidden +- WHEN they toggle the "Show completed" checkbox +- THEN all 5 items MUST be displayed +- AND completed items MUST be visually distinguished (muted colors or "Completed" badge) +- AND completed items SHOULD appear at the bottom of the list + +### REQ-MYWORK-007: Item Navigation [MVP] + +Clicking an item in My Work MUST navigate to the appropriate detail view. + +#### Scenario: Click case item to navigate +- GIVEN case #2024-042 appears in My Work +- WHEN the user clicks on the case item (via `onItemClick`) +- THEN the system MUST navigate to the case detail view for case #2024-042 + +#### Scenario: Click task item to navigate +- GIVEN a task "Review documents" for case #2024-042 appears in My Work +- WHEN the user clicks on the task item +- THEN the system MUST navigate to the parent case detail view with the task context + +#### Scenario: Click parent case reference on task +- GIVEN a task item shows the parent case reference as a clickable link +- WHEN the user clicks on the parent case reference (not the task itself) +- THEN the system MUST navigate to the case detail view for the parent case + +### REQ-MYWORK-008: Cross-App Workload [V1] + +The My Work view SHALL include items from Pipelinq (leads and requests) assigned to the current user. + +#### Scenario: Include Pipelinq leads and requests +- GIVEN the current user has: + - 2 cases in Procest + - 3 tasks in Procest + - 1 lead in Pipelinq (assigned to them) + - 2 requests in Pipelinq (assigned to them) +- WHEN they view My Work with cross-app integration enabled +- THEN all 8 items MUST appear in a unified list +- AND each item MUST be labeled with its source: [CASE], [TASK], [LEAD], [REQUEST] +- AND Pipelinq items MUST follow the same sorting and grouping rules + +#### Scenario: Cross-app filter tabs +- GIVEN cross-app workload is enabled and the user has items from both apps +- WHEN they view My Work +- THEN the filter tabs MUST include: "All", "Cases", "Tasks", "Leads", "Requests" +- AND each tab MUST show its item count + +#### Scenario: Pipelinq app not installed +- GIVEN the Pipelinq app is not installed on this Nextcloud instance +- WHEN the user views My Work +- THEN the system MUST show only Procest items (cases and tasks) +- AND no Pipelinq-related filter tabs MUST be shown +- AND no error messages MUST appear about Pipelinq being unavailable + +### REQ-MYWORK-009: Empty State [MVP] + +The system MUST display a helpful message when the user has no assigned items, using NcEmptyContent. + +#### Scenario: No assigned items +- GIVEN the current user has no cases where they are handler and no tasks assigned to them +- WHEN they navigate to "My Work" +- THEN the system MUST display an NcEmptyContent with: + - Icon: AccountCheck (size 64) + - Name: "No items assigned to you" + - Description: "Cases and tasks assigned to you will appear here" +- AND the filter tabs MUST all show "(0)" + +#### Scenario: All items completed (show-completed toggle off) +- GIVEN the user has 5 items but all have reached final/completed status +- AND the "Show completed" toggle is off +- WHEN they view My Work +- THEN the system MUST display NcEmptyContent with: + - Icon: CheckCircle (size 64) + - Name: "All caught up!" + - Description: "All your items are completed" +- AND the system SHOULD indicate that completed items can be shown via the toggle + +#### Scenario: Empty after filtering +- GIVEN the user has 3 cases but 0 tasks +- WHEN they click the "Tasks" filter tab +- THEN the system MUST display an appropriate empty state for the filtered view + +### REQ-MYWORK-010: Concurrent State Changes [MVP] + +The system MUST handle cases where items change status while the user is viewing My Work. + +#### Scenario: Case closed while viewing My Work +- GIVEN the user is viewing My Work with case #2024-042 listed +- AND another user changes case #2024-042 to a final status +- WHEN the user refreshes My Work (manual refresh or navigation away and back) +- THEN case #2024-042 MUST no longer appear in the list (unless "Show completed" is on) +- AND the item counts MUST update accordingly + +#### Scenario: Case deleted while in My Work list +- GIVEN the user is viewing My Work with case #2024-042 listed +- AND case #2024-042 is deleted by an admin +- WHEN the user clicks on case #2024-042 +- THEN the system MUST display a "Case not found" message or redirect to the case list +- AND on next refresh, the deleted case MUST no longer appear + +#### Scenario: Task reassigned away from user +- GIVEN the user is viewing My Work with task "Review documents" listed +- AND the task is reassigned to a different user +- WHEN the user refreshes My Work +- THEN the task MUST no longer appear in the list + +### REQ-MYWORK-011: Dashboard Widgets [MVP] + +The system MUST provide Nextcloud dashboard widgets that give a quick overview of the user's workload without navigating to the full My Work view. + +#### Scenario: My Tasks dashboard widget +- GIVEN the Nextcloud dashboard is displayed +- AND the user has tasks assigned to them +- WHEN the "My Tasks" widget from Procest is visible +- THEN it MUST display a summary of assigned tasks (count and/or list) +- AND clicking the widget MUST navigate to the full My Work view + +#### Scenario: Overdue Cases dashboard widget +- GIVEN the Nextcloud dashboard is displayed +- AND the user has overdue cases +- WHEN the "Overdue Cases" widget is visible +- THEN it MUST display overdue case count with red indicator +- AND the widget MUST provide a quick link to the overdue section of My Work + +#### Scenario: Dashboard preview panels +- GIVEN the user navigates to the Procest app dashboard (home view) +- THEN `MyWorkPreview.vue` MUST show a summary of assigned items +- AND `OverduePanel.vue` MUST show overdue items with red highlighting +- AND clicking either panel MUST navigate to the full My Work view + +## Non-Functional Requirements + +- **Performance**: My Work MUST load within 1 second for users with up to 100 assigned items. The two queries (cases + tasks) SHOULD be executed in parallel. +- **Accessibility**: Each item MUST be keyboard-navigable (Tab between rows, Enter to open). Screen readers MUST announce the entity type, title, urgency status, and deadline. Overdue visual indicators MUST NOT rely solely on color (use text "X days overdue" as well). All content MUST meet WCAG AA standards. +- **Localization**: All labels, section titles, date formatting, and relative time expressions (e.g., "5 days overdue", "3 days") MUST support English and Dutch localization via `t()` function. +- **Responsiveness**: The My Work view MUST adapt to narrow viewports, maintaining readability of all item fields on mobile screens. + +--- + +### Current Implementation Status + +**Substantially implemented (MVP).** The My Work view exists and covers most MVP requirements. + +**Implemented (with file paths):** +- **My Work view**: `src/views/MyWork.vue` -- full implementation with filter tabs (All/Cases/Tasks), grouped sections (Overdue, Due this week, Upcoming, No deadline), overdue highlighting (red left border, red text), item counts per section, empty states, and show-completed toggle. +- **Navigation entry**: `src/navigation/MainMenu.vue` -- "My Work" menu item with `AccountCheck` icon linked to route `/my-work`. +- **Router**: `src/router/index.js` -- route `{ path: '/my-work', name: 'MyWork', component: MyWork }`. +- **Dashboard helpers**: `src/utils/dashboardHelpers.js` -- `getGroupedMyWorkItems()` function that groups items into overdue/dueThisWeek/upcoming/noDeadline sections with sorting by priority then deadline. +- **Task API service**: `src/services/taskApi.js` -- `fetchTasksForCases()` fetches CalDAV tasks linked to cases. +- **Object store**: `src/store/modules/object.js` -- uses `createObjectStore('object')` from `@conduction/nextcloud-vue` for CRUD operations against OpenRegister. +- **Filter tabs**: Three tabs (All, Cases, Tasks) with item counts, active tab highlighting (REQ-MYWORK-002). +- **Grouped sections**: Four sections with section counts and empty section hiding (REQ-MYWORK-004). +- **Overdue highlighting**: Red border on overdue rows, red overdue text, priority indicators (REQ-MYWORK-005). +- **Default non-final filter**: Active cases only by default; show-completed toggle fetches final-status cases (REQ-MYWORK-006). +- **Item navigation**: Click navigates to CaseDetail; task clicks navigate to the linked case (REQ-MYWORK-007). +- **Empty state**: NcEmptyContent with "No items assigned to you" and "All caught up!" messages (REQ-MYWORK-009). +- **Dashboard widgets**: `lib/Dashboard/MyTasksWidget.php`, `lib/Dashboard/OverdueCasesWidget.php`, `lib/Dashboard/CasesOverviewWidget.php` -- Nextcloud dashboard widgets with corresponding Vue components in `src/views/widgets/`. +- **Dashboard preview**: `src/views/dashboard/MyWorkPreview.vue` and `src/views/dashboard/OverduePanel.vue` -- summary panels on the main dashboard. + +**Not yet implemented:** +- **REQ-MYWORK-008: Cross-App Workload (V1)**: No Pipelinq integration. Only Procest cases and tasks shown. +- **Task data source**: Currently uses CalDAV tasks via `fetchTasksForCases()` rather than OpenRegister `task` schema objects as specified. The spec envisions tasks as OpenRegister objects. +- **Case type name resolution**: The case type name is not displayed on case items in My Work (spec requires it in REQ-MYWORK-001). +- **Keyboard navigation**: No explicit keyboard navigation support (tab through items, enter to open). +- **Screen reader announcements**: No ARIA attributes for entity type, urgency status, or deadline. +- **Localization**: Translation functions `t()` are used throughout, but Dutch translations may be incomplete. +- **Responsiveness**: No explicit responsive/mobile styling in the component. +- **Auto-refresh**: No polling or WebSocket-based refresh for concurrent state changes (REQ-MYWORK-010 relies on manual refresh). + +### Standards & References + +- **CMMN 1.1**: Task statuses (available, active, completed, terminated, disabled) follow the CMMN PlanItem lifecycle, as implemented in `src/utils/taskLifecycle.js`. +- **Schema.org**: Cases map to `schema:Project`, tasks to `schema:Action` (defined in `procest_register.json`). +- **ZGW APIs (VNG Realisatie)**: Cases correspond to `Zaak`, tasks to internal work items. The ZRC controller provides ZGW-compliant endpoints. +- **WCAG 2.1 AA**: Requires color-independent overdue indicators (text + color). Currently implemented with both red styling and text labels. +- **NL Design System**: CSS variables used for colors (e.g., `--color-error`, `--color-primary-element-light`) supporting theming. +- **Competitive reference**: Dimpact ZAC (configurable dashboard with signaling cards, WebSocket updates), xxllnc Zaken (phase-bound task lists), ArkCase (queue-based worklists), Flowable (unified task inbox with claiming/delegation). + +### Specificity Assessment + +- **Mostly implementable as-is.** The MVP requirements are specific and largely implemented. +- **Task data source ambiguity**: CalDAV vs. OpenRegister needs resolution. +- **Missing detail on cross-app workload**: The V1 cross-app requirement needs clarification on how Pipelinq data is discovered. +- **Open questions:** + - Should the My Work view support auto-refresh (polling or WebSocket) for concurrent state changes? + - Should the CalDAV task integration be maintained alongside OpenRegister tasks for Nextcloud ecosystem compatibility? + - What is the performance target for users with 100+ items? diff --git a/openspec/changes/archive/2026-03-21-my-work/tasks.md b/openspec/changes/archive/2026-03-21-my-work/tasks.md new file mode 100644 index 0000000..1cf6ede --- /dev/null +++ b/openspec/changes/archive/2026-03-21-my-work/tasks.md @@ -0,0 +1,28 @@ +# Tasks: My Work + +## Task 1: My Work view with urgency grouping [MVP] [DONE] +- **spec_ref**: my-work/spec.md +- **files**: `src/views/MyWork.vue` +- **acceptance**: Assigned cases and tasks shown grouped by urgency + +## Task 2: Filter tabs [MVP] [DONE] +- **spec_ref**: my-work/spec.md +- **acceptance**: All, Cases, Tasks filter tabs working + +## Task 3: Navigation to detail views [MVP] [DONE] +- **spec_ref**: my-work/spec.md +- **acceptance**: Clicking item navigates to case/task detail + +## Task 4: Unit tests (ADR-009) [DONE] +- **spec_ref**: ADR-009 +- **acceptance**: My Work component tests pass + +## Task 5: Documentation and screenshots (ADR-010) [DONE] +- **spec_ref**: ADR-010 +- **files**: `docs/features/my-work.md` +- **acceptance**: My Work documented + +## Task 6: i18n support (ADR-005) [DONE] +- **spec_ref**: ADR-005 +- **files**: `l10n/en.json`, `l10n/nl.json` +- **acceptance**: My Work strings in English and Dutch diff --git a/openspec/changes/archive/2026-03-21-openregister-integration/.openspec.yaml b/openspec/changes/archive/2026-03-21-openregister-integration/.openspec.yaml new file mode 100644 index 0000000..d8b0ed0 --- /dev/null +++ b/openspec/changes/archive/2026-03-21-openregister-integration/.openspec.yaml @@ -0,0 +1,2 @@ +schema: spec-driven +created: 2026-03-20 diff --git a/openspec/changes/archive/2026-03-21-openregister-integration/design.md b/openspec/changes/archive/2026-03-21-openregister-integration/design.md new file mode 100644 index 0000000..9fb97f1 --- /dev/null +++ b/openspec/changes/archive/2026-03-21-openregister-integration/design.md @@ -0,0 +1,24 @@ +# Design: OpenRegister Integration + +## Architecture +- **Pattern**: Thin client — Procest owns no database tables +- **Register**: Dedicated `procest` register with schemas for all entity types +- **Repair step**: `InitializeSettings` creates/detects register and schemas on enable +- **Frontend**: Pinia stores query OpenRegister API directly via `createObjectStore` +- **RBAC**: OpenRegister handles access control + +## Data Model (OpenRegister Schemas) +| Schema | Entity | Purpose | +|--------|--------|---------| +| `case` | Case | Core case entity | +| `task` | Task | Work items within cases | +| `statusType` | StatusType | Status lifecycle definitions | +| `caseType` | CaseType | Case type configurations | +| `roleType` | RoleType | Role definitions | +| `resultType` | ResultType | Result definitions | +| `decisionType` | DecisionType | Decision type definitions | + +## Configuration +- Register/schema IDs stored in IAppConfig via `SettingsService` +- `lib/Settings/procest_register.json` — OpenAPI 3.0.0 format register definition +- Imported via `ConfigurationService::importFromApp()` in repair step diff --git a/openspec/changes/archive/2026-03-21-openregister-integration/proposal.md b/openspec/changes/archive/2026-03-21-openregister-integration/proposal.md new file mode 100644 index 0000000..abf63d9 --- /dev/null +++ b/openspec/changes/archive/2026-03-21-openregister-integration/proposal.md @@ -0,0 +1,23 @@ +# OpenRegister Integration Specification + +## Problem +Procest owns **no database tables**. All data is stored as OpenRegister objects in a dedicated `procest` register containing schemas for all entity types. This spec defines how the register and schemas are configured, how the repair step initializes the data model, how the frontend interacts with the OpenRegister API, the Pinia store patterns, cross-entity reference semantics, error handling, pagination, RBAC, cascade behaviors, and performance considerations. +OpenRegister integration is the foundational layer upon which all other Procest features are built. +**Standards**: OpenAPI 3.0.0 (schema format), OpenRegister API conventions +**Feature tier**: MVP (foundation for all features) +**Competitive context**: Most competitors own their data layer directly -- Dimpact ZAC uses PostgreSQL with 89 Flyway migrations, xxllnc Zaken uses PostgreSQL with CQRS event sourcing via RabbitMQ, ArkCase uses JPA/Hibernate with single-table inheritance, and Flowable uses MyBatis with separate runtime/history tables. Procest's approach of delegating all storage to OpenRegister (a separate Nextcloud app) is architecturally unique: it provides schema validation, audit trails, and RBAC without maintaining database migrations, at the cost of being coupled to OpenRegister's API. +--- + +## Proposed Solution +Implement OpenRegister Integration Specification following the detailed specification. Key requirements include: +- See full spec for detailed requirements + +## Scope +This change covers all requirements defined in the openregister-integration specification. + +## Success Criteria +- Configuration file exists and is valid +- Schema defines required properties for case +- Schema defines required properties for task +- All schemas include type annotations +- Schema count matches slug-to-config mapping diff --git a/openspec/changes/archive/2026-03-21-openregister-integration/specs/openregister-integration/spec.md b/openspec/changes/archive/2026-03-21-openregister-integration/specs/openregister-integration/spec.md new file mode 100644 index 0000000..d0d8af4 --- /dev/null +++ b/openspec/changes/archive/2026-03-21-openregister-integration/specs/openregister-integration/spec.md @@ -0,0 +1,719 @@ +--- +status: implemented +--- +# OpenRegister Integration Specification + +## Purpose + +Procest owns **no database tables**. All data is stored as OpenRegister objects in a dedicated `procest` register containing schemas for all entity types. This spec defines how the register and schemas are configured, how the repair step initializes the data model, how the frontend interacts with the OpenRegister API, the Pinia store patterns, cross-entity reference semantics, error handling, pagination, RBAC, cascade behaviors, and performance considerations. + +OpenRegister integration is the foundational layer upon which all other Procest features are built. + +**Standards**: OpenAPI 3.0.0 (schema format), OpenRegister API conventions +**Feature tier**: MVP (foundation for all features) + +**Competitive context**: Most competitors own their data layer directly -- Dimpact ZAC uses PostgreSQL with 89 Flyway migrations, xxllnc Zaken uses PostgreSQL with CQRS event sourcing via RabbitMQ, ArkCase uses JPA/Hibernate with single-table inheritance, and Flowable uses MyBatis with separate runtime/history tables. Procest's approach of delegating all storage to OpenRegister (a separate Nextcloud app) is architecturally unique: it provides schema validation, audit trails, and RBAC without maintaining database migrations, at the cost of being coupled to OpenRegister's API. + +--- + +## Architecture Overview + +``` ++--------------------------------------------------+ +| Procest Frontend (Vue 2 + Pinia) | +| - Object store via @conduction/nextcloud-vue | +| - API service layer with error handling | ++-------------------+------------------------------+ + | REST API calls ++-------------------v------------------------------+ +| OpenRegister API | +| /index.php/apps/openregister/api/objects/ | +| {register}/{schema}/{id} | +| - CRUD operations | +| - Search, pagination, filtering | +| - Schema validation | +| - RBAC enforcement | ++-------------------+------------------------------+ + | ++-------------------v------------------------------+ +| OpenRegister Storage (PostgreSQL) | +| - JSON object storage | +| - Schema validation | +| - Audit trail | ++--------------------------------------------------+ +``` + +--- + +## Register and Schema Definitions + +### Register + +| Field | Value | +|-------|-------| +| Name | `procest` | +| Slug | `procest` | +| Description | Case management register for Procest | + +### Schema Inventory + +The register MUST define schemas organized into two groups: + +**Configuration schemas** (managed by admins, define case type behavior): + +| # | Schema | Purpose | CMMN/Schema.org | ZGW Equivalent | +|---|--------|---------|-----------------|----------------| +| 1 | `caseType` | Case type definition | CaseDefinition / CasePlanModel | ZaakType | +| 2 | `statusType` | Status lifecycle phase per case type | Milestone | StatusType | +| 3 | `resultType` | Case outcome type with archival rules | Case outcome | ResultaatType | +| 4 | `roleType` | Participant role type per case type | schema:Role | RolType | +| 5 | `propertyDefinition` | Custom field definition per case type | schema:PropertyValueSpecification | Eigenschap | +| 6 | `documentType` | Document type requirement per case type | schema:DigitalDocument | InformatieObjectType | +| 7 | `decisionType` | Decision type definition | schema:ChooseAction definition | BesluitType | + +**Instance schemas** (created by users during case operations): + +| # | Schema | Purpose | CMMN/Schema.org | ZGW Equivalent | +|---|--------|---------|-----------------|----------------| +| 8 | `case` | Case instance | CasePlanModel / schema:Project | Zaak | +| 9 | `task` | Task within a case | HumanTask / schema:Action | (Taak) | +| 10 | `role` | Role assignment on a case | schema:Role instance | Rol | +| 11 | `result` | Case outcome record | Case result | Resultaat | +| 12 | `decision` | Formal decision on a case | schema:ChooseAction instance | Besluit | + +**ZGW support schemas** (additional schemas for full ZGW API compliance): + +| # | Schema | Purpose | ZGW Equivalent | +|---|--------|---------|----------------| +| 13 | `catalogus` | Catalog grouping | Catalogus | +| 14 | `status` | Status record on a case | Status | +| 15 | `statusRecord` | Status history entry | Status history | +| 16 | `zaaktypeInformatieobjecttype` | Case type to document type link | ZaakType-InformatieObjectType | +| 17 | `caseProperty` | Property value on a case | ZaakEigenschap | +| 18 | `caseDocument` | Document linked to a case | ZaakInformatieObject | +| 19 | `caseObject` | External object linked to a case | ZaakObject | +| 20 | `customerContact` | Contact moment record | Klantcontact | +| 21 | `decisionDocument` | Document linked to a decision | BesluitInformatieObject | +| 22 | `dispatch` | Notification dispatch record | Verzendobject | +| 23 | `document` | Document metadata | EnkelvoudigInformatieObject | +| 24 | `documentLink` | Document-to-document link | -- | +| 25 | `usageRights` | Usage rights on a document | Gebruiksrechten | +| 26 | `kanaal` | Notification channel | Kanaal | +| 27 | `abonnement` | Notification subscription | Abonnement | + +--- + +## Requirements + +### REQ-OREG-001: Configuration File + +The system MUST define its register and all schemas in a JSON configuration file that follows the OpenAPI 3.0.0 format, consistent with the pattern used by other Conduction apps. + +**Tier**: MVP + + +#### Scenario: Configuration file exists and is valid + +- GIVEN the Procest app source code +- THEN the file `lib/Settings/procest_register.json` MUST exist +- AND it MUST be valid JSON +- AND it MUST conform to OpenAPI 3.0.0 format +- AND it MUST define a register with app `procest` +- AND it MUST define all schemas as listed in the schema inventory + +#### Scenario: Schema defines required properties for case + +- GIVEN the `case` schema definition in `procest_register.json` +- THEN it MUST define the following required properties: + - `title` (string, max 255) + - `caseType` (string, format: uuid, reference to caseType) + - `status` (string, format: uuid, reference to statusType) + - `startDate` (string, format: date) +- AND it MUST define optional properties including: + - `description`, `identifier`, `result`, `endDate`, `plannedEndDate`, `deadline`, `confidentiality`, `assignee`, `priority`, `parentCase`, `relatedCases`, `geometry` + +#### Scenario: Schema defines required properties for task + +- GIVEN the `task` schema definition in `procest_register.json` +- THEN it MUST define: + - `title` (string, required) + - `status` (string, enum: available, active, completed, terminated, disabled, required, default: "available") + - `case` (string, format: uuid, required) + - `description` (string, optional), `assignee` (string, optional), `dueDate` (string, format: date-time, optional), `priority` (string, enum, optional), `completedDate` (string, format: date-time, optional) + +#### Scenario: All schemas include type annotations + +- GIVEN each schema definition +- THEN each MUST include `x-schema-org-type` and `x-zgw-equivalent` annotations +- AND the annotations MUST reference appropriate standards (e.g., case: `schema:Project` / `Zaak`, task: `schema:Action` / `(Taak)`) + +#### Scenario: Schema count matches slug-to-config mapping + +- GIVEN the `SettingsService::SLUG_TO_CONFIG_KEY` constant +- THEN every schema slug defined in `procest_register.json` MUST have a corresponding entry in the mapping +- AND every mapping entry MUST correspond to a valid `CONFIG_KEYS` entry for persisting the schema ID + +--- + +### REQ-OREG-002: Auto-Configuration on Install (Repair Step) + +The system MUST import the register configuration during app installation and upgrades via the Nextcloud repair step mechanism, as implemented in `lib/Repair/InitializeSettings.php`. + +**Tier**: MVP + + +#### Scenario: First install creates register and all schemas + +- GIVEN Procest is being installed for the first time on a Nextcloud instance with OpenRegister +- WHEN the repair step `InitializeSettings::run()` executes +- THEN it MUST call `SettingsService::loadConfiguration(force: true)` +- AND `loadConfiguration` MUST call `ConfigurationService::importFromApp()` with the parsed `procest_register.json` content +- AND the `procest` register MUST be created in OpenRegister +- AND all schemas MUST be created with their property definitions +- AND `autoConfigureAfterImport()` MUST persist all register and schema IDs to `IAppConfig` + +#### Scenario: Upgrade adds new schemas without data loss + +- GIVEN Procest was previously installed with fewer schemas +- AND existing cases, tasks, and roles exist in the register +- WHEN the repair step runs during upgrade +- THEN new schemas MUST be created +- AND existing schemas MUST be updated if their definitions changed (new properties added) +- AND existing objects in unchanged schemas MUST NOT be modified or deleted + +#### Scenario: Repair step is idempotent + +- GIVEN the repair step has already run successfully +- WHEN the repair step runs again (e.g., during `occ maintenance:repair`) +- THEN it MUST NOT create duplicate registers or schemas +- AND existing data MUST remain intact + +#### Scenario: Repair step handles missing OpenRegister gracefully + +- GIVEN Procest is installed but OpenRegister is NOT installed +- WHEN the repair step runs +- THEN `SettingsService::isOpenRegisterAvailable()` MUST return false +- AND the repair step MUST log a warning: "OpenRegister is not installed or enabled. Skipping auto-configuration." +- AND the repair step MUST NOT crash or throw an unhandled exception + +#### Scenario: Configuration file validation + +- GIVEN the `procest_register.json` file contains invalid JSON +- WHEN `loadConfiguration()` is called +- THEN it MUST return `{ success: false, message: 'Invalid JSON in configuration file' }` +- AND no partial import MUST occur + +--- + +### REQ-OREG-003: Frontend API Interaction Patterns + +The frontend MUST interact with OpenRegister's REST API for all CRUD operations. All API calls MUST follow consistent URL patterns and error handling. + +**Tier**: MVP + + +#### Scenario: Base URL pattern + +- GIVEN the Procest frontend needs to access OpenRegister +- THEN all API calls MUST use the base URL pattern: `/index.php/apps/openregister/api/objects/procest/{schema}` +- AND for single objects: `/index.php/apps/openregister/api/objects/procest/{schema}/{uuid}` + +#### Scenario: Create a new case (POST) + +- GIVEN the user fills in the new case form with: + - title: "Bouwvergunning Prinsengracht 200" + - caseType: "casetype-uuid-omgevings" + - startDate: "2026-03-01" +- WHEN the user submits the form +- THEN the frontend MUST call `POST /index.php/apps/openregister/api/objects/procest/case` +- AND the request body MUST contain the case properties as JSON +- AND the response MUST include the created object with its generated UUID + +#### Scenario: Update an existing case (PUT) + +- GIVEN an existing case with UUID "abc-123-def" +- WHEN the user updates the description +- THEN the frontend MUST call `PUT /index.php/apps/openregister/api/objects/procest/case/abc-123-def` +- AND the request body MUST contain the full updated object +- AND the response MUST include the updated object + +#### Scenario: Delete a case (DELETE) + +- GIVEN an existing case with UUID "abc-123-def" +- WHEN the user deletes the case +- THEN the frontend MUST call `DELETE /index.php/apps/openregister/api/objects/procest/case/abc-123-def` +- AND the response MUST confirm deletion (HTTP 200 or 204) + +#### Scenario: API call with authentication + +- GIVEN a logged-in Nextcloud user +- THEN all OpenRegister API calls MUST include the Nextcloud session cookie or authorization header +- AND unauthenticated requests MUST be rejected with HTTP 401 + +--- + +### REQ-OREG-004: Pagination and Filtering + +The frontend MUST support paginated access to object lists and use OpenRegister query parameters for filtering, searching, and sorting. + +**Tier**: MVP + + +#### Scenario: Paginate case list + +- GIVEN 24 cases exist in the register +- WHEN the frontend requests page 2 with limit 10 +- THEN it MUST call `GET /index.php/apps/openregister/api/objects/procest/case?_page=2&_limit=10` +- AND the response MUST contain cases 11-20 +- AND the pagination metadata MUST show: `total: 24`, `page: 2`, `limit: 10`, `pages: 3` + +#### Scenario: Filter tasks by case + +- GIVEN 23 tasks across 8 cases +- WHEN the frontend requests tasks for case #2024-042 (UUID: "case-uuid-042") +- THEN it MUST call `GET /index.php/apps/openregister/api/objects/procest/task?case=case-uuid-042` +- AND only tasks linked to that case MUST be returned + +#### Scenario: Combined filters with sort + +- GIVEN the user applies multiple filters: assignee "jan.devries", status "active", sorted by priority +- THEN the frontend MUST combine all filters: `?assignee=jan.devries&status=active&_sort=priority&_order=desc` +- AND the API MUST apply all filters conjunctively (AND logic) + +#### Scenario: Search by text field + +- GIVEN cases with various titles +- WHEN the user searches for "bouwvergunning" +- THEN the frontend MUST pass the search term via the appropriate OpenRegister search parameter +- AND results MUST include cases whose title contains "bouwvergunning" (case-insensitive) + +--- + +### REQ-OREG-005: Object Store Pattern + +The frontend MUST use the `createObjectStore` pattern from `@conduction/nextcloud-vue` for state management, providing a unified store with CRUD actions, loading states, error handling, and pagination. + +**Tier**: MVP + + +#### Scenario: Object store provides CRUD actions + +- GIVEN the `useObjectStore()` from `src/store/modules/object.js` +- THEN it MUST provide actions for listing, getting, creating, updating, and deleting objects across all entity types +- AND the store MUST use the `createObjectStore('object')` factory from the shared library +- AND the store MUST include plugins: `filesPlugin()`, `auditTrailsPlugin()`, `relationsPlugin()` + +#### Scenario: Store tracks loading state + +- GIVEN any object fetch operation +- WHEN the API call is in progress +- THEN the store MUST expose a loading state +- AND the UI MUST show a loading indicator +- AND the loading state MUST be cleared after the API call completes (success or failure) + +#### Scenario: Store tracks error state + +- GIVEN an API call fails with HTTP 500 +- THEN the store MUST capture the error +- AND the UI MUST display a user-friendly error message +- AND the loading state MUST be cleared + +#### Scenario: Store resolves cross-references + +- GIVEN the `relationsPlugin()` is active +- WHEN a task object with `case: "case-uuid-042"` is loaded +- THEN the store SHOULD resolve the case reference to provide the case title and identifier +- AND resolved references SHOULD be cached to avoid redundant API calls + +#### Scenario: Settings store manages app configuration + +- GIVEN the `src/store/modules/settings.js` Pinia store +- THEN it MUST provide `fetchSettings()` and `saveSettings()` actions +- AND it MUST interact with `SettingsController` endpoints (`GET /api/settings`, `POST /api/settings`) +- AND it MUST track loading and error states + +--- + +### REQ-OREG-006: Cross-Entity References + +Entities in Procest reference each other via UUID. The frontend MUST resolve these references to display meaningful data (titles, names) rather than raw UUIDs. + +**Tier**: MVP + + +#### Scenario: Task references a case + +- GIVEN a task object with `case: "case-uuid-042"` +- WHEN the task is displayed in a list or card +- THEN the frontend MUST resolve "case-uuid-042" to display the case identifier and title (e.g., "Case #2024-042 Bouwvergunning Keizersgracht") +- AND the resolved case reference MUST be clickable, navigating to the case detail + +#### Scenario: Role references both case and role type + +- GIVEN a role object with: + - `case: "case-uuid-042"` + - `roleType: "roletype-uuid-handler"` + - `participant: "jan.devries"` +- WHEN the role is displayed on the case detail page +- THEN the frontend MUST resolve: + - The role type to its name (e.g., "Behandelaar") + - The participant to the Nextcloud user display name (e.g., "Jan de Vries") via `/ocs/v2.php/cloud/users/{uid}` + +#### Scenario: Dangling reference (referenced object deleted) + +- GIVEN a task with `case: "case-uuid-deleted"` where the referenced case has been deleted +- WHEN the task is displayed +- THEN the frontend MUST handle the missing reference gracefully +- AND it SHOULD display a "Case not found" or "[Deleted]" placeholder +- AND the task MUST still be viewable and manageable + +#### Scenario: Case type hierarchy resolution + +- GIVEN a case detail view that needs to display: + - The case type name, current status name, handler name, and task list +- WHEN the case detail page loads +- THEN the frontend MUST fetch and resolve all related entities +- AND cross-references MUST be resolved in parallel where possible + +--- + +### REQ-OREG-007: Schema Validation Rules + +OpenRegister MUST validate objects against their schema definitions before storage. Procest schemas MUST define appropriate validation constraints. + +**Tier**: MVP + + +#### Scenario: Required field validation + +- GIVEN the `task` schema requires `title` and `case` +- WHEN the frontend submits a task without a title +- THEN the OpenRegister API MUST return HTTP 400/422 with a validation error +- AND the error response MUST identify the missing field (`title`) +- AND the frontend MUST display the validation error to the user + +#### Scenario: Enum validation for task status + +- GIVEN the `task` schema defines `status` as enum: `available`, `active`, `completed`, `terminated`, `disabled` +- WHEN the frontend submits a task with `status: "pending"` +- THEN the OpenRegister API MUST reject the request +- AND the error MUST indicate that "pending" is not a valid value for `status` + +#### Scenario: Date format validation + +- GIVEN the `case` schema defines `startDate` as format: date +- WHEN the frontend submits a case with `startDate: "not-a-date"` +- THEN the API MUST reject with a format validation error + +#### Scenario: String length validation + +- GIVEN the `case` schema defines `title` with maxLength: 255 +- WHEN the frontend submits a case with a title of 300 characters +- THEN the API MUST reject with a length validation error + +--- + +### REQ-OREG-008: Error Handling + +The frontend MUST handle all categories of API errors gracefully and present user-friendly messages. + +**Tier**: MVP + + +#### Scenario: Network error (offline/timeout) + +- GIVEN the user is creating a case +- WHEN the API call fails due to a network timeout +- THEN the frontend MUST display a message like "Unable to reach the server. Please check your connection and try again." +- AND the form data MUST be preserved (not cleared) +- AND a retry option SHOULD be available + +#### Scenario: Validation error (HTTP 400/422) + +- GIVEN the user submits a case with missing required fields +- WHEN the API returns HTTP 422 with field-level errors +- THEN the frontend MUST map errors to specific form fields +- AND invalid fields MUST be highlighted with their error messages + +#### Scenario: Authorization error (HTTP 403) + +- GIVEN a user without admin privileges +- WHEN they attempt to create a case type via the API +- THEN the API MUST return HTTP 403 +- AND the frontend MUST display "You do not have permission to perform this action" + +#### Scenario: Not found error (HTTP 404) + +- GIVEN a case with UUID "abc-123-def" has been deleted +- WHEN the frontend attempts to fetch it +- THEN the API MUST return HTTP 404 +- AND the frontend MUST display "The requested case could not be found" +- AND the frontend SHOULD redirect to the case list + +#### Scenario: Server error (HTTP 500) + +- GIVEN an unexpected error occurs on the server +- WHEN the API returns HTTP 500 +- THEN the frontend MUST display a generic error message: "An unexpected error occurred. Please try again later." +- AND the error SHOULD be logged to the browser console with details for debugging + +--- + +### REQ-OREG-009: Cascade Behaviors + +The system MUST define what happens to dependent entities when a parent entity is deleted or modified. + +**Tier**: V1 + + +#### Scenario: Delete a case with linked entities + +- GIVEN case #2024-042 has 5 tasks, 3 roles, 1 result, and 2 decisions +- WHEN the user deletes case #2024-042 +- THEN the system MUST either: + - (a) Cascade delete all linked tasks, roles, results, and decisions, OR + - (b) Prevent deletion and warn the user that dependent entities exist +- AND the system MUST NOT leave orphaned task/role/result/decision objects + +#### Scenario: Delete a case type with linked type definitions + +- GIVEN case type "Bezwaarschrift" (draft, no cases reference it) has 3 status types, 2 result types, and 2 role types +- WHEN the admin deletes the case type +- THEN all linked status types, result types, role types, property definitions, document types, and decision types MUST also be deleted (cascade) + +#### Scenario: Delete a case type that is in use + +- GIVEN case type "Omgevingsvergunning" is referenced by 10 active cases +- WHEN an admin attempts to delete the case type +- THEN the system MUST prevent the deletion +- AND the error message MUST indicate that the case type is in use by 10 cases + +#### Scenario: Remove a status type with active cases + +- GIVEN status type "Besluitvorming" is linked to case type "Omgevingsvergunning" +- AND 3 cases currently have status "Besluitvorming" +- THEN the system MUST prevent removal +- AND the error message MUST indicate that 3 cases are currently in this status + +--- + +### REQ-OREG-010: Audit Trail Integration + +All create, update, and delete operations on Procest objects MUST be captured in the audit trail, integrated via the `auditTrailsPlugin()` in the object store. + +**Tier**: MVP + + +#### Scenario: Case creation is logged + +- GIVEN user "jan.devries" creates case #2024-053 +- THEN the audit trail MUST record: action, entity type, entity UUID, user, timestamp, and key field values + +#### Scenario: Task status change is logged + +- GIVEN user "jan.devries" changes task "Review documenten" from `active` to `completed` +- THEN the audit trail MUST record: action "status_changed", entity type "task", old value "active", new value "completed", user, and timestamp + +#### Scenario: Audit trail is displayed on case detail + +- GIVEN case #2024-042 has 15 audit events +- WHEN the user views the Activity Timeline section on the case detail +- THEN the events MUST be displayed in reverse chronological order +- AND each event MUST show: description, user, timestamp +- AND the timeline MUST be paginated or have a "Load more" option + +--- + +### REQ-OREG-011: RBAC (Role-Based Access Control) + +The system MUST enforce access control via OpenRegister's RBAC system. Configuration entities MUST be admin-only. Instance entities MUST be accessible to authorized users. + +**Tier**: MVP + + +#### Scenario: Admin-only access to configuration entities + +- GIVEN a non-admin user "jan.devries" +- WHEN Jan attempts to create, update, or delete a case type via the API +- THEN the system MUST return HTTP 403 + +#### Scenario: Regular user can create instance entities + +- GIVEN a regular Nextcloud user "jan.devries" +- THEN Jan MUST be able to create cases, tasks, roles, results, and decisions on cases he has access to + +#### Scenario: Nextcloud admin settings page requires admin + +- GIVEN a non-admin user navigates to the Procest admin settings URL +- THEN the Nextcloud admin settings system MUST prevent access + +--- + +### REQ-OREG-012: Performance and Eager Loading + +The frontend MUST minimize API round-trips by fetching related entities efficiently. + +**Tier**: MVP + + +#### Scenario: Case detail page loads all related data in parallel + +- GIVEN the user opens case detail for case #2024-042 +- THEN the frontend MUST fetch the following in parallel (not sequentially): + - Case object (with case type, status references) + - Tasks for the case + - Roles for the case + - Decisions for the case + - Result for the case (if exists) +- AND the total load time MUST be under 3 seconds for a case with 10 tasks, 5 roles, 3 decisions + +#### Scenario: Case type store pre-fetches on app initialization + +- GIVEN the case list shows 20 cases referencing 4 different case types +- THEN the frontend MUST NOT make 20 individual API calls to resolve case type names +- AND the case type store SHOULD pre-fetch all case types on app initialization (small dataset, typically less than 20) + +#### Scenario: My Work aggregation performance + +- GIVEN the My Work view needs to display cases and tasks for the current user +- THEN the frontend MUST make exactly 2 API calls: + - Cases with `?assignee=currentUser&status_ne=final` + - Tasks with `?assignee=currentUser&status=available,active` +- AND the total load time MUST be under 2 seconds + +#### Scenario: Pagination prevents loading too many objects + +- GIVEN the case list could contain hundreds of cases +- THEN the default page size MUST NOT exceed 50 +- AND the frontend MUST use pagination (not load all objects at once) + +--- + +### REQ-OREG-013: ZGW API Layer + +The system MUST provide ZGW-compliant API endpoints that map between ZGW Dutch field names and Procest's English field names, enabling interoperability with the Dutch government API ecosystem. + +**Tier**: MVP + + +#### Scenario: ZGW Zaken API compliance + +- GIVEN the `ZrcController.php` implements ZGW Zaken API (ZRC) endpoints +- THEN it MUST support standard CRUD operations on cases (zaken) using ZGW field names +- AND the `ZgwMappingService` MUST translate between ZGW Dutch names and internal English names +- AND business rules MUST be enforced via `ZgwZrcRulesService` + +#### Scenario: ZGW Catalogi API compliance + +- GIVEN the `ZtcController.php` implements ZGW Catalogi API (ZTC) endpoints +- THEN it MUST expose case types (zaaktypen), status types, result types, role types, and decision types via ZGW-compliant endpoints + +#### Scenario: ZGW Besluiten API compliance + +- GIVEN the `BrcController.php` implements ZGW Besluiten API (BRC) endpoints +- THEN it MUST support CRUD operations on decisions (besluiten) +- AND business rules MUST be enforced via `ZgwBrcRulesService` + +#### Scenario: ZGW authentication + +- GIVEN external systems connecting via ZGW APIs +- THEN the `ZgwAuthMiddleware` MUST validate JWT tokens per the ZGW API authentication standard + +--- + +## Cross-Entity Reference Map + +``` +CaseType -----------------------------------------------------------+ +| | ++-- StatusType[] (statusType.caseType -> caseType UUID) | ++-- ResultType[] (resultType.caseType -> caseType UUID) | ++-- RoleType[] (roleType.caseType -> caseType UUID) | ++-- PropertyDefinition[] (propertyDefinition.caseType -> caseType) | ++-- DocumentType[] (documentType.caseType -> caseType UUID) | ++-- DecisionType[] (decisionType.caseType -> caseType UUID) | + | +Case ---------------------------------------------------------------+ +| case.caseType -> caseType UUID | +| case.status -> statusType UUID | +| case.result -> result UUID (optional) | +| case.assignee -> Nextcloud user UID (optional) | +| case.parentCase -> case UUID (optional, for sub-cases) | +| | ++-- Task[] (task.case -> case UUID) | +| task.assignee -> Nextcloud user UID (optional) | +| | ++-- Role[] (role.case -> case UUID) | +| role.roleType -> roleType UUID | +| role.participant -> Nextcloud user UID or contact ref | +| | ++-- Result (result.case -> case UUID, at most 1) | +| result.resultType -> resultType UUID | +| | ++-- Decision[] (decision.case -> case UUID) | + decision.decisionType -> decisionType UUID (optional) | + decision.decidedBy -> Nextcloud user UID (optional) | +``` + +--- + +## Summary: API Endpoint Patterns + +| Entity | List | Get | Create | Update | Delete | +|--------|------|-----|--------|--------|--------| +| Case | `GET .../procest/case` | `GET .../procest/case/{id}` | `POST .../procest/case` | `PUT .../procest/case/{id}` | `DELETE .../procest/case/{id}` | +| Task | `GET .../procest/task` | `GET .../procest/task/{id}` | `POST .../procest/task` | `PUT .../procest/task/{id}` | `DELETE .../procest/task/{id}` | +| Role | `GET .../procest/role` | `GET .../procest/role/{id}` | `POST .../procest/role` | `PUT .../procest/role/{id}` | `DELETE .../procest/role/{id}` | +| Result | `GET .../procest/result` | `GET .../procest/result/{id}` | `POST .../procest/result` | `PUT .../procest/result/{id}` | `DELETE .../procest/result/{id}` | +| Decision | `GET .../procest/decision` | `GET .../procest/decision/{id}` | `POST .../procest/decision` | `PUT .../procest/decision/{id}` | `DELETE .../procest/decision/{id}` | +| CaseType | `GET .../procest/caseType` | `GET .../procest/caseType/{id}` | `POST .../procest/caseType` | `PUT .../procest/caseType/{id}` | `DELETE .../procest/caseType/{id}` | +| StatusType | `GET .../procest/statusType` | `GET .../procest/statusType/{id}` | `POST ...` | `PUT ...` | `DELETE ...` | +| (etc.) | (same pattern for all remaining schemas) | | | | | + +Base URL: `/index.php/apps/openregister/api/objects` + +--- + +### Current Implementation Status + +**Core architecture implemented; individual patterns differ from spec in store approach.** + +**Implemented (with file paths):** +- **Configuration file**: `lib/Settings/procest_register.json` exists, is valid JSON, conforms to OpenAPI 3.0.0, defines a register with app `procest`. Defines all schemas with `x-schema-org-type` and `x-zgw-equivalent` annotations (REQ-OREG-001). +- **Repair step**: `lib/Repair/InitializeSettings.php` calls `SettingsService::loadConfiguration()` which uses `ConfigurationService::importFromApp('procest')` from OpenRegister. Handles missing OpenRegister gracefully with warning. Is idempotent (REQ-OREG-002). +- **Settings service**: `lib/Service/SettingsService.php` with `loadConfiguration()`, `getSettings()`, `updateSettings()`, `autoConfigureAfterImport()`. Maps schema slugs to config keys via `SLUG_TO_CONFIG_KEY` constant (REQ-OREG-002). +- **Settings controller**: `lib/Controller/SettingsController.php` with routes `GET /api/settings` and `POST /api/settings` (REQ-OREG-003). +- **Settings store**: `src/store/modules/settings.js` -- Pinia store that fetches and saves settings with loading/error state tracking. +- **Object store**: `src/store/modules/object.js` -- uses `createObjectStore('object')` from `@conduction/nextcloud-vue` shared library. Single unified store (not per-entity stores). Provides CRUD, pagination, caching, `resolveReferences`, and `fetchSchema` via plugins: `filesPlugin()`, `auditTrailsPlugin()`, `relationsPlugin()` (REQ-OREG-005). +- **Frontend API patterns**: The object store queries OpenRegister via `/index.php/apps/openregister/api/objects/{register}/{schema}` endpoints (REQ-OREG-003). +- **ZGW API layer**: Full ZGW-compliant API controllers: `ZrcController.php` (Zaken), `ZtcController.php` (Catalogi), `DrcController.php` (Documenten), `BrcController.php` (Besluiten), `NrcController.php` (Notificaties), `AcController.php` (Autorisaties) with ZGW-to-English mapping via `ZgwMappingService` (REQ-OREG-013). +- **ZGW business rules**: `ZgwBusinessRulesService.php`, `ZgwZrcRulesService.php`, `ZgwZtcRulesService.php`, `ZgwDrcRulesService.php`, `ZgwBrcRulesService.php`. +- **ZGW auth middleware**: `lib/Middleware/ZgwAuthMiddleware.php` for JWT-based ZGW authentication. +- **Audit trail**: The `auditTrailsPlugin()` integrates with OpenRegister's audit trail. ZGW controllers expose `/audittrail` sub-routes (REQ-OREG-010). +- **Cross-entity references**: The `relationsPlugin()` supports resolving references. Case detail views resolve case types, status types, participants, and tasks (REQ-OREG-006). +- **Case detail parallel loading**: `src/views/cases/CaseDetail.vue` fetches case, tasks, roles, and related data (REQ-OREG-012). +- **Participants section**: `src/views/cases/components/ParticipantsSection.vue` resolves role types and participant display names via Nextcloud OCS API. +- **Result section**: `src/views/cases/components/ResultSection.vue` resolves result types. + +**Not yet implemented or differs from spec:** +- **REQ-OREG-009: Cascade behaviors (V1)**: No cascade delete logic. Deleting a case does not automatically delete linked tasks/roles/results/decisions. +- **REQ-OREG-008: Concurrent modification (HTTP 409)**: Not implemented. No optimistic locking or conflict detection. +- **Reference integrity validation**: No server-side check that referenced UUIDs exist (e.g., task.case pointing to valid case). + +### Standards & References + +- **OpenAPI 3.0.0**: The register configuration file follows this format. +- **ZGW APIs (VNG Realisatie)**: Full ZGW-compliant API layer with ZRC, ZTC, DRC, BRC, NRC, and AC endpoints. +- **CMMN 1.1**: Task lifecycle states follow the CasePlanModel/HumanTask pattern. +- **Schema.org**: Entity type annotations in `procest_register.json`. +- **Common Ground**: Layered architecture with data in OpenRegister (information layer) and Procest as process layer. +- **Competitive reference**: Dimpact ZAC (PostgreSQL + 89 Flyway migrations), xxllnc Zaken (CQRS + event sourcing), ArkCase (JPA/Hibernate), Flowable (MyBatis + runtime/history tables). + +### Specificity Assessment + +- **Mostly implementable as-is.** The unified object store from `@conduction/nextcloud-vue` is the actual pattern rather than 12 individual stores. +- **ZGW API layer is a major feature** not previously covered in the spec -- now included as REQ-OREG-013. +- **Schema inventory expanded** to include all 27 schemas from `SLUG_TO_CONFIG_KEY`. +- **Open questions:** + - Should cascade delete be implemented in the frontend (orchestrated deletes) or via OpenRegister (declarative cascade rules)? + - How does ZGW field mapping interact with the OpenRegister schema definitions at storage time? diff --git a/openspec/changes/archive/2026-03-21-openregister-integration/tasks.md b/openspec/changes/archive/2026-03-21-openregister-integration/tasks.md new file mode 100644 index 0000000..c621ef2 --- /dev/null +++ b/openspec/changes/archive/2026-03-21-openregister-integration/tasks.md @@ -0,0 +1,31 @@ +# Tasks: OpenRegister Integration + +## Task 1: Register and schema initialization [MVP] [DONE] +- **spec_ref**: openregister-integration/spec.md +- **files**: `lib/Service/SettingsService.php`, `lib/Repair/` +- **acceptance**: Register and schemas created on app enable + +## Task 2: Pinia object store integration [MVP] [DONE] +- **spec_ref**: openregister-integration/spec.md +- **files**: `src/store/modules/object.js` +- **acceptance**: CRUD operations work via OpenRegister API + +## Task 3: Settings configuration UI [MVP] [DONE] +- **spec_ref**: openregister-integration/spec.md +- **files**: `src/views/settings/Settings.vue`, `lib/Controller/SettingsController.php` +- **acceptance**: Admin can configure register/schema IDs + +## Task 4: Unit tests (ADR-009) [DONE] +- **spec_ref**: ADR-009 +- **files**: `tests/Unit/Service/SettingsServiceTest.php` +- **acceptance**: Settings service tests pass + +## Task 5: Documentation (ADR-010) [DONE] +- **spec_ref**: ADR-010 +- **files**: `docs/ARCHITECTURE.md` +- **acceptance**: OpenRegister integration architecture documented + +## Task 6: i18n support (ADR-005) [DONE] +- **spec_ref**: ADR-005 +- **files**: `l10n/en.json`, `l10n/nl.json` +- **acceptance**: Integration strings in English and Dutch diff --git a/openspec/changes/archive/2026-03-21-pipelinq-app-scaffold/.openspec.yaml b/openspec/changes/archive/2026-03-21-pipelinq-app-scaffold/.openspec.yaml new file mode 100644 index 0000000..d8b0ed0 --- /dev/null +++ b/openspec/changes/archive/2026-03-21-pipelinq-app-scaffold/.openspec.yaml @@ -0,0 +1,2 @@ +schema: spec-driven +created: 2026-03-20 diff --git a/openspec/changes/archive/2026-03-21-pipelinq-app-scaffold/design.md b/openspec/changes/archive/2026-03-21-pipelinq-app-scaffold/design.md new file mode 100644 index 0000000..8b77742 --- /dev/null +++ b/openspec/changes/archive/2026-03-21-pipelinq-app-scaffold/design.md @@ -0,0 +1,7 @@ +# Design: Pipelinq App Scaffold + +## Architecture +- **Pattern**: Mirrors Procest scaffold with own app identity for Pipelinq CRM +- **Backend**: Own Application class, routing, component registration +- **Frontend**: Vue SPA entry, navigation, OpenRegister integration +- **Relationship**: Sister app to Procest; sends cases via request-to-case conversion diff --git a/openspec/changes/archive/2026-03-21-pipelinq-app-scaffold/proposal.md b/openspec/changes/archive/2026-03-21-pipelinq-app-scaffold/proposal.md new file mode 100644 index 0000000..43ca12c --- /dev/null +++ b/openspec/changes/archive/2026-03-21-pipelinq-app-scaffold/proposal.md @@ -0,0 +1,22 @@ +# pipelinq-app-scaffold Specification + +## Problem +Define the Nextcloud app scaffolding, build system, translation setup, and admin settings for the Pipelinq client and request management app. Mirrors the Procest scaffold with its own app identity, routing, component registration, and OpenRegister integration. + +## Proposed Solution +Implement pipelinq-app-scaffold Specification following the detailed specification. Key requirements include: +- Requirement 1: App MUST be a valid Nextcloud app with proper metadata +- Requirement 2: App MUST provide a single-page application entry point +- Requirement 3: Vue Router MUST define all application routes +- Requirement 4: App MUST use webpack build system extending Nextcloud base config +- Requirement 5: App MUST support multilingual translations (EN/NL minimum) + +## Scope +This change covers all requirements defined in the pipelinq-app-scaffold specification. + +## Success Criteria +#### Scenario 1.1: App registration in Nextcloud app list +#### Scenario 1.2: App enable with OpenRegister dependency +#### Scenario 1.3: App enable without OpenRegister +#### Scenario 1.4: App categories and description +#### Scenario 1.5: License declaration diff --git a/openspec/changes/archive/2026-03-21-pipelinq-app-scaffold/specs/pipelinq-app-scaffold/spec.md b/openspec/changes/archive/2026-03-21-pipelinq-app-scaffold/specs/pipelinq-app-scaffold/spec.md new file mode 100644 index 0000000..0307b26 --- /dev/null +++ b/openspec/changes/archive/2026-03-21-pipelinq-app-scaffold/specs/pipelinq-app-scaffold/spec.md @@ -0,0 +1,313 @@ +--- +status: implemented +--- +# pipelinq-app-scaffold Specification + +## Purpose +Define the Nextcloud app scaffolding, build system, translation setup, and admin settings for the Pipelinq client and request management app. Mirrors the Procest scaffold with its own app identity, routing, component registration, and OpenRegister integration. + +## Context +Pipelinq is a CRM and client management app for Nextcloud, serving as the sister app to Procest (case management). It follows the same architectural patterns: thin client with no own database tables, Vue 2 frontend with Pinia state management, and all data stored in OpenRegister. The app scaffold must provide the foundational structure that all Pipelinq features build upon, including proper Nextcloud integration, build tooling, translation support, and admin settings for register/schema configuration. + +## Requirements + +### Requirement 1: App MUST be a valid Nextcloud app with proper metadata +The Pipelinq app MUST be installable as a standard Nextcloud app with proper `info.xml` metadata, PHP namespace, and dependency declarations. + +#### Scenario 1.1: App registration in Nextcloud app list +- GIVEN the Pipelinq app directory exists in `apps-extra/pipelinq/` +- WHEN Nextcloud scans for available apps +- THEN the app MUST appear in the apps list with id `pipelinq`, name "Pipelinq", and namespace `OCA\Pipelinq` +- AND `info.xml` MUST declare compatibility with Nextcloud versions 28 through 33 +- AND `info.xml` MUST declare PHP 8.1+ as minimum requirement + +#### Scenario 1.2: App enable with OpenRegister dependency +- GIVEN Nextcloud is running and OpenRegister is installed and enabled +- WHEN an admin enables the Pipelinq app via `php occ app:enable pipelinq` +- THEN the app MUST activate without errors +- AND it MUST register a navigation entry in the top bar with icon and translated name +- AND the repair step MUST run to create/detect the Pipelinq register in OpenRegister + +#### Scenario 1.3: App enable without OpenRegister +- GIVEN Nextcloud is running but OpenRegister is NOT installed +- WHEN a user navigates to `/apps/pipelinq/` +- THEN the app MUST display an `NcEmptyContent` component explaining that OpenRegister is required +- AND an "Install OpenRegister" button MUST link to the Nextcloud app store + +#### Scenario 1.4: App categories and description +- GIVEN the `info.xml` file +- WHEN the Nextcloud app store reads the metadata +- THEN the app MUST be categorized under "organization" and "social" +- AND the description MUST be provided in both English and Dutch + +#### Scenario 1.5: License declaration +- GIVEN the app source code +- WHEN checking license headers +- THEN all PHP files MUST include EUPL-1.2 license headers +- AND `info.xml` MUST declare `agpl` as the license for Nextcloud compatibility + +### Requirement 2: App MUST provide a single-page application entry point +The app MUST serve a Vue 2 SPA from a DashboardController that mounts to the `#content` element. + +#### Scenario 2.1: Dashboard page load +- GIVEN the app is enabled and a user is logged in +- WHEN the user navigates to `/apps/pipelinq/` +- THEN the DashboardController MUST return a `TemplateResponse` with template name `main` +- AND the page MUST load the `pipelinq-main.js` webpack bundle via `Util::addScript()` +- AND the Vue app MUST initialize with `PiniaVuePlugin` and mount to `#content` + +#### Scenario 2.2: Vue app initialization sequence +- GIVEN the `src/main.js` entry point +- WHEN the script executes +- THEN it MUST register `PiniaVuePlugin` with Vue before creating the app instance +- AND it MUST create the Vue instance with Pinia and Vue Router +- AND it MUST call `$mount('#content')` before `initializeStores()` +- AND `initializeStores()` MUST fetch settings and register all object types + +#### Scenario 2.3: App shell with NcContent +- GIVEN the root `App.vue` component +- WHEN it renders +- THEN it MUST use `NcContent` with `app-name="pipelinq"` +- AND it MUST show a loading state while stores initialize (`NcLoadingIcon`) +- AND it MUST check `hasOpenRegisters` before rendering the main content +- AND it MUST include the `MainMenu` navigation component and `router-view` for page content + +#### Scenario 2.4: Shared library CSS import +- GIVEN the main entry point +- WHEN the app bundles are built +- THEN `main.js` MUST explicitly import `@conduction/nextcloud-vue/css/index.css` +- AND this import MUST appear before any component imports to ensure correct CSS cascade + +#### Scenario 2.5: Global translation mixin +- GIVEN any Vue component in the app +- WHEN the component needs to display translated text +- THEN `main.js` MUST register a global mixin providing `t()` and `n()` methods +- AND these MUST use `@nextcloud/l10n` with app id `pipelinq` + +### Requirement 3: Vue Router MUST define all application routes +The app MUST use Vue Router in history mode with routes for all primary views. + +#### Scenario 3.1: Route definitions +- GIVEN the router at `src/router/index.js` +- WHEN the app initializes +- THEN the router MUST use history mode with base URL `generateUrl('/apps/pipelinq')` +- AND it MUST define routes for: Dashboard (`/`), Clients (`/clients`), ClientDetail (`/clients/:id`), Requests (`/requests`), RequestDetail (`/requests/:id`), Settings (`/settings`) +- AND it MUST include a catch-all route (`*`) that redirects to `/` + +#### Scenario 3.2: Route props for detail views +- GIVEN a detail view route like `/clients/:id` +- WHEN the route is matched +- THEN the route MUST pass the `id` param as a prop to the component (e.g., `props: route => ({ clientId: route.params.id })`) + +#### Scenario 3.3: Navigation guard for settings +- GIVEN a non-admin user +- WHEN they attempt to navigate to `/settings` +- THEN the settings view MUST check `settingsStore.getIsAdmin` and display an access denied message if false + +### Requirement 4: App MUST use webpack build system extending Nextcloud base config +The build system MUST extend `@nextcloud/webpack-vue-config` with entry points for the main SPA and admin settings. + +#### Scenario 4.1: Build produces correct bundles +- GIVEN the source files exist in `src/` +- WHEN `npm run build` is executed +- THEN it MUST produce `js/pipelinq-main.js` for the dashboard SPA +- AND it MUST produce `js/pipelinq-settings.js` for the admin settings page +- AND both bundles MUST be minified for production builds + +#### Scenario 4.2: Webpack alias for shared library deduplication +- GIVEN `@conduction/nextcloud-vue` is a dependency +- WHEN webpack resolves imports +- THEN `webpack.config.js` MUST configure resolve aliases to deduplicate Vue, Pinia, and `@nextcloud/vue` between the app and the shared library + +#### Scenario 4.3: Development mode with hot reload +- GIVEN the developer runs `npm run dev` +- WHEN source files are modified +- THEN webpack MUST rebuild the affected bundles +- AND the `--watch` flag MUST be available for continuous rebuilds + +#### Scenario 4.4: Source map generation +- GIVEN a development build +- WHEN `npm run dev` is executed +- THEN source maps MUST be generated for debugging +- AND production builds MUST NOT include source maps + +### Requirement 5: App MUST support multilingual translations (EN/NL minimum) +All user-facing strings MUST be wrapped in translation functions with English as the primary language and Dutch as a required secondary language. + +#### Scenario 5.1: English translation rendering +- GIVEN a user with English (`en`) locale +- WHEN viewing the Pipelinq app +- THEN all UI text MUST be displayed in English +- AND navigation items, form labels, button text, error messages, and empty states MUST all be translated + +#### Scenario 5.2: Dutch translation rendering +- GIVEN a user with Dutch (`nl`) locale +- WHEN viewing the Pipelinq app +- THEN all UI text MUST be displayed in Dutch +- AND the navigation MUST show "Klanten" instead of "Clients", "Verzoeken" instead of "Requests" + +#### Scenario 5.3: Translation function usage in Vue templates +- GIVEN any Vue component with user-facing text +- WHEN the component renders +- THEN all strings MUST use `t('pipelinq', 'key')` in templates or `this.t('pipelinq', 'key')` in script +- AND plural strings MUST use `n('pipelinq', 'singular', 'plural', count)` + +#### Scenario 5.4: Translation function usage in PHP +- GIVEN any PHP controller or service that returns user-facing messages +- WHEN the code constructs a response message +- THEN it MUST use `$this->l->t('key')` with the IL10N service injected via constructor + +#### Scenario 5.5: Translation file structure +- GIVEN the `translationfiles/` directory +- WHEN translations are generated +- THEN `translationfiles/en/` MUST contain the source language strings +- AND `translationfiles/nl/` MUST contain Dutch translations +- AND the translation extraction tool (`translationtool.phar`) MUST be runnable without errors + +### Requirement 6: App MUST provide admin settings page +The app MUST register an admin settings section for register/schema configuration and app preferences. + +#### Scenario 6.1: Admin settings section registration +- GIVEN the `info.xml` file +- WHEN Nextcloud loads admin settings +- THEN `Sections\SettingsSection` MUST be registered as an admin settings section +- AND `Settings\AdminSettings` MUST be registered as the admin settings page +- AND the section MUST appear under "Administration" in the settings sidebar + +#### Scenario 6.2: Settings page access and rendering +- GIVEN an admin user +- WHEN navigating to `/settings/admin/pipelinq` +- THEN the admin settings page MUST load with the `pipelinq-settings.js` bundle +- AND it MUST display configuration for register/schema mappings (register ID, client schema, request schema, contact schema) +- AND it MUST include a "Reload configuration" button to re-import from `pipelinq_register.json` + +#### Scenario 6.3: Settings page restricted to admins +- GIVEN a regular (non-admin) user +- WHEN attempting to access `/settings/admin/pipelinq` +- THEN Nextcloud MUST deny access based on the `AdminSettings` class's admin-only priority + +#### Scenario 6.4: In-app settings route +- GIVEN a user navigates to `/apps/pipelinq/settings` within the SPA +- WHEN the settings component renders +- THEN it MUST display the same configuration options as the admin settings page +- AND it MUST call the `/api/settings` endpoint for reading and writing configuration +- AND it MUST only be accessible to admin users (checked via `settingsStore.getIsAdmin`) + +### Requirement 7: App MUST have a repair step for register initialization +The app MUST automatically create or detect the Pipelinq register and schemas in OpenRegister during installation or upgrade. + +#### Scenario 7.1: Repair step execution on install +- GIVEN the app is being enabled for the first time +- WHEN the `InitializeSettings` repair step runs +- THEN it MUST call `SettingsService::loadConfiguration()` to import the register from `pipelinq_register.json` +- AND the import MUST create the register and all defined schemas in OpenRegister +- AND it MUST store the resulting register and schema IDs in `IAppConfig` + +#### Scenario 7.2: Repair step on upgrade with version check +- GIVEN the app is being upgraded from version 1.0.0 to 1.1.0 +- WHEN the repair step runs +- THEN `ConfigurationService::importFromApp()` MUST compare the version in `pipelinq_register.json` to the previously imported version +- AND if the version is newer, schemas MUST be updated without losing existing data +- AND if the version is the same, the import MUST be skipped (unless forced) + +#### Scenario 7.3: Register configuration JSON structure +- GIVEN the file `lib/Settings/pipelinq_register.json` +- WHEN the register is imported +- THEN the JSON MUST follow OpenAPI 3.0.0 format with `info.title`, `info.version`, and schema definitions under `components.schemas` +- AND each schema MUST include Schema.org type annotations in `x-schema-org-type` + +### Requirement 8: App MUST have a GitHub repository +The app source code MUST be hosted at `ConductionNL/pipelinq` on GitHub with proper CI/CD. + +#### Scenario 8.1: Repository exists and is public +- GIVEN the ConductionNL GitHub organization +- WHEN checking for the pipelinq repository +- THEN `https://github.com/ConductionNL/pipelinq` MUST exist and be public +- AND the repository MUST have a `main` branch as default + +#### Scenario 8.2: Repository contains required files +- GIVEN the repository root +- WHEN listing the contents +- THEN it MUST contain: `appinfo/info.xml`, `appinfo/routes.php`, `lib/`, `src/`, `webpack.config.js`, `package.json`, `composer.json` + +#### Scenario 8.3: CI workflow runs linting +- GIVEN a pull request is opened +- WHEN the CI workflow runs +- THEN it MUST execute `composer check:strict` (PHPCS, PHPMD, Psalm, PHPStan) +- AND it MUST execute `npm run lint` for ESLint + +### Requirement 9: Navigation menu MUST show primary entity sections +The app navigation MUST include menu items for all primary views using `NcAppNavigation` components. + +#### Scenario 9.1: Navigation rendering with icons +- GIVEN the user opens the Pipelinq app +- WHEN the `MainMenu.vue` component renders +- THEN the menu MUST include items for: Dashboard (with dashboard icon), Clients (with contacts icon), Requests (with inbox icon), and Documentation (external link) +- AND the footer MUST include a settings/configuration item + +#### Scenario 9.2: Active route highlighting +- GIVEN the user is on the Clients list page +- WHEN the navigation renders +- THEN the "Clients" menu item MUST be highlighted as active +- AND all other items MUST be in their default state + +#### Scenario 9.3: Navigation item count badges +- GIVEN there are unprocessed requests requiring attention +- WHEN the navigation renders +- THEN the "Requests" menu item MAY display a count badge (enterprise feature) + +### Requirement 10: App MUST integrate with Nextcloud Dashboard widgets +The app SHALL provide dashboard widgets for the Nextcloud Dashboard, showing key metrics. + +#### Scenario 10.1: Widget registration in info.xml +- GIVEN the `info.xml` configuration +- WHEN the app registers its features +- THEN dashboard widgets MUST be declared as separate webpack entry points +- AND each widget MUST have a corresponding PHP class implementing `IWidget` + +#### Scenario 10.2: Widget renders independently +- GIVEN the Nextcloud Dashboard page +- WHEN the user adds a Pipelinq widget +- THEN the widget MUST load its own JavaScript bundle (not the full SPA) +- AND it MUST fetch data independently using the object store pattern + +#### Scenario 10.3: Widget displays client/request summary +- GIVEN the widget is rendered on the Nextcloud Dashboard +- WHEN it loads +- THEN it MUST display a summary of recent clients or open requests +- AND each item MUST link to the corresponding detail view in the Pipelinq app + +--- + +## Current Implementation Status + +**Fully implemented.** The Pipelinq app scaffold is complete and functional. + +**Implemented (with file paths -- in the `pipelinq/` submodule):** +- **App registration**: `pipelinq/appinfo/info.xml` -- id `pipelinq`, namespace `Pipelinq`, Nextcloud 28-33 compatibility, PHP 8.1+ requirement. +- **Navigation entry**: Registered in `info.xml` as a top-bar navigation item. +- **SPA entry point**: `pipelinq/src/main.js` -- Vue 2 app with Pinia, mounts to `#content`. +- **Webpack build**: `pipelinq/webpack.config.js` -- extends `@nextcloud/webpack-vue-config` with entry points for `pipelinq-main.js` and `pipelinq-settings.js`. +- **Admin settings**: `pipelinq/lib/Settings/AdminSettings.php` with section registration and settings Vue component. +- **Repair step**: `pipelinq/lib/Repair/InitializeSettings.php` for register/schema initialization. +- **Register config**: `pipelinq/lib/Settings/pipelinq_register.json` -- defines the Pipelinq register and schemas. +- **Settings store**: `pipelinq/src/store/modules/settings.js` for config fetching. +- **Object store**: `pipelinq/src/store/modules/object.js` -- uses `createObjectStore('object')` from shared library. +- **Translation support**: `t('pipelinq', ...)` used throughout Vue components. +- **GitHub repository**: https://github.com/ConductionNL/pipelinq exists. + +**All core scaffold requirements are implemented.** + +## Standards & References + +- **Nextcloud App Development Guidelines**: App structure follows Nextcloud conventions (info.xml, routes.php, AppFramework controllers, admin settings sections). +- **Vue 2 + Pinia**: Standard frontend stack for Conduction apps, with `PiniaVuePlugin` for Vue 2 compatibility. +- **@nextcloud/webpack-vue-config**: Nextcloud's standard webpack configuration extended with custom entry points. +- **@conduction/nextcloud-vue**: Shared component library providing `createObjectStore`, `CnIndexPage`, `CnDetailPage`, etc. +- **Nextcloud L10N**: Translation functions `t()` and `n()` used per Nextcloud conventions. +- **EUPL-1.2**: License declared in PHP file headers. +- **OpenAPI 3.0.0**: Register configuration format for `pipelinq_register.json`. + +## Specificity Assessment + +This spec is fully implementable and already implemented. All 10 requirements have comprehensive scenarios covering app registration, SPA entry, routing, build system, translations, admin settings, repair steps, repository, navigation, and widgets. The spec accurately reflects the Conduction app architecture pattern shared across Procest, Pipelinq, Softwarecatalog, and other apps. diff --git a/openspec/changes/archive/2026-03-21-pipelinq-app-scaffold/tasks.md b/openspec/changes/archive/2026-03-21-pipelinq-app-scaffold/tasks.md new file mode 100644 index 0000000..3ec4c25 --- /dev/null +++ b/openspec/changes/archive/2026-03-21-pipelinq-app-scaffold/tasks.md @@ -0,0 +1,17 @@ +# Tasks: Pipelinq App Scaffold + +## Task 1: Pipelinq scaffold spec [DONE] +- **spec_ref**: pipelinq-app-scaffold/spec.md +- **acceptance**: Pipelinq app scaffold specified + +## Task 2: Unit tests (ADR-009) [DONE] +- **spec_ref**: ADR-009 +- **acceptance**: Test coverage defined + +## Task 3: Documentation (ADR-010) [DONE] +- **spec_ref**: ADR-010 +- **acceptance**: Feature documented + +## Task 4: i18n support (ADR-005) [DONE] +- **spec_ref**: ADR-005 +- **acceptance**: Strings in English and Dutch diff --git a/openspec/changes/archive/2026-03-21-pipelinq-client-management/.openspec.yaml b/openspec/changes/archive/2026-03-21-pipelinq-client-management/.openspec.yaml new file mode 100644 index 0000000..d8b0ed0 --- /dev/null +++ b/openspec/changes/archive/2026-03-21-pipelinq-client-management/.openspec.yaml @@ -0,0 +1,2 @@ +schema: spec-driven +created: 2026-03-20 diff --git a/openspec/changes/archive/2026-03-21-pipelinq-client-management/design.md b/openspec/changes/archive/2026-03-21-pipelinq-client-management/design.md new file mode 100644 index 0000000..bc075ff --- /dev/null +++ b/openspec/changes/archive/2026-03-21-pipelinq-client-management/design.md @@ -0,0 +1,6 @@ +# Design: Pipelinq Client Management + +## Architecture +- **Pattern**: Client and request management domain for Pipelinq CRM +- **Entities**: Clients, requests (verzoeken), contacts stored in OpenRegister +- **Relationship**: Requests represent pre-case state; clients bridge Pipelinq and Procest diff --git a/openspec/changes/archive/2026-03-21-pipelinq-client-management/proposal.md b/openspec/changes/archive/2026-03-21-pipelinq-client-management/proposal.md new file mode 100644 index 0000000..0e87f99 --- /dev/null +++ b/openspec/changes/archive/2026-03-21-pipelinq-client-management/proposal.md @@ -0,0 +1,22 @@ +# pipelinq-client-management Specification + +## Problem +Define the client and request management domain for Pipelinq: clients, requests (verzoeken), and contacts. All entities are stored in OpenRegister under the Pipelinq register. Requests represent the pre-state of a case -- a yet-to-be-determined or incoming case before it enters formal case management in Procest. The client entity links organizations and persons across both Pipelinq (CRM) and Procest (case management) contexts. + +## Proposed Solution +Implement pipelinq-client-management Specification following the detailed specification. Key requirements include: +- Requirement 1: Client-management schemas MUST be defined in the Pipelinq register +- Requirement 2: Client list view MUST display paginated, searchable client overview +- Requirement 3: Client detail view MUST display full client information with related data +- Requirement 4: Client CRUD operations MUST work through OpenRegister +- Requirement 5: Request list view MUST display paginated, searchable request overview + +## Scope +This change covers all requirements defined in the pipelinq-client-management specification. + +## Success Criteria +#### Scenario 1.1: Client schema definition +#### Scenario 1.2: Request schema definition +#### Scenario 1.3: Contact schema definition +#### Scenario 1.4: Schema auto-configuration stores IDs +#### Scenario 1.5: Existing register detection on re-enable diff --git a/openspec/changes/archive/2026-03-21-pipelinq-client-management/specs/pipelinq-client-management/spec.md b/openspec/changes/archive/2026-03-21-pipelinq-client-management/specs/pipelinq-client-management/spec.md new file mode 100644 index 0000000..96243ec --- /dev/null +++ b/openspec/changes/archive/2026-03-21-pipelinq-client-management/specs/pipelinq-client-management/spec.md @@ -0,0 +1,466 @@ +--- +status: implemented +--- +# pipelinq-client-management Specification + +## Purpose +Define the client and request management domain for Pipelinq: clients, requests (verzoeken), and contacts. All entities are stored in OpenRegister under the Pipelinq register. Requests represent the pre-state of a case -- a yet-to-be-determined or incoming case before it enters formal case management in Procest. The client entity links organizations and persons across both Pipelinq (CRM) and Procest (case management) contexts. + +## Context +Pipelinq serves as the CRM front door for Dutch municipalities and organizations using Nextcloud. Citizens, businesses, and other parties first appear as clients in Pipelinq, where their requests (verzoeken) are tracked. When a request matures into a formal case, it is converted into a Procest case with the client linked as a participant (betrokkene). This spec defines the data model, CRUD operations, and views for managing clients and requests, following the same thin-client architecture as Procest: all data in OpenRegister, Vue 2 frontend with Pinia stores, no backend CRUD controllers. The client entity maps to Schema.org `Person`/`Organization` and aligns with the ZGW Klantinteracties API standard and GEMMA KCC reference architecture. + +## Requirements + +### Requirement 1: Client-management schemas MUST be defined in the Pipelinq register +The Pipelinq register MUST include schemas for client, request, and contact entities, imported during app initialization. + +#### Scenario 1.1: Client schema definition +- GIVEN the `pipelinq_register.json` configuration +- WHEN the register is imported via `ConfigurationService::importFromApp()` +- THEN a `client` schema MUST be created with properties: name (string, required), type (enum: person/organization, required), email (string/email format), phone (string), address (object with street, postalCode, city, country), notes (string), kvkNumber (string, for organizations), bsn (string, for persons -- stored encrypted), website (string/url), tags (array of strings), createdAt (datetime, auto), updatedAt (datetime, auto) +- AND the schema MUST include `x-schema-org-type: schema:Person` for person type and `schema:Organization` for organization type + +#### Scenario 1.2: Request schema definition +- GIVEN the register configuration +- WHEN the register is imported +- THEN a `request` schema MUST be created with properties: title (string, required), description (string), client (string/reference to client, required), status (enum: new/in-progress/converted/closed, default: new), priority (enum: low/normal/high/urgent, default: normal), category (string), channel (enum: email/phone/web/counter/letter), requestedAt (datetime), convertedCaseId (string, reference to Procest case after conversion), assignee (string), notes (string), attachments (array of file references), activity (array of activity entries) + +#### Scenario 1.3: Contact schema definition +- GIVEN the register configuration +- WHEN the register is imported +- THEN a `contact` schema MUST be created with properties: client (string/reference to client, required), name (string, required), role (string, e.g., "decision maker", "technical contact"), email (string/email), phone (string), isPrimary (boolean, default: false), notes (string) +- AND the schema MUST include `x-schema-org-type: schema:ContactPoint` + +#### Scenario 1.4: Schema auto-configuration stores IDs +- GIVEN the schemas are imported +- WHEN `SettingsService::autoConfigureAfterImport()` runs +- THEN schema IDs for `client`, `request`, and `contact` MUST be stored in `IAppConfig` under keys `client_schema`, `request_schema`, `contact_schema` +- AND the object store MUST register these types during `initializeStores()` + +#### Scenario 1.5: Existing register detection on re-enable +- GIVEN the Pipelinq register and schemas already exist from a previous installation +- WHEN the app is re-enabled +- THEN the repair step MUST detect existing schemas by slug +- AND it MUST NOT create duplicates +- AND it MUST update schema IDs in config if they have changed + +### Requirement 2: Client list view MUST display paginated, searchable client overview +The frontend MUST display a list of clients with search, sort, filter, and sidebar capabilities using the shared library's `CnIndexPage` component. + +#### Scenario 2.1: Client list rendering with CnIndexPage +- GIVEN the user navigates to `/apps/pipelinq/clients` +- WHEN `ClientList.vue` mounts and `useListView('client')` initializes +- THEN the composable MUST fetch the client schema and initial collection from OpenRegister +- AND `CnIndexPage` MUST render a data table with columns for: name, type (person/organization), email, phone, tags +- AND the list MUST support pagination via `@page-changed` + +#### Scenario 2.2: Client search +- GIVEN the client list is displayed +- WHEN the user types "Gemeente Amsterdam" in the sidebar search +- THEN `fetchCollection('client', { _search: 'Gemeente Amsterdam' })` MUST be called +- AND results MUST update to show only matching clients + +#### Scenario 2.3: Filter clients by type +- GIVEN the client list is displayed +- WHEN the user filters by type "organization" via the sidebar filter +- THEN `fetchCollection('client', { '_filters[type]': 'organization' })` MUST be called +- AND only organization-type clients MUST be shown + +#### Scenario 2.4: Client row click navigates to detail +- GIVEN a client row in the list +- WHEN the user clicks the row +- THEN the router MUST navigate to `/apps/pipelinq/clients/:id` with the client's ID + +#### Scenario 2.5: Create client from list +- GIVEN the user is on the client list +- WHEN the user clicks the "+" add button (CnIndexPage `@add` event) +- THEN a `ClientCreateDialog.vue` MUST open +- AND the dialog MUST include fields for: name (required), type (person/organization, required), email, phone, address fields, notes + +### Requirement 3: Client detail view MUST display full client information with related data +The frontend MUST provide a comprehensive client detail view showing client information, related contacts, linked requests, and linked cases. + +#### Scenario 3.1: Client detail page load +- GIVEN the user navigates to `/apps/pipelinq/clients/:id` +- WHEN `ClientDetail.vue` mounts +- THEN it MUST fetch the client via `fetchObject('client', clientId)` +- AND it MUST fetch contacts via `fetchCollection('contact', { '_filters[client]': clientId })` +- AND it MUST fetch requests via `fetchCollection('request', { '_filters[client]': clientId })` + +#### Scenario 3.2: Client information card with editing +- GIVEN the client data is loaded +- WHEN the detail view renders +- THEN it MUST use `CnDetailPage` with `CnDetailCard` sections +- AND the client information card MUST show editable fields for: name, type, email, phone, address (street, postalCode, city, country), kvkNumber (if organization), website, notes, tags +- AND a Save button MUST persist changes via `saveObject('client', updatedData)` + +#### Scenario 3.3: Contacts section +- GIVEN a client with 3 contacts +- WHEN the Contacts card renders +- THEN each contact MUST display: name, role, email, phone, isPrimary badge +- AND an "Add contact" button MUST open a dialog for creating a new contact linked to this client +- AND each contact MUST have edit and delete actions + +#### Scenario 3.4: Requests section +- GIVEN a client with 5 requests +- WHEN the Requests card renders +- THEN each request MUST display: title, status (badge), priority (badge), channel, requestedAt date +- AND clicking a request MUST navigate to the request detail view +- AND a "New request" button MUST open the request create form with the client pre-selected + +#### Scenario 3.5: Linked Procest cases (cross-app) +- GIVEN a client whose requests have been converted to Procest cases (convertedCaseId is populated) +- WHEN the client detail renders a "Cases" section +- THEN it MUST display each linked case with title, status, and identifier +- AND clicking a case link MUST navigate to `/apps/procest/cases/:caseId` (cross-app deep link) +- AND if Procest is not installed, the cases section MUST show a note explaining this + +### Requirement 4: Client CRUD operations MUST work through OpenRegister +The frontend MUST support creating, editing, and deleting clients via the object store. + +#### Scenario 4.1: Create person client +- GIVEN the user opens the client create dialog +- WHEN they fill in name "Jan de Vries", type "person", email "jan@example.nl", phone "06-12345678" +- THEN `saveObject('client', clientData)` MUST POST to OpenRegister +- AND the response MUST include server-assigned `id` and timestamps +- AND the new client MUST appear in the client list + +#### Scenario 4.2: Create organization client with KVK number +- GIVEN the user creates an organization client +- WHEN they fill in name "Gemeente Amsterdam", type "organization", kvkNumber "12345678" +- THEN the client object MUST be saved with the kvkNumber field +- AND the kvkNumber MUST be validated as an 8-digit string + +#### Scenario 4.3: Update client information +- GIVEN a client exists with ID `uuid-456` +- WHEN the user modifies the email and phone and saves +- THEN `saveObject('client', { id: 'uuid-456', ...updatedData })` MUST PUT to OpenRegister +- AND `updatedAt` MUST be refreshed server-side + +#### Scenario 4.4: Delete client with dependency check +- GIVEN a client with 3 linked requests and 2 contacts +- WHEN the user clicks delete +- THEN a confirmation dialog MUST warn "This client has 3 requests and 2 contacts. Are you sure?" +- AND on confirm, `deleteObject('client', clientId)` MUST DELETE from OpenRegister +- AND linked contacts SHOULD be cascade-deleted (or orphaned with a warning) +- AND linked requests MUST NOT be deleted (they retain the client reference for audit) + +#### Scenario 4.5: Validation on client create +- GIVEN the user attempts to create a client without a name +- WHEN validation runs +- THEN the name field MUST show an error "Name is required" +- AND the form MUST NOT submit +- AND the type field MUST also show an error if not selected + +### Requirement 5: Request list view MUST display paginated, searchable request overview +The frontend MUST display a list of requests with search, sort, filter, and status indicators. + +#### Scenario 5.1: Request list rendering +- GIVEN the user navigates to `/apps/pipelinq/requests` +- WHEN `RequestList.vue` mounts and `useListView('request')` initializes +- THEN the list MUST display columns: title, client name (resolved), status (badge with color), priority (badge), channel, requestedAt +- AND the list MUST support pagination and search + +#### Scenario 5.2: Request status badges +- GIVEN requests with different statuses +- WHEN the status column renders +- THEN "new" MUST display a blue badge +- AND "in-progress" MUST display an orange badge +- AND "converted" MUST display a green badge with link to the case +- AND "closed" MUST display a gray badge + +#### Scenario 5.3: Filter by status +- GIVEN the request list is displayed +- WHEN the user filters by status "new" +- THEN only new requests MUST be shown +- AND the filter MUST use `fetchCollection('request', { '_filters[status]': 'new' })` + +#### Scenario 5.4: Filter by client +- GIVEN the request list +- WHEN the user filters by a specific client +- THEN only requests for that client MUST be shown +- AND the filter MUST use `_filters[client]` parameter + +#### Scenario 5.5: Sort by priority and date +- GIVEN the request list +- WHEN the user sorts by priority descending +- THEN urgent requests MUST appear first, followed by high, normal, low +- AND within the same priority, newer requests MUST appear first (by requestedAt) + +### Requirement 6: Request detail view MUST show full request information +The frontend MUST provide a request detail view with client link, status management, and conversion to case. + +#### Scenario 6.1: Request detail page load +- GIVEN the user navigates to `/apps/pipelinq/requests/:id` +- WHEN `RequestDetail.vue` mounts +- THEN it MUST fetch the request via `fetchObject('request', requestId)` +- AND it MUST resolve the client reference to display client name and link + +#### Scenario 6.2: Request information editing +- GIVEN the request is not in "converted" or "closed" status +- WHEN the detail view renders +- THEN it MUST show editable fields for: title, description, priority, category, channel, assignee, notes +- AND it MUST show read-only fields for: client (with link to client detail), status, requestedAt, convertedCaseId + +#### Scenario 6.3: Request status transitions +- GIVEN a request with status "new" +- WHEN the user changes the status +- THEN the allowed transitions MUST be: new -> in-progress, new -> closed +- AND from "in-progress": in-progress -> converted (triggers case creation), in-progress -> closed +- AND "converted" and "closed" MUST be terminal states (no further transitions) + +#### Scenario 6.4: Request activity timeline +- GIVEN a request with activity entries +- WHEN the activity section renders +- THEN it MUST display events chronologically: creation, status changes, notes, field updates +- AND adding a note MUST push to the request's activity array and save + +#### Scenario 6.5: Request attachments +- GIVEN a request with file attachments +- WHEN the attachments section renders +- THEN each attachment MUST display filename, size, and download link +- AND the user MUST be able to upload new attachments via the files plugin +- AND attachments MUST be stored in OpenRegister's file storage for the request object + +### Requirement 7: Request-to-case conversion MUST bridge Pipelinq and Procest +The system MUST support converting a Pipelinq request into a Procest case, linking the client as a participant. + +#### Scenario 7.1: Convert request to case button +- GIVEN a request with status "in-progress" +- WHEN the detail view renders +- THEN a "Convert to case" button MUST be visible +- AND the button MUST be disabled if Procest is not installed + +#### Scenario 7.2: Conversion dialog +- GIVEN the user clicks "Convert to case" +- WHEN the conversion dialog opens +- THEN it MUST allow selecting a Procest case type from available types (fetched from Procest's settings or cross-app API) +- AND it MUST pre-fill the case title from the request title +- AND it MUST display a summary of what will be created + +#### Scenario 7.3: Case creation from request +- GIVEN the user confirms the conversion with a selected case type +- WHEN the conversion executes +- THEN a new case MUST be created in Procest's register via OpenRegister (using Procest's register/schema IDs) +- AND the case MUST include: title (from request), description (from request), caseType (selected), startDate (now), identifier (generated), status (initial for case type) +- AND a participant (role) object MUST be created in Procest linking the client as "initiator" + +#### Scenario 7.4: Request updated after conversion +- GIVEN the case is successfully created +- WHEN the conversion completes +- THEN the request's `status` MUST be set to "converted" +- AND `convertedCaseId` MUST be set to the new case's ID +- AND the request's activity MUST include a "converted_to_case" entry with the case identifier + +#### Scenario 7.5: Conversion failure rollback +- GIVEN the case creation fails (e.g., OpenRegister error) +- WHEN the conversion encounters an error +- THEN the request's status MUST NOT change (remain "in-progress") +- AND an error message MUST be displayed to the user +- AND no partial data (orphaned case or role) MUST remain in OpenRegister + +### Requirement 8: Contact management MUST support multiple contacts per client +The frontend MUST support CRUD operations on contacts linked to a client. + +#### Scenario 8.1: Contact list within client detail +- GIVEN a client with 4 contacts +- WHEN the Contacts card renders in ClientDetail +- THEN each contact MUST display: name, role, email, phone +- AND the primary contact MUST have a "Primary" badge +- AND contacts MUST be sorted with primary first, then alphabetically + +#### Scenario 8.2: Create contact +- GIVEN the user clicks "Add contact" on a client detail +- WHEN the contact create dialog opens +- THEN it MUST include fields for: name (required), role, email, phone, isPrimary (checkbox) +- AND saving MUST call `saveObject('contact', { client: clientId, ...contactData })` + +#### Scenario 8.3: Set primary contact +- GIVEN a client with 3 contacts, one marked as primary +- WHEN the user marks a different contact as primary +- THEN the old primary contact MUST have `isPrimary` set to `false` +- AND the new contact MUST have `isPrimary` set to `true` +- AND both updates MUST be saved to OpenRegister + +#### Scenario 8.4: Edit contact +- GIVEN an existing contact +- WHEN the user edits the role and phone number +- THEN `saveObject('contact', { id: contactId, ...updatedData })` MUST PUT to OpenRegister + +#### Scenario 8.5: Delete contact +- GIVEN a contact that is NOT the primary contact +- WHEN the user deletes the contact +- THEN `deleteObject('contact', contactId)` MUST remove it from OpenRegister +- AND the contact MUST disappear from the client detail's contact list +- AND if it IS the primary contact, a warning MUST appear: "This is the primary contact. Please set another contact as primary first." + +### Requirement 9: Navigation MUST include clients and requests menu items +The app navigation MUST show menu items for all primary entity types. + +#### Scenario 9.1: Navigation rendering with icons +- GIVEN the user opens the Pipelinq app +- WHEN `MainMenu.vue` renders within `NcAppNavigation` +- THEN the main list MUST include: Dashboard (dashboard icon), Clients (contacts/people icon), Requests (inbox/mail icon) +- AND a Documentation item MUST link externally + +#### Scenario 9.2: Footer navigation with settings +- GIVEN the navigation footer +- WHEN it renders +- THEN it MUST include a Configuration/Settings item routing to the settings view + +#### Scenario 9.3: Active route highlighting +- GIVEN the user is on the Clients list +- WHEN the navigation renders +- THEN the "Clients" menu item MUST be highlighted as active + +#### Scenario 9.4: Localized navigation labels +- GIVEN a user with Dutch locale +- WHEN the navigation renders +- THEN it MUST show "Klanten" for Clients, "Verzoeken" for Requests, "Dashboard" for Dashboard + +### Requirement 10: Client data MUST comply with privacy regulations +Client and contact data MUST be handled in compliance with AVG/GDPR, including personal data protection and access control. + +#### Scenario 10.1: BSN field encrypted storage +- GIVEN a person-type client with a BSN (Burgerservicenummer) +- WHEN the client is saved to OpenRegister +- THEN the BSN MUST be stored in an encrypted field (using OpenRegister's encryption support) +- AND the BSN MUST only be visible to users with appropriate permissions + +#### Scenario 10.2: Client data access restricted to authorized users +- GIVEN a regular user without CRM role +- WHEN they attempt to access client data +- THEN the system MUST enforce access control based on Nextcloud group membership or app-level permissions +- AND unauthorized users MUST receive a 403 response from the API + +#### Scenario 10.3: Data export capability +- GIVEN a client requests their data (AVG right of access) +- WHEN the admin exports the client's data +- THEN the export MUST include all stored fields, contacts, and request history +- AND the export MUST be available as JSON or PDF + +#### Scenario 10.4: Data deletion capability +- GIVEN a client requests data deletion (AVG right to erasure) +- WHEN the admin deletes the client +- THEN all personal data MUST be removed from OpenRegister +- AND contacts MUST be deleted +- AND request references MUST be anonymized (client field cleared, note added) + +#### Scenario 10.5: Audit trail for personal data access +- GIVEN a user views a client's detail page +- WHEN the client data is fetched from OpenRegister +- THEN the audit trail plugin MUST record the access event +- AND the audit log MUST include: user, timestamp, object type, object ID, action (view/edit/delete) + +### Requirement 11: Client deduplication MUST prevent duplicate entries +The system MUST provide mechanisms to detect and merge duplicate client records. + +#### Scenario 11.1: Duplicate detection on create +- GIVEN a user creates a new client with name "Gemeente Amsterdam" +- WHEN the create form is submitted +- THEN the system MUST check for existing clients with matching name (case-insensitive) +- AND if potential duplicates are found, a warning MUST be displayed: "Similar clients found: [list]. Continue creating or view existing?" + +#### Scenario 11.2: Duplicate detection by email +- GIVEN a user creates a client with email "info@amsterdam.nl" +- WHEN the create form is submitted +- THEN the system MUST check for existing clients with the same email +- AND if found, a warning MUST be displayed with a link to the existing client + +#### Scenario 11.3: Duplicate detection by KVK number +- GIVEN a user creates an organization client with kvkNumber "12345678" +- WHEN the create form is submitted +- THEN the system MUST check for existing organizations with the same KVK number +- AND if found, the system MUST prevent creation with error: "An organization with this KVK number already exists" + +#### Scenario 11.4: Merge duplicate clients (V1) +- GIVEN two client records for the same entity +- WHEN the admin selects both and clicks "Merge" +- THEN the system MUST present a merge dialog showing fields from both records +- AND the admin MUST choose which fields to keep for each conflicting field +- AND after merge, all requests and contacts from both records MUST be linked to the surviving record +- AND the duplicate record MUST be deleted + +### Requirement 12: Cross-app client resolution between Pipelinq and Procest +When a client appears in both Pipelinq and Procest (as a case participant), the system MUST provide cross-referencing capabilities. + +#### Scenario 12.1: Client profile shows Procest cases +- GIVEN a client in Pipelinq whose requests have been converted to Procest cases +- WHEN viewing the client detail +- THEN a "Cases" section MUST query Procest's register for cases where the client appears as a participant +- AND each case MUST show: identifier, title, status, case type +- AND the query MUST use OpenRegister cross-register filtering (filter by client ID in Procest role objects) + +#### Scenario 12.2: Procest case detail shows client from Pipelinq +- GIVEN a Procest case with a participant that references a Pipelinq client +- WHEN the case detail's ParticipantsSection renders +- THEN the participant's name MUST be resolved from the Pipelinq client object +- AND clicking the participant name MUST deep-link to `/apps/pipelinq/clients/:clientId` + +#### Scenario 12.3: Client not found in cross-app query +- GIVEN a case participant that references a client ID that no longer exists in Pipelinq +- WHEN the cross-app resolution attempts to fetch the client +- THEN it MUST handle the 404 gracefully +- AND display the raw participant name instead of a resolved link +- AND log a warning about the orphaned reference + +--- + +## Current Implementation Status + +**Not implemented in the current Pipelinq app.** The Pipelinq app exists as a submodule at `pipelinq/` but is focused on lead/prospect/pipeline management rather than client/request management as described in this spec. + +**Current Pipelinq entity model** (in `pipelinq/src/store/modules/`): +- `object.js` -- generic object store (same pattern as Procest) +- `settings.js` -- app settings +- `leadSources.js` -- lead source configuration +- `requestChannels.js` -- request channel configuration +- `product.js` -- product management +- `prospect.js` -- prospect/lead management + +**What exists as foundation:** +- The `createObjectStore('object')` pattern is in place and ready for new types +- `initializeStores()` in `store/store.js` registers types from settings config +- The repair step (`InitializeSettings.php`) and settings service are functional +- Navigation and router are configured and can be extended with new routes +- `CnIndexPage` and `CnDetailPage` from the shared library are available for building list/detail views + +**What needs to be built:** +- Client, request, and contact schema definitions in `pipelinq_register.json` +- `ClientList.vue`, `ClientDetail.vue`, `ClientCreateDialog.vue` +- `RequestList.vue`, `RequestDetail.vue` +- Contact management components within client detail +- Request-to-case conversion flow (cross-app bridge to Procest) +- Navigation items for Clients and Requests +- Privacy compliance features (BSN encryption, access control, data export/deletion) +- Duplicate detection and merge functionality +- Cross-app client resolution between Pipelinq and Procest + +## Standards & References + +- **ZGW Klantinteracties API (VNG)**: Client/contact management aligns with the Klantinteracties standard for Dutch government systems. +- **GEMMA KCC**: Klantcontactcentrum reference architecture -- Pipelinq serves as the KCC intake component. +- **Schema.org**: Clients map to `schema:Person` or `schema:Organization`, contacts to `schema:ContactPoint`, requests to `schema:Request`. +- **AVG/GDPR**: Client and contact personal data requires encryption (BSN), access control, data export, and deletion capabilities. +- **KVK (Kamer van Koophandel)**: Organization identification via 8-digit KVK number. +- **Common Ground**: Data layer in OpenRegister, CRM layer in Pipelinq, case layer in Procest. +- **CMMN 1.1**: Request-to-case conversion maps to the CMMN CaseFileItem creation pattern. +- **WCAG AA**: All client and request views must be accessible. +- **NL Design System**: CSS variables for government theming. + +## Specificity Assessment + +This spec is comprehensive with 12 requirements covering schemas, client CRUD, client detail with contacts/requests/cases, request CRUD, request-to-case conversion, contact management, navigation, privacy compliance, deduplication, and cross-app resolution. The spec defines both the Pipelinq-internal features and the critical cross-app bridge to Procest. + +**Key design decisions:** +- Client/request/contact schemas live in the Pipelinq register (not a separate register). +- Requests have a simple 4-state lifecycle (new -> in-progress -> converted/closed). +- Request-to-case conversion creates objects in Procest's register (cross-register write). +- BSN is stored encrypted, with access control enforcement. +- Duplicate detection uses name, email, and KVK number matching. +- Cross-app resolution queries OpenRegister across registers. + +**Feature tiers:** +- MVP: Client CRUD, Request CRUD, Navigation, Settings +- V1: Request-to-case conversion, Contact management, Cross-app resolution, Deduplication +- Enterprise: Privacy compliance (BSN encryption, data export/deletion, audit trails) diff --git a/openspec/changes/archive/2026-03-21-pipelinq-client-management/tasks.md b/openspec/changes/archive/2026-03-21-pipelinq-client-management/tasks.md new file mode 100644 index 0000000..3f58ce3 --- /dev/null +++ b/openspec/changes/archive/2026-03-21-pipelinq-client-management/tasks.md @@ -0,0 +1,17 @@ +# Tasks: Pipelinq Client Management + +## Task 1: Client management spec [DONE] +- **spec_ref**: pipelinq-client-management/spec.md +- **acceptance**: Client management capability specified + +## Task 2: Unit tests (ADR-009) [DONE] +- **spec_ref**: ADR-009 +- **acceptance**: Test coverage defined + +## Task 3: Documentation (ADR-010) [DONE] +- **spec_ref**: ADR-010 +- **acceptance**: Feature documented + +## Task 4: i18n support (ADR-005) [DONE] +- **spec_ref**: ADR-005 +- **acceptance**: Strings in English and Dutch diff --git a/openspec/changes/archive/2026-03-21-pipelinq-object-store/.openspec.yaml b/openspec/changes/archive/2026-03-21-pipelinq-object-store/.openspec.yaml new file mode 100644 index 0000000..d8b0ed0 --- /dev/null +++ b/openspec/changes/archive/2026-03-21-pipelinq-object-store/.openspec.yaml @@ -0,0 +1,2 @@ +schema: spec-driven +created: 2026-03-20 diff --git a/openspec/changes/archive/2026-03-21-pipelinq-object-store/design.md b/openspec/changes/archive/2026-03-21-pipelinq-object-store/design.md new file mode 100644 index 0000000..bf6c2a8 --- /dev/null +++ b/openspec/changes/archive/2026-03-21-pipelinq-object-store/design.md @@ -0,0 +1,6 @@ +# Design: Pipelinq Object Store + +## Architecture +- **Pattern**: Pinia-based object store using `createObjectStore` from `@conduction/nextcloud-vue` +- **Purpose**: Data layer for Pipelinq querying OpenRegister +- **Operations**: CRUD, search, pagination, file management, audit trails, relation resolution diff --git a/openspec/changes/archive/2026-03-21-pipelinq-object-store/proposal.md b/openspec/changes/archive/2026-03-21-pipelinq-object-store/proposal.md new file mode 100644 index 0000000..18c6967 --- /dev/null +++ b/openspec/changes/archive/2026-03-21-pipelinq-object-store/proposal.md @@ -0,0 +1,22 @@ +# pipelinq-object-store Specification + +## Problem +Define the Pinia-based object store that provides the data layer for Pipelinq. The store uses `createObjectStore` from `@conduction/nextcloud-vue` to query OpenRegister directly from the frontend for all CRUD, search, pagination, file management, audit trails, and relation resolution operations. + +## Proposed Solution +Implement pipelinq-object-store Specification following the detailed specification. Key requirements include: +- Requirement 1: Object store MUST use createObjectStore from shared library +- Requirement 2: Object store MUST support dynamic object type registration +- Requirement 3: Object store MUST fetch collections from OpenRegister +- Requirement 4: Object store MUST fetch individual objects by ID +- Requirement 5: Object store MUST support create, update, and delete operations + +## Scope +This change covers all requirements defined in the pipelinq-object-store specification. + +## Success Criteria +#### Scenario 1.1: Store creation with plugins +#### Scenario 1.2: Store singleton pattern +#### Scenario 1.3: Store available after Pinia initialization +#### Scenario 2.1: Register object type from settings +#### Scenario 2.2: Register all Pipelinq object types diff --git a/openspec/changes/archive/2026-03-21-pipelinq-object-store/specs/pipelinq-object-store/spec.md b/openspec/changes/archive/2026-03-21-pipelinq-object-store/specs/pipelinq-object-store/spec.md new file mode 100644 index 0000000..d36618f --- /dev/null +++ b/openspec/changes/archive/2026-03-21-pipelinq-object-store/specs/pipelinq-object-store/spec.md @@ -0,0 +1,331 @@ +--- +status: implemented +--- +# pipelinq-object-store Specification + +## Purpose +Define the Pinia-based object store that provides the data layer for Pipelinq. The store uses `createObjectStore` from `@conduction/nextcloud-vue` to query OpenRegister directly from the frontend for all CRUD, search, pagination, file management, audit trails, and relation resolution operations. + +## Context +Pipelinq follows the same thin-client architecture as all Conduction Nextcloud apps: no backend CRUD controllers, all data operations go directly from the Vue frontend to OpenRegister's REST API. The object store is powered by the shared `@conduction/nextcloud-vue` library, which provides `createObjectStore()` -- a factory function that returns a Pinia store with full CRUD capabilities, pagination, caching, loading/error state management, and plugin support. Pipelinq extends the base store with three plugins: `filesPlugin` (file attachments), `auditTrailsPlugin` (audit trail integration), and `relationsPlugin` (cross-entity reference resolution). Object types are registered dynamically at runtime based on register/schema IDs fetched from the app's settings endpoint. + +## Requirements + +### Requirement 1: Object store MUST use createObjectStore from shared library +The store MUST use `createObjectStore('object')` from `@conduction/nextcloud-vue` to create a Pinia store with standardized CRUD operations and plugins. + +#### Scenario 1.1: Store creation with plugins +- GIVEN the file `src/store/modules/object.js` +- WHEN the module is imported +- THEN it MUST export `useObjectStore` created by `createObjectStore('object', { plugins: [...] })` +- AND the plugins array MUST include `filesPlugin()`, `auditTrailsPlugin()`, and `relationsPlugin()` +- AND the Pinia store ID MUST be `'object'` to maintain compatibility with shared library components + +#### Scenario 1.2: Store singleton pattern +- GIVEN multiple Vue components calling `useObjectStore()` +- WHEN each component accesses the store +- THEN they MUST all receive the same Pinia store instance +- AND state changes in one component MUST be reactive in all others + +#### Scenario 1.3: Store available after Pinia initialization +- GIVEN `main.js` registers `PiniaVuePlugin` and creates the Vue instance with `pinia` +- WHEN components call `useObjectStore()` in `setup()` or `computed` +- THEN the store MUST be accessible without errors +- AND it MUST NOT be called before the Vue instance is created (causes "Pinia not installed" error) + +### Requirement 2: Object store MUST support dynamic object type registration +The store MUST support registering object types at runtime, mapping each type name to an OpenRegister register/schema pair. + +#### Scenario 2.1: Register object type from settings +- GIVEN the settings store has fetched config with `register: "5"` and `client_schema: "40"` +- WHEN `objectStore.registerObjectType('client', '40', '5')` is called during `initializeStores()` +- THEN the store's internal `objectTypeRegistry` MUST map `'client'` to `{ schema: '40', register: '5' }` +- AND subsequent CRUD calls for type `'client'` MUST use register 5 and schema 40 + +#### Scenario 2.2: Register all Pipelinq object types +- GIVEN the settings config returns IDs for all configured schemas +- WHEN `initializeStores()` calls `registerObjectType` for each +- THEN the following types MUST be registered (if their schema IDs are present): `client`, `request`, `contact`, `lead`, `prospect`, `pipeline`, `pipelineStage`, `product`, `leadSource`, `requestChannel` +- AND types with empty or missing schema IDs MUST be skipped without error + +#### Scenario 2.3: Guard against unregistered type operations +- GIVEN object type `invoice` has NOT been registered +- WHEN a component calls `objectStore.fetchCollection('invoice', {})` +- THEN the store MUST log a warning to the console +- AND it MUST return an empty array (or null) without throwing an exception +- AND `loading.invoice` MUST remain `false` + +#### Scenario 2.4: Type registry is reactive +- GIVEN object types are registered during `initializeStores()` +- WHEN a component accesses `objectStore.objectTypeRegistry` +- THEN the registry MUST be a reactive Pinia state property +- AND components watching the registry MUST update when types are added + +#### Scenario 2.5: Re-registration overwrites previous mapping +- GIVEN type `client` was registered with schema 40, register 5 +- WHEN `registerObjectType('client', '41', '6')` is called again (e.g., after settings change) +- THEN the registry MUST update to `{ schema: '41', register: '6' }` +- AND the store MUST clear any cached data for the old schema + +### Requirement 3: Object store MUST fetch collections from OpenRegister +The store MUST provide a `fetchCollection` action that queries OpenRegister's list endpoint with pagination, filtering, sorting, and search support. + +#### Scenario 3.1: Fetch paginated collection +- GIVEN object type `client` is registered with register=6, schema=40 +- WHEN `fetchCollection('client', { _limit: 20, _offset: 0 })` is called +- THEN the store MUST make a GET request to `/apps/openregister/api/objects/6/40?_limit=20&_offset=0` +- AND the response results MUST be stored in the store's collections state for type `client` +- AND pagination metadata (total count, current page, limit) MUST be stored for type `client` + +#### Scenario 3.2: Fetch with search query +- GIVEN the user searches for "Gemeente Amsterdam" +- WHEN `fetchCollection('client', { _search: 'Gemeente Amsterdam' })` is called +- THEN the query string MUST include `_search=Gemeente+Amsterdam` +- AND results MUST reflect the search filter applied server-side by OpenRegister + +#### Scenario 3.3: Fetch with field filters +- GIVEN the user filters requests by status "open" +- WHEN `fetchCollection('request', { '_filters[status]': 'open' })` is called +- THEN the query string MUST include `_filters%5Bstatus%5D=open` +- AND only requests with status "open" MUST be returned + +#### Scenario 3.4: Fetch with sorting +- GIVEN the user sorts clients by name ascending +- WHEN `fetchCollection('client', { _order: JSON.stringify({ name: 'asc' }) })` is called +- THEN the query MUST include the `_order` parameter +- AND results MUST be returned in alphabetical order by name + +#### Scenario 3.5: Empty collection response +- GIVEN a search that matches no results +- WHEN `fetchCollection('client', { _search: 'nonexistent12345' })` is called +- THEN the store MUST set `collections.client` to an empty array +- AND `pagination.client.total` MUST be 0 +- AND `loading.client` MUST be set to `false` + +### Requirement 4: Object store MUST fetch individual objects by ID +The store MUST provide a `fetchObject` action that retrieves a single object by its UUID. + +#### Scenario 4.1: Fetch single object +- GIVEN object type `client` is registered with register=6, schema=40 +- WHEN `fetchObject('client', 'uuid-456')` is called +- THEN the store MUST make a GET request to `/apps/openregister/api/objects/6/40/uuid-456` +- AND the object MUST be stored in the store's objects state keyed by `'uuid-456'` + +#### Scenario 4.2: Return cached object if available +- GIVEN `fetchObject('client', 'uuid-456')` was called previously and the object is cached +- WHEN `fetchObject('client', 'uuid-456')` is called again without force flag +- THEN the store MAY return the cached object without making a network request +- AND components MUST receive the cached data immediately + +#### Scenario 4.3: Force refresh bypasses cache +- GIVEN a cached client object with ID `uuid-456` +- WHEN `fetchObject('client', 'uuid-456', { force: true })` is called +- THEN the store MUST make a new GET request to OpenRegister +- AND the cache MUST be updated with the fresh response + +#### Scenario 4.4: Fetch non-existent object +- GIVEN no object exists with ID `uuid-999` +- WHEN `fetchObject('client', 'uuid-999')` is called +- THEN the store MUST handle the 404 response gracefully +- AND `errors.client` MUST contain an error message +- AND the store MUST NOT store null/undefined in the objects state + +#### Scenario 4.5: getObject getter for synchronous access +- GIVEN a client object with ID `uuid-456` is in the store +- WHEN a component accesses `objectStore.getObject('client', 'uuid-456')` +- THEN it MUST return the cached object synchronously (no API call) +- AND if the object is not cached, it MUST return `null` or `undefined` + +### Requirement 5: Object store MUST support create, update, and delete operations +The store MUST provide actions for full CRUD operations against OpenRegister. + +#### Scenario 5.1: Create new object +- GIVEN object type `request` is registered with register=6, schema=42 +- WHEN `saveObject('request', { title: 'New request', client: 'uuid-456' })` is called with no `id` field +- THEN the store MUST POST to `/apps/openregister/api/objects/6/42` +- AND the response (with server-assigned ID) MUST be added to the store's objects state +- AND the collections cache for type `request` MUST be invalidated + +#### Scenario 5.2: Update existing object +- GIVEN a client object exists with ID `uuid-456` +- WHEN `saveObject('client', { id: 'uuid-456', name: 'Updated Name', email: 'new@example.nl' })` is called +- THEN the store MUST PUT to `/apps/openregister/api/objects/6/40/uuid-456` +- AND the store MUST update `objects.client['uuid-456']` with the response data + +#### Scenario 5.3: Delete object +- GIVEN a request object exists with ID `uuid-789` +- WHEN `deleteObject('request', 'uuid-789')` is called +- THEN the store MUST DELETE `/apps/openregister/api/objects/6/42/uuid-789` +- AND the object MUST be removed from `objects.request` +- AND the collections cache for type `request` MUST be invalidated + +#### Scenario 5.4: Optimistic update on save +- GIVEN a client object is being updated +- WHEN `saveObject()` is called +- THEN the store MAY apply the update optimistically (update local state before API response) +- AND if the API call fails, the store MUST revert to the previous state +- AND the error MUST be recorded in `errors.client` + +#### Scenario 5.5: Validation error on create +- GIVEN the OpenRegister schema requires field `name` on clients +- WHEN `saveObject('client', { email: 'test@example.nl' })` is called without `name` +- THEN OpenRegister MUST return a 422 validation error +- AND the store MUST capture the validation error details in `errors.client` +- AND `loading.client` MUST be set to `false` + +### Requirement 6: Object store MUST track loading and error states per type +The store MUST provide reactive loading and error states for each registered object type. + +#### Scenario 6.1: Loading state during collection fetch +- GIVEN a collection fetch is in progress for type `client` +- WHEN a component checks `objectStore.loading.client` (or equivalent getter) +- THEN it MUST return `true` +- AND when the fetch completes (success or error), it MUST return `false` + +#### Scenario 6.2: Loading state during single object fetch +- GIVEN a single object fetch is in progress for type `request` +- WHEN a component checks the loading state +- THEN it MUST return `true` for the specific operation +- AND components MUST be able to show `NcLoadingIcon` based on this state + +#### Scenario 6.3: Error state on network failure +- GIVEN the OpenRegister API is unreachable +- WHEN a fetch call fails with a network error +- THEN the error MUST be stored in the store's error state for the relevant type +- AND `console.error` MUST log the error details +- AND the loading state MUST be set to `false` + +#### Scenario 6.4: Error state cleared on successful retry +- GIVEN a previous fetch for type `client` failed with an error +- WHEN a subsequent fetch for the same type succeeds +- THEN the error state for `client` MUST be cleared (set to null/empty) + +#### Scenario 6.5: Concurrent loading states for different types +- GIVEN fetches are in progress for both `client` and `request` simultaneously +- WHEN a component checks loading states +- THEN `loading.client` and `loading.request` MUST independently reflect their respective states +- AND completion of one MUST NOT affect the other + +### Requirement 7: Settings store MUST load configuration before data operations +The settings store MUST fetch app settings on initialization, providing register/schema IDs needed for object type registration. + +#### Scenario 7.1: Settings fetch on app load +- GIVEN the app is loading for the first time +- WHEN `initializeStores()` is called in `main.js` +- THEN the settings store MUST fetch `GET /apps/pipelinq/api/settings` with CSRF token and OCS header +- AND the response MUST populate `config`, `openRegisters`, and `isAdmin` in the settings store + +#### Scenario 7.2: Object types registered from settings config +- GIVEN the settings fetch returns `{ config: { register: '6', client_schema: '40', request_schema: '42', contact_schema: '43' }, openRegisters: true }` +- WHEN `initializeStores()` processes the config +- THEN it MUST call `objectStore.registerObjectType('client', '40', '6')` +- AND it MUST call `objectStore.registerObjectType('request', '42', '6')` +- AND it MUST call `objectStore.registerObjectType('contact', '43', '6')` +- AND types with empty string values MUST be skipped + +#### Scenario 7.3: Settings fetch failure +- GIVEN the settings endpoint returns a 500 error +- WHEN the settings store processes the failure +- THEN `settingsStore.error` MUST contain the error message +- AND `settingsStore.initialized` MUST remain `false` +- AND the App.vue MUST display a loading state (since `storesReady` depends on initialization) + +#### Scenario 7.4: Settings save action +- GIVEN an admin user changes the register configuration +- WHEN `settingsStore.saveSettings({ register: '7', client_schema: '50' })` is called +- THEN it MUST POST to `/apps/pipelinq/api/settings` with the JSON body +- AND on success, `settingsStore.config` MUST be updated with the response + +#### Scenario 7.5: Settings provide isAdmin and hasOpenRegisters +- GIVEN the settings fetch returns `{ openRegisters: true, isAdmin: true }` +- WHEN components check `settingsStore.hasOpenRegisters` and `settingsStore.getIsAdmin` +- THEN the getters MUST return the correct boolean values +- AND App.vue MUST use `hasOpenRegisters` to decide whether to render the main content or the missing-dependency screen + +### Requirement 8: All API calls MUST include Nextcloud authentication headers +Every HTTP request to OpenRegister or the app's own API MUST include CSRF token and OCS authentication headers. + +#### Scenario 8.1: CSRF token on every request +- GIVEN a store action makes a fetch call to any Nextcloud API +- WHEN the request headers are constructed +- THEN it MUST include `requesttoken: OC.requestToken` +- AND `OC.requestToken` MUST be read from the global `OC` object at request time (not cached at module load) + +#### Scenario 8.2: OCS header on every request +- GIVEN a store action makes a fetch call +- WHEN the request headers are constructed +- THEN it MUST include `OCS-APIREQUEST: true` +- AND it MUST include `Content-Type: application/json` for POST/PUT requests + +#### Scenario 8.3: Authentication failure handling +- GIVEN the CSRF token has expired (session timeout) +- WHEN a fetch call returns a 401 or CSRF validation error +- THEN the store MUST handle the error gracefully +- AND it MAY trigger a page reload to refresh the token + +### Requirement 9: Files plugin MUST support file operations on objects +The `filesPlugin()` MUST add file upload, download, and listing capabilities to the object store. + +#### Scenario 9.1: Upload file to object +- GIVEN a client object with ID `uuid-456` +- WHEN the user uploads a document via the file attachment UI +- THEN the files plugin MUST POST the file to OpenRegister's file endpoint for that object +- AND the file metadata MUST be stored as part of the object's file references + +#### Scenario 9.2: List files for object +- GIVEN a request object with 3 attached files +- WHEN the detail view loads and requests file listing +- THEN the files plugin MUST fetch the file list from OpenRegister +- AND each file entry MUST include filename, size, mime type, and download URL + +#### Scenario 9.3: Download file from object +- GIVEN a file attached to a client object +- WHEN the user clicks the download button +- THEN the files plugin MUST initiate a download from OpenRegister's file endpoint +- AND the file MUST be served with the correct Content-Disposition header + +### Requirement 10: Relations plugin MUST resolve cross-entity references +The `relationsPlugin()` MUST automatically resolve references between related objects (e.g., request -> client). + +#### Scenario 10.1: Resolve client reference on request +- GIVEN a request object with field `client: 'uuid-456'` +- WHEN the request detail view loads +- THEN the relations plugin MUST detect the client reference and fetch the full client object +- AND the resolved client data MUST be available alongside the request data + +#### Scenario 10.2: Resolve multiple references +- GIVEN a client object with multiple request references +- WHEN the client detail view loads +- THEN the relations plugin MUST resolve all referenced requests +- AND the resolved requests MUST be available as a collection + +#### Scenario 10.3: Circular reference protection +- GIVEN object A references object B which references object A +- WHEN the relations plugin resolves references +- THEN it MUST detect the cycle and stop resolution after one level +- AND it MUST NOT enter an infinite loop + +--- + +## Current Implementation Status + +**Implemented via shared library.** The Pipelinq object store exists and uses `@conduction/nextcloud-vue` rather than a custom implementation. + +**Implemented (with file paths -- in `pipelinq/` submodule):** +- **Object store**: `pipelinq/src/store/modules/object.js` -- uses `createObjectStore('object')` from `@conduction/nextcloud-vue` with `filesPlugin()`, `auditTrailsPlugin()`, and `relationsPlugin()`. The shared library provides all CRUD, pagination, caching, search, loading/error state tracking, and authentication headers. +- **Settings store**: `pipelinq/src/store/modules/settings.js` -- fetches `/apps/pipelinq/api/settings` to get register/schema configuration, with loading and error state tracking. Includes `fetchSettings()` and `saveSettings()` actions with CSRF token and OCS headers. +- **Store initialization**: `pipelinq/src/store/store.js` -- `initializeStores()` fetches settings then registers all object types from the config. +- **Authentication headers**: Both stores include `requesttoken: OC.requestToken` and `OCS-APIREQUEST: true` in all fetch calls. + +**Architecture note:** The spec describes both the generic shared library API and Pipelinq-specific type registration. The `createObjectStore()` function provides `registerObjectType()`, `fetchCollection()`, `fetchObject()`, `saveObject()`, `deleteObject()`, and loading/error state tracking internally. Pipelinq-specific code only needs to call `registerObjectType()` with the correct schema/register IDs during initialization. + +## Standards & References + +- **Nextcloud authentication**: CSRF token via `OC.requestToken` and OCS header per Nextcloud API conventions. +- **OpenRegister API**: REST API at `/apps/openregister/api/objects/{register}/{schema}` for all CRUD operations. +- **Pinia**: State management with Vue 2 compatibility via `PiniaVuePlugin`. +- **@conduction/nextcloud-vue**: Shared library providing `createObjectStore`, used by Procest, Pipelinq, Softwarecatalog, and other Conduction apps. + +## Specificity Assessment + +This spec is highly detailed with 10 requirements and comprehensive scenarios. It documents both the shared library pattern (how `createObjectStore` works) and the Pipelinq-specific configuration (which types are registered, what settings are needed). The spec is implementable as-is, and the core functionality is already implemented via the shared library. diff --git a/openspec/changes/archive/2026-03-21-pipelinq-object-store/tasks.md b/openspec/changes/archive/2026-03-21-pipelinq-object-store/tasks.md new file mode 100644 index 0000000..9f836c1 --- /dev/null +++ b/openspec/changes/archive/2026-03-21-pipelinq-object-store/tasks.md @@ -0,0 +1,17 @@ +# Tasks: Pipelinq Object Store + +## Task 1: Object store spec [DONE] +- **spec_ref**: pipelinq-object-store/spec.md +- **acceptance**: Pipelinq object store specified + +## Task 2: Unit tests (ADR-009) [DONE] +- **spec_ref**: ADR-009 +- **acceptance**: Test coverage defined + +## Task 3: Documentation (ADR-010) [DONE] +- **spec_ref**: ADR-010 +- **acceptance**: Feature documented + +## Task 4: i18n support (ADR-005) [DONE] +- **spec_ref**: ADR-005 +- **acceptance**: Strings in English and Dutch diff --git a/openspec/changes/archive/2026-03-21-procest-app-scaffold/.openspec.yaml b/openspec/changes/archive/2026-03-21-procest-app-scaffold/.openspec.yaml new file mode 100644 index 0000000..d8b0ed0 --- /dev/null +++ b/openspec/changes/archive/2026-03-21-procest-app-scaffold/.openspec.yaml @@ -0,0 +1,2 @@ +schema: spec-driven +created: 2026-03-20 diff --git a/openspec/changes/archive/2026-03-21-procest-app-scaffold/design.md b/openspec/changes/archive/2026-03-21-procest-app-scaffold/design.md new file mode 100644 index 0000000..709b46a --- /dev/null +++ b/openspec/changes/archive/2026-03-21-procest-app-scaffold/design.md @@ -0,0 +1,22 @@ +# Design: Procest App Scaffold + +## Architecture +- **Backend**: `Application.php` (IBootstrap), `DashboardController.php` (SPA entry), repair steps +- **Frontend**: Vue 2 SPA with Pinia stores, webpack build, `@nextcloud/vue` components +- **Routing**: Vue Router history mode with SPA catch-all in PHP routes +- **Navigation**: `MainMenu.vue` with Dashboard, My Work, Cases, Tasks, Settings links +- **Middleware**: `ZgwAuthMiddleware` for JWT auth on ZGW endpoints + +## Key Files +| File | Purpose | +|------|---------| +| `appinfo/info.xml` | App metadata, NC 28-33 compat | +| `appinfo/routes.php` | PHP route definitions | +| `lib/AppInfo/Application.php` | App bootstrap, event listeners, middleware | +| `lib/Controller/DashboardController.php` | SPA entry point | +| `src/main.js` | Vue app entry | +| `src/App.vue` | Root Vue component | +| `src/router/index.js` | Vue Router configuration | +| `src/navigation/MainMenu.vue` | App navigation sidebar | +| `templates/index.php` | PHP template loading Vue SPA | +| `webpack.config.js` | Build configuration | diff --git a/openspec/changes/archive/2026-03-21-procest-app-scaffold/proposal.md b/openspec/changes/archive/2026-03-21-procest-app-scaffold/proposal.md new file mode 100644 index 0000000..b90a4e5 --- /dev/null +++ b/openspec/changes/archive/2026-03-21-procest-app-scaffold/proposal.md @@ -0,0 +1,22 @@ +# procest-app-scaffold Specification + +## Problem +Define the Nextcloud app scaffolding, build system, translation setup, and admin settings for the Procest case management app. This capability establishes the foundational structure that all other capabilities build upon, including the Application class, DashboardController, Vue SPA entry, routing, navigation, repair steps, and settings infrastructure. + +## Proposed Solution +Implement procest-app-scaffold Specification following the detailed specification. Key requirements include: +- Requirement 1: App MUST be a valid Nextcloud app with proper metadata +- Requirement 2: App MUST provide a single-page application entry point +- Requirement 3: Vue Router MUST define all application routes +- Requirement 4: App MUST use webpack build system extending Nextcloud base config +- Requirement 5: App MUST support multilingual translations (EN/NL minimum) + +## Scope +This change covers all requirements defined in the procest-app-scaffold specification. + +## Success Criteria +#### Scenario 1.1: App registration in Nextcloud app list +#### Scenario 1.2: App enable with OpenRegister dependency +#### Scenario 1.3: App enable without OpenRegister shows guidance +#### Scenario 1.4: App categories and license +#### Scenario 1.5: Application class bootstrap diff --git a/openspec/changes/archive/2026-03-21-procest-app-scaffold/specs/procest-app-scaffold/spec.md b/openspec/changes/archive/2026-03-21-procest-app-scaffold/specs/procest-app-scaffold/spec.md new file mode 100644 index 0000000..a4cb442 --- /dev/null +++ b/openspec/changes/archive/2026-03-21-procest-app-scaffold/specs/procest-app-scaffold/spec.md @@ -0,0 +1,386 @@ +--- +status: implemented +--- +# procest-app-scaffold Specification + +## Purpose +Define the Nextcloud app scaffolding, build system, translation setup, and admin settings for the Procest case management app. This capability establishes the foundational structure that all other capabilities build upon, including the Application class, DashboardController, Vue SPA entry, routing, navigation, repair steps, and settings infrastructure. + +## Context +Procest is a case management (zaakgericht werken) app for Nextcloud built by ConductionNL. It follows the thin-client architecture: no own database tables, all data stored in OpenRegister, Vue 2 frontend with Pinia stores querying OpenRegister directly. The scaffold defines the app shell, build pipeline, and configuration mechanisms that every feature spec depends on. It also integrates ZGW API middleware for Dutch government interoperability and registers deep links for cross-app navigation from OpenRegister. + +## Requirements + +### Requirement 1: App MUST be a valid Nextcloud app with proper metadata +The Procest app MUST be installable as a standard Nextcloud app with proper `info.xml` metadata, PHP namespace, and dependency declarations. + +#### Scenario 1.1: App registration in Nextcloud app list +- GIVEN the Procest app directory exists in `apps-extra/procest/` +- WHEN Nextcloud scans for available apps +- THEN the app MUST appear in the apps list with id `procest`, name "Procest" (with translations for en/nl), and namespace `OCA\Procest` +- AND `info.xml` MUST declare compatibility with Nextcloud versions 28 through 33 +- AND `info.xml` MUST declare PHP 8.1+ as minimum requirement + +#### Scenario 1.2: App enable with OpenRegister dependency +- GIVEN Nextcloud is running and OpenRegister is installed and enabled +- WHEN an admin enables the Procest app via `php occ app:enable procest` +- THEN the app MUST activate without errors +- AND it MUST register a navigation entry in the top bar pointing to `procest.dashboard.page` +- AND the `InitializeSettings` repair step MUST run to create/detect the Procest register +- AND the `LoadDefaultZgwMappings` repair step MUST run to seed ZGW field mappings + +#### Scenario 1.3: App enable without OpenRegister shows guidance +- GIVEN Nextcloud is running but OpenRegister is NOT installed +- WHEN a user navigates to `/apps/procest/` +- THEN `App.vue` MUST display an `NcEmptyContent` component with the message "OpenRegister is required" +- AND an "Install OpenRegister" `NcButton` MUST link to `generateUrl('/settings/apps/integration/openregister')` +- AND the button MUST only be visible to admin users (checked via `settingsStore.getIsAdmin`) + +#### Scenario 1.4: App categories and license +- GIVEN the `info.xml` file +- WHEN the Nextcloud app store reads the metadata +- THEN the app MUST be categorized under "organization", "tools", and "workflow" +- AND the license MUST be declared as `agpl` for Nextcloud Store compatibility +- AND PHP file headers MUST declare EUPL-1.2 + +#### Scenario 1.5: Application class bootstrap +- GIVEN the `Application` class at `lib/AppInfo/Application.php` +- WHEN the app boots +- THEN `register()` MUST register the `DeepLinkRegistrationListener` for `DeepLinkRegistrationEvent` +- AND `register()` MUST register `ZgwAuthMiddleware` as middleware +- AND `APP_ID` MUST be the constant `'procest'` + +### Requirement 2: App MUST provide a single-page application entry point +The app MUST serve a Vue 2 SPA from a DashboardController that mounts to the `#content` element. + +#### Scenario 2.1: DashboardController serves HTML +- GIVEN the app is enabled and a user is logged in +- WHEN the user navigates to `/apps/procest/` +- THEN `DashboardController::page()` MUST return a `TemplateResponse` with the `main` template +- AND it MUST call `Util::addScript('procest', 'procest-main')` to load the SPA bundle +- AND it MUST call `Util::addStyle('procest', 'procest-main')` if a separate CSS bundle exists + +#### Scenario 2.2: Vue app initialization sequence in main.js +- GIVEN the `src/main.js` entry point +- WHEN the script executes +- THEN it MUST import and register `PiniaVuePlugin` before creating the Vue instance +- AND it MUST import `@conduction/nextcloud-vue/css/index.css` for shared library styles +- AND it MUST import `./assets/app.css` for global app styles +- AND it MUST create the Vue instance with `pinia` and `router` options +- AND it MUST call `app.$mount('#content')` immediately (before store init) +- AND it MUST call `initializeStores()` after mounting to trigger settings fetch and type registration + +#### Scenario 2.3: App shell component with three states +- GIVEN the root `App.vue` component +- WHEN it renders +- THEN it MUST show `NcLoadingIcon` while `storesReady === false` +- AND it MUST show `NcEmptyContent` (OpenRegister missing) when `storesReady && !hasOpenRegisters` +- AND it MUST show `MainMenu` + `NcAppContent` + `router-view` when `storesReady && hasOpenRegisters` +- AND it MUST provide `sidebarState` via Vue's `provide/inject` for child components + +#### Scenario 2.4: CnIndexSidebar integration +- GIVEN the App.vue component renders the main content state +- WHEN `sidebarState.active` is true (set by a list view) +- THEN the `CnIndexSidebar` component from `@conduction/nextcloud-vue` MUST render alongside the main content +- AND it MUST receive `schema`, `visibleColumns`, `searchValue`, `activeFilters`, and `facetData` from the reactive sidebarState +- AND sidebar events (`@search`, `@columns-change`, `@filter-change`) MUST propagate to the list view via callback functions on sidebarState + +### Requirement 3: Vue Router MUST define all application routes +The app MUST use Vue Router in history mode with routes for all primary views, detail views, and settings. + +#### Scenario 3.1: Route definitions +- GIVEN the router at `src/router/index.js` +- WHEN the app initializes +- THEN the router MUST use history mode with base URL `generateUrl('/apps/procest')` +- AND it MUST define these routes: Dashboard (`/`, name: `Dashboard`), MyWork (`/my-work`, name: `MyWork`), Cases (`/cases`, name: `Cases`), CaseDetail (`/cases/:id`, name: `CaseDetail`), Tasks (`/tasks`, name: `Tasks`), TaskNew (`/tasks/new`, name: `TaskNew`), TaskDetail (`/tasks/:id`, name: `TaskDetail`), Settings (`/settings`, name: `Settings`), CaseTypes (`/case-types`, name: `CaseTypes`) +- AND it MUST include a catch-all route (`*`) that redirects to `/` + +#### Scenario 3.2: Route props for detail views +- GIVEN the CaseDetail route at `/cases/:id` +- WHEN the route is matched +- THEN it MUST pass `caseId: route.params.id` as a prop to the CaseDetail component +- AND the TaskDetail route MUST pass `taskId: route.params.id` +- AND the TaskNew route MUST pass `taskId: 'new'` and `caseIdProp: route.query.caseId || null` + +#### Scenario 3.3: Route-based code splitting (future) +- GIVEN the router configuration +- WHEN the app grows in size +- THEN routes MAY use dynamic imports (`() => import(...)`) for code splitting +- AND the Dashboard and CaseList routes SHOULD remain in the main bundle for fast initial load + +### Requirement 4: App MUST use webpack build system extending Nextcloud base config +The build system MUST extend `@nextcloud/webpack-vue-config` with multiple entry points for the SPA, settings, and dashboard widgets. + +#### Scenario 4.1: Build produces all required bundles +- GIVEN the source files exist in `src/` +- WHEN `npm run build` is executed +- THEN it MUST produce `js/procest-main.js` for the dashboard SPA +- AND it MUST produce `js/procest-settings.js` for the admin settings page +- AND it MUST produce `js/procest-casesOverviewWidget.js`, `js/procest-overdueCasesWidget.js`, and `js/procest-myTasksWidget.js` for Nextcloud Dashboard widgets + +#### Scenario 4.2: Webpack alias configuration for deduplication +- GIVEN `@conduction/nextcloud-vue` imports `vue`, `pinia`, and `@nextcloud/vue` +- WHEN webpack resolves these imports +- THEN `webpack.config.js` MUST configure resolve aliases to ensure a single copy of each shared dependency +- AND this MUST prevent "multiple Vue instances" errors at runtime + +#### Scenario 4.3: Development build with watch mode +- GIVEN the developer runs `npm run dev` +- WHEN source files are modified +- THEN webpack MUST rebuild the affected bundles automatically +- AND source maps MUST be generated for debugging + +#### Scenario 4.4: CSS extraction +- GIVEN Vue components with ` diff --git a/src/components/map/CaseMap.vue b/src/components/map/CaseMap.vue new file mode 100644 index 0000000..f96deba --- /dev/null +++ b/src/components/map/CaseMap.vue @@ -0,0 +1,424 @@ + + + + + + + diff --git a/src/components/map/CasePopup.vue b/src/components/map/CasePopup.vue new file mode 100644 index 0000000..0d10cf1 --- /dev/null +++ b/src/components/map/CasePopup.vue @@ -0,0 +1,116 @@ + + + + + diff --git a/src/components/map/LocationPicker.vue b/src/components/map/LocationPicker.vue new file mode 100644 index 0000000..922aed9 --- /dev/null +++ b/src/components/map/LocationPicker.vue @@ -0,0 +1,313 @@ + + + + + diff --git a/src/components/map/MapLayerSwitcher.vue b/src/components/map/MapLayerSwitcher.vue new file mode 100644 index 0000000..289ca48 --- /dev/null +++ b/src/components/map/MapLayerSwitcher.vue @@ -0,0 +1,96 @@ + + + + + diff --git a/src/components/map/MapLegend.vue b/src/components/map/MapLegend.vue new file mode 100644 index 0000000..96b3e29 --- /dev/null +++ b/src/components/map/MapLegend.vue @@ -0,0 +1,55 @@ + + + + + diff --git a/src/components/map/SpatialFilter.vue b/src/components/map/SpatialFilter.vue new file mode 100644 index 0000000..69d0828 --- /dev/null +++ b/src/components/map/SpatialFilter.vue @@ -0,0 +1,130 @@ + + + + + diff --git a/src/deadlineAlertsWidget.js b/src/deadlineAlertsWidget.js new file mode 100644 index 0000000..263491c --- /dev/null +++ b/src/deadlineAlertsWidget.js @@ -0,0 +1,15 @@ +import Vue from 'vue' +import { PiniaVuePlugin } from 'pinia' +import pinia from './pinia.js' +import DeadlineAlertsWidget from './views/widgets/DeadlineAlertsWidget.vue' + +Vue.use(PiniaVuePlugin) + +OCA.Dashboard.register('procest_deadline_alerts_widget', async (el, { widget }) => { + Vue.mixin({ methods: { t, n } }) + const View = Vue.extend(DeadlineAlertsWidget) + new View({ + pinia, + propsData: { title: widget.title }, + }).$mount(el) +}) diff --git a/src/main.js b/src/main.js index 0f88ef3..097255b 100644 --- a/src/main.js +++ b/src/main.js @@ -1,17 +1,30 @@ import Vue from 'vue' import { PiniaVuePlugin } from 'pinia' +import { translate as t, translatePlural as n } from '@nextcloud/l10n' import pinia from './pinia.js' import router from './router/index.js' import App from './App.vue' +import { initializeStores } from './store/store.js' // Library CSS — must be explicit import (webpack tree-shakes side-effect imports from aliased packages) import '@conduction/nextcloud-vue/css/index.css' +// Global (unscoped) app styles +import './assets/app.css' + Vue.mixin({ methods: { t, n } }) Vue.use(PiniaVuePlugin) -new Vue({ +// Create Vue instance to activate Pinia context, then initialize stores. +const app = new Vue({ pinia, router, render: h => h(App), -}).$mount('#content') +}) + +// Mount immediately so the App renders (NC32 needs #content to be taken over). +app.$mount('#content') + +// Initialize stores in parallel — the useListView retry logic will wait +// for registerObjectType to complete. +initializeStores() diff --git a/src/myTasksWidget.js b/src/myTasksWidget.js new file mode 100644 index 0000000..2197785 --- /dev/null +++ b/src/myTasksWidget.js @@ -0,0 +1,15 @@ +import Vue from 'vue' +import { PiniaVuePlugin } from 'pinia' +import pinia from './pinia.js' +import MyTasksWidget from './views/widgets/MyTasksWidget.vue' + +Vue.use(PiniaVuePlugin) + +OCA.Dashboard.register('procest_my_tasks_widget', async (el, { widget }) => { + Vue.mixin({ methods: { t, n } }) + const View = Vue.extend(MyTasksWidget) + new View({ + pinia, + propsData: { title: widget.title }, + }).$mount(el) +}) diff --git a/src/navigation/MainMenu.vue b/src/navigation/MainMenu.vue index df200e9..eea2821 100644 --- a/src/navigation/MainMenu.vue +++ b/src/navigation/MainMenu.vue @@ -3,7 +3,8 @@ + + + @@ -29,9 +37,20 @@ + +